@omnicross/core 0.1.1 → 0.1.3

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 (259) hide show
  1. package/dist/ApiConverter.cjs +3 -778
  2. package/dist/ApiConverter.js +12 -751
  3. package/dist/{CompletionService-DtOF_War.d.cts → CompletionService-D3a47vdU.d.cts} +2 -1
  4. package/dist/{CompletionService-7fCmKAP3.d.ts → CompletionService-DdWaAxq0.d.ts} +2 -1
  5. package/dist/auth/GeminiCodeAssistProjectResolver.cjs +32 -60
  6. package/dist/auth/GeminiCodeAssistProjectResolver.js +11 -10
  7. package/dist/builtin-web-fetch-77JZUZGM.cjs +100 -0
  8. package/dist/builtin-web-fetch-IGLBX2XY.js +100 -0
  9. package/dist/chunk-2DCNB7DF.cjs +514 -0
  10. package/dist/chunk-2FMI2B6V.cjs +6196 -0
  11. package/dist/chunk-3OPYJG76.cjs +266 -0
  12. package/dist/chunk-3QOSDDNI.cjs +130 -0
  13. package/dist/chunk-46RLHI7D.js +0 -0
  14. package/dist/chunk-46ZIFWYG.cjs +277 -0
  15. package/dist/chunk-4DECIFU7.js +6196 -0
  16. package/dist/chunk-4IH4EL7M.cjs +9 -0
  17. package/dist/chunk-4VAVYUZS.cjs +991 -0
  18. package/dist/chunk-5ENKBSWO.js +311 -0
  19. package/dist/chunk-5ERIZW3D.js +44 -0
  20. package/dist/chunk-5HTVET6E.js +514 -0
  21. package/dist/chunk-5ZQBEOMD.js +764 -0
  22. package/dist/chunk-6RPZADX3.cjs +92 -0
  23. package/dist/chunk-7VU7V2E4.js +0 -0
  24. package/dist/chunk-7YN22L2H.cjs +87 -0
  25. package/dist/chunk-A2YMUCBT.cjs +105 -0
  26. package/dist/chunk-AEOZIDEB.cjs +32 -0
  27. package/dist/chunk-AQ5TNQB7.js +13 -0
  28. package/dist/chunk-AVYJ4YBN.js +58 -0
  29. package/dist/chunk-BO4RFWBR.js +89 -0
  30. package/dist/chunk-C72S6TTV.cjs +49 -0
  31. package/dist/chunk-C7PSERMH.js +87 -0
  32. package/dist/chunk-CDHS2QDC.js +179 -0
  33. package/dist/chunk-CWM2ZDU5.js +130 -0
  34. package/dist/chunk-CZHZGRU7.js +383 -0
  35. package/dist/chunk-DK4A7DLE.js +266 -0
  36. package/dist/chunk-DQ5VAYZ6.cjs +42 -0
  37. package/dist/chunk-DRWHTIIZ.js +13 -0
  38. package/dist/chunk-DWKQZ2SK.cjs +254 -0
  39. package/dist/chunk-EYZYXJTJ.cjs +1 -0
  40. package/dist/chunk-FFALUUZZ.cjs +235 -0
  41. package/dist/chunk-FMOBD2OQ.js +39 -0
  42. package/dist/chunk-FTQ7IQUC.js +991 -0
  43. package/dist/chunk-FZ46M34D.cjs +1 -0
  44. package/dist/chunk-G2UTNSGU.js +277 -0
  45. package/dist/chunk-GBHYAGX3.cjs +26 -0
  46. package/dist/chunk-GMMT7RVN.cjs +39 -0
  47. package/dist/chunk-H5JUT3KV.js +105 -0
  48. package/dist/chunk-HQP3K7PU.cjs +431 -0
  49. package/dist/chunk-HUZZZ3JL.js +32 -0
  50. package/dist/chunk-IAXWICZU.js +69 -0
  51. package/dist/chunk-JMJBSACD.cjs +147 -0
  52. package/dist/chunk-JO5NLTLY.js +46 -0
  53. package/dist/chunk-JWC6APFQ.js +23 -0
  54. package/dist/chunk-KUU2RNG6.cjs +46 -0
  55. package/dist/chunk-L74VDN4A.cjs +32 -0
  56. package/dist/chunk-MQNDWYPN.js +235 -0
  57. package/dist/chunk-MZNPGW5Q.js +26 -0
  58. package/dist/chunk-N5QFKSDO.js +56 -0
  59. package/dist/chunk-NYUNU75A.cjs +44 -0
  60. package/dist/chunk-NZYN7C3P.cjs +179 -0
  61. package/dist/chunk-Q27JY5RG.cjs +126 -0
  62. package/dist/chunk-QBZJ7P2T.cjs +13 -0
  63. package/dist/chunk-QWBWGODS.cjs +69 -0
  64. package/dist/chunk-QXD4MV2X.cjs +23 -0
  65. package/dist/chunk-R3HK6R4B.cjs +13 -0
  66. package/dist/chunk-RPII3E6Z.cjs +145 -0
  67. package/dist/chunk-RSJ3TWJQ.cjs +186 -0
  68. package/dist/chunk-S4WBV25P.js +913 -0
  69. package/dist/chunk-S6JGLF3G.cjs +89 -0
  70. package/dist/chunk-SUEGJ75D.cjs +764 -0
  71. package/dist/chunk-SVNDB62D.cjs +58 -0
  72. package/dist/chunk-SVXC36MU.cjs +383 -0
  73. package/dist/chunk-TKJMZBAH.js +32 -0
  74. package/dist/chunk-UBWEBKRC.js +42 -0
  75. package/dist/chunk-UNEFIWXI.cjs +32 -0
  76. package/dist/chunk-VQY5W4YW.cjs +311 -0
  77. package/dist/chunk-VVEHS2LI.js +431 -0
  78. package/dist/chunk-WNY4WMRF.js +32 -0
  79. package/dist/chunk-XEKD23J5.js +9 -0
  80. package/dist/chunk-XTEI64OU.js +145 -0
  81. package/dist/chunk-XX6NQJMA.js +92 -0
  82. package/dist/chunk-Y6OM7EV7.cjs +56 -0
  83. package/dist/chunk-Y7FO65VT.js +147 -0
  84. package/dist/chunk-YGXJGRFI.cjs +913 -0
  85. package/dist/chunk-YMFAJFQT.cjs +173 -0
  86. package/dist/chunk-Z7LUNECE.js +49 -0
  87. package/dist/chunk-Z7Y2NPHY.js +186 -0
  88. package/dist/chunk-ZJZAOKI7.js +254 -0
  89. package/dist/chunk-ZLX3KGXX.js +173 -0
  90. package/dist/chunk-ZY6KU6P3.js +126 -0
  91. package/dist/completion/ApiKeyPoolService.cjs +23 -48
  92. package/dist/completion/ApiKeyPoolService.d.cts +150 -2
  93. package/dist/completion/ApiKeyPoolService.d.ts +150 -2
  94. package/dist/completion/BuiltinToolExecutor.cjs +9 -324
  95. package/dist/completion/BuiltinToolExecutor.js +6 -290
  96. package/dist/completion/CompletionService.cjs +45 -3487
  97. package/dist/completion/CompletionService.d.cts +3 -2
  98. package/dist/completion/CompletionService.d.ts +3 -2
  99. package/dist/completion/CompletionService.js +41 -3457
  100. package/dist/completion/NativeSearchInjector.cjs +8 -192
  101. package/dist/completion/NativeSearchInjector.js +7 -162
  102. package/dist/completion/ProviderSearchInjector.cjs +12 -39
  103. package/dist/completion/native-search-types.cjs +13 -66
  104. package/dist/completion/native-search-types.js +7 -31
  105. package/dist/completion/openrouter-headers.cjs +12 -71
  106. package/dist/completion/openrouter-headers.d.cts +9 -12
  107. package/dist/completion/openrouter-headers.d.ts +9 -12
  108. package/dist/completion/openrouter-headers.js +7 -36
  109. package/dist/completion/openrouter-models.cjs +11 -67
  110. package/dist/completion/openrouter-models.js +5 -34
  111. package/dist/completion/types.cjs +1 -18
  112. package/dist/completion/url-builder.cjs +24 -138
  113. package/dist/completion/url-builder.js +12 -92
  114. package/dist/completion.cjs +62 -3989
  115. package/dist/completion.d.cts +3 -2
  116. package/dist/completion.d.ts +3 -2
  117. package/dist/completion.js +70 -3953
  118. package/dist/index.cjs +319 -10429
  119. package/dist/index.d.cts +49 -12
  120. package/dist/index.d.ts +49 -12
  121. package/dist/index.js +248 -10269
  122. package/dist/logger-4GvQNzhE.d.cts +22 -0
  123. package/dist/logger-4GvQNzhE.d.ts +22 -0
  124. package/dist/outbound-api/routeResolver.cjs +10 -217
  125. package/dist/outbound-api/routeResolver.d.cts +10 -3
  126. package/dist/outbound-api/routeResolver.d.ts +10 -3
  127. package/dist/outbound-api/routeResolver.js +9 -187
  128. package/dist/outbound-api/subscriptionRegistryPort.cjs +7 -37
  129. package/dist/outbound-api/subscriptionRegistryPort.d.cts +2 -1
  130. package/dist/outbound-api/subscriptionRegistryPort.d.ts +2 -1
  131. package/dist/outbound-api/subscriptionRegistryPort.js +4 -8
  132. package/dist/outbound-api/types.cjs +5 -17
  133. package/dist/outbound-api/types.d.cts +12 -144
  134. package/dist/outbound-api/types.d.ts +12 -144
  135. package/dist/outbound-api/types.js +6 -0
  136. package/dist/outbound-api.cjs +197 -5265
  137. package/dist/outbound-api.d.cts +787 -25
  138. package/dist/outbound-api.d.ts +787 -25
  139. package/dist/outbound-api.js +173 -5195
  140. package/dist/pipeline/AuthSource.cjs +1 -18
  141. package/dist/pipeline/AuthSource.d.cts +23 -1
  142. package/dist/pipeline/AuthSource.d.ts +23 -1
  143. package/dist/pipeline/LlmConfigProviderAuth.cjs +5 -166
  144. package/dist/pipeline/LlmConfigProviderAuth.d.cts +2 -1
  145. package/dist/pipeline/LlmConfigProviderAuth.d.ts +2 -1
  146. package/dist/pipeline/LlmConfigProviderAuth.js +5 -139
  147. package/dist/pipeline/SubscriptionAccountHealth.cjs +22 -0
  148. package/dist/pipeline/SubscriptionAccountHealth.d.cts +235 -0
  149. package/dist/pipeline/SubscriptionAccountHealth.d.ts +235 -0
  150. package/dist/pipeline/SubscriptionAccountHealth.js +22 -0
  151. package/dist/pipeline/SubscriptionAuthSource.cjs +6 -128
  152. package/dist/pipeline/SubscriptionAuthSource.d.cts +3 -2
  153. package/dist/pipeline/SubscriptionAuthSource.d.ts +3 -2
  154. package/dist/pipeline/SubscriptionAuthSource.js +5 -99
  155. package/dist/pipeline/SubscriptionAuthStrategy.cjs +1 -18
  156. package/dist/pipeline/SubscriptionAuthStrategy.d.cts +24 -1
  157. package/dist/pipeline/SubscriptionAuthStrategy.d.ts +24 -1
  158. package/dist/pipeline/auditSink.cjs +14 -0
  159. package/dist/pipeline/auditSink.d.cts +48 -0
  160. package/dist/pipeline/auditSink.d.ts +48 -0
  161. package/dist/pipeline/auditSink.js +14 -0
  162. package/dist/pipeline/billingEmit.cjs +14 -0
  163. package/dist/pipeline/billingEmit.d.cts +49 -0
  164. package/dist/pipeline/billingEmit.d.ts +49 -0
  165. package/dist/pipeline/billingEmit.js +14 -0
  166. package/dist/pipeline/executeProviderCall.cjs +5 -69
  167. package/dist/pipeline/executeProviderCall.js +3 -42
  168. package/dist/pipeline/resolveProviderChain.cjs +5 -46
  169. package/dist/pipeline/resolveProviderChain.js +3 -19
  170. package/dist/pipeline/resolveSubscriptionChain.cjs +5 -67
  171. package/dist/pipeline/resolveSubscriptionChain.js +3 -40
  172. package/dist/ports/gemini-code-assist-resolver.cjs +7 -37
  173. package/dist/ports/gemini-code-assist-resolver.js +4 -8
  174. package/dist/ports/pricing-store.cjs +1 -0
  175. package/dist/ports/pricing-store.d.cts +50 -0
  176. package/dist/ports/pricing-store.d.ts +50 -0
  177. package/dist/ports/pricing-store.js +0 -0
  178. package/dist/ports/provider-config-source.cjs +1 -18
  179. package/dist/ports/usage-event-store.cjs +1 -0
  180. package/dist/ports/usage-event-store.d.cts +54 -0
  181. package/dist/ports/usage-event-store.d.ts +54 -0
  182. package/dist/ports/usage-event-store.js +0 -0
  183. package/dist/ports/web-search-backend.cjs +1 -18
  184. package/dist/ports.cjs +1 -18
  185. package/dist/ports.d.cts +13 -2
  186. package/dist/ports.d.ts +13 -2
  187. package/dist/provider-proxy/ProviderProxy.cjs +47 -4643
  188. package/dist/provider-proxy/ProviderProxy.d.cts +2 -1
  189. package/dist/provider-proxy/ProviderProxy.d.ts +2 -1
  190. package/dist/provider-proxy/ProviderProxy.js +42 -4613
  191. package/dist/provider-proxy/identity/SubscriptionIdentityStore.cjs +15 -0
  192. package/dist/provider-proxy/identity/SubscriptionIdentityStore.d.cts +121 -0
  193. package/dist/provider-proxy/identity/SubscriptionIdentityStore.d.ts +121 -0
  194. package/dist/provider-proxy/identity/SubscriptionIdentityStore.js +15 -0
  195. package/dist/provider-proxy/identity/fingerprintHeaders.cjs +20 -0
  196. package/dist/provider-proxy/identity/fingerprintHeaders.d.cts +89 -0
  197. package/dist/provider-proxy/identity/fingerprintHeaders.d.ts +89 -0
  198. package/dist/provider-proxy/identity/fingerprintHeaders.js +20 -0
  199. package/dist/provider-proxy/ingress/providerProxyShared.cjs +42 -2941
  200. package/dist/provider-proxy/ingress/providerProxyShared.d.cts +13 -3
  201. package/dist/provider-proxy/ingress/providerProxyShared.d.ts +13 -3
  202. package/dist/provider-proxy/ingress/providerProxyShared.js +48 -2914
  203. package/dist/provider-proxy/matchText.cjs +13 -72
  204. package/dist/provider-proxy/matchText.d.cts +14 -1
  205. package/dist/provider-proxy/matchText.d.ts +14 -1
  206. package/dist/provider-proxy/matchText.js +8 -39
  207. package/dist/provider-proxy/types.cjs +1 -18
  208. package/dist/provider-proxy/types.d.cts +25 -1
  209. package/dist/provider-proxy/types.d.ts +25 -1
  210. package/dist/provider-proxy.cjs +42 -4655
  211. package/dist/provider-proxy.d.cts +2 -1
  212. package/dist/provider-proxy.d.ts +2 -1
  213. package/dist/provider-proxy.js +46 -4628
  214. package/dist/{routeResolver-HE-ZO0fO.d.ts → routeResolver-B1NglTfe.d.ts} +36 -10
  215. package/dist/{routeResolver-BrbK6ja9.d.cts → routeResolver-CbG5uBgm.d.cts} +36 -10
  216. package/dist/serializeError.cjs +5 -81
  217. package/dist/serializeError.js +3 -54
  218. package/dist/sse-parser.cjs +7 -455
  219. package/dist/sse-parser.js +4 -426
  220. package/dist/transformer/TransformerChainExecutor.cjs +4 -318
  221. package/dist/transformer/TransformerChainExecutor.js +4 -291
  222. package/dist/transformer/TransformerService.cjs +5 -289
  223. package/dist/transformer/TransformerService.js +3 -262
  224. package/dist/transformer/anthropicBetaInject.cjs +7 -50
  225. package/dist/transformer/anthropicBetaInject.js +4 -21
  226. package/dist/transformer/transformers/AnthropicTransformer.cjs +3 -1014
  227. package/dist/transformer/transformers/AnthropicTransformer.js +3 -987
  228. package/dist/transformer/transformers/GeminiCodeAssistTransformer.cjs +4 -1106
  229. package/dist/transformer/transformers/GeminiCodeAssistTransformer.js +7 -1079
  230. package/dist/transformer/transformers/GeminiTransformer.cjs +4 -1010
  231. package/dist/transformer/transformers/GeminiTransformer.js +4 -983
  232. package/dist/transformer/transformers/OpenAIResponseTransformer.cjs +3 -535
  233. package/dist/transformer/transformers/OpenAIResponseTransformer.js +3 -510
  234. package/dist/transformer/transformers/OpenCodeGoTransformer.cjs +5 -72
  235. package/dist/transformer/transformers/OpenCodeGoTransformer.js +3 -45
  236. package/dist/transformer/transformers/ReasoningTransformer.cjs +3 -270
  237. package/dist/transformer/transformers/ReasoningTransformer.js +2 -249
  238. package/dist/transformer/transformers.cjs +10 -3177
  239. package/dist/transformer/transformers.js +23 -3158
  240. package/dist/transformer/types.cjs +1 -18
  241. package/dist/transformer.cjs +13 -3726
  242. package/dist/transformer.js +17 -3706
  243. package/dist/types-6OUY_xfA.d.ts +830 -0
  244. package/dist/types-aBFFXoBz.d.cts +830 -0
  245. package/dist/usage/pricing-engine.cjs +6 -0
  246. package/dist/usage/pricing-engine.d.cts +83 -0
  247. package/dist/usage/pricing-engine.d.ts +83 -0
  248. package/dist/usage/pricing-engine.js +6 -0
  249. package/dist/usage/usage-recorder.cjs +6 -0
  250. package/dist/usage/usage-recorder.d.cts +91 -0
  251. package/dist/usage/usage-recorder.d.ts +91 -0
  252. package/dist/usage/usage-recorder.js +6 -0
  253. package/dist/usage.cjs +11 -0
  254. package/dist/usage.d.cts +8 -0
  255. package/dist/usage.d.ts +8 -0
  256. package/dist/usage.js +11 -0
  257. package/package.json +4 -2
  258. package/dist/ApiKeyPoolService-BmMkau07.d.cts +0 -170
  259. package/dist/ApiKeyPoolService-BmMkau07.d.ts +0 -170
