@omnicross/core 0.1.10 → 0.2.1

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 (204) hide show
  1. package/README.md +7 -0
  2. package/dist/{BuiltinToolExecutor-CS2WpXhM.d.cts → BuiltinToolExecutor-BHgH-EaZ.d.cts} +25 -2
  3. package/dist/{BuiltinToolExecutor-BluWyeob.d.ts → BuiltinToolExecutor-Bi1LmiTP.d.ts} +25 -2
  4. package/dist/{CompletionService-kNA17cfI.d.cts → CompletionService-BniP7j88.d.cts} +2 -2
  5. package/dist/{CompletionService-C3BX0Ovy.d.ts → CompletionService-BqrKPwfA.d.ts} +2 -2
  6. package/dist/{ProviderProxy-QdwNV6l1.d.cts → ProviderProxy-Bz_nkOwq.d.cts} +1 -1
  7. package/dist/{ProviderProxy--ROec6VI.d.ts → ProviderProxy-Ckr6oTrE.d.ts} +1 -1
  8. package/dist/auth/GeminiCodeAssistProjectResolver.cjs +6 -6
  9. package/dist/auth/GeminiCodeAssistProjectResolver.js +4 -4
  10. package/dist/{chunk-NGYOO5TO.js → chunk-2C3TTBS7.js} +7 -7
  11. package/dist/{chunk-QUSEZNYS.cjs → chunk-32SRZFFP.cjs} +4 -1
  12. package/dist/chunk-4JOU54M5.js +200 -0
  13. package/dist/{chunk-2UTGX6FM.js → chunk-4VVCXVB7.js} +1 -1
  14. package/dist/{chunk-RJUONLUQ.cjs → chunk-4Z3ZLLC2.cjs} +14 -8
  15. package/dist/chunk-6DDYNS2B.cjs +384 -0
  16. package/dist/{chunk-GXEZ2R3E.js → chunk-6OKXH2TW.js} +18 -7
  17. package/dist/{chunk-YWL7YZWS.cjs → chunk-7LRTPNFL.cjs} +5 -0
  18. package/dist/{chunk-CCVRRJOX.js → chunk-7PIUVCKK.js} +9 -2
  19. package/dist/chunk-7RJI3NDI.cjs +236 -0
  20. package/dist/{chunk-IIRPUVPH.cjs → chunk-7ZHBN75N.cjs} +3 -1
  21. package/dist/chunk-D4WNI6BR.cjs +386 -0
  22. package/dist/chunk-DBBR6RHF.js +236 -0
  23. package/dist/chunk-E4QHVXV5.cjs +118 -0
  24. package/dist/{chunk-HKB656B4.js → chunk-EUZRH544.js} +55 -287
  25. package/dist/{chunk-WNKWAEUR.js → chunk-EYGBM2VC.js} +3 -1
  26. package/dist/{chunk-UWDW6PN3.cjs → chunk-FX325I5Q.cjs} +20 -9
  27. package/dist/chunk-G4CZIUIB.cjs +200 -0
  28. package/dist/chunk-HCOQQAZE.cjs +123 -0
  29. package/dist/chunk-HL2YSPL7.cjs +673 -0
  30. package/dist/{chunk-55FMGZ3L.js → chunk-HN74IGEO.js} +1 -1
  31. package/dist/{chunk-ZY6KU6P3.js → chunk-HOMUGKHR.js} +8 -5
  32. package/dist/{chunk-AOFWNWLT.cjs → chunk-IUL4VWNU.cjs} +22 -1
  33. package/dist/{chunk-5LNYGCIW.cjs → chunk-KIQ2HA2A.cjs} +5 -5
  34. package/dist/{chunk-MUHWHQVM.cjs → chunk-KQBLZMP6.cjs} +4 -3
  35. package/dist/chunk-LFEH7CEO.js +384 -0
  36. package/dist/chunk-LFPQ2OVH.js +386 -0
  37. package/dist/{chunk-FEBAQI5A.js → chunk-LKDAN4D7.js} +6363 -1350
  38. package/dist/chunk-LQYS2N47.js +3923 -0
  39. package/dist/{chunk-NZYN7C3P.cjs → chunk-MPXOKQJP.cjs} +53 -53
  40. package/dist/chunk-MZEGQSKQ.js +118 -0
  41. package/dist/chunk-N76KU6F5.js +123 -0
  42. package/dist/chunk-NLUOTJWB.js +673 -0
  43. package/dist/{chunk-CMVXX7ON.cjs → chunk-NOITAVHA.cjs} +114 -58
  44. package/dist/{chunk-Q27JY5RG.cjs → chunk-OIKREZVQ.cjs} +7 -4
  45. package/dist/{chunk-ZQQUD66M.cjs → chunk-POUTD5AM.cjs} +63 -295
  46. package/dist/{chunk-6D4W22P4.js → chunk-QIIAMBTM.js} +4 -1
  47. package/dist/{chunk-56QD3YW6.cjs → chunk-QWNUOR7F.cjs} +11 -4
  48. package/dist/{chunk-S3DYFEBE.js → chunk-R4VCO2CB.js} +10 -1
  49. package/dist/{chunk-4VZX5F4T.cjs → chunk-T6NWPIYZ.cjs} +5 -2
  50. package/dist/{chunk-EBLFCNPY.js → chunk-U47LQXPB.js} +5 -2
  51. package/dist/chunk-UPQIWJIE.cjs +3923 -0
  52. package/dist/{chunk-N7OOJI5V.js → chunk-V2UKUTJ3.js} +5 -0
  53. package/dist/{chunk-45FHEOKW.js → chunk-V53ZEFXC.js} +92 -36
  54. package/dist/{chunk-RJ5ZGNI3.js → chunk-VL5TUDTM.js} +8 -2
  55. package/dist/{chunk-TIT74RIL.cjs → chunk-VSYQ6XYN.cjs} +6837 -1824
  56. package/dist/{chunk-OC6DOOFX.cjs → chunk-VXRTQZF2.cjs} +5 -5
  57. package/dist/{chunk-RICPANBY.cjs → chunk-WX2E2G7H.cjs} +13 -4
  58. package/dist/{chunk-DE2SRBFZ.js → chunk-X335TJNS.js} +4 -3
  59. package/dist/{chunk-CDHS2QDC.js → chunk-Y4CRNHJO.js} +53 -53
  60. package/dist/{chunk-P7EM6BND.cjs → chunk-ZAPN7XA6.cjs} +10 -10
  61. package/dist/{chunk-N2EIM2XJ.js → chunk-ZLNHPUFA.js} +22 -1
  62. package/dist/completion/BuiltinToolExecutor.cjs +2 -2
  63. package/dist/completion/BuiltinToolExecutor.d.cts +3 -1
  64. package/dist/completion/BuiltinToolExecutor.d.ts +3 -1
  65. package/dist/completion/BuiltinToolExecutor.js +1 -1
  66. package/dist/completion/CompletionService.cjs +32 -28
  67. package/dist/completion/CompletionService.d.cts +7 -3
  68. package/dist/completion/CompletionService.d.ts +7 -3
  69. package/dist/completion/CompletionService.js +31 -27
  70. package/dist/completion.cjs +40 -36
  71. package/dist/completion.d.cts +7 -3
  72. package/dist/completion.d.ts +7 -3
  73. package/dist/completion.js +39 -35
  74. package/dist/egress-I46O_p5L.d.cts +126 -0
  75. package/dist/egress-I46O_p5L.d.ts +126 -0
  76. package/dist/frontends-Doz0RaWu.d.cts +97 -0
  77. package/dist/frontends-Doz0RaWu.d.ts +97 -0
  78. package/dist/image-generation.cjs +52 -0
  79. package/dist/image-generation.d.cts +96 -0
  80. package/dist/image-generation.d.ts +96 -0
  81. package/dist/image-generation.js +52 -0
  82. package/dist/index.cjs +142 -32
  83. package/dist/index.d.cts +16 -8
  84. package/dist/index.d.ts +16 -8
  85. package/dist/index.js +159 -49
  86. package/dist/openai-operation.cjs +18 -0
  87. package/dist/openai-operation.d.cts +22 -0
  88. package/dist/openai-operation.d.ts +22 -0
  89. package/dist/openai-operation.js +18 -0
  90. package/dist/outbound-api/auditCapture.cjs +3 -3
  91. package/dist/outbound-api/auditCapture.d.cts +13 -2
  92. package/dist/outbound-api/auditCapture.d.ts +13 -2
  93. package/dist/outbound-api/auditCapture.js +2 -2
  94. package/dist/outbound-api/auditRedact.cjs +2 -2
  95. package/dist/outbound-api/auditRedact.js +1 -1
  96. package/dist/outbound-api/routeResolver.cjs +2 -2
  97. package/dist/outbound-api/routeResolver.d.cts +11 -4
  98. package/dist/outbound-api/routeResolver.d.ts +11 -4
  99. package/dist/outbound-api/routeResolver.js +1 -1
  100. package/dist/outbound-api/subscriptionRegistryPort.d.cts +5 -1
  101. package/dist/outbound-api/subscriptionRegistryPort.d.ts +5 -1
  102. package/dist/outbound-api/types.d.cts +10 -3
  103. package/dist/outbound-api/types.d.ts +10 -3
  104. package/dist/outbound-api.cjs +65 -33
  105. package/dist/outbound-api.d.cts +205 -10
  106. package/dist/outbound-api.d.ts +205 -10
  107. package/dist/outbound-api.js +64 -32
  108. package/dist/pipeline/AccountAllowanceScheduling.d.cts +22 -15
  109. package/dist/pipeline/AccountAllowanceScheduling.d.ts +22 -15
  110. package/dist/pipeline/LlmConfigProviderAuth.cjs +3 -3
  111. package/dist/pipeline/LlmConfigProviderAuth.js +2 -2
  112. package/dist/pipeline/SubscriptionAccountHealth.cjs +2 -2
  113. package/dist/pipeline/SubscriptionAccountHealth.d.cts +7 -0
  114. package/dist/pipeline/SubscriptionAccountHealth.d.ts +7 -0
  115. package/dist/pipeline/SubscriptionAccountHealth.js +1 -1
  116. package/dist/pipeline/executeProviderCall.cjs +2 -2
  117. package/dist/pipeline/executeProviderCall.d.cts +11 -6
  118. package/dist/pipeline/executeProviderCall.d.ts +11 -6
  119. package/dist/pipeline/executeProviderCall.js +1 -1
  120. package/dist/pipeline/upstreamFetch.cjs +2 -2
  121. package/dist/pipeline/upstreamFetch.d.cts +5 -0
  122. package/dist/pipeline/upstreamFetch.d.ts +5 -0
  123. package/dist/pipeline/upstreamFetch.js +1 -1
  124. package/dist/ports.d.cts +10 -3
  125. package/dist/ports.d.ts +10 -3
  126. package/dist/provider-proxy/ProviderProxy.cjs +32 -28
  127. package/dist/provider-proxy/ProviderProxy.d.cts +6 -2
  128. package/dist/provider-proxy/ProviderProxy.d.ts +6 -2
  129. package/dist/provider-proxy/ProviderProxy.js +31 -27
  130. package/dist/provider-proxy/identity/codexCliHeaders.cjs +4 -2
  131. package/dist/provider-proxy/identity/codexCliHeaders.d.cts +26 -6
  132. package/dist/provider-proxy/identity/codexCliHeaders.d.ts +26 -6
  133. package/dist/provider-proxy/identity/codexCliHeaders.js +5 -3
  134. package/dist/provider-proxy/ingress/providerProxyShared.cjs +36 -28
  135. package/dist/provider-proxy/ingress/providerProxyShared.d.cts +41 -9
  136. package/dist/provider-proxy/ingress/providerProxyShared.d.ts +41 -9
  137. package/dist/provider-proxy/ingress/providerProxyShared.js +35 -27
  138. package/dist/provider-proxy/types.d.cts +17 -483
  139. package/dist/provider-proxy/types.d.ts +17 -483
  140. package/dist/provider-proxy.cjs +46 -28
  141. package/dist/provider-proxy.d.cts +34 -8
  142. package/dist/provider-proxy.d.ts +34 -8
  143. package/dist/provider-proxy.js +45 -27
  144. package/dist/proxy-UZTtjPZx.d.cts +18 -0
  145. package/dist/proxy-UZTtjPZx.d.ts +18 -0
  146. package/dist/{routeResolver-CVFE8KKe.d.cts → routeResolver-Da0yvkL1.d.cts} +4 -2
  147. package/dist/{routeResolver-C0mkkZaM.d.ts → routeResolver-STwMz_G4.d.ts} +4 -2
  148. package/dist/runtime-6QXNU526.cjs +8 -0
  149. package/dist/runtime-M5WXLD2R.js +8 -0
  150. package/dist/runtime-t8AZacFF.d.cts +233 -0
  151. package/dist/runtime-t8AZacFF.d.ts +233 -0
  152. package/dist/search/api.cjs +761 -0
  153. package/dist/search/api.d.cts +370 -0
  154. package/dist/search/api.d.ts +370 -0
  155. package/dist/search/api.js +761 -0
  156. package/dist/search/http.cjs +37 -0
  157. package/dist/search/http.d.cts +269 -0
  158. package/dist/search/http.d.ts +269 -0
  159. package/dist/search/http.js +37 -0
  160. package/dist/search.cjs +57 -0
  161. package/dist/search.d.cts +113 -0
  162. package/dist/search.d.ts +113 -0
  163. package/dist/search.js +57 -0
  164. package/dist/transformer/TransformerChainExecutor.cjs +2 -2
  165. package/dist/transformer/TransformerChainExecutor.d.cts +2 -2
  166. package/dist/transformer/TransformerChainExecutor.d.ts +2 -2
  167. package/dist/transformer/TransformerChainExecutor.js +1 -1
  168. package/dist/transformer/transformers/AnthropicOpenAIToAnthropicStream.cjs +16 -0
  169. package/dist/transformer/transformers/AnthropicOpenAIToAnthropicStream.d.cts +53 -0
  170. package/dist/transformer/transformers/AnthropicOpenAIToAnthropicStream.d.ts +53 -0
  171. package/dist/transformer/transformers/AnthropicOpenAIToAnthropicStream.js +16 -0
  172. package/dist/transformer/transformers/AnthropicTransformer.cjs +4 -3
  173. package/dist/transformer/transformers/AnthropicTransformer.js +3 -2
  174. package/dist/transformer/transformers/GeminiCodeAssistTransformer.cjs +4 -4
  175. package/dist/transformer/transformers/GeminiCodeAssistTransformer.js +3 -3
  176. package/dist/transformer/transformers/GeminiTransformer.cjs +4 -4
  177. package/dist/transformer/transformers/GeminiTransformer.js +3 -3
  178. package/dist/transformer/transformers/OpenAIResponseTransformer.cjs +3 -3
  179. package/dist/transformer/transformers/OpenAIResponseTransformer.js +2 -2
  180. package/dist/transformer/transformers/OpenAITransformer.cjs +3 -3
  181. package/dist/transformer/transformers/OpenAITransformer.js +2 -2
  182. package/dist/transformer/transformers.cjs +11 -10
  183. package/dist/transformer/transformers.js +12 -11
  184. package/dist/transformer/types.d.cts +39 -4
  185. package/dist/transformer/types.d.ts +39 -4
  186. package/dist/transformer.cjs +14 -13
  187. package/dist/transformer.js +13 -12
  188. package/dist/types-BSIJdsyl.d.cts +1130 -0
  189. package/dist/types-Be-yt_6T.d.cts +196 -0
  190. package/dist/types-By9Tg6-I.d.ts +1130 -0
  191. package/dist/types-CbCZqLGg.d.cts +127 -0
  192. package/dist/types-CbCZqLGg.d.ts +127 -0
  193. package/dist/{types-C2MwkLah.d.cts → types-D-oHYusb.d.cts} +250 -21
  194. package/dist/types-Dm4_36V4.d.ts +196 -0
  195. package/dist/{types-BB8pxk_3.d.ts → types-Dvlpjn0d.d.ts} +250 -21
  196. package/dist/usage.cjs +2 -2
  197. package/dist/usage.d.cts +6 -1
  198. package/dist/usage.d.ts +6 -1
  199. package/dist/usage.js +1 -1
  200. package/package.json +71 -64
  201. package/dist/chunk-FCR77GYM.cjs +0 -33
  202. package/dist/chunk-K5NM7VAH.js +0 -33
  203. /package/dist/{chunk-XXFYLL7R.js → chunk-ECZ3ZE2C.js} +0 -0
  204. /package/dist/{chunk-3SCOLIPT.cjs → chunk-MXI2PWIC.cjs} +0 -0
