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