@pikku/cli 0.12.144 → 0.12.151
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-CxjgE40i.js +1 -0
- package/console-app/assets/{abnfDiagram-N423BO3Z-BIPJyOId.js → abnfDiagram-VCTEODGH-UPW1PlxM.js} +1 -1
- package/console-app/assets/architecture-7GRP2DOG-BQN972Vc.js +1 -0
- package/console-app/assets/architectureDiagram-5GKGNRK7-B3XFrvZk.js +36 -0
- package/console-app/assets/blockDiagram-I7D4REHJ-Ca0v9UJQ.js +129 -0
- package/console-app/assets/c4Diagram-7LVT6UL2-CLewVsj_.js +38 -0
- package/console-app/assets/channel-B8xtOmL3.js +1 -0
- package/console-app/assets/chunk-4HAMMTFA-BwhbhOD9.js +62 -0
- package/console-app/assets/{chunk-NSK5VX7P-VK0slsok.js → chunk-75Z2AOVW-C7nAgNk0.js} +1 -1
- package/console-app/assets/chunk-DU6HZSFF-D4yYAcHt.js +127 -0
- package/console-app/assets/{chunk-2GRJ4B5K-pBREt5-Y.js → chunk-F27PBJKO-UHllOPps.js} +1 -1
- package/console-app/assets/{chunk-KEIR6QF5-BICK3FdT.js → chunk-FOHPRMQF-CoA4358r.js} +9 -9
- package/console-app/assets/chunk-GMAD6QVW-C0l_vm7T.js +72 -0
- package/console-app/assets/chunk-GVQU2GXP-h-H2Oird.js +1 -0
- package/console-app/assets/{chunk-5RXB4S5H-wo8Xtqiv.js → chunk-IMKFNOWR-DJ_W9CSg.js} +2 -2
- package/console-app/assets/chunk-L3NEJ4N5-Ce9oniwE.js +1 -0
- package/console-app/assets/chunk-OSK3NFVY-CdGE5qxS.js +10 -0
- package/console-app/assets/chunk-P2QGCYS3-DK1pHDdz.js +1 -0
- package/console-app/assets/{chunk-KBJHAD2P-PiPaopal.js → chunk-POPQ4Y6H-DjevEFNo.js} +1 -1
- package/console-app/assets/{chunk-4I5QYGJK-SmJ1Rqsn.js → chunk-PWAF6VOD-BVF5N1No.js} +1 -1
- package/console-app/assets/chunk-SHT3W25Y-BX8We-wN.js +168 -0
- package/console-app/assets/{chunk-6Q2QTUOP-B6uqaxr0.js → chunk-SVP7TREG-Cl0GgAPC.js} +1 -1
- package/console-app/assets/{chunk-GF5L2VYU-Cw7tsTe6.js → chunk-TICWLB2K-IWZAWDhu.js} +2 -2
- package/console-app/assets/chunk-XXDRQBXY-CGWcS5Ol.js +1 -0
- package/console-app/assets/classDiagram-ZZMXUADV-OGsmOlmO.js +1 -0
- package/console-app/assets/classDiagram-v2-VYDZK3BY-OGsmOlmO.js +1 -0
- package/console-app/assets/cose-bilkent-JH36ORCC-GsQ0JAnL.js +1 -0
- package/console-app/assets/cynefin-OW5HDTMX-hZsAZp_5.js +1 -0
- package/console-app/assets/{cynefinDiagram-MW4NZA55-BzFWEf8Y.js → cynefinDiagram-5FMLGOSQ-CsyMovx1.js} +1 -1
- package/console-app/assets/cytoscape.esm-B-1iW2ft.js +321 -0
- package/console-app/assets/dagre-BP8XEFz-.js +1 -0
- package/console-app/assets/dagre-GXQ25YYZ-Jg5285rx.js +4 -0
- package/console-app/assets/{diagram-7IWD3JNH-C58VaHJt.js → diagram-S7CK7UJ4-n9JiR8HK.js} +4 -4
- package/console-app/assets/{diagram-UB23O5K3-CmRNd5vm.js → diagram-UQ7AKVKN-Cde-dgbI.js} +1 -1
- package/console-app/assets/{diagram-B4RE2ZJO-B3w3TcXn.js → diagram-VSXAHHWV-CPZUg4FP.js} +1 -1
- package/console-app/assets/{diagram-Q27KOJAE-7oaP3D-d.js → diagram-VX7I27RA-B2rCDWvn.js} +1 -1
- package/console-app/assets/{diagram-LBJQPF4R-L1ZkDsab.js → diagram-Z3DM3KII-UwO0hte3.js} +1 -1
- package/console-app/assets/{ebnfDiagram-BXEA7PRR-D0rxzLaa.js → ebnfDiagram-PWID7BFC-BGJ_PBlS.js} +1 -1
- package/console-app/assets/erDiagram-RLTQ6QDP-CKsTScr3.js +99 -0
- package/console-app/assets/eventmodeling-NTZA5JFV-CnZOTLz3.js +1 -0
- package/console-app/assets/flowDiagram-HODETNUW-TYMCrte8.js +1 -0
- package/console-app/assets/ganttDiagram-EL5Y4UJY-koeTkIEA.js +292 -0
- package/console-app/assets/gitGraph-4MIJSDKK-DyRPbcM4.js +1 -0
- package/console-app/assets/{gitGraphDiagram-DS77QQ5N-JaW7OYCY.js → gitGraphDiagram-WWUBYQGX-DSIejrYw.js} +1 -1
- package/console-app/assets/graphlib-BpQ_697T.js +1 -0
- package/console-app/assets/index-BbJGr-r1.css +1 -0
- package/console-app/assets/index-Du9_fRSw.js +262 -0
- package/console-app/assets/info-A6RAGUB7-C63f9an_.js +1 -0
- package/console-app/assets/{infoDiagram-6WML65LV-DIbMcTbW.js → infoDiagram-27XIBGKW-Dz5gMcUF.js} +1 -1
- package/console-app/assets/{ishikawaDiagram-WSZJBQD7-mozqgfxi.js → ishikawaDiagram-5VMMS53U-m-nTAZTH.js} +1 -1
- package/console-app/assets/{journeyDiagram-NVQOT4AX-CKDrjPz5.js → journeyDiagram-3NMN7TZE-C7mjFY7i.js} +2 -2
- package/console-app/assets/{kanban-definition-27J2QSJJ-B9shPbST.js → kanban-definition-UXKFOSKX-Cm7PqOOP.js} +2 -2
- package/console-app/assets/{katex-CXMH3UgJ.js → katex-ZlcWpGUi.js} +2 -2
- package/console-app/assets/{line-DLrnl2PN.js → line-RZNRGurC.js} +1 -1
- package/console-app/assets/linear-C2IGWMlF.js +1 -0
- package/console-app/assets/{mermaid-parser.core-ElI_yw4f.js → mermaid-parser.core-DN1yDqgB.js} +3 -3
- package/console-app/assets/mermaid.core-DDRs3TbC.js +44 -0
- package/console-app/assets/{mindmap-definition-FAOFIHXS-BTvmLZE7.js → mindmap-definition-YA3MSWOX-o6riOwlF.js} +1 -1
- package/console-app/assets/packet-AYTQ26CC-B89F6gXG.js +1 -0
- package/console-app/assets/{pegDiagram-VL7TDLO6-1hBiUSmO.js → pegDiagram-XKGWAZYB-BQ1AAIaV.js} +1 -1
- package/console-app/assets/pie-WAS4IAKB-CzuwQlQz.js +1 -0
- package/console-app/assets/{pieDiagram-7S7Q4E2Y-vvgYfdFq.js → pieDiagram-E7YTZNPT-DlcGHWGT.js} +1 -1
- package/console-app/assets/{quadrantDiagram-CIZ2JOQS-B_emxK6O.js → quadrantDiagram-AXDQQJYC-DdITwqw-.js} +1 -1
- package/console-app/assets/radar-RG4KPBEZ-DlJ29jAN.js +1 -0
- package/console-app/assets/railroad-74A4TZTK-BL49fdM8.js +1 -0
- package/console-app/assets/railroad-abnf-HS5TGJTU-D9Ej_sin.js +1 -0
- package/console-app/assets/railroad-ebnf-LZEXJU2U-CjzlC3qv.js +1 -0
- package/console-app/assets/railroad-peg-WCYAUIDC-BPa6lIrj.js +1 -0
- package/console-app/assets/{railroadDiagram-AXF67PYL-IXXj_KlB.js → railroadDiagram-O6MQD6OU-BNgQGtF5.js} +1 -1
- package/console-app/assets/{requirementDiagram-LRYGKXZP-B15ZEbec.js → requirementDiagram-BXWQKSXE-48lE_WeD.js} +2 -2
- package/console-app/assets/{sankeyDiagram-W5VNT64P-w-sj_WN8.js → sankeyDiagram-P5KCCOFB-WmTardCP.js} +1 -1
- package/console-app/assets/{sequenceDiagram-SI44F4Z6-BP1UgEbX.js → sequenceDiagram-WJ2MYXX4-Bd5cHDMs.js} +1 -1
- package/console-app/assets/src-BTXg_NtK.js +1 -0
- package/console-app/assets/{stateDiagram-OKZ733FA-DE4L-y3n.js → stateDiagram-D77RDMKH-DBoCkqGv.js} +1 -1
- package/console-app/assets/stateDiagram-v2-MP3YSRHH-BLbaZawL.js +1 -0
- package/console-app/assets/swimlanes-42K2YHIH-lecUPBaK.js +1 -0
- package/console-app/assets/swimlanesDiagram-VR7AAH4N-CM_5HS_7.js +8 -0
- package/console-app/assets/{timeline-definition-Z64GVDOM-Cc8M2qee.js → timeline-definition-24CTP7MA-CWq0OWm1.js} +1 -1
- package/console-app/assets/treeView-Q6P3EWNA-C7lEeqUz.js +1 -0
- package/console-app/assets/treemap-WGGIJYW6-Bkx2DAoI.js +1 -0
- package/console-app/assets/{vennDiagram-T6HMQDX7-dpGyGzMg.js → vennDiagram-4TSXK5OY-Bw_kGRL3.js} +1 -1
- package/console-app/assets/wardley-WFR3VGLG-V0zki2L0.js +1 -0
- package/console-app/assets/{wardleyDiagram-T6FBY63Y-CBvRf8GJ.js → wardleyDiagram-VM6X3IG4-C5vrwEHM.js} +1 -1
- package/console-app/assets/{xychartDiagram-ELKLHX3M-UlPqx-ve.js → xychartDiagram-S5SC5T6Z-B9uA0moC.js} +3 -3
- package/console-app/index.html +2 -3
- 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 +6 -6
- package/dist/.pikku/agent/pikku-model-aliases.gen.js +1 -1
- package/dist/.pikku/analytics/index.d.ts +7 -0
- package/dist/.pikku/analytics/index.js +7 -0
- package/dist/.pikku/analytics/pikku-analytics-types.gen.d.ts +5 -0
- package/dist/.pikku/analytics/pikku-analytics-types.gen.js +4 -0
- package/dist/.pikku/auth/auth.types.d.ts +1 -1
- package/dist/.pikku/auth/auth.types.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 +3 -3
- 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.d.ts +7 -7
- package/dist/.pikku/cli/pikku-cli-channel.js +31 -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 +170 -0
- package/dist/.pikku/cli/pikku-cli-types.gen.d.ts +2 -2
- 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 +170 -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 +8 -7
- 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 +235 -27
- package/dist/.pikku/function/pikku-functions.gen.js +9 -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 +5 -1
- package/dist/.pikku/pikku-services.gen.js +4 -0
- 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 +10 -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.d.ts +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 +31 -1
- package/dist/.pikku/schemas/schemas/FabricChangesAskInput.schema.json +1 -0
- package/dist/.pikku/schemas/schemas/FabricChangesAskOutput.schema.json +1 -0
- package/dist/.pikku/schemas/schemas/FabricChangesClaimInput.schema.json +1 -0
- package/dist/.pikku/schemas/schemas/FabricChangesClaimOutput.schema.json +1 -0
- package/dist/.pikku/schemas/schemas/FabricChangesDoneInput.schema.json +1 -0
- package/dist/.pikku/schemas/schemas/FabricChangesDoneOutput.schema.json +1 -0
- package/dist/.pikku/schemas/schemas/FabricChangesListInput.schema.json +1 -0
- package/dist/.pikku/schemas/schemas/FabricChangesListOutput.schema.json +1 -0
- package/dist/.pikku/schemas/schemas/FabricChangesShotInput.schema.json +1 -0
- package/dist/.pikku/schemas/schemas/FabricChangesShotOutput.schema.json +1 -0
- package/dist/.pikku/schemas/schemas/FabricChangesShowInput.schema.json +1 -0
- package/dist/.pikku/schemas/schemas/FabricChangesShowOutput.schema.json +1 -0
- package/dist/.pikku/schemas/schemas/FabricDeployApplyOutput.schema.json +1 -1
- package/dist/.pikku/schemas/schemas/FabricFindingsListOutput.schema.json +1 -1
- package/dist/.pikku/schemas/schemas/FabricProjectsListOutput.schema.json +1 -1
- package/dist/.pikku/schemas/schemas/FabricPublishOutput.schema.json +1 -1
- package/dist/.pikku/schemas/schemas/FabricRollbackOutput.schema.json +1 -1
- package/dist/.pikku/schemas/schemas/FabricSecretsDeleteOutput.schema.json +1 -1
- package/dist/.pikku/schemas/schemas/FabricSecretsRotateOutput.schema.json +1 -1
- package/dist/.pikku/schemas/schemas/PikkuAnalyticsOutput.schema.json +1 -0
- package/dist/.pikku/schemas/schemas/PikkuFeatureFlagsScaffoldOutput.schema.json +1 -0
- package/dist/.pikku/schemas/schemas/PikkuFlagsInput.schema.json +1 -0
- package/dist/.pikku/scopes/index.d.ts +2 -1
- package/dist/.pikku/scopes/index.js +2 -1
- package/dist/.pikku/scopes/pikku-flags-meta.gen.json +1 -0
- package/dist/.pikku/scopes/pikku-flags.gen.d.ts +41 -0
- package/dist/.pikku/scopes/pikku-flags.gen.js +34 -0
- 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 +2 -1
- package/dist/.pikku/scopes/pikku-scope-types.gen.js +2 -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 +2 -2
- 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/meta/allWorkflow.gen.json +42 -6
- 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/deploy/analyzer/analyzer.d.ts +8 -1
- package/dist/src/deploy/analyzer/analyzer.js +212 -52
- package/dist/src/deploy/analyzer/grouping.d.ts +57 -0
- package/dist/src/deploy/analyzer/grouping.js +148 -0
- package/dist/src/deploy/analyzer/index.d.ts +1 -0
- package/dist/src/deploy/analyzer/naming.d.ts +1 -0
- package/dist/src/deploy/analyzer/naming.js +9 -0
- package/dist/src/deploy/build-pipeline.d.ts +2 -0
- package/dist/src/deploy/build-pipeline.js +24 -0
- package/dist/src/fabric/fabric-commands.d.ts +323 -138
- package/dist/src/fabric/fabric-commands.js +135 -0
- package/dist/src/fabric/functions/add.function.d.ts +3 -3
- package/dist/src/fabric/functions/addon-verify.function.d.ts +9 -9
- package/dist/src/fabric/functions/changes-ask.function.d.ts +34 -0
- package/dist/src/fabric/functions/changes-ask.function.js +30 -0
- package/dist/src/fabric/functions/changes-claim.function.d.ts +50 -0
- package/dist/src/fabric/functions/changes-claim.function.js +43 -0
- package/dist/src/fabric/functions/changes-done.function.d.ts +55 -0
- package/dist/src/fabric/functions/changes-done.function.js +59 -0
- package/dist/src/fabric/functions/changes-list.function.d.ts +60 -0
- package/dist/src/fabric/functions/changes-list.function.js +82 -0
- package/dist/src/fabric/functions/changes-shot.function.d.ts +66 -0
- package/dist/src/fabric/functions/changes-shot.function.js +56 -0
- package/dist/src/fabric/functions/changes-show.function.d.ts +41 -0
- package/dist/src/fabric/functions/changes-show.function.js +80 -0
- package/dist/src/fabric/functions/db-schema.function.d.ts +3 -3
- package/dist/src/fabric/functions/deploy-list.function.d.ts +3 -3
- package/dist/src/fabric/functions/deploy-units.function.d.ts +3 -3
- package/dist/src/fabric/functions/deploy.function.d.ts +12 -12
- package/dist/src/fabric/functions/deploy.function.js +6 -5
- package/dist/src/fabric/functions/domains-add.function.d.ts +7 -7
- package/dist/src/fabric/functions/domains-list.function.d.ts +3 -3
- package/dist/src/fabric/functions/domains-remove.function.d.ts +3 -3
- package/dist/src/fabric/functions/errors.function.d.ts +3 -3
- package/dist/src/fabric/functions/findings-clear.function.d.ts +3 -3
- package/dist/src/fabric/functions/findings-flush.function.d.ts +3 -3
- package/dist/src/fabric/functions/findings-list.function.d.ts +3 -3
- package/dist/src/fabric/functions/init.function.d.ts +3 -3
- package/dist/src/fabric/functions/link.function.d.ts +3 -3
- package/dist/src/fabric/functions/link.function.js +3 -2
- package/dist/src/fabric/functions/llm-key.function.d.ts +9 -9
- package/dist/src/fabric/functions/login.function.d.ts +3 -3
- package/dist/src/fabric/functions/logs.function.d.ts +3 -3
- package/dist/src/fabric/functions/logs.function.js +2 -1
- package/dist/src/fabric/functions/metrics.function.d.ts +3 -3
- package/dist/src/fabric/functions/projects-list.function.d.ts +3 -3
- package/dist/src/fabric/functions/publish.function.d.ts +3 -3
- package/dist/src/fabric/functions/report.function.d.ts +15 -15
- package/dist/src/fabric/functions/rollback.function.d.ts +9 -9
- package/dist/src/fabric/functions/secrets-delete.function.d.ts +3 -3
- package/dist/src/fabric/functions/secrets-list.function.d.ts +3 -3
- package/dist/src/fabric/functions/secrets-rotate.function.d.ts +3 -3
- package/dist/src/fabric/functions/secrets-set.function.d.ts +3 -3
- package/dist/src/fabric/functions/smoke.function.d.ts +3 -3
- package/dist/src/fabric/functions/status.function.d.ts +3 -3
- package/dist/src/fabric/functions/trace.function.d.ts +3 -3
- package/dist/src/fabric/functions/validate.function.d.ts +7 -7
- package/dist/src/fabric/functions/variables-get.function.d.ts +3 -3
- package/dist/src/fabric/functions/variables-set.function.d.ts +6 -6
- package/dist/src/fabric/lib/changes.d.ts +38 -0
- package/dist/src/fabric/lib/changes.js +70 -0
- package/dist/src/fabric/lib/errors.d.ts +21 -0
- package/dist/src/fabric/lib/errors.js +21 -0
- package/dist/src/fabric/lib/finding.d.ts +3 -3
- package/dist/src/fabric/lib/git.d.ts +3 -2
- package/dist/src/fabric/lib/git.js +10 -8
- package/dist/src/fabric/lib/output.d.ts +20 -0
- package/dist/src/fabric/lib/output.js +32 -7
- package/dist/src/functions/commands/all.d.ts +1 -1
- package/dist/src/functions/commands/audit.d.ts +1 -1
- package/dist/src/functions/commands/binary.d.ts +3 -3
- package/dist/src/functions/commands/bootstrap.d.ts +1 -1
- package/dist/src/functions/commands/bootstrap.js +3 -0
- package/dist/src/functions/commands/db-audit.d.ts +1 -1
- package/dist/src/functions/commands/db-baseline.d.ts +1 -1
- package/dist/src/functions/commands/db-check.d.ts +1 -1
- package/dist/src/functions/commands/db-codegen.d.ts +1 -1
- package/dist/src/functions/commands/db-export.d.ts +1 -1
- package/dist/src/functions/commands/db-generate.d.ts +1 -1
- package/dist/src/functions/commands/db-migrate.d.ts +1 -1
- package/dist/src/functions/commands/db-reset.d.ts +3 -3
- package/dist/src/functions/commands/deploy-apply.d.ts +3 -3
- package/dist/src/functions/commands/deploy-apply.js +36 -3
- package/dist/src/functions/commands/deploy-info.d.ts +1 -1
- package/dist/src/functions/commands/deploy-plan.d.ts +3 -3
- package/dist/src/functions/commands/deploy-plan.js +2 -0
- package/dist/src/functions/commands/dev-agent-runner.d.ts +9 -7
- package/dist/src/functions/commands/dev-agent-runner.js +56 -12
- package/dist/src/functions/commands/dev.d.ts +3 -3
- package/dist/src/functions/commands/dev.js +60 -6
- package/dist/src/functions/commands/dist.d.ts +3 -3
- package/dist/src/functions/commands/dist.js +2 -9
- package/dist/src/functions/commands/doc.d.ts +3 -3
- package/dist/src/functions/commands/emails-init.d.ts +1 -1
- package/dist/src/functions/commands/enable.d.ts +9 -9
- package/dist/src/functions/commands/import-n8n.d.ts +3 -3
- package/dist/src/functions/commands/info.d.ts +4 -4
- package/dist/src/functions/commands/init-or-warn.d.ts +19 -0
- package/dist/src/functions/commands/init-or-warn.js +25 -0
- package/dist/src/functions/commands/knowledge-index.d.ts +6 -6
- package/dist/src/functions/commands/knowledge-plan.d.ts +15 -15
- package/dist/src/functions/commands/knowledge-reconcile.d.ts +6 -6
- package/dist/src/functions/commands/knowledge-validate.d.ts +6 -6
- package/dist/src/functions/commands/login.d.ts +7 -7
- package/dist/src/functions/commands/meta.d.ts +34 -34
- package/dist/src/functions/commands/new-addon.d.ts +3 -3
- package/dist/src/functions/commands/new-function.d.ts +3 -3
- package/dist/src/functions/commands/new-middleware.d.ts +3 -3
- package/dist/src/functions/commands/new-permission.d.ts +3 -3
- package/dist/src/functions/commands/new-wiring.d.ts +3 -3
- package/dist/src/functions/commands/persona-sync.d.ts +3 -3
- package/dist/src/functions/commands/persona.d.ts +7 -7
- package/dist/src/functions/commands/pikku-command-bootstrap.d.ts +1 -1
- package/dist/src/functions/commands/pikku-command-summary.d.ts +1 -1
- package/dist/src/functions/commands/roles-audit.d.ts +1 -1
- package/dist/src/functions/commands/roles-prune.d.ts +3 -3
- package/dist/src/functions/commands/scenario.d.ts +7 -7
- package/dist/src/functions/commands/scopes-audit.d.ts +1 -1
- package/dist/src/functions/commands/scopes-prune.d.ts +3 -3
- package/dist/src/functions/commands/semver.d.ts +1 -1
- package/dist/src/functions/commands/serve.d.ts +3 -3
- package/dist/src/functions/commands/serve.js +40 -3
- package/dist/src/functions/commands/skills.d.ts +6 -6
- package/dist/src/functions/commands/update.d.ts +1 -1
- package/dist/src/functions/commands/validate.d.ts +6 -6
- package/dist/src/functions/commands/versions-check.d.ts +1 -1
- package/dist/src/functions/commands/versions-init.d.ts +3 -3
- package/dist/src/functions/commands/versions-update.d.ts +1 -1
- package/dist/src/functions/commands/watch.d.ts +3 -3
- package/dist/src/functions/db/zod-codegen.d.ts +19 -19
- package/dist/src/functions/knowledge/schemas.d.ts +5 -5
- package/dist/src/functions/runtimes/fetch/index.d.ts +1 -1
- package/dist/src/functions/runtimes/nextjs/pikku-command-nextjs.d.ts +1 -1
- package/dist/src/functions/runtimes/tanstack-start/pikku-command-tanstack-start.d.ts +1 -1
- package/dist/src/functions/runtimes/websocket/pikku-command-websocket-typed.d.ts +1 -1
- package/dist/src/functions/surface/build-surface-doc.js +1 -1
- package/dist/src/functions/surface/surface-doc.types.d.ts +1 -1
- package/dist/src/functions/surface/surface-editorial.js +5 -0
- package/dist/src/functions/validate/pikku-barrel-checks.js +2 -22
- package/dist/src/functions/validate/validate.d.ts +2 -2
- package/dist/src/functions/validate/websocket-deps-checks.d.ts +1 -1
- package/dist/src/functions/wirings/agent/pikku-command-agent-types.d.ts +1 -1
- package/dist/src/functions/wirings/agent/pikku-command-agent.d.ts +1 -1
- package/dist/src/functions/wirings/agent/pikku-command-public-agent.d.ts +1 -1
- package/dist/src/functions/wirings/agent-scorer/pikku-command-agent-scorer.d.ts +1 -1
- package/dist/src/functions/wirings/analytics/pikku-command-analytics.d.ts +11 -0
- package/dist/src/functions/wirings/analytics/pikku-command-analytics.js +66 -0
- package/dist/src/functions/wirings/analytics/serialize-analytics.d.ts +30 -0
- package/dist/src/functions/wirings/analytics/serialize-analytics.js +141 -0
- package/dist/src/functions/wirings/auth/pikku-command-auth.d.ts +3 -3
- package/dist/src/functions/wirings/auth/pikku-command-auth.js +2 -6
- package/dist/src/functions/wirings/auth/serialize-auth-gen.d.ts +1 -1
- package/dist/src/functions/wirings/auth/serialize-auth-gen.js +15 -36
- package/dist/src/functions/wirings/channels/pikku-command-channel-types.d.ts +1 -1
- package/dist/src/functions/wirings/channels/pikku-command-channels-map.d.ts +1 -1
- package/dist/src/functions/wirings/channels/pikku-command-channels.d.ts +1 -1
- package/dist/src/functions/wirings/cli/pikku-command-cli-entry.d.ts +1 -1
- package/dist/src/functions/wirings/cli/pikku-command-cli-types.d.ts +1 -1
- package/dist/src/functions/wirings/cli/pikku-command-cli.d.ts +1 -1
- package/dist/src/functions/wirings/console/pikku-command-console-functions.d.ts +1 -1
- package/dist/src/functions/wirings/console/pikku-command-nodes-meta.d.ts +1 -1
- package/dist/src/functions/wirings/credentials/pikku-command-credentials.d.ts +1 -1
- package/dist/src/functions/wirings/emails/pikku-command-emails.d.ts +1 -1
- package/dist/src/functions/wirings/errors/pikku-command-error-types.d.ts +1 -1
- package/dist/src/functions/wirings/flags/pikku-command-feature-flags-scaffold.d.ts +1 -0
- package/dist/src/functions/wirings/flags/pikku-command-feature-flags-scaffold.js +36 -0
- package/dist/src/functions/wirings/flags/pikku-command-flags.d.ts +7 -0
- package/dist/src/functions/wirings/flags/pikku-command-flags.js +36 -0
- package/dist/src/functions/wirings/flags/serialize-feature-flags-scaffold.d.ts +13 -0
- package/dist/src/functions/wirings/flags/serialize-feature-flags-scaffold.js +73 -0
- package/dist/src/functions/wirings/flags/serialize-flags-types.d.ts +14 -0
- package/dist/src/functions/wirings/flags/serialize-flags-types.js +68 -0
- package/dist/src/functions/wirings/functions/pikku-command-addon-types.d.ts +1 -1
- package/dist/src/functions/wirings/functions/pikku-command-function-types-split.d.ts +3 -3
- package/dist/src/functions/wirings/functions/pikku-command-function-types-split.js +1 -1
- package/dist/src/functions/wirings/functions/pikku-command-functions.d.ts +1 -1
- package/dist/src/functions/wirings/functions/pikku-command-leaf-indexes.d.ts +2 -2
- package/dist/src/functions/wirings/functions/pikku-command-leaf-indexes.js +2 -1
- package/dist/src/functions/wirings/functions/pikku-command-services.d.ts +1 -1
- package/dist/src/functions/wirings/functions/pikku-command-services.js +9 -2
- package/dist/src/functions/wirings/functions/schemas.d.ts +1 -1
- package/dist/src/functions/wirings/functions/serialize-function-types.d.ts +1 -1
- package/dist/src/functions/wirings/functions/serialize-function-types.js +9 -4
- package/dist/src/functions/wirings/gateway/pikku-command-gateway-types.d.ts +3 -3
- package/dist/src/functions/wirings/gateway/pikku-command-gateway.d.ts +1 -1
- package/dist/src/functions/wirings/graph/pikku-command-graph-wirings.d.ts +1 -1
- package/dist/src/functions/wirings/http/pikku-command-http-map.d.ts +1 -1
- package/dist/src/functions/wirings/http/pikku-command-http-routes.d.ts +1 -1
- package/dist/src/functions/wirings/http/pikku-command-http-types.d.ts +1 -1
- package/dist/src/functions/wirings/http/pikku-command-openapi.d.ts +1 -1
- package/dist/src/functions/wirings/mcp/pikku-command-mcp-json.d.ts +1 -1
- package/dist/src/functions/wirings/mcp/pikku-command-mcp-types.d.ts +1 -1
- package/dist/src/functions/wirings/mcp/pikku-command-mcp.d.ts +1 -1
- package/dist/src/functions/wirings/middleware/pikku-command-middleware.d.ts +1 -1
- package/dist/src/functions/wirings/package/pikku-command-package-types.d.ts +4 -3
- package/dist/src/functions/wirings/package/pikku-command-package-types.js +14 -1
- package/dist/src/functions/wirings/package/pikku-command-package.d.ts +1 -1
- package/dist/src/functions/wirings/package/serialize-package-types.d.ts +1 -0
- package/dist/src/functions/wirings/package/serialize-package-types.js +15 -0
- package/dist/src/functions/wirings/permissions/pikku-command-permissions.d.ts +1 -1
- package/dist/src/functions/wirings/personas/pikku-command-personas.d.ts +3 -3
- package/dist/src/functions/wirings/queue/pikku-command-queue-map.d.ts +1 -1
- package/dist/src/functions/wirings/queue/pikku-command-queue-service.d.ts +1 -1
- package/dist/src/functions/wirings/queue/pikku-command-queue-types.d.ts +1 -1
- package/dist/src/functions/wirings/queue/pikku-command-queue.d.ts +1 -1
- package/dist/src/functions/wirings/queue/pikku-queue-map.d.ts +1 -1
- package/dist/src/functions/wirings/realtime/pikku-command-events-scaffold.d.ts +1 -1
- package/dist/src/functions/wirings/realtime/pikku-command-realtime.d.ts +1 -1
- package/dist/src/functions/wirings/remote-jobs/pikku-command-remote-jobs.d.ts +1 -1
- package/dist/src/functions/wirings/roles/pikku-command-roles.d.ts +3 -3
- package/dist/src/functions/wirings/rpc/pikku-command-public-rpc.d.ts +1 -1
- package/dist/src/functions/wirings/rpc/pikku-command-react-query.d.ts +1 -1
- package/dist/src/functions/wirings/rpc/pikku-command-remote-rpc.d.ts +1 -1
- package/dist/src/functions/wirings/rpc/pikku-command-rpc-client.d.ts +1 -1
- package/dist/src/functions/wirings/rpc/pikku-command-rpc-map.d.ts +3 -3
- package/dist/src/functions/wirings/rpc/pikku-command-rpc.d.ts +1 -1
- package/dist/src/functions/wirings/scheduler/pikku-command-scheduler-types.d.ts +1 -1
- package/dist/src/functions/wirings/scheduler/pikku-command-scheduler.d.ts +1 -1
- package/dist/src/functions/wirings/scopes/pikku-command-scopes.d.ts +3 -3
- package/dist/src/functions/wirings/secrets/pikku-command-secrets.d.ts +1 -1
- package/dist/src/functions/wirings/triggers/pikku-command-trigger-types.d.ts +3 -3
- package/dist/src/functions/wirings/triggers/pikku-command-trigger.d.ts +1 -1
- package/dist/src/functions/wirings/variables/pikku-command-variables.d.ts +1 -1
- package/dist/src/functions/wirings/virtual-user/pikku-command-virtual-user-functions.d.ts +1 -1
- package/dist/src/functions/wirings/webhook/pikku-command-webhook.d.ts +1 -1
- package/dist/src/functions/wirings/workflow/pikku-command-workflow-routes.d.ts +1 -1
- package/dist/src/functions/wirings/workflow/pikku-command-workflow.d.ts +1 -1
- package/dist/src/functions/workflows/all.workflow.js +34 -9
- package/dist/src/services.js +7 -0
- package/dist/src/utils/analytics-schemas-file.d.ts +6 -0
- package/dist/src/utils/analytics-schemas-file.js +9 -0
- package/dist/src/utils/file-import-path.js +4 -1
- package/dist/src/utils/pikku-cli-config.d.ts +2 -2
- package/dist/src/utils/pikku-cli-config.js +28 -0
- package/dist/src/utils/remove-legacy-scaffold-file.js +4 -0
- package/dist/src/utils/resolve-from-project.d.ts +5 -0
- package/dist/src/utils/resolve-from-project.js +8 -2
- package/dist/src/utils/tsc-check.d.ts +11 -15
- package/dist/src/utils/tsc-check.js +97 -86
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +32 -25
- package/snippets.json +1 -1
- package/surface.json +743 -27
- package/CHANGELOG.md +0 -9599
- package/console-app/assets/HelpPanel-nYO2hRY5.js +0 -1
- package/console-app/assets/architecture-TIHT7OUA-B-c05-x5.js +0 -1
- package/console-app/assets/architectureDiagram-T3A2C74G-BAH1O4B7.js +0 -36
- package/console-app/assets/blockDiagram-VBNYF7ZC-T3kmcPgj.js +0 -132
- package/console-app/assets/c4Diagram-5PPSVZJV-DRva89Br.js +0 -10
- package/console-app/assets/channel-DJ3jfSNX.js +0 -1
- package/console-app/assets/chunk-7BUUIJ7U-Bb538aSH.js +0 -1
- package/console-app/assets/chunk-7Z6QIM7H-uxzNGOHh.js +0 -10
- package/console-app/assets/chunk-I66GZJ75-DksrbEtn.js +0 -127
- package/console-app/assets/chunk-JQJVKLGR-BnRvPhDK.js +0 -156
- package/console-app/assets/chunk-QR6OTTB3-CgQotuzQ.js +0 -62
- package/console-app/assets/chunk-RYQCIY6F-Cei0abOq.js +0 -1
- package/console-app/assets/chunk-UBXNYLIW-B55XJk4O.js +0 -1
- package/console-app/assets/chunk-W5SLKNZC-gFa01tuI.js +0 -1
- package/console-app/assets/chunk-WRU74C26-C3ESZQ-F.js +0 -70
- package/console-app/assets/chunk-XXDRQBXY-D0tL6SVk.js +0 -1
- package/console-app/assets/classDiagram-JCYQIIEL-BqEwCDi8.js +0 -1
- package/console-app/assets/classDiagram-v2-OCEON4UE-BqEwCDi8.js +0 -1
- package/console-app/assets/cose-bilkent-JH36ORCC-CUxqwjs-.js +0 -1
- package/console-app/assets/cynefin-VYW2F7L2-Dh1yOBBs.js +0 -1
- package/console-app/assets/cytoscape.esm-B-NFISlW.js +0 -321
- package/console-app/assets/dagre-DKjebq_c.js +0 -1
- package/console-app/assets/dagre-VZM6K2ZE-BllFBMe9.js +0 -4
- package/console-app/assets/erDiagram-JOGREHBK-Bg0FPLS0.js +0 -85
- package/console-app/assets/eventmodeling-45OFAUF4-CVovwmpS.js +0 -1
- package/console-app/assets/flowDiagram-UKHOOZJN-DwRgEyXD.js +0 -1
- package/console-app/assets/ganttDiagram-PKOTCBZU-BBxxHrPG.js +0 -292
- package/console-app/assets/gitGraph-TEB2WS4Q-Cn1MjFvM.js +0 -1
- package/console-app/assets/graphlib-IlWVLY3o.js +0 -1
- package/console-app/assets/index-C8MC-uMB.css +0 -1
- package/console-app/assets/index-Deds7K2I.js +0 -290
- package/console-app/assets/info-DKCQHKI2-C2R7hV-y.js +0 -1
- package/console-app/assets/isUndefined-T4snU1Mx.js +0 -1
- package/console-app/assets/linear-BQOZezXu.js +0 -1
- package/console-app/assets/map-BmPfXn7V.js +0 -1
- package/console-app/assets/mermaid.core-B02bSmuz.js +0 -42
- package/console-app/assets/packet-7NZHBO7P-CkYMF0Cd.js +0 -1
- package/console-app/assets/pie-RZYD4A2V-BFMvieVM.js +0 -1
- package/console-app/assets/radar-I7S5WNFK-C_2tp7_w.js +0 -1
- package/console-app/assets/railroad-3IZDKUUU-DwlFJLv5.js +0 -1
- package/console-app/assets/railroad-abnf-AHOZXSZD-Cyu_rpdZ.js +0 -1
- package/console-app/assets/railroad-ebnf-EBAXGLYW-BLiwK-H7.js +0 -1
- package/console-app/assets/railroad-peg-LSFZ7HO6-BUDTDYmP.js +0 -1
- package/console-app/assets/src-BI35UZf8.js +0 -1
- package/console-app/assets/stateDiagram-v2-UEYNNEHI-BsP8TwKV.js +0 -1
- package/console-app/assets/swimlanes-SLNWSIFB-DvAJxCGQ.js +0 -2
- package/console-app/assets/swimlanesDiagram-ULZ7WXOC-BAXO3Id2.js +0 -8
- package/console-app/assets/treeView-QDETBFTQ-DnlS0s0_.js +0 -1
- package/console-app/assets/treemap-6X3UGDF4-CiUoxlJe.js +0 -1
- package/console-app/assets/wardley-OPB4EBWU-DrTySJtR.js +0 -1
- package/dist/.pikku/console/index.d.ts +0 -1
- package/dist/.pikku/console/index.js +0 -1
- package/dist/.pikku/console/pikku-node-types.gen.d.ts +0 -6
- package/dist/.pikku/console/pikku-node-types.gen.js +0 -1
- package/dist/.pikku/pikku-meta-service.gen.d.ts +0 -7
- package/dist/.pikku/pikku-meta-service.gen.js +0 -9
- package/dist/.pikku/pikku-types.gen.d.ts +0 -17
- package/dist/.pikku/pikku-types.gen.js +0 -28
- package/dist/.pikku/workflow/pikku-personas.gen.d.ts +0 -15
- package/dist/.pikku/workflow/pikku-personas.gen.js +0 -17
- package/dist/src/functions/surface/collect-surface.d.ts +0 -58
- package/dist/src/functions/surface/collect-surface.js +0 -613
- /package/console-app/assets/{sizeCapture-X5ZJPWSS-B0uUizjq.js → sizeCapture-INFHLROL-B0uUizjq.js} +0 -0
|
@@ -1,4 +1,6 @@
|
|
|
1
|
-
import { basename, join, relative } from 'node:path';
|
|
1
|
+
import { basename, isAbsolute, join, relative } from 'node:path';
|
|
2
|
+
import { createRequire } from 'node:module';
|
|
3
|
+
import { pathToFileURL } from 'node:url';
|
|
2
4
|
import { readFile } from 'node:fs/promises';
|
|
3
5
|
import { existsSync, readFileSync } from 'node:fs';
|
|
4
6
|
import { pikkuSessionlessFunc } from '#pikku/function';
|
|
@@ -89,6 +91,36 @@ async function resolveProjectId(projectDir) {
|
|
|
89
91
|
}
|
|
90
92
|
return sanitizeProjectId(basename(projectDir));
|
|
91
93
|
}
|
|
94
|
+
/**
|
|
95
|
+
* A deploy provider is a dependency of the project being deployed, which is
|
|
96
|
+
* what the "is not installed" error asks the user to add. A bare
|
|
97
|
+
* `import(packageName)` resolves from the CLI's own location instead, and only
|
|
98
|
+
* found the provider because yarn hoisted every workspace package to a shared
|
|
99
|
+
* root. An isolated node_modules layout (bun, pnpm) gives the CLI only what the
|
|
100
|
+
* CLI declares, so the provider has to be resolved against the project.
|
|
101
|
+
*
|
|
102
|
+
* Only an absolute path counts as having resolved to the project's own copy: a
|
|
103
|
+
* configured provider may also be a URL, and a runtime whose `require.resolve`
|
|
104
|
+
* hands a bare specifier straight back for its own built-ins has resolved
|
|
105
|
+
* nothing. Both of those import as written.
|
|
106
|
+
*/
|
|
107
|
+
const importProviderPackage = async (packageName, projectDir) => {
|
|
108
|
+
const require = createRequire(join(projectDir ?? process.cwd(), 'package.json'));
|
|
109
|
+
try {
|
|
110
|
+
const resolved = require.resolve(packageName);
|
|
111
|
+
if (isAbsolute(resolved)) {
|
|
112
|
+
return await import(pathToFileURL(resolved).href);
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
catch (e) {
|
|
116
|
+
const err = e;
|
|
117
|
+
if (err?.code !== 'ERR_MODULE_NOT_FOUND' &&
|
|
118
|
+
err?.code !== 'MODULE_NOT_FOUND') {
|
|
119
|
+
throw e;
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
return await import(packageName);
|
|
123
|
+
};
|
|
92
124
|
export async function resolveProvider(config, providerName, options) {
|
|
93
125
|
const name = providerName ?? config?.deploy?.defaultProvider ?? 'cloudflare';
|
|
94
126
|
const providers = config?.deploy?.providers ?? {
|
|
@@ -103,7 +135,7 @@ export async function resolveProvider(config, providerName, options) {
|
|
|
103
135
|
}
|
|
104
136
|
const adapterExportName = name.charAt(0).toUpperCase() + name.slice(1) + 'ProviderAdapter';
|
|
105
137
|
try {
|
|
106
|
-
const mod = await
|
|
138
|
+
const mod = await importProviderPackage(packageName, options?.projectDir);
|
|
107
139
|
if (typeof mod.createAdapter === 'function') {
|
|
108
140
|
return mod.createAdapter(options);
|
|
109
141
|
}
|
|
@@ -116,7 +148,7 @@ export async function resolveProvider(config, providerName, options) {
|
|
|
116
148
|
const err = e;
|
|
117
149
|
if (err?.code === 'ERR_MODULE_NOT_FOUND' ||
|
|
118
150
|
err?.code === 'MODULE_NOT_FOUND') {
|
|
119
|
-
throw new Error(`Deploy provider '${packageName}' is not installed.
|
|
151
|
+
throw new Error(`Deploy provider '${packageName}' is not installed. Add ${packageName} to this project's dependencies.`);
|
|
120
152
|
}
|
|
121
153
|
throw e;
|
|
122
154
|
}
|
|
@@ -217,6 +249,7 @@ export const deployApply = pikkuSessionlessFunc({
|
|
|
217
249
|
inspectorState,
|
|
218
250
|
serverlessIncompatible: config.deploy?.serverlessIncompatible,
|
|
219
251
|
defaultTarget: config.deploy?.defaultTarget,
|
|
252
|
+
grouping: config.deploy?.grouping,
|
|
220
253
|
globalHTTPPrefix: config.globalHTTPPrefix,
|
|
221
254
|
getEntryContext,
|
|
222
255
|
frontend: config.frontend,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const deployInfo: import("#pikku/function").PikkuFunctionConfig<void, void, "rpc" | "session", import("#pikku/function").
|
|
1
|
+
export declare const deployInfo: import("#pikku/function").PikkuFunctionConfig<void, void, "rpc" | "session", import("#pikku/function").PikkuFunction<void, void, "rpc" | "session", import("#pikku/function").WiredServices> | import("#pikku/function").PikkuFunctionSessionless<void, void, "rpc" | "session", import("#pikku/function").WiredServices, unknown>, undefined, undefined>;
|
|
@@ -3,14 +3,14 @@ export declare const deployPlan: import("#pikku/function").PikkuFunctionConfig<{
|
|
|
3
3
|
provider?: string;
|
|
4
4
|
runtime?: string;
|
|
5
5
|
debugArtifacts?: boolean;
|
|
6
|
-
}, void, "rpc" | "session", import("#pikku/function").
|
|
6
|
+
}, void, "rpc" | "session", import("#pikku/function").PikkuFunction<{
|
|
7
7
|
resultFile?: string;
|
|
8
8
|
provider?: string;
|
|
9
9
|
runtime?: string;
|
|
10
10
|
debugArtifacts?: boolean;
|
|
11
|
-
}, void, "rpc" | "session", import("#pikku/function").WiredServices
|
|
11
|
+
}, void, "rpc" | "session", import("#pikku/function").WiredServices> | import("#pikku/function").PikkuFunctionSessionless<{
|
|
12
12
|
resultFile?: string;
|
|
13
13
|
provider?: string;
|
|
14
14
|
runtime?: string;
|
|
15
15
|
debugArtifacts?: boolean;
|
|
16
|
-
}, void, "rpc" | "session", import("#pikku/function").WiredServices>, undefined, undefined>;
|
|
16
|
+
}, void, "rpc" | "session", import("#pikku/function").WiredServices, unknown>, undefined, undefined>;
|
|
@@ -49,6 +49,7 @@ export const deployPlan = pikkuSessionlessFunc({
|
|
|
49
49
|
const projectId = await resolveProjectId(projectDir);
|
|
50
50
|
const provider = await resolveProvider(config, data?.provider, {
|
|
51
51
|
runtime: data?.runtime,
|
|
52
|
+
projectDir,
|
|
52
53
|
});
|
|
53
54
|
const result = await runBuildPipeline({
|
|
54
55
|
projectDir,
|
|
@@ -57,6 +58,7 @@ export const deployPlan = pikkuSessionlessFunc({
|
|
|
57
58
|
inspectorState,
|
|
58
59
|
serverlessIncompatible: config.deploy?.serverlessIncompatible,
|
|
59
60
|
defaultTarget: config.deploy?.defaultTarget,
|
|
61
|
+
grouping: config.deploy?.grouping,
|
|
60
62
|
globalHTTPPrefix: config.globalHTTPPrefix,
|
|
61
63
|
getEntryContext,
|
|
62
64
|
frontend: config.frontend,
|
|
@@ -17,13 +17,15 @@ import type { AgentRunnerService } from '@pikku/core/services';
|
|
|
17
17
|
* configured (agents stay disabled, with the clear downstream error) or when
|
|
18
18
|
* the SDK packages cannot be loaded from either place.
|
|
19
19
|
*
|
|
20
|
-
* Audio
|
|
21
|
-
* language/embedding/image models, so
|
|
22
|
-
* `
|
|
23
|
-
*
|
|
24
|
-
*
|
|
25
|
-
*
|
|
26
|
-
*
|
|
20
|
+
* Audio comes from a second provider. `@ai-sdk/openai-compatible` exposes only
|
|
21
|
+
* language/embedding/image models, so `transcription`/`speech` are delegated to
|
|
22
|
+
* the full `@ai-sdk/openai` provider pointed at the same base URL, and nothing
|
|
23
|
+
* else is: that provider assumes OpenAI's own request specifics, which is a bad
|
|
24
|
+
* default for a path whose whole purpose is fronting arbitrary gateways. Its
|
|
25
|
+
* `/v1/audio/*` shape, on the other hand, is what a gateway implements if it
|
|
26
|
+
* carries audio at all — routing OpenAI-compatible chat is no promise that it
|
|
27
|
+
* does. When it cannot be resolved, or the gateway has no audio endpoints
|
|
28
|
+
* behind it, audio is unavailable and the rest still works.
|
|
27
29
|
*/
|
|
28
30
|
export declare function createDevAgentRunner({ logger, projectRoot, variables, }: {
|
|
29
31
|
logger: Logger;
|
|
@@ -17,13 +17,15 @@ import { pathToFileURL } from 'url';
|
|
|
17
17
|
* configured (agents stay disabled, with the clear downstream error) or when
|
|
18
18
|
* the SDK packages cannot be loaded from either place.
|
|
19
19
|
*
|
|
20
|
-
* Audio
|
|
21
|
-
* language/embedding/image models, so
|
|
22
|
-
* `
|
|
23
|
-
*
|
|
24
|
-
*
|
|
25
|
-
*
|
|
26
|
-
*
|
|
20
|
+
* Audio comes from a second provider. `@ai-sdk/openai-compatible` exposes only
|
|
21
|
+
* language/embedding/image models, so `transcription`/`speech` are delegated to
|
|
22
|
+
* the full `@ai-sdk/openai` provider pointed at the same base URL, and nothing
|
|
23
|
+
* else is: that provider assumes OpenAI's own request specifics, which is a bad
|
|
24
|
+
* default for a path whose whole purpose is fronting arbitrary gateways. Its
|
|
25
|
+
* `/v1/audio/*` shape, on the other hand, is what a gateway implements if it
|
|
26
|
+
* carries audio at all — routing OpenAI-compatible chat is no promise that it
|
|
27
|
+
* does. When it cannot be resolved, or the gateway has no audio endpoints
|
|
28
|
+
* behind it, audio is unavailable and the rest still works.
|
|
27
29
|
*/
|
|
28
30
|
export async function createDevAgentRunner({ logger, projectRoot, variables, }) {
|
|
29
31
|
// Pair the URL with its matching key — coalescing each var independently could
|
|
@@ -98,10 +100,14 @@ export async function createDevAgentRunner({ logger, projectRoot, variables, })
|
|
|
98
100
|
};
|
|
99
101
|
let VercelAgentRunner;
|
|
100
102
|
let createOpenAICompatible;
|
|
103
|
+
// Which of the two copies `loadPair` settled on. The audio provider has to
|
|
104
|
+
// come from the same one, for the reason PAIR exists at all.
|
|
105
|
+
let pairFromProject = false;
|
|
101
106
|
try {
|
|
102
107
|
const [runnerModule, providerModule, resolved] = await loadPair();
|
|
103
108
|
({ VercelAgentRunner } = runnerModule);
|
|
104
109
|
({ createOpenAICompatible } = providerModule);
|
|
110
|
+
pairFromProject = resolved !== undefined;
|
|
105
111
|
const [runnerSpec, providerSpec] = (resolved ?? []).map(providerSpecVersion);
|
|
106
112
|
if (runnerSpec &&
|
|
107
113
|
providerSpec &&
|
|
@@ -114,6 +120,30 @@ export async function createDevAgentRunner({ logger, projectRoot, variables, })
|
|
|
114
120
|
logger.warn(`pikku dev: AI provider env is set but the AI SDK packages could not be loaded — AI agents disabled: ${error instanceof Error ? error.message : String(error)}`);
|
|
115
121
|
return undefined;
|
|
116
122
|
}
|
|
123
|
+
// Optional, and resolved from whichever copy the pair came from — NOT
|
|
124
|
+
// "project first, then ours". Mixing the two is the same failure PAIR
|
|
125
|
+
// guards against: an audio model built against one `@ai-sdk/provider` handed
|
|
126
|
+
// to a runner built against another is refused at the first transcribe or
|
|
127
|
+
// speak call, by an error naming the model rather than the two packages that
|
|
128
|
+
// disagree. When the pair fell back to the CLI's copies, so does this; when
|
|
129
|
+
// the project's own were used and it has no `@ai-sdk/openai` of its own,
|
|
130
|
+
// audio stays off rather than borrowing ours.
|
|
131
|
+
let createOpenAIProvider;
|
|
132
|
+
const audioFrom = pairFromProject
|
|
133
|
+
? resolveFromProject('@ai-sdk/openai')
|
|
134
|
+
: '@ai-sdk/openai';
|
|
135
|
+
if (!audioFrom) {
|
|
136
|
+
logger.debug(`pikku dev: @ai-sdk/openai could not be resolved from ${join(projectRoot, 'package.json')}, alongside the AI SDK copies in use, so speech-to-text and text-to-speech are unavailable`);
|
|
137
|
+
}
|
|
138
|
+
else {
|
|
139
|
+
try {
|
|
140
|
+
;
|
|
141
|
+
({ createOpenAI: createOpenAIProvider } = await import(audioFrom));
|
|
142
|
+
}
|
|
143
|
+
catch (error) {
|
|
144
|
+
logger.debug(`pikku dev: @ai-sdk/openai could not be loaded, so speech-to-text and text-to-speech are unavailable: ${error instanceof Error ? error.message : String(error)}`);
|
|
145
|
+
}
|
|
146
|
+
}
|
|
117
147
|
// One provider under '*', so every prefix a model might name resolves to the
|
|
118
148
|
// proxy — including ones nobody thought to list. This was a hardcoded array
|
|
119
149
|
// of seven names, which silently excluded everything else.
|
|
@@ -126,14 +156,28 @@ export async function createDevAgentRunner({ logger, projectRoot, variables, })
|
|
|
126
156
|
// fronting this URL that is worth calling speaks `json_schema`; the ones that
|
|
127
157
|
// do not now fail loudly on the first schema'd call, which is the outcome we
|
|
128
158
|
// want over silently ignoring the schema.
|
|
129
|
-
|
|
130
|
-
|
|
159
|
+
// Attached onto the compatible provider rather than replacing it with a plain
|
|
160
|
+
// object of named methods: the provider is callable, and `getModel` takes a
|
|
161
|
+
// callable's fast path for language models, so every other kind keeps
|
|
162
|
+
// resolving exactly as it did.
|
|
163
|
+
const buildProviders = (key) => {
|
|
164
|
+
const provider = createOpenAICompatible({
|
|
131
165
|
name: 'pikku-dev',
|
|
132
166
|
baseURL,
|
|
133
167
|
apiKey: key,
|
|
134
168
|
supportsStructuredOutputs: true,
|
|
135
|
-
})
|
|
136
|
-
|
|
137
|
-
|
|
169
|
+
});
|
|
170
|
+
if (createOpenAIProvider) {
|
|
171
|
+
const audio = createOpenAIProvider({
|
|
172
|
+
name: 'pikku-dev-audio',
|
|
173
|
+
baseURL,
|
|
174
|
+
apiKey: key,
|
|
175
|
+
});
|
|
176
|
+
provider.transcription = (modelId) => audio.transcription(modelId);
|
|
177
|
+
provider.speech = (modelId) => audio.speech(modelId);
|
|
178
|
+
}
|
|
179
|
+
return { '*': provider };
|
|
180
|
+
};
|
|
181
|
+
logger.info(`pikku dev: AI agent runner wired to ${baseURL}${createOpenAIProvider ? '' : ' (no audio — @ai-sdk/openai not resolvable)'}`);
|
|
138
182
|
return new VercelAgentRunner(buildProviders(apiKey), buildProviders);
|
|
139
183
|
}
|
|
@@ -5,18 +5,18 @@ export declare const dev: import("#pikku/function").PikkuFunctionConfig<{
|
|
|
5
5
|
coverage?: boolean;
|
|
6
6
|
test?: boolean;
|
|
7
7
|
model?: string;
|
|
8
|
-
}, void, "rpc" | "session", import("#pikku/function").
|
|
8
|
+
}, void, "rpc" | "session", import("#pikku/function").PikkuFunction<{
|
|
9
9
|
port?: string;
|
|
10
10
|
watch?: boolean;
|
|
11
11
|
hmr?: boolean;
|
|
12
12
|
coverage?: boolean;
|
|
13
13
|
test?: boolean;
|
|
14
14
|
model?: string;
|
|
15
|
-
}, void, "rpc" | "session", import("#pikku/function").WiredServices
|
|
15
|
+
}, void, "rpc" | "session", import("#pikku/function").WiredServices> | import("#pikku/function").PikkuFunctionSessionless<{
|
|
16
16
|
port?: string;
|
|
17
17
|
watch?: boolean;
|
|
18
18
|
hmr?: boolean;
|
|
19
19
|
coverage?: boolean;
|
|
20
20
|
test?: boolean;
|
|
21
21
|
model?: string;
|
|
22
|
-
}, void, "rpc" | "session", import("#pikku/function").WiredServices>, undefined, undefined>;
|
|
22
|
+
}, void, "rpc" | "session", import("#pikku/function").WiredServices, unknown>, undefined, undefined>;
|
|
@@ -4,10 +4,12 @@ import { pikkuSessionlessFunc } from '#pikku/function';
|
|
|
4
4
|
import chokidar from 'chokidar';
|
|
5
5
|
import { pikkuDevReloader, reloadGeneratedMeta, reconcileAddonRegistry, } from '@pikku/core/dev';
|
|
6
6
|
import { InMemoryQueueService, QueueWebhookService } from '@pikku/core/services';
|
|
7
|
+
import { flattenScopeDefinitions } from '@pikku/core/scope';
|
|
8
|
+
import { flattenSystemRoleDefinitions } from '@pikku/core/role';
|
|
7
9
|
import { ConsoleLogger, LocalEmailService, LocalCredentialService, spy, InMemoryAgentRunStateService, } from '@pikku/core/services';
|
|
8
10
|
import { InMemoryTriggerService } from '@pikku/core/services';
|
|
9
11
|
import { InMemoryWorkflowService } from '@pikku/core/services';
|
|
10
|
-
import { KyselyAgentStorageService, KyselyAgentRunStateService, KyselyAgentRunService, } from '@pikku/kysely';
|
|
12
|
+
import { KyselyAgentStorageService, KyselyAgentRunStateService, KyselyAgentRunService, KyselyAnalyticsService, KyselyFeatureFlagStore, KyselyScopeService, KyselyWebhookService, } from '@pikku/kysely';
|
|
11
13
|
import { stopSingletonServices } from '@pikku/core/utils';
|
|
12
14
|
import { pikkuState } from '@pikku/core/state';
|
|
13
15
|
import { wireAgentScorerQueueWorkers } from '@pikku/core/agent-scorer';
|
|
@@ -16,6 +18,7 @@ import { LocalContent, } from '@pikku/core/services/local-content';
|
|
|
16
18
|
import { InMemorySchedulerService } from '@pikku/schedule';
|
|
17
19
|
import { resolveDb, createKysely, parseDatabaseUrl, } from '../db/local-db.js';
|
|
18
20
|
import { loadUserBootstrap, loadUserModule } from './load-user-project.js';
|
|
21
|
+
import { initOrWarn } from './init-or-warn.js';
|
|
19
22
|
import { registerScenarioInstrumentation } from '../wirings/scenarios/register-scenario-instrumentation.js';
|
|
20
23
|
import { startCoverageService } from './start-coverage.js';
|
|
21
24
|
import { resolveDevEnvironmentName } from './environment.js';
|
|
@@ -170,6 +173,7 @@ export const dev = pikkuSessionlessFunc({
|
|
|
170
173
|
};
|
|
171
174
|
const contentSigningJWT = createEphemeralContentSigningJWT();
|
|
172
175
|
const localContent = new LocalContent(localContentConfig, logger, contentSigningJWT);
|
|
176
|
+
const requiredServices = inspectorState.serviceAggregation.requiredServices;
|
|
173
177
|
const schedulerService = new InMemorySchedulerService();
|
|
174
178
|
const agentStorage = kysely
|
|
175
179
|
? new KyselyAgentStorageService(kysely)
|
|
@@ -185,6 +189,34 @@ export const dev = pikkuSessionlessFunc({
|
|
|
185
189
|
if ('init' in agentRunState && typeof agentRunState.init === 'function') {
|
|
186
190
|
await agentRunState.init();
|
|
187
191
|
}
|
|
192
|
+
// Flags and analytics get the same local database the rest of the services
|
|
193
|
+
// do, so a flag an operator flips in the console survives a restart and a
|
|
194
|
+
// declared event lands somewhere a query can reach.
|
|
195
|
+
//
|
|
196
|
+
// Dropped with a warning rather than thrown on, unlike the agent services
|
|
197
|
+
// above: both tables are generated from a declaration the project may have
|
|
198
|
+
// added since it last migrated, and neither absence is worse than what a
|
|
199
|
+
// project has today — an unregistered flag source resolves every gate open,
|
|
200
|
+
// and analytics without a service falls back to the logger. Failing the
|
|
201
|
+
// boot instead would turn adding one `featureFlag:` into a dead dev server.
|
|
202
|
+
const featureFlags = kysely
|
|
203
|
+
? await initOrWarn(new KyselyFeatureFlagStore(kysely), 'featureFlags', logger)
|
|
204
|
+
: undefined;
|
|
205
|
+
const analyticsService = kysely
|
|
206
|
+
? await initOrWarn(new KyselyAnalyticsService(kysely), 'analyticsService', logger)
|
|
207
|
+
: undefined;
|
|
208
|
+
// Gated on `requiredServices` rather than on `kysely` alone, because that is
|
|
209
|
+
// the same set `pikku db generate` filters the runtime schemas by: a project
|
|
210
|
+
// that never asks for `scopeService` has no scope tables, and `init()` here
|
|
211
|
+
// would fail its boot over a service nothing uses.
|
|
212
|
+
const scopeService = kysely && requiredServices.has('scopeService')
|
|
213
|
+
? new KyselyScopeService(kysely)
|
|
214
|
+
: undefined;
|
|
215
|
+
if (scopeService) {
|
|
216
|
+
await scopeService.init();
|
|
217
|
+
await scopeService.syncScopes(flattenScopeDefinitions(inspectorState.scopes.definitions));
|
|
218
|
+
await scopeService.syncSystemRoles(flattenSystemRoleDefinitions(inspectorState.systemRoles.definitions));
|
|
219
|
+
}
|
|
188
220
|
// InMemoryWorkflowService implements both the workflowService and
|
|
189
221
|
// workflowRunService surfaces (listRuns/getRun live on it). Expose the
|
|
190
222
|
// single instance under both names so addons like @pikku/addon-console
|
|
@@ -195,10 +227,12 @@ export const dev = pikkuSessionlessFunc({
|
|
|
195
227
|
// has no equivalent, so construct one from env or agents 503 with
|
|
196
228
|
// AIProviderNotConfiguredError. The template forwards injected services
|
|
197
229
|
// (`...existingServices`) so this reaches getSingletonServices().
|
|
198
|
-
// Only when the project
|
|
199
|
-
//
|
|
230
|
+
// Only when the project actually reaches for one — a declared agent, or a
|
|
231
|
+
// function destructuring `agentRunner` for a one-shot vision / speech call.
|
|
232
|
+
// Otherwise the runner's missing-SDK warning fires spuriously for every
|
|
233
|
+
// project that happens to have AI env set.
|
|
200
234
|
const hasAgents = Object.keys(inspectorState.agents.agentsMeta).length > 0;
|
|
201
|
-
const agentRunner = hasAgents
|
|
235
|
+
const agentRunner = hasAgents || requiredServices.has('agentRunner')
|
|
202
236
|
? await createDevAgentRunner({
|
|
203
237
|
logger,
|
|
204
238
|
projectRoot: config.rootDir,
|
|
@@ -210,6 +244,15 @@ export const dev = pikkuSessionlessFunc({
|
|
|
210
244
|
// function-side broadcasts reach the sockets the transport holds.
|
|
211
245
|
const eventHub = await devServerRunner.createEventHub();
|
|
212
246
|
const devQueueService = new InMemoryQueueService();
|
|
247
|
+
// The queue-only service delivers but keeps no history, so the console's
|
|
248
|
+
// webhooks page is empty on a project that has the tables for it. Same
|
|
249
|
+
// `requiredServices` gate as the scope service above.
|
|
250
|
+
const devWebhookService = kysely && requiredServices.has('webhookService')
|
|
251
|
+
? new KyselyWebhookService(devQueueService, kysely)
|
|
252
|
+
: new QueueWebhookService(devQueueService);
|
|
253
|
+
if (devWebhookService instanceof KyselyWebhookService) {
|
|
254
|
+
await devWebhookService.init();
|
|
255
|
+
}
|
|
213
256
|
const inMemoryServices = {
|
|
214
257
|
logger: devLogger,
|
|
215
258
|
...(agentRunner ? { agentRunner } : {}),
|
|
@@ -220,7 +263,8 @@ export const dev = pikkuSessionlessFunc({
|
|
|
220
263
|
...(coverageService ? { coverageService } : {}),
|
|
221
264
|
schedulerService,
|
|
222
265
|
queueService: devQueueService,
|
|
223
|
-
webhookService:
|
|
266
|
+
webhookService: devWebhookService,
|
|
267
|
+
...(scopeService ? { scopeService } : {}),
|
|
224
268
|
workflowService,
|
|
225
269
|
workflowRunService: workflowService,
|
|
226
270
|
triggerService: new InMemoryTriggerService(),
|
|
@@ -228,6 +272,8 @@ export const dev = pikkuSessionlessFunc({
|
|
|
228
272
|
agentStorage,
|
|
229
273
|
agentRunState,
|
|
230
274
|
agentRunService,
|
|
275
|
+
...(featureFlags ? { featureFlags } : {}),
|
|
276
|
+
...(analyticsService ? { analyticsService } : {}),
|
|
231
277
|
eventHub,
|
|
232
278
|
...(kysely ? { kysely } : {}),
|
|
233
279
|
content: localContent,
|
|
@@ -252,6 +298,14 @@ export const dev = pikkuSessionlessFunc({
|
|
|
252
298
|
return m[serverLifecycleFactory.variable];
|
|
253
299
|
};
|
|
254
300
|
const consoleMount = await resolveConsoleMount();
|
|
301
|
+
// Appended, not assigned: an app's own config may already declare mounts
|
|
302
|
+
// for its frontend, and dev is where that frontend is meant to be served.
|
|
303
|
+
// Replacing them meant the console being present silently unmounted the
|
|
304
|
+
// app, which is the one combination every project has.
|
|
305
|
+
const staticMounts = [
|
|
306
|
+
...(userConfig.staticMounts ?? []),
|
|
307
|
+
...(consoleMount ? [consoleMount] : []),
|
|
308
|
+
];
|
|
255
309
|
/**
|
|
256
310
|
* Hand the server the generated MCP manifest so it actually serves MCP.
|
|
257
311
|
*
|
|
@@ -290,7 +344,7 @@ export const dev = pikkuSessionlessFunc({
|
|
|
290
344
|
hostname: bindHostname,
|
|
291
345
|
port: resolvedPort,
|
|
292
346
|
content: localContentConfig,
|
|
293
|
-
...(
|
|
347
|
+
...(staticMounts.length > 0 ? { staticMounts } : {}),
|
|
294
348
|
}, logger, { contentSigningJWT, mcpJson });
|
|
295
349
|
const lifecycle = await loadLifecycle();
|
|
296
350
|
await pikkuServer.init();
|
|
@@ -21,8 +21,8 @@ export type DistCopy = {
|
|
|
21
21
|
export declare const planDistCopies: (rootDir: string, distDir: string, files: string[]) => DistCopy[];
|
|
22
22
|
export declare const pikkuDist: import("#pikku/function").PikkuFunctionConfig<{
|
|
23
23
|
distDir?: string;
|
|
24
|
-
}, void, "rpc" | "session", import("#pikku/function").
|
|
24
|
+
}, void, "rpc" | "session", import("#pikku/function").PikkuFunction<{
|
|
25
25
|
distDir?: string;
|
|
26
|
-
}, void, "rpc" | "session", import("#pikku/function").WiredServices
|
|
26
|
+
}, void, "rpc" | "session", import("#pikku/function").WiredServices> | import("#pikku/function").PikkuFunctionSessionless<{
|
|
27
27
|
distDir?: string;
|
|
28
|
-
}, void, "rpc" | "session", import("#pikku/function").WiredServices>, undefined, undefined>;
|
|
28
|
+
}, void, "rpc" | "session", import("#pikku/function").WiredServices, unknown>, undefined, undefined>;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { existsSync } from 'node:fs';
|
|
2
2
|
import { cp, mkdir, readdir } from 'node:fs/promises';
|
|
3
3
|
import { dirname, join, relative, resolve } from 'node:path';
|
|
4
|
-
import
|
|
4
|
+
import { readTsconfigOutDir } from '@pikku/inspector';
|
|
5
5
|
import { pikkuSessionlessFunc } from '#pikku/function';
|
|
6
6
|
/**
|
|
7
7
|
* `tsc` compiles a `.ts` and emits it. Everything else it either reads without
|
|
@@ -28,19 +28,12 @@ export const planDistCopies = (rootDir, distDir, files) => {
|
|
|
28
28
|
to: join(distDir, relative(rootDir, from)),
|
|
29
29
|
}));
|
|
30
30
|
};
|
|
31
|
-
const readTsOutDir = (tsconfig) => {
|
|
32
|
-
const parsed = ts.getParsedCommandLineOfConfigFile(tsconfig, {}, {
|
|
33
|
-
...ts.sys,
|
|
34
|
-
onUnRecoverableConfigFileDiagnostic: () => { },
|
|
35
|
-
});
|
|
36
|
-
return parsed?.options.outDir;
|
|
37
|
-
};
|
|
38
31
|
export const pikkuDist = pikkuSessionlessFunc({
|
|
39
32
|
func: async ({ logger, config }, data) => {
|
|
40
33
|
const { rootDir, outDir, srcDirectories, tsconfig } = config;
|
|
41
34
|
const distDir = data.distDir
|
|
42
35
|
? resolve(rootDir, data.distDir)
|
|
43
|
-
:
|
|
36
|
+
: readTsconfigOutDir(resolve(rootDir, tsconfig));
|
|
44
37
|
if (!distDir) {
|
|
45
38
|
logger.error(`${tsconfig} sets no compilerOptions.outDir, so there is nowhere to copy to. Set one, or pass --dist-dir.`);
|
|
46
39
|
process.exit(1);
|
|
@@ -4,19 +4,19 @@ export declare const doc: import("#pikku/function").PikkuFunctionConfig<{
|
|
|
4
4
|
addon?: boolean;
|
|
5
5
|
}, {
|
|
6
6
|
text: string;
|
|
7
|
-
}, "rpc" | "session", import("#pikku/function").
|
|
7
|
+
}, "rpc" | "session", import("#pikku/function").PikkuFunction<{
|
|
8
8
|
topics?: string[];
|
|
9
9
|
ai?: boolean;
|
|
10
10
|
addon?: boolean;
|
|
11
11
|
}, {
|
|
12
12
|
text: string;
|
|
13
|
-
}, "rpc" | "session", import("#pikku/function").WiredServices
|
|
13
|
+
}, "rpc" | "session", import("#pikku/function").WiredServices> | import("#pikku/function").PikkuFunctionSessionless<{
|
|
14
14
|
topics?: string[];
|
|
15
15
|
ai?: boolean;
|
|
16
16
|
addon?: boolean;
|
|
17
17
|
}, {
|
|
18
18
|
text: string;
|
|
19
|
-
}, "rpc" | "session", import("#pikku/function").WiredServices>, undefined, undefined>;
|
|
19
|
+
}, "rpc" | "session", import("#pikku/function").WiredServices, unknown>, undefined, undefined>;
|
|
20
20
|
export declare const renderDoc: (_services: unknown, { text }: {
|
|
21
21
|
text: string;
|
|
22
22
|
}) => void;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
type EmailsInitInput = {
|
|
2
2
|
force?: boolean;
|
|
3
3
|
};
|
|
4
|
-
export declare const pikkuEmailsInit: import("#pikku/function").PikkuFunctionConfig<EmailsInitInput, void, "rpc" | "session", import("#pikku/function").
|
|
4
|
+
export declare const pikkuEmailsInit: import("#pikku/function").PikkuFunctionConfig<EmailsInitInput, void, "rpc" | "session", import("#pikku/function").PikkuFunction<EmailsInitInput, void, "rpc" | "session", import("#pikku/function").WiredServices> | import("#pikku/function").PikkuFunctionSessionless<EmailsInitInput, void, "rpc" | "session", import("#pikku/function").WiredServices, unknown>, undefined, undefined>;
|
|
5
5
|
export {};
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
export declare const enableRpc: import("#pikku/function").PikkuFunctionConfig<void, void, "rpc" | "session", import("#pikku/function").
|
|
2
|
-
export declare const enableConsole: import("#pikku/function").PikkuFunctionConfig<void, void, "rpc" | "session", import("#pikku/function").
|
|
3
|
-
export declare const enableScenarios: import("#pikku/function").PikkuFunctionConfig<void, void, "rpc" | "session", import("#pikku/function").
|
|
4
|
-
export declare const enableAgent: import("#pikku/function").PikkuFunctionConfig<void, void, "rpc" | "session", import("#pikku/function").
|
|
5
|
-
export declare const enableWorkflow: import("#pikku/function").PikkuFunctionConfig<void, void, "rpc" | "session", import("#pikku/function").
|
|
6
|
-
export declare const enableEvents: import("#pikku/function").PikkuFunctionConfig<void, void, "rpc" | "session", import("#pikku/function").
|
|
7
|
-
export declare const enableRemoteRpc: import("#pikku/function").PikkuFunctionConfig<void, void, "rpc" | "session", import("#pikku/function").
|
|
8
|
-
export declare const enableRemoteJobs: import("#pikku/function").PikkuFunctionConfig<void, void, "rpc" | "session", import("#pikku/function").
|
|
9
|
-
export declare const enableWebhook: import("#pikku/function").PikkuFunctionConfig<void, void, "rpc" | "session", import("#pikku/function").
|
|
1
|
+
export declare const enableRpc: import("#pikku/function").PikkuFunctionConfig<void, void, "rpc" | "session", import("#pikku/function").PikkuFunction<void, void, "rpc" | "session", import("#pikku/function").WiredServices> | import("#pikku/function").PikkuFunctionSessionless<void, void, "rpc" | "session", import("#pikku/function").WiredServices, unknown>, undefined, undefined>;
|
|
2
|
+
export declare const enableConsole: import("#pikku/function").PikkuFunctionConfig<void, void, "rpc" | "session", import("#pikku/function").PikkuFunction<void, void, "rpc" | "session", import("#pikku/function").WiredServices> | import("#pikku/function").PikkuFunctionSessionless<void, void, "rpc" | "session", import("#pikku/function").WiredServices, unknown>, undefined, undefined>;
|
|
3
|
+
export declare const enableScenarios: import("#pikku/function").PikkuFunctionConfig<void, void, "rpc" | "session", import("#pikku/function").PikkuFunction<void, void, "rpc" | "session", import("#pikku/function").WiredServices> | import("#pikku/function").PikkuFunctionSessionless<void, void, "rpc" | "session", import("#pikku/function").WiredServices, unknown>, undefined, undefined>;
|
|
4
|
+
export declare const enableAgent: import("#pikku/function").PikkuFunctionConfig<void, void, "rpc" | "session", import("#pikku/function").PikkuFunction<void, void, "rpc" | "session", import("#pikku/function").WiredServices> | import("#pikku/function").PikkuFunctionSessionless<void, void, "rpc" | "session", import("#pikku/function").WiredServices, unknown>, undefined, undefined>;
|
|
5
|
+
export declare const enableWorkflow: import("#pikku/function").PikkuFunctionConfig<void, void, "rpc" | "session", import("#pikku/function").PikkuFunction<void, void, "rpc" | "session", import("#pikku/function").WiredServices> | import("#pikku/function").PikkuFunctionSessionless<void, void, "rpc" | "session", import("#pikku/function").WiredServices, unknown>, undefined, undefined>;
|
|
6
|
+
export declare const enableEvents: import("#pikku/function").PikkuFunctionConfig<void, void, "rpc" | "session", import("#pikku/function").PikkuFunction<void, void, "rpc" | "session", import("#pikku/function").WiredServices> | import("#pikku/function").PikkuFunctionSessionless<void, void, "rpc" | "session", import("#pikku/function").WiredServices, unknown>, undefined, undefined>;
|
|
7
|
+
export declare const enableRemoteRpc: import("#pikku/function").PikkuFunctionConfig<void, void, "rpc" | "session", import("#pikku/function").PikkuFunction<void, void, "rpc" | "session", import("#pikku/function").WiredServices> | import("#pikku/function").PikkuFunctionSessionless<void, void, "rpc" | "session", import("#pikku/function").WiredServices, unknown>, undefined, undefined>;
|
|
8
|
+
export declare const enableRemoteJobs: import("#pikku/function").PikkuFunctionConfig<void, void, "rpc" | "session", import("#pikku/function").PikkuFunction<void, void, "rpc" | "session", import("#pikku/function").WiredServices> | import("#pikku/function").PikkuFunctionSessionless<void, void, "rpc" | "session", import("#pikku/function").WiredServices, unknown>, undefined, undefined>;
|
|
9
|
+
export declare const enableWebhook: import("#pikku/function").PikkuFunctionConfig<void, void, "rpc" | "session", import("#pikku/function").PikkuFunction<void, void, "rpc" | "session", import("#pikku/function").WiredServices> | import("#pikku/function").PikkuFunctionSessionless<void, void, "rpc" | "session", import("#pikku/function").WiredServices, unknown>, undefined, undefined>;
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
export declare const pikkuImportN8n: import("#pikku/function").PikkuFunctionConfig<{
|
|
2
2
|
file: string;
|
|
3
3
|
out?: string;
|
|
4
|
-
}, void, "rpc" | "session", import("#pikku/function").
|
|
4
|
+
}, void, "rpc" | "session", import("#pikku/function").PikkuFunction<{
|
|
5
5
|
file: string;
|
|
6
6
|
out?: string;
|
|
7
|
-
}, void, "rpc" | "session", import("#pikku/function").WiredServices
|
|
7
|
+
}, void, "rpc" | "session", import("#pikku/function").WiredServices> | import("#pikku/function").PikkuFunctionSessionless<{
|
|
8
8
|
file: string;
|
|
9
9
|
out?: string;
|
|
10
|
-
}, void, "rpc" | "session", import("#pikku/function").WiredServices>, undefined, undefined>;
|
|
10
|
+
}, void, "rpc" | "session", import("#pikku/function").WiredServices, unknown>, undefined, undefined>;
|
|
@@ -2,8 +2,8 @@ type InfoInput = {
|
|
|
2
2
|
limit?: string;
|
|
3
3
|
verbose?: boolean;
|
|
4
4
|
};
|
|
5
|
-
export declare const pikkuInfoFunctions: import("#pikku/function").PikkuFunctionConfig<InfoInput, void, "rpc" | "session", import("#pikku/function").
|
|
6
|
-
export declare const pikkuInfoTags: import("#pikku/function").PikkuFunctionConfig<InfoInput, void, "rpc" | "session", import("#pikku/function").
|
|
7
|
-
export declare const pikkuInfoMiddleware: import("#pikku/function").PikkuFunctionConfig<InfoInput, void, "rpc" | "session", import("#pikku/function").
|
|
8
|
-
export declare const pikkuInfoPermissions: import("#pikku/function").PikkuFunctionConfig<InfoInput, void, "rpc" | "session", import("#pikku/function").
|
|
5
|
+
export declare const pikkuInfoFunctions: import("#pikku/function").PikkuFunctionConfig<InfoInput, void, "rpc" | "session", import("#pikku/function").PikkuFunction<InfoInput, void, "rpc" | "session", import("#pikku/function").WiredServices> | import("#pikku/function").PikkuFunctionSessionless<InfoInput, void, "rpc" | "session", import("#pikku/function").WiredServices, unknown>, undefined, undefined>;
|
|
6
|
+
export declare const pikkuInfoTags: import("#pikku/function").PikkuFunctionConfig<InfoInput, void, "rpc" | "session", import("#pikku/function").PikkuFunction<InfoInput, void, "rpc" | "session", import("#pikku/function").WiredServices> | import("#pikku/function").PikkuFunctionSessionless<InfoInput, void, "rpc" | "session", import("#pikku/function").WiredServices, unknown>, undefined, undefined>;
|
|
7
|
+
export declare const pikkuInfoMiddleware: import("#pikku/function").PikkuFunctionConfig<InfoInput, void, "rpc" | "session", import("#pikku/function").PikkuFunction<InfoInput, void, "rpc" | "session", import("#pikku/function").WiredServices> | import("#pikku/function").PikkuFunctionSessionless<InfoInput, void, "rpc" | "session", import("#pikku/function").WiredServices, unknown>, undefined, undefined>;
|
|
8
|
+
export declare const pikkuInfoPermissions: import("#pikku/function").PikkuFunctionConfig<InfoInput, void, "rpc" | "session", import("#pikku/function").PikkuFunction<InfoInput, void, "rpc" | "session", import("#pikku/function").WiredServices> | import("#pikku/function").PikkuFunctionSessionless<InfoInput, void, "rpc" | "session", import("#pikku/function").WiredServices, unknown>, undefined, undefined>;
|
|
9
9
|
export {};
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { Logger } from '@pikku/core/services';
|
|
2
|
+
/**
|
|
3
|
+
* Bring a database-backed service up, or say why the dev server is doing
|
|
4
|
+
* without it.
|
|
5
|
+
*
|
|
6
|
+
* `init()` on these services is a check, not a create — the runtime never
|
|
7
|
+
* issues DDL, so a project whose migrations predate the declaration that needs
|
|
8
|
+
* the tables gets a throw. For a service the dev server supplies on the
|
|
9
|
+
* project's behalf that throw would be an ambush: the project never asked for
|
|
10
|
+
* it, and the failure lands on `pikku dev` rather than on the code that changed.
|
|
11
|
+
*
|
|
12
|
+
* So the service is dropped and the reason is printed. The caller decides
|
|
13
|
+
* whether that is survivable — it is only used where absence degrades to what
|
|
14
|
+
* the project already had, never where something would silently do the wrong
|
|
15
|
+
* thing.
|
|
16
|
+
*/
|
|
17
|
+
export declare const initOrWarn: <T extends {
|
|
18
|
+
init(): Promise<void>;
|
|
19
|
+
}>(service: T, name: string, logger: Logger) => Promise<T | undefined>;
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Bring a database-backed service up, or say why the dev server is doing
|
|
3
|
+
* without it.
|
|
4
|
+
*
|
|
5
|
+
* `init()` on these services is a check, not a create — the runtime never
|
|
6
|
+
* issues DDL, so a project whose migrations predate the declaration that needs
|
|
7
|
+
* the tables gets a throw. For a service the dev server supplies on the
|
|
8
|
+
* project's behalf that throw would be an ambush: the project never asked for
|
|
9
|
+
* it, and the failure lands on `pikku dev` rather than on the code that changed.
|
|
10
|
+
*
|
|
11
|
+
* So the service is dropped and the reason is printed. The caller decides
|
|
12
|
+
* whether that is survivable — it is only used where absence degrades to what
|
|
13
|
+
* the project already had, never where something would silently do the wrong
|
|
14
|
+
* thing.
|
|
15
|
+
*/
|
|
16
|
+
export const initOrWarn = async (service, name, logger) => {
|
|
17
|
+
try {
|
|
18
|
+
await service.init();
|
|
19
|
+
return service;
|
|
20
|
+
}
|
|
21
|
+
catch (error) {
|
|
22
|
+
logger.warn(`Running without '${name}': ${error instanceof Error ? error.message : String(error)}`);
|
|
23
|
+
return undefined;
|
|
24
|
+
}
|
|
25
|
+
};
|