@@ -0,0 +1,113 @@
1
+ export { D as DEFAULT_SEARCH_EGRESS_POLICY, E as EgressDenialReason, a as EgressDnsLookup, S as SearchEgressPolicy, b as assertEgressAddressAllowed, c as createEgressGuardedDispatcher, d as createEgressGuardedLookup, f as findEgressDenial, v as validateEgressUrl } from './egress-I46O_p5L.cjs';
2
+ export { D as DEFAULT_SEARCH_FRONTEND_MODES, S as SEARCH_FRONTEND_MODES, a as SEARCH_FRONTEND_NAMES, b as SEARCH_UNSUPPORTED_CAPABILITY_CODE, c as SearchFrontendMode, d as SearchFrontendModes, e as SearchFrontendName, i as isSearchFrontendMode, n as normalizeSearchFrontendModes, s as searchErrorHttpStatus, v as validateSearchFrontendModes } from './frontends-Doz0RaWu.cjs';
3
+ import { SearchResult } from '@omnicross/contracts/search-types';
4
+ import { S as SearchRuntime } from './runtime-t8AZacFF.cjs';
5
+ export { a as SearchOrchestrator, b as SearchOrchestratorOptions, c as SearchProviderRegistry, d as SearchProviderRegistryOptions, e as SearchRegistryError, f as SearchRuntimeEventListener, g as SearchRuntimeOptions, h as createSearchRuntime, i as hashSearchQuery } from './runtime-t8AZacFF.cjs';
6
+ import { WebSearchBackend } from './ports/web-search-backend.cjs';
7
+ import 'node:dns';
8
+ import 'undici';
9
+ import '@omnicross/contracts/websearch-types';
10
+
11
+ /**
12
+ * Result normalization — the baseline's safety checks, ported.
13
+ *
14
+ * A search result is untrusted input: it is produced by a page or an API the
15
+ * user does not control, and it is handed straight to a model that may follow
16
+ * the URL. The baseline (`elftia-search-baseline.md` §6.3/§6.4) filtered three
17
+ * things before letting results out of the orchestrator, and all three are kept
18
+ * here: a result needs a title, its URL must be a DIRECT result rather than a
19
+ * search-engine redirect, and the set must not repeat itself.
20
+ *
21
+ * One baseline behavior is deliberately NOT ported: **duplicate-only
22
+ * invalidation** — the rule that turned "exactly one survivor out of more than
23
+ * one structurally usable item" into `Provider returned only duplicate results`.
24
+ * It existed to catch a scrape that collapsed to a single repeated link, and
25
+ * 阶段2's HTTP providers now detect that themselves and raise `parse_failed`.
26
+ * For an API or host provider, one deduplicated result is a legitimate answer,
27
+ * not a failure. Recorded as an allowed difference for 阶段5's comparison.
28
+ *
29
+ * Normalization NEVER fails: it filters. Whether a search succeeded is the
30
+ * provider's answer, decided before these results get here — turning "every
31
+ * item was filtered" back into an error would hand the fallback policy a third
32
+ * outcome to interpret, which is exactly the conflation 阶段2 removed.
33
+ *
34
+ * @module search/normalize
35
+ */
36
+
37
+ /** Results returned when the caller expresses no preference (baseline parity). */
38
+ declare const DEFAULT_NORMALIZED_MAX_RESULTS = 5;
39
+ /**
40
+ * Whether a URL points at a result rather than back at a search engine.
41
+ *
42
+ * Accepts only `http:`/`https:`; an unparseable URL is rejected. This is the
43
+ * check that keeps a SERP-redirect link — which re-runs a search instead of
44
+ * opening a page — out of a result set.
45
+ */
46
+ declare function isDirectResultUrl(rawUrl: string): boolean;
47
+ /**
48
+ * How many results to keep.
49
+ *
50
+ * `Math.max(1, …)` with no upper clamp, per baseline §4.4 — a provider's own
51
+ * limit is the provider's business, and imposing a second ceiling here would
52
+ * silently contradict whatever it declared in its capabilities.
53
+ *
54
+ * Non-finite input falls back to the default rather than propagating: 阶段2's
55
+ * `clampMaxResults` left `NaN` at baseline parity on purpose and named the
56
+ * runtime that owns option handling — this one — as where it should be
57
+ * normalized. Without this, a `NaN` reaches `slice(0, NaN)` and silently
58
+ * discards every result.
59
+ */
60
+ declare function normalizedResultLimit(maxResults: number | undefined): number;
61
+ /**
62
+ * Apply the baseline's safety checks to one provider's results.
63
+ *
64
+ * Order is preserved; trimming happens before every comparison, so dedupe sees
65
+ * the same URL string a consumer will.
66
+ */
67
+ declare function normalizeSearchResults(results: readonly SearchResult[], maxResults?: number): SearchResult[];
68
+
69
+ /**
70
+ * A legacy `WebSearchBackend` backed by the new runtime — migration scaffolding.
71
+ *
72
+ * **Nothing in Omnicross uses this yet, on purpose.** It exists so 阶段5 can
73
+ * move the remaining `WebSearchBackend` consumers (the Anthropic ingress
74
+ * `webSearchService` hint, anything a host passes in) onto the runtime one at a
75
+ * time instead of in a flag day. Like `@omnicross/contracts/search-compat`, it
76
+ * is Phase-1 debt with a scheduled deletion (阶段8) and is meant to be
77
+ * grep-able as such.
78
+ *
79
+ * The port TYPE stays exactly where it is — Elftia imports
80
+ * `@omnicross/core/ports/web-search-backend` directly — and this module only
81
+ * adds an implementation of it.
82
+ *
83
+ * The legacy conversions are NOT re-derived here: `toLegacyWebSearchResponse`
84
+ * and `searchErrorToLegacyWebSearchResponse` are child 2's single, tested
85
+ * mapping, and having a second one is how the two vocabularies would start to
86
+ * drift.
87
+ *
88
+ * @module search/webSearchBackendCompat
89
+ */
90
+
91
+ /** Optional capabilities the runtime itself does not provide. */
92
+ interface SearchRuntimeBackendOptions {
93
+ /**
94
+ * URL reading delegate.
95
+ *
96
+ * The runtime orchestrates `search` only — reading a URL stays with
97
+ * `web_fetch`'s own path until the reader story settles (阶段4+). Without a
98
+ * delegate, `readUrl` answers with a legacy failure response naming the
99
+ * missing capability rather than pretending to have read anything.
100
+ */
101
+ readUrl?: WebSearchBackend['readUrl'];
102
+ }
103
+ /**
104
+ * Present a {@link SearchRuntime} through the legacy port interface.
105
+ *
106
+ * `search` PINS the runtime to the requested provider: a legacy caller naming a
107
+ * provider is making an explicit choice, and quietly answering from a different
108
+ * one would both surprise it and send its query somewhere it did not ask for.
109
+ * Legacy callers that want fallback get it by looping, exactly as they do today.
110
+ */
111
+ declare function searchRuntimeAsWebSearchBackend(runtime: SearchRuntime, options?: SearchRuntimeBackendOptions): WebSearchBackend;
112
+
113
+ export { DEFAULT_NORMALIZED_MAX_RESULTS, SearchRuntime, type SearchRuntimeBackendOptions, isDirectResultUrl, normalizeSearchResults, normalizedResultLimit, searchRuntimeAsWebSearchBackend };
@@ -0,0 +1,113 @@
1
+ export { D as DEFAULT_SEARCH_EGRESS_POLICY, E as EgressDenialReason, a as EgressDnsLookup, S as SearchEgressPolicy, b as assertEgressAddressAllowed, c as createEgressGuardedDispatcher, d as createEgressGuardedLookup, f as findEgressDenial, v as validateEgressUrl } from './egress-I46O_p5L.js';
2
+ export { D as DEFAULT_SEARCH_FRONTEND_MODES, S as SEARCH_FRONTEND_MODES, a as SEARCH_FRONTEND_NAMES, b as SEARCH_UNSUPPORTED_CAPABILITY_CODE, c as SearchFrontendMode, d as SearchFrontendModes, e as SearchFrontendName, i as isSearchFrontendMode, n as normalizeSearchFrontendModes, s as searchErrorHttpStatus, v as validateSearchFrontendModes } from './frontends-Doz0RaWu.js';
3
+ import { SearchResult } from '@omnicross/contracts/search-types';
4
+ import { S as SearchRuntime } from './runtime-t8AZacFF.js';
5
+ export { a as SearchOrchestrator, b as SearchOrchestratorOptions, c as SearchProviderRegistry, d as SearchProviderRegistryOptions, e as SearchRegistryError, f as SearchRuntimeEventListener, g as SearchRuntimeOptions, h as createSearchRuntime, i as hashSearchQuery } from './runtime-t8AZacFF.js';
6
+ import { WebSearchBackend } from './ports/web-search-backend.js';
7
+ import 'node:dns';
8
+ import 'undici';
9
+ import '@omnicross/contracts/websearch-types';
10
+
11
+ /**
12
+ * Result normalization — the baseline's safety checks, ported.
13
+ *
14
+ * A search result is untrusted input: it is produced by a page or an API the
15
+ * user does not control, and it is handed straight to a model that may follow
16
+ * the URL. The baseline (`elftia-search-baseline.md` §6.3/§6.4) filtered three
17
+ * things before letting results out of the orchestrator, and all three are kept
18
+ * here: a result needs a title, its URL must be a DIRECT result rather than a
19
+ * search-engine redirect, and the set must not repeat itself.
20
+ *
21
+ * One baseline behavior is deliberately NOT ported: **duplicate-only
22
+ * invalidation** — the rule that turned "exactly one survivor out of more than
23
+ * one structurally usable item" into `Provider returned only duplicate results`.
24
+ * It existed to catch a scrape that collapsed to a single repeated link, and
25
+ * 阶段2's HTTP providers now detect that themselves and raise `parse_failed`.
26
+ * For an API or host provider, one deduplicated result is a legitimate answer,
27
+ * not a failure. Recorded as an allowed difference for 阶段5's comparison.
28
+ *
29
+ * Normalization NEVER fails: it filters. Whether a search succeeded is the
30
+ * provider's answer, decided before these results get here — turning "every
31
+ * item was filtered" back into an error would hand the fallback policy a third
32
+ * outcome to interpret, which is exactly the conflation 阶段2 removed.
33
+ *
34
+ * @module search/normalize
35
+ */
36
+
37
+ /** Results returned when the caller expresses no preference (baseline parity). */
38
+ declare const DEFAULT_NORMALIZED_MAX_RESULTS = 5;
39
+ /**
40
+ * Whether a URL points at a result rather than back at a search engine.
41
+ *
42
+ * Accepts only `http:`/`https:`; an unparseable URL is rejected. This is the
43
+ * check that keeps a SERP-redirect link — which re-runs a search instead of
44
+ * opening a page — out of a result set.
45
+ */
46
+ declare function isDirectResultUrl(rawUrl: string): boolean;
47
+ /**
48
+ * How many results to keep.
49
+ *
50
+ * `Math.max(1, …)` with no upper clamp, per baseline §4.4 — a provider's own
51
+ * limit is the provider's business, and imposing a second ceiling here would
52
+ * silently contradict whatever it declared in its capabilities.
53
+ *
54
+ * Non-finite input falls back to the default rather than propagating: 阶段2's
55
+ * `clampMaxResults` left `NaN` at baseline parity on purpose and named the
56
+ * runtime that owns option handling — this one — as where it should be
57
+ * normalized. Without this, a `NaN` reaches `slice(0, NaN)` and silently
58
+ * discards every result.
59
+ */
60
+ declare function normalizedResultLimit(maxResults: number | undefined): number;
61
+ /**
62
+ * Apply the baseline's safety checks to one provider's results.
63
+ *
64
+ * Order is preserved; trimming happens before every comparison, so dedupe sees
65
+ * the same URL string a consumer will.
66
+ */
67
+ declare function normalizeSearchResults(results: readonly SearchResult[], maxResults?: number): SearchResult[];
68
+
69
+ /**
70
+ * A legacy `WebSearchBackend` backed by the new runtime — migration scaffolding.
71
+ *
72
+ * **Nothing in Omnicross uses this yet, on purpose.** It exists so 阶段5 can
73
+ * move the remaining `WebSearchBackend` consumers (the Anthropic ingress
74
+ * `webSearchService` hint, anything a host passes in) onto the runtime one at a
75
+ * time instead of in a flag day. Like `@omnicross/contracts/search-compat`, it
76
+ * is Phase-1 debt with a scheduled deletion (阶段8) and is meant to be
77
+ * grep-able as such.
78
+ *
79
+ * The port TYPE stays exactly where it is — Elftia imports
80
+ * `@omnicross/core/ports/web-search-backend` directly — and this module only
81
+ * adds an implementation of it.
82
+ *
83
+ * The legacy conversions are NOT re-derived here: `toLegacyWebSearchResponse`
84
+ * and `searchErrorToLegacyWebSearchResponse` are child 2's single, tested
85
+ * mapping, and having a second one is how the two vocabularies would start to
86
+ * drift.
87
+ *
88
+ * @module search/webSearchBackendCompat
89
+ */
90
+
91
+ /** Optional capabilities the runtime itself does not provide. */
92
+ interface SearchRuntimeBackendOptions {
93
+ /**
94
+ * URL reading delegate.
95
+ *
96
+ * The runtime orchestrates `search` only — reading a URL stays with
97
+ * `web_fetch`'s own path until the reader story settles (阶段4+). Without a
98
+ * delegate, `readUrl` answers with a legacy failure response naming the
99
+ * missing capability rather than pretending to have read anything.
100
+ */
101
+ readUrl?: WebSearchBackend['readUrl'];
102
+ }
103
+ /**
104
+ * Present a {@link SearchRuntime} through the legacy port interface.
105
+ *
106
+ * `search` PINS the runtime to the requested provider: a legacy caller naming a
107
+ * provider is making an explicit choice, and quietly answering from a different
108
+ * one would both surprise it and send its query somewhere it did not ask for.
109
+ * Legacy callers that want fallback get it by looping, exactly as they do today.
110
+ */
111
+ declare function searchRuntimeAsWebSearchBackend(runtime: SearchRuntime, options?: SearchRuntimeBackendOptions): WebSearchBackend;
112
+
113
+ export { DEFAULT_NORMALIZED_MAX_RESULTS, SearchRuntime, type SearchRuntimeBackendOptions, isDirectResultUrl, normalizeSearchResults, normalizedResultLimit, searchRuntimeAsWebSearchBackend };
package/dist/search.js ADDED
@@ -0,0 +1,57 @@
1
+ import {
2
+ DEFAULT_NORMALIZED_MAX_RESULTS,
3
+ SearchOrchestrator,
4
+ SearchProviderRegistry,
5
+ SearchRegistryError,
6
+ createSearchRuntime,
7
+ hashSearchQuery,
8
+ isDirectResultUrl,
9
+ normalizeSearchResults,
10
+ normalizedResultLimit
11
+ } from "./chunk-LFPQ2OVH.js";
12
+ import "./chunk-NLUOTJWB.js";
13
+ import {
14
+ DEFAULT_SEARCH_EGRESS_POLICY,
15
+ assertEgressAddressAllowed,
16
+ createEgressGuardedDispatcher,
17
+ createEgressGuardedLookup,
18
+ findEgressDenial,
19
+ validateEgressUrl
20
+ } from "./chunk-DBBR6RHF.js";
21
+ import {
22
+ DEFAULT_SEARCH_FRONTEND_MODES,
23
+ SEARCH_FRONTEND_MODES,
24
+ SEARCH_FRONTEND_NAMES,
25
+ SEARCH_UNSUPPORTED_CAPABILITY_CODE,
26
+ isSearchFrontendMode,
27
+ normalizeSearchFrontendModes,
28
+ searchErrorHttpStatus,
29
+ searchRuntimeAsWebSearchBackend,
30
+ validateSearchFrontendModes
31
+ } from "./chunk-MZEGQSKQ.js";
32
+ export {
33
+ DEFAULT_NORMALIZED_MAX_RESULTS,
34
+ DEFAULT_SEARCH_EGRESS_POLICY,
35
+ DEFAULT_SEARCH_FRONTEND_MODES,
36
+ SEARCH_FRONTEND_MODES,
37
+ SEARCH_FRONTEND_NAMES,
38
+ SEARCH_UNSUPPORTED_CAPABILITY_CODE,
39
+ SearchOrchestrator,
40
+ SearchProviderRegistry,
41
+ SearchRegistryError,
42
+ assertEgressAddressAllowed,
43
+ createEgressGuardedDispatcher,
44
+ createEgressGuardedLookup,
45
+ createSearchRuntime,
46
+ findEgressDenial,
47
+ hashSearchQuery,
48
+ isDirectResultUrl,
49
+ isSearchFrontendMode,
50
+ normalizeSearchFrontendModes,
51
+ normalizeSearchResults,
52
+ normalizedResultLimit,
53
+ searchErrorHttpStatus,
54
+ searchRuntimeAsWebSearchBackend,
55
+ validateEgressUrl,
56
+ validateSearchFrontendModes
57
+ };
@@ -1,7 +1,7 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
2
 
