@pikku/cli 0.12.124 → 0.12.125
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/CHANGELOG.md +79 -0
- package/console-app/assets/{abnfDiagram-N423BO3Z-BP7zxMq6.js → abnfDiagram-N423BO3Z-B2suyn6i.js} +1 -1
- package/console-app/assets/architecture-TIHT7OUA-DmG0bXDT.js +1 -0
- package/console-app/assets/{architectureDiagram-T3A2C74G-mvqdkIfF.js → architectureDiagram-T3A2C74G-BQ5Dfvpo.js} +1 -1
- package/console-app/assets/{blockDiagram-VBNYF7ZC-daD8h3VT.js → blockDiagram-VBNYF7ZC-D4pVRDiF.js} +1 -1
- package/console-app/assets/{c4Diagram-5PPSVZJV-Bd0_wKJj.js → c4Diagram-5PPSVZJV-Da04jGpq.js} +1 -1
- package/console-app/assets/channel-BgCT5gon.js +1 -0
- package/console-app/assets/{chunk-2GRJ4B5K-BFRr_H2V.js → chunk-2GRJ4B5K-CwODIPP4.js} +1 -1
- package/console-app/assets/{chunk-4I5QYGJK-BXWo5Xyx.js → chunk-4I5QYGJK-Bep4akjR.js} +1 -1
- package/console-app/assets/{chunk-5RXB4S5H-BFnXfzzz.js → chunk-5RXB4S5H-CGyCRU9L.js} +1 -1
- package/console-app/assets/{chunk-6Q2QTUOP-Bswg4T3s.js → chunk-6Q2QTUOP-D0IK0SMT.js} +1 -1
- package/console-app/assets/{chunk-7Z6QIM7H-StNGH40U.js → chunk-7Z6QIM7H-D12vS1jX.js} +1 -1
- package/console-app/assets/{chunk-GF5L2VYU-QwXKtQxa.js → chunk-GF5L2VYU-kOLwTzIA.js} +1 -1
- package/console-app/assets/{chunk-I66GZJ75-DDQhhfA0.js → chunk-I66GZJ75-Cb2nDoa3.js} +1 -1
- package/console-app/assets/{chunk-JQJVKLGR-wFyF2bUv.js → chunk-JQJVKLGR-B3a_ctfQ.js} +1 -1
- package/console-app/assets/{chunk-KBJHAD2P-CQPQVDkD.js → chunk-KBJHAD2P-DeP2Lqwp.js} +1 -1
- package/console-app/assets/{chunk-NSK5VX7P-DZhjvnHm.js → chunk-NSK5VX7P-BO8vlGrO.js} +1 -1
- package/console-app/assets/{chunk-QR6OTTB3-D1-TbcCP.js → chunk-QR6OTTB3-sX5V0Lok.js} +1 -1
- package/console-app/assets/{chunk-RYQCIY6F-82OYF6U8.js → chunk-RYQCIY6F-DoCObEhk.js} +1 -1
- package/console-app/assets/{chunk-UBXNYLIW-D85x6Zh2.js → chunk-UBXNYLIW-BndMXU5r.js} +1 -1
- package/console-app/assets/{chunk-W5SLKNZC-B1Ps46_n.js → chunk-W5SLKNZC--VrZN8EC.js} +1 -1
- package/console-app/assets/{chunk-WRU74C26-Ct8XrToU.js → chunk-WRU74C26-DdS0mzXO.js} +1 -1
- package/console-app/assets/chunk-XXDRQBXY-EP2C9tTO.js +1 -0
- package/console-app/assets/classDiagram-JCYQIIEL-D9wGqB4J.js +1 -0
- package/console-app/assets/classDiagram-v2-OCEON4UE-D9wGqB4J.js +1 -0
- package/console-app/assets/{cose-bilkent-JH36ORCC-DdevwV5Y.js → cose-bilkent-JH36ORCC-C5EnHkFn.js} +1 -1
- package/console-app/assets/{cynefin-VYW2F7L2-Dj55csoo.js → cynefin-VYW2F7L2-9irdkTt4.js} +1 -1
- package/console-app/assets/{cynefinDiagram-MW4NZA55-XWSzdajo.js → cynefinDiagram-MW4NZA55-DY19660c.js} +1 -1
- package/console-app/assets/{dagre-VZM6K2ZE-BV2l3zSF.js → dagre-VZM6K2ZE-BYFZSaSb.js} +1 -1
- package/console-app/assets/{dagre-CLoXIMX5.js → dagre-nXgDYqvf.js} +1 -1
- package/console-app/assets/{diagram-7IWD3JNH-DC9NK-nv.js → diagram-7IWD3JNH-oDftiTp1.js} +1 -1
- package/console-app/assets/{diagram-B4RE2ZJO-Cirfb0aN.js → diagram-B4RE2ZJO-Cbj-pPbH.js} +1 -1
- package/console-app/assets/{diagram-LBJQPF4R-BuRRy5X5.js → diagram-LBJQPF4R-Ch53oSKw.js} +1 -1
- package/console-app/assets/{diagram-Q27KOJAE-CAOKQ2xs.js → diagram-Q27KOJAE-DA7K814v.js} +1 -1
- package/console-app/assets/{diagram-UB23O5K3-Bto5kBJo.js → diagram-UB23O5K3-B-_C-ctS.js} +1 -1
- package/console-app/assets/{ebnfDiagram-BXEA7PRR-C5OndYGC.js → ebnfDiagram-BXEA7PRR-DsOdsKXy.js} +1 -1
- package/console-app/assets/{erDiagram-JOGREHBK-DqU4xV4C.js → erDiagram-JOGREHBK-XB1mP5_A.js} +1 -1
- package/console-app/assets/eventmodeling-45OFAUF4-NKFCZ8Fj.js +1 -0
- package/console-app/assets/flowDiagram-UKHOOZJN-BpdPkmum.js +1 -0
- package/console-app/assets/{ganttDiagram-PKOTCBZU-D5_DE9R0.js → ganttDiagram-PKOTCBZU-knk0XSHi.js} +1 -1
- package/console-app/assets/{gitGraph-TEB2WS4Q-nuqfz7Fd.js → gitGraph-TEB2WS4Q-COJnK2tM.js} +1 -1
- package/console-app/assets/{gitGraphDiagram-DS77QQ5N-BtJwp2Y3.js → gitGraphDiagram-DS77QQ5N-sF0v605q.js} +1 -1
- package/console-app/assets/{index-DXcH2K9z.css → index-C8MC-uMB.css} +1 -1
- package/console-app/assets/{index-DRfts2XF.js → index-DMnbsgzs.js} +3 -3
- package/console-app/assets/{info-DKCQHKI2-CIfPVqHr.js → info-DKCQHKI2-Cbatr0w6.js} +1 -1
- package/console-app/assets/{infoDiagram-6WML65LV-B-gTHQad.js → infoDiagram-6WML65LV-93TFPCu2.js} +1 -1
- package/console-app/assets/{ishikawaDiagram-WSZJBQD7-CCwAWb1g.js → ishikawaDiagram-WSZJBQD7-BBR8_Qms.js} +1 -1
- package/console-app/assets/{journeyDiagram-NVQOT4AX-DhqNj_ci.js → journeyDiagram-NVQOT4AX-zG55yDoc.js} +1 -1
- package/console-app/assets/{kanban-definition-27J2QSJJ-DspZ1b3Y.js → kanban-definition-27J2QSJJ-DonGcEAY.js} +1 -1
- package/console-app/assets/{line-D7ZCpNkR.js → line-D1WdVm1S.js} +1 -1
- package/console-app/assets/{linear-B5jMy_q9.js → linear-D2GQL4Cm.js} +1 -1
- package/console-app/assets/{mermaid-parser.core-CMBFGJ0U.js → mermaid-parser.core-b4yKyO56.js} +3 -3
- package/console-app/assets/{mermaid.core-DYoDrSEJ.js → mermaid.core-Cwfec1gr.js} +4 -4
- package/console-app/assets/{mindmap-definition-FAOFIHXS-DsHwd2K9.js → mindmap-definition-FAOFIHXS-D0G4yKgw.js} +1 -1
- package/console-app/assets/{packet-7NZHBO7P-BSRRjf4H.js → packet-7NZHBO7P-DDa4HL2T.js} +1 -1
- package/console-app/assets/{pegDiagram-VL7TDLO6-Bi0OlzgS.js → pegDiagram-VL7TDLO6-fPdN5VZs.js} +1 -1
- package/console-app/assets/{pie-RZYD4A2V-D-8tgqYW.js → pie-RZYD4A2V-DRHURUqo.js} +1 -1
- package/console-app/assets/{pieDiagram-7S7Q4E2Y-CsYbVqaR.js → pieDiagram-7S7Q4E2Y-DMYn8ga_.js} +1 -1
- package/console-app/assets/{quadrantDiagram-CIZ2JOQS-LkLWrWKK.js → quadrantDiagram-CIZ2JOQS-C190OamC.js} +1 -1
- package/console-app/assets/{radar-I7S5WNFK-Bst62XZP.js → radar-I7S5WNFK-Djvqzz9A.js} +1 -1
- package/console-app/assets/{railroad-3IZDKUUU-zJswMQYF.js → railroad-3IZDKUUU-C9YvFeFq.js} +1 -1
- package/console-app/assets/railroad-abnf-AHOZXSZD-B3CYVW4p.js +1 -0
- package/console-app/assets/railroad-ebnf-EBAXGLYW-DrZ2yF62.js +1 -0
- package/console-app/assets/railroad-peg-LSFZ7HO6-CWAmMyxd.js +1 -0
- package/console-app/assets/{railroadDiagram-AXF67PYL-C0QZkg7m.js → railroadDiagram-AXF67PYL-IRFg1VrU.js} +1 -1
- package/console-app/assets/{requirementDiagram-LRYGKXZP-BQg0AbLI.js → requirementDiagram-LRYGKXZP-L-7ubbcT.js} +1 -1
- package/console-app/assets/{sankeyDiagram-W5VNT64P-CQb0BMMi.js → sankeyDiagram-W5VNT64P-DBttV6Gt.js} +1 -1
- package/console-app/assets/{sequenceDiagram-SI44F4Z6-BzgBi0a5.js → sequenceDiagram-SI44F4Z6-Bg15oKAB.js} +1 -1
- package/console-app/assets/{src-Dg-KiSsV.js → src-DUC7tLWb.js} +1 -1
- package/console-app/assets/{stateDiagram-OKZ733FA-BiqXn68g.js → stateDiagram-OKZ733FA-PWl0XGs5.js} +1 -1
- package/console-app/assets/stateDiagram-v2-UEYNNEHI-Celbgz4u.js +1 -0
- package/console-app/assets/{swimlanes-SLNWSIFB-Dy7wDP1q.js → swimlanes-SLNWSIFB-CyXEtGBV.js} +1 -1
- package/console-app/assets/swimlanesDiagram-ULZ7WXOC-zxpNaB4U.js +8 -0
- package/console-app/assets/{timeline-definition-Z64GVDOM-DSWXli8X.js → timeline-definition-Z64GVDOM-BLA-DhBt.js} +1 -1
- package/console-app/assets/{treeView-QDETBFTQ-CeWwcs9r.js → treeView-QDETBFTQ-Bfnmn2UY.js} +1 -1
- package/console-app/assets/{treemap-6X3UGDF4-BfrumiJh.js → treemap-6X3UGDF4-DTA0wveO.js} +1 -1
- package/console-app/assets/{vennDiagram-T6HMQDX7-BsuldZ1n.js → vennDiagram-T6HMQDX7-CLXYZln0.js} +1 -1
- package/console-app/assets/{wardley-OPB4EBWU-oZldxS8z.js → wardley-OPB4EBWU-zwxqisG0.js} +1 -1
- package/console-app/assets/{wardleyDiagram-T6FBY63Y-C5LXyHMj.js → wardleyDiagram-T6FBY63Y-hKtKvNlv.js} +1 -1
- package/console-app/assets/{xychartDiagram-ELKLHX3M-CwhqhNkO.js → xychartDiagram-ELKLHX3M-BGf8p4bo.js} +1 -1
- package/console-app/index.html +2 -2
- 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/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 +6 -1
- package/dist/.pikku/cli/pikku-cli-client.gen.d.ts +1 -1
- package/dist/.pikku/cli/pikku-cli-client.gen.js +1 -1
- 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 +7 -0
- 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 +14 -0
- 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 +1 -1
- 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 +25 -6
- 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/rpc/pikku-rpc-wirings-meta.internal.gen.json +1 -0
- 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 +5 -1
- package/dist/.pikku/schemas/schemas/DeployApplyInput.schema.json +1 -1
- package/dist/.pikku/schemas/schemas/FabricProjectsListInput.schema.json +1 -0
- package/dist/.pikku/schemas/schemas/FabricProjectsListOutput.schema.json +1 -0
- package/dist/.pikku/scopes/index.d.ts +1 -1
- package/dist/.pikku/scopes/index.js +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/src/cli.wiring.js +7 -0
- package/dist/src/deploy/build-pipeline.d.ts +10 -0
- package/dist/src/deploy/build-pipeline.js +16 -1
- package/dist/src/deploy/frontend-assets.d.ts +50 -0
- package/dist/src/deploy/frontend-assets.js +82 -0
- package/dist/src/fabric/fabric-commands.d.ts +40 -0
- package/dist/src/fabric/fabric-commands.js +6 -0
- package/dist/src/fabric/functions/projects-list.function.d.ts +72 -0
- package/dist/src/fabric/functions/projects-list.function.js +63 -0
- package/dist/src/functions/commands/deploy-apply.d.ts +10 -0
- package/dist/src/functions/commands/deploy-apply.js +8 -0
- package/dist/src/functions/commands/deploy-plan.js +1 -0
- package/dist/src/functions/commands/dev.js +13 -2
- package/dist/src/functions/commands/environment.d.ts +10 -0
- package/dist/src/functions/commands/environment.js +24 -0
- package/dist/src/functions/commands/serve-frontend.d.ts +11 -0
- package/dist/src/functions/commands/serve-frontend.js +17 -0
- package/dist/src/functions/commands/serve.js +16 -3
- package/dist/src/functions/db/annotation-parser.d.ts +8 -0
- package/dist/src/functions/db/annotation-parser.js +2 -0
- package/dist/src/functions/db/db-codegen.js +20 -1
- package/dist/src/functions/wirings/virtual-user/serialize-virtual-user-functions.js +6 -3
- package/dist/src/server/dev-server-runner.interface.d.ts +9 -0
- package/dist/src/server/node-server-runner.js +3 -0
- package/dist/src/server/server-ready.d.ts +6 -9
- package/dist/src/server/server-ready.js +6 -9
- package/dist/src/utils/frontend.d.ts +9 -0
- package/dist/src/utils/frontend.js +18 -0
- package/dist/src/utils/pikku-cli-config.d.ts +10 -1
- package/dist/src/utils/pikku-cli-config.js +27 -0
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +8 -8
- package/snippets.json +2 -2
- package/surface.json +1 -1
- package/console-app/assets/architecture-TIHT7OUA-D4Hj6824.js +0 -1
- package/console-app/assets/channel-09aKDzM0.js +0 -1
- package/console-app/assets/chunk-XXDRQBXY-C1KaR4pt.js +0 -1
- package/console-app/assets/classDiagram-JCYQIIEL-23nagJMi.js +0 -1
- package/console-app/assets/classDiagram-v2-OCEON4UE-23nagJMi.js +0 -1
- package/console-app/assets/eventmodeling-45OFAUF4-RyG54ZHy.js +0 -1
- package/console-app/assets/flowDiagram-UKHOOZJN-DNdfrnRg.js +0 -1
- package/console-app/assets/railroad-abnf-AHOZXSZD-DX4FqVY6.js +0 -1
- package/console-app/assets/railroad-ebnf-EBAXGLYW-DdyOtX1l.js +0 -1
- package/console-app/assets/railroad-peg-LSFZ7HO6-CclC1sXF.js +0 -1
- package/console-app/assets/stateDiagram-v2-UEYNNEHI-I34jrzP0.js +0 -1
- package/console-app/assets/swimlanesDiagram-ULZ7WXOC-C1PrPB0G.js +0 -8
|
@@ -178,8 +178,15 @@ async function runDeploy(provider, providerDir, logger, resultFile) {
|
|
|
178
178
|
export const deployApply = pikkuSessionlessFunc({
|
|
179
179
|
func: async ({ logger, config, getInspectorState, bundler }, data) => {
|
|
180
180
|
const projectDir = config.rootDir;
|
|
181
|
+
// A url on its own is a request for a shell — asking for both flags would
|
|
182
|
+
// only leave `--desktop-url` alone as a silent no-op.
|
|
183
|
+
const desktopUrl = data?.desktopUrl ?? config.deploy?.desktop?.url;
|
|
181
184
|
const provider = await resolveProvider(config, data?.provider, {
|
|
182
185
|
runtime: data?.runtime,
|
|
186
|
+
desktop: data?.desktop || Boolean(desktopUrl),
|
|
187
|
+
projectDir,
|
|
188
|
+
desktopIdentifier: config.deploy?.desktop?.identifier,
|
|
189
|
+
desktopUrl,
|
|
183
190
|
});
|
|
184
191
|
const fromPlan = data?.fromPlan ?? false;
|
|
185
192
|
const resultFile = data?.resultFile;
|
|
@@ -212,6 +219,7 @@ export const deployApply = pikkuSessionlessFunc({
|
|
|
212
219
|
defaultTarget: config.deploy?.defaultTarget,
|
|
213
220
|
globalHTTPPrefix: config.globalHTTPPrefix,
|
|
214
221
|
getEntryContext,
|
|
222
|
+
frontend: config.frontend,
|
|
215
223
|
outDir: config.outDir,
|
|
216
224
|
debugArtifacts: data?.debugArtifacts ?? false,
|
|
217
225
|
logger,
|
|
@@ -59,6 +59,7 @@ export const deployPlan = pikkuSessionlessFunc({
|
|
|
59
59
|
defaultTarget: config.deploy?.defaultTarget,
|
|
60
60
|
globalHTTPPrefix: config.globalHTTPPrefix,
|
|
61
61
|
getEntryContext,
|
|
62
|
+
frontend: config.frontend,
|
|
62
63
|
outDir: config.outDir,
|
|
63
64
|
debugArtifacts: data?.debugArtifacts ?? false,
|
|
64
65
|
logger,
|
|
@@ -18,6 +18,7 @@ import { resolveDb, createKysely, parseDatabaseUrl, } from '../db/local-db.js';
|
|
|
18
18
|
import { loadUserBootstrap, loadUserModule } from './load-user-project.js';
|
|
19
19
|
import { registerScenarioInstrumentation } from '../wirings/scenarios/register-scenario-instrumentation.js';
|
|
20
20
|
import { startCoverageService } from './start-coverage.js';
|
|
21
|
+
import { resolveDevEnvironmentName } from './environment.js';
|
|
21
22
|
import { createDevAgentRunner } from './dev-agent-runner.js';
|
|
22
23
|
import { resolveConsoleMount } from './serve-console.js';
|
|
23
24
|
import { serverReadyLine } from '../../server/server-ready.js';
|
|
@@ -28,6 +29,7 @@ export const dev = pikkuSessionlessFunc({
|
|
|
28
29
|
remote: true,
|
|
29
30
|
func: async ({ logger, config, getInspectorState, invalidateInspectorState, variables, devServerRunner, }, { port, watch, hmr, coverage, test, model }, { rpc }) => {
|
|
30
31
|
process.env.PIKKU_DEV_QUICK_LOGIN ??= 'true';
|
|
32
|
+
process.env.PIKKU_ENV ??= resolveDevEnvironmentName(config.environments ?? {});
|
|
31
33
|
enableDevActorSignIn(logger);
|
|
32
34
|
applyModelAliasOverride(logger, model, config.models);
|
|
33
35
|
if (test) {
|
|
@@ -296,10 +298,19 @@ export const dev = pikkuSessionlessFunc({
|
|
|
296
298
|
await lifecycle?.beforeStart?.(resolvedServices);
|
|
297
299
|
await pikkuServer.start();
|
|
298
300
|
await lifecycle?.afterStart?.(resolvedServices);
|
|
301
|
+
// Not `resolvedPort`: `--port 0` asks the OS for a free port, and every URL
|
|
302
|
+
// announced from here has to name the one it actually handed out.
|
|
303
|
+
const boundPort = pikkuServer.port;
|
|
299
304
|
if (consoleMount) {
|
|
300
|
-
logger.info(`Pikku Console available at http://${hostname}:${
|
|
305
|
+
logger.info(`Pikku Console available at http://${hostname}:${boundPort}${consoleMount.urlPrefix}`);
|
|
301
306
|
}
|
|
302
|
-
|
|
307
|
+
// Serving the built frontend here would hand you whatever the last build
|
|
308
|
+
// produced, with no HMR and no warning that it is stale. The frontend's own
|
|
309
|
+
// dev server owns dev; it proxies its API calls back to this port.
|
|
310
|
+
if (config.frontend) {
|
|
311
|
+
logger.info(`Frontend not served in dev — run your frontend dev server and proxy its API calls to http://${hostname}:${boundPort}`);
|
|
312
|
+
}
|
|
313
|
+
logger.info(serverReadyLine(hostname, boundPort));
|
|
303
314
|
let watcher;
|
|
304
315
|
process.once('SIGINT', async () => {
|
|
305
316
|
logger.info('Stopping dev server...');
|
|
@@ -60,3 +60,13 @@ export declare const parseAppUrls: (value: string) => {
|
|
|
60
60
|
base?: string;
|
|
61
61
|
byApp: Record<string, string>;
|
|
62
62
|
};
|
|
63
|
+
/**
|
|
64
|
+
* The environment name `pikku dev` is running as, for anything that gates on
|
|
65
|
+
* `PIKKU_ENV` — persona provisioning above all, which fails closed and so
|
|
66
|
+
* provisions nothing at all when nobody says where the process is.
|
|
67
|
+
*
|
|
68
|
+
* Local means a configured, non-production environment whose `apiUrl` is a
|
|
69
|
+
* loopback host; `local` wins when several qualify. A project that configures
|
|
70
|
+
* none gets `undefined` rather than a guess.
|
|
71
|
+
*/
|
|
72
|
+
export declare const resolveDevEnvironmentName: (environments: Record<string, PikkuEnvironment>) => string | undefined;
|
|
@@ -94,3 +94,27 @@ export const parseAppUrls = (value) => {
|
|
|
94
94
|
}
|
|
95
95
|
return { base, byApp };
|
|
96
96
|
};
|
|
97
|
+
/**
|
|
98
|
+
* The environment name `pikku dev` is running as, for anything that gates on
|
|
99
|
+
* `PIKKU_ENV` — persona provisioning above all, which fails closed and so
|
|
100
|
+
* provisions nothing at all when nobody says where the process is.
|
|
101
|
+
*
|
|
102
|
+
* Local means a configured, non-production environment whose `apiUrl` is a
|
|
103
|
+
* loopback host; `local` wins when several qualify. A project that configures
|
|
104
|
+
* none gets `undefined` rather than a guess.
|
|
105
|
+
*/
|
|
106
|
+
export const resolveDevEnvironmentName = (environments) => {
|
|
107
|
+
const candidates = Object.entries(environments).filter(([, environment]) => {
|
|
108
|
+
if (environment.production) {
|
|
109
|
+
return false;
|
|
110
|
+
}
|
|
111
|
+
try {
|
|
112
|
+
return LOCAL_HOSTNAMES.has(new URL(environment.apiUrl).hostname);
|
|
113
|
+
}
|
|
114
|
+
catch {
|
|
115
|
+
return false;
|
|
116
|
+
}
|
|
117
|
+
});
|
|
118
|
+
const preferred = candidates.find(([name]) => name === 'local');
|
|
119
|
+
return (preferred ?? candidates[0])?.[0];
|
|
120
|
+
};
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { StaticMount } from '@pikku/node-http-server';
|
|
2
|
+
import type { PikkuCLIConfig } from '../../../types/config.js';
|
|
3
|
+
/**
|
|
4
|
+
* Turn a resolved `frontend` config into the mount that serves it.
|
|
5
|
+
*
|
|
6
|
+
* The directory is checked rather than trusted because pikku only ever reads a
|
|
7
|
+
* frontend's output: an unbuilt `dir` means the project's own build has not run,
|
|
8
|
+
* and saying so here is far cheaper than a server that boots fine and answers
|
|
9
|
+
* every page with a 404.
|
|
10
|
+
*/
|
|
11
|
+
export declare function resolveFrontendMount(frontend: NonNullable<PikkuCLIConfig['frontend']>): Promise<StaticMount>;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { assertFrontendBuilt } from '../../utils/frontend.js';
|
|
2
|
+
/**
|
|
3
|
+
* Turn a resolved `frontend` config into the mount that serves it.
|
|
4
|
+
*
|
|
5
|
+
* The directory is checked rather than trusted because pikku only ever reads a
|
|
6
|
+
* frontend's output: an unbuilt `dir` means the project's own build has not run,
|
|
7
|
+
* and saying so here is far cheaper than a server that boots fine and answers
|
|
8
|
+
* every page with a 404.
|
|
9
|
+
*/
|
|
10
|
+
export async function resolveFrontendMount(frontend) {
|
|
11
|
+
await assertFrontendBuilt(frontend.dir);
|
|
12
|
+
return {
|
|
13
|
+
urlPrefix: frontend.urlPrefix,
|
|
14
|
+
directory: frontend.dir,
|
|
15
|
+
spaFallback: frontend.spaFallback,
|
|
16
|
+
};
|
|
17
|
+
}
|
|
@@ -16,6 +16,7 @@ import { loadUserBootstrap, loadUserModule } from './load-user-project.js';
|
|
|
16
16
|
import { registerScenarioInstrumentation } from '../wirings/scenarios/register-scenario-instrumentation.js';
|
|
17
17
|
import { createDevAgentRunner } from './dev-agent-runner.js';
|
|
18
18
|
import { resolveConsoleMount } from './serve-console.js';
|
|
19
|
+
import { resolveFrontendMount } from './serve-frontend.js';
|
|
19
20
|
import { serverReadyLine } from '../../server/server-ready.js';
|
|
20
21
|
import { createEphemeralContentSigningJWT } from '../../server/content-signing-jwt.js';
|
|
21
22
|
import { disableDevActorSignIn } from '../../server/actor-sign-in.js';
|
|
@@ -144,22 +145,34 @@ export const serve = pikkuSessionlessFunc({
|
|
|
144
145
|
if (serveConsole && !consoleMount) {
|
|
145
146
|
logger.warn('Console app not found. Please rebuild @pikku/cli with the console app bundled.');
|
|
146
147
|
}
|
|
148
|
+
const frontendMount = config.frontend
|
|
149
|
+
? await resolveFrontendMount(config.frontend)
|
|
150
|
+
: undefined;
|
|
151
|
+
// The console goes first so a frontend mounted at `/` cannot claim
|
|
152
|
+
// `/console` before the console's own mount is offered the request.
|
|
153
|
+
const staticMounts = [consoleMount, frontendMount].filter((mount) => Boolean(mount));
|
|
147
154
|
const pikkuServer = devServerRunner.createServer({
|
|
148
155
|
...userConfig,
|
|
149
156
|
hostname: bindHostname,
|
|
150
157
|
port: resolvedPort,
|
|
151
158
|
content: localContentConfig,
|
|
152
|
-
...(
|
|
159
|
+
...(staticMounts.length ? { staticMounts } : {}),
|
|
153
160
|
}, logger, { contentSigningJWT });
|
|
154
161
|
const lifecycle = await loadLifecycle();
|
|
155
162
|
await pikkuServer.init();
|
|
156
163
|
await lifecycle?.beforeStart?.(resolvedServices);
|
|
157
164
|
await pikkuServer.start();
|
|
158
165
|
await lifecycle?.afterStart?.(resolvedServices);
|
|
166
|
+
// Not `resolvedPort`: `--port 0` asks the OS for a free port, and every URL
|
|
167
|
+
// announced from here has to name the one it actually handed out.
|
|
168
|
+
const boundPort = pikkuServer.port;
|
|
159
169
|
if (consoleMount) {
|
|
160
|
-
logger.info(`Pikku Console available at http://${hostname}:${
|
|
170
|
+
logger.info(`Pikku Console available at http://${hostname}:${boundPort}${consoleMount.urlPrefix}`);
|
|
171
|
+
}
|
|
172
|
+
if (frontendMount) {
|
|
173
|
+
logger.info(`Frontend available at http://${hostname}:${boundPort}${frontendMount.urlPrefix}`);
|
|
161
174
|
}
|
|
162
|
-
logger.info(serverReadyLine(hostname,
|
|
175
|
+
logger.info(serverReadyLine(hostname, boundPort));
|
|
163
176
|
process.once('SIGINT', async () => {
|
|
164
177
|
logger.info('Stopping server...');
|
|
165
178
|
try {
|
|
@@ -30,6 +30,14 @@ export interface ColAnnotation {
|
|
|
30
30
|
* insert/update brand on the generated column type. Absent means `plain`.
|
|
31
31
|
*/
|
|
32
32
|
form?: ColumnForm;
|
|
33
|
+
/**
|
|
34
|
+
* Which key protects this column, for an encrypted `form`. Absent means the
|
|
35
|
+
* deployment's default key.
|
|
36
|
+
*
|
|
37
|
+
* Reported as authored rather than defaulted here, so the manifest emitter
|
|
38
|
+
* stays the single place the default is applied.
|
|
39
|
+
*/
|
|
40
|
+
keyId?: string;
|
|
33
41
|
}
|
|
34
42
|
/** Per-table, per-column annotation map sourced from `db/annotations.ts`. */
|
|
35
43
|
export type AnnotationMap = Record<string, Record<string, ColAnnotation>>;
|
|
@@ -117,6 +117,8 @@ export function loadAnnotations(rootDir) {
|
|
|
117
117
|
COLUMN_FORMS.includes(ann.form)) {
|
|
118
118
|
entry.form = ann.form;
|
|
119
119
|
}
|
|
120
|
+
if (ann.keyId)
|
|
121
|
+
entry.keyId = ann.keyId;
|
|
120
122
|
const strategy = parseStrategy(ann.classification);
|
|
121
123
|
if (strategy !== null)
|
|
122
124
|
entry.anonymize = strategy;
|
|
@@ -340,6 +340,14 @@ function emitInterface(table, camelCase, explicitAnnotations, dialect, enumByNam
|
|
|
340
340
|
return `export interface ${ifaceName} {\n${fields}\n}`;
|
|
341
341
|
}
|
|
342
342
|
// ─── Manifest emitter ────────────────────────────────────────────────────────
|
|
343
|
+
/**
|
|
344
|
+
* The key an encrypted column is protected by when it names none.
|
|
345
|
+
*
|
|
346
|
+
* Spelled out in every entry rather than left implicit, so the set of keys a
|
|
347
|
+
* deployment has to resolve can be read off the manifest without knowing the
|
|
348
|
+
* rule that produced it.
|
|
349
|
+
*/
|
|
350
|
+
const DEFAULT_COLUMN_KEY_ID = 'default';
|
|
343
351
|
function emitManifest(tables, explicitAnnotations) {
|
|
344
352
|
const tableEntries = tables
|
|
345
353
|
.map((table) => {
|
|
@@ -354,8 +362,15 @@ function emitManifest(tables, explicitAnnotations) {
|
|
|
354
362
|
// tell "held in the clear, stated" from "nobody has said yet", and a
|
|
355
363
|
// defaulted 'plain' would erase exactly that difference.
|
|
356
364
|
const formLiteral = ann?.form ? `, form: '${ann.form}'` : '';
|
|
365
|
+
// Only a column that is actually encrypted names a key. Emitting one
|
|
366
|
+
// on a plain or hashed column would claim a protection it has not
|
|
367
|
+
// got — and a hash has no key to be opened with in the first place.
|
|
368
|
+
const encrypted = ann?.form === 'wrapped' || ann?.form === 'sealed';
|
|
369
|
+
const keyIdLiteral = encrypted
|
|
370
|
+
? `, keyId: '${ann?.keyId ?? DEFAULT_COLUMN_KEY_ID}'`
|
|
371
|
+
: '';
|
|
357
372
|
return (` ${JSON.stringify(col.name)}: ` +
|
|
358
|
-
`{ classification: '${classification}', anonymize_strategy: ${strategyLiteral}${formLiteral} }`);
|
|
373
|
+
`{ classification: '${classification}', anonymize_strategy: ${strategyLiteral}${formLiteral}${keyIdLiteral} }`);
|
|
359
374
|
})
|
|
360
375
|
.join(',\n');
|
|
361
376
|
return ` ${JSON.stringify(table.name)}: {\n${colEntries}\n }`;
|
|
@@ -391,6 +406,10 @@ function emitClassificationMap(tables) {
|
|
|
391
406
|
` * real encrypt/seal/hash result can be written to it. Defaults to 'plain',`,
|
|
392
407
|
` * which on a \`secret\` column is warned about (PKU483) until stated here. */`,
|
|
393
408
|
` form?: 'plain' | 'hashed' | 'wrapped' | 'sealed'`,
|
|
409
|
+
` /** Which key protects this column, for a 'wrapped' or 'sealed' form. It is a`,
|
|
410
|
+
` * purpose, not a tenant: naming one here says these columns open together and`,
|
|
411
|
+
` * separately from the rest. Defaults to 'default'. */`,
|
|
412
|
+
` keyId?: string`,
|
|
394
413
|
` /** Anonymize strategy used by \`pikku db anonymize\`. */`,
|
|
395
414
|
` classification?: 'fake:email' | 'fake:name' | 'hash' | 'keep'`,
|
|
396
415
|
` /** Column kind override for codegen coercion + typing. */`,
|
|
@@ -278,7 +278,7 @@ import {
|
|
|
278
278
|
virtualUserScheduleRunInput,
|
|
279
279
|
writeVirtualUserSchedule,
|
|
280
280
|
} from '@pikku/core/virtual-user'
|
|
281
|
-
import { createPersonas, personaConfigs } from '${pathToPersonas}'
|
|
281
|
+
import { createPersonas, personaConfigs, personaEnvironments } from '${pathToPersonas}'
|
|
282
282
|
import {
|
|
283
283
|
ExecuteVirtualUserRunInput,
|
|
284
284
|
ExecuteVirtualUserRunOutput,
|
|
@@ -331,8 +331,11 @@ export const runVirtualUser = pikkuFunc({
|
|
|
331
331
|
await startVirtualUserRun({
|
|
332
332
|
store: virtualUserRunStore,
|
|
333
333
|
personas: personaConfigs,
|
|
334
|
-
//
|
|
335
|
-
//
|
|
334
|
+
// Which of the configured environments this process is decides whether
|
|
335
|
+
// a run is against production. \`config\` is only the fallback for a
|
|
336
|
+
// project that configures none, and is cast because an application's
|
|
337
|
+
// Config is its own interface and need not declare nodeEnv at all.
|
|
338
|
+
environments: personaEnvironments,
|
|
336
339
|
config: config as { nodeEnv?: string } | undefined,
|
|
337
340
|
persona: input.persona,
|
|
338
341
|
disposition: input.disposition,
|
|
@@ -16,6 +16,15 @@ export interface DevServerInstance {
|
|
|
16
16
|
start(): Promise<void>;
|
|
17
17
|
/** Full teardown — closes the server and any owned WebSocket server. */
|
|
18
18
|
stop(): Promise<void>;
|
|
19
|
+
/**
|
|
20
|
+
* The port the server actually bound, readable once `start()` has resolved.
|
|
21
|
+
*
|
|
22
|
+
* Diverges from the requested port whenever that was `0`, which is the only
|
|
23
|
+
* race-free way for a parent process to hand the server a port: anything the
|
|
24
|
+
* parent picks can be taken between its check and the server's bind. The
|
|
25
|
+
* ready line is built from this, so a parent learns the port by reading it.
|
|
26
|
+
*/
|
|
27
|
+
readonly port: number;
|
|
19
28
|
}
|
|
20
29
|
/** Config shape both runtimes accept (Core config + host/port/content). */
|
|
21
30
|
export type DevServerConfig = NodeHTTPServerConfig;
|
|
@@ -51,6 +51,9 @@ export class NodeServerRunner {
|
|
|
51
51
|
return {
|
|
52
52
|
init: () => server.init(),
|
|
53
53
|
start: () => server.start(),
|
|
54
|
+
get port() {
|
|
55
|
+
return server.port;
|
|
56
|
+
},
|
|
54
57
|
stop: async () => {
|
|
55
58
|
if (wss) {
|
|
56
59
|
await new Promise((resolve, reject) => wss.close((err) => (err ? reject(err) : resolve())));
|
|
@@ -1,12 +1,9 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
3
|
-
*
|
|
2
|
+
* The readiness handshake, owned by `@pikku/deploy` so the CLI and the
|
|
3
|
+
* standalone provider's generated server entry print and wait on the same
|
|
4
|
+
* string. Re-exported here because `--spawn` and the dev/serve commands have
|
|
5
|
+
* always imported it from this path.
|
|
4
6
|
*
|
|
5
|
-
*
|
|
6
|
-
* which runs *before* `afterStart` — so anything a project seeds there (users,
|
|
7
|
-
* scopes, fixtures) is still pending when it appears, and a parent process
|
|
8
|
-
* that treats it as readiness races the seed. This marker is the point at
|
|
9
|
-
* which the server is actually usable, and it is what `--spawn` waits for.
|
|
7
|
+
* @see {@link SERVER_READY_MARKER} for why `listening on …` is not readiness.
|
|
10
8
|
*/
|
|
11
|
-
export
|
|
12
|
-
export declare const serverReadyLine: (hostname: string, port: number) => string;
|
|
9
|
+
export { SERVER_READY_MARKER, serverReadyLine } from '@pikku/deploy';
|
|
@@ -1,12 +1,9 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
3
|
-
*
|
|
2
|
+
* The readiness handshake, owned by `@pikku/deploy` so the CLI and the
|
|
3
|
+
* standalone provider's generated server entry print and wait on the same
|
|
4
|
+
* string. Re-exported here because `--spawn` and the dev/serve commands have
|
|
5
|
+
* always imported it from this path.
|
|
4
6
|
*
|
|
5
|
-
*
|
|
6
|
-
* which runs *before* `afterStart` — so anything a project seeds there (users,
|
|
7
|
-
* scopes, fixtures) is still pending when it appears, and a parent process
|
|
8
|
-
* that treats it as readiness races the seed. This marker is the point at
|
|
9
|
-
* which the server is actually usable, and it is what `--spawn` waits for.
|
|
7
|
+
* @see {@link SERVER_READY_MARKER} for why `listening on …` is not readiness.
|
|
10
8
|
*/
|
|
11
|
-
export
|
|
12
|
-
export const serverReadyLine = (hostname, port) => `${SERVER_READY_MARKER} on http://${hostname}:${port}`;
|
|
9
|
+
export { SERVER_READY_MARKER, serverReadyLine } from '@pikku/deploy';
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Throw unless `dir` holds a built frontend.
|
|
3
|
+
*
|
|
4
|
+
* Both serving and deploying read a frontend's output rather than producing it,
|
|
5
|
+
* so an unbuilt directory is the one failure mode the config invites, and it is
|
|
6
|
+
* silent everywhere it is not caught: a server boots fine and answers every
|
|
7
|
+
* page with a 404, and a deploy ships a binary with nothing inside it.
|
|
8
|
+
*/
|
|
9
|
+
export declare function assertFrontendBuilt(dir: string): Promise<void>;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { stat } from 'node:fs/promises';
|
|
2
|
+
import { join } from 'node:path';
|
|
3
|
+
/**
|
|
4
|
+
* Throw unless `dir` holds a built frontend.
|
|
5
|
+
*
|
|
6
|
+
* Both serving and deploying read a frontend's output rather than producing it,
|
|
7
|
+
* so an unbuilt directory is the one failure mode the config invites, and it is
|
|
8
|
+
* silent everywhere it is not caught: a server boots fine and answers every
|
|
9
|
+
* page with a 404, and a deploy ships a binary with nothing inside it.
|
|
10
|
+
*/
|
|
11
|
+
export async function assertFrontendBuilt(dir) {
|
|
12
|
+
try {
|
|
13
|
+
await stat(join(dir, 'index.html'));
|
|
14
|
+
}
|
|
15
|
+
catch {
|
|
16
|
+
throw new Error(`No frontend build found at ${dir} — pikku serves your frontend's output and never builds it, so run the frontend's build first (or drop "frontend" from pikku.config.json).`);
|
|
17
|
+
}
|
|
18
|
+
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { PikkuCLIConfig } from '../../types/config.js';
|
|
1
|
+
import type { PikkuCLIConfig, PikkuCLIInput } from '../../types/config.js';
|
|
2
2
|
import type { CLILogger } from '../services/cli-logger.service.js';
|
|
3
3
|
import { PikkuCLIConfigError } from './pikku-cli-config-error.js';
|
|
4
4
|
export declare const getPikkuCLIConfig: (logger: CLILogger, configFile: string | undefined, requiredFields: Array<keyof PikkuCLIConfig>, exitProcess?: boolean, outDirOverride?: string) => Promise<PikkuCLIConfig>;
|
|
@@ -43,4 +43,13 @@ export declare const DEFAULT_LOCALE = "en";
|
|
|
43
43
|
* `en-GB` are one value downstream instead of two that never compare equal.
|
|
44
44
|
*/
|
|
45
45
|
export declare const normalizeLocale: (locale: unknown) => string;
|
|
46
|
+
/**
|
|
47
|
+
* Fill in the mount defaults and make `dir` absolute.
|
|
48
|
+
*
|
|
49
|
+
* The trailing slash is stripped because a mount matches with
|
|
50
|
+
* `pathname === prefix || pathname.startsWith(prefix + '/')`, under which a
|
|
51
|
+
* stored `/app/` matches nothing at all — a frontend that silently never
|
|
52
|
+
* appears rather than an error anyone can act on.
|
|
53
|
+
*/
|
|
54
|
+
export declare const resolveFrontendConfig: (frontend: NonNullable<PikkuCLIInput["frontend"]>, configDir: string) => NonNullable<PikkuCLIConfig["frontend"]>;
|
|
46
55
|
export declare const validateCLIConfig: (cliConfig: PikkuCLIConfig, required: Array<keyof PikkuCLIConfig>) => void;
|
|
@@ -118,6 +118,30 @@ export const normalizeLocale = (locale) => {
|
|
|
118
118
|
`It sets the language of the meta the Console renders back to your team (function and step descriptions, feature and scenario names). ` +
|
|
119
119
|
`Identifiers stay English regardless, and the language the app speaks to its users is defaultLocale in active.json, not this.`);
|
|
120
120
|
};
|
|
121
|
+
/**
|
|
122
|
+
* Fill in the mount defaults and make `dir` absolute.
|
|
123
|
+
*
|
|
124
|
+
* The trailing slash is stripped because a mount matches with
|
|
125
|
+
* `pathname === prefix || pathname.startsWith(prefix + '/')`, under which a
|
|
126
|
+
* stored `/app/` matches nothing at all — a frontend that silently never
|
|
127
|
+
* appears rather than an error anyone can act on.
|
|
128
|
+
*/
|
|
129
|
+
export const resolveFrontendConfig = (frontend, configDir) => {
|
|
130
|
+
if (!frontend.dir) {
|
|
131
|
+
throw new PikkuCLIConfigError(`frontend.dir is required — it names the directory your frontend's build already wrote, since pikku serves that output rather than building it`);
|
|
132
|
+
}
|
|
133
|
+
const urlPrefix = frontend.urlPrefix ?? '/';
|
|
134
|
+
if (!urlPrefix.startsWith('/')) {
|
|
135
|
+
throw new PikkuCLIConfigError(`frontend.urlPrefix must start with "/" — got "${urlPrefix}"`);
|
|
136
|
+
}
|
|
137
|
+
return {
|
|
138
|
+
dir: isAbsolute(frontend.dir)
|
|
139
|
+
? frontend.dir
|
|
140
|
+
: join(configDir, frontend.dir),
|
|
141
|
+
urlPrefix: urlPrefix === '/' ? '/' : urlPrefix.replace(/\/+$/, ''),
|
|
142
|
+
spaFallback: frontend.spaFallback ?? true,
|
|
143
|
+
};
|
|
144
|
+
};
|
|
121
145
|
const _getPikkuCLIConfig = async (logger, configFile = undefined, requiredFields, exitProcess = false, outDirOverride) => {
|
|
122
146
|
if (!configFile) {
|
|
123
147
|
configFile = await findConfigFile();
|
|
@@ -740,6 +764,9 @@ const _getPikkuCLIConfig = async (logger, configFile = undefined, requiredFields
|
|
|
740
764
|
}
|
|
741
765
|
}
|
|
742
766
|
}
|
|
767
|
+
if (result.frontend) {
|
|
768
|
+
result.frontend = resolveFrontendConfig(result.frontend, result.configDir);
|
|
769
|
+
}
|
|
743
770
|
if (result.emailTemplatesDir && !isAbsolute(result.emailTemplatesDir)) {
|
|
744
771
|
result.emailTemplatesDir = join(result.configDir, result.emailTemplatesDir);
|
|
745
772
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"root":["../bin/pikku.ts","../src/cli.wiring.ts","../src/services.ts","../src/deploy/build-pipeline.ts","../src/deploy/server-entry.ts","../src/deploy/analyzer/analyzer.ts","../src/deploy/analyzer/index.ts","../src/deploy/bundler/bun-bundler.ts","../src/deploy/bundler/bundler.interface.ts","../src/deploy/bundler/bundler.ts","../src/deploy/bundler/dep-extractor.ts","../src/deploy/bundler/index.ts","../src/deploy/bundler/node-bundler.ts","../src/deploy/bundler/service-module-map.ts","../src/deploy/bundler/types.ts","../src/deploy/codegen/index.ts","../src/deploy/codegen/per-unit-codegen.ts","../src/deploy/plan/executor.ts","../src/deploy/plan/formatter.ts","../src/deploy/plan/index.ts","../src/deploy/plan/planner.ts","../src/deploy/plan/provider.ts","../src/deploy/plan/types.ts","../src/fabric/fabric-commands.ts","../src/fabric/functions/add.function.ts","../src/fabric/functions/addon-verify.function.ts","../src/fabric/functions/db-schema.function.ts","../src/fabric/functions/deploy-list.function.ts","../src/fabric/functions/deploy-units.function.ts","../src/fabric/functions/deploy.function.ts","../src/fabric/functions/domains-add.function.ts","../src/fabric/functions/domains-list.function.ts","../src/fabric/functions/domains-remove.function.ts","../src/fabric/functions/errors.function.ts","../src/fabric/functions/init.function.ts","../src/fabric/functions/link.function.ts","../src/fabric/functions/llm-key.function.ts","../src/fabric/functions/login.function.ts","../src/fabric/functions/logs.function.ts","../src/fabric/functions/metrics.function.ts","../src/fabric/functions/publish.function.ts","../src/fabric/functions/rollback.function.ts","../src/fabric/functions/secrets-list.function.ts","../src/fabric/functions/secrets-rotate.function.ts","../src/fabric/functions/secrets-set.function.ts","../src/fabric/functions/smoke.function.ts","../src/fabric/functions/status.function.ts","../src/fabric/functions/trace.function.ts","../src/fabric/functions/validate.function.ts","../src/fabric/functions/variables-get.function.ts","../src/fabric/functions/variables-set.function.ts","../src/fabric/lib/config.ts","../src/fabric/lib/console-url.ts","../src/fabric/lib/deployment.ts","../src/fabric/lib/frontend-typecheck.ts","../src/fabric/lib/git.ts","../src/fabric/lib/http.ts","../src/fabric/lib/not-implemented.ts","../src/fabric/lib/output.ts","../src/fabric/lib/prompt.ts","../src/fabric/lib/sealed-box.ts","../src/fabric/lib/stage.ts","../src/fabric/lib/variable-value.ts","../src/fabric/sdk/http-map.gen.d.ts","../src/fabric/sdk/pikku-fetch.gen.ts","../src/fabric/sdk/pikku-rpc.gen.ts","../src/fabric/sdk/rpc-map.gen.d.ts","../src/functions/commands/all.ts","../src/functions/commands/audit.ts","../src/functions/commands/binary.ts","../src/functions/commands/bootstrap.ts","../src/functions/commands/bun-coverage-loader.ts","../src/functions/commands/db-audit.ts","../src/functions/commands/db-baseline.ts","../src/functions/commands/db-check.ts","../src/functions/commands/db-codegen.ts","../src/functions/commands/db-export.ts","../src/functions/commands/db-generate.ts","../src/functions/commands/db-migrate.ts","../src/functions/commands/db-reset.ts","../src/functions/commands/db-shared.ts","../src/functions/commands/deploy-apply.ts","../src/functions/commands/deploy-info.ts","../src/functions/commands/deploy-plan.ts","../src/functions/commands/dev-agent-runner.ts","../src/functions/commands/dev.ts","../src/functions/commands/doc.ts","../src/functions/commands/emails-init.ts","../src/functions/commands/enable.ts","../src/functions/commands/environment.ts","../src/functions/commands/import-n8n.ts","../src/functions/commands/info.ts","../src/functions/commands/knowledge-index.ts","../src/functions/commands/knowledge-validate.ts","../src/functions/commands/load-user-project.ts","../src/functions/commands/login.ts","../src/functions/commands/meta.ts","../src/functions/commands/new-addon.ts","../src/functions/commands/new-function.ts","../src/functions/commands/new-middleware.ts","../src/functions/commands/new-permission.ts","../src/functions/commands/new-wiring.ts","../src/functions/commands/persona-sync.ts","../src/functions/commands/persona.ts","../src/functions/commands/pikku-command-bootstrap.ts","../src/functions/commands/pikku-command-summary.ts","../src/functions/commands/roles-audit.ts","../src/functions/commands/roles-prune.ts","../src/functions/commands/roles-shared.ts","../src/functions/commands/scenario-browser.ts","../src/functions/commands/scenario-formatter.ts","../src/functions/commands/scenario-ladder.ts","../src/functions/commands/scenario-plan.ts","../src/functions/commands/scenario.ts","../src/functions/commands/scopes-audit.ts","../src/functions/commands/scopes-prune.ts","../src/functions/commands/scopes-shared.ts","../src/functions/commands/semver-render.ts","../src/functions/commands/semver.ts","../src/functions/commands/serve-console.ts","../src/functions/commands/serve.ts","../src/functions/commands/skills.ts","../src/functions/commands/start-coverage.ts","../src/functions/commands/update-render.ts","../src/functions/commands/update.ts","../src/functions/commands/validate.ts","../src/functions/commands/versions-check.ts","../src/functions/commands/versions-init.ts","../src/functions/commands/versions-update.ts","../src/functions/commands/virtual-user-formatter.ts","../src/functions/commands/watch.ts","../src/functions/db/annotation-parser.ts","../src/functions/db/better-auth-schema.ts","../src/functions/db/db-codegen.ts","../src/functions/db/db-introspector.ts","../src/functions/db/db-migrator.ts","../src/functions/db/local-db.ts","../src/functions/db/migration-identifiers.ts","../src/functions/db/migration-provenance.ts","../src/functions/db/schema-sql.ts","../src/functions/db/zod-codegen.ts","../src/functions/db/postgres/pglite-kysely.ts","../src/functions/db/postgres/postgres-introspector.ts","../src/functions/db/postgres/postgres-migrator.ts","../src/functions/db/sqlite/dev-seed.ts","../src/functions/db/sqlite/sqlite-introspector.ts","../src/functions/db/sqlite/sqlite-kysely.ts","../src/functions/db/sqlite/sqlite-migrator.ts","../src/functions/db/sqlite/sqlite-runtime-bun.ts","../src/functions/db/sqlite/sqlite-runtime-node.ts","../src/functions/db/sqlite/sqlite-runtime.ts","../src/functions/knowledge/render.ts","../src/functions/knowledge/schemas.ts","../src/functions/runtimes/fetch/index.ts","../src/functions/runtimes/nextjs/pikku-command-nextjs.ts","../src/functions/runtimes/nextjs/serialize-nextjs-backend-worker-rpc-wrapper.ts","../src/functions/runtimes/nextjs/serialize-nextjs-backend-wrapper.ts","../src/functions/runtimes/nextjs/serialize-nextjs-http-wrapper.ts","../src/functions/runtimes/tanstack-start/pikku-command-tanstack-start.ts","../src/functions/runtimes/tanstack-start/serialize-tanstack-start-shim.ts","../src/functions/runtimes/websocket/pikku-command-websocket-typed.ts","../src/functions/runtimes/websocket/serialize-websocket-wrapper.ts","../src/functions/surface/build-surface-doc.ts","../src/functions/surface/collect-snippets.ts","../src/functions/surface/collect-surface-usage.ts","../src/functions/surface/collect-surface.ts","../src/functions/surface/generate-surface-doc.ts","../src/functions/surface/render-surface-doc.ts","../src/functions/surface/shipped-surface-doc.ts","../src/functions/surface/surface-doc.types.ts","../src/functions/surface/surface-editorial.ts","../src/functions/surface/write-surface-usage.ts","../src/functions/validate/addon-package-checks.ts","../src/functions/validate/auth-plugin-checks.ts","../src/functions/validate/bootstrap-checks.ts","../src/functions/validate/persona-checks.ts","../src/functions/validate/pikku-barrel-checks.ts","../src/functions/validate/scenario-file-checks.ts","../src/functions/validate/shared-checks.ts","../src/functions/validate/type-identity-checks.ts","../src/functions/validate/validate-registry.ts","../src/functions/validate/validate.ts","../src/functions/validate/websocket-deps-checks.ts","../src/functions/validate/workspace-exports-checks.ts","../src/functions/wirings/agent/pikku-command-agent-types.ts","../src/functions/wirings/agent/pikku-command-agent.ts","../src/functions/wirings/agent/pikku-command-public-agent.ts","../src/functions/wirings/agent/serialize-agent-map.ts","../src/functions/wirings/agent/serialize-agent-types.ts","../src/functions/wirings/agent/serialize-model-aliases.ts","../src/functions/wirings/agent/serialize-public-agent.ts","../src/functions/wirings/agent-scorer/pikku-command-agent-scorer.ts","../src/functions/wirings/agent-scorer/serialize-scorer-names.ts","../src/functions/wirings/auth/pikku-command-auth.ts","../src/functions/wirings/auth/serialize-auth-gen.ts","../src/functions/wirings/auth/serialize-auth-guards.ts","../src/functions/wirings/auth/serialize-auth-meta.ts","../src/functions/wirings/auth/serialize-auth-types.ts","../src/functions/wirings/channels/pikku-channels.ts","../src/functions/wirings/channels/pikku-command-channel-types.ts","../src/functions/wirings/channels/pikku-command-channels-map.ts","../src/functions/wirings/channels/pikku-command-channels.ts","../src/functions/wirings/channels/serialize-channel-types.ts","../src/functions/wirings/channels/serialize-typed-channel-map.ts","../src/functions/wirings/cli/pikku-command-cli-entry.ts","../src/functions/wirings/cli/pikku-command-cli-types.ts","../src/functions/wirings/cli/pikku-command-cli.ts","../src/functions/wirings/cli/serialize-channel-cli-client.ts","../src/functions/wirings/cli/serialize-channel-cli.ts","../src/functions/wirings/cli/serialize-cli-entrypoint-guard.ts","../src/functions/wirings/cli/serialize-cli-types.ts","../src/functions/wirings/cli/serialize-local-cli-bootstrap.ts","../src/functions/wirings/console/pikku-command-console-functions.ts","../src/functions/wirings/console/pikku-command-nodes-meta.ts","../src/functions/wirings/console/serialize-console-functions.ts","../src/functions/wirings/credentials/pikku-command-credentials.ts","../src/functions/wirings/credentials/serialize-credentials-types.ts","../src/functions/wirings/emails/pikku-command-emails.ts","../src/functions/wirings/emails/serialize-emails.ts","../src/functions/wirings/errors/pikku-command-error-types.ts","../src/functions/wirings/errors/serialize-error-types.ts","../src/functions/wirings/functions/pikku-command-addon-types.ts","../src/functions/wirings/functions/pikku-command-function-types-split.ts","../src/functions/wirings/functions/pikku-command-functions.ts","../src/functions/wirings/functions/pikku-command-leaf-indexes.ts","../src/functions/wirings/functions/pikku-command-services.ts","../src/functions/wirings/functions/schemas.ts","../src/functions/wirings/functions/serialize-addon-refs.ts","../src/functions/wirings/functions/serialize-addon-types.ts","../src/functions/wirings/functions/serialize-function-imports.ts","../src/functions/wirings/functions/serialize-function-types.ts","../src/functions/wirings/functions/serialize-leaf-index.ts","../src/functions/wirings/gateway/pikku-command-gateway-types.ts","../src/functions/wirings/gateway/pikku-command-gateway.ts","../src/functions/wirings/gateway/serialize-gateway-meta.ts","../src/functions/wirings/gateway/serialize-gateway-types.ts","../src/functions/wirings/graph/pikku-command-graph-wirings.ts","../src/functions/wirings/graph/serialize-graph-wirings.ts","../src/functions/wirings/http/pikku-command-http-map.ts","../src/functions/wirings/http/pikku-command-http-routes.ts","../src/functions/wirings/http/pikku-command-http-types.ts","../src/functions/wirings/http/pikku-command-openapi.ts","../src/functions/wirings/http/pikku-http-routes.ts","../src/functions/wirings/http/serialize-fetch-wrapper.ts","../src/functions/wirings/http/serialize-http-types.ts","../src/functions/wirings/http/serialize-typed-http-map.ts","../src/functions/wirings/mcp/pikku-command-mcp-json.ts","../src/functions/wirings/mcp/pikku-command-mcp-types.ts","../src/functions/wirings/mcp/pikku-command-mcp.ts","../src/functions/wirings/mcp/serialize-mcp-types.ts","../src/functions/wirings/middleware/pikku-command-middleware.ts","../src/functions/wirings/middleware/serialize-middleware-imports.ts","../src/functions/wirings/middleware/serialize-middleware-types.ts","../src/functions/wirings/package/pikku-command-package-types.ts","../src/functions/wirings/package/pikku-command-package.ts","../src/functions/wirings/package/serialize-package-types.ts","../src/functions/wirings/package/serialize-package.ts","../src/functions/wirings/permissions/pikku-command-permissions.ts","../src/functions/wirings/permissions/serialize-permissions-imports.ts","../src/functions/wirings/personas/personas-secrets-file.ts","../src/functions/wirings/personas/pikku-command-personas.ts","../src/functions/wirings/personas/serialize-personas-secrets.ts","../src/functions/wirings/personas/serialize-personas-types.ts","../src/functions/wirings/queue/pikku-command-queue-map.ts","../src/functions/wirings/queue/pikku-command-queue-service.ts","../src/functions/wirings/queue/pikku-command-queue-types.ts","../src/functions/wirings/queue/pikku-command-queue.ts","../src/functions/wirings/queue/pikku-queue-map.ts","../src/functions/wirings/queue/pikku-queue.ts","../src/functions/wirings/queue/serialize-queue-map.ts","../src/functions/wirings/queue/serialize-queue-meta.ts","../src/functions/wirings/queue/serialize-queue-types.ts","../src/functions/wirings/queue/serialize-queue-wrapper.ts","../src/functions/wirings/realtime/pikku-command-events-scaffold.ts","../src/functions/wirings/realtime/pikku-command-realtime.ts","../src/functions/wirings/realtime/serialize-events-scaffold.ts","../src/functions/wirings/realtime/serialize-realtime-client.ts","../src/functions/wirings/roles/pikku-command-roles.ts","../src/functions/wirings/roles/serialize-roles-types.ts","../src/functions/wirings/rpc/pikku-command-public-rpc.ts","../src/functions/wirings/rpc/pikku-command-react-query.ts","../src/functions/wirings/rpc/pikku-command-remote-rpc.ts","../src/functions/wirings/rpc/pikku-command-rpc-client.ts","../src/functions/wirings/rpc/pikku-command-rpc-map.ts","../src/functions/wirings/rpc/pikku-command-rpc.ts","../src/functions/wirings/rpc/serialize-public-rpc.ts","../src/functions/wirings/rpc/serialize-react-query-hooks.ts","../src/functions/wirings/rpc/serialize-remote-rpc.ts","../src/functions/wirings/rpc/serialize-rpc-wrapper.ts","../src/functions/wirings/rpc/serialize-typed-rpc-map.ts","../src/functions/wirings/scenarios/register-scenario-instrumentation.ts","../src/functions/wirings/scenarios/scenario-partition.ts","../src/functions/wirings/scenarios/scenario-schema-partition.ts","../src/functions/wirings/scenarios/serialize-feature-meta.ts","../src/functions/wirings/scenarios/serialize-scenario-meta.ts","../src/functions/wirings/scenarios/serialize-scenario-registration.ts","../src/functions/wirings/scheduler/pikku-command-scheduler-types.ts","../src/functions/wirings/scheduler/pikku-command-scheduler.ts","../src/functions/wirings/scheduler/serialize-scheduler-meta.ts","../src/functions/wirings/scheduler/serialize-scheduler-types.ts","../src/functions/wirings/scopes/pikku-command-scopes.ts","../src/functions/wirings/scopes/serialize-scopes-client.ts","../src/functions/wirings/scopes/serialize-scopes-types.ts","../src/functions/wirings/secrets/pikku-command-secrets.ts","../src/functions/wirings/secrets/serialize-secrets-types.ts","../src/functions/wirings/setup/serialize-setup-types.ts","../src/functions/wirings/triggers/pikku-command-trigger-types.ts","../src/functions/wirings/triggers/pikku-command-trigger.ts","../src/functions/wirings/triggers/serialize-trigger-meta.ts","../src/functions/wirings/triggers/serialize-trigger-types.ts","../src/functions/wirings/user-admin/pikku-command-user-admin-functions.ts","../src/functions/wirings/user-admin/serialize-user-admin-functions.ts","../src/functions/wirings/variables/pikku-command-variables.ts","../src/functions/wirings/variables/serialize-variables-types.ts","../src/functions/wirings/virtual-user/pikku-command-virtual-user-functions.ts","../src/functions/wirings/virtual-user/serialize-virtual-user-functions.ts","../src/functions/wirings/webhook/pikku-command-webhook.ts","../src/functions/wirings/webhook/serialize-webhook.ts","../src/functions/wirings/workflow/pikku-command-workflow-routes.ts","../src/functions/wirings/workflow/pikku-command-workflow.ts","../src/functions/wirings/workflow/serialize-personas.ts","../src/functions/wirings/workflow/serialize-scenario-step-map.ts","../src/functions/wirings/workflow/serialize-scenario-types.ts","../src/functions/wirings/workflow/serialize-workflow-bootstrap-map.ts","../src/functions/wirings/workflow/serialize-workflow-map.ts","../src/functions/wirings/workflow/serialize-workflow-meta.ts","../src/functions/wirings/workflow/serialize-workflow-registration.ts","../src/functions/wirings/workflow/serialize-workflow-routes.ts","../src/functions/wirings/workflow/serialize-workflow-types.ts","../src/functions/workflows/all.workflow.ts","../src/middleware/log-command-info-and-time.ts","../src/server/actor-sign-in.ts","../src/server/bun-server-runner.ts","../src/server/content-signing-jwt.ts","../src/server/dev-server-runner.interface.ts","../src/server/node-server-runner.ts","../src/server/server-ready.ts","../src/server/spawn-dev-server.ts","../src/services/cli-logger-forwarder.service.ts","../src/services/cli-logger.service.ts","../src/utils/assert-single-core-version.ts","../src/utils/check-required-types.ts","../src/utils/cli-session.ts","../src/utils/command-summary.ts","../src/utils/contract-versions.ts","../src/utils/detect-better-auth.ts","../src/utils/device-auth.ts","../src/utils/file-import-path.ts","../src/utils/file-imports-serializer.ts","../src/utils/file-writer.ts","../src/utils/generate-bootstrap-file.ts","../src/utils/get-cli-version.ts","../src/utils/is-deploy-codegen.ts","../src/utils/leaf-import-path.ts","../src/utils/meta-diff.ts","../src/utils/model-alias-override.ts","../src/utils/parse-cli-filters.ts","../src/utils/persona-credentials.ts","../src/utils/pikku-cli-config-error.ts","../src/utils/pikku-cli-config.ts","../src/utils/pikku-files-and-methods.ts","../src/utils/precise-coverage-map.ts","../src/utils/remove-legacy-scaffold-file.ts","../src/utils/resolve-from-project.ts","../src/utils/resolve-personas.ts","../src/utils/resolve-scaffold-feature.ts","../src/utils/schema-diff.ts","../src/utils/serialize-import-map.ts","../src/utils/serialize-meta-ts.ts","../src/utils/serialize-schemas.ts","../src/utils/strip-verbose-meta.ts","../src/utils/surface-diff.ts","../src/utils/surface.ts","../src/utils/tsc-check.ts","../.pikku/pikku-bootstrap-scenarios.gen.ts","../.pikku/pikku-bootstrap.gen.ts","../.pikku/pikku-services.gen.ts","../.pikku/addon/index.ts","../.pikku/addon/pikku-addon-types.gen.ts","../.pikku/agent/index.ts","../.pikku/agent/pikku-agent-map.gen.d.ts","../.pikku/agent/pikku-agent-types.gen.ts","../.pikku/agent/pikku-model-aliases.gen.ts","../.pikku/agent/pikku-scorer-names.gen.d.ts","../.pikku/auth/auth.types.ts","../.pikku/auth/index.ts","../.pikku/auth/pikku-auth-types.gen.ts","../.pikku/channel/index.ts","../.pikku/channel/pikku-channel-types.gen.ts","../.pikku/cli/index.ts","../.pikku/cli/pikku-cli-channel.ts","../.pikku/cli/pikku-cli-client.gen.ts","../.pikku/cli/pikku-cli-contracts-meta.gen.ts","../.pikku/cli/pikku-cli-types.gen.ts","../.pikku/cli/pikku-cli-wirings-meta.gen.ts","../.pikku/cli/pikku-cli-wirings.gen.ts","../.pikku/cli/pikku-cli.gen.ts","../.pikku/error/index.ts","../.pikku/error/pikku-error-types.gen.ts","../.pikku/function/index.ts","../.pikku/function/pikku-function-types.gen.ts","../.pikku/function/pikku-functions-meta.gen.ts","../.pikku/function/pikku-functions.gen.ts","../.pikku/gateway/index.ts","../.pikku/gateway/pikku-gateway-types.gen.ts","../.pikku/http/index.ts","../.pikku/http/pikku-http-types.gen.ts","../.pikku/mcp/index.ts","../.pikku/mcp/pikku-mcp-types.gen.ts","../.pikku/middleware/index.ts","../.pikku/middleware/pikku-middleware-types.gen.ts","../.pikku/node/pikku-node-types.gen.ts","../.pikku/queue/index.ts","../.pikku/queue/pikku-queue-types.gen.ts","../.pikku/queue/pikku-queue-workers-wirings-map.gen.d.ts","../.pikku/queue/pikku-queue-workers-wirings-meta.gen.ts","../.pikku/queue/pikku-queue-workers-wirings.gen.ts","../.pikku/rpc/pikku-rpc-wirings-map.gen.d.ts","../.pikku/rpc/pikku-rpc-wirings-map.internal.gen.d.ts","../.pikku/rpc/pikku-rpc-wirings-map.remote.gen.d.ts","../.pikku/rpc/pikku-rpc-wirings-meta.internal.gen.ts","../.pikku/scenarios/index.ts","../.pikku/scenarios/pikku-personas.gen.ts","../.pikku/scenarios/pikku-scenario-functions-meta.gen.ts","../.pikku/scenarios/pikku-scenario-functions.gen.ts","../.pikku/scenarios/pikku-scenario-types.gen.ts","../.pikku/scenarios/pikku-scenario-wirings-meta.gen.ts","../.pikku/scenarios/pikku-scenario-wirings.gen.ts","../.pikku/scenarios/schemas/register.gen.ts","../.pikku/scheduler/index.ts","../.pikku/scheduler/pikku-scheduler-types.gen.ts","../.pikku/schemas/register.gen.ts","../.pikku/scopes/index.ts","../.pikku/scopes/pikku-personas.gen.ts","../.pikku/scopes/pikku-roles.gen.ts","../.pikku/scopes/pikku-scope-types.gen.ts","../.pikku/scopes/pikku-scopes.gen.ts","../.pikku/secrets/index.ts","../.pikku/secrets/pikku-secret-types.gen.ts","../.pikku/secrets/pikku-secrets.gen.ts","../.pikku/services/pikku-meta-service.gen.ts","../.pikku/setup/index.ts","../.pikku/setup/pikku-setup-types.gen.ts","../.pikku/trigger/index.ts","../.pikku/trigger/pikku-trigger-types.gen.ts","../.pikku/variables/index.ts","../.pikku/variables/pikku-variable-types.gen.ts","../.pikku/variables/pikku-variables.gen.ts","../.pikku/workflow/index.ts","../.pikku/workflow/pikku-scenario-step-map.gen.d.ts","../.pikku/workflow/pikku-workflow-map.gen.d.ts","../.pikku/workflow/pikku-workflow-types.gen.ts","../.pikku/workflow/pikku-workflow-wirings-meta.gen.ts","../.pikku/workflow/pikku-workflow-wirings.gen.ts","../types/application-types.d.ts","../types/bun-sqlite.d.ts","../types/config.d.ts"],"version":"6.0.3"}
|
|
1
|
+
{"root":["../bin/pikku.ts","../src/cli.wiring.ts","../src/services.ts","../src/deploy/build-pipeline.ts","../src/deploy/frontend-assets.ts","../src/deploy/server-entry.ts","../src/deploy/analyzer/analyzer.ts","../src/deploy/analyzer/index.ts","../src/deploy/bundler/bun-bundler.ts","../src/deploy/bundler/bundler.interface.ts","../src/deploy/bundler/bundler.ts","../src/deploy/bundler/dep-extractor.ts","../src/deploy/bundler/index.ts","../src/deploy/bundler/node-bundler.ts","../src/deploy/bundler/service-module-map.ts","../src/deploy/bundler/types.ts","../src/deploy/codegen/index.ts","../src/deploy/codegen/per-unit-codegen.ts","../src/deploy/plan/executor.ts","../src/deploy/plan/formatter.ts","../src/deploy/plan/index.ts","../src/deploy/plan/planner.ts","../src/deploy/plan/provider.ts","../src/deploy/plan/types.ts","../src/fabric/fabric-commands.ts","../src/fabric/functions/add.function.ts","../src/fabric/functions/addon-verify.function.ts","../src/fabric/functions/db-schema.function.ts","../src/fabric/functions/deploy-list.function.ts","../src/fabric/functions/deploy-units.function.ts","../src/fabric/functions/deploy.function.ts","../src/fabric/functions/domains-add.function.ts","../src/fabric/functions/domains-list.function.ts","../src/fabric/functions/domains-remove.function.ts","../src/fabric/functions/errors.function.ts","../src/fabric/functions/init.function.ts","../src/fabric/functions/link.function.ts","../src/fabric/functions/llm-key.function.ts","../src/fabric/functions/login.function.ts","../src/fabric/functions/logs.function.ts","../src/fabric/functions/metrics.function.ts","../src/fabric/functions/projects-list.function.ts","../src/fabric/functions/publish.function.ts","../src/fabric/functions/rollback.function.ts","../src/fabric/functions/secrets-list.function.ts","../src/fabric/functions/secrets-rotate.function.ts","../src/fabric/functions/secrets-set.function.ts","../src/fabric/functions/smoke.function.ts","../src/fabric/functions/status.function.ts","../src/fabric/functions/trace.function.ts","../src/fabric/functions/validate.function.ts","../src/fabric/functions/variables-get.function.ts","../src/fabric/functions/variables-set.function.ts","../src/fabric/lib/config.ts","../src/fabric/lib/console-url.ts","../src/fabric/lib/deployment.ts","../src/fabric/lib/frontend-typecheck.ts","../src/fabric/lib/git.ts","../src/fabric/lib/http.ts","../src/fabric/lib/not-implemented.ts","../src/fabric/lib/output.ts","../src/fabric/lib/prompt.ts","../src/fabric/lib/sealed-box.ts","../src/fabric/lib/stage.ts","../src/fabric/lib/variable-value.ts","../src/fabric/sdk/http-map.gen.d.ts","../src/fabric/sdk/pikku-fetch.gen.ts","../src/fabric/sdk/pikku-rpc.gen.ts","../src/fabric/sdk/rpc-map.gen.d.ts","../src/functions/commands/all.ts","../src/functions/commands/audit.ts","../src/functions/commands/binary.ts","../src/functions/commands/bootstrap.ts","../src/functions/commands/bun-coverage-loader.ts","../src/functions/commands/db-audit.ts","../src/functions/commands/db-baseline.ts","../src/functions/commands/db-check.ts","../src/functions/commands/db-codegen.ts","../src/functions/commands/db-export.ts","../src/functions/commands/db-generate.ts","../src/functions/commands/db-migrate.ts","../src/functions/commands/db-reset.ts","../src/functions/commands/db-shared.ts","../src/functions/commands/deploy-apply.ts","../src/functions/commands/deploy-info.ts","../src/functions/commands/deploy-plan.ts","../src/functions/commands/dev-agent-runner.ts","../src/functions/commands/dev.ts","../src/functions/commands/doc.ts","../src/functions/commands/emails-init.ts","../src/functions/commands/enable.ts","../src/functions/commands/environment.ts","../src/functions/commands/import-n8n.ts","../src/functions/commands/info.ts","../src/functions/commands/knowledge-index.ts","../src/functions/commands/knowledge-validate.ts","../src/functions/commands/load-user-project.ts","../src/functions/commands/login.ts","../src/functions/commands/meta.ts","../src/functions/commands/new-addon.ts","../src/functions/commands/new-function.ts","../src/functions/commands/new-middleware.ts","../src/functions/commands/new-permission.ts","../src/functions/commands/new-wiring.ts","../src/functions/commands/persona-sync.ts","../src/functions/commands/persona.ts","../src/functions/commands/pikku-command-bootstrap.ts","../src/functions/commands/pikku-command-summary.ts","../src/functions/commands/roles-audit.ts","../src/functions/commands/roles-prune.ts","../src/functions/commands/roles-shared.ts","../src/functions/commands/scenario-browser.ts","../src/functions/commands/scenario-formatter.ts","../src/functions/commands/scenario-ladder.ts","../src/functions/commands/scenario-plan.ts","../src/functions/commands/scenario.ts","../src/functions/commands/scopes-audit.ts","../src/functions/commands/scopes-prune.ts","../src/functions/commands/scopes-shared.ts","../src/functions/commands/semver-render.ts","../src/functions/commands/semver.ts","../src/functions/commands/serve-console.ts","../src/functions/commands/serve-frontend.ts","../src/functions/commands/serve.ts","../src/functions/commands/skills.ts","../src/functions/commands/start-coverage.ts","../src/functions/commands/update-render.ts","../src/functions/commands/update.ts","../src/functions/commands/validate.ts","../src/functions/commands/versions-check.ts","../src/functions/commands/versions-init.ts","../src/functions/commands/versions-update.ts","../src/functions/commands/virtual-user-formatter.ts","../src/functions/commands/watch.ts","../src/functions/db/annotation-parser.ts","../src/functions/db/better-auth-schema.ts","../src/functions/db/db-codegen.ts","../src/functions/db/db-introspector.ts","../src/functions/db/db-migrator.ts","../src/functions/db/local-db.ts","../src/functions/db/migration-identifiers.ts","../src/functions/db/migration-provenance.ts","../src/functions/db/schema-sql.ts","../src/functions/db/zod-codegen.ts","../src/functions/db/postgres/pglite-kysely.ts","../src/functions/db/postgres/postgres-introspector.ts","../src/functions/db/postgres/postgres-migrator.ts","../src/functions/db/sqlite/dev-seed.ts","../src/functions/db/sqlite/sqlite-introspector.ts","../src/functions/db/sqlite/sqlite-kysely.ts","../src/functions/db/sqlite/sqlite-migrator.ts","../src/functions/db/sqlite/sqlite-runtime-bun.ts","../src/functions/db/sqlite/sqlite-runtime-node.ts","../src/functions/db/sqlite/sqlite-runtime.ts","../src/functions/knowledge/render.ts","../src/functions/knowledge/schemas.ts","../src/functions/runtimes/fetch/index.ts","../src/functions/runtimes/nextjs/pikku-command-nextjs.ts","../src/functions/runtimes/nextjs/serialize-nextjs-backend-worker-rpc-wrapper.ts","../src/functions/runtimes/nextjs/serialize-nextjs-backend-wrapper.ts","../src/functions/runtimes/nextjs/serialize-nextjs-http-wrapper.ts","../src/functions/runtimes/tanstack-start/pikku-command-tanstack-start.ts","../src/functions/runtimes/tanstack-start/serialize-tanstack-start-shim.ts","../src/functions/runtimes/websocket/pikku-command-websocket-typed.ts","../src/functions/runtimes/websocket/serialize-websocket-wrapper.ts","../src/functions/surface/build-surface-doc.ts","../src/functions/surface/collect-snippets.ts","../src/functions/surface/collect-surface-usage.ts","../src/functions/surface/collect-surface.ts","../src/functions/surface/generate-surface-doc.ts","../src/functions/surface/render-surface-doc.ts","../src/functions/surface/shipped-surface-doc.ts","../src/functions/surface/surface-doc.types.ts","../src/functions/surface/surface-editorial.ts","../src/functions/surface/write-surface-usage.ts","../src/functions/validate/addon-package-checks.ts","../src/functions/validate/auth-plugin-checks.ts","../src/functions/validate/bootstrap-checks.ts","../src/functions/validate/persona-checks.ts","../src/functions/validate/pikku-barrel-checks.ts","../src/functions/validate/scenario-file-checks.ts","../src/functions/validate/shared-checks.ts","../src/functions/validate/type-identity-checks.ts","../src/functions/validate/validate-registry.ts","../src/functions/validate/validate.ts","../src/functions/validate/websocket-deps-checks.ts","../src/functions/validate/workspace-exports-checks.ts","../src/functions/wirings/agent/pikku-command-agent-types.ts","../src/functions/wirings/agent/pikku-command-agent.ts","../src/functions/wirings/agent/pikku-command-public-agent.ts","../src/functions/wirings/agent/serialize-agent-map.ts","../src/functions/wirings/agent/serialize-agent-types.ts","../src/functions/wirings/agent/serialize-model-aliases.ts","../src/functions/wirings/agent/serialize-public-agent.ts","../src/functions/wirings/agent-scorer/pikku-command-agent-scorer.ts","../src/functions/wirings/agent-scorer/serialize-scorer-names.ts","../src/functions/wirings/auth/pikku-command-auth.ts","../src/functions/wirings/auth/serialize-auth-gen.ts","../src/functions/wirings/auth/serialize-auth-guards.ts","../src/functions/wirings/auth/serialize-auth-meta.ts","../src/functions/wirings/auth/serialize-auth-types.ts","../src/functions/wirings/channels/pikku-channels.ts","../src/functions/wirings/channels/pikku-command-channel-types.ts","../src/functions/wirings/channels/pikku-command-channels-map.ts","../src/functions/wirings/channels/pikku-command-channels.ts","../src/functions/wirings/channels/serialize-channel-types.ts","../src/functions/wirings/channels/serialize-typed-channel-map.ts","../src/functions/wirings/cli/pikku-command-cli-entry.ts","../src/functions/wirings/cli/pikku-command-cli-types.ts","../src/functions/wirings/cli/pikku-command-cli.ts","../src/functions/wirings/cli/serialize-channel-cli-client.ts","../src/functions/wirings/cli/serialize-channel-cli.ts","../src/functions/wirings/cli/serialize-cli-entrypoint-guard.ts","../src/functions/wirings/cli/serialize-cli-types.ts","../src/functions/wirings/cli/serialize-local-cli-bootstrap.ts","../src/functions/wirings/console/pikku-command-console-functions.ts","../src/functions/wirings/console/pikku-command-nodes-meta.ts","../src/functions/wirings/console/serialize-console-functions.ts","../src/functions/wirings/credentials/pikku-command-credentials.ts","../src/functions/wirings/credentials/serialize-credentials-types.ts","../src/functions/wirings/emails/pikku-command-emails.ts","../src/functions/wirings/emails/serialize-emails.ts","../src/functions/wirings/errors/pikku-command-error-types.ts","../src/functions/wirings/errors/serialize-error-types.ts","../src/functions/wirings/functions/pikku-command-addon-types.ts","../src/functions/wirings/functions/pikku-command-function-types-split.ts","../src/functions/wirings/functions/pikku-command-functions.ts","../src/functions/wirings/functions/pikku-command-leaf-indexes.ts","../src/functions/wirings/functions/pikku-command-services.ts","../src/functions/wirings/functions/schemas.ts","../src/functions/wirings/functions/serialize-addon-refs.ts","../src/functions/wirings/functions/serialize-addon-types.ts","../src/functions/wirings/functions/serialize-function-imports.ts","../src/functions/wirings/functions/serialize-function-types.ts","../src/functions/wirings/functions/serialize-leaf-index.ts","../src/functions/wirings/gateway/pikku-command-gateway-types.ts","../src/functions/wirings/gateway/pikku-command-gateway.ts","../src/functions/wirings/gateway/serialize-gateway-meta.ts","../src/functions/wirings/gateway/serialize-gateway-types.ts","../src/functions/wirings/graph/pikku-command-graph-wirings.ts","../src/functions/wirings/graph/serialize-graph-wirings.ts","../src/functions/wirings/http/pikku-command-http-map.ts","../src/functions/wirings/http/pikku-command-http-routes.ts","../src/functions/wirings/http/pikku-command-http-types.ts","../src/functions/wirings/http/pikku-command-openapi.ts","../src/functions/wirings/http/pikku-http-routes.ts","../src/functions/wirings/http/serialize-fetch-wrapper.ts","../src/functions/wirings/http/serialize-http-types.ts","../src/functions/wirings/http/serialize-typed-http-map.ts","../src/functions/wirings/mcp/pikku-command-mcp-json.ts","../src/functions/wirings/mcp/pikku-command-mcp-types.ts","../src/functions/wirings/mcp/pikku-command-mcp.ts","../src/functions/wirings/mcp/serialize-mcp-types.ts","../src/functions/wirings/middleware/pikku-command-middleware.ts","../src/functions/wirings/middleware/serialize-middleware-imports.ts","../src/functions/wirings/middleware/serialize-middleware-types.ts","../src/functions/wirings/package/pikku-command-package-types.ts","../src/functions/wirings/package/pikku-command-package.ts","../src/functions/wirings/package/serialize-package-types.ts","../src/functions/wirings/package/serialize-package.ts","../src/functions/wirings/permissions/pikku-command-permissions.ts","../src/functions/wirings/permissions/serialize-permissions-imports.ts","../src/functions/wirings/personas/personas-secrets-file.ts","../src/functions/wirings/personas/pikku-command-personas.ts","../src/functions/wirings/personas/serialize-personas-secrets.ts","../src/functions/wirings/personas/serialize-personas-types.ts","../src/functions/wirings/queue/pikku-command-queue-map.ts","../src/functions/wirings/queue/pikku-command-queue-service.ts","../src/functions/wirings/queue/pikku-command-queue-types.ts","../src/functions/wirings/queue/pikku-command-queue.ts","../src/functions/wirings/queue/pikku-queue-map.ts","../src/functions/wirings/queue/pikku-queue.ts","../src/functions/wirings/queue/serialize-queue-map.ts","../src/functions/wirings/queue/serialize-queue-meta.ts","../src/functions/wirings/queue/serialize-queue-types.ts","../src/functions/wirings/queue/serialize-queue-wrapper.ts","../src/functions/wirings/realtime/pikku-command-events-scaffold.ts","../src/functions/wirings/realtime/pikku-command-realtime.ts","../src/functions/wirings/realtime/serialize-events-scaffold.ts","../src/functions/wirings/realtime/serialize-realtime-client.ts","../src/functions/wirings/roles/pikku-command-roles.ts","../src/functions/wirings/roles/serialize-roles-types.ts","../src/functions/wirings/rpc/pikku-command-public-rpc.ts","../src/functions/wirings/rpc/pikku-command-react-query.ts","../src/functions/wirings/rpc/pikku-command-remote-rpc.ts","../src/functions/wirings/rpc/pikku-command-rpc-client.ts","../src/functions/wirings/rpc/pikku-command-rpc-map.ts","../src/functions/wirings/rpc/pikku-command-rpc.ts","../src/functions/wirings/rpc/serialize-public-rpc.ts","../src/functions/wirings/rpc/serialize-react-query-hooks.ts","../src/functions/wirings/rpc/serialize-remote-rpc.ts","../src/functions/wirings/rpc/serialize-rpc-wrapper.ts","../src/functions/wirings/rpc/serialize-typed-rpc-map.ts","../src/functions/wirings/scenarios/register-scenario-instrumentation.ts","../src/functions/wirings/scenarios/scenario-partition.ts","../src/functions/wirings/scenarios/scenario-schema-partition.ts","../src/functions/wirings/scenarios/serialize-feature-meta.ts","../src/functions/wirings/scenarios/serialize-scenario-meta.ts","../src/functions/wirings/scenarios/serialize-scenario-registration.ts","../src/functions/wirings/scheduler/pikku-command-scheduler-types.ts","../src/functions/wirings/scheduler/pikku-command-scheduler.ts","../src/functions/wirings/scheduler/serialize-scheduler-meta.ts","../src/functions/wirings/scheduler/serialize-scheduler-types.ts","../src/functions/wirings/scopes/pikku-command-scopes.ts","../src/functions/wirings/scopes/serialize-scopes-client.ts","../src/functions/wirings/scopes/serialize-scopes-types.ts","../src/functions/wirings/secrets/pikku-command-secrets.ts","../src/functions/wirings/secrets/serialize-secrets-types.ts","../src/functions/wirings/setup/serialize-setup-types.ts","../src/functions/wirings/triggers/pikku-command-trigger-types.ts","../src/functions/wirings/triggers/pikku-command-trigger.ts","../src/functions/wirings/triggers/serialize-trigger-meta.ts","../src/functions/wirings/triggers/serialize-trigger-types.ts","../src/functions/wirings/user-admin/pikku-command-user-admin-functions.ts","../src/functions/wirings/user-admin/serialize-user-admin-functions.ts","../src/functions/wirings/variables/pikku-command-variables.ts","../src/functions/wirings/variables/serialize-variables-types.ts","../src/functions/wirings/virtual-user/pikku-command-virtual-user-functions.ts","../src/functions/wirings/virtual-user/serialize-virtual-user-functions.ts","../src/functions/wirings/webhook/pikku-command-webhook.ts","../src/functions/wirings/webhook/serialize-webhook.ts","../src/functions/wirings/workflow/pikku-command-workflow-routes.ts","../src/functions/wirings/workflow/pikku-command-workflow.ts","../src/functions/wirings/workflow/serialize-personas.ts","../src/functions/wirings/workflow/serialize-scenario-step-map.ts","../src/functions/wirings/workflow/serialize-scenario-types.ts","../src/functions/wirings/workflow/serialize-workflow-bootstrap-map.ts","../src/functions/wirings/workflow/serialize-workflow-map.ts","../src/functions/wirings/workflow/serialize-workflow-meta.ts","../src/functions/wirings/workflow/serialize-workflow-registration.ts","../src/functions/wirings/workflow/serialize-workflow-routes.ts","../src/functions/wirings/workflow/serialize-workflow-types.ts","../src/functions/workflows/all.workflow.ts","../src/middleware/log-command-info-and-time.ts","../src/server/actor-sign-in.ts","../src/server/bun-server-runner.ts","../src/server/content-signing-jwt.ts","../src/server/dev-server-runner.interface.ts","../src/server/node-server-runner.ts","../src/server/server-ready.ts","../src/server/spawn-dev-server.ts","../src/services/cli-logger-forwarder.service.ts","../src/services/cli-logger.service.ts","../src/utils/assert-single-core-version.ts","../src/utils/check-required-types.ts","../src/utils/cli-session.ts","../src/utils/command-summary.ts","../src/utils/contract-versions.ts","../src/utils/detect-better-auth.ts","../src/utils/device-auth.ts","../src/utils/file-import-path.ts","../src/utils/file-imports-serializer.ts","../src/utils/file-writer.ts","../src/utils/frontend.ts","../src/utils/generate-bootstrap-file.ts","../src/utils/get-cli-version.ts","../src/utils/is-deploy-codegen.ts","../src/utils/leaf-import-path.ts","../src/utils/meta-diff.ts","../src/utils/model-alias-override.ts","../src/utils/parse-cli-filters.ts","../src/utils/persona-credentials.ts","../src/utils/pikku-cli-config-error.ts","../src/utils/pikku-cli-config.ts","../src/utils/pikku-files-and-methods.ts","../src/utils/precise-coverage-map.ts","../src/utils/remove-legacy-scaffold-file.ts","../src/utils/resolve-from-project.ts","../src/utils/resolve-personas.ts","../src/utils/resolve-scaffold-feature.ts","../src/utils/schema-diff.ts","../src/utils/serialize-import-map.ts","../src/utils/serialize-meta-ts.ts","../src/utils/serialize-schemas.ts","../src/utils/strip-verbose-meta.ts","../src/utils/surface-diff.ts","../src/utils/surface.ts","../src/utils/tsc-check.ts","../.pikku/pikku-bootstrap-scenarios.gen.ts","../.pikku/pikku-bootstrap.gen.ts","../.pikku/pikku-services.gen.ts","../.pikku/addon/index.ts","../.pikku/addon/pikku-addon-types.gen.ts","../.pikku/agent/index.ts","../.pikku/agent/pikku-agent-map.gen.d.ts","../.pikku/agent/pikku-agent-types.gen.ts","../.pikku/agent/pikku-model-aliases.gen.ts","../.pikku/agent/pikku-scorer-names.gen.d.ts","../.pikku/auth/auth.types.ts","../.pikku/auth/index.ts","../.pikku/auth/pikku-auth-types.gen.ts","../.pikku/channel/index.ts","../.pikku/channel/pikku-channel-types.gen.ts","../.pikku/cli/index.ts","../.pikku/cli/pikku-cli-channel.ts","../.pikku/cli/pikku-cli-client.gen.ts","../.pikku/cli/pikku-cli-contracts-meta.gen.ts","../.pikku/cli/pikku-cli-types.gen.ts","../.pikku/cli/pikku-cli-wirings-meta.gen.ts","../.pikku/cli/pikku-cli-wirings.gen.ts","../.pikku/cli/pikku-cli.gen.ts","../.pikku/error/index.ts","../.pikku/error/pikku-error-types.gen.ts","../.pikku/function/index.ts","../.pikku/function/pikku-function-types.gen.ts","../.pikku/function/pikku-functions-meta.gen.ts","../.pikku/function/pikku-functions.gen.ts","../.pikku/gateway/index.ts","../.pikku/gateway/pikku-gateway-types.gen.ts","../.pikku/http/index.ts","../.pikku/http/pikku-http-types.gen.ts","../.pikku/mcp/index.ts","../.pikku/mcp/pikku-mcp-types.gen.ts","../.pikku/middleware/index.ts","../.pikku/middleware/pikku-middleware-types.gen.ts","../.pikku/node/pikku-node-types.gen.ts","../.pikku/queue/index.ts","../.pikku/queue/pikku-queue-types.gen.ts","../.pikku/queue/pikku-queue-workers-wirings-map.gen.d.ts","../.pikku/queue/pikku-queue-workers-wirings-meta.gen.ts","../.pikku/queue/pikku-queue-workers-wirings.gen.ts","../.pikku/rpc/pikku-rpc-wirings-map.gen.d.ts","../.pikku/rpc/pikku-rpc-wirings-map.internal.gen.d.ts","../.pikku/rpc/pikku-rpc-wirings-map.remote.gen.d.ts","../.pikku/rpc/pikku-rpc-wirings-meta.internal.gen.ts","../.pikku/scenarios/index.ts","../.pikku/scenarios/pikku-personas.gen.ts","../.pikku/scenarios/pikku-scenario-functions-meta.gen.ts","../.pikku/scenarios/pikku-scenario-functions.gen.ts","../.pikku/scenarios/pikku-scenario-types.gen.ts","../.pikku/scenarios/pikku-scenario-wirings-meta.gen.ts","../.pikku/scenarios/pikku-scenario-wirings.gen.ts","../.pikku/scenarios/schemas/register.gen.ts","../.pikku/scheduler/index.ts","../.pikku/scheduler/pikku-scheduler-types.gen.ts","../.pikku/schemas/register.gen.ts","../.pikku/scopes/index.ts","../.pikku/scopes/pikku-personas.gen.ts","../.pikku/scopes/pikku-roles.gen.ts","../.pikku/scopes/pikku-scope-types.gen.ts","../.pikku/scopes/pikku-scopes.gen.ts","../.pikku/secrets/index.ts","../.pikku/secrets/pikku-secret-types.gen.ts","../.pikku/secrets/pikku-secrets.gen.ts","../.pikku/services/pikku-meta-service.gen.ts","../.pikku/setup/index.ts","../.pikku/setup/pikku-setup-types.gen.ts","../.pikku/trigger/index.ts","../.pikku/trigger/pikku-trigger-types.gen.ts","../.pikku/variables/index.ts","../.pikku/variables/pikku-variable-types.gen.ts","../.pikku/variables/pikku-variables.gen.ts","../.pikku/workflow/index.ts","../.pikku/workflow/pikku-scenario-step-map.gen.d.ts","../.pikku/workflow/pikku-workflow-map.gen.d.ts","../.pikku/workflow/pikku-workflow-types.gen.ts","../.pikku/workflow/pikku-workflow-wirings-meta.gen.ts","../.pikku/workflow/pikku-workflow-wirings.gen.ts","../types/application-types.d.ts","../types/bun-sqlite.d.ts","../types/config.d.ts"],"version":"6.0.3"}
|