@@ -1,11 +1,12 @@
1
1
  import { ThinkLevel } from '@omnicross/contracts/completion-types';
2
2
  import { LLMProvider } from '@omnicross/contracts/llm-config';
3
3
  import { C as CorePaths, U as UsageEventSink } from './usage-event-sink-BX7FE1NL.cjs';
4
- import { L as Logger, A as ApiKeyPoolService } from './ApiKeyPoolService-BmMkau07.cjs';
4
+ import { L as Logger } from './logger-4GvQNzhE.cjs';
5
5
  import { ProviderConfigSource } from './ports/provider-config-source.cjs';
6
6
  import { UsageRecorderImport } from './provider-proxy/types.cjs';
7
7
  import { O as OpenAITool, A as AnthropicTool, G as GeminiTools, M as McpToolProvider, B as BuiltinToolExecutor } from './BuiltinToolExecutor-CS2WpXhM.cjs';
8
8
  import { C as CompletionOptions, S as StreamCallbacks, a as CompletionResult } from './types-BScIHmPr.cjs';
9
+ import { ApiKeyPoolService } from './completion/ApiKeyPoolService.cjs';
9
10
  import { MCPTool } from '@omnicross/contracts/mcp-types';
10
11
 
11
12
  /**
@@ -1,11 +1,12 @@
1
1
  import { ThinkLevel } from '@omnicross/contracts/completion-types';
2
2
  import { LLMProvider } from '@omnicross/contracts/llm-config';
3
3
  import { C as CorePaths, U as UsageEventSink } from './usage-event-sink-BX7FE1NL.js';
4
- import { L as Logger, A as ApiKeyPoolService } from './ApiKeyPoolService-BmMkau07.js';
4
+ import { L as Logger } from './logger-4GvQNzhE.js';
5
5
  import { ProviderConfigSource } from './ports/provider-config-source.js';
6
6
  import { UsageRecorderImport } from './provider-proxy/types.js';
7
7
  import { O as OpenAITool, A as AnthropicTool, G as GeminiTools, M as McpToolProvider, B as BuiltinToolExecutor } from './BuiltinToolExecutor-BluWyeob.js';
8
8
  import { C as CompletionOptions, S as StreamCallbacks, a as CompletionResult } from './types-BScIHmPr.js';
9
+ import { ApiKeyPoolService } from './completion/ApiKeyPoolService.js';
9
10
  import { MCPTool } from '@omnicross/contracts/mcp-types';
10
11
 
11
12
  /**
@@ -1,40 +1,11 @@
1
- "use strict";
2
- var __defProp = Object.defineProperty;
3
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
- var __getOwnPropNames = Object.getOwnPropertyNames;
5
- var __hasOwnProp = Object.prototype.hasOwnProperty;
6
- var __export = (target, all) => {
7
- for (var name in all)
8
- __defProp(target, name, { get: all[name], enumerable: true });
9
- };
10
- var __copyProps = (to, from, except, desc) => {
11
- if (from && typeof from === "object" || typeof from === "function") {
12
- for (let key of __getOwnPropNames(from))
13
- if (!__hasOwnProp.call(to, key) && key !== except)
14
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
- }
16
- return to;
17
- };
18
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; } var _class;
2
+
3
+ var _chunkS6JGLF3Gcjs = require('../chunk-S6JGLF3G.cjs');
19
4
 
20
- // src/auth/GeminiCodeAssistProjectResolver.ts
21
- var GeminiCodeAssistProjectResolver_exports = {};
22
- __export(GeminiCodeAssistProjectResolver_exports, {
23
- GeminiCodeAssistHandshakeError: () => GeminiCodeAssistHandshakeError,
24
- GeminiCodeAssistProjectResolver: () => GeminiCodeAssistProjectResolver,
25
- getGeminiCodeAssistProjectResolver: () => getGeminiCodeAssistProjectResolver
26
- });
27
- module.exports = __toCommonJS(GeminiCodeAssistProjectResolver_exports);
28
5
 
29
- // src/transformer/transformers/GeminiCodeAssistTransformer.ts
30
- var DEFAULT_CODE_ASSIST_ENDPOINT = "https://cloudcode-pa.googleapis.com";
31
- var DEFAULT_CODE_ASSIST_API_VERSION = "v1internal";
32
- function resolveCodeAssistEndpoint() {
33
- return (process.env.CODE_ASSIST_ENDPOINT || DEFAULT_CODE_ASSIST_ENDPOINT).replace(/\/+$/, "");
34
- }
35
- function resolveCodeAssistApiVersion() {
36
- return process.env.CODE_ASSIST_API_VERSION || DEFAULT_CODE_ASSIST_API_VERSION;
37
- }
6
+
7
+ var _chunkRSJ3TWJQcjs = require('../chunk-RSJ3TWJQ.cjs');
8
+ require('../chunk-YGXJGRFI.cjs');
38
9
 
39
10
  // src/auth/GeminiCodeAssistProjectResolver.ts
40
11
  var FREE_TIER_ID = "free-tier";
@@ -48,18 +19,20 @@ var GeminiCodeAssistHandshakeError = class extends Error {
48
19
  this.code = code;
49
20
  this.name = "GeminiCodeAssistHandshakeError";
50
21
  }
51
- status;
52
- code;
22
+
23
+
53
24
  };
54
- var GeminiCodeAssistProjectResolver = class {
55
- constructor(fetchImpl = (url, init) => fetch(url, init)) {
25
+ var GeminiCodeAssistProjectResolver = (_class = class {
26
+ // upstream-proxy: the Code Assist handshake is upstream egress → honor the
27
+ // gemini proxy by default (still injectable for tests).
28
+ constructor(fetchImpl = (url, init) => _chunkS6JGLF3Gcjs.fetchUpstream.call(void 0, url, init, { providerId: "gemini" })) {;_class.prototype.__init.call(this);_class.prototype.__init2.call(this);
56
29
  this.fetchImpl = fetchImpl;
57
30
  }
58
- fetchImpl;
31
+
59
32
  /** account access token → resolved project id (undefined = free-tier, no project). */