3
- var _chunkIIRPUVPHcjs = require('../chunk-IIRPUVPH.cjs');
3
+ var _chunk7ZHBN75Ncjs = require('../chunk-7ZHBN75N.cjs');
4
4
  require('../chunk-GBHYAGX3.cjs');
5
5
 
6
6
 
7
- exports.TransformerChainExecutor = _chunkIIRPUVPHcjs.TransformerChainExecutor;
7
+ exports.TransformerChainExecutor = _chunk7ZHBN75Ncjs.TransformerChainExecutor;
@@ -6,8 +6,8 @@ import '@omnicross/contracts/completion-types';
6
6
  * TransformerChainExecutor - Executes transformer chains for requests and responses
7
7
  *
8
8
  * Implements the transformer pipeline:
9
- * Request: transformRequestOut 鈫?Provider transformers 鈫?Model transformers 鈫?HTTP
10
- * Response: Model transformers (reverse) 鈫?Provider transformers (reverse) 鈫?transformResponseIn
9
+ * Request: transformRequestOut Provider transformers Model transformers HTTP
10
+ * Response: Model transformers (reverse) Provider transformers (reverse) transformResponseIn
11
11
  *
12
12
  * @module transformer/TransformerChainExecutor
13
13
  */
@@ -6,8 +6,8 @@ import '@omnicross/contracts/completion-types';
6
6
  * TransformerChainExecutor - Executes transformer chains for requests and responses
