@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,676 +0,0 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
CorePermissionGroup,
|
|
3
|
-
CorePikkuPermission,
|
|
4
|
-
} from '../../function/functions.types.js'
|
|
5
|
-
import type {
|
|
6
|
-
CorePikkuMiddleware,
|
|
7
|
-
MiddlewareMetadata,
|
|
8
|
-
} from '../../middleware/middleware.types.js'
|
|
9
|
-
import type { CoreSingletonServices } from '../../types/core.types.js'
|
|
10
|
-
import type { PermissionMetadata } from '../../function/function-meta.types.js'
|
|
11
|
-
import type { AIProviderOptions } from '../../services/agent-runner-service.js'
|
|
12
|
-
import type { PikkuChannel } from '../channel/channel.types.js'
|
|
13
|
-
import type { CorePikkuChannelMiddleware } from '../channel/channel.types.js'
|
|
14
|
-
import type { ApprovalPolicy } from '../channel/channel-rpc.js'
|
|
15
|
-
|
|
16
|
-
export interface AgentThread {
|
|
17
|
-
id: string
|
|
18
|
-
resourceId: string
|
|
19
|
-
title?: string
|
|
20
|
-
metadata?: Record<string, unknown>
|
|
21
|
-
createdAt: Date
|
|
22
|
-
updatedAt: Date
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
export type AgentContentPart =
|
|
26
|
-
| { type: 'text'; text: string }
|
|
27
|
-
| { type: 'image'; data?: string; url?: string; mediaType?: string }
|
|
28
|
-
| {
|
|
29
|
-
type: 'file'
|
|
30
|
-
data?: string
|
|
31
|
-
url?: string
|
|
32
|
-
mediaType: string
|
|
33
|
-
filename?: string
|
|
34
|
-
}
|
|
35
|
-
| {
|
|
36
|
-
type: 'data'
|
|
37
|
-
name: string
|
|
38
|
-
data: unknown
|
|
39
|
-
}
|
|
40
|
-
| {
|
|
41
|
-
type: 'generative-ui'
|
|
42
|
-
spec: unknown
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
export interface AgentToolCall {
|
|
46
|
-
id: string
|
|
47
|
-
name: string
|
|
48
|
-
args: Record<string, unknown>
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
export interface AgentToolResult {
|
|
52
|
-
id: string
|
|
53
|
-
name: string
|
|
54
|
-
result: string
|
|
55
|
-
/**
|
|
56
|
-
* Set when the tool threw rather than returned. Carried separately from
|
|
57
|
-
* `result`, which is a rendered string by the time it is persisted — a tool
|
|
58
|
-
* may legitimately return text beginning `Error:`, so the prefix cannot be
|
|
59
|
-
* read as a failure signal.
|
|
60
|
-
*/
|
|
61
|
-
error?: string
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
export interface AgentMessage {
|
|
65
|
-
id: string
|
|
66
|
-
role: 'system' | 'user' | 'assistant' | 'tool'
|
|
67
|
-
content?: string | AgentContentPart[]
|
|
68
|
-
toolCalls?: AgentToolCall[]
|
|
69
|
-
toolResults?: AgentToolResult[]
|
|
70
|
-
reasoningContent?: string
|
|
71
|
-
/**
|
|
72
|
-
* Set on an assistant message whose generation was cut short by
|
|
73
|
-
* an interrupt — the text is a mid-sentence fragment, not a reply.
|
|
74
|
-
* Carried into the next turn's context so the model can see it said only
|
|
75
|
-
* this much before being talked over, and decide for itself whether to
|
|
76
|
-
* resume, restate or move on. Storage that drops unknown fields loses the
|
|
77
|
-
* marker but keeps the fragment, which degrades to a truncated reply.
|
|
78
|
-
*/
|
|
79
|
-
interrupted?: boolean
|
|
80
|
-
/**
|
|
81
|
-
* Set on a tool message whose result arrived after the run was interrupted,
|
|
82
|
-
* so the model never got to describe it. The work happened; only the reply
|
|
83
|
-
* about it was lost. It is ordinary thread context on the next turn — the
|
|
84
|
-
* model raises it unprompted ("that deploy did go through") rather than the
|
|
85
|
-
* result being silently dropped or replayed as a fresh tool call.
|
|
86
|
-
*/
|
|
87
|
-
undelivered?: boolean
|
|
88
|
-
createdAt: Date
|
|
89
|
-
}
|
|
90
|
-
|
|
91
|
-
export interface AgentStep {
|
|
92
|
-
usage: { inputTokens: number; outputTokens: number }
|
|
93
|
-
toolCalls?: {
|
|
94
|
-
name: string
|
|
95
|
-
args: Record<string, unknown>
|
|
96
|
-
result: string
|
|
97
|
-
/** The failure message, when the tool threw rather than returned. */
|
|
98
|
-
error?: string
|
|
99
|
-
}[]
|
|
100
|
-
}
|
|
101
|
-
|
|
102
|
-
export interface AgentInputAttachment {
|
|
103
|
-
type: 'image' | 'file'
|
|
104
|
-
data?: string
|
|
105
|
-
url?: string
|
|
106
|
-
mediaType?: string
|
|
107
|
-
filename?: string
|
|
108
|
-
}
|
|
109
|
-
|
|
110
|
-
export interface AgentInput {
|
|
111
|
-
message: string
|
|
112
|
-
threadId: string
|
|
113
|
-
resourceId: string
|
|
114
|
-
attachments?: AgentInputAttachment[]
|
|
115
|
-
model?: string
|
|
116
|
-
temperature?: number
|
|
117
|
-
/** Structured context injected into the system instructions for this request.
|
|
118
|
-
* Use to provide upfront state (e.g. current org/project/branch/deployment)
|
|
119
|
-
* so the agent can call tools without asking the user for identifiers. */
|
|
120
|
-
context?: string
|
|
121
|
-
}
|
|
122
|
-
|
|
123
|
-
export interface AgentOutput {
|
|
124
|
-
runId: string
|
|
125
|
-
text: string
|
|
126
|
-
object?: unknown
|
|
127
|
-
threadId: string
|
|
128
|
-
steps: AgentStep[]
|
|
129
|
-
usage: { inputTokens: number; outputTokens: number }
|
|
130
|
-
status?: 'completed' | 'suspended'
|
|
131
|
-
pendingApprovals?: Array<{
|
|
132
|
-
toolCallId: string
|
|
133
|
-
toolName: string
|
|
134
|
-
args: unknown
|
|
135
|
-
reason?: string
|
|
136
|
-
runId: string
|
|
137
|
-
}>
|
|
138
|
-
}
|
|
139
|
-
|
|
140
|
-
/**
|
|
141
|
-
* How an agent's threads/runs are owned and partitioned.
|
|
142
|
-
* - `'user'` (default): owner is the authenticated `session.userId`; the caller's
|
|
143
|
-
* `resourceId` becomes a sub-partition within that user (`userId:resourceId`).
|
|
144
|
-
* - `'org'`: owner is the authenticated `session.orgId` (`orgId:resourceId`), so
|
|
145
|
-
* threads are shared across everyone in the org. Requires a session with an org
|
|
146
|
-
* (e.g. Better Auth's `organization` plugin) — otherwise access is denied.
|
|
147
|
-
*
|
|
148
|
-
* The trusted principal is always the prefix, so a client-supplied `resourceId`
|
|
149
|
-
* can sub-divide within the caller's own boundary but can never widen access to
|
|
150
|
-
* another user's or org's threads.
|
|
151
|
-
*/
|
|
152
|
-
export type SessionScope = 'user' | 'org'
|
|
153
|
-
|
|
154
|
-
/**
|
|
155
|
-
* `ApprovalPolicy` is shared with channel capabilities, but `Partial` here:
|
|
156
|
-
* absent `needsApproval` means "do not ask", which is safe because a tool is
|
|
157
|
-
* written by whoever runs the server it executes on. A capability runs on
|
|
158
|
-
* someone else's machine, so it requires the field instead.
|
|
159
|
-
*/
|
|
160
|
-
export interface AgentToolDef extends Partial<ApprovalPolicy> {
|
|
161
|
-
name: string
|
|
162
|
-
description: string
|
|
163
|
-
inputSchema: Record<string, unknown>
|
|
164
|
-
execute: (input: unknown) => Promise<unknown>
|
|
165
|
-
/**
|
|
166
|
-
* Mirrors the pikku function's `readonly` flag. A read that gets interrupted
|
|
167
|
-
* is discarded rather than reported: nothing changed, and by the next turn
|
|
168
|
-
* the data may be stale anyway — re-reading is cheaper than explaining a
|
|
169
|
-
* result the user never asked to hear about.
|
|
170
|
-
*/
|
|
171
|
-
readonly?: boolean
|
|
172
|
-
/**
|
|
173
|
-
* Set only by the framework on sub-agent delegating tools. Such a tool may
|
|
174
|
-
* legitimately return an `__approvalRequired` marker to forward a nested
|
|
175
|
-
* sub-agent approval. The marker is honored ONLY from a tool with this flag —
|
|
176
|
-
* a plain tool's output (which an attacker may influence) can never forge an
|
|
177
|
-
* approval request. See `checkForApprovals`.
|
|
178
|
-
*/
|
|
179
|
-
forwardsApproval?: boolean
|
|
180
|
-
}
|
|
181
|
-
|
|
182
|
-
export interface PikkuAgentMiddlewareHooks<
|
|
183
|
-
State extends Record<string, unknown> = Record<string, unknown>,
|
|
184
|
-
SingletonServices extends CoreSingletonServices = CoreSingletonServices,
|
|
185
|
-
> {
|
|
186
|
-
/** Rewrites what the model is about to see — messages and instructions — before each turn. */
|
|
187
|
-
modifyInput?: (
|
|
188
|
-
services: SingletonServices,
|
|
189
|
-
ctx: {
|
|
190
|
-
messages: AgentMessage[]
|
|
191
|
-
instructions: string
|
|
192
|
-
/**
|
|
193
|
-
* Notes about this run that every middleware can read and write, as
|
|
194
|
-
* opposed to {@link modifyOutputStream}'s `state`, which is private to
|
|
195
|
-
* one middleware.
|
|
196
|
-
*
|
|
197
|
-
* It exists because middlewares transform the turn for each other, and
|
|
198
|
-
* the transformation can destroy what a later one needed to know. Voice
|
|
199
|
-
* is the case in point: `voiceInput` replaces the user's audio with its
|
|
200
|
-
* transcript, so by the time anything downstream looks, the turn is
|
|
201
|
-
* indistinguishable from one that was typed — and whether it was typed is
|
|
202
|
-
* exactly what `voiceOutput` needs in order to decide whether to answer
|
|
203
|
-
* aloud. Only the middleware that consumed the audio can still say so.
|
|
204
|
-
*
|
|
205
|
-
* Namespace what you put here (`voice:spokenTurn`); it is one bag for
|
|
206
|
-
* everybody. Cleared between runs.
|
|
207
|
-
*/
|
|
208
|
-
shared: Record<string, unknown>
|
|
209
|
-
}
|
|
210
|
-
) =>
|
|
211
|
-
| Promise<{ messages: AgentMessage[]; instructions: string }>
|
|
212
|
-
| { messages: AgentMessage[]; instructions: string }
|
|
213
|
-
|
|
214
|
-
/** Sees the model's output as it streams, for redaction or live inspection. Keeps its own `state` across chunks, unlike the shared run notes. */
|
|
215
|
-
modifyOutputStream?: (
|
|
216
|
-
services: SingletonServices,
|
|
217
|
-
ctx: {
|
|
218
|
-
event: AgentStreamEvent
|
|
219
|
-
allEvents: readonly AgentStreamEvent[]
|
|
220
|
-
/** Private to this middleware, for this run. Cross-middleware facts go in `shared`. */
|
|
221
|
-
state: State
|
|
222
|
-
/** Per-run notes shared with every middleware — see {@link modifyInput}. */
|
|
223
|
-
shared: Record<string, unknown>
|
|
224
|
-
/**
|
|
225
|
-
* Push an event into the stream *after* this call has returned.
|
|
226
|
-
*
|
|
227
|
-
* Returning events blocks the stream until the hook resolves, which is
|
|
228
|
-
* right for anything derived from the event and wrong for anything slow.
|
|
229
|
-
* Speech is the motivating case: awaiting a text-to-speech call before
|
|
230
|
-
* returning the text delta stalls the reader at every full stop and
|
|
231
|
-
* serialises synthesis behind playback. Return the text immediately,
|
|
232
|
-
* start the slow work, and `emit` its result when it lands.
|
|
233
|
-
*
|
|
234
|
-
* Ordering among emitted events is the caller's problem — chain them if
|
|
235
|
-
* it matters — and a hook that emits must make sure anything still
|
|
236
|
-
* outstanding has landed before it lets `done` through.
|
|
237
|
-
*/
|
|
238
|
-
emit: (event: AgentStreamEvent) => Promise<void>
|
|
239
|
-
/**
|
|
240
|
-
* Aborts when the run is interrupted. Pass it to any provider call the
|
|
241
|
-
* hook makes: work started for a reply the user has already talked over
|
|
242
|
-
* is billed but never heard.
|
|
243
|
-
*/
|
|
244
|
-
signal?: AbortSignal
|
|
245
|
-
}
|
|
246
|
-
) =>
|
|
247
|
-
| Promise<AgentStreamEvent | AgentStreamEvent[] | null>
|
|
248
|
-
| AgentStreamEvent
|
|
249
|
-
| AgentStreamEvent[]
|
|
250
|
-
| null
|
|
251
|
-
|
|
252
|
-
/**
|
|
253
|
-
* The last chance to rewrite what the run produced, before it is persisted
|
|
254
|
-
* and returned.
|
|
255
|
-
*
|
|
256
|
-
* It does **not** run on a streamed run: there the text has already reached
|
|
257
|
-
* the client and each step is flushed to storage as it goes, so nothing could
|
|
258
|
-
* act on what this returned. Use {@link modifyOutputStream} to rewrite a
|
|
259
|
-
* streamed reply — a middleware that implements only this one is warned about
|
|
260
|
-
* when an agent it is attached to streams.
|
|
261
|
-
*
|
|
262
|
-
* `toolCalls` is here so a redaction pass covers the whole run record rather
|
|
263
|
-
* than just the visible answer: the tool arguments and results are persisted
|
|
264
|
-
* and handed to anything that grades the run, and scrubbing the reply alone
|
|
265
|
-
* leaves them untouched.
|
|
266
|
-
*/
|
|
267
|
-
/** Rewrites the finished output of a turn, after streaming has completed. */
|
|
268
|
-
modifyOutput?: (
|
|
269
|
-
services: SingletonServices,
|
|
270
|
-
ctx: {
|
|
271
|
-
text: string
|
|
272
|
-
messages: AgentMessage[]
|
|
273
|
-
usage: { inputTokens: number; outputTokens: number }
|
|
274
|
-
toolCalls: NonNullable<AgentStep['toolCalls']>
|
|
275
|
-
}
|
|
276
|
-
) =>
|
|
277
|
-
| Promise<{
|
|
278
|
-
text: string
|
|
279
|
-
messages: AgentMessage[]
|
|
280
|
-
toolCalls?: NonNullable<AgentStep['toolCalls']>
|
|
281
|
-
}>
|
|
282
|
-
| {
|
|
283
|
-
text: string
|
|
284
|
-
messages: AgentMessage[]
|
|
285
|
-
toolCalls?: NonNullable<AgentStep['toolCalls']>
|
|
286
|
-
}
|
|
287
|
-
|
|
288
|
-
/** Runs before a tool executes, and may rewrite the arguments the model chose. Returning nothing leaves them as they are. */
|
|
289
|
-
beforeToolCall?: (
|
|
290
|
-
services: SingletonServices,
|
|
291
|
-
ctx: {
|
|
292
|
-
toolName: string
|
|
293
|
-
toolCallId: string
|
|
294
|
-
args: Record<string, unknown>
|
|
295
|
-
}
|
|
296
|
-
) =>
|
|
297
|
-
| Promise<{ args: Record<string, unknown> } | void>
|
|
298
|
-
| { args: Record<string, unknown> }
|
|
299
|
-
| void
|
|
300
|
-
|
|
301
|
-
/** Runs once a tool has returned, and may replace its result before the model sees it. */
|
|
302
|
-
afterToolCall?: (
|
|
303
|
-
services: SingletonServices,
|
|
304
|
-
ctx: {
|
|
305
|
-
toolName: string
|
|
306
|
-
toolCallId: string
|
|
307
|
-
args: Record<string, unknown>
|
|
308
|
-
result: unknown
|
|
309
|
-
durationMs: number
|
|
310
|
-
}
|
|
311
|
-
) => Promise<{ result: unknown } | void> | { result: unknown } | void
|
|
312
|
-
|
|
313
|
-
/** Runs at the end of each model turn. For observation — it cannot change what happened. */
|
|
314
|
-
afterStep?: (
|
|
315
|
-
services: SingletonServices,
|
|
316
|
-
ctx: {
|
|
317
|
-
stepNumber: number
|
|
318
|
-
text: string
|
|
319
|
-
toolCalls: { toolCallId: string; toolName: string; args: unknown }[]
|
|
320
|
-
toolResults: {
|
|
321
|
-
toolCallId: string
|
|
322
|
-
toolName: string
|
|
323
|
-
result: unknown
|
|
324
|
-
/** Set when the tool threw rather than returned. */
|
|
325
|
-
error?: string
|
|
326
|
-
}[]
|
|
327
|
-
usage: { inputTokens: number; outputTokens: number }
|
|
328
|
-
finishReason: string
|
|
329
|
-
}
|
|
330
|
-
) => Promise<void> | void
|
|
331
|
-
|
|
332
|
-
/** Runs when a turn throws, with the step it failed on. For logging and cleanup; it does not swallow the error. */
|
|
333
|
-
onError?: (
|
|
334
|
-
services: SingletonServices,
|
|
335
|
-
ctx: {
|
|
336
|
-
error: Error
|
|
337
|
-
stepNumber: number
|
|
338
|
-
messages: AgentMessage[]
|
|
339
|
-
}
|
|
340
|
-
) => Promise<void> | void
|
|
341
|
-
}
|
|
342
|
-
|
|
343
|
-
export type AgentMemoryConfig = {
|
|
344
|
-
storage?: string
|
|
345
|
-
vector?: string
|
|
346
|
-
embedder?: string
|
|
347
|
-
lastMessages?: number
|
|
348
|
-
workingMemory?: unknown
|
|
349
|
-
}
|
|
350
|
-
|
|
351
|
-
export type CoreAgent<
|
|
352
|
-
PikkuPermission = CorePikkuPermission<any, any>,
|
|
353
|
-
PikkuMiddleware = CorePikkuMiddleware<any>,
|
|
354
|
-
Scope extends string = string,
|
|
355
|
-
Scorer extends string = string,
|
|
356
|
-
> = {
|
|
357
|
-
/** Unique across the project. It is how the agent is invoked and how its runs are grouped. */
|
|
358
|
-
name: string
|
|
359
|
-
/** What the agent is for. Another agent choosing whether to delegate to this one reads it, so write it for that reader. */
|
|
360
|
-
description: string
|
|
361
|
-
/** A one-line description for listings, where the full `description` is too long. */
|
|
362
|
-
summary?: string
|
|
363
|
-
/** Names of error classes this may throw, so each one's registered status is used instead of a 500. */
|
|
364
|
-
errors?: string[]
|
|
365
|
-
/** Who the agent is. Joined with `personality` and `goal`, in that order, to form the system prompt. */
|
|
366
|
-
role?: string
|
|
367
|
-
/** How it should sound: tone, vocabulary, how much it says at a time. */
|
|
368
|
-
personality?: string
|
|
369
|
-
/** What it is for — the only one of the three that is required. */
|
|
370
|
-
goal: string
|
|
371
|
-
/** Which model to run on, as the provider names it. */
|
|
372
|
-
model: string
|
|
373
|
-
/** How much the model is allowed to vary its answer. Lower is more repeatable, which is what a tool-driving agent usually wants. */
|
|
374
|
-
temperature?: number
|
|
375
|
-
/** Ownership/partitioning of this agent's threads and runs. Defaults to `'user'`. */
|
|
376
|
-
sessionScope?: SessionScope
|
|
377
|
-
/** Functions the model may call, given to it as tools. A `readonly` one may be called without asking first. */
|
|
378
|
-
tools?: unknown[]
|
|
379
|
-
/** Other agents this one may hand work to. `agentMode` decides whether it delegates or supervises. */
|
|
380
|
-
agents?: unknown[]
|
|
381
|
-
/** Workflows the model may start, for work too long to sit inside one agent run. */
|
|
382
|
-
workflows?: unknown[]
|
|
383
|
-
/** Grades finished runs on live traffic. A reference-based judge is never sampled here — live traffic has no answer key. */
|
|
384
|
-
scorers?: Scorer[]
|
|
385
|
-
/** `delegate` hands a sub-agent the task and takes its answer; `supervise` keeps this agent in the loop over each step. */
|
|
386
|
-
agentMode?: 'delegate' | 'supervise'
|
|
387
|
-
/** What the agent carries between runs, and how much of it. */
|
|
388
|
-
memory?: AgentMemoryConfig
|
|
389
|
-
/** How many model turns a single run may take before it is stopped. The guard against a tool loop that never converges. */
|
|
390
|
-
maxSteps?: number
|
|
391
|
-
/** Whether the model may answer without calling a tool (`auto`), must call one (`required`), or may not (`none`). */
|
|
392
|
-
toolChoice?: 'auto' | 'required' | 'none'
|
|
393
|
-
/** Per-provider settings passed through untouched, for what only one vendor offers. */
|
|
394
|
-
providerOptions?: AIProviderOptions
|
|
395
|
-
/** The schema of what starts a run, which is also its input type. */
|
|
396
|
-
input?: unknown
|
|
397
|
-
/** The schema the final answer must match, which is also its return type. Without one the agent returns free text. */
|
|
398
|
-
output?: unknown
|
|
399
|
-
/** Filters this agent in and out of a build — see the `tags` option on `pikku all`. It has no effect at runtime. */
|
|
400
|
-
tags?: string[]
|
|
401
|
-
/** Runs before each model turn, to change what that turn sees or to stop the run. This is where a step budget or a tool narrowing goes. */
|
|
402
|
-
prepareStep?: (ctx: {
|
|
403
|
-
stepNumber: number
|
|
404
|
-
messages: AgentMessage[]
|
|
405
|
-
tools: AgentToolDef[]
|
|
406
|
-
toolChoice: 'auto' | 'required' | 'none'
|
|
407
|
-
model: string
|
|
408
|
-
stop: () => void
|
|
409
|
-
}) => void | Promise<void>
|
|
410
|
-
/** Wraps the whole run: auth, tracing, spend limits. */
|
|
411
|
-
middleware?: PikkuMiddleware[]
|
|
412
|
-
/** Wraps each message when the agent is driven over a channel. */
|
|
413
|
-
channelMiddleware?: CorePikkuChannelMiddleware<any, any>[]
|
|
414
|
-
/** Hooks around each step and each tool call — the place to inspect, rewrite or veto what the model is about to do. */
|
|
415
|
-
agentMiddleware?: PikkuAgentMiddlewareHooks<any, any>[]
|
|
416
|
-
/**
|
|
417
|
-
* Whether a session is required to run this agent. Defaults to `false`, since
|
|
418
|
-
* agents are commonly invoked from an already-authenticated `pikkuFunc` or
|
|
419
|
-
* from genuinely sessionless contexts (crons, queue workers). Set `true` to
|
|
420
|
-
* require a session at the agent itself. `scopes` and `permissions` are
|
|
421
|
-
* enforced either way.
|
|
422
|
-
*/
|
|
423
|
-
auth?: boolean
|
|
424
|
-
/**
|
|
425
|
-
* Scopes the session must hold to run this agent. All of them are required
|
|
426
|
-
* (AND), and they are checked before `permissions` — unlike permissions,
|
|
427
|
-
* which OR together, a scope can only narrow access.
|
|
428
|
-
*
|
|
429
|
-
* Narrowed to the generated `ScopeId` union in a project's own
|
|
430
|
-
* `#pikku/scopes`, so an undeclared scope is a compile error.
|
|
431
|
-
*/
|
|
432
|
-
scopes?: Scope[]
|
|
433
|
-
/** Checks that run before the agent starts. Grouped names OR together, so any one passing admits the caller. */
|
|
434
|
-
permissions?: CorePermissionGroup<PikkuPermission>
|
|
435
|
-
}
|
|
436
|
-
|
|
437
|
-
export type AgentStreamEvent =
|
|
438
|
-
| { type: 'step-start'; stepNumber: number; agent?: string; session?: string }
|
|
439
|
-
| { type: 'text-delta'; text: string; agent?: string; session?: string }
|
|
440
|
-
| { type: 'reasoning-delta'; text: string; agent?: string; session?: string }
|
|
441
|
-
| {
|
|
442
|
-
type: 'tool-call'
|
|
443
|
-
toolCallId: string
|
|
444
|
-
toolName: string
|
|
445
|
-
args: unknown
|
|
446
|
-
agent?: string
|
|
447
|
-
session?: string
|
|
448
|
-
}
|
|
449
|
-
| {
|
|
450
|
-
type: 'tool-result'
|
|
451
|
-
toolCallId: string
|
|
452
|
-
toolName: string
|
|
453
|
-
result: unknown
|
|
454
|
-
/**
|
|
455
|
-
* The failure message, set when the tool threw rather than returned.
|
|
456
|
-
* Carried explicitly because a tool may legitimately return text that
|
|
457
|
-
* reads like an error, so `result` cannot be matched on to tell.
|
|
458
|
-
*/
|
|
459
|
-
error?: string
|
|
460
|
-
agent?: string
|
|
461
|
-
session?: string
|
|
462
|
-
}
|
|
463
|
-
| {
|
|
464
|
-
type: 'agent-call'
|
|
465
|
-
agentName: string
|
|
466
|
-
session: string
|
|
467
|
-
input: unknown
|
|
468
|
-
}
|
|
469
|
-
| {
|
|
470
|
-
type: 'agent-result'
|
|
471
|
-
agentName: string
|
|
472
|
-
session: string
|
|
473
|
-
result: unknown
|
|
474
|
-
}
|
|
475
|
-
| {
|
|
476
|
-
type: 'approval-request'
|
|
477
|
-
toolCallId: string
|
|
478
|
-
toolName: string
|
|
479
|
-
args: unknown
|
|
480
|
-
reason?: string
|
|
481
|
-
runId: string
|
|
482
|
-
agent?: string
|
|
483
|
-
session?: string
|
|
484
|
-
}
|
|
485
|
-
| {
|
|
486
|
-
type: 'credential-request'
|
|
487
|
-
toolCallId: string
|
|
488
|
-
toolName: string
|
|
489
|
-
args: unknown
|
|
490
|
-
credentialName: string
|
|
491
|
-
credentialType: 'oauth2' | 'apikey'
|
|
492
|
-
connectUrl?: string
|
|
493
|
-
runId: string
|
|
494
|
-
agent?: string
|
|
495
|
-
session?: string
|
|
496
|
-
}
|
|
497
|
-
| {
|
|
498
|
-
type: 'usage'
|
|
499
|
-
tokens: { input: number; output: number }
|
|
500
|
-
model: string
|
|
501
|
-
agent?: string
|
|
502
|
-
session?: string
|
|
503
|
-
}
|
|
504
|
-
| { type: 'error'; message: string; agent?: string; session?: string }
|
|
505
|
-
| {
|
|
506
|
-
type: 'audio-delta'
|
|
507
|
-
data: string
|
|
508
|
-
format: string
|
|
509
|
-
/**
|
|
510
|
-
* The sentence this audio says.
|
|
511
|
-
*
|
|
512
|
-
* Carried alongside the bytes because a client that gets talked over has
|
|
513
|
-
* to tell the model what the user actually heard, and playback position
|
|
514
|
-
* is the only place that is knowable. Without it a barge-in can stop the
|
|
515
|
-
* sound but not report it, and the next turn is answered as though the
|
|
516
|
-
* whole reply had landed.
|
|
517
|
-
*/
|
|
518
|
-
text?: string
|
|
519
|
-
agent?: string
|
|
520
|
-
session?: string
|
|
521
|
-
}
|
|
522
|
-
| { type: 'audio-done'; agent?: string; session?: string }
|
|
523
|
-
| {
|
|
524
|
-
/**
|
|
525
|
-
* What the user was heard to say, sent once at the start of a spoken
|
|
526
|
-
* turn. Only the server knows this — the client sent audio — and a chat
|
|
527
|
-
* surface needs it to show the user's own message.
|
|
528
|
-
*/
|
|
529
|
-
type: 'transcript'
|
|
530
|
-
text: string
|
|
531
|
-
agent?: string
|
|
532
|
-
session?: string
|
|
533
|
-
}
|
|
534
|
-
| {
|
|
535
|
-
type: 'data'
|
|
536
|
-
name: string
|
|
537
|
-
data: unknown
|
|
538
|
-
agent?: string
|
|
539
|
-
session?: string
|
|
540
|
-
}
|
|
541
|
-
| {
|
|
542
|
-
type: 'generative-ui'
|
|
543
|
-
spec: unknown
|
|
544
|
-
agent?: string
|
|
545
|
-
session?: string
|
|
546
|
-
}
|
|
547
|
-
| {
|
|
548
|
-
type: 'suspended'
|
|
549
|
-
reason: 'rpc-missing'
|
|
550
|
-
missingRpcs: string[]
|
|
551
|
-
}
|
|
552
|
-
| {
|
|
553
|
-
type: 'interrupted'
|
|
554
|
-
runId: string
|
|
555
|
-
/** The truncated assistant text at the moment generation stopped. */
|
|
556
|
-
text: string
|
|
557
|
-
reason: 'speech' | 'user' | 'timeout'
|
|
558
|
-
agent?: string
|
|
559
|
-
session?: string
|
|
560
|
-
}
|
|
561
|
-
| { type: 'done' }
|
|
562
|
-
|
|
563
|
-
export interface AgentStreamChannel extends PikkuChannel<
|
|
564
|
-
unknown,
|
|
565
|
-
AgentStreamEvent
|
|
566
|
-
> {}
|
|
567
|
-
|
|
568
|
-
export type PendingApproval =
|
|
569
|
-
| {
|
|
570
|
-
type: 'tool-call'
|
|
571
|
-
toolCallId: string
|
|
572
|
-
toolName: string
|
|
573
|
-
args: unknown
|
|
574
|
-
}
|
|
575
|
-
| {
|
|
576
|
-
type: 'agent-call'
|
|
577
|
-
toolCallId: string
|
|
578
|
-
agentName: string
|
|
579
|
-
agentRunId: string
|
|
580
|
-
displayToolName: string
|
|
581
|
-
displayArgs: unknown
|
|
582
|
-
}
|
|
583
|
-
| {
|
|
584
|
-
type: 'credential-request'
|
|
585
|
-
toolCallId: string
|
|
586
|
-
toolName: string
|
|
587
|
-
args: unknown
|
|
588
|
-
credentialName: string
|
|
589
|
-
credentialType: 'oauth2' | 'apikey'
|
|
590
|
-
connectUrl?: string
|
|
591
|
-
}
|
|
592
|
-
|
|
593
|
-
export interface AgentRunState {
|
|
594
|
-
runId: string
|
|
595
|
-
agentName: string
|
|
596
|
-
threadId: string
|
|
597
|
-
resourceId: string
|
|
598
|
-
status: 'running' | 'suspended' | 'completed' | 'failed' | 'interrupted'
|
|
599
|
-
errorMessage?: string
|
|
600
|
-
suspendReason?: 'approval' | 'credential' | 'rpc-missing'
|
|
601
|
-
missingRpcs?: string[]
|
|
602
|
-
pendingApprovals?: PendingApproval[]
|
|
603
|
-
usage: { inputTokens: number; outputTokens: number; model: string }
|
|
604
|
-
createdAt: Date
|
|
605
|
-
updatedAt: Date
|
|
606
|
-
}
|
|
607
|
-
|
|
608
|
-
export interface AgentRunRow {
|
|
609
|
-
runId: string
|
|
610
|
-
agentName: string
|
|
611
|
-
threadId: string
|
|
612
|
-
resourceId: string
|
|
613
|
-
status: string
|
|
614
|
-
errorMessage?: string
|
|
615
|
-
suspendReason?: string
|
|
616
|
-
missingRpcs?: string[]
|
|
617
|
-
usageInputTokens: number
|
|
618
|
-
usageOutputTokens: number
|
|
619
|
-
usageModel: string
|
|
620
|
-
createdAt: Date
|
|
621
|
-
updatedAt: Date
|
|
622
|
-
}
|
|
623
|
-
|
|
624
|
-
export interface AgentRunService {
|
|
625
|
-
listThreads(options?: {
|
|
626
|
-
agentName?: string
|
|
627
|
-
resourceId?: string
|
|
628
|
-
/**
|
|
629
|
-
* Restrict results to threads owned by one of these session principals. A
|
|
630
|
-
* thread matches when its `resourceId` is the principal itself or one of its
|
|
631
|
-
* `principal:` sub-partitions, mirroring the composition
|
|
632
|
-
* `resolveOwnerResourceId` writes.
|
|
633
|
-
*
|
|
634
|
-
* Unlike `resourceId`, which is an optional exact-match filter, this is an
|
|
635
|
-
* authorization constraint: an empty array matches nothing. Callers exposing
|
|
636
|
-
* threads over the wire must derive it from the session, never from input.
|
|
637
|
-
*/
|
|
638
|
-
owners?: string[]
|
|
639
|
-
limit?: number
|
|
640
|
-
offset?: number
|
|
641
|
-
}): Promise<AgentThread[]>
|
|
642
|
-
getThread(threadId: string): Promise<AgentThread | null>
|
|
643
|
-
getThreadMessages(threadId: string): Promise<AgentMessage[]>
|
|
644
|
-
getThreadRuns(threadId: string): Promise<AgentRunRow[]>
|
|
645
|
-
deleteThread(threadId: string): Promise<boolean>
|
|
646
|
-
getDistinctAgentNames(): Promise<string[]>
|
|
647
|
-
}
|
|
648
|
-
|
|
649
|
-
export type AgentsMeta = Record<
|
|
650
|
-
string,
|
|
651
|
-
Omit<
|
|
652
|
-
CoreAgent,
|
|
653
|
-
| 'input'
|
|
654
|
-
| 'output'
|
|
655
|
-
| 'tools'
|
|
656
|
-
| 'agents'
|
|
657
|
-
| 'workflows'
|
|
658
|
-
| 'middleware'
|
|
659
|
-
| 'channelMiddleware'
|
|
660
|
-
| 'agentMiddleware'
|
|
661
|
-
| 'permissions'
|
|
662
|
-
> & {
|
|
663
|
-
tools?: string[]
|
|
664
|
-
agents?: string[]
|
|
665
|
-
workflows?: string[]
|
|
666
|
-
inputSchema: string | null
|
|
667
|
-
outputSchema: string | null
|
|
668
|
-
workingMemorySchema: string | null
|
|
669
|
-
middleware?: MiddlewareMetadata[]
|
|
670
|
-
channelMiddleware?: MiddlewareMetadata[]
|
|
671
|
-
agentMiddleware?: MiddlewareMetadata[]
|
|
672
|
-
permissions?: PermissionMetadata[]
|
|
673
|
-
sourceFile?: string
|
|
674
|
-
exportedName?: string
|
|
675
|
-
}
|
|
676
|
-
>
|