@apifuse/provider-sdk 2.2.0-beta.4 → 2.2.0-beta.40

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.
Files changed (303) hide show
  1. package/AUTHORING.md +501 -13
  2. package/CHANGELOG.md +165 -1
  3. package/README.md +72 -14
  4. package/SUBMISSION.md +1 -1
  5. package/bin/apifuse-check.ts +88 -4
  6. package/bin/apifuse-dev.ts +38 -5
  7. package/bin/apifuse-pack-check.ts +22 -2
  8. package/bin/apifuse-pack-smoke.ts +57 -2
  9. package/bin/apifuse-pack-types.ts +356 -38
  10. package/bin/apifuse-perf.ts +14 -13
  11. package/bin/apifuse-record.ts +691 -68
  12. package/bin/apifuse-submit-check.ts +518 -37
  13. package/bin/apifuse-sync-assets.ts +117 -0
  14. package/bin/submit-check-delimited-text.ts +50 -0
  15. package/dist/auth-turn/index.d.ts +3 -3
  16. package/dist/auth-turn/index.js +1 -1
  17. package/dist/auth.d.ts +14 -0
  18. package/dist/auth.js +67 -0
  19. package/dist/ceremonies/index.d.ts +16 -0
  20. package/dist/ceremonies/index.js +141 -36
  21. package/dist/cli/commands.d.ts +1 -1
  22. package/dist/cli/commands.js +8 -0
  23. package/dist/cli/create.d.ts +3 -0
  24. package/dist/cli/create.js +34 -35
  25. package/dist/cli/prompt-assets.d.ts +80 -0
  26. package/dist/cli/prompt-assets.js +743 -0
  27. package/dist/cli/templates/provider/AGENTS.md.tpl +17 -8
  28. package/dist/cli/templates/provider/Dockerfile.tpl +1 -1
  29. package/dist/cli/templates/provider/README.md.tpl +4 -4
  30. package/dist/cli/templates/provider/index.ts.tpl +6 -3
  31. package/dist/cli/templates/provider/operations/ping.ts.tpl +2 -1
  32. package/dist/config/loader.d.ts +177 -16
  33. package/dist/config/loader.js +424 -127
  34. package/dist/contract-serialization.js +4 -8
  35. package/dist/contract-types.d.ts +1 -0
  36. package/dist/contract.js +2 -0
  37. package/dist/declaration-validation.d.ts +32 -0
  38. package/dist/declaration-validation.js +207 -0
  39. package/dist/define.d.ts +51 -25
  40. package/dist/define.js +752 -38
  41. package/dist/error-resolution.d.ts +4 -0
  42. package/dist/error-resolution.js +122 -0
  43. package/dist/errors.d.ts +18 -0
  44. package/dist/errors.js +40 -0
  45. package/dist/fixture-sanitization.d.ts +28 -0
  46. package/dist/fixture-sanitization.js +217 -0
  47. package/dist/health-scenario.d.ts +1842 -0
  48. package/dist/health-scenario.js +624 -0
  49. package/dist/index.d.ts +19 -9
  50. package/dist/index.js +10 -6
  51. package/dist/lint.d.ts +6 -1
  52. package/dist/lint.js +362 -3
  53. package/dist/native-address.d.ts +43 -0
  54. package/dist/native-address.js +281 -0
  55. package/dist/native-egress-policy.d.ts +31 -0
  56. package/dist/native-egress-policy.js +288 -0
  57. package/dist/observability.d.ts +5 -2
  58. package/dist/observability.js +48 -1
  59. package/dist/provider.d.ts +8 -2
  60. package/dist/provider.js +3 -1
  61. package/dist/runtime/auth-flow.d.ts +5 -1
  62. package/dist/runtime/auth-flow.js +6 -0
  63. package/dist/runtime/browser.d.ts +1 -0
  64. package/dist/runtime/browser.js +492 -49
  65. package/dist/runtime/cache.d.ts +1 -0
  66. package/dist/runtime/cache.js +169 -15
  67. package/dist/runtime/choice-wordlist.d.ts +9 -0
  68. package/dist/runtime/choice-wordlist.js +138 -0
  69. package/dist/runtime/choice.d.ts +13 -1
  70. package/dist/runtime/choice.js +490 -102
  71. package/dist/runtime/executor.d.ts +2 -2
  72. package/dist/runtime/executor.js +26 -2
  73. package/dist/runtime/http.d.ts +1 -0
  74. package/dist/runtime/http.js +515 -53
  75. package/dist/runtime/instrumentation.d.ts +2 -2
  76. package/dist/runtime/instrumentation.js +366 -8
  77. package/dist/runtime/native-network-errors.d.ts +33 -0
  78. package/dist/runtime/native-network-errors.js +69 -0
  79. package/dist/runtime/native-network.d.ts +96 -0
  80. package/dist/runtime/native-network.js +1232 -0
  81. package/dist/runtime/ocr.d.ts +29 -0
  82. package/dist/runtime/ocr.js +440 -0
  83. package/dist/runtime/proxy-errors.js +6 -2
  84. package/dist/runtime/proxy-nodemaven.d.ts +56 -0
  85. package/dist/runtime/proxy-nodemaven.js +146 -0
  86. package/dist/runtime/proxy-telemetry.d.ts +80 -1
  87. package/dist/runtime/proxy-telemetry.js +154 -47
  88. package/dist/runtime/redirects.d.ts +29 -0
  89. package/dist/runtime/redirects.js +36 -0
  90. package/dist/runtime/redis.d.ts +1 -1
  91. package/dist/runtime/redis.js +4 -2
  92. package/dist/runtime/request-options.d.ts +68 -1
  93. package/dist/runtime/request-options.js +548 -0
  94. package/dist/runtime/resolver-config.d.ts +6 -0
  95. package/dist/runtime/resolver-config.js +6 -0
  96. package/dist/runtime/resolver-public.d.ts +1 -0
  97. package/dist/runtime/resolver-public.js +1 -0
  98. package/dist/runtime/resolver-shared.d.ts +3 -0
  99. package/dist/runtime/resolver-shared.js +12 -0
  100. package/dist/runtime/resolver-vendors/bindings.d.ts +48 -0
  101. package/dist/runtime/resolver-vendors/bindings.js +40 -0
  102. package/dist/runtime/resolver-vendors/browser.d.ts +22 -0
  103. package/dist/runtime/resolver-vendors/browser.js +377 -0
  104. package/dist/runtime/resolver-vendors/capsolver.d.ts +22 -0
  105. package/dist/runtime/resolver-vendors/capsolver.js +526 -0
  106. package/dist/runtime/resolver-vendors/hosts.d.ts +2 -0
  107. package/dist/runtime/resolver-vendors/hosts.js +33 -0
  108. package/dist/runtime/resolver-vendors/twocaptcha.d.ts +24 -0
  109. package/dist/runtime/resolver-vendors/twocaptcha.js +407 -0
  110. package/dist/runtime/resolver-vendors/types.d.ts +94 -0
  111. package/dist/runtime/resolver-vendors/types.js +96 -0
  112. package/dist/runtime/resolver.d.ts +60 -0
  113. package/dist/runtime/resolver.js +737 -0
  114. package/dist/runtime/secrets.d.ts +27 -0
  115. package/dist/runtime/secrets.js +51 -0
  116. package/dist/runtime/state.d.ts +3 -0
  117. package/dist/runtime/state.js +277 -71
  118. package/dist/runtime/stealth-cookies.d.ts +20 -0
  119. package/dist/runtime/stealth-cookies.js +111 -0
  120. package/dist/runtime/stealth.d.ts +28 -3
  121. package/dist/runtime/stealth.js +519 -255
  122. package/dist/runtime/stt.js +1 -12
  123. package/dist/runtime/timeout.d.ts +5 -0
  124. package/dist/runtime/timeout.js +12 -0
  125. package/dist/runtime/trace-config.d.ts +12 -0
  126. package/dist/runtime/trace-config.js +61 -0
  127. package/dist/serve.d.ts +1 -1
  128. package/dist/serve.js +1 -1
  129. package/dist/server/index.d.ts +5 -3
  130. package/dist/server/index.js +3 -3
  131. package/dist/server/self-test-input-tokens.d.ts +2 -1
  132. package/dist/server/self-test-input-tokens.js +18 -14
  133. package/dist/server/self-test.d.ts +114 -0
  134. package/dist/server/self-test.js +784 -148
  135. package/dist/server/serve-implementation.d.ts +213 -0
  136. package/dist/server/serve-implementation.js +2173 -0
  137. package/dist/server/serve.d.ts +1 -70
  138. package/dist/server/serve.js +1 -1130
  139. package/dist/server/trace-output.d.ts +4 -0
  140. package/dist/server/trace-output.js +20 -0
  141. package/dist/server/types.d.ts +30 -5
  142. package/dist/server/types.js +13 -1
  143. package/dist/stateful/errors.d.ts +19 -0
  144. package/dist/stateful/errors.js +24 -0
  145. package/dist/stateful/http-provider-event-emitter.d.ts +40 -0
  146. package/dist/stateful/http-provider-event-emitter.js +237 -0
  147. package/dist/stateful/http-session-owner-registry.d.ts +44 -0
  148. package/dist/stateful/http-session-owner-registry.js +210 -0
  149. package/dist/stateful/index.d.ts +18 -0
  150. package/dist/stateful/index.js +18 -0
  151. package/dist/stateful/provider-event-delivery-failures.d.ts +32 -0
  152. package/dist/stateful/provider-event-delivery-failures.js +43 -0
  153. package/dist/stateful/provider-event-pipeline-metrics.d.ts +46 -0
  154. package/dist/stateful/provider-event-pipeline-metrics.js +48 -0
  155. package/dist/stateful/provider-event-pipeline.d.ts +50 -0
  156. package/dist/stateful/provider-event-pipeline.js +1 -0
  157. package/dist/stateful/provider-events.d.ts +101 -0
  158. package/dist/stateful/provider-events.js +289 -0
  159. package/dist/stateful/session-key.d.ts +15 -0
  160. package/dist/stateful/session-key.js +86 -0
  161. package/dist/stateful/stateful-provider-adapter-context.d.ts +5 -0
  162. package/dist/stateful/stateful-provider-adapter-context.js +42 -0
  163. package/dist/stateful/stateful-provider-adapter-metrics.d.ts +15 -0
  164. package/dist/stateful/stateful-provider-adapter-metrics.js +21 -0
  165. package/dist/stateful/stateful-provider-adapter.d.ts +98 -0
  166. package/dist/stateful/stateful-provider-adapter.js +287 -0
  167. package/dist/stateful/stateful-provider-observability.d.ts +62 -0
  168. package/dist/stateful/stateful-provider-observability.js +161 -0
  169. package/dist/stateful/stateful-provider-owner-forwarder.d.ts +41 -0
  170. package/dist/stateful/stateful-provider-owner-forwarder.js +215 -0
  171. package/dist/stateful/stateful-provider-runtime-context.d.ts +32 -0
  172. package/dist/stateful/stateful-provider-runtime-context.js +60 -0
  173. package/dist/stateful/stateful-provider-runtime-executor.d.ts +34 -0
  174. package/dist/stateful/stateful-provider-runtime-executor.js +52 -0
  175. package/dist/stateful/stateful-provider-session-routing.d.ts +67 -0
  176. package/dist/stateful/stateful-provider-session-routing.js +345 -0
  177. package/dist/stateful/stateful-provider-session-runtime.d.ts +98 -0
  178. package/dist/stateful/stateful-provider-session-runtime.js +245 -0
  179. package/dist/stateful-signing.d.ts +18 -0
  180. package/dist/stateful-signing.js +27 -0
  181. package/dist/stealth/profiles.js +16 -7
  182. package/dist/stream-evidence.d.ts +74 -0
  183. package/dist/stream-evidence.js +785 -0
  184. package/dist/stream.js +7 -1
  185. package/dist/testing/index.d.ts +2 -1
  186. package/dist/testing/index.js +2 -1
  187. package/dist/testing/run.d.ts +32 -2
  188. package/dist/testing/run.js +489 -21
  189. package/dist/trace-sanitization.d.ts +5 -0
  190. package/dist/trace-sanitization.js +45 -0
  191. package/dist/types.d.ts +545 -23
  192. package/dist/types.js +1 -0
  193. package/package.json +44 -5
  194. package/src/auth-turn/index.ts +1 -1
  195. package/src/auth.ts +118 -0
  196. package/src/ceremonies/index.ts +189 -46
  197. package/src/cli/commands.ts +10 -0
  198. package/src/cli/create.ts +42 -35
  199. package/src/cli/prompt-assets.ts +865 -0
  200. package/src/cli/templates/provider/AGENTS.md.tpl +17 -8
  201. package/src/cli/templates/provider/Dockerfile.tpl +1 -1
  202. package/src/cli/templates/provider/README.md.tpl +4 -4
  203. package/src/cli/templates/provider/index.ts.tpl +6 -3
  204. package/src/cli/templates/provider/operations/ping.ts.tpl +2 -1
  205. package/src/config/loader.ts +665 -163
  206. package/src/contract-serialization.ts +5 -7
  207. package/src/contract-types.ts +1 -0
  208. package/src/contract.ts +2 -0
  209. package/src/declaration-validation.ts +266 -0
  210. package/src/define.ts +970 -87
  211. package/src/error-resolution.ts +127 -0
  212. package/src/errors.ts +52 -0
  213. package/src/fixture-sanitization.ts +248 -0
  214. package/src/health-scenario.ts +875 -0
  215. package/src/index.ts +204 -8
  216. package/src/lint.ts +408 -4
  217. package/src/native-address.ts +340 -0
  218. package/src/native-egress-policy.ts +358 -0
  219. package/src/observability.ts +51 -1
  220. package/src/provider.ts +133 -0
  221. package/src/runtime/auth-flow.ts +12 -0
  222. package/src/runtime/browser.ts +661 -63
  223. package/src/runtime/cache.ts +189 -14
  224. package/src/runtime/choice-wordlist.ts +145 -0
  225. package/src/runtime/choice.ts +631 -120
  226. package/src/runtime/executor.ts +40 -7
  227. package/src/runtime/http.ts +641 -61
  228. package/src/runtime/instrumentation.ts +520 -15
  229. package/src/runtime/native-network-errors.ts +99 -0
  230. package/src/runtime/native-network.ts +1605 -0
  231. package/src/runtime/ocr.ts +523 -0
  232. package/src/runtime/proxy-errors.ts +12 -4
  233. package/src/runtime/proxy-nodemaven.ts +221 -0
  234. package/src/runtime/proxy-telemetry.ts +244 -75
  235. package/src/runtime/redirects.ts +66 -0
  236. package/src/runtime/redis.ts +7 -2
  237. package/src/runtime/request-options.ts +680 -1
  238. package/src/runtime/resolver-config.ts +6 -0
  239. package/src/runtime/resolver-public.ts +20 -0
  240. package/src/runtime/resolver-shared.ts +17 -0
  241. package/src/runtime/resolver-vendors/bindings.ts +56 -0
  242. package/src/runtime/resolver-vendors/browser.ts +533 -0
  243. package/src/runtime/resolver-vendors/capsolver.ts +700 -0
  244. package/src/runtime/resolver-vendors/hosts.ts +38 -0
  245. package/src/runtime/resolver-vendors/twocaptcha.ts +539 -0
  246. package/src/runtime/resolver-vendors/types.ts +212 -0
  247. package/src/runtime/resolver.ts +1103 -0
  248. package/src/runtime/secrets.ts +64 -0
  249. package/src/runtime/state.ts +394 -77
  250. package/src/runtime/stealth-cookies.ts +132 -0
  251. package/src/runtime/stealth.ts +675 -289
  252. package/src/runtime/stt.ts +1 -19
  253. package/src/runtime/timeout.ts +18 -0
  254. package/src/runtime/trace-config.ts +77 -0
  255. package/src/serve.ts +6 -1
  256. package/src/server/index.ts +37 -2
  257. package/src/server/self-test-input-tokens.ts +29 -14
  258. package/src/server/self-test.ts +1025 -175
  259. package/src/server/serve-implementation.ts +3250 -0
  260. package/src/server/serve.ts +1 -1626
  261. package/src/server/trace-output.ts +32 -0
  262. package/src/server/types.ts +13 -1
  263. package/src/stateful/README.md +146 -0
  264. package/src/stateful/errors.ts +35 -0
  265. package/src/stateful/http-provider-event-emitter.ts +314 -0
  266. package/src/stateful/http-session-owner-registry.ts +306 -0
  267. package/src/stateful/index.ts +18 -0
  268. package/src/stateful/provider-event-delivery-failures.ts +80 -0
  269. package/src/stateful/provider-event-pipeline-metrics.ts +95 -0
  270. package/src/stateful/provider-event-pipeline.ts +61 -0
  271. package/src/stateful/provider-events.ts +462 -0
  272. package/src/stateful/session-key.ts +111 -0
  273. package/src/stateful/stateful-provider-adapter-context.ts +59 -0
  274. package/src/stateful/stateful-provider-adapter-metrics.ts +48 -0
  275. package/src/stateful/stateful-provider-adapter.ts +562 -0
  276. package/src/stateful/stateful-provider-observability.ts +261 -0
  277. package/src/stateful/stateful-provider-owner-forwarder.ts +287 -0
  278. package/src/stateful/stateful-provider-runtime-context.ts +92 -0
  279. package/src/stateful/stateful-provider-runtime-executor.ts +96 -0
  280. package/src/stateful/stateful-provider-session-routing.ts +546 -0
  281. package/src/stateful/stateful-provider-session-runtime.ts +403 -0
  282. package/src/stateful-signing.ts +46 -0
  283. package/src/stealth/profiles.ts +17 -7
  284. package/src/stream-evidence.ts +988 -0
  285. package/src/stream.ts +8 -1
  286. package/src/testing/index.ts +10 -1
  287. package/src/testing/run.ts +658 -15
  288. package/src/trace-sanitization.ts +63 -0
  289. package/src/types.ts +660 -38
  290. package/dist/cli/templates/provider/CLAUDE.md.tpl +0 -1
  291. package/src/cli/templates/provider/CLAUDE.md.tpl +0 -1
  292. /package/dist/cli/templates/provider/{skills → .agents/skills}/fixtures-and-recording/SKILL.md.tpl +0 -0
  293. /package/dist/cli/templates/provider/{skills → .agents/skills}/health-checks-and-fail-closed/SKILL.md.tpl +0 -0
  294. /package/dist/cli/templates/provider/{skills → .agents/skills}/normalization-standards/SKILL.md.tpl +0 -0
  295. /package/dist/cli/templates/provider/{skills → .agents/skills}/pagination-and-counts/SKILL.md.tpl +0 -0
  296. /package/dist/cli/templates/provider/{skills → .agents/skills}/upstream-contract-verification/SKILL.md.tpl +0 -0
  297. /package/dist/cli/templates/provider/{skills → .agents/skills}/upstream-notes/README.md.tpl +0 -0
  298. /package/src/cli/templates/provider/{skills → .agents/skills}/fixtures-and-recording/SKILL.md.tpl +0 -0
  299. /package/src/cli/templates/provider/{skills → .agents/skills}/health-checks-and-fail-closed/SKILL.md.tpl +0 -0
  300. /package/src/cli/templates/provider/{skills → .agents/skills}/normalization-standards/SKILL.md.tpl +0 -0
  301. /package/src/cli/templates/provider/{skills → .agents/skills}/pagination-and-counts/SKILL.md.tpl +0 -0
  302. /package/src/cli/templates/provider/{skills → .agents/skills}/upstream-contract-verification/SKILL.md.tpl +0 -0
  303. /package/src/cli/templates/provider/{skills → .agents/skills}/upstream-notes/README.md.tpl +0 -0