7
7
  *
8
8
  * Implements the transformer pipeline:
9
- * Request: transformRequestOut 鈫?Provider transformers 鈫?Model transformers 鈫?HTTP
10
- * Response: Model transformers (reverse) 鈫?Provider transformers (reverse) 鈫?transformResponseIn
9
+ * Request: transformRequestOut Provider transformers Model transformers HTTP
10
+ * Response: Model transformers (reverse) Provider transformers (reverse) transformResponseIn
11
11
  *
12
12
  * @module transformer/TransformerChainExecutor
13
13
  */
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  TransformerChainExecutor
3
- } from "../chunk-WNKWAEUR.js";
3
+ } from "../chunk-EYGBM2VC.js";
4
4
  import "../chunk-MZNPGW5Q.js";
5
5
  export {
6
6
  TransformerChainExecutor
@@ -0,0 +1,16 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
+
3
+
4
+
5
+
6
+
7
+
8
+ var _chunk6DDYNS2Bcjs = require('../../chunk-6DDYNS2B.cjs');
9
+
10
+
11
+
12
+
13
+
14
+
15
+
16
+ exports.DEFAULT_ANTHROPIC_PING_HEARTBEAT_MS = _chunk6DDYNS2Bcjs.DEFAULT_ANTHROPIC_PING_HEARTBEAT_MS; exports.__resetStopReasonContentFilterCountForTests = _chunk6DDYNS2Bcjs.__resetStopReasonContentFilterCountForTests; exports.convertOpenAIStreamToAnthropic = _chunk6DDYNS2Bcjs.convertOpenAIStreamToAnthropic; exports.getAnthropicPingHeartbeatMs = _chunk6DDYNS2Bcjs.getAnthropicPingHeartbeatMs; exports.setAnthropicPingHeartbeatMs = _chunk6DDYNS2Bcjs.setAnthropicPingHeartbeatMs; exports.stopReasonContentFilterCount = _chunk6DDYNS2Bcjs.stopReasonContentFilterCount;
@@ -0,0 +1,53 @@
1
+ import { TransformerContext, TransformerLogger } from '../types.cjs';
2
+ import '@omnicross/contracts/llm-config';
3
+ import '@omnicross/contracts/completion-types';
4
+
5
+ /**
6
+ * AnthropicOpenAIToAnthropicStream - OpenAI SSE -> Anthropic event SSE conversion.
7
+ *
8
+ * Internal helper of `./AnthropicStreaming`; do not import the facade here.
9
+ *
10
+ * claude-api-protocol-fidelity (R6) hardening, all scoped to THIS converter (the
11
+ * translation path's synthesizer — the same-format verbatim relay never runs
12
+ * it, so synthesized frames structurally cannot leak into pass-through
13
+ * traffic):
14
+ * - `message_start` backfills the upstream usage known at emission time;
15
+ * - in-band `error` events use the official `{"type":"error","error":{…}}`
16
+ * shape with the upstream text preserved verbatim;
17
+ * - the finish_reason map carries `content_filter→refusal` (+ `refusal` /
18
+ * `pause_turn` placeholders) with an observable warning counter;
19
+ * - a lazy idle-timeout ping heartbeat keeps silent streams alive (Claude
20
+ * Code's 300s byte watchdog), armed only while idle and cleaned up on
21
+ * end/error/cancel.
22
+ *
23
+ * @module transformer/transformers/AnthropicOpenAIToAnthropicStream
24
+ */
25
+
26
+ /** Default synthetic-ping interval (ms). ≤0 disables the heartbeat. */
27
+ declare const DEFAULT_ANTHROPIC_PING_HEARTBEAT_MS = 20000;
28
+ /**
29
+ * Hot-set the synthetic-ping interval (claude-api-protocol-fidelity §10
30
+ * `anthropic.heartbeatIntervalMs`). Takes effect at each stream's NEXT timer
31
+ * arm — in-flight streams are never interrupted. `undefined`/`NaN` resets to
32
+ * the default; ≤0 disables the heartbeat entirely.
33
+ */
34
+ declare function setAnthropicPingHeartbeatMs(ms: number | undefined): void;
35
+ /** The current synthetic-ping interval (ms); ≤0 means disabled. */
36
+ declare function getAnthropicPingHeartbeatMs(): number;
37
+ /**
38
+ * Observable counter for `content_filter→refusal` remaps (the §9 minimal
39
+ * observability seam — the repo has no metrics registry, so an exported
40
+ * counter + console.warn). Reset only via the test helper.
41
+ */
42
+ declare let stopReasonContentFilterCount: number;
43
+ /** Test-only counter reset (keeps the exported binding read-only by convention). */
44
+ declare function __resetStopReasonContentFilterCountForTests(): void;
45
+ /**
46
+ * Convert OpenAI SSE stream to Anthropic event stream.
47
+ *
48
+ * Accepts an optional `logger` for non-fatal parse-error reporting (matches
49
+ * the AnthropicTransformer facade's previous `this.logger?.error` behaviour).
50
+ */
51
+ declare function convertOpenAIStreamToAnthropic(openaiStream: ReadableStream<Uint8Array>, _context?: TransformerContext, logger?: TransformerLogger): ReadableStream<Uint8Array>;
52
+
53
+ export { DEFAULT_ANTHROPIC_PING_HEARTBEAT_MS, __resetStopReasonContentFilterCountForTests, convertOpenAIStreamToAnthropic, getAnthropicPingHeartbeatMs, setAnthropicPingHeartbeatMs, stopReasonContentFilterCount };
@@ -0,0 +1,53 @@
1
+ import { TransformerContext, TransformerLogger } from '../types.js';
2
+ import '@omnicross/contracts/llm-config';
3
+ import '@omnicross/contracts/completion-types';
4
+
5
+ /**
6
+ * AnthropicOpenAIToAnthropicStream - OpenAI SSE -> Anthropic event SSE conversion.
7
+ *
8
+ * Internal helper of `./AnthropicStreaming`; do not import the facade here.
9
+ *
10
+ * claude-api-protocol-fidelity (R6) hardening, all scoped to THIS converter (the
11
+ * translation path's synthesizer — the same-format verbatim relay never runs
12
+ * it, so synthesized frames structurally cannot leak into pass-through
13
+ * traffic):
14
+ * - `message_start` backfills the upstream usage known at emission time;
15
+ * - in-band `error` events use the official `{"type":"error","error":{…}}`
16
+ * shape with the upstream text preserved verbatim;
17
+ * - the finish_reason map carries `content_filter→refusal` (+ `refusal` /
18
+ * `pause_turn` placeholders) with an observable warning counter;
19
+ * - a lazy idle-timeout ping heartbeat keeps silent streams alive (Claude
20
+ * Code's 300s byte watchdog), armed only while idle and cleaned up on
21
+ * end/error/cancel.
22
+ *
23
+ * @module transformer/transformers/AnthropicOpenAIToAnthropicStream
24
+ */
25
+
26
+ /** Default synthetic-ping interval (ms). ≤0 disables the heartbeat. */
27
+ declare const DEFAULT_ANTHROPIC_PING_HEARTBEAT_MS = 20000;
28
+ /**
29
+ * Hot-set the synthetic-ping interval (claude-api-protocol-fidelity §10
30
+ * `anthropic.heartbeatIntervalMs`). Takes effect at each stream's NEXT timer
31
+ * arm — in-flight streams are never interrupted. `undefined`/`NaN` resets to
32
+ * the default; ≤0 disables the heartbeat entirely.
33
+ */
34
+ declare function setAnthropicPingHeartbeatMs(ms: number | undefined): void;
35
+ /** The current synthetic-ping interval (ms); ≤0 means disabled. */
36
+ declare function getAnthropicPingHeartbeatMs(): number;
37
+ /**
38
+ * Observable counter for `content_filter→refusal` remaps (the §9 minimal
39
+ * observability seam — the repo has no metrics registry, so an exported
40
+ * counter + console.warn). Reset only via the test helper.
41
+ */
42
+ declare let stopReasonContentFilterCount: number;
43
+ /** Test-only counter reset (keeps the exported binding read-only by convention). */
44
+ declare function __resetStopReasonContentFilterCountForTests(): void;
45
+ /**
46
+ * Convert OpenAI SSE stream to Anthropic event stream.
47
+ *
48
+ * Accepts an optional `logger` for non-fatal parse-error reporting (matches
49
+ * the AnthropicTransformer facade's previous `this.logger?.error` behaviour).
50
+ */
51
+ declare function convertOpenAIStreamToAnthropic(openaiStream: ReadableStream<Uint8Array>, _context?: TransformerContext, logger?: TransformerLogger): ReadableStream<Uint8Array>;
52
+
53
+ export { DEFAULT_ANTHROPIC_PING_HEARTBEAT_MS, __resetStopReasonContentFilterCountForTests, convertOpenAIStreamToAnthropic, getAnthropicPingHeartbeatMs, setAnthropicPingHeartbeatMs, stopReasonContentFilterCount };
@@ -0,0 +1,16 @@
1
+ import {
2
+ DEFAULT_ANTHROPIC_PING_HEARTBEAT_MS,
3
+ __resetStopReasonContentFilterCountForTests,
4
+ convertOpenAIStreamToAnthropic,
5
+ getAnthropicPingHeartbeatMs,
6
+ setAnthropicPingHeartbeatMs,
7
+ stopReasonContentFilterCount
8
+ } from "../../chunk-LFEH7CEO.js";
9
+ export {
10
+ DEFAULT_ANTHROPIC_PING_HEARTBEAT_MS,
11
+ __resetStopReasonContentFilterCountForTests,
12
+ convertOpenAIStreamToAnthropic,
13
+ getAnthropicPingHeartbeatMs,
14
+ setAnthropicPingHeartbeatMs,
15
+ stopReasonContentFilterCount
16
+ };
@@ -1,9 +1,10 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
2
 
3
- var _chunkZQQUD66Mcjs = require('../../chunk-ZQQUD66M.cjs');
3
+ var _chunkPOUTD5AMcjs = require('../../chunk-POUTD5AM.cjs');
4
+ require('../../chunk-6DDYNS2B.cjs');
4
5
  require('../../chunk-5RSZYQJH.cjs');
5
6
  require('../../chunk-77USGNRW.cjs');
6
- require('../../chunk-AOFWNWLT.cjs');
7
+ require('../../chunk-IUL4VWNU.cjs');
7
8
 
8
9
 
9
- exports.AnthropicTransformer = _chunkZQQUD66Mcjs.AnthropicTransformer;
10
+ exports.AnthropicTransformer = _chunkPOUTD5AMcjs.AnthropicTransformer;
@@ -1,9 +1,10 @@
1
1
  import {
2
2
  AnthropicTransformer
3
- } from "../../chunk-HKB656B4.js";
3
+ } from "../../chunk-EUZRH544.js";
4
+ import "../../chunk-LFEH7CEO.js";
4
5
  import "../../chunk-FU7EAR73.js";
