@pikku/cli 0.12.120 → 0.12.122

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 (241) hide show
  1. package/CHANGELOG.md +217 -0
  2. package/console-app/assets/{abnfDiagram-N423BO3Z-Df3BCQUl.js → abnfDiagram-N423BO3Z-Dfq94a7u.js} +1 -1
  3. package/console-app/assets/architecture-TIHT7OUA-CA-Di-O3.js +1 -0
  4. package/console-app/assets/{architectureDiagram-T3A2C74G-BlV2VA0B.js → architectureDiagram-T3A2C74G-C9MjP0IU.js} +1 -1
  5. package/console-app/assets/{blockDiagram-VBNYF7ZC-BZ7GFw7a.js → blockDiagram-VBNYF7ZC-CGgHSlOO.js} +1 -1
  6. package/console-app/assets/{c4Diagram-5PPSVZJV-uXLYnA16.js → c4Diagram-5PPSVZJV-3kzckivq.js} +1 -1
  7. package/console-app/assets/channel-UOxM22B3.js +1 -0
  8. package/console-app/assets/{chunk-2GRJ4B5K-CU6Szqvt.js → chunk-2GRJ4B5K-UZ1q29J_.js} +1 -1
  9. package/console-app/assets/{chunk-4I5QYGJK-Bf8ARw9p.js → chunk-4I5QYGJK-bq4iSS6S.js} +1 -1
  10. package/console-app/assets/{chunk-5RXB4S5H-CuRjyaQR.js → chunk-5RXB4S5H-BCeU8nXq.js} +1 -1
  11. package/console-app/assets/{chunk-6Q2QTUOP-DMFott3W.js → chunk-6Q2QTUOP-DpsTVhit.js} +1 -1
  12. package/console-app/assets/{chunk-7Z6QIM7H-YJMK1J3W.js → chunk-7Z6QIM7H-I6XKkv2A.js} +1 -1
  13. package/console-app/assets/{chunk-GF5L2VYU-Co4slpk_.js → chunk-GF5L2VYU-aYODFCZ6.js} +1 -1
  14. package/console-app/assets/{chunk-I66GZJ75-CE6Jk-ML.js → chunk-I66GZJ75-CWdPrY4a.js} +1 -1
  15. package/console-app/assets/{chunk-JQJVKLGR-BjkITZJq.js → chunk-JQJVKLGR-D5bHP4bt.js} +1 -1
  16. package/console-app/assets/{chunk-KBJHAD2P-DdHZUbE2.js → chunk-KBJHAD2P-B-Spac9o.js} +1 -1
  17. package/console-app/assets/{chunk-NSK5VX7P-BB0gp55h.js → chunk-NSK5VX7P-0jZVLBhi.js} +1 -1
  18. package/console-app/assets/{chunk-QR6OTTB3-BhAzJcX6.js → chunk-QR6OTTB3-BurXFOtV.js} +1 -1
  19. package/console-app/assets/{chunk-RYQCIY6F-BaRFYCcu.js → chunk-RYQCIY6F-C4zacxhH.js} +1 -1
  20. package/console-app/assets/{chunk-UBXNYLIW-DN_ayb-W.js → chunk-UBXNYLIW-7RthekQ-.js} +1 -1
  21. package/console-app/assets/{chunk-W5SLKNZC-DQ0C1K0m.js → chunk-W5SLKNZC-rq3UcMTy.js} +1 -1
  22. package/console-app/assets/{chunk-WRU74C26-Dej4aDDK.js → chunk-WRU74C26-DUX-oZjQ.js} +1 -1
  23. package/console-app/assets/chunk-XXDRQBXY-gIL1rRSY.js +1 -0
  24. package/console-app/assets/classDiagram-JCYQIIEL-BwV1w5At.js +1 -0
  25. package/console-app/assets/classDiagram-v2-OCEON4UE-BwV1w5At.js +1 -0
  26. package/console-app/assets/{cose-bilkent-JH36ORCC-CaCBDIGn.js → cose-bilkent-JH36ORCC-DZn35HFs.js} +1 -1
  27. package/console-app/assets/{cynefin-VYW2F7L2-DvNj3Ktd.js → cynefin-VYW2F7L2-mZlOMKNi.js} +1 -1
  28. package/console-app/assets/{cynefinDiagram-MW4NZA55-2M1I4KVc.js → cynefinDiagram-MW4NZA55-uUAfUoag.js} +1 -1
  29. package/console-app/assets/{dagre-BX6AcUT6.js → dagre-DfTmIhGN.js} +1 -1
  30. package/console-app/assets/{dagre-VZM6K2ZE-CeiMExQ0.js → dagre-VZM6K2ZE-7oTddCss.js} +1 -1
  31. package/console-app/assets/{diagram-7IWD3JNH-DFb1QCit.js → diagram-7IWD3JNH-D6TR4TlN.js} +1 -1
  32. package/console-app/assets/{diagram-B4RE2ZJO-CcmxcWm0.js → diagram-B4RE2ZJO-BZwUFLzC.js} +1 -1
  33. package/console-app/assets/{diagram-LBJQPF4R-DpxWXRoq.js → diagram-LBJQPF4R-B4Ug2xRo.js} +1 -1
  34. package/console-app/assets/{diagram-Q27KOJAE-Cu_MNubg.js → diagram-Q27KOJAE-Fpr_Cahs.js} +1 -1
  35. package/console-app/assets/{diagram-UB23O5K3-B-R4JZVn.js → diagram-UB23O5K3-d0X7PA-5.js} +1 -1
  36. package/console-app/assets/{ebnfDiagram-BXEA7PRR-C26G-5vz.js → ebnfDiagram-BXEA7PRR-DExP954c.js} +1 -1
  37. package/console-app/assets/{erDiagram-JOGREHBK-DJaz9wds.js → erDiagram-JOGREHBK-WdnXmG8f.js} +1 -1
  38. package/console-app/assets/eventmodeling-45OFAUF4-DXnDrAdV.js +1 -0
  39. package/console-app/assets/flowDiagram-UKHOOZJN-UixAvy5Z.js +1 -0
  40. package/console-app/assets/{ganttDiagram-PKOTCBZU-BmHvLxmw.js → ganttDiagram-PKOTCBZU-ADJHCyvl.js} +1 -1
  41. package/console-app/assets/{gitGraph-TEB2WS4Q-gjOfZX1j.js → gitGraph-TEB2WS4Q-BPcXt1vK.js} +1 -1
  42. package/console-app/assets/{gitGraphDiagram-DS77QQ5N-Cn2aQfgw.js → gitGraphDiagram-DS77QQ5N-DFhenfUX.js} +1 -1
  43. package/console-app/assets/{index-Cx39I_BR.js → index-BwP6EcJr.js} +3 -3
  44. package/console-app/assets/{info-DKCQHKI2-Dxvvr3Du.js → info-DKCQHKI2-BsE7egna.js} +1 -1
  45. package/console-app/assets/{infoDiagram-6WML65LV-CU2DYprj.js → infoDiagram-6WML65LV-BmVqXMw0.js} +1 -1
  46. package/console-app/assets/{ishikawaDiagram-WSZJBQD7-CEIhGAXe.js → ishikawaDiagram-WSZJBQD7-CdFTPIY5.js} +1 -1
  47. package/console-app/assets/{journeyDiagram-NVQOT4AX-vDLEtm6u.js → journeyDiagram-NVQOT4AX-DC8CKdJk.js} +1 -1
  48. package/console-app/assets/{kanban-definition-27J2QSJJ-rfZdVBY0.js → kanban-definition-27J2QSJJ-Bo7kRcLN.js} +1 -1
  49. package/console-app/assets/{line-CK7XHoXo.js → line-5nUqh22u.js} +1 -1
  50. package/console-app/assets/{linear-DeA9Np_F.js → linear-82KoPtTH.js} +1 -1
  51. package/console-app/assets/{mermaid-parser.core-Bkwm3osM.js → mermaid-parser.core-R240ylPw.js} +3 -3
  52. package/console-app/assets/{mermaid.core-DvVwOMEV.js → mermaid.core-BZ3jSM6D.js} +4 -4
  53. package/console-app/assets/{mindmap-definition-FAOFIHXS-DYMAQz7X.js → mindmap-definition-FAOFIHXS-x1K54VeO.js} +1 -1
  54. package/console-app/assets/{packet-7NZHBO7P-CtoDJZ2L.js → packet-7NZHBO7P-CE2Lun0t.js} +1 -1
  55. package/console-app/assets/{pegDiagram-VL7TDLO6-BRxy7Znf.js → pegDiagram-VL7TDLO6-CpGZYdUz.js} +1 -1
  56. package/console-app/assets/{pie-RZYD4A2V-NEqmtqwU.js → pie-RZYD4A2V-Hf5MOyY8.js} +1 -1
  57. package/console-app/assets/{pieDiagram-7S7Q4E2Y-eekm9APm.js → pieDiagram-7S7Q4E2Y-0J5H7r7g.js} +1 -1
  58. package/console-app/assets/{quadrantDiagram-CIZ2JOQS-BSew_APH.js → quadrantDiagram-CIZ2JOQS-DWtYi8O-.js} +1 -1
  59. package/console-app/assets/{radar-I7S5WNFK-BgvnQqhv.js → radar-I7S5WNFK-BgtvrX4w.js} +1 -1
  60. package/console-app/assets/{railroad-3IZDKUUU-DqG1o6ll.js → railroad-3IZDKUUU-CeR0NhLL.js} +1 -1
  61. package/console-app/assets/railroad-abnf-AHOZXSZD-BEVU16-y.js +1 -0
  62. package/console-app/assets/railroad-ebnf-EBAXGLYW-WT4rrGXf.js +1 -0
  63. package/console-app/assets/railroad-peg-LSFZ7HO6-BnObCMjn.js +1 -0
  64. package/console-app/assets/{railroadDiagram-AXF67PYL-Rb5V_7ZT.js → railroadDiagram-AXF67PYL-CUIn_gPf.js} +1 -1
  65. package/console-app/assets/{requirementDiagram-LRYGKXZP-BONrWtQh.js → requirementDiagram-LRYGKXZP-Ds9Aqcts.js} +1 -1
  66. package/console-app/assets/{sankeyDiagram-W5VNT64P-CUPWhFm-.js → sankeyDiagram-W5VNT64P-CKhuya4d.js} +1 -1
  67. package/console-app/assets/{sequenceDiagram-SI44F4Z6-DXwluQXT.js → sequenceDiagram-SI44F4Z6-DKgOmdzz.js} +1 -1
  68. package/console-app/assets/{src-CyNQB37R.js → src-DwHVY--Z.js} +1 -1
  69. package/console-app/assets/{stateDiagram-OKZ733FA-DXopCa6U.js → stateDiagram-OKZ733FA-CPIfaZie.js} +1 -1
  70. package/console-app/assets/stateDiagram-v2-UEYNNEHI-DHcCmJ1C.js +1 -0
  71. package/console-app/assets/{swimlanes-SLNWSIFB-C_oImvSp.js → swimlanes-SLNWSIFB-8q3lK4RS.js} +1 -1
  72. package/console-app/assets/swimlanesDiagram-ULZ7WXOC-B1uT0NiL.js +8 -0
  73. package/console-app/assets/{timeline-definition-Z64GVDOM-BEx4FmJK.js → timeline-definition-Z64GVDOM-CHHi2Rpq.js} +1 -1
  74. package/console-app/assets/{treeView-QDETBFTQ-DIQFLe_6.js → treeView-QDETBFTQ-DrLHlsII.js} +1 -1
  75. package/console-app/assets/{treemap-6X3UGDF4-Dz8_vGjV.js → treemap-6X3UGDF4-C3saYKuK.js} +1 -1
  76. package/console-app/assets/{vennDiagram-T6HMQDX7-_sMSuxYe.js → vennDiagram-T6HMQDX7-CdyzNiAu.js} +1 -1
  77. package/console-app/assets/{wardley-OPB4EBWU-BkFD9f0r.js → wardley-OPB4EBWU-BSrymyse.js} +1 -1
  78. package/console-app/assets/{wardleyDiagram-T6FBY63Y-DhqBDV2O.js → wardleyDiagram-T6FBY63Y-CCW6rhEo.js} +1 -1
  79. package/console-app/assets/{xychartDiagram-ELKLHX3M-D8Jav5f0.js → xychartDiagram-ELKLHX3M-BQvPaxzg.js} +1 -1
  80. package/console-app/index.html +1 -1
  81. package/dist/.pikku/addon/index.d.ts +1 -1
  82. package/dist/.pikku/addon/index.js +1 -1
  83. package/dist/.pikku/addon/pikku-addon-types.gen.d.ts +1 -1
  84. package/dist/.pikku/addon/pikku-addon-types.gen.js +1 -1
  85. package/dist/.pikku/agent/index.d.ts +1 -1
  86. package/dist/.pikku/agent/index.js +1 -1
  87. package/dist/.pikku/agent/pikku-agent-types.gen.d.ts +1 -1
  88. package/dist/.pikku/agent/pikku-model-aliases.gen.js +1 -1
  89. package/dist/.pikku/auth/index.d.ts +1 -1
  90. package/dist/.pikku/auth/index.js +1 -1
  91. package/dist/.pikku/auth/pikku-auth-types.gen.d.ts +1 -1
  92. package/dist/.pikku/auth/pikku-auth-types.gen.js +1 -1
  93. package/dist/.pikku/channel/index.d.ts +1 -1
  94. package/dist/.pikku/channel/index.js +1 -1
  95. package/dist/.pikku/channel/pikku-channel-types.gen.d.ts +1 -1
  96. package/dist/.pikku/channel/pikku-channel-types.gen.js +1 -1
  97. package/dist/.pikku/cli/index.d.ts +1 -1
  98. package/dist/.pikku/cli/index.js +1 -1
  99. package/dist/.pikku/cli/pikku-cli-channel.js +11 -1
  100. package/dist/.pikku/cli/pikku-cli-client.gen.d.ts +1 -1
  101. package/dist/.pikku/cli/pikku-cli-client.gen.js +1 -1
  102. package/dist/.pikku/cli/pikku-cli-contracts-meta.gen.d.ts +1 -1
  103. package/dist/.pikku/cli/pikku-cli-contracts-meta.gen.js +1 -1
  104. package/dist/.pikku/cli/pikku-cli-contracts-meta.gen.json +49 -0
  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 +49 -0
  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 +39 -1
  123. package/dist/.pikku/function/pikku-functions.gen.js +1 -1
  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/rpc/pikku-rpc-wirings-meta.internal.gen.json +2 -0
  154. package/dist/.pikku/scenarios/index.d.ts +1 -1
  155. package/dist/.pikku/scenarios/index.js +1 -1
  156. package/dist/.pikku/scenarios/pikku-personas.gen.js +1 -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 +9 -1
  169. package/dist/.pikku/schemas/schemas/FabricVariablesGetInput.schema.json +1 -0
  170. package/dist/.pikku/schemas/schemas/FabricVariablesGetOutput.schema.json +1 -0
  171. package/dist/.pikku/schemas/schemas/FabricVariablesSetInput.schema.json +1 -0
  172. package/dist/.pikku/schemas/schemas/FabricVariablesSetOutput.schema.json +1 -0
  173. package/dist/.pikku/scopes/index.d.ts +1 -1
  174. package/dist/.pikku/scopes/index.js +1 -1
  175. package/dist/.pikku/scopes/pikku-personas.gen.js +1 -1
  176. package/dist/.pikku/scopes/pikku-roles.gen.d.ts +1 -1
  177. package/dist/.pikku/scopes/pikku-scope-types.gen.d.ts +1 -1
  178. package/dist/.pikku/scopes/pikku-scope-types.gen.js +1 -1
  179. package/dist/.pikku/scopes/pikku-scopes.gen.d.ts +1 -1
  180. package/dist/.pikku/secrets/index.d.ts +1 -1
  181. package/dist/.pikku/secrets/index.js +1 -1
  182. package/dist/.pikku/secrets/pikku-secret-types.gen.d.ts +1 -1
  183. package/dist/.pikku/secrets/pikku-secret-types.gen.js +1 -1
  184. package/dist/.pikku/secrets/pikku-secrets.gen.d.ts +1 -1
  185. package/dist/.pikku/secrets/pikku-secrets.gen.js +1 -1
  186. package/dist/.pikku/services/pikku-meta-service.gen.d.ts +1 -1
  187. package/dist/.pikku/services/pikku-meta-service.gen.js +1 -1
  188. package/dist/.pikku/setup/index.d.ts +1 -1
  189. package/dist/.pikku/setup/index.js +1 -1
  190. package/dist/.pikku/setup/pikku-setup-types.gen.d.ts +1 -1
  191. package/dist/.pikku/setup/pikku-setup-types.gen.js +1 -1
  192. package/dist/.pikku/trigger/index.d.ts +1 -1
  193. package/dist/.pikku/trigger/index.js +1 -1
  194. package/dist/.pikku/trigger/pikku-trigger-types.gen.d.ts +1 -1
  195. package/dist/.pikku/trigger/pikku-trigger-types.gen.js +1 -1
  196. package/dist/.pikku/variables/index.d.ts +1 -1
  197. package/dist/.pikku/variables/index.js +1 -1
  198. package/dist/.pikku/variables/pikku-variable-types.gen.d.ts +1 -1
  199. package/dist/.pikku/variables/pikku-variable-types.gen.js +1 -1
  200. package/dist/.pikku/variables/pikku-variables.gen.d.ts +1 -1
  201. package/dist/.pikku/variables/pikku-variables.gen.js +1 -1
  202. package/dist/.pikku/workflow/index.d.ts +1 -1
  203. package/dist/.pikku/workflow/index.js +1 -1
  204. package/dist/.pikku/workflow/pikku-workflow-types.gen.d.ts +1 -1
  205. package/dist/.pikku/workflow/pikku-workflow-types.gen.js +1 -1
  206. package/dist/.pikku/workflow/pikku-workflow-wirings-meta.gen.js +1 -1
  207. package/dist/.pikku/workflow/pikku-workflow-wirings.gen.js +1 -1
  208. package/dist/bin/pikku-bin.mjs +2 -2
  209. package/dist/src/fabric/fabric-commands.d.ts +52 -0
  210. package/dist/src/fabric/fabric-commands.js +25 -0
  211. package/dist/src/fabric/functions/validate.function.js +22 -2
  212. package/dist/src/fabric/functions/variables-get.function.d.ts +36 -0
  213. package/dist/src/fabric/functions/variables-get.function.js +46 -0
  214. package/dist/src/fabric/functions/variables-set.function.d.ts +32 -0
  215. package/dist/src/fabric/functions/variables-set.function.js +41 -0
  216. package/dist/src/fabric/lib/variable-value.d.ts +15 -0
  217. package/dist/src/fabric/lib/variable-value.js +22 -0
  218. package/dist/src/functions/wirings/agent/serialize-public-agent.js +7 -19
  219. package/dist/src/functions/wirings/console/serialize-console-functions.js +3 -12
  220. package/dist/src/functions/wirings/emails/serialize-emails.d.ts +10 -0
  221. package/dist/src/functions/wirings/emails/serialize-emails.js +30 -173
  222. package/dist/src/functions/wirings/virtual-user/serialize-virtual-user-functions.js +158 -438
  223. package/dist/src/functions/wirings/workflow/pikku-command-workflow.js +7 -7
  224. package/dist/src/functions/wirings/workflow/serialize-workflow-routes.js +11 -148
  225. package/dist/src/utils/pikku-cli-config.d.ts +18 -0
  226. package/dist/src/utils/pikku-cli-config.js +39 -0
  227. package/dist/tsconfig.tsbuildinfo +1 -1
  228. package/package.json +6 -6
  229. package/surface.json +1 -1
  230. package/console-app/assets/architecture-TIHT7OUA-i2kvkWiG.js +0 -1
  231. package/console-app/assets/channel-BjjIBjrV.js +0 -1
  232. package/console-app/assets/chunk-XXDRQBXY-COHoQA_g.js +0 -1
  233. package/console-app/assets/classDiagram-JCYQIIEL-BkQzFYJq.js +0 -1
  234. package/console-app/assets/classDiagram-v2-OCEON4UE-BkQzFYJq.js +0 -1
  235. package/console-app/assets/eventmodeling-45OFAUF4-Cge15uFd.js +0 -1
  236. package/console-app/assets/flowDiagram-UKHOOZJN-DN8OJeAP.js +0 -1
  237. package/console-app/assets/railroad-abnf-AHOZXSZD-DQHwBMhW.js +0 -1
  238. package/console-app/assets/railroad-ebnf-EBAXGLYW-cu_kDg2r.js +0 -1
  239. package/console-app/assets/railroad-peg-LSFZ7HO6-CJh8d3dM.js +0 -1
  240. package/console-app/assets/stateDiagram-v2-UEYNNEHI-BCi_SQzZ.js +0 -1
  241. package/console-app/assets/swimlanesDiagram-ULZ7WXOC-C01TBFdM.js +0 -8
