@pikku/cli 0.12.20 → 0.12.22
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 +792 -8
- 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 +44 -70
- package/dist/.pikku/function/pikku-function-types.gen.js +33 -40
- package/dist/.pikku/function/pikku-functions-meta.gen.js +1 -1
- package/dist/.pikku/function/pikku-functions-meta.gen.json +1439 -316
- package/dist/.pikku/function/pikku-functions.gen.js +21 -9
- 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.gen.d.ts +1 -1
- package/dist/.pikku/http/pikku-http-wirings.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.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 -10
- 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 +157 -11
- 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/PikkuCommandChannelsOutput.schema.json +1 -0
- package/dist/.pikku/schemas/schemas/PikkuCommandHTTPOutput.schema.json +1 -0
- package/dist/.pikku/schemas/schemas/PikkuCommandQueueOutput.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/schemas/schemas/WorkflowRunStatus.schema.json +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 +237 -629
- 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 +286 -10
- package/dist/src/deploy/analyzer/analyzer.d.ts +16 -1
- package/dist/src/deploy/analyzer/analyzer.js +83 -43
- package/dist/src/deploy/analyzer/manifest.d.ts +10 -0
- package/dist/src/deploy/build-pipeline.d.ts +2 -0
- package/dist/src/deploy/build-pipeline.js +123 -19
- package/dist/src/deploy/bundler/bundler.d.ts +3 -1
- package/dist/src/deploy/bundler/bundler.js +40 -9
- package/dist/src/deploy/bundler/dep-extractor.d.ts +5 -2
- package/dist/src/deploy/bundler/dep-extractor.js +103 -23
- package/dist/src/deploy/bundler/types.d.ts +5 -1
- package/dist/src/deploy/codegen/per-unit-codegen.d.ts +11 -1
- package/dist/src/deploy/codegen/per-unit-codegen.js +49 -6
- package/dist/src/deploy/plan/planner.js +25 -3
- package/dist/src/deploy/plan/provider.d.ts +2 -0
- 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-apply.js +6 -4
- package/dist/src/functions/commands/deploy-info.d.ts +1 -1
- package/dist/src/functions/commands/deploy-plan.d.ts +3 -3
- package/dist/src/functions/commands/deploy-plan.js +7 -1
- 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 +7 -1
- 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/versions-update.js +4 -2
- 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/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-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-console-functions.js +5 -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 +105 -80
- 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-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/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-map.js +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-command-queue.js +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-public-rpc.js +5 -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-remote-rpc.js +5 -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/rpc/serialize-typed-rpc-map.js +16 -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/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 +56 -2
- package/dist/src/functions/workflows/all.workflow.js +45 -12
- package/dist/src/scaffold/rpc-remote.gen.d.ts +3 -3
- package/dist/src/scaffold/rpc-remote.gen.js +7 -2
- package/dist/src/scaffold/workflow-routes.gen.d.ts +18 -18
- package/dist/src/scaffold/workflow-routes.gen.js +33 -1
- package/dist/src/services/cli-logger.service.d.ts +22 -3
- package/dist/src/services/cli-logger.service.js +107 -41
- package/dist/src/services.js +32 -67
- 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/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 +208 -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 +205 -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/cli/pikku-cli-client.gen.d.ts +0 -10
- package/dist/.pikku/cli/pikku-cli-client.gen.js +0 -44
- /package/dist/.pikku/schemas/schemas/{PikkuChannelsOutput.schema.json → PikkuCLIEntryOutput.schema.json} +0 -0
|
@@ -1,72 +1,21 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { existsSync } from 'fs';
|
|
2
2
|
import { join, resolve } from 'path';
|
|
3
|
-
import { Readable } from 'stream';
|
|
4
3
|
import { pikkuSessionlessFunc } from '#pikku';
|
|
5
4
|
import chokidar from 'chokidar';
|
|
6
5
|
import { pikkuDevReloader } from '@pikku/core/dev';
|
|
7
6
|
import { ConsoleLogger, InMemoryQueueService, InMemoryWorkflowService, InMemoryTriggerService, InMemoryAIRunStateService, } from '@pikku/core/services';
|
|
7
|
+
import { KyselyAIStorageService, KyselyAIRunStateService, KyselyAgentRunService, } from '@pikku/kysely';
|
|
8
8
|
import { stopSingletonServices } from '@pikku/core';
|
|
9
9
|
import { pikkuState } from '@pikku/core/internal';
|
|
10
|
-
import {
|
|
11
|
-
import {
|
|
10
|
+
import { LocalMetaService } from '@pikku/core/services/local-meta';
|
|
11
|
+
import { LocalEventHubService } from '@pikku/core/channel/local';
|
|
12
|
+
import { LocalContent, } from '@pikku/core/services/local-content';
|
|
12
13
|
import { pikkuWebsocketHandler } from '@pikku/ws';
|
|
14
|
+
import { PikkuNodeHTTPServer } from '@pikku/node-http-server';
|
|
13
15
|
import { WebSocketServer } from 'ws';
|
|
14
16
|
import { InMemorySchedulerService } from '@pikku/schedule';
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
const method = req.method ? req.method.toUpperCase() : 'GET';
|
|
18
|
-
const headers = new Headers();
|
|
19
|
-
for (const [key, value] of Object.entries(req.headers)) {
|
|
20
|
-
if (value) {
|
|
21
|
-
headers.set(key, Array.isArray(value) ? value.join(', ') : value);
|
|
22
|
-
}
|
|
23
|
-
}
|
|
24
|
-
let body = null;
|
|
25
|
-
if (method !== 'GET' && method !== 'HEAD') {
|
|
26
|
-
body = Readable.toWeb(req);
|
|
27
|
-
}
|
|
28
|
-
return new Request(url.toString(), {
|
|
29
|
-
method,
|
|
30
|
-
headers,
|
|
31
|
-
body,
|
|
32
|
-
// @ts-ignore - duplex is needed for streaming body in Node.js
|
|
33
|
-
duplex: 'half',
|
|
34
|
-
});
|
|
35
|
-
}
|
|
36
|
-
async function writeResponse(nodeRes, webResponse) {
|
|
37
|
-
const headers = {};
|
|
38
|
-
webResponse.headers.forEach((value, name) => {
|
|
39
|
-
const lower = name.toLowerCase();
|
|
40
|
-
if (lower === 'set-cookie') {
|
|
41
|
-
const existing = headers[lower];
|
|
42
|
-
if (Array.isArray(existing)) {
|
|
43
|
-
existing.push(value);
|
|
44
|
-
}
|
|
45
|
-
else {
|
|
46
|
-
headers[lower] = [value];
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
else {
|
|
50
|
-
headers[lower] = value;
|
|
51
|
-
}
|
|
52
|
-
});
|
|
53
|
-
nodeRes.writeHead(webResponse.status, headers);
|
|
54
|
-
if (webResponse.body) {
|
|
55
|
-
const reader = webResponse.body.getReader();
|
|
56
|
-
try {
|
|
57
|
-
while (true) {
|
|
58
|
-
const { done, value } = await reader.read();
|
|
59
|
-
if (done)
|
|
60
|
-
break;
|
|
61
|
-
nodeRes.write(value);
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
finally {
|
|
65
|
-
reader.releaseLock();
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
nodeRes.end();
|
|
69
|
-
}
|
|
17
|
+
import { resolveLocalDb, createKysely } from '../db/local-db.js';
|
|
18
|
+
import { loadUserBootstrap, loadUserModule } from './load-user-project.js';
|
|
70
19
|
export const dev = pikkuSessionlessFunc({
|
|
71
20
|
remote: true,
|
|
72
21
|
func: async ({ logger, config, getInspectorState }, { port, watch, hmr }, { rpc }) => {
|
|
@@ -74,50 +23,156 @@ export const dev = pikkuSessionlessFunc({
|
|
|
74
23
|
const hostname = 'localhost';
|
|
75
24
|
const enableWatch = watch !== false;
|
|
76
25
|
const enableHmr = hmr !== false;
|
|
77
|
-
|
|
26
|
+
const commandSingletonServices = pikkuState(null, 'package', 'singletonServices');
|
|
27
|
+
const commandFunctionMeta = {
|
|
28
|
+
...pikkuState(null, 'function', 'meta'),
|
|
29
|
+
};
|
|
30
|
+
const commandFunctions = new Map(pikkuState(null, 'function', 'functions'));
|
|
31
|
+
const commandRPCMeta = {
|
|
32
|
+
...pikkuState(null, 'rpc', 'meta'),
|
|
33
|
+
};
|
|
34
|
+
const commandWorkflowsMeta = {
|
|
35
|
+
...pikkuState(null, 'workflows', 'meta'),
|
|
36
|
+
};
|
|
37
|
+
const commandWorkflowRegistrations = new Map(pikkuState(null, 'workflows', 'registrations'));
|
|
38
|
+
const workflowService = new InMemoryWorkflowService();
|
|
39
|
+
const pikkuDir = resolve(config.rootDir, config.outDir);
|
|
40
|
+
const bootstrapExists = existsSync(resolve(pikkuDir, 'pikku-bootstrap.gen.ts')) ||
|
|
41
|
+
existsSync(resolve(pikkuDir, 'pikku-bootstrap.gen.js'));
|
|
42
|
+
const runAll = async () => {
|
|
43
|
+
await workflowService.runToCompletion('allWorkflow', {}, rpc);
|
|
44
|
+
};
|
|
45
|
+
const runAllWithCommandState = async () => {
|
|
46
|
+
const previousSingletonServices = pikkuState(null, 'package', 'singletonServices');
|
|
47
|
+
const previousFunctions = pikkuState(null, 'function', 'functions');
|
|
48
|
+
const previousFunctionMeta = pikkuState(null, 'function', 'meta');
|
|
49
|
+
const previousRPCMeta = pikkuState(null, 'rpc', 'meta');
|
|
50
|
+
const previousWorkflowsMeta = pikkuState(null, 'workflows', 'meta');
|
|
51
|
+
const previousWorkflowRegistrations = pikkuState(null, 'workflows', 'registrations');
|
|
52
|
+
pikkuState(null, 'package', 'singletonServices', commandSingletonServices);
|
|
53
|
+
pikkuState(null, 'function', 'functions', new Map([...previousFunctions.entries(), ...commandFunctions.entries()]));
|
|
54
|
+
pikkuState(null, 'function', 'meta', {
|
|
55
|
+
...previousFunctionMeta,
|
|
56
|
+
...commandFunctionMeta,
|
|
57
|
+
});
|
|
58
|
+
pikkuState(null, 'rpc', 'meta', {
|
|
59
|
+
...previousRPCMeta,
|
|
60
|
+
...commandRPCMeta,
|
|
61
|
+
});
|
|
62
|
+
pikkuState(null, 'workflows', 'meta', {
|
|
63
|
+
...previousWorkflowsMeta,
|
|
64
|
+
...commandWorkflowsMeta,
|
|
65
|
+
});
|
|
66
|
+
pikkuState(null, 'workflows', 'registrations', new Map([
|
|
67
|
+
...previousWorkflowRegistrations.entries(),
|
|
68
|
+
...commandWorkflowRegistrations.entries(),
|
|
69
|
+
]));
|
|
70
|
+
try {
|
|
71
|
+
await runAll();
|
|
72
|
+
}
|
|
73
|
+
finally {
|
|
74
|
+
pikkuState(null, 'package', 'singletonServices', previousSingletonServices);
|
|
75
|
+
pikkuState(null, 'function', 'functions', previousFunctions);
|
|
76
|
+
pikkuState(null, 'function', 'meta', previousFunctionMeta);
|
|
77
|
+
pikkuState(null, 'rpc', 'meta', previousRPCMeta);
|
|
78
|
+
pikkuState(null, 'workflows', 'meta', previousWorkflowsMeta);
|
|
79
|
+
pikkuState(null, 'workflows', 'registrations', previousWorkflowRegistrations);
|
|
80
|
+
}
|
|
81
|
+
};
|
|
82
|
+
if (bootstrapExists) {
|
|
83
|
+
await loadUserBootstrap(pikkuDir);
|
|
84
|
+
}
|
|
85
|
+
await runAllWithCommandState();
|
|
78
86
|
const inspectorState = await getInspectorState(true);
|
|
79
87
|
const { pikkuConfigFactory, singletonServicesFactory } = inspectorState.filesAndMethods;
|
|
80
88
|
if (!pikkuConfigFactory || !singletonServicesFactory) {
|
|
81
89
|
logger.error('createConfig and createSingletonServices must be defined in your project');
|
|
82
90
|
return;
|
|
83
91
|
}
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
const
|
|
92
|
+
if (!bootstrapExists) {
|
|
93
|
+
await loadUserBootstrap(pikkuDir);
|
|
94
|
+
}
|
|
95
|
+
workflowService.rewireQueueWorkers();
|
|
96
|
+
const configModule = await loadUserModule(pikkuConfigFactory.file);
|
|
97
|
+
const servicesModule = await loadUserModule(singletonServicesFactory.file);
|
|
89
98
|
const userCreateConfig = configModule[pikkuConfigFactory.variable];
|
|
90
99
|
const userCreateSingletonServices = servicesModule[singletonServicesFactory.variable];
|
|
91
100
|
const userConfig = await userCreateConfig();
|
|
101
|
+
const resolvedLocalDb = resolveLocalDb(userConfig.dev?.db, config.rootDir, config.outDir, config.runtimeDir);
|
|
102
|
+
const kysely = resolvedLocalDb
|
|
103
|
+
? await createKysely(resolvedLocalDb)
|
|
104
|
+
: undefined;
|
|
105
|
+
const resolvedRuntimeDir = config.runtimeDir ?? join(config.rootDir, '.pikku-runtime');
|
|
106
|
+
const localContentConfig = userConfig.dev
|
|
107
|
+
?.content
|
|
108
|
+
? {
|
|
109
|
+
localFileUploadPath: join(resolvedRuntimeDir, 'content'),
|
|
110
|
+
uploadUrlPrefix: '/upload',
|
|
111
|
+
assetUrlPrefix: '/assets',
|
|
112
|
+
server: `http://${hostname}:${resolvedPort}`,
|
|
113
|
+
...(userConfig.dev.content !== true ? userConfig.dev.content : {}),
|
|
114
|
+
}
|
|
115
|
+
: undefined;
|
|
116
|
+
const localContent = localContentConfig
|
|
117
|
+
? new LocalContent(localContentConfig, logger)
|
|
118
|
+
: undefined;
|
|
92
119
|
const schedulerService = new InMemorySchedulerService();
|
|
120
|
+
const aiStorage = kysely
|
|
121
|
+
? new KyselyAIStorageService(kysely)
|
|
122
|
+
: undefined;
|
|
123
|
+
const aiRunState = kysely
|
|
124
|
+
? new KyselyAIRunStateService(kysely)
|
|
125
|
+
: new InMemoryAIRunStateService();
|
|
126
|
+
const agentRunService = kysely
|
|
127
|
+
? new KyselyAgentRunService(kysely)
|
|
128
|
+
: undefined;
|
|
129
|
+
if (aiStorage)
|
|
130
|
+
await aiStorage.init();
|
|
131
|
+
if ('init' in aiRunState && typeof aiRunState.init === 'function') {
|
|
132
|
+
await aiRunState.init();
|
|
133
|
+
}
|
|
134
|
+
// InMemoryWorkflowService implements both the workflowService and
|
|
135
|
+
// workflowRunService surfaces (listRuns/getRun live on it). Expose the
|
|
136
|
+
// single instance under both names so addons like @pikku/addon-console
|
|
137
|
+
// can read runs in dev without projects having to wire their own backing
|
|
138
|
+
// store.
|
|
93
139
|
const inMemoryServices = {
|
|
94
140
|
logger: new ConsoleLogger(),
|
|
141
|
+
metaService: new LocalMetaService(pikkuDir),
|
|
95
142
|
schedulerService,
|
|
96
143
|
queueService: new InMemoryQueueService(),
|
|
97
|
-
workflowService
|
|
144
|
+
workflowService,
|
|
145
|
+
workflowRunService: workflowService,
|
|
98
146
|
triggerService: new InMemoryTriggerService(),
|
|
99
|
-
|
|
147
|
+
aiStorage,
|
|
148
|
+
aiRunState,
|
|
149
|
+
agentRunService,
|
|
150
|
+
eventHub: new LocalEventHubService(),
|
|
151
|
+
...(kysely ? { kysely } : {}),
|
|
152
|
+
...(localContent ? { content: localContent } : {}),
|
|
100
153
|
};
|
|
101
|
-
const singletonServices = await userCreateSingletonServices(userConfig,
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
await fetchData(request, pikkuResponse, { respondWith404: true });
|
|
109
|
-
const response = pikkuResponse.toResponse();
|
|
110
|
-
await writeResponse(res, response);
|
|
154
|
+
const singletonServices = await userCreateSingletonServices(userConfig, {
|
|
155
|
+
...inMemoryServices,
|
|
156
|
+
getInspectorState,
|
|
157
|
+
});
|
|
158
|
+
pikkuState(null, 'package', 'singletonServices', {
|
|
159
|
+
...singletonServices,
|
|
160
|
+
getInspectorState,
|
|
111
161
|
});
|
|
112
162
|
const wss = new WebSocketServer({ noServer: true });
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
163
|
+
const pikkuServer = new PikkuNodeHTTPServer({
|
|
164
|
+
...userConfig,
|
|
165
|
+
hostname,
|
|
166
|
+
port: resolvedPort,
|
|
167
|
+
content: localContentConfig,
|
|
168
|
+
}, logger, {
|
|
169
|
+
configureServer: (httpServer) => {
|
|
170
|
+
pikkuWebsocketHandler({ server: httpServer, wss, logger });
|
|
171
|
+
},
|
|
120
172
|
});
|
|
173
|
+
await pikkuServer.init();
|
|
174
|
+
await schedulerService.start();
|
|
175
|
+
await pikkuServer.start();
|
|
121
176
|
let configWatcher;
|
|
122
177
|
let watcher;
|
|
123
178
|
process.once('SIGINT', async () => {
|
|
@@ -127,7 +182,7 @@ export const dev = pikkuSessionlessFunc({
|
|
|
127
182
|
await configWatcher?.close();
|
|
128
183
|
await watcher?.close();
|
|
129
184
|
await new Promise((resolve, reject) => wss.close((err) => (err ? reject(err) : resolve())));
|
|
130
|
-
await
|
|
185
|
+
await pikkuServer.stop();
|
|
131
186
|
}
|
|
132
187
|
finally {
|
|
133
188
|
process.exit(0);
|
|
@@ -156,7 +211,8 @@ export const dev = pikkuSessionlessFunc({
|
|
|
156
211
|
const handle = async () => {
|
|
157
212
|
try {
|
|
158
213
|
const start = Date.now();
|
|
159
|
-
await
|
|
214
|
+
await runAllWithCommandState();
|
|
215
|
+
workflowService.rewireQueueWorkers();
|
|
160
216
|
logger.info({
|
|
161
217
|
message: `✓ Generated in ${Date.now() - start}ms`,
|
|
162
218
|
type: 'timing',
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
export declare const enableRpc: import("#pikku").PikkuFunctionConfig<void, void, "
|
|
2
|
-
export declare const enableConsole: import("#pikku").PikkuFunctionConfig<void, void, "
|
|
3
|
-
export declare const enableAgent: import("#pikku").PikkuFunctionConfig<void, void, "
|
|
4
|
-
export declare const enableWorkflow: import("#pikku").PikkuFunctionConfig<void, void, "
|
|
1
|
+
export declare const enableRpc: 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>;
|
|
2
|
+
export declare const enableConsole: 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>;
|
|
3
|
+
export declare const enableAgent: 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>;
|
|
4
|
+
export declare const enableWorkflow: 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>;
|
|
5
|
+
export declare const enableEvents: 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,6 +6,7 @@ const FEATURE_DEFAULTS = {
|
|
|
6
6
|
agent: 'auth',
|
|
7
7
|
console: 'no-auth',
|
|
8
8
|
workflow: 'auth',
|
|
9
|
+
events: 'auth',
|
|
9
10
|
};
|
|
10
11
|
async function enableFeature(feature, logger, config, data) {
|
|
11
12
|
const noAuth = data?.noAuth ?? false;
|
|
@@ -37,3 +38,6 @@ export const enableAgent = pikkuVoidFunc({
|
|
|
37
38
|
export const enableWorkflow = pikkuVoidFunc({
|
|
38
39
|
func: async ({ logger, config }, data) => enableFeature('workflow', logger, config, data),
|
|
39
40
|
});
|
|
41
|
+
export const enableEvents = pikkuVoidFunc({
|
|
42
|
+
func: async ({ logger, config }, data) => enableFeature('events', logger, config, data),
|
|
43
|
+
});
|
|
@@ -2,8 +2,8 @@ type InfoInput = {
|
|
|
2
2
|
limit?: string;
|
|
3
3
|
verbose?: boolean;
|
|
4
4
|
};
|
|
5
|
-
export declare const pikkuInfoFunctions: import("#pikku").PikkuFunctionConfig<InfoInput, void, "
|
|
6
|
-
export declare const pikkuInfoTags: import("#pikku").PikkuFunctionConfig<InfoInput, void, "
|
|
7
|
-
export declare const pikkuInfoMiddleware: import("#pikku").PikkuFunctionConfig<InfoInput, void, "
|
|
8
|
-
export declare const pikkuInfoPermissions: import("#pikku").PikkuFunctionConfig<InfoInput, void, "
|
|
5
|
+
export declare const pikkuInfoFunctions: import("#pikku").PikkuFunctionConfig<InfoInput, void, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<InfoInput, void, "rpc" | "session", import("#pikku").Services> | import("#pikku").PikkuFunction<InfoInput, void, "rpc" | "session", import("#pikku").Services>, undefined, undefined>;
|
|
6
|
+
export declare const pikkuInfoTags: import("#pikku").PikkuFunctionConfig<InfoInput, void, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<InfoInput, void, "rpc" | "session", import("#pikku").Services> | import("#pikku").PikkuFunction<InfoInput, void, "rpc" | "session", import("#pikku").Services>, undefined, undefined>;
|
|
7
|
+
export declare const pikkuInfoMiddleware: import("#pikku").PikkuFunctionConfig<InfoInput, void, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<InfoInput, void, "rpc" | "session", import("#pikku").Services> | import("#pikku").PikkuFunction<InfoInput, void, "rpc" | "session", import("#pikku").Services>, undefined, undefined>;
|
|
8
|
+
export declare const pikkuInfoPermissions: import("#pikku").PikkuFunctionConfig<InfoInput, void, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<InfoInput, void, "rpc" | "session", import("#pikku").Services> | import("#pikku").PikkuFunction<InfoInput, void, "rpc" | "session", import("#pikku").Services>, undefined, undefined>;
|
|
9
9
|
export {};
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Load the generated `pikku-bootstrap.gen.{ts,js}` from the user's project,
|
|
3
|
+
* which in turn pulls in all wiring/meta files so they register into
|
|
4
|
+
* `pikkuState`.
|
|
5
|
+
*/
|
|
6
|
+
export declare function loadUserBootstrap(pikkuDir: string): Promise<void>;
|
|
7
|
+
/**
|
|
8
|
+
* Import a user-source TypeScript file (e.g. their config or services
|
|
9
|
+
* factory) so it can be loaded from inside @pikku/cli's compiled JS.
|
|
10
|
+
*/
|
|
11
|
+
export declare function loadUserModule(filePath: string): Promise<Record<string, any>>;
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { existsSync } from 'fs';
|
|
2
|
+
import { join } from 'path';
|
|
3
|
+
import { register } from 'tsx/esm/api';
|
|
4
|
+
let tsxRegistered = false;
|
|
5
|
+
/**
|
|
6
|
+
* Globally register tsx so subsequent `import()` calls go through Node's
|
|
7
|
+
* normal resolver — yielding ONE module graph (and one shared pikkuState),
|
|
8
|
+
* with tsx only stepping in to compile `.ts` and rewrite `.js → .ts`.
|
|
9
|
+
*
|
|
10
|
+
* `tsImport` from tsx/esm/api creates a fresh, isolated loader per call, so
|
|
11
|
+
* modules imported through it have a different identity than modules already
|
|
12
|
+
* loaded in the CLI process — that breaks anything that relies on shared
|
|
13
|
+
* module state (e.g. `pikkuState` registrations from wireHTTPRoutes).
|
|
14
|
+
*/
|
|
15
|
+
function ensureTsxRegistered() {
|
|
16
|
+
if (tsxRegistered)
|
|
17
|
+
return;
|
|
18
|
+
register();
|
|
19
|
+
tsxRegistered = true;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Load the generated `pikku-bootstrap.gen.{ts,js}` from the user's project,
|
|
23
|
+
* which in turn pulls in all wiring/meta files so they register into
|
|
24
|
+
* `pikkuState`.
|
|
25
|
+
*/
|
|
26
|
+
export async function loadUserBootstrap(pikkuDir) {
|
|
27
|
+
ensureTsxRegistered();
|
|
28
|
+
const bootstrapTs = join(pikkuDir, 'pikku-bootstrap.gen.ts');
|
|
29
|
+
const bootstrapJs = join(pikkuDir, 'pikku-bootstrap.gen.js');
|
|
30
|
+
const bootstrapPath = existsSync(bootstrapTs) ? bootstrapTs : bootstrapJs;
|
|
31
|
+
await import(bootstrapPath);
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Import a user-source TypeScript file (e.g. their config or services
|
|
35
|
+
* factory) so it can be loaded from inside @pikku/cli's compiled JS.
|
|
36
|
+
*/
|
|
37
|
+
export async function loadUserModule(filePath) {
|
|
38
|
+
ensureTsxRegistered();
|
|
39
|
+
return import(filePath);
|
|
40
|
+
}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
export declare const pikkuMetaFunctionsList: import("#pikku").PikkuFunctionConfig<{}, void, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<{}, void, "rpc" | "session", import("#pikku").Services> | import("#pikku").PikkuFunction<{}, void, "rpc" | "session", import("#pikku").Services>, undefined, undefined>;
|
|
2
|
+
export declare const pikkuMetaFunctionsGet: import("#pikku").PikkuFunctionConfig<{
|
|
3
|
+
functionId: string;
|
|
4
|
+
}, void, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<{
|
|
5
|
+
functionId: string;
|
|
6
|
+
}, void, "rpc" | "session", import("#pikku").Services> | import("#pikku").PikkuFunction<{
|
|
7
|
+
functionId: string;
|
|
8
|
+
}, void, "rpc" | "session", import("#pikku").Services>, undefined, undefined>;
|
|
9
|
+
export declare const pikkuMetaSchemasList: import("#pikku").PikkuFunctionConfig<{}, void, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<{}, void, "rpc" | "session", import("#pikku").Services> | import("#pikku").PikkuFunction<{}, void, "rpc" | "session", import("#pikku").Services>, undefined, undefined>;
|
|
10
|
+
export declare const pikkuMetaSchemasGet: import("#pikku").PikkuFunctionConfig<{
|
|
11
|
+
schemaName: string;
|
|
12
|
+
}, void, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<{
|
|
13
|
+
schemaName: string;
|
|
14
|
+
}, void, "rpc" | "session", import("#pikku").Services> | import("#pikku").PikkuFunction<{
|
|
15
|
+
schemaName: string;
|
|
16
|
+
}, void, "rpc" | "session", import("#pikku").Services>, undefined, undefined>;
|
|
17
|
+
export declare const pikkuMetaWorkflowsList: import("#pikku").PikkuFunctionConfig<{}, void, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<{}, void, "rpc" | "session", import("#pikku").Services> | import("#pikku").PikkuFunction<{}, void, "rpc" | "session", import("#pikku").Services>, undefined, undefined>;
|
|
18
|
+
export declare const pikkuMetaWorkflowsGet: import("#pikku").PikkuFunctionConfig<{
|
|
19
|
+
workflowId: string;
|
|
20
|
+
}, void, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<{
|
|
21
|
+
workflowId: string;
|
|
22
|
+
}, void, "rpc" | "session", import("#pikku").Services> | import("#pikku").PikkuFunction<{
|
|
23
|
+
workflowId: string;
|
|
24
|
+
}, void, "rpc" | "session", import("#pikku").Services>, undefined, undefined>;
|
|
25
|
+
export declare const pikkuMetaMiddlewareList: import("#pikku").PikkuFunctionConfig<{}, void, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<{}, void, "rpc" | "session", import("#pikku").Services> | import("#pikku").PikkuFunction<{}, void, "rpc" | "session", import("#pikku").Services>, undefined, undefined>;
|
|
26
|
+
export declare const pikkuMetaMiddlewareGet: import("#pikku").PikkuFunctionConfig<{
|
|
27
|
+
middlewareId: string;
|
|
28
|
+
}, void, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<{
|
|
29
|
+
middlewareId: string;
|
|
30
|
+
}, void, "rpc" | "session", import("#pikku").Services> | import("#pikku").PikkuFunction<{
|
|
31
|
+
middlewareId: string;
|
|
32
|
+
}, void, "rpc" | "session", import("#pikku").Services>, undefined, undefined>;
|
|
33
|
+
export declare const pikkuMetaPermissionsList: import("#pikku").PikkuFunctionConfig<{}, void, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<{}, void, "rpc" | "session", import("#pikku").Services> | import("#pikku").PikkuFunction<{}, void, "rpc" | "session", import("#pikku").Services>, undefined, undefined>;
|
|
34
|
+
export declare const pikkuMetaPermissionsGet: import("#pikku").PikkuFunctionConfig<{
|
|
35
|
+
permissionId: string;
|
|
36
|
+
}, void, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<{
|
|
37
|
+
permissionId: string;
|
|
38
|
+
}, void, "rpc" | "session", import("#pikku").Services> | import("#pikku").PikkuFunction<{
|
|
39
|
+
permissionId: string;
|
|
40
|
+
}, void, "rpc" | "session", import("#pikku").Services>, undefined, undefined>;
|
|
41
|
+
export declare const pikkuMetaWiresList: import("#pikku").PikkuFunctionConfig<{}, void, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<{}, void, "rpc" | "session", import("#pikku").Services> | import("#pikku").PikkuFunction<{}, void, "rpc" | "session", import("#pikku").Services>, undefined, undefined>;
|
|
42
|
+
export declare const pikkuMetaWiresType: import("#pikku").PikkuFunctionConfig<{
|
|
43
|
+
type: string;
|
|
44
|
+
}, void, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<{
|
|
45
|
+
type: string;
|
|
46
|
+
}, void, "rpc" | "session", import("#pikku").Services> | import("#pikku").PikkuFunction<{
|
|
47
|
+
type: string;
|
|
48
|
+
}, void, "rpc" | "session", import("#pikku").Services>, undefined, undefined>;
|
|
49
|
+
export declare const pikkuMetaWiresHttp: import("#pikku").PikkuFunctionConfig<{}, void, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<{}, void, "rpc" | "session", import("#pikku").Services> | import("#pikku").PikkuFunction<{}, void, "rpc" | "session", import("#pikku").Services>, undefined, undefined>;
|
|
50
|
+
export declare const pikkuMetaWiresScheduler: import("#pikku").PikkuFunctionConfig<{}, void, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<{}, void, "rpc" | "session", import("#pikku").Services> | import("#pikku").PikkuFunction<{}, void, "rpc" | "session", import("#pikku").Services>, undefined, undefined>;
|
|
51
|
+
export declare const pikkuMetaWiresQueue: import("#pikku").PikkuFunctionConfig<{}, void, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<{}, void, "rpc" | "session", import("#pikku").Services> | import("#pikku").PikkuFunction<{}, void, "rpc" | "session", import("#pikku").Services>, undefined, undefined>;
|
|
52
|
+
export declare const pikkuMetaWiresChannel: import("#pikku").PikkuFunctionConfig<{}, void, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<{}, void, "rpc" | "session", import("#pikku").Services> | import("#pikku").PikkuFunction<{}, void, "rpc" | "session", import("#pikku").Services>, undefined, undefined>;
|
|
53
|
+
export declare const pikkuMetaWiresTrigger: import("#pikku").PikkuFunctionConfig<{}, void, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<{}, void, "rpc" | "session", import("#pikku").Services> | import("#pikku").PikkuFunction<{}, void, "rpc" | "session", import("#pikku").Services>, undefined, undefined>;
|
|
54
|
+
/**
|
|
55
|
+
* Bulk context endpoint.
|
|
56
|
+
*
|
|
57
|
+
* Single inspection → returns everything a planner needs for first-pass
|
|
58
|
+
* planning: functions, all wires, middleware, permissions, workflows, plus
|
|
59
|
+
* project capabilities (which wire types are in use) and layout (where new
|
|
60
|
+
* files should land). Designed to replace the 6+ list calls in the planner
|
|
61
|
+
* spec — one process spawn, one inspect, ~all the metadata.
|
|
62
|
+
*
|
|
63
|
+
* Targeted `pikku meta * get` calls are still the right tool when the planner
|
|
64
|
+
* wants schema details (input/output JSON schemas) for a specific entry.
|
|
65
|
+
*/
|
|
66
|
+
export declare const pikkuMetaContext: import("#pikku").PikkuFunctionConfig<{}, void, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<{}, void, "rpc" | "session", import("#pikku").Services> | import("#pikku").PikkuFunction<{}, void, "rpc" | "session", import("#pikku").Services>, undefined, undefined>;
|
|
67
|
+
/**
|
|
68
|
+
* Frontend-targeted metadata.
|
|
69
|
+
*
|
|
70
|
+
* Returns only what a UI agent needs to write client code:
|
|
71
|
+
* - RPCs: every exposed function with input/output type names,
|
|
72
|
+
* description, readonly flag, tags.
|
|
73
|
+
* - Workflows: name, description, mode (inline|distributed), input/output
|
|
74
|
+
* types resolved through the workflow's underlying function.
|
|
75
|
+
* - Channels: name, route, description, plus the input/output types of
|
|
76
|
+
* the connect / disconnect / message handlers and any routed messages.
|
|
77
|
+
*
|
|
78
|
+
* Everything else (middleware, permissions, layout, scaffold dirs,
|
|
79
|
+
* non-exposed functions, http wires) is a backend concern and stays in
|
|
80
|
+
* `pikku meta context`.
|
|
81
|
+
*/
|
|
82
|
+
export declare const pikkuMetaClients: import("#pikku").PikkuFunctionConfig<{}, void, "rpc" | "session", import("#pikku").PikkuFunctionSessionless<{}, void, "rpc" | "session", import("#pikku").Services> | import("#pikku").PikkuFunction<{}, void, "rpc" | "session", import("#pikku").Services>, undefined, undefined>;
|