@pikku/cli 0.11.1 → 0.11.3
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/.pikku/channel/pikku-channel-types.gen.ts +73 -17
- package/.pikku/channel/pikku-channels-map.gen.d.ts +11 -11
- package/.pikku/channel/pikku-channels-meta.gen.json +1 -0
- package/.pikku/channel/pikku-channels-meta.gen.ts +4 -2
- package/.pikku/channel/pikku-channels.gen.ts +1 -1
- package/.pikku/cli/pikku-cli-channel.ts +2 -2
- package/.pikku/cli/pikku-cli-client.gen.ts +1 -3
- package/.pikku/cli/pikku-cli-types.gen.ts +3 -3
- package/.pikku/cli/pikku-cli-wirings-meta.gen.json +147 -0
- package/.pikku/cli/pikku-cli-wirings-meta.gen.ts +4 -157
- package/.pikku/cli/pikku-cli-wirings.gen.ts +3 -3
- package/.pikku/cli/pikku-cli.gen.ts +3 -3
- package/.pikku/forge/pikku-forge-types.gen.ts +83 -0
- package/.pikku/function/pikku-function-types.gen.ts +223 -91
- package/.pikku/function/pikku-functions-meta-verbose.gen.json +1030 -0
- package/.pikku/function/pikku-functions-meta.gen.json +656 -0
- package/.pikku/function/pikku-functions-meta.gen.ts +4 -970
- package/.pikku/http/pikku-http-types.gen.ts +20 -4
- package/.pikku/http/pikku-http-wirings-map.gen.d.ts +11 -11
- package/.pikku/http/pikku-http-wirings-meta.gen.json +9 -0
- package/.pikku/http/pikku-http-wirings-meta.gen.ts +4 -10
- package/.pikku/http/pikku-http-wirings.gen.ts +1 -1
- package/.pikku/mcp/pikku-mcp-types.gen.ts +72 -20
- package/.pikku/mcp/pikku-mcp-wirings-meta.gen.json +5 -0
- package/.pikku/mcp/pikku-mcp-wirings-meta.gen.ts +6 -4
- package/.pikku/mcp/pikku-mcp-wirings.gen.ts +1 -1
- package/.pikku/pikku-bootstrap.gen.ts +7 -12
- package/.pikku/pikku-services.gen.ts +6 -7
- package/.pikku/pikku-types.gen.ts +4 -1
- package/.pikku/pikku-websocket.gen.ts +1 -1
- package/.pikku/queue/pikku-queue-types.gen.ts +2 -2
- package/.pikku/queue/pikku-queue-workers-wirings-map.gen.d.ts +11 -11
- package/.pikku/queue/pikku-queue-workers-wirings-meta.gen.json +1 -0
- package/.pikku/queue/pikku-queue-workers-wirings-meta.gen.ts +5 -7
- package/.pikku/queue/pikku-queue-workers-wirings.gen.ts +1 -1
- package/.pikku/rpc/pikku-remote-rpc-workers.gen.ts +5 -2
- package/.pikku/rpc/pikku-rpc-wirings-map.gen.d.ts +19 -14
- package/.pikku/rpc/pikku-rpc-wirings-map.internal.gen.d.ts +46 -39
- package/.pikku/scheduler/pikku-scheduler-types.gen.ts +2 -2
- package/.pikku/scheduler/pikku-schedulers-wirings-meta.gen.json +1 -0
- package/.pikku/scheduler/pikku-schedulers-wirings-meta.gen.ts +5 -2
- package/.pikku/scheduler/pikku-schedulers-wirings.gen.ts +1 -1
- package/.pikku/schemas/register.gen.ts +31 -23
- package/.pikku/schemas/schemas/PikkuCLIConfig.schema.json +1 -1
- package/.pikku/schemas/schemas/PikkuCLIOutput.schema.json +1 -1
- package/.pikku/schemas/schemas/PikkuChannelsOutput.schema.json +1 -1
- package/.pikku/schemas/schemas/PikkuForgeNodesOutput.schema.json +1 -0
- package/.pikku/schemas/schemas/PikkuFunctionsOutput.schema.json +1 -1
- package/.pikku/schemas/schemas/PikkuHTTPOutput.schema.json +1 -1
- package/.pikku/schemas/schemas/PikkuMCPOutput.schema.json +1 -1
- package/.pikku/schemas/schemas/PikkuMiddlewareOutput.schema.json +1 -1
- package/.pikku/schemas/schemas/PikkuPackageOutput.schema.json +1 -0
- package/.pikku/schemas/schemas/PikkuPermissionsOutput.schema.json +1 -1
- package/.pikku/schemas/schemas/PikkuPublicRPCOutput.schema.json +1 -1
- package/.pikku/schemas/schemas/PikkuQueueOutput.schema.json +1 -1
- package/.pikku/schemas/schemas/PikkuRPCOutput.schema.json +1 -1
- package/.pikku/schemas/schemas/PikkuRemoteRPCOutput.schema.json +1 -1
- package/.pikku/schemas/schemas/PikkuSchedulerOutput.schema.json +1 -1
- package/.pikku/schemas/schemas/PikkuSchemasOutput.schema.json +1 -1
- package/.pikku/schemas/schemas/PikkuWorkflowOutput.schema.json +1 -1
- package/.pikku/services/config.gen.json +104 -0
- package/.pikku/services/getInspectorState.gen.json +10 -0
- package/.pikku/services/jwt.gen.json +13 -0
- package/.pikku/services/logger.gen.json +25 -0
- package/.pikku/services/queueService.gen.json +14 -0
- package/.pikku/services/schedulerService.gen.json +17 -0
- package/.pikku/services/schema.gen.json +14 -0
- package/.pikku/services/secrets.gen.json +13 -0
- package/.pikku/services/variables.gen.json +13 -0
- package/.pikku/services/workflowService.gen.json +31 -0
- package/.pikku/workflow/pikku-workflow-map.gen.d.ts +2 -36
- package/.pikku/workflow/pikku-workflow-types.gen.ts +305 -48
- package/.pikku/workflow/pikku-workflow-wirings-meta.gen.ts +6 -2
- package/.pikku/workflow/pikku-workflow-wirings.gen.ts +1 -2
- package/CHANGELOG.md +44 -1
- package/bin/pikku.ts +6 -32
- package/build.sh +53 -31
- package/cli.schema.json +1 -1
- package/dist/.pikku/channel/pikku-channel-types.gen.d.ts +51 -10
- package/dist/.pikku/channel/pikku-channel-types.gen.js +3 -13
- package/dist/.pikku/channel/pikku-channels-meta.gen.js +3 -2
- package/dist/.pikku/channel/pikku-channels-meta.gen.json +1 -0
- package/dist/.pikku/channel/pikku-channels.gen.d.ts +1 -1
- package/dist/.pikku/channel/pikku-channels.gen.js +1 -1
- package/dist/.pikku/cli/pikku-cli-channel.js +2 -2
- package/dist/.pikku/cli/pikku-cli-client.gen.d.ts +1 -1
- package/dist/.pikku/cli/pikku-cli-client.gen.js +1 -3
- package/dist/.pikku/cli/pikku-cli-types.gen.d.ts +3 -3
- package/dist/.pikku/cli/pikku-cli-types.gen.js +1 -1
- package/dist/.pikku/cli/pikku-cli-wirings-meta.gen.js +3 -157
- package/dist/.pikku/cli/pikku-cli-wirings-meta.gen.json +147 -0
- package/dist/.pikku/cli/pikku-cli-wirings.gen.d.ts +2 -2
- package/dist/.pikku/cli/pikku-cli-wirings.gen.js +2 -2
- package/dist/.pikku/cli/pikku-cli.gen.d.ts +1 -1
- package/dist/.pikku/cli/pikku-cli.gen.js +3 -3
- package/dist/.pikku/forge/pikku-forge-types.gen.d.ts +72 -0
- package/dist/.pikku/forge/pikku-forge-types.gen.js +55 -0
- package/dist/.pikku/function/pikku-function-types.gen.d.ts +141 -99
- package/dist/.pikku/function/pikku-function-types.gen.js +52 -62
- package/dist/.pikku/function/pikku-functions-meta.gen.js +3 -969
- package/dist/.pikku/function/pikku-functions-meta.gen.json +656 -0
- package/dist/.pikku/http/pikku-http-types.gen.d.ts +19 -4
- package/dist/.pikku/http/pikku-http-types.gen.js +1 -1
- package/dist/.pikku/http/pikku-http-wirings-meta.gen.js +3 -10
- package/dist/.pikku/http/pikku-http-wirings-meta.gen.json +9 -0
- 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 +57 -17
- package/dist/.pikku/mcp/pikku-mcp-types.gen.js +7 -31
- package/dist/.pikku/mcp/pikku-mcp-wirings-meta.gen.js +5 -4
- package/dist/.pikku/mcp/pikku-mcp-wirings-meta.gen.json +5 -0
- package/dist/.pikku/mcp/pikku-mcp-wirings.gen.d.ts +1 -1
- package/dist/.pikku/mcp/pikku-mcp-wirings.gen.js +1 -1
- package/dist/.pikku/pikku-bootstrap.gen.d.ts +7 -12
- package/dist/.pikku/pikku-bootstrap.gen.js +7 -12
- package/dist/.pikku/pikku-services.gen.d.ts +5 -7
- package/dist/.pikku/pikku-services.gen.js +3 -5
- package/dist/.pikku/pikku-types.gen.d.ts +2 -1
- package/dist/.pikku/pikku-types.gen.js +3 -1
- package/dist/.pikku/pikku-websocket.gen.d.ts +1 -1
- package/dist/.pikku/pikku-websocket.gen.js +1 -1
- package/dist/.pikku/queue/pikku-queue-types.gen.d.ts +2 -2
- package/dist/.pikku/queue/pikku-queue-types.gen.js +1 -1
- package/dist/.pikku/queue/pikku-queue-workers-wirings-meta.gen.js +3 -7
- package/dist/.pikku/queue/pikku-queue-workers-wirings-meta.gen.json +1 -0
- package/dist/.pikku/queue/pikku-queue-workers-wirings.gen.d.ts +1 -1
- package/dist/.pikku/queue/pikku-queue-workers-wirings.gen.js +1 -1
- package/dist/.pikku/rpc/pikku-remote-rpc-workers.gen.d.ts +9 -9
- package/dist/.pikku/rpc/pikku-remote-rpc-workers.gen.js +5 -2
- package/dist/.pikku/scheduler/pikku-scheduler-types.gen.d.ts +2 -2
- package/dist/.pikku/scheduler/pikku-scheduler-types.gen.js +1 -1
- package/dist/.pikku/scheduler/pikku-schedulers-wirings-meta.gen.js +3 -2
- package/dist/.pikku/scheduler/pikku-schedulers-wirings-meta.gen.json +1 -0
- package/dist/.pikku/scheduler/pikku-schedulers-wirings.gen.d.ts +1 -1
- package/dist/.pikku/scheduler/pikku-schedulers-wirings.gen.js +1 -1
- package/dist/.pikku/schemas/register.gen.js +19 -15
- package/dist/.pikku/schemas/schemas/PikkuCLIConfig.schema.json +1 -1
- package/dist/.pikku/schemas/schemas/PikkuCLIOutput.schema.json +1 -1
- package/dist/.pikku/schemas/schemas/PikkuChannelsOutput.schema.json +1 -1
- package/dist/.pikku/schemas/schemas/PikkuForgeNodesOutput.schema.json +1 -0
- package/dist/.pikku/schemas/schemas/PikkuFunctionsOutput.schema.json +1 -1
- package/dist/.pikku/schemas/schemas/PikkuHTTPOutput.schema.json +1 -1
- package/dist/.pikku/schemas/schemas/PikkuMCPOutput.schema.json +1 -1
- package/dist/.pikku/schemas/schemas/PikkuMiddlewareOutput.schema.json +1 -1
- package/dist/.pikku/schemas/schemas/PikkuPackageOutput.schema.json +1 -0
- package/dist/.pikku/schemas/schemas/PikkuPermissionsOutput.schema.json +1 -1
- package/dist/.pikku/schemas/schemas/PikkuPublicRPCOutput.schema.json +1 -1
- package/dist/.pikku/schemas/schemas/PikkuQueueOutput.schema.json +1 -1
- package/dist/.pikku/schemas/schemas/PikkuRPCOutput.schema.json +1 -1
- package/dist/.pikku/schemas/schemas/PikkuRemoteRPCOutput.schema.json +1 -1
- package/dist/.pikku/schemas/schemas/PikkuSchedulerOutput.schema.json +1 -1
- package/dist/.pikku/schemas/schemas/PikkuSchemasOutput.schema.json +1 -1
- package/dist/.pikku/schemas/schemas/PikkuWorkflowOutput.schema.json +1 -1
- package/dist/.pikku/workflow/pikku-workflow-types.gen.d.ts +213 -39
- package/dist/.pikku/workflow/pikku-workflow-types.gen.js +106 -16
- package/dist/.pikku/workflow/pikku-workflow-wirings-meta.gen.js +3 -2
- package/dist/.pikku/workflow/pikku-workflow-wirings.gen.d.ts +1 -1
- package/dist/.pikku/workflow/pikku-workflow-wirings.gen.js +1 -2
- package/dist/bin/pikku.js +5 -26
- package/dist/src/cli.wiring.js +4 -4
- package/dist/src/functions/commands/all.js +172 -94
- package/dist/src/functions/commands/bootstrap.js +21 -16
- package/dist/src/functions/commands/watch.js +6 -3
- package/dist/src/functions/runtimes/nextjs/pikku-command-nextjs.js +12 -8
- package/dist/src/functions/runtimes/nextjs/serialize-nextjs-backend-wrapper.d.ts +1 -1
- package/dist/src/functions/runtimes/nextjs/serialize-nextjs-backend-wrapper.js +74 -22
- 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 +72 -20
- package/dist/src/functions/wirings/channels/pikku-channels.js +9 -2
- package/dist/src/functions/wirings/channels/pikku-command-channels.js +18 -2
- package/dist/src/functions/wirings/channels/serialize-channel-types.js +72 -16
- package/dist/src/functions/wirings/channels/serialize-typed-channel-map.js +1 -2
- package/dist/src/functions/wirings/cli/pikku-command-cli-entry.js +4 -4
- package/dist/src/functions/wirings/cli/pikku-command-cli-types.js +1 -1
- package/dist/src/functions/wirings/cli/pikku-command-cli.js +17 -3
- package/dist/src/functions/wirings/cli/serialize-channel-cli.js +1 -1
- package/dist/src/functions/wirings/cli/serialize-cli-types.js +2 -2
- package/dist/src/functions/wirings/cli/serialize-local-cli-bootstrap.d.ts +1 -1
- package/dist/src/functions/wirings/cli/serialize-local-cli-bootstrap.js +4 -4
- package/dist/src/functions/wirings/forge/pikku-command-forge-nodes.d.ts +1 -0
- package/dist/src/functions/wirings/forge/pikku-command-forge-nodes.js +90 -0
- package/dist/src/functions/wirings/forge/pikku-command-forge-types.d.ts +1 -0
- package/dist/src/functions/wirings/forge/pikku-command-forge-types.js +26 -0
- package/dist/src/functions/wirings/forge/serialize-forge-types.d.ts +4 -0
- package/dist/src/functions/wirings/forge/serialize-forge-types.js +90 -0
- package/dist/src/functions/wirings/functions/pikku-command-function-types-split.js +4 -4
- package/dist/src/functions/wirings/functions/pikku-command-function-types.js +7 -2
- package/dist/src/functions/wirings/functions/pikku-command-functions.js +35 -10
- package/dist/src/functions/wirings/functions/pikku-command-services.d.ts +1 -1
- package/dist/src/functions/wirings/functions/pikku-command-services.js +24 -24
- package/dist/src/functions/wirings/functions/pikku-function-types.js +2 -2
- package/dist/src/functions/wirings/functions/schemas.d.ts +1 -1
- package/dist/src/functions/wirings/functions/schemas.js +5 -4
- package/dist/src/functions/wirings/functions/serialize-function-imports.d.ts +3 -1
- package/dist/src/functions/wirings/functions/serialize-function-imports.js +7 -3
- package/dist/src/functions/wirings/functions/serialize-function-types.d.ts +1 -1
- package/dist/src/functions/wirings/functions/serialize-function-types.js +224 -91
- package/dist/src/functions/wirings/functions/serialize-pikku-types-hub.d.ts +1 -1
- package/dist/src/functions/wirings/functions/serialize-pikku-types-hub.js +19 -21
- package/dist/src/functions/wirings/http/openapi-spec-generator.js +5 -5
- package/dist/src/functions/wirings/http/pikku-command-http-routes.js +18 -2
- package/dist/src/functions/wirings/http/pikku-command-openapi.js +2 -2
- package/dist/src/functions/wirings/http/pikku-http-routes.js +9 -2
- package/dist/src/functions/wirings/http/serialize-http-types.js +19 -3
- package/dist/src/functions/wirings/http/serialize-typed-http-map.js +33 -8
- package/dist/src/functions/wirings/mcp/pikku-command-mcp.js +29 -6
- package/dist/src/functions/wirings/mcp/serialize-mcp-json.js +3 -2
- package/dist/src/functions/wirings/mcp/serialize-mcp-types.js +71 -19
- package/dist/src/functions/wirings/middleware/pikku-command-middleware.js +29 -2
- package/dist/src/functions/wirings/middleware/serialize-middleware-groups-meta.d.ts +5 -2
- package/dist/src/functions/wirings/middleware/serialize-middleware-groups-meta.js +5 -13
- package/dist/src/functions/wirings/package/pikku-command-package.d.ts +1 -0
- package/dist/src/functions/wirings/package/pikku-command-package.js +58 -0
- package/dist/src/functions/wirings/package/serialize-package.d.ts +5 -0
- package/dist/src/functions/wirings/package/serialize-package.js +32 -0
- package/dist/src/functions/wirings/queue/pikku-command-queue.js +17 -3
- package/dist/src/functions/wirings/queue/pikku-queue.js +9 -11
- package/dist/src/functions/wirings/queue/serialize-queue-map.js +20 -3
- package/dist/src/functions/wirings/queue/serialize-queue-meta.d.ts +2 -1
- package/dist/src/functions/wirings/queue/serialize-queue-meta.js +10 -1
- package/dist/src/functions/wirings/queue/serialize-queue-types.js +1 -1
- package/dist/src/functions/wirings/rpc/pikku-command-rpc-map.js +4 -4
- package/dist/src/functions/wirings/rpc/pikku-command-rpc.js +9 -2
- package/dist/src/functions/wirings/rpc/serialize-public-rpc.js +11 -4
- package/dist/src/functions/wirings/rpc/serialize-remote-rpc.js +4 -1
- package/dist/src/functions/wirings/rpc/serialize-rpc-wrapper.js +3 -3
- package/dist/src/functions/wirings/rpc/serialize-typed-rpc-map.d.ts +1 -1
- package/dist/src/functions/wirings/rpc/serialize-typed-rpc-map.js +54 -8
- package/dist/src/functions/wirings/scheduler/pikku-command-scheduler.js +15 -3
- package/dist/src/functions/wirings/scheduler/serialize-scheduler-meta.d.ts +2 -1
- package/dist/src/functions/wirings/scheduler/serialize-scheduler-meta.js +11 -1
- package/dist/src/functions/wirings/scheduler/serialize-scheduler-types.js +1 -1
- package/dist/src/functions/wirings/services/pikku-command-service-metadata.d.ts +1 -0
- package/dist/src/functions/wirings/services/pikku-command-service-metadata.js +22 -0
- package/dist/src/functions/wirings/workflow/pikku-command-workflow.js +58 -16
- package/dist/src/functions/wirings/workflow/serialize-workflow-map.d.ts +3 -0
- package/dist/src/functions/wirings/workflow/serialize-workflow-map.js +30 -32
- package/dist/src/functions/wirings/workflow/serialize-workflow-meta.d.ts +1 -2
- package/dist/src/functions/wirings/workflow/serialize-workflow-meta.js +43 -8
- package/dist/src/functions/wirings/workflow/serialize-workflow-registration.d.ts +7 -0
- package/dist/src/functions/wirings/workflow/serialize-workflow-registration.js +53 -0
- package/dist/src/functions/wirings/workflow/serialize-workflow-types.d.ts +4 -2
- package/dist/src/functions/wirings/workflow/serialize-workflow-types.js +308 -49
- package/dist/src/functions/wirings/workflow/serialize-workflow-workers.d.ts +1 -1
- package/dist/src/functions/wirings/workflow/serialize-workflow-workers.js +16 -29
- package/dist/src/middleware/log-command-info-and-time.d.ts +2 -2
- package/dist/src/middleware/log-command-info-and-time.js +1 -4
- package/dist/src/services/cli-logger-forwarder.service.js +1 -1
- package/dist/src/services.d.ts +2 -7
- package/dist/src/services.js +18 -13
- package/dist/src/utils/check-required-types.d.ts +2 -2
- package/dist/src/utils/check-required-types.js +2 -3
- package/dist/src/utils/command-summary.d.ts +2 -0
- package/dist/src/utils/command-summary.js +2 -0
- package/dist/src/utils/custom-types-generator.js +13 -15
- package/dist/src/utils/generate-bootstrap-file.js +1 -1
- package/dist/src/utils/pikku-cli-config.js +65 -4
- package/dist/src/utils/pikku-files-and-methods.d.ts +2 -2
- package/dist/src/utils/pikku-files-and-methods.js +4 -4
- package/dist/src/utils/schema-generator.d.ts +4 -3
- package/dist/src/utils/schema-generator.js +135 -15
- package/dist/src/utils/strip-verbose-meta.d.ts +43 -0
- package/dist/src/utils/strip-verbose-meta.js +210 -0
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +11 -9
- package/src/cli.wiring.ts +4 -4
- package/src/functions/commands/all.ts +203 -107
- package/src/functions/commands/bootstrap.ts +23 -16
- package/src/functions/commands/watch.ts +6 -3
- package/src/functions/runtimes/nextjs/pikku-command-nextjs.ts +26 -6
- package/src/functions/runtimes/nextjs/serialize-nextjs-backend-wrapper.ts +75 -22
- package/src/functions/runtimes/nextjs/serialize-nextjs-http-wrapper.ts +72 -19
- package/src/functions/wirings/channels/pikku-channels.ts +27 -3
- package/src/functions/wirings/channels/pikku-command-channels.ts +46 -3
- package/src/functions/wirings/channels/serialize-channel-types.ts +72 -16
- package/src/functions/wirings/channels/serialize-typed-channel-map.ts +3 -2
- package/src/functions/wirings/cli/pikku-command-cli-entry.ts +4 -4
- package/src/functions/wirings/cli/pikku-command-cli-types.ts +1 -1
- package/src/functions/wirings/cli/pikku-command-cli.ts +45 -3
- package/src/functions/wirings/cli/serialize-channel-cli.ts +1 -1
- package/src/functions/wirings/cli/serialize-cli-types.ts +2 -2
- package/src/functions/wirings/cli/serialize-local-cli-bootstrap.ts +5 -5
- package/src/functions/wirings/forge/pikku-command-forge-nodes.ts +135 -0
- package/src/functions/wirings/forge/pikku-command-forge-types.ts +38 -0
- package/src/functions/wirings/forge/serialize-forge-types.ts +94 -0
- package/src/functions/wirings/functions/pikku-command-function-types-split.ts +9 -8
- package/src/functions/wirings/functions/pikku-command-function-types.ts +17 -10
- package/src/functions/wirings/functions/pikku-command-functions.ts +59 -14
- package/src/functions/wirings/functions/pikku-command-services.ts +26 -26
- package/src/functions/wirings/functions/pikku-function-types.ts +3 -1
- package/src/functions/wirings/functions/schemas.ts +14 -4
- package/src/functions/wirings/functions/serialize-function-imports.ts +12 -3
- package/src/functions/wirings/functions/serialize-function-types.ts +227 -93
- package/src/functions/wirings/functions/serialize-pikku-types-hub.ts +27 -26
- package/src/functions/wirings/http/openapi-spec-generator.ts +15 -6
- package/src/functions/wirings/http/pikku-command-http-routes.ts +46 -2
- package/src/functions/wirings/http/pikku-command-openapi.ts +3 -2
- package/src/functions/wirings/http/pikku-http-routes.ts +28 -2
- package/src/functions/wirings/http/serialize-http-types.ts +19 -3
- package/src/functions/wirings/http/serialize-typed-http-map.ts +32 -8
- package/src/functions/wirings/mcp/pikku-command-mcp.ts +58 -10
- package/src/functions/wirings/mcp/serialize-mcp-json.ts +8 -6
- package/src/functions/wirings/mcp/serialize-mcp-types.ts +71 -19
- package/src/functions/wirings/middleware/pikku-command-middleware.ts +39 -2
- package/src/functions/wirings/middleware/serialize-middleware-groups-meta.ts +4 -19
- package/src/functions/wirings/package/pikku-command-package.ts +81 -0
- package/src/functions/wirings/package/serialize-package.ts +69 -0
- package/src/functions/wirings/permissions/pikku-command-permissions.ts +2 -2
- package/src/functions/wirings/queue/pikku-command-queue.ts +47 -2
- package/src/functions/wirings/queue/pikku-queue.ts +26 -10
- package/src/functions/wirings/queue/serialize-queue-map.ts +18 -3
- package/src/functions/wirings/queue/serialize-queue-meta.ts +15 -1
- package/src/functions/wirings/queue/serialize-queue-types.ts +1 -1
- package/src/functions/wirings/rpc/pikku-command-rpc-map.ts +7 -4
- package/src/functions/wirings/rpc/pikku-command-rpc.ts +25 -2
- package/src/functions/wirings/rpc/serialize-public-rpc.ts +11 -4
- package/src/functions/wirings/rpc/serialize-remote-rpc.ts +4 -1
- package/src/functions/wirings/rpc/serialize-rpc-wrapper.ts +3 -3
- package/src/functions/wirings/rpc/serialize-typed-rpc-map.ts +74 -8
- package/src/functions/wirings/scheduler/pikku-command-scheduler.ts +51 -4
- package/src/functions/wirings/scheduler/serialize-scheduler-meta.ts +20 -1
- package/src/functions/wirings/scheduler/serialize-scheduler-types.ts +1 -1
- package/src/functions/wirings/services/pikku-command-service-metadata.ts +25 -0
- package/src/functions/wirings/workflow/pikku-command-workflow.ts +114 -19
- package/src/functions/wirings/workflow/serialize-workflow-map.ts +38 -40
- package/src/functions/wirings/workflow/serialize-workflow-meta.ts +68 -11
- package/src/functions/wirings/workflow/serialize-workflow-registration.ts +83 -0
- package/src/functions/wirings/workflow/serialize-workflow-types.ts +311 -49
- package/src/functions/wirings/workflow/serialize-workflow-workers.ts +16 -29
- package/src/middleware/log-command-info-and-time.ts +3 -6
- package/src/services/cli-logger-forwarder.service.ts +1 -1
- package/src/services.ts +23 -16
- package/src/utils/check-required-types.ts +4 -7
- package/src/utils/command-summary.ts +4 -0
- package/src/utils/custom-types-generator.ts +15 -15
- package/src/utils/generate-bootstrap-file.ts +1 -1
- package/src/utils/pikku-cli-config.ts +105 -5
- package/src/utils/pikku-files-and-methods.ts +10 -13
- package/src/utils/schema-generator.ts +185 -22
- package/src/utils/strip-verbose-meta.ts +254 -0
- package/types/application-types.d.ts +1 -1
- package/types/config.d.ts +47 -2
- package/.pikku/function/pikku-functions-meta.min.gen.ts +0 -211
- package/.pikku/function/pikku-functions.gen.ts +0 -84
- package/.pikku/rpc/pikku-rpc-wirings-meta.internal.gen.ts +0 -47
- package/dist/.pikku/function/pikku-functions-meta.min.gen.d.ts +0 -1
- package/dist/.pikku/function/pikku-functions-meta.min.gen.js +0 -211
- package/dist/.pikku/function/pikku-functions.gen.d.ts +0 -1
- package/dist/.pikku/function/pikku-functions.gen.js +0 -83
- package/dist/.pikku/rpc/pikku-rpc-wirings-meta.internal.gen.d.ts +0 -1
- package/dist/.pikku/rpc/pikku-rpc-wirings-meta.internal.gen.js +0 -47
- package/dist/.pikku/schemas/schemas/PikkuRemoteInternalRPCInput.schema.json +0 -1
- package/dist/src/functions/wirings/workflow/pikku-command-workflow-map.d.ts +0 -1
- package/dist/src/functions/wirings/workflow/pikku-command-workflow-map.js +0 -12
- package/dist/src/functions/wirings/workflow/pikku-command-workflow-types.d.ts +0 -1
- package/dist/src/functions/wirings/workflow/pikku-command-workflow-types.js +0 -11
- package/src/functions/wirings/workflow/pikku-command-workflow-map.ts +0 -24
- package/src/functions/wirings/workflow/pikku-command-workflow-types.ts +0 -22
|
@@ -1 +1 @@
|
|
|
1
|
-
{ "$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": { "outDir": { "type": "string" }, "schemaDirectory": { "type": "string" }, "typesDeclarationFile": { "type": "string" }, "functionsFile": { "type": "string" }, "functionsMetaFile": { "type": "string" }, "
|
|
1
|
+
{ "$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": { "outDir": { "type": "string" }, "schemaDirectory": { "type": "string" }, "typesDeclarationFile": { "type": "string" }, "functionsFile": { "type": "string" }, "functionsMetaFile": { "type": "string" }, "functionsMetaJsonFile": { "type": "string" }, "functionTypesFile": { "type": "string" }, "httpWiringsFile": { "type": "string" }, "httpWiringMetaFile": { "type": "string" }, "httpWiringMetaJsonFile": { "type": "string" }, "httpMapDeclarationFile": { "type": "string" }, "httpTypesFile": { "type": "string" }, "channelsWiringFile": { "type": "string" }, "channelsWiringMetaFile": { "type": "string" }, "channelsWiringMetaJsonFile": { "type": "string" }, "channelsMapDeclarationFile": { "type": "string" }, "channelsTypesFile": { "type": "string" }, "rpcInternalWiringMetaFile": { "type": "string" }, "rpcInternalWiringMetaJsonFile": { "type": "string" }, "rpcInternalMapDeclarationFile": { "type": "string" }, "rpcMapDeclarationFile": { "type": "string" }, "schedulersWiringFile": { "type": "string" }, "schedulersWiringMetaFile": { "type": "string" }, "schedulersWiringMetaJsonFile": { "type": "string" }, "schedulersTypesFile": { "type": "string" }, "queueWorkersWiringFile": { "type": "string" }, "queueWorkersWiringMetaFile": { "type": "string" }, "queueWorkersWiringMetaJsonFile": { "type": "string" }, "queueMapDeclarationFile": { "type": "string" }, "queueTypesFile": { "type": "string" }, "workflowsWiringFile": { "type": "string" }, "workflowsWiringMetaFile": { "type": "string" }, "workflowsWorkersFile": { "type": "string" }, "workflowMapDeclarationFile": { "type": "string" }, "workflowTypesFile": { "type": "string" }, "workflowMetaDir": { "type": "string" }, "mcpWiringsFile": { "type": "string" }, "mcpWiringsMetaFile": { "type": "string" }, "mcpWiringsMetaJsonFile": { "type": "string" }, "mcpTypesFile": { "type": "string" }, "cliWiringsFile": { "type": "string" }, "cliWiringMetaFile": { "type": "string" }, "cliWiringMetaJsonFile": { "type": "string" }, "cliBootstrapFile": { "type": "string" }, "cliTypesFile": { "type": "string" }, "servicesFile": { "type": "string" }, "middlewareFile": { "type": "string" }, "middlewareGroupsMetaFile": { "type": "string" }, "middlewareGroupsMetaJsonFile": { "type": "string" }, "permissionsFile": { "type": "string" }, "bootstrapFile": { "type": "string" }, "packageFile": { "type": "string" }, "forgeTypesFile": { "type": "string" }, "$schema": { "type": "string" }, "extends": { "type": "string" }, "rootDir": { "type": "string" }, "srcDirectories": { "type": "array", "items": { "type": "string" } }, "ignoreFiles": { "type": "array", "items": { "type": "string" } }, "packageMappings": { "type": "object", "additionalProperties": { "type": "string" } }, "externalPackages": { "type": "object", "additionalProperties": { "type": "string" } }, "externalPackage": { "type": "boolean" }, "externalPackageName": { "type": "string" }, "configFile": { "type": "string" }, "tags": { "type": "array", "items": { "type": "string" } }, "types": { "type": "array", "items": { "type": "string" } }, "userSessionType": { "type": "string" }, "singletonServicesFactoryType": { "type": "string" }, "wireServicesFactoryType": { "type": "string" }, "configDir": { "type": "string" }, "tsconfig": { "type": "string" }, "nextBackendFile": { "type": "string" }, "nextHTTPFile": { "type": "string" }, "fetchFile": { "type": "string" }, "websocketFile": { "type": "string" }, "rpcWiringsFile": { "type": "string" }, "queueWiringsFile": { "type": "string" }, "mcpJsonFile": { "type": "string" }, "openAPI": { "type": "object", "properties": { "outputFile": { "type": "string" }, "additionalInfo": { "$ref": "#/definitions/OpenAPISpecInfo" } }, "required": ["outputFile", "additionalInfo"], "additionalProperties": false }, "schema": { "type": "object", "properties": { "additionalProperties": { "type": "boolean" }, "supportsImportAttributes": { "type": "boolean" } }, "additionalProperties": false }, "cli": { "type": "object", "properties": { "entrypoints": { "type": "object", "additionalProperties": { "anyOf": [{ "type": "string" }, { "type": "object", "properties": { "type": { "type": "string", "const": "local" }, "path": { "type": "string" } }, "required": ["type", "path"], "additionalProperties": false }, { "type": "object", "properties": { "type": { "type": "string", "const": "channel" }, "name": { "type": "string" }, "route": { "type": "string" }, "wirePath": { "type": "string" }, "path": { "type": "string" } }, "required": ["type", "wirePath"], "additionalProperties": false }, { "type": "array", "items": { "anyOf": [{ "type": "string" }, { "type": "object", "properties": { "type": { "type": "string", "const": "local" }, "path": { "type": "string" } }, "required": ["type", "path"], "additionalProperties": false }, { "type": "object", "properties": { "type": { "type": "string", "const": "channel" }, "name": { "type": "string" }, "route": { "type": "string" }, "wirePath": { "type": "string" }, "path": { "type": "string" } }, "required": ["type", "wirePath"], "additionalProperties": false }] } }] } } }, "additionalProperties": false }, "workflows": { "anyOf": [{ "type": "object", "properties": { "singleQueue": { "type": "boolean", "const": true }, "path": { "type": "string" }, "orchestratorQueue": { "type": "string" }, "workerQueue": { "type": "string" } }, "required": ["singleQueue", "path"], "additionalProperties": false }, { "type": "object", "properties": { "singleQueue": { "type": "boolean", "const": false }, "dir": { "type": "string" }, "orchestratorQueuePrefix": { "type": "string" }, "workerQueuePrefix": { "type": "string" } }, "required": ["singleQueue", "dir"], "additionalProperties": false }] }, "rpc": { "type": "object", "properties": { "remoteRpcWorkersPath": { "type": "string" }, "publicRpcPath": { "type": "string" } }, "additionalProperties": false }, "forceRequiredServices": { "type": "array", "items": { "type": "string" } }, "schemasFromTypes": { "type": "array", "items": { "type": "string" } }, "stateOutput": { "type": "string" }, "stateInput": { "type": "string" }, "forge": { "type": "object", "properties": { "verboseMeta": { "type": "boolean" }, "node": { "type": "object", "properties": { "categories": { "type": "array", "items": { "type": "string" } }, "icon": { "type": "string" }, "displayName": { "type": "string" }, "description": { "type": "string" } }, "additionalProperties": false } }, "additionalProperties": false }, "forgeNodesMetaJsonFile": { "type": "string" }, "filters": { "$ref": "#/definitions/InspectorFilters" } }, "required": ["bootstrapFile", "channelsMapDeclarationFile", "channelsTypesFile", "channelsWiringFile", "channelsWiringMetaFile", "channelsWiringMetaJsonFile", "cliBootstrapFile", "cliTypesFile", "cliWiringMetaFile", "cliWiringMetaJsonFile", "cliWiringsFile", "configDir", "filters", "forgeTypesFile", "functionTypesFile", "functionsFile", "functionsMetaFile", "functionsMetaJsonFile", "httpMapDeclarationFile", "httpTypesFile", "httpWiringMetaFile", "httpWiringMetaJsonFile", "httpWiringsFile", "mcpTypesFile", "mcpWiringsFile", "mcpWiringsMetaFile", "mcpWiringsMetaJsonFile", "middlewareFile", "middlewareGroupsMetaFile", "middlewareGroupsMetaJsonFile", "outDir", "packageFile", "packageMappings", "permissionsFile", "queueMapDeclarationFile", "queueTypesFile", "queueWorkersWiringFile", "queueWorkersWiringMetaFile", "queueWorkersWiringMetaJsonFile", "rootDir", "rpcInternalMapDeclarationFile", "rpcInternalWiringMetaFile", "rpcInternalWiringMetaJsonFile", "rpcMapDeclarationFile", "schedulersTypesFile", "schedulersWiringFile", "schedulersWiringMetaFile", "schedulersWiringMetaJsonFile", "schemaDirectory", "servicesFile", "srcDirectories", "tsconfig", "typesDeclarationFile", "workflowMapDeclarationFile", "workflowMetaDir", "workflowTypesFile", "workflowsWiringFile", "workflowsWiringMetaFile", "workflowsWorkersFile"], "definitions": { "OpenAPISpecInfo": { "type": "object", "properties": { "info": { "type": "object", "properties": { "title": { "type": "string" }, "version": { "type": "string" }, "description": { "type": "string" }, "termsOfService": { "type": "string" }, "contact": { "type": "object", "properties": { "name": { "type": "string" }, "url": { "type": "string" }, "email": { "type": "string" } }, "additionalProperties": false }, "license": { "type": "object", "properties": { "name": { "type": "string" }, "url": { "type": "string" } }, "required": ["name"], "additionalProperties": false } }, "required": ["title", "version", "description"], "additionalProperties": false }, "servers": { "type": "array", "items": { "type": "object", "properties": { "url": { "type": "string" }, "description": { "type": "string" } }, "required": ["url"], "additionalProperties": false } }, "tags": { "type": "array", "items": { "type": "object", "properties": { "name": { "type": "string" }, "description": { "type": "string" } }, "required": ["name"], "additionalProperties": false } }, "externalDocs": { "type": "object", "properties": { "description": { "type": "string" }, "url": { "type": "string" } }, "required": ["url"], "additionalProperties": false }, "securitySchemes": { "type": "object" }, "security": { "type": "array", "items": { "type": "object", "additionalProperties": { "type": "array", "items": {} } } } }, "required": ["info", "servers"], "additionalProperties": false }, "InspectorFilters": { "type": "object", "properties": { "names": { "type": "array", "items": { "type": "string" } }, "tags": { "type": "array", "items": { "type": "string" } }, "types": { "type": "array", "items": { "type": "string" } }, "directories": { "type": "array", "items": { "type": "string" } }, "httpRoutes": { "type": "array", "items": { "type": "string" } }, "httpMethods": { "type": "array", "items": { "type": "string" } } }, "additionalProperties": false } } }
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{ "
|
|
1
|
+
{ "type": "boolean" }
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{ "
|
|
1
|
+
{ "type": "boolean" }
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{ "type": "boolean" }
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{ "
|
|
1
|
+
{ "type": "boolean" }
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{ "
|
|
1
|
+
{ "type": "boolean" }
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{ "
|
|
1
|
+
{ "type": "boolean" }
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{ "
|
|
1
|
+
{ "type": "boolean" }
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{ "type": "boolean" }
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{ "
|
|
1
|
+
{ "type": "boolean" }
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{ "
|
|
1
|
+
{ "type": "boolean" }
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{ "
|
|
1
|
+
{ "type": "boolean" }
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{ "
|
|
1
|
+
{ "type": "boolean" }
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{ "
|
|
1
|
+
{ "type": "boolean" }
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{ "
|
|
1
|
+
{ "type": "boolean" }
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{ "
|
|
1
|
+
{ "type": "boolean" }
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{ "
|
|
1
|
+
{ "type": "boolean" }
|
|
@@ -1,58 +1,232 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* This file was generated by @pikku/cli@0.11.
|
|
2
|
+
* This file was generated by @pikku/cli@0.11.3
|
|
3
3
|
*/
|
|
4
4
|
/**
|
|
5
|
-
* Workflow
|
|
5
|
+
* Workflow type definitions and helpers
|
|
6
|
+
* Used for authoring both DSL and graph-based workflows
|
|
6
7
|
*/
|
|
7
|
-
import {
|
|
8
|
-
|
|
9
|
-
import type {
|
|
10
|
-
import type {
|
|
11
|
-
import type {
|
|
8
|
+
import { PikkuWorkflowWire, WorkflowStepOptions, WorkflowCancelledException } from '@pikku/core/workflow';
|
|
9
|
+
export { WorkflowCancelledException };
|
|
10
|
+
import type { PikkuFunctionSessionless, PikkuFunctionConfig } from '../function/pikku-function-types.gen.js';
|
|
11
|
+
import type { RPCMap, FlattenedRPCMap } from '../rpc/pikku-rpc-wirings-map.internal.gen.d.js';
|
|
12
|
+
import type { GraphNodeConfig, HTTPMethod } from '@pikku/core';
|
|
12
13
|
/**
|
|
13
|
-
*
|
|
14
|
-
* Workflows support both inline and remote execution modes with step caching.
|
|
15
|
-
*/
|
|
16
|
-
type WorkflowWiring = CoreWorkflow<CorePikkuFunctionConfig<PikkuFunctionWorkflow<any, any>, PikkuPermission<any>, PikkuMiddleware>>;
|
|
17
|
-
/**
|
|
18
|
-
* Typed workflow interaction with RPC awareness
|
|
14
|
+
* Typed workflow wire with RPC awareness
|
|
19
15
|
* Provides type-safe workflow.do() for RPC steps
|
|
20
16
|
*/
|
|
21
|
-
export interface TypedWorkflow extends
|
|
22
|
-
/**
|
|
23
|
-
* Execute a workflow step with RPC invocation (typed based on available RPCs)
|
|
24
|
-
* @template K - RPC name from the RPC map
|
|
25
|
-
*/
|
|
17
|
+
export interface TypedWorkflow extends PikkuWorkflowWire {
|
|
26
18
|
do<K extends keyof RPCMap>(stepName: string, rpcName: K, data: RPCMap[K]['input'], options?: WorkflowStepOptions): Promise<RPCMap[K]['output']>;
|
|
27
|
-
/**
|
|
28
|
-
* Execute a workflow step with inline function
|
|
29
|
-
* @template T - Return type of the inline function
|
|
30
|
-
*/
|
|
31
19
|
do<T>(stepName: string, fn: () => T | Promise<T>, options?: WorkflowStepOptions): Promise<T>;
|
|
32
20
|
}
|
|
33
21
|
/**
|
|
34
22
|
* Workflow function type with typed workflow service
|
|
35
|
-
* Includes the workflow interaction object with typed RPC methods
|
|
36
23
|
*/
|
|
37
|
-
export type PikkuFunctionWorkflow<In = unknown, Out = never> =
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
24
|
+
export type PikkuFunctionWorkflow<In = unknown, Out = never> = PikkuFunctionSessionless<In, Out, 'workflow'>;
|
|
25
|
+
/**
|
|
26
|
+
* Creates a DSL-compatible workflow function (serializable, shows in Forge UI)
|
|
27
|
+
*/
|
|
28
|
+
export declare const pikkuWorkflowFunc: <In, Out = unknown>(func: PikkuFunctionWorkflow<In, Out> | PikkuFunctionConfig<In, Out, "workflow", PikkuFunctionWorkflow<In, Out>>) => PikkuFunctionConfig<In, Out, "workflow", PikkuFunctionWorkflow<In, Out>>;
|
|
29
|
+
/**
|
|
30
|
+
* Creates a complex workflow function (arbitrary code, hidden from Forge UI)
|
|
31
|
+
*/
|
|
32
|
+
export declare const pikkuWorkflowComplexFunc: <In, Out = unknown>(func: PikkuFunctionWorkflow<In, Out> | PikkuFunctionConfig<In, Out, "workflow", PikkuFunctionWorkflow<In, Out>>) => PikkuFunctionConfig<In, Out, "workflow", PikkuFunctionWorkflow<In, Out>>;
|
|
33
|
+
/** HTTP wire configuration for graph workflows */
|
|
34
|
+
interface GraphHttpWire<NodeIds extends string> {
|
|
35
|
+
route: string;
|
|
36
|
+
method: HTTPMethod;
|
|
37
|
+
startNode: NodeIds;
|
|
38
|
+
}
|
|
39
|
+
/** Channel wire configuration for graph workflows */
|
|
40
|
+
interface GraphChannelWire<NodeIds extends string> {
|
|
41
|
+
name: string;
|
|
42
|
+
onConnect?: NodeIds;
|
|
43
|
+
onDisconnect?: NodeIds;
|
|
44
|
+
onMessage?: NodeIds;
|
|
45
|
+
}
|
|
46
|
+
/** Queue wire configuration for graph workflows */
|
|
47
|
+
interface GraphQueueWire<NodeIds extends string> {
|
|
48
|
+
name: string;
|
|
49
|
+
startNode: NodeIds;
|
|
50
|
+
}
|
|
51
|
+
/** CLI wire configuration for graph workflows */
|
|
52
|
+
interface GraphCliWire<NodeIds extends string> {
|
|
53
|
+
command: string;
|
|
54
|
+
startNode: NodeIds;
|
|
55
|
+
}
|
|
56
|
+
/** MCP wire configurations for graph workflows */
|
|
57
|
+
interface GraphMcpWires<NodeIds extends string> {
|
|
58
|
+
tool?: Array<{
|
|
59
|
+
name: string;
|
|
60
|
+
startNode: NodeIds;
|
|
61
|
+
}>;
|
|
62
|
+
prompt?: Array<{
|
|
63
|
+
name: string;
|
|
64
|
+
startNode: NodeIds;
|
|
65
|
+
}>;
|
|
66
|
+
resource?: Array<{
|
|
67
|
+
uri: string;
|
|
68
|
+
startNode: NodeIds;
|
|
69
|
+
}>;
|
|
70
|
+
}
|
|
71
|
+
/** Schedule wire configuration for graph workflows */
|
|
72
|
+
interface GraphScheduleWire<NodeIds extends string> {
|
|
73
|
+
cron?: string;
|
|
74
|
+
interval?: string;
|
|
75
|
+
startNode: NodeIds;
|
|
76
|
+
}
|
|
77
|
+
/** Trigger wire configuration for graph workflows */
|
|
78
|
+
interface GraphTriggerWire<NodeIds extends string> {
|
|
79
|
+
name: string;
|
|
80
|
+
startNode: NodeIds;
|
|
81
|
+
}
|
|
82
|
+
/** All wire configurations for graph workflows */
|
|
83
|
+
interface GraphWiresConfig<NodeIds extends string> {
|
|
84
|
+
http?: Array<GraphHttpWire<NodeIds>>;
|
|
85
|
+
channel?: Array<GraphChannelWire<NodeIds>>;
|
|
86
|
+
queue?: Array<GraphQueueWire<NodeIds>>;
|
|
87
|
+
cli?: Array<GraphCliWire<NodeIds>>;
|
|
88
|
+
mcp?: GraphMcpWires<NodeIds>;
|
|
89
|
+
schedule?: Array<GraphScheduleWire<NodeIds>>;
|
|
90
|
+
trigger?: Array<GraphTriggerWire<NodeIds>>;
|
|
91
|
+
}
|
|
92
|
+
/** Configuration for graph-based workflow */
|
|
93
|
+
export interface PikkuWorkflowGraphConfig<FuncMap extends Record<string, keyof FlattenedRPCMap & string>, T> {
|
|
94
|
+
/** Workflow name (optional - defaults to exported variable name) */
|
|
95
|
+
name?: string;
|
|
96
|
+
/** Optional description */
|
|
97
|
+
description?: string;
|
|
98
|
+
/** Optional tags for organization */
|
|
99
|
+
tags?: string[];
|
|
100
|
+
/** Node to RPC function mapping */
|
|
101
|
+
nodes: FuncMap;
|
|
102
|
+
/** Wire configurations - how this workflow can be triggered */
|
|
103
|
+
wires?: GraphWiresConfig<Extract<keyof FuncMap, string>>;
|
|
104
|
+
/** Node configurations (next, input, onError) */
|
|
105
|
+
config?: T;
|
|
106
|
+
}
|
|
107
|
+
/** Result of pikkuWorkflowGraph - includes metadata for wiring */
|
|
108
|
+
export interface PikkuWorkflowGraphResult<T, NodeIds extends string = string> {
|
|
109
|
+
__type: 'pikkuWorkflowGraph';
|
|
110
|
+
name?: string;
|
|
111
|
+
description?: string;
|
|
112
|
+
tags?: string[];
|
|
113
|
+
wires?: GraphWiresConfig<NodeIds>;
|
|
114
|
+
graph: T;
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
* Creates a graph-based workflow definition with metadata
|
|
118
|
+
* Name defaults to the exported variable name if not provided.
|
|
119
|
+
*
|
|
120
|
+
* @example
|
|
121
|
+
* // Name inferred from exported variable name
|
|
122
|
+
* export const myWorkflow = pikkuWorkflowGraph({
|
|
123
|
+
* description: 'Handles user onboarding',
|
|
124
|
+
* tags: ['onboarding'],
|
|
125
|
+
* nodes: {
|
|
126
|
+
* entry: 'createUser',
|
|
127
|
+
* sendEmail: 'sendWelcomeEmail',
|
|
128
|
+
* },
|
|
129
|
+
* config: {
|
|
130
|
+
* entry: { next: 'sendEmail' },
|
|
131
|
+
* sendEmail: { input: (ref) => ({ to: ref('entry', 'email') }) },
|
|
132
|
+
* },
|
|
133
|
+
* })
|
|
134
|
+
*/
|
|
135
|
+
export declare function pikkuWorkflowGraph<const FuncMap extends Record<string, keyof FlattenedRPCMap & string>>(config: PikkuWorkflowGraphConfig<FuncMap, GraphNodeConfigMap<FuncMap>>): PikkuWorkflowGraphResult<Record<Extract<keyof FuncMap, string>, GraphNodeConfig<Extract<keyof FuncMap, string>>>, Extract<keyof FuncMap, string>>;
|
|
136
|
+
/** Typed ref value */
|
|
137
|
+
type TypedRef<T> = {
|
|
138
|
+
$ref: string;
|
|
139
|
+
path?: string;
|
|
140
|
+
} & {
|
|
141
|
+
__phantomType?: T;
|
|
142
|
+
};
|
|
143
|
+
/** Template string type - assignable to string fields */
|
|
144
|
+
type TemplateString = {
|
|
145
|
+
$template: {
|
|
146
|
+
parts: string[];
|
|
147
|
+
expressions: Array<{
|
|
148
|
+
$ref: string;
|
|
149
|
+
path?: string;
|
|
150
|
+
}>;
|
|
151
|
+
};
|
|
152
|
+
} & {
|
|
153
|
+
__brand: 'TemplateString';
|
|
154
|
+
};
|
|
41
155
|
/**
|
|
42
|
-
* Creates a
|
|
43
|
-
*
|
|
156
|
+
* Creates a template string with variable interpolation
|
|
157
|
+
* Uses indexed placeholders $0, $1, etc. with refs array
|
|
44
158
|
*
|
|
45
|
-
* @
|
|
46
|
-
*
|
|
47
|
-
* @param func - Function definition, either direct function or configuration object
|
|
48
|
-
* @returns The normalized configuration object
|
|
159
|
+
* @example
|
|
160
|
+
* template('Hello $0, your order $1 is ready', [ref('trigger', 'name'), ref('step_0', 'orderId')])
|
|
49
161
|
*/
|
|
50
|
-
export declare
|
|
162
|
+
export declare function template(templateStr: string, refs: TypedRef<unknown>[]): TemplateString;
|
|
163
|
+
/** Map input type fields to allow TypedRef or TemplateString for any field */
|
|
164
|
+
type InputWithRefs<T> = {
|
|
165
|
+
[K in keyof T]?: T[K] | TypedRef<T[K]> | TypedRef<unknown> | TemplateString;
|
|
166
|
+
};
|
|
167
|
+
/** Get the input type for a node based on its RPC mapping */
|
|
168
|
+
type NodeInputType<FuncMap extends Record<string, string>, K extends keyof FuncMap> = FuncMap[K] extends keyof FlattenedRPCMap ? InputWithRefs<FlattenedRPCMap[FuncMap[K]]['input']> : Record<string, unknown>;
|
|
169
|
+
/** Get the output type keys for a node based on its RPC mapping */
|
|
170
|
+
type NodeOutputKeys<FuncMap extends Record<string, string>, N extends string> = N extends keyof FuncMap ? FuncMap[N] extends keyof FlattenedRPCMap ? keyof FlattenedRPCMap[FuncMap[N]]['output'] & string : string : string;
|
|
171
|
+
/** Ref function type with path validation */
|
|
172
|
+
type RefFunction<FuncMap extends Record<string, string>> = {
|
|
173
|
+
<N extends Extract<keyof FuncMap, string>>(nodeId: N, path: NodeOutputKeys<FuncMap, N>): TypedRef<unknown>;
|
|
174
|
+
(nodeId: 'trigger' | '$item', path?: string): TypedRef<unknown>;
|
|
175
|
+
};
|
|
176
|
+
/** Template function type */
|
|
177
|
+
type TemplateFunction = (templateStr: string, refs: TypedRef<unknown>[]) => TemplateString;
|
|
178
|
+
/** Type helper for node configuration */
|
|
179
|
+
type GraphNodeConfigMap<FuncMap extends Record<string, string>> = {
|
|
180
|
+
[K in Extract<keyof FuncMap, string>]?: {
|
|
181
|
+
next?: NextConfig<Extract<keyof FuncMap, string>>;
|
|
182
|
+
input?: NodeInputType<FuncMap, K> | (() => NodeInputType<FuncMap, K>) | ((ref: RefFunction<FuncMap>, template: TemplateFunction) => NodeInputType<FuncMap, K>);
|
|
183
|
+
onError?: Extract<keyof FuncMap, string> | Extract<keyof FuncMap, string>[];
|
|
184
|
+
};
|
|
185
|
+
};
|
|
186
|
+
type NextConfig<NodeIds extends string> = NodeIds | NodeIds[] | {
|
|
187
|
+
if: string;
|
|
188
|
+
then: NodeIds;
|
|
189
|
+
else?: NodeIds;
|
|
190
|
+
};
|
|
191
|
+
/** Workflow definition with DSL function */
|
|
192
|
+
interface WorkflowDefinitionFunc {
|
|
193
|
+
/** Whether this workflow wiring is enabled (default: true) */
|
|
194
|
+
enabled?: boolean;
|
|
195
|
+
/** Wire configurations for the workflow */
|
|
196
|
+
wires: {
|
|
197
|
+
http?: {
|
|
198
|
+
route: string;
|
|
199
|
+
method: HTTPMethod;
|
|
200
|
+
};
|
|
201
|
+
channel?: string;
|
|
202
|
+
queue?: string;
|
|
203
|
+
};
|
|
204
|
+
/** DSL workflow function */
|
|
205
|
+
func: PikkuFunctionConfig<any, any, 'workflow', PikkuFunctionWorkflow<any, any>>;
|
|
206
|
+
}
|
|
207
|
+
/** Workflow definition with graph */
|
|
208
|
+
interface WorkflowDefinitionGraph<T, NodeIds extends string = string> {
|
|
209
|
+
/** Whether this workflow wiring is enabled (default: true) */
|
|
210
|
+
enabled?: boolean;
|
|
211
|
+
/** Graph workflow definition - wires are defined in the graph itself */
|
|
212
|
+
graph: PikkuWorkflowGraphResult<T, NodeIds>;
|
|
213
|
+
}
|
|
51
214
|
/**
|
|
52
|
-
*
|
|
53
|
-
*
|
|
215
|
+
* Wire a workflow with wires
|
|
216
|
+
* Accepts either a DSL function (func) or a graph definition (graph)
|
|
217
|
+
*
|
|
218
|
+
* @example
|
|
219
|
+
* // DSL workflow
|
|
220
|
+
* wireWorkflow({
|
|
221
|
+
* wires: { http: { route: '/start', method: 'post' } },
|
|
222
|
+
* func: myWorkflowFunc,
|
|
223
|
+
* })
|
|
54
224
|
*
|
|
55
|
-
* @
|
|
225
|
+
* @example
|
|
226
|
+
* // Graph workflow - wires are defined in the graph itself
|
|
227
|
+
* wireWorkflow({
|
|
228
|
+
* enabled: true, // default: true
|
|
229
|
+
* graph: myGraphWorkflow,
|
|
230
|
+
* })
|
|
56
231
|
*/
|
|
57
|
-
export declare
|
|
58
|
-
export {};
|
|
232
|
+
export declare function wireWorkflow<T extends Record<string, GraphNodeConfig<Extract<keyof T, string>>>, NodeIds extends string = string>(definition: WorkflowDefinitionFunc | WorkflowDefinitionGraph<T, NodeIds>): void;
|
|
@@ -1,28 +1,118 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* This file was generated by @pikku/cli@0.11.
|
|
2
|
+
* This file was generated by @pikku/cli@0.11.3
|
|
3
3
|
*/
|
|
4
4
|
/**
|
|
5
|
-
* Workflow
|
|
5
|
+
* Workflow type definitions and helpers
|
|
6
|
+
* Used for authoring both DSL and graph-based workflows
|
|
6
7
|
*/
|
|
7
|
-
import {
|
|
8
|
+
import { WorkflowCancelledException } from '@pikku/core/workflow';
|
|
9
|
+
// Re-export WorkflowCancelledException for use in workflow functions
|
|
10
|
+
export { WorkflowCancelledException };
|
|
11
|
+
import { createGraph, wireWorkflow as coreWireWorkflow } from '@pikku/core';
|
|
8
12
|
/**
|
|
9
|
-
* Creates a workflow function
|
|
10
|
-
* Workflow functions have access to the workflow interaction object for step execution.
|
|
11
|
-
*
|
|
12
|
-
* @template In - Input type for the workflow
|
|
13
|
-
* @template Out - Output type for the workflow
|
|
14
|
-
* @param func - Function definition, either direct function or configuration object
|
|
15
|
-
* @returns The normalized configuration object
|
|
13
|
+
* Creates a DSL-compatible workflow function (serializable, shows in Forge UI)
|
|
16
14
|
*/
|
|
17
15
|
export const pikkuWorkflowFunc = (func) => {
|
|
18
16
|
return typeof func === 'function' ? { func } : func;
|
|
19
17
|
};
|
|
20
18
|
/**
|
|
21
|
-
*
|
|
22
|
-
* Workflows can run in 'inline' (synchronous) or 'remote' (queue-based) execution modes.
|
|
23
|
-
*
|
|
24
|
-
* @param workflow - Workflow definition with name, execution mode, and handler function
|
|
19
|
+
* Creates a complex workflow function (arbitrary code, hidden from Forge UI)
|
|
25
20
|
*/
|
|
26
|
-
export const
|
|
27
|
-
|
|
21
|
+
export const pikkuWorkflowComplexFunc = (func) => {
|
|
22
|
+
return typeof func === 'function' ? { func } : func;
|
|
28
23
|
};
|
|
24
|
+
// ============================================================================
|
|
25
|
+
// Graph Workflow Types (pikkuWorkflowGraph)
|
|
26
|
+
// ============================================================================
|
|
27
|
+
/**
|
|
28
|
+
* Type-safe graph builder with full RPC autocomplete
|
|
29
|
+
*/
|
|
30
|
+
const graphBuilder = createGraph();
|
|
31
|
+
/**
|
|
32
|
+
* Creates a graph-based workflow definition with metadata
|
|
33
|
+
* Name defaults to the exported variable name if not provided.
|
|
34
|
+
*
|
|
35
|
+
* @example
|
|
36
|
+
* // Name inferred from exported variable name
|
|
37
|
+
* export const myWorkflow = pikkuWorkflowGraph({
|
|
38
|
+
* description: 'Handles user onboarding',
|
|
39
|
+
* tags: ['onboarding'],
|
|
40
|
+
* nodes: {
|
|
41
|
+
* entry: 'createUser',
|
|
42
|
+
* sendEmail: 'sendWelcomeEmail',
|
|
43
|
+
* },
|
|
44
|
+
* config: {
|
|
45
|
+
* entry: { next: 'sendEmail' },
|
|
46
|
+
* sendEmail: { input: (ref) => ({ to: ref('entry', 'email') }) },
|
|
47
|
+
* },
|
|
48
|
+
* })
|
|
49
|
+
*/
|
|
50
|
+
export function pikkuWorkflowGraph(config) {
|
|
51
|
+
return {
|
|
52
|
+
__type: 'pikkuWorkflowGraph',
|
|
53
|
+
name: config.name,
|
|
54
|
+
description: config.description,
|
|
55
|
+
tags: config.tags,
|
|
56
|
+
wires: config.wires,
|
|
57
|
+
graph: graphBuilder(config.nodes, config.config),
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Creates a template string with variable interpolation
|
|
62
|
+
* Uses indexed placeholders $0, $1, etc. with refs array
|
|
63
|
+
*
|
|
64
|
+
* @example
|
|
65
|
+
* template('Hello $0, your order $1 is ready', [ref('trigger', 'name'), ref('step_0', 'orderId')])
|
|
66
|
+
*/
|
|
67
|
+
export function template(templateStr, refs) {
|
|
68
|
+
const parts = [];
|
|
69
|
+
const expressions = [];
|
|
70
|
+
// Parse template string: "Hello $0" -> parts: ["Hello ", ""], use refs[0] for expression
|
|
71
|
+
const regex = /$(d+)/g;
|
|
72
|
+
let lastIndex = 0;
|
|
73
|
+
let match;
|
|
74
|
+
while ((match = regex.exec(templateStr)) !== null) {
|
|
75
|
+
// Add the part before this match
|
|
76
|
+
parts.push(templateStr.slice(lastIndex, match.index));
|
|
77
|
+
// Get the ref by index
|
|
78
|
+
const refIndex = parseInt(match[1], 10);
|
|
79
|
+
const refValue = refs[refIndex];
|
|
80
|
+
if (refValue) {
|
|
81
|
+
const expr = { $ref: refValue.$ref };
|
|
82
|
+
if (refValue.path) {
|
|
83
|
+
expr.path = refValue.path;
|
|
84
|
+
}
|
|
85
|
+
expressions.push(expr);
|
|
86
|
+
}
|
|
87
|
+
else {
|
|
88
|
+
expressions.push({ $ref: 'unknown' });
|
|
89
|
+
}
|
|
90
|
+
lastIndex = regex.lastIndex;
|
|
91
|
+
}
|
|
92
|
+
// Add the remaining part
|
|
93
|
+
parts.push(templateStr.slice(lastIndex));
|
|
94
|
+
return {
|
|
95
|
+
$template: { parts, expressions }
|
|
96
|
+
};
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* Wire a workflow with wires
|
|
100
|
+
* Accepts either a DSL function (func) or a graph definition (graph)
|
|
101
|
+
*
|
|
102
|
+
* @example
|
|
103
|
+
* // DSL workflow
|
|
104
|
+
* wireWorkflow({
|
|
105
|
+
* wires: { http: { route: '/start', method: 'post' } },
|
|
106
|
+
* func: myWorkflowFunc,
|
|
107
|
+
* })
|
|
108
|
+
*
|
|
109
|
+
* @example
|
|
110
|
+
* // Graph workflow - wires are defined in the graph itself
|
|
111
|
+
* wireWorkflow({
|
|
112
|
+
* enabled: true, // default: true
|
|
113
|
+
* graph: myGraphWorkflow,
|
|
114
|
+
* })
|
|
115
|
+
*/
|
|
116
|
+
export function wireWorkflow(definition) {
|
|
117
|
+
coreWireWorkflow(definition);
|
|
118
|
+
}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* This file was generated by @pikku/cli@0.11.
|
|
2
|
+
* This file was generated by @pikku/cli@0.11.3
|
|
3
3
|
*/
|
|
4
4
|
import { pikkuState } from '@pikku/core';
|
|
5
|
-
|
|
5
|
+
const workflowsMeta = {};
|
|
6
|
+
pikkuState(null, 'workflows', 'meta', workflowsMeta);
|
package/dist/bin/pikku.js
CHANGED
|
@@ -1,28 +1,9 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { Command } from 'commander';
|
|
3
3
|
import { createConfig, createSingletonServices } from '../src/services.js';
|
|
4
|
-
import { PikkuRPCService } from '@pikku/core/rpc';
|
|
5
4
|
import { LocalVariablesService } from '@pikku/core/services';
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
import { dirname, join } from 'path';
|
|
9
|
-
const __filename = fileURLToPath(import.meta.url);
|
|
10
|
-
const __dirname = dirname(__filename);
|
|
11
|
-
// Check if Pikku CLI is available
|
|
12
|
-
const pikkuCliPath = join(__dirname, '../.pikku/cli/pikku-cli.gen.js');
|
|
13
|
-
if (existsSync(pikkuCliPath)) {
|
|
14
|
-
try {
|
|
15
|
-
// Use the generated Pikku CLI
|
|
16
|
-
const { PikkuCLI } = await import(pikkuCliPath);
|
|
17
|
-
await PikkuCLI(process.argv.slice(2));
|
|
18
|
-
process.exit(0);
|
|
19
|
-
}
|
|
20
|
-
catch (error) {
|
|
21
|
-
// If import fails, fall back to Commander.js
|
|
22
|
-
console.warn('Failed to load Pikku CLI, using fallback mode:', error.message);
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
// Fallback to Commander.js for initial setup
|
|
5
|
+
import { all as allCommand } from '../src/functions/commands/all.js';
|
|
6
|
+
import { watch as watchCommand } from '../src/functions/commands/watch.js';
|
|
26
7
|
// Import bootstrap if it exists
|
|
27
8
|
try {
|
|
28
9
|
await import('../.pikku/pikku-bootstrap.gen.js');
|
|
@@ -33,13 +14,11 @@ catch {
|
|
|
33
14
|
const action = async (command, cliConfig) => {
|
|
34
15
|
const config = await createConfig(new LocalVariablesService(), cliConfig);
|
|
35
16
|
const services = await createSingletonServices(config);
|
|
36
|
-
const rpcWrapper = new PikkuRPCService();
|
|
37
|
-
const { rpc } = await rpcWrapper.injectRPCService(services, {}, false);
|
|
38
17
|
if (command === 'watch') {
|
|
39
|
-
await
|
|
18
|
+
await watchCommand.func(services);
|
|
40
19
|
}
|
|
41
20
|
else {
|
|
42
|
-
await
|
|
21
|
+
await allCommand.func(services);
|
|
43
22
|
}
|
|
44
23
|
};
|
|
45
24
|
const all = (program, name, description) => {
|
|
@@ -48,7 +27,7 @@ const all = (program, name, description) => {
|
|
|
48
27
|
.description(description)
|
|
49
28
|
.option('--pikku-config-type', 'The type of your pikku config object')
|
|
50
29
|
.option('--singleton-services-factory-type', 'The type of your singleton services factory')
|
|
51
|
-
.option('--session-services-factory-type', 'The type of your
|
|
30
|
+
.option('--session-services-factory-type', 'The type of your wire services factory')
|
|
52
31
|
.option('-c, --config <string>', 'The path to pikku cli config file')
|
|
53
32
|
.option('-t, --tags <tags...>', 'Which tags to filter by')
|
|
54
33
|
.option('--types <types...>', 'Which types to filter by (http, channel, queue, scheduler, rpc, mcp)')
|