60
- cache = /* @__PURE__ */ new Map();
33
+ __init() {this.cache = /* @__PURE__ */ new Map()}
61
34
  /** In-flight handshakes so concurrent callers share one round-trip. */
62
- inflight = /* @__PURE__ */ new Map();
35
+ __init2() {this.inflight = /* @__PURE__ */ new Map()}
63
36
  /** Test/diagnostic helper — clear the cached resolution for an account. */
64
37
  clearCache() {
65
38
  this.cache.clear();
@@ -86,7 +59,7 @@ var GeminiCodeAssistProjectResolver = class {
86
59
  return run;
87
60
  }
88
61
  codeAssistUrl(method) {
89
- return `${resolveCodeAssistEndpoint()}/${resolveCodeAssistApiVersion()}:${method}`;
62
+ return `${_chunkRSJ3TWJQcjs.resolveCodeAssistEndpoint.call(void 0, )}/${_chunkRSJ3TWJQcjs.resolveCodeAssistApiVersion.call(void 0, )}:${method}`;
90
63
  }
91
64
  /** Seed project id from env; reject a purely-numeric value (project NUMBER). */
92
65
  seedProjectId() {
@@ -105,11 +78,11 @@ var GeminiCodeAssistProjectResolver = class {
105
78
  duetProject: seededProject || void 0
106
79
  }
107
80
  });
