@pikku/cli 0.11.3 → 0.12.0
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/android-chrome-192x192.png +0 -0
- package/console-app/android-chrome-512x512.png +0 -0
- package/console-app/apple-touch-icon.png +0 -0
- package/console-app/assets/index-0Ui5UudO.css +1 -0
- package/console-app/assets/index-C19L3UJu.js +637 -0
- package/console-app/favicon-16x16.png +0 -0
- package/console-app/favicon-32x32.png +0 -0
- package/console-app/favicon.ico +0 -0
- package/console-app/index.html +29 -0
- package/console-app/pikku-console-logo.png +0 -0
- package/console-app/site.webmanifest +19 -0
- package/console-app/wiring-icons/cron.svg +6 -0
- package/console-app/wiring-icons/function.png +0 -0
- package/console-app/wiring-icons/http.svg +2 -0
- package/console-app/wiring-icons/mcp.svg +1 -0
- package/console-app/wiring-icons/queue.svg +18 -0
- package/console-app/wiring-icons/sse.svg +5 -0
- package/console-app/wiring-icons/websocket.svg +8 -0
- package/dist/.pikku/agent/pikku-agent-types.gen.d.ts +19 -0
- package/dist/.pikku/agent/pikku-agent-types.gen.js +4 -0
- package/dist/.pikku/agent/pikku-agent-wirings-meta.gen.d.ts +1 -0
- package/dist/.pikku/agent/pikku-agent-wirings-meta.gen.js +6 -0
- package/dist/.pikku/agent/pikku-agent-wirings-meta.gen.json +3 -0
- package/dist/.pikku/agent/pikku-agent-wirings.gen.d.ts +4 -0
- package/dist/.pikku/agent/pikku-agent-wirings.gen.js +4 -0
- package/dist/.pikku/channel/pikku-channel-types.gen.d.ts +27 -14
- package/dist/.pikku/channel/pikku-channel-types.gen.js +21 -4
- package/dist/.pikku/channel/pikku-channels-meta.gen.js +1 -1
- 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 +18 -3
- package/dist/.pikku/cli/pikku-cli-client.gen.d.ts +1 -1
- package/dist/.pikku/cli/pikku-cli-client.gen.js +1 -1
- package/dist/.pikku/cli/pikku-cli-types.gen.d.ts +9 -1
- package/dist/.pikku/cli/pikku-cli-types.gen.js +12 -2
- package/dist/.pikku/cli/pikku-cli-wirings-meta.gen.js +1 -1
- package/dist/.pikku/cli/pikku-cli-wirings-meta.gen.json +43 -11
- 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 -5
- package/dist/.pikku/cli/pikku-cli.gen.js +1 -5
- package/dist/.pikku/console/pikku-node-types.gen.d.ts +6 -0
- package/dist/.pikku/console/pikku-node-types.gen.js +1 -0
- package/dist/.pikku/function/pikku-function-types.gen.d.ts +71 -20
- package/dist/.pikku/function/pikku-function-types.gen.js +27 -3
- package/dist/.pikku/function/pikku-functions-meta.gen.js +1 -1
- package/dist/.pikku/function/pikku-functions-meta.gen.json +645 -195
- package/dist/.pikku/function/pikku-functions.gen.d.ts +1 -0
- package/dist/.pikku/function/pikku-functions.gen.js +119 -0
- package/dist/.pikku/http/pikku-http-types.gen.d.ts +55 -19
- package/dist/.pikku/http/pikku-http-types.gen.js +11 -2
- 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 +26 -27
- package/dist/.pikku/mcp/pikku-mcp-types.gen.js +2 -12
- package/dist/.pikku/mcp/pikku-mcp-wirings-meta.gen.js +1 -1
- package/dist/.pikku/mcp/pikku-mcp-wirings.gen.d.ts +1 -1
- package/dist/.pikku/mcp/pikku-mcp-wirings.gen.js +2 -2
- package/dist/.pikku/node/pikku-node-types.gen.d.ts +1 -0
- package/dist/.pikku/node/pikku-node-types.gen.js +1 -0
- package/dist/.pikku/pikku-bootstrap.gen.d.ts +5 -4
- package/dist/.pikku/pikku-bootstrap.gen.js +13 -2
- package/dist/.pikku/pikku-services.gen.d.ts +5 -1
- package/dist/.pikku/pikku-services.gen.js +4 -0
- package/dist/.pikku/pikku-types.gen.d.ts +4 -2
- package/dist/.pikku/pikku-types.gen.js +7 -3
- 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 +1 -1
- package/dist/.pikku/queue/pikku-queue-types.gen.js +2 -2
- package/dist/.pikku/queue/pikku-queue-workers-wirings-meta.gen.js +1 -1
- 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 +3 -3
- package/dist/.pikku/rpc/pikku-remote-rpc-workers.gen.js +3 -3
- package/dist/.pikku/rpc/pikku-rpc-wirings-meta.internal.gen.d.ts +1 -0
- package/dist/.pikku/rpc/pikku-rpc-wirings-meta.internal.gen.js +6 -0
- package/dist/.pikku/rpc/pikku-rpc-wirings-meta.internal.gen.json +61 -0
- package/dist/.pikku/scheduler/pikku-scheduler-types.gen.d.ts +1 -1
- package/dist/.pikku/scheduler/pikku-scheduler-types.gen.js +2 -2
- package/dist/.pikku/scheduler/pikku-schedulers-wirings-meta.gen.js +1 -1
- 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 +33 -19
- package/dist/.pikku/schemas/schemas/BootstrapInput.schema.json +1 -0
- package/dist/.pikku/schemas/schemas/ConsoleCommandInput.schema.json +1 -0
- package/dist/.pikku/schemas/schemas/PikkuAIAgentOutput.schema.json +1 -0
- 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/PikkuConsoleFunctionsOutput.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/PikkuNodesMetaOutput.schema.json +1 -0
- package/dist/.pikku/schemas/schemas/PikkuPackageOutput.schema.json +1 -1
- package/dist/.pikku/schemas/schemas/PikkuPermissionsOutput.schema.json +1 -1
- package/dist/.pikku/schemas/schemas/PikkuPublicAgentOutput.schema.json +1 -0
- 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/PikkuTriggerOutput.schema.json +1 -0
- package/dist/.pikku/schemas/schemas/PikkuVersionsInitInput.schema.json +1 -0
- package/dist/.pikku/schemas/schemas/PikkuWorkflowOutput.schema.json +1 -1
- package/dist/.pikku/secrets/pikku-secret-types.gen.d.ts +5 -0
- package/dist/.pikku/secrets/pikku-secret-types.gen.js +4 -0
- package/dist/.pikku/secrets/pikku-secrets.gen.d.ts +11 -0
- package/dist/.pikku/secrets/pikku-secrets.gen.js +10 -0
- package/dist/.pikku/trigger/pikku-trigger-types.gen.d.ts +113 -0
- package/dist/.pikku/trigger/pikku-trigger-types.gen.js +33 -0
- package/dist/.pikku/variables/pikku-variable-types.gen.d.ts +5 -0
- package/dist/.pikku/variables/pikku-variable-types.gen.js +4 -0
- package/dist/.pikku/variables/pikku-variables.gen.d.ts +11 -0
- package/dist/.pikku/variables/pikku-variables.gen.js +10 -0
- package/dist/.pikku/workflow/pikku-workflow-types.gen.d.ts +28 -180
- package/dist/.pikku/workflow/pikku-workflow-types.gen.js +18 -106
- package/dist/.pikku/workflow/pikku-workflow-wirings-meta.gen.js +1 -1
- package/dist/.pikku/workflow/pikku-workflow-wirings.gen.d.ts +1 -1
- package/dist/.pikku/workflow/pikku-workflow-wirings.gen.js +1 -1
- package/dist/bin/pikku.js +20 -47
- package/dist/src/cli.wiring.js +29 -2
- package/dist/src/functions/commands/all.d.ts +1 -1
- package/dist/src/functions/commands/all.js +79 -176
- package/dist/src/functions/commands/bootstrap.d.ts +1 -1
- package/dist/src/functions/commands/bootstrap.js +13 -22
- package/dist/src/functions/commands/console.d.ts +7 -0
- package/dist/src/functions/commands/console.js +106 -0
- package/dist/src/functions/commands/pikku-command-bootstrap.d.ts +4 -0
- package/dist/src/functions/commands/pikku-command-bootstrap.js +67 -0
- package/dist/src/functions/commands/pikku-command-summary.d.ts +1 -0
- package/dist/src/functions/commands/pikku-command-summary.js +55 -0
- package/dist/src/functions/commands/versions-check.d.ts +1 -0
- package/dist/src/functions/commands/versions-check.js +17 -0
- package/dist/src/functions/commands/versions-init.d.ts +7 -0
- package/dist/src/functions/commands/versions-init.js +15 -0
- package/dist/src/functions/commands/versions-update.d.ts +1 -0
- package/dist/src/functions/commands/versions-update.js +20 -0
- package/dist/src/functions/commands/watch.d.ts +1 -1
- package/dist/src/functions/commands/watch.js +4 -5
- package/dist/src/functions/runtimes/fetch/index.d.ts +1 -0
- package/dist/src/functions/{wirings → runtimes}/fetch/index.js +3 -3
- package/dist/src/functions/runtimes/nextjs/pikku-command-nextjs.d.ts +1 -1
- package/dist/src/functions/runtimes/nextjs/pikku-command-nextjs.js +6 -7
- 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 +8 -16
- package/dist/src/functions/runtimes/nextjs/serialize-nextjs-http-wrapper.js +4 -8
- package/dist/src/functions/runtimes/websocket/pikku-command-websocket-typed.d.ts +1 -0
- package/dist/src/functions/{wirings/channels → runtimes/websocket}/pikku-command-websocket-typed.js +2 -2
- package/dist/src/functions/wirings/ai-agent/pikku-command-ai-agent-types.d.ts +1 -0
- package/dist/src/functions/wirings/ai-agent/pikku-command-ai-agent-types.js +19 -0
- package/dist/src/functions/wirings/ai-agent/pikku-command-ai-agent.d.ts +1 -0
- package/dist/src/functions/wirings/ai-agent/pikku-command-ai-agent.js +68 -0
- package/dist/src/functions/wirings/ai-agent/pikku-command-public-agent.d.ts +1 -0
- package/dist/src/functions/wirings/ai-agent/pikku-command-public-agent.js +23 -0
- package/dist/src/functions/wirings/ai-agent/serialize-agent-map.d.ts +4 -0
- package/dist/src/functions/wirings/ai-agent/serialize-agent-map.js +48 -0
- package/dist/src/functions/wirings/ai-agent/serialize-ai-agent-types.d.ts +1 -0
- package/dist/src/functions/wirings/ai-agent/serialize-ai-agent-types.js +31 -0
- package/dist/src/functions/wirings/ai-agent/serialize-public-agent.d.ts +1 -0
- package/dist/src/functions/wirings/ai-agent/serialize-public-agent.js +90 -0
- package/dist/src/functions/wirings/channels/pikku-channels.d.ts +1 -1
- package/dist/src/functions/wirings/channels/pikku-channels.js +1 -1
- package/dist/src/functions/wirings/channels/pikku-command-channel-types.d.ts +1 -1
- package/dist/src/functions/wirings/channels/pikku-command-channel-types.js +3 -3
- package/dist/src/functions/wirings/channels/pikku-command-channels-map.d.ts +1 -1
- package/dist/src/functions/wirings/channels/pikku-command-channels-map.js +2 -2
- 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/channels/serialize-channel-types.d.ts +1 -1
- package/dist/src/functions/wirings/channels/serialize-channel-types.js +47 -17
- package/dist/src/functions/wirings/channels/serialize-typed-channel-map.d.ts +2 -1
- package/dist/src/functions/wirings/channels/serialize-typed-channel-map.js +8 -8
- 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 +3 -7
- package/dist/src/functions/wirings/cli/pikku-command-cli-types.d.ts +1 -1
- package/dist/src/functions/wirings/cli/pikku-command-cli-types.js +1 -1
- package/dist/src/functions/wirings/cli/pikku-command-cli.d.ts +1 -1
- package/dist/src/functions/wirings/cli/pikku-command-cli.js +1 -1
- package/dist/src/functions/wirings/cli/serialize-channel-cli.js +8 -8
- package/dist/src/functions/wirings/cli/serialize-cli-types.js +14 -1
- package/dist/src/functions/wirings/cli/serialize-local-cli-bootstrap.d.ts +2 -2
- package/dist/src/functions/wirings/cli/serialize-local-cli-bootstrap.js +10 -11
- package/dist/src/functions/wirings/console/pikku-command-console-functions.d.ts +1 -0
- package/dist/src/functions/wirings/console/pikku-command-console-functions.js +23 -0
- package/dist/src/functions/wirings/console/pikku-command-node-types.d.ts +1 -0
- package/dist/src/functions/wirings/console/pikku-command-node-types.js +21 -0
- package/dist/src/functions/wirings/console/pikku-command-nodes-meta.d.ts +1 -0
- package/dist/src/functions/wirings/console/pikku-command-nodes-meta.js +79 -0
- package/dist/src/functions/wirings/console/serialize-console-functions.d.ts +1 -0
- package/dist/src/functions/wirings/console/serialize-console-functions.js +229 -0
- package/dist/src/functions/wirings/console/serialize-node-types.d.ts +1 -0
- package/dist/src/functions/wirings/console/serialize-node-types.js +11 -0
- package/dist/src/functions/wirings/functions/pikku-command-external-types.d.ts +1 -0
- package/dist/src/functions/wirings/functions/pikku-command-external-types.js +33 -0
- 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 +2 -2
- package/dist/src/functions/wirings/functions/pikku-command-function-types.d.ts +1 -1
- package/dist/src/functions/wirings/functions/pikku-command-function-types.js +5 -5
- package/dist/src/functions/wirings/functions/pikku-command-functions.d.ts +1 -1
- package/dist/src/functions/wirings/functions/pikku-command-functions.js +1 -1
- package/dist/src/functions/wirings/functions/pikku-command-services.d.ts +1 -1
- package/dist/src/functions/wirings/functions/pikku-command-services.js +1 -1
- package/dist/src/functions/wirings/functions/schemas.d.ts +1 -4
- package/dist/src/functions/wirings/functions/schemas.js +8 -10
- package/dist/src/functions/wirings/functions/serialize-external-types.d.ts +1 -0
- package/dist/src/functions/wirings/functions/serialize-external-types.js +77 -0
- package/dist/src/functions/wirings/functions/serialize-function-imports.d.ts +1 -2
- package/dist/src/functions/wirings/functions/serialize-function-imports.js +10 -17
- package/dist/src/functions/wirings/functions/serialize-function-types.d.ts +1 -1
- package/dist/src/functions/wirings/functions/serialize-function-types.js +99 -32
- 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 +5 -2
- package/dist/src/functions/wirings/http/pikku-command-http-map.d.ts +1 -1
- package/dist/src/functions/wirings/http/pikku-command-http-map.js +4 -4
- 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-http-types.js +1 -1
- package/dist/src/functions/wirings/http/pikku-command-openapi.d.ts +1 -1
- package/dist/src/functions/wirings/http/pikku-command-openapi.js +11 -9
- package/dist/src/functions/wirings/http/pikku-http-routes.d.ts +1 -1
- package/dist/src/functions/wirings/http/pikku-http-routes.js +2 -2
- package/dist/src/functions/wirings/http/serialize-http-types.js +65 -20
- package/dist/src/functions/wirings/http/serialize-typed-http-map.d.ts +5 -2
- package/dist/src/functions/wirings/http/serialize-typed-http-map.js +33 -46
- package/dist/src/functions/wirings/mcp/pikku-command-mcp-json.d.ts +1 -1
- package/dist/src/functions/wirings/mcp/pikku-command-mcp-json.js +5 -6
- package/dist/src/functions/wirings/mcp/pikku-command-mcp-types.d.ts +1 -1
- package/dist/src/functions/wirings/mcp/pikku-command-mcp-types.js +1 -1
- package/dist/src/functions/wirings/mcp/pikku-command-mcp.d.ts +1 -1
- package/dist/src/functions/wirings/mcp/pikku-command-mcp.js +13 -4
- package/dist/src/functions/wirings/mcp/serialize-mcp-types.js +27 -36
- package/dist/src/functions/wirings/middleware/pikku-command-middleware.d.ts +1 -1
- package/dist/src/functions/wirings/middleware/pikku-command-middleware.js +11 -34
- package/dist/src/functions/wirings/middleware/serialize-middleware-imports.js +19 -24
- package/dist/src/functions/wirings/package/pikku-command-package-types.d.ts +2 -0
- package/dist/src/functions/wirings/package/pikku-command-package-types.js +30 -0
- package/dist/src/functions/wirings/package/pikku-command-package.d.ts +1 -1
- package/dist/src/functions/wirings/package/pikku-command-package.js +3 -3
- package/dist/src/functions/wirings/package/serialize-package-types.d.ts +2 -0
- package/dist/src/functions/wirings/package/serialize-package-types.js +10 -0
- package/dist/src/functions/wirings/permissions/pikku-command-permissions.d.ts +1 -1
- package/dist/src/functions/wirings/permissions/pikku-command-permissions.js +10 -5
- 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 +3 -3
- package/dist/src/functions/wirings/queue/pikku-command-queue-service.d.ts +1 -1
- package/dist/src/functions/wirings/queue/pikku-command-queue-service.js +2 -2
- package/dist/src/functions/wirings/queue/pikku-command-queue-types.d.ts +1 -1
- package/dist/src/functions/wirings/queue/pikku-command-queue-types.js +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-map.js +3 -3
- package/dist/src/functions/wirings/queue/pikku-queue.d.ts +1 -1
- package/dist/src/functions/wirings/queue/pikku-queue.js +1 -1
- package/dist/src/functions/wirings/queue/serialize-queue-map.d.ts +5 -2
- package/dist/src/functions/wirings/queue/serialize-queue-map.js +12 -40
- package/dist/src/functions/wirings/queue/serialize-queue-meta.js +9 -10
- package/dist/src/functions/wirings/queue/serialize-queue-types.js +1 -1
- 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 +2 -2
- 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 +1 -1
- package/dist/src/functions/wirings/rpc/pikku-command-rpc-client.d.ts +1 -1
- package/dist/src/functions/wirings/rpc/pikku-command-rpc-client.js +2 -2
- package/dist/src/functions/wirings/rpc/pikku-command-rpc-map.d.ts +2 -2
- package/dist/src/functions/wirings/rpc/pikku-command-rpc-map.js +12 -7
- package/dist/src/functions/wirings/rpc/pikku-command-rpc.d.ts +1 -1
- package/dist/src/functions/wirings/rpc/pikku-command-rpc.js +5 -2
- package/dist/src/functions/wirings/rpc/serialize-public-rpc.d.ts +1 -1
- package/dist/src/functions/wirings/rpc/serialize-public-rpc.js +11 -6
- package/dist/src/functions/wirings/rpc/serialize-remote-rpc.js +2 -2
- package/dist/src/functions/wirings/rpc/serialize-rpc-wrapper.js +19 -8
- package/dist/src/functions/wirings/rpc/serialize-typed-rpc-map.d.ts +6 -3
- package/dist/src/functions/wirings/rpc/serialize-typed-rpc-map.js +85 -60
- package/dist/src/functions/wirings/scheduler/pikku-command-scheduler-types.d.ts +1 -1
- package/dist/src/functions/wirings/scheduler/pikku-command-scheduler-types.js +1 -1
- package/dist/src/functions/wirings/scheduler/pikku-command-scheduler.d.ts +1 -1
- package/dist/src/functions/wirings/scheduler/pikku-command-scheduler.js +1 -1
- package/dist/src/functions/wirings/scheduler/serialize-scheduler-meta.d.ts +1 -1
- package/dist/src/functions/wirings/scheduler/serialize-scheduler-meta.js +13 -12
- package/dist/src/functions/wirings/scheduler/serialize-scheduler-types.js +1 -1
- package/dist/src/functions/wirings/secrets/pikku-command-secrets.d.ts +1 -0
- package/dist/src/functions/wirings/secrets/pikku-command-secrets.js +31 -0
- package/dist/src/functions/wirings/secrets/serialize-secrets-types.d.ts +9 -0
- package/dist/src/functions/wirings/secrets/serialize-secrets-types.js +64 -0
- package/dist/src/functions/wirings/triggers/pikku-command-trigger-types.d.ts +1 -0
- package/dist/src/functions/wirings/triggers/pikku-command-trigger-types.js +24 -0
- package/dist/src/functions/wirings/triggers/pikku-command-trigger.d.ts +1 -0
- package/dist/src/functions/wirings/triggers/pikku-command-trigger.js +40 -0
- package/dist/src/functions/wirings/triggers/serialize-trigger-meta.d.ts +5 -0
- package/dist/src/functions/wirings/triggers/serialize-trigger-meta.js +35 -0
- package/dist/src/functions/wirings/triggers/serialize-trigger-types.d.ts +4 -0
- package/dist/src/functions/wirings/triggers/serialize-trigger-types.js +163 -0
- package/dist/src/functions/wirings/variables/pikku-command-variables.d.ts +1 -0
- package/dist/src/functions/wirings/variables/pikku-command-variables.js +31 -0
- package/dist/src/functions/wirings/variables/serialize-variables-types.d.ts +9 -0
- package/dist/src/functions/wirings/variables/serialize-variables-types.js +53 -0
- package/dist/src/functions/wirings/workflow/pikku-command-workflow.d.ts +1 -1
- package/dist/src/functions/wirings/workflow/pikku-command-workflow.js +6 -35
- package/dist/src/functions/wirings/workflow/serialize-workflow-map.d.ts +4 -2
- package/dist/src/functions/wirings/workflow/serialize-workflow-map.js +63 -12
- package/dist/src/functions/wirings/workflow/serialize-workflow-meta.js +32 -33
- package/dist/src/functions/wirings/workflow/serialize-workflow-registration.d.ts +1 -1
- package/dist/src/functions/wirings/workflow/serialize-workflow-registration.js +4 -31
- package/dist/src/functions/wirings/workflow/serialize-workflow-types.d.ts +1 -6
- package/dist/src/functions/wirings/workflow/serialize-workflow-types.js +60 -256
- package/dist/src/functions/wirings/workflow/serialize-workflow-workers.js +5 -5
- package/dist/src/services/cli-logger-forwarder.service.d.ts +1 -1
- package/dist/src/services/cli-logger-forwarder.service.js +1 -1
- package/dist/src/services/cli-logger.service.d.ts +1 -1
- package/dist/src/services/cli-logger.service.js +1 -1
- package/dist/src/services.d.ts +1 -1
- package/dist/src/services.js +53 -6
- package/dist/src/utils/command-summary.d.ts +2 -1
- package/dist/src/utils/command-summary.js +2 -1
- package/dist/src/utils/contract-versions.d.ts +6 -0
- package/dist/src/utils/contract-versions.js +25 -0
- package/dist/src/utils/file-import-path.js +20 -6
- package/dist/src/utils/pikku-cli-config.js +77 -14
- package/dist/src/utils/pikku-files-and-methods.d.ts +0 -1
- package/dist/src/utils/pikku-files-and-methods.js +15 -60
- package/dist/src/utils/serialize-import-map.d.ts +2 -1
- package/dist/src/utils/serialize-import-map.js +3 -54
- package/dist/src/utils/serialize-meta-ts.d.ts +8 -0
- package/dist/src/utils/serialize-meta-ts.js +12 -0
- package/dist/src/utils/serialize-schemas.d.ts +3 -0
- package/dist/src/utils/serialize-schemas.js +38 -0
- package/dist/src/utils/strip-verbose-meta.d.ts +5 -5
- package/dist/src/utils/strip-verbose-meta.js +15 -15
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +19 -10
- package/.pikku/channel/pikku-channel-types.gen.ts +0 -148
- package/.pikku/channel/pikku-channels-map.gen.d.ts +0 -47
- package/.pikku/channel/pikku-channels-meta.gen.json +0 -1
- package/.pikku/channel/pikku-channels-meta.gen.ts +0 -7
- package/.pikku/channel/pikku-channels.gen.ts +0 -4
- package/.pikku/cli/pikku-cli-channel.ts +0 -92
- package/.pikku/cli/pikku-cli-client.gen.ts +0 -54
- package/.pikku/cli/pikku-cli-types.gen.ts +0 -92
- package/.pikku/cli/pikku-cli-wirings-meta.gen.json +0 -147
- package/.pikku/cli/pikku-cli-wirings-meta.gen.ts +0 -7
- package/.pikku/cli/pikku-cli-wirings.gen.ts +0 -6
- package/.pikku/cli/pikku-cli.gen.ts +0 -41
- package/.pikku/forge/pikku-forge-types.gen.ts +0 -83
- package/.pikku/function/pikku-function-types.gen.ts +0 -572
- package/.pikku/function/pikku-functions-meta-verbose.gen.json +0 -1030
- package/.pikku/function/pikku-functions-meta.gen.json +0 -656
- package/.pikku/function/pikku-functions-meta.gen.ts +0 -6
- package/.pikku/http/pikku-http-types.gen.ts +0 -102
- package/.pikku/http/pikku-http-wirings-map.gen.d.ts +0 -46
- package/.pikku/http/pikku-http-wirings-meta.gen.json +0 -9
- package/.pikku/http/pikku-http-wirings-meta.gen.ts +0 -7
- package/.pikku/http/pikku-http-wirings.gen.ts +0 -4
- package/.pikku/mcp/pikku-mcp-types.gen.ts +0 -192
- package/.pikku/mcp/pikku-mcp-wirings-meta.gen.json +0 -5
- package/.pikku/mcp/pikku-mcp-wirings-meta.gen.ts +0 -9
- package/.pikku/mcp/pikku-mcp-wirings.gen.ts +0 -4
- package/.pikku/mcp/pikku-mcp.gen.json +0 -5
- package/.pikku/pikku-bootstrap.gen.ts +0 -17
- package/.pikku/pikku-services.gen.ts +0 -28
- package/.pikku/pikku-types.gen.ts +0 -30
- package/.pikku/pikku-websocket.gen.ts +0 -90
- package/.pikku/queue/pikku-queue-types.gen.ts +0 -27
- package/.pikku/queue/pikku-queue-workers-wirings-map.gen.d.ts +0 -60
- package/.pikku/queue/pikku-queue-workers-wirings-meta.gen.json +0 -1
- package/.pikku/queue/pikku-queue-workers-wirings-meta.gen.ts +0 -8
- package/.pikku/queue/pikku-queue-workers-wirings.gen.ts +0 -4
- package/.pikku/rpc/pikku-remote-rpc-workers.gen.ts +0 -30
- package/.pikku/rpc/pikku-rpc-wirings-map.gen.d.ts +0 -62
- package/.pikku/rpc/pikku-rpc-wirings-map.internal.gen.d.ts +0 -105
- package/.pikku/scheduler/pikku-scheduler-types.gen.ts +0 -25
- package/.pikku/scheduler/pikku-schedulers-wirings-meta.gen.json +0 -1
- package/.pikku/scheduler/pikku-schedulers-wirings-meta.gen.ts +0 -8
- package/.pikku/scheduler/pikku-schedulers-wirings.gen.ts +0 -4
- package/.pikku/schemas/register.gen.ts +0 -71
- package/.pikku/schemas/schemas/PikkuCLIConfig.schema.json +0 -1
- package/.pikku/schemas/schemas/PikkuCLIOutput.schema.json +0 -1
- package/.pikku/schemas/schemas/PikkuChannelsOutput.schema.json +0 -1
- package/.pikku/schemas/schemas/PikkuForgeNodesOutput.schema.json +0 -1
- package/.pikku/schemas/schemas/PikkuFunctionsOutput.schema.json +0 -1
- package/.pikku/schemas/schemas/PikkuHTTPOutput.schema.json +0 -1
- package/.pikku/schemas/schemas/PikkuMCPOutput.schema.json +0 -1
- package/.pikku/schemas/schemas/PikkuMiddlewareOutput.schema.json +0 -1
- package/.pikku/schemas/schemas/PikkuPackageOutput.schema.json +0 -1
- package/.pikku/schemas/schemas/PikkuPermissionsOutput.schema.json +0 -1
- package/.pikku/schemas/schemas/PikkuPublicRPCOutput.schema.json +0 -1
- package/.pikku/schemas/schemas/PikkuQueueOutput.schema.json +0 -1
- package/.pikku/schemas/schemas/PikkuRPCOutput.schema.json +0 -1
- package/.pikku/schemas/schemas/PikkuRemoteRPCOutput.schema.json +0 -1
- package/.pikku/schemas/schemas/PikkuSchedulerOutput.schema.json +0 -1
- package/.pikku/schemas/schemas/PikkuSchemasOutput.schema.json +0 -1
- package/.pikku/schemas/schemas/PikkuWorkflowOutput.schema.json +0 -1
- package/.pikku/services/config.gen.json +0 -104
- package/.pikku/services/getInspectorState.gen.json +0 -10
- package/.pikku/services/jwt.gen.json +0 -13
- package/.pikku/services/logger.gen.json +0 -25
- package/.pikku/services/queueService.gen.json +0 -14
- package/.pikku/services/schedulerService.gen.json +0 -17
- package/.pikku/services/schema.gen.json +0 -14
- package/.pikku/services/secrets.gen.json +0 -13
- package/.pikku/services/variables.gen.json +0 -13
- package/.pikku/services/workflowService.gen.json +0 -31
- package/.pikku/workflow/pikku-workflow-map.gen.d.ts +0 -28
- package/.pikku/workflow/pikku-workflow-types.gen.ts +0 -349
- package/.pikku/workflow/pikku-workflow-wirings-meta.gen.ts +0 -9
- package/.pikku/workflow/pikku-workflow-wirings.gen.ts +0 -3
- package/CHANGELOG.md +0 -957
- package/bin/pikku.ts +0 -88
- package/build.sh +0 -75
- package/dist/.pikku/forge/pikku-forge-types.gen.d.ts +0 -72
- package/dist/.pikku/forge/pikku-forge-types.gen.js +0 -55
- package/dist/.pikku/schemas/schemas/PikkuForgeNodesOutput.schema.json +0 -1
- package/dist/src/functions/wirings/channels/pikku-command-websocket-typed.d.ts +0 -1
- package/dist/src/functions/wirings/fetch/index.d.ts +0 -1
- package/dist/src/functions/wirings/forge/pikku-command-forge-nodes.d.ts +0 -1
- package/dist/src/functions/wirings/forge/pikku-command-forge-nodes.js +0 -90
- package/dist/src/functions/wirings/forge/pikku-command-forge-types.d.ts +0 -1
- package/dist/src/functions/wirings/forge/pikku-command-forge-types.js +0 -26
- package/dist/src/functions/wirings/forge/serialize-forge-types.d.ts +0 -4
- package/dist/src/functions/wirings/forge/serialize-forge-types.js +0 -90
- package/dist/src/functions/wirings/functions/pikku-function-types.d.ts +0 -1
- package/dist/src/functions/wirings/functions/pikku-function-types.js +0 -18
- package/dist/src/functions/wirings/http/openapi-spec-generator.d.ts +0 -81
- package/dist/src/functions/wirings/http/openapi-spec-generator.js +0 -152
- package/dist/src/functions/wirings/mcp/serialize-mcp-json.d.ts +0 -5
- package/dist/src/functions/wirings/mcp/serialize-mcp-json.js +0 -102
- package/dist/src/functions/wirings/middleware/serialize-middleware-groups-meta.d.ts +0 -11
- package/dist/src/functions/wirings/middleware/serialize-middleware-groups-meta.js +0 -36
- package/dist/src/functions/wirings/services/pikku-command-service-metadata.d.ts +0 -1
- package/dist/src/functions/wirings/services/pikku-command-service-metadata.js +0 -22
- package/dist/src/utils/custom-types-generator.d.ts +0 -2
- package/dist/src/utils/custom-types-generator.js +0 -41
- package/dist/src/utils/schema-generator.d.ts +0 -7
- package/dist/src/utils/schema-generator.js +0 -238
- package/pikku.config.json +0 -29
- package/run-tests.sh +0 -53
- package/src/cli.wiring.ts +0 -112
- package/src/functions/commands/all.ts +0 -313
- package/src/functions/commands/bootstrap.ts +0 -35
- package/src/functions/commands/watch.ts +0 -61
- package/src/functions/runtimes/nextjs/pikku-command-nextjs.ts +0 -131
- package/src/functions/runtimes/nextjs/serialize-nextjs-backend-wrapper.ts +0 -282
- package/src/functions/runtimes/nextjs/serialize-nextjs-http-wrapper.ts +0 -215
- package/src/functions/wirings/channels/pikku-channels.ts +0 -59
- package/src/functions/wirings/channels/pikku-command-channel-types.ts +0 -25
- package/src/functions/wirings/channels/pikku-command-channels-map.ts +0 -26
- package/src/functions/wirings/channels/pikku-command-channels.ts +0 -83
- package/src/functions/wirings/channels/pikku-command-websocket-typed.ts +0 -37
- package/src/functions/wirings/channels/serialize-channel-types.ts +0 -151
- package/src/functions/wirings/channels/serialize-typed-channel-map.ts +0 -173
- package/src/functions/wirings/channels/serialize-websocket-wrapper.ts +0 -89
- package/src/functions/wirings/cli/pikku-command-cli-entry.ts +0 -216
- package/src/functions/wirings/cli/pikku-command-cli-types.ts +0 -48
- package/src/functions/wirings/cli/pikku-command-cli.ts +0 -81
- package/src/functions/wirings/cli/serialize-channel-cli-client.ts +0 -184
- package/src/functions/wirings/cli/serialize-channel-cli.ts +0 -134
- package/src/functions/wirings/cli/serialize-cli-types.ts +0 -101
- package/src/functions/wirings/cli/serialize-local-cli-bootstrap.ts +0 -80
- package/src/functions/wirings/fetch/index.ts +0 -36
- package/src/functions/wirings/forge/pikku-command-forge-nodes.ts +0 -135
- package/src/functions/wirings/forge/pikku-command-forge-types.ts +0 -38
- package/src/functions/wirings/forge/serialize-forge-types.ts +0 -94
- package/src/functions/wirings/functions/pikku-command-function-types-split.ts +0 -61
- package/src/functions/wirings/functions/pikku-command-function-types.ts +0 -50
- package/src/functions/wirings/functions/pikku-command-functions.ts +0 -104
- package/src/functions/wirings/functions/pikku-command-services.ts +0 -140
- package/src/functions/wirings/functions/pikku-function-types.ts +0 -45
- package/src/functions/wirings/functions/schemas.ts +0 -56
- package/src/functions/wirings/functions/serialize-function-imports.ts +0 -80
- package/src/functions/wirings/functions/serialize-function-types.ts +0 -587
- package/src/functions/wirings/functions/serialize-pikku-types-hub.ts +0 -39
- package/src/functions/wirings/http/openapi-spec-generator.ts +0 -265
- package/src/functions/wirings/http/pikku-command-http-map.ts +0 -27
- package/src/functions/wirings/http/pikku-command-http-routes.ts +0 -80
- package/src/functions/wirings/http/pikku-command-http-types.ts +0 -25
- package/src/functions/wirings/http/pikku-command-openapi.ts +0 -64
- package/src/functions/wirings/http/pikku-http-routes.ts +0 -61
- package/src/functions/wirings/http/serialize-fetch-wrapper.ts +0 -67
- package/src/functions/wirings/http/serialize-http-types.ts +0 -105
- package/src/functions/wirings/http/serialize-typed-http-map.ts +0 -178
- package/src/functions/wirings/mcp/pikku-command-mcp-json.ts +0 -33
- package/src/functions/wirings/mcp/pikku-command-mcp-types.ts +0 -25
- package/src/functions/wirings/mcp/pikku-command-mcp.ts +0 -162
- package/src/functions/wirings/mcp/serialize-mcp-json.ts +0 -161
- package/src/functions/wirings/mcp/serialize-mcp-types.ts +0 -195
- package/src/functions/wirings/middleware/pikku-command-middleware.ts +0 -89
- package/src/functions/wirings/middleware/serialize-middleware-groups-meta.ts +0 -40
- package/src/functions/wirings/middleware/serialize-middleware-imports.ts +0 -78
- package/src/functions/wirings/package/pikku-command-package.ts +0 -81
- package/src/functions/wirings/package/serialize-package.ts +0 -69
- package/src/functions/wirings/permissions/pikku-command-permissions.ts +0 -49
- package/src/functions/wirings/permissions/serialize-permissions-imports.test.ts +0 -274
- package/src/functions/wirings/permissions/serialize-permissions-imports.ts +0 -78
- package/src/functions/wirings/queue/pikku-command-queue-map.ts +0 -26
- package/src/functions/wirings/queue/pikku-command-queue-service.ts +0 -37
- package/src/functions/wirings/queue/pikku-command-queue-types.ts +0 -25
- package/src/functions/wirings/queue/pikku-command-queue.ts +0 -86
- package/src/functions/wirings/queue/pikku-queue-map.ts +0 -26
- package/src/functions/wirings/queue/pikku-queue.ts +0 -66
- package/src/functions/wirings/queue/serialize-queue-map.ts +0 -134
- package/src/functions/wirings/queue/serialize-queue-meta.ts +0 -24
- package/src/functions/wirings/queue/serialize-queue-types.ts +0 -30
- package/src/functions/wirings/queue/serialize-queue-wrapper.ts +0 -35
- package/src/functions/wirings/rpc/pikku-command-public-rpc.ts +0 -32
- package/src/functions/wirings/rpc/pikku-command-remote-rpc.ts +0 -35
- package/src/functions/wirings/rpc/pikku-command-rpc-client.ts +0 -35
- package/src/functions/wirings/rpc/pikku-command-rpc-map.ts +0 -51
- package/src/functions/wirings/rpc/pikku-command-rpc.ts +0 -49
- package/src/functions/wirings/rpc/serialize-public-rpc.ts +0 -37
- package/src/functions/wirings/rpc/serialize-remote-rpc.ts +0 -33
- package/src/functions/wirings/rpc/serialize-rpc-wrapper.ts +0 -68
- package/src/functions/wirings/rpc/serialize-typed-rpc-map.ts +0 -194
- package/src/functions/wirings/scheduler/pikku-command-scheduler-types.ts +0 -25
- package/src/functions/wirings/scheduler/pikku-command-scheduler.ts +0 -88
- package/src/functions/wirings/scheduler/serialize-scheduler-meta.ts +0 -37
- package/src/functions/wirings/scheduler/serialize-scheduler-types.ts +0 -28
- package/src/functions/wirings/services/pikku-command-service-metadata.ts +0 -25
- package/src/functions/wirings/workflow/pikku-command-workflow.ts +0 -218
- package/src/functions/wirings/workflow/serialize-workflow-map.ts +0 -121
- package/src/functions/wirings/workflow/serialize-workflow-meta.ts +0 -73
- package/src/functions/wirings/workflow/serialize-workflow-registration.ts +0 -83
- package/src/functions/wirings/workflow/serialize-workflow-types.ts +0 -357
- package/src/functions/wirings/workflow/serialize-workflow-workers.ts +0 -47
- package/src/middleware/log-command-info-and-time.ts +0 -35
- package/src/services/cli-logger-forwarder.service.ts +0 -99
- package/src/services/cli-logger.service.ts +0 -108
- package/src/services.ts +0 -322
- package/src/utils/check-required-types.ts +0 -65
- package/src/utils/command-summary.ts +0 -107
- package/src/utils/custom-types-generator.ts +0 -55
- package/src/utils/file-import-path.test.ts +0 -175
- package/src/utils/file-import-path.ts +0 -53
- package/src/utils/file-imports-serializer.ts +0 -25
- package/src/utils/file-writer.ts +0 -72
- package/src/utils/generate-bootstrap-file.ts +0 -43
- package/src/utils/get-cli-version.ts +0 -28
- package/src/utils/pikku-cli-config.ts +0 -495
- package/src/utils/pikku-files-and-methods.ts +0 -145
- package/src/utils/schema-generator.ts +0 -335
- package/src/utils/serialize-import-map.ts +0 -102
- package/src/utils/strip-verbose-meta.ts +0 -254
- package/tsconfig.json +0 -21
- package/types/application-types.d.ts +0 -27
- package/types/config.d.ts +0 -304
- /package/dist/src/functions/{wirings/channels → runtimes/websocket}/serialize-websocket-wrapper.d.ts +0 -0
- /package/dist/src/functions/{wirings/channels → runtimes/websocket}/serialize-websocket-wrapper.js +0 -0
|
@@ -1,121 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Generate workflow map type definitions for type-safe client API
|
|
3
|
-
*/
|
|
4
|
-
import type { WorkflowsMeta } from '@pikku/core/workflow'
|
|
5
|
-
import { serializeImportMap } from '../../../utils/serialize-import-map.js'
|
|
6
|
-
import { TypesMap } from '@pikku/inspector'
|
|
7
|
-
import { FunctionsMeta } from '@pikku/core'
|
|
8
|
-
import { generateCustomTypes } from '../../../utils/custom-types-generator.js'
|
|
9
|
-
|
|
10
|
-
export const serializeWorkflowMap = (
|
|
11
|
-
relativeToPath: string,
|
|
12
|
-
packageMappings: Record<string, string>,
|
|
13
|
-
typesMap: TypesMap,
|
|
14
|
-
functionsMeta: FunctionsMeta,
|
|
15
|
-
workflowsMeta: WorkflowsMeta
|
|
16
|
-
) => {
|
|
17
|
-
const requiredTypes = new Set<string>()
|
|
18
|
-
|
|
19
|
-
// First generate workflows to collect required types
|
|
20
|
-
const serializedWorkflows = generateWorkflows(
|
|
21
|
-
workflowsMeta,
|
|
22
|
-
functionsMeta,
|
|
23
|
-
typesMap,
|
|
24
|
-
requiredTypes
|
|
25
|
-
)
|
|
26
|
-
|
|
27
|
-
// Only generate custom types if we have workflows with types
|
|
28
|
-
const hasWorkflows = Object.keys(workflowsMeta).length > 0
|
|
29
|
-
const serializedCustomTypes = hasWorkflows
|
|
30
|
-
? generateCustomTypes(typesMap, requiredTypes)
|
|
31
|
-
: ''
|
|
32
|
-
|
|
33
|
-
const serializedImportMap = hasWorkflows
|
|
34
|
-
? serializeImportMap(
|
|
35
|
-
relativeToPath,
|
|
36
|
-
packageMappings,
|
|
37
|
-
typesMap,
|
|
38
|
-
requiredTypes
|
|
39
|
-
)
|
|
40
|
-
: ''
|
|
41
|
-
|
|
42
|
-
return `/**
|
|
43
|
-
* Workflow type map with input/output types for each workflow
|
|
44
|
-
*/
|
|
45
|
-
|
|
46
|
-
${serializedImportMap}
|
|
47
|
-
${serializedCustomTypes}
|
|
48
|
-
|
|
49
|
-
interface WorkflowHandler<I, O> {
|
|
50
|
-
input: I;
|
|
51
|
-
output: O;
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
${serializedWorkflows}
|
|
55
|
-
|
|
56
|
-
export type WorkflowClient<Name extends keyof WorkflowMap> = {
|
|
57
|
-
start: (input: WorkflowMap[Name]['input']) => Promise<{ runId: string }>;
|
|
58
|
-
getRun: <output extends keyof WorkflowMap[Name]>(runId: string) => Promise<WorkflowMap[Name][output]>;
|
|
59
|
-
cancelRun: (runId: string) => Promise<boolean>;
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
export type TypedWorkflowClients = {
|
|
63
|
-
[Name in keyof WorkflowMap]: WorkflowClient<Name>;
|
|
64
|
-
}
|
|
65
|
-
`
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
function generateWorkflows(
|
|
69
|
-
workflowsMeta: WorkflowsMeta,
|
|
70
|
-
functionsMeta: FunctionsMeta,
|
|
71
|
-
typesMap: TypesMap,
|
|
72
|
-
requiredTypes: Set<string>
|
|
73
|
-
) {
|
|
74
|
-
const workflowsObj: Record<
|
|
75
|
-
string,
|
|
76
|
-
{ inputType: string; outputType: string }
|
|
77
|
-
> = {}
|
|
78
|
-
|
|
79
|
-
for (const [workflowName, { pikkuFuncName }] of Object.entries(
|
|
80
|
-
workflowsMeta
|
|
81
|
-
)) {
|
|
82
|
-
const functionMeta = functionsMeta[pikkuFuncName]
|
|
83
|
-
if (!functionMeta) {
|
|
84
|
-
throw new Error(
|
|
85
|
-
`Function ${workflowName} not found in functionsMeta. Please check your configuration.`
|
|
86
|
-
)
|
|
87
|
-
}
|
|
88
|
-
|
|
89
|
-
const input = functionMeta.inputs ? functionMeta.inputs[0] : undefined
|
|
90
|
-
const output = functionMeta.outputs ? functionMeta.outputs[0] : undefined
|
|
91
|
-
|
|
92
|
-
let inputType = 'void'
|
|
93
|
-
if (input) {
|
|
94
|
-
try {
|
|
95
|
-
inputType = typesMap.getTypeMeta(input).uniqueName
|
|
96
|
-
} catch {
|
|
97
|
-
inputType = input
|
|
98
|
-
}
|
|
99
|
-
}
|
|
100
|
-
let outputType = 'void'
|
|
101
|
-
if (output) {
|
|
102
|
-
try {
|
|
103
|
-
outputType = typesMap.getTypeMeta(output).uniqueName
|
|
104
|
-
} catch {
|
|
105
|
-
outputType = output
|
|
106
|
-
}
|
|
107
|
-
}
|
|
108
|
-
|
|
109
|
-
requiredTypes.add(inputType)
|
|
110
|
-
requiredTypes.add(outputType)
|
|
111
|
-
workflowsObj[workflowName] = { inputType, outputType }
|
|
112
|
-
}
|
|
113
|
-
|
|
114
|
-
let workflowsStr = 'export type WorkflowMap = {\n'
|
|
115
|
-
for (const [workflowName, handler] of Object.entries(workflowsObj)) {
|
|
116
|
-
workflowsStr += ` readonly '${workflowName}': WorkflowHandler<${handler.inputType}, ${handler.outputType}>,\n`
|
|
117
|
-
}
|
|
118
|
-
workflowsStr += '};\n'
|
|
119
|
-
|
|
120
|
-
return workflowsStr
|
|
121
|
-
}
|
|
@@ -1,73 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Generate workflow meta aggregation file that imports individual workflow JSON files
|
|
3
|
-
* and registers them with pikkuState
|
|
4
|
-
*/
|
|
5
|
-
import { getFileImportRelativePath } from '../../../utils/file-import-path.js'
|
|
6
|
-
|
|
7
|
-
export const serializeWorkflowMeta = (
|
|
8
|
-
outputPath: string,
|
|
9
|
-
metaDir: string,
|
|
10
|
-
workflowNames: string[],
|
|
11
|
-
packageMappings: Record<string, string>,
|
|
12
|
-
supportsImportAttributes: boolean,
|
|
13
|
-
packageName?: string
|
|
14
|
-
) => {
|
|
15
|
-
const lines: string[] = []
|
|
16
|
-
|
|
17
|
-
if (workflowNames.length === 0) {
|
|
18
|
-
// Empty meta file - still need to register empty meta
|
|
19
|
-
lines.push("import { pikkuState } from '@pikku/core'")
|
|
20
|
-
lines.push(
|
|
21
|
-
"import type { SerializedWorkflowGraphs } from '@pikku/inspector/workflow-graph'"
|
|
22
|
-
)
|
|
23
|
-
lines.push('')
|
|
24
|
-
lines.push('const workflowsMeta: SerializedWorkflowGraphs = {}')
|
|
25
|
-
lines.push('')
|
|
26
|
-
const packageNameValue = packageName ? `'${packageName}'` : 'null'
|
|
27
|
-
lines.push(
|
|
28
|
-
`pikkuState(${packageNameValue}, 'workflows', 'meta', workflowsMeta)`
|
|
29
|
-
)
|
|
30
|
-
return lines.join('\n')
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
// Imports
|
|
34
|
-
lines.push("import { pikkuState } from '@pikku/core'")
|
|
35
|
-
lines.push(
|
|
36
|
-
"import type { SerializedWorkflowGraphs } from '@pikku/inspector/workflow-graph'"
|
|
37
|
-
)
|
|
38
|
-
lines.push('')
|
|
39
|
-
|
|
40
|
-
// Import each workflow meta JSON
|
|
41
|
-
const sortedNames = [...workflowNames].sort()
|
|
42
|
-
for (const name of sortedNames) {
|
|
43
|
-
const jsonPath = `${metaDir}/${name}.gen.json`
|
|
44
|
-
const importPath = getFileImportRelativePath(
|
|
45
|
-
outputPath,
|
|
46
|
-
jsonPath,
|
|
47
|
-
packageMappings
|
|
48
|
-
)
|
|
49
|
-
const importStatement = supportsImportAttributes
|
|
50
|
-
? `import ${name}Meta from '${importPath}' with { type: 'json' }`
|
|
51
|
-
: `import ${name}Meta from '${importPath}'`
|
|
52
|
-
lines.push(importStatement)
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
lines.push('')
|
|
56
|
-
|
|
57
|
-
// Create aggregated meta object (cast JSON imports to proper types)
|
|
58
|
-
lines.push('const workflowsMeta = {')
|
|
59
|
-
for (const name of sortedNames) {
|
|
60
|
-
lines.push(` '${name}': ${name}Meta,`)
|
|
61
|
-
}
|
|
62
|
-
lines.push('} as SerializedWorkflowGraphs')
|
|
63
|
-
|
|
64
|
-
lines.push('')
|
|
65
|
-
|
|
66
|
-
// Register meta with pikkuState
|
|
67
|
-
const packageNameValue = packageName ? `'${packageName}'` : 'null'
|
|
68
|
-
lines.push(
|
|
69
|
-
`pikkuState(${packageNameValue}, 'workflows', 'meta', workflowsMeta)`
|
|
70
|
-
)
|
|
71
|
-
|
|
72
|
-
return lines.join('\n')
|
|
73
|
-
}
|
|
@@ -1,83 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Generate workflow runtime registration
|
|
3
|
-
* Imports meta (which registers with pikkuState) and registers DSL workflows (addWorkflow) and graph workflows (addWorkflowGraph)
|
|
4
|
-
*/
|
|
5
|
-
import { getFileImportRelativePath } from '../../../utils/file-import-path.js'
|
|
6
|
-
|
|
7
|
-
export const serializeWorkflowRegistration = (
|
|
8
|
-
outputPath: string,
|
|
9
|
-
metaImportPath: string,
|
|
10
|
-
workflowNames: string[],
|
|
11
|
-
workflowFiles: Map<string, { path: string; exportedName: string }>,
|
|
12
|
-
graphFiles: Map<string, { path: string; exportedName: string }>,
|
|
13
|
-
packageMappings: Record<string, string>,
|
|
14
|
-
_packageName?: string
|
|
15
|
-
) => {
|
|
16
|
-
const lines: string[] = []
|
|
17
|
-
const hasWorkflows = workflowNames.length > 0
|
|
18
|
-
const hasDslWorkflows = workflowFiles.size > 0
|
|
19
|
-
const hasGraphWorkflows = graphFiles.size > 0
|
|
20
|
-
|
|
21
|
-
// Imports
|
|
22
|
-
const imports: string[] = []
|
|
23
|
-
if (hasDslWorkflows) {
|
|
24
|
-
imports.push('addWorkflow')
|
|
25
|
-
}
|
|
26
|
-
if (hasGraphWorkflows) {
|
|
27
|
-
imports.push('addWorkflowGraph')
|
|
28
|
-
}
|
|
29
|
-
if (imports.length > 0) {
|
|
30
|
-
lines.push(`import { ${imports.join(', ')} } from '@pikku/core/workflow'`)
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
// Import meta file (which registers meta with pikkuState)
|
|
34
|
-
if (hasWorkflows) {
|
|
35
|
-
lines.push(`import '${metaImportPath}'`)
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
// Import DSL workflow functions
|
|
39
|
-
const sortedWorkflows = Array.from(workflowFiles.entries()).sort((a, b) =>
|
|
40
|
-
a[0].localeCompare(b[0])
|
|
41
|
-
)
|
|
42
|
-
for (const [, { path, exportedName }] of sortedWorkflows) {
|
|
43
|
-
const importPath = getFileImportRelativePath(
|
|
44
|
-
outputPath,
|
|
45
|
-
path,
|
|
46
|
-
packageMappings
|
|
47
|
-
)
|
|
48
|
-
lines.push(`import { ${exportedName} } from '${importPath}'`)
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
// Import graph workflow definitions
|
|
52
|
-
const sortedGraphWorkflows = Array.from(graphFiles.entries()).sort((a, b) =>
|
|
53
|
-
a[0].localeCompare(b[0])
|
|
54
|
-
)
|
|
55
|
-
for (const [, { path, exportedName }] of sortedGraphWorkflows) {
|
|
56
|
-
const importPath = getFileImportRelativePath(
|
|
57
|
-
outputPath,
|
|
58
|
-
path,
|
|
59
|
-
packageMappings
|
|
60
|
-
)
|
|
61
|
-
lines.push(`import { ${exportedName} } from '${importPath}'`)
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
lines.push('')
|
|
65
|
-
|
|
66
|
-
// Register DSL workflows
|
|
67
|
-
for (const [pikkuFuncName, { exportedName }] of sortedWorkflows) {
|
|
68
|
-
lines.push(`addWorkflow('${pikkuFuncName}', ${exportedName})`)
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
// Register graph workflows
|
|
72
|
-
for (const [workflowName, { exportedName }] of sortedGraphWorkflows) {
|
|
73
|
-
lines.push(`addWorkflowGraph('${workflowName}', ${exportedName})`)
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
// Export workflow names type
|
|
77
|
-
if (hasWorkflows) {
|
|
78
|
-
lines.push('')
|
|
79
|
-
lines.push(`export type WorkflowNames = '${workflowNames.join("' | '")}'`)
|
|
80
|
-
}
|
|
81
|
-
|
|
82
|
-
return lines.join('\n')
|
|
83
|
-
}
|
|
@@ -1,357 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Generate all workflow type helpers for authoring workflows
|
|
3
|
-
* Combines DSL helpers (pikkuWorkflowFunc, pikkuWorkflowComplexFunc) and
|
|
4
|
-
* graph helpers (pikkuWorkflowGraph) with unified wireWorkflow
|
|
5
|
-
*/
|
|
6
|
-
export const serializeWorkflowTypes = (
|
|
7
|
-
functionTypesImportPath: string,
|
|
8
|
-
rpcMapImportPath: string
|
|
9
|
-
) => {
|
|
10
|
-
return `/**
|
|
11
|
-
* Workflow type definitions and helpers
|
|
12
|
-
* Used for authoring both DSL and graph-based workflows
|
|
13
|
-
*/
|
|
14
|
-
|
|
15
|
-
import { PikkuWorkflowWire, WorkflowStepOptions, WorkflowCancelledException } from '@pikku/core/workflow'
|
|
16
|
-
|
|
17
|
-
// Re-export WorkflowCancelledException for use in workflow functions
|
|
18
|
-
export { WorkflowCancelledException }
|
|
19
|
-
import type { PikkuFunctionSessionless, PikkuFunctionConfig } from '${functionTypesImportPath}'
|
|
20
|
-
import type { RPCMap, FlattenedRPCMap } from '${rpcMapImportPath}'
|
|
21
|
-
import type { GraphNodeConfig, HTTPMethod } from '@pikku/core'
|
|
22
|
-
import { createGraph, wireWorkflow as coreWireWorkflow } from '@pikku/core'
|
|
23
|
-
|
|
24
|
-
// ============================================================================
|
|
25
|
-
// DSL Workflow Types (pikkuWorkflowFunc, pikkuWorkflowComplexFunc)
|
|
26
|
-
// ============================================================================
|
|
27
|
-
|
|
28
|
-
/**
|
|
29
|
-
* Typed workflow wire with RPC awareness
|
|
30
|
-
* Provides type-safe workflow.do() for RPC steps
|
|
31
|
-
*/
|
|
32
|
-
export interface TypedWorkflow extends PikkuWorkflowWire {
|
|
33
|
-
do<K extends keyof RPCMap>(
|
|
34
|
-
stepName: string,
|
|
35
|
-
rpcName: K,
|
|
36
|
-
data: RPCMap[K]['input'],
|
|
37
|
-
options?: WorkflowStepOptions
|
|
38
|
-
): Promise<RPCMap[K]['output']>
|
|
39
|
-
|
|
40
|
-
do<T>(
|
|
41
|
-
stepName: string,
|
|
42
|
-
fn: () => T | Promise<T>,
|
|
43
|
-
options?: WorkflowStepOptions
|
|
44
|
-
): Promise<T>
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
/**
|
|
48
|
-
* Workflow function type with typed workflow service
|
|
49
|
-
*/
|
|
50
|
-
export type PikkuFunctionWorkflow<
|
|
51
|
-
In = unknown,
|
|
52
|
-
Out = never
|
|
53
|
-
> = PikkuFunctionSessionless<In, Out, 'workflow'>
|
|
54
|
-
|
|
55
|
-
/**
|
|
56
|
-
* Creates a DSL-compatible workflow function (serializable, shows in Forge UI)
|
|
57
|
-
*/
|
|
58
|
-
export const pikkuWorkflowFunc = <In, Out = unknown>(
|
|
59
|
-
func:
|
|
60
|
-
| PikkuFunctionWorkflow<In, Out>
|
|
61
|
-
| PikkuFunctionConfig<In, Out, 'workflow', PikkuFunctionWorkflow<In, Out>>
|
|
62
|
-
) => {
|
|
63
|
-
return typeof func === 'function' ? { func } : func
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
/**
|
|
67
|
-
* Creates a complex workflow function (arbitrary code, hidden from Forge UI)
|
|
68
|
-
*/
|
|
69
|
-
export const pikkuWorkflowComplexFunc = <In, Out = unknown>(
|
|
70
|
-
func:
|
|
71
|
-
| PikkuFunctionWorkflow<In, Out>
|
|
72
|
-
| PikkuFunctionConfig<In, Out, 'workflow', PikkuFunctionWorkflow<In, Out>>
|
|
73
|
-
) => {
|
|
74
|
-
return typeof func === 'function' ? { func } : func
|
|
75
|
-
}
|
|
76
|
-
|
|
77
|
-
// ============================================================================
|
|
78
|
-
// Graph Workflow Types (pikkuWorkflowGraph)
|
|
79
|
-
// ============================================================================
|
|
80
|
-
|
|
81
|
-
/**
|
|
82
|
-
* Type-safe graph builder with full RPC autocomplete
|
|
83
|
-
*/
|
|
84
|
-
const graphBuilder = createGraph<FlattenedRPCMap>()
|
|
85
|
-
|
|
86
|
-
/** HTTP wire configuration for graph workflows */
|
|
87
|
-
interface GraphHttpWire<NodeIds extends string> {
|
|
88
|
-
route: string
|
|
89
|
-
method: HTTPMethod
|
|
90
|
-
startNode: NodeIds
|
|
91
|
-
}
|
|
92
|
-
|
|
93
|
-
/** Channel wire configuration for graph workflows */
|
|
94
|
-
interface GraphChannelWire<NodeIds extends string> {
|
|
95
|
-
name: string
|
|
96
|
-
onConnect?: NodeIds
|
|
97
|
-
onDisconnect?: NodeIds
|
|
98
|
-
onMessage?: NodeIds
|
|
99
|
-
}
|
|
100
|
-
|
|
101
|
-
/** Queue wire configuration for graph workflows */
|
|
102
|
-
interface GraphQueueWire<NodeIds extends string> {
|
|
103
|
-
name: string
|
|
104
|
-
startNode: NodeIds
|
|
105
|
-
}
|
|
106
|
-
|
|
107
|
-
/** CLI wire configuration for graph workflows */
|
|
108
|
-
interface GraphCliWire<NodeIds extends string> {
|
|
109
|
-
command: string
|
|
110
|
-
startNode: NodeIds
|
|
111
|
-
}
|
|
112
|
-
|
|
113
|
-
/** MCP wire configurations for graph workflows */
|
|
114
|
-
interface GraphMcpWires<NodeIds extends string> {
|
|
115
|
-
tool?: Array<{ name: string; startNode: NodeIds }>
|
|
116
|
-
prompt?: Array<{ name: string; startNode: NodeIds }>
|
|
117
|
-
resource?: Array<{ uri: string; startNode: NodeIds }>
|
|
118
|
-
}
|
|
119
|
-
|
|
120
|
-
/** Schedule wire configuration for graph workflows */
|
|
121
|
-
interface GraphScheduleWire<NodeIds extends string> {
|
|
122
|
-
cron?: string
|
|
123
|
-
interval?: string
|
|
124
|
-
startNode: NodeIds
|
|
125
|
-
}
|
|
126
|
-
|
|
127
|
-
/** Trigger wire configuration for graph workflows */
|
|
128
|
-
interface GraphTriggerWire<NodeIds extends string> {
|
|
129
|
-
name: string // RPC name of the trigger function
|
|
130
|
-
startNode: NodeIds
|
|
131
|
-
}
|
|
132
|
-
|
|
133
|
-
/** All wire configurations for graph workflows */
|
|
134
|
-
interface GraphWiresConfig<NodeIds extends string> {
|
|
135
|
-
http?: Array<GraphHttpWire<NodeIds>>
|
|
136
|
-
channel?: Array<GraphChannelWire<NodeIds>>
|
|
137
|
-
queue?: Array<GraphQueueWire<NodeIds>>
|
|
138
|
-
cli?: Array<GraphCliWire<NodeIds>>
|
|
139
|
-
mcp?: GraphMcpWires<NodeIds>
|
|
140
|
-
schedule?: Array<GraphScheduleWire<NodeIds>>
|
|
141
|
-
trigger?: Array<GraphTriggerWire<NodeIds>>
|
|
142
|
-
}
|
|
143
|
-
|
|
144
|
-
/** Configuration for graph-based workflow */
|
|
145
|
-
export interface PikkuWorkflowGraphConfig<
|
|
146
|
-
FuncMap extends Record<string, keyof FlattenedRPCMap & string>,
|
|
147
|
-
T
|
|
148
|
-
> {
|
|
149
|
-
/** Workflow name (optional - defaults to exported variable name) */
|
|
150
|
-
name?: string
|
|
151
|
-
/** Optional description */
|
|
152
|
-
description?: string
|
|
153
|
-
/** Optional tags for organization */
|
|
154
|
-
tags?: string[]
|
|
155
|
-
/** Node to RPC function mapping */
|
|
156
|
-
nodes: FuncMap
|
|
157
|
-
/** Wire configurations - how this workflow can be triggered */
|
|
158
|
-
wires?: GraphWiresConfig<Extract<keyof FuncMap, string>>
|
|
159
|
-
/** Node configurations (next, input, onError) */
|
|
160
|
-
config?: T
|
|
161
|
-
}
|
|
162
|
-
|
|
163
|
-
/** Result of pikkuWorkflowGraph - includes metadata for wiring */
|
|
164
|
-
export interface PikkuWorkflowGraphResult<T, NodeIds extends string = string> {
|
|
165
|
-
__type: 'pikkuWorkflowGraph'
|
|
166
|
-
name?: string
|
|
167
|
-
description?: string
|
|
168
|
-
tags?: string[]
|
|
169
|
-
wires?: GraphWiresConfig<NodeIds>
|
|
170
|
-
graph: T
|
|
171
|
-
}
|
|
172
|
-
|
|
173
|
-
/**
|
|
174
|
-
* Creates a graph-based workflow definition with metadata
|
|
175
|
-
* Name defaults to the exported variable name if not provided.
|
|
176
|
-
*
|
|
177
|
-
* @example
|
|
178
|
-
* // Name inferred from exported variable name
|
|
179
|
-
* export const myWorkflow = pikkuWorkflowGraph({
|
|
180
|
-
* description: 'Handles user onboarding',
|
|
181
|
-
* tags: ['onboarding'],
|
|
182
|
-
* nodes: {
|
|
183
|
-
* entry: 'createUser',
|
|
184
|
-
* sendEmail: 'sendWelcomeEmail',
|
|
185
|
-
* },
|
|
186
|
-
* config: {
|
|
187
|
-
* entry: { next: 'sendEmail' },
|
|
188
|
-
* sendEmail: { input: (ref) => ({ to: ref('entry', 'email') }) },
|
|
189
|
-
* },
|
|
190
|
-
* })
|
|
191
|
-
*/
|
|
192
|
-
export function pikkuWorkflowGraph<
|
|
193
|
-
const FuncMap extends Record<string, keyof FlattenedRPCMap & string>
|
|
194
|
-
>(
|
|
195
|
-
config: PikkuWorkflowGraphConfig<FuncMap, GraphNodeConfigMap<FuncMap>>
|
|
196
|
-
): PikkuWorkflowGraphResult<Record<Extract<keyof FuncMap, string>, GraphNodeConfig<Extract<keyof FuncMap, string>>>, Extract<keyof FuncMap, string>> {
|
|
197
|
-
return {
|
|
198
|
-
__type: 'pikkuWorkflowGraph',
|
|
199
|
-
name: config.name,
|
|
200
|
-
description: config.description,
|
|
201
|
-
tags: config.tags,
|
|
202
|
-
wires: config.wires,
|
|
203
|
-
graph: graphBuilder(config.nodes, config.config as any),
|
|
204
|
-
}
|
|
205
|
-
}
|
|
206
|
-
|
|
207
|
-
/** Typed ref value */
|
|
208
|
-
type TypedRef<T> = { $ref: string; path?: string } & { __phantomType?: T }
|
|
209
|
-
|
|
210
|
-
/** Template string type - assignable to string fields */
|
|
211
|
-
type TemplateString = {
|
|
212
|
-
$template: {
|
|
213
|
-
parts: string[]
|
|
214
|
-
expressions: Array<{ $ref: string; path?: string }>
|
|
215
|
-
}
|
|
216
|
-
} & { __brand: 'TemplateString' }
|
|
217
|
-
|
|
218
|
-
/**
|
|
219
|
-
* Creates a template string with variable interpolation
|
|
220
|
-
* Uses indexed placeholders $0, $1, etc. with refs array
|
|
221
|
-
*
|
|
222
|
-
* @example
|
|
223
|
-
* template('Hello $0, your order $1 is ready', [ref('trigger', 'name'), ref('step_0', 'orderId')])
|
|
224
|
-
*/
|
|
225
|
-
export function template(templateStr: string, refs: TypedRef<unknown>[]): TemplateString {
|
|
226
|
-
const parts: string[] = []
|
|
227
|
-
const expressions: Array<{ $ref: string; path?: string }> = []
|
|
228
|
-
|
|
229
|
-
// Parse template string: "Hello $0" -> parts: ["Hello ", ""], use refs[0] for expression
|
|
230
|
-
const regex = /\$(\d+)/g
|
|
231
|
-
let lastIndex = 0
|
|
232
|
-
let match
|
|
233
|
-
|
|
234
|
-
while ((match = regex.exec(templateStr)) !== null) {
|
|
235
|
-
// Add the part before this match
|
|
236
|
-
parts.push(templateStr.slice(lastIndex, match.index))
|
|
237
|
-
|
|
238
|
-
// Get the ref by index
|
|
239
|
-
const refIndex = parseInt(match[1]!, 10)
|
|
240
|
-
const refValue = refs[refIndex]
|
|
241
|
-
if (refValue) {
|
|
242
|
-
const expr: { $ref: string; path?: string } = { $ref: refValue.$ref }
|
|
243
|
-
if (refValue.path) {
|
|
244
|
-
expr.path = refValue.path
|
|
245
|
-
}
|
|
246
|
-
expressions.push(expr)
|
|
247
|
-
} else {
|
|
248
|
-
expressions.push({ $ref: 'unknown' })
|
|
249
|
-
}
|
|
250
|
-
|
|
251
|
-
lastIndex = regex.lastIndex
|
|
252
|
-
}
|
|
253
|
-
|
|
254
|
-
// Add the remaining part
|
|
255
|
-
parts.push(templateStr.slice(lastIndex))
|
|
256
|
-
|
|
257
|
-
return {
|
|
258
|
-
$template: { parts, expressions }
|
|
259
|
-
} as TemplateString
|
|
260
|
-
}
|
|
261
|
-
|
|
262
|
-
/** Map input type fields to allow TypedRef or TemplateString for any field */
|
|
263
|
-
type InputWithRefs<T> = {
|
|
264
|
-
[K in keyof T]?: T[K] | TypedRef<T[K]> | TypedRef<unknown> | TemplateString
|
|
265
|
-
}
|
|
266
|
-
|
|
267
|
-
/** Get the input type for a node based on its RPC mapping */
|
|
268
|
-
type NodeInputType<FuncMap extends Record<string, string>, K extends keyof FuncMap> =
|
|
269
|
-
FuncMap[K] extends keyof FlattenedRPCMap
|
|
270
|
-
? InputWithRefs<FlattenedRPCMap[FuncMap[K]]['input']>
|
|
271
|
-
: Record<string, unknown>
|
|
272
|
-
|
|
273
|
-
/** Get the output type keys for a node based on its RPC mapping */
|
|
274
|
-
type NodeOutputKeys<FuncMap extends Record<string, string>, N extends string> =
|
|
275
|
-
N extends keyof FuncMap
|
|
276
|
-
? FuncMap[N] extends keyof FlattenedRPCMap
|
|
277
|
-
? keyof FlattenedRPCMap[FuncMap[N]]['output'] & string
|
|
278
|
-
: string
|
|
279
|
-
: string
|
|
280
|
-
|
|
281
|
-
/** Ref function type with path validation */
|
|
282
|
-
type RefFunction<FuncMap extends Record<string, string>> = {
|
|
283
|
-
<N extends Extract<keyof FuncMap, string>>(
|
|
284
|
-
nodeId: N,
|
|
285
|
-
path: NodeOutputKeys<FuncMap, N>
|
|
286
|
-
): TypedRef<unknown>
|
|
287
|
-
(nodeId: 'trigger' | '$item', path?: string): TypedRef<unknown>
|
|
288
|
-
}
|
|
289
|
-
|
|
290
|
-
/** Template function type */
|
|
291
|
-
type TemplateFunction = (templateStr: string, refs: TypedRef<unknown>[]) => TemplateString
|
|
292
|
-
|
|
293
|
-
/** Type helper for node configuration */
|
|
294
|
-
type GraphNodeConfigMap<FuncMap extends Record<string, string>> = {
|
|
295
|
-
[K in Extract<keyof FuncMap, string>]?: {
|
|
296
|
-
next?: NextConfig<Extract<keyof FuncMap, string>>
|
|
297
|
-
input?:
|
|
298
|
-
| NodeInputType<FuncMap, K>
|
|
299
|
-
| (() => NodeInputType<FuncMap, K>)
|
|
300
|
-
| ((ref: RefFunction<FuncMap>, template: TemplateFunction) => NodeInputType<FuncMap, K>)
|
|
301
|
-
onError?: Extract<keyof FuncMap, string> | Extract<keyof FuncMap, string>[]
|
|
302
|
-
}
|
|
303
|
-
}
|
|
304
|
-
|
|
305
|
-
type NextConfig<NodeIds extends string> = NodeIds | NodeIds[] | { if: string; then: NodeIds; else?: NodeIds }
|
|
306
|
-
|
|
307
|
-
// ============================================================================
|
|
308
|
-
// Unified wireWorkflow
|
|
309
|
-
// ============================================================================
|
|
310
|
-
|
|
311
|
-
/** Workflow definition with DSL function */
|
|
312
|
-
interface WorkflowDefinitionFunc {
|
|
313
|
-
/** Whether this workflow wiring is enabled (default: true) */
|
|
314
|
-
enabled?: boolean
|
|
315
|
-
/** Wire configurations for the workflow */
|
|
316
|
-
wires: {
|
|
317
|
-
http?: { route: string; method: HTTPMethod }
|
|
318
|
-
channel?: string
|
|
319
|
-
queue?: string
|
|
320
|
-
}
|
|
321
|
-
/** DSL workflow function */
|
|
322
|
-
func: PikkuFunctionConfig<any, any, 'workflow', PikkuFunctionWorkflow<any, any>>
|
|
323
|
-
}
|
|
324
|
-
|
|
325
|
-
/** Workflow definition with graph */
|
|
326
|
-
interface WorkflowDefinitionGraph<T, NodeIds extends string = string> {
|
|
327
|
-
/** Whether this workflow wiring is enabled (default: true) */
|
|
328
|
-
enabled?: boolean
|
|
329
|
-
/** Graph workflow definition - wires are defined in the graph itself */
|
|
330
|
-
graph: PikkuWorkflowGraphResult<T, NodeIds>
|
|
331
|
-
}
|
|
332
|
-
|
|
333
|
-
/**
|
|
334
|
-
* Wire a workflow with wires
|
|
335
|
-
* Accepts either a DSL function (func) or a graph definition (graph)
|
|
336
|
-
*
|
|
337
|
-
* @example
|
|
338
|
-
* // DSL workflow
|
|
339
|
-
* wireWorkflow({
|
|
340
|
-
* wires: { http: { route: '/start', method: 'post' } },
|
|
341
|
-
* func: myWorkflowFunc,
|
|
342
|
-
* })
|
|
343
|
-
*
|
|
344
|
-
* @example
|
|
345
|
-
* // Graph workflow - wires are defined in the graph itself
|
|
346
|
-
* wireWorkflow({
|
|
347
|
-
* enabled: true, // default: true
|
|
348
|
-
* graph: myGraphWorkflow,
|
|
349
|
-
* })
|
|
350
|
-
*/
|
|
351
|
-
export function wireWorkflow<T extends Record<string, GraphNodeConfig<Extract<keyof T, string>>>, NodeIds extends string = string>(
|
|
352
|
-
definition: WorkflowDefinitionFunc | WorkflowDefinitionGraph<T, NodeIds>
|
|
353
|
-
): void {
|
|
354
|
-
coreWireWorkflow(definition as any)
|
|
355
|
-
}
|
|
356
|
-
`
|
|
357
|
-
}
|
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Generate queue workers for workflow orchestration
|
|
3
|
-
*/
|
|
4
|
-
export const serializeWorkflowWorkers = (pathToPikkuTypes: string) => {
|
|
5
|
-
return `/**
|
|
6
|
-
* Workflow queue workers for orchestration
|
|
7
|
-
*/
|
|
8
|
-
import { pikkuSessionlessFunc, wireQueueWorker } from '${pathToPikkuTypes}'
|
|
9
|
-
|
|
10
|
-
export type WorkflowStepInput = {
|
|
11
|
-
runId: string
|
|
12
|
-
stepName: string
|
|
13
|
-
rpcName: string
|
|
14
|
-
data: any
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
export const pikkuWorkflowWorker = pikkuSessionlessFunc<WorkflowStepInput, void>({
|
|
18
|
-
func: async ({ workflowService }, { runId, stepName, rpcName, data }, { rpc }) => {
|
|
19
|
-
await workflowService!.executeWorkflowStep(runId, stepName, rpcName, data, rpc)
|
|
20
|
-
}
|
|
21
|
-
})
|
|
22
|
-
|
|
23
|
-
export const pikkuWorkflowOrchestrator = pikkuSessionlessFunc<{ runId: string }, void>({
|
|
24
|
-
func: async ({ workflowService }, { runId }, { rpc }) => {
|
|
25
|
-
await workflowService!.orchestrateWorkflow(runId, rpc)
|
|
26
|
-
}
|
|
27
|
-
})
|
|
28
|
-
|
|
29
|
-
export const pikkuWorkflowSleeper = pikkuSessionlessFunc<{ runId: string, stepId: string }, void>({
|
|
30
|
-
func: async ({ workflowService }, { runId, stepId }) => {
|
|
31
|
-
await workflowService!.executeWorkflowSleepCompleted(runId, stepId)
|
|
32
|
-
},
|
|
33
|
-
internal: true,
|
|
34
|
-
})
|
|
35
|
-
|
|
36
|
-
export const pikkuRemoteInternalRPC = pikkuSessionlessFunc<{ rpcName: string, data?: any }, any>({
|
|
37
|
-
func: async (_services, { rpcName, data }, { rpc }) => {
|
|
38
|
-
return await (rpc.invoke as any)(rpcName, data)
|
|
39
|
-
},
|
|
40
|
-
internal: true,
|
|
41
|
-
})
|
|
42
|
-
|
|
43
|
-
wireQueueWorker({ queueName: 'pikku-workflow-step-worker', func: pikkuWorkflowWorker })
|
|
44
|
-
wireQueueWorker({ queueName: 'pikku-workflow-orchestrator', func: pikkuWorkflowOrchestrator })
|
|
45
|
-
wireQueueWorker({ queueName: 'pikku-remote-internal-rpc', func: pikkuRemoteInternalRPC })
|
|
46
|
-
`
|
|
47
|
-
}
|