5
6
  import "../../chunk-WYVGULTQ.js";
6
- import "../../chunk-N2EIM2XJ.js";
7
+ import "../../chunk-ZLNHPUFA.js";
7
8
  export {
8
9
  AnthropicTransformer
9
10
  };
@@ -3,13 +3,13 @@
3
3
 
4
4
 
5
5
 
6
- var _chunkOC6DOOFXcjs = require('../../chunk-OC6DOOFX.cjs');
7
- require('../../chunk-RICPANBY.cjs');
6
+ var _chunkVXRTQZF2cjs = require('../../chunk-VXRTQZF2.cjs');
7
+ require('../../chunk-WX2E2G7H.cjs');
8
8
  require('../../chunk-77USGNRW.cjs');
9
- require('../../chunk-AOFWNWLT.cjs');
9
+ require('../../chunk-IUL4VWNU.cjs');
10
10
 
11
11
 
12
12
 
13
13
 
14
14
 
15
- exports.GeminiCodeAssistTransformer = _chunkOC6DOOFXcjs.GeminiCodeAssistTransformer; exports.buildCodeAssistUrl = _chunkOC6DOOFXcjs.buildCodeAssistUrl; exports.resolveCodeAssistApiVersion = _chunkOC6DOOFXcjs.resolveCodeAssistApiVersion; exports.resolveCodeAssistEndpoint = _chunkOC6DOOFXcjs.resolveCodeAssistEndpoint;
15
+ exports.GeminiCodeAssistTransformer = _chunkVXRTQZF2cjs.GeminiCodeAssistTransformer; exports.buildCodeAssistUrl = _chunkVXRTQZF2cjs.buildCodeAssistUrl; exports.resolveCodeAssistApiVersion = _chunkVXRTQZF2cjs.resolveCodeAssistApiVersion; exports.resolveCodeAssistEndpoint = _chunkVXRTQZF2cjs.resolveCodeAssistEndpoint;
@@ -3,10 +3,10 @@ import {
3
3
  buildCodeAssistUrl,
4
4
  resolveCodeAssistApiVersion,
5
5
  resolveCodeAssistEndpoint
6
- } from "../../chunk-2UTGX6FM.js";
7
- import "../../chunk-S3DYFEBE.js";
6
+ } from "../../chunk-4VVCXVB7.js";
7
+ import "../../chunk-R4VCO2CB.js";
8
8
  import "../../chunk-WYVGULTQ.js";
