@pikku/cli 0.11.2 → 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.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 +65 -10
- package/dist/.pikku/channel/pikku-channel-types.gen.js +23 -16
- package/dist/.pikku/channel/pikku-channels-meta.gen.js +3 -2
- 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 +2 -2
- package/dist/.pikku/cli/pikku-cli-wirings-meta.gen.json +45 -12
- 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 +180 -37
- package/dist/.pikku/function/pikku-function-types.gen.js +63 -53
- package/dist/.pikku/function/pikku-functions-meta.gen.js +2 -2
- package/dist/.pikku/function/pikku-functions-meta.gen.json +624 -506
- 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 +54 -3
- package/dist/.pikku/http/pikku-http-types.gen.js +11 -2
- 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 +68 -29
- package/dist/.pikku/mcp/pikku-mcp-types.gen.js +8 -42
- package/dist/.pikku/mcp/pikku-mcp-wirings-meta.gen.js +4 -4
- 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 +9 -10
- package/dist/.pikku/pikku-bootstrap.gen.js +17 -8
- package/dist/.pikku/pikku-services.gen.d.ts +7 -2
- package/dist/.pikku/pikku-services.gen.js +5 -0
- package/dist/.pikku/pikku-types.gen.d.ts +4 -1
- package/dist/.pikku/pikku-types.gen.js +7 -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 +1 -1
- package/dist/.pikku/queue/pikku-queue-types.gen.js +2 -2
- package/dist/.pikku/queue/pikku-queue-workers-wirings-meta.gen.js +2 -2
- 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 +6 -3
- package/dist/.pikku/rpc/pikku-remote-rpc-workers.gen.js +6 -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 +2 -2
- 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 -15
- 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/PikkuConsoleFunctionsOutput.schema.json +1 -0
- package/dist/.pikku/schemas/schemas/PikkuNodesMetaOutput.schema.json +1 -0
- package/dist/.pikku/schemas/schemas/PikkuPackageOutput.schema.json +1 -0
- package/dist/.pikku/schemas/schemas/PikkuPublicAgentOutput.schema.json +1 -0
- 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/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 +71 -53
- package/dist/.pikku/workflow/pikku-workflow-types.gen.js +23 -35
- package/dist/.pikku/workflow/pikku-workflow-wirings-meta.gen.js +3 -3
- package/dist/.pikku/workflow/pikku-workflow-wirings.gen.d.ts +2 -6
- package/dist/.pikku/workflow/pikku-workflow-wirings.gen.js +2 -6
- 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 +109 -168
- package/dist/src/functions/commands/bootstrap.d.ts +1 -1
- package/dist/src/functions/commands/bootstrap.js +13 -29
- 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 -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 +49 -43
- package/dist/src/functions/runtimes/nextjs/serialize-nextjs-http-wrapper.js +45 -35
- 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 +2 -2
- 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 +19 -3
- package/dist/src/functions/wirings/channels/serialize-channel-types.d.ts +1 -1
- package/dist/src/functions/wirings/channels/serialize-channel-types.js +97 -10
- 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 +9 -10
- 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 +11 -3
- 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 +8 -3
- package/dist/src/functions/wirings/functions/pikku-command-functions.d.ts +1 -1
- package/dist/src/functions/wirings/functions/pikku-command-functions.js +34 -19
- package/dist/src/functions/wirings/functions/pikku-command-services.d.ts +1 -1
- package/dist/src/functions/wirings/functions/pikku-command-services.js +2 -2
- package/dist/src/functions/wirings/functions/schemas.d.ts +1 -4
- package/dist/src/functions/wirings/functions/schemas.js +8 -9
- 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 +4 -3
- package/dist/src/functions/wirings/functions/serialize-function-imports.js +16 -19
- package/dist/src/functions/wirings/functions/serialize-function-types.d.ts +1 -1
- package/dist/src/functions/wirings/functions/serialize-function-types.js +256 -42
- 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 +22 -21
- 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 +19 -3
- 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 +64 -3
- 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 +43 -31
- 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 +28 -10
- package/dist/src/functions/wirings/mcp/serialize-mcp-types.js +81 -38
- package/dist/src/functions/wirings/middleware/pikku-command-middleware.d.ts +1 -1
- package/dist/src/functions/wirings/middleware/pikku-command-middleware.js +11 -31
- 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 -0
- package/dist/src/functions/wirings/package/pikku-command-package.js +58 -0
- 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/package/serialize-package.d.ts +5 -0
- package/dist/src/functions/wirings/package/serialize-package.js +32 -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 +11 -3
- 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 +2 -10
- package/dist/src/functions/wirings/queue/serialize-queue-map.d.ts +5 -2
- package/dist/src/functions/wirings/queue/serialize-queue-map.js +13 -24
- 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 +5 -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 +130 -59
- 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 +11 -2
- 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 +29 -20
- package/dist/src/functions/wirings/workflow/serialize-workflow-map.d.ts +7 -2
- package/dist/src/functions/wirings/workflow/serialize-workflow-map.js +87 -38
- package/dist/src/functions/wirings/workflow/serialize-workflow-meta.d.ts +1 -3
- package/dist/src/functions/wirings/workflow/serialize-workflow-meta.js +42 -18
- package/dist/src/functions/wirings/workflow/serialize-workflow-registration.d.ts +7 -0
- package/dist/src/functions/wirings/workflow/serialize-workflow-registration.js +26 -0
- package/dist/src/functions/wirings/workflow/serialize-workflow-types.d.ts +1 -4
- package/dist/src/functions/wirings/workflow/serialize-workflow-types.js +121 -63
- package/dist/src/functions/wirings/workflow/serialize-workflow-workers.d.ts +1 -1
- package/dist/src/functions/wirings/workflow/serialize-workflow-workers.js +15 -28
- 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 +56 -6
- package/dist/src/utils/command-summary.d.ts +3 -0
- package/dist/src/utils/command-summary.js +3 -0
- 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/generate-bootstrap-file.js +1 -1
- package/dist/src/utils/pikku-cli-config.js +104 -13
- 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 +43 -0
- package/dist/src/utils/strip-verbose-meta.js +210 -0
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +20 -8
- package/.pikku/channel/pikku-channel-types.gen.ts +0 -91
- package/.pikku/channel/pikku-channels-map.gen.d.ts +0 -47
- package/.pikku/channel/pikku-channels-meta.gen.ts +0 -5
- 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 -146
- 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/function/pikku-function-types.gen.ts +0 -426
- package/.pikku/function/pikku-functions-meta.gen.json +0 -988
- package/.pikku/function/pikku-functions-meta.gen.ts +0 -6
- package/.pikku/function/pikku-functions-meta.min.gen.json +0 -212
- package/.pikku/function/pikku-functions-meta.min.gen.ts +0 -6
- package/.pikku/http/pikku-http-types.gen.ts +0 -86
- package/.pikku/http/pikku-http-wirings-map.gen.d.ts +0 -46
- package/.pikku/http/pikku-http-wirings-meta.gen.ts +0 -13
- package/.pikku/http/pikku-http-wirings.gen.ts +0 -4
- package/.pikku/mcp/pikku-mcp-types.gen.ts +0 -140
- 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 -19
- package/.pikku/pikku-services.gen.ts +0 -27
- package/.pikku/pikku-types.gen.ts +0 -27
- 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 -27
- package/.pikku/rpc/pikku-rpc-wirings-map.gen.d.ts +0 -57
- package/.pikku/rpc/pikku-rpc-wirings-map.internal.gen.d.ts +0 -99
- 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 -63
- 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/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/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 -99
- 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/variables.gen.json +0 -13
- package/.pikku/services/workflowService.gen.json +0 -31
- package/.pikku/workflow/pikku-workflow-map.gen.d.ts +0 -62
- package/.pikku/workflow/pikku-workflow-types.gen.ts +0 -97
- package/.pikku/workflow/pikku-workflow-wirings-meta.gen.json +0 -1
- package/.pikku/workflow/pikku-workflow-wirings-meta.gen.ts +0 -8
- package/.pikku/workflow/pikku-workflow-wirings.gen.ts +0 -8
- package/CHANGELOG.md +0 -935
- package/bin/pikku.ts +0 -88
- package/build.sh +0 -75
- package/dist/.pikku/function/pikku-functions-meta.min.gen.js +0 -6
- package/dist/.pikku/function/pikku-functions-meta.min.gen.json +0 -212
- 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/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 -101
- 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/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 -13
- package/dist/src/functions/wirings/workflow/serialize-workflow-wirings.d.ts +0 -8
- package/dist/src/functions/wirings/workflow/serialize-workflow-wirings.js +0 -30
- package/dist/src/utils/custom-types-generator.d.ts +0 -2
- package/dist/src/utils/custom-types-generator.js +0 -43
- package/dist/src/utils/schema-generator.d.ts +0 -6
- package/dist/src/utils/schema-generator.js +0 -118
- 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 -266
- package/src/functions/commands/bootstrap.ts +0 -43
- package/src/functions/commands/watch.ts +0 -61
- package/src/functions/runtimes/nextjs/pikku-command-nextjs.ts +0 -132
- package/src/functions/runtimes/nextjs/serialize-nextjs-backend-wrapper.ts +0 -268
- package/src/functions/runtimes/nextjs/serialize-nextjs-http-wrapper.ts +0 -201
- 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 -40
- package/src/functions/wirings/channels/pikku-command-websocket-typed.ts +0 -37
- package/src/functions/wirings/channels/serialize-channel-types.ts +0 -94
- package/src/functions/wirings/channels/serialize-typed-channel-map.ts +0 -172
- 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 -62
- 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/functions/pikku-command-function-types-split.ts +0 -60
- package/src/functions/wirings/functions/pikku-command-function-types.ts +0 -43
- package/src/functions/wirings/functions/pikku-command-functions.ts +0 -94
- package/src/functions/wirings/functions/pikku-command-services.ts +0 -140
- package/src/functions/wirings/functions/pikku-function-types.ts +0 -43
- package/src/functions/wirings/functions/schemas.ts +0 -46
- package/src/functions/wirings/functions/serialize-function-imports.ts +0 -71
- package/src/functions/wirings/functions/serialize-function-types.ts +0 -439
- package/src/functions/wirings/functions/serialize-pikku-types-hub.ts +0 -38
- 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 -36
- package/src/functions/wirings/http/pikku-command-http-types.ts +0 -25
- package/src/functions/wirings/http/pikku-command-openapi.ts +0 -63
- 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 -89
- package/src/functions/wirings/http/serialize-typed-http-map.ts +0 -154
- 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 -140
- package/src/functions/wirings/mcp/serialize-mcp-json.ts +0 -159
- package/src/functions/wirings/mcp/serialize-mcp-types.ts +0 -143
- package/src/functions/wirings/middleware/pikku-command-middleware.ts +0 -85
- 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/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 -66
- package/src/functions/wirings/queue/pikku-queue-map.ts +0 -26
- package/src/functions/wirings/queue/pikku-queue.ts +0 -75
- package/src/functions/wirings/queue/serialize-queue-map.ts +0 -119
- 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 -48
- 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 -30
- package/src/functions/wirings/rpc/serialize-rpc-wrapper.ts +0 -68
- package/src/functions/wirings/rpc/serialize-typed-rpc-map.ts +0 -128
- package/src/functions/wirings/scheduler/pikku-command-scheduler-types.ts +0 -25
- package/src/functions/wirings/scheduler/pikku-command-scheduler.ts +0 -67
- 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-map.ts +0 -24
- package/src/functions/wirings/workflow/pikku-command-workflow-types.ts +0 -29
- package/src/functions/wirings/workflow/pikku-command-workflow.ts +0 -151
- package/src/functions/wirings/workflow/serialize-workflow-map.ts +0 -123
- package/src/functions/wirings/workflow/serialize-workflow-meta.ts +0 -33
- package/src/functions/wirings/workflow/serialize-workflow-types.ts +0 -103
- package/src/functions/wirings/workflow/serialize-workflow-wirings.ts +0 -47
- package/src/functions/wirings/workflow/serialize-workflow-workers.ts +0 -60
- 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 -315
- package/src/utils/check-required-types.ts +0 -65
- package/src/utils/command-summary.ts +0 -103
- 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 -462
- package/src/utils/pikku-files-and-methods.ts +0 -145
- package/src/utils/schema-generator.ts +0 -172
- package/src/utils/serialize-import-map.ts +0 -102
- package/tsconfig.json +0 -21
- package/types/application-types.d.ts +0 -27
- package/types/config.d.ts +0 -270
- /package/dist/.pikku/{function/pikku-functions-meta.min.gen.d.ts → agent/pikku-agent-wirings-meta.gen.d.ts} +0 -0
- /package/dist/.pikku/{workflow/pikku-workflow-wirings-meta.gen.json → channel/pikku-channels-meta.gen.json} +0 -0
- /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
|
@@ -11,6 +11,9 @@ import { pikkuSessionlessFunc, wireQueueWorker } from '${pathToPikkuTypes}'
|
|
|
11
11
|
/**
|
|
12
12
|
* Generic remote RPC worker that invokes any internal RPC by name
|
|
13
13
|
* This is used for executing internal RPCs via a queue or HTTP (e.g., scheduled tasks, background jobs, internal services)
|
|
14
|
+
*
|
|
15
|
+
* TODO: Security risk - this allows any RPC to be invoked by name. Should validate
|
|
16
|
+
* that rpcName is in an allowlist of permitted internal RPCs to prevent unauthorized access.
|
|
14
17
|
*/
|
|
15
18
|
export const pikkuRemoteInternalRPC = pikkuSessionlessFunc<
|
|
16
19
|
{ rpcName: string, data?: any },
|
|
@@ -19,11 +22,11 @@ export const pikkuRemoteInternalRPC = pikkuSessionlessFunc<
|
|
|
19
22
|
func: async (_services, { rpcName, data }, { rpc }) => {
|
|
20
23
|
return await (rpc.invoke as any)(rpcName, data)
|
|
21
24
|
},
|
|
22
|
-
|
|
25
|
+
remote: true,
|
|
23
26
|
})
|
|
24
27
|
|
|
25
28
|
wireQueueWorker({
|
|
26
|
-
|
|
29
|
+
name: 'pikku-remote-internal-rpc',
|
|
27
30
|
func: pikkuRemoteInternalRPC,
|
|
28
31
|
})
|
|
29
32
|
`;
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
export const serializeRPCWrapper = (rpcMapPath) => {
|
|
2
2
|
return `
|
|
3
3
|
import { PikkuFetch } from "./pikku-fetch.gen.js"
|
|
4
|
-
import type { RPCInvoke } from '${rpcMapPath}'
|
|
4
|
+
import type { RPCInvoke, TypedAgent } from '${rpcMapPath}'
|
|
5
5
|
|
|
6
6
|
/**
|
|
7
|
-
* PikkuRPC provides a type-safe client for making Remote Procedure Calls (RPC)
|
|
8
|
-
* to your Pikku server. It wraps the underlying HTTP client and provides a
|
|
7
|
+
* PikkuRPC provides a type-safe client for making Remote Procedure Calls (RPC)
|
|
8
|
+
* to your Pikku server. It wraps the underlying HTTP client and provides a
|
|
9
9
|
* simple interface for invoking server-side functions.
|
|
10
10
|
*/
|
|
11
11
|
export class PikkuRPC {
|
|
@@ -15,7 +15,7 @@ export class PikkuRPC {
|
|
|
15
15
|
/**
|
|
16
16
|
* Sets a custom PikkuFetch instance to use for RPC calls.
|
|
17
17
|
* This allows you to configure custom settings or use a shared client instance.
|
|
18
|
-
*
|
|
18
|
+
*
|
|
19
19
|
* @param pikkuFetch - The PikkuFetch instance to use
|
|
20
20
|
*/
|
|
21
21
|
setPikkuFetch(pikkuFetch: PikkuFetch): void {
|
|
@@ -24,7 +24,7 @@ export class PikkuRPC {
|
|
|
24
24
|
|
|
25
25
|
/**
|
|
26
26
|
* Sets the base server URL for all RPC calls.
|
|
27
|
-
*
|
|
27
|
+
*
|
|
28
28
|
* @param serverUrl - The base URL of your Pikku server (e.g., 'https://api.example.com')
|
|
29
29
|
*/
|
|
30
30
|
setServerUrl(serverUrl: string): void {
|
|
@@ -33,7 +33,7 @@ export class PikkuRPC {
|
|
|
33
33
|
|
|
34
34
|
/**
|
|
35
35
|
* Sets the JWT token for authorization on all RPC calls.
|
|
36
|
-
*
|
|
36
|
+
*
|
|
37
37
|
* @param jwt - The JWT token to use for authorization, or null to remove authorization
|
|
38
38
|
*/
|
|
39
39
|
setAuthorizationJWT(jwt: string | null): void {
|
|
@@ -42,7 +42,7 @@ export class PikkuRPC {
|
|
|
42
42
|
|
|
43
43
|
/**
|
|
44
44
|
* Sets the API key for authorization on all RPC calls.
|
|
45
|
-
*
|
|
45
|
+
*
|
|
46
46
|
* @param apiKey - The API key to use for authorization, or null to remove the API key
|
|
47
47
|
*/
|
|
48
48
|
setAPIKey(apiKey: string | null): void {
|
|
@@ -59,7 +59,18 @@ export class PikkuRPC {
|
|
|
59
59
|
* @returns A promise that resolves with the function's return value
|
|
60
60
|
*/
|
|
61
61
|
invoke: RPCInvoke = async (rpcName, data) => {
|
|
62
|
-
return await this.pikkuFetch.post(\`/rpc/\${rpcName}\` as
|
|
62
|
+
return await this.pikkuFetch.post(\`/rpc/\${String(rpcName)}\` as never, { rpcName: String(rpcName), data }) as any
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
/**
|
|
66
|
+
* Invokes an AI agent on the server.
|
|
67
|
+
*
|
|
68
|
+
* @param agentName - The name of the agent to invoke
|
|
69
|
+
* @param input - The agent input (message, threadId, resourceId)
|
|
70
|
+
* @returns A promise that resolves with the agent's output
|
|
71
|
+
*/
|
|
72
|
+
agent: TypedAgent = async (agentName, input) => {
|
|
73
|
+
return await this.pikkuFetch.post(\`/rpc/agent/\${String(agentName)}\` as never, input) as any
|
|
63
74
|
}
|
|
64
75
|
}
|
|
65
76
|
|
|
@@ -1,3 +1,6 @@
|
|
|
1
|
-
import { TypesMap } from '@pikku/inspector';
|
|
2
|
-
import {
|
|
3
|
-
export declare const serializeTypedRPCMap: (relativeToPath: string, packageMappings: Record<string, string>, typesMap: TypesMap,
|
|
1
|
+
import { TypesMap, ExternalPackageConfig } from '@pikku/inspector';
|
|
2
|
+
import { Logger } from '@pikku/core/services';
|
|
3
|
+
export declare const serializeTypedRPCMap: (logger: Logger, relativeToPath: string, packageMappings: Record<string, string>, typesMap: TypesMap, rpcMeta: Record<string, string>, resolvedIOTypes: Record<string, {
|
|
4
|
+
inputType: string;
|
|
5
|
+
outputType: string;
|
|
6
|
+
}>, externalPackages?: Record<string, ExternalPackageConfig>, workflowMapPath?: string, agentMapPath?: string) => string;
|
|
@@ -1,16 +1,35 @@
|
|
|
1
1
|
import { serializeImportMap } from '../../../utils/serialize-import-map.js';
|
|
2
|
-
import { generateCustomTypes } from '
|
|
3
|
-
export const serializeTypedRPCMap = (relativeToPath, packageMappings, typesMap,
|
|
2
|
+
import { generateCustomTypes, } from '@pikku/inspector';
|
|
3
|
+
export const serializeTypedRPCMap = (logger, relativeToPath, packageMappings, typesMap, rpcMeta, resolvedIOTypes, externalPackages, workflowMapPath, agentMapPath) => {
|
|
4
4
|
const requiredTypes = new Set();
|
|
5
5
|
const serializedCustomTypes = generateCustomTypes(typesMap, requiredTypes);
|
|
6
|
-
const serializedRPCs = generateRPCs(rpcMeta,
|
|
7
|
-
const
|
|
6
|
+
const serializedRPCs = generateRPCs(rpcMeta, resolvedIOTypes, requiredTypes);
|
|
7
|
+
const mcpTypes = [
|
|
8
|
+
'MCPResourceResponse',
|
|
9
|
+
'MCPToolResponse',
|
|
10
|
+
'MCPPromptResponse',
|
|
11
|
+
];
|
|
12
|
+
const usedMcpTypes = mcpTypes.filter((t) => requiredTypes.has(t));
|
|
13
|
+
const mcpImport = usedMcpTypes.length > 0
|
|
14
|
+
? `import type { ${usedMcpTypes.join(', ')} } from '@pikku/core/mcp'`
|
|
15
|
+
: '';
|
|
16
|
+
for (const t of usedMcpTypes) {
|
|
17
|
+
requiredTypes.delete(t);
|
|
18
|
+
}
|
|
19
|
+
const serializedImportMap = serializeImportMap(logger, relativeToPath, packageMappings, typesMap, requiredTypes);
|
|
20
|
+
const serializedCustomTypesDeclarationsOnly = serializedCustomTypes
|
|
21
|
+
.split('\n')
|
|
22
|
+
.filter((line) => !line.startsWith('import '))
|
|
23
|
+
.join('\n');
|
|
24
|
+
const externalPackageImports = generateExternalPackageImports(externalPackages, relativeToPath);
|
|
25
|
+
const mergedRPCMap = generateMergedRPCMap(externalPackages);
|
|
8
26
|
return `/**
|
|
9
27
|
* This provides the structure needed for typescript to be aware of RPCs and their return types
|
|
10
28
|
*/
|
|
11
|
-
|
|
29
|
+
|
|
30
|
+
${mcpImport}
|
|
12
31
|
${serializedImportMap}
|
|
13
|
-
${
|
|
32
|
+
${serializedCustomTypesDeclarationsOnly}
|
|
14
33
|
|
|
15
34
|
interface RPCHandler<I, O> {
|
|
16
35
|
input: I;
|
|
@@ -18,68 +37,120 @@ interface RPCHandler<I, O> {
|
|
|
18
37
|
}
|
|
19
38
|
|
|
20
39
|
${serializedRPCs}
|
|
40
|
+
${externalPackageImports}
|
|
41
|
+
${mergedRPCMap}
|
|
42
|
+
|
|
43
|
+
export type RPCInvoke = <Name extends keyof FlattenedRPCMap>(
|
|
44
|
+
name: Name,
|
|
45
|
+
data: FlattenedRPCMap[Name]['input']
|
|
46
|
+
) => Promise<FlattenedRPCMap[Name]['output']>
|
|
21
47
|
|
|
22
|
-
export type
|
|
48
|
+
export type RPCRemote = <Name extends keyof FlattenedRPCMap>(
|
|
23
49
|
name: Name,
|
|
24
|
-
data:
|
|
25
|
-
|
|
26
|
-
location?: 'local' | 'remote' | 'auto'
|
|
27
|
-
}
|
|
28
|
-
) => Promise<RPCMap[Name]['output']>
|
|
50
|
+
data: FlattenedRPCMap[Name]['input']
|
|
51
|
+
) => Promise<FlattenedRPCMap[Name]['output']>
|
|
29
52
|
|
|
30
|
-
|
|
31
|
-
import type { WorkflowMap } from '../workflow/pikku-workflow-map.gen.js'
|
|
53
|
+
${workflowMapPath ? `import type { WorkflowMap } from '${workflowMapPath}'` : `type WorkflowMap = {}`}
|
|
32
54
|
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
55
|
+
${agentMapPath ? `import type { AgentMap } from '${agentMapPath}'` : `type AgentMap = {}`}
|
|
56
|
+
${generateExternalAgentImports(externalPackages)}
|
|
57
|
+
${generateMergedAgentMap(externalPackages)}
|
|
58
|
+
|
|
59
|
+
import type { PikkuRPC } from '@pikku/core/rpc'
|
|
60
|
+
|
|
61
|
+
interface AIAgentInput {
|
|
62
|
+
message: string
|
|
63
|
+
threadId: string
|
|
64
|
+
resourceId: string
|
|
42
65
|
}
|
|
66
|
+
|
|
67
|
+
type TypedStartWorkflow = <Name extends keyof WorkflowMap>(
|
|
68
|
+
name: Name,
|
|
69
|
+
input: WorkflowMap[Name]['input'],
|
|
70
|
+
options?: { startNode?: string }
|
|
71
|
+
) => Promise<{ runId: string }>
|
|
72
|
+
|
|
73
|
+
type TypedAgent = <Name extends keyof FlattenedAgentMap>(
|
|
74
|
+
name: Name,
|
|
75
|
+
input: AIAgentInput
|
|
76
|
+
) => Promise<{ runId: string; result: FlattenedAgentMap[Name]['output']; usage: { inputTokens: number; outputTokens: number } }>
|
|
77
|
+
|
|
78
|
+
export type TypedPikkuRPC = PikkuRPC<RPCInvoke, RPCRemote, TypedStartWorkflow, TypedAgent>
|
|
43
79
|
`;
|
|
44
80
|
};
|
|
45
|
-
function
|
|
46
|
-
|
|
81
|
+
function generateExternalPackageImports(externalPackages, relativeToPath) {
|
|
82
|
+
if (!externalPackages || Object.keys(externalPackages).length === 0) {
|
|
83
|
+
return '';
|
|
84
|
+
}
|
|
85
|
+
let imports = '\n// External package RPC maps\n';
|
|
86
|
+
for (const [namespace, config] of Object.entries(externalPackages)) {
|
|
87
|
+
// Import the RPCMap from each external package's internal RPC map
|
|
88
|
+
// Use .js extension - package.json exports will resolve to .d.ts for types
|
|
89
|
+
imports += `import type { RPCMap as ${toPascalCase(namespace)}RPCMap } from '${config.package}/.pikku/rpc/pikku-rpc-wirings-map.internal.gen.js'\n`;
|
|
90
|
+
}
|
|
91
|
+
return imports;
|
|
92
|
+
}
|
|
93
|
+
function generateMergedRPCMap(externalPackages) {
|
|
94
|
+
if (!externalPackages || Object.keys(externalPackages).length === 0) {
|
|
95
|
+
return `
|
|
96
|
+
// No external packages, use RPCMap directly
|
|
97
|
+
export type FlattenedRPCMap = RPCMap
|
|
98
|
+
`;
|
|
99
|
+
}
|
|
100
|
+
// TypeScript utility to flatten namespaced RPC maps
|
|
101
|
+
const utilityTypes = `
|
|
102
|
+
// Utility type to prefix keys with namespace
|
|
103
|
+
type PrefixKeys<T, Prefix extends string> = {
|
|
104
|
+
[K in keyof T as \`\${Prefix}:\${string & K}\`]: T[K]
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
// Merge all RPC maps with namespace prefixes
|
|
108
|
+
export type FlattenedRPCMap =
|
|
109
|
+
RPCMap${Object.keys(externalPackages)
|
|
110
|
+
.map((namespace) => ` & PrefixKeys<${toPascalCase(namespace)}RPCMap, '${namespace}'>`)
|
|
111
|
+
.join('')}
|
|
112
|
+
`;
|
|
113
|
+
return utilityTypes;
|
|
114
|
+
}
|
|
115
|
+
function toPascalCase(str) {
|
|
116
|
+
return str
|
|
117
|
+
.split(/[-_]/)
|
|
118
|
+
.map((word) => word.charAt(0).toUpperCase() + word.slice(1).toLowerCase())
|
|
119
|
+
.join('');
|
|
120
|
+
}
|
|
121
|
+
function generateExternalAgentImports(externalPackages) {
|
|
122
|
+
if (!externalPackages || Object.keys(externalPackages).length === 0) {
|
|
123
|
+
return '';
|
|
124
|
+
}
|
|
125
|
+
let imports = '\n// External package Agent maps\n';
|
|
126
|
+
for (const [namespace, config] of Object.entries(externalPackages)) {
|
|
127
|
+
imports += `import type { AgentMap as ${toPascalCase(namespace)}AgentMap } from '${config.package}/.pikku/agent/pikku-agent-map.gen.d.js'\n`;
|
|
128
|
+
}
|
|
129
|
+
return imports;
|
|
130
|
+
}
|
|
131
|
+
function generateMergedAgentMap(externalPackages) {
|
|
132
|
+
if (!externalPackages || Object.keys(externalPackages).length === 0) {
|
|
133
|
+
return `
|
|
134
|
+
type FlattenedAgentMap = AgentMap
|
|
135
|
+
`;
|
|
136
|
+
}
|
|
137
|
+
return `
|
|
138
|
+
type FlattenedAgentMap =
|
|
139
|
+
AgentMap${Object.keys(externalPackages)
|
|
140
|
+
.map((namespace) => ` & PrefixKeys<${toPascalCase(namespace)}AgentMap, '${namespace}'>`)
|
|
141
|
+
.join('')}
|
|
142
|
+
`;
|
|
143
|
+
}
|
|
144
|
+
function generateRPCs(rpcMeta, resolvedIOTypes, requiredTypes) {
|
|
47
145
|
const rpcsObj = {};
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
throw new Error(`Function ${funcName} not found in functionsMeta. Please check your configuration.`);
|
|
53
|
-
}
|
|
54
|
-
const input = functionMeta.inputs ? functionMeta.inputs[0] : undefined;
|
|
55
|
-
const output = functionMeta.outputs ? functionMeta.outputs[0] : undefined;
|
|
56
|
-
// Store the input and output types for RPCHandler
|
|
57
|
-
// Use 'any' for types not in typesMap (e.g., inline types in generated workflow workers)
|
|
58
|
-
let inputType = 'null';
|
|
59
|
-
if (input) {
|
|
60
|
-
try {
|
|
61
|
-
inputType = typesMap.getTypeMeta(input).uniqueName;
|
|
62
|
-
}
|
|
63
|
-
catch {
|
|
64
|
-
inputType = 'any';
|
|
65
|
-
}
|
|
66
|
-
}
|
|
67
|
-
let outputType = 'null';
|
|
68
|
-
if (output) {
|
|
69
|
-
try {
|
|
70
|
-
outputType = typesMap.getTypeMeta(output).uniqueName;
|
|
71
|
-
}
|
|
72
|
-
catch {
|
|
73
|
-
outputType = 'any';
|
|
74
|
-
}
|
|
146
|
+
for (const [funcName, pikkuFuncId] of Object.entries(rpcMeta)) {
|
|
147
|
+
const resolved = resolvedIOTypes[pikkuFuncId];
|
|
148
|
+
if (!resolved) {
|
|
149
|
+
throw new Error(`Function ${pikkuFuncId} not found in resolvedIOTypes. Please check your configuration.`);
|
|
75
150
|
}
|
|
76
|
-
requiredTypes.add(inputType);
|
|
77
|
-
requiredTypes.add(outputType);
|
|
78
|
-
|
|
79
|
-
rpcsObj[funcName] = {
|
|
80
|
-
inputType,
|
|
81
|
-
outputType,
|
|
82
|
-
};
|
|
151
|
+
requiredTypes.add(resolved.inputType);
|
|
152
|
+
requiredTypes.add(resolved.outputType);
|
|
153
|
+
rpcsObj[funcName] = resolved;
|
|
83
154
|
}
|
|
84
155
|
// Build the RPCs object as a string
|
|
85
156
|
let rpcsStr = 'export type RPCMap = {\n';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const pikkuSchedulerTypes:
|
|
1
|
+
export declare const pikkuSchedulerTypes: import("#pikku").PikkuFunctionConfig<void, void, "session" | "rpc", import("#pikku").PikkuFunctionSessionless<void, void, "session" | "rpc", import("#pikku").Services> | import("#pikku").PikkuFunction<void, void, "session" | "rpc", import("#pikku").Services>, undefined, undefined>;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { pikkuSessionlessFunc } from '
|
|
1
|
+
import { pikkuSessionlessFunc } from '#pikku';
|
|
2
2
|
import { writeFileInDir } from '../../../utils/file-writer.js';
|
|
3
3
|
import { getFileImportRelativePath } from '../../../utils/file-import-path.js';
|
|
4
4
|
import { logCommandInfoAndTime } from '../../../middleware/log-command-info-and-time.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const pikkuScheduler:
|
|
1
|
+
export declare const pikkuScheduler: import("#pikku").PikkuFunctionConfig<void, boolean | undefined, "session" | "rpc", import("#pikku").PikkuFunctionSessionless<void, boolean | undefined, "session" | "rpc", import("#pikku").Services> | import("#pikku").PikkuFunction<void, boolean | undefined, "session" | "rpc", import("#pikku").Services>, undefined, undefined>;
|
|
@@ -1,15 +1,24 @@
|
|
|
1
|
-
import { pikkuSessionlessFunc } from '
|
|
1
|
+
import { pikkuSessionlessFunc } from '#pikku';
|
|
2
2
|
import { serializeFileImports } from '../../../utils/file-imports-serializer.js';
|
|
3
3
|
import { writeFileInDir } from '../../../utils/file-writer.js';
|
|
4
4
|
import { logCommandInfoAndTime } from '../../../middleware/log-command-info-and-time.js';
|
|
5
5
|
import { serializeSchedulerMeta, serializeSchedulerMetaTS, } from './serialize-scheduler-meta.js';
|
|
6
6
|
import { getFileImportRelativePath } from '../../../utils/file-import-path.js';
|
|
7
|
+
import { stripVerboseFields, hasVerboseFields, } from '../../../utils/strip-verbose-meta.js';
|
|
7
8
|
export const pikkuScheduler = pikkuSessionlessFunc({
|
|
8
9
|
func: async ({ logger, config, getInspectorState }) => {
|
|
9
10
|
const visitState = await getInspectorState();
|
|
10
11
|
const { schedulersWiringFile, schedulersWiringMetaFile, schedulersWiringMetaJsonFile, packageMappings, schema, } = config;
|
|
11
12
|
const { scheduledTasks } = visitState;
|
|
12
|
-
|
|
13
|
+
const fullMeta = serializeSchedulerMeta(scheduledTasks.meta);
|
|
14
|
+
// Write minimal JSON (runtime-only fields)
|
|
15
|
+
const minimalMeta = stripVerboseFields(fullMeta);
|
|
16
|
+
await writeFileInDir(logger, schedulersWiringMetaJsonFile, JSON.stringify(minimalMeta, null, 2));
|
|
17
|
+
// Write verbose JSON only if it has additional fields
|
|
18
|
+
if (hasVerboseFields(fullMeta)) {
|
|
19
|
+
const verbosePath = schedulersWiringMetaJsonFile.replace(/\.gen\.json$/, '-verbose.gen.json');
|
|
20
|
+
await writeFileInDir(logger, verbosePath, JSON.stringify(fullMeta, null, 2));
|
|
21
|
+
}
|
|
13
22
|
const jsonImportPath = getFileImportRelativePath(schedulersWiringMetaFile, schedulersWiringMetaJsonFile, packageMappings);
|
|
14
23
|
await writeFileInDir(logger, schedulersWiringMetaFile, serializeSchedulerMetaTS(scheduledTasks.meta, jsonImportPath, schema?.supportsImportAttributes ?? false));
|
|
15
24
|
await writeFileInDir(logger, schedulersWiringFile, serializeFileImports('addScheduledTasks', schedulersWiringFile, scheduledTasks.files, packageMappings));
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { ScheduledTasksMeta } from '@pikku/core/scheduler';
|
|
2
2
|
export declare const serializeSchedulerMeta: (scheduledTasksMeta: ScheduledTasksMeta) => ScheduledTasksMeta;
|
|
3
|
-
export declare const serializeSchedulerMetaTS: (scheduledTasksMeta: ScheduledTasksMeta, jsonImportPath: string, supportsImportAttributes:
|
|
3
|
+
export declare const serializeSchedulerMetaTS: (scheduledTasksMeta: ScheduledTasksMeta, jsonImportPath: string, supportsImportAttributes: boolean) => string;
|
|
@@ -1,20 +1,21 @@
|
|
|
1
|
+
import { serializeMetaTS } from '../../../utils/serialize-meta-ts.js';
|
|
1
2
|
export const serializeSchedulerMeta = (scheduledTasksMeta) => {
|
|
2
3
|
return scheduledTasksMeta;
|
|
3
4
|
};
|
|
4
5
|
export const serializeSchedulerMetaTS = (scheduledTasksMeta, jsonImportPath, supportsImportAttributes) => {
|
|
5
|
-
const
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
serializedOutput.push("pikkuState('scheduler', 'meta', metaData as ScheduledTasksMeta)");
|
|
14
|
-
serializedOutput.push('');
|
|
6
|
+
const base = serializeMetaTS({
|
|
7
|
+
jsonImportPath,
|
|
8
|
+
supportsImportAttributes,
|
|
9
|
+
pikkuStateNamespace: 'scheduler',
|
|
10
|
+
pikkuStateKey: 'meta',
|
|
11
|
+
metaTypeImport: '@pikku/core/scheduler',
|
|
12
|
+
metaTypeName: 'ScheduledTasksMeta',
|
|
13
|
+
});
|
|
15
14
|
const scheduledTasksMetaValues = Object.values(scheduledTasksMeta);
|
|
16
15
|
if (scheduledTasksMetaValues.length > 0) {
|
|
17
|
-
|
|
16
|
+
return (base +
|
|
17
|
+
'\n\n' +
|
|
18
|
+
`export type ScheduledTaskNames = '${scheduledTasksMetaValues.map((s) => s.name).join("' | '")}'`);
|
|
18
19
|
}
|
|
19
|
-
return
|
|
20
|
+
return base;
|
|
20
21
|
};
|
|
@@ -22,7 +22,7 @@ type SchedulerWiring = CoreScheduledTask<PikkuFunctionConfig<void, void, 'sessio
|
|
|
22
22
|
* @param task - Scheduled task definition with cron expression and handler
|
|
23
23
|
*/
|
|
24
24
|
export const wireScheduler = (task: SchedulerWiring) => {
|
|
25
|
-
wireSchedulerCore(task as any)
|
|
25
|
+
wireSchedulerCore(task as any)
|
|
26
26
|
}
|
|
27
27
|
`;
|
|
28
28
|
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const pikkuSecrets: import("#pikku").PikkuFunctionConfig<void, void, "session" | "rpc", import("#pikku").PikkuFunctionSessionless<void, void, "session" | "rpc", import("#pikku").Services> | import("#pikku").PikkuFunction<void, void, "session" | "rpc", import("#pikku").Services>, undefined, undefined>;
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { pikkuSessionlessFunc } from '#pikku';
|
|
2
|
+
import { writeFileInDir } from '../../../utils/file-writer.js';
|
|
3
|
+
import { logCommandInfoAndTime } from '../../../middleware/log-command-info-and-time.js';
|
|
4
|
+
import { serializeSecretsTypes } from './serialize-secrets-types.js';
|
|
5
|
+
import { validateAndBuildSecretDefinitionsMeta } from '@pikku/core/secret';
|
|
6
|
+
export const pikkuSecrets = pikkuSessionlessFunc({
|
|
7
|
+
func: async ({ logger, config, getInspectorState }) => {
|
|
8
|
+
const { secretsFile, secretsMetaJsonFile, packageMappings } = config;
|
|
9
|
+
if (!secretsFile) {
|
|
10
|
+
return;
|
|
11
|
+
}
|
|
12
|
+
const state = await getInspectorState();
|
|
13
|
+
const content = serializeSecretsTypes({
|
|
14
|
+
definitions: state.secrets.definitions,
|
|
15
|
+
schemaLookup: state.schemaLookup,
|
|
16
|
+
secretsFile,
|
|
17
|
+
packageMappings,
|
|
18
|
+
});
|
|
19
|
+
await writeFileInDir(logger, secretsFile, content);
|
|
20
|
+
if (secretsMetaJsonFile) {
|
|
21
|
+
const meta = validateAndBuildSecretDefinitionsMeta(state.secrets.definitions, state.schemaLookup);
|
|
22
|
+
await writeFileInDir(logger, secretsMetaJsonFile, JSON.stringify(meta, null, 2));
|
|
23
|
+
}
|
|
24
|
+
},
|
|
25
|
+
middleware: [
|
|
26
|
+
logCommandInfoAndTime({
|
|
27
|
+
commandStart: 'Creating PikkuSecrets types',
|
|
28
|
+
commandEnd: 'Created PikkuSecrets types',
|
|
29
|
+
}),
|
|
30
|
+
],
|
|
31
|
+
});
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { SecretDefinitions } from '@pikku/core/secret';
|
|
2
|
+
import { SchemaRef } from '@pikku/inspector';
|
|
3
|
+
export interface SerializeSecretsOptions {
|
|
4
|
+
definitions: SecretDefinitions;
|
|
5
|
+
schemaLookup: Map<string, SchemaRef>;
|
|
6
|
+
secretsFile: string;
|
|
7
|
+
packageMappings: Record<string, string>;
|
|
8
|
+
}
|
|
9
|
+
export declare const serializeSecretsTypes: ({ definitions, schemaLookup, secretsFile, packageMappings, }: SerializeSecretsOptions) => string;
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import { validateAndBuildSecretDefinitionsMeta } from '@pikku/core/secret';
|
|
2
|
+
import { getFileImportRelativePath } from '../../../utils/file-import-path.js';
|
|
3
|
+
export const serializeSecretsTypes = ({ definitions, schemaLookup, secretsFile, packageMappings, }) => {
|
|
4
|
+
const secrets = validateAndBuildSecretDefinitionsMeta(definitions, schemaLookup);
|
|
5
|
+
const credentialEntries = Object.entries(secrets);
|
|
6
|
+
const schemaImports = new Map();
|
|
7
|
+
let needsOAuth2Types = false;
|
|
8
|
+
let needsZod = false;
|
|
9
|
+
const mapEntries = [];
|
|
10
|
+
const metaEntries = [];
|
|
11
|
+
for (const [name, meta] of credentialEntries) {
|
|
12
|
+
if (meta.oauth2) {
|
|
13
|
+
needsOAuth2Types = true;
|
|
14
|
+
mapEntries.push(` '${meta.secretId}': OAuth2AppCredential`);
|
|
15
|
+
mapEntries.push(` '${meta.oauth2.tokenSecretId}': OAuth2Token`);
|
|
16
|
+
metaEntries.push(` '${meta.secretId}': { name: '${name}', displayName: '${meta.displayName}', oauth2: { tokenSecretId: '${meta.oauth2.tokenSecretId}' } }`);
|
|
17
|
+
metaEntries.push(` '${meta.oauth2.tokenSecretId}': { name: '${name}_tokens', displayName: '${meta.displayName} Tokens' }`);
|
|
18
|
+
}
|
|
19
|
+
else if (meta.schema && typeof meta.schema === 'string') {
|
|
20
|
+
const schemaRef = schemaLookup.get(meta.schema);
|
|
21
|
+
if (schemaRef) {
|
|
22
|
+
needsZod = true;
|
|
23
|
+
if (!schemaImports.has(schemaRef.sourceFile)) {
|
|
24
|
+
schemaImports.set(schemaRef.sourceFile, new Set());
|
|
25
|
+
}
|
|
26
|
+
schemaImports.get(schemaRef.sourceFile).add(schemaRef.variableName);
|
|
27
|
+
mapEntries.push(` '${meta.secretId}': z.infer<typeof ${schemaRef.variableName}>`);
|
|
28
|
+
metaEntries.push(` '${meta.secretId}': { name: '${name}', displayName: '${meta.displayName}' }`);
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
const imports = [];
|
|
33
|
+
imports.push(`import { TypedSecretService as CoreTypedSecretService, type CredentialMeta } from '@pikku/core/services'`);
|
|
34
|
+
imports.push(`import type { SecretService } from '@pikku/core/services'`);
|
|
35
|
+
if (needsZod) {
|
|
36
|
+
imports.push(`import type { z } from 'zod'`);
|
|
37
|
+
}
|
|
38
|
+
if (needsOAuth2Types) {
|
|
39
|
+
imports.push(`import type { OAuth2AppCredential, OAuth2Token } from '@pikku/core/oauth2'`);
|
|
40
|
+
}
|
|
41
|
+
for (const [sourceFile, variableNames] of schemaImports) {
|
|
42
|
+
const importPath = getFileImportRelativePath(secretsFile, sourceFile, packageMappings);
|
|
43
|
+
const vars = Array.from(variableNames).join(', ');
|
|
44
|
+
imports.push(`import { ${vars} } from '${importPath}'`);
|
|
45
|
+
}
|
|
46
|
+
return `${imports.join('\n')}
|
|
47
|
+
|
|
48
|
+
export interface CredentialsMap {
|
|
49
|
+
${mapEntries.join('\n')}
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
export type SecretId = keyof CredentialsMap
|
|
53
|
+
|
|
54
|
+
const CREDENTIALS_META: Record<string, CredentialMeta> = {
|
|
55
|
+
${metaEntries.join(',\n')}
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
export class TypedSecretService extends CoreTypedSecretService<CredentialsMap> {
|
|
59
|
+
constructor(secrets: SecretService) {
|
|
60
|
+
super(secrets, CREDENTIALS_META)
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
`;
|
|
64
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const pikkuTriggerTypes: import("#pikku").PikkuFunctionConfig<void, void, "session" | "rpc", import("#pikku").PikkuFunctionSessionless<void, void, "session" | "rpc", import("#pikku").Services> | import("#pikku").PikkuFunction<void, void, "session" | "rpc", import("#pikku").Services>, undefined, undefined>;
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { pikkuSessionlessFunc } from '#pikku';
|
|
2
|
+
import { writeFileInDir } from '../../../utils/file-writer.js';
|
|
3
|
+
import { getFileImportRelativePath } from '../../../utils/file-import-path.js';
|
|
4
|
+
import { logCommandInfoAndTime } from '../../../middleware/log-command-info-and-time.js';
|
|
5
|
+
import { serializeTriggerTypes } from './serialize-trigger-types.js';
|
|
6
|
+
export const pikkuTriggerTypes = pikkuSessionlessFunc({
|
|
7
|
+
func: async ({ logger, config, getInspectorState }) => {
|
|
8
|
+
const { triggersTypesFile, packageMappings } = config;
|
|
9
|
+
const visitState = await getInspectorState();
|
|
10
|
+
const { singletonServicesType } = visitState.filesAndMethods;
|
|
11
|
+
if (!singletonServicesType) {
|
|
12
|
+
throw new Error('SingletonServices type not found');
|
|
13
|
+
}
|
|
14
|
+
const singletonServicesTypeImport = `import type { ${singletonServicesType.type} } from '${getFileImportRelativePath(triggersTypesFile, singletonServicesType.typePath, packageMappings)}'`;
|
|
15
|
+
const content = serializeTriggerTypes(singletonServicesTypeImport, singletonServicesType.type);
|
|
16
|
+
await writeFileInDir(logger, triggersTypesFile, content);
|
|
17
|
+
},
|
|
18
|
+
middleware: [
|
|
19
|
+
logCommandInfoAndTime({
|
|
20
|
+
commandStart: 'Creating trigger types',
|
|
21
|
+
commandEnd: 'Created trigger types',
|
|
22
|
+
}),
|
|
23
|
+
],
|
|
24
|
+
});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const pikkuTrigger: import("#pikku").PikkuFunctionConfig<void, boolean | undefined, "session" | "rpc", import("#pikku").PikkuFunctionSessionless<void, boolean | undefined, "session" | "rpc", import("#pikku").Services> | import("#pikku").PikkuFunction<void, boolean | undefined, "session" | "rpc", import("#pikku").Services>, undefined, undefined>;
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { pikkuSessionlessFunc } from '#pikku';
|
|
2
|
+
import { serializeFileImports } from '../../../utils/file-imports-serializer.js';
|
|
3
|
+
import { writeFileInDir } from '../../../utils/file-writer.js';
|
|
4
|
+
import { logCommandInfoAndTime } from '../../../middleware/log-command-info-and-time.js';
|
|
5
|
+
import { serializeTriggerMeta, serializeTriggerMetaTS, serializeTriggerSourceMeta, serializeTriggerSourceMetaTS, } from './serialize-trigger-meta.js';
|
|
6
|
+
import { getFileImportRelativePath } from '../../../utils/file-import-path.js';
|
|
7
|
+
import { stripVerboseFields, hasVerboseFields, } from '../../../utils/strip-verbose-meta.js';
|
|
8
|
+
export const pikkuTrigger = pikkuSessionlessFunc({
|
|
9
|
+
func: async ({ logger, config, getInspectorState }) => {
|
|
10
|
+
const visitState = await getInspectorState();
|
|
11
|
+
const { triggersWiringFile, triggersWiringMetaFile, triggersWiringMetaJsonFile, triggerSourcesMetaFile, triggerSourcesMetaJsonFile, packageMappings, schema, } = config;
|
|
12
|
+
const { triggers } = visitState;
|
|
13
|
+
if (Object.keys(triggers.meta).length === 0) {
|
|
14
|
+
return undefined;
|
|
15
|
+
}
|
|
16
|
+
const fullMeta = serializeTriggerMeta(triggers.meta);
|
|
17
|
+
// Write minimal JSON (runtime-only fields)
|
|
18
|
+
const minimalMeta = stripVerboseFields(fullMeta);
|
|
19
|
+
await writeFileInDir(logger, triggersWiringMetaJsonFile, JSON.stringify(minimalMeta, null, 2));
|
|
20
|
+
// Write verbose JSON only if it has additional fields
|
|
21
|
+
if (hasVerboseFields(fullMeta)) {
|
|
22
|
+
const verbosePath = triggersWiringMetaJsonFile.replace(/\.gen\.json$/, '-verbose.gen.json');
|
|
23
|
+
await writeFileInDir(logger, verbosePath, JSON.stringify(fullMeta, null, 2));
|
|
24
|
+
}
|
|
25
|
+
const jsonImportPath = getFileImportRelativePath(triggersWiringMetaFile, triggersWiringMetaJsonFile, packageMappings);
|
|
26
|
+
await writeFileInDir(logger, triggersWiringMetaFile, serializeTriggerMetaTS(triggers.meta, jsonImportPath, schema?.supportsImportAttributes ?? false));
|
|
27
|
+
await writeFileInDir(logger, triggersWiringFile, serializeFileImports('wireTrigger', triggersWiringFile, triggers.files, packageMappings));
|
|
28
|
+
const sourceMetaJson = serializeTriggerSourceMeta(triggers.sourceMeta);
|
|
29
|
+
await writeFileInDir(logger, triggerSourcesMetaJsonFile, JSON.stringify(sourceMetaJson, null, 2));
|
|
30
|
+
const sourceMetaJsonImportPath = getFileImportRelativePath(triggerSourcesMetaFile, triggerSourcesMetaJsonFile, packageMappings);
|
|
31
|
+
await writeFileInDir(logger, triggerSourcesMetaFile, serializeTriggerSourceMetaTS(triggers.sourceMeta, sourceMetaJsonImportPath, schema?.supportsImportAttributes ?? false));
|
|
32
|
+
return true;
|
|
33
|
+
},
|
|
34
|
+
middleware: [
|
|
35
|
+
logCommandInfoAndTime({
|
|
36
|
+
commandStart: 'Finding triggers',
|
|
37
|
+
commandEnd: 'Found triggers',
|
|
38
|
+
}),
|
|
39
|
+
],
|
|
40
|
+
});
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { TriggerMeta, TriggerSourceMeta } from '@pikku/core/trigger';
|
|
2
|
+
export declare const serializeTriggerMeta: (triggerMeta: TriggerMeta) => TriggerMeta;
|
|
3
|
+
export declare const serializeTriggerMetaTS: (triggerMeta: TriggerMeta, jsonImportPath: string, supportsImportAttributes: boolean) => string;
|
|
4
|
+
export declare const serializeTriggerSourceMeta: (sourceMeta: TriggerSourceMeta) => TriggerSourceMeta;
|
|
5
|
+
export declare const serializeTriggerSourceMetaTS: (sourceMeta: TriggerSourceMeta, jsonImportPath: string, supportsImportAttributes: boolean) => string;
|