@apifuse/provider-sdk 2.2.0-beta.7 → 2.2.0-beta.70
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/AUTHORING.md +943 -51
- package/CHANGELOG.md +273 -1
- package/LICENSE +21 -0
- package/README.md +117 -29
- package/SUBMISSION.md +3 -2
- package/bin/apifuse-check.ts +293 -13
- package/bin/apifuse-dev.ts +42 -19
- package/bin/apifuse-migrate-deployment.ts +200 -0
- package/bin/apifuse-migrate-operation-declaration.ts +55 -0
- package/bin/apifuse-migrate-shape.ts +202 -0
- package/bin/apifuse-pack-check.ts +19 -6
- package/bin/apifuse-pack-smoke.ts +57 -2
- package/bin/apifuse-pack-types.ts +736 -38
- package/bin/apifuse-perf.ts +59 -23
- package/bin/apifuse-record.ts +923 -94
- package/bin/apifuse-submit-check.ts +2313 -281
- package/bin/apifuse-test.ts +3 -1
- package/bin/submit-check-delimited-text.ts +50 -0
- package/dist/auth-turn/index.d.ts +3 -3
- package/dist/auth-turn/index.js +1 -1
- package/dist/auth.d.ts +14 -0
- package/dist/auth.js +67 -0
- package/dist/ceremonies/index.d.ts +16 -0
- package/dist/ceremonies/index.js +141 -36
- package/dist/cli/commands.d.ts +1 -1
- package/dist/cli/commands.js +30 -0
- package/dist/cli/create.d.ts +1 -1
- package/dist/cli/create.js +8 -2
- package/dist/cli/deployment-intent.d.ts +178 -0
- package/dist/cli/deployment-intent.js +277 -0
- package/dist/cli/local-connection.d.ts +111 -0
- package/dist/cli/local-connection.js +151 -0
- package/dist/cli/migrate-deployment-intent.d.ts +132 -0
- package/dist/cli/migrate-deployment-intent.js +1552 -0
- package/dist/cli/migrate-operation-declaration.d.ts +70 -0
- package/dist/cli/migrate-operation-declaration.js +2206 -0
- package/dist/cli/migrate-operation-shape.d.ts +44 -0
- package/dist/cli/migrate-operation-shape.js +113 -0
- package/dist/cli/migrate-provider-shape.d.ts +56 -0
- package/dist/cli/migrate-provider-shape.js +580 -0
- package/dist/cli/resolver-runtime.d.ts +21 -0
- package/dist/cli/resolver-runtime.js +31 -0
- package/dist/cli/templates/provider/.agents/skills/health-checks-and-fail-closed/SKILL.md.tpl +141 -23
- package/dist/cli/templates/provider/Dockerfile.tpl +1 -1
- package/dist/cli/templates/provider/README.md.tpl +41 -19
- package/dist/cli/templates/provider/index.ts.tpl +6 -3
- package/dist/cli/templates/provider/operations/ping.ts.tpl +4 -1
- package/dist/cli/templates/provider/provider.json.tpl +6 -0
- package/dist/config/loader.d.ts +202 -16
- package/dist/config/loader.js +491 -141
- package/dist/contract-serialization.js +4 -8
- package/dist/contract-types.d.ts +12 -5
- package/dist/contract.js +24 -10
- package/dist/declaration-validation.d.ts +34 -0
- package/dist/declaration-validation.js +305 -0
- package/dist/define.d.ts +71 -29
- package/dist/define.js +807 -69
- package/dist/dev.d.ts +5 -0
- package/dist/dev.js +8 -1
- package/dist/engine.d.ts +129 -0
- package/dist/engine.js +209 -0
- package/dist/error-observability.d.ts +7 -0
- package/dist/error-observability.js +61 -0
- package/dist/error-resolution.d.ts +18 -0
- package/dist/error-resolution.js +243 -0
- package/dist/errors.d.ts +74 -0
- package/dist/errors.js +99 -0
- package/dist/fixture-sanitization.d.ts +28 -0
- package/dist/fixture-sanitization.js +371 -0
- package/dist/handle-meta.d.ts +90 -0
- package/dist/handle-meta.js +73 -0
- package/dist/handle.d.ts +226 -0
- package/dist/handle.js +345 -0
- package/dist/health-scenario.d.ts +1901 -0
- package/dist/health-scenario.js +653 -0
- package/dist/i18n/catalog.js +21 -1
- package/dist/i18n/error-messages.d.ts +86 -0
- package/dist/i18n/error-messages.js +192 -0
- package/dist/i18n/index.d.ts +1 -0
- package/dist/i18n/index.js +1 -0
- package/dist/i18n/keys.d.ts +12 -0
- package/dist/i18n/keys.js +76 -5
- package/dist/i18n/operation-locale-namespace.d.ts +2 -0
- package/dist/i18n/operation-locale-namespace.js +7 -0
- package/dist/index.d.ts +40 -15
- package/dist/index.js +29 -11
- package/dist/lint.d.ts +43 -11
- package/dist/lint.js +2512 -177
- package/dist/native-address.d.ts +43 -0
- package/dist/native-address.js +281 -0
- package/dist/native-egress-policy.d.ts +31 -0
- package/dist/native-egress-policy.js +288 -0
- package/dist/observability.d.ts +5 -2
- package/dist/observability.js +48 -1
- package/dist/provider.d.ts +18 -8
- package/dist/provider.js +11 -6
- package/dist/runtime/auth-flow.d.ts +6 -1
- package/dist/runtime/auth-flow.js +8 -0
- package/dist/runtime/bounded-expiring-map.d.ts +21 -0
- package/dist/runtime/bounded-expiring-map.js +64 -0
- package/dist/runtime/browser-telemetry-binding.d.ts +5 -0
- package/dist/runtime/browser-telemetry-binding.js +83 -0
- package/dist/runtime/browser-telemetry.d.ts +76 -0
- package/dist/runtime/browser-telemetry.js +165 -0
- package/dist/runtime/browser.d.ts +4 -0
- package/dist/runtime/browser.js +688 -83
- package/dist/runtime/cache-telemetry.d.ts +71 -0
- package/dist/runtime/cache-telemetry.js +177 -0
- package/dist/runtime/cache.d.ts +3 -0
- package/dist/runtime/cache.js +245 -23
- package/dist/runtime/capability-response.d.ts +3 -0
- package/dist/runtime/capability-response.js +56 -0
- package/dist/runtime/capability-telemetry.d.ts +46 -0
- package/dist/runtime/capability-telemetry.js +68 -0
- package/dist/runtime/chrome149-header-order.d.ts +58 -0
- package/dist/runtime/chrome149-header-order.js +289 -0
- package/dist/runtime/diagnostic-env-values.d.ts +5 -0
- package/dist/runtime/diagnostic-env-values.js +57 -0
- package/dist/runtime/diagnostic-env.d.ts +14 -0
- package/dist/runtime/diagnostic-env.js +44 -0
- package/dist/runtime/diagnostic-redactor.d.ts +54 -0
- package/dist/runtime/diagnostic-redactor.js +571 -0
- package/dist/runtime/egress-lease.d.ts +65 -0
- package/dist/runtime/egress-lease.js +236 -0
- package/dist/runtime/engine-mode.d.ts +74 -0
- package/dist/runtime/engine-mode.js +152 -0
- package/dist/runtime/env.js +14 -1
- package/dist/runtime/executor.d.ts +3 -2
- package/dist/runtime/executor.js +23 -26
- package/dist/runtime/handle-wordlist.d.ts +43 -0
- package/dist/runtime/handle-wordlist.js +256 -0
- package/dist/runtime/handle.d.ts +71 -0
- package/dist/runtime/handle.js +908 -0
- package/dist/runtime/http-telemetry-binding.d.ts +10 -0
- package/dist/runtime/http-telemetry-binding.js +152 -0
- package/dist/runtime/http-telemetry-guard.d.ts +16 -0
- package/dist/runtime/http-telemetry-guard.js +202 -0
- package/dist/runtime/http-telemetry.d.ts +104 -0
- package/dist/runtime/http-telemetry.js +190 -0
- package/dist/runtime/http.d.ts +34 -0
- package/dist/runtime/http.js +680 -121
- package/dist/runtime/insights.js +2 -2
- package/dist/runtime/instrumentation.d.ts +2 -2
- package/dist/runtime/instrumentation.js +462 -19
- package/dist/runtime/native-network-errors.d.ts +33 -0
- package/dist/runtime/native-network-errors.js +69 -0
- package/dist/runtime/native-network.d.ts +105 -0
- package/dist/runtime/native-network.js +1433 -0
- package/dist/runtime/native-telemetry.d.ts +142 -0
- package/dist/runtime/native-telemetry.js +231 -0
- package/dist/runtime/ocr-telemetry.d.ts +82 -0
- package/dist/runtime/ocr-telemetry.js +192 -0
- package/dist/runtime/ocr.d.ts +29 -0
- package/dist/runtime/ocr.js +468 -0
- package/dist/runtime/otlp.d.ts +71 -2
- package/dist/runtime/otlp.js +398 -16
- package/dist/runtime/provider.d.ts +7 -0
- package/dist/runtime/provider.js +14 -0
- package/dist/runtime/proxy-errors.js +6 -2
- package/dist/runtime/proxy-nodemaven.d.ts +56 -0
- package/dist/runtime/proxy-nodemaven.js +147 -0
- package/dist/runtime/proxy-retry-policy.d.ts +4 -1
- package/dist/runtime/proxy-retry-policy.js +11 -2
- package/dist/runtime/proxy-telemetry.d.ts +133 -3
- package/dist/runtime/proxy-telemetry.js +218 -70
- package/dist/runtime/redirect-hop-headers.d.ts +19 -0
- package/dist/runtime/redirect-hop-headers.js +58 -0
- package/dist/runtime/redirects.d.ts +61 -0
- package/dist/runtime/redirects.js +149 -0
- package/dist/runtime/redis.d.ts +1 -1
- package/dist/runtime/redis.js +4 -2
- package/dist/runtime/request-options.d.ts +75 -1
- package/dist/runtime/request-options.js +588 -0
- package/dist/runtime/request-telemetry.d.ts +70 -0
- package/dist/runtime/request-telemetry.js +229 -0
- package/dist/runtime/resolver-config.d.ts +13 -0
- package/dist/runtime/resolver-config.js +14 -0
- package/dist/runtime/resolver-public.d.ts +3 -0
- package/dist/runtime/resolver-public.js +1 -0
- package/dist/runtime/resolver-runtime-options.d.ts +14 -0
- package/dist/runtime/resolver-runtime-options.js +33 -0
- package/dist/runtime/resolver-shared.d.ts +24 -0
- package/dist/runtime/resolver-shared.js +69 -0
- package/dist/runtime/resolver-span-attributes.d.ts +34 -0
- package/dist/runtime/resolver-span-attributes.js +93 -0
- package/dist/runtime/resolver-telemetry.d.ts +135 -0
- package/dist/runtime/resolver-telemetry.js +204 -0
- package/dist/runtime/resolver-usage.d.ts +32 -0
- package/dist/runtime/resolver-usage.js +54 -0
- package/dist/runtime/resolver-vendors/bindings.d.ts +53 -0
- package/dist/runtime/resolver-vendors/bindings.js +45 -0
- package/dist/runtime/resolver-vendors/browser.d.ts +24 -0
- package/dist/runtime/resolver-vendors/browser.js +423 -0
- package/dist/runtime/resolver-vendors/capsolver.d.ts +22 -0
- package/dist/runtime/resolver-vendors/capsolver.js +544 -0
- package/dist/runtime/resolver-vendors/hosts.d.ts +23 -0
- package/dist/runtime/resolver-vendors/hosts.js +68 -0
- package/dist/runtime/resolver-vendors/hypersolutions.d.ts +27 -0
- package/dist/runtime/resolver-vendors/hypersolutions.js +369 -0
- package/dist/runtime/resolver-vendors/twocaptcha.d.ts +24 -0
- package/dist/runtime/resolver-vendors/twocaptcha.js +425 -0
- package/dist/runtime/resolver-vendors/types.d.ts +125 -0
- package/dist/runtime/resolver-vendors/types.js +106 -0
- package/dist/runtime/resolver.d.ts +79 -0
- package/dist/runtime/resolver.js +1094 -0
- package/dist/runtime/state-telemetry.d.ts +79 -0
- package/dist/runtime/state-telemetry.js +194 -0
- package/dist/runtime/state.d.ts +10 -1
- package/dist/runtime/state.js +322 -82
- package/dist/runtime/stealth-akamai-sbsd.d.ts +54 -0
- package/dist/runtime/stealth-akamai-sbsd.js +142 -0
- package/dist/runtime/stealth-cookies.d.ts +24 -0
- package/dist/runtime/stealth-cookies.js +131 -0
- package/dist/runtime/stealth-owned-headers.d.ts +39 -0
- package/dist/runtime/stealth-owned-headers.js +57 -0
- package/dist/runtime/stealth-telemetry.d.ts +92 -0
- package/dist/runtime/stealth-telemetry.js +179 -0
- package/dist/runtime/stealth.d.ts +45 -6
- package/dist/runtime/stealth.js +1775 -320
- package/dist/runtime/stt-telemetry.d.ts +77 -0
- package/dist/runtime/stt-telemetry.js +176 -0
- package/dist/runtime/stt.js +18 -19
- package/dist/runtime/timeout.d.ts +5 -0
- package/dist/runtime/timeout.js +12 -0
- package/dist/runtime/trace-config.d.ts +12 -0
- package/dist/runtime/trace-config.js +62 -0
- package/dist/runtime/trace.d.ts +17 -0
- package/dist/runtime/trace.js +176 -25
- package/dist/runtime-boundary-lint.d.ts +137 -0
- package/dist/runtime-boundary-lint.js +590 -0
- package/dist/schema.d.ts +20 -0
- package/dist/schema.js +72 -2
- package/dist/serve.d.ts +1 -1
- package/dist/serve.js +1 -1
- package/dist/server/error-observability.d.ts +1 -0
- package/dist/server/error-observability.js +1 -0
- package/dist/server/error-stack-frames.d.ts +35 -0
- package/dist/server/error-stack-frames.js +219 -0
- package/dist/server/index.d.ts +21 -2
- package/dist/server/index.js +11 -2
- package/dist/server/runtime-diagnostics.d.ts +165 -0
- package/dist/server/runtime-diagnostics.js +360 -0
- package/dist/server/sdk-version.d.ts +3 -0
- package/dist/server/sdk-version.js +19 -0
- package/dist/server/self-test-input-tokens.d.ts +2 -1
- package/dist/server/self-test-input-tokens.js +18 -14
- package/dist/server/self-test-redaction.js +8 -33
- package/dist/server/self-test.d.ts +18 -3
- package/dist/server/self-test.js +139 -76
- package/dist/server/sensitive-values.d.ts +26 -0
- package/dist/server/sensitive-values.js +137 -0
- package/dist/server/serve-implementation.d.ts +285 -0
- package/dist/server/serve-implementation.js +3172 -0
- package/dist/server/serve.d.ts +1 -75
- package/dist/server/serve.js +1 -1170
- package/dist/server/state-backend-report.d.ts +70 -0
- package/dist/server/state-backend-report.js +113 -0
- package/dist/server/trace-output.d.ts +7 -0
- package/dist/server/trace-output.js +111 -0
- package/dist/server/types.d.ts +37 -5
- package/dist/server/types.js +34 -1
- package/dist/stateful/errors.d.ts +19 -0
- package/dist/stateful/errors.js +24 -0
- package/dist/stateful/http-provider-event-emitter.d.ts +40 -0
- package/dist/stateful/http-provider-event-emitter.js +237 -0
- package/dist/stateful/http-session-owner-registry.d.ts +44 -0
- package/dist/stateful/http-session-owner-registry.js +210 -0
- package/dist/stateful/index.d.ts +18 -0
- package/dist/stateful/index.js +18 -0
- package/dist/stateful/provider-event-delivery-failures.d.ts +32 -0
- package/dist/stateful/provider-event-delivery-failures.js +43 -0
- package/dist/stateful/provider-event-pipeline-metrics.d.ts +46 -0
- package/dist/stateful/provider-event-pipeline-metrics.js +48 -0
- package/dist/stateful/provider-event-pipeline.d.ts +50 -0
- package/dist/stateful/provider-event-pipeline.js +1 -0
- package/dist/stateful/provider-events.d.ts +101 -0
- package/dist/stateful/provider-events.js +289 -0
- package/dist/stateful/session-key.d.ts +15 -0
- package/dist/stateful/session-key.js +86 -0
- package/dist/stateful/stateful-provider-adapter-context.d.ts +5 -0
- package/dist/stateful/stateful-provider-adapter-context.js +42 -0
- package/dist/stateful/stateful-provider-adapter-metrics.d.ts +15 -0
- package/dist/stateful/stateful-provider-adapter-metrics.js +21 -0
- package/dist/stateful/stateful-provider-adapter.d.ts +98 -0
- package/dist/stateful/stateful-provider-adapter.js +287 -0
- package/dist/stateful/stateful-provider-observability.d.ts +62 -0
- package/dist/stateful/stateful-provider-observability.js +161 -0
- package/dist/stateful/stateful-provider-owner-forwarder.d.ts +41 -0
- package/dist/stateful/stateful-provider-owner-forwarder.js +237 -0
- package/dist/stateful/stateful-provider-runtime-context.d.ts +35 -0
- package/dist/stateful/stateful-provider-runtime-context.js +61 -0
- package/dist/stateful/stateful-provider-runtime-executor.d.ts +34 -0
- package/dist/stateful/stateful-provider-runtime-executor.js +52 -0
- package/dist/stateful/stateful-provider-session-routing.d.ts +67 -0
- package/dist/stateful/stateful-provider-session-routing.js +345 -0
- package/dist/stateful/stateful-provider-session-runtime.d.ts +98 -0
- package/dist/stateful/stateful-provider-session-runtime.js +245 -0
- package/dist/stateful-signing.d.ts +18 -0
- package/dist/stateful-signing.js +27 -0
- package/dist/stealth/profiles.d.ts +15 -4
- package/dist/stealth/profiles.js +169 -211
- package/dist/stream-evidence.d.ts +74 -0
- package/dist/stream-evidence.js +785 -0
- package/dist/stream.js +7 -1
- package/dist/testing/index.d.ts +2 -1
- package/dist/testing/index.js +2 -1
- package/dist/testing/run.d.ts +32 -2
- package/dist/testing/run.js +509 -25
- package/dist/trace-sanitization.d.ts +6 -0
- package/dist/trace-sanitization.js +68 -0
- package/dist/types.d.ts +899 -210
- package/dist/types.js +1 -0
- package/dist/typescript-module.d.ts +39 -0
- package/dist/typescript-module.js +72 -0
- package/package.json +52 -6
- package/src/auth-turn/index.ts +1 -1
- package/src/auth.ts +118 -0
- package/src/ceremonies/index.ts +189 -46
- package/src/cli/commands.ts +37 -0
- package/src/cli/create.ts +8 -2
- package/src/cli/deployment-intent.ts +364 -0
- package/src/cli/local-connection.ts +221 -0
- package/src/cli/migrate-deployment-intent.ts +1908 -0
- package/src/cli/migrate-operation-declaration.ts +3026 -0
- package/src/cli/migrate-operation-shape.ts +184 -0
- package/src/cli/migrate-provider-shape.ts +778 -0
- package/src/cli/resolver-runtime.ts +72 -0
- package/src/cli/templates/provider/.agents/skills/health-checks-and-fail-closed/SKILL.md.tpl +141 -23
- package/src/cli/templates/provider/Dockerfile.tpl +1 -1
- package/src/cli/templates/provider/README.md.tpl +41 -19
- package/src/cli/templates/provider/index.ts.tpl +6 -3
- package/src/cli/templates/provider/operations/ping.ts.tpl +4 -1
- package/src/cli/templates/provider/provider.json.tpl +6 -0
- package/src/config/loader.ts +774 -181
- package/src/contract-serialization.ts +5 -7
- package/src/contract-types.ts +12 -5
- package/src/contract.ts +24 -10
- package/src/declaration-validation.ts +376 -0
- package/src/define.ts +1105 -131
- package/src/dev.ts +13 -1
- package/src/engine.ts +390 -0
- package/src/error-observability.ts +64 -0
- package/src/error-resolution.ts +269 -0
- package/src/errors.ts +157 -0
- package/src/fixture-sanitization.ts +422 -0
- package/src/handle-meta.ts +143 -0
- package/src/handle.ts +694 -0
- package/src/health-scenario.ts +960 -0
- package/src/i18n/catalog.ts +23 -1
- package/src/i18n/error-messages.ts +255 -0
- package/src/i18n/index.ts +1 -0
- package/src/i18n/keys.ts +80 -6
- package/src/i18n/operation-locale-namespace.ts +10 -0
- package/src/index.ts +390 -23
- package/src/lint.ts +2975 -234
- package/src/native-address.ts +340 -0
- package/src/native-egress-policy.ts +358 -0
- package/src/observability.ts +51 -1
- package/src/provider.ts +207 -27
- package/src/runtime/auth-flow.ts +15 -0
- package/src/runtime/bounded-expiring-map.ts +67 -0
- package/src/runtime/browser-telemetry-binding.ts +92 -0
- package/src/runtime/browser-telemetry.ts +289 -0
- package/src/runtime/browser.ts +882 -99
- package/src/runtime/cache-telemetry.ts +247 -0
- package/src/runtime/cache.ts +258 -22
- package/src/runtime/capability-response.ts +53 -0
- package/src/runtime/capability-telemetry.ts +101 -0
- package/src/runtime/chrome149-header-order.ts +330 -0
- package/src/runtime/diagnostic-env-values.ts +56 -0
- package/src/runtime/diagnostic-env.ts +65 -0
- package/src/runtime/diagnostic-redactor.ts +668 -0
- package/src/runtime/egress-lease.ts +341 -0
- package/src/runtime/engine-mode.ts +233 -0
- package/src/runtime/env.ts +15 -1
- package/src/runtime/executor.ts +39 -32
- package/src/runtime/handle-wordlist.ts +266 -0
- package/src/runtime/handle.ts +1180 -0
- package/src/runtime/http-telemetry-binding.ts +162 -0
- package/src/runtime/http-telemetry-guard.ts +208 -0
- package/src/runtime/http-telemetry.ts +292 -0
- package/src/runtime/http.ts +896 -150
- package/src/runtime/insights.ts +2 -2
- package/src/runtime/instrumentation.ts +628 -28
- package/src/runtime/native-network-errors.ts +99 -0
- package/src/runtime/native-network.ts +1853 -0
- package/src/runtime/native-telemetry.ts +366 -0
- package/src/runtime/ocr-telemetry.ts +308 -0
- package/src/runtime/ocr.ts +564 -0
- package/src/runtime/otlp.ts +468 -21
- package/src/runtime/provider.ts +15 -0
- package/src/runtime/proxy-errors.ts +12 -4
- package/src/runtime/proxy-nodemaven.ts +222 -0
- package/src/runtime/proxy-retry-policy.ts +12 -1
- package/src/runtime/proxy-telemetry.ts +358 -103
- package/src/runtime/redirect-hop-headers.ts +71 -0
- package/src/runtime/redirects.ts +215 -0
- package/src/runtime/redis.ts +7 -2
- package/src/runtime/request-options.ts +728 -1
- package/src/runtime/request-telemetry.ts +375 -0
- package/src/runtime/resolver-config.ts +18 -0
- package/src/runtime/resolver-public.ts +44 -0
- package/src/runtime/resolver-runtime-options.ts +50 -0
- package/src/runtime/resolver-shared.ts +113 -0
- package/src/runtime/resolver-span-attributes.ts +139 -0
- package/src/runtime/resolver-telemetry.ts +362 -0
- package/src/runtime/resolver-usage.ts +99 -0
- package/src/runtime/resolver-vendors/bindings.ts +61 -0
- package/src/runtime/resolver-vendors/browser.ts +591 -0
- package/src/runtime/resolver-vendors/capsolver.ts +727 -0
- package/src/runtime/resolver-vendors/hosts.ts +81 -0
- package/src/runtime/resolver-vendors/hypersolutions.ts +480 -0
- package/src/runtime/resolver-vendors/twocaptcha.ts +555 -0
- package/src/runtime/resolver-vendors/types.ts +261 -0
- package/src/runtime/resolver.ts +1543 -0
- package/src/runtime/state-telemetry.ts +298 -0
- package/src/runtime/state.ts +435 -89
- package/src/runtime/stealth-akamai-sbsd.ts +207 -0
- package/src/runtime/stealth-cookies.ts +155 -0
- package/src/runtime/stealth-owned-headers.ts +67 -0
- package/src/runtime/stealth-telemetry.ts +309 -0
- package/src/runtime/stealth.ts +2275 -372
- package/src/runtime/stt-telemetry.ts +282 -0
- package/src/runtime/stt.ts +96 -91
- package/src/runtime/timeout.ts +18 -0
- package/src/runtime/trace-config.ts +78 -0
- package/src/runtime/trace.ts +257 -35
- package/src/runtime-boundary-lint.ts +707 -0
- package/src/schema.ts +80 -2
- package/src/serve.ts +6 -1
- package/src/server/error-observability.ts +1 -0
- package/src/server/error-stack-frames.ts +214 -0
- package/src/server/index.ts +184 -2
- package/src/server/runtime-diagnostics.ts +522 -0
- package/src/server/sdk-version.ts +22 -0
- package/src/server/self-test-input-tokens.ts +29 -14
- package/src/server/self-test-redaction.ts +10 -40
- package/src/server/self-test.ts +205 -89
- package/src/server/sensitive-values.ts +211 -0
- package/src/server/serve-implementation.ts +4596 -0
- package/src/server/serve.ts +1 -1685
- package/src/server/state-backend-report.ts +185 -0
- package/src/server/trace-output.ts +189 -0
- package/src/server/types.ts +34 -1
- package/src/stateful/README.md +146 -0
- package/src/stateful/errors.ts +35 -0
- package/src/stateful/http-provider-event-emitter.ts +314 -0
- package/src/stateful/http-session-owner-registry.ts +306 -0
- package/src/stateful/index.ts +18 -0
- package/src/stateful/provider-event-delivery-failures.ts +80 -0
- package/src/stateful/provider-event-pipeline-metrics.ts +95 -0
- package/src/stateful/provider-event-pipeline.ts +61 -0
- package/src/stateful/provider-events.ts +462 -0
- package/src/stateful/session-key.ts +111 -0
- package/src/stateful/stateful-provider-adapter-context.ts +59 -0
- package/src/stateful/stateful-provider-adapter-metrics.ts +48 -0
- package/src/stateful/stateful-provider-adapter.ts +562 -0
- package/src/stateful/stateful-provider-observability.ts +261 -0
- package/src/stateful/stateful-provider-owner-forwarder.ts +310 -0
- package/src/stateful/stateful-provider-runtime-context.ts +96 -0
- package/src/stateful/stateful-provider-runtime-executor.ts +96 -0
- package/src/stateful/stateful-provider-session-routing.ts +546 -0
- package/src/stateful/stateful-provider-session-runtime.ts +403 -0
- package/src/stateful-signing.ts +46 -0
- package/src/stealth/profiles.ts +212 -231
- package/src/stream-evidence.ts +988 -0
- package/src/stream.ts +8 -1
- package/src/testing/index.ts +10 -1
- package/src/testing/run.ts +685 -19
- package/src/trace-sanitization.ts +110 -0
- package/src/types.ts +1014 -273
- package/src/typescript-module.ts +100 -0
- package/dist/choice-token.d.ts +0 -24
- package/dist/choice-token.js +0 -74
- package/dist/runtime/choice.d.ts +0 -15
- package/dist/runtime/choice.js +0 -413
- package/src/choice-token.ts +0 -165
- package/src/runtime/choice.ts +0 -686
|
@@ -0,0 +1,285 @@
|
|
|
1
|
+
import { Hono } from "hono";
|
|
2
|
+
import { z } from "zod";
|
|
3
|
+
import { type ProviderEngine, type ProviderEngineMode } from "../engine.js";
|
|
4
|
+
import { type ProviderErrorObservability } from "../errors.js";
|
|
5
|
+
import { type ProviderLocaleCatalogMap } from "../i18n/catalog.js";
|
|
6
|
+
import { type ProviderErrorCategory } from "../observability.js";
|
|
7
|
+
import type { HandleTelemetryEvent } from "../handle.js";
|
|
8
|
+
import { type HttpTelemetryLogPayload } from "../runtime/http-telemetry.js";
|
|
9
|
+
import { type ProxyTelemetryLogPayload } from "../runtime/proxy-telemetry.js";
|
|
10
|
+
import { type ResolverTelemetryLogPayload } from "../runtime/resolver-telemetry.js";
|
|
11
|
+
import type { OcrContext, ProviderContext, ProviderDefinition, ProviderFilesContext, ProviderRuntimeState, ProviderRuntimeTarget, ResolverContext, SttContext } from "../types.js";
|
|
12
|
+
import type { SelfTestCancellationLogEvent } from "./self-test.js";
|
|
13
|
+
import { type ProviderStateBackendLogEvent } from "./state-backend-report.js";
|
|
14
|
+
import { type AuthFlowRequest, type OperationRequest } from "./types.js";
|
|
15
|
+
/** Compact SDK-owned error classification emitted separately from the public response body. */
|
|
16
|
+
export declare const ERROR_OBSERVABILITY_HEADER = "X-ApiFuse-Error-Observability";
|
|
17
|
+
export type ErrorObservabilityDetails = {
|
|
18
|
+
category: ProviderErrorCategory;
|
|
19
|
+
taxonomyVersion: string;
|
|
20
|
+
retryable: boolean;
|
|
21
|
+
upstreamStatus?: number;
|
|
22
|
+
providerObservability?: ProviderErrorObservability;
|
|
23
|
+
};
|
|
24
|
+
export declare const ProviderServerStatefulForwardEnvelopeSchema: z.ZodObject<{
|
|
25
|
+
requestId: z.ZodString;
|
|
26
|
+
providerId: z.ZodString;
|
|
27
|
+
operationId: z.ZodString;
|
|
28
|
+
sessionKey: z.ZodString;
|
|
29
|
+
connectionId: z.ZodString;
|
|
30
|
+
serviceAccountId: z.ZodString;
|
|
31
|
+
ownerPodId: z.ZodString;
|
|
32
|
+
generation: z.ZodNumber;
|
|
33
|
+
sourcePodId: z.ZodString;
|
|
34
|
+
forwardedAt: z.ZodString;
|
|
35
|
+
deadlineAt: z.ZodOptional<z.ZodString>;
|
|
36
|
+
idempotencyKey: z.ZodOptional<z.ZodString>;
|
|
37
|
+
operationRequest: z.ZodObject<{
|
|
38
|
+
requestId: z.ZodString;
|
|
39
|
+
input: z.ZodRecord<z.ZodString, z.ZodUnknown>;
|
|
40
|
+
connectionId: z.ZodOptional<z.ZodString>;
|
|
41
|
+
tenantId: z.ZodOptional<z.ZodString>;
|
|
42
|
+
headers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
43
|
+
trace: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
44
|
+
connection: z.ZodOptional<z.ZodObject<{
|
|
45
|
+
id: z.ZodString;
|
|
46
|
+
mode: z.ZodEnum<{
|
|
47
|
+
credentials: "credentials";
|
|
48
|
+
none: "none";
|
|
49
|
+
oauth2: "oauth2";
|
|
50
|
+
"platform-managed": "platform-managed";
|
|
51
|
+
oauth2_proxied: "oauth2_proxied";
|
|
52
|
+
}>;
|
|
53
|
+
secrets: z.ZodRecord<z.ZodString, z.ZodString>;
|
|
54
|
+
scopes: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
55
|
+
metadata: z.ZodRecord<z.ZodString, z.ZodUnknown>;
|
|
56
|
+
externalRef: z.ZodString;
|
|
57
|
+
}, z.core.$strict>>;
|
|
58
|
+
}, z.core.$strict>;
|
|
59
|
+
}, z.core.$strict>;
|
|
60
|
+
export type ProviderServerStatefulForwardEnvelope = Readonly<z.infer<typeof ProviderServerStatefulForwardEnvelopeSchema>>;
|
|
61
|
+
export type ProviderServerStatefulOwnerFence = Readonly<Pick<ProviderServerStatefulForwardEnvelope, "providerId" | "sessionKey" | "ownerPodId" | "generation" | "sourcePodId" | "forwardedAt" | "requestId" | "idempotencyKey">>;
|
|
62
|
+
export type ProviderServerStatefulOwnerFenceValidator = (fence: ProviderServerStatefulOwnerFence, signal: AbortSignal) => boolean | Promise<boolean>;
|
|
63
|
+
export type ProviderServerOperationExecutorInput<TContext extends Partial<ProviderContext> = ProviderContext> = {
|
|
64
|
+
readonly provider: ProviderDefinition<TContext>;
|
|
65
|
+
readonly operationId: string;
|
|
66
|
+
readonly ctx: TContext;
|
|
67
|
+
readonly request: OperationRequest & {
|
|
68
|
+
readonly deadlineAt?: string;
|
|
69
|
+
};
|
|
70
|
+
readonly signal?: AbortSignal;
|
|
71
|
+
readonly internalStatefulForward?: ProviderServerStatefulForwardEnvelope;
|
|
72
|
+
};
|
|
73
|
+
export type ProviderServerOperationExecutor<TContext extends Partial<ProviderContext> = ProviderContext> = (input: ProviderServerOperationExecutorInput<TContext>) => Promise<unknown>;
|
|
74
|
+
export declare function resolveProviderProxyAffinityKey(provider: ProviderDefinition, request: OperationRequest, operationId: string): string;
|
|
75
|
+
export declare function resolveProviderResolverIdentityScope(provider: ProviderDefinition, affinityKey: string, contextId: string): string;
|
|
76
|
+
export declare function resolveAuthFlowProxyAffinityKey(provider: ProviderDefinition, request: Pick<AuthFlowRequest, "connection" | "connectionId" | "externalRef" | "tenantId" | "providerId">): string;
|
|
77
|
+
type ProviderRequestCost = {
|
|
78
|
+
durationMs: number;
|
|
79
|
+
cpuUserMicros: number;
|
|
80
|
+
cpuSystemMicros: number;
|
|
81
|
+
cpuTotalMicros: number;
|
|
82
|
+
};
|
|
83
|
+
type ProviderServerLogEventBase = ProviderRequestCost & {
|
|
84
|
+
providerId: string;
|
|
85
|
+
kind: "operation" | "auth";
|
|
86
|
+
route: string;
|
|
87
|
+
requestId?: string;
|
|
88
|
+
connectionId?: string;
|
|
89
|
+
flowId?: string;
|
|
90
|
+
tenantId?: string;
|
|
91
|
+
requestedProviderId?: string;
|
|
92
|
+
status: number;
|
|
93
|
+
proxy?: ProxyTelemetryLogPayload;
|
|
94
|
+
resolver?: ResolverTelemetryLogPayload;
|
|
95
|
+
http?: HttpTelemetryLogPayload;
|
|
96
|
+
};
|
|
97
|
+
export type ProviderServerLogEvent = (ProviderServerLogEventBase & {
|
|
98
|
+
level: "info";
|
|
99
|
+
event: "provider_request_completed";
|
|
100
|
+
}) | (ProviderServerLogEventBase & {
|
|
101
|
+
level: "warn" | "error";
|
|
102
|
+
event: "provider_request_failed";
|
|
103
|
+
code: string;
|
|
104
|
+
errorClass: string;
|
|
105
|
+
message: string;
|
|
106
|
+
upstreamStatus?: number;
|
|
107
|
+
errorCategory?: ProviderErrorCategory;
|
|
108
|
+
taxonomyVersion?: string;
|
|
109
|
+
retryable?: boolean;
|
|
110
|
+
providerObservability?: ProviderErrorObservability;
|
|
111
|
+
causeChain?: ProviderErrorCauseFrame[];
|
|
112
|
+
stack?: string[];
|
|
113
|
+
signal?: "unregistered_provider_error_code";
|
|
114
|
+
signalFix?: string;
|
|
115
|
+
issues?: Array<{
|
|
116
|
+
path: string;
|
|
117
|
+
code: string;
|
|
118
|
+
message: string;
|
|
119
|
+
}>;
|
|
120
|
+
}) | {
|
|
121
|
+
level: "warn";
|
|
122
|
+
event: "provider_secrets_missing";
|
|
123
|
+
providerId: string;
|
|
124
|
+
missingSecrets: string[];
|
|
125
|
+
} | {
|
|
126
|
+
/** Emitted once at boot when `locales/en.json` exists but cannot be read. */
|
|
127
|
+
level: "warn";
|
|
128
|
+
event: "provider_locale_catalogs_unavailable";
|
|
129
|
+
providerId: string;
|
|
130
|
+
reason: string;
|
|
131
|
+
} | ({
|
|
132
|
+
level: "info";
|
|
133
|
+
event: "provider_handle";
|
|
134
|
+
} & HandleTelemetryEvent) | {
|
|
135
|
+
level: "warn";
|
|
136
|
+
event: "provider_cleanup_failed";
|
|
137
|
+
providerId: string;
|
|
138
|
+
kind: "operation" | "auth";
|
|
139
|
+
route: string;
|
|
140
|
+
requestId?: string;
|
|
141
|
+
resource: "browser" | "stealth";
|
|
142
|
+
errorClass: string;
|
|
143
|
+
message: string;
|
|
144
|
+
} | {
|
|
145
|
+
level: "error";
|
|
146
|
+
event: "provider_shutdown_hook_failed";
|
|
147
|
+
providerId: string;
|
|
148
|
+
hookIndex: number;
|
|
149
|
+
errorClass: string;
|
|
150
|
+
message: string;
|
|
151
|
+
} | {
|
|
152
|
+
/** `warn` when the requested attachment could not be honoured, otherwise `info`. */
|
|
153
|
+
level: "info" | "warn";
|
|
154
|
+
event: "provider_engine_mode";
|
|
155
|
+
providerId: string;
|
|
156
|
+
/** Resolved attachment; `custom` for an opaque host engine. */
|
|
157
|
+
mode: ProviderEngineMode | "custom";
|
|
158
|
+
source: "engine" | "env" | "option" | "default";
|
|
159
|
+
/** True for every non-remote attachment, whose removal is scheduled by ADR-0011. */
|
|
160
|
+
deprecated: boolean;
|
|
161
|
+
/** False when the engine refuses to attach; `/readyz` reports 503. */
|
|
162
|
+
attached: boolean;
|
|
163
|
+
sdkVersion: string;
|
|
164
|
+
runtimeTarget?: ProviderRuntimeTarget;
|
|
165
|
+
/**
|
|
166
|
+
* Non-fatal selection findings, e.g. `invalid_env_value`,
|
|
167
|
+
* `env_overrode_option`, `engine_object_overrode_requested_mode`,
|
|
168
|
+
* `engine_env_ignored`. Absent when the selection was unambiguous.
|
|
169
|
+
*/
|
|
170
|
+
warnings?: readonly string[];
|
|
171
|
+
} | ProviderStateBackendLogEvent | SelfTestCancellationLogEvent;
|
|
172
|
+
export type ProviderServerLogger = (event: ProviderServerLogEvent) => void;
|
|
173
|
+
export type ProviderServerOptions<TContext extends Partial<ProviderContext> = ProviderContext> = {
|
|
174
|
+
logger?: ProviderServerLogger;
|
|
175
|
+
/** Capability attachment boundary. Defaults to the local in-process engine. */
|
|
176
|
+
engine?: ProviderEngine;
|
|
177
|
+
/**
|
|
178
|
+
* Explicit engine attachment mode. Lowest precedence of the three inputs:
|
|
179
|
+
* an explicit `engine` object wins, then `APIFUSE__ENGINE__MODE` (the
|
|
180
|
+
* deployment outranks provider code), then this option, then the in-process
|
|
181
|
+
* default. Disagreement is never fatal — it is reported on the
|
|
182
|
+
* `provider_engine_mode` boot event (`env_overrode_option`,
|
|
183
|
+
* `engine_object_overrode_requested_mode`), which only `serve` emits. A value
|
|
184
|
+
* that is not a known mode throws `ValidationError`, because unlike the env it
|
|
185
|
+
* can only come from calling code.
|
|
186
|
+
*/
|
|
187
|
+
engineMode?: ProviderEngineMode;
|
|
188
|
+
/** Request-file resolver supplied by the engine host when `files` is declared. */
|
|
189
|
+
files?: ProviderFilesContext;
|
|
190
|
+
/** Optional provider-specific operation executor. Stateful providers use this to preserve provider-local runtime semantics. */
|
|
191
|
+
operationExecutor?: ProviderServerOperationExecutor<TContext>;
|
|
192
|
+
/** Optional signed internal executor for stateful owner forwarding. */
|
|
193
|
+
internalOperationExecutor?: ProviderServerOperationExecutor<TContext>;
|
|
194
|
+
statefulForwarding?: {
|
|
195
|
+
readonly secret: string;
|
|
196
|
+
readonly maxSkewMs?: number;
|
|
197
|
+
readonly replayCacheMaxEntries?: number;
|
|
198
|
+
/** Required fail-closed check against the SDK/runtime owner registry. */
|
|
199
|
+
readonly validateOwnerFence: ProviderServerStatefulOwnerFenceValidator;
|
|
200
|
+
};
|
|
201
|
+
/** Optional STT override for tests or custom hosts; local/prod normally resolves from env. */
|
|
202
|
+
stt?: SttContext;
|
|
203
|
+
/** Optional OCR override for tests or custom hosts; local/prod normally resolves from env. */
|
|
204
|
+
ocr?: OcrContext;
|
|
205
|
+
/**
|
|
206
|
+
* Optional resolver override for tests or custom hosts; local/prod normally resolves from env.
|
|
207
|
+
* SDK chains are reconstructed with each request's telemetry sink. An opaque host
|
|
208
|
+
* resolver is reported as one custom invocation; its internal vendor work is not exposed.
|
|
209
|
+
*/
|
|
210
|
+
resolver?: ResolverContext;
|
|
211
|
+
/**
|
|
212
|
+
* Pre-loaded provider locale catalogs used to localize auth turns and the
|
|
213
|
+
* client-facing `message`/`fix` of provider errors.
|
|
214
|
+
*
|
|
215
|
+
* Defaults to reading `locales/{en,ko,ja}.json` from the provider directory
|
|
216
|
+
* once at server construction. Supply this to bundle catalogs instead of
|
|
217
|
+
* probing the filesystem, or to pin catalogs in tests.
|
|
218
|
+
*/
|
|
219
|
+
localeCatalogs?: ProviderLocaleCatalogMap;
|
|
220
|
+
/** Optional runtime state override for tests or custom hosts. Production resolves Redis from env and fails closed when unavailable. */
|
|
221
|
+
state?: ProviderRuntimeState;
|
|
222
|
+
/** Allow process-local runtime state only for local development and tests. */
|
|
223
|
+
allowMemoryStateFallback?: boolean;
|
|
224
|
+
/**
|
|
225
|
+
* Graceful process shutdown. Hooks run in declaration order after listeners stop accepting work.
|
|
226
|
+
*
|
|
227
|
+
* @example
|
|
228
|
+
* ```ts
|
|
229
|
+
* await serve(provider, {
|
|
230
|
+
* shutdown: {
|
|
231
|
+
* hooks: [
|
|
232
|
+
* async () => { await emitter.flush(); },
|
|
233
|
+
* async () => { await sessionManager.closeAll("server-shutdown"); },
|
|
234
|
+
* async () => { await lease.release(); },
|
|
235
|
+
* async () => { await router.close(); },
|
|
236
|
+
* ],
|
|
237
|
+
* },
|
|
238
|
+
* });
|
|
239
|
+
* ```
|
|
240
|
+
*/
|
|
241
|
+
shutdown?: {
|
|
242
|
+
readonly hooks?: Array<() => Promise<void>>;
|
|
243
|
+
readonly signals?: boolean | NodeJS.Signals[];
|
|
244
|
+
readonly timeoutMs?: number;
|
|
245
|
+
};
|
|
246
|
+
};
|
|
247
|
+
export type ProviderErrorCauseFrame = {
|
|
248
|
+
errorClass: string;
|
|
249
|
+
code?: string;
|
|
250
|
+
message: string;
|
|
251
|
+
messageLength: number;
|
|
252
|
+
messageFingerprint: string;
|
|
253
|
+
providerObservability?: ProviderErrorObservability;
|
|
254
|
+
};
|
|
255
|
+
/**
|
|
256
|
+
* Primary, cross-runtime app factory. Declared capability ESM is preloaded
|
|
257
|
+
* asynchronously, so this path works on Bun and every supported Node release.
|
|
258
|
+
*/
|
|
259
|
+
export declare function createServerAppAsync<TContext extends Partial<ProviderContext> = ProviderContext>(provider: ProviderDefinition<TContext>, options?: ProviderServerOptions<TContext>): Promise<Hono>;
|
|
260
|
+
/**
|
|
261
|
+
* Synchronous compatibility factory. Standard providers remain synchronous on
|
|
262
|
+
* every runtime because they load no capability modules. Providers declaring a
|
|
263
|
+
* capability require Bun or Node >=22.12; older Node releases receive an
|
|
264
|
+
* actionable error directing them to createServerAppAsync().
|
|
265
|
+
*/
|
|
266
|
+
export declare function createServerApp<TContext extends Partial<ProviderContext> = ProviderContext>(provider: ProviderDefinition<TContext>, options?: ProviderServerOptions<TContext>): Hono;
|
|
267
|
+
export type ProviderServerCloseOptions = {
|
|
268
|
+
readonly timeoutMs?: number;
|
|
269
|
+
};
|
|
270
|
+
export type ProviderServerHandle = {
|
|
271
|
+
readonly port: number;
|
|
272
|
+
close(options?: ProviderServerCloseOptions): Promise<void>;
|
|
273
|
+
};
|
|
274
|
+
export interface ServeOptions<TContext extends Partial<ProviderContext> = ProviderContext> extends ProviderServerOptions<TContext> {
|
|
275
|
+
host?: string;
|
|
276
|
+
port?: number;
|
|
277
|
+
/**
|
|
278
|
+
* Port for the internal self-test listener (default 3001 or
|
|
279
|
+
* APIFUSE__PROVIDER_RUNTIME__SELF_TEST_PORT). The listener only starts
|
|
280
|
+
* when APIFUSE__PROVIDER_RUNTIME__SELF_TEST_MASTER_SECRET is present.
|
|
281
|
+
*/
|
|
282
|
+
selfTestPort?: number;
|
|
283
|
+
}
|
|
284
|
+
export declare function serve<TContext extends Partial<ProviderContext> = ProviderContext>(provider: ProviderDefinition<TContext>, options?: ServeOptions<TContext>): Promise<ProviderServerHandle>;
|
|
285
|
+
export {};
|