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

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 (290) hide show
  1. package/AUTHORING.md +487 -0
  2. package/CHANGELOG.md +85 -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 +1 -1
  23. package/dist/ceremonies/index.js +8 -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 +208 -125
  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.js +8 -15
  56. package/dist/native-address.d.ts +43 -0
  57. package/dist/native-address.js +281 -0
  58. package/dist/native-egress-policy.d.ts +31 -0
  59. package/dist/native-egress-policy.js +288 -0
  60. package/dist/observability.d.ts +5 -2
  61. package/dist/observability.js +48 -1
  62. package/dist/provider.d.ts +12 -11
  63. package/dist/provider.js +10 -9
  64. package/dist/public-schema-field-lint.d.ts +1 -1
  65. package/dist/recipes/gov-api.js +1 -1
  66. package/dist/runtime/auth-flow.d.ts +1 -1
  67. package/dist/runtime/auth-flow.js +3 -3
  68. package/dist/runtime/browser.d.ts +1 -1
  69. package/dist/runtime/browser.js +15 -29
  70. package/dist/runtime/cache.d.ts +1 -1
  71. package/dist/runtime/cache.js +4 -8
  72. package/dist/runtime/choice.d.ts +1 -1
  73. package/dist/runtime/choice.js +31 -35
  74. package/dist/runtime/credential.d.ts +1 -1
  75. package/dist/runtime/credential.js +1 -1
  76. package/dist/runtime/env.d.ts +1 -1
  77. package/dist/runtime/executor.d.ts +1 -1
  78. package/dist/runtime/executor.js +31 -4
  79. package/dist/runtime/http.d.ts +2 -2
  80. package/dist/runtime/http.js +387 -47
  81. package/dist/runtime/insights.d.ts +1 -1
  82. package/dist/runtime/insights.js +6 -13
  83. package/dist/runtime/instrumentation.d.ts +2 -2
  84. package/dist/runtime/instrumentation.js +345 -22
  85. package/dist/runtime/keyring.js +1 -1
  86. package/dist/runtime/namespace.js +1 -1
  87. package/dist/runtime/native-network.d.ts +127 -0
  88. package/dist/runtime/native-network.js +1298 -0
  89. package/dist/runtime/otlp.d.ts +1 -1
  90. package/dist/runtime/perf.d.ts +1 -1
  91. package/dist/runtime/provider.d.ts +1 -1
  92. package/dist/runtime/provider.js +1 -2
  93. package/dist/runtime/proxy-errors.d.ts +1 -1
  94. package/dist/runtime/proxy-errors.js +9 -7
  95. package/dist/runtime/proxy-nodemaven.d.ts +56 -0
  96. package/dist/runtime/proxy-nodemaven.js +146 -0
  97. package/dist/runtime/proxy-retry-policy.d.ts +2 -2
  98. package/dist/runtime/proxy-retry-policy.js +2 -2
  99. package/dist/runtime/proxy-telemetry.d.ts +2 -1
  100. package/dist/runtime/proxy-telemetry.js +55 -52
  101. package/dist/runtime/redirects.d.ts +29 -0
  102. package/dist/runtime/redirects.js +36 -0
  103. package/dist/runtime/redis.d.ts +1 -1
  104. package/dist/runtime/redis.js +2 -4
  105. package/dist/runtime/request-options.d.ts +68 -1
  106. package/dist/runtime/request-options.js +548 -0
  107. package/dist/runtime/secrets.d.ts +27 -0
  108. package/dist/runtime/secrets.js +51 -0
  109. package/dist/runtime/state.d.ts +2 -2
  110. package/dist/runtime/state.js +15 -4
  111. package/dist/runtime/stealth.d.ts +5 -3
  112. package/dist/runtime/stealth.js +423 -143
  113. package/dist/runtime/stt.d.ts +1 -1
  114. package/dist/runtime/stt.js +11 -15
  115. package/dist/runtime/trace.d.ts +2 -2
  116. package/dist/runtime/trace.js +2 -4
  117. package/dist/runtime/waterfall.d.ts +1 -1
  118. package/dist/schema.d.ts +1 -1
  119. package/dist/schema.js +7 -15
  120. package/dist/serve.d.ts +1 -1
  121. package/dist/serve.js +1 -1
  122. package/dist/server/index.d.ts +7 -7
  123. package/dist/server/index.js +6 -6
  124. package/dist/server/self-test-input-tokens.d.ts +2 -1
  125. package/dist/server/self-test-input-tokens.js +18 -14
  126. package/dist/server/self-test-redaction.d.ts +1 -1
  127. package/dist/server/self-test-redaction.js +1 -1
  128. package/dist/server/self-test.d.ts +104 -3
  129. package/dist/server/self-test.js +673 -115
  130. package/dist/server/serve.d.ts +115 -4
  131. package/dist/server/serve.js +792 -127
  132. package/dist/server/types.d.ts +30 -9
  133. package/dist/server/types.js +8 -7
  134. package/dist/stateful/errors.d.ts +14 -0
  135. package/dist/stateful/errors.js +14 -0
  136. package/dist/stateful/http-provider-event-emitter.d.ts +40 -0
  137. package/dist/stateful/http-provider-event-emitter.js +237 -0
  138. package/dist/stateful/http-session-owner-registry.d.ts +44 -0
  139. package/dist/stateful/http-session-owner-registry.js +210 -0
  140. package/dist/stateful/index.d.ts +18 -0
  141. package/dist/stateful/index.js +18 -0
  142. package/dist/stateful/provider-event-delivery-failures.d.ts +32 -0
  143. package/dist/stateful/provider-event-delivery-failures.js +43 -0
  144. package/dist/stateful/provider-event-pipeline-metrics.d.ts +46 -0
  145. package/dist/stateful/provider-event-pipeline-metrics.js +48 -0
  146. package/dist/stateful/provider-event-pipeline.d.ts +50 -0
  147. package/dist/stateful/provider-event-pipeline.js +1 -0
  148. package/dist/stateful/provider-events.d.ts +101 -0
  149. package/dist/stateful/provider-events.js +289 -0
  150. package/dist/stateful/session-key.d.ts +15 -0
  151. package/dist/stateful/session-key.js +86 -0
  152. package/dist/stateful/stateful-provider-adapter-context.d.ts +5 -0
  153. package/dist/stateful/stateful-provider-adapter-context.js +42 -0
  154. package/dist/stateful/stateful-provider-adapter-metrics.d.ts +15 -0
  155. package/dist/stateful/stateful-provider-adapter-metrics.js +21 -0
  156. package/dist/stateful/stateful-provider-adapter.d.ts +98 -0
  157. package/dist/stateful/stateful-provider-adapter.js +287 -0
  158. package/dist/stateful/stateful-provider-observability.d.ts +62 -0
  159. package/dist/stateful/stateful-provider-observability.js +161 -0
  160. package/dist/stateful/stateful-provider-owner-forwarder.d.ts +41 -0
  161. package/dist/stateful/stateful-provider-owner-forwarder.js +215 -0
  162. package/dist/stateful/stateful-provider-runtime-context.d.ts +32 -0
  163. package/dist/stateful/stateful-provider-runtime-context.js +60 -0
  164. package/dist/stateful/stateful-provider-runtime-executor.d.ts +34 -0
  165. package/dist/stateful/stateful-provider-runtime-executor.js +52 -0
  166. package/dist/stateful/stateful-provider-session-routing.d.ts +71 -0
  167. package/dist/stateful/stateful-provider-session-routing.js +353 -0
  168. package/dist/stateful/stateful-provider-session-runtime.d.ts +98 -0
  169. package/dist/stateful/stateful-provider-session-runtime.js +245 -0
  170. package/dist/stateful-signing.d.ts +18 -0
  171. package/dist/stateful-signing.js +27 -0
  172. package/dist/stealth/profiles.d.ts +1 -1
  173. package/dist/stealth/profiles.js +5 -14
  174. package/dist/stream-evidence.d.ts +74 -0
  175. package/dist/stream-evidence.js +785 -0
  176. package/dist/stream.d.ts +1 -1
  177. package/dist/testing/index.d.ts +2 -2
  178. package/dist/testing/index.js +2 -2
  179. package/dist/testing/run.d.ts +32 -2
  180. package/dist/testing/run.js +477 -33
  181. package/dist/types.d.ts +323 -11
  182. package/dist/types.js +1 -0
  183. package/dist/user-input.d.ts +30 -0
  184. package/dist/user-input.js +66 -0
  185. package/package.json +16 -5
  186. package/src/auth-turn/index.ts +1 -1
  187. package/src/auth.ts +28 -86
  188. package/src/ceremonies/index.ts +24 -78
  189. package/src/cli/commands.ts +10 -0
  190. package/src/cli/create.ts +42 -35
  191. package/src/cli/prompt-assets.ts +865 -0
  192. package/src/cli/templates/provider/AGENTS.md.tpl +17 -8
  193. package/src/config/loader.ts +652 -204
  194. package/src/contract-serialization.ts +5 -11
  195. package/src/contract-types.ts +2 -2
  196. package/src/contract.ts +12 -28
  197. package/src/define.ts +368 -504
  198. package/src/dev.ts +4 -9
  199. package/src/error-resolution.ts +91 -0
  200. package/src/errors.ts +110 -5
  201. package/src/fixture-sanitization.ts +247 -0
  202. package/src/i18n/catalog.ts +10 -32
  203. package/src/i18n/index.ts +2 -2
  204. package/src/i18n/keys.ts +5 -11
  205. package/src/index.ts +111 -42
  206. package/src/lint.ts +89 -159
  207. package/src/native-address.ts +340 -0
  208. package/src/native-egress-policy.ts +358 -0
  209. package/src/observability.ts +51 -1
  210. package/src/provider.ts +65 -11
  211. package/src/public-schema-field-lint.ts +7 -33
  212. package/src/recipes/gov-api.ts +2 -5
  213. package/src/runtime/auth-flow.ts +5 -7
  214. package/src/runtime/browser.ts +64 -187
  215. package/src/runtime/cache.ts +20 -67
  216. package/src/runtime/choice.ts +79 -132
  217. package/src/runtime/credential.ts +2 -2
  218. package/src/runtime/env.ts +1 -1
  219. package/src/runtime/executor.ts +43 -20
  220. package/src/runtime/http.ts +494 -57
  221. package/src/runtime/insights.ts +15 -53
  222. package/src/runtime/instrumentation.ts +495 -66
  223. package/src/runtime/keyring.ts +7 -19
  224. package/src/runtime/namespace.ts +2 -7
  225. package/src/runtime/native-network.ts +1686 -0
  226. package/src/runtime/otlp.ts +12 -23
  227. package/src/runtime/perf.ts +1 -1
  228. package/src/runtime/provider.ts +4 -9
  229. package/src/runtime/proxy-errors.ts +29 -42
  230. package/src/runtime/proxy-nodemaven.ts +221 -0
  231. package/src/runtime/proxy-retry-policy.ts +3 -3
  232. package/src/runtime/proxy-telemetry.ts +79 -77
  233. package/src/runtime/redirects.ts +66 -0
  234. package/src/runtime/redis.ts +4 -12
  235. package/src/runtime/request-options.ts +679 -9
  236. package/src/runtime/secrets.ts +64 -0
  237. package/src/runtime/state.ts +41 -110
  238. package/src/runtime/stealth.ts +505 -154
  239. package/src/runtime/stt.ts +38 -94
  240. package/src/runtime/trace.ts +14 -44
  241. package/src/runtime/waterfall.ts +5 -18
  242. package/src/schema.ts +23 -84
  243. package/src/serve.ts +1 -1
  244. package/src/server/index.ts +29 -7
  245. package/src/server/self-test-input-tokens.ts +29 -14
  246. package/src/server/self-test-redaction.ts +2 -2
  247. package/src/server/self-test.ts +857 -132
  248. package/src/server/serve.ts +1141 -324
  249. package/src/server/types.ts +12 -19
  250. package/src/stateful/README.md +146 -0
  251. package/src/stateful/errors.ts +23 -0
  252. package/src/stateful/http-provider-event-emitter.ts +314 -0
  253. package/src/stateful/http-session-owner-registry.ts +306 -0
  254. package/src/stateful/index.ts +18 -0
  255. package/src/stateful/provider-event-delivery-failures.ts +80 -0
  256. package/src/stateful/provider-event-pipeline-metrics.ts +95 -0
  257. package/src/stateful/provider-event-pipeline.ts +61 -0
  258. package/src/stateful/provider-events.ts +462 -0
  259. package/src/stateful/session-key.ts +111 -0
  260. package/src/stateful/stateful-provider-adapter-context.ts +59 -0
  261. package/src/stateful/stateful-provider-adapter-metrics.ts +48 -0
  262. package/src/stateful/stateful-provider-adapter.ts +562 -0
  263. package/src/stateful/stateful-provider-observability.ts +261 -0
  264. package/src/stateful/stateful-provider-owner-forwarder.ts +287 -0
  265. package/src/stateful/stateful-provider-runtime-context.ts +92 -0
  266. package/src/stateful/stateful-provider-runtime-executor.ts +96 -0
  267. package/src/stateful/stateful-provider-session-routing.ts +555 -0
  268. package/src/stateful/stateful-provider-session-runtime.ts +403 -0
  269. package/src/stateful-signing.ts +46 -0
  270. package/src/stealth/profiles.ts +10 -26
  271. package/src/stream-evidence.ts +988 -0
  272. package/src/stream.ts +8 -19
  273. package/src/testing/index.ts +10 -2
  274. package/src/testing/run.ts +652 -79
  275. package/src/types.ts +369 -11
  276. package/src/user-input.ts +118 -0
  277. package/dist/cli/templates/provider/CLAUDE.md.tpl +0 -1
  278. package/src/cli/templates/provider/CLAUDE.md.tpl +0 -1
  279. /package/dist/cli/templates/provider/{skills → .agents/skills}/fixtures-and-recording/SKILL.md.tpl +0 -0
  280. /package/dist/cli/templates/provider/{skills → .agents/skills}/health-checks-and-fail-closed/SKILL.md.tpl +0 -0
  281. /package/dist/cli/templates/provider/{skills → .agents/skills}/normalization-standards/SKILL.md.tpl +0 -0
  282. /package/dist/cli/templates/provider/{skills → .agents/skills}/pagination-and-counts/SKILL.md.tpl +0 -0
  283. /package/dist/cli/templates/provider/{skills → .agents/skills}/upstream-contract-verification/SKILL.md.tpl +0 -0
  284. /package/dist/cli/templates/provider/{skills → .agents/skills}/upstream-notes/README.md.tpl +0 -0
  285. /package/src/cli/templates/provider/{skills → .agents/skills}/fixtures-and-recording/SKILL.md.tpl +0 -0
  286. /package/src/cli/templates/provider/{skills → .agents/skills}/health-checks-and-fail-closed/SKILL.md.tpl +0 -0
  287. /package/src/cli/templates/provider/{skills → .agents/skills}/normalization-standards/SKILL.md.tpl +0 -0
  288. /package/src/cli/templates/provider/{skills → .agents/skills}/pagination-and-counts/SKILL.md.tpl +0 -0
  289. /package/src/cli/templates/provider/{skills → .agents/skills}/upstream-contract-verification/SKILL.md.tpl +0 -0
  290. /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,6 +140,9 @@ 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,
