@pikku/core 0.11.2 → 0.12.1
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/CHANGELOG.md +57 -2
- package/dist/crypto-utils.d.ts +2 -0
- package/dist/crypto-utils.js +78 -0
- package/dist/errors/errors.d.ts +14 -0
- package/dist/errors/errors.js +26 -0
- package/dist/errors/index.d.ts +1 -1
- package/dist/errors/index.js +1 -1
- package/dist/function/function-runner.d.ts +10 -4
- package/dist/function/function-runner.js +126 -45
- package/dist/function/functions.types.d.ts +32 -87
- package/dist/function/functions.types.js +16 -46
- package/dist/function/index.d.ts +2 -2
- package/dist/function/index.js +1 -2
- package/dist/handle-error.d.ts +2 -2
- package/dist/handle-error.js +3 -12
- package/dist/index.d.ts +30 -26
- package/dist/index.js +19 -29
- package/dist/internal.d.ts +3 -0
- package/dist/internal.js +2 -0
- package/dist/middleware/auth-apikey.d.ts +2 -2
- package/dist/middleware/auth-apikey.js +3 -3
- package/dist/middleware/auth-bearer.d.ts +3 -3
- package/dist/middleware/auth-bearer.js +4 -7
- package/dist/middleware/auth-cookie.d.ts +4 -4
- package/dist/middleware/auth-cookie.js +7 -9
- package/dist/middleware/cors.d.ts +46 -0
- package/dist/middleware/cors.js +81 -0
- package/dist/middleware/index.d.ts +5 -3
- package/dist/middleware/index.js +5 -3
- package/dist/middleware/remote-auth.d.ts +5 -0
- package/dist/middleware/remote-auth.js +55 -0
- package/dist/middleware/timeout.d.ts +2 -2
- package/dist/middleware-runner.d.ts +1 -1
- package/dist/middleware-runner.js +8 -10
- package/dist/permissions.d.ts +2 -2
- package/dist/permissions.js +11 -15
- package/dist/pikku-state.d.ts +10 -8
- package/dist/pikku-state.js +48 -25
- package/dist/schema.d.ts +4 -4
- package/dist/schema.js +20 -15
- package/dist/services/ai-agent-runner-service.d.ts +43 -0
- package/dist/services/ai-agent-runner-service.js +1 -0
- package/dist/services/ai-run-state-service.d.ts +13 -0
- package/dist/services/ai-run-state-service.js +1 -0
- package/dist/services/ai-storage-service.d.ts +18 -0
- package/dist/services/ai-storage-service.js +1 -0
- package/dist/services/content-service.d.ts +6 -0
- package/dist/services/deployment-service.d.ts +19 -0
- package/dist/services/deployment-service.js +1 -0
- package/dist/services/gopass-secrets.d.ts +47 -0
- package/dist/services/gopass-secrets.js +97 -0
- package/dist/services/in-memory-ai-run-state-service.d.ts +15 -0
- package/dist/services/in-memory-ai-run-state-service.js +44 -0
- package/dist/services/in-memory-trigger-service.d.ts +22 -0
- package/dist/services/in-memory-trigger-service.js +48 -0
- package/dist/services/in-memory-workflow-service.d.ts +59 -0
- package/dist/services/in-memory-workflow-service.js +287 -0
- package/dist/services/index.d.ts +26 -11
- package/dist/services/index.js +11 -13
- package/dist/services/local-content.d.ts +2 -1
- package/dist/services/local-content.js +6 -1
- package/dist/services/local-secrets.d.ts +25 -2
- package/dist/services/local-secrets.js +45 -0
- package/dist/services/local-variables.d.ts +6 -1
- package/dist/services/local-variables.js +18 -0
- package/dist/services/logger-console.d.ts +2 -1
- package/dist/services/scheduler-service.d.ts +9 -1
- package/dist/services/scheduler-service.js +8 -0
- package/dist/services/schema-service.d.ts +6 -0
- package/dist/services/scoped-secret-service.d.ts +16 -0
- package/dist/services/scoped-secret-service.js +35 -0
- package/dist/services/secret-service.d.ts +25 -4
- package/dist/services/trigger-service.d.ts +16 -0
- package/dist/services/trigger-service.js +1 -0
- package/dist/services/typed-secret-service.d.ts +30 -0
- package/dist/services/typed-secret-service.js +40 -0
- package/dist/services/typed-variables-service.d.ts +27 -0
- package/dist/services/typed-variables-service.js +46 -0
- package/dist/services/user-session-service.d.ts +15 -2
- package/dist/services/user-session-service.js +17 -0
- package/dist/services/variables-service.d.ts +5 -0
- package/dist/services/workflow-service.d.ts +9 -5
- package/dist/types/core.types.d.ts +67 -25
- package/dist/types/core.types.js +8 -1
- package/dist/types/state.types.d.ts +53 -59
- package/dist/utils.d.ts +7 -6
- package/dist/utils.js +27 -12
- package/dist/version.d.ts +6 -0
- package/dist/version.js +19 -0
- package/dist/wirings/ai-agent/ai-agent-assistant-ui.d.ts +5 -0
- package/dist/wirings/ai-agent/ai-agent-assistant-ui.js +146 -0
- package/dist/wirings/ai-agent/ai-agent-helpers.d.ts +28 -0
- package/dist/wirings/ai-agent/ai-agent-helpers.js +40 -0
- package/dist/wirings/ai-agent/ai-agent-memory.d.ts +29 -0
- package/dist/wirings/ai-agent/ai-agent-memory.js +199 -0
- package/dist/wirings/ai-agent/ai-agent-model-config.d.ts +9 -0
- package/dist/wirings/ai-agent/ai-agent-model-config.js +36 -0
- package/dist/wirings/ai-agent/ai-agent-prepare.d.ts +59 -0
- package/dist/wirings/ai-agent/ai-agent-prepare.js +348 -0
- package/dist/wirings/ai-agent/ai-agent-registry.d.ts +15 -0
- package/dist/wirings/ai-agent/ai-agent-registry.js +47 -0
- package/dist/wirings/ai-agent/ai-agent-runner.d.ts +3 -0
- package/dist/wirings/ai-agent/ai-agent-runner.js +195 -0
- package/dist/wirings/ai-agent/ai-agent-stream.d.ts +12 -0
- package/dist/wirings/ai-agent/ai-agent-stream.js +662 -0
- package/dist/wirings/ai-agent/ai-agent.types.d.ts +313 -0
- package/dist/wirings/ai-agent/ai-agent.types.js +1 -0
- package/dist/wirings/ai-agent/index.d.ts +7 -0
- package/dist/wirings/ai-agent/index.js +6 -0
- package/dist/wirings/channel/channel-common.d.ts +8 -5
- package/dist/wirings/channel/channel-common.js +15 -8
- package/dist/wirings/channel/channel-handler.d.ts +3 -3
- package/dist/wirings/channel/channel-handler.js +15 -6
- package/dist/wirings/channel/channel-middleware-runner.d.ts +9 -0
- package/dist/wirings/channel/channel-middleware-runner.js +73 -0
- package/dist/wirings/channel/channel-runner.d.ts +5 -5
- package/dist/wirings/channel/channel-runner.js +10 -9
- package/dist/wirings/channel/channel-store.d.ts +1 -1
- package/dist/wirings/channel/channel.types.d.ts +9 -7
- package/dist/wirings/channel/define-channel-routes.d.ts +21 -0
- package/dist/wirings/channel/define-channel-routes.js +23 -0
- package/dist/wirings/channel/index.d.ts +10 -8
- package/dist/wirings/channel/index.js +7 -8
- package/dist/wirings/channel/local/index.d.ts +3 -3
- package/dist/wirings/channel/local/index.js +3 -3
- package/dist/wirings/channel/local/local-channel-runner.d.ts +7 -2
- package/dist/wirings/channel/local/local-channel-runner.js +22 -9
- package/dist/wirings/channel/local/local-eventhub-service.d.ts +2 -2
- package/dist/wirings/channel/log-channels.d.ts +1 -1
- package/dist/wirings/channel/pikku-abstract-channel-handler.d.ts +1 -1
- package/dist/wirings/channel/serverless/index.d.ts +1 -1
- package/dist/wirings/channel/serverless/index.js +1 -1
- package/dist/wirings/channel/serverless/serverless-channel-runner.d.ts +4 -4
- package/dist/wirings/channel/serverless/serverless-channel-runner.js +40 -23
- package/dist/wirings/cli/channel/cli-channel-runner.d.ts +1 -1
- package/dist/wirings/cli/channel/index.d.ts +1 -1
- package/dist/wirings/cli/channel/index.js +1 -1
- package/dist/wirings/cli/cli-runner.d.ts +3 -3
- package/dist/wirings/cli/cli-runner.js +12 -8
- package/dist/wirings/cli/cli.types.d.ts +9 -9
- package/dist/wirings/cli/command-parser.d.ts +1 -1
- package/dist/wirings/cli/define-cli-commands.d.ts +19 -0
- package/dist/wirings/cli/define-cli-commands.js +20 -0
- package/dist/wirings/cli/index.d.ts +2 -3
- package/dist/wirings/cli/index.js +1 -3
- package/dist/wirings/http/http-routes.d.ts +69 -0
- package/dist/wirings/http/http-routes.js +139 -0
- package/dist/wirings/http/http-runner.d.ts +9 -9
- package/dist/wirings/http/http-runner.js +79 -34
- package/dist/wirings/http/http.types.d.ts +77 -41
- package/dist/wirings/http/index.d.ts +5 -4
- package/dist/wirings/http/index.js +4 -3
- package/dist/wirings/http/log-http-routes.d.ts +1 -1
- package/dist/wirings/http/pikku-fetch-http-request.d.ts +1 -1
- package/dist/wirings/http/pikku-fetch-http-response.d.ts +2 -2
- package/dist/wirings/http/pikku-fetch-http-response.js +6 -1
- package/dist/wirings/http/routers/http-router.d.ts +1 -1
- package/dist/wirings/http/routers/path-to-regex.d.ts +2 -2
- package/dist/wirings/mcp/index.d.ts +4 -3
- package/dist/wirings/mcp/index.js +3 -3
- package/dist/wirings/mcp/mcp-endpoint-registry.d.ts +1 -1
- package/dist/wirings/mcp/mcp-runner.d.ts +1 -6
- package/dist/wirings/mcp/mcp-runner.js +28 -40
- package/dist/wirings/mcp/mcp.types.d.ts +5 -5
- package/dist/wirings/node/index.d.ts +2 -0
- package/dist/wirings/node/index.js +1 -0
- package/dist/wirings/node/node.types.d.ts +20 -0
- package/dist/wirings/node/node.types.js +1 -0
- package/dist/wirings/oauth2/index.d.ts +3 -0
- package/dist/wirings/oauth2/index.js +2 -0
- package/dist/wirings/oauth2/oauth2-client.d.ts +47 -0
- package/dist/wirings/oauth2/oauth2-client.js +267 -0
- package/dist/wirings/oauth2/oauth2.types.d.ts +65 -0
- package/dist/wirings/oauth2/oauth2.types.js +4 -0
- package/dist/wirings/oauth2/wire-oauth2-credential.d.ts +20 -0
- package/dist/wirings/oauth2/wire-oauth2-credential.js +21 -0
- package/dist/wirings/queue/index.d.ts +1 -1
- package/dist/wirings/queue/queue-runner.d.ts +1 -5
- package/dist/wirings/queue/queue-runner.js +11 -8
- package/dist/wirings/queue/queue.types.d.ts +5 -5
- package/dist/wirings/queue/register-queue-helper.d.ts +2 -2
- package/dist/wirings/queue/register-queue-helper.js +1 -1
- package/dist/wirings/queue/validate-worker-config.d.ts +1 -1
- package/dist/wirings/rpc/index.d.ts +3 -1
- package/dist/wirings/rpc/index.js +2 -1
- package/dist/wirings/rpc/rpc-runner.d.ts +58 -8
- package/dist/wirings/rpc/rpc-runner.js +177 -31
- package/dist/wirings/rpc/rpc-types.d.ts +20 -4
- package/dist/wirings/rpc/wire-addon.d.ts +10 -0
- package/dist/wirings/rpc/wire-addon.js +9 -0
- package/dist/wirings/scheduler/index.d.ts +2 -2
- package/dist/wirings/scheduler/index.js +1 -2
- package/dist/wirings/scheduler/log-schedulers.d.ts +1 -1
- package/dist/wirings/scheduler/scheduler-runner.d.ts +3 -5
- package/dist/wirings/scheduler/scheduler-runner.js +11 -14
- package/dist/wirings/scheduler/scheduler.types.d.ts +2 -2
- package/dist/wirings/secret/index.d.ts +3 -0
- package/dist/wirings/secret/index.js +2 -0
- package/dist/wirings/secret/secret.types.d.ts +27 -0
- package/dist/wirings/secret/secret.types.js +1 -0
- package/dist/wirings/secret/validate-secret-definitions.d.ts +6 -0
- package/dist/wirings/secret/validate-secret-definitions.js +55 -0
- package/dist/wirings/trigger/index.d.ts +3 -2
- package/dist/wirings/trigger/index.js +2 -2
- package/dist/wirings/trigger/pikku-trigger-service.d.ts +22 -0
- package/dist/wirings/trigger/pikku-trigger-service.js +70 -0
- package/dist/wirings/trigger/trigger-runner.d.ts +18 -9
- package/dist/wirings/trigger/trigger-runner.js +48 -19
- package/dist/wirings/trigger/trigger.types.d.ts +99 -11
- package/dist/wirings/trigger/trigger.types.js +40 -1
- package/dist/wirings/variable/index.d.ts +3 -0
- package/dist/wirings/variable/index.js +2 -0
- package/dist/wirings/variable/validate-variable-definitions.d.ts +6 -0
- package/dist/wirings/variable/validate-variable-definitions.js +45 -0
- package/dist/wirings/variable/variable.types.d.ts +18 -0
- package/dist/wirings/variable/variable.types.js +1 -0
- package/dist/wirings/workflow/dsl/index.d.ts +1 -1
- package/dist/wirings/workflow/dsl/workflow-dsl.types.d.ts +7 -1
- package/dist/wirings/workflow/dsl/workflow-runner.js +3 -2
- package/dist/wirings/workflow/graph/graph-node.d.ts +1 -6
- package/dist/wirings/workflow/graph/graph-runner.d.ts +5 -31
- package/dist/wirings/workflow/graph/graph-runner.js +384 -296
- package/dist/wirings/workflow/graph/index.d.ts +4 -3
- package/dist/wirings/workflow/graph/index.js +3 -3
- package/dist/wirings/workflow/graph/template.d.ts +15 -0
- package/dist/wirings/workflow/graph/template.js +27 -0
- package/dist/wirings/workflow/graph/wire-workflow-graph.d.ts +15 -0
- package/dist/wirings/workflow/graph/wire-workflow-graph.js +8 -0
- package/dist/wirings/workflow/graph/workflow-graph.types.d.ts +0 -13
- package/dist/wirings/workflow/index.d.ts +6 -6
- package/dist/wirings/workflow/index.js +6 -4
- package/dist/wirings/workflow/pikku-workflow-service.d.ts +29 -19
- package/dist/wirings/workflow/pikku-workflow-service.js +217 -82
- package/dist/wirings/workflow/workflow-helpers.d.ts +36 -0
- package/dist/wirings/workflow/workflow-helpers.js +38 -0
- package/dist/wirings/workflow/workflow.types.d.ts +42 -95
- package/package.json +14 -15
- package/run-tests.sh +4 -1
- package/src/crypto-utils.test.ts +116 -0
- package/src/crypto-utils.ts +99 -0
- package/src/errors/error.test.ts +143 -2
- package/src/errors/errors.ts +27 -0
- package/src/errors/index.ts +1 -1
- package/src/factory-functions.test.ts +42 -2
- package/src/function/function-runner.test.ts +6 -13
- package/src/function/function-runner.ts +161 -53
- package/src/function/functions.types.ts +63 -132
- package/src/function/index.ts +5 -2
- package/src/handle-error.test.ts +361 -0
- package/src/handle-error.ts +6 -14
- package/src/index.ts +97 -30
- package/src/internal.ts +6 -0
- package/src/middleware/auth-apikey.test.ts +16 -13
- package/src/middleware/auth-apikey.ts +3 -3
- package/src/middleware/auth-bearer.test.ts +18 -15
- package/src/middleware/auth-bearer.ts +27 -32
- package/src/middleware/auth-cookie.test.ts +17 -14
- package/src/middleware/auth-cookie.ts +9 -13
- package/src/middleware/cors.test.ts +424 -0
- package/src/middleware/cors.ts +104 -0
- package/src/middleware/index.ts +5 -3
- package/src/middleware/remote-auth.test.ts +488 -0
- package/src/middleware/remote-auth.ts +68 -0
- package/src/middleware-runner.test.ts +123 -1
- package/src/middleware-runner.ts +13 -13
- package/src/permissions.test.ts +83 -9
- package/src/permissions.ts +17 -19
- package/src/pikku-state.test.ts +224 -0
- package/src/pikku-state.ts +59 -35
- package/src/run-tests-script.test.ts +49 -0
- package/src/schema.test.ts +198 -6
- package/src/schema.ts +28 -21
- package/src/services/ai-agent-runner-service.ts +41 -0
- package/src/services/ai-run-state-service.ts +20 -0
- package/src/services/ai-storage-service.ts +39 -0
- package/src/services/content-service.ts +7 -0
- package/src/services/deployment-service.ts +22 -0
- package/src/services/gopass-secrets.ts +98 -0
- package/src/services/in-memory-ai-run-state-service.ts +73 -0
- package/src/services/in-memory-trigger-service.ts +64 -0
- package/src/services/in-memory-workflow-service.test.ts +351 -0
- package/src/services/in-memory-workflow-service.ts +395 -0
- package/src/services/index.ts +50 -14
- package/src/services/local-content.ts +9 -3
- package/src/services/local-secrets.test.ts +80 -0
- package/src/services/local-secrets.ts +53 -2
- package/src/services/local-variables.test.ts +61 -0
- package/src/services/local-variables.ts +23 -1
- package/src/services/logger-console.test.ts +118 -0
- package/src/services/logger-console.ts +2 -1
- package/src/services/scheduler-service.ts +11 -1
- package/src/services/schema-service.ts +7 -0
- package/src/services/scoped-secret-service.test.ts +74 -0
- package/src/services/scoped-secret-service.ts +41 -0
- package/src/services/secret-service.ts +25 -4
- package/src/services/trigger-service.ts +17 -0
- package/src/services/typed-secret-service.test.ts +93 -0
- package/src/services/typed-secret-service.ts +70 -0
- package/src/services/typed-variables-service.test.ts +73 -0
- package/src/services/typed-variables-service.ts +81 -0
- package/src/services/user-session-service.test.ts +113 -0
- package/src/services/user-session-service.ts +25 -2
- package/src/services/variables-service.ts +5 -0
- package/src/services/workflow-service.ts +23 -13
- package/src/time-utils.test.ts +1 -1
- package/src/types/core.types.ts +95 -24
- package/src/types/state.types.ts +56 -73
- package/src/utils.test.ts +350 -0
- package/src/utils.ts +33 -18
- package/src/version.test.ts +80 -0
- package/src/version.ts +25 -0
- package/src/wirings/ai-agent/ai-agent-assistant-ui.test.ts +363 -0
- package/src/wirings/ai-agent/ai-agent-assistant-ui.ts +214 -0
- package/src/wirings/ai-agent/ai-agent-helpers.test.ts +152 -0
- package/src/wirings/ai-agent/ai-agent-helpers.ts +76 -0
- package/src/wirings/ai-agent/ai-agent-memory.ts +300 -0
- package/src/wirings/ai-agent/ai-agent-model-config.test.ts +115 -0
- package/src/wirings/ai-agent/ai-agent-model-config.ts +43 -0
- package/src/wirings/ai-agent/ai-agent-prepare.ts +504 -0
- package/src/wirings/ai-agent/ai-agent-registry.test.ts +37 -0
- package/src/wirings/ai-agent/ai-agent-registry.ts +82 -0
- package/src/wirings/ai-agent/ai-agent-runner.test.ts +317 -0
- package/src/wirings/ai-agent/ai-agent-runner.ts +251 -0
- package/src/wirings/ai-agent/ai-agent-stream.test.ts +652 -0
- package/src/wirings/ai-agent/ai-agent-stream.ts +1049 -0
- package/src/wirings/ai-agent/ai-agent.types.ts +328 -0
- package/src/wirings/ai-agent/index.ts +39 -0
- package/src/wirings/channel/channel-common.ts +33 -20
- package/src/wirings/channel/channel-handler.ts +26 -9
- package/src/wirings/channel/channel-middleware-runner.ts +119 -0
- package/src/wirings/channel/channel-runner.ts +15 -16
- package/src/wirings/channel/channel-store.ts +1 -1
- package/src/wirings/channel/channel.types.ts +21 -9
- package/src/wirings/channel/define-channel-routes.ts +25 -0
- package/src/wirings/channel/index.ts +23 -8
- package/src/wirings/channel/local/index.ts +3 -3
- package/src/wirings/channel/local/local-channel-runner.test.ts +57 -7
- package/src/wirings/channel/local/local-channel-runner.ts +40 -19
- package/src/wirings/channel/local/local-eventhub-service.test.ts +2 -2
- package/src/wirings/channel/local/local-eventhub-service.ts +2 -2
- package/src/wirings/channel/log-channels.ts +1 -1
- package/src/wirings/channel/pikku-abstract-channel-handler.ts +1 -1
- package/src/wirings/channel/serverless/index.ts +5 -1
- package/src/wirings/channel/serverless/serverless-channel-runner.ts +57 -36
- package/src/wirings/cli/channel/cli-channel-runner.ts +1 -1
- package/src/wirings/cli/channel/index.ts +1 -1
- package/src/wirings/cli/cli-runner.test.ts +10 -10
- package/src/wirings/cli/cli-runner.ts +28 -14
- package/src/wirings/cli/cli.types.ts +14 -14
- package/src/wirings/cli/command-parser.test.ts +9 -9
- package/src/wirings/cli/command-parser.ts +1 -1
- package/src/wirings/cli/define-cli-commands.ts +24 -0
- package/src/wirings/cli/index.ts +10 -4
- package/src/wirings/http/http-routes.test.ts +322 -0
- package/src/wirings/http/http-routes.ts +198 -0
- package/src/wirings/http/http-runner.test.ts +12 -20
- package/src/wirings/http/http-runner.ts +101 -51
- package/src/wirings/http/http.types.ts +119 -48
- package/src/wirings/http/index.ts +16 -4
- package/src/wirings/http/log-http-routes.ts +1 -1
- package/src/wirings/http/pikku-fetch-http-request.ts +1 -1
- package/src/wirings/http/pikku-fetch-http-response.ts +12 -5
- package/src/wirings/http/routers/http-router.ts +1 -1
- package/src/wirings/http/routers/path-to-regex.test.ts +1 -1
- package/src/wirings/http/routers/path-to-regex.ts +4 -3
- package/src/wirings/mcp/index.ts +27 -3
- package/src/wirings/mcp/mcp-endpoint-registry.test.ts +3 -3
- package/src/wirings/mcp/mcp-endpoint-registry.ts +5 -1
- package/src/wirings/mcp/mcp-runner.ts +48 -65
- package/src/wirings/mcp/mcp.types.ts +5 -5
- package/src/wirings/node/index.ts +2 -0
- package/src/wirings/node/node.types.ts +23 -0
- package/src/wirings/oauth2/index.ts +3 -0
- package/src/wirings/oauth2/oauth2-client.test.ts +929 -0
- package/src/wirings/oauth2/oauth2-client.ts +335 -0
- package/src/wirings/oauth2/oauth2.types.ts +69 -0
- package/src/wirings/oauth2/wire-oauth2-credential.ts +23 -0
- package/src/wirings/queue/index.ts +13 -2
- package/src/wirings/queue/queue-runner.test.ts +142 -73
- package/src/wirings/queue/queue-runner.ts +18 -14
- package/src/wirings/queue/queue.types.ts +5 -5
- package/src/wirings/queue/register-queue-helper.ts +3 -5
- package/src/wirings/queue/validate-worker-config.test.ts +108 -0
- package/src/wirings/queue/validate-worker-config.ts +4 -1
- package/src/wirings/rpc/index.ts +3 -1
- package/src/wirings/rpc/rpc-runner.ts +254 -41
- package/src/wirings/rpc/rpc-types.ts +28 -4
- package/src/wirings/rpc/wire-addon.ts +20 -0
- package/src/wirings/scheduler/index.ts +6 -4
- package/src/wirings/scheduler/log-schedulers.ts +1 -1
- package/src/wirings/scheduler/scheduler-runner.test.ts +78 -45
- package/src/wirings/scheduler/scheduler-runner.ts +20 -27
- package/src/wirings/scheduler/scheduler.types.ts +2 -2
- package/src/wirings/secret/index.ts +9 -0
- package/src/wirings/secret/secret.types.ts +32 -0
- package/src/wirings/secret/validate-secret-definitions.test.ts +140 -0
- package/src/wirings/secret/validate-secret-definitions.ts +82 -0
- package/src/wirings/trigger/index.ts +10 -2
- package/src/wirings/trigger/pikku-trigger-service.ts +112 -0
- package/src/wirings/trigger/trigger-runner.test.ts +79 -0
- package/src/wirings/trigger/trigger-runner.ts +80 -41
- package/src/wirings/trigger/trigger.types.ts +144 -22
- package/src/wirings/variable/index.ts +8 -0
- package/src/wirings/variable/validate-variable-definitions.test.ts +91 -0
- package/src/wirings/variable/validate-variable-definitions.ts +69 -0
- package/src/wirings/variable/variable.types.ts +22 -0
- package/src/wirings/workflow/dsl/index.ts +1 -0
- package/src/wirings/workflow/dsl/workflow-dsl.types.ts +9 -1
- package/src/wirings/workflow/dsl/workflow-runner.ts +4 -3
- package/src/wirings/workflow/graph/graph-node.ts +1 -6
- package/src/wirings/workflow/graph/graph-runner.test.ts +487 -0
- package/src/wirings/workflow/graph/graph-runner.ts +496 -374
- package/src/wirings/workflow/graph/index.ts +14 -3
- package/src/wirings/workflow/graph/template.test.ts +49 -0
- package/src/wirings/workflow/graph/template.ts +42 -0
- package/src/wirings/workflow/graph/wire-workflow-graph.ts +29 -0
- package/src/wirings/workflow/graph/workflow-graph.types.ts +0 -22
- package/src/wirings/workflow/index.ts +21 -10
- package/src/wirings/workflow/pikku-workflow-service.test.ts +200 -0
- package/src/wirings/workflow/pikku-workflow-service.ts +308 -105
- package/src/wirings/workflow/workflow-helpers.test.ts +129 -0
- package/src/wirings/workflow/workflow-helpers.ts +79 -0
- package/src/wirings/workflow/workflow.types.ts +47 -92
- package/tsconfig.tsbuildinfo +1 -1
- package/dist/wirings/forge-node/forge-node.types.d.ts +0 -120
- package/dist/wirings/forge-node/forge-node.types.js +0 -38
- package/dist/wirings/forge-node/index.d.ts +0 -1
- package/dist/wirings/forge-node/index.js +0 -1
- package/dist/wirings/workflow/wire-workflow.d.ts +0 -42
- package/dist/wirings/workflow/wire-workflow.js +0 -53
- package/dist/wirings/workflow/workflow-utils.d.ts +0 -23
- package/dist/wirings/workflow/workflow-utils.js +0 -66
- package/src/wirings/forge-node/forge-node.types.ts +0 -135
- package/src/wirings/forge-node/index.ts +0 -1
- package/src/wirings/workflow/wire-workflow.ts +0 -94
- package/src/wirings/workflow/workflow-utils.ts +0 -120
|
@@ -147,7 +147,7 @@ describe('MCPEndpointRegistry', () => {
|
|
|
147
147
|
uri: 'file://test.txt',
|
|
148
148
|
title: 'Test Resource',
|
|
149
149
|
description: 'Test description',
|
|
150
|
-
|
|
150
|
+
pikkuFuncId: 'testResource',
|
|
151
151
|
inputSchema: null,
|
|
152
152
|
outputSchema: null,
|
|
153
153
|
mimeType: 'text/plain',
|
|
@@ -164,7 +164,7 @@ describe('MCPEndpointRegistry', () => {
|
|
|
164
164
|
name: 'test-tool',
|
|
165
165
|
title: 'Test Tool',
|
|
166
166
|
description: 'Test description',
|
|
167
|
-
|
|
167
|
+
pikkuFuncId: 'testTool',
|
|
168
168
|
inputSchema: null,
|
|
169
169
|
outputSchema: null,
|
|
170
170
|
},
|
|
@@ -179,7 +179,7 @@ describe('MCPEndpointRegistry', () => {
|
|
|
179
179
|
'test-prompt': {
|
|
180
180
|
name: 'test-prompt',
|
|
181
181
|
description: 'Test Prompt',
|
|
182
|
-
|
|
182
|
+
pikkuFuncId: 'testPrompt',
|
|
183
183
|
inputSchema: null,
|
|
184
184
|
outputSchema: null,
|
|
185
185
|
arguments: [],
|
|
@@ -1,13 +1,6 @@
|
|
|
1
|
-
import {
|
|
2
|
-
PikkuWire,
|
|
3
|
-
type CoreServices,
|
|
4
|
-
type CoreSingletonServices,
|
|
5
|
-
type CoreUserSession,
|
|
6
|
-
type CreateWireServices,
|
|
7
|
-
} from '../../types/core.types.js'
|
|
1
|
+
import type { PikkuWire } from '../../types/core.types.js'
|
|
8
2
|
import type {
|
|
9
3
|
CoreMCPResource,
|
|
10
|
-
CoreMCPTool,
|
|
11
4
|
CoreMCPPrompt,
|
|
12
5
|
JsonRpcRequest,
|
|
13
6
|
JsonRpcResponse,
|
|
@@ -20,10 +13,21 @@ import type {
|
|
|
20
13
|
} from '../../function/functions.types.js'
|
|
21
14
|
import { getErrorResponse } from '../../errors/error-handler.js'
|
|
22
15
|
import { closeWireServices } from '../../utils.js'
|
|
23
|
-
import {
|
|
16
|
+
import {
|
|
17
|
+
pikkuState,
|
|
18
|
+
getSingletonServices,
|
|
19
|
+
getCreateWireServices,
|
|
20
|
+
} from '../../pikku-state.js'
|
|
24
21
|
import { addFunction, runPikkuFunc } from '../../function/function-runner.js'
|
|
25
|
-
import {
|
|
26
|
-
|
|
22
|
+
import {
|
|
23
|
+
BadRequestError,
|
|
24
|
+
NotFoundError,
|
|
25
|
+
PikkuMissingMetaError,
|
|
26
|
+
} from '../../errors/errors.js'
|
|
27
|
+
import {
|
|
28
|
+
PikkuSessionService,
|
|
29
|
+
createMiddlewareSessionWireProps,
|
|
30
|
+
} from '../../services/user-session-service.js'
|
|
27
31
|
|
|
28
32
|
export class MCPError extends Error {
|
|
29
33
|
constructor(public readonly error: JsonRpcErrorResponse) {
|
|
@@ -34,13 +38,7 @@ export class MCPError extends Error {
|
|
|
34
38
|
}
|
|
35
39
|
|
|
36
40
|
export type RunMCPEndpointParams<Tools extends string = any> = {
|
|
37
|
-
singletonServices: CoreSingletonServices
|
|
38
41
|
mcp?: PikkuMCP<Tools>
|
|
39
|
-
createWireServices?: CreateWireServices<
|
|
40
|
-
CoreSingletonServices,
|
|
41
|
-
CoreServices<CoreSingletonServices>,
|
|
42
|
-
CoreUserSession
|
|
43
|
-
>
|
|
44
42
|
}
|
|
45
43
|
|
|
46
44
|
export type JsonRpcError = {
|
|
@@ -59,9 +57,11 @@ export const wireMCPResource = <
|
|
|
59
57
|
const resourcesMeta = pikkuState(null, 'mcp', 'resourcesMeta')
|
|
60
58
|
const mcpResourceMeta = resourcesMeta[mcpResource.uri]
|
|
61
59
|
if (!mcpResourceMeta) {
|
|
62
|
-
throw new
|
|
60
|
+
throw new PikkuMissingMetaError(
|
|
61
|
+
`Missing generated metadata for MCP resource '${mcpResource.uri}'`
|
|
62
|
+
)
|
|
63
63
|
}
|
|
64
|
-
addFunction(mcpResourceMeta.
|
|
64
|
+
addFunction(mcpResourceMeta.pikkuFuncId, mcpResource.func as any)
|
|
65
65
|
const resources = pikkuState(null, 'mcp', 'resources')
|
|
66
66
|
if (resources.has(mcpResource.uri)) {
|
|
67
67
|
throw new Error(`MCP resource already exists: ${mcpResource.uri}`)
|
|
@@ -69,26 +69,6 @@ export const wireMCPResource = <
|
|
|
69
69
|
resources.set(mcpResource.uri, mcpResource)
|
|
70
70
|
}
|
|
71
71
|
|
|
72
|
-
export const wireMCPTool = <
|
|
73
|
-
PikkuFunctionConfig extends CorePikkuFunctionConfig<
|
|
74
|
-
CorePikkuFunctionSessionless<any, any>
|
|
75
|
-
> = CorePikkuFunctionConfig<CorePikkuFunctionSessionless<any, any>>,
|
|
76
|
-
>(
|
|
77
|
-
mcpTool: CoreMCPTool<PikkuFunctionConfig>
|
|
78
|
-
) => {
|
|
79
|
-
const toolsMeta = pikkuState(null, 'mcp', 'toolsMeta')
|
|
80
|
-
const mcpToolMeta = toolsMeta[mcpTool.name]
|
|
81
|
-
if (!mcpToolMeta) {
|
|
82
|
-
throw new Error(`MCP tool metadata not found for '${mcpTool.name}'`)
|
|
83
|
-
}
|
|
84
|
-
addFunction(mcpToolMeta.pikkuFuncName, mcpTool.func as any)
|
|
85
|
-
const tools = pikkuState(null, 'mcp', 'tools')
|
|
86
|
-
if (tools.has(mcpTool.name)) {
|
|
87
|
-
throw new Error(`MCP tool already exists: ${mcpTool.name}`)
|
|
88
|
-
}
|
|
89
|
-
tools.set(mcpTool.name, mcpTool)
|
|
90
|
-
}
|
|
91
|
-
|
|
92
72
|
export const wireMCPPrompt = <
|
|
93
73
|
PikkuFunctionConfig extends CorePikkuFunctionConfig<
|
|
94
74
|
CorePikkuFunctionSessionless<any, any>
|
|
@@ -99,9 +79,11 @@ export const wireMCPPrompt = <
|
|
|
99
79
|
const promptsMeta = pikkuState(null, 'mcp', 'promptsMeta')
|
|
100
80
|
const mcpPromptMeta = promptsMeta[mcpPrompt.name]
|
|
101
81
|
if (!mcpPromptMeta) {
|
|
102
|
-
throw new
|
|
82
|
+
throw new PikkuMissingMetaError(
|
|
83
|
+
`Missing generated metadata for MCP prompt '${mcpPrompt.name}'`
|
|
84
|
+
)
|
|
103
85
|
}
|
|
104
|
-
addFunction(mcpPromptMeta.
|
|
86
|
+
addFunction(mcpPromptMeta.pikkuFuncId, mcpPrompt.func as any)
|
|
105
87
|
const prompts = pikkuState(null, 'mcp', 'prompts')
|
|
106
88
|
if (prompts.has(mcpPrompt.name)) {
|
|
107
89
|
throw new Error(`MCP prompt already exists: ${mcpPrompt.name}`)
|
|
@@ -115,7 +97,7 @@ export async function runMCPResource(
|
|
|
115
97
|
uri: string
|
|
116
98
|
) {
|
|
117
99
|
let endpoint: CoreMCPResource | undefined
|
|
118
|
-
let
|
|
100
|
+
let pikkuFuncId: string | undefined
|
|
119
101
|
let extractedParams: Record<string, string> = {}
|
|
120
102
|
|
|
121
103
|
const metas = pikkuState(null, 'mcp', 'resourcesMeta')
|
|
@@ -123,7 +105,7 @@ export async function runMCPResource(
|
|
|
123
105
|
|
|
124
106
|
if (endpoints.has(uri)) {
|
|
125
107
|
endpoint = endpoints.get(uri)
|
|
126
|
-
|
|
108
|
+
pikkuFuncId = metas[uri]?.pikkuFuncId
|
|
127
109
|
} else {
|
|
128
110
|
for (const [uriTemplate, value] of endpoints.entries()) {
|
|
129
111
|
// Extract parameter names from the template
|
|
@@ -139,7 +121,7 @@ export async function runMCPResource(
|
|
|
139
121
|
|
|
140
122
|
if (match) {
|
|
141
123
|
endpoint = value
|
|
142
|
-
|
|
124
|
+
pikkuFuncId = metas[uriTemplate]?.pikkuFuncId
|
|
143
125
|
|
|
144
126
|
// Extract parameter values and create params object
|
|
145
127
|
for (let i = 0; i < paramNames.length; i++) {
|
|
@@ -158,7 +140,7 @@ export async function runMCPResource(
|
|
|
158
140
|
'resource',
|
|
159
141
|
uri,
|
|
160
142
|
endpoint,
|
|
161
|
-
|
|
143
|
+
pikkuFuncId,
|
|
162
144
|
{ ...params, mcp: { ...params.mcp, uri } } as RunMCPEndpointParams<
|
|
163
145
|
keyof CoreMCPResource
|
|
164
146
|
>
|
|
@@ -170,14 +152,13 @@ export async function runMCPTool(
|
|
|
170
152
|
params: RunMCPEndpointParams,
|
|
171
153
|
name: string
|
|
172
154
|
) {
|
|
173
|
-
const endpoint = pikkuState(null, 'mcp', 'tools').get(name)
|
|
174
155
|
const meta = pikkuState(null, 'mcp', 'toolsMeta')[name]
|
|
175
156
|
return await runMCPPikkuFunc(
|
|
176
157
|
request,
|
|
177
158
|
'tool',
|
|
178
159
|
name,
|
|
179
|
-
|
|
180
|
-
meta?.
|
|
160
|
+
undefined,
|
|
161
|
+
meta?.pikkuFuncId,
|
|
181
162
|
params
|
|
182
163
|
)
|
|
183
164
|
}
|
|
@@ -194,7 +175,7 @@ export async function runMCPPrompt(
|
|
|
194
175
|
'prompt',
|
|
195
176
|
name,
|
|
196
177
|
endpoint,
|
|
197
|
-
meta?.
|
|
178
|
+
meta?.pikkuFuncId,
|
|
198
179
|
params
|
|
199
180
|
)
|
|
200
181
|
}
|
|
@@ -206,27 +187,28 @@ async function runMCPPikkuFunc(
|
|
|
206
187
|
request: JsonRpcRequest,
|
|
207
188
|
type: 'resource' | 'tool' | 'prompt',
|
|
208
189
|
name: string,
|
|
209
|
-
mcp: CoreMCPResource |
|
|
210
|
-
|
|
211
|
-
{
|
|
190
|
+
mcp: CoreMCPResource | CoreMCPPrompt | undefined,
|
|
191
|
+
pikkuFuncId: string | undefined,
|
|
192
|
+
{ mcp: mcpWire }: RunMCPEndpointParams
|
|
212
193
|
): Promise<JsonRpcResponse> {
|
|
194
|
+
const singletonServices = getSingletonServices()
|
|
195
|
+
const createWireServices = getCreateWireServices()
|
|
213
196
|
let wireServices: any
|
|
214
197
|
|
|
215
198
|
try {
|
|
216
|
-
// Validate JSON-RPC request structure
|
|
217
199
|
if (request.jsonrpc !== '2.0') {
|
|
218
200
|
throw new BadRequestError(
|
|
219
201
|
'Invalid JSON-RPC version, only supoorted version is 2.0'
|
|
220
202
|
)
|
|
221
203
|
}
|
|
222
204
|
|
|
223
|
-
if (
|
|
205
|
+
if (mcp === undefined && type !== 'tool') {
|
|
224
206
|
throw new NotFoundError(
|
|
225
207
|
`MCP '${type}' registration not found for '${name}'`
|
|
226
208
|
)
|
|
227
209
|
}
|
|
228
210
|
|
|
229
|
-
if (!
|
|
211
|
+
if (!pikkuFuncId) {
|
|
230
212
|
throw new NotFoundError(
|
|
231
213
|
`MCP '${type}' PikkuFunction Mapping not found for '${name}'`
|
|
232
214
|
)
|
|
@@ -234,12 +216,12 @@ async function runMCPPikkuFunc(
|
|
|
234
216
|
|
|
235
217
|
singletonServices.logger.debug(`Running MCP ${type}: ${name}`)
|
|
236
218
|
|
|
219
|
+
const mcpSessionService = new PikkuSessionService()
|
|
237
220
|
const wire: PikkuWire = {
|
|
238
221
|
mcp: mcpWire,
|
|
239
|
-
|
|
222
|
+
...createMiddlewareSessionWireProps(mcpSessionService),
|
|
240
223
|
}
|
|
241
224
|
|
|
242
|
-
// Get metadata for the MCP endpoint to access pre-resolved middleware
|
|
243
225
|
let meta: any
|
|
244
226
|
if (type === 'resource') {
|
|
245
227
|
meta = pikkuState(null, 'mcp', 'resourcesMeta')[name]
|
|
@@ -249,18 +231,23 @@ async function runMCPPikkuFunc(
|
|
|
249
231
|
meta = pikkuState(null, 'mcp', 'promptsMeta')[name]
|
|
250
232
|
}
|
|
251
233
|
|
|
252
|
-
|
|
234
|
+
let result = await runPikkuFunc('mcp', `${type}:${name}`, pikkuFuncId, {
|
|
253
235
|
singletonServices,
|
|
254
236
|
createWireServices,
|
|
255
237
|
data: () => request.params,
|
|
256
238
|
inheritedMiddleware: meta?.middleware,
|
|
257
|
-
wireMiddleware: mcp
|
|
239
|
+
wireMiddleware: mcp?.middleware,
|
|
258
240
|
inheritedPermissions: meta?.permissions,
|
|
259
|
-
wirePermissions: mcp
|
|
260
|
-
tags: mcp
|
|
241
|
+
wirePermissions: mcp?.permissions,
|
|
242
|
+
tags: mcp?.tags,
|
|
261
243
|
wire,
|
|
244
|
+
sessionService: mcpSessionService,
|
|
262
245
|
})
|
|
263
246
|
|
|
247
|
+
if (type === 'tool' && meta?.outputSchema !== 'MCPToolResponse') {
|
|
248
|
+
result = [{ type: 'text', text: JSON.stringify(result) }]
|
|
249
|
+
}
|
|
250
|
+
|
|
264
251
|
return {
|
|
265
252
|
id: request.id,
|
|
266
253
|
result,
|
|
@@ -297,10 +284,6 @@ async function runMCPPikkuFunc(
|
|
|
297
284
|
}
|
|
298
285
|
}
|
|
299
286
|
|
|
300
|
-
export const getMCPTools = () => {
|
|
301
|
-
return pikkuState(null, 'mcp', 'tools')
|
|
302
|
-
}
|
|
303
|
-
|
|
304
287
|
export const getMCPResources = () => {
|
|
305
288
|
return pikkuState(null, 'mcp', 'resources')
|
|
306
289
|
}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import type {
|
|
2
2
|
CorePermissionGroup,
|
|
3
3
|
CorePikkuFunctionConfig,
|
|
4
4
|
CorePikkuFunctionSessionless,
|
|
5
5
|
CorePikkuPermission,
|
|
6
6
|
} from '../../function/functions.types.js'
|
|
7
|
-
import {
|
|
7
|
+
import type {
|
|
8
8
|
CorePikkuMiddleware,
|
|
9
9
|
MiddlewareMetadata,
|
|
10
10
|
PermissionMetadata,
|
|
@@ -50,7 +50,7 @@ export type PikkuMCP<Tools extends string = any> = {
|
|
|
50
50
|
export type MCPResourceMeta = Record<
|
|
51
51
|
string,
|
|
52
52
|
Omit<CoreMCPResource, 'func' | 'middleware' | 'permissions'> & {
|
|
53
|
-
|
|
53
|
+
pikkuFuncId: string
|
|
54
54
|
inputSchema: string | null
|
|
55
55
|
outputSchema: string | null
|
|
56
56
|
middleware?: MiddlewareMetadata[] // Pre-resolved middleware chain (tag + explicit)
|
|
@@ -64,7 +64,7 @@ export type MCPResourceMeta = Record<
|
|
|
64
64
|
export type MCPToolMeta = Record<
|
|
65
65
|
string,
|
|
66
66
|
Omit<CoreMCPTool, 'func' | 'middleware' | 'permissions'> & {
|
|
67
|
-
|
|
67
|
+
pikkuFuncId: string
|
|
68
68
|
inputSchema: string | null
|
|
69
69
|
outputSchema: string | null
|
|
70
70
|
middleware?: MiddlewareMetadata[] // Pre-resolved middleware chain (tag + explicit)
|
|
@@ -78,7 +78,7 @@ export type MCPToolMeta = Record<
|
|
|
78
78
|
export type MCPPromptMeta = Record<
|
|
79
79
|
string,
|
|
80
80
|
Omit<CoreMCPPrompt, 'func' | 'middleware' | 'permissions'> & {
|
|
81
|
-
|
|
81
|
+
pikkuFuncId: string
|
|
82
82
|
inputSchema: string | null
|
|
83
83
|
outputSchema: string | null
|
|
84
84
|
arguments: Array<{
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
export type NodeType = 'trigger' | 'action' | 'end'
|
|
2
|
+
|
|
3
|
+
export type CoreNodeConfig = {
|
|
4
|
+
displayName: string
|
|
5
|
+
category: string
|
|
6
|
+
type: NodeType
|
|
7
|
+
errorOutput?: boolean
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
export type NodeMeta = {
|
|
11
|
+
name: string
|
|
12
|
+
displayName: string
|
|
13
|
+
category: string
|
|
14
|
+
type: NodeType
|
|
15
|
+
rpc: string
|
|
16
|
+
description?: string
|
|
17
|
+
errorOutput: boolean
|
|
18
|
+
inputSchemaName: string | null
|
|
19
|
+
outputSchemaName: string | null
|
|
20
|
+
tags?: string[]
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
export type NodesMeta = Record<string, NodeMeta>
|