@pikku/cli 0.12.99 → 0.12.102

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 (396) hide show
  1. package/console-app/assets/{abnfDiagram-VRR7QNED-CytV-CG1.js → abnfDiagram-VRR7QNED-BneJZPuq.js} +1 -1
  2. package/console-app/assets/{arc-C5PvmnaA.js → arc-B6oXAx95.js} +1 -1
  3. package/console-app/assets/architecture-TIHT7OUA-BIpQbDwm.js +1 -0
  4. package/console-app/assets/{architectureDiagram-ZJ3FMSHR-CJ2xb7C-.js → architectureDiagram-ZJ3FMSHR-Dn6JKcGL.js} +1 -1
  5. package/console-app/assets/{blockDiagram-677ZJIJ3-CCecrBrk.js → blockDiagram-677ZJIJ3-CQtakjN5.js} +1 -1
  6. package/console-app/assets/{c4Diagram-LMCZKHZV-CBnpukvQ.js → c4Diagram-LMCZKHZV-DRBlz-sO.js} +1 -1
  7. package/console-app/assets/channel-D9eZ2wja.js +1 -0
  8. package/console-app/assets/{chunk-32BRIVSS-D8qWWZRQ.js → chunk-32BRIVSS-DIionvWe.js} +1 -1
  9. package/console-app/assets/{chunk-52WLFC77-BEpXHMsp.js → chunk-52WLFC77-DwrMMV53.js} +1 -1
  10. package/console-app/assets/{chunk-C7G6YPKG-DsHUMkOp.js → chunk-C7G6YPKG-C7_SHoee.js} +1 -1
  11. package/console-app/assets/{chunk-EX3LRPZG-mM7TjVx9.js → chunk-EX3LRPZG-Brqi3de0.js} +1 -1
  12. package/console-app/assets/{chunk-FWX5IMBZ-CndRAn18.js → chunk-FWX5IMBZ-CGXYdLJv.js} +2 -2
  13. package/console-app/assets/{chunk-HOUHSVGY-D1kT8umn.js → chunk-HOUHSVGY-C-mHnXIa.js} +1 -1
  14. package/console-app/assets/{chunk-ICXQ74PX-CeSaGyro.js → chunk-ICXQ74PX-x3psPzuY.js} +1 -1
  15. package/console-app/assets/{chunk-MOJQB5TN-CaZOCHYr.js → chunk-MOJQB5TN-2uXUItkq.js} +1 -1
  16. package/console-app/assets/{chunk-OGEWGWER-CnB1CsPt.js → chunk-OGEWGWER-eXRvfFkE.js} +1 -1
  17. package/console-app/assets/{chunk-PUDLZKDR-BbGulHJm.js → chunk-PUDLZKDR-CyN33Wwe.js} +1 -1
  18. package/console-app/assets/{chunk-Q4XR5HBZ-BywwzeeR.js → chunk-Q4XR5HBZ-uyzxeIyh.js} +1 -1
  19. package/console-app/assets/{chunk-RYQCIY6F-CV0R1Adv.js → chunk-RYQCIY6F-CB9wv1YB.js} +1 -1
  20. package/console-app/assets/{chunk-V7JOEXUC-DGFaAWzB.js → chunk-V7JOEXUC-DLMzjIkb.js} +1 -1
  21. package/console-app/assets/chunk-VAUOI2AC--YVrsYCZ.js +1 -0
  22. package/console-app/assets/{chunk-VR4S4FIN-D4-UaW_J.js → chunk-VR4S4FIN-DtBvdHYI.js} +1 -1
  23. package/console-app/assets/{chunk-WYO6CB5R-D_TFN0d9.js → chunk-WYO6CB5R-B_EVxwHf.js} +1 -1
  24. package/console-app/assets/chunk-XXDRQBXY-By-5aH9h.js +1 -0
  25. package/console-app/assets/{chunk-ZGVPDNZ5-C6hdkGQb.js → chunk-ZGVPDNZ5-CGfMGxHR.js} +1 -1
  26. package/console-app/assets/classDiagram-OUVF2IWQ-Bg6U871E.js +1 -0
  27. package/console-app/assets/classDiagram-v2-EOCWNBFH-Bg6U871E.js +1 -0
  28. package/console-app/assets/{cose-bilkent-JH36ORCC-B6ZPxN6v.js → cose-bilkent-JH36ORCC-B_3kCkWC.js} +1 -1
  29. package/console-app/assets/{cynefin-VYW2F7L2-D_nmxNz_.js → cynefin-VYW2F7L2-Buqf60VA.js} +1 -1
  30. package/console-app/assets/{cynefinDiagram-TSTJHNR4-CHy5QN0S.js → cynefinDiagram-TSTJHNR4-DOjw2x6X.js} +1 -1
  31. package/console-app/assets/{dagre-VKFMJZFB-DYfukM34.js → dagre-VKFMJZFB-CTZTYT0b.js} +1 -1
  32. package/console-app/assets/{diagram-FQU43EPY-Dgb9TPSB.js → diagram-FQU43EPY-BZh4LC_G.js} +1 -1
  33. package/console-app/assets/{diagram-G47NLZAW-CnFNZs9Z.js → diagram-G47NLZAW-DDHD69gC.js} +1 -1
  34. package/console-app/assets/{diagram-NH7WQ7WH-DN7h2DU-.js → diagram-NH7WQ7WH-YnfI_N0A.js} +1 -1
  35. package/console-app/assets/{diagram-OA4YK3LP-RLaQaNtK.js → diagram-OA4YK3LP-ByfLxp7x.js} +1 -1
  36. package/console-app/assets/{diagram-WEI45ONY-DxHWhVGd.js → diagram-WEI45ONY-CghNIRYp.js} +1 -1
  37. package/console-app/assets/{dist-BaJNIo4I.js → dist-DCLZxlZv.js} +1 -1
  38. package/console-app/assets/{ebnfDiagram-CCIWWBDH-UN3Z81-l.js → ebnfDiagram-CCIWWBDH-D5_G_ZqU.js} +1 -1
  39. package/console-app/assets/{erDiagram-Q63AITRT-C9lGAY3i.js → erDiagram-Q63AITRT-B5ZtoDJs.js} +1 -1
  40. package/console-app/assets/eventmodeling-45OFAUF4-eU2Q2DYK.js +1 -0
  41. package/console-app/assets/flowDiagram-23GEKE2U-CtRJ8nYJ.js +1 -0
  42. package/console-app/assets/{ganttDiagram-NO4QXBWP-CvBjBcdK.js → ganttDiagram-NO4QXBWP-R-TggPMB.js} +1 -1
  43. package/console-app/assets/{gitGraph-TEB2WS4Q-Cs5Z9jMo.js → gitGraph-TEB2WS4Q-Cjhl-pwb.js} +1 -1
  44. package/console-app/assets/{gitGraphDiagram-IHSO6WYX-B0i_IJ5r.js → gitGraphDiagram-IHSO6WYX-DnQe5wWr.js} +1 -1
  45. package/console-app/assets/{index-71U8EEj7.js → index-BZTTf18Y.js} +150 -164
  46. package/console-app/assets/{index-BXMjqLQ5.css → index-r763CZB4.css} +1 -1
  47. package/console-app/assets/{info-DKCQHKI2-DHL0afNl.js → info-DKCQHKI2-DlSWT4UP.js} +1 -1
  48. package/console-app/assets/{infoDiagram-FWYZ7A6U-CBWykodX.js → infoDiagram-FWYZ7A6U-xqpfzGnj.js} +1 -1
  49. package/console-app/assets/{ishikawaDiagram-FXEZZL3T-DM377eW_.js → ishikawaDiagram-FXEZZL3T-M_pUeGWs.js} +1 -1
  50. package/console-app/assets/{journeyDiagram-5HDEW3XC-BpX_-Cns.js → journeyDiagram-5HDEW3XC-Dm6FR2DD.js} +1 -1
  51. package/console-app/assets/{kanban-definition-HUTT4EX6-D3xFsQkO.js → kanban-definition-HUTT4EX6-CbhkDdQH.js} +1 -1
  52. package/console-app/assets/{line-CTSKHTE0.js → line-C98Z2IVv.js} +1 -1
  53. package/console-app/assets/{linear-R5GlBvXT.js → linear-fYIkDCbB.js} +1 -1
  54. package/console-app/assets/{mermaid-parser.core-CkHk4BPi.js → mermaid-parser.core-Dkioi2z2.js} +3 -3
  55. package/console-app/assets/{mermaid.core-CcjGXuV6.js → mermaid.core-CeJcbw8_.js} +3 -3
  56. package/console-app/assets/{mindmap-definition-LN4V7U3C-CtolazqQ.js → mindmap-definition-LN4V7U3C-DDitGESW.js} +1 -1
  57. package/console-app/assets/{packet-7NZHBO7P-BxSOj_Ny.js → packet-7NZHBO7P-DWZKJ9Us.js} +1 -1
  58. package/console-app/assets/{pegDiagram-2B236MQR-BNsMtxsM.js → pegDiagram-2B236MQR-CZGjPLXH.js} +1 -1
  59. package/console-app/assets/{pie-RZYD4A2V-BbkKQBA5.js → pie-RZYD4A2V-DT4-E-uE.js} +1 -1
  60. package/console-app/assets/{pieDiagram-ENE6RG2P-BAZLIz2f.js → pieDiagram-ENE6RG2P-bgr82Jyt.js} +1 -1
  61. package/console-app/assets/{quadrantDiagram-ABIIQ3AL-Dpvn-1Fs.js → quadrantDiagram-ABIIQ3AL-Dcw3uNG0.js} +1 -1
  62. package/console-app/assets/{radar-I7S5WNFK-B-uKXIAH.js → radar-I7S5WNFK-CFAbRVFk.js} +1 -1
  63. package/console-app/assets/{railroad-3IZDKUUU-BHXXK04t.js → railroad-3IZDKUUU-CjkCoEjH.js} +1 -1
  64. package/console-app/assets/railroad-abnf-AHOZXSZD-BM21cj3I.js +1 -0
  65. package/console-app/assets/railroad-ebnf-EBAXGLYW-CDjo5TUI.js +1 -0
  66. package/console-app/assets/railroad-peg-LSFZ7HO6-CiKQmfgW.js +1 -0
  67. package/console-app/assets/{railroadDiagram-RFXS5EU6-DfUApEQj.js → railroadDiagram-RFXS5EU6-BUoL0dsw.js} +1 -1
  68. package/console-app/assets/{requirementDiagram-TGXJPOKE-B2zX0jqo.js → requirementDiagram-TGXJPOKE-C27qMKlr.js} +1 -1
  69. package/console-app/assets/{sankeyDiagram-HTMAVEWB-CbQ2zc7z.js → sankeyDiagram-HTMAVEWB-BYEhrrY0.js} +1 -1
  70. package/console-app/assets/{sequenceDiagram-DBY2YBRQ-BLT8PXI_.js → sequenceDiagram-DBY2YBRQ-BCuL4Pl6.js} +1 -1
  71. package/console-app/assets/{src-BLuPUFWW.js → src-jNbD6Nj3.js} +1 -1
  72. package/console-app/assets/{stateDiagram-2N3HPSRC-BvEyVp85.js → stateDiagram-2N3HPSRC-C8Ywa3Ah.js} +1 -1
  73. package/console-app/assets/stateDiagram-v2-6OUMAXLB-BIGwMDyj.js +1 -0
  74. package/console-app/assets/{swimlanes-5IMT3BWC-1AZ459s6.js → swimlanes-5IMT3BWC-C12iYfdp.js} +1 -1
  75. package/console-app/assets/swimlanesDiagram-G3AALYLV-BsoUfqN-.js +8 -0
  76. package/console-app/assets/{timeline-definition-FHXFAJF6-dLuvH4s2.js → timeline-definition-FHXFAJF6-BFQotHp7.js} +1 -1
  77. package/console-app/assets/{treeView-QDETBFTQ-xL2msjo2.js → treeView-QDETBFTQ-CGbwDLTd.js} +1 -1
  78. package/console-app/assets/{treemap-6X3UGDF4-C98ichVP.js → treemap-6X3UGDF4-DxSGskiF.js} +1 -1
  79. package/console-app/assets/{vennDiagram-L72KCM5P-HbUmidhv.js → vennDiagram-L72KCM5P-D4hlUYc9.js} +1 -1
  80. package/console-app/assets/{wardley-OPB4EBWU-C4gJS-m2.js → wardley-OPB4EBWU-XlXl32Vn.js} +1 -1
  81. package/console-app/assets/{wardleyDiagram-EHGQE667-B7b-LB02.js → wardleyDiagram-EHGQE667-ttCeFzYx.js} +1 -1
  82. package/console-app/assets/{xychartDiagram-FW5EYKEG-Cm03zUGy.js → xychartDiagram-FW5EYKEG-BMG4kbfv.js} +1 -1
  83. package/console-app/index.html +2 -2
  84. package/dist/.pikku/agent/pikku-agent-types.gen.d.ts +6 -2
  85. package/dist/.pikku/agent/pikku-agent-types.gen.js +3 -0
  86. package/dist/.pikku/agent/pikku-model-aliases.gen.d.ts +1 -0
  87. package/dist/.pikku/agent/pikku-model-aliases.gen.js +5 -0
  88. package/dist/.pikku/channel/pikku-channel-types.gen.d.ts +1 -1
  89. package/dist/.pikku/channel/pikku-channel-types.gen.js +1 -1
  90. package/dist/.pikku/cli/pikku-cli-channel.d.ts +11 -2
  91. package/dist/.pikku/cli/pikku-cli-channel.js +34 -9
  92. package/dist/.pikku/cli/pikku-cli-client.gen.d.ts +1 -1
  93. package/dist/.pikku/cli/pikku-cli-client.gen.js +1 -1
  94. package/dist/.pikku/cli/pikku-cli-contracts-meta.gen.d.ts +1 -1
  95. package/dist/.pikku/cli/pikku-cli-contracts-meta.gen.js +1 -1
  96. package/dist/.pikku/cli/pikku-cli-types.gen.d.ts +1 -1
  97. package/dist/.pikku/cli/pikku-cli-types.gen.js +1 -1
  98. package/dist/.pikku/cli/pikku-cli-wirings-meta.gen.js +2 -2
  99. package/dist/.pikku/cli/pikku-cli-wirings-meta.gen.json +18 -12
  100. package/dist/.pikku/cli/pikku-cli-wirings.gen.d.ts +1 -1
  101. package/dist/.pikku/cli/pikku-cli-wirings.gen.js +1 -1
  102. package/dist/.pikku/cli/pikku-cli.gen.d.ts +1 -1
  103. package/dist/.pikku/cli/pikku-cli.gen.js +1 -1
  104. package/dist/.pikku/console/pikku-node-types.gen.d.ts +1 -1
  105. package/dist/.pikku/function/pikku-function-types.gen.d.ts +10 -20
  106. package/dist/.pikku/function/pikku-function-types.gen.js +2 -2
  107. package/dist/.pikku/function/pikku-functions-meta.gen.js +2 -2
  108. package/dist/.pikku/function/pikku-functions-meta.gen.json +59 -35
  109. package/dist/.pikku/function/pikku-functions.gen.js +3 -1
  110. package/dist/.pikku/http/pikku-http-types.gen.d.ts +1 -1
  111. package/dist/.pikku/http/pikku-http-types.gen.js +1 -1
  112. package/dist/.pikku/mcp/pikku-mcp-types.gen.d.ts +1 -1
  113. package/dist/.pikku/mcp/pikku-mcp-types.gen.js +1 -1
  114. package/dist/.pikku/pikku-bootstrap-scenarios.gen.d.ts +1 -1
  115. package/dist/.pikku/pikku-bootstrap-scenarios.gen.js +1 -1
  116. package/dist/.pikku/pikku-bootstrap.gen.d.ts +2 -1
  117. package/dist/.pikku/pikku-bootstrap.gen.js +2 -1
  118. package/dist/.pikku/pikku-meta-service.gen.d.ts +1 -1
  119. package/dist/.pikku/pikku-meta-service.gen.js +1 -1
  120. package/dist/.pikku/pikku-services.gen.d.ts +1 -1
  121. package/dist/.pikku/pikku-types.gen.d.ts +1 -1
  122. package/dist/.pikku/pikku-types.gen.js +1 -1
  123. package/dist/.pikku/queue/pikku-queue-types.gen.d.ts +1 -1
  124. package/dist/.pikku/queue/pikku-queue-types.gen.js +1 -1
  125. package/dist/.pikku/queue/pikku-queue-workers-wirings-meta.gen.js +2 -2
  126. package/dist/.pikku/queue/pikku-queue-workers-wirings.gen.d.ts +1 -1
  127. package/dist/.pikku/queue/pikku-queue-workers-wirings.gen.js +1 -1
  128. package/dist/.pikku/rpc/pikku-rpc-wirings-meta.internal.gen.js +2 -2
  129. package/dist/.pikku/rpc/pikku-rpc-wirings-meta.internal.gen.json +2 -1
  130. package/dist/.pikku/scenarios/pikku-scenario-functions-meta.gen.js +2 -2
  131. package/dist/.pikku/scenarios/pikku-scenario-functions.gen.d.ts +1 -1
  132. package/dist/.pikku/scenarios/pikku-scenario-wirings-meta.gen.js +2 -2
  133. package/dist/.pikku/scenarios/pikku-scenario-wirings.gen.d.ts +1 -1
  134. package/dist/.pikku/scenarios/schemas/register.gen.d.ts +1 -1
  135. package/dist/.pikku/scenarios/schemas/register.gen.js +1 -1
  136. package/dist/.pikku/scheduler/pikku-scheduler-types.gen.d.ts +1 -1
  137. package/dist/.pikku/scheduler/pikku-scheduler-types.gen.js +1 -1
  138. package/dist/.pikku/schemas/register.gen.js +7 -5
  139. package/dist/.pikku/schemas/schemas/DevInput.schema.json +1 -1
  140. package/dist/.pikku/schemas/schemas/PikkuAIScorerOutput.schema.json +1 -0
  141. package/dist/.pikku/schemas/schemas/ServeInput.schema.json +1 -1
  142. package/dist/.pikku/schemas/schemas/ValidateOutput.schema.json +1 -0
  143. package/dist/.pikku/scopes/pikku-personas.gen.js +1 -1
  144. package/dist/.pikku/scopes/pikku-roles.gen.d.ts +1 -1
  145. package/dist/.pikku/scopes/pikku-scope-types.gen.d.ts +1 -1
  146. package/dist/.pikku/scopes/pikku-scope-types.gen.js +1 -1
  147. package/dist/.pikku/scopes/pikku-scopes.gen.d.ts +1 -1
  148. package/dist/.pikku/secrets/pikku-secret-types.gen.d.ts +1 -1
  149. package/dist/.pikku/secrets/pikku-secret-types.gen.js +1 -1
  150. package/dist/.pikku/secrets/pikku-secrets.gen.d.ts +1 -1
  151. package/dist/.pikku/secrets/pikku-secrets.gen.js +1 -1
  152. package/dist/.pikku/trigger/pikku-trigger-types.gen.d.ts +1 -1
  153. package/dist/.pikku/trigger/pikku-trigger-types.gen.js +1 -1
  154. package/dist/.pikku/variables/pikku-variable-types.gen.d.ts +1 -1
  155. package/dist/.pikku/variables/pikku-variable-types.gen.js +1 -1
  156. package/dist/.pikku/variables/pikku-variables.gen.d.ts +1 -1
  157. package/dist/.pikku/variables/pikku-variables.gen.js +1 -1
  158. package/dist/.pikku/workflow/meta/allWorkflow.gen.json +8 -2
  159. package/dist/.pikku/workflow/pikku-personas.gen.js +1 -1
  160. package/dist/.pikku/workflow/pikku-workflow-types.gen.d.ts +18 -10
  161. package/dist/.pikku/workflow/pikku-workflow-types.gen.js +1 -1
  162. package/dist/.pikku/workflow/pikku-workflow-wirings-meta.gen.js +2 -2
  163. package/dist/.pikku/workflow/pikku-workflow-wirings.gen.js +1 -1
  164. package/dist/bin/pikku-bin.mjs +2 -2
  165. package/dist/src/cli.wiring.js +20 -11
  166. package/dist/src/deploy/analyzer/analyzer.js +21 -6
  167. package/dist/src/deploy/analyzer/manifest.d.ts +18 -0
  168. package/dist/src/deploy/codegen/per-unit-codegen.js +0 -3
  169. package/dist/src/deploy/server-entry.js +1 -1
  170. package/dist/src/fabric/fabric-commands.d.ts +26 -26
  171. package/dist/src/fabric/functions/add.function.d.ts +1 -1
  172. package/dist/src/fabric/functions/addon-verify.function.d.ts +1 -1
  173. package/dist/src/fabric/functions/db-schema.function.d.ts +1 -1
  174. package/dist/src/fabric/functions/deploy-list.function.d.ts +1 -1
  175. package/dist/src/fabric/functions/deploy-units.function.d.ts +1 -1
  176. package/dist/src/fabric/functions/deploy.function.d.ts +2 -2
  177. package/dist/src/fabric/functions/domains-add.function.d.ts +1 -1
  178. package/dist/src/fabric/functions/domains-list.function.d.ts +1 -1
  179. package/dist/src/fabric/functions/domains-remove.function.d.ts +1 -1
  180. package/dist/src/fabric/functions/errors.function.d.ts +1 -1
  181. package/dist/src/fabric/functions/init.function.d.ts +1 -1
  182. package/dist/src/fabric/functions/link.function.d.ts +1 -1
  183. package/dist/src/fabric/functions/llm-key.function.d.ts +1 -1
  184. package/dist/src/fabric/functions/login.function.d.ts +1 -1
  185. package/dist/src/fabric/functions/logs.function.d.ts +1 -1
  186. package/dist/src/fabric/functions/metrics.function.d.ts +1 -1
  187. package/dist/src/fabric/functions/publish.function.d.ts +1 -1
  188. package/dist/src/fabric/functions/rollback.function.d.ts +1 -1
  189. package/dist/src/fabric/functions/secrets-list.function.d.ts +1 -1
  190. package/dist/src/fabric/functions/secrets-rotate.function.d.ts +1 -1
  191. package/dist/src/fabric/functions/secrets-set.function.d.ts +1 -1
  192. package/dist/src/fabric/functions/smoke.function.d.ts +1 -1
  193. package/dist/src/fabric/functions/smoke.function.js +7 -4
  194. package/dist/src/fabric/functions/status.function.d.ts +1 -1
  195. package/dist/src/fabric/functions/trace.function.d.ts +1 -1
  196. package/dist/src/fabric/functions/validate.function.d.ts +1 -1
  197. package/dist/src/fabric/functions/validate.function.js +1 -1
  198. package/dist/src/functions/commands/all.d.ts +1 -1
  199. package/dist/src/functions/commands/audit.d.ts +1 -1
  200. package/dist/src/functions/commands/binary.d.ts +1 -1
  201. package/dist/src/functions/commands/bootstrap.d.ts +1 -1
  202. package/dist/src/functions/commands/db-audit.d.ts +1 -1
  203. package/dist/src/functions/commands/db-baseline.d.ts +1 -1
  204. package/dist/src/functions/commands/db-check.d.ts +1 -1
  205. package/dist/src/functions/commands/db-codegen.d.ts +1 -1
  206. package/dist/src/functions/commands/db-export.d.ts +1 -1
  207. package/dist/src/functions/commands/db-export.js +1 -1
  208. package/dist/src/functions/commands/db-generate.d.ts +1 -1
  209. package/dist/src/functions/commands/db-migrate.d.ts +1 -1
  210. package/dist/src/functions/commands/db-reset.d.ts +1 -1
  211. package/dist/src/functions/commands/db-shared.d.ts +0 -14
  212. package/dist/src/functions/commands/deploy-apply.d.ts +1 -1
  213. package/dist/src/functions/commands/deploy-info.d.ts +1 -1
  214. package/dist/src/functions/commands/deploy-plan.d.ts +1 -1
  215. package/dist/src/functions/commands/dev.d.ts +4 -1
  216. package/dist/src/functions/commands/dev.js +42 -3
  217. package/dist/src/functions/commands/emails-init.d.ts +1 -1
  218. package/dist/src/functions/commands/enable.d.ts +8 -8
  219. package/dist/src/functions/commands/import-n8n.d.ts +1 -1
  220. package/dist/src/functions/commands/info.d.ts +4 -4
  221. package/dist/src/functions/commands/knowledge-index.d.ts +4 -4
  222. package/dist/src/functions/commands/knowledge-validate.d.ts +1 -1
  223. package/dist/src/functions/commands/login.d.ts +3 -3
  224. package/dist/src/functions/commands/meta.d.ts +19 -19
  225. package/dist/src/functions/commands/new-addon.d.ts +1 -1
  226. package/dist/src/functions/commands/new-addon.js +6 -3
  227. package/dist/src/functions/commands/new-function.d.ts +1 -1
  228. package/dist/src/functions/commands/new-middleware.d.ts +1 -1
  229. package/dist/src/functions/commands/new-permission.d.ts +1 -1
  230. package/dist/src/functions/commands/new-wiring.d.ts +1 -1
  231. package/dist/src/functions/commands/persona-sync.d.ts +1 -1
  232. package/dist/src/functions/commands/persona.d.ts +2 -2
  233. package/dist/src/functions/commands/pikku-command-bootstrap.d.ts +1 -1
  234. package/dist/src/functions/commands/pikku-command-summary.d.ts +1 -1
  235. package/dist/src/functions/commands/roles-audit.d.ts +1 -1
  236. package/dist/src/functions/commands/roles-prune.d.ts +1 -1
  237. package/dist/src/functions/commands/scenario-browser.d.ts +24 -1
  238. package/dist/src/functions/commands/scenario-browser.js +5 -1
  239. package/dist/src/functions/commands/scenario.d.ts +8 -2
  240. package/dist/src/functions/commands/scenario.js +58 -10
  241. package/dist/src/functions/commands/scopes-audit.d.ts +1 -1
  242. package/dist/src/functions/commands/scopes-prune.d.ts +1 -1
  243. package/dist/src/functions/commands/serve.d.ts +4 -1
  244. package/dist/src/functions/commands/serve.js +16 -2
  245. package/dist/src/functions/commands/skills.d.ts +2 -2
  246. package/dist/src/functions/commands/{workspace-validate.d.ts → validate.d.ts} +19 -4
  247. package/dist/src/functions/commands/validate.js +9 -0
  248. package/dist/src/functions/commands/versions-check.d.ts +1 -1
  249. package/dist/src/functions/commands/versions-init.d.ts +1 -1
  250. package/dist/src/functions/commands/versions-update.d.ts +1 -1
  251. package/dist/src/functions/commands/watch.d.ts +1 -1
  252. package/dist/src/functions/db/local-db.d.ts +2 -1
  253. package/dist/src/functions/db/local-db.js +2 -2
  254. package/dist/src/functions/runtimes/fetch/index.d.ts +1 -1
  255. package/dist/src/functions/runtimes/nextjs/pikku-command-nextjs.d.ts +1 -1
  256. package/dist/src/functions/runtimes/tanstack-start/pikku-command-tanstack-start.d.ts +1 -1
  257. package/dist/src/functions/runtimes/websocket/pikku-command-websocket-typed.d.ts +1 -1
  258. package/dist/src/functions/validate/addon-package-checks.d.ts +26 -0
  259. package/dist/src/functions/validate/addon-package-checks.js +258 -0
  260. package/dist/src/functions/validate/persona-checks.d.ts +1 -1
  261. package/dist/src/functions/validate/persona-checks.js +1 -1
  262. package/dist/src/functions/validate/scenario-file-checks.js +33 -0
  263. package/dist/src/functions/validate/shared-checks.d.ts +1 -1
  264. package/dist/src/functions/validate/shared-checks.js +1 -1
  265. package/dist/src/functions/validate/validate-registry.d.ts +52 -0
  266. package/dist/src/functions/validate/validate-registry.js +100 -0
  267. package/dist/src/functions/validate/validate.d.ts +47 -0
  268. package/dist/src/functions/validate/{workspace-validate.js → validate.js} +46 -12
  269. package/dist/src/functions/wirings/ai-agent/pikku-command-ai-agent-types.d.ts +1 -1
  270. package/dist/src/functions/wirings/ai-agent/pikku-command-ai-agent-types.js +3 -2
  271. package/dist/src/functions/wirings/ai-agent/pikku-command-ai-agent.d.ts +1 -1
  272. package/dist/src/functions/wirings/ai-agent/pikku-command-ai-agent.js +6 -2
  273. package/dist/src/functions/wirings/ai-agent/pikku-command-public-agent.d.ts +1 -1
  274. package/dist/src/functions/wirings/ai-agent/serialize-ai-agent-types.d.ts +1 -1
  275. package/dist/src/functions/wirings/ai-agent/serialize-ai-agent-types.js +15 -2
  276. package/dist/src/functions/wirings/ai-agent/serialize-model-aliases.d.ts +5 -0
  277. package/dist/src/functions/wirings/ai-agent/serialize-model-aliases.js +12 -0
  278. package/dist/src/functions/wirings/ai-scorer/pikku-command-ai-scorer.d.ts +1 -0
  279. package/dist/src/functions/wirings/ai-scorer/pikku-command-ai-scorer.js +51 -0
  280. package/dist/src/functions/wirings/ai-scorer/serialize-scorer-names.d.ts +10 -0
  281. package/dist/src/functions/wirings/ai-scorer/serialize-scorer-names.js +17 -0
  282. package/dist/src/functions/wirings/auth/pikku-command-auth.d.ts +1 -1
  283. package/dist/src/functions/wirings/auth/serialize-auth-gen.js +27 -10
  284. package/dist/src/functions/wirings/channels/pikku-channels.d.ts +1 -1
  285. package/dist/src/functions/wirings/channels/pikku-channels.js +1 -1
  286. package/dist/src/functions/wirings/channels/pikku-command-channel-types.d.ts +1 -1
  287. package/dist/src/functions/wirings/channels/pikku-command-channels-map.d.ts +1 -1
  288. package/dist/src/functions/wirings/channels/pikku-command-channels.d.ts +1 -1
  289. package/dist/src/functions/wirings/channels/pikku-command-channels.js +1 -1
  290. package/dist/src/functions/wirings/cli/pikku-command-cli-entry.d.ts +1 -1
  291. package/dist/src/functions/wirings/cli/pikku-command-cli-types.d.ts +1 -1
  292. package/dist/src/functions/wirings/cli/pikku-command-cli.d.ts +1 -1
  293. package/dist/src/functions/wirings/cli/pikku-command-cli.js +1 -1
  294. package/dist/src/functions/wirings/cli/serialize-channel-cli.js +12 -7
  295. package/dist/src/functions/wirings/console/pikku-command-console-functions.d.ts +1 -1
  296. package/dist/src/functions/wirings/console/pikku-command-node-types.d.ts +1 -1
  297. package/dist/src/functions/wirings/console/pikku-command-nodes-meta.d.ts +1 -1
  298. package/dist/src/functions/wirings/console/serialize-console-functions.js +9 -56
  299. package/dist/src/functions/wirings/credentials/pikku-command-credentials.d.ts +1 -1
  300. package/dist/src/functions/wirings/emails/pikku-command-emails.d.ts +1 -1
  301. package/dist/src/functions/wirings/functions/pikku-command-addon-types.d.ts +1 -1
  302. package/dist/src/functions/wirings/functions/pikku-command-function-types-split.d.ts +1 -1
  303. package/dist/src/functions/wirings/functions/pikku-command-function-types.d.ts +1 -1
  304. package/dist/src/functions/wirings/functions/pikku-command-functions.d.ts +1 -1
  305. package/dist/src/functions/wirings/functions/pikku-command-functions.js +1 -1
  306. package/dist/src/functions/wirings/functions/pikku-command-services.d.ts +1 -1
  307. package/dist/src/functions/wirings/functions/schemas.d.ts +1 -1
  308. package/dist/src/functions/wirings/functions/serialize-function-types.js +12 -21
  309. package/dist/src/functions/wirings/gateway/pikku-command-gateway.d.ts +1 -1
  310. package/dist/src/functions/wirings/graph/pikku-command-graph-wirings.d.ts +1 -1
  311. package/dist/src/functions/wirings/http/pikku-command-http-map.d.ts +1 -1
  312. package/dist/src/functions/wirings/http/pikku-command-http-routes.d.ts +1 -1
  313. package/dist/src/functions/wirings/http/pikku-command-http-routes.js +1 -1
  314. package/dist/src/functions/wirings/http/pikku-command-http-types.d.ts +1 -1
  315. package/dist/src/functions/wirings/http/pikku-command-openapi.d.ts +1 -1
  316. package/dist/src/functions/wirings/http/pikku-http-routes.d.ts +1 -1
  317. package/dist/src/functions/wirings/http/pikku-http-routes.js +1 -1
  318. package/dist/src/functions/wirings/mcp/pikku-command-mcp-json.d.ts +1 -1
  319. package/dist/src/functions/wirings/mcp/pikku-command-mcp-types.d.ts +1 -1
  320. package/dist/src/functions/wirings/mcp/pikku-command-mcp.d.ts +1 -1
  321. package/dist/src/functions/wirings/mcp/pikku-command-mcp.js +1 -1
  322. package/dist/src/functions/wirings/middleware/pikku-command-middleware.d.ts +1 -1
  323. package/dist/src/functions/wirings/middleware/serialize-middleware-imports.js +5 -1
  324. package/dist/src/functions/wirings/package/pikku-command-package-types.d.ts +3 -3
  325. package/dist/src/functions/wirings/package/pikku-command-package.d.ts +1 -1
  326. package/dist/src/functions/wirings/package/pikku-command-package.js +12 -1
  327. package/dist/src/functions/wirings/package/serialize-package.d.ts +1 -1
  328. package/dist/src/functions/wirings/package/serialize-package.js +6 -3
  329. package/dist/src/functions/wirings/permissions/pikku-command-permissions.d.ts +1 -1
  330. package/dist/src/functions/wirings/personas/pikku-command-personas.d.ts +1 -1
  331. package/dist/src/functions/wirings/queue/pikku-command-queue-map.d.ts +1 -1
  332. package/dist/src/functions/wirings/queue/pikku-command-queue-service.d.ts +1 -1
  333. package/dist/src/functions/wirings/queue/pikku-command-queue-types.d.ts +1 -1
  334. package/dist/src/functions/wirings/queue/pikku-command-queue.d.ts +1 -1
  335. package/dist/src/functions/wirings/queue/pikku-queue-map.d.ts +1 -1
  336. package/dist/src/functions/wirings/queue/pikku-queue.d.ts +1 -1
  337. package/dist/src/functions/wirings/realtime/pikku-command-events-scaffold.d.ts +1 -1
  338. package/dist/src/functions/wirings/realtime/pikku-command-realtime.d.ts +1 -1
  339. package/dist/src/functions/wirings/roles/pikku-command-roles.d.ts +1 -1
  340. package/dist/src/functions/wirings/rpc/pikku-command-public-rpc.d.ts +1 -1
  341. package/dist/src/functions/wirings/rpc/pikku-command-react-query.d.ts +1 -1
  342. package/dist/src/functions/wirings/rpc/pikku-command-remote-rpc.d.ts +1 -1
  343. package/dist/src/functions/wirings/rpc/pikku-command-rpc-client.d.ts +1 -1
  344. package/dist/src/functions/wirings/rpc/pikku-command-rpc-map.d.ts +3 -3
  345. package/dist/src/functions/wirings/rpc/pikku-command-rpc.d.ts +1 -1
  346. package/dist/src/functions/wirings/rpc/pikku-command-rpc.js +1 -1
  347. package/dist/src/functions/wirings/rpc/serialize-typed-rpc-map.js +1 -6
  348. package/dist/src/functions/wirings/scenarios/register-scenario-instrumentation.js +31 -1
  349. package/dist/src/functions/wirings/scenarios/serialize-scenario-meta.js +2 -2
  350. package/dist/src/functions/wirings/scheduler/pikku-command-scheduler-types.d.ts +1 -1
  351. package/dist/src/functions/wirings/scheduler/pikku-command-scheduler.d.ts +1 -1
  352. package/dist/src/functions/wirings/scopes/pikku-command-scopes.d.ts +1 -1
  353. package/dist/src/functions/wirings/secrets/pikku-command-secrets.d.ts +1 -1
  354. package/dist/src/functions/wirings/triggers/pikku-command-trigger-types.d.ts +1 -1
  355. package/dist/src/functions/wirings/triggers/pikku-command-trigger.d.ts +1 -1
  356. package/dist/src/functions/wirings/triggers/serialize-trigger-meta.js +2 -2
  357. package/dist/src/functions/wirings/user-admin/pikku-command-user-admin-functions.d.ts +1 -1
  358. package/dist/src/functions/wirings/variables/pikku-command-variables.d.ts +1 -1
  359. package/dist/src/functions/wirings/virtual-user/pikku-command-virtual-user-functions.d.ts +1 -1
  360. package/dist/src/functions/wirings/webhook/pikku-command-webhook.d.ts +1 -1
  361. package/dist/src/functions/wirings/workflow/pikku-command-workflow-routes.d.ts +1 -1
  362. package/dist/src/functions/wirings/workflow/pikku-command-workflow.d.ts +1 -1
  363. package/dist/src/functions/wirings/workflow/serialize-workflow-meta.js +2 -2
  364. package/dist/src/functions/wirings/workflow/serialize-workflow-routes.js +23 -32
  365. package/dist/src/functions/wirings/workflow/serialize-workflow-types.js +25 -14
  366. package/dist/src/functions/workflows/all.workflow.js +6 -1
  367. package/dist/src/server/bun-server-runner.js +3 -0
  368. package/dist/src/server/dev-server-runner.interface.d.ts +10 -0
  369. package/dist/src/server/node-server-runner.js +3 -0
  370. package/dist/src/services.d.ts +1 -1
  371. package/dist/src/services.js +1 -0
  372. package/dist/src/utils/meta-diff.d.ts +1 -1
  373. package/dist/src/utils/meta-diff.js +2 -0
  374. package/dist/src/utils/model-alias-override.d.ts +7 -0
  375. package/dist/src/utils/model-alias-override.js +33 -0
  376. package/dist/src/utils/pikku-cli-config.js +16 -0
  377. package/dist/src/utils/serialize-meta-ts.js +1 -1
  378. package/dist/tsconfig.tsbuildinfo +1 -1
  379. package/package.json +19 -19
  380. package/console-app/assets/architecture-TIHT7OUA-C1_ScvPX.js +0 -1
  381. package/console-app/assets/channel-CwDOkXGI.js +0 -1
  382. package/console-app/assets/chunk-VAUOI2AC-DxPUd8Yb.js +0 -1
  383. package/console-app/assets/chunk-XXDRQBXY-BzVuweA_.js +0 -1
  384. package/console-app/assets/classDiagram-OUVF2IWQ-CTYJkTT0.js +0 -1
  385. package/console-app/assets/classDiagram-v2-EOCWNBFH-CTYJkTT0.js +0 -1
  386. package/console-app/assets/eventmodeling-45OFAUF4-Dc5wNSSK.js +0 -1
  387. package/console-app/assets/flowDiagram-23GEKE2U-zPyGHMi4.js +0 -1
  388. package/console-app/assets/railroad-abnf-AHOZXSZD-tXSQaBvY.js +0 -1
  389. package/console-app/assets/railroad-ebnf-EBAXGLYW-DG3aohR0.js +0 -1
  390. package/console-app/assets/railroad-peg-LSFZ7HO6-DY_gBA-x.js +0 -1
  391. package/console-app/assets/stateDiagram-v2-6OUMAXLB-RGKS9iU4.js +0 -1
  392. package/console-app/assets/swimlanesDiagram-G3AALYLV-Ck_0-rfN.js +0 -8
  393. package/dist/.pikku/schemas/schemas/WorkspaceValidateOutput.schema.json +0 -1
  394. package/dist/src/functions/commands/workspace-validate.js +0 -9
  395. package/dist/src/functions/validate/workspace-validate.d.ts +0 -33
  396. /package/dist/.pikku/schemas/schemas/{WorkspaceValidateInput.schema.json → ValidateInput.schema.json} +0 -0
