@apifuse/provider-sdk 2.2.0-beta.2 → 2.2.0-beta.21

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 (291) hide show
  1. package/AUTHORING.md +487 -0
  2. package/CHANGELOG.md +90 -0
  3. package/README.md +49 -3
  4. package/SUBMISSION.md +1 -1
  5. package/bin/apifuse-check.ts +44 -59
  6. package/bin/apifuse-create.ts +1 -1
  7. package/bin/apifuse-dev.ts +27 -52
  8. package/bin/apifuse-pack-check.ts +14 -0
  9. package/bin/apifuse-pack-smoke.ts +36 -81
  10. package/bin/apifuse-pack-types.ts +305 -0
  11. package/bin/apifuse-perf.ts +45 -127
  12. package/bin/apifuse-record.ts +659 -111
  13. package/bin/apifuse-submit-check.ts +546 -48
  14. package/bin/apifuse-sync-assets.ts +117 -0
  15. package/bin/apifuse.ts +1 -1
  16. package/bin/submit-check-delimited-text.ts +50 -0
  17. package/bin/submit-check-xml-semantics.ts +204 -0
  18. package/bin/submit-check-xml.ts +134 -0
  19. package/dist/auth-turn/index.d.ts +3 -3
  20. package/dist/auth.d.ts +2 -2
  21. package/dist/auth.js +9 -18
  22. package/dist/ceremonies/index.d.ts +9 -1
  23. package/dist/ceremonies/index.js +65 -18
  24. package/dist/cli/commands.d.ts +1 -1
  25. package/dist/cli/commands.js +8 -0
  26. package/dist/cli/create.d.ts +3 -0
  27. package/dist/cli/create.js +34 -35
  28. package/dist/cli/prompt-assets.d.ts +80 -0
  29. package/dist/cli/prompt-assets.js +743 -0
  30. package/dist/cli/templates/provider/AGENTS.md.tpl +17 -8
  31. package/dist/config/loader.d.ts +176 -8
  32. package/dist/config/loader.js +424 -95
  33. package/dist/contract-serialization.d.ts +2 -2
  34. package/dist/contract-serialization.js +3 -6
  35. package/dist/contract-types.d.ts +2 -2
  36. package/dist/contract.d.ts +3 -3
  37. package/dist/contract.js +4 -6
  38. package/dist/define.d.ts +9 -1
  39. package/dist/define.js +304 -119
  40. package/dist/dev.d.ts +1 -1
  41. package/dist/dev.js +1 -1
  42. package/dist/error-resolution.d.ts +2 -0
  43. package/dist/error-resolution.js +90 -0
  44. package/dist/errors.d.ts +22 -1
  45. package/dist/errors.js +88 -0
  46. package/dist/fixture-sanitization.d.ts +26 -0
  47. package/dist/fixture-sanitization.js +216 -0
  48. package/dist/i18n/catalog.d.ts +2 -2
  49. package/dist/i18n/catalog.js +4 -10
  50. package/dist/i18n/index.d.ts +2 -2
  51. package/dist/i18n/index.js +2 -2
  52. package/dist/i18n/keys.d.ts +2 -2
  53. package/dist/index.d.ts +46 -42
  54. package/dist/index.js +41 -37
  55. package/dist/lint.d.ts +1 -1
  56. package/dist/lint.js +8 -15
  57. package/dist/native-address.d.ts +43 -0
  58. package/dist/native-address.js +281 -0
  59. package/dist/native-egress-policy.d.ts +31 -0
  60. package/dist/native-egress-policy.js +288 -0
  61. package/dist/observability.d.ts +5 -2
  62. package/dist/observability.js +48 -1
  63. package/dist/provider.d.ts +12 -11
  64. package/dist/provider.js +10 -9
  65. package/dist/public-schema-field-lint.d.ts +1 -1
  66. package/dist/recipes/gov-api.js +1 -1
  67. package/dist/runtime/auth-flow.d.ts +2 -1
  68. package/dist/runtime/auth-flow.js +4 -3
  69. package/dist/runtime/browser.d.ts +1 -1
  70. package/dist/runtime/browser.js +15 -29
  71. package/dist/runtime/cache.d.ts +1 -1
  72. package/dist/runtime/cache.js +4 -8
  73. package/dist/runtime/choice.d.ts +1 -1
  74. package/dist/runtime/choice.js +31 -35
  75. package/dist/runtime/credential.d.ts +1 -1
  76. package/dist/runtime/credential.js +1 -1
  77. package/dist/runtime/env.d.ts +1 -1
  78. package/dist/runtime/executor.d.ts +1 -1
  79. package/dist/runtime/executor.js +31 -4
  80. package/dist/runtime/http.d.ts +2 -2
  81. package/dist/runtime/http.js +387 -47
  82. package/dist/runtime/insights.d.ts +1 -1
  83. package/dist/runtime/insights.js +6 -13
  84. package/dist/runtime/instrumentation.d.ts +2 -2
  85. package/dist/runtime/instrumentation.js +345 -22
  86. package/dist/runtime/keyring.js +1 -1
  87. package/dist/runtime/namespace.js +1 -1
  88. package/dist/runtime/native-network.d.ts +127 -0
  89. package/dist/runtime/native-network.js +1298 -0
  90. package/dist/runtime/otlp.d.ts +1 -1
  91. package/dist/runtime/perf.d.ts +1 -1
  92. package/dist/runtime/provider.d.ts +1 -1
  93. package/dist/runtime/provider.js +1 -2
  94. package/dist/runtime/proxy-errors.d.ts +1 -1
  95. package/dist/runtime/proxy-errors.js +9 -7
  96. package/dist/runtime/proxy-nodemaven.d.ts +56 -0
  97. package/dist/runtime/proxy-nodemaven.js +146 -0
  98. package/dist/runtime/proxy-retry-policy.d.ts +2 -2
  99. package/dist/runtime/proxy-retry-policy.js +2 -2
  100. package/dist/runtime/proxy-telemetry.d.ts +2 -1
  101. package/dist/runtime/proxy-telemetry.js +55 -52
  102. package/dist/runtime/redirects.d.ts +29 -0
  103. package/dist/runtime/redirects.js +36 -0
  104. package/dist/runtime/redis.d.ts +1 -1
  105. package/dist/runtime/redis.js +2 -4
  106. package/dist/runtime/request-options.d.ts +68 -1
  107. package/dist/runtime/request-options.js +548 -0
  108. package/dist/runtime/secrets.d.ts +27 -0
  109. package/dist/runtime/secrets.js +51 -0
  110. package/dist/runtime/state.d.ts +2 -2
  111. package/dist/runtime/state.js +238 -26
  112. package/dist/runtime/stealth.d.ts +5 -3
  113. package/dist/runtime/stealth.js +423 -143
  114. package/dist/runtime/stt.d.ts +1 -1
  115. package/dist/runtime/stt.js +11 -15
  116. package/dist/runtime/trace.d.ts +2 -2
  117. package/dist/runtime/trace.js +2 -4
  118. package/dist/runtime/waterfall.d.ts +1 -1
  119. package/dist/schema.d.ts +1 -1
  120. package/dist/schema.js +7 -15
  121. package/dist/serve.d.ts +1 -1
  122. package/dist/serve.js +1 -1
  123. package/dist/server/index.d.ts +7 -7
  124. package/dist/server/index.js +6 -6
  125. package/dist/server/self-test-input-tokens.d.ts +2 -1
  126. package/dist/server/self-test-input-tokens.js +18 -14
  127. package/dist/server/self-test-redaction.d.ts +1 -1
  128. package/dist/server/self-test-redaction.js +1 -1
  129. package/dist/server/self-test.d.ts +104 -3
  130. package/dist/server/self-test.js +673 -115
  131. package/dist/server/serve.d.ts +116 -4
  132. package/dist/server/serve.js +799 -128
  133. package/dist/server/types.d.ts +34 -9
  134. package/dist/server/types.js +8 -1
  135. package/dist/stateful/errors.d.ts +14 -0
  136. package/dist/stateful/errors.js +14 -0
  137. package/dist/stateful/http-provider-event-emitter.d.ts +40 -0
  138. package/dist/stateful/http-provider-event-emitter.js +237 -0
  139. package/dist/stateful/http-session-owner-registry.d.ts +44 -0
  140. package/dist/stateful/http-session-owner-registry.js +210 -0
  141. package/dist/stateful/index.d.ts +18 -0
  142. package/dist/stateful/index.js +18 -0
  143. package/dist/stateful/provider-event-delivery-failures.d.ts +32 -0
  144. package/dist/stateful/provider-event-delivery-failures.js +43 -0
  145. package/dist/stateful/provider-event-pipeline-metrics.d.ts +46 -0
  146. package/dist/stateful/provider-event-pipeline-metrics.js +48 -0
  147. package/dist/stateful/provider-event-pipeline.d.ts +50 -0
  148. package/dist/stateful/provider-event-pipeline.js +1 -0
  149. package/dist/stateful/provider-events.d.ts +101 -0
  150. package/dist/stateful/provider-events.js +289 -0
  151. package/dist/stateful/session-key.d.ts +15 -0
  152. package/dist/stateful/session-key.js +86 -0
  153. package/dist/stateful/stateful-provider-adapter-context.d.ts +5 -0
  154. package/dist/stateful/stateful-provider-adapter-context.js +42 -0
  155. package/dist/stateful/stateful-provider-adapter-metrics.d.ts +15 -0
  156. package/dist/stateful/stateful-provider-adapter-metrics.js +21 -0
  157. package/dist/stateful/stateful-provider-adapter.d.ts +98 -0
  158. package/dist/stateful/stateful-provider-adapter.js +287 -0
  159. package/dist/stateful/stateful-provider-observability.d.ts +62 -0
  160. package/dist/stateful/stateful-provider-observability.js +161 -0
  161. package/dist/stateful/stateful-provider-owner-forwarder.d.ts +41 -0
  162. package/dist/stateful/stateful-provider-owner-forwarder.js +215 -0
  163. package/dist/stateful/stateful-provider-runtime-context.d.ts +32 -0
  164. package/dist/stateful/stateful-provider-runtime-context.js +60 -0
  165. package/dist/stateful/stateful-provider-runtime-executor.d.ts +34 -0
  166. package/dist/stateful/stateful-provider-runtime-executor.js +52 -0
  167. package/dist/stateful/stateful-provider-session-routing.d.ts +71 -0
  168. package/dist/stateful/stateful-provider-session-routing.js +353 -0
  169. package/dist/stateful/stateful-provider-session-runtime.d.ts +98 -0
  170. package/dist/stateful/stateful-provider-session-runtime.js +245 -0
  171. package/dist/stateful-signing.d.ts +18 -0
  172. package/dist/stateful-signing.js +27 -0
  173. package/dist/stealth/profiles.d.ts +1 -1
  174. package/dist/stealth/profiles.js +5 -14
  175. package/dist/stream-evidence.d.ts +74 -0
  176. package/dist/stream-evidence.js +785 -0
  177. package/dist/stream.d.ts +1 -1
  178. package/dist/testing/index.d.ts +2 -2
  179. package/dist/testing/index.js +2 -2
  180. package/dist/testing/run.d.ts +32 -2
  181. package/dist/testing/run.js +478 -28
  182. package/dist/types.d.ts +342 -14
  183. package/dist/types.js +1 -0
  184. package/dist/user-input.d.ts +30 -0
  185. package/dist/user-input.js +66 -0
  186. package/package.json +16 -5
  187. package/src/auth-turn/index.ts +1 -1
  188. package/src/auth.ts +28 -86
  189. package/src/ceremonies/index.ts +103 -78
  190. package/src/cli/commands.ts +10 -0
  191. package/src/cli/create.ts +42 -35
  192. package/src/cli/prompt-assets.ts +865 -0
  193. package/src/cli/templates/provider/AGENTS.md.tpl +17 -8
  194. package/src/config/loader.ts +652 -204
  195. package/src/contract-serialization.ts +5 -11
  196. package/src/contract-types.ts +2 -2
  197. package/src/contract.ts +12 -28
  198. package/src/define.ts +499 -498
  199. package/src/dev.ts +4 -9
  200. package/src/error-resolution.ts +91 -0
  201. package/src/errors.ts +110 -5
  202. package/src/fixture-sanitization.ts +247 -0
  203. package/src/i18n/catalog.ts +10 -32
  204. package/src/i18n/index.ts +2 -2
  205. package/src/i18n/keys.ts +5 -11
  206. package/src/index.ts +112 -42
  207. package/src/lint.ts +88 -152
  208. package/src/native-address.ts +340 -0
  209. package/src/native-egress-policy.ts +358 -0
  210. package/src/observability.ts +51 -1
  211. package/src/provider.ts +66 -11
  212. package/src/public-schema-field-lint.ts +7 -33
  213. package/src/recipes/gov-api.ts +2 -5
  214. package/src/runtime/auth-flow.ts +7 -7
  215. package/src/runtime/browser.ts +64 -187
  216. package/src/runtime/cache.ts +20 -67
  217. package/src/runtime/choice.ts +79 -132
  218. package/src/runtime/credential.ts +2 -2
  219. package/src/runtime/env.ts +1 -1
  220. package/src/runtime/executor.ts +43 -20
  221. package/src/runtime/http.ts +494 -57
  222. package/src/runtime/insights.ts +15 -53
  223. package/src/runtime/instrumentation.ts +495 -66
  224. package/src/runtime/keyring.ts +7 -19
  225. package/src/runtime/namespace.ts +2 -7
  226. package/src/runtime/native-network.ts +1686 -0
  227. package/src/runtime/otlp.ts +12 -23
  228. package/src/runtime/perf.ts +1 -1
  229. package/src/runtime/provider.ts +4 -9
  230. package/src/runtime/proxy-errors.ts +29 -42
  231. package/src/runtime/proxy-nodemaven.ts +221 -0
  232. package/src/runtime/proxy-retry-policy.ts +3 -3
  233. package/src/runtime/proxy-telemetry.ts +79 -77
  234. package/src/runtime/redirects.ts +66 -0
  235. package/src/runtime/redis.ts +4 -12
  236. package/src/runtime/request-options.ts +679 -9
  237. package/src/runtime/secrets.ts +64 -0
  238. package/src/runtime/state.ts +353 -133
  239. package/src/runtime/stealth.ts +505 -154
  240. package/src/runtime/stt.ts +38 -94
  241. package/src/runtime/trace.ts +14 -44
  242. package/src/runtime/waterfall.ts +5 -18
  243. package/src/schema.ts +23 -84
  244. package/src/serve.ts +1 -1
  245. package/src/server/index.ts +29 -7
  246. package/src/server/self-test-input-tokens.ts +29 -14
  247. package/src/server/self-test-redaction.ts +2 -2
  248. package/src/server/self-test.ts +857 -132
  249. package/src/server/serve.ts +1151 -328
  250. package/src/server/types.ts +12 -13
  251. package/src/stateful/README.md +146 -0
  252. package/src/stateful/errors.ts +23 -0
  253. package/src/stateful/http-provider-event-emitter.ts +314 -0
  254. package/src/stateful/http-session-owner-registry.ts +306 -0
  255. package/src/stateful/index.ts +18 -0
  256. package/src/stateful/provider-event-delivery-failures.ts +80 -0
  257. package/src/stateful/provider-event-pipeline-metrics.ts +95 -0
  258. package/src/stateful/provider-event-pipeline.ts +61 -0
  259. package/src/stateful/provider-events.ts +462 -0
  260. package/src/stateful/session-key.ts +111 -0
  261. package/src/stateful/stateful-provider-adapter-context.ts +59 -0
  262. package/src/stateful/stateful-provider-adapter-metrics.ts +48 -0
  263. package/src/stateful/stateful-provider-adapter.ts +562 -0
  264. package/src/stateful/stateful-provider-observability.ts +261 -0
  265. package/src/stateful/stateful-provider-owner-forwarder.ts +287 -0
  266. package/src/stateful/stateful-provider-runtime-context.ts +92 -0
  267. package/src/stateful/stateful-provider-runtime-executor.ts +96 -0
  268. package/src/stateful/stateful-provider-session-routing.ts +555 -0
  269. package/src/stateful/stateful-provider-session-runtime.ts +403 -0
  270. package/src/stateful-signing.ts +46 -0
  271. package/src/stealth/profiles.ts +10 -26
  272. package/src/stream-evidence.ts +988 -0
  273. package/src/stream.ts +8 -19
  274. package/src/testing/index.ts +10 -2
  275. package/src/testing/run.ts +653 -74
  276. package/src/types.ts +408 -28
  277. package/src/user-input.ts +118 -0
  278. package/dist/cli/templates/provider/CLAUDE.md.tpl +0 -1
  279. package/src/cli/templates/provider/CLAUDE.md.tpl +0 -1
  280. /package/dist/cli/templates/provider/{skills → .agents/skills}/fixtures-and-recording/SKILL.md.tpl +0 -0
  281. /package/dist/cli/templates/provider/{skills → .agents/skills}/health-checks-and-fail-closed/SKILL.md.tpl +0 -0
  282. /package/dist/cli/templates/provider/{skills → .agents/skills}/normalization-standards/SKILL.md.tpl +0 -0
  283. /package/dist/cli/templates/provider/{skills → .agents/skills}/pagination-and-counts/SKILL.md.tpl +0 -0
  284. /package/dist/cli/templates/provider/{skills → .agents/skills}/upstream-contract-verification/SKILL.md.tpl +0 -0
  285. /package/dist/cli/templates/provider/{skills → .agents/skills}/upstream-notes/README.md.tpl +0 -0
  286. /package/src/cli/templates/provider/{skills → .agents/skills}/fixtures-and-recording/SKILL.md.tpl +0 -0
  287. /package/src/cli/templates/provider/{skills → .agents/skills}/health-checks-and-fail-closed/SKILL.md.tpl +0 -0
  288. /package/src/cli/templates/provider/{skills → .agents/skills}/normalization-standards/SKILL.md.tpl +0 -0
  289. /package/src/cli/templates/provider/{skills → .agents/skills}/pagination-and-counts/SKILL.md.tpl +0 -0
  290. /package/src/cli/templates/provider/{skills → .agents/skills}/upstream-contract-verification/SKILL.md.tpl +0 -0
  291. /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