9
- import "../../chunk-N2EIM2XJ.js";
9
+ import "../../chunk-ZLNHPUFA.js";
10
10
  export {
11
11
  GeminiCodeAssistTransformer,
12
12
  buildCodeAssistUrl,
@@ -1,9 +1,9 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
2
 
3
- var _chunk5LNYGCIWcjs = require('../../chunk-5LNYGCIW.cjs');
4
- require('../../chunk-RICPANBY.cjs');
3
+ var _chunkKIQ2HA2Acjs = require('../../chunk-KIQ2HA2A.cjs');
4
+ require('../../chunk-WX2E2G7H.cjs');
5
5
  require('../../chunk-77USGNRW.cjs');
6
- require('../../chunk-AOFWNWLT.cjs');
6
+ require('../../chunk-IUL4VWNU.cjs');
7
7
 
8
8
 
9
- exports.GeminiTransformer = _chunk5LNYGCIWcjs.GeminiTransformer;
9
+ exports.GeminiTransformer = _chunkKIQ2HA2Acjs.GeminiTransformer;
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  GeminiTransformer
3
- } from "../../chunk-55FMGZ3L.js";
4
- import "../../chunk-S3DYFEBE.js";
3
+ } from "../../chunk-HN74IGEO.js";
4
+ import "../../chunk-R4VCO2CB.js";
5
5
  import "../../chunk-WYVGULTQ.js";