@@ -53,7 +53,11 @@ export const ThreadRef = z.object({
53
53
 
54
54
  export const ThreadDeleted = z.object({ deleted: z.boolean() })
55
55
  `;
56
- const functions = `import { canAccessThread, threadOwnerConstraint } from '@pikku/core/agent'
56
+ const functions = `import {
57
+ agentCallOptions,
58
+ canAccessThread,
59
+ threadOwnerConstraint,
60
+ } from '@pikku/core/agent'
57
61
  import { pikkuSessionlessFunc } from '${leaf('function')}'
58
62
  import { pikkuPermission } from '${leaf('auth')}'
59
63
  import { defineHTTPRoutes, wireHTTPRoutes } from '${leaf('http')}'
@@ -87,15 +91,7 @@ export const agentCaller = pikkuSessionlessFunc({
87
91
  auth: false,
88
92
  input: AgentCall,
89
93
  func: async (_services, data, { rpc }) => {
90
- return await rpc.agent.run(data.agentName as any, {
91
- message: data.message,
92
- threadId: data.threadId,
93
- resourceId: data.resourceId,
94
- ...(data.attachments ? { attachments: data.attachments } : {}),
95
- ...(data.model ? { model: data.model } : {}),
96
- ...(data.temperature !== undefined ? { temperature: data.temperature } : {}),
97
- ...(data.context ? { context: data.context } : {}),
98
- })
94
+ return await rpc.agent.run(data.agentName as any, agentCallOptions(data))
99
95
  },
100
96
  })
101
97
 
@@ -104,15 +100,7 @@ export const agentStreamCaller = pikkuSessionlessFunc({
104
100
  auth: false,
105
101
  input: AgentCall,
106
102
  func: async (_services, data, { rpc }) => {
107
- await rpc.agent.stream(data.agentName as any, {
108
- message: data.message,
109
- threadId: data.threadId,
110
- resourceId: data.resourceId,
111
- ...(data.attachments ? { attachments: data.attachments } : {}),
112
- ...(data.model ? { model: data.model } : {}),
113
- ...(data.temperature !== undefined ? { temperature: data.temperature } : {}),
114
- ...(data.context ? { context: data.context } : {}),
115
- })
103
+ await rpc.agent.stream(data.agentName as any, agentCallOptions(data))
116
104
  },
117
105
  })
118
106
 
@@ -40,13 +40,8 @@ export const pikkuConsoleGetVariable = pikkuFunc({
40
40
  if (!exists) {
41
41
  return { exists: false, value: null }
42
42
  }
43
- try {
44
- const value = await variables.get(variableId)
45
- return { exists: true, value }
46
- } catch {
47
- const value = await variables.get(variableId)
48
- return { exists: true, value }
49
- }
43
+ const value = await variables.get(variableId)
44
+ return { exists: true, value }
50
45
  },
51
46
  })
52
47
 
@@ -57,11 +52,7 @@ export const pikkuConsoleSetVariable = pikkuFunc({
57
52
  input: SetVariable,
58
53
  output: Success,
59
54
  func: async ({ variables }, { variableId, value }) => {
60
- if (typeof value === 'string') {
61
- await variables.set(variableId, value)
62
- } else {
63
- await variables.set(variableId, value)
64
- }
55
+ await variables.set(variableId, value)
65
56
  return { success: true }
66
57
  },
67
58
  })
@@ -16,5 +16,15 @@ type SerializeEmailsInput = {
16
16
  partials: Record<string, string>;
17
17
  templates: Record<string, EmailTemplateAssets>;
18
18
  };
19
+ /**
20
+ * The generated module is the assets and the types over them — the renderer
21
+ * itself is `renderEmail` in @pikku/core, which is the same for every
22
+ * application and which nothing here could typecheck or lint.
23
+ *
24
+ * What is genuinely per-application: the four asset blobs, the union of
25
+ * template and locale names taken from their keys, and `TemplateVariableMap`,
26
+ * which is what makes `renderEmailTemplate` reject a variable the named
27
+ * template does not declare.
28
+ */
19
29
  export declare const serializeEmailsModule: ({ theme, locales, partials, templates, }: SerializeEmailsInput) => string;
20
30
  export {};
@@ -1,9 +1,21 @@
1
+ /**
2
+ * The generated module is the assets and the types over them — the renderer
3
+ * itself is `renderEmail` in @pikku/core, which is the same for every
4
+ * application and which nothing here could typecheck or lint.
5
+ *
6
+ * What is genuinely per-application: the four asset blobs, the union of
7
+ * template and locale names taken from their keys, and `TemplateVariableMap`,
8
+ * which is what makes `renderEmailTemplate` reject a variable the named
9
+ * template does not declare.
10
+ */
1
11
  export const serializeEmailsModule = ({ theme, locales, partials, templates, }) => {
2
12
  const serializedTheme = JSON.stringify(theme, null, 2);
3
13
  const serializedLocales = JSON.stringify(locales, null, 2);
4
14
  const serializedPartials = JSON.stringify(partials, null, 2);
5
15
  const serializedTemplates = JSON.stringify(templates, null, 2);
6
- return `type EmailPrimitive = string | number | boolean | null | undefined
16
+ return `import { renderEmail, type EmailAssets } from '@pikku/core/services'
17
+
18
+ type EmailPrimitive = string | number | boolean | null | undefined
7
19
  type EmailTemplateValue = EmailPrimitive | Record<string, unknown> | Array<unknown>
8
20
 
9
21
  const EMAIL_THEME = ${serializedTheme} as const
@@ -48,192 +60,37 @@ export type RenderedEmail<TName extends EmailTemplateName> = {
48
60
  hash: (typeof EMAIL_TEMPLATES)[TName]['hashes'][EmailLocale]['contentHash']
49
61
  }
50
62
 
51
- function getNestedValue(source: Record<string, unknown>, path: string): string {
52
- const segments = path.split('.')
53
- let current: unknown = source
54
- for (const segment of segments) {
55
- if (!current || typeof current !== 'object' || !(segment in current)) {
56
- return ''
57
- }
58
- current = (current as Record<string, unknown>)[segment]
59
- }
60
- return typeof current === 'string' || typeof current === 'number'
61
- ? String(current)
62
- : ''
63
- }
64
-
65
- const HTML_ESCAPES: Record<string, string> = {
66
- '&': '&amp;',
67
- '<': '&lt;',
68
- '>': '&gt;',
69
- '"': '&quot;',
70
- "'": '&#39;',
71
- }
72
-
73
- function escapeHtml(value: string): string {
74
- return value.replace(/[&<>"']/g, (char) => HTML_ESCAPES[char] ?? char)
75
- }
76
-
77
- // Matches the raw {{{ value }}} form before the escaped {{ value }} form, so the
78
- // opt-in escape hatch is never mistaken for a normal substitution.
79
- const TEMPLATE_TOKEN = /\\{\\{\\{\\s*([^{}]+?)\\s*\\}\\}\\}|\\{\\{\\s*([^}]+?)\\s*\\}\\}/g
80
-
81
- const PARTIAL_TOKEN = /\\{\\{\\s*>\\s*([a-zA-Z0-9-_/.]+)\\s*\\}\\}/g
82
-
83
- const MAX_TEMPLATE_DEPTH = 5
84
-
85
- // theme.json and the locale files ship with the templates, so they are treated as
86
- // template-author input: expanded before caller data and allowed to contain their
87
- // own placeholders. Everything else is caller-supplied.
88
- const TRUSTED_ROOTS = ['theme', 't']
89
-
90
- function isTrustedKey(key: string): boolean {
91
- return TRUSTED_ROOTS.includes(String(key.split('.')[0]))
92
- }
93
-
94
- function readToken(rawTriple: unknown, rawDouble: unknown) {
95
- const raw = typeof rawTriple === 'string'
96
- return { raw, key: String(raw ? rawTriple : rawDouble).trim() }
97
- }
98
-
99
- function expandPartials(source: string, depth = 0): string {
100
- if (depth >= MAX_TEMPLATE_DEPTH) return source
101
- let found = false
102
- const expanded = source.replace(PARTIAL_TOKEN, (_match, partialName) => {
103
- found = true
104
- const partial =
105
- EMAIL_PARTIALS[String(partialName).trim() as keyof typeof EMAIL_PARTIALS]
106
- return typeof partial === 'string' ? partial : ''
107
- })
108
- return found ? expandPartials(expanded, depth + 1) : expanded
109
- }
110
-
111
- function expandTrusted(
112
- source: string,
113
- context: Record<string, unknown>,
114
- escape: boolean
115
- ): string {
116
- let rendered = source
117
- for (let i = 0; i < MAX_TEMPLATE_DEPTH; i += 1) {
118
- let found = false
119
- const next = rendered.replace(
120
- TEMPLATE_TOKEN,
121
- (match, rawTriple, rawDouble) => {
122
- const { raw, key } = readToken(rawTriple, rawDouble)
123
- if (!isTrustedKey(key)) return match
124
- found = true
125
- const value = getNestedValue(context, key)
126
- return raw || !escape ? value : escapeHtml(value)
127
- }
128
- )
129
- if (!found || next === rendered) break
130
- rendered = next
131
- }
132
- return rendered
133
- }
134
-
135
- // A single substitution pass — the replacement text is never rescanned, so a
136
- // caller-supplied value can never be reinterpreted as a template.
137
- function substitute(
138
- source: string,
139
- context: Record<string, unknown>,
140
- escape: boolean
141
- ): string {
142
- return source.replace(TEMPLATE_TOKEN, (_match, rawTriple, rawDouble) => {
143
- const { raw, key } = readToken(rawTriple, rawDouble)
144
- if (key === 'content') {
145
- return typeof context.content === 'string' ? context.content : ''
146
- }
147
- if (key.startsWith('>')) {
148
- return ''
149
- }
150
- const value = getNestedValue(context, key)
151
- return raw || !escape ? value : escapeHtml(value)
152
- })
153
- }
154
-
155
- function renderTemplate(
156
- source: string,
157
- context: Record<string, unknown>,
158
- escape: boolean
159
- ): string {
160
- const composed = expandTrusted(expandPartials(source), context, escape)
161
- return substitute(composed, context, escape)
162
- }
63
+ // The assets are frozen literals so their keys can drive the types above; the
64
+ // renderer reads them as plain records.
65
+ const EMAIL_ASSETS = {
66
+ theme: EMAIL_THEME,
67
+ locales: EMAIL_LOCALES,
68
+ partials: EMAIL_PARTIALS,
69
+ templates: EMAIL_TEMPLATES,
70
+ } as unknown as EmailAssets
163
71
 
164
72
  export const EMAILS = EMAIL_TEMPLATES
165
73
 
166
74
  export function renderEmailTemplate<TName extends EmailTemplateName>(
167
75
  input: RenderEmailInput<TName>
168
76
  ): RenderedEmail<TName> {
169
- const locale = (input.locale ?? 'en') as EmailLocale
170
- const template = EMAIL_TEMPLATES[input.name]
171
- if (!template) {
172
- throw new Error(\`Unknown email template: \${String(input.name)}\`)
173
- }
174
-
175
- const strings = EMAIL_LOCALES[locale]
176
- if (!strings) {
177
- throw new Error(\`Unknown email locale: \${String(locale)}\`)
178
- }
179
-
180
- const data = (input.data ?? {}) as Record<string, unknown>
181
- const appName =
182
- (typeof data.appName === 'string' && data.appName) ||
183
- getNestedValue(EMAIL_THEME as Record<string, unknown>, 'appName')
184
-
185
- const baseContext = {
186
- ...data,
187
- locale,
188
- theme: EMAIL_THEME,
189
- t: strings,
190
- appName,
191
- }
192
-
193
- const subject = renderTemplate(template.subject, baseContext, false).trim()
194
-
195
- const htmlBody = renderTemplate(
196
- template.html,
77
+ const { locale, subject, html, text, variables, hash } = renderEmail(
78
+ EMAIL_ASSETS,
197
79
  {
198
- ...baseContext,
199
- subject,
200
- },
201
- true
80
+ name: String(input.name),
81
+ locale: input.locale as string | undefined,
82
+ data: (input.data ?? {}) as Record<string, unknown>,
83
+ }
202
84
  )
203
85
 
204
- const html = EMAIL_PARTIALS.layout
205
- ? renderTemplate(
206
- EMAIL_PARTIALS.layout,
207
- {
208
- ...baseContext,
209
- subject,
210
- content: htmlBody,
211
- },
212
- true
213
- )
214
- : htmlBody
215
-
216
- const text = template.text
217
- ? renderTemplate(
218
- template.text,
219
- {
220
- ...baseContext,
221
- subject,
222
- },
223
- false
224
- ).trim()
225
- : undefined
226
- const hash = (template.hashes[locale]?.contentHash ??
227
- '') as RenderedEmail<TName>['hash']
228
-
229
86
  return {
230
87
  name: input.name,
231
- locale,
88
+ locale: locale as EmailLocale,
232
89
  subject,
233
90
  html,
234
91
  ...(text ? { text } : {}),
235
- variables: template.variables,
236
- hash,
92
+ variables,
93
+ hash: hash as RenderedEmail<TName>['hash'],
237
94
  }
238
95
  }
239
96
  `;