@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
|
@@ -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)
|
|
@@ -68,6 +76,7 @@ export const workflowStatusStream = pikkuSessionlessFunc<
|
|
|
68
76
|
|
|
69
77
|
const terminalStatuses = new Set(['completed', 'failed', 'cancelled'])
|
|
70
78
|
let lastHash = ''
|
|
79
|
+
let initSent = false
|
|
71
80
|
|
|
72
81
|
const poll = async () => {
|
|
73
82
|
const run = await workflowRunService.getRun(runId)
|
|
@@ -78,6 +87,26 @@ export const workflowStatusStream = pikkuSessionlessFunc<
|
|
|
78
87
|
|
|
79
88
|
const steps = await workflowRunService.getRunSteps(runId)
|
|
80
89
|
|
|
90
|
+
if (!initSent && run.deterministic) {
|
|
91
|
+
const statusByStep = new Map(
|
|
92
|
+
steps.map((s: { stepName: string; status: string }) => [
|
|
93
|
+
s.stepName,
|
|
94
|
+
s.status,
|
|
95
|
+
])
|
|
96
|
+
)
|
|
97
|
+
channel.send({
|
|
98
|
+
type: 'init',
|
|
99
|
+
deterministic: true,
|
|
100
|
+
steps: (run.plannedSteps ?? []).map(
|
|
101
|
+
(s: { stepName: string }) => ({
|
|
102
|
+
stepName: s.stepName,
|
|
103
|
+
status: statusByStep.get(s.stepName) ?? 'pending',
|
|
104
|
+
})
|
|
105
|
+
),
|
|
106
|
+
})
|
|
107
|
+
initSent = true
|
|
108
|
+
}
|
|
109
|
+
|
|
81
110
|
const hash = JSON.stringify({
|
|
82
111
|
s: run.status,
|
|
83
112
|
steps: steps.map((s: { stepName: string; status: string }) => [s.stepName, s.status]),
|
|
@@ -126,6 +155,7 @@ export const workflowStatusStreamFull = pikkuSessionlessFunc<
|
|
|
126
155
|
{ workflowName: string; runId: string },
|
|
127
156
|
unknown
|
|
128
157
|
>({
|
|
158
|
+
tags: ['pikku'],
|
|
129
159
|
auth: ${authFlag},
|
|
130
160
|
func: async ({ workflowRunService }, { runId }, { channel }) => {
|
|
131
161
|
assertWorkflowRunService(workflowRunService)
|
|
@@ -133,6 +163,7 @@ export const workflowStatusStreamFull = pikkuSessionlessFunc<
|
|
|
133
163
|
|
|
134
164
|
const terminalStatuses = new Set(['completed', 'failed', 'cancelled'])
|
|
135
165
|
let lastHash = ''
|
|
166
|
+
let initSent = false
|
|
136
167
|
|
|
137
168
|
const poll = async () => {
|
|
138
169
|
const run = await workflowRunService.getRun(runId)
|
|
@@ -143,6 +174,26 @@ export const workflowStatusStreamFull = pikkuSessionlessFunc<
|
|
|
143
174
|
|
|
144
175
|
const steps = await workflowRunService.getRunSteps(runId)
|
|
145
176
|
|
|
177
|
+
if (!initSent && run.deterministic) {
|
|
178
|
+
const statusByStep = new Map(
|
|
179
|
+
steps.map((s: { stepName: string; status: string }) => [
|
|
180
|
+
s.stepName,
|
|
181
|
+
s.status,
|
|
182
|
+
])
|
|
183
|
+
)
|
|
184
|
+
channel.send({
|
|
185
|
+
type: 'init',
|
|
186
|
+
deterministic: true,
|
|
187
|
+
steps: (run.plannedSteps ?? []).map(
|
|
188
|
+
(s: { stepName: string }) => ({
|
|
189
|
+
stepName: s.stepName,
|
|
190
|
+
status: statusByStep.get(s.stepName) ?? 'pending',
|
|
191
|
+
})
|
|
192
|
+
),
|
|
193
|
+
})
|
|
194
|
+
initSent = true
|
|
195
|
+
}
|
|
196
|
+
|
|
146
197
|
const hash = JSON.stringify({
|
|
147
198
|
s: run.status,
|
|
148
199
|
o: run.output,
|
|
@@ -192,7 +243,10 @@ export const graphStarter = pikkuSessionlessFunc<
|
|
|
192
243
|
{ runId: string }
|
|
193
244
|
>({
|
|
194
245
|
auth: ${authFlag},
|
|
195
|
-
|
|
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)
|
|
196
250
|
return await rpc.startWorkflow(workflowName as any, (data ?? {}) as any, { startNode: nodeId })
|
|
197
251
|
},
|
|
198
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),
|
|
@@ -128,7 +147,7 @@ export const allWorkflow = pikkuWorkflowComplexFunc({
|
|
|
128
147
|
}
|
|
129
148
|
if (!config.addon) {
|
|
130
149
|
const [http, scheduler, triggers] = await Promise.all([
|
|
131
|
-
workflow.do('HTTP', '
|
|
150
|
+
workflow.do('HTTP', 'pikkuCommandHTTP', null),
|
|
132
151
|
workflow.do('Scheduler', 'pikkuScheduler', null),
|
|
133
152
|
workflow.do('Trigger', 'pikkuTrigger', null),
|
|
134
153
|
]);
|
|
@@ -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
|
}
|
|
@@ -158,15 +179,15 @@ export const allWorkflow = pikkuWorkflowComplexFunc({
|
|
|
158
179
|
}
|
|
159
180
|
if (!config.addon) {
|
|
160
181
|
const [queues, channels, gateways, mcp, cli] = await Promise.all([
|
|
161
|
-
workflow.do('Queue', '
|
|
162
|
-
workflow.do('Channels', '
|
|
182
|
+
workflow.do('Queue', 'pikkuCommandQueue', null),
|
|
183
|
+
workflow.do('Channels', 'pikkuCommandChannels', null),
|
|
163
184
|
workflow.do('Gateway', 'pikkuGateway', null),
|
|
164
185
|
workflow.do('MCP', 'pikkuMCP', null),
|
|
165
186
|
workflow.do('CLI', 'pikkuCLI', null),
|
|
166
187
|
]);
|
|
167
188
|
if (queues) {
|
|
168
189
|
await Promise.all([
|
|
169
|
-
workflow.do('Queue map', '
|
|
190
|
+
workflow.do('Queue map', 'pikkuCommandQueueMap', null),
|
|
170
191
|
workflow.do('Queue service', 'pikkuQueueService', null),
|
|
171
192
|
]);
|
|
172
193
|
allImports.push(config.queueWorkersWiringMetaFile, config.queueWorkersWiringFile);
|
|
@@ -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.22
|
|
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',
|
|
@@ -4,37 +4,37 @@ export declare const workflowStarter: import("../../.pikku/pikku-types.gen.js").
|
|
|
4
4
|
data?: unknown;
|
|
5
5
|
}, {
|
|
6
6
|
runId: string;
|
|
7
|
-
}, "
|
|
7
|
+
}, "rpc" | "session", import("../../.pikku/pikku-types.gen.js").PikkuFunctionSessionless<{
|
|
8
8
|
workflowName: string;
|
|
9
9
|
data?: unknown;
|
|
10
10
|
}, {
|
|
11
11
|
runId: string;
|
|
12
|
-
}, "
|
|
12
|
+
}, "rpc" | "session", import("../../types/application-types.js").Services> | import("../../.pikku/pikku-types.gen.js").PikkuFunction<{
|
|
13
13
|
workflowName: string;
|
|
14
14
|
data?: unknown;
|
|
15
15
|
}, {
|
|
16
16
|
runId: string;
|
|
17
|
-
}, "
|
|
17
|
+
}, "rpc" | "session", import("../../types/application-types.js").Services>, undefined, undefined>;
|
|
18
18
|
export declare const workflowRunner: import("../../.pikku/pikku-types.gen.js").PikkuFunctionConfig<{
|
|
19
19
|
workflowName: string;
|
|
20
20
|
data?: unknown;
|
|
21
|
-
}, unknown, "
|
|
21
|
+
}, unknown, "rpc" | "session", import("../../.pikku/pikku-types.gen.js").PikkuFunctionSessionless<{
|
|
22
22
|
workflowName: string;
|
|
23
23
|
data?: unknown;
|
|
24
|
-
}, unknown, "
|
|
24
|
+
}, unknown, "rpc" | "session", import("../../types/application-types.js").Services> | import("../../.pikku/pikku-types.gen.js").PikkuFunction<{
|
|
25
25
|
workflowName: string;
|
|
26
26
|
data?: unknown;
|
|
27
|
-
}, unknown, "
|
|
27
|
+
}, unknown, "rpc" | "session", import("../../types/application-types.js").Services>, undefined, undefined>;
|
|
28
28
|
export declare const workflowStatusChecker: import("../../.pikku/pikku-types.gen.js").PikkuFunctionConfig<{
|
|
29
29
|
workflowName: string;
|
|
30
30
|
runId: string;
|
|
31
|
-
}, WorkflowRunStatus, "
|
|
31
|
+
}, WorkflowRunStatus, "rpc" | "session", import("../../.pikku/pikku-types.gen.js").PikkuFunctionSessionless<{
|
|
32
32
|
workflowName: string;
|
|
33
33
|
runId: string;
|
|
34
|
-
}, WorkflowRunStatus, "
|
|
34
|
+
}, WorkflowRunStatus, "rpc" | "session", import("../../types/application-types.js").Services> | import("../../.pikku/pikku-types.gen.js").PikkuFunction<{
|
|
35
35
|
workflowName: string;
|
|
36
36
|
runId: string;
|
|
37
|
-
}, WorkflowRunStatus, "
|
|
37
|
+
}, WorkflowRunStatus, "rpc" | "session", import("../../types/application-types.js").Services>, undefined, undefined>;
|
|
38
38
|
/**
|
|
39
39
|
* Minimal workflow status stream — sends step names and statuses only.
|
|
40
40
|
* Use this for user-facing frontends where internal details should not be exposed.
|
|
@@ -42,13 +42,13 @@ export declare const workflowStatusChecker: import("../../.pikku/pikku-types.gen
|
|
|
42
42
|
export declare const workflowStatusStream: import("../../.pikku/pikku-types.gen.js").PikkuFunctionConfig<{
|
|
43
43
|
workflowName: string;
|
|
44
44
|
runId: string;
|
|
45
|
-
}, unknown, "
|
|
45
|
+
}, unknown, "rpc" | "session", import("../../.pikku/pikku-types.gen.js").PikkuFunctionSessionless<{
|
|
46
46
|
workflowName: string;
|
|
47
47
|
runId: string;
|
|
48
|
-
}, unknown, "
|
|
48
|
+
}, unknown, "rpc" | "session", import("../../types/application-types.js").Services> | import("../../.pikku/pikku-types.gen.js").PikkuFunction<{
|
|
49
49
|
workflowName: string;
|
|
50
50
|
runId: string;
|
|
51
|
-
}, unknown, "
|
|
51
|
+
}, unknown, "rpc" | "session", import("../../types/application-types.js").Services>, undefined, undefined>;
|
|
52
52
|
/**
|
|
53
53
|
* Full workflow status stream — includes output, error, and child run IDs.
|
|
54
54
|
* Use this for admin consoles and internal tooling.
|
|
@@ -56,29 +56,29 @@ export declare const workflowStatusStream: import("../../.pikku/pikku-types.gen.
|
|
|
56
56
|
export declare const workflowStatusStreamFull: import("../../.pikku/pikku-types.gen.js").PikkuFunctionConfig<{
|
|
57
57
|
workflowName: string;
|
|
58
58
|
runId: string;
|
|
59
|
-
}, unknown, "
|
|
59
|
+
}, unknown, "rpc" | "session", import("../../.pikku/pikku-types.gen.js").PikkuFunctionSessionless<{
|
|
60
60
|
workflowName: string;
|
|
61
61
|
runId: string;
|
|
62
|
-
}, unknown, "
|
|
62
|
+
}, unknown, "rpc" | "session", import("../../types/application-types.js").Services> | import("../../.pikku/pikku-types.gen.js").PikkuFunction<{
|
|
63
63
|
workflowName: string;
|
|
64
64
|
runId: string;
|
|
65
|
-
}, unknown, "
|
|
65
|
+
}, unknown, "rpc" | "session", import("../../types/application-types.js").Services>, undefined, undefined>;
|
|
66
66
|
export declare const graphStarter: import("../../.pikku/pikku-types.gen.js").PikkuFunctionConfig<{
|
|
67
67
|
workflowName: string;
|
|
68
68
|
nodeId: string;
|
|
69
69
|
data?: unknown;
|
|
70
70
|
}, {
|
|
71
71
|
runId: string;
|
|
72
|
-
}, "
|
|
72
|
+
}, "rpc" | "session", import("../../.pikku/pikku-types.gen.js").PikkuFunctionSessionless<{
|
|
73
73
|
workflowName: string;
|
|
74
74
|
nodeId: string;
|
|
75
75
|
data?: unknown;
|
|
76
76
|
}, {
|
|
77
77
|
runId: string;
|
|
78
|
-
}, "
|
|
78
|
+
}, "rpc" | "session", import("../../types/application-types.js").Services> | import("../../.pikku/pikku-types.gen.js").PikkuFunction<{
|
|
79
79
|
workflowName: string;
|
|
80
80
|
nodeId: string;
|
|
81
81
|
data?: unknown;
|
|
82
82
|
}, {
|
|
83
83
|
runId: string;
|
|
84
|
-
}, "
|
|
84
|
+
}, "rpc" | "session", import("../../types/application-types.js").Services>, undefined, undefined>;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* This file was generated by @pikku/cli@0.12.
|
|
2
|
+
* This file was generated by @pikku/cli@0.12.21
|
|
3
3
|
*/
|
|
4
4
|
/**
|
|
5
5
|
* Workflow HTTP catch-all routes
|
|
@@ -50,6 +50,7 @@ export const workflowStatusStream = pikkuSessionlessFunc({
|
|
|
50
50
|
return;
|
|
51
51
|
const terminalStatuses = new Set(['completed', 'failed', 'cancelled']);
|
|
52
52
|
let lastHash = '';
|
|
53
|
+
let initSent = false;
|
|
53
54
|
const poll = async () => {
|
|
54
55
|
const run = await workflowRunService.getRun(runId);
|
|
55
56
|
if (!run) {
|
|
@@ -57,6 +58,21 @@ export const workflowStatusStream = pikkuSessionlessFunc({
|
|
|
57
58
|
return false;
|
|
58
59
|
}
|
|
59
60
|
const steps = await workflowRunService.getRunSteps(runId);
|
|
61
|
+
if (!initSent && run.deterministic) {
|
|
62
|
+
const statusByStep = new Map(steps.map((s) => [
|
|
63
|
+
s.stepName,
|
|
64
|
+
s.status,
|
|
65
|
+
]));
|
|
66
|
+
channel.send({
|
|
67
|
+
type: 'init',
|
|
68
|
+
deterministic: true,
|
|
69
|
+
steps: (run.plannedSteps ?? []).map((s) => ({
|
|
70
|
+
stepName: s.stepName,
|
|
71
|
+
status: statusByStep.get(s.stepName) ?? 'pending',
|
|
72
|
+
})),
|
|
73
|
+
});
|
|
74
|
+
initSent = true;
|
|
75
|
+
}
|
|
60
76
|
const hash = JSON.stringify({
|
|
61
77
|
s: run.status,
|
|
62
78
|
steps: steps.map((s) => [s.stepName, s.status]),
|
|
@@ -105,6 +121,7 @@ export const workflowStatusStreamFull = pikkuSessionlessFunc({
|
|
|
105
121
|
return;
|
|
106
122
|
const terminalStatuses = new Set(['completed', 'failed', 'cancelled']);
|
|
107
123
|
let lastHash = '';
|
|
124
|
+
let initSent = false;
|
|
108
125
|
const poll = async () => {
|
|
109
126
|
const run = await workflowRunService.getRun(runId);
|
|
110
127
|
if (!run) {
|
|
@@ -112,6 +129,21 @@ export const workflowStatusStreamFull = pikkuSessionlessFunc({
|
|
|
112
129
|
return false;
|
|
113
130
|
}
|
|
114
131
|
const steps = await workflowRunService.getRunSteps(runId);
|
|
132
|
+
if (!initSent && run.deterministic) {
|
|
133
|
+
const statusByStep = new Map(steps.map((s) => [
|
|
134
|
+
s.stepName,
|
|
135
|
+
s.status,
|
|
136
|
+
]));
|
|
137
|
+
channel.send({
|
|
138
|
+
type: 'init',
|
|
139
|
+
deterministic: true,
|
|
140
|
+
steps: (run.plannedSteps ?? []).map((s) => ({
|
|
141
|
+
stepName: s.stepName,
|
|
142
|
+
status: statusByStep.get(s.stepName) ?? 'pending',
|
|
143
|
+
})),
|
|
144
|
+
});
|
|
145
|
+
initSent = true;
|
|
146
|
+
}
|
|
115
147
|
const hash = JSON.stringify({
|
|
116
148
|
s: run.status,
|
|
117
149
|
o: run.output,
|
|
@@ -1,29 +1,48 @@
|
|
|
1
1
|
import type { Logger } from '@pikku/core/services';
|
|
2
2
|
import { LogLevel } from '@pikku/core/services';
|
|
3
3
|
import type { ErrorCode } from '@pikku/inspector';
|
|
4
|
+
export type CLIOutputMode = 'text' | 'json';
|
|
4
5
|
export declare class CLILogger implements Logger {
|
|
5
6
|
private silent;
|
|
6
7
|
private level;
|
|
7
8
|
private criticalErrors;
|
|
9
|
+
private outputMode;
|
|
10
|
+
private jsonFlushHookRegistered;
|
|
8
11
|
constructor({ logLogo, silent, }: {
|
|
9
12
|
logLogo: boolean;
|
|
10
13
|
silent?: boolean;
|
|
11
14
|
});
|
|
12
15
|
setLevel(level: LogLevel): void;
|
|
13
16
|
setSilent(silent: boolean): void;
|
|
17
|
+
setOutputMode(mode: CLIOutputMode): void;
|
|
18
|
+
getOutputMode(): CLIOutputMode;
|
|
14
19
|
isSilent(): boolean;
|
|
20
|
+
private normalizeMessage;
|
|
21
|
+
private writeJSONLine;
|
|
22
|
+
private ensureJSONFlushHook;
|
|
23
|
+
flushJSONBuffer(): void;
|
|
24
|
+
private emit;
|
|
15
25
|
info(message: string | {
|
|
16
26
|
message: string;
|
|
17
27
|
type?: string;
|
|
28
|
+
data?: Record<string, unknown>;
|
|
29
|
+
}): void;
|
|
30
|
+
error(message: string | Error | {
|
|
31
|
+
message: string;
|
|
32
|
+
type?: string;
|
|
33
|
+
data?: Record<string, unknown>;
|
|
34
|
+
}): void;
|
|
35
|
+
warn(message: string | {
|
|
36
|
+
message: string;
|
|
37
|
+
type?: string;
|
|
38
|
+
data?: Record<string, unknown>;
|
|
18
39
|
}): void;
|
|
19
|
-
error(message: string): void;
|
|
20
|
-
warn(message: string): void;
|
|
21
40
|
debug(message: string | {
|
|
22
41
|
message: string;
|
|
23
42
|
type?: string;
|
|
43
|
+
data?: Record<string, unknown>;
|
|
24
44
|
}): void;
|
|
25
45
|
critical(code: ErrorCode, message: string): void;
|
|
26
46
|
hasCriticalErrors(): boolean;
|
|
27
47
|
logLogo(): void;
|
|
28
|
-
private primary;
|
|
29
48
|
}
|