@@ -119,10 +150,12 @@ export type {
119
150
  ProviderProxyPolicy,
120
151
  ProviderPublicConnectionMode,
121
152
  ProviderPublicProfile,
153
+ ProviderResolvedFile,
122
154
  ProviderRuntimeState,
123
155
  ProviderStateDurationString,
124
156
  ProviderStateNamespace,
125
157
  ProviderSupportLevel,
158
+ RedirectRunReason,
126
159
  SchemaLike,
127
160
  SmsOtpMatcherDefinition,
128
161
  StandardSchemaV1,
@@ -130,11 +163,32 @@ export type {
130
163
  StateNamespaceOptions,
131
164
  StateValue,
132
165
  StateWriteOptions,
133
- } from "./types";
166
+ } from "./types.js";
167
+ export {
168
+ createNativeNetworkClient,
169
+ createEnvVendorCredentialResolver,
170
+ deriveNativeCredentialAffinityKey,
171
+ NativeEgressGrantExpiredError,
172
+ NativeEgressNotDeclaredError,
173
+ NativeIdleTimeoutError,
174
+ NativeNetworkError,
175
+ NativeProxyExpiredError,
176
+ resolveNativeGatewayProxy,
177
+ type NativeGatewayProxy,
178
+ type NativeGatewayProxyResolutionInput,
179
+ type NativeGatewayProxySkipReason,
180
+ type NativeGatewayProxySynthesizer,
181
+ type NativeGatewayProxySynthesisResult,
182
+ type NativeGatewayProxySynthesisInput,
183
+ type NativeNetworkClientOptions,
184
+ type NativeNetworkErrorCode,
185
+ type VendorCredentialLookup,
186
+ type VendorCredentialResolver,
187
+ } from "./runtime/native-network.js";
134
188
  export {
135
189
  HttpRetryAfterPolicy,
136
190
  HttpRetryDelayStrategy,
137
191
  HttpRetryJitter,
138
192
  HttpRetryPreset,
139
193
  HttpRetryUnsafeMethodPolicy,
140
- } from "./types";
194
+ } 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