@@ -1 +1 @@
1
- export declare const pikkuAIAgent: 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 pikkuAIAgent: 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>;
@@ -4,11 +4,15 @@ import { logCommandInfoAndTime } from '../../../middleware/log-command-info-and-
4
4
  import { getFileImportRelativePath } from '../../../utils/file-import-path.js';
5
5
  import { stripVerboseFields, hasVerboseFields, } from '../../../utils/strip-verbose-meta.js';
6
6
  import { serializeAgentMap } from './serialize-agent-map.js';
7
+ import { serializeModelAliases } from './serialize-model-aliases.js';
7
8
  export const pikkuAIAgent = pikkuSessionlessFunc({
8
9
  func: async ({ logger, config, getInspectorState }) => {
9
10
  const { agents, functions } = await getInspectorState();
10
- const { agentWiringsFile, agentWiringMetaFile, agentWiringMetaJsonFile, agentMapDeclarationFile, packageMappings, schema, addonName, } = config;
11
+ const { agentWiringsFile, agentWiringMetaFile, agentWiringMetaJsonFile, agentMapDeclarationFile, modelAliasesFile, packageMappings, schema, addonName, models, } = config;
11
12
  const agentFiles = agents.files;
13
+ // Written even with no agents: the image/speech/embedding runner methods
14
+ // take a model too.
15
+ await writeFileInDir(logger, modelAliasesFile, serializeModelAliases(models, addonName ?? null));
12
16
  if (agentFiles.size === 0 || Object.keys(agents.agentsMeta).length === 0) {
13
17
  // Still need to generate an empty agent map for the types import
14
18
  await writeFileInDir(logger, agentMapDeclarationFile, `export type AgentMap = {}\n`);
@@ -45,7 +49,7 @@ export const pikkuAIAgent = pikkuSessionlessFunc({
45
49
  const importStatement = supportsImportAttributes
46
50
  ? `import metaData from '${jsonImportPath}' with { type: 'json' }`
47
51
  : `import metaData from '${jsonImportPath}'`;
48
- await writeFileInDir(logger, agentWiringMetaFile, `import { pikkuState } from '@pikku/core/internal'
52
+ await writeFileInDir(logger, agentWiringMetaFile, `import { pikkuState } from '@pikku/core/ecosystem'
49
53
  import type { AIAgentMeta } from '@pikku/core/ai-agent'
50
54
  ${importStatement}
51
55
  pikkuState(${addonName ? `'${addonName}'` : 'null'}, 'agent', 'agentsMeta', metaData.agentsMeta as AIAgentMeta)`);
@@ -1 +1 @@
1
- export declare const pikkuPublicAgent: 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 pikkuPublicAgent: 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 serializeAIAgentTypes: (functionTypesImportPath: string, agentMapImportPath: string, scopesImportPath: string) => string;
1
+ export declare const serializeAIAgentTypes: (functionTypesImportPath: string, agentMapImportPath: string, scopesImportPath: string, scorerNamesImportPath: string) => string;
@@ -1,4 +1,4 @@
1
- export const serializeAIAgentTypes = (functionTypesImportPath, agentMapImportPath, scopesImportPath) => {
1
+ export const serializeAIAgentTypes = (functionTypesImportPath, agentMapImportPath, scopesImportPath, scorerNamesImportPath) => {
2
2
  return `import {
3
3
  CoreAIAgent,
4
4
  PikkuAIMiddlewareHooks,
@@ -9,16 +9,21 @@ import {
9
9
  agentResume as coreAgentResume,
10
10
  agentApprove as coreAgentApprove,
11
11
  } from '@pikku/core/ai-agent'
12
+ import {
13
+ pikkuAIScorer as corePikkuAIScorer,
14
+ pikkuAIJudge as corePikkuAIJudge,
15
+ } from '@pikku/core/ai-scorer'
12
16
  import type { PikkuPermission, PikkuMiddleware, Services, PikkuFunctionConfig } from '${functionTypesImportPath}'
13
17
  import type { StandardSchemaV1 } from '@standard-schema/spec'
14
18
  import type { AIAgentMemoryConfig, AIAgentInput } from '@pikku/core/ai-agent'
15
19
  import type { AgentMap } from '${agentMapImportPath}'
16
20
  import type { ScopeId } from '${scopesImportPath}'
21
+ import type { ScorerName } from '${scorerNamesImportPath}'
17
22
 
18
23
  type AIAgentConfig<
19
24
  InputSchema extends StandardSchemaV1 | undefined = undefined,
20
25
  OutputSchema extends StandardSchemaV1 | undefined = undefined
21
- > = Omit<CoreAIAgent<PikkuPermission, PikkuMiddleware, ScopeId>, 'tools' | 'agents' | 'workflows' | 'memory' | 'input' | 'output'> & {
26
+ > = Omit<CoreAIAgent<PikkuPermission, PikkuMiddleware, ScopeId, ScorerName>, 'tools' | 'agents' | 'workflows' | 'memory' | 'input' | 'output'> & {
22
27
  input?: InputSchema
23
28
  output?: OutputSchema
24
29
  memory?: Omit<AIAgentMemoryConfig, 'workingMemory'> & { workingMemory?: StandardSchemaV1 }
@@ -36,6 +41,14 @@ export const pikkuAIAgent = <
36
41
  return agent
37
42
  }
38
43
 
44
+ export const pikkuAIScorer = (
45
+ config: Parameters<typeof corePikkuAIScorer<Services>>[0]
46
+ ) => corePikkuAIScorer<Services>(config)
47
+
48
+ export const pikkuAIJudge = (
49
+ config: Parameters<typeof corePikkuAIJudge<Services>>[0]
50
+ ) => corePikkuAIJudge<Services>(config)
51
+
39
52
  export const pikkuAIMiddleware = <
40
53
  State extends Record<string, unknown> = Record<string, unknown>,
41
54
  RequiredServices extends Services = Services,
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Bakes the `models` alias table into pikku state. Generated rather than read
3
+ * at runtime: a deployed unit never sees pikku.config.json.
4
+ */
5
+ export declare const serializeModelAliases: (models: Record<string, string> | undefined, addonName: string | null) => string;
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Bakes the `models` alias table into pikku state. Generated rather than read
3
+ * at runtime: a deployed unit never sees pikku.config.json.
4
+ */
5
+ export const serializeModelAliases = (models, addonName) => {
6
+ const packageArg = addonName ? `'${addonName}'` : 'null';
7
+ const table = JSON.stringify(models ?? {}, null, 2);
8
+ return `import { pikkuState } from '@pikku/core/ecosystem'
9
+
10
+ pikkuState(${packageArg}, 'agent', 'modelAliases', ${table})
11
+ `;
12
+ };
@@ -0,0 +1 @@
1
+ export declare const pikkuAIScorer: 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,51 @@
1
+ import { pikkuSessionlessFunc } from '#pikku';
2
+ import { writeFileInDir } from '../../../utils/file-writer.js';
3
+ import { logCommandInfoAndTime } from '../../../middleware/log-command-info-and-time.js';
4
+ import { getFileImportRelativePath } from '../../../utils/file-import-path.js';
5
+ import { serializeScorerNames } from './serialize-scorer-names.js';
6
+ export const pikkuAIScorer = pikkuSessionlessFunc({
7
+ func: async ({ logger, config, getInspectorState }) => {
8
+ const { scorers } = await getInspectorState();
9
+ const { scorerWiringsFile, scorerWiringMetaFile, scorerWiringMetaJsonFile, scorerNamesDeclarationFile, packageMappings, schema, addonName, } = config;
10
+ const scorerFiles = scorers.files;
11
+ // Written even when empty: the agent types file imports ScorerName
12
+ // unconditionally, so a project with no scorers still has to typecheck.
13
+ await writeFileInDir(logger, scorerNamesDeclarationFile, serializeScorerNames(scorers.scorersMeta));
14
+ if (scorerFiles.size === 0 ||
15
+ Object.keys(scorers.scorersMeta).length === 0) {
16
+ return undefined;
17
+ }
18
+ const lines = [];
19
+ lines.push(`import { addAIScorer } from '@pikku/core/ai-scorer'`);
20
+ // Ahead of the registrations: addAIScorer refuses a scorer whose metadata
21
+ // has not landed yet.
22
+ lines.push(`import '${getFileImportRelativePath(scorerWiringsFile, scorerWiringMetaFile, packageMappings)}'`);
23
+ const sortedScorers = Array.from(scorerFiles.entries()).sort((a, b) => a[0].localeCompare(b[0]));
24
+ for (const [, { path, exportedName }] of sortedScorers) {
25
+ const importPath = getFileImportRelativePath(scorerWiringsFile, path, packageMappings);
26
+ lines.push(`import { ${exportedName} } from '${importPath}'`);
27
+ }
28
+ lines.push('');
29
+ const packageArg = addonName ? `, '${addonName}'` : '';
30
+ for (const [scorerName, { exportedName }] of sortedScorers) {
31
+ lines.push(`addAIScorer('${scorerName}', ${exportedName}${packageArg})`);
32
+ }
33
+ await writeFileInDir(logger, scorerWiringsFile, lines.join('\n'));
34
+ await writeFileInDir(logger, scorerWiringMetaJsonFile, JSON.stringify({ scorersMeta: scorers.scorersMeta }, null, 2));
35
+ const jsonImportPath = getFileImportRelativePath(scorerWiringMetaFile, scorerWiringMetaJsonFile, packageMappings);
36
+ const importStatement = schema?.supportsImportAttributes
37
+ ? `import metaData from '${jsonImportPath}' with { type: 'json' }`
38
+ : `import metaData from '${jsonImportPath}'`;
39
+ await writeFileInDir(logger, scorerWiringMetaFile, `import { pikkuState } from '@pikku/core/ecosystem'
40
+ import type { ScorerMeta } from '@pikku/core/ai-scorer'
41
+ ${importStatement}
42
+ pikkuState(${addonName ? `'${addonName}'` : 'null'}, 'agent', 'scorersMeta', metaData.scorersMeta as ScorerMeta)`);
43
+ return true;
44
+ },
45
+ middleware: [
46
+ logCommandInfoAndTime({
47
+ commandStart: 'Finding AI scorers',
48
+ commandEnd: 'Found AI scorers',
49
+ }),
50
+ ],
51
+ });
@@ -0,0 +1,10 @@
1
+ import type { ScorerMeta } from '@pikku/core/ai-scorer';
2
+ /**
3
+ * The names an agent may ask to be graded by.
4
+ *
5
+ * Emitted even when there are none — the agent types file imports it
6
+ * unconditionally, so a project with no scorers still has to typecheck. `never`
7
+ * is what makes `scorers: ['typo']` a type error there rather than a silent
8
+ * no-op at runtime.
9
+ */
10
+ export declare const serializeScorerNames: (scorersMeta: ScorerMeta) => string;
@@ -0,0 +1,17 @@
1
+ /**
2
+ * The names an agent may ask to be graded by.
3
+ *
4
+ * Emitted even when there are none — the agent types file imports it
5
+ * unconditionally, so a project with no scorers still has to typecheck. `never`
6
+ * is what makes `scorers: ['typo']` a type error there rather than a silent
7
+ * no-op at runtime.
8
+ */
9
+ export const serializeScorerNames = (scorersMeta) => {
10
+ const names = Object.keys(scorersMeta).sort();
11
+ return `/**
12
+ * The AI scorers declared in this project.
13
+ */
14
+
15
+ export type ScorerName = ${names.length === 0 ? 'never' : names.map((name) => `'${name}'`).join(' | ')}
16
+ `;
17
+ };
@@ -2,6 +2,6 @@ export declare const pikkuAuth: 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>;
@@ -36,10 +36,12 @@ function variableSchemaName(name, field) {
36
36
  // External consoles (served from another origin) cannot carry the session
37
37
  // cookie, so they authenticate with 'Authorization: Bearer <PIKKU_CONSOLE_TOKEN>'.
38
38
  // The expected token resolves through the secrets service per request and the
39
- // middleware is a no-op while the secret is unset. Emitted into the same
40
- // addHTTPMiddleware('*') call as the session middleware: the inspector keys
41
- // route-middleware groups by pattern, so a second '*' registration from another
42
- // file would silently displace this one in deployed units.
39
+ // middleware is a no-op while the secret is unset. Emitted alongside the session
40
+ // middleware in one addGlobalMiddleware call. This used to be an
41
+ // addHTTPMiddleware('*') call and had to be a single one, because the inspector
42
+ // keys route-middleware groups by pattern and a second '*' registration would
43
+ // silently displace it; global middleware is an append-only list, so that
44
+ // hazard is gone.
43
45
  //
44
46
  // The session carries the two scope roots the console addon gates itself on.
45
47
  // Without them this token authenticates but authorizes nothing: `wireAddon`
@@ -157,7 +159,7 @@ export const serializeAuthGen = (definition, providers, authFile, typesDeclarati
157
159
  '// AUTO-GENERATED by pikku CLI — do not edit',
158
160
  '',
159
161
  emitStatefulSession
160
- ? `import { pikkuSessionlessFunc, wireHTTPRoutes, addHTTPMiddleware } from '${pikkuTypesImportPath}'`
162
+ ? `import { pikkuSessionlessFunc, wireHTTPRoutes } from '${pikkuTypesImportPath}'\nimport { addGlobalMiddleware } from '@pikku/core/middleware'`
161
163
  : `import { pikkuSessionlessFunc, wireHTTPRoutes } from '${pikkuTypesImportPath}'`,
162
164
  emitStatefulSession
163
165
  ? `import { createAuthHandler, betterAuthSession } from '@pikku/better-auth'`
@@ -183,10 +185,10 @@ export const serializeAuthGen = (definition, providers, authFile, typesDeclarati
183
185
  // Stateful: betterAuthSession calls services.auth(), so it stays here with
184
186
  // the auth.wiring import.
185
187
  if (includeConsoleToken) {
186
- wiring.push(`addHTTPMiddleware('*', [`, ` betterAuthSession(),`, ...consoleTokenMiddlewareLines(), `])`, '');
188
+ wiring.push(`addGlobalMiddleware([`, ` betterAuthSession(),`, ...consoleTokenMiddlewareLines(), `])`, '');
187
189
  }
188
190
  else {
189
- wiring.push(`addHTTPMiddleware('*', [betterAuthSession()])`, '');
191
+ wiring.push(`addGlobalMiddleware([betterAuthSession()])`, '');
190
192
  }
191
193
  }
192
194
  // `pikku` tag marks these as scaffold plumbing (not user-authored wiring) so
@@ -208,10 +210,25 @@ export const serializeAuthGen = (definition, providers, authFile, typesDeclarati
208
210
  if (stateless) {
209
211
  // Stateless session middleware in its own file — imports neither auth.wiring
210
212
  // nor the better-auth server, so every unit's bootstrap stays lean.
213
+ // Global, not `addHTTPMiddleware('*')`.
214
+ //
215
+ // Both entries resolve a session from whatever request the call arrived on;
216
+ // neither is an HTTP routing concern. Registered as HTTP middleware they ran
217
+ // for HTTP wirings alone, so an MCP tool fronting a session-requiring
218
+ // function could only answer 'Authentication required' however the caller
219
+ // authenticated — the cookie was sent and never looked at.
220
+ //
221
+ // Wirings that carry no request are unaffected: every one of these opens
222
+ // with `if (!http?.request) return`, so queue, scheduler and CLI invocations
223
+ // pass straight through as before.
224
+ //
225
+ // This also retires the displacement hazard that kept both entries in one
226
+ // call — global middleware is a list rather than a map keyed by route
227
+ // pattern, so a second registration appends instead of overwriting.
211
228
  const middleware = [
212
229
  '// AUTO-GENERATED by pikku CLI — do not edit',
213
230
  '',
214
- `import { addHTTPMiddleware } from '${pikkuTypesImportPath}'`,
231
+ `import { addGlobalMiddleware } from '@pikku/core/middleware'`,
215
232
  `import { betterAuthStatelessSession } from '@pikku/better-auth'`,
216
233
  ...(includeConsoleToken
217
234
  ? [`import { authBearer } from '@pikku/core/middleware'`]
@@ -219,12 +236,12 @@ export const serializeAuthGen = (definition, providers, authFile, typesDeclarati
219
236
  '',
220
237
  ...(includeConsoleToken
221
238
  ? [
222
- `addHTTPMiddleware('*', [`,
239
+ `addGlobalMiddleware([`,
223
240
  ` betterAuthStatelessSession(),`,
224
241
  ...consoleTokenMiddlewareLines(),
225
242
  `])`,
226
243
  ]
227
- : [`addHTTPMiddleware('*', [betterAuthStatelessSession()])`]),
244
+ : [`addGlobalMiddleware([betterAuthStatelessSession()])`]),
228
245
  '',
229
246
  ];
230
247
  output.middleware = middleware.join('\n');
@@ -1 +1 @@
1
- export declare const pikkuChannels: import("#pikku").PikkuFunctionSessionlessConfig<void, void, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, void, "rpc" | "session", import("#pikku").WiredServices>, undefined, undefined>;
1
+ export declare const pikkuChannels: import("#pikku").PikkuFunctionSessionlessConfig<void, void, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, void, "rpc" | "session", import("#pikku").WiredServices, unknown>, undefined, undefined>;
@@ -26,7 +26,7 @@ export const pikkuChannels = pikkuVoidFunc({
26
26
  const importStatement = supportsImportAttributes
27
27
  ? `import metaData from '${jsonImportPath}' with { type: 'json' }`
28
28
  : `import metaData from '${jsonImportPath}'`;
29
- await writeFileInDir(logger, channelsWiringMetaFile, `import { pikkuState } from '@pikku/core/internal'\nimport { ChannelsMeta } from '@pikku/core/channel'\n${importStatement}\npikkuState(null, 'channel', 'meta', metaData as ChannelsMeta)`);
29
+ await writeFileInDir(logger, channelsWiringMetaFile, `import { pikkuState } from '@pikku/core/ecosystem'\nimport { ChannelsMeta } from '@pikku/core/channel'\n${importStatement}\npikkuState(null, 'channel', 'meta', metaData as ChannelsMeta)`);
30
30
  }
31
31
  },
32
32
  middleware: [
@@ -1 +1 @@
1
- export declare const pikkuChannelTypes: 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 pikkuChannelTypes: 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 pikkuChannelsMap: 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 pikkuChannelsMap: 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 pikkuCommandChannels: 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 pikkuCommandChannels: 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>;
@@ -41,7 +41,7 @@ export const pikkuCommandChannels = pikkuSessionlessFunc({
41
41
  const importStatement = supportsImportAttributes
42
42
  ? `import metaData from '${jsonImportPath}' with { type: 'json' }`
43
43
  : `import metaData from '${jsonImportPath}'`;
44
- await writeFileInDir(logger, channelsWiringMetaFile, `import { pikkuState } from '@pikku/core/internal'\nimport type { ChannelsMeta } from '@pikku/core/channel'\n${importStatement}\npikkuState(null, 'channel', 'meta', metaData as ChannelsMeta)`);
44
+ await writeFileInDir(logger, channelsWiringMetaFile, `import { pikkuState } from '@pikku/core/ecosystem'\nimport type { ChannelsMeta } from '@pikku/core/channel'\n${importStatement}\npikkuState(null, 'channel', 'meta', metaData as ChannelsMeta)`);
45
45
  return true;
46
46
  },
47
47
  middleware: [
@@ -1 +1 @@
1
- export declare const pikkuCLIEntry: 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 pikkuCLIEntry: 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,5 +1,5 @@
1
1
  type CLITypesCommandInput = {
2
2
  bootstrap?: boolean;
3
3
  };
4
- export declare const pikkuCLITypes: import("#pikku").PikkuFunctionConfig<CLITypesCommandInput, void, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<CLITypesCommandInput, void, "rpc" | "session", import("#pikku").WiredServices> | import("#pikku").PikkuFunction<CLITypesCommandInput, void, "rpc" | "session", import("#pikku").WiredServices>, undefined, undefined>;
4
+ export declare const pikkuCLITypes: import("#pikku").PikkuFunctionConfig<CLITypesCommandInput, void, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<CLITypesCommandInput, void, "rpc" | "session", import("#pikku").WiredServices, unknown> | import("#pikku").PikkuFunction<CLITypesCommandInput, void, "rpc" | "session", import("#pikku").WiredServices>, undefined, undefined>;
5
5
  export {};
@@ -1 +1 @@
1
- export declare const pikkuCLI: 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 pikkuCLI: 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>;
@@ -41,7 +41,7 @@ export const pikkuCLI = pikkuSessionlessFunc({
41
41
  const importStatement = supportsImportAttributes
42
42
  ? `import metaData from '${jsonImportPath}' with { type: 'json' }`
43
43
  : `import metaData from '${jsonImportPath}'`;
44
- await writeFileInDir(logger, cliWiringMetaFile, `import { pikkuState } from '@pikku/core/internal'\nimport { CLIMeta } from '@pikku/core/cli'\n${importStatement}\npikkuState(null, 'cli', 'meta', metaData as CLIMeta)`);
44
+ await writeFileInDir(logger, cliWiringMetaFile, `import { pikkuState } from '@pikku/core/ecosystem'\nimport { CLIMeta } from '@pikku/core/cli'\n${importStatement}\npikkuState(null, 'cli', 'meta', metaData as CLIMeta)`);
45
45
  return true;
46
46
  },
47
47
  middleware: [
@@ -61,7 +61,7 @@ import { wireChannel } from '${channelTypesPath}'
61
61
  import { pikkuMiddleware${hasAddonFuncs ? ', ref' : ''}, pikkuSessionlessFunc } from '${functionTypesPath}'
62
62
  import { generateCommandHelp } from '@pikku/core/cli'
63
63
  import { handleRawCLI, type RawCLIFrame } from '@pikku/core/cli/channel'
64
- import { pikkuState } from '@pikku/core/internal'
64
+ import { pikkuState, getSingletonServices, getCreateWireServices } from '@pikku/core/ecosystem'
65
65
  ${imports}
66
66
 
67
67
  // Middleware to close the channel after CLI command completes
@@ -108,12 +108,17 @@ export const cliHelp = pikkuSessionlessFunc<{ args?: string[] }, { help: string
108
108
  */
109
109
  export const cliRaw = pikkuSessionlessFunc<{ args: string[] }, RawCLIFrame>({
110
110
  auth: false,
111
- func: async (services, data: { args: string[] }, { channel, session }) => {
111
+ func: async (_services, data: { args: string[] }, { channel, session }) => {
112
112
  const { help, result, error, exitCode, commandId } = await handleRawCLI({
113
113
  programName: '${programName}',
114
114
  args: data.args,
115
- singletonServices: services as any,
116
- createWireServices: pikkuState(null, 'package', 'factories')?.createWireServices,
115
+ // The singletons, not this function's own view of them: a function body
116
+ // is handed \`secrets\` as a throwing accessor, and passing that down
117
+ // would strip every command run on this channel of a service its
118
+ // middleware is entitled to. Each command is stripped again by its own
119
+ // runner, so nothing gains access it would not have over HTTP.
120
+ singletonServices: getSingletonServices() as any,
121
+ createWireServices: getCreateWireServices(),
117
122
  // The connection authenticated during its upgrade — commands run as it.
118
123
  session,
119
124
  // The socket the command arrived on, so \`channel.remote(...)\` inside a
@@ -143,7 +148,7 @@ export const cliRaw = pikkuSessionlessFunc<{ args: string[] }, RawCLIFrame>({
143
148
  },
144
149
  })
145
150
 
146
- ${programMeta.auth === true
151
+ ${programMeta.auth !== false
147
152
  ? `/**
148
153
  * Refuses a connection that arrives without a session.
149
154
  *
@@ -168,8 +173,8 @@ export const cliRequireSession = pikkuSessionlessFunc<void, RawCLIFrame | void>(
168
173
  wireChannel({
169
174
  name: '${finalChannelName}',
170
175
  route: '${finalChannelRoute}',
171
- auth: ${programMeta.auth === true},
172
- ${programMeta.auth === true ? ' onConnect: cliRequireSession,\n' : ''} onMessageWiring: {
176
+ auth: ${programMeta.auth !== false},
177
+ ${programMeta.auth !== false ? ' onConnect: cliRequireSession,\n' : ''} onMessageWiring: {
173
178
  command: {
174
179
  '__help': {
175
180
  func: cliHelp,
@@ -1 +1 @@
1
- export declare const pikkuConsoleFunctions: 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 pikkuConsoleFunctions: 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 pikkuNodeTypes: 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 pikkuNodeTypes: 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 pikkuNodesMeta: 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 pikkuNodesMeta: 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>;
@@ -5,13 +5,6 @@ export const serializeConsoleFunctions = (pathToPikkuTypes, _pathToAgentTypes, g
5
5
  */
6
6
  import { z } from 'zod'
7
7
 
8
- export const SecretRef = z.object({ secretId: z.string() })
9
-
10
- export const SetSecret = z.object({
11
- secretId: z.string(),
12
- value: z.unknown(),
13
- })
14
-
15
8
  export const VariableRef = z.object({ variableId: z.string() })
16
9
 
17
10
  export const SetVariable = z.object({
@@ -24,34 +17,16 @@ export const ValueResult = z.object({
24
17
  value: z.unknown().nullable(),
25
18
  })
26
19
 
27
- export const Exists = z.object({ exists: z.boolean() })
28
-
29
20
  export const Success = z.object({ success: z.boolean() })
30
21
  `;
31
22
  const functions = `import { pikkuFunc, defineHTTPRoutes, wireHTTPRoutes, ref, wireAddon } from '${pathToPikkuTypes}'
32
23
  import {
33
- SecretRef,
34
- SetSecret,
35
24
  VariableRef,
36
25
  SetVariable,
37
26
  ValueResult,
38
- Exists,
39
27
  Success,
40
28
  } from './console.schemas.gen.js'
41
29
 
42
- export const pikkuConsoleSetSecret = pikkuFunc({
43
- secretBroker: true,
44
- tags: ['pikku'],
45
- description: 'Set the value of a secret',
46
- expose: true,
47
- input: SetSecret,
48
- output: Success,
49
- func: async ({ secrets }, { secretId, value }) => {
50
- await secrets.setSecret(secretId, value)
51
- return { success: true }
52
- },
53
- })
54
-
55
30
  export const pikkuConsoleGetVariable = pikkuFunc({
56
31
  tags: ['pikku'],
57
32
  description: 'Get the current value of a variable',
@@ -89,36 +64,6 @@ export const pikkuConsoleSetVariable = pikkuFunc({
89
64
  },
90
65
  })
91
66
 
92
- export const pikkuConsoleHasSecret = pikkuFunc({
93
- secretBroker: true,
94
- tags: ['pikku'],
95
- description: 'Check if a secret exists without reading its value',
96
- expose: true,
97
- input: SecretRef,
98
- output: Exists,
99
- func: async ({ secrets }, { secretId }) => {
100
- const exists = await secrets.hasSecret(secretId)
101
- return { exists }
102
- },
103
- })
104
-
105
- export const pikkuConsoleGetSecret = pikkuFunc({
106
- secretBroker: true,
107
- tags: ['pikku'],
108
- description: 'Get the current value of a secret',
109
- expose: true,
110
- input: SecretRef,
111
- output: ValueResult,
112
- func: async ({ secrets }, { secretId }) => {
113
- const exists = await secrets.hasSecret(secretId)
114
- if (!exists) {
115
- return { exists: false, value: null }
116
- }
117
- const value = await secrets.getSecret(secretId)
118
- return { exists: true, value: value.reveal() }
119
- },
120
- })
121
-
122
67
  export const consoleRoutes = defineHTTPRoutes({
123
68
  auth: false,
124
69
  tags: ['pikku'],
@@ -132,7 +77,15 @@ export const consoleRoutes = defineHTTPRoutes({
132
77
  },
133
78
  })
134
79
 
135
- wireAddon({ name: 'console', package: '@pikku/addon-console', scopes: ['admin'] })
80
+ wireAddon({
81
+ name: 'console',
82
+ package: '@pikku/addon-console',
83
+ scopes: ['admin'],
84
+ globalSecrets:
85
+ 'the console administers secrets an operator names at runtime, so no static declaration can cover them',
86
+ globalCredentials:
87
+ 'the console lists and links credentials across every user, so it cannot be scoped to a declared set',
88
+ })
136
89
  wireHTTPRoutes({ basePath: '${globalHTTPPrefix}', routes: { console: consoleRoutes } })
137
90
  `;
138
91
  return { schemas, functions };
@@ -1 +1 @@
1
- export declare const pikkuCredentials: 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 pikkuCredentials: 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,6 +1,6 @@
1
1
  import type { PikkuCLIConfig } from '../../../../types/config.js';
2
2
  import type { CLILogger } from '../../../services/cli-logger.service.js';
3
- export declare const pikkuEmails: 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>;
3
+ export declare const pikkuEmails: 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>;
4
4
  export declare function generateEmailsArtifacts(logger: CLILogger, config: Pick<PikkuCLIConfig, 'outDir'> & {
5
5
  emailTemplatesDir?: string;
6
6
  }): Promise<true | undefined>;
@@ -1,5 +1,5 @@
1
1
  type AddonTypesCommandInput = {
2
2
  bootstrap?: boolean;
3
3
  };
4
- export declare const pikkuAddonTypes: import("#pikku").PikkuFunctionConfig<AddonTypesCommandInput, void, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<AddonTypesCommandInput, void, "rpc" | "session", import("#pikku").WiredServices> | import("#pikku").PikkuFunction<AddonTypesCommandInput, void, "rpc" | "session", import("#pikku").WiredServices>, undefined, undefined>;
4
+ export declare const pikkuAddonTypes: import("#pikku").PikkuFunctionConfig<AddonTypesCommandInput, void, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<AddonTypesCommandInput, void, "rpc" | "session", import("#pikku").WiredServices, unknown> | import("#pikku").PikkuFunction<AddonTypesCommandInput, void, "rpc" | "session", import("#pikku").WiredServices>, undefined, undefined>;
5
5
  export {};
@@ -2,6 +2,6 @@ export declare const pikkuFunctionTypesSplit: import("#pikku").PikkuFunctionConf
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>;
@@ -2,6 +2,6 @@ export declare const pikkuFunctionTypes: 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 pikkuFunctions: 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 pikkuFunctions: 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>;
@@ -27,7 +27,7 @@ export const pikkuFunctions = pikkuSessionlessFunc({
27
27
  ? `import metaData from '${jsonImportPath}' with { type: 'json' }`
28
28
  : `import metaData from '${jsonImportPath}'`;
29
29
  const packageName = config.addonName ? `'${config.addonName}'` : 'null';
30
- await writeFileInDir(logger, functionsMetaFile, `import { pikkuState } from '@pikku/core/internal'\nimport type { FunctionsMeta } from '@pikku/core'\n${importStatement}\npikkuState(${packageName}, 'function', 'meta', metaData as FunctionsMeta)`);
30
+ await writeFileInDir(logger, functionsMetaFile, `import { pikkuState } from '@pikku/core/ecosystem'\nimport type { FunctionsMeta } from '@pikku/core'\n${importStatement}\npikkuState(${packageName}, 'function', 'meta', metaData as FunctionsMeta)`);
31
31
  // For addon packages, register ALL functions (they'll be invoked by consumers)
32
32
  // For main packages, only register functions that are invoked via internal RPCs
33
33
  const isAddon = !!config.addonName;
@@ -1,2 +1,2 @@
1
1
  export declare const serializeServicesMap: (allSingletonServices: string[], allWireServices: string[], requiredServices: Set<string>, forceRequiredServices: string[] | undefined, servicesImport: string, wireServicesImport: string, addonRequiredParentServices?: string[], authInjected?: boolean, agentScaffoldEnabled?: boolean) => string;
2
- export declare const pikkuServices: 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 pikkuServices: 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 pikkuSchemas: 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 pikkuSchemas: 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>;