108
- if (load.currentTier?.id) {
81
+ if (_optionalChain([load, 'access', _ => _.currentTier, 'optionalAccess', _2 => _2.id])) {
109
82
  return load.cloudaicompanionProject || void 0;
110
83
  }
111
- const defaultTier = load.allowedTiers?.find((t) => t.isDefault);
112
- const tierId = defaultTier?.id ?? LEGACY_TIER_ID;
84
+ const defaultTier = _optionalChain([load, 'access', _3 => _3.allowedTiers, 'optionalAccess', _4 => _4.find, 'call', _5 => _5((t) => t.isDefault)]);
85
+ const tierId = _nullishCoalesce(_optionalChain([defaultTier, 'optionalAccess', _6 => _6.id]), () => ( LEGACY_TIER_ID));
113
86
  const isFreeish = tierId === FREE_TIER_ID || tierId === LEGACY_TIER_ID;
114
87
  const onboardProject = isFreeish ? void 0 : seededProject || void 0;
115
88
  let lro = await this.postCodeAssist("onboardUser", accessToken, {
@@ -130,11 +103,11 @@ var GeminiCodeAssistProjectResolver = class {
130
103
  }
131
104
  if (lro.error) {
132
105
  throw new GeminiCodeAssistHandshakeError(
133
- `Code Assist onboardUser failed: ${lro.error.message ?? "unknown"}`,
134
- lro.error.code ?? 500
106
+ `Code Assist onboardUser failed: ${_nullishCoalesce(lro.error.message, () => ( "unknown"))}`,
107
+ _nullishCoalesce(lro.error.code, () => ( 500))
135
108
  );
136
109
  }
137
- return lro.response?.cloudaicompanionProject?.id || void 0;
110
+ return _optionalChain([lro, 'access', _7 => _7.response, 'optionalAccess', _8 => _8.cloudaicompanionProject, 'optionalAccess', _9 => _9.id]) || void 0;
138
111
  }
139
112
  /** POST a Code Assist method, surfacing the documented hard failures clearly. */
140
113
  async postCodeAssist(method, accessToken, body) {
@@ -173,13 +146,13 @@ var GeminiCodeAssistProjectResolver = class {
173
146
  let detailMessage = "";
174
147
  try {
175
148
  const errBody = await res.json();
176
- detailCode = errBody.error?.status;
177
- detailMessage = errBody.error?.message ?? "";
178
- } catch {
149
+ detailCode = _optionalChain([errBody, 'access', _10 => _10.error, 'optionalAccess', _11 => _11.status]);
150
+ detailMessage = _nullishCoalesce(_optionalChain([errBody, 'access', _12 => _12.error, 'optionalAccess', _13 => _13.message]), () => ( ""));
151
+ } catch (e) {
179
152
  }
180
153
  if (res.status === 403) {
181
154
  throw new GeminiCodeAssistHandshakeError(
182
- `Code Assist ${method} denied (403 ${detailCode ?? "PERMISSION_DENIED"}): ${detailMessage || "enable the Cloud AI Companion API and grant the required role"}`,
155
+ `Code Assist ${method} denied (403 ${_nullishCoalesce(detailCode, () => ( "PERMISSION_DENIED"))}): ${detailMessage || "enable the Cloud AI Companion API and grant the required role"}`,
183
156
  403,
184
157
  detailCode
185
158
  );
@@ -197,7 +170,7 @@ var GeminiCodeAssistProjectResolver = class {
197
170
  detailCode
198
171
  );
199
172
  }
200
- };
173
+ }, _class);
201
174
  function delay(ms) {
202
175
  return new Promise((resolve) => {
203
176
  setTimeout(resolve, ms);
@@ -210,9 +183,8 @@ function getGeminiCodeAssistProjectResolver() {
210
183
  }
211
184
  return _resolverSingleton;
212
185
  }
213
- // Annotate the CommonJS export names for ESM import in node:
214
- 0 && (module.exports = {
215
- GeminiCodeAssistHandshakeError,
216
- GeminiCodeAssistProjectResolver,
217
- getGeminiCodeAssistProjectResolver
218
- });
186
+
187
+
188
+
189
+
190
+ exports.GeminiCodeAssistHandshakeError = GeminiCodeAssistHandshakeError; exports.GeminiCodeAssistProjectResolver = GeminiCodeAssistProjectResolver; exports.getGeminiCodeAssistProjectResolver = getGeminiCodeAssistProjectResolver;
@@ -1,12 +1,11 @@
1
- // src/transformer/transformers/GeminiCodeAssistTransformer.ts
2
- var DEFAULT_CODE_ASSIST_ENDPOINT = "https://cloudcode-pa.googleapis.com";
3
- var DEFAULT_CODE_ASSIST_API_VERSION = "v1internal";
4
- function resolveCodeAssistEndpoint() {
5
- return (process.env.CODE_ASSIST_ENDPOINT || DEFAULT_CODE_ASSIST_ENDPOINT).replace(/\/+$/, "");
6
- }
7
- function resolveCodeAssistApiVersion() {
8
- return process.env.CODE_ASSIST_API_VERSION || DEFAULT_CODE_ASSIST_API_VERSION;
9
- }
1
+ import {
2
+ fetchUpstream
3
+ } from "../chunk-BO4RFWBR.js";
4
+ import {
5
+ resolveCodeAssistApiVersion,
6
+ resolveCodeAssistEndpoint
7
+ } from "../chunk-Z7Y2NPHY.js";
8
+ import "../chunk-S4WBV25P.js";
10
9
 
11
10
  // src/auth/GeminiCodeAssistProjectResolver.ts
12
11
  var FREE_TIER_ID = "free-tier";
@@ -24,7 +23,9 @@ var GeminiCodeAssistHandshakeError = class extends Error {
24
23
  code;
25
24
  };
26
25
  var GeminiCodeAssistProjectResolver = class {
27
- constructor(fetchImpl = (url, init) => fetch(url, init)) {
26
+ // upstream-proxy: the Code Assist handshake is upstream egress → honor the
27
+ // gemini proxy by default (still injectable for tests).
28
+ constructor(fetchImpl = (url, init) => fetchUpstream(url, init, { providerId: "gemini" })) {
28
29
  this.fetchImpl = fetchImpl;
29
30
  }
30
31
  fetchImpl;
@@ -0,0 +1,100 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }// src/completion/builtin-web-fetch.ts
2
+ var _readability = require('@mozilla/readability');
3
+ var _jsdom = require('jsdom');
4
+ var _turndown = require('turndown'); var _turndown2 = _interopRequireDefault(_turndown);
5
+ var FETCH_TIMEOUT_MS = 15e3;
6
+ var MAX_RESPONSE_BYTES = 5 * 1024 * 1024;
7
+ var MAX_REDIRECTS = 5;
8
+ var CHROME_UA = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36";
9
+ var FETCH_HEADERS = {
10
+ "User-Agent": CHROME_UA,
11
+ Accept: "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8",
12
+ "Accept-Language": "en-US,en;q=0.9"
13
+ };
14
+ var turndown = new (0, _turndown2.default)({
15
+ headingStyle: "atx",
16
+ codeBlockStyle: "fenced",
17
+ bulletListMarker: "-"
18
+ });
19
+ async function fetchAndExtractUrl(url, maxChars) {
20
+ const controller = new AbortController();
21
+ const timer = setTimeout(() => controller.abort(), FETCH_TIMEOUT_MS);
22
+ try {
23
+ const res = await fetchWithRedirectLimit(url, controller.signal);
24
+ clearTimeout(timer);
25
+ const contentType = _nullishCoalesce(res.headers.get("content-type"), () => ( ""));
26
+ const rawText = await readBodyWithLimit(res);
27
+ let text;
28
+ if (contentType.includes("json")) {
29
+ try {
30
+ text = JSON.stringify(JSON.parse(rawText), null, 2);
31
+ } catch (e) {
32
+ text = rawText;
33
+ }
34
+ } else if (contentType.includes("html")) {
35
+ text = extractHtml(rawText, res.url || url);
36
+ } else {
37
+ text = rawText;
38
+ }
39
+ return text.length > maxChars ? text.slice(0, maxChars) + "\n\n[Content truncated]" : text;
40
+ } finally {
41
+ clearTimeout(timer);
42
+ }
43
+ }
44
+ function extractHtml(html, url) {
45
+ const dom = new (0, _jsdom.JSDOM)(html, { url });
46
+ const doc = dom.window.document;
47
+ for (const sel of ["script", "style", "noscript", "nav", "footer", "aside", "iframe"]) {
48
+ doc.querySelectorAll(sel).forEach((el) => el.remove());
49
+ }
50
+ const reader = new (0, _readability.Readability)(doc);
51
+ const article = reader.parse();
52
+ if (_optionalChain([article, 'optionalAccess', _ => _.content])) {
53
+ return turndown.turndown(article.content).replace(/\n{3,}/g, "\n\n");
54
+ }
55
+ const body = _optionalChain([doc, 'access', _2 => _2.body, 'optionalAccess', _3 => _3.textContent]) || "";
56
+ return body.replace(/\s+/g, " ").trim();
57
+ }
58
+ async function fetchWithRedirectLimit(url, signal) {
59
+ let currentUrl = url;
60
+ for (let i = 0; i < MAX_REDIRECTS; i++) {
61
+ const res = await fetch(currentUrl, { signal, redirect: "manual", headers: FETCH_HEADERS });
62
+ if (res.status >= 300 && res.status < 400) {
63
+ const location = res.headers.get("location");
64
+ if (!location) return res;
65
+ currentUrl = new URL(location, currentUrl).href;
66
+ continue;
67
+ }
68
+ Object.defineProperty(res, "url", { value: currentUrl, writable: false });
69
+ return res;
70
+ }
71
+ throw new Error(`Too many redirects (>${MAX_REDIRECTS})`);
72
+ }
73
+ async function readBodyWithLimit(res) {
74
+ const reader = _optionalChain([res, 'access', _4 => _4.body, 'optionalAccess', _5 => _5.getReader, 'call', _6 => _6()]);
75
+ if (!reader) return "";
76
+ const chunks = [];
77
+ let totalBytes = 0;
78
+ while (true) {
79
+ const { done, value } = await reader.read();
80
+ if (done) break;
81
+ totalBytes += value.byteLength;
82
+ if (totalBytes > MAX_RESPONSE_BYTES) {
83
+ reader.cancel();
84
+ break;
85
+ }
86
+ chunks.push(value);
87
+ }
88
+ const combined = new Uint8Array(totalBytes > MAX_RESPONSE_BYTES ? MAX_RESPONSE_BYTES : totalBytes);
89
+ let offset = 0;
90
+ for (const chunk of chunks) {
91
+ const len = Math.min(chunk.byteLength, combined.byteLength - offset);
92
+ combined.set(chunk.subarray(0, len), offset);
93
+ offset += len;
94
+ if (offset >= combined.byteLength) break;
95
+ }
96
+ return new TextDecoder("utf-8", { fatal: false }).decode(combined);
97
+ }
98
+
99
+
100
+ exports.fetchAndExtractUrl = fetchAndExtractUrl;
@@ -0,0 +1,100 @@
1
+ // src/completion/builtin-web-fetch.ts
2
+ import { Readability } from "@mozilla/readability";
3
+ import { JSDOM } from "jsdom";
4
+ import TurndownService from "turndown";
5
+ var FETCH_TIMEOUT_MS = 15e3;
6
+ var MAX_RESPONSE_BYTES = 5 * 1024 * 1024;
7
+ var MAX_REDIRECTS = 5;
8
+ var CHROME_UA = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36";
9
+ var FETCH_HEADERS = {
10
+ "User-Agent": CHROME_UA,
11
+ Accept: "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8",
12
+ "Accept-Language": "en-US,en;q=0.9"
13
+ };
14
+ var turndown = new TurndownService({
15
+ headingStyle: "atx",
16
+ codeBlockStyle: "fenced",
17
+ bulletListMarker: "-"
18
+ });
19
+ async function fetchAndExtractUrl(url, maxChars) {
20
+ const controller = new AbortController();
21
+ const timer = setTimeout(() => controller.abort(), FETCH_TIMEOUT_MS);
22
+ try {
23
+ const res = await fetchWithRedirectLimit(url, controller.signal);
24
+ clearTimeout(timer);
25
+ const contentType = res.headers.get("content-type") ?? "";
26
+ const rawText = await readBodyWithLimit(res);
27
+ let text;
28
+ if (contentType.includes("json")) {
29
+ try {
30
+ text = JSON.stringify(JSON.parse(rawText), null, 2);
31
+ } catch {
32
+ text = rawText;
33
+ }
34
+ } else if (contentType.includes("html")) {
35
+ text = extractHtml(rawText, res.url || url);
36
+ } else {
37
+ text = rawText;
38
+ }
39
+ return text.length > maxChars ? text.slice(0, maxChars) + "\n\n[Content truncated]" : text;
40
+ } finally {
41
+ clearTimeout(timer);
42
+ }
43
+ }
44
+ function extractHtml(html, url) {
45
+ const dom = new JSDOM(html, { url });
46
+ const doc = dom.window.document;
47
+ for (const sel of ["script", "style", "noscript", "nav", "footer", "aside", "iframe"]) {
48
+ doc.querySelectorAll(sel).forEach((el) => el.remove());
49
+ }
50
+ const reader = new Readability(doc);
51
+ const article = reader.parse();
52
+ if (article?.content) {
53
+ return turndown.turndown(article.content).replace(/\n{3,}/g, "\n\n");
54
+ }
55
+ const body = doc.body?.textContent || "";
56
+ return body.replace(/\s+/g, " ").trim();
57
+ }
58
+ async function fetchWithRedirectLimit(url, signal) {
59
+ let currentUrl = url;
60
+ for (let i = 0; i < MAX_REDIRECTS; i++) {
61
+ const res = await fetch(currentUrl, { signal, redirect: "manual", headers: FETCH_HEADERS });
62
+ if (res.status >= 300 && res.status < 400) {
63
+ const location = res.headers.get("location");
64
+ if (!location) return res;
65
+ currentUrl = new URL(location, currentUrl).href;
66
+ continue;
67
+ }
68
+ Object.defineProperty(res, "url", { value: currentUrl, writable: false });
69
+ return res;
70
+ }
71
+ throw new Error(`Too many redirects (>${MAX_REDIRECTS})`);
72
+ }
73
+ async function readBodyWithLimit(res) {
74
+ const reader = res.body?.getReader();
75
+ if (!reader) return "";
76
+ const chunks = [];
77
+ let totalBytes = 0;
78
+ while (true) {
79
+ const { done, value } = await reader.read();
80
+ if (done) break;
81
+ totalBytes += value.byteLength;
82
+ if (totalBytes > MAX_RESPONSE_BYTES) {
83
+ reader.cancel();
84
+ break;
85
+ }
86
+ chunks.push(value);
87
+ }
88
+ const combined = new Uint8Array(totalBytes > MAX_RESPONSE_BYTES ? MAX_RESPONSE_BYTES : totalBytes);
89
+ let offset = 0;
90
+ for (const chunk of chunks) {
91
+ const len = Math.min(chunk.byteLength, combined.byteLength - offset);
92
+ combined.set(chunk.subarray(0, len), offset);
93
+ offset += len;
94
+ if (offset >= combined.byteLength) break;
95
+ }
96
+ return new TextDecoder("utf-8", { fatal: false }).decode(combined);
97
+ }
98
+ export {
99
+ fetchAndExtractUrl
100
+ };