6
- import "../../chunk-N2EIM2XJ.js";
6
+ import "../../chunk-ZLNHPUFA.js";
7
7
  export {
8
8
  GeminiTransformer
9
9
  };
@@ -1,8 +1,8 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
2
 
3
- var _chunkCMVXX7ONcjs = require('../../chunk-CMVXX7ON.cjs');
3
+ var _chunkNOITAVHAcjs = require('../../chunk-NOITAVHA.cjs');
4
4
  require('../../chunk-5RSZYQJH.cjs');
5
- require('../../chunk-AOFWNWLT.cjs');
5
+ require('../../chunk-IUL4VWNU.cjs');
6
6
 
7
7
 
8
- exports.OpenAIResponseTransformer = _chunkCMVXX7ONcjs.OpenAIResponseTransformer;
8
+ exports.OpenAIResponseTransformer = _chunkNOITAVHAcjs.OpenAIResponseTransformer;
@@ -1,8 +1,8 @@
1
1
  import {
2
2
  OpenAIResponseTransformer
3
- } from "../../chunk-45FHEOKW.js";
3
+ } from "../../chunk-V53ZEFXC.js";
4
4
  import "../../chunk-FU7EAR73.js";
5
- import "../../chunk-N2EIM2XJ.js";
5
+ import "../../chunk-ZLNHPUFA.js";
6
6
  export {
7
7
  OpenAIResponseTransformer
8
8
  };
@@ -1,7 +1,7 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
2
 
3
- var _chunk56QD3YW6cjs = require('../../chunk-56QD3YW6.cjs');
4
- require('../../chunk-AOFWNWLT.cjs');
3
+ var _chunkQWNUOR7Fcjs = require('../../chunk-QWNUOR7F.cjs');
4
+ require('../../chunk-IUL4VWNU.cjs');
5
5
 
6
6
 
7
- exports.OpenAITransformer = _chunk56QD3YW6cjs.OpenAITransformer;
7
+ exports.OpenAITransformer = _chunkQWNUOR7Fcjs.OpenAITransformer;
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  OpenAITransformer
3
- } from "../../chunk-CCVRRJOX.js";
4
- import "../../chunk-N2EIM2XJ.js";
3
+ } from "../../chunk-7PIUVCKK.js";
4
+ import "../../chunk-ZLNHPUFA.js";
5
5
  export {
6
6
  OpenAITransformer
7
7
  };