@@ -1,4 +1,5 @@
1
- export const PROVIDER_OBSERVABILITY_TAXONOMY_VERSION = "2026-05-26";
1
+ // Mirrors packages/provider-observability in the platform monorepo (SoT).
2
+ export const PROVIDER_OBSERVABILITY_TAXONOMY_VERSION = "2026-08-07";
2
3
 
3
4
  export const PROVIDER_ERROR_CATEGORIES = [
4
5
  "ok",
@@ -7,6 +8,7 @@ export const PROVIDER_ERROR_CATEGORIES = [
7
8
  "upstream_http",
8
9
  "upstream_rate_limited",
9
10
  "upstream_auth",
11
+ "upstream_rejected",
10
12
  "upstream_schema_drift",
11
13
  "proxy_pool",
12
14
  "anti_bot_blocked",
@@ -16,6 +18,9 @@ export const PROVIDER_ERROR_CATEGORIES = [
16
18
  "output_validation",
17
19
  "provider_error",
18
20
  "internal_error",
21
+ "dependency_unavailable",
22
+ "unsupported_transport",
23
+ "client_cancelled",
19
24
  "unclassified",
20
25
  ] as const;
21
26
 
@@ -26,6 +31,9 @@ export function categoryForStatus(status: number): ProviderErrorCategory {
26
31
  if (status === 408 || status === 504) return "timeout";
27
32
  if (status === 429) return "upstream_rate_limited";
28
33
  if (status === 401 || status === 403) return "upstream_auth";
34
+ // provider-error-contract: 409/410/422 are the deterministic
35
+ // upstream-rejection status class — not a retryable upstream failure.
36
+ if (status === 409 || status === 410 || status === 422) return "upstream_rejected";
29
37
  if (status >= 400) return "upstream_http";
30
38
  return "unclassified";
31
39
  }
@@ -39,3 +47,45 @@ export function isRetryableCategory(category: ProviderErrorCategory): boolean {
39
47
  category === "proxy_pool"
40
48
  );
41
49
  }
50
+
51
+ // Who stopped the request (honest-provider-error-contract). A deliberately
52
+ // small public projection of the internal taxonomy:
53
+ // - client: the request itself is fixable by the caller
54
+ // - upstream_rule: the upstream service refused it under its own business
55
+ // rules (deterministic) or rate limits
56
+ // - upstream_failure: the upstream service malfunctioned — retryable
57
+ // - apifuse: an APIFuse-side fault (provider bug, platform dependency)
58
+ export const PROVIDER_ERROR_SOURCES = [
59
+ "client",
60
+ "upstream_rule",
61
+ "upstream_failure",
62
+ "apifuse",
63
+ ] as const;
64
+
65
+ export type ProviderErrorSource = (typeof PROVIDER_ERROR_SOURCES)[number];
66
+
67
+ export function sourceForCategory(category: ProviderErrorCategory): ProviderErrorSource {
68
+ switch (category) {
69
+ case "input_validation":
70
+ case "credential_expired":
71
+ case "credential_unavailable":
72
+ case "client_cancelled":
73
+ return "client";
74
+ case "upstream_rejected":
75
+ case "upstream_rate_limited":
76
+ return "upstream_rule";
77
+ case "timeout":
78
+ case "network":
79
+ case "upstream_http":
80
+ case "upstream_auth":
81
+ case "upstream_schema_drift":
82
+ case "anti_bot_blocked":
83
+ return "upstream_failure";
84
+ default:
85
+ // ok never reaches error serialization; provider_error,
86
+ // internal_error, output_validation, proxy_pool,
87
+ // dependency_unavailable, unsupported_transport, unclassified are
88
+ // APIFuse-side faults.
89
+ return "apifuse";
90
+ }
91
+ }
package/src/provider.ts CHANGED
@@ -35,8 +35,89 @@ export {
35
35
  defineSmsOtpMatcher,
36
36
  every,
37
37
  } from "./define.js";
38
+ export type {
39
+ ProviderBuilder,
40
+ ProviderContextOf,
41
+ ProviderDeclaration,
42
+ } from "./define.js";
43
+ export type { JsonPrimitive, JsonValue } from "./contract-json.js";
44
+ export {
45
+ AssertionExpressionSchema,
46
+ AssertionPredicateSchema,
47
+ AssertStepSchema,
48
+ BoundedJsonPathSchema,
49
+ CandidateBlockSchema,
50
+ CandidatePolicySchema,
51
+ CredentialRefDeclarationSchema,
52
+ defineHealthScenario,
53
+ HealthScenarioSchema,
54
+ HealthStepSchema,
55
+ ExtractStepSchema,
56
+ FindFirstSchema,
57
+ GuardStepSchema,
58
+ JournalPolicySchema,
59
+ JsonTemplateSchema,
60
+ ManualTriggerPolicySchema,
61
+ OperandSchema,
62
+ OperationStepSchema,
63
+ QuantifierSchema,
64
+ ReferenceSchema,
65
+ RetryPolicySchema,
66
+ SafeRegexSchema,
67
+ ScopedAssertionExpressionSchema,
68
+ ScopedAssertionPredicateSchema,
69
+ ScopedItemReferenceSchema,
70
+ ScopedOperandSchema,
71
+ StepReferenceSchema,
72
+ RelativeDateNodeSchema,
73
+ ValueTypeSchema,
74
+ } from "./health-scenario.js";
75
+ export type {
76
+ AssertionExpression,
77
+ AssertionPredicate,
78
+ AttemptReference,
79
+ AssertResult,
80
+ AssertStep,
81
+ BoundedJsonPath,
82
+ CandidateBlock,
83
+ CandidatePolicy,
84
+ CandidateReference,
85
+ CredentialReference,
86
+ CredentialRefDeclaration,
87
+ EstablishedConnectionReference,
88
+ ExtractStep,
89
+ FindFirst,
90
+ GuardAttribution,
91
+ GuardReasonCode,
92
+ GuardResult,
93
+ GuardStep,
94
+ HealthScenario,
95
+ HealthStep,
96
+ JsonTemplate,
97
+ JournalPolicy,
98
+ ManualTriggerPolicy,
99
+ NonEmpty,
100
+ OperationResult,
101
+ OperationStep,
102
+ Operand,
103
+ Quantifier,
104
+ ReferenceNode,
105
+ Reference,
106
+ RelativeDateNode,
107
+ RetryPolicy,
108
+ SafeRegex,
109
+ ScopedAssertionExpression,
110
+ ScopedAssertionPredicate,
111
+ ScopedItemReference,
112
+ ScopedOperand,
113
+ StepBase,
114
+ StepReference,
115
+ ExtractResult,
116
+ ValueType,
117
+ } from "./health-scenario.js";
38
118
  export {
39
119
  AuthError,
120
+ HttpRedirectError,
40
121
  isProviderError,
41
122
  isSessionExpiredError,
42
123
  isTransportError,
@@ -91,14 +172,37 @@ export type {
91
172
  HealthJourneyRunContext,
92
173
  HealthJourneyRunResult,
93
174
  HealthScheduleRandomization,
175
+ HttpRedirectFailureReason,
176
+ HttpRedirectPolicy,
177
+ HttpRedirectPolicyMode,
94
178
  HttpRetryOptions,
95
179
  HttpRetrySummary,
96
180
  InferSchemaOutput,
181
+ NativeContext,
182
+ NativeNetworkClient,
183
+ NativeNetworkCloseReason,
184
+ NativeNetworkConnection,
185
+ NativeNetworkConnectInput,
186
+ NativeNetworkConnectOptions,
187
+ NativeNetworkDynamicGrantOptions,
188
+ NativeNetworkEgressGrant,
189
+ NativeProviderConfig,
190
+ NativeProxyDrainHandler,
191
+ NativeProxyEgressInfo,
192
+ NativeProxyExpiringEvent,
193
+ NativeProxyExpiringReason,
194
+ NativeTcpDynamicEgressRule,
195
+ NativeTcpEgressGrant,
196
+ NativeTcpEgressRule,
197
+ NativeTcpPortRange,
198
+ NativeTcpTlsMode,
199
+ NativeTlsConnectOptions,
97
200
  OperationApprovalPolicy,
98
201
  OperationContractMetadata,
99
202
  OperationDefinition,
100
203
  OperationDocMeta,
101
204
  OperationErrorCode,
205
+ ProviderErrorStatus,
102
206
  OperationInputExample,
103
207
  OperationLifecycle,
104
208
  OperationObservabilityConfig,
@@ -110,31 +214,60 @@ export type {
110
214
  OperationTransport,
111
215
  ProviderAccessVisibility,
112
216
  ProviderChoiceBindingOptions,
217
+ ProviderChoiceConsumeMode,
218
+ ProviderChoiceConsumeResult,
113
219
  ProviderChoiceContext,
220
+ ProviderChoiceExplicitParseResult,
114
221
  ProviderChoiceIssueOptions,
115
222
  ProviderChoiceParseOptions,
116
223
  ProviderContext,
224
+ ProviderContextFor,
117
225
  ProviderDefinition,
118
226
  ProviderDeploymentOverrides,
227
+ ProviderFileRef,
228
+ ProviderFilesContext,
119
229
  ProviderLocale,
120
230
  ProviderLocaleKey,
121
231
  ProviderLocaleKeyInput,
122
232
  ProviderLogoProfile,
123
233
  ProviderProxyPolicy,
234
+ ProxiedOAuthConfig,
124
235
  ProviderPublicConnectionMode,
125
236
  ProviderPublicProfile,
237
+ ProviderResolvedFile,
126
238
  ProviderRuntimeState,
127
239
  ProviderStateDurationString,
128
240
  ProviderStateNamespace,
129
241
  ProviderSupportLevel,
242
+ RedirectRunReason,
130
243
  SchemaLike,
131
244
  SmsOtpMatcherDefinition,
132
245
  StandardSchemaV1,
133
246
  StateCasResult,
134
247
  StateNamespaceOptions,
248
+ StateNamespaceScope,
135
249
  StateValue,
136
250
  StateWriteOptions,
137
251
  } from "./types.js";
252
+ export {
253
+ NativeEgressGrantExpiredError,
254
+ NativeEgressNotDeclaredError,
255
+ NativeIdleTimeoutError,
256
+ NativeNetworkError,
257
+ NativeProxyExpiredError,
258
+ } from "./runtime/native-network-errors.js";
259
+ export type {
260
+ NativeGatewayProxy,
261
+ NativeGatewayProxyResolutionInput,
262
+ NativeGatewayProxySkipReason,
263
+ NativeGatewayProxySynthesizer,
264
+ NativeGatewayProxySynthesisResult,
265
+ NativeGatewayProxySynthesisInput,
266
+ NativeNetworkClientOptions,
267
+ NativeNetworkErrorCode,
268
+ VendorCredentialLookup,
269
+ VendorCredentialResolver,
270
+ } from "./runtime/native-network.js";
138
271
  export {
139
272
  HttpRetryAfterPolicy,
140
273
  HttpRetryDelayStrategy,
@@ -5,9 +5,13 @@ import type {
5
5
  EnvContext,
6
6
  FlowContext,
7
7
  HttpClient,
8
+ OcrContext,
9
+ ProviderRuntimeState,
8
10
  StealthClient,
9
11
  SttContext,
10
12
  } from "../types.js";
13
+ import { createUnsupportedOcrClient } from "./ocr.js";
14
+ import { createUnsupportedResolverClient } from "./resolver-shared.js";
11
15
  import { createUnsupportedSttClient } from "./stt.js";
12
16
 
13
17
  function normalizeAllowedKeys(allowedKeys: string[]): Set<string> {
@@ -48,6 +52,7 @@ export function createScratchpad(
48
52
  }
49
53
 
50
54
  export function createFlowContext(options: {
55
+ flowId?: string;
51
56
  http: HttpClient;
52
57
  stealth: StealthClient;
53
58
  env: EnvContext;
@@ -55,20 +60,27 @@ export function createFlowContext(options: {
55
60
  providerId: string;
56
61
  connectionId?: string;
57
62
  externalRef?: string;
63
+ /** Host-agnostic: callers pass an already-scoped runtime state, which this helper forwards verbatim. */
64
+ state?: ProviderRuntimeState;
58
65
  allowedKeys: string[];
59
66
  initialContext?: Record<string, unknown>;
67
+ ocr?: OcrContext;
60
68
  stt?: SttContext;
61
69
  }): FlowContext {
62
70
  return {
71
+ flowId: options.flowId,
63
72
  connectionId: options.connectionId,
64
73
  externalRef: options.externalRef,
65
74
  tenantId: options.tenantId,
66
75
  providerId: options.providerId,
67
76
  http: options.http,
77
+ state: options.state,
68
78
  stealth: options.stealth,
69
79
  env: options.env,
70
80
  context: createScratchpad(options.allowedKeys, options.initialContext),
81
+ ocr: options.ocr ?? createUnsupportedOcrClient(),
71
82
  stt: options.stt ?? createUnsupportedSttClient(),
83
+ resolver: createUnsupportedResolverClient("Resolver is not available in auth flow context"),
72
84
  auth: createAuthFlowHelpers(),
73
85
  };
74
86
  }