@pikku/cli 0.12.154 → 0.12.156
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.
- package/console-app/assets/{HelpPanel-BPFBvwZj.js → HelpPanel-DaE02BQE.js} +1 -1
- package/console-app/assets/{abnfDiagram-VCTEODGH-DDuocZ0S.js → abnfDiagram-VCTEODGH-CExRuljg.js} +1 -1
- package/console-app/assets/architecture-7GRP2DOG-DMiKIh61.js +1 -0
- package/console-app/assets/{architectureDiagram-5GKGNRK7-bFIt59Dq.js → architectureDiagram-5GKGNRK7-uKjmdPIQ.js} +1 -1
- package/console-app/assets/{blockDiagram-I7D4REHJ-Bge8309x.js → blockDiagram-I7D4REHJ-DNgIFbT4.js} +1 -1
- package/console-app/assets/{c4Diagram-7LVT6UL2-BdJOmC5x.js → c4Diagram-7LVT6UL2-0vP9sLld.js} +1 -1
- package/console-app/assets/channel-D3pFDQ-Y.js +1 -0
- package/console-app/assets/{chunk-4HAMMTFA-Cenx-5I1.js → chunk-4HAMMTFA-BJ59eqJI.js} +1 -1
- package/console-app/assets/{chunk-75Z2AOVW-CAGQ08f_.js → chunk-75Z2AOVW-Bge6xoqX.js} +1 -1
- package/console-app/assets/{chunk-DU6HZSFF-Bhji7Bhy.js → chunk-DU6HZSFF-CkmYNhC5.js} +1 -1
- package/console-app/assets/{chunk-F27PBJKO-D7gTX3dk.js → chunk-F27PBJKO-C44ef28t.js} +1 -1
- package/console-app/assets/{chunk-GMAD6QVW-DkRx7Brv.js → chunk-GMAD6QVW-Bmqdx1l0.js} +1 -1
- package/console-app/assets/{chunk-GVQU2GXP-DEWdO9pP.js → chunk-GVQU2GXP-AQp_KNx4.js} +1 -1
- package/console-app/assets/{chunk-IMKFNOWR-C1Vtain1.js → chunk-IMKFNOWR-Ca3GoHnO.js} +1 -1
- package/console-app/assets/{chunk-L3NEJ4N5-B_nm0es0.js → chunk-L3NEJ4N5-C_GhayZt.js} +1 -1
- package/console-app/assets/{chunk-OSK3NFVY-C0EPlVq0.js → chunk-OSK3NFVY-DGzfF4JV.js} +1 -1
- package/console-app/assets/{chunk-P2QGCYS3-qs_HwIoO.js → chunk-P2QGCYS3-N8xMDiFw.js} +1 -1
- package/console-app/assets/{chunk-POPQ4Y6H-CJWbAVy_.js → chunk-POPQ4Y6H-CdhIikwj.js} +1 -1
- package/console-app/assets/{chunk-PWAF6VOD-CmyETkG4.js → chunk-PWAF6VOD-CdTJmOYg.js} +1 -1
- package/console-app/assets/{chunk-SHT3W25Y-Coqn0qc9.js → chunk-SHT3W25Y-Ctj8zSAF.js} +1 -1
- package/console-app/assets/{chunk-SVP7TREG-D1E3L3Ry.js → chunk-SVP7TREG-DTNKveWo.js} +1 -1
- package/console-app/assets/{chunk-TICWLB2K-bsfeT6VF.js → chunk-TICWLB2K-Df6e0LIf.js} +1 -1
- package/console-app/assets/chunk-XXDRQBXY-CPBzG1Ie.js +1 -0
- package/console-app/assets/classDiagram-ZZMXUADV-Bh5HK4MN.js +1 -0
- package/console-app/assets/classDiagram-v2-VYDZK3BY-Bh5HK4MN.js +1 -0
- package/console-app/assets/{cose-bilkent-JH36ORCC-H5-jGbyx.js → cose-bilkent-JH36ORCC-DBd_emhQ.js} +1 -1
- package/console-app/assets/{cynefin-OW5HDTMX-CljdWyve.js → cynefin-OW5HDTMX-3aBVpBMI.js} +1 -1
- package/console-app/assets/{cynefinDiagram-5FMLGOSQ-DmDd9Ruh.js → cynefinDiagram-5FMLGOSQ-5BZzBehJ.js} +1 -1
- package/console-app/assets/{dagre-ChLSY7zR.js → dagre-DATELzSq.js} +1 -1
- package/console-app/assets/{dagre-GXQ25YYZ-DT48xQuH.js → dagre-GXQ25YYZ-orKIUXIt.js} +1 -1
- package/console-app/assets/{diagram-S7CK7UJ4-DKPk5LKU.js → diagram-S7CK7UJ4-CwwxVQ_N.js} +1 -1
- package/console-app/assets/{diagram-UQ7AKVKN-BWnhjDbO.js → diagram-UQ7AKVKN-CcEJxIEU.js} +1 -1
- package/console-app/assets/{diagram-VSXAHHWV-1XCGd7TX.js → diagram-VSXAHHWV-DGfXNB6v.js} +1 -1
- package/console-app/assets/{diagram-VX7I27RA-8dIoEZIX.js → diagram-VX7I27RA-Kqkord1q.js} +1 -1
- package/console-app/assets/{diagram-Z3DM3KII-CgFhlsHg.js → diagram-Z3DM3KII-Dy5rfOxu.js} +1 -1
- package/console-app/assets/{ebnfDiagram-PWID7BFC-j8nbgcPz.js → ebnfDiagram-PWID7BFC-y1bmj1ry.js} +1 -1
- package/console-app/assets/{erDiagram-RLTQ6QDP-fQNmZd6-.js → erDiagram-RLTQ6QDP-CNk_w5Ib.js} +1 -1
- package/console-app/assets/eventmodeling-NTZA5JFV-DLjVcr4S.js +1 -0
- package/console-app/assets/flowDiagram-HODETNUW-CCiyVZIU.js +1 -0
- package/console-app/assets/{ganttDiagram-EL5Y4UJY-D8pzapyN.js → ganttDiagram-EL5Y4UJY-DdVaRGRy.js} +1 -1
- package/console-app/assets/{gitGraph-4MIJSDKK-BvRsGeLo.js → gitGraph-4MIJSDKK-DpSAepQv.js} +1 -1
- package/console-app/assets/{gitGraphDiagram-WWUBYQGX-C_qwjJL5.js → gitGraphDiagram-WWUBYQGX-CIhGnwZW.js} +1 -1
- package/console-app/assets/{graphlib-9R2fmYel.js → graphlib-CRp93vEd.js} +1 -1
- package/console-app/assets/{index-DMQFSpKy.js → index-B34OoL_f.js} +139 -136
- package/console-app/assets/{info-A6RAGUB7-BIjzE3Zr.js → info-A6RAGUB7-DckDPZ56.js} +1 -1
- package/console-app/assets/{infoDiagram-27XIBGKW-DbFqdvGy.js → infoDiagram-27XIBGKW-DMk6mpjP.js} +1 -1
- package/console-app/assets/{ishikawaDiagram-5VMMS53U-D5ei52Uz.js → ishikawaDiagram-5VMMS53U-Dqr5CEc9.js} +1 -1
- package/console-app/assets/{journeyDiagram-3NMN7TZE-DOVQGQxF.js → journeyDiagram-3NMN7TZE-Kv0orI9j.js} +1 -1
- package/console-app/assets/{kanban-definition-UXKFOSKX-D8cjrKvj.js → kanban-definition-UXKFOSKX-BrYb0IpS.js} +1 -1
- package/console-app/assets/{line-S23S00r8.js → line-D2jQ449E.js} +1 -1
- package/console-app/assets/{linear-C2q7Mgrm.js → linear-BKu0S9-y.js} +1 -1
- package/console-app/assets/{mermaid-parser.core-DFVvyiUd.js → mermaid-parser.core-DhWf8x6B.js} +3 -3
- package/console-app/assets/{mermaid.core-C85pnBPI.js → mermaid.core-RkgzUTr1.js} +4 -4
- package/console-app/assets/{mindmap-definition-YA3MSWOX-Bqn28yl9.js → mindmap-definition-YA3MSWOX-BKATx3X1.js} +1 -1
- package/console-app/assets/{packet-AYTQ26CC-Cj1kD_Xa.js → packet-AYTQ26CC-Dek-5xov.js} +1 -1
- package/console-app/assets/{pegDiagram-XKGWAZYB-DJ12pyU4.js → pegDiagram-XKGWAZYB-CkEJ5MeF.js} +1 -1
- package/console-app/assets/{pie-WAS4IAKB-BUmyuH7f.js → pie-WAS4IAKB-BIoN9DHQ.js} +1 -1
- package/console-app/assets/{pieDiagram-E7YTZNPT-jTvMRCtY.js → pieDiagram-E7YTZNPT-CEPQgMPk.js} +1 -1
- package/console-app/assets/{quadrantDiagram-AXDQQJYC-D826kpcV.js → quadrantDiagram-AXDQQJYC-eJxMa_50.js} +1 -1
- package/console-app/assets/{radar-RG4KPBEZ-CYbTAeXH.js → radar-RG4KPBEZ-BwJnovJ0.js} +1 -1
- package/console-app/assets/{railroad-74A4TZTK-mfMkjDWk.js → railroad-74A4TZTK-D1_fi4Md.js} +1 -1
- package/console-app/assets/railroad-abnf-HS5TGJTU-D-_q3UaA.js +1 -0
- package/console-app/assets/railroad-ebnf-LZEXJU2U-kh7JN-2k.js +1 -0
- package/console-app/assets/railroad-peg-WCYAUIDC-rrwoksLW.js +1 -0
- package/console-app/assets/{railroadDiagram-O6MQD6OU-CGlOEAk5.js → railroadDiagram-O6MQD6OU-BpOx1Ffe.js} +1 -1
- package/console-app/assets/{requirementDiagram-BXWQKSXE-DY_zQ4Qu.js → requirementDiagram-BXWQKSXE-D-IEFxpk.js} +1 -1
- package/console-app/assets/{sankeyDiagram-P5KCCOFB-B4QJZukx.js → sankeyDiagram-P5KCCOFB-SdALSgLt.js} +1 -1
- package/console-app/assets/{sequenceDiagram-WJ2MYXX4-DTERMwcf.js → sequenceDiagram-WJ2MYXX4-Burhioru.js} +1 -1
- package/console-app/assets/{src-CRoiE_Pf.js → src-BI-J79xw.js} +1 -1
- package/console-app/assets/{stateDiagram-D77RDMKH-BLnCP1RM.js → stateDiagram-D77RDMKH-BhWb5zb7.js} +1 -1
- package/console-app/assets/stateDiagram-v2-MP3YSRHH-OjHOAFS5.js +1 -0
- package/console-app/assets/{swimlanes-42K2YHIH-CwYZgjxi.js → swimlanes-42K2YHIH-BoaeXC6b.js} +1 -1
- package/console-app/assets/swimlanesDiagram-VR7AAH4N-CkKXVcij.js +8 -0
- package/console-app/assets/{timeline-definition-24CTP7MA-BEv4uhRy.js → timeline-definition-24CTP7MA-uuBDVcEL.js} +1 -1
- package/console-app/assets/{treeView-Q6P3EWNA-CHhQVPzu.js → treeView-Q6P3EWNA-BRZawPMp.js} +1 -1
- package/console-app/assets/{treemap-WGGIJYW6-DSnq4EZT.js → treemap-WGGIJYW6-WSINjp5g.js} +1 -1
- package/console-app/assets/{vennDiagram-4TSXK5OY-CHT6P8GK.js → vennDiagram-4TSXK5OY-K6UjE9uq.js} +1 -1
- package/console-app/assets/{wardley-WFR3VGLG-yPMtiazL.js → wardley-WFR3VGLG-BMecQ-Z6.js} +1 -1
- package/console-app/assets/{wardleyDiagram-VM6X3IG4-Df2U4u0X.js → wardleyDiagram-VM6X3IG4-9blTcGMt.js} +1 -1
- package/console-app/assets/{xychartDiagram-S5SC5T6Z-D4bRAEWS.js → xychartDiagram-S5SC5T6Z-DSnHhis6.js} +1 -1
- package/console-app/index.html +1 -1
- package/dist/.pikku/addon/index.d.ts +1 -1
- package/dist/.pikku/addon/index.js +1 -1
- package/dist/.pikku/addon/pikku-addon-types.gen.d.ts +1 -1
- package/dist/.pikku/addon/pikku-addon-types.gen.js +1 -1
- package/dist/.pikku/agent/index.d.ts +1 -1
- package/dist/.pikku/agent/index.js +1 -1
- package/dist/.pikku/agent/pikku-agent-types.gen.d.ts +1 -1
- package/dist/.pikku/agent/pikku-model-aliases.gen.js +1 -1
- package/dist/.pikku/analytics/index.d.ts +1 -1
- package/dist/.pikku/analytics/index.js +1 -1
- package/dist/.pikku/analytics/pikku-analytics-types.gen.d.ts +1 -1
- package/dist/.pikku/analytics/pikku-analytics-types.gen.js +1 -1
- package/dist/.pikku/auth/index.d.ts +1 -1
- package/dist/.pikku/auth/index.js +1 -1
- package/dist/.pikku/auth/pikku-auth-types.gen.d.ts +1 -1
- package/dist/.pikku/auth/pikku-auth-types.gen.js +1 -1
- package/dist/.pikku/channel/index.d.ts +1 -1
- package/dist/.pikku/channel/index.js +1 -1
- package/dist/.pikku/channel/pikku-channel-types.gen.d.ts +1 -1
- package/dist/.pikku/channel/pikku-channel-types.gen.js +1 -1
- package/dist/.pikku/cli/index.d.ts +1 -1
- package/dist/.pikku/cli/index.js +1 -1
- package/dist/.pikku/cli/pikku-cli-channel.js +1 -1
- package/dist/.pikku/cli/pikku-cli-client.gen.d.ts +1 -1
- package/dist/.pikku/cli/pikku-cli-client.gen.js +15 -5
- package/dist/.pikku/cli/pikku-cli-contracts-meta.gen.d.ts +1 -1
- package/dist/.pikku/cli/pikku-cli-contracts-meta.gen.js +1 -1
- package/dist/.pikku/cli/pikku-cli-contracts-meta.gen.json +1 -1
- package/dist/.pikku/cli/pikku-cli-types.gen.d.ts +1 -1
- package/dist/.pikku/cli/pikku-cli-types.gen.js +1 -1
- package/dist/.pikku/cli/pikku-cli-wirings-meta.gen.js +1 -1
- package/dist/.pikku/cli/pikku-cli-wirings-meta.gen.json +1 -1
- package/dist/.pikku/cli/pikku-cli-wirings.gen.d.ts +1 -1
- package/dist/.pikku/cli/pikku-cli-wirings.gen.js +1 -1
- package/dist/.pikku/cli/pikku-cli.gen.d.ts +1 -1
- package/dist/.pikku/cli/pikku-cli.gen.js +15 -6
- package/dist/.pikku/error/index.d.ts +1 -1
- package/dist/.pikku/error/index.js +1 -1
- package/dist/.pikku/error/pikku-error-types.gen.d.ts +1 -1
- package/dist/.pikku/error/pikku-error-types.gen.js +1 -1
- package/dist/.pikku/function/index.d.ts +1 -1
- package/dist/.pikku/function/index.js +1 -1
- package/dist/.pikku/function/pikku-function-types.gen.d.ts +1 -1
- package/dist/.pikku/function/pikku-function-types.gen.js +1 -1
- package/dist/.pikku/function/pikku-functions-meta.gen.js +1 -1
- package/dist/.pikku/function/pikku-functions-meta.gen.json +35 -35
- package/dist/.pikku/function/pikku-functions.gen.js +1 -1
- package/dist/.pikku/gateway/index.d.ts +1 -1
- package/dist/.pikku/gateway/index.js +1 -1
- package/dist/.pikku/gateway/pikku-gateway-types.gen.d.ts +1 -1
- package/dist/.pikku/gateway/pikku-gateway-types.gen.js +1 -1
- package/dist/.pikku/http/index.d.ts +1 -1
- package/dist/.pikku/http/index.js +1 -1
- package/dist/.pikku/http/pikku-http-types.gen.d.ts +1 -1
- package/dist/.pikku/http/pikku-http-types.gen.js +1 -1
- package/dist/.pikku/mcp/index.d.ts +1 -1
- package/dist/.pikku/mcp/index.js +1 -1
- package/dist/.pikku/mcp/pikku-mcp-types.gen.d.ts +1 -1
- package/dist/.pikku/mcp/pikku-mcp-types.gen.js +1 -1
- package/dist/.pikku/middleware/index.d.ts +1 -1
- package/dist/.pikku/middleware/index.js +1 -1
- package/dist/.pikku/middleware/pikku-middleware-types.gen.d.ts +1 -1
- package/dist/.pikku/middleware/pikku-middleware-types.gen.js +1 -1
- package/dist/.pikku/pikku-bootstrap-scenarios.gen.d.ts +1 -1
- package/dist/.pikku/pikku-bootstrap-scenarios.gen.js +1 -1
- package/dist/.pikku/pikku-bootstrap.gen.d.ts +1 -1
- package/dist/.pikku/pikku-bootstrap.gen.js +1 -1
- package/dist/.pikku/pikku-services.gen.d.ts +1 -1
- package/dist/.pikku/queue/index.d.ts +1 -1
- package/dist/.pikku/queue/index.js +1 -1
- package/dist/.pikku/queue/pikku-queue-types.gen.d.ts +1 -1
- package/dist/.pikku/queue/pikku-queue-types.gen.js +1 -1
- package/dist/.pikku/queue/pikku-queue-workers-wirings-meta.gen.js +1 -1
- package/dist/.pikku/queue/pikku-queue-workers-wirings.gen.d.ts +1 -1
- package/dist/.pikku/queue/pikku-queue-workers-wirings.gen.js +1 -1
- package/dist/.pikku/rpc/pikku-rpc-wirings-meta.internal.gen.js +1 -1
- package/dist/.pikku/scenarios/index.d.ts +1 -1
- package/dist/.pikku/scenarios/index.js +1 -1
- package/dist/.pikku/scenarios/pikku-personas.gen.js +1 -1
- package/dist/.pikku/scenarios/pikku-scenario-functions-meta.gen.js +1 -1
- package/dist/.pikku/scenarios/pikku-scenario-functions.gen.d.ts +1 -1
- package/dist/.pikku/scenarios/pikku-scenario-types.gen.d.ts +1 -1
- package/dist/.pikku/scenarios/pikku-scenario-wirings-meta.gen.js +1 -1
- package/dist/.pikku/scenarios/pikku-scenario-wirings.gen.d.ts +1 -1
- package/dist/.pikku/scenarios/schemas/register.gen.d.ts +1 -1
- package/dist/.pikku/scenarios/schemas/register.gen.js +1 -1
- package/dist/.pikku/scheduler/index.d.ts +1 -1
- package/dist/.pikku/scheduler/index.js +1 -1
- package/dist/.pikku/scheduler/pikku-scheduler-types.gen.d.ts +1 -1
- package/dist/.pikku/scheduler/pikku-scheduler-types.gen.js +1 -1
- package/dist/.pikku/schemas/register.gen.js +1 -1
- package/dist/.pikku/scopes/index.d.ts +1 -1
- package/dist/.pikku/scopes/index.js +1 -1
- package/dist/.pikku/scopes/pikku-flags.gen.d.ts +1 -1
- package/dist/.pikku/scopes/pikku-personas.gen.js +1 -1
- package/dist/.pikku/scopes/pikku-roles.gen.d.ts +1 -1
- package/dist/.pikku/scopes/pikku-scope-types.gen.d.ts +1 -1
- package/dist/.pikku/scopes/pikku-scope-types.gen.js +1 -1
- package/dist/.pikku/scopes/pikku-scopes.gen.d.ts +1 -1
- package/dist/.pikku/secrets/index.d.ts +1 -1
- package/dist/.pikku/secrets/index.js +1 -1
- package/dist/.pikku/secrets/pikku-secret-types.gen.d.ts +1 -1
- package/dist/.pikku/secrets/pikku-secret-types.gen.js +1 -1
- package/dist/.pikku/secrets/pikku-secrets.gen.d.ts +1 -1
- package/dist/.pikku/secrets/pikku-secrets.gen.js +1 -1
- package/dist/.pikku/services/pikku-meta-service.gen.d.ts +1 -1
- package/dist/.pikku/services/pikku-meta-service.gen.js +1 -1
- package/dist/.pikku/setup/index.d.ts +1 -1
- package/dist/.pikku/setup/index.js +1 -1
- package/dist/.pikku/setup/pikku-setup-types.gen.d.ts +1 -1
- package/dist/.pikku/setup/pikku-setup-types.gen.js +1 -1
- package/dist/.pikku/trigger/index.d.ts +1 -1
- package/dist/.pikku/trigger/index.js +1 -1
- package/dist/.pikku/trigger/pikku-trigger-types.gen.d.ts +1 -1
- package/dist/.pikku/trigger/pikku-trigger-types.gen.js +1 -1
- package/dist/.pikku/variables/index.d.ts +1 -1
- package/dist/.pikku/variables/index.js +1 -1
- package/dist/.pikku/variables/pikku-variable-types.gen.d.ts +1 -1
- package/dist/.pikku/variables/pikku-variable-types.gen.js +1 -1
- package/dist/.pikku/variables/pikku-variables.gen.d.ts +1 -1
- package/dist/.pikku/variables/pikku-variables.gen.js +1 -1
- package/dist/.pikku/workflow/index.d.ts +1 -1
- package/dist/.pikku/workflow/index.js +1 -1
- package/dist/.pikku/workflow/pikku-workflow-types.gen.d.ts +1 -1
- package/dist/.pikku/workflow/pikku-workflow-types.gen.js +1 -1
- package/dist/.pikku/workflow/pikku-workflow-wirings-meta.gen.js +1 -1
- package/dist/.pikku/workflow/pikku-workflow-wirings.gen.js +1 -1
- package/dist/bin/pikku-bin.mjs +2 -2
- package/dist/bin/pikku.js +32 -2
- package/dist/src/fabric/fabric-commands.js +3 -1
- package/dist/src/fabric/functions/add.function.js +4 -3
- package/dist/src/fabric/functions/changes-file.function.js +2 -1
- package/dist/src/fabric/functions/changes-shot.function.js +3 -2
- package/dist/src/fabric/functions/db-schema.function.js +3 -2
- package/dist/src/fabric/functions/deploy-list.function.js +3 -2
- package/dist/src/fabric/functions/deploy-units.function.js +3 -2
- package/dist/src/fabric/functions/deploy.function.js +4 -4
- package/dist/src/fabric/functions/domains-add.function.js +4 -3
- package/dist/src/fabric/functions/domains-list.function.js +3 -2
- package/dist/src/fabric/functions/domains-remove.function.js +5 -4
- package/dist/src/fabric/functions/errors.function.js +3 -2
- package/dist/src/fabric/functions/findings-flush.function.js +2 -1
- package/dist/src/fabric/functions/init.function.js +3 -2
- package/dist/src/fabric/functions/link.function.js +10 -10
- package/dist/src/fabric/functions/login.function.js +4 -3
- package/dist/src/fabric/functions/logs.function.js +2 -2
- package/dist/src/fabric/functions/metrics.function.js +3 -2
- package/dist/src/fabric/functions/projects-list.function.js +2 -1
- package/dist/src/fabric/functions/publish.function.js +7 -6
- package/dist/src/fabric/functions/report.function.js +4 -3
- package/dist/src/fabric/functions/rollback.function.js +3 -2
- package/dist/src/fabric/functions/secrets-delete.function.js +5 -4
- package/dist/src/fabric/functions/secrets-list.function.js +3 -2
- package/dist/src/fabric/functions/secrets-rotate.function.js +4 -3
- package/dist/src/fabric/functions/secrets-set.function.js +11 -4
- package/dist/src/fabric/functions/smoke.function.js +4 -3
- package/dist/src/fabric/functions/status.function.js +3 -2
- package/dist/src/fabric/functions/trace.function.js +3 -2
- package/dist/src/fabric/functions/variables-get.function.js +3 -2
- package/dist/src/fabric/functions/variables-set.function.js +3 -2
- package/dist/src/fabric/lib/changes.js +3 -2
- package/dist/src/fabric/lib/config.js +2 -1
- package/dist/src/fabric/lib/deployment.js +2 -1
- package/dist/src/fabric/lib/git.d.ts +10 -1
- package/dist/src/fabric/lib/git.js +10 -1
- package/dist/src/fabric/lib/prompt.d.ts +14 -5
- package/dist/src/fabric/lib/prompt.js +78 -15
- package/dist/src/fabric/lib/sealed-box.js +3 -2
- package/dist/src/fabric/lib/stage.js +3 -2
- package/dist/src/functions/commands/audit.js +4 -2
- package/dist/src/functions/commands/watch.js +5 -2
- package/dist/src/functions/wirings/agent/serialize-public-agent.js +2 -0
- package/dist/src/functions/wirings/cli/serialize-channel-cli-client.js +18 -4
- package/dist/src/functions/wirings/cli/serialize-local-cli-bootstrap.js +16 -5
- package/dist/src/functions/wirings/credentials/pikku-command-credentials.js +26 -2
- package/dist/src/functions/wirings/credentials/serialize-credentials-types.d.ts +6 -2
- package/dist/src/functions/wirings/credentials/serialize-credentials-types.js +9 -3
- package/dist/src/functions/wirings/functions/pikku-command-addon-types.js +26 -5
- package/dist/src/functions/wirings/functions/serialize-addon-types.d.ts +1 -1
- package/dist/src/functions/wirings/functions/serialize-addon-types.js +46 -1
- package/dist/src/functions/wirings/mcp/pikku-command-mcp.js +7 -2
- package/dist/src/functions/wirings/middleware/pikku-command-middleware.js +13 -1
- package/dist/src/functions/wirings/middleware/serialize-middleware-imports.d.ts +13 -0
- package/dist/src/functions/wirings/middleware/serialize-middleware-imports.js +48 -8
- package/dist/src/functions/wirings/secrets/serialize-secrets-types.js +9 -4
- package/dist/src/functions/workflows/all.workflow.js +8 -0
- package/dist/src/services.js +1 -0
- package/dist/src/utils/pikku-cli-config-error.d.ts +8 -3
- package/dist/src/utils/pikku-cli-config-error.js +8 -3
- package/dist/src/utils/pikku-cli-config.js +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +8 -8
- package/surface.json +10 -20
- package/console-app/assets/architecture-7GRP2DOG-ClxOnHTX.js +0 -1
- package/console-app/assets/channel-c0xM4cPi.js +0 -1
- package/console-app/assets/chunk-XXDRQBXY-BkM8vXTQ.js +0 -1
- package/console-app/assets/classDiagram-ZZMXUADV-yCAU184A.js +0 -1
- package/console-app/assets/classDiagram-v2-VYDZK3BY-yCAU184A.js +0 -1
- package/console-app/assets/eventmodeling-NTZA5JFV-bHToGR6p.js +0 -1
- package/console-app/assets/flowDiagram-HODETNUW-Dd1RiDsS.js +0 -1
- package/console-app/assets/railroad-abnf-HS5TGJTU-nuNyByRg.js +0 -1
- package/console-app/assets/railroad-ebnf-LZEXJU2U-BztHKlS5.js +0 -1
- package/console-app/assets/railroad-peg-WCYAUIDC-Bw7jp-js.js +0 -1
- package/console-app/assets/stateDiagram-v2-MP3YSRHH-Bv8nfhYK.js +0 -1
- package/console-app/assets/swimlanesDiagram-VR7AAH4N-BtAfsGDG.js +0 -8
|
@@ -10,12 +10,57 @@
|
|
|
10
10
|
* `#pikku/addon/<leaf>` — a depth at which an application has nothing to match,
|
|
11
11
|
* leaving the resolver to fall back to Node's per-package `imports`.
|
|
12
12
|
*/
|
|
13
|
-
export const serializeAddonInstallTypes = () =>
|
|
13
|
+
export const serializeAddonInstallTypes = (addonFunctionNames = {}) => {
|
|
14
|
+
const packages = Object.entries(addonFunctionNames).filter(([, names]) => names.length > 0);
|
|
15
|
+
// Nothing installed yet — the bootstrap run writes this before any addon's
|
|
16
|
+
// metadata has been read, and a project with no addons never gets more.
|
|
17
|
+
if (packages.length === 0) {
|
|
18
|
+
return `/**
|
|
14
19
|
* Installing an addon into this application
|
|
15
20
|
*/
|
|
16
21
|
|
|
17
22
|
export { wireAddon, wireRemoteAddon } from '@pikku/core/addon'
|
|
18
23
|
`;
|
|
24
|
+
}
|
|
25
|
+
const entries = packages
|
|
26
|
+
.map(([pkg, names]) => ` ${JSON.stringify(pkg)}: ${names
|
|
27
|
+
.map((name) => JSON.stringify(name))
|
|
28
|
+
.join(' | ')}`)
|
|
29
|
+
.join('\n');
|
|
30
|
+
return `/**
|
|
31
|
+
* Installing an addon into this application
|
|
32
|
+
*/
|
|
33
|
+
|
|
34
|
+
import { wireAddon as wireAddonCore } from '@pikku/core/addon'
|
|
35
|
+
import type { WireAddonConfig } from '@pikku/core/addon'
|
|
36
|
+
|
|
37
|
+
export { wireRemoteAddon } from '@pikku/core/addon'
|
|
38
|
+
|
|
39
|
+
/**
|
|
40
|
+
* The functions each installed addon publishes. \`mcp\` names them.
|
|
41
|
+
*/
|
|
42
|
+
type AddonFunctions = {
|
|
43
|
+
${entries}
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
type AddonFunctionName<Package extends string> =
|
|
47
|
+
Package extends keyof AddonFunctions ? AddonFunctions[Package] : string
|
|
48
|
+
|
|
49
|
+
/**
|
|
50
|
+
* Installs an addon into this project: its functions, wirings and scopes become
|
|
51
|
+
* part of the app, under the namespace and options given here.
|
|
52
|
+
*
|
|
53
|
+
* \`mcp: true\` offers every function the addon itself declared as a tool; a list
|
|
54
|
+
* names the functions to offer, checked against the ones the addon publishes.
|
|
55
|
+
*/
|
|
56
|
+
export const wireAddon = <Package extends string>(
|
|
57
|
+
config: Omit<WireAddonConfig, 'package' | 'mcp'> & {
|
|
58
|
+
package: Package
|
|
59
|
+
mcp?: boolean | AddonFunctionName<Package>[]
|
|
60
|
+
}
|
|
61
|
+
): void => wireAddonCore(config)
|
|
62
|
+
`;
|
|
63
|
+
};
|
|
19
64
|
export const serializeAddonTypes = (singletonServicesTypeImport, singletonServicesTypeName, configTypeImport, requiredServicesTypeImport, typedSecretServiceImport, typedVariablesServiceImport, typedCredentialServiceImport = null) => {
|
|
20
65
|
return `/**
|
|
21
66
|
* Addon package types for pikkuAddonConfig and pikkuAddonServices
|
|
@@ -44,7 +44,9 @@ const generateArgumentsFromSchema = async (inputSchema, schemaDirectory, typesMa
|
|
|
44
44
|
}
|
|
45
45
|
catch (e) {
|
|
46
46
|
logger.warn(`Command MCP: Could not load schema for type: ${uniqueName} from ${schemaPath}`);
|
|
47
|
-
|
|
47
|
+
// The warning above is the actionable half; the cause is detail, and detail
|
|
48
|
+
// belongs behind the verbosity control rather than on everyone's stderr.
|
|
49
|
+
logger.debug(e instanceof Error ? (e.stack ?? e.message) : String(e));
|
|
48
50
|
return [];
|
|
49
51
|
}
|
|
50
52
|
};
|
|
@@ -55,7 +57,10 @@ export const pikkuMCP = pikkuSessionlessFunc({
|
|
|
55
57
|
const hasMcpContent = Object.keys(mcpEndpoints.toolsMeta).length > 0 ||
|
|
56
58
|
Object.keys(mcpEndpoints.resourcesMeta).length > 0 ||
|
|
57
59
|
Object.keys(mcpEndpoints.promptsMeta).length > 0;
|
|
58
|
-
|
|
60
|
+
// `files` only holds sources that call wireMCPTool/Resource/Prompt, which
|
|
61
|
+
// an addon contributing tools through `wireAddon({ mcp })` never does.
|
|
62
|
+
// Gate on the content, or an addon-only app generates no meta at all.
|
|
63
|
+
if (!hasMcpContent) {
|
|
59
64
|
return undefined;
|
|
60
65
|
}
|
|
61
66
|
await writeFileInDir(logger, mcpWiringsFile, serializeFileImports('wireMCPResource', mcpWiringsFile, mcpEndpoints.files, packageMappings));
|
|
@@ -13,10 +13,22 @@ export const pikkuMiddleware = pikkuSessionlessFunc({
|
|
|
13
13
|
const hasDefinitions = Object.keys(state.middleware.definitions).length > 0;
|
|
14
14
|
const hasChannelMiddleware = state.channelMiddleware.tagMiddleware.size > 0 ||
|
|
15
15
|
Object.keys(state.channelMiddleware.definitions).length > 0;
|
|
16
|
+
// A project whose only middleware is `addGlobalMiddleware([...])` over
|
|
17
|
+
// middleware defined in a package (a session bridge, say) has no group and
|
|
18
|
+
// no local definition, and used to generate no middleware file at all — so
|
|
19
|
+
// the registration never ran.
|
|
20
|
+
// `globalFiles` is the current record, but the serializer also still reads
|
|
21
|
+
// `global:*` out of `instances` so that a state serialized by an older
|
|
22
|
+
// inspector keeps working. This gate decides whether the serializer runs at
|
|
23
|
+
// all, so it has to accept exactly what the serializer accepts — otherwise
|
|
24
|
+
// an older state is dropped here and the file it needed is never written.
|
|
25
|
+
const hasGlobalMiddleware = (state.middleware.globalFiles?.size ?? 0) > 0 ||
|
|
26
|
+
Object.keys(state.middleware.instances).some((id) => id.startsWith('global:'));
|
|
16
27
|
if (hasHTTPGroups ||
|
|
17
28
|
hasTagGroups ||
|
|
18
29
|
hasDefinitions ||
|
|
19
|
-
hasChannelMiddleware
|
|
30
|
+
hasChannelMiddleware ||
|
|
31
|
+
hasGlobalMiddleware) {
|
|
20
32
|
const metaData = state.middlewareGroupsMeta;
|
|
21
33
|
await writeFileInDir(logger, config.middlewareGroupsMetaJsonFile, JSON.stringify(metaData, null, 2));
|
|
22
34
|
await writeFileInDir(logger, middlewareFile, serializeMiddlewareImports(middlewareFile, middleware, state.http, packageMappings, state));
|
|
@@ -1,2 +1,15 @@
|
|
|
1
1
|
import type { InspectorMiddlewareState, InspectorHTTPState, InspectorState } from '@pikku/inspector';
|
|
2
2
|
export declare const serializeMiddlewareImports: (outputPath: string, middlewareState: InspectorMiddlewareState, httpState: InspectorHTTPState, packageMappings?: Record<string, string>, fullState?: InspectorState) => string;
|
|
3
|
+
/**
|
|
4
|
+
* Fail the build if a file that calls `addGlobalMiddleware` has no side-effect
|
|
5
|
+
* import in the generated middleware file.
|
|
6
|
+
*
|
|
7
|
+
* Auth commonly lives in global middleware, and a deployed unit that misses its
|
|
8
|
+
* import does not fail to build — it serves every authenticated route a 401
|
|
9
|
+
* with a clean build log. Checking the emitted text (rather than the set it was
|
|
10
|
+
* built from) is what makes this a check and not a restatement: it fails if the
|
|
11
|
+
* emit is ever dropped, put behind a condition, or handed a path the import
|
|
12
|
+
* list does not actually carry. It cannot fire on a build that does emit the
|
|
13
|
+
* import.
|
|
14
|
+
*/
|
|
15
|
+
export declare const assertGlobalMiddlewareImported: (outputPath: string, output: string, globalImportPaths: Map<string, string>) => void;
|
|
@@ -54,21 +54,34 @@ export const serializeMiddlewareImports = (outputPath, middlewareState, httpStat
|
|
|
54
54
|
// Global middleware (addGlobalMiddleware) is registered by a top-level call
|
|
55
55
|
// at module evaluation, so a side-effect import of its source file runs the
|
|
56
56
|
// registration. Unlike tag/http middleware it has no associated wire group —
|
|
57
|
-
//
|
|
58
|
-
//
|
|
59
|
-
//
|
|
60
|
-
//
|
|
61
|
-
//
|
|
62
|
-
// in
|
|
57
|
+
// the inspector records it as a source file in `globalFiles` (and as
|
|
58
|
+
// `global:*` entries in `instances`) — so the per-unit `--names` filter
|
|
59
|
+
// leaves it out of every deployed unit (the `state.http.files` fallback that
|
|
60
|
+
// add-middleware adds gets stripped by that filter). Emitting it here, into
|
|
61
|
+
// the always-bootstrap-imported pikku-middleware.gen.ts, guarantees global
|
|
62
|
+
// middleware registers in every unit. A duplicate import in full builds is
|
|
63
|
+
// harmless — module bodies evaluate once.
|
|
63
64
|
//
|
|
64
65
|
// `isFactoryCall` is not consulted: it distinguishes `mw()` from `mw` as an
|
|
65
66
|
// array element, not a deferred registration behind an exported factory, and
|
|
66
67
|
// addGlobalMiddleware registers at module evaluation under either form.
|
|
68
|
+
//
|
|
69
|
+
// `globalFiles` is the primary source: it is a plain set of file names, where
|
|
70
|
+
// `instances` is a map whose keys an unrelated registration could once
|
|
71
|
+
// collide with. The `global:*` sweep stays as well, so a state serialized by
|
|
72
|
+
// an older inspector (no `globalFiles`) still emits its imports.
|
|
73
|
+
const globalSourceFiles = new Set(middlewareState.globalFiles ?? []);
|
|
67
74
|
for (const [instanceId, instance] of Object.entries(middlewareState.instances)) {
|
|
68
75
|
if (instanceId.startsWith('global:')) {
|
|
69
|
-
|
|
76
|
+
globalSourceFiles.add(instance.sourceFile);
|
|
70
77
|
}
|
|
71
78
|
}
|
|
79
|
+
const globalImportPaths = new Map();
|
|
80
|
+
for (const sourceFile of globalSourceFiles) {
|
|
81
|
+
const filePath = getFileImportRelativePath(outputPath, sourceFile, packageMappings);
|
|
82
|
+
globalImportPaths.set(sourceFile, filePath);
|
|
83
|
+
directImports.add(filePath);
|
|
84
|
+
}
|
|
72
85
|
const allFactories = new Map([
|
|
73
86
|
...httpFactories,
|
|
74
87
|
...tagFactories,
|
|
@@ -90,5 +103,32 @@ export const serializeMiddlewareImports = (outputPath, middlewareState, httpStat
|
|
|
90
103
|
serializedFactoryCalls.push(`${exportName}()`);
|
|
91
104
|
}
|
|
92
105
|
}
|
|
93
|
-
|
|
106
|
+
const output = [...serializedImports, ...serializedFactoryCalls].join('\n');
|
|
107
|
+
assertGlobalMiddlewareImported(outputPath, output, globalImportPaths);
|
|
108
|
+
return output;
|
|
109
|
+
};
|
|
110
|
+
/**
|
|
111
|
+
* Fail the build if a file that calls `addGlobalMiddleware` has no side-effect
|
|
112
|
+
* import in the generated middleware file.
|
|
113
|
+
*
|
|
114
|
+
* Auth commonly lives in global middleware, and a deployed unit that misses its
|
|
115
|
+
* import does not fail to build — it serves every authenticated route a 401
|
|
116
|
+
* with a clean build log. Checking the emitted text (rather than the set it was
|
|
117
|
+
* built from) is what makes this a check and not a restatement: it fails if the
|
|
118
|
+
* emit is ever dropped, put behind a condition, or handed a path the import
|
|
119
|
+
* list does not actually carry. It cannot fire on a build that does emit the
|
|
120
|
+
* import.
|
|
121
|
+
*/
|
|
122
|
+
export const assertGlobalMiddlewareImported = (outputPath, output, globalImportPaths) => {
|
|
123
|
+
const missing = [...globalImportPaths.entries()].filter(([, filePath]) => !output.includes(`import '${filePath}'`));
|
|
124
|
+
if (missing.length === 0) {
|
|
125
|
+
return;
|
|
126
|
+
}
|
|
127
|
+
throw new Error(`Global middleware would not be registered in ${outputPath}.\n` +
|
|
128
|
+
`These files call addGlobalMiddleware() but no side-effect import for them was emitted:\n` +
|
|
129
|
+
missing.map(([sourceFile]) => ` - ${sourceFile}`).join('\n') +
|
|
130
|
+
`\n\nGlobal middleware — auth gates included — only runs if its module is imported, so ` +
|
|
131
|
+
`this build would start up with it silently missing. Re-run \`pikku all\`; if it persists, ` +
|
|
132
|
+
`register the middleware from a file that also makes a wire registration ` +
|
|
133
|
+
`(e.g. addHTTPMiddleware) and report this as a pikku bug.`);
|
|
94
134
|
};
|
|
@@ -12,10 +12,15 @@ export const serializeSecretsTypes = ({ definitions, schemaLookup, secretsFile,
|
|
|
12
12
|
for (const [name, meta] of credentialEntries) {
|
|
13
13
|
if (meta.oauth2) {
|
|
14
14
|
needsOAuth2Types = true;
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
15
|
+
// Tokens are as optional as the app they belong to: nobody can connect
|
|
16
|
+
// without the client id and secret, so a deployment that is allowed to
|
|
17
|
+
// omit the app is never asked for the tokens either.
|
|
18
|
+
const optional = meta.optional ? '?' : '';
|
|
19
|
+
const optionalMeta = meta.optional ? ', optional: true' : '';
|
|
20
|
+
mapEntries.push(` '${meta.secretId}'${optional}: OAuth2AppCredential`);
|
|
21
|
+
mapEntries.push(` '${meta.oauth2.tokenSecretId}'${optional}: OAuth2Token`);
|
|
22
|
+
metaEntries.push(` '${meta.secretId}': { name: '${name}', displayName: ${tsLiteral(meta.displayName)}${optionalMeta}, oauth2: { tokenSecretId: '${meta.oauth2.tokenSecretId}' } }`);
|
|
23
|
+
metaEntries.push(` '${meta.oauth2.tokenSecretId}': { name: '${name}_tokens', displayName: ${tsLiteral(`${meta.displayName} Tokens`)}${optionalMeta} }`);
|
|
19
24
|
}
|
|
20
25
|
else if (meta.schema && typeof meta.schema === 'string') {
|
|
21
26
|
const schemaRef = schemaLookup.get(meta.schema);
|
|
@@ -270,6 +270,14 @@ export const allWorkflow = pikkuWorkflowComplexFunc({
|
|
|
270
270
|
allImports.push(config.middlewareFile);
|
|
271
271
|
}
|
|
272
272
|
}
|
|
273
|
+
// The generated credentials file registers the project's own credential
|
|
274
|
+
// meta into pikku state, which is what lets `wire.getCredential` resolve a
|
|
275
|
+
// credential the app declares rather than one an addon brought with it.
|
|
276
|
+
if (!config.addon &&
|
|
277
|
+
config.credentialsFile &&
|
|
278
|
+
stateAfterScaffold.credentials?.definitions.length) {
|
|
279
|
+
allImports.push(config.credentialsFile);
|
|
280
|
+
}
|
|
273
281
|
const schemas = await workflow.do('Schemas', 'pikkuSchemas', null);
|
|
274
282
|
if (schemas) {
|
|
275
283
|
allImports.push(`${config.schemaDirectory}/register.gen.ts`);
|
package/dist/src/services.js
CHANGED
|
@@ -1,9 +1,14 @@
|
|
|
1
|
+
import { PikkuError } from '@pikku/core/errors';
|
|
1
2
|
/**
|
|
2
|
-
* A config that was found and parsed, but says something impossible
|
|
3
|
+
* A config that was found and parsed, but says something impossible — or one
|
|
4
|
+
* that could not be found at all.
|
|
3
5
|
*
|
|
4
6
|
* Its message reaches the developer verbatim — every other error out of the
|
|
5
7
|
* loader is reported as "failed to load", which sends the reader hunting for a
|
|
6
|
-
* broken file rather than the line that is wrong.
|
|
8
|
+
* broken file rather than the line that is wrong. A `PikkuError`, so the CLI
|
|
9
|
+
* prints that message alone: a stack through the config loader is never the
|
|
10
|
+
* answer to "which line of my config is wrong", and `--verbose` / `PIKKU_DEBUG`
|
|
11
|
+
* still shows it for the times it is.
|
|
7
12
|
*/
|
|
8
|
-
export declare class PikkuCLIConfigError extends
|
|
13
|
+
export declare class PikkuCLIConfigError extends PikkuError {
|
|
9
14
|
}
|
|
@@ -1,9 +1,14 @@
|
|
|
1
|
+
import { PikkuError } from '@pikku/core/errors';
|
|
1
2
|
/**
|
|
2
|
-
* A config that was found and parsed, but says something impossible
|
|
3
|
+
* A config that was found and parsed, but says something impossible — or one
|
|
4
|
+
* that could not be found at all.
|
|
3
5
|
*
|
|
4
6
|
* Its message reaches the developer verbatim — every other error out of the
|
|
5
7
|
* loader is reported as "failed to load", which sends the reader hunting for a
|
|
6
|
-
* broken file rather than the line that is wrong.
|
|
8
|
+
* broken file rather than the line that is wrong. A `PikkuError`, so the CLI
|
|
9
|
+
* prints that message alone: a stack through the config loader is never the
|
|
10
|
+
* answer to "which line of my config is wrong", and `--verbose` / `PIKKU_DEBUG`
|
|
11
|
+
* still shows it for the times it is.
|
|
7
12
|
*/
|
|
8
|
-
export class PikkuCLIConfigError extends
|
|
13
|
+
export class PikkuCLIConfigError extends PikkuError {
|
|
9
14
|
}
|
|
@@ -56,7 +56,7 @@ async function findConfigFileOrNull() {
|
|
|
56
56
|
async function findConfigFile() {
|
|
57
57
|
const configFile = await findConfigFileOrNull();
|
|
58
58
|
if (!configFile) {
|
|
59
|
-
throw new
|
|
59
|
+
throw new PikkuCLIConfigError('No Pikku config file (pikku.config.ts, .js or .json) found in this directory or any parent up to the repository root.\nRun this from inside a pikku project, or create one with `pikku init`.');
|
|
60
60
|
}
|
|
61
61
|
return configFile;
|
|
62
62
|
}
|