@@ -3,7 +3,7 @@ export {
3
3
  credentialsAuthChallenge,
4
4
  createAuthFlowHelpers,
5
5
  defineCredentialsAuth,
6
- } from "./auth";
6
+ } from "./auth.js";
7
7
  export type {
8
8
  CredentialsAuthChallengeDefinition,
9
9
  CredentialsAuthChallengeRequest,
@@ -16,8 +16,8 @@ export type {
16
16
  CredentialsAuthLoginResult,
17
17
  DefineCredentialsAuthOptions,
18
18
  DefinedCredentialsAuth,
19
- } from "./auth";
20
- export { createFormCeremony } from "./ceremonies";
19
+ } from "./auth.js";
20
+ export { createFormCeremony } from "./ceremonies/index.js";
21
21
  export {
22
22
  assertFreshProviderChoiceIssuedAt,
23
23
  createProviderChoiceToken,
@@ -25,7 +25,7 @@ export {
25
25
  type ProviderChoiceTokenErrorReason,
26
26
  type ProviderChoiceTokenPayload,
27
27
  parseProviderChoiceToken,
28
- } from "./choice-token";
28
+ } from "./choice-token.js";
29
29
  export {
30
30
  centered,
31
31
  delayed,
@@ -34,25 +34,29 @@ export {
34
34
  defineProvider,
35
35
  defineSmsOtpMatcher,
36
36
  every,
37
- } from "./define";
37
+ } from "./define.js";
38
38
  export {
39
39
  AuthError,
40
+ HttpRedirectError,
41
+ isProviderError,
42
+ isSessionExpiredError,
43
+ isTransportError,
40
44
  ProviderError,
41
45
  SessionExpiredError,
42
46
  TransportError,
43
47
  ValidationError,
44
- } from "./errors";
48
+ } from "./errors.js";
45
49
  export {
46
50
  getProviderLocalePath,
47
51
  providerLocaleKey,
48
52
  qualifyProviderLocaleKey,
49
- } from "./i18n";
53
+ } from "./i18n/index.js";
50
54
  export {
51
55
  type CreateProviderChoiceContextOptions,
52
56
  createProviderChoiceContext,
53
57
  createTestProviderChoiceContext,
54
58
  PROVIDER_RUNTIME_CHOICE_TOKEN_MASTER_SECRET_ENV,
55
- } from "./runtime/choice";
59
+ } from "./runtime/choice.js";
56
60
  export {
57
61
  APIFUSE_DESCRIPTION_KEY_META_KEY,
58
62
  APIFUSE_REDACTION_MARKER,
@@ -69,7 +73,7 @@ export {
69
73
  type SensitivePath,
70
74
  sensitive,
71
75
  z,
72
- } from "./schema";
76
+ } from "./schema.js";
73
77
  export type {
74
78
  AuthAbortData,
75
79
  AuthAbortRetry,
@@ -88,14 +92,38 @@ export type {
88
92
  HealthJourneyRunContext,
89
93
  HealthJourneyRunResult,
90
94
  HealthScheduleRandomization,
95
+ HttpRedirectFailureReason,
96
+ HttpRedirectPolicy,
97
+ HttpRedirectPolicyMode,
91
98
  HttpRetryOptions,
92
99
  HttpRetrySummary,
93
100
  InferSchemaOutput,
101
+ NativeContext,
102
+ NativeNetworkClient,
103
+ NativeNetworkCloseReason,
104
+ NativeNetworkConnection,
105
+ NativeNetworkConnectInput,
106
+ NativeNetworkConnectOptions,
107
+ NativeNetworkDynamicGrantOptions,
108
+ NativeNetworkEgressGrant,
109
+ NativeProviderConfig,
110
+ NativeProviderContext,
111
+ NativeProxyDrainHandler,
112
+ NativeProxyEgressInfo,
113
+ NativeProxyExpiringEvent,
114
+ NativeProxyExpiringReason,
115
+ NativeTcpDynamicEgressRule,
116
+ NativeTcpEgressGrant,
117
+ NativeTcpEgressRule,
118
+ NativeTcpPortRange,
119
+ NativeTcpTlsMode,
120
+ NativeTlsConnectOptions,
94
121
  OperationApprovalPolicy,
95
122
  OperationContractMetadata,
96
123
  OperationDefinition,
97
124
  OperationDocMeta,
98
125
  OperationErrorCode,
126
+ ProviderErrorStatus,
99
127
  OperationInputExample,
100
128
  OperationLifecycle,
101
129
  OperationObservabilityConfig,
@@ -112,17 +140,23 @@ export type {
112
140
  ProviderChoiceParseOptions,
113
141
  ProviderContext,
114
142
  ProviderDefinition,
143
+ ProviderDeploymentOverrides,
144
+ ProviderFileRef,
145
+ ProviderFilesContext,
115
146
  ProviderLocale,
116
147
  ProviderLocaleKey,
117
148
  ProviderLocaleKeyInput,
118
149
  ProviderLogoProfile,
119
150
  ProviderProxyPolicy,
151
+ ProxiedOAuthConfig,
120
152
  ProviderPublicConnectionMode,
121
153
  ProviderPublicProfile,
154
+ ProviderResolvedFile,
122
155
  ProviderRuntimeState,
123
156
  ProviderStateDurationString,
124
157
  ProviderStateNamespace,
125
158
  ProviderSupportLevel,
159
+ RedirectRunReason,
126
160
  SchemaLike,
127
161
  SmsOtpMatcherDefinition,
128
162
  StandardSchemaV1,
@@ -130,11 +164,32 @@ export type {
130
164
  StateNamespaceOptions,
131
165
  StateValue,
132
166
  StateWriteOptions,
133
- } from "./types";
167
+ } from "./types.js";
168
+ export {
169
+ createNativeNetworkClient,
170
+ createEnvVendorCredentialResolver,
171
+ deriveNativeCredentialAffinityKey,
172
+ NativeEgressGrantExpiredError,
173
+ NativeEgressNotDeclaredError,
174
+ NativeIdleTimeoutError,
175
+ NativeNetworkError,
176
+ NativeProxyExpiredError,
177
+ resolveNativeGatewayProxy,
178
+ type NativeGatewayProxy,
179
+ type NativeGatewayProxyResolutionInput,
180
+ type NativeGatewayProxySkipReason,
181
+ type NativeGatewayProxySynthesizer,
182
+ type NativeGatewayProxySynthesisResult,
183
+ type NativeGatewayProxySynthesisInput,
184
+ type NativeNetworkClientOptions,
185
+ type NativeNetworkErrorCode,
186
+ type VendorCredentialLookup,
187
+ type VendorCredentialResolver,
188
+ } from "./runtime/native-network.js";
134
189
  export {
135
190
  HttpRetryAfterPolicy,
136
191
  HttpRetryDelayStrategy,
137
192
  HttpRetryJitter,
138
193
  HttpRetryPreset,
139
194
  HttpRetryUnsafeMethodPolicy,
140
- } from "./types";
195
+ } from "./types.js";
@@ -1,6 +1,6 @@
1
1
  import type { ZodType } from "zod";
2
2
 
3
- import type { LintDiagnostic } from "./lint";
3
+ import type { LintDiagnostic } from "./lint.js";
4
4
 
5
5
  type SchemaLike = ZodType & {
6
6
  def?: Record<string, unknown>;
@@ -55,8 +55,7 @@ function isSchemaRecord(value: unknown): value is Record<string, SchemaLike> {
55
55
  }
56
56
 
57
57
  function getObjectShape(schema: SchemaLike): Record<string, SchemaLike> {
58
- const rawShape =
59
- typeof schema.shape === "function" ? schema.shape() : schema.shape;
58
+ const rawShape = typeof schema.shape === "function" ? schema.shape() : schema.shape;
60
59
  if (isSchemaRecord(rawShape)) {
61
60
  return rawShape;
62
61
  }
@@ -69,10 +68,7 @@ function getObjectShape(schema: SchemaLike): Record<string, SchemaLike> {
69
68
  return isSchemaRecord(defShape) ? defShape : {};
70
69
  }
71
70
 
72
- function appendSchemaChildren(
73
- children: SchemaLike[],
74
- value: unknown,
75
- ): SchemaLike[] {
71
+ function appendSchemaChildren(children: SchemaLike[], value: unknown): SchemaLike[] {
76
72
  if (isSchema(value)) {
77
73
  children.push(value);
78
74
  return children;
@@ -183,26 +179,14 @@ function collectPublicSchemaFieldDiagnostics(
183
179
  });
184
180
  }
185
181
  diagnostics.push(
186
- ...collectPublicSchemaFieldDiagnostics(
187
- providerId,
188
- operationId,
189
- child,
190
- fieldPath,
191
- seen,
192
- ),
182
+ ...collectPublicSchemaFieldDiagnostics(providerId, operationId, child, fieldPath, seen),
193
183
  );
194
184
  }
195
185
 
196
186
  for (const child of getTransparentChildSchemas(schema)) {
197
187
  const childPath = schema.element === child ? `${basePath}[]` : basePath;
198
188
  diagnostics.push(
199
- ...collectPublicSchemaFieldDiagnostics(
200
- providerId,
201
- operationId,
202
- child,
203
- childPath,
204
- seen,
205
- ),
189
+ ...collectPublicSchemaFieldDiagnostics(providerId, operationId, child, childPath, seen),
206
190
  );
207
191
  }
208
192
 
@@ -221,17 +205,7 @@ export function lintPublicSchemaFieldNames(
221
205
  }
222
206
 
223
207
  return [
224
- ...collectPublicSchemaFieldDiagnostics(
225
- providerId,
226
- operationId,
227
- input,
228
- "input",
229
- ),
230
- ...collectPublicSchemaFieldDiagnostics(
231
- providerId,
232
- operationId,
233
- output,
234
- "output",
235
- ),
208
+ ...collectPublicSchemaFieldDiagnostics(providerId, operationId, input, "input"),
209
+ ...collectPublicSchemaFieldDiagnostics(providerId, operationId, output, "output"),
236
210
  ];
237
211
  }
@@ -1,4 +1,4 @@
1
- import { unwrapEnvelope } from "../utils/parse";
1
+ import { unwrapEnvelope } from "../utils/parse.js";
2
2
 
3
3
  function getResultCode(raw: unknown): string | undefined {
4
4
  if (!raw || typeof raw !== "object") {
@@ -33,10 +33,7 @@ export function checkResultCode(
33
33
  * Replace placeholder values with null
34
34
  * e.g., nullIfPlaceholder('해당없음', ['해당없음', '-', '']) → null
35
35
  */
36
- export function nullIfPlaceholder(
37
- v: unknown,
38
- patterns: string[],
39
- ): unknown | null {
36
+ export function nullIfPlaceholder(v: unknown, patterns: string[]): unknown | null {
40
37
  if (v === null || v === undefined) {
41
38
  return null;
42
39
  }
@@ -1,5 +1,5 @@
1
- import { ContextAccessError } from "../errors";
2
- import { createAuthFlowHelpers } from "../auth";
1
+ import { ContextAccessError } from "../errors.js";
2
+ import { createAuthFlowHelpers } from "../auth.js";
3
3
  import type {
4
4
  ContextScratchpad,
5
5
  EnvContext,
@@ -7,8 +7,8 @@ import type {
7
7
  HttpClient,
8
8
  StealthClient,
9
9
  SttContext,
10
- } from "../types";
11
- import { createUnsupportedSttClient } from "./stt";
10
+ } from "../types.js";
11
+ import { createUnsupportedSttClient } from "./stt.js";
12
12
 
13
13
  function normalizeAllowedKeys(allowedKeys: string[]): Set<string> {
14
14
  return new Set(allowedKeys.filter((key) => key.trim().length > 0));
@@ -16,9 +16,7 @@ function normalizeAllowedKeys(allowedKeys: string[]): Set<string> {
16
16
 
17
17
  function assertAllowedKey(allowedKeys: Set<string>, key: string): void {
18
18
  if (!allowedKeys.has(key)) {
19
- throw new ContextAccessError(
20
- `Context key "${key}" is not declared in context.keys.`,
21
- );
19
+ throw new ContextAccessError(`Context key "${key}" is not declared in context.keys.`);
22
20
  }
23
21
  }
24
22
 
@@ -50,6 +48,7 @@ export function createScratchpad(
50
48
  }
51
49
 
52
50
  export function createFlowContext(options: {
51
+ flowId?: string;
53
52
  http: HttpClient;
54
53
  stealth: StealthClient;
55
54
  env: EnvContext;
@@ -62,6 +61,7 @@ export function createFlowContext(options: {
62
61
  stt?: SttContext;
63
62
  }): FlowContext {
64
63
  return {
64
+ flowId: options.flowId,
65
65
  connectionId: options.connectionId,
66
66
  externalRef: options.externalRef,
67
67
  tenantId: options.tenantId,