@pikku/core 0.12.72 → 0.12.77
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 +1171 -0
- package/dist/column-form.d.ts +32 -0
- package/dist/column-form.js +42 -0
- package/dist/crypto-utils.d.ts +43 -7
- package/dist/crypto-utils.js +163 -42
- package/dist/data-classification.d.ts +44 -0
- package/dist/dev/hot-reload.js +11 -30
- package/dist/dev/module-runner.d.ts +3 -7
- package/dist/dev/module-runner.js +4 -10
- package/dist/dev/reload-meta.d.ts +8 -20
- package/dist/dev/reload-meta.js +9 -29
- package/dist/errors/error-handler.d.ts +5 -30
- package/dist/errors/error-handler.js +16 -32
- package/dist/errors/errors.d.ts +32 -151
- package/dist/errors/errors.js +55 -157
- package/dist/function/abort-scope.d.ts +47 -0
- package/dist/function/abort-scope.js +63 -0
- package/dist/function/function-runner.js +37 -32
- package/dist/function/functions.types.d.ts +57 -136
- package/dist/function/functions.types.js +0 -58
- package/dist/function/index.d.ts +1 -1
- package/dist/function/list.types.d.ts +12 -62
- package/dist/function/list.types.js +4 -25
- package/dist/handle-error.d.ts +0 -13
- package/dist/handle-error.js +0 -18
- package/dist/index.d.ts +11 -5
- package/dist/index.js +7 -2
- package/dist/middleware/auth-apikey.d.ts +3 -18
- package/dist/middleware/auth-apikey.js +0 -17
- package/dist/middleware/auth-bearer.d.ts +6 -41
- package/dist/middleware/auth-bearer.js +5 -41
- package/dist/middleware/auth-cookie.d.ts +5 -27
- package/dist/middleware/auth-cookie.js +2 -26
- package/dist/middleware/cors.d.ts +7 -34
- package/dist/middleware/cors.js +7 -34
- package/dist/middleware/remote-auth.d.ts +3 -1
- package/dist/middleware/remote-auth.js +4 -3
- package/dist/middleware/telemetry.d.ts +8 -33
- package/dist/middleware/telemetry.js +2 -31
- package/dist/middleware-runner.d.ts +4 -55
- package/dist/middleware-runner.js +5 -74
- package/dist/permissions.d.ts +3 -44
- package/dist/permissions.js +19 -71
- package/dist/pikku-request.d.ts +0 -6
- package/dist/pikku-request.js +0 -6
- package/dist/pikku-state.d.ts +0 -26
- package/dist/pikku-state.js +2 -30
- package/dist/remote.d.ts +3 -5
- package/dist/remote.js +9 -8
- package/dist/schema.d.ts +5 -39
- package/dist/schema.js +5 -39
- package/dist/scopes.d.ts +4 -23
- package/dist/scopes.js +7 -48
- package/dist/secret-value.d.ts +56 -0
- package/dist/secret-value.js +46 -0
- package/dist/services/ai-agent-runner-service.d.ts +20 -0
- package/dist/services/ai-embedding-service.d.ts +2 -25
- package/dist/services/audit-service.d.ts +74 -4
- package/dist/services/audit-service.js +8 -7
- package/dist/services/content-service.d.ts +1 -46
- package/dist/services/credential-service.d.ts +3 -40
- package/dist/services/credential-wire-service.d.ts +5 -0
- package/dist/services/credential-wire-service.js +9 -1
- package/dist/services/deployment-service.d.ts +3 -9
- package/dist/services/email-service.d.ts +2 -1
- package/dist/services/gateway-service.d.ts +0 -15
- package/dist/services/http-personas.d.ts +80 -0
- package/dist/services/http-personas.js +233 -0
- package/dist/services/in-memory-queue-service.d.ts +0 -14
- package/dist/services/in-memory-queue-service.js +1 -15
- package/dist/services/in-memory-trigger-service.d.ts +0 -18
- package/dist/services/in-memory-trigger-service.js +1 -18
- package/dist/services/in-memory-workflow-service.d.ts +0 -16
- package/dist/services/in-memory-workflow-service.js +4 -33
- package/dist/services/index.d.ts +8 -9
- package/dist/services/index.js +3 -6
- package/dist/services/istanbul-coverage-service.d.ts +1 -5
- package/dist/services/istanbul-coverage-service.js +2 -8
- package/dist/services/jwt-service.d.ts +1 -16
- package/dist/services/local-content-request-handler.d.ts +29 -0
- package/dist/services/local-content-request-handler.js +176 -0
- package/dist/services/local-content.d.ts +13 -2
- package/dist/services/local-content.js +40 -13
- package/dist/services/local-gateway-service.d.ts +0 -16
- package/dist/services/local-gateway-service.js +2 -17
- package/dist/services/local-secrets.d.ts +4 -7
- package/dist/services/local-secrets.js +7 -7
- package/dist/services/logger-console.d.ts +3 -7
- package/dist/services/logger-console.js +3 -7
- package/dist/services/logger.d.ts +22 -40
- package/dist/services/meta-service.d.ts +23 -26
- package/dist/services/meta-service.js +22 -36
- package/dist/services/personas-service.d.ts +134 -0
- package/dist/services/personas-service.js +40 -0
- package/dist/services/pikku-user-id.js +0 -4
- package/dist/services/queue-webhook-service.d.ts +2 -36
- package/dist/services/queue-webhook-service.js +10 -42
- package/dist/services/scheduler-service.d.ts +1 -50
- package/dist/services/scheduler-service.js +0 -10
- package/dist/services/schema-service.d.ts +1 -24
- package/dist/services/scope-service.d.ts +49 -34
- package/dist/services/scoped-secret-service.d.ts +4 -7
- package/dist/services/scoped-secret-service.js +0 -4
- package/dist/services/secret-host-binding.d.ts +8 -0
- package/dist/services/secret-host-binding.js +36 -0
- package/dist/services/secret-service.d.ts +12 -35
- package/dist/services/secretless.d.ts +6 -0
- package/dist/services/secretless.js +21 -0
- package/dist/services/stub-tracker.d.ts +7 -18
- package/dist/services/stub-tracker.js +8 -18
- package/dist/services/system-role-guard.d.ts +33 -0
- package/dist/services/system-role-guard.js +38 -0
- package/dist/services/trigger-service.d.ts +0 -12
- package/dist/services/typed-secret-service.d.ts +5 -11
- package/dist/services/typed-secret-service.js +1 -7
- package/dist/services/v8-coverage-service.d.ts +2 -3
- package/dist/services/v8-coverage-service.js +1 -2
- package/dist/services/variables-service.d.ts +1 -8
- package/dist/services/webhook-service.d.ts +21 -64
- package/dist/services/webhook-service.js +6 -20
- package/dist/services/workflow-service.d.ts +3 -15
- package/dist/testing/service-tests.js +6 -23
- package/dist/time-utils.d.ts +0 -16
- package/dist/time-utils.js +1 -19
- package/dist/types/core.types.d.ts +120 -219
- package/dist/types/core.types.js +0 -42
- package/dist/types/state.types.d.ts +4 -9
- package/dist/utils/hmac.d.ts +4 -10
- package/dist/utils/hmac.js +4 -10
- package/dist/utils/safe-fetch.d.ts +7 -35
- package/dist/utils/safe-fetch.js +13 -53
- package/dist/utils.d.ts +1 -6
- package/dist/utils.js +6 -15
- package/dist/wirings/actor-flow/actor-flow.types.d.ts +1 -34
- package/dist/wirings/actor-flow/index.d.ts +0 -9
- package/dist/wirings/actor-flow/run-conversation.d.ts +5 -5
- package/dist/wirings/actor-flow/run-conversation.js +14 -7
- package/dist/wirings/ai-agent/ai-agent-agui.d.ts +0 -5
- package/dist/wirings/ai-agent/ai-agent-agui.js +46 -12
- package/dist/wirings/ai-agent/ai-agent-helpers.d.ts +7 -0
- package/dist/wirings/ai-agent/ai-agent-helpers.js +7 -0
- package/dist/wirings/ai-agent/ai-agent-interrupt.d.ts +153 -0
- package/dist/wirings/ai-agent/ai-agent-interrupt.js +256 -0
- package/dist/wirings/ai-agent/ai-agent-memory.js +0 -2
- package/dist/wirings/ai-agent/ai-agent-model-config.d.ts +0 -9
- package/dist/wirings/ai-agent/ai-agent-model-config.js +1 -9
- package/dist/wirings/ai-agent/ai-agent-prepare.d.ts +10 -99
- package/dist/wirings/ai-agent/ai-agent-prepare.js +65 -132
- package/dist/wirings/ai-agent/ai-agent-registry.d.ts +2 -1
- package/dist/wirings/ai-agent/ai-agent-registry.js +5 -1
- package/dist/wirings/ai-agent/ai-agent-runner.js +63 -22
- package/dist/wirings/ai-agent/ai-agent-stream.d.ts +25 -2
- package/dist/wirings/ai-agent/ai-agent-stream.js +180 -64
- package/dist/wirings/ai-agent/ai-agent.types.d.ts +124 -4
- package/dist/wirings/ai-agent/index.d.ts +6 -4
- package/dist/wirings/ai-agent/index.js +5 -4
- package/dist/wirings/ai-agent/voice-input.d.ts +59 -1
- package/dist/wirings/ai-agent/voice-input.js +90 -12
- package/dist/wirings/ai-agent/voice-output.d.ts +69 -1
- package/dist/wirings/ai-agent/voice-output.js +162 -50
- package/dist/wirings/channel/channel-common.d.ts +7 -20
- package/dist/wirings/channel/channel-common.js +7 -21
- package/dist/wirings/channel/channel-handler.js +25 -6
- package/dist/wirings/channel/channel-host-rpc.d.ts +25 -0
- package/dist/wirings/channel/channel-host-rpc.js +38 -0
- package/dist/wirings/channel/channel-middleware-runner.d.ts +0 -12
- package/dist/wirings/channel/channel-middleware-runner.js +0 -12
- package/dist/wirings/channel/channel-rpc-registry.d.ts +31 -0
- package/dist/wirings/channel/channel-rpc-registry.js +89 -0
- package/dist/wirings/channel/channel-rpc-responder.d.ts +15 -0
- package/dist/wirings/channel/channel-rpc-responder.js +71 -0
- package/dist/wirings/channel/channel-rpc-service.d.ts +40 -0
- package/dist/wirings/channel/channel-rpc-service.js +106 -0
- package/dist/wirings/channel/channel-rpc-validators.d.ts +14 -0
- package/dist/wirings/channel/channel-rpc-validators.js +30 -0
- package/dist/wirings/channel/channel-rpc.d.ts +5 -0
- package/dist/wirings/channel/channel-rpc.js +5 -0
- package/dist/wirings/channel/channel-rpc.types.d.ts +90 -0
- package/dist/wirings/channel/channel-rpc.types.js +50 -0
- package/dist/wirings/channel/channel-runner.d.ts +0 -4
- package/dist/wirings/channel/channel-runner.js +0 -14
- package/dist/wirings/channel/channel-store.d.ts +0 -10
- package/dist/wirings/channel/channel.types.d.ts +12 -1
- package/dist/wirings/channel/define-channel-routes.d.ts +0 -20
- package/dist/wirings/channel/define-channel-routes.js +0 -20
- package/dist/wirings/channel/eventhub-service.d.ts +0 -18
- package/dist/wirings/channel/index.d.ts +4 -1
- package/dist/wirings/channel/index.js +2 -0
- package/dist/wirings/channel/local/local-channel-runner.js +3 -1
- package/dist/wirings/channel/local/local-eventhub-service.d.ts +0 -33
- package/dist/wirings/channel/local/local-eventhub-service.js +2 -36
- package/dist/wirings/channel/log-channels.d.ts +0 -4
- package/dist/wirings/channel/log-channels.js +0 -4
- package/dist/wirings/channel/pikku-abstract-channel-handler.js +6 -0
- package/dist/wirings/channel/serverless/serverless-channel-runner.js +2 -5
- package/dist/wirings/cli/channel/cli-approval.d.ts +41 -0
- package/dist/wirings/cli/channel/cli-approval.js +81 -0
- package/dist/wirings/cli/channel/cli-channel-runner.d.ts +0 -4
- package/dist/wirings/cli/channel/cli-channel-runner.js +3 -25
- package/dist/wirings/cli/channel/cli-raw-channel-runner.d.ts +47 -9
- package/dist/wirings/cli/channel/cli-raw-channel-runner.js +24 -16
- package/dist/wirings/cli/channel/cli-raw-client-runner.d.ts +38 -0
- package/dist/wirings/cli/channel/cli-raw-client-runner.js +129 -0
- package/dist/wirings/cli/channel/index.d.ts +5 -0
- package/dist/wirings/cli/channel/index.js +2 -0
- package/dist/wirings/cli/cli-runner.d.ts +20 -20
- package/dist/wirings/cli/cli-runner.js +28 -89
- package/dist/wirings/cli/cli.types.d.ts +14 -3
- package/dist/wirings/cli/command-parser.d.ts +1 -10
- package/dist/wirings/cli/command-parser.js +10 -87
- package/dist/wirings/cli/define-cli-commands.d.ts +1 -17
- package/dist/wirings/cli/define-cli-commands.js +1 -17
- package/dist/wirings/credential/credential.types.d.ts +0 -12
- package/dist/wirings/credential/define-credential.d.ts +48 -0
- package/dist/wirings/credential/define-credential.js +47 -0
- package/dist/wirings/credential/index.d.ts +1 -1
- package/dist/wirings/credential/index.js +1 -1
- package/dist/wirings/credential/validate-credential-definitions.d.ts +2 -4
- package/dist/wirings/gateway/gateway-runner.d.ts +1 -20
- package/dist/wirings/gateway/gateway-runner.js +8 -105
- package/dist/wirings/gateway/gateway.types.d.ts +7 -80
- package/dist/wirings/http/http-routes.d.ts +0 -63
- package/dist/wirings/http/http-routes.js +0 -63
- package/dist/wirings/http/http-runner.d.ts +0 -99
- package/dist/wirings/http/http-runner.js +9 -165
- package/dist/wirings/http/http.types.d.ts +14 -55
- package/dist/wirings/http/log-http-routes.d.ts +0 -4
- package/dist/wirings/http/log-http-routes.js +0 -4
- package/dist/wirings/http/pikku-fetch-http-request.d.ts +0 -40
- package/dist/wirings/http/pikku-fetch-http-request.js +0 -58
- package/dist/wirings/http/pikku-fetch-http-response.js +0 -3
- package/dist/wirings/http/routers/path-to-regex.js +2 -13
- package/dist/wirings/http/web-request.d.ts +0 -8
- package/dist/wirings/http/web-request.js +25 -17
- package/dist/wirings/mcp/mcp-runner.d.ts +1 -4
- package/dist/wirings/mcp/mcp-runner.js +1 -14
- package/dist/wirings/mcp/mcp.types.d.ts +2 -35
- package/dist/wirings/oauth2/oauth2.types.d.ts +0 -28
- package/dist/wirings/oauth2/oauth2.types.js +0 -3
- package/dist/wirings/persona/define-personas.d.ts +32 -0
- package/dist/wirings/persona/define-personas.js +31 -0
- package/dist/wirings/persona/index.d.ts +21 -0
- package/dist/wirings/persona/index.js +17 -0
- package/dist/wirings/persona/persona-email.d.ts +37 -0
- package/dist/wirings/persona/persona-email.js +69 -0
- package/dist/wirings/persona/persona-environments.d.ts +45 -0
- package/dist/wirings/persona/persona-environments.js +81 -0
- package/dist/wirings/persona/persona-mailbox.d.ts +101 -0
- package/dist/wirings/persona/persona-mailbox.js +53 -0
- package/dist/wirings/persona/persona.types.d.ts +136 -0
- package/dist/wirings/persona/persona.types.js +1 -0
- package/dist/wirings/persona/validate-personas.d.ts +53 -0
- package/dist/wirings/persona/validate-personas.js +94 -0
- package/dist/wirings/queue/index.d.ts +3 -0
- package/dist/wirings/queue/index.js +2 -3
- package/dist/wirings/queue/queue-identity.d.ts +28 -0
- package/dist/wirings/queue/queue-identity.js +103 -0
- package/dist/wirings/queue/queue-runner.d.ts +0 -19
- package/dist/wirings/queue/queue-runner.js +9 -30
- package/dist/wirings/queue/queue.types.d.ts +20 -90
- package/dist/wirings/queue/register-queue-helper.d.ts +0 -12
- package/dist/wirings/queue/register-queue-helper.js +0 -11
- package/dist/wirings/queue/signed-queue-service.d.ts +17 -0
- package/dist/wirings/queue/signed-queue-service.js +42 -0
- package/dist/wirings/queue/validate-worker-config.d.ts +2 -23
- package/dist/wirings/queue/validate-worker-config.js +0 -14
- package/dist/wirings/role/define-system-role.d.ts +32 -0
- package/dist/wirings/role/define-system-role.js +31 -0
- package/dist/wirings/role/index.d.ts +3 -0
- package/dist/wirings/role/index.js +2 -0
- package/dist/wirings/role/role.types.d.ts +43 -0
- package/dist/wirings/role/role.types.js +1 -0
- package/dist/wirings/role/validate-role-definitions.d.ts +21 -0
- package/dist/wirings/role/validate-role-definitions.js +71 -0
- package/dist/wirings/rpc/addon-runner.d.ts +0 -19
- package/dist/wirings/rpc/addon-runner.js +0 -51
- package/dist/wirings/rpc/remote-addon-auth.d.ts +3 -13
- package/dist/wirings/rpc/remote-addon-auth.js +7 -11
- package/dist/wirings/rpc/rpc-runner.d.ts +11 -18
- package/dist/wirings/rpc/rpc-runner.js +88 -105
- package/dist/wirings/rpc/rpc-types.d.ts +7 -6
- package/dist/wirings/rpc/wire-addon.d.ts +25 -0
- package/dist/wirings/rpc/wire-addon.js +62 -0
- package/dist/wirings/rpc/wire-remote-addon.d.ts +3 -28
- package/dist/wirings/rpc/wire-remote-addon.js +0 -8
- package/dist/wirings/scheduler/log-schedulers.d.ts +0 -4
- package/dist/wirings/scheduler/log-schedulers.js +0 -4
- package/dist/wirings/scheduler/scheduler-runner.d.ts +0 -1
- package/dist/wirings/scheduler/scheduler-runner.js +0 -1
- package/dist/wirings/scheduler/scheduler.types.d.ts +1 -14
- package/dist/wirings/scope/define-scope.d.ts +32 -0
- package/dist/wirings/scope/define-scope.js +31 -0
- package/dist/wirings/scope/index.d.ts +1 -1
- package/dist/wirings/scope/index.js +1 -1
- package/dist/wirings/scope/scope.types.d.ts +7 -9
- package/dist/wirings/scope/validate-scope-definitions.d.ts +2 -21
- package/dist/wirings/scope/validate-scope-definitions.js +3 -21
- package/dist/wirings/secret/index.d.ts +1 -1
- package/dist/wirings/secret/index.js +1 -1
- package/dist/wirings/secret/secret.types.d.ts +19 -15
- package/dist/wirings/secret/secret.types.js +1 -1
- package/dist/wirings/secret/validate-secret-definitions.d.ts +2 -4
- package/dist/wirings/trigger/trigger-runner.d.ts +0 -27
- package/dist/wirings/trigger/trigger-runner.js +1 -24
- package/dist/wirings/trigger/trigger.types.d.ts +1 -82
- package/dist/wirings/trigger/trigger.types.js +0 -34
- package/dist/wirings/variable/index.d.ts +1 -1
- package/dist/wirings/variable/index.js +1 -1
- package/dist/wirings/variable/validate-variable-definitions.d.ts +2 -4
- package/dist/wirings/variable/variable.types.d.ts +1 -13
- package/dist/wirings/variable/variable.types.js +1 -1
- package/dist/wirings/virtual-user/index.d.ts +30 -0
- package/dist/wirings/virtual-user/index.js +10 -0
- package/dist/wirings/virtual-user/prepare-virtual-user-run.d.ts +54 -0
- package/dist/wirings/virtual-user/prepare-virtual-user-run.js +49 -0
- package/dist/wirings/virtual-user/run-virtual-user.d.ts +92 -0
- package/dist/wirings/virtual-user/run-virtual-user.js +478 -0
- package/dist/wirings/virtual-user/virtual-user-agents.d.ts +38 -0
- package/dist/wirings/virtual-user/virtual-user-agents.js +24 -0
- package/dist/wirings/virtual-user/virtual-user-catalogue.d.ts +92 -0
- package/dist/wirings/virtual-user/virtual-user-catalogue.js +134 -0
- package/dist/wirings/virtual-user/virtual-user-derive.d.ts +26 -0
- package/dist/wirings/virtual-user/virtual-user-derive.js +137 -0
- package/dist/wirings/virtual-user/virtual-user-dispositions.d.ts +79 -0
- package/dist/wirings/virtual-user/virtual-user-dispositions.js +128 -0
- package/dist/wirings/virtual-user/virtual-user-intents.d.ts +78 -0
- package/dist/wirings/virtual-user/virtual-user-intents.js +142 -0
- package/dist/wirings/virtual-user/virtual-user-rng.d.ts +24 -0
- package/dist/wirings/virtual-user/virtual-user-rng.js +44 -0
- package/dist/wirings/virtual-user/virtual-user-run-store.d.ts +90 -0
- package/dist/wirings/virtual-user/virtual-user-run-store.js +1 -0
- package/dist/wirings/virtual-user/virtual-user-target.d.ts +21 -0
- package/dist/wirings/virtual-user/virtual-user-target.js +34 -0
- package/dist/wirings/virtual-user/virtual-user.types.d.ts +199 -0
- package/dist/wirings/virtual-user/virtual-user.types.js +8 -0
- package/dist/wirings/workflow/dsl/workflow-dsl.types.d.ts +19 -15
- package/dist/wirings/workflow/dsl/workflow-runner.d.ts +0 -4
- package/dist/wirings/workflow/dsl/workflow-runner.js +0 -4
- package/dist/wirings/workflow/feature.d.ts +0 -19
- package/dist/wirings/workflow/feature.js +0 -19
- package/dist/wirings/workflow/graph/graph-node.d.ts +0 -98
- package/dist/wirings/workflow/graph/graph-node.js +0 -34
- package/dist/wirings/workflow/graph/graph-runner.js +6 -41
- package/dist/wirings/workflow/graph/wire-workflow-graph.d.ts +0 -4
- package/dist/wirings/workflow/graph/workflow-graph.types.d.ts +0 -58
- package/dist/wirings/workflow/graph/workflow-graph.types.js +0 -6
- package/dist/wirings/workflow/index.d.ts +5 -7
- package/dist/wirings/workflow/index.js +3 -17
- package/dist/wirings/workflow/pikku-scenario-service.d.ts +87 -5
- package/dist/wirings/workflow/pikku-scenario-service.js +204 -43
- package/dist/wirings/workflow/pikku-workflow-service.d.ts +7 -459
- package/dist/wirings/workflow/pikku-workflow-service.js +58 -551
- package/dist/wirings/workflow/run-timeline.d.ts +0 -47
- package/dist/wirings/workflow/run-timeline.js +0 -22
- package/dist/wirings/workflow/scenario-cookie-jar.d.ts +0 -23
- package/dist/wirings/workflow/scenario-cookie-jar.js +0 -16
- package/dist/wirings/workflow/scenario-poll.d.ts +0 -15
- package/dist/wirings/workflow/scenario-poll.js +0 -12
- package/dist/wirings/workflow/scenario-prose.d.ts +0 -28
- package/dist/wirings/workflow/scenario-prose.js +1 -19
- package/dist/wirings/workflow/scenario-step-guards.d.ts +0 -13
- package/dist/wirings/workflow/scenario-step-guards.js +1 -14
- package/dist/wirings/workflow/scenario-step.types.d.ts +84 -12
- package/dist/wirings/workflow/scenario-step.types.js +5 -1
- package/dist/wirings/workflow/scenario-surface.d.ts +16 -0
- package/dist/wirings/workflow/scenario-surface.js +56 -0
- package/dist/wirings/workflow/workflow-invocation-id.d.ts +0 -18
- package/dist/wirings/workflow/workflow-invocation-id.js +2 -22
- package/dist/wirings/workflow/workflow-queue-workers.d.ts +0 -20
- package/dist/wirings/workflow/workflow-queue-workers.js +0 -19
- package/dist/wirings/workflow/workflow.types.d.ts +5 -195
- package/knowledge/decisions/index.md +19 -0
- package/knowledge/decisions/internals/a-secret-that-fails-to-decrypt-fails-the-whole-read.md +49 -0
- package/knowledge/decisions/internals/a-virtual-user-run-is-not-a-workflow-and-not-a-queued-job.md +48 -0
- package/knowledge/decisions/internals/actor-flow-conversations-seed-a-hidden-kickoff-message.md +23 -0
- package/knowledge/decisions/internals/actor-flow-drives-the-target-through-a-transport-seam.md +24 -0
- package/knowledge/decisions/internals/actor-flow-verdicts-are-llm-self-evaluations.md +25 -0
- package/knowledge/decisions/internals/addon-package-roots-resolve-by-walking-node-module-search-paths.md +26 -0
- package/knowledge/decisions/internals/addon-singleton-services-are-cached-per-namespace-not-per-package.md +33 -0
- package/knowledge/decisions/internals/addon-workflow-names-are-prefixed-with-the-consumer-namespace.md +28 -0
- package/knowledge/decisions/internals/ai-agent-agui-bridge-obeys-the-client-ordering-contract.md +29 -0
- package/knowledge/decisions/internals/ai-agent-audio-chunks-carry-the-format-the-provider-returned.md +20 -0
- package/knowledge/decisions/internals/ai-agent-credential-suspensions-hide-the-tool-result.md +26 -0
- package/knowledge/decisions/internals/ai-agent-delegate-and-supervise-hide-different-text.md +26 -0
- package/knowledge/decisions/internals/ai-agent-llm-tool-arguments-have-nulls-stripped.md +23 -0
- package/knowledge/decisions/internals/ai-agent-model-config-stays-a-single-resolution-seam.md +25 -0
- package/knowledge/decisions/internals/ai-agent-onerror-hooks-cannot-change-the-failure.md +22 -0
- package/knowledge/decisions/internals/ai-agent-runner-methods-must-keep-their-receiver.md +22 -0
- package/knowledge/decisions/internals/ai-agent-stream-persistence-is-best-effort.md +27 -0
- package/knowledge/decisions/internals/ai-agent-sub-agents-inherit-the-parent-context-block.md +26 -0
- package/knowledge/decisions/internals/ai-agent-tool-execute-failures-are-logged-unconditionally.md +25 -0
- package/knowledge/decisions/internals/ai-agent-voice-input-transcribes-audio-parts-in-place.md +22 -0
- package/knowledge/decisions/internals/ai-agent-working-memory-is-persisted-only-when-valid.md +25 -0
- package/knowledge/decisions/internals/channel-message-handlers-accept-three-config-shapes.md +30 -0
- package/knowledge/decisions/internals/channel-middleware-caches-only-statically-resolved-middleware.md +31 -0
- package/knowledge/decisions/internals/channel-state-is-per-socket-session-state-is-per-user.md +29 -0
- package/knowledge/decisions/internals/channel-user-id-is-persisted-after-onconnect-middleware-runs.md +28 -0
- package/knowledge/decisions/internals/cli-option-names-are-camelcase-in-state-and-kebab-on-the-command-line.md +27 -0
- package/knowledge/decisions/internals/cli-parse-errors-are-routed-by-message-prefix.md +28 -0
- package/knowledge/decisions/internals/cli-stdout-is-reserved-for-machine-readable-output.md +34 -0
- package/knowledge/decisions/internals/cli-unknown-long-options-warn-instead-of-failing.md +29 -0
- package/knowledge/decisions/internals/core-column-form-is-an-axis-of-its-own.md +84 -0
- package/knowledge/decisions/internals/core-data-classification-brand-is-an-optional-property.md +41 -0
- package/knowledge/decisions/internals/core-function-runner-restores-the-wire-fields-it-overwrites.md +44 -0
- package/knowledge/decisions/internals/core-hot-reload-merges-generated-meta-never-replaces-it.md +39 -0
- package/knowledge/decisions/internals/core-hot-reload-owns-its-module-registry.md +42 -0
- package/knowledge/decisions/internals/core-middleware-order-is-scope-then-priority.md +39 -0
- package/knowledge/decisions/internals/core-schema-defaults-apply-on-every-transport.md +43 -0
- package/knowledge/decisions/internals/core-scopes-are-an-and-gate-separate-from-permissions.md +38 -0
- package/knowledge/decisions/internals/core-state-is-a-global-map-written-only-at-registration-time.md +44 -0
- package/knowledge/decisions/internals/email-meta-is-read-uncached-because-codegen-rewrites-it-mid-session.md +27 -0
- package/knowledge/decisions/internals/gateway-adapters-resolve-lazily-and-are-promise-cached.md +32 -0
- package/knowledge/decisions/internals/gateway-webhook-challenges-echo-bytes-not-json.md +28 -0
- package/knowledge/decisions/internals/gateway-wiring-is-a-meta-wiring-over-http-and-channels.md +31 -0
- package/knowledge/decisions/internals/generated-src-paths-in-pikku-meta-are-absolute.md +26 -0
- package/knowledge/decisions/internals/http-request-bodies-are-read-once-and-shared.md +32 -0
- package/knowledge/decisions/internals/http-route-groups-cascade-config-in-a-fixed-order.md +28 -0
- package/knowledge/decisions/internals/http-router-matches-normalized-paths-but-returns-registered-ones.md +30 -0
- package/knowledge/decisions/internals/http-runner-logs-through-a-trace-scoped-logger-functions-do-not.md +26 -0
- package/knowledge/decisions/internals/http-set-cookie-headers-are-appended-never-joined.md +28 -0
- package/knowledge/decisions/internals/http-sse-streams-flush-headers-only-after-middleware.md +32 -0
- package/knowledge/decisions/internals/http-wiring-without-metadata-is-skipped-not-fatal.md +26 -0
- package/knowledge/decisions/internals/in-a-scenario-a-4xx-is-data-not-an-exception.md +25 -0
- package/knowledge/decisions/internals/in-memory-workflow-history-aliases-the-live-step-object.md +26 -0
- package/knowledge/decisions/internals/index.md +117 -0
- package/knowledge/decisions/internals/istanbul-statement-counts-attach-to-the-start-line-only.md +25 -0
- package/knowledge/decisions/internals/local-trigger-and-gateway-services-assume-a-single-process.md +26 -0
- package/knowledge/decisions/internals/node-only-builtins-are-imported-dynamically.md +24 -0
- package/knowledge/decisions/internals/one-project-shape-check-two-validators.md +53 -0
- package/knowledge/decisions/internals/queue-group-concurrency-keeps-one-shared-queue-fair.md +28 -0
- package/knowledge/decisions/internals/queue-jobs-always-carry-an-explicit-attempts-count.md +27 -0
- package/knowledge/decisions/internals/remote-addons-dispatch-over-http-instead-of-local-meta.md +31 -0
- package/knowledge/decisions/internals/rpc-names-resolve-through-package-scope-before-root.md +32 -0
- package/knowledge/decisions/internals/scenario-agent-calls-sign-in-on-401-only.md +27 -0
- package/knowledge/decisions/internals/scenario-meta-lives-apart-from-app-meta-but-merges-when-read-off-disk.md +26 -0
- package/knowledge/decisions/internals/scenario-steps-return-drained-response-records.md +27 -0
- package/knowledge/decisions/internals/scenarios-live-in-files-named-for-them.md +48 -0
- package/knowledge/decisions/internals/scope-roots-may-be-co-declared-by-an-addon-and-its-host-app.md +30 -0
- package/knowledge/decisions/internals/serverless-channel-disconnect-must-tolerate-a-missing-channel.md +28 -0
- package/knowledge/decisions/internals/the-dev-queue-copies-prod-timing-and-serialization-semantics.md +30 -0
- package/knowledge/decisions/internals/the-embedding-model-is-pinned-per-service-and-doc-query-embedding-is-split.md +29 -0
- package/knowledge/decisions/internals/the-in-memory-workflow-service-is-inline-only-and-single-process.md +27 -0
- package/knowledge/decisions/internals/the-kek-salt-is-scoped-to-the-key-version.md +40 -0
- package/knowledge/decisions/internals/the-schema-service-is-never-stubbed.md +26 -0
- package/knowledge/decisions/internals/trigger-declaration-is-split-from-trigger-source.md +33 -0
- package/knowledge/decisions/internals/typed-secret-service-caches-for-the-process-lifetime.md +26 -0
- package/knowledge/decisions/internals/validate-checks-personas-through-a-shared-module.md +43 -0
- package/knowledge/decisions/internals/webhook-delivery-history-records-every-attempt-best-effort.md +26 -0
- package/knowledge/decisions/internals/webhook-service-collaborators-are-constructor-args-not-locator-lookups.md +25 -0
- package/knowledge/decisions/internals/whether-a-run-is-inline-is-read-from-the-run-record.md +58 -0
- package/knowledge/decisions/internals/workflow-approval-expiry-is-decided-from-a-recorded-deadline.md +34 -0
- package/knowledge/decisions/internals/workflow-core-never-imports-a-browser-driver.md +42 -0
- package/knowledge/decisions/internals/workflow-dsl-meta-separates-runtime-expressions-from-literals.md +38 -0
- package/knowledge/decisions/internals/workflow-features-resolve-scenarios-by-object-identity.md +29 -0
- package/knowledge/decisions/internals/workflow-graph-inline-and-queued-runs-share-one-planner.md +42 -0
- package/knowledge/decisions/internals/workflow-graph-node-notes-are-excluded-from-the-graph-hash.md +25 -0
- package/knowledge/decisions/internals/workflow-inline-runs-report-their-run-id-before-they-can-fail.md +29 -0
- package/knowledge/decisions/internals/workflow-invocation-id-is-the-dedupe-key-not-step-id.md +43 -0
- package/knowledge/decisions/internals/workflow-queued-step-dispatch-requires-an-explicit-opt-in.md +29 -0
- package/knowledge/decisions/internals/workflow-queues-are-per-workflow-by-default.md +42 -0
- package/knowledge/decisions/internals/workflow-repeated-step-names-get-an-ordinal-suffix.md +33 -0
- package/knowledge/decisions/internals/workflow-replay-reads-its-steps-once-and-caches-only-the-immutable-half.md +32 -0
- package/knowledge/decisions/internals/workflow-retries-are-owned-by-the-workflow-not-the-queue.md +31 -0
- package/knowledge/decisions/internals/workflow-run-capabilities-are-extensions-not-subclasses.md +39 -0
- package/knowledge/decisions/internals/workflow-run-mirror-is-never-a-source-of-truth.md +29 -0
- package/knowledge/decisions/internals/workflow-run-polling-backs-off-to-the-callers-ceiling.md +33 -0
- package/knowledge/decisions/internals/workflow-run-timeline-is-a-pure-fold-over-durable-history.md +37 -0
- package/knowledge/decisions/internals/workflow-scenario-assertions-never-retry-and-record-one-step.md +50 -0
- package/knowledge/decisions/internals/workflow-scenario-hooks-are-a-scenario-only-affordance.md +43 -0
- package/knowledge/decisions/internals/workflow-scenario-prose-is-rendered-from-typed-calls-not-parsed-from-english.md +32 -0
- package/knowledge/decisions/internals/workflow-scenario-quarantine-reason-lives-in-code.md +18 -0
- package/knowledge/decisions/internals/workflow-scenario-step-targets-are-string-literals-for-the-inspector.md +34 -0
- package/knowledge/decisions/internals/workflow-step-compensation-runs-as-its-own-durable-step.md +26 -0
- package/knowledge/decisions/internals/workflow-step-dispatch-failure-is-transient-not-a-run-failure.md +33 -0
- package/knowledge/decisions/internals/workflow-step-lock-is-held-only-to-claim-the-step.md +27 -0
- package/knowledge/decisions/internals/workflow-step-rpc-name-is-provenance-only.md +34 -0
- package/knowledge/decisions/internals/workflow-suspend-and-approval-reasons-are-durable-step-identities.md +38 -0
- package/knowledge/decisions/internals/workflow-suspended-runs-keep-their-in-process-context.md +30 -0
- package/knowledge/decisions/security/a-dropped-audit-write-is-always-logged.md +26 -0
- package/knowledge/decisions/security/actor-flow-missing-approval-decisions-default-to-denied.md +22 -0
- package/knowledge/decisions/security/actor-sign-in-is-proven-by-set-cookie-not-a-non-empty-jar.md +27 -0
- package/knowledge/decisions/security/actor-sign-in-only-works-for-actor-flagged-users.md +27 -0
- package/knowledge/decisions/security/addon-auth-and-tags-only-tighten.md +43 -0
- package/knowledge/decisions/security/addon-config-gates-apply-only-at-the-namespaced-rpc-boundary.md +52 -0
- package/knowledge/decisions/security/addon-scopes-are-resolved-where-the-function-runs.md +46 -0
- package/knowledge/decisions/security/ai-agent-approval-forwarding-requires-a-symbol-brand.md +27 -0
- package/knowledge/decisions/security/ai-agent-credential-requests-are-symbol-branded.md +37 -0
- package/knowledge/decisions/security/ai-agent-gate-requires-a-session-only-when-auth-is-true.md +31 -0
- package/knowledge/decisions/security/ai-agent-ownership-failures-never-echo-the-resource.md +23 -0
- package/knowledge/decisions/security/ai-agent-resume-re-runs-the-authorization-gate.md +22 -0
- package/knowledge/decisions/security/ai-agent-sessionless-deployments-have-no-thread-ownership.md +39 -0
- package/knowledge/decisions/security/ai-agent-thread-ownership-composes-the-session-principal.md +30 -0
- package/knowledge/decisions/security/ai-agent-tool-filtering-reads-the-live-function-config.md +24 -0
- package/knowledge/decisions/security/an-empty-owners-constraint-matches-nothing.md +30 -0
- package/knowledge/decisions/security/an-exposed-ungated-function-is-a-codegen-warning.md +49 -0
- package/knowledge/decisions/security/console-addon-privileged-functions-gate-themselves.md +76 -0
- package/knowledge/decisions/security/core-safe-fetch-blocks-ssrf-by-host-literal-not-dns.md +39 -0
- package/knowledge/decisions/security/core-secrets-use-a-per-secret-dek-wrapped-by-a-kek.md +37 -0
- package/knowledge/decisions/security/gateway-handlers-run-through-the-function-runner-gate.md +31 -0
- package/knowledge/decisions/security/gateway-middleware-sessions-must-be-bridged-onto-the-wire.md +30 -0
- package/knowledge/decisions/security/global-permissions-and-function-permissions-are-independent-gates.md +40 -0
- package/knowledge/decisions/security/http-error-detail-is-withheld-from-clients-in-production.md +33 -0
- package/knowledge/decisions/security/http-request-bodies-are-bounded-before-they-are-buffered.md +46 -0
- package/knowledge/decisions/security/index.md +55 -0
- package/knowledge/decisions/security/mcp-internal-error-details-are-double-gated-on-production.md +27 -0
- package/knowledge/decisions/security/passphrases-are-stretched-key-material-is-expanded.md +40 -0
- package/knowledge/decisions/security/permission-auth-filtering-requires-live-permission-functions.md +31 -0
- package/knowledge/decisions/security/pikku-carries-actor-scopes-as-data-and-the-app-grants-them.md +26 -0
- package/knowledge/decisions/security/queue-job-identities-are-signed-at-enqueue.md +69 -0
- package/knowledge/decisions/security/queue-jobs-carry-the-producers-pikku-user-id.md +39 -0
- package/knowledge/decisions/security/remote-addon-tokens-are-client-credentials-not-mesh-trust.md +34 -0
- package/knowledge/decisions/security/scaffold-features-are-authenticated-unless-opted-out.md +49 -0
- package/knowledge/decisions/security/scenario-step-functions-are-never-externally-invocable.md +30 -0
- package/knowledge/decisions/security/scope-resolution-happens-at-the-session-boundary-and-sync-never-deletes.md +28 -0
- package/knowledge/decisions/security/self-authentication-is-declared-not-detected.md +34 -0
- package/knowledge/decisions/security/signed-content-urls-bind-the-request-path.md +37 -0
- package/knowledge/decisions/security/webhook-bodies-are-signed-before-they-are-enqueued.md +25 -0
- package/knowledge/decisions/security/workflow-actor-steps-always-use-the-real-transport.md +34 -0
- package/knowledge/decisions/security/workflow-approval-payloads-are-validated-on-replay-inside-the-workflow.md +40 -0
- package/knowledge/decisions/security/workflow-queued-steps-rehydrate-their-session-from-the-run-wire.md +32 -0
- package/knowledge/decisions/security/workflow-scenario-sessions-are-isolated-per-actor-and-per-scenario.md +32 -0
- package/knowledge/decisions/security/workflow-scenario-steps-are-never-network-invocable.md +31 -0
- package/knowledge/index.md +24 -0
- package/knowledge/questions/index.md +15 -0
- package/package.json +6 -2
- package/run-tests.sh +0 -0
- package/src/column-form.test.ts +97 -0
- package/src/column-form.ts +58 -0
- package/src/crypto-utils.test.ts +460 -19
- package/src/crypto-utils.ts +306 -59
- package/src/data-classification.ts +45 -7
- package/src/dev/hot-reload.test.ts +0 -4
- package/src/dev/hot-reload.ts +11 -30
- package/src/dev/module-runner.ts +7 -32
- package/src/dev/reload-meta.ts +9 -29
- package/src/errors/error-handler.ts +20 -35
- package/src/errors/error.test.ts +30 -1
- package/src/errors/errors.ts +73 -157
- package/src/function/abort-scope.test.ts +97 -0
- package/src/function/abort-scope.ts +80 -0
- package/src/function/function-runner.test.ts +0 -7
- package/src/function/function-runner.ts +62 -32
- package/src/function/functions.types.ts +95 -138
- package/src/function/index.ts +1 -0
- package/src/function/list.types.test.ts +3 -25
- package/src/function/list.types.ts +12 -62
- package/src/handle-error.ts +0 -18
- package/src/index.ts +84 -3
- package/src/middleware/auth-apikey.test.ts +0 -1
- package/src/middleware/auth-apikey.ts +0 -17
- package/src/middleware/auth-bearer.test.ts +3 -5
- package/src/middleware/auth-bearer.ts +5 -41
- package/src/middleware/auth-cookie.test.ts +0 -6
- package/src/middleware/auth-cookie.ts +2 -26
- package/src/middleware/cors.test.ts +34 -0
- package/src/middleware/cors.ts +12 -33
- package/src/middleware/remote-auth.test.ts +26 -10
- package/src/middleware/remote-auth.ts +11 -3
- package/src/middleware/telemetry.ts +2 -31
- package/src/middleware-runner.test.ts +0 -2
- package/src/middleware-runner.ts +5 -74
- package/src/permissions.test.ts +30 -0
- package/src/permissions.ts +24 -74
- package/src/pikku-request.ts +0 -6
- package/src/pikku-state.ts +2 -30
- package/src/production-barrels-stay-lean.test.ts +110 -0
- package/src/remote.test.ts +173 -0
- package/src/remote.ts +18 -8
- package/src/schema.ts +5 -39
- package/src/scopes.ts +7 -48
- package/src/secret-value.test.ts +204 -0
- package/src/secret-value.ts +111 -0
- package/src/services/ai-agent-runner-service.ts +20 -0
- package/src/services/ai-embedding-service.ts +3 -25
- package/src/services/audit-service.ts +88 -11
- package/src/services/content-service.ts +1 -46
- package/src/services/credential-service.ts +3 -40
- package/src/services/credential-wire-service.test.ts +0 -2
- package/src/services/credential-wire-service.ts +9 -1
- package/src/services/deployment-service.ts +3 -9
- package/src/services/email-service.ts +3 -1
- package/src/services/gateway-service.ts +0 -15
- package/src/services/{http-scenario-actors-converse.test.ts → http-personas-converse.test.ts} +38 -9
- package/src/services/{http-scenario-actors.test.ts → http-personas.test.ts} +39 -22
- package/src/services/{http-scenario-actors.ts → http-personas.ts} +85 -45
- package/src/services/in-memory-queue-service.ts +1 -15
- package/src/services/in-memory-trigger-service.ts +1 -18
- package/src/services/in-memory-workflow-service.test.ts +0 -13
- package/src/services/in-memory-workflow-service.ts +4 -38
- package/src/services/index.ts +23 -18
- package/src/services/istanbul-coverage-service.ts +2 -8
- package/src/services/jwt-service.ts +1 -16
- package/src/services/local-content-request-handler.test.ts +202 -0
- package/src/services/local-content-request-handler.ts +267 -0
- package/src/services/local-content.test.ts +159 -27
- package/src/services/local-content.ts +55 -23
- package/src/services/local-gateway-service.ts +2 -17
- package/src/services/local-secrets.test.ts +20 -5
- package/src/services/local-secrets.ts +15 -11
- package/src/services/logger-console.test.ts +0 -1
- package/src/services/logger-console.ts +3 -7
- package/src/services/logger.ts +31 -46
- package/src/services/meta-service.test.ts +1 -5
- package/src/services/meta-service.ts +41 -61
- package/src/services/{scenario-actors-service.ts → personas-service.ts} +48 -43
- package/src/services/pikku-user-id.ts +0 -4
- package/src/services/queue-webhook-service.test.ts +2 -1
- package/src/services/queue-webhook-service.ts +10 -42
- package/src/services/scheduler-service.ts +1 -50
- package/src/services/schema-service.ts +1 -24
- package/src/services/scope-service.ts +50 -34
- package/src/services/scoped-secret-service.ts +4 -7
- package/src/services/secret-host-binding.test.ts +138 -0
- package/src/services/secret-host-binding.ts +51 -0
- package/src/services/secret-service.ts +12 -35
- package/src/services/secretless.test.ts +54 -0
- package/src/services/secretless.ts +29 -0
- package/src/services/stub-tracker.ts +8 -18
- package/src/services/system-role-guard.test.ts +93 -0
- package/src/services/system-role-guard.ts +71 -0
- package/src/services/trigger-service.ts +0 -12
- package/src/services/typed-secret-service.ts +12 -14
- package/src/services/v8-coverage-service.ts +3 -6
- package/src/services/variables-service.ts +1 -8
- package/src/services/webhook-service.ts +23 -64
- package/src/services/workflow-service.ts +3 -20
- package/src/testing/service-tests.ts +6 -32
- package/src/time-utils.ts +1 -19
- package/src/types/core.types.ts +137 -229
- package/src/types/state.types.ts +7 -9
- package/src/utils/hmac.ts +4 -10
- package/src/utils/safe-fetch.ts +13 -54
- package/src/utils.test.ts +11 -2
- package/src/utils.ts +6 -15
- package/src/wirings/actor-flow/actor-flow.types.ts +1 -34
- package/src/wirings/actor-flow/index.ts +0 -9
- package/src/wirings/actor-flow/run-conversation.test.ts +11 -6
- package/src/wirings/actor-flow/run-conversation.ts +19 -12
- package/src/wirings/ai-agent/ai-agent-agui.test.ts +91 -10
- package/src/wirings/ai-agent/ai-agent-agui.ts +49 -17
- package/src/wirings/ai-agent/ai-agent-helpers.ts +20 -0
- package/src/wirings/ai-agent/ai-agent-interrupt.test.ts +842 -0
- package/src/wirings/ai-agent/ai-agent-interrupt.ts +399 -0
- package/src/wirings/ai-agent/ai-agent-memory.ts +0 -2
- package/src/wirings/ai-agent/ai-agent-model-config.ts +1 -9
- package/src/wirings/ai-agent/ai-agent-prepare.test.ts +202 -31
- package/src/wirings/ai-agent/ai-agent-prepare.ts +89 -139
- package/src/wirings/ai-agent/ai-agent-registry.test.ts +191 -6
- package/src/wirings/ai-agent/ai-agent-registry.ts +18 -1
- package/src/wirings/ai-agent/ai-agent-resume-authorization.test.ts +0 -2
- package/src/wirings/ai-agent/ai-agent-runner.test.ts +11 -9
- package/src/wirings/ai-agent/ai-agent-runner.ts +85 -35
- package/src/wirings/ai-agent/ai-agent-stream.test.ts +205 -103
- package/src/wirings/ai-agent/ai-agent-stream.ts +224 -76
- package/src/wirings/ai-agent/ai-agent-thread-ownership.test.ts +301 -0
- package/src/wirings/ai-agent/ai-agent.types.ts +130 -5
- package/src/wirings/ai-agent/index.ts +37 -3
- package/src/wirings/ai-agent/voice-input.test.ts +137 -7
- package/src/wirings/ai-agent/voice-input.ts +96 -12
- package/src/wirings/ai-agent/voice-output.test.ts +512 -0
- package/src/wirings/ai-agent/voice-output.ts +243 -56
- package/src/wirings/channel/channel-common.ts +15 -20
- package/src/wirings/channel/channel-handler.test.ts +50 -0
- package/src/wirings/channel/channel-handler.ts +32 -11
- package/src/wirings/channel/channel-host-rpc.test.ts +150 -0
- package/src/wirings/channel/channel-host-rpc.ts +69 -0
- package/src/wirings/channel/channel-middleware-runner.test.ts +0 -1
- package/src/wirings/channel/channel-middleware-runner.ts +0 -12
- package/src/wirings/channel/channel-rpc-registry.ts +116 -0
- package/src/wirings/channel/channel-rpc-responder.ts +117 -0
- package/src/wirings/channel/channel-rpc-service.ts +146 -0
- package/src/wirings/channel/channel-rpc-validators.ts +65 -0
- package/src/wirings/channel/channel-rpc.test.ts +820 -0
- package/src/wirings/channel/channel-rpc.ts +5 -0
- package/src/wirings/channel/channel-rpc.types.ts +150 -0
- package/src/wirings/channel/channel-runner.ts +0 -14
- package/src/wirings/channel/channel-store.ts +0 -10
- package/src/wirings/channel/channel.types.ts +19 -8
- package/src/wirings/channel/define-channel-routes.ts +0 -20
- package/src/wirings/channel/eventhub-service.ts +0 -18
- package/src/wirings/channel/index.ts +35 -0
- package/src/wirings/channel/local/local-channel-handler.ts +3 -1
- package/src/wirings/channel/local/local-channel-runner.test.ts +0 -10
- package/src/wirings/channel/local/local-channel-runner.ts +3 -1
- package/src/wirings/channel/local/local-eventhub-service.test.ts +0 -13
- package/src/wirings/channel/local/local-eventhub-service.ts +2 -37
- package/src/wirings/channel/log-channels.ts +0 -4
- package/src/wirings/channel/pikku-abstract-channel-handler.test.ts +83 -2
- package/src/wirings/channel/pikku-abstract-channel-handler.ts +7 -0
- package/src/wirings/channel/serverless/serverless-channel-runner.ts +2 -5
- package/src/wirings/cli/channel/cli-approval.test.ts +177 -0
- package/src/wirings/cli/channel/cli-approval.ts +135 -0
- package/src/wirings/cli/channel/cli-channel-runner.ts +4 -26
- package/src/wirings/cli/channel/cli-raw-channel-runner.test.ts +169 -0
- package/src/wirings/cli/channel/cli-raw-channel-runner.ts +59 -16
- package/src/wirings/cli/channel/cli-raw-client-runner.test.ts +480 -0
- package/src/wirings/cli/channel/cli-raw-client-runner.ts +185 -0
- package/src/wirings/cli/channel/index.ts +13 -0
- package/src/wirings/cli/cli-runner.test.ts +0 -1
- package/src/wirings/cli/cli-runner.ts +46 -88
- package/src/wirings/cli/cli.types.ts +14 -3
- package/src/wirings/cli/command-parser.test.ts +0 -4
- package/src/wirings/cli/command-parser.ts +11 -91
- package/src/wirings/cli/define-cli-commands.ts +1 -17
- package/src/wirings/credential/credential.types.ts +0 -12
- package/src/wirings/credential/{wire-credential.ts → define-credential.ts} +7 -7
- package/src/wirings/credential/index.ts +1 -1
- package/src/wirings/credential/validate-credential-definitions.ts +2 -4
- package/src/wirings/gateway/gateway-runner.test.ts +1 -21
- package/src/wirings/gateway/gateway-runner.ts +8 -110
- package/src/wirings/gateway/gateway.types.ts +7 -80
- package/src/wirings/http/http-routes.test.ts +0 -3
- package/src/wirings/http/http-routes.ts +0 -86
- package/src/wirings/http/http-runner.test.ts +0 -1
- package/src/wirings/http/http-runner.ts +8 -167
- package/src/wirings/http/http.types.ts +15 -62
- package/src/wirings/http/log-http-routes.ts +0 -4
- package/src/wirings/http/pikku-fetch-http-request.test.ts +2 -10
- package/src/wirings/http/pikku-fetch-http-request.ts +0 -58
- package/src/wirings/http/pikku-fetch-http-response.test.ts +1 -1
- package/src/wirings/http/pikku-fetch-http-response.ts +0 -3
- package/src/wirings/http/routers/path-to-regex.test.ts +4 -17
- package/src/wirings/http/routers/path-to-regex.ts +2 -13
- package/src/wirings/http/web-request.test.ts +33 -2
- package/src/wirings/http/web-request.ts +30 -17
- package/src/wirings/mcp/mcp-endpoint-registry.test.ts +0 -1
- package/src/wirings/mcp/mcp-runner.ts +2 -17
- package/src/wirings/mcp/mcp.types.ts +7 -42
- package/src/wirings/oauth2/oauth2.types.ts +0 -30
- package/src/wirings/persona/define-personas.ts +33 -0
- package/src/wirings/persona/index.ts +62 -0
- package/src/wirings/persona/persona-email.ts +87 -0
- package/src/wirings/persona/persona-environments.test.ts +183 -0
- package/src/wirings/persona/persona-environments.ts +138 -0
- package/src/wirings/persona/persona-mailbox.ts +156 -0
- package/src/wirings/persona/persona.test.ts +220 -0
- package/src/wirings/persona/persona.types.ts +142 -0
- package/src/wirings/persona/validate-personas.ts +133 -0
- package/src/wirings/queue/index.ts +13 -3
- package/src/wirings/queue/queue-identity.test.ts +454 -0
- package/src/wirings/queue/queue-identity.ts +176 -0
- package/src/wirings/queue/queue-runner.ts +12 -31
- package/src/wirings/queue/queue.types.ts +25 -90
- package/src/wirings/queue/register-queue-helper.ts +0 -14
- package/src/wirings/queue/signed-queue-service.ts +60 -0
- package/src/wirings/queue/validate-worker-config.ts +2 -28
- package/src/wirings/role/define-system-role.ts +33 -0
- package/src/wirings/role/index.ts +13 -0
- package/src/wirings/role/role.test.ts +104 -0
- package/src/wirings/role/role.types.ts +47 -0
- package/src/wirings/role/validate-role-definitions.ts +93 -0
- package/src/wirings/rpc/addon-auth-tags.test.ts +223 -0
- package/src/wirings/rpc/addon-runner.ts +0 -56
- package/src/wirings/rpc/addon-scopes.test.ts +225 -0
- package/src/wirings/rpc/remote-addon-auth.ts +9 -16
- package/src/wirings/rpc/rpc-runner.test.ts +192 -6
- package/src/wirings/rpc/rpc-runner.ts +145 -127
- package/src/wirings/rpc/rpc-types.ts +11 -6
- package/src/wirings/rpc/wire-addon.test.ts +43 -1
- package/src/wirings/rpc/wire-addon.ts +99 -0
- package/src/wirings/rpc/wire-remote-addon.ts +9 -29
- package/src/wirings/scheduler/log-schedulers.ts +0 -4
- package/src/wirings/scheduler/scheduler-runner.test.ts +1 -8
- package/src/wirings/scheduler/scheduler-runner.ts +0 -2
- package/src/wirings/scheduler/scheduler.types.ts +1 -14
- package/src/wirings/scope/{wire-scope.ts → define-scope.ts} +5 -6
- package/src/wirings/scope/index.ts +1 -1
- package/src/wirings/scope/scope.test.ts +1 -2
- package/src/wirings/scope/scope.types.ts +7 -9
- package/src/wirings/scope/validate-scope-definitions.ts +3 -21
- package/src/wirings/secret/index.ts +1 -1
- package/src/wirings/secret/secret.types.ts +19 -15
- package/src/wirings/secret/validate-secret-definitions.ts +2 -4
- package/src/wirings/trigger/trigger-runner.ts +1 -27
- package/src/wirings/trigger/trigger.types.ts +1 -82
- package/src/wirings/variable/index.ts +1 -1
- package/src/wirings/variable/validate-variable-definitions.ts +2 -4
- package/src/wirings/variable/variable.types.ts +1 -13
- package/src/wirings/virtual-user/index.ts +88 -0
- package/src/wirings/virtual-user/prepare-virtual-user-run.test.ts +115 -0
- package/src/wirings/virtual-user/prepare-virtual-user-run.ts +95 -0
- package/src/wirings/virtual-user/run-virtual-user.test.ts +765 -0
- package/src/wirings/virtual-user/run-virtual-user.ts +671 -0
- package/src/wirings/virtual-user/virtual-user-agents.test.ts +65 -0
- package/src/wirings/virtual-user/virtual-user-agents.ts +57 -0
- package/src/wirings/virtual-user/virtual-user-catalogue.test.ts +215 -0
- package/src/wirings/virtual-user/virtual-user-catalogue.ts +184 -0
- package/src/wirings/virtual-user/virtual-user-derive.test.ts +398 -0
- package/src/wirings/virtual-user/virtual-user-derive.ts +173 -0
- package/src/wirings/virtual-user/virtual-user-dispositions.test.ts +63 -0
- package/src/wirings/virtual-user/virtual-user-dispositions.ts +213 -0
- package/src/wirings/virtual-user/virtual-user-intents.test.ts +208 -0
- package/src/wirings/virtual-user/virtual-user-intents.ts +185 -0
- package/src/wirings/virtual-user/virtual-user-rng.test.ts +72 -0
- package/src/wirings/virtual-user/virtual-user-rng.ts +50 -0
- package/src/wirings/virtual-user/virtual-user-run-store.ts +98 -0
- package/src/wirings/virtual-user/virtual-user-target.ts +47 -0
- package/src/wirings/virtual-user/virtual-user.types.ts +219 -0
- package/src/wirings/workflow/dsl/workflow-dsl.types.ts +19 -20
- package/src/wirings/workflow/dsl/workflow-runner.ts +0 -4
- package/src/wirings/workflow/feature.ts +0 -19
- package/src/wirings/workflow/graph/graph-node.ts +0 -136
- package/src/wirings/workflow/graph/graph-runner.test.ts +20 -19
- package/src/wirings/workflow/graph/graph-runner.ts +6 -41
- package/src/wirings/workflow/graph/wire-workflow-graph.ts +0 -4
- package/src/wirings/workflow/graph/workflow-graph.types.ts +0 -58
- package/src/wirings/workflow/index.ts +10 -44
- package/src/wirings/workflow/pikku-scenario-service.ts +235 -61
- package/src/wirings/workflow/pikku-workflow-service.test.ts +0 -39
- package/src/wirings/workflow/pikku-workflow-service.ts +77 -674
- package/src/wirings/workflow/run-timeline.test.ts +7 -19
- package/src/wirings/workflow/run-timeline.ts +0 -56
- package/src/wirings/workflow/scenario-cookie-jar.test.ts +0 -1
- package/src/wirings/workflow/scenario-cookie-jar.ts +0 -25
- package/src/wirings/workflow/scenario-expectations.test.ts +2 -7
- package/src/wirings/workflow/scenario-hooks.test.ts +2 -7
- package/src/wirings/workflow/scenario-poll.test.ts +0 -2
- package/src/wirings/workflow/scenario-poll.ts +0 -15
- package/src/wirings/workflow/scenario-prose.test.ts +5 -7
- package/src/wirings/workflow/scenario-prose.ts +1 -29
- package/src/wirings/workflow/scenario-service.test.ts +2 -10
- package/src/wirings/workflow/scenario-step-guards.ts +1 -14
- package/src/wirings/workflow/scenario-step.test.ts +163 -19
- package/src/wirings/workflow/scenario-step.types.ts +94 -12
- package/src/wirings/workflow/scenario-surface.test.ts +146 -0
- package/src/wirings/workflow/scenario-surface.ts +71 -0
- package/src/wirings/workflow/workflow-dispatch-durability.test.ts +14 -15
- package/src/wirings/workflow/workflow-dispatch-payload.test.ts +0 -4
- package/src/wirings/workflow/workflow-inline-authority.test.ts +169 -0
- package/src/wirings/workflow/workflow-invocation-id.test.ts +0 -2
- package/src/wirings/workflow/workflow-invocation-id.ts +2 -22
- package/src/wirings/workflow/workflow-mirror.test.ts +0 -7
- package/src/wirings/workflow/workflow-on-error.test.ts +0 -9
- package/src/wirings/workflow/workflow-queue-workers.ts +0 -21
- package/src/wirings/workflow/workflow-replay-snapshot.test.ts +8 -7
- package/src/wirings/workflow/workflow-retry-policy.test.ts +0 -5
- package/src/wirings/workflow/workflow-run-context.test.ts +5 -10
- package/src/wirings/workflow/workflow-run-polling.test.ts +0 -5
- package/src/wirings/workflow/workflow-step-ordinal.test.ts +19 -4
- package/src/wirings/workflow/workflow-step-session.test.ts +0 -7
- package/src/wirings/workflow/workflow.types.ts +5 -201
- package/tsconfig.tsbuildinfo +1 -1
- package/tsconfig.type-tests.json +12 -0
- package/src/middleware/timeout.ts +0 -22
- package/src/pikku-response.ts +0 -5
- package/src/wirings/mcp/mcp-endpoint-registry.test.d.ts +0 -1
- package/src/wirings/workflow/dsl/index.ts +0 -36
- package/src/wirings/workflow/graph/index.ts +0 -15
package/src/types/core.types.ts
CHANGED
|
@@ -25,6 +25,8 @@ import type {
|
|
|
25
25
|
import type {
|
|
26
26
|
PikkuBrowserWire,
|
|
27
27
|
PikkuScenarioStepWire,
|
|
28
|
+
ScenarioStepKind,
|
|
29
|
+
ScenarioSurface,
|
|
28
30
|
} from '../wirings/workflow/scenario-step.types.js'
|
|
29
31
|
import type { PikkuGraphWire } from '../wirings/workflow/graph/workflow-graph.types.js'
|
|
30
32
|
import type { PikkuTrigger } from '../wirings/trigger/trigger.types.js'
|
|
@@ -35,13 +37,14 @@ import type { AIStorageService } from '../services/ai-storage-service.js'
|
|
|
35
37
|
|
|
36
38
|
import type { ContentService } from '../services/content-service.js'
|
|
37
39
|
import type {
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
} from '../services/
|
|
40
|
+
ScenarioPersonaOf,
|
|
41
|
+
ScenarioPersonas,
|
|
42
|
+
} from '../services/personas-service.js'
|
|
41
43
|
import type { AIAgentRunnerService } from '../services/ai-agent-runner-service.js'
|
|
42
44
|
import type { AIEmbeddingService } from '../services/ai-embedding-service.js'
|
|
43
45
|
import type { AIRunStateService } from '../services/ai-run-state-service.js'
|
|
44
46
|
import type { AgentRunService } from '../wirings/ai-agent/ai-agent.types.js'
|
|
47
|
+
import type { VirtualUserRunStore } from '../wirings/virtual-user/virtual-user-run-store.js'
|
|
45
48
|
import type { PikkuAIMiddlewareHooks } from '../wirings/ai-agent/ai-agent.types.js'
|
|
46
49
|
import type { WorkflowRunService } from '../wirings/workflow/workflow.types.js'
|
|
47
50
|
import type { CredentialService } from '../services/credential-service.js'
|
|
@@ -83,12 +86,6 @@ export interface FunctionWiresMeta {
|
|
|
83
86
|
wires: string[]
|
|
84
87
|
}
|
|
85
88
|
|
|
86
|
-
/**
|
|
87
|
-
* Metadata for middleware at any level
|
|
88
|
-
* - type: 'http' = HTTP route middleware group (references httpGroup in pikkuState)
|
|
89
|
-
* - type: 'tag' = Tag-based middleware group (references tagGroup in pikkuState)
|
|
90
|
-
* - type: 'wire' = Wire-level individual middleware
|
|
91
|
-
*/
|
|
92
89
|
export type MiddlewareMetadata =
|
|
93
90
|
| {
|
|
94
91
|
type: 'http'
|
|
@@ -96,30 +93,22 @@ export type MiddlewareMetadata =
|
|
|
96
93
|
}
|
|
97
94
|
| {
|
|
98
95
|
type: 'tag'
|
|
99
|
-
tag: string
|
|
96
|
+
tag: string
|
|
100
97
|
}
|
|
101
98
|
| {
|
|
102
99
|
type: 'wire'
|
|
103
100
|
name: string
|
|
104
|
-
inline?: boolean
|
|
101
|
+
inline?: boolean
|
|
105
102
|
}
|
|
106
103
|
|
|
107
104
|
/**
|
|
108
|
-
*
|
|
109
|
-
*
|
|
110
|
-
* - type: 'tag' = Tag-based permission group (references tagGroup in pikkuState)
|
|
111
|
-
* - type: 'wire' = Wire-level individual permission
|
|
112
|
-
*/
|
|
113
|
-
/**
|
|
114
|
-
* A reference to a permission function a function declares, resolved by name.
|
|
115
|
-
* Used at filter time (e.g. listing agent tools) to run the session-only
|
|
116
|
-
* (pikkuAuth) predicates without request data. Permissions are function-scoped
|
|
117
|
-
* only — there are no wire- or tag-level permission references.
|
|
105
|
+
* A reference to a permission function, resolved by name. Function-scoped
|
|
106
|
+
* only: there are no wire- or tag-level permission references.
|
|
118
107
|
*/
|
|
119
108
|
export type PermissionMetadata = {
|
|
120
109
|
type: 'wire'
|
|
121
110
|
name: string
|
|
122
|
-
inline?: boolean
|
|
111
|
+
inline?: boolean
|
|
123
112
|
}
|
|
124
113
|
|
|
125
114
|
export type FunctionRuntimeMeta = {
|
|
@@ -129,21 +118,29 @@ export type FunctionRuntimeMeta = {
|
|
|
129
118
|
/** Scopes the session must hold to run this function. All are required (AND). */
|
|
130
119
|
scopes?: string[]
|
|
131
120
|
expose?: boolean
|
|
121
|
+
/**
|
|
122
|
+
* A sessionless function's own `auth: true`. `sessionless` carries the
|
|
123
|
+
* baseline — a `pikkuFunc` always requires a session — and this carries the
|
|
124
|
+
* tightening a `pikkuSessionlessFunc` applies to itself. Both are needed to
|
|
125
|
+
* know whether a function is gated without running it.
|
|
126
|
+
*/
|
|
127
|
+
auth?: boolean
|
|
128
|
+
/**
|
|
129
|
+
* The author's declaration that this function's permission check lives in its
|
|
130
|
+
* own body. Carries no runtime effect — it records a gate codegen cannot see,
|
|
131
|
+
* so an audit is not left to guess whether a sessionless function is open.
|
|
132
|
+
* Refused unless `allow.permissionsInBody` is set in `pikku.config.json`.
|
|
133
|
+
*/
|
|
134
|
+
permissionsInBody?: boolean
|
|
132
135
|
remote?: boolean
|
|
133
136
|
/**
|
|
134
|
-
* A step RPC:
|
|
135
|
-
* else
|
|
136
|
-
* rather than a separate concept — a step is invoked by name exactly as an
|
|
137
|
-
* RPC is, which is why a run records the step function in its `rpcName`.
|
|
138
|
-
* What makes it its own kind is that it is never network-callable: a step
|
|
139
|
-
* may drive a browser or assert against fixtures.
|
|
137
|
+
* A step RPC: invoked by name only from a scenario run and refused
|
|
138
|
+
* everywhere else, so it is never network-callable.
|
|
140
139
|
*/
|
|
141
140
|
scenarioStep?: boolean
|
|
142
141
|
/**
|
|
143
|
-
* The
|
|
144
|
-
*
|
|
145
|
-
* `scenarioStep`: a scenario is only ever run by `pikku scenario run`, so it
|
|
146
|
-
* has to be held back from the app bootstrap and from every deployed unit.
|
|
142
|
+
* The body of a `pikkuScenario(...)`. Only ever run by `pikku scenario run`,
|
|
143
|
+
* so it is held back from the app bootstrap and from every deployed unit.
|
|
147
144
|
*/
|
|
148
145
|
scenario?: boolean
|
|
149
146
|
mcp?: boolean
|
|
@@ -156,10 +153,43 @@ export type FunctionRuntimeMeta = {
|
|
|
156
153
|
workflowRetries?: number
|
|
157
154
|
/** Timeout when this function is used as a workflow step (e.g. '30s', '5m'). */
|
|
158
155
|
workflowTimeout?: string
|
|
159
|
-
/**
|
|
160
|
-
|
|
156
|
+
/**
|
|
157
|
+
* Scenario steps only: which surfaces this step declares a binding for.
|
|
158
|
+
*
|
|
159
|
+
* The reporter derives coverage from this — a `then` with no binding for the
|
|
160
|
+
* surface the run targeted was never actually witnessed there, which is a gap
|
|
161
|
+
* worth counting rather than excusing.
|
|
162
|
+
*/
|
|
163
|
+
scenarioStepSurfaces?: ScenarioSurface[]
|
|
164
|
+
/**
|
|
165
|
+
* Scenario steps only: who acts. Absent means `persona` — the ordinary step,
|
|
166
|
+
* and the only kind that existed before the other two.
|
|
167
|
+
*
|
|
168
|
+
* A `platform` or `addon` step is the app or a third-party system acting, and
|
|
169
|
+
* it must never reach a virtual user's catalogue. That is not tidiness: a
|
|
170
|
+
* virtual user that can invoke "Stripe's webhook arrives" can forge its own
|
|
171
|
+
* payment success, and every finding downstream of that is worthless.
|
|
172
|
+
*/
|
|
173
|
+
scenarioStepKind?: ScenarioStepKind
|
|
174
|
+
/** Addon steps only: the addon whose system acts — `wireAddon`'s `name`. */
|
|
175
|
+
scenarioStepAddon?: string
|
|
161
176
|
/** Scenario steps only: the prose a reporter renders, with `{placeholders}` filled from the step's recorded input. */
|
|
162
177
|
scenarioStepTemplate?: string
|
|
178
|
+
/**
|
|
179
|
+
* The function's `audit` config, resolved — `audit: true` reads as
|
|
180
|
+
* `{ durability: 'best-effort' }`. Absent means the function records nothing:
|
|
181
|
+
* `auditLog.write()` from an unmarked function is dropped with a warning, so
|
|
182
|
+
* this is the only place a reader can see which functions have a trail at all
|
|
183
|
+
* without running them.
|
|
184
|
+
*
|
|
185
|
+
* Informational. The runner resolves audit from the live function config, not
|
|
186
|
+
* from here, so meta and runtime cannot disagree about whether audit is on.
|
|
187
|
+
*/
|
|
188
|
+
audit?: {
|
|
189
|
+
durability: AuditDurability
|
|
190
|
+
}
|
|
191
|
+
/** Keeps the full `SecretService`. Set by the inspector, read by the runner. */
|
|
192
|
+
secretBroker?: boolean
|
|
163
193
|
version?: number
|
|
164
194
|
approvalRequired?: boolean
|
|
165
195
|
approvalDescription?: string
|
|
@@ -173,7 +203,8 @@ export type FunctionMeta = FunctionRuntimeMeta &
|
|
|
173
203
|
Partial<
|
|
174
204
|
{
|
|
175
205
|
name: string
|
|
176
|
-
|
|
206
|
+
/** `remote`: a contract with no local body, answered by a connected client. */
|
|
207
|
+
functionType: 'user' | 'inline' | 'helper' | 'remote'
|
|
177
208
|
funcWrapper: string
|
|
178
209
|
services: FunctionServicesMeta
|
|
179
210
|
wires: FunctionWiresMeta
|
|
@@ -196,19 +227,11 @@ export type FunctionMeta = FunctionRuntimeMeta &
|
|
|
196
227
|
export type FunctionsRuntimeMeta = Record<string, FunctionRuntimeMeta>
|
|
197
228
|
export type FunctionsMeta = Record<string, FunctionMeta>
|
|
198
229
|
|
|
199
|
-
// Optimized runtime metadata with only essential fields
|
|
200
|
-
|
|
201
230
|
export type MakeRequired<T, K extends keyof T> = Omit<T, K> &
|
|
202
231
|
Required<Pick<T, K>>
|
|
203
232
|
|
|
204
|
-
/**
|
|
205
|
-
* Represents a JSON primitive type which can be a string, number, boolean, null, or undefined.
|
|
206
|
-
*/
|
|
207
233
|
export type JSONPrimitive = string | number | boolean | null | undefined
|
|
208
234
|
|
|
209
|
-
/**
|
|
210
|
-
* Represents a JSON value which can be a primitive, an array, or an object.
|
|
211
|
-
*/
|
|
212
235
|
export type JSONValue =
|
|
213
236
|
| JSONPrimitive
|
|
214
237
|
| JSONValue[]
|
|
@@ -216,28 +239,17 @@ export type JSONValue =
|
|
|
216
239
|
[key: string]: JSONValue
|
|
217
240
|
}
|
|
218
241
|
|
|
219
|
-
/**
|
|
220
|
-
* Utility type for making certain keys required and leaving the rest as optional.
|
|
221
|
-
*/
|
|
222
242
|
export type PickRequired<T, K extends keyof T> = T & Required<Pick<T, K>>
|
|
223
243
|
|
|
224
|
-
/**
|
|
225
|
-
* Utility type for making certain keys optional while keeping the rest required.
|
|
226
|
-
*/
|
|
227
244
|
export type PickOptional<T, K extends keyof T> = Partial<T> & Pick<T, K>
|
|
228
245
|
|
|
229
|
-
/**
|
|
230
|
-
* Utility type that ensures at least one key in the given type `T` is required.
|
|
231
|
-
*/
|
|
232
246
|
export type RequireAtLeastOne<T> = {
|
|
233
247
|
[K in keyof T]-?: Required<Pick<T, K>> & Partial<Pick<T, Exclude<keyof T, K>>>
|
|
234
248
|
}[keyof T]
|
|
235
249
|
|
|
236
250
|
/**
|
|
237
|
-
* Runtime
|
|
238
|
-
*
|
|
239
|
-
* contract the CLI's db commands read); this block is purely runtime pool
|
|
240
|
-
* tuning that the CLI never touches.
|
|
251
|
+
* Runtime pool tuning for the Postgres adapter. The connection string stays
|
|
252
|
+
* the flat `postgresUrl` config field — the contract the CLI's db commands read.
|
|
241
253
|
*/
|
|
242
254
|
export interface PostgresConfig {
|
|
243
255
|
/** Max connections in the postgres.js pool. Defaults to postgres.js's 10. */
|
|
@@ -264,25 +276,18 @@ export interface PostgresConfig {
|
|
|
264
276
|
prepare?: boolean
|
|
265
277
|
}
|
|
266
278
|
|
|
267
|
-
/**
|
|
268
|
-
* Interface for the core configuration settings of Pikku.
|
|
269
|
-
*/
|
|
270
279
|
export type CoreConfig<Config extends Record<string, unknown> = {}> = {
|
|
271
|
-
/** The log level for the application. */
|
|
272
280
|
logLevel?: LogLevel
|
|
273
|
-
|
|
274
|
-
|
|
281
|
+
secrets?: {
|
|
282
|
+
/** Refuse a secret that declares no `allowedHosts` rather than treating it as unrestricted. */
|
|
283
|
+
requireAllowedHosts?: boolean
|
|
284
|
+
}
|
|
275
285
|
|
|
276
286
|
workflow?: WorkflowServiceConfig
|
|
277
|
-
/** Default retry and signing settings for outgoing webhooks. */
|
|
278
287
|
webhook?: WebhookServiceConfig
|
|
279
|
-
/** Runtime Postgres adapter options (pool sizing). */
|
|
280
288
|
postgres?: PostgresConfig
|
|
281
289
|
} & Config
|
|
282
290
|
|
|
283
|
-
/**
|
|
284
|
-
* Represents a core user session, which can be extended for more specific session information.
|
|
285
|
-
*/
|
|
286
291
|
export interface CoreUserSession {
|
|
287
292
|
userId?: string
|
|
288
293
|
orgId?: string
|
|
@@ -290,112 +295,79 @@ export interface CoreUserSession {
|
|
|
290
295
|
actor?: boolean
|
|
291
296
|
/**
|
|
292
297
|
* Scopes granted to this session, checked against a function's `scopes`.
|
|
293
|
-
* Populated by whoever builds the session
|
|
294
|
-
* resolving them via a ScopeService) — core reads them and never fetches.
|
|
298
|
+
* Populated by whoever builds the session — core reads them, never fetches.
|
|
295
299
|
*/
|
|
296
300
|
scopes?: string[]
|
|
297
301
|
}
|
|
298
302
|
|
|
299
303
|
/**
|
|
300
|
-
*
|
|
301
|
-
*
|
|
302
|
-
* methods. Kept structural so core stays independent of any one auth package —
|
|
303
|
-
* `@pikku/better-auth`'s `BetterAuthInstance` is this type.
|
|
304
|
+
* Kept structural so core stays independent of any one auth package —
|
|
305
|
+
* `@pikku/better-auth`'s `BetterAuthInstance` satisfies it.
|
|
304
306
|
*/
|
|
305
307
|
export interface AuthInstance {
|
|
306
308
|
handler: (request: Request) => Promise<Response>
|
|
307
309
|
api: Record<string, any>
|
|
308
|
-
/**
|
|
309
|
-
* The auth library's resolved context. Optional because a hand-built instance
|
|
310
|
-
* may omit it.
|
|
311
|
-
*/
|
|
312
310
|
$context?: Promise<any>
|
|
313
311
|
}
|
|
314
312
|
|
|
315
|
-
/**
|
|
316
|
-
* Interface for core singleton services provided by Pikku.
|
|
317
|
-
*/
|
|
318
313
|
export interface CoreSingletonServices<Config extends CoreConfig = CoreConfig> {
|
|
319
|
-
/** The schema library used to validate data */
|
|
320
314
|
schema?: SchemaService
|
|
321
|
-
/** The JWT service used to encode and decode tokens */
|
|
322
315
|
jwt?: JWTService
|
|
323
|
-
/** The core configuration for the application. */
|
|
324
316
|
config: Config
|
|
325
|
-
/** The logger used by the application. */
|
|
326
317
|
logger: Logger
|
|
327
|
-
/** The variable service to be used */
|
|
328
318
|
variables: VariablesService
|
|
329
|
-
/** The secrets service to retrieve secrets */
|
|
330
319
|
secrets: SecretService
|
|
331
|
-
/** The workflow orchestrator service */
|
|
332
320
|
workflowService?: WorkflowService
|
|
333
|
-
/** The queue service */
|
|
334
321
|
queueService?: QueueService
|
|
335
|
-
/** Event hub for realtime pub/sub across channels */
|
|
336
322
|
eventHub?: EventHubService<Record<string, any>>
|
|
337
|
-
/** The scheduler service */
|
|
338
323
|
schedulerService?: SchedulerService
|
|
339
|
-
/** The deployment service for service discovery */
|
|
340
324
|
deploymentService?: DeploymentService
|
|
341
|
-
/** AI agent storage service (threads, messages, working memory) */
|
|
342
325
|
aiStorage?: AIStorageService
|
|
343
326
|
|
|
344
|
-
/** Content service for file storage and retrieval */
|
|
345
327
|
content?: ContentService
|
|
346
|
-
/** AI agent runner service (model calls + tool loop) */
|
|
347
328
|
aiAgentRunner?: AIAgentRunnerService
|
|
348
|
-
/** Dedicated embedding service (vector stores use it at index & query time) */
|
|
349
329
|
aiEmbedding?: AIEmbeddingService
|
|
350
|
-
/** AI run state service (run lifecycle + approval persistence) */
|
|
351
330
|
aiRunState?: AIRunStateService
|
|
352
|
-
/** Agent run service (listing threads, runs, steps) */
|
|
353
331
|
agentRunService?: AgentRunService
|
|
354
|
-
/** Workflow run service (listing workflow runs) */
|
|
355
332
|
workflowRunService?: WorkflowRunService
|
|
356
|
-
/** Credential service for dynamic/managed credentials (OAuth tokens, per-user API keys) */
|
|
357
333
|
credentialService?: CredentialService
|
|
358
|
-
/** Email service for outbound messages and template-backed delivery */
|
|
359
334
|
emailService?: EmailService
|
|
360
335
|
/**
|
|
361
|
-
*
|
|
362
|
-
*
|
|
363
|
-
* history; the queue-only default throws on the delivery-read methods.
|
|
336
|
+
* Queue-backed outgoing webhook delivery. The queue-only default throws on
|
|
337
|
+
* the delivery-read methods; a store-backed implementation records history.
|
|
364
338
|
*/
|
|
365
339
|
webhookService?: WebhookService
|
|
366
|
-
/** Meta service for reading .pikku metadata files (filesystem on Node, R2/KV on CF) */
|
|
367
340
|
metaService?: MetaService
|
|
341
|
+
/**
|
|
342
|
+
* Where virtual-user runs are recorded. A run is dispatched and answered for
|
|
343
|
+
* later, so this store is the only trace it leaves — see
|
|
344
|
+
* {@link VirtualUserRunStore}.
|
|
345
|
+
*/
|
|
346
|
+
virtualUserRunStore?: VirtualUserRunStore
|
|
368
347
|
/** V8 precise-coverage collector (`pikku dev --coverage` only) */
|
|
369
348
|
coverageService?: CoverageService
|
|
370
|
-
/** Audit service for durable or staged audit event capture */
|
|
371
349
|
audit?: AuditService
|
|
372
350
|
/**
|
|
373
|
-
*
|
|
374
|
-
*
|
|
375
|
-
*
|
|
376
|
-
* from `audit` (the durable sink): this is the request-scoped buffer that
|
|
377
|
-
* writes into it.
|
|
351
|
+
* Request-scoped audit buffer that writes into `audit` (the durable sink).
|
|
352
|
+
* Returned as a wire service so the runner flushes it via `close()` when the
|
|
353
|
+
* invocation ends.
|
|
378
354
|
*/
|
|
379
355
|
auditLog?: AuditLog
|
|
380
356
|
/** Session store for persisting user sessions keyed by pikkuUserId */
|
|
381
357
|
sessionStore?: SessionStore
|
|
382
358
|
/**
|
|
383
|
-
* Resolves and administers user scopes. Called when building a session
|
|
384
|
-
*
|
|
359
|
+
* Resolves and administers user scopes. Called when building a session,
|
|
360
|
+
* never by the function runner.
|
|
385
361
|
*/
|
|
386
362
|
scopeService?: ScopeService
|
|
387
363
|
/**
|
|
388
|
-
*
|
|
389
|
-
*
|
|
390
|
-
*
|
|
391
|
-
* returning it themselves. Absent when the project wires no auth.
|
|
364
|
+
* Built once by the factory an auth package registers and injected by the
|
|
365
|
+
* generated `pikkuServices` wrapper — service factories must not return it
|
|
366
|
+
* themselves. Absent when the project wires no auth.
|
|
392
367
|
*/
|
|
393
368
|
auth?: () => Promise<AuthInstance>
|
|
394
369
|
}
|
|
395
370
|
|
|
396
|
-
/**
|
|
397
|
-
* Represents different forms of wire within Pikku and the outside world.
|
|
398
|
-
*/
|
|
399
371
|
export type PikkuWire<
|
|
400
372
|
In = unknown,
|
|
401
373
|
Out = unknown,
|
|
@@ -407,7 +379,7 @@ export type PikkuWire<
|
|
|
407
379
|
TypedWorkflow extends PikkuWorkflowWire | never = PikkuWorkflowWire,
|
|
408
380
|
TriggerOutput = unknown,
|
|
409
381
|
TypedScenario extends PikkuScenarioWire | never = PikkuScenarioWire,
|
|
410
|
-
TypedActors extends
|
|
382
|
+
TypedActors extends ScenarioPersonas = ScenarioPersonas,
|
|
411
383
|
> = {
|
|
412
384
|
/** Always present — lazily initialised on first access for every function invocation */
|
|
413
385
|
rpc: TypedRPC
|
|
@@ -416,23 +388,24 @@ export type PikkuWire<
|
|
|
416
388
|
wireId: string
|
|
417
389
|
/** Trace ID for distributed tracing — propagated across remote RPC calls via x-trace-id header */
|
|
418
390
|
traceId: string
|
|
419
|
-
/** Function id for the current invocation */
|
|
420
391
|
functionId: string
|
|
421
|
-
/** The addon instance namespace (wireAddon name) currently executing, if any */
|
|
422
392
|
addonNamespace: string
|
|
423
393
|
http: PikkuHTTP<In>
|
|
424
394
|
mcp: PikkuMCP<MCPTools>
|
|
395
|
+
// `channel.remote` is typed off the same generated map as `rpc.remote`, so
|
|
396
|
+
// calling back into the connected peer is checked against the app's own
|
|
397
|
+
// function contracts rather than being a string and an `any`.
|
|
425
398
|
channel: [IsChannel] extends [null]
|
|
426
|
-
? PikkuChannel<unknown, Out>
|
|
427
|
-
: PikkuChannel<unknown, Out> | undefined
|
|
399
|
+
? PikkuChannel<unknown, Out, TypedRPC['remote']>
|
|
400
|
+
: PikkuChannel<unknown, Out, TypedRPC['remote']> | undefined
|
|
428
401
|
scheduledTask: PikkuScheduledTask
|
|
429
402
|
queue: PikkuQueue
|
|
430
|
-
cli: PikkuCLI
|
|
403
|
+
cli: PikkuCLI<TypedRPC['remote']>
|
|
431
404
|
workflow: TypedWorkflow
|
|
432
405
|
scenario: TypedScenario
|
|
433
406
|
actors: TypedActors
|
|
434
407
|
/** Present on every scenario step invocation */
|
|
435
|
-
scenarioStep: PikkuScenarioStepWire<
|
|
408
|
+
scenarioStep: PikkuScenarioStepWire<ScenarioPersonaOf<TypedActors>>
|
|
436
409
|
/** Present only when the runner provisioned a browser for this step */
|
|
437
410
|
browser: PikkuBrowserWire
|
|
438
411
|
workflowStep: WorkflowStepWire
|
|
@@ -442,15 +415,11 @@ export type PikkuWire<
|
|
|
442
415
|
session: HasInitialSession extends true
|
|
443
416
|
? UserSession
|
|
444
417
|
: UserSession | undefined
|
|
445
|
-
/** Update and persist the current session */
|
|
446
418
|
setSession: (session: UserSession) => Promise<void> | void
|
|
447
|
-
/** Clear and persist the current session */
|
|
448
419
|
clearSession: () => Promise<void> | void
|
|
449
420
|
/** Fetch the latest session (may read from backing store) */
|
|
450
421
|
getSession: () => Promise<UserSession> | UserSession | undefined
|
|
451
|
-
/** Whether the session was modified during this run */
|
|
452
422
|
hasSessionChanged: () => boolean
|
|
453
|
-
/** The resolved user identity for credential lookups */
|
|
454
423
|
pikkuUserId: string
|
|
455
424
|
/** Set a credential value (available in middleware) */
|
|
456
425
|
setCredential: (name: string, value: unknown) => void
|
|
@@ -460,20 +429,28 @@ export type PikkuWire<
|
|
|
460
429
|
getCredentials: () =>
|
|
461
430
|
| Record<string, unknown>
|
|
462
431
|
| Promise<Record<string, unknown>>
|
|
463
|
-
/** Resolved function audit metadata for this invocation, if enabled */
|
|
464
432
|
audit: {
|
|
465
433
|
durability: AuditDurability
|
|
466
434
|
}
|
|
435
|
+
/**
|
|
436
|
+
* Declare that everything after this line changes something.
|
|
437
|
+
*
|
|
438
|
+
* Present only on functions that are not `readonly` — a read has nothing to
|
|
439
|
+
* declare. Throws `AbandonedError` if whatever asked for this work has
|
|
440
|
+
* already gone away (an interrupted agent run, a disconnected client), so the
|
|
441
|
+
* mutation never runs and the abort is clean. Otherwise it marks the call as
|
|
442
|
+
* mutating, so an interrupt landing after this point is reported rather than
|
|
443
|
+
* silently discarded.
|
|
444
|
+
*
|
|
445
|
+
* Cooperative: a function that never calls it is assumed to have changed
|
|
446
|
+
* something, which is the safe default.
|
|
447
|
+
*/
|
|
448
|
+
beginChanges: () => Promise<void>
|
|
467
449
|
}>
|
|
468
450
|
|
|
469
|
-
/**
|
|
470
|
-
* Wire object as constructed by runners, before rpc is lazily added by the function runner.
|
|
471
|
-
*/
|
|
451
|
+
/** Wire as constructed by runners, before the function runner lazily adds `rpc`. */
|
|
472
452
|
export type PikkuRawWire = Omit<PikkuWire, 'rpc'>
|
|
473
453
|
|
|
474
|
-
/**
|
|
475
|
-
* A function that can wrap an wire and be called before or after
|
|
476
|
-
*/
|
|
477
454
|
export type CorePikkuMiddleware<
|
|
478
455
|
SingletonServices extends CoreSingletonServices = CoreSingletonServices,
|
|
479
456
|
UserSession extends CoreUserSession = CoreUserSession,
|
|
@@ -484,14 +461,8 @@ export type CorePikkuMiddleware<
|
|
|
484
461
|
) => Promise<void>
|
|
485
462
|
|
|
486
463
|
/**
|
|
487
|
-
*
|
|
488
|
-
*
|
|
489
|
-
*
|
|
490
|
-
* - `highest` — Runs first (outermost). Use for telemetry, request tracing.
|
|
491
|
-
* - `high` — Runs early. Use for CORS, rate limiting.
|
|
492
|
-
* - `medium` — Default. Use for auth, most user middleware.
|
|
493
|
-
* - `low` — Runs late. Use for post-auth processing.
|
|
494
|
-
* - `lowest` — Runs last (innermost, closest to function). Use for inner telemetry.
|
|
464
|
+
* Execution order: `highest` runs first (outermost in the onion), `lowest`
|
|
465
|
+
* runs last, closest to the function.
|
|
495
466
|
*/
|
|
496
467
|
export type MiddlewarePriority =
|
|
497
468
|
| 'highest'
|
|
@@ -500,40 +471,23 @@ export type MiddlewarePriority =
|
|
|
500
471
|
| 'low'
|
|
501
472
|
| 'lowest'
|
|
502
473
|
|
|
503
|
-
/**
|
|
504
|
-
* Configuration object for creating middleware with metadata
|
|
505
|
-
*
|
|
506
|
-
* @template SingletonServices - The singleton services type
|
|
507
|
-
* @template UserSession - The user session type
|
|
508
|
-
*/
|
|
509
474
|
export type CorePikkuMiddlewareConfig<
|
|
510
475
|
SingletonServices extends CoreSingletonServices = CoreSingletonServices,
|
|
511
476
|
UserSession extends CoreUserSession = CoreUserSession,
|
|
512
477
|
> = {
|
|
513
|
-
/** The middleware function */
|
|
514
478
|
func: CorePikkuMiddleware<SingletonServices, UserSession>
|
|
515
|
-
/** Optional human-readable name for the middleware */
|
|
516
479
|
name?: string
|
|
517
|
-
/** Optional description of what the middleware does */
|
|
518
480
|
description?: string
|
|
519
481
|
/** Execution priority. Lower runs first (outermost). Defaults to 'medium'. */
|
|
520
482
|
priority?: MiddlewarePriority
|
|
521
483
|
}
|
|
522
484
|
|
|
523
|
-
/**
|
|
524
|
-
* A factory function that takes input and returns middleware
|
|
525
|
-
* Used when middleware needs configuration/input parameters
|
|
526
|
-
*/
|
|
527
485
|
export type CorePikkuMiddlewareFactory<
|
|
528
486
|
In = any,
|
|
529
487
|
SingletonServices extends CoreSingletonServices = CoreSingletonServices,
|
|
530
488
|
UserSession extends CoreUserSession = CoreUserSession,
|
|
531
489
|
> = (input: In) => CorePikkuMiddleware<SingletonServices, UserSession>
|
|
532
490
|
|
|
533
|
-
/**
|
|
534
|
-
* A group of middleware (combination of regular middleware and factories)
|
|
535
|
-
* Used with addMiddleware() and addHTTPMiddleware() to group related middleware together
|
|
536
|
-
*/
|
|
537
491
|
export type CorePikkuMiddlewareGroup<
|
|
538
492
|
SingletonServices extends CoreSingletonServices = CoreSingletonServices,
|
|
539
493
|
UserSession extends CoreUserSession = CoreUserSession,
|
|
@@ -542,31 +496,6 @@ export type CorePikkuMiddlewareGroup<
|
|
|
542
496
|
| CorePikkuMiddlewareFactory<any, SingletonServices, UserSession>
|
|
543
497
|
>
|
|
544
498
|
|
|
545
|
-
/**
|
|
546
|
-
* Factory function for creating middleware with tree-shaking support
|
|
547
|
-
* Supports both direct function and configuration object syntax
|
|
548
|
-
*
|
|
549
|
-
* @example
|
|
550
|
-
* ```typescript
|
|
551
|
-
* // Direct function syntax
|
|
552
|
-
* export const logMiddleware = pikkuMiddleware(
|
|
553
|
-
* async ({ logger }, next) => {
|
|
554
|
-
* logger.info('Request started')
|
|
555
|
-
* await next()
|
|
556
|
-
* }
|
|
557
|
-
* )
|
|
558
|
-
*
|
|
559
|
-
* // Configuration object syntax with metadata
|
|
560
|
-
* export const logMiddleware = pikkuMiddleware({
|
|
561
|
-
* name: 'Request Logger',
|
|
562
|
-
* description: 'Logs request information',
|
|
563
|
-
* func: async ({ logger }, next) => {
|
|
564
|
-
* logger.info('Request started')
|
|
565
|
-
* await next()
|
|
566
|
-
* }
|
|
567
|
-
* })
|
|
568
|
-
* ```
|
|
569
|
-
*/
|
|
570
499
|
export const pikkuMiddleware = <
|
|
571
500
|
SingletonServices extends CoreSingletonServices = CoreSingletonServices,
|
|
572
501
|
UserSession extends CoreUserSession = CoreUserSession,
|
|
@@ -586,23 +515,6 @@ export const pikkuMiddleware = <
|
|
|
586
515
|
return func
|
|
587
516
|
}
|
|
588
517
|
|
|
589
|
-
/**
|
|
590
|
-
* Factory function for creating middleware factories
|
|
591
|
-
* Use this when your middleware needs configuration/input parameters
|
|
592
|
-
*
|
|
593
|
-
* @example
|
|
594
|
-
* ```typescript
|
|
595
|
-
* export const logMiddleware = pikkuMiddlewareFactory<LogOptions>(({
|
|
596
|
-
* message,
|
|
597
|
-
* level = 'info'
|
|
598
|
-
* }) => {
|
|
599
|
-
* return pikkuMiddleware(async ({ logger }, next) => {
|
|
600
|
-
* logger[level](message)
|
|
601
|
-
* await next()
|
|
602
|
-
* })
|
|
603
|
-
* })
|
|
604
|
-
* ```
|
|
605
|
-
*/
|
|
606
518
|
export const pikkuMiddlewareFactory = <In = any>(
|
|
607
519
|
factory: CorePikkuMiddlewareFactory<In>
|
|
608
520
|
): CorePikkuMiddlewareFactory<In> => {
|
|
@@ -633,20 +545,22 @@ export const pikkuAIMiddleware = <
|
|
|
633
545
|
hooks: PikkuAIMiddlewareHooks<State, SingletonServices>
|
|
634
546
|
): PikkuAIMiddlewareHooks<State, SingletonServices> => hooks
|
|
635
547
|
|
|
636
|
-
/**
|
|
637
|
-
* Represents the core services used by Pikku, including singleton services.
|
|
638
|
-
*/
|
|
639
548
|
export type CoreServices<SingletonServices = CoreSingletonServices> =
|
|
640
549
|
SingletonServices
|
|
641
550
|
|
|
551
|
+
/** Strips `secrets` from a services type. */
|
|
552
|
+
export type SecretlessServices<Services> = Omit<Services, 'secrets'>
|
|
553
|
+
|
|
554
|
+
/** The constraint every function-, permission- and auth-facing type is bounded by. */
|
|
555
|
+
export type CoreSecretlessSingletonServices<
|
|
556
|
+
Config extends CoreConfig = CoreConfig,
|
|
557
|
+
> = SecretlessServices<CoreSingletonServices<Config>>
|
|
558
|
+
|
|
642
559
|
export type WireServices<
|
|
643
560
|
SingletonServices extends CoreSingletonServices = CoreSingletonServices,
|
|
644
561
|
Services = CoreServices<SingletonServices>,
|
|
645
562
|
> = Omit<Services, keyof SingletonServices | 'session'>
|
|
646
563
|
|
|
647
|
-
/**
|
|
648
|
-
* Defines a function type for creating singleton services from the given configuration.
|
|
649
|
-
*/
|
|
650
564
|
export type CreateSingletonServices<
|
|
651
565
|
Config extends CoreConfig,
|
|
652
566
|
SingletonServices extends CoreSingletonServices,
|
|
@@ -655,9 +569,6 @@ export type CreateSingletonServices<
|
|
|
655
569
|
existingServices?: Partial<SingletonServices>
|
|
656
570
|
) => Promise<SingletonServices>
|
|
657
571
|
|
|
658
|
-
/**
|
|
659
|
-
* Defines a function type for creating session-specific services.
|
|
660
|
-
*/
|
|
661
572
|
export type CreateWireServices<
|
|
662
573
|
SingletonServices extends CoreSingletonServices = CoreSingletonServices,
|
|
663
574
|
Services extends CoreServices<SingletonServices> =
|
|
@@ -668,15 +579,11 @@ export type CreateWireServices<
|
|
|
668
579
|
wire: PikkuRawWire
|
|
669
580
|
) => Promise<WireServices<Services, SingletonServices>>
|
|
670
581
|
|
|
671
|
-
/**
|
|
672
|
-
* Defines a function type for creating config.
|
|
673
|
-
*/
|
|
674
582
|
export type CreateConfig<
|
|
675
583
|
Config extends CoreConfig,
|
|
676
584
|
RemainingArgs extends any[] = unknown[],
|
|
677
585
|
> = (variables?: VariablesService, ...args: RemainingArgs) => Promise<Config>
|
|
678
586
|
|
|
679
|
-
/** Server lifecycle hooks for startup and shutdown phases. */
|
|
680
587
|
export type ServerLifecycle<
|
|
681
588
|
SingletonServices extends CoreSingletonServices = CoreSingletonServices,
|
|
682
589
|
> = {
|
|
@@ -686,9 +593,6 @@ export type ServerLifecycle<
|
|
|
686
593
|
afterStop?: (services: SingletonServices) => void | Promise<void>
|
|
687
594
|
}
|
|
688
595
|
|
|
689
|
-
/**
|
|
690
|
-
* Represents the documentation for a route, including summary, description, tags, and errors.
|
|
691
|
-
*/
|
|
692
596
|
export type CommonWireMeta = {
|
|
693
597
|
pikkuFuncId: string
|
|
694
598
|
packageName?: string
|
|
@@ -704,9 +608,8 @@ export type CommonWireMeta = {
|
|
|
704
608
|
}
|
|
705
609
|
|
|
706
610
|
/**
|
|
707
|
-
*
|
|
708
|
-
*
|
|
709
|
-
* console addon (reader), and the console UI (renderer).
|
|
611
|
+
* The shape of `.pikku/audit.json`. Shared by the CLI (writer), the console
|
|
612
|
+
* addon (reader) and the console UI (renderer).
|
|
710
613
|
*/
|
|
711
614
|
export type SecuritySeverity = 'critical' | 'high' | 'moderate' | 'low' | 'info'
|
|
712
615
|
export type SecurityUpdateLevel = 'major' | 'minor' | 'patch' | 'unknown'
|
|
@@ -752,16 +655,21 @@ export interface SecurityAuditReport {
|
|
|
752
655
|
summary: SecurityAuditSummary
|
|
753
656
|
}
|
|
754
657
|
|
|
755
|
-
/**
|
|
756
|
-
* Serialized error for storage
|
|
757
|
-
*/
|
|
758
658
|
export interface SerializedError {
|
|
759
659
|
message: string
|
|
760
660
|
stack?: string
|
|
761
661
|
code?: string
|
|
762
|
-
//
|
|
763
|
-
//
|
|
764
|
-
// can log the message alone instead of a stack trace. See isExpectedError.
|
|
662
|
+
// Set for a deliberate PikkuError; survives step-boundary rehydration so
|
|
663
|
+
// the workflow runner logs the message alone rather than a stack trace.
|
|
765
664
|
expected?: boolean
|
|
766
665
|
[key: string]: any
|
|
767
666
|
}
|
|
667
|
+
|
|
668
|
+
/**
|
|
669
|
+
* A generated schema's declaration site, used by the credential/secret/variable
|
|
670
|
+
* definition validators to point conflicting definitions at their source.
|
|
671
|
+
*/
|
|
672
|
+
export interface SchemaRefLike {
|
|
673
|
+
variableName: string
|
|
674
|
+
sourceFile: string
|
|
675
|
+
}
|