@pikku/cli 0.12.21 → 0.12.23
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/cli.schema.json +1 -1
- package/console-app/assets/index-C52h1B_L.css +1 -0
- package/console-app/assets/index-CAk106ji.js +232 -0
- package/console-app/index.html +3 -6
- package/dist/.pikku/agent/pikku-agent-types.gen.d.ts +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/pikku-cli-channel.d.ts +6 -6
- package/dist/.pikku/cli/pikku-cli-channel.js +280 -1
- package/dist/.pikku/cli/pikku-cli-types.gen.d.ts +1 -1
- package/dist/.pikku/cli/pikku-cli-types.gen.js +1 -1
- package/dist/.pikku/cli/pikku-cli-wirings-meta.gen.js +1 -1
- package/dist/.pikku/cli/pikku-cli-wirings-meta.gen.json +782 -7
- 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 +41 -73
- package/dist/.pikku/function/pikku-function-types.gen.js +30 -40
- package/dist/.pikku/function/pikku-functions-meta.gen.js +1 -1
- package/dist/.pikku/function/pikku-functions-meta.gen.json +1305 -378
- package/dist/.pikku/function/pikku-functions.gen.js +13 -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/http/pikku-http-wirings-meta.gen.js +1 -1
- package/dist/.pikku/http/pikku-http-wirings-meta.gen.json +1 -62
- package/dist/.pikku/http/pikku-http-wirings.gen.d.ts +1 -2
- package/dist/.pikku/http/pikku-http-wirings.gen.js +1 -2
- 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.gen.d.ts +3 -1
- package/dist/.pikku/pikku-bootstrap.gen.js +3 -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 +2 -1
- package/dist/.pikku/pikku-services.gen.js +1 -0
- 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.d.ts +1 -0
- package/dist/.pikku/queue/pikku-queue-workers-wirings-meta.gen.js +6 -0
- package/dist/.pikku/queue/pikku-queue-workers-wirings-meta.gen.json +250 -0
- package/dist/.pikku/queue/pikku-queue-workers-wirings.gen.d.ts +4 -0
- package/dist/.pikku/queue/pikku-queue-workers-wirings.gen.js +5 -0
- package/dist/.pikku/rpc/pikku-rpc-wirings-meta.internal.gen.js +1 -1
- package/dist/.pikku/rpc/pikku-rpc-wirings-meta.internal.gen.json +66 -20
- 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 +153 -29
- package/dist/.pikku/schemas/schemas/BinaryInput.schema.json +1 -0
- package/dist/.pikku/schemas/schemas/DbMigrateInput.schema.json +1 -0
- package/dist/.pikku/schemas/schemas/DbResetInput.schema.json +1 -0
- package/dist/.pikku/schemas/schemas/DbSeedInput.schema.json +1 -0
- package/dist/.pikku/schemas/schemas/FabricDbSchemaInput.schema.json +1 -0
- package/dist/.pikku/schemas/schemas/FabricDbSchemaOutput.schema.json +1 -0
- package/dist/.pikku/schemas/schemas/FabricDeployApplyInput.schema.json +1 -0
- package/dist/.pikku/schemas/schemas/FabricDeployApplyOutput.schema.json +1 -0
- package/dist/.pikku/schemas/schemas/FabricDeployListInput.schema.json +1 -0
- package/dist/.pikku/schemas/schemas/FabricDeployListOutput.schema.json +1 -0
- package/dist/.pikku/schemas/schemas/FabricDeployPlanInput.schema.json +1 -0
- package/dist/.pikku/schemas/schemas/FabricDeployPlanOutput.schema.json +1 -0
- package/dist/.pikku/schemas/schemas/FabricDeployUnitsInput.schema.json +1 -0
- package/dist/.pikku/schemas/schemas/FabricDeployUnitsOutput.schema.json +1 -0
- package/dist/.pikku/schemas/schemas/FabricDomainsAddInput.schema.json +1 -0
- package/dist/.pikku/schemas/schemas/FabricDomainsAddOutput.schema.json +1 -0
- package/dist/.pikku/schemas/schemas/FabricDomainsListInput.schema.json +1 -0
- package/dist/.pikku/schemas/schemas/FabricDomainsListOutput.schema.json +1 -0
- package/dist/.pikku/schemas/schemas/FabricDomainsRemoveInput.schema.json +1 -0
- package/dist/.pikku/schemas/schemas/FabricDomainsRemoveOutput.schema.json +1 -0
- package/dist/.pikku/schemas/schemas/FabricErrorsInput.schema.json +1 -0
- package/dist/.pikku/schemas/schemas/FabricErrorsOutput.schema.json +1 -0
- package/dist/.pikku/schemas/schemas/FabricInitInput.schema.json +1 -0
- package/dist/.pikku/schemas/schemas/FabricInitOutput.schema.json +1 -0
- package/dist/.pikku/schemas/schemas/FabricLLMKeyInput.schema.json +1 -0
- package/dist/.pikku/schemas/schemas/FabricLLMKeyOutput.schema.json +1 -0
- package/dist/.pikku/schemas/schemas/FabricLinkInput.schema.json +1 -0
- package/dist/.pikku/schemas/schemas/FabricLinkOutput.schema.json +1 -0
- package/dist/.pikku/schemas/schemas/FabricLoginInput.schema.json +1 -0
- package/dist/.pikku/schemas/schemas/FabricLoginOutput.schema.json +1 -0
- package/dist/.pikku/schemas/schemas/FabricLogsInput.schema.json +1 -0
- package/dist/.pikku/schemas/schemas/FabricLogsOutput.schema.json +1 -0
- package/dist/.pikku/schemas/schemas/FabricMetricsInput.schema.json +1 -0
- package/dist/.pikku/schemas/schemas/FabricMetricsOutput.schema.json +1 -0
- package/dist/.pikku/schemas/schemas/FabricRollbackInput.schema.json +1 -0
- package/dist/.pikku/schemas/schemas/FabricRollbackOutput.schema.json +1 -0
- package/dist/.pikku/schemas/schemas/FabricSecretsListInput.schema.json +1 -0
- package/dist/.pikku/schemas/schemas/FabricSecretsListOutput.schema.json +1 -0
- package/dist/.pikku/schemas/schemas/FabricSecretsSetInput.schema.json +1 -0
- package/dist/.pikku/schemas/schemas/FabricSecretsSetOutput.schema.json +1 -0
- package/dist/.pikku/schemas/schemas/FabricStatusInput.schema.json +1 -0
- package/dist/.pikku/schemas/schemas/FabricStatusOutput.schema.json +1 -0
- package/dist/.pikku/schemas/schemas/FabricTraceInput.schema.json +1 -0
- package/dist/.pikku/schemas/schemas/FabricTraceOutput.schema.json +1 -0
- package/dist/.pikku/schemas/schemas/FabricValidateInput.schema.json +1 -0
- package/dist/.pikku/schemas/schemas/FabricValidateOutput.schema.json +1 -0
- package/dist/.pikku/schemas/schemas/PikkuCLIConfig.schema.json +1 -1
- package/dist/.pikku/schemas/schemas/PikkuCLIEntryOutput.schema.json +1 -0
- package/dist/.pikku/schemas/schemas/PikkuEventsScaffoldOutput.schema.json +1 -0
- package/dist/.pikku/schemas/schemas/PikkuMetaClientsInput.schema.json +1 -0
- package/dist/.pikku/schemas/schemas/PikkuMetaContextInput.schema.json +1 -0
- package/dist/.pikku/schemas/schemas/PikkuMetaFunctionsGetInput.schema.json +1 -0
- package/dist/.pikku/schemas/schemas/PikkuMetaFunctionsListInput.schema.json +1 -0
- package/dist/.pikku/schemas/schemas/PikkuMetaMiddlewareGetInput.schema.json +1 -0
- package/dist/.pikku/schemas/schemas/PikkuMetaMiddlewareListInput.schema.json +1 -0
- package/dist/.pikku/schemas/schemas/PikkuMetaPermissionsGetInput.schema.json +1 -0
- package/dist/.pikku/schemas/schemas/PikkuMetaPermissionsListInput.schema.json +1 -0
- package/dist/.pikku/schemas/schemas/PikkuMetaSchemasGetInput.schema.json +1 -0
- package/dist/.pikku/schemas/schemas/PikkuMetaSchemasListInput.schema.json +1 -0
- package/dist/.pikku/schemas/schemas/PikkuMetaWiresChannelInput.schema.json +1 -0
- package/dist/.pikku/schemas/schemas/PikkuMetaWiresHttpInput.schema.json +1 -0
- package/dist/.pikku/schemas/schemas/PikkuMetaWiresListInput.schema.json +1 -0
- package/dist/.pikku/schemas/schemas/PikkuMetaWiresQueueInput.schema.json +1 -0
- package/dist/.pikku/schemas/schemas/PikkuMetaWiresSchedulerInput.schema.json +1 -0
- package/dist/.pikku/schemas/schemas/PikkuMetaWiresTriggerInput.schema.json +1 -0
- package/dist/.pikku/schemas/schemas/PikkuMetaWiresTypeInput.schema.json +1 -0
- package/dist/.pikku/schemas/schemas/PikkuMetaWorkflowsGetInput.schema.json +1 -0
- package/dist/.pikku/schemas/schemas/PikkuMetaWorkflowsListInput.schema.json +1 -0
- package/dist/.pikku/schemas/schemas/PikkuSkillsInstallInput.schema.json +1 -0
- package/dist/.pikku/schemas/schemas/PikkuSkillsListInput.schema.json +1 -0
- package/dist/.pikku/schemas/schemas/PikkuTestsCoverageInput.schema.json +1 -0
- package/dist/.pikku/schemas/schemas/PikkuTestsInitInput.schema.json +1 -0
- 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 +235 -627
- 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 +23 -0
- package/dist/bin/pikku.js +28 -1
- package/dist/src/cli.wiring.js +274 -8
- package/dist/src/deploy/analyzer/analyzer.d.ts +16 -1
- package/dist/src/deploy/analyzer/analyzer.js +83 -43
- package/dist/src/deploy/build-pipeline.js +83 -17
- package/dist/src/deploy/bundler/bundler.d.ts +1 -0
- package/dist/src/deploy/bundler/bundler.js +13 -5
- package/dist/src/deploy/codegen/per-unit-codegen.d.ts +8 -0
- package/dist/src/deploy/codegen/per-unit-codegen.js +46 -5
- package/dist/src/deploy/provider-adapter.d.ts +34 -0
- package/dist/src/deploy/server-entry.d.ts +16 -0
- package/dist/src/deploy/server-entry.js +81 -0
- package/dist/src/fabric/fabric-commands.d.ts +522 -0
- package/dist/src/fabric/fabric-commands.js +299 -0
- package/dist/src/fabric/functions/db-schema.function.d.ts +35 -0
- package/dist/src/fabric/functions/db-schema.function.js +37 -0
- package/dist/src/fabric/functions/deploy-list.function.d.ts +41 -0
- package/dist/src/fabric/functions/deploy-list.function.js +43 -0
- package/dist/src/fabric/functions/deploy-units.function.d.ts +35 -0
- package/dist/src/fabric/functions/deploy-units.function.js +41 -0
- package/dist/src/fabric/functions/deploy.function.d.ts +105 -0
- package/dist/src/fabric/functions/deploy.function.js +122 -0
- package/dist/src/fabric/functions/domains-add.function.d.ts +35 -0
- package/dist/src/fabric/functions/domains-add.function.js +46 -0
- package/dist/src/fabric/functions/domains-list.function.d.ts +20 -0
- package/dist/src/fabric/functions/domains-list.function.js +50 -0
- package/dist/src/fabric/functions/domains-remove.function.d.ts +24 -0
- package/dist/src/fabric/functions/domains-remove.function.js +44 -0
- package/dist/src/fabric/functions/errors.function.d.ts +44 -0
- package/dist/src/fabric/functions/errors.function.js +50 -0
- package/dist/src/fabric/functions/init.function.d.ts +51 -0
- package/dist/src/fabric/functions/init.function.js +54 -0
- package/dist/src/fabric/functions/link.function.d.ts +28 -0
- package/dist/src/fabric/functions/link.function.js +77 -0
- package/dist/src/fabric/functions/llm-key.function.d.ts +46 -0
- package/dist/src/fabric/functions/llm-key.function.js +76 -0
- package/dist/src/fabric/functions/login.function.d.ts +42 -0
- package/dist/src/fabric/functions/login.function.js +68 -0
- package/dist/src/fabric/functions/logs.function.d.ts +40 -0
- package/dist/src/fabric/functions/logs.function.js +84 -0
- package/dist/src/fabric/functions/metrics.function.d.ts +32 -0
- package/dist/src/fabric/functions/metrics.function.js +49 -0
- package/dist/src/fabric/functions/rollback.function.d.ts +76 -0
- package/dist/src/fabric/functions/rollback.function.js +69 -0
- package/dist/src/fabric/functions/secrets-list.function.d.ts +24 -0
- package/dist/src/fabric/functions/secrets-list.function.js +37 -0
- package/dist/src/fabric/functions/secrets-set.function.d.ts +32 -0
- package/dist/src/fabric/functions/secrets-set.function.js +36 -0
- package/dist/src/fabric/functions/status.function.d.ts +34 -0
- package/dist/src/fabric/functions/status.function.js +43 -0
- package/dist/src/fabric/functions/trace.function.d.ts +28 -0
- package/dist/src/fabric/functions/trace.function.js +45 -0
- package/dist/src/fabric/functions/validate.function.d.ts +50 -0
- package/dist/src/fabric/functions/validate.function.js +363 -0
- package/dist/src/fabric/lib/config.d.ts +64 -0
- package/dist/src/fabric/lib/config.js +62 -0
- package/dist/src/fabric/lib/console-url.d.ts +5 -0
- package/dist/src/fabric/lib/console-url.js +13 -0
- package/dist/src/fabric/lib/git.d.ts +53 -0
- package/dist/src/fabric/lib/git.js +151 -0
- package/dist/src/fabric/lib/http.d.ts +4 -0
- package/dist/src/fabric/lib/http.js +12 -0
- package/dist/src/fabric/lib/not-implemented.d.ts +5 -0
- package/dist/src/fabric/lib/not-implemented.js +8 -0
- package/dist/src/fabric/lib/output.d.ts +23 -0
- package/dist/src/fabric/lib/output.js +39 -0
- package/dist/src/fabric/lib/prompt.d.ts +12 -0
- package/dist/src/fabric/lib/prompt.js +32 -0
- package/dist/src/fabric/lib/stage.d.ts +7 -0
- package/dist/src/fabric/lib/stage.js +14 -0
- package/dist/src/fabric/sdk/pikku-fetch.gen.d.ts +14 -0
- package/dist/src/fabric/sdk/pikku-fetch.gen.js +30 -0
- package/dist/src/fabric/sdk/pikku-rpc.gen.d.ts +105 -0
- package/dist/src/fabric/sdk/pikku-rpc.gen.js +126 -0
- package/dist/src/functions/commands/all.d.ts +1 -1
- package/dist/src/functions/commands/binary.d.ts +7 -0
- package/dist/src/functions/commands/binary.js +40 -0
- package/dist/src/functions/commands/bootstrap.d.ts +1 -1
- package/dist/src/functions/commands/bootstrap.js +7 -4
- package/dist/src/functions/commands/console.d.ts +3 -3
- package/dist/src/functions/commands/db-migrate.d.ts +1 -0
- package/dist/src/functions/commands/db-migrate.js +35 -0
- package/dist/src/functions/commands/db-reset.d.ts +1 -0
- package/dist/src/functions/commands/db-reset.js +36 -0
- package/dist/src/functions/commands/db-seed.d.ts +1 -0
- package/dist/src/functions/commands/db-seed.js +27 -0
- package/dist/src/functions/commands/db-shared.d.ts +32 -0
- package/dist/src/functions/commands/db-shared.js +26 -0
- package/dist/src/functions/commands/deploy-apply.d.ts +3 -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/dev.d.ts +3 -3
- package/dist/src/functions/commands/dev.js +142 -86
- package/dist/src/functions/commands/enable.d.ts +5 -4
- package/dist/src/functions/commands/enable.js +4 -0
- package/dist/src/functions/commands/info.d.ts +4 -4
- package/dist/src/functions/commands/load-user-project.d.ts +11 -0
- package/dist/src/functions/commands/load-user-project.js +40 -0
- package/dist/src/functions/commands/meta.d.ts +82 -0
- package/dist/src/functions/commands/meta.js +454 -0
- 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/pikku-command-bootstrap.d.ts +1 -1
- package/dist/src/functions/commands/pikku-command-bootstrap.js +15 -1
- package/dist/src/functions/commands/pikku-command-summary.d.ts +1 -1
- package/dist/src/functions/commands/pikku-command-summary.js +3 -0
- package/dist/src/functions/commands/skills.d.ts +26 -0
- package/dist/src/functions/commands/skills.js +184 -0
- package/dist/src/functions/commands/tests-coverage.d.ts +7 -0
- package/dist/src/functions/commands/tests-coverage.js +231 -0
- package/dist/src/functions/commands/tests-init.d.ts +7 -0
- package/dist/src/functions/commands/tests-init.js +225 -0
- 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/commands/watch.js +1 -1
- package/dist/src/functions/db/local-db.d.ts +48 -0
- package/dist/src/functions/db/local-db.js +106 -0
- package/dist/src/functions/db/seed.d.ts +11 -0
- package/dist/src/functions/db/seed.js +22 -0
- package/dist/src/functions/db/sql-migrator.d.ts +26 -0
- package/dist/src/functions/db/sql-migrator.js +104 -0
- package/dist/src/functions/db/sqlite-codegen.d.ts +45 -0
- package/dist/src/functions/db/sqlite-codegen.js +294 -0
- package/dist/src/functions/db/zod-codegen.d.ts +10 -0
- package/dist/src/functions/db/zod-codegen.js +109 -0
- 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/nextjs/pikku-command-nextjs.js +21 -2
- package/dist/src/functions/runtimes/nextjs/serialize-nextjs-backend-worker-rpc-wrapper.d.ts +1 -0
- package/dist/src/functions/runtimes/nextjs/serialize-nextjs-backend-worker-rpc-wrapper.js +163 -0
- package/dist/src/functions/runtimes/nextjs/serialize-nextjs-http-wrapper.d.ts +1 -1
- package/dist/src/functions/runtimes/nextjs/serialize-nextjs-http-wrapper.js +5 -2
- package/dist/src/functions/runtimes/tanstack-start/pikku-command-tanstack-start.d.ts +1 -0
- package/dist/src/functions/runtimes/tanstack-start/pikku-command-tanstack-start.js +32 -0
- package/dist/src/functions/runtimes/tanstack-start/serialize-tanstack-start-shim.d.ts +11 -0
- package/dist/src/functions/runtimes/tanstack-start/serialize-tanstack-start-shim.js +36 -0
- package/dist/src/functions/runtimes/websocket/pikku-command-websocket-typed.d.ts +1 -1
- 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.d.ts +1 -1
- package/dist/src/functions/wirings/ai-agent/pikku-command-ai-agent.js +1 -10
- package/dist/src/functions/wirings/ai-agent/pikku-command-public-agent.d.ts +1 -1
- package/dist/src/functions/wirings/ai-agent/serialize-public-agent.js +76 -1
- package/dist/src/functions/wirings/channels/pikku-channels.d.ts +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/cli/pikku-command-cli-entry.d.ts +1 -1
- package/dist/src/functions/wirings/cli/pikku-command-cli-entry.js +5 -2
- package/dist/src/functions/wirings/cli/pikku-command-cli-types.d.ts +5 -1
- package/dist/src/functions/wirings/cli/pikku-command-cli-types.js +8 -2
- package/dist/src/functions/wirings/cli/pikku-command-cli.d.ts +1 -1
- package/dist/src/functions/wirings/cli/serialize-channel-cli-client.js +27 -9
- package/dist/src/functions/wirings/cli/serialize-channel-cli.d.ts +5 -1
- package/dist/src/functions/wirings/cli/serialize-channel-cli.js +13 -3
- 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 +5 -0
- package/dist/src/functions/wirings/credentials/pikku-command-credentials.d.ts +1 -1
- package/dist/src/functions/wirings/functions/pikku-command-addon-types.d.ts +5 -1
- package/dist/src/functions/wirings/functions/pikku-command-addon-types.js +7 -2
- 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-split.js +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-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 +78 -83
- package/dist/src/functions/wirings/gateway/pikku-command-gateway.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/http/pikku-http-routes.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 +2 -2
- package/dist/src/functions/wirings/package/pikku-command-package.d.ts +1 -1
- package/dist/src/functions/wirings/permissions/pikku-command-permissions.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 -0
- package/dist/src/functions/wirings/realtime/pikku-command-events-scaffold.js +26 -0
- package/dist/src/functions/wirings/realtime/pikku-command-realtime.d.ts +1 -0
- package/dist/src/functions/wirings/realtime/pikku-command-realtime.js +35 -0
- package/dist/src/functions/wirings/realtime/serialize-events-scaffold.d.ts +23 -0
- package/dist/src/functions/wirings/realtime/serialize-events-scaffold.js +98 -0
- package/dist/src/functions/wirings/realtime/serialize-realtime-client.d.ts +22 -0
- package/dist/src/functions/wirings/realtime/serialize-realtime-client.js +337 -0
- 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-client.js +3 -1
- package/dist/src/functions/wirings/rpc/pikku-command-rpc-map.d.ts +2 -2
- package/dist/src/functions/wirings/rpc/pikku-command-rpc.d.ts +2 -1
- package/dist/src/functions/wirings/rpc/pikku-command-rpc.js +13 -7
- package/dist/src/functions/wirings/rpc/serialize-public-rpc.js +1 -0
- package/dist/src/functions/wirings/rpc/serialize-react-query-hooks.js +1 -1
- package/dist/src/functions/wirings/rpc/serialize-remote-rpc.js +7 -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/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-types.js +1 -1
- 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/workflow/pikku-command-workflow-routes.d.ts +1 -1
- package/dist/src/functions/wirings/workflow/pikku-command-workflow-routes.js +1 -1
- package/dist/src/functions/wirings/workflow/pikku-command-workflow.d.ts +5 -1
- package/dist/src/functions/wirings/workflow/pikku-command-workflow.js +18 -4
- package/dist/src/functions/wirings/workflow/serialize-workflow-bootstrap-map.d.ts +3 -0
- package/dist/src/functions/wirings/workflow/serialize-workflow-bootstrap-map.js +40 -0
- package/dist/src/functions/wirings/workflow/serialize-workflow-routes.js +14 -2
- package/dist/src/functions/workflows/all.workflow.js +41 -8
- package/dist/src/scaffold/rpc-remote.gen.d.ts +3 -3
- package/dist/src/scaffold/rpc-remote.gen.js +7 -2
- package/dist/src/services/cli-logger.service.d.ts +0 -1
- package/dist/src/services/cli-logger.service.js +12 -22
- package/dist/src/services.js +24 -66
- package/dist/src/utils/generate-bootstrap-file.js +3 -0
- package/dist/src/utils/parse-cli-filters.d.ts +18 -0
- package/dist/src/utils/parse-cli-filters.js +99 -0
- package/dist/src/utils/pikku-cli-config.js +29 -9
- package/dist/src/utils/serialize-schemas.js +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +9 -4
- package/skills/pikku-addon/SKILL.md +330 -0
- package/skills/pikku-ai-agent/SKILL.md +227 -0
- package/skills/pikku-ai-vercel/SKILL.md +78 -0
- package/skills/pikku-ai-voice/SKILL.md +85 -0
- package/skills/pikku-auth-js/SKILL.md +106 -0
- package/skills/pikku-aws/SKILL.md +107 -0
- package/skills/pikku-backblaze/SKILL.md +70 -0
- package/skills/pikku-cli/SKILL.md +281 -0
- package/skills/pikku-concepts/SKILL.md +281 -0
- package/skills/pikku-concepts/references/concept-mapping.md +528 -0
- package/skills/pikku-config/SKILL.md +208 -0
- package/skills/pikku-cron/SKILL.md +211 -0
- package/skills/pikku-deploy-azure/SKILL.md +69 -0
- package/skills/pikku-deploy-cloudflare/SKILL.md +80 -0
- package/skills/pikku-deploy-express/SKILL.md +83 -0
- package/skills/pikku-deploy-fastify/SKILL.md +70 -0
- package/skills/pikku-deploy-lambda/SKILL.md +107 -0
- package/skills/pikku-deploy-nextjs/SKILL.md +76 -0
- package/skills/pikku-deploy-uws/SKILL.md +85 -0
- package/skills/pikku-fabric/SKILL.md +245 -0
- package/skills/pikku-feature/SKILL.md +258 -0
- package/skills/pikku-gateway-slack/SKILL.md +112 -0
- package/skills/pikku-http/SKILL.md +317 -0
- package/skills/pikku-i18n/SKILL.md +217 -0
- package/skills/pikku-info/SKILL.md +95 -0
- package/skills/pikku-jose/SKILL.md +102 -0
- package/skills/pikku-kysely/SKILL.md +145 -0
- package/skills/pikku-mcp/SKILL.md +237 -0
- package/skills/pikku-mongodb/SKILL.md +102 -0
- package/skills/pikku-n8n-addon-map/SKILL.md +178 -0
- package/skills/pikku-n8n-code-translate/SKILL.md +166 -0
- package/skills/pikku-pino/SKILL.md +77 -0
- package/skills/pikku-queue/SKILL.md +237 -0
- package/skills/pikku-react/SKILL.md +183 -0
- package/skills/pikku-react-query/SKILL.md +205 -0
- package/skills/pikku-realtime/SKILL.md +285 -0
- package/skills/pikku-redis/SKILL.md +87 -0
- package/skills/pikku-rpc/SKILL.md +168 -0
- package/skills/pikku-rtl/SKILL.md +219 -0
- package/skills/pikku-schedule/SKILL.md +54 -0
- package/skills/pikku-schema-ajv/SKILL.md +60 -0
- package/skills/pikku-schema-cfworker/SKILL.md +60 -0
- package/skills/pikku-security/SKILL.md +243 -0
- package/skills/pikku-services/SKILL.md +247 -0
- package/skills/pikku-template-clone/SKILL.md +39 -0
- package/skills/pikku-testing/SKILL.md +428 -0
- package/skills/pikku-trigger/SKILL.md +177 -0
- package/skills/pikku-versioning/SKILL.md +169 -0
- package/skills/pikku-websocket/SKILL.md +239 -0
- package/skills/pikku-workflow/SKILL.md +283 -0
- package/skills/pikku-workflows-client/SKILL.md +150 -0
- package/skills/pikku-ws/SKILL.md +45 -0
- package/console-app/assets/index-BpY2pSuA.css +0 -10
- package/console-app/assets/index-DXLy-_D4.js +0 -717
- package/dist/.pikku/schemas/schemas/GraphStarterInput.schema.json +0 -1
- package/dist/.pikku/schemas/schemas/GraphStarterOutput.schema.json +0 -1
- package/dist/.pikku/schemas/schemas/WorkflowRunStatus.schema.json +0 -1
- package/dist/.pikku/schemas/schemas/WorkflowRunnerInput.schema.json +0 -1
- package/dist/.pikku/schemas/schemas/WorkflowStarterInput.schema.json +0 -1
- package/dist/.pikku/schemas/schemas/WorkflowStarterOutput.schema.json +0 -1
- package/dist/.pikku/schemas/schemas/WorkflowStatusCheckerInput.schema.json +0 -1
- package/dist/.pikku/schemas/schemas/WorkflowStatusStreamFullInput.schema.json +0 -1
- package/dist/.pikku/schemas/schemas/WorkflowStatusStreamInput.schema.json +0 -1
- package/dist/src/scaffold/workflow-routes.gen.d.ts +0 -84
- package/dist/src/scaffold/workflow-routes.gen.js +0 -229
|
@@ -2,17 +2,23 @@ import { pikkuSessionlessFunc } from '#pikku';
|
|
|
2
2
|
import { writeFileInDir } from '../../../utils/file-writer.js';
|
|
3
3
|
import { logCommandInfoAndTime } from '../../../middleware/log-command-info-and-time.js';
|
|
4
4
|
import { getFileImportRelativePath } from '../../../utils/file-import-path.js';
|
|
5
|
+
export function filterInternalRPCMeta(internalMeta, functionsMeta) {
|
|
6
|
+
const filteredInternalMeta = {};
|
|
7
|
+
for (const [key, value] of Object.entries(internalMeta)) {
|
|
8
|
+
if (key in functionsMeta || value in functionsMeta) {
|
|
9
|
+
filteredInternalMeta[key] = value;
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
return filteredInternalMeta;
|
|
13
|
+
}
|
|
5
14
|
export const pikkuRPC = pikkuSessionlessFunc({
|
|
6
15
|
func: async ({ logger, config, getInspectorState }) => {
|
|
7
16
|
const { rpc, functions } = await getInspectorState();
|
|
8
17
|
const { rpcInternalWiringMetaFile, rpcInternalWiringMetaJsonFile, packageMappings, schema, } = config;
|
|
9
|
-
//
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
filteredInternalMeta[key] = value;
|
|
14
|
-
}
|
|
15
|
-
}
|
|
18
|
+
// Keep direct function ids and unversioned aliases whose target function
|
|
19
|
+
// survived filtering. Without the second check, aliases like `listCards`
|
|
20
|
+
// get dropped even though `listCards@v2` still exists.
|
|
21
|
+
const filteredInternalMeta = filterInternalRPCMeta(rpc.internalMeta, functions.meta);
|
|
16
22
|
if (Object.keys(filteredInternalMeta).length > 0) {
|
|
17
23
|
await writeFileInDir(logger, rpcInternalWiringMetaJsonFile, JSON.stringify(filteredInternalMeta, null, 2));
|
|
18
24
|
const jsonImportPath = getFileImportRelativePath(rpcInternalWiringMetaFile, rpcInternalWiringMetaJsonFile, packageMappings);
|
|
@@ -98,7 +98,7 @@ export const usePikkuInfiniteQuery = <Name extends PaginatedKeys>(
|
|
|
98
98
|
const rpc = usePikkuRPC<{ invoke: RPCInvoke }>()
|
|
99
99
|
return useInfiniteQuery({
|
|
100
100
|
queryKey: [name, data] as const,
|
|
101
|
-
queryFn: ({ pageParam }: { pageParam: string | undefined }) => rpc.invoke(name, { ...data, nextCursor: pageParam } as FlattenedRPCMap[Name]['input']),
|
|
101
|
+
queryFn: ({ pageParam }: { pageParam: string | undefined }) => rpc.invoke(name, { ...data, nextCursor: pageParam } as unknown as FlattenedRPCMap[Name]['input']),
|
|
102
102
|
initialPageParam: undefined as string | undefined,
|
|
103
103
|
getNextPageParam: (lastPage: FlattenedRPCMap[Name]['output']) => (lastPage as { nextCursor?: string }).nextCursor ?? undefined,
|
|
104
104
|
...options,
|
|
@@ -6,19 +6,25 @@ export const serializeRemoteRPC = (pathToPikkuTypes) => {
|
|
|
6
6
|
* Auto-generated remote internal RPC queue worker and HTTP endpoint
|
|
7
7
|
* Do not edit manually - regenerate with 'npx pikku'
|
|
8
8
|
*/
|
|
9
|
-
import { pikkuSessionlessFunc, wireHTTP } from '${pathToPikkuTypes}'
|
|
9
|
+
import { pikkuSessionlessFunc, wireHTTP, wireQueueWorker } from '${pathToPikkuTypes}'
|
|
10
10
|
import { pikkuRemoteAuthMiddleware } from '@pikku/core/middleware'
|
|
11
11
|
|
|
12
12
|
export const remoteRPCHandler = pikkuSessionlessFunc<
|
|
13
13
|
{ rpcName: string, data?: unknown },
|
|
14
14
|
unknown
|
|
15
15
|
>({
|
|
16
|
+
tags: ['pikku'],
|
|
16
17
|
func: async (_services, { rpcName, data }, { rpc }) => {
|
|
17
18
|
return await (rpc.invoke as any)(rpcName, data)
|
|
18
19
|
},
|
|
19
20
|
remote: true,
|
|
20
21
|
})
|
|
21
22
|
|
|
23
|
+
wireQueueWorker({
|
|
24
|
+
name: 'pikku-remote-internal-rpc',
|
|
25
|
+
func: remoteRPCHandler,
|
|
26
|
+
})
|
|
27
|
+
|
|
22
28
|
wireHTTP({
|
|
23
29
|
route: '/remote/rpc/:rpcName',
|
|
24
30
|
method: 'post',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const pikkuSchedulerTypes: import("#pikku").PikkuFunctionConfig<void, void, "
|
|
1
|
+
export declare const pikkuSchedulerTypes: import("#pikku").PikkuFunctionConfig<void, void, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, void, "rpc" | "session", import("#pikku").Services> | import("#pikku").PikkuFunction<void, void, "rpc" | "session", import("#pikku").Services>, undefined, undefined>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const pikkuScheduler: import("#pikku").PikkuFunctionConfig<void, boolean | undefined, "
|
|
1
|
+
export declare const pikkuScheduler: import("#pikku").PikkuFunctionConfig<void, boolean | undefined, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, boolean | undefined, "rpc" | "session", import("#pikku").Services> | import("#pikku").PikkuFunction<void, boolean | undefined, "rpc" | "session", import("#pikku").Services>, undefined, undefined>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const pikkuSecrets: import("#pikku").PikkuFunctionConfig<void, void, "
|
|
1
|
+
export declare const pikkuSecrets: import("#pikku").PikkuFunctionConfig<void, void, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, void, "rpc" | "session", import("#pikku").Services> | import("#pikku").PikkuFunction<void, void, "rpc" | "session", import("#pikku").Services>, undefined, undefined>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const pikkuTriggerTypes: import("#pikku").PikkuFunctionConfig<void, void, "
|
|
1
|
+
export declare const pikkuTriggerTypes: import("#pikku").PikkuFunctionConfig<void, void, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, void, "rpc" | "session", import("#pikku").Services> | import("#pikku").PikkuFunction<void, void, "rpc" | "session", import("#pikku").Services>, undefined, undefined>;
|
|
@@ -6,7 +6,7 @@ import { serializeTriggerTypes } from './serialize-trigger-types.js';
|
|
|
6
6
|
export const pikkuTriggerTypes = pikkuSessionlessFunc({
|
|
7
7
|
func: async ({ logger, config, getInspectorState }) => {
|
|
8
8
|
const { triggersTypesFile, packageMappings } = config;
|
|
9
|
-
const visitState = await getInspectorState();
|
|
9
|
+
const visitState = await getInspectorState(false, true);
|
|
10
10
|
const { singletonServicesType } = visitState.filesAndMethods;
|
|
11
11
|
if (!singletonServicesType) {
|
|
12
12
|
throw new Error('SingletonServices type not found');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const pikkuTrigger: import("#pikku").PikkuFunctionConfig<void, boolean | undefined, "
|
|
1
|
+
export declare const pikkuTrigger: import("#pikku").PikkuFunctionConfig<void, boolean | undefined, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, boolean | undefined, "rpc" | "session", import("#pikku").Services> | import("#pikku").PikkuFunction<void, boolean | undefined, "rpc" | "session", import("#pikku").Services>, undefined, undefined>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const pikkuVariables: import("#pikku").PikkuFunctionConfig<void, void, "
|
|
1
|
+
export declare const pikkuVariables: import("#pikku").PikkuFunctionConfig<void, void, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, void, "rpc" | "session", import("#pikku").Services> | import("#pikku").PikkuFunction<void, void, "rpc" | "session", import("#pikku").Services>, undefined, undefined>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const pikkuWorkflowRoutes: import("#pikku").PikkuFunctionConfig<void, boolean, "
|
|
1
|
+
export declare const pikkuWorkflowRoutes: import("#pikku").PikkuFunctionConfig<void, boolean, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<void, boolean, "rpc" | "session", import("#pikku").Services> | import("#pikku").PikkuFunction<void, boolean, "rpc" | "session", import("#pikku").Services>, undefined, undefined>;
|
|
@@ -5,7 +5,7 @@ import { logCommandInfoAndTime } from '../../../middleware/log-command-info-and-
|
|
|
5
5
|
import { serializeWorkflowRoutes } from './serialize-workflow-routes.js';
|
|
6
6
|
export const pikkuWorkflowRoutes = pikkuSessionlessFunc({
|
|
7
7
|
func: async ({ logger, config }) => {
|
|
8
|
-
if (config.workflowRoutesFile) {
|
|
8
|
+
if (config.scaffold?.workflow && config.workflowRoutesFile) {
|
|
9
9
|
const pathToPikkuTypes = getFileImportRelativePath(config.workflowRoutesFile, config.typesDeclarationFile, config.packageMappings);
|
|
10
10
|
await writeFileInDir(logger, config.workflowRoutesFile, serializeWorkflowRoutes(pathToPikkuTypes, config.scaffold?.workflow === 'auth'));
|
|
11
11
|
return true;
|
|
@@ -1 +1,5 @@
|
|
|
1
|
-
|
|
1
|
+
type WorkflowCommandInput = {
|
|
2
|
+
bootstrap?: boolean;
|
|
3
|
+
};
|
|
4
|
+
export declare const pikkuWorkflow: import("#pikku").PikkuFunctionConfig<WorkflowCommandInput, boolean | undefined, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<WorkflowCommandInput, boolean | undefined, "rpc" | "session", import("#pikku").Services> | import("#pikku").PikkuFunction<WorkflowCommandInput, boolean | undefined, "rpc" | "session", import("#pikku").Services>, undefined, undefined>;
|
|
5
|
+
export {};
|
|
@@ -5,13 +5,17 @@ import { logCommandInfoAndTime } from '../../../middleware/log-command-info-and-
|
|
|
5
5
|
import { serializeWorkflowTypes } from './serialize-workflow-types.js';
|
|
6
6
|
import { serializeWorkflowRegistration } from './serialize-workflow-registration.js';
|
|
7
7
|
import { serializeWorkflowMap } from './serialize-workflow-map.js';
|
|
8
|
+
import { serializeWorkflowBootstrapMap } from './serialize-workflow-bootstrap-map.js';
|
|
8
9
|
import { serializeWorkflowMeta } from './serialize-workflow-meta.js';
|
|
9
10
|
import { getFileImportRelativePath } from '../../../utils/file-import-path.js';
|
|
10
11
|
import { stripVerboseFields, hasVerboseFields, } from '../../../utils/strip-verbose-meta.js';
|
|
11
12
|
import { join } from 'path';
|
|
12
13
|
export const pikkuWorkflow = pikkuSessionlessFunc({
|
|
13
|
-
func: async ({ logger, config, getInspectorState }) => {
|
|
14
|
-
const
|
|
14
|
+
func: async ({ logger, config, getInspectorState }, input) => {
|
|
15
|
+
const bootstrap = input?.bootstrap === true;
|
|
16
|
+
const visitState = bootstrap
|
|
17
|
+
? await getInspectorState(false, true, false)
|
|
18
|
+
: await getInspectorState();
|
|
15
19
|
const { workflowsWiringFile, workflowsWiringMetaFile, workflowMetaDir, workflowMapDeclarationFile, workflowTypesFile, functionTypesFile, packageMappings, schema, } = config;
|
|
16
20
|
const { workflows, functions: functionState } = visitState;
|
|
17
21
|
const { typesMap } = functionState;
|
|
@@ -24,7 +28,15 @@ export const pikkuWorkflow = pikkuSessionlessFunc({
|
|
|
24
28
|
const hasRelevantWorkflows = allWorkflowNames.length > 0;
|
|
25
29
|
const hasWorkflows = hasRelevantWorkflows;
|
|
26
30
|
if (hasWorkflows) {
|
|
27
|
-
const
|
|
31
|
+
const singletonServices = visitState.serviceAggregation.allSingletonServices.length > 0
|
|
32
|
+
? visitState.serviceAggregation.allSingletonServices
|
|
33
|
+
: visitState.typesLookup?.get('SingletonServices')?.[0]
|
|
34
|
+
? visitState.typesLookup
|
|
35
|
+
.get('SingletonServices')[0]
|
|
36
|
+
.getProperties()
|
|
37
|
+
.map((symbol) => symbol.getName())
|
|
38
|
+
: [];
|
|
39
|
+
const hasWorkflowState = singletonServices.includes('workflowService');
|
|
28
40
|
if (!hasWorkflowState) {
|
|
29
41
|
logger.critical(ErrorCode.WORKFLOW_ORCHESTRATOR_NOT_CONFIGURED, 'Workflows detected but workflowService service not configured. Please add workflowService to your singleton services');
|
|
30
42
|
throw new Error('WorkflowState service not configured but workflows are defined');
|
|
@@ -50,7 +62,9 @@ export const pikkuWorkflow = pikkuSessionlessFunc({
|
|
|
50
62
|
const rpcMapImportPath = getFileImportRelativePath(workflowTypesFile, config.rpcInternalMapDeclarationFile, packageMappings);
|
|
51
63
|
const workflowMapImportPath = getFileImportRelativePath(workflowTypesFile, workflowMapDeclarationFile, packageMappings);
|
|
52
64
|
await writeFileInDir(logger, workflowTypesFile, serializeWorkflowTypes(functionTypesImportPath, rpcMapImportPath, workflowMapImportPath));
|
|
53
|
-
await writeFileInDir(logger, workflowMapDeclarationFile,
|
|
65
|
+
await writeFileInDir(logger, workflowMapDeclarationFile, bootstrap
|
|
66
|
+
? serializeWorkflowBootstrapMap(workflows.meta, workflows.graphMeta)
|
|
67
|
+
: serializeWorkflowMap(logger, workflowMapDeclarationFile, packageMappings, typesMap, functionState.meta, workflows.meta, workflows.graphMeta, visitState.rpc?.wireAddonDeclarations));
|
|
54
68
|
return hasWorkflows;
|
|
55
69
|
},
|
|
56
70
|
middleware: [
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
export const serializeWorkflowBootstrapMap = (workflowsMeta, graphMeta) => {
|
|
2
|
+
const workflowEntries = Object.keys(workflowsMeta)
|
|
3
|
+
.sort()
|
|
4
|
+
.map((workflowName) => ` readonly '${workflowName}': WorkflowHandler<unknown, unknown>,`)
|
|
5
|
+
.join('\n');
|
|
6
|
+
const graphEntries = Object.entries(graphMeta)
|
|
7
|
+
.sort(([a], [b]) => a.localeCompare(b))
|
|
8
|
+
.map(([graphName, graph]) => {
|
|
9
|
+
const nodeEntries = Object.keys(graph.nodes)
|
|
10
|
+
.sort()
|
|
11
|
+
.map((nodeId) => ` readonly '${nodeId}': GraphNodeHandler<unknown>,`)
|
|
12
|
+
.join('\n');
|
|
13
|
+
return ` readonly '${graphName}': {\n${nodeEntries}\n },`;
|
|
14
|
+
})
|
|
15
|
+
.join('\n');
|
|
16
|
+
return `/**
|
|
17
|
+
* Bootstrap-safe workflow type map.
|
|
18
|
+
* Full input/output types are populated by the later \`pikku all\` pass.
|
|
19
|
+
*/
|
|
20
|
+
|
|
21
|
+
interface WorkflowHandler<I, O> {
|
|
22
|
+
input: I;
|
|
23
|
+
output: O;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
interface GraphNodeHandler<I> {
|
|
27
|
+
input: I;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
export type WorkflowMap = {
|
|
31
|
+
${workflowEntries}
|
|
32
|
+
};
|
|
33
|
+
|
|
34
|
+
export type GraphsMap = {
|
|
35
|
+
${graphEntries}
|
|
36
|
+
};
|
|
37
|
+
|
|
38
|
+
export type FlattenedWorkflowMap = WorkflowMap
|
|
39
|
+
`;
|
|
40
|
+
};
|
|
@@ -23,8 +23,13 @@ export const workflowStarter = pikkuSessionlessFunc<
|
|
|
23
23
|
{ workflowName: string; data?: unknown },
|
|
24
24
|
{ runId: string }
|
|
25
25
|
>({
|
|
26
|
+
tags: ['pikku'],
|
|
26
27
|
auth: ${authFlag},
|
|
27
|
-
|
|
28
|
+
// workflowService is destructured (even though we delegate via rpc) so the
|
|
29
|
+
// analyzer assigns workflow-state capability to this unit — without it,
|
|
30
|
+
// rpc.startWorkflow() runs against a container missing workflowService.
|
|
31
|
+
func: async ({ workflowService }, { workflowName, data }, { rpc }) => {
|
|
32
|
+
assertWorkflowService(workflowService)
|
|
28
33
|
return await rpc.startWorkflow(workflowName as any, (data ?? {}) as any)
|
|
29
34
|
},
|
|
30
35
|
})
|
|
@@ -33,6 +38,7 @@ export const workflowRunner = pikkuSessionlessFunc<
|
|
|
33
38
|
{ workflowName: string; data?: unknown },
|
|
34
39
|
unknown
|
|
35
40
|
>({
|
|
41
|
+
tags: ['pikku'],
|
|
36
42
|
auth: ${authFlag},
|
|
37
43
|
func: async ({ workflowService }, { workflowName, data }, { rpc }) => {
|
|
38
44
|
assertWorkflowService(workflowService)
|
|
@@ -44,6 +50,7 @@ export const workflowStatusChecker = pikkuSessionlessFunc<
|
|
|
44
50
|
{ workflowName: string; runId: string },
|
|
45
51
|
WorkflowRunStatus
|
|
46
52
|
>({
|
|
53
|
+
tags: ['pikku'],
|
|
47
54
|
auth: ${authFlag},
|
|
48
55
|
func: async ({ workflowService }, { runId }) => {
|
|
49
56
|
assertWorkflowService(workflowService)
|
|
@@ -61,6 +68,7 @@ export const workflowStatusStream = pikkuSessionlessFunc<
|
|
|
61
68
|
{ workflowName: string; runId: string },
|
|
62
69
|
unknown
|
|
63
70
|
>({
|
|
71
|
+
tags: ['pikku'],
|
|
64
72
|
auth: ${authFlag},
|
|
65
73
|
func: async ({ workflowRunService }, { runId }, { channel }) => {
|
|
66
74
|
assertWorkflowRunService(workflowRunService)
|
|
@@ -147,6 +155,7 @@ export const workflowStatusStreamFull = pikkuSessionlessFunc<
|
|
|
147
155
|
{ workflowName: string; runId: string },
|
|
148
156
|
unknown
|
|
149
157
|
>({
|
|
158
|
+
tags: ['pikku'],
|
|
150
159
|
auth: ${authFlag},
|
|
151
160
|
func: async ({ workflowRunService }, { runId }, { channel }) => {
|
|
152
161
|
assertWorkflowRunService(workflowRunService)
|
|
@@ -234,7 +243,10 @@ export const graphStarter = pikkuSessionlessFunc<
|
|
|
234
243
|
{ runId: string }
|
|
235
244
|
>({
|
|
236
245
|
auth: ${authFlag},
|
|
237
|
-
|
|
246
|
+
// See workflowStarter — destructure workflowService so the analyzer
|
|
247
|
+
// assigns workflow-state capability to this unit.
|
|
248
|
+
func: async ({ workflowService }, { workflowName, nodeId, data }, { rpc }) => {
|
|
249
|
+
assertWorkflowService(workflowService)
|
|
238
250
|
return await rpc.startWorkflow(workflowName as any, (data ?? {}) as any, { startNode: nodeId })
|
|
239
251
|
},
|
|
240
252
|
})
|
|
@@ -14,6 +14,11 @@ const scaffoldFiles = (config) => {
|
|
|
14
14
|
file: config.publicAgentFile,
|
|
15
15
|
generator: 'pikkuPublicAgent',
|
|
16
16
|
});
|
|
17
|
+
if (config.scaffold?.events && config.eventsChannelFile)
|
|
18
|
+
files.push({
|
|
19
|
+
file: config.eventsChannelFile,
|
|
20
|
+
generator: 'pikkuEventsScaffold',
|
|
21
|
+
});
|
|
17
22
|
return files;
|
|
18
23
|
};
|
|
19
24
|
export const allWorkflow = pikkuWorkflowComplexFunc({
|
|
@@ -23,20 +28,30 @@ export const allWorkflow = pikkuWorkflowComplexFunc({
|
|
|
23
28
|
let typesDeclarationFileExists = true;
|
|
24
29
|
if (!existsSync(config.outDir)) {
|
|
25
30
|
logger.debug(`• .pikku directory not found, running bootstrap first...`);
|
|
26
|
-
await workflow.do('Bootstrap inspect', async () => getInspectorState(false,
|
|
31
|
+
await workflow.do('Bootstrap inspect', async () => getInspectorState(false, true, true));
|
|
32
|
+
await workflow.do('Bootstrap function types split', 'pikkuFunctionTypesSplit', null);
|
|
27
33
|
await workflow.do('Bootstrap function types', 'pikkuFunctionTypes', null);
|
|
34
|
+
await workflow.do('Bootstrap addon types', 'pikkuAddonTypes', {
|
|
35
|
+
bootstrap: true,
|
|
36
|
+
});
|
|
28
37
|
await Promise.all([
|
|
29
|
-
workflow.do('Bootstrap function types split', 'pikkuFunctionTypesSplit', null),
|
|
30
38
|
workflow.do('Bootstrap HTTP types', 'pikkuHTTPTypes', null),
|
|
31
39
|
workflow.do('Bootstrap channel types', 'pikkuChannelTypes', null),
|
|
32
40
|
workflow.do('Bootstrap scheduler types', 'pikkuSchedulerTypes', null),
|
|
33
41
|
workflow.do('Bootstrap queue types', 'pikkuQueueTypes', null),
|
|
34
|
-
workflow.do('Bootstrap workflow', 'pikkuWorkflow',
|
|
42
|
+
workflow.do('Bootstrap workflow', 'pikkuWorkflow', {
|
|
43
|
+
bootstrap: true,
|
|
44
|
+
}),
|
|
45
|
+
workflow.do('Bootstrap Trigger types', 'pikkuTriggerTypes', null),
|
|
35
46
|
workflow.do('Bootstrap MCP types', 'pikkuMCPTypes', null),
|
|
36
47
|
workflow.do('Bootstrap AI agent types', 'pikkuAIAgentTypes', null),
|
|
37
|
-
workflow.do('Bootstrap CLI types', 'pikkuCLITypes', null),
|
|
38
48
|
]);
|
|
39
|
-
await workflow.do('Bootstrap
|
|
49
|
+
await workflow.do('Bootstrap Node types', 'pikkuNodeTypes', null);
|
|
50
|
+
await workflow.do('Bootstrap Secret definition types', 'pikkuSecretDefinitionTypes', null);
|
|
51
|
+
await workflow.do('Bootstrap CLI types', 'pikkuCLITypes', {
|
|
52
|
+
bootstrap: true,
|
|
53
|
+
});
|
|
54
|
+
await workflow.do('Bootstrap re-inspect', async () => getInspectorState(true, true));
|
|
40
55
|
}
|
|
41
56
|
if (!existsSync(config.typesDeclarationFile)) {
|
|
42
57
|
typesDeclarationFileExists = false;
|
|
@@ -59,9 +74,13 @@ export const allWorkflow = pikkuWorkflowComplexFunc({
|
|
|
59
74
|
workflow.do('AI agent types', 'pikkuAIAgentTypes', null),
|
|
60
75
|
];
|
|
61
76
|
if (!config.addon) {
|
|
62
|
-
typeGenerators.push(workflow.do('HTTP types', 'pikkuHTTPTypes', null), workflow.do('Channel types', 'pikkuChannelTypes', null), workflow.do('Scheduler types', 'pikkuSchedulerTypes', null), workflow.do('Queue types', 'pikkuQueueTypes', null), workflow.do('MCP types', 'pikkuMCPTypes', null)
|
|
77
|
+
typeGenerators.push(workflow.do('HTTP types', 'pikkuHTTPTypes', null), workflow.do('Channel types', 'pikkuChannelTypes', null), workflow.do('Scheduler types', 'pikkuSchedulerTypes', null), workflow.do('Queue types', 'pikkuQueueTypes', null), workflow.do('MCP types', 'pikkuMCPTypes', null));
|
|
63
78
|
}
|
|
64
79
|
await Promise.all(typeGenerators);
|
|
80
|
+
await workflow.do('Node types', 'pikkuNodeTypes', null);
|
|
81
|
+
if (!config.addon) {
|
|
82
|
+
await workflow.do('CLI types', 'pikkuCLITypes', null);
|
|
83
|
+
}
|
|
65
84
|
const [middleware, permissions] = await Promise.all([
|
|
66
85
|
workflow.do('Middleware', 'pikkuMiddleware', null),
|
|
67
86
|
workflow.do('Permissions', 'pikkuPermissions', null),
|
|
@@ -91,7 +110,7 @@ export const allWorkflow = pikkuWorkflowComplexFunc({
|
|
|
91
110
|
await Promise.all([
|
|
92
111
|
workflow.do('Public RPC', 'pikkuPublicRPC', null),
|
|
93
112
|
workflow.do('Console functions', 'pikkuConsoleFunctions', null),
|
|
94
|
-
workflow.do('
|
|
113
|
+
workflow.do('Events scaffold', 'pikkuEventsScaffold', null),
|
|
95
114
|
workflow.do('Secret definition types', 'pikkuSecretDefinitionTypes', null),
|
|
96
115
|
workflow.do('Secrets', 'pikkuSecrets', null),
|
|
97
116
|
workflow.do('Credentials', 'pikkuCredentials', null),
|
|
@@ -138,6 +157,8 @@ export const allWorkflow = pikkuWorkflowComplexFunc({
|
|
|
138
157
|
workflow.do('Fetch', 'pikkuFetch', null),
|
|
139
158
|
workflow.do('RPC client', 'pikkuRPCClient', null),
|
|
140
159
|
workflow.do('React query', 'pikkuReactQuery', null),
|
|
160
|
+
workflow.do('TanStack Start', 'pikkuTanStackStart', null),
|
|
161
|
+
workflow.do('Realtime client', 'pikkuRealtime', null),
|
|
141
162
|
]);
|
|
142
163
|
allImports.push(config.httpWiringMetaFile, config.httpWiringsFile);
|
|
143
164
|
}
|
|
@@ -186,8 +207,20 @@ export const allWorkflow = pikkuWorkflowComplexFunc({
|
|
|
186
207
|
allImports.push(config.mcpWiringsMetaFile, config.mcpWiringsFile);
|
|
187
208
|
}
|
|
188
209
|
if (cli) {
|
|
189
|
-
await workflow.do('CLI entry', 'pikkuCLIEntry', null);
|
|
210
|
+
const cliChannelGenerated = await workflow.do('CLI entry', 'pikkuCLIEntry', null);
|
|
190
211
|
allImports.push(config.cliWiringMetaFile, config.cliWiringsFile);
|
|
212
|
+
if (cliChannelGenerated) {
|
|
213
|
+
await workflow.do('Re-inspect after CLI channel', async () => getInspectorState(true));
|
|
214
|
+
const cliChannels = await workflow.do('Channels after CLI', 'pikkuCommandChannels', null);
|
|
215
|
+
await workflow.do('Functions after CLI', 'pikkuFunctions', null);
|
|
216
|
+
await workflow.do('Schemas after CLI', 'pikkuSchemas', null);
|
|
217
|
+
if (cliChannels) {
|
|
218
|
+
await workflow.do('Channels map after CLI', 'pikkuChannelsMap', null);
|
|
219
|
+
if (!channels) {
|
|
220
|
+
allImports.push(config.channelsWiringMetaFile, config.channelsWiringFile);
|
|
221
|
+
}
|
|
222
|
+
}
|
|
223
|
+
}
|
|
191
224
|
}
|
|
192
225
|
}
|
|
193
226
|
await workflow.do('Nodes meta', 'pikkuNodesMeta', null);
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
export declare const remoteRPCHandler: import("../../.pikku/pikku-types.gen.js").PikkuFunctionConfig<{
|
|
2
2
|
rpcName: string;
|
|
3
3
|
data?: unknown;
|
|
4
|
-
}, unknown, "
|
|
4
|
+
}, unknown, "rpc" | "session", import("../../.pikku/pikku-types.gen.js").PikkuFunctionSessionless<{
|
|
5
5
|
rpcName: string;
|
|
6
6
|
data?: unknown;
|
|
7
|
-
}, unknown, "
|
|
7
|
+
}, unknown, "rpc" | "session", import("../../types/application-types.js").Services> | import("../../.pikku/pikku-types.gen.js").PikkuFunction<{
|
|
8
8
|
rpcName: string;
|
|
9
9
|
data?: unknown;
|
|
10
|
-
}, unknown, "
|
|
10
|
+
}, unknown, "rpc" | "session", import("../../types/application-types.js").Services>, undefined, undefined>;
|
|
@@ -1,18 +1,23 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* This file was generated by @pikku/cli@0.12.
|
|
2
|
+
* This file was generated by @pikku/cli@0.12.23
|
|
3
3
|
*/
|
|
4
4
|
/**
|
|
5
5
|
* Auto-generated remote internal RPC queue worker and HTTP endpoint
|
|
6
6
|
* Do not edit manually - regenerate with 'npx pikku'
|
|
7
7
|
*/
|
|
8
|
-
import { pikkuSessionlessFunc, wireHTTP } from '../../.pikku/pikku-types.gen.js';
|
|
8
|
+
import { pikkuSessionlessFunc, wireHTTP, wireQueueWorker } from '../../.pikku/pikku-types.gen.js';
|
|
9
9
|
import { pikkuRemoteAuthMiddleware } from '@pikku/core/middleware';
|
|
10
10
|
export const remoteRPCHandler = pikkuSessionlessFunc({
|
|
11
|
+
tags: ['pikku'],
|
|
11
12
|
func: async (_services, { rpcName, data }, { rpc }) => {
|
|
12
13
|
return await rpc.invoke(rpcName, data);
|
|
13
14
|
},
|
|
14
15
|
remote: true,
|
|
15
16
|
});
|
|
17
|
+
wireQueueWorker({
|
|
18
|
+
name: 'pikku-remote-internal-rpc',
|
|
19
|
+
func: remoteRPCHandler,
|
|
20
|
+
});
|
|
16
21
|
wireHTTP({
|
|
17
22
|
route: '/remote/rpc/:rpcName',
|
|
18
23
|
method: 'post',
|
|
@@ -1,18 +1,14 @@
|
|
|
1
1
|
import chalk from 'chalk';
|
|
2
2
|
import { LogLevel } from '@pikku/core/services';
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
| ____/ | |_/ ) |_/ ) | | |
|
|
8
|
-
| | | | _ (| _ (| _ (| |_| |
|
|
9
|
-
|_| |_|_| _)_| _)____/
|
|
10
|
-
`;
|
|
3
|
+
// Compact one-line wordmark — the old multi-line ASCII art got cropped in
|
|
4
|
+
// short/narrow AI-agent panes. Coloured directly (not via the blue `info`
|
|
5
|
+
// path) so the cyan/bold render correctly.
|
|
6
|
+
const logo = `${chalk.cyan('◇◆')} ${chalk.bold('pikku')} ${chalk.cyan.bold('::')}`;
|
|
11
7
|
const BASE_ERROR_URL = 'https://pikku.dev/docs/pikku-cli/errors';
|
|
12
8
|
const ANSI_ESCAPE_REGEX = /\x1B\[[0-?]*[ -/]*[@-~]/g;
|
|
13
9
|
export class CLILogger {
|
|
14
10
|
silent;
|
|
15
|
-
level = LogLevel.
|
|
11
|
+
level = LogLevel.info; // default to info level
|
|
16
12
|
criticalErrors = [];
|
|
17
13
|
outputMode = 'text';
|
|
18
14
|
jsonFlushHookRegistered = false;
|
|
@@ -54,7 +50,10 @@ export class CLILogger {
|
|
|
54
50
|
return str;
|
|
55
51
|
}
|
|
56
52
|
writeJSONLine(payload) {
|
|
57
|
-
|
|
53
|
+
// Logs go to stderr so stdout is reserved for command data output.
|
|
54
|
+
// This lets consumers pipe `pikku <cmd> --json | jq` or
|
|
55
|
+
// `pikku meta context --json | pikku plan ingest -` without log noise.
|
|
56
|
+
process.stderr.write(`${JSON.stringify(payload)}\n`);
|
|
58
57
|
}
|
|
59
58
|
ensureJSONFlushHook() {
|
|
60
59
|
if (this.jsonFlushHookRegistered)
|
|
@@ -149,17 +148,8 @@ export class CLILogger {
|
|
|
149
148
|
return this.criticalErrors.length > 0;
|
|
150
149
|
}
|
|
151
150
|
logLogo() {
|
|
152
|
-
this.
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
// const packageJson = JSON.parse(
|
|
156
|
-
// readFileSync(`${dirname(__filename)}/../../../package.json`, 'utf-8')
|
|
157
|
-
// )
|
|
158
|
-
// this.primary(`⚙️ Welcome to the Pikku CLI (v${packageJson.version})\n`)
|
|
159
|
-
}
|
|
160
|
-
primary(message) {
|
|
161
|
-
if (!this.silent) {
|
|
162
|
-
this.emit('info', message);
|
|
163
|
-
}
|
|
151
|
+
if (this.silent || this.outputMode === 'json')
|
|
152
|
+
return;
|
|
153
|
+
console.log(`\n${logo}\n`);
|
|
164
154
|
}
|
|
165
155
|
}
|