@pikku/core 0.12.107 → 0.12.111
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 +344 -0
- package/dist/analytics/analytics.d.ts +6 -0
- package/dist/analytics/analytics.js +58 -0
- package/dist/analytics/analytics.types.d.ts +156 -0
- package/dist/analytics/analytics.types.js +1 -0
- package/dist/analytics/anonymous-analytics-identity.d.ts +23 -0
- package/dist/analytics/anonymous-analytics-identity.js +27 -0
- package/dist/analytics/compose-analytics-identity.d.ts +14 -0
- package/dist/analytics/compose-analytics-identity.js +33 -0
- package/dist/analytics/cookie-analytics-identity.d.ts +24 -0
- package/dist/analytics/cookie-analytics-identity.js +37 -0
- package/dist/analytics/define-analytics-events.d.ts +22 -0
- package/dist/analytics/define-analytics-events.js +9 -0
- package/dist/analytics/fan-out-analytics.d.ts +15 -0
- package/dist/analytics/fan-out-analytics.js +36 -0
- package/dist/analytics/index.d.ts +13 -0
- package/dist/analytics/index.js +8 -0
- package/dist/analytics/logger-analytics-service.d.ts +14 -0
- package/dist/analytics/logger-analytics-service.js +23 -0
- package/dist/analytics/mint-cookie.d.ts +44 -0
- package/dist/analytics/mint-cookie.js +55 -0
- package/dist/errors/errors.d.ts +7 -0
- package/dist/errors/errors.js +17 -0
- package/dist/function/function-meta.types.d.ts +2 -0
- package/dist/function/function-runner.js +29 -0
- package/dist/function/functions.types.d.ts +22 -3
- package/dist/middleware/auth-apikey.d.ts +1 -1
- package/dist/pikku-state.d.ts +1 -1
- package/dist/scopes.d.ts +11 -0
- package/dist/scopes.js +17 -0
- package/dist/services/credential-wire-service.d.ts +1 -1
- package/dist/services/feature-flag-service.d.ts +100 -0
- package/dist/services/feature-flag-service.js +1 -0
- package/dist/services/index.d.ts +1 -0
- package/dist/services/meta-service.d.ts +16 -0
- package/dist/services/meta-service.js +19 -0
- package/dist/services/webhook-service.d.ts +7 -2
- package/dist/services/webhook-service.js +11 -6
- package/dist/testing/service-tests/agent-run-service-tests.d.ts +2 -2
- package/dist/testing/service-tests/agent-storage-service-tests.d.ts +1 -1
- package/dist/testing/service-tests/channel-store-tests.d.ts +1 -1
- package/dist/testing/service-tests/credential-service-tests.d.ts +1 -1
- package/dist/testing/service-tests/deployment-service-tests.d.ts +1 -1
- package/dist/testing/service-tests/event-hub-store-tests.d.ts +1 -1
- package/dist/testing/service-tests/secret-service-tests.d.ts +1 -1
- package/dist/testing/service-tests/session-store-tests.d.ts +1 -1
- package/dist/testing/service-tests/workflow-run-service-tests.d.ts +1 -1
- package/dist/testing/service-tests/workflow-service-tests.d.ts +1 -1
- package/dist/types/core.types.d.ts +23 -0
- package/dist/wirings/agent/agent-rpc.d.ts +1 -1
- package/dist/wirings/agent/agent-turn.d.ts +1 -1
- package/dist/wirings/agent-scorer/agent-scorer-live.d.ts +1 -1
- package/dist/wirings/channel/channel-common.d.ts +1 -1
- package/dist/wirings/channel/channel-rpc-validators.d.ts +2 -2
- package/dist/wirings/channel/channel-runner.d.ts +1 -1
- package/dist/wirings/channel/local/local-channel-runner.d.ts +1 -1
- package/dist/wirings/channel/serverless/serverless-channel-runner.d.ts +1 -1
- package/dist/wirings/cli/channel/cli-approval.d.ts +2 -2
- package/dist/wirings/flag/assert-feature-available.d.ts +15 -0
- package/dist/wirings/flag/assert-feature-available.js +23 -0
- package/dist/wirings/flag/cached-flag-source.d.ts +73 -0
- package/dist/wirings/flag/cached-flag-source.js +96 -0
- package/dist/wirings/flag/define-feature-flags.d.ts +33 -0
- package/dist/wirings/flag/define-feature-flags.js +32 -0
- package/dist/wirings/flag/flag.types.d.ts +97 -0
- package/dist/wirings/flag/flag.types.js +1 -0
- package/dist/wirings/flag/index.d.ts +7 -0
- package/dist/wirings/flag/index.js +5 -0
- package/dist/wirings/flag/resolve-flag.d.ts +52 -0
- package/dist/wirings/flag/resolve-flag.js +90 -0
- package/dist/wirings/flag/validate-flag-definitions.d.ts +26 -0
- package/dist/wirings/flag/validate-flag-definitions.js +103 -0
- package/dist/wirings/virtual-user/virtual-user-scaffold.d.ts +8 -8
- package/dist/wirings/virtual-user/virtual-user-schedule.d.ts +1 -1
- package/dist/wirings/workflow/workflow-queue-routing.d.ts +1 -1
- package/package.json +11 -5
- package/run-tests.sh +17 -9
- package/src/public-surface.json +26 -0
- package/src/agent-naming.test.ts +0 -68
- package/src/api-report.test.ts +0 -138
- package/src/app-alias-surface.test.ts +0 -179
- package/src/app-leaf-surface.test.ts +0 -222
- package/src/bootstrap-compat/root.ts +0 -20
- package/src/classification/column-form.test.ts +0 -97
- package/src/classification/column-form.ts +0 -55
- package/src/classification/data-classification.ts +0 -73
- package/src/classification/index.ts +0 -40
- package/src/classification/key-ids.ts +0 -2
- package/src/classification/secret-value.test.ts +0 -204
- package/src/classification/secret-value.ts +0 -106
- package/src/crypto-utils.test.ts +0 -668
- package/src/crypto-utils.ts +0 -460
- package/src/dev/hot-reload.test.ts +0 -587
- package/src/dev/hot-reload.ts +0 -225
- package/src/dev/module-runner.test.ts +0 -235
- package/src/dev/module-runner.ts +0 -138
- package/src/dev/reload-meta.test.ts +0 -183
- package/src/dev/reload-meta.ts +0 -144
- package/src/ecosystem-tier-removed.test.ts +0 -72
- package/src/env.ts +0 -1
- package/src/errors/error-handler.ts +0 -77
- package/src/errors/error.test.ts +0 -229
- package/src/errors/errors.ts +0 -393
- package/src/errors/index.ts +0 -11
- package/src/errors/serialized-error.ts +0 -12
- package/src/factory-functions.test.ts +0 -111
- package/src/function/abort-scope.test.ts +0 -97
- package/src/function/abort-scope.ts +0 -80
- package/src/function/function-meta.types.ts +0 -151
- package/src/function/function-runner.test.ts +0 -1619
- package/src/function/function-runner.ts +0 -499
- package/src/function/functions.types.ts +0 -319
- package/src/function/index.ts +0 -40
- package/src/function/list.types.test.ts +0 -100
- package/src/function/list.types.ts +0 -69
- package/src/function/pikku-request.test.ts +0 -35
- package/src/function/pikku-request.ts +0 -17
- package/src/gopass-secrets-removed.test.ts +0 -51
- package/src/handle-error.test.ts +0 -532
- package/src/handle-error.ts +0 -64
- package/src/middleware/auth-apikey.test.ts +0 -362
- package/src/middleware/auth-apikey.ts +0 -39
- package/src/middleware/auth-bearer.test.ts +0 -566
- package/src/middleware/auth-bearer.ts +0 -83
- package/src/middleware/auth-cookie.test.ts +0 -572
- package/src/middleware/auth-cookie.ts +0 -107
- package/src/middleware/cors.test.ts +0 -579
- package/src/middleware/cors.ts +0 -103
- package/src/middleware/index.ts +0 -30
- package/src/middleware/middleware-factories.ts +0 -76
- package/src/middleware/middleware.types.ts +0 -61
- package/src/middleware/remote-auth.test.ts +0 -547
- package/src/middleware/remote-auth.ts +0 -95
- package/src/middleware/remote-jobs-secret.ts +0 -35
- package/src/middleware/require-origin.test.ts +0 -115
- package/src/middleware/require-origin.ts +0 -79
- package/src/middleware/telemetry.ts +0 -83
- package/src/middleware-runner.test.ts +0 -578
- package/src/middleware-runner.ts +0 -232
- package/src/no-any-casts.test.ts +0 -57
- package/src/no-root-barrel.test.ts +0 -122
- package/src/permissions.test.ts +0 -256
- package/src/permissions.ts +0 -217
- package/src/pikku-state.test.ts +0 -198
- package/src/pikku-state.ts +0 -206
- package/src/production-barrels-stay-lean.test.ts +0 -110
- package/src/public-surface.test.ts +0 -133
- package/src/remote.test.ts +0 -173
- package/src/remote.ts +0 -56
- package/src/removed-legacy-exports.test.ts +0 -66
- package/src/run-tests-script.test.ts +0 -67
- package/src/schema.test.ts +0 -430
- package/src/schema.ts +0 -204
- package/src/scopes.test.ts +0 -203
- package/src/scopes.ts +0 -67
- package/src/services/agent-run-state-service.ts +0 -37
- package/src/services/agent-runner-service.ts +0 -238
- package/src/services/agent-storage-service.ts +0 -39
- package/src/services/ai-embedding-service.ts +0 -9
- package/src/services/audit-service.test.ts +0 -44
- package/src/services/audit-service.ts +0 -280
- package/src/services/content-service.ts +0 -65
- package/src/services/credential-service.ts +0 -20
- package/src/services/credential-wire-service.test.ts +0 -235
- package/src/services/credential-wire-service.ts +0 -120
- package/src/services/deployment-service.ts +0 -32
- package/src/services/email-service.test.ts +0 -100
- package/src/services/email-service.ts +0 -60
- package/src/services/email-template.test.ts +0 -311
- package/src/services/email-template.ts +0 -254
- package/src/services/file-scenario-run-store.test.ts +0 -349
- package/src/services/file-scenario-run-store.ts +0 -282
- package/src/services/gateway-service.ts +0 -5
- package/src/services/http-personas-converse.test.ts +0 -274
- package/src/services/http-personas.test.ts +0 -379
- package/src/services/http-personas.ts +0 -508
- package/src/services/in-memory-agent-run-state-service.ts +0 -87
- package/src/services/in-memory-queue-service.test.ts +0 -162
- package/src/services/in-memory-queue-service.ts +0 -78
- package/src/services/in-memory-session-store.test.ts +0 -58
- package/src/services/in-memory-session-store.ts +0 -20
- package/src/services/in-memory-trigger-service.ts +0 -47
- package/src/services/in-memory-workflow-service.test.ts +0 -430
- package/src/services/in-memory-workflow-service.ts +0 -595
- package/src/services/index.ts +0 -192
- package/src/services/istanbul-coverage-service.test.ts +0 -66
- package/src/services/istanbul-coverage-service.ts +0 -59
- package/src/services/jwt-service.ts +0 -15
- package/src/services/local-content-request-handler.test.ts +0 -240
- package/src/services/local-content-request-handler.ts +0 -295
- package/src/services/local-content.test.ts +0 -186
- package/src/services/local-content.ts +0 -242
- package/src/services/local-credential-service.ts +0 -63
- package/src/services/local-email-service.test.ts +0 -182
- package/src/services/local-email-service.ts +0 -43
- package/src/services/local-gateway-service.ts +0 -51
- package/src/services/local-secrets.test.ts +0 -95
- package/src/services/local-secrets.ts +0 -71
- package/src/services/local-variables.test.ts +0 -61
- package/src/services/local-variables.ts +0 -45
- package/src/services/logger-console.test.ts +0 -117
- package/src/services/logger-console.ts +0 -174
- package/src/services/logger.ts +0 -48
- package/src/services/meta-service.test.ts +0 -75
- package/src/services/meta-service.ts +0 -767
- package/src/services/persona-actor-secret.test.ts +0 -68
- package/src/services/persona-actor-secret.ts +0 -70
- package/src/services/persona-sign-in.test.ts +0 -219
- package/src/services/persona-sign-in.ts +0 -238
- package/src/services/personas-service.ts +0 -191
- package/src/services/pikku-user-id.test.ts +0 -62
- package/src/services/pikku-user-id.ts +0 -13
- package/src/services/queue-webhook-service.test.ts +0 -409
- package/src/services/queue-webhook-service.ts +0 -150
- package/src/services/remote-jobs.test.ts +0 -106
- package/src/services/remote-jobs.ts +0 -92
- package/src/services/scheduler-service.ts +0 -37
- package/src/services/schema-service.ts +0 -10
- package/src/services/scope-service.ts +0 -91
- package/src/services/scoped-credential-service.test.ts +0 -86
- package/src/services/scoped-credential-service.ts +0 -63
- package/src/services/scoped-secret-service.test.ts +0 -93
- package/src/services/scoped-secret-service.ts +0 -40
- package/src/services/secret-host-binding.test.ts +0 -138
- package/src/services/secret-host-binding.ts +0 -51
- package/src/services/secret-service.ts +0 -25
- package/src/services/secretless.test.ts +0 -54
- package/src/services/secretless.ts +0 -29
- package/src/services/session-store.ts +0 -9
- package/src/services/stub-tracker.test.ts +0 -104
- package/src/services/stub-tracker.ts +0 -175
- package/src/services/system-role-guard.test.ts +0 -96
- package/src/services/system-role-guard.ts +0 -71
- package/src/services/temporary-file-service.ts +0 -76
- package/src/services/trigger-service.ts +0 -5
- package/src/services/typed-credential-service.ts +0 -83
- package/src/services/typed-secret-service.test.ts +0 -204
- package/src/services/typed-secret-service.ts +0 -132
- package/src/services/typed-variables-service.test.ts +0 -166
- package/src/services/typed-variables-service.ts +0 -166
- package/src/services/user-session-service.test.ts +0 -147
- package/src/services/user-session-service.ts +0 -85
- package/src/services/v8-coverage-service.test.ts +0 -69
- package/src/services/v8-coverage-service.ts +0 -163
- package/src/services/variables-service.ts +0 -13
- package/src/services/webhook-service.ts +0 -147
- package/src/services/workflow-service.ts +0 -120
- package/src/side-effects-are-declared.test.ts +0 -84
- package/src/source-files-stay-composable.test.ts +0 -41
- package/src/template-alias-surface.test.ts +0 -240
- package/src/test-utils.ts +0 -38
- package/src/testing/index.ts +0 -3
- package/src/testing/service-tests/agent-run-service-tests.ts +0 -98
- package/src/testing/service-tests/agent-storage-service-tests.ts +0 -379
- package/src/testing/service-tests/channel-store-tests.ts +0 -98
- package/src/testing/service-tests/credential-service-tests.ts +0 -143
- package/src/testing/service-tests/deployment-service-tests.ts +0 -33
- package/src/testing/service-tests/event-hub-store-tests.ts +0 -48
- package/src/testing/service-tests/secret-service-tests.ts +0 -105
- package/src/testing/service-tests/session-store-tests.ts +0 -62
- package/src/testing/service-tests/workflow-run-service-tests.ts +0 -59
- package/src/testing/service-tests/workflow-service-tests.ts +0 -308
- package/src/testing/service-tests.ts +0 -95
- package/src/time-utils.test.ts +0 -56
- package/src/time-utils.ts +0 -89
- package/src/types/core.types.ts +0 -446
- package/src/types/index.ts +0 -25
- package/src/types/state.types.ts +0 -226
- package/src/types/typed-credentials.test.ts +0 -72
- package/src/utils/hash.test.ts +0 -68
- package/src/utils/hash.ts +0 -26
- package/src/utils/hmac.ts +0 -21
- package/src/utils/node-host-resolver.ts +0 -20
- package/src/utils/safe-fetch.test.ts +0 -515
- package/src/utils/safe-fetch.ts +0 -347
- package/src/utils.test.ts +0 -359
- package/src/utils.ts +0 -165
- package/src/version.test.ts +0 -80
- package/src/version.ts +0 -25
- package/src/wirings/actor-flow/actor-flow.types.ts +0 -40
- package/src/wirings/actor-flow/index.ts +0 -10
- package/src/wirings/actor-flow/run-conversation.test.ts +0 -187
- package/src/wirings/actor-flow/run-conversation.ts +0 -280
- package/src/wirings/addon/addon-auth-tags.test.ts +0 -219
- package/src/wirings/addon/addon-runner.ts +0 -236
- package/src/wirings/addon/addon-scopes.test.ts +0 -225
- package/src/wirings/addon/addon-secrets.test.ts +0 -391
- package/src/wirings/addon/index.ts +0 -12
- package/src/wirings/addon/remote-addon-auth.ts +0 -65
- package/src/wirings/addon/wire-addon.test.ts +0 -102
- package/src/wirings/addon/wire-addon.ts +0 -202
- package/src/wirings/addon/wire-remote-addon.ts +0 -41
- package/src/wirings/agent/agent-agui.test.ts +0 -1213
- package/src/wirings/agent/agent-agui.ts +0 -405
- package/src/wirings/agent/agent-authorization.test.ts +0 -208
- package/src/wirings/agent/agent-finalize.test.ts +0 -187
- package/src/wirings/agent/agent-finalize.ts +0 -197
- package/src/wirings/agent/agent-helpers.test.ts +0 -215
- package/src/wirings/agent/agent-helpers.ts +0 -96
- package/src/wirings/agent/agent-interrupt.test.ts +0 -833
- package/src/wirings/agent/agent-interrupt.ts +0 -400
- package/src/wirings/agent/agent-memory.test.ts +0 -397
- package/src/wirings/agent/agent-memory.ts +0 -496
- package/src/wirings/agent/agent-middleware.types.test.ts +0 -41
- package/src/wirings/agent/agent-model-config.test.ts +0 -103
- package/src/wirings/agent/agent-model-config.ts +0 -59
- package/src/wirings/agent/agent-prepare.test.ts +0 -977
- package/src/wirings/agent/agent-prepare.ts +0 -1083
- package/src/wirings/agent/agent-registry.test.ts +0 -455
- package/src/wirings/agent/agent-registry.ts +0 -99
- package/src/wirings/agent/agent-resume-authorization.test.ts +0 -206
- package/src/wirings/agent/agent-rpc.ts +0 -116
- package/src/wirings/agent/agent-runner.test.ts +0 -1229
- package/src/wirings/agent/agent-runner.ts +0 -858
- package/src/wirings/agent/agent-stream-delegate.test.ts +0 -381
- package/src/wirings/agent/agent-stream-output-hooks.test.ts +0 -353
- package/src/wirings/agent/agent-stream.test.ts +0 -1800
- package/src/wirings/agent/agent-stream.ts +0 -1639
- package/src/wirings/agent/agent-thread-ownership.test.ts +0 -297
- package/src/wirings/agent/agent-turn.test.ts +0 -65
- package/src/wirings/agent/agent-turn.ts +0 -122
- package/src/wirings/agent/agent-utils.ts +0 -20
- package/src/wirings/agent/agent.types.ts +0 -676
- package/src/wirings/agent/index.ts +0 -58
- package/src/wirings/agent/voice-input.test.ts +0 -220
- package/src/wirings/agent/voice-input.ts +0 -180
- package/src/wirings/agent/voice-output.test.ts +0 -510
- package/src/wirings/agent/voice-output.ts +0 -311
- package/src/wirings/agent-scorer/agent-scorer-grade.test.ts +0 -106
- package/src/wirings/agent-scorer/agent-scorer-grade.ts +0 -55
- package/src/wirings/agent-scorer/agent-scorer-judge.test.ts +0 -285
- package/src/wirings/agent-scorer/agent-scorer-judge.ts +0 -180
- package/src/wirings/agent-scorer/agent-scorer-live.test.ts +0 -174
- package/src/wirings/agent-scorer/agent-scorer-live.ts +0 -56
- package/src/wirings/agent-scorer/agent-scorer-registry.ts +0 -66
- package/src/wirings/agent-scorer/agent-scorer-sampling.test.ts +0 -34
- package/src/wirings/agent-scorer/agent-scorer-sampling.ts +0 -36
- package/src/wirings/agent-scorer/agent-scorer-snapshots.test.ts +0 -49
- package/src/wirings/agent-scorer/agent-scorer-snapshots.ts +0 -46
- package/src/wirings/agent-scorer/agent-scorer-worker.test.ts +0 -122
- package/src/wirings/agent-scorer/agent-scorer-worker.ts +0 -71
- package/src/wirings/agent-scorer/agent-scorer.ts +0 -102
- package/src/wirings/agent-scorer/agent-scorer.types.ts +0 -128
- package/src/wirings/agent-scorer/index.ts +0 -23
- package/src/wirings/channel/channel-common.ts +0 -102
- package/src/wirings/channel/channel-handler-shapes.test.ts +0 -72
- package/src/wirings/channel/channel-handler.test.ts +0 -322
- package/src/wirings/channel/channel-handler.ts +0 -259
- package/src/wirings/channel/channel-host-rpc.test.ts +0 -150
- package/src/wirings/channel/channel-host-rpc.ts +0 -69
- package/src/wirings/channel/channel-middleware-runner.test.ts +0 -188
- package/src/wirings/channel/channel-middleware-runner.ts +0 -126
- package/src/wirings/channel/channel-rpc-registry.ts +0 -116
- package/src/wirings/channel/channel-rpc-responder.ts +0 -117
- package/src/wirings/channel/channel-rpc-service.ts +0 -132
- package/src/wirings/channel/channel-rpc-validators.ts +0 -65
- package/src/wirings/channel/channel-rpc.test.ts +0 -841
- package/src/wirings/channel/channel-rpc.ts +0 -5
- package/src/wirings/channel/channel-rpc.types.ts +0 -160
- package/src/wirings/channel/channel-runner.ts +0 -164
- package/src/wirings/channel/channel-store.ts +0 -35
- package/src/wirings/channel/channel.types.ts +0 -193
- package/src/wirings/channel/define-channel-routes.ts +0 -5
- package/src/wirings/channel/eventhub-service.ts +0 -16
- package/src/wirings/channel/eventhub-store.ts +0 -13
- package/src/wirings/channel/index.ts +0 -40
- package/src/wirings/channel/local/index.ts +0 -3
- package/src/wirings/channel/local/local-channel-handler.ts +0 -98
- package/src/wirings/channel/local/local-channel-runner.test.ts +0 -339
- package/src/wirings/channel/local/local-channel-runner.ts +0 -271
- package/src/wirings/channel/local/local-eventhub-service.test.ts +0 -77
- package/src/wirings/channel/local/local-eventhub-service.ts +0 -69
- package/src/wirings/channel/log-channels.ts +0 -16
- package/src/wirings/channel/pikku-abstract-channel-handler.test.ts +0 -135
- package/src/wirings/channel/pikku-abstract-channel-handler.ts +0 -60
- package/src/wirings/channel/serverless/index.ts +0 -6
- package/src/wirings/channel/serverless/serverless-channel-runner.ts +0 -328
- package/src/wirings/cli/channel/cli-approval.test.ts +0 -177
- package/src/wirings/cli/channel/cli-approval.ts +0 -135
- package/src/wirings/cli/channel/cli-channel-runner.ts +0 -118
- package/src/wirings/cli/channel/cli-raw-channel-runner.test.ts +0 -192
- package/src/wirings/cli/channel/cli-raw-channel-runner.ts +0 -148
- package/src/wirings/cli/channel/cli-raw-client-runner.test.ts +0 -480
- package/src/wirings/cli/channel/cli-raw-client-runner.ts +0 -188
- package/src/wirings/cli/channel/index.ts +0 -6
- package/src/wirings/cli/cli-runner.test.ts +0 -969
- package/src/wirings/cli/cli-runner.ts +0 -538
- package/src/wirings/cli/cli.types.ts +0 -388
- package/src/wirings/cli/command-parser.test.ts +0 -1120
- package/src/wirings/cli/command-parser.ts +0 -713
- package/src/wirings/cli/define-cli-commands.ts +0 -13
- package/src/wirings/cli/format-cli-error.test.ts +0 -91
- package/src/wirings/cli/format-cli-error.ts +0 -96
- package/src/wirings/cli/index.ts +0 -19
- package/src/wirings/credential/credential.types.ts +0 -37
- package/src/wirings/credential/define-credential.ts +0 -49
- package/src/wirings/credential/index.ts +0 -7
- package/src/wirings/credential/validate-credential-definitions.ts +0 -63
- package/src/wirings/gateway/gateway-authorization.test.ts +0 -575
- package/src/wirings/gateway/gateway-channel-meta.test.ts +0 -44
- package/src/wirings/gateway/gateway-runner.test.ts +0 -581
- package/src/wirings/gateway/gateway-runner.ts +0 -411
- package/src/wirings/gateway/gateway.types.ts +0 -137
- package/src/wirings/gateway/index.ts +0 -15
- package/src/wirings/http/http-routes.test.ts +0 -318
- package/src/wirings/http/http-routes.ts +0 -111
- package/src/wirings/http/http-runner-addon-ref.test.ts +0 -238
- package/src/wirings/http/http-runner.test.ts +0 -503
- package/src/wirings/http/http-runner.ts +0 -462
- package/src/wirings/http/http.types.ts +0 -307
- package/src/wirings/http/index.ts +0 -27
- package/src/wirings/http/log-http-routes.ts +0 -18
- package/src/wirings/http/pikku-fetch-http-request.test.ts +0 -318
- package/src/wirings/http/pikku-fetch-http-request.ts +0 -260
- package/src/wirings/http/pikku-fetch-http-response.test.ts +0 -123
- package/src/wirings/http/pikku-fetch-http-response.ts +0 -149
- package/src/wirings/http/routers/http-router.ts +0 -13
- package/src/wirings/http/routers/path-to-regex.test.ts +0 -306
- package/src/wirings/http/routers/path-to-regex.ts +0 -115
- package/src/wirings/http/web-request.test.ts +0 -382
- package/src/wirings/http/web-request.ts +0 -162
- package/src/wirings/mcp/index.ts +0 -26
- package/src/wirings/mcp/mcp-endpoint-registry.test.ts +0 -388
- package/src/wirings/mcp/mcp-endpoint-registry.ts +0 -159
- package/src/wirings/mcp/mcp-runner.test.ts +0 -588
- package/src/wirings/mcp/mcp-runner.ts +0 -330
- package/src/wirings/mcp/mcp.types.ts +0 -199
- package/src/wirings/node/index.ts +0 -2
- package/src/wirings/node/node.types.ts +0 -23
- package/src/wirings/oauth2/index.ts +0 -1
- package/src/wirings/oauth2/oauth2.types.ts +0 -12
- package/src/wirings/persona/define-personas.ts +0 -33
- package/src/wirings/persona/index.ts +0 -75
- package/src/wirings/persona/persona-app-scopes.test.ts +0 -47
- package/src/wirings/persona/persona-app-scopes.ts +0 -74
- package/src/wirings/persona/persona-email.ts +0 -87
- package/src/wirings/persona/persona-environments.test.ts +0 -194
- package/src/wirings/persona/persona-environments.ts +0 -138
- package/src/wirings/persona/persona-mailbox.ts +0 -156
- package/src/wirings/persona/persona.test.ts +0 -230
- package/src/wirings/persona/persona.types.ts +0 -156
- package/src/wirings/persona/validate-personas.ts +0 -137
- package/src/wirings/queue/index.ts +0 -29
- package/src/wirings/queue/queue-identity.test.ts +0 -454
- package/src/wirings/queue/queue-identity.ts +0 -176
- package/src/wirings/queue/queue-runner.test.ts +0 -705
- package/src/wirings/queue/queue-runner.ts +0 -181
- package/src/wirings/queue/queue.types.ts +0 -161
- package/src/wirings/queue/register-queue-helper.ts +0 -46
- package/src/wirings/queue/signed-queue-service.ts +0 -60
- package/src/wirings/queue/validate-worker-config.test.ts +0 -108
- package/src/wirings/queue/validate-worker-config.ts +0 -90
- package/src/wirings/role/define-system-role.ts +0 -33
- package/src/wirings/role/index.ts +0 -13
- package/src/wirings/role/role.test.ts +0 -104
- package/src/wirings/role/role.types.ts +0 -47
- package/src/wirings/role/validate-role-definitions.ts +0 -93
- package/src/wirings/rpc/index.ts +0 -8
- package/src/wirings/rpc/rpc-runner.test.ts +0 -1130
- package/src/wirings/rpc/rpc-runner.ts +0 -569
- package/src/wirings/rpc/rpc-types.ts +0 -87
- package/src/wirings/scheduler/index.ts +0 -11
- package/src/wirings/scheduler/log-schedulers.ts +0 -16
- package/src/wirings/scheduler/scheduler-runner.test.ts +0 -835
- package/src/wirings/scheduler/scheduler-runner.ts +0 -138
- package/src/wirings/scheduler/scheduler.types.ts +0 -42
- package/src/wirings/scope/define-scope.ts +0 -33
- package/src/wirings/scope/index.ts +0 -15
- package/src/wirings/scope/scope.test.ts +0 -159
- package/src/wirings/scope/scope.types.ts +0 -42
- package/src/wirings/scope/validate-scope-definitions.ts +0 -107
- package/src/wirings/secret/index.ts +0 -9
- package/src/wirings/secret/secret.types.ts +0 -70
- package/src/wirings/secret/validate-secret-definitions.test.ts +0 -232
- package/src/wirings/secret/validate-secret-definitions.ts +0 -88
- package/src/wirings/trigger/index.ts +0 -9
- package/src/wirings/trigger/pikku-trigger-service.ts +0 -107
- package/src/wirings/trigger/trigger-runner.test.ts +0 -78
- package/src/wirings/trigger/trigger-runner.ts +0 -113
- package/src/wirings/trigger/trigger.types.ts +0 -100
- package/src/wirings/variable/index.ts +0 -8
- package/src/wirings/variable/validate-variable-definitions.test.ts +0 -115
- package/src/wirings/variable/validate-variable-definitions.ts +0 -71
- package/src/wirings/variable/variable.types.ts +0 -40
- package/src/wirings/virtual-user/index.ts +0 -107
- package/src/wirings/virtual-user/prepare-virtual-user-run.test.ts +0 -115
- package/src/wirings/virtual-user/prepare-virtual-user-run.ts +0 -95
- package/src/wirings/virtual-user/run-virtual-user.test.ts +0 -774
- package/src/wirings/virtual-user/run-virtual-user.ts +0 -684
- package/src/wirings/virtual-user/virtual-user-agents.test.ts +0 -72
- package/src/wirings/virtual-user/virtual-user-agents.ts +0 -62
- package/src/wirings/virtual-user/virtual-user-catalogue.test.ts +0 -215
- package/src/wirings/virtual-user/virtual-user-catalogue.ts +0 -184
- package/src/wirings/virtual-user/virtual-user-derive.test.ts +0 -426
- package/src/wirings/virtual-user/virtual-user-derive.ts +0 -161
- package/src/wirings/virtual-user/virtual-user-dispositions.test.ts +0 -68
- package/src/wirings/virtual-user/virtual-user-dispositions.ts +0 -210
- package/src/wirings/virtual-user/virtual-user-intents.test.ts +0 -218
- package/src/wirings/virtual-user/virtual-user-intents.ts +0 -185
- package/src/wirings/virtual-user/virtual-user-rng.test.ts +0 -72
- package/src/wirings/virtual-user/virtual-user-rng.ts +0 -50
- package/src/wirings/virtual-user/virtual-user-run-store.ts +0 -131
- package/src/wirings/virtual-user/virtual-user-scaffold.test.ts +0 -854
- package/src/wirings/virtual-user/virtual-user-scaffold.ts +0 -664
- package/src/wirings/virtual-user/virtual-user-schedule-store.ts +0 -93
- package/src/wirings/virtual-user/virtual-user-schedule.test.ts +0 -280
- package/src/wirings/virtual-user/virtual-user-schedule.ts +0 -156
- package/src/wirings/virtual-user/virtual-user-target.ts +0 -47
- package/src/wirings/virtual-user/virtual-user.types.ts +0 -215
- package/src/wirings/workflow/dsl/workflow-dsl.types.ts +0 -709
- package/src/wirings/workflow/dsl/workflow-runner.ts +0 -25
- package/src/wirings/workflow/feature.test.ts +0 -131
- package/src/wirings/workflow/feature.ts +0 -59
- package/src/wirings/workflow/graph/graph-foreach-queued.test.ts +0 -569
- package/src/wirings/workflow/graph/graph-foreach.test.ts +0 -626
- package/src/wirings/workflow/graph/graph-node.ts +0 -115
- package/src/wirings/workflow/graph/graph-runner.test.ts +0 -1049
- package/src/wirings/workflow/graph/graph-runner.ts +0 -1376
- package/src/wirings/workflow/graph/graph-validation.test.ts +0 -27
- package/src/wirings/workflow/graph/graph-validation.ts +0 -41
- package/src/wirings/workflow/graph/template.test.ts +0 -49
- package/src/wirings/workflow/graph/template.ts +0 -42
- package/src/wirings/workflow/graph/wire-workflow-graph.ts +0 -39
- package/src/wirings/workflow/graph/workflow-graph.types.ts +0 -75
- package/src/wirings/workflow/index.ts +0 -107
- package/src/wirings/workflow/pikku-scenario-service.ts +0 -1013
- package/src/wirings/workflow/pikku-workflow-service.test.ts +0 -963
- package/src/wirings/workflow/pikku-workflow-service.ts +0 -1993
- package/src/wirings/workflow/run-timeline.test.ts +0 -199
- package/src/wirings/workflow/run-timeline.ts +0 -185
- package/src/wirings/workflow/scenario-cookie-jar.test.ts +0 -107
- package/src/wirings/workflow/scenario-cookie-jar.ts +0 -57
- package/src/wirings/workflow/scenario-expectations.test.ts +0 -238
- package/src/wirings/workflow/scenario-hooks.test.ts +0 -259
- package/src/wirings/workflow/scenario-poll.test.ts +0 -64
- package/src/wirings/workflow/scenario-poll.ts +0 -27
- package/src/wirings/workflow/scenario-prose.test.ts +0 -275
- package/src/wirings/workflow/scenario-prose.ts +0 -86
- package/src/wirings/workflow/scenario-run.types.ts +0 -193
- package/src/wirings/workflow/scenario-service.test.ts +0 -147
- package/src/wirings/workflow/scenario-step-guards.ts +0 -23
- package/src/wirings/workflow/scenario-step.test.ts +0 -800
- package/src/wirings/workflow/scenario-step.types.ts +0 -262
- package/src/wirings/workflow/scenario-surface.test.ts +0 -146
- package/src/wirings/workflow/scenario-surface.ts +0 -71
- package/src/wirings/workflow/scenario.types.ts +0 -63
- package/src/wirings/workflow/workflow-approval-audit.ts +0 -47
- package/src/wirings/workflow/workflow-approval-policy.test.ts +0 -594
- package/src/wirings/workflow/workflow-approval-policy.ts +0 -68
- package/src/wirings/workflow/workflow-approval.ts +0 -290
- package/src/wirings/workflow/workflow-child-run-session.test.ts +0 -168
- package/src/wirings/workflow/workflow-constants.ts +0 -66
- package/src/wirings/workflow/workflow-dispatch-durability.test.ts +0 -116
- package/src/wirings/workflow/workflow-dispatch-payload.test.ts +0 -55
- package/src/wirings/workflow/workflow-dispatch-relay.test.ts +0 -128
- package/src/wirings/workflow/workflow-errors.ts +0 -132
- package/src/wirings/workflow/workflow-inline-authority.test.ts +0 -175
- package/src/wirings/workflow/workflow-invocation-id.test.ts +0 -51
- package/src/wirings/workflow/workflow-invocation-id.ts +0 -28
- package/src/wirings/workflow/workflow-meta-resolver.ts +0 -45
- package/src/wirings/workflow/workflow-mirror.test.ts +0 -171
- package/src/wirings/workflow/workflow-missing-meta.test.ts +0 -92
- package/src/wirings/workflow/workflow-on-error.test.ts +0 -145
- package/src/wirings/workflow/workflow-queue-routing.ts +0 -129
- package/src/wirings/workflow/workflow-queue-wiring.ts +0 -149
- package/src/wirings/workflow/workflow-queue-workers.test.ts +0 -131
- package/src/wirings/workflow/workflow-queue-workers.ts +0 -66
- package/src/wirings/workflow/workflow-recovery.ts +0 -192
- package/src/wirings/workflow/workflow-replay-snapshot.test.ts +0 -140
- package/src/wirings/workflow/workflow-retry-policy.test.ts +0 -113
- package/src/wirings/workflow/workflow-run-authority.test.ts +0 -212
- package/src/wirings/workflow/workflow-run-context.test.ts +0 -172
- package/src/wirings/workflow/workflow-run-engine.types.ts +0 -92
- package/src/wirings/workflow/workflow-run-ownership.ts +0 -37
- package/src/wirings/workflow/workflow-run-polling.test.ts +0 -127
- package/src/wirings/workflow/workflow-stalled-recovery.test.ts +0 -152
- package/src/wirings/workflow/workflow-status-stream.test.ts +0 -354
- package/src/wirings/workflow/workflow-status-stream.ts +0 -144
- package/src/wirings/workflow/workflow-step-claim.ts +0 -46
- package/src/wirings/workflow/workflow-step-ordinal.test.ts +0 -94
- package/src/wirings/workflow/workflow-step-session.test.ts +0 -87
- package/src/wirings/workflow/workflow-suspend.ts +0 -61
- package/src/wirings/workflow/workflow-terminal-run-guard.test.ts +0 -105
- package/src/wirings/workflow/workflow.types.ts +0 -268
- package/src/wirings-stay-decoupled.test.ts +0 -130
- package/tsconfig.json +0 -14
- package/tsconfig.tsbuildinfo +0 -1
- package/tsconfig.type-tests.json +0 -15
|
@@ -1,319 +0,0 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
CoreServices,
|
|
3
|
-
CoreSecretlessSingletonServices,
|
|
4
|
-
CoreUserSession,
|
|
5
|
-
PikkuWire,
|
|
6
|
-
SecretlessServices,
|
|
7
|
-
} from '../types/core.types.js'
|
|
8
|
-
import type { CorePikkuMiddleware } from '../middleware/middleware.types.js'
|
|
9
|
-
import type { PickRequired } from '../utils.js'
|
|
10
|
-
import type { PikkuRPC } from '../wirings/rpc/rpc-types.js'
|
|
11
|
-
import type { StandardSchemaV1 } from '@standard-schema/spec'
|
|
12
|
-
import type { PikkuError } from '../errors/error-handler.js'
|
|
13
|
-
import type { CoreNodeConfig } from '../wirings/node/node.types.js'
|
|
14
|
-
import type { ScenarioSurface } from '../wirings/workflow/scenario-step.types.js'
|
|
15
|
-
import type { Safe } from '../classification/secret-value.js'
|
|
16
|
-
|
|
17
|
-
export type CorePikkuFunction<
|
|
18
|
-
In,
|
|
19
|
-
Out,
|
|
20
|
-
Services extends CoreSecretlessSingletonServices =
|
|
21
|
-
SecretlessServices<CoreServices>,
|
|
22
|
-
Session extends CoreUserSession = CoreUserSession,
|
|
23
|
-
Wire extends PikkuWire<In, Out, true, Session, PikkuRPC, null, string> =
|
|
24
|
-
PikkuWire<In, Out, true, Session>,
|
|
25
|
-
> = (
|
|
26
|
-
services: Services,
|
|
27
|
-
data: In,
|
|
28
|
-
wire: Wire
|
|
29
|
-
) => Wire['channel'] extends null
|
|
30
|
-
? Promise<Safe<Out>>
|
|
31
|
-
: Promise<Safe<Out>> | Promise<void>
|
|
32
|
-
|
|
33
|
-
export type CorePikkuFunctionSessionless<
|
|
34
|
-
In,
|
|
35
|
-
Out,
|
|
36
|
-
Services extends CoreSecretlessSingletonServices =
|
|
37
|
-
SecretlessServices<CoreServices>,
|
|
38
|
-
Session extends CoreUserSession = CoreUserSession,
|
|
39
|
-
Wire extends PikkuWire<In, Out, false, Session, PikkuRPC, null, string> =
|
|
40
|
-
PikkuWire<In, Out, false, Session>,
|
|
41
|
-
> = (
|
|
42
|
-
services: Services,
|
|
43
|
-
data: In,
|
|
44
|
-
wire: Wire
|
|
45
|
-
) => Wire['channel'] extends null
|
|
46
|
-
? Promise<Safe<Out>>
|
|
47
|
-
: Promise<Safe<Out>> | Promise<void>
|
|
48
|
-
|
|
49
|
-
export type CorePikkuPermission<
|
|
50
|
-
In = any,
|
|
51
|
-
Services extends CoreSecretlessSingletonServices =
|
|
52
|
-
SecretlessServices<CoreServices>,
|
|
53
|
-
Wire extends PikkuWire<In, never, false, any, PikkuRPC, never, never> =
|
|
54
|
-
PikkuWire<In, never, false, any, PikkuRPC, never, never>,
|
|
55
|
-
> = (services: Services, data: In, wire: Wire) => Promise<boolean>
|
|
56
|
-
|
|
57
|
-
export type CorePikkuPermissionConfig<
|
|
58
|
-
In = any,
|
|
59
|
-
Services extends CoreSecretlessSingletonServices =
|
|
60
|
-
SecretlessServices<CoreServices>,
|
|
61
|
-
Wire extends PikkuWire<In, never, false, any, PikkuRPC, never, never> =
|
|
62
|
-
PikkuWire<In, never, false, any, PikkuRPC, never, never>,
|
|
63
|
-
> = {
|
|
64
|
-
func: CorePikkuPermission<In, Services, Wire>
|
|
65
|
-
name?: string
|
|
66
|
-
description?: string
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
export const pikkuPermission = <
|
|
70
|
-
In = any,
|
|
71
|
-
Services extends CoreSecretlessSingletonServices =
|
|
72
|
-
SecretlessServices<CoreServices>,
|
|
73
|
-
Wire extends PickRequired<
|
|
74
|
-
PikkuWire<In, never, false, any, PikkuRPC, never, never>,
|
|
75
|
-
'session'
|
|
76
|
-
> = PickRequired<
|
|
77
|
-
PikkuWire<In, never, false, any, PikkuRPC, never, never>,
|
|
78
|
-
'session'
|
|
79
|
-
>,
|
|
80
|
-
>(
|
|
81
|
-
permission:
|
|
82
|
-
| CorePikkuPermission<In, Services, Wire>
|
|
83
|
-
| CorePikkuPermissionConfig<In, Services, Wire>
|
|
84
|
-
): CorePikkuPermission<In, Services, Wire> => {
|
|
85
|
-
return typeof permission === 'function' ? permission : permission.func
|
|
86
|
-
}
|
|
87
|
-
|
|
88
|
-
export type CorePikkuPermissionFactory<
|
|
89
|
-
In = any,
|
|
90
|
-
Services extends CoreSecretlessSingletonServices =
|
|
91
|
-
SecretlessServices<CoreServices>,
|
|
92
|
-
Wire extends PikkuWire<In, never, false, any, PikkuRPC, never, never> =
|
|
93
|
-
PikkuWire<In, never, false, any, PikkuRPC, never, never>,
|
|
94
|
-
> = (input: In) => CorePikkuPermission<any, Services, Wire>
|
|
95
|
-
|
|
96
|
-
export const pikkuPermissionFactory = <In = any>(
|
|
97
|
-
factory: CorePikkuPermissionFactory<In>
|
|
98
|
-
): CorePikkuPermissionFactory<In> => {
|
|
99
|
-
return factory
|
|
100
|
-
}
|
|
101
|
-
|
|
102
|
-
/**
|
|
103
|
-
* Renders a human-readable approval prompt for an AI agent, in place of the
|
|
104
|
-
* raw tool arguments.
|
|
105
|
-
*/
|
|
106
|
-
export type CorePikkuApprovalDescription<
|
|
107
|
-
In = any,
|
|
108
|
-
Services extends CoreSecretlessSingletonServices =
|
|
109
|
-
CoreSecretlessSingletonServices,
|
|
110
|
-
> = (services: Services, data: In) => Promise<string>
|
|
111
|
-
|
|
112
|
-
export const pikkuApprovalDescription = <
|
|
113
|
-
In = any,
|
|
114
|
-
Services extends CoreSecretlessSingletonServices =
|
|
115
|
-
CoreSecretlessSingletonServices,
|
|
116
|
-
>(
|
|
117
|
-
fn: CorePikkuApprovalDescription<In, Services>
|
|
118
|
-
): CorePikkuApprovalDescription<In, Services> => {
|
|
119
|
-
return fn
|
|
120
|
-
}
|
|
121
|
-
|
|
122
|
-
export type CorePikkuAuth<
|
|
123
|
-
Services extends CoreSecretlessSingletonServices =
|
|
124
|
-
SecretlessServices<CoreServices>,
|
|
125
|
-
Session extends CoreUserSession = CoreUserSession,
|
|
126
|
-
> = (services: Services, session: Session) => Promise<boolean> | boolean
|
|
127
|
-
|
|
128
|
-
export type CorePikkuAuthConfig<
|
|
129
|
-
Services extends CoreSecretlessSingletonServices =
|
|
130
|
-
SecretlessServices<CoreServices>,
|
|
131
|
-
Session extends CoreUserSession = CoreUserSession,
|
|
132
|
-
> = {
|
|
133
|
-
func: CorePikkuAuth<Services, Session>
|
|
134
|
-
name?: string
|
|
135
|
-
description?: string
|
|
136
|
-
}
|
|
137
|
-
|
|
138
|
-
/**
|
|
139
|
-
* Marks a permission produced by `pikkuAuth`, so agent tool filtering can tell a
|
|
140
|
-
* session check apart from an ordinary permission.
|
|
141
|
-
*
|
|
142
|
-
* knowledge: decisions/security/permission-auth-filtering-requires-live-permission-functions.md
|
|
143
|
-
*/
|
|
144
|
-
export type AuthBranded = { __pikkuAuth?: true }
|
|
145
|
-
|
|
146
|
-
export const pikkuAuth = <
|
|
147
|
-
Services extends CoreSecretlessSingletonServices =
|
|
148
|
-
SecretlessServices<CoreServices>,
|
|
149
|
-
Session extends CoreUserSession = CoreUserSession,
|
|
150
|
-
>(
|
|
151
|
-
auth:
|
|
152
|
-
CorePikkuAuth<Services, Session> | CorePikkuAuthConfig<Services, Session>
|
|
153
|
-
): CorePikkuPermission<any, Services, any> => {
|
|
154
|
-
const fn = typeof auth === 'function' ? auth : auth.func
|
|
155
|
-
const wrapper: CorePikkuPermission<any, Services, any> & AuthBranded = async (
|
|
156
|
-
services: Services,
|
|
157
|
-
_data: any,
|
|
158
|
-
wire: any
|
|
159
|
-
) => {
|
|
160
|
-
const session = wire.session
|
|
161
|
-
if (!session) return false
|
|
162
|
-
return fn(services, session as Session)
|
|
163
|
-
}
|
|
164
|
-
wrapper.__pikkuAuth = true
|
|
165
|
-
return wrapper
|
|
166
|
-
}
|
|
167
|
-
|
|
168
|
-
export type CorePermissionGroup<PikkuPermission = CorePikkuPermission<any>> =
|
|
169
|
-
Record<string, PikkuPermission | PikkuPermission[]> | undefined
|
|
170
|
-
|
|
171
|
-
/**
|
|
172
|
-
* A lifecycle hook: same call signature as the function it hangs off, return
|
|
173
|
-
* value discarded. Setup/teardown, not a step — no id, no meta, no schema, so
|
|
174
|
-
* it is never recorded and never replayed.
|
|
175
|
-
*/
|
|
176
|
-
export type CorePikkuFunctionHook<Services = any, Data = any, Wire = any> = (
|
|
177
|
-
services: Services,
|
|
178
|
-
data: Data,
|
|
179
|
-
wire: Wire
|
|
180
|
-
) => Promise<void> | void
|
|
181
|
-
|
|
182
|
-
export type CorePikkuFunctionConfig<
|
|
183
|
-
PikkuFunction extends
|
|
184
|
-
| CorePikkuFunction<any, any, any, any, any>
|
|
185
|
-
| CorePikkuFunctionSessionless<any, any, any, any, any>,
|
|
186
|
-
PikkuPermission extends CorePikkuPermission<any, any, any> =
|
|
187
|
-
CorePikkuPermission<any>,
|
|
188
|
-
PikkuMiddleware extends CorePikkuMiddleware<any, any> = CorePikkuMiddleware<
|
|
189
|
-
any,
|
|
190
|
-
any
|
|
191
|
-
>,
|
|
192
|
-
InputSchema extends StandardSchemaV1 | undefined = undefined,
|
|
193
|
-
OutputSchema extends StandardSchemaV1 | undefined = undefined,
|
|
194
|
-
Scope extends string = string,
|
|
195
|
-
> = {
|
|
196
|
-
/** A human name for this function, shown wherever it is listed rather than called. */
|
|
197
|
-
title?: string
|
|
198
|
-
/** What the function does. An agent choosing between tools reads this, so it is worth more care than a comment would be. */
|
|
199
|
-
description?: string
|
|
200
|
-
/** Explicit logical name override; lets multiple exports share a versioned base */
|
|
201
|
-
override?: string
|
|
202
|
-
/** Which version of this contract this export is. Two exports sharing an `override` and differing here are the same function at two versions. */
|
|
203
|
-
version?: number
|
|
204
|
-
/** Filters this function in and out of a build — see the `tags` option on `pikku all`. It has no effect at runtime. */
|
|
205
|
-
tags?: string[]
|
|
206
|
-
/** Makes the function callable from outside as `POST /rpc/<name>`. Without a session requirement, a permission or an addon gate, that means callable by anyone. */
|
|
207
|
-
expose?: boolean
|
|
208
|
-
/**
|
|
209
|
-
* Declares that the body does its own permission check, so the function is
|
|
210
|
-
* not open despite naming no session, scope or permission. It grants
|
|
211
|
-
* nothing — asserting it falsely just disables the audit that would have
|
|
212
|
-
* caught the mistake. Requires `allow.permissionsInBody` in the config.
|
|
213
|
-
*/
|
|
214
|
-
permissionsInBody?: boolean
|
|
215
|
-
/** Publishes the function in this package's remote surface, which is what a `wireRemoteAddon` consumer gets a typed client for. */
|
|
216
|
-
remote?: boolean
|
|
217
|
-
/** Offers the function to MCP clients as a tool, without a separate `wireMCPTool`. */
|
|
218
|
-
mcp?: boolean
|
|
219
|
-
/**
|
|
220
|
-
* Declares that the function only reads. It is enforced rather than
|
|
221
|
-
* decorative: a read-only session is refused any function without it, and an
|
|
222
|
-
* agent may call one without asking permission first.
|
|
223
|
-
*/
|
|
224
|
-
readonly?: boolean
|
|
225
|
-
/** Where this function is deployed when the build can go either way. `auto` lets the analyser decide from what the function touches. */
|
|
226
|
-
deploy?: 'serverless' | 'server' | 'auto'
|
|
227
|
-
/** Under an agent's `explicit` approval policy, calling this pauses for a human to approve it. */
|
|
228
|
-
approvalRequired?: boolean
|
|
229
|
-
/** When true, workflow steps calling this function are dispatched via the queue. No queue service configured is a hard error. Defaults to false (inline). */
|
|
230
|
-
workflowQueued?: boolean
|
|
231
|
-
/** Number of retry attempts when this function is used as a workflow step. */
|
|
232
|
-
workflowRetries?: number
|
|
233
|
-
/** Timeout for this function when used as a workflow step (e.g. '30s', '5m'). */
|
|
234
|
-
workflowTimeout?: string
|
|
235
|
-
/**
|
|
236
|
-
* Scenario steps only: which surfaces this step declares a binding for. The
|
|
237
|
-
* runner uses it to pick a binding, decide whether to provision a browser,
|
|
238
|
-
* and report how much of the flow each surface actually covers.
|
|
239
|
-
*/
|
|
240
|
-
surfaces?: ScenarioSurface[]
|
|
241
|
-
/** Scenario steps only, and set by the definer rather than by hand: this step needs a persona, so the runner injects `wire.actor`. */
|
|
242
|
-
requiresActor?: boolean
|
|
243
|
-
/**
|
|
244
|
-
* Records every call in the audit log. `transactional` durability writes the
|
|
245
|
-
* entry in the same transaction as the work, so the two cannot disagree;
|
|
246
|
-
* `best-effort` does not hold the request up for it.
|
|
247
|
-
*/
|
|
248
|
-
audit?:
|
|
249
|
-
| boolean
|
|
250
|
-
| {
|
|
251
|
-
durability?: 'best-effort' | 'transactional'
|
|
252
|
-
}
|
|
253
|
-
/** Builds the sentence a human is shown when asked to approve a call, from that call's own input. */
|
|
254
|
-
approvalDescription?: any
|
|
255
|
-
/** The body. Its first parameter is the services it needs, destructured inline so the build can tree-shake the rest away. */
|
|
256
|
-
func: PikkuFunction
|
|
257
|
-
/**
|
|
258
|
-
* Scenarios only: runs before the scenario body, with the scenario's own
|
|
259
|
-
* signature. Throwing skips the body and fails the run, but `after` still
|
|
260
|
-
* runs.
|
|
261
|
-
*/
|
|
262
|
-
before?: CorePikkuFunctionHook
|
|
263
|
-
/**
|
|
264
|
-
* Scenarios only: always runs after the body, in a `finally`. Throwing fails
|
|
265
|
-
* an otherwise-passing run; on an already-failed run it attaches as `cause`
|
|
266
|
-
* and never replaces the original error.
|
|
267
|
-
*/
|
|
268
|
-
after?: CorePikkuFunctionHook
|
|
269
|
-
/**
|
|
270
|
-
* Scenarios only: why this scenario is held out of a default run. Reported
|
|
271
|
-
* as skipped rather than quietly omitted; naming it in `--flows` runs it.
|
|
272
|
-
*/
|
|
273
|
-
skip?: string
|
|
274
|
-
/** Whether calling this requires a session, wherever it is wired. A wiring can be more permissive than the function, never less. */
|
|
275
|
-
auth?: boolean
|
|
276
|
-
/** Scopes the session must hold. All are required, and checked before `permissions`, which OR together — a scope only narrows access. */
|
|
277
|
-
scopes?: Scope[]
|
|
278
|
-
/** Checks that run before the body. Grouped names OR together, so any one passing admits the caller; use `scopes` to require rather than offer. */
|
|
279
|
-
permissions?: CorePermissionGroup<PikkuPermission>
|
|
280
|
-
/** Wraps this function wherever it is called from, unlike wiring middleware which only wraps one route into it. */
|
|
281
|
-
middleware?: PikkuMiddleware[]
|
|
282
|
-
/** The input schema, which is also the input type — there is no separate generic to keep in step with it. */
|
|
283
|
-
input?: InputSchema
|
|
284
|
-
/** The output schema, which is also the return type. Naming a type here instead is what produces PKU463. */
|
|
285
|
-
output?: OutputSchema
|
|
286
|
-
/** Presentation for this function as a node in a workflow graph. */
|
|
287
|
-
node?: CoreNodeConfig
|
|
288
|
-
/** Error classes this may throw, so each one's registered HTTP status is used instead of a 500. */
|
|
289
|
-
errors?: Array<typeof PikkuError>
|
|
290
|
-
}
|
|
291
|
-
|
|
292
|
-
/**
|
|
293
|
-
* {@link CorePikkuFunctionConfig} for a function that runs without a session.
|
|
294
|
-
*
|
|
295
|
-
* Identical, minus `scopes`. Scopes are AND-ed and `verifyScopes` fails closed,
|
|
296
|
-
* so an anonymous caller holds none and satisfies none — a sessionless function
|
|
297
|
-
* with scopes rejects every caller it exists to serve. Gate it with
|
|
298
|
-
* `permissions`, which receive the optional session and may pass anonymous.
|
|
299
|
-
*/
|
|
300
|
-
export type CorePikkuSessionlessFunctionConfig<
|
|
301
|
-
PikkuFunction extends CorePikkuFunctionSessionless<any, any, any, any, any>,
|
|
302
|
-
PikkuPermission extends CorePikkuPermission<any, any, any> =
|
|
303
|
-
CorePikkuPermission<any>,
|
|
304
|
-
PikkuMiddleware extends CorePikkuMiddleware<any, any> = CorePikkuMiddleware<
|
|
305
|
-
any,
|
|
306
|
-
any
|
|
307
|
-
>,
|
|
308
|
-
InputSchema extends StandardSchemaV1 | undefined = undefined,
|
|
309
|
-
OutputSchema extends StandardSchemaV1 | undefined = undefined,
|
|
310
|
-
> = Omit<
|
|
311
|
-
CorePikkuFunctionConfig<
|
|
312
|
-
PikkuFunction,
|
|
313
|
-
PikkuPermission,
|
|
314
|
-
PikkuMiddleware,
|
|
315
|
-
InputSchema,
|
|
316
|
-
OutputSchema
|
|
317
|
-
>,
|
|
318
|
-
'scopes'
|
|
319
|
-
>
|
package/src/function/index.ts
DELETED
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
export {
|
|
2
|
-
addFunction,
|
|
3
|
-
getAllFunctionNames,
|
|
4
|
-
runPikkuFunc,
|
|
5
|
-
} from './function-runner.js'
|
|
6
|
-
export {
|
|
7
|
-
pikkuAuth,
|
|
8
|
-
pikkuPermission,
|
|
9
|
-
pikkuPermissionFactory,
|
|
10
|
-
pikkuApprovalDescription,
|
|
11
|
-
} from './functions.types.js'
|
|
12
|
-
export type {
|
|
13
|
-
CorePikkuFunction,
|
|
14
|
-
CorePikkuFunctionSessionless,
|
|
15
|
-
CorePikkuFunctionConfig,
|
|
16
|
-
CorePikkuSessionlessFunctionConfig,
|
|
17
|
-
CorePikkuAuth,
|
|
18
|
-
CorePikkuAuthConfig,
|
|
19
|
-
CorePikkuPermission,
|
|
20
|
-
} from './functions.types.js'
|
|
21
|
-
export type { ListInput, ListOutput, Filter } from './list.types.js'
|
|
22
|
-
export { AbandonedError } from './abort-scope.js'
|
|
23
|
-
export type { AbortScope } from './abort-scope.js'
|
|
24
|
-
export { checkAuthPermissions } from '../permissions.js'
|
|
25
|
-
export type {
|
|
26
|
-
CorePermissionGroup,
|
|
27
|
-
CorePikkuApprovalDescription,
|
|
28
|
-
CorePikkuPermissionConfig,
|
|
29
|
-
CorePikkuPermissionFactory,
|
|
30
|
-
} from './functions.types.js'
|
|
31
|
-
export type {
|
|
32
|
-
FunctionMeta,
|
|
33
|
-
FunctionRuntimeMeta,
|
|
34
|
-
FunctionServicesMeta,
|
|
35
|
-
FunctionWiresMeta,
|
|
36
|
-
FunctionsMeta,
|
|
37
|
-
FunctionsRuntimeMeta,
|
|
38
|
-
PermissionMetadata,
|
|
39
|
-
} from './function-meta.types.js'
|
|
40
|
-
export { PikkuRequest } from './pikku-request.js'
|
|
@@ -1,100 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Type-level tests: no runtime assertions — valid shapes must compile and
|
|
3
|
-
* invalid shapes must fail with `@ts-expect-error`. Excluded from `yarn build`
|
|
4
|
-
* via tsconfig's test-file pattern.
|
|
5
|
-
*/
|
|
6
|
-
|
|
7
|
-
import type { ListInput, ListOutput, Filter } from './list.types.js'
|
|
8
|
-
|
|
9
|
-
type SessionFilter = {
|
|
10
|
-
status?: string[]
|
|
11
|
-
therapistId?: string
|
|
12
|
-
uploadedAt?: string
|
|
13
|
-
}
|
|
14
|
-
type SessionSort = 'user' | 'status' | 'uploaded_at'
|
|
15
|
-
|
|
16
|
-
const _basic: ListInput<SessionFilter, SessionSort> = {
|
|
17
|
-
cursor: 'abc',
|
|
18
|
-
limit: 50,
|
|
19
|
-
sort: [
|
|
20
|
-
{ column: 'uploaded_at', direction: 'desc' },
|
|
21
|
-
{ column: 'status', direction: 'asc' },
|
|
22
|
-
],
|
|
23
|
-
filter: { status: ['pending'] },
|
|
24
|
-
search: 'sarah',
|
|
25
|
-
}
|
|
26
|
-
void _basic
|
|
27
|
-
|
|
28
|
-
const _empty: ListInput = {}
|
|
29
|
-
void _empty
|
|
30
|
-
|
|
31
|
-
// @ts-expect-error — 'created_at' is not in SessionSort
|
|
32
|
-
const _badSort: ListInput<SessionFilter, SessionSort> = {
|
|
33
|
-
sort: [{ column: 'created_at', direction: 'asc' }],
|
|
34
|
-
}
|
|
35
|
-
void _badSort
|
|
36
|
-
|
|
37
|
-
// @ts-expect-error — 'descending' is not a valid direction
|
|
38
|
-
const _badDirection: ListInput<SessionFilter, SessionSort> = {
|
|
39
|
-
sort: [{ column: 'user', direction: 'descending' }],
|
|
40
|
-
}
|
|
41
|
-
void _badDirection
|
|
42
|
-
|
|
43
|
-
interface Session {
|
|
44
|
-
id: string
|
|
45
|
-
user: string
|
|
46
|
-
status: string
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
const _output: ListOutput<Session> = {
|
|
50
|
-
rows: [{ id: '1', user: 'sarah', status: 'pending' }],
|
|
51
|
-
nextCursor: null,
|
|
52
|
-
totalCount: 42,
|
|
53
|
-
}
|
|
54
|
-
void _output
|
|
55
|
-
|
|
56
|
-
// @ts-expect-error — missing nextCursor
|
|
57
|
-
const _badOutput: ListOutput<Session> = {
|
|
58
|
-
rows: [],
|
|
59
|
-
}
|
|
60
|
-
void _badOutput
|
|
61
|
-
|
|
62
|
-
const _leafEq: Filter<SessionFilter> = { therapistId: 'kim' }
|
|
63
|
-
void _leafEq
|
|
64
|
-
|
|
65
|
-
const _leafIn: Filter<SessionFilter> = { status: ['pending', 'processed'] }
|
|
66
|
-
void _leafIn
|
|
67
|
-
|
|
68
|
-
const _leafOp: Filter<SessionFilter> = {
|
|
69
|
-
uploadedAt: { gt: '2026-04-10', lte: '2026-04-17' },
|
|
70
|
-
}
|
|
71
|
-
void _leafOp
|
|
72
|
-
|
|
73
|
-
const _leafNull: Filter<SessionFilter> = { therapistId: null }
|
|
74
|
-
void _leafNull
|
|
75
|
-
|
|
76
|
-
const _leafNot: Filter<SessionFilter> = { therapistId: { not: 'kim' } }
|
|
77
|
-
void _leafNot
|
|
78
|
-
|
|
79
|
-
const _and: Filter<SessionFilter> = [
|
|
80
|
-
{ status: ['pending'] },
|
|
81
|
-
{ therapistId: 'kim' },
|
|
82
|
-
{ uploadedAt: { gt: '2026-04-10' } },
|
|
83
|
-
]
|
|
84
|
-
void _and
|
|
85
|
-
|
|
86
|
-
const _or: Filter<SessionFilter> = {
|
|
87
|
-
viaKim: { therapistId: 'kim' },
|
|
88
|
-
viaPark: { therapistId: 'park' },
|
|
89
|
-
}
|
|
90
|
-
void _or
|
|
91
|
-
|
|
92
|
-
const _nested: Filter<SessionFilter> = [
|
|
93
|
-
{ status: ['pending'] },
|
|
94
|
-
{
|
|
95
|
-
kim: { therapistId: 'kim' },
|
|
96
|
-
park: { therapistId: 'park' },
|
|
97
|
-
},
|
|
98
|
-
{ uploadedAt: { gt: '2026-04-10' } },
|
|
99
|
-
]
|
|
100
|
-
void _nested
|
|
@@ -1,69 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* A list function is an ordinary `pikkuFunc` whose input and output adopt
|
|
3
|
-
* these shapes. They are purely structural — no runtime behaviour attaches to
|
|
4
|
-
* them — and exist so MCP tools, agents, RPC clients and widget libraries all
|
|
5
|
-
* reason about cursor, filter, sort and search the same way.
|
|
6
|
-
*/
|
|
7
|
-
|
|
8
|
-
export interface ListInput<
|
|
9
|
-
F extends Record<string, unknown> = Record<string, never>,
|
|
10
|
-
S extends string = never,
|
|
11
|
-
> {
|
|
12
|
-
/** Opaque cursor from the previous page's `nextCursor`. */
|
|
13
|
-
cursor?: string
|
|
14
|
-
/** Page size. Server may cap. */
|
|
15
|
-
limit?: number
|
|
16
|
-
/** Ordered sort criteria — first entry is primary. */
|
|
17
|
-
sort?: Array<{ column: S; direction: 'asc' | 'desc' }>
|
|
18
|
-
filter?: Filter<F>
|
|
19
|
-
/** Unstructured text search across server-configured fields. */
|
|
20
|
-
search?: string
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
export interface ListOutput<Row> {
|
|
24
|
-
rows: Row[]
|
|
25
|
-
/** Null when no more pages. */
|
|
26
|
-
nextCursor: string | null
|
|
27
|
-
/** Optional — backend may skip when expensive. */
|
|
28
|
-
totalCount?: number
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
/**
|
|
32
|
-
* Leaf predicate on a single field. The operator keywords mirror Prisma's
|
|
33
|
-
* vocabulary; they are reserved and cannot be used as user field names in a
|
|
34
|
-
* Filter's `F` type.
|
|
35
|
-
*/
|
|
36
|
-
export type LeafValue<T> =
|
|
37
|
-
| T
|
|
38
|
-
| null
|
|
39
|
-
| T[]
|
|
40
|
-
| {
|
|
41
|
-
equals?: T | null
|
|
42
|
-
not?: T | null | LeafValue<T>
|
|
43
|
-
in?: T[]
|
|
44
|
-
notIn?: T[]
|
|
45
|
-
gt?: T
|
|
46
|
-
gte?: T
|
|
47
|
-
lt?: T
|
|
48
|
-
lte?: T
|
|
49
|
-
contains?: string
|
|
50
|
-
startsWith?: string
|
|
51
|
-
endsWith?: string
|
|
52
|
-
mode?: 'sensitive' | 'insensitive'
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
/**
|
|
56
|
-
* A single-key object keyed by a field of F. Single-key so the runtime
|
|
57
|
-
* discriminator is unambiguous — multi-key objects are OR groups.
|
|
58
|
-
*/
|
|
59
|
-
export type LeafFilter<F extends Record<string, unknown>> = {
|
|
60
|
-
[K in keyof F]: { [Key in K]: LeafValue<F[K]> }
|
|
61
|
-
}[keyof F]
|
|
62
|
-
|
|
63
|
-
/**
|
|
64
|
-
* Recursive filter tree: an array is an AND of its children; an object is an
|
|
65
|
-
* OR of its children, keyed by arbitrary unique labels that are ignored at
|
|
66
|
-
* evaluation time; a single-key object is a leaf predicate.
|
|
67
|
-
*/
|
|
68
|
-
export type Filter<F extends Record<string, unknown>> =
|
|
69
|
-
LeafFilter<F> | Filter<F>[] | { [label: string]: Filter<F> }
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
import { describe, test } from 'node:test'
|
|
2
|
-
import assert from 'node:assert/strict'
|
|
3
|
-
|
|
4
|
-
import { PikkuRequest } from './pikku-request.js'
|
|
5
|
-
|
|
6
|
-
class TestPikkuRequest<In> extends PikkuRequest<In> {}
|
|
7
|
-
|
|
8
|
-
describe('PikkuRequest', () => {
|
|
9
|
-
test('returns stored data', async () => {
|
|
10
|
-
const request = new TestPikkuRequest({ hello: 'world' })
|
|
11
|
-
|
|
12
|
-
assert.deepEqual(await request.data(), { hello: 'world' })
|
|
13
|
-
})
|
|
14
|
-
|
|
15
|
-
test('preserves falsey payloads', async () => {
|
|
16
|
-
await assert.doesNotReject(async () => {
|
|
17
|
-
const zeroRequest = new TestPikkuRequest(0)
|
|
18
|
-
assert.equal(await zeroRequest.data(), 0)
|
|
19
|
-
|
|
20
|
-
const falseRequest = new TestPikkuRequest(false)
|
|
21
|
-
assert.equal(await falseRequest.data(), false)
|
|
22
|
-
|
|
23
|
-
const emptyStringRequest = new TestPikkuRequest('')
|
|
24
|
-
assert.equal(await emptyStringRequest.data(), '')
|
|
25
|
-
})
|
|
26
|
-
})
|
|
27
|
-
|
|
28
|
-
test('throws when data is undefined', async () => {
|
|
29
|
-
const request = new TestPikkuRequest(undefined as never)
|
|
30
|
-
|
|
31
|
-
await assert.rejects(() => request.data(), {
|
|
32
|
-
message: 'Data not found',
|
|
33
|
-
})
|
|
34
|
-
})
|
|
35
|
-
})
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @group RequestResponse
|
|
3
|
-
*/
|
|
4
|
-
export abstract class PikkuRequest<In = any> {
|
|
5
|
-
#data: In | undefined
|
|
6
|
-
|
|
7
|
-
constructor(data: In) {
|
|
8
|
-
this.#data = data
|
|
9
|
-
}
|
|
10
|
-
|
|
11
|
-
public async data(): Promise<In> {
|
|
12
|
-
if (this.#data === undefined) {
|
|
13
|
-
throw new Error('Data not found')
|
|
14
|
-
}
|
|
15
|
-
return this.#data
|
|
16
|
-
}
|
|
17
|
-
}
|
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
import { describe, test } from 'node:test'
|
|
2
|
-
import assert from 'node:assert/strict'
|
|
3
|
-
import { existsSync, readFileSync, readdirSync } from 'node:fs'
|
|
4
|
-
import { fileURLToPath } from 'node:url'
|
|
5
|
-
import { join, dirname } from 'node:path'
|
|
6
|
-
|
|
7
|
-
const srcRoot = dirname(fileURLToPath(import.meta.url))
|
|
8
|
-
const packageRoot = join(srcRoot, '..')
|
|
9
|
-
|
|
10
|
-
const collectSourceFiles = (directory: string): string[] =>
|
|
11
|
-
readdirSync(directory, { withFileTypes: true }).flatMap((entry) => {
|
|
12
|
-
const entryPath = join(directory, entry.name)
|
|
13
|
-
if (entry.isDirectory()) {
|
|
14
|
-
return entry.name === 'dist' ? [] : collectSourceFiles(entryPath)
|
|
15
|
-
}
|
|
16
|
-
return /\.(ts|js|mts|cts)$/.test(entry.name) ? [entryPath] : []
|
|
17
|
-
})
|
|
18
|
-
|
|
19
|
-
describe('gopass secret service removal', () => {
|
|
20
|
-
test('the gopass-secrets module no longer exists', () => {
|
|
21
|
-
assert.equal(
|
|
22
|
-
existsSync(join(srcRoot, 'services/gopass-secrets.ts')),
|
|
23
|
-
false,
|
|
24
|
-
'services/gopass-secrets.ts was reintroduced'
|
|
25
|
-
)
|
|
26
|
-
})
|
|
27
|
-
|
|
28
|
-
test('package.json no longer exports ./services/gopass-secrets', () => {
|
|
29
|
-
const packageJson = JSON.parse(
|
|
30
|
-
readFileSync(join(packageRoot, 'package.json'), 'utf-8')
|
|
31
|
-
)
|
|
32
|
-
assert.equal(
|
|
33
|
-
packageJson.exports['./services/gopass-secrets'],
|
|
34
|
-
undefined,
|
|
35
|
-
'./services/gopass-secrets export was reintroduced'
|
|
36
|
-
)
|
|
37
|
-
})
|
|
38
|
-
|
|
39
|
-
test('no source file references gopass', () => {
|
|
40
|
-
const offenders = collectSourceFiles(srcRoot).filter(
|
|
41
|
-
(file) =>
|
|
42
|
-
file !== fileURLToPath(import.meta.url) &&
|
|
43
|
-
/gopass/i.test(readFileSync(file, 'utf-8'))
|
|
44
|
-
)
|
|
45
|
-
assert.deepEqual(
|
|
46
|
-
offenders,
|
|
47
|
-
[],
|
|
48
|
-
`gopass references found in:\n${offenders.join('\n')}`
|
|
49
|
-
)
|
|
50
|
-
})
|
|
51
|
-
})
|