@omnicross/core 0.1.1 → 0.1.2

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 (210) 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 +27 -60
  6. package/dist/auth/GeminiCodeAssistProjectResolver.js +5 -9
  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-2FEVTJWG.js +4400 -0
  11. package/dist/chunk-3MEACFK3.js +193 -0
  12. package/dist/chunk-3OPYJG76.cjs +266 -0
  13. package/dist/chunk-46RLHI7D.js +0 -0
  14. package/dist/chunk-46ZIFWYG.cjs +277 -0
  15. package/dist/chunk-4NBS6KPV.cjs +43 -0
  16. package/dist/chunk-4VAVYUZS.cjs +991 -0
  17. package/dist/chunk-5ERIZW3D.js +44 -0
  18. package/dist/chunk-5HTVET6E.js +514 -0
  19. package/dist/chunk-5ZQBEOMD.js +764 -0
  20. package/dist/chunk-6VIXXLMX.cjs +14 -0
  21. package/dist/chunk-745DV5FL.js +147 -0
  22. package/dist/chunk-74TMJA7Z.js +53 -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-AQ5TNQB7.js +13 -0
  27. package/dist/chunk-AVYJ4YBN.js +58 -0
  28. package/dist/chunk-C72S6TTV.cjs +49 -0
  29. package/dist/chunk-C7PSERMH.js +87 -0
  30. package/dist/chunk-CDHS2QDC.js +179 -0
  31. package/dist/chunk-DK4A7DLE.js +266 -0
  32. package/dist/chunk-DRWHTIIZ.js +13 -0
  33. package/dist/chunk-DWKQZ2SK.cjs +254 -0
  34. package/dist/chunk-E3WHL7CO.js +14 -0
  35. package/dist/chunk-EYZYXJTJ.cjs +1 -0
  36. package/dist/chunk-FMOBD2OQ.js +39 -0
  37. package/dist/chunk-FTQ7IQUC.js +991 -0
  38. package/dist/chunk-FZ46M34D.cjs +1 -0
  39. package/dist/chunk-G2FUJNA2.cjs +193 -0
  40. package/dist/chunk-G2UTNSGU.js +277 -0
  41. package/dist/chunk-GBHYAGX3.cjs +26 -0
  42. package/dist/chunk-GMMT7RVN.cjs +39 -0
  43. package/dist/chunk-H5JUT3KV.js +105 -0
  44. package/dist/chunk-HQP3K7PU.cjs +431 -0
  45. package/dist/chunk-JO5NLTLY.js +46 -0
  46. package/dist/chunk-JWC6APFQ.js +23 -0
  47. package/dist/chunk-KUU2RNG6.cjs +46 -0
  48. package/dist/chunk-LKZJEL6E.cjs +124 -0
  49. package/dist/chunk-MNYKI4CI.js +94 -0
  50. package/dist/chunk-MZNPGW5Q.js +26 -0
  51. package/dist/chunk-N3V2J5ZO.cjs +53 -0
  52. package/dist/chunk-NYUNU75A.cjs +44 -0
  53. package/dist/chunk-NZYN7C3P.cjs +179 -0
  54. package/dist/chunk-O466Y272.js +235 -0
  55. package/dist/chunk-PXUJF5HS.js +124 -0
  56. package/dist/chunk-QBZJ7P2T.cjs +13 -0
  57. package/dist/chunk-QOCNX236.js +46 -0
  58. package/dist/chunk-QXD4MV2X.cjs +23 -0
  59. package/dist/chunk-R3HK6R4B.cjs +13 -0
  60. package/dist/chunk-RSJ3TWJQ.cjs +186 -0
  61. package/dist/chunk-S4WBV25P.js +913 -0
  62. package/dist/chunk-SN3YWBX7.cjs +4400 -0
  63. package/dist/chunk-SPVWWUHX.cjs +46 -0
  64. package/dist/chunk-SUEGJ75D.cjs +764 -0
  65. package/dist/chunk-SVNDB62D.cjs +58 -0
  66. package/dist/chunk-UYPEN5XE.cjs +235 -0
  67. package/dist/chunk-V5KPWNYX.cjs +147 -0
  68. package/dist/chunk-VVEHS2LI.js +431 -0
  69. package/dist/chunk-XBSYYZIY.cjs +94 -0
  70. package/dist/chunk-YGXJGRFI.cjs +913 -0
  71. package/dist/chunk-YMFAJFQT.cjs +173 -0
  72. package/dist/chunk-Z7LUNECE.js +49 -0
  73. package/dist/chunk-Z7Y2NPHY.js +186 -0
  74. package/dist/chunk-ZJZAOKI7.js +254 -0
  75. package/dist/chunk-ZLX3KGXX.js +173 -0
  76. package/dist/chunk-ZSVQT3PW.js +43 -0
  77. package/dist/completion/ApiKeyPoolService.cjs +23 -48
  78. package/dist/completion/ApiKeyPoolService.d.cts +150 -2
  79. package/dist/completion/ApiKeyPoolService.d.ts +150 -2
  80. package/dist/completion/BuiltinToolExecutor.cjs +9 -324
  81. package/dist/completion/BuiltinToolExecutor.js +6 -290
  82. package/dist/completion/CompletionService.cjs +38 -3487
  83. package/dist/completion/CompletionService.d.cts +3 -2
  84. package/dist/completion/CompletionService.d.ts +3 -2
  85. package/dist/completion/CompletionService.js +34 -3457
  86. package/dist/completion/NativeSearchInjector.cjs +8 -192
  87. package/dist/completion/NativeSearchInjector.js +7 -162
  88. package/dist/completion/ProviderSearchInjector.cjs +12 -39
  89. package/dist/completion/native-search-types.cjs +13 -66
  90. package/dist/completion/native-search-types.js +7 -31
  91. package/dist/completion/openrouter-headers.cjs +15 -71
  92. package/dist/completion/openrouter-headers.js +8 -34
  93. package/dist/completion/openrouter-models.cjs +10 -67
  94. package/dist/completion/openrouter-models.js +4 -34
  95. package/dist/completion/types.cjs +1 -18
  96. package/dist/completion/url-builder.cjs +24 -138
  97. package/dist/completion/url-builder.js +12 -92
  98. package/dist/completion.cjs +55 -3989
  99. package/dist/completion.d.cts +3 -2
  100. package/dist/completion.d.ts +3 -2
  101. package/dist/completion.js +63 -3953
  102. package/dist/index.cjs +197 -10429
  103. package/dist/index.d.cts +9 -2
  104. package/dist/index.d.ts +9 -2
  105. package/dist/index.js +125 -10268
  106. package/dist/logger-4GvQNzhE.d.cts +22 -0
  107. package/dist/logger-4GvQNzhE.d.ts +22 -0
  108. package/dist/outbound-api/routeResolver.cjs +7 -217
  109. package/dist/outbound-api/routeResolver.d.cts +2 -1
  110. package/dist/outbound-api/routeResolver.d.ts +2 -1
  111. package/dist/outbound-api/routeResolver.js +6 -187
  112. package/dist/outbound-api/subscriptionRegistryPort.cjs +7 -37
  113. package/dist/outbound-api/subscriptionRegistryPort.d.cts +2 -1
  114. package/dist/outbound-api/subscriptionRegistryPort.d.ts +2 -1
  115. package/dist/outbound-api/subscriptionRegistryPort.js +4 -8
  116. package/dist/outbound-api/types.cjs +1 -18
  117. package/dist/outbound-api/types.d.cts +2 -1
  118. package/dist/outbound-api/types.d.ts +2 -1
  119. package/dist/outbound-api.cjs +35 -5221
  120. package/dist/outbound-api.d.cts +2 -1
  121. package/dist/outbound-api.d.ts +2 -1
  122. package/dist/outbound-api.js +54 -5194
  123. package/dist/pipeline/AuthSource.cjs +1 -18
  124. package/dist/pipeline/LlmConfigProviderAuth.cjs +5 -166
  125. package/dist/pipeline/LlmConfigProviderAuth.d.cts +2 -1
  126. package/dist/pipeline/LlmConfigProviderAuth.d.ts +2 -1
  127. package/dist/pipeline/LlmConfigProviderAuth.js +5 -139
  128. package/dist/pipeline/SubscriptionAuthSource.cjs +6 -128
  129. package/dist/pipeline/SubscriptionAuthSource.js +5 -99
  130. package/dist/pipeline/SubscriptionAuthStrategy.cjs +1 -18
  131. package/dist/pipeline/executeProviderCall.cjs +5 -69
  132. package/dist/pipeline/executeProviderCall.js +3 -42
  133. package/dist/pipeline/resolveProviderChain.cjs +5 -46
  134. package/dist/pipeline/resolveProviderChain.js +3 -19
  135. package/dist/pipeline/resolveSubscriptionChain.cjs +5 -67
  136. package/dist/pipeline/resolveSubscriptionChain.js +3 -40
  137. package/dist/ports/gemini-code-assist-resolver.cjs +7 -37
  138. package/dist/ports/gemini-code-assist-resolver.js +4 -8
  139. package/dist/ports/pricing-store.cjs +1 -0
  140. package/dist/ports/pricing-store.d.cts +50 -0
  141. package/dist/ports/pricing-store.d.ts +50 -0
  142. package/dist/ports/pricing-store.js +0 -0
  143. package/dist/ports/provider-config-source.cjs +1 -18
  144. package/dist/ports/usage-event-store.cjs +1 -0
  145. package/dist/ports/usage-event-store.d.cts +29 -0
  146. package/dist/ports/usage-event-store.d.ts +29 -0
  147. package/dist/ports/usage-event-store.js +0 -0
  148. package/dist/ports/web-search-backend.cjs +1 -18
  149. package/dist/ports.cjs +1 -18
  150. package/dist/ports.d.cts +6 -1
  151. package/dist/ports.d.ts +6 -1
  152. package/dist/provider-proxy/ProviderProxy.cjs +40 -4643
  153. package/dist/provider-proxy/ProviderProxy.d.cts +2 -1
  154. package/dist/provider-proxy/ProviderProxy.d.ts +2 -1
  155. package/dist/provider-proxy/ProviderProxy.js +35 -4613
  156. package/dist/provider-proxy/ingress/providerProxyShared.cjs +35 -2941
  157. package/dist/provider-proxy/ingress/providerProxyShared.d.cts +2 -1
  158. package/dist/provider-proxy/ingress/providerProxyShared.d.ts +2 -1
  159. package/dist/provider-proxy/ingress/providerProxyShared.js +41 -2914
  160. package/dist/provider-proxy/matchText.cjs +11 -72
  161. package/dist/provider-proxy/matchText.js +6 -39
  162. package/dist/provider-proxy/types.cjs +1 -18
  163. package/dist/provider-proxy/types.d.cts +2 -1
  164. package/dist/provider-proxy/types.d.ts +2 -1
  165. package/dist/provider-proxy.cjs +35 -4655
  166. package/dist/provider-proxy.d.cts +2 -1
  167. package/dist/provider-proxy.d.ts +2 -1
  168. package/dist/provider-proxy.js +39 -4628
  169. package/dist/serializeError.cjs +5 -81
  170. package/dist/serializeError.js +3 -54
  171. package/dist/sse-parser.cjs +7 -455
  172. package/dist/sse-parser.js +4 -426
  173. package/dist/transformer/TransformerChainExecutor.cjs +4 -318
  174. package/dist/transformer/TransformerChainExecutor.js +4 -291
  175. package/dist/transformer/TransformerService.cjs +5 -289
  176. package/dist/transformer/TransformerService.js +3 -262
  177. package/dist/transformer/anthropicBetaInject.cjs +7 -50
  178. package/dist/transformer/anthropicBetaInject.js +4 -21
  179. package/dist/transformer/transformers/AnthropicTransformer.cjs +3 -1014
  180. package/dist/transformer/transformers/AnthropicTransformer.js +3 -987
  181. package/dist/transformer/transformers/GeminiCodeAssistTransformer.cjs +4 -1106
  182. package/dist/transformer/transformers/GeminiCodeAssistTransformer.js +7 -1079
  183. package/dist/transformer/transformers/GeminiTransformer.cjs +4 -1010
  184. package/dist/transformer/transformers/GeminiTransformer.js +4 -983
  185. package/dist/transformer/transformers/OpenAIResponseTransformer.cjs +3 -535
  186. package/dist/transformer/transformers/OpenAIResponseTransformer.js +3 -510
  187. package/dist/transformer/transformers/OpenCodeGoTransformer.cjs +5 -72
  188. package/dist/transformer/transformers/OpenCodeGoTransformer.js +3 -45
  189. package/dist/transformer/transformers/ReasoningTransformer.cjs +3 -270
  190. package/dist/transformer/transformers/ReasoningTransformer.js +2 -249
  191. package/dist/transformer/transformers.cjs +10 -3177
  192. package/dist/transformer/transformers.js +23 -3158
  193. package/dist/transformer/types.cjs +1 -18
  194. package/dist/transformer.cjs +13 -3726
  195. package/dist/transformer.js +17 -3706
  196. package/dist/usage/pricing-engine.cjs +6 -0
  197. package/dist/usage/pricing-engine.d.cts +83 -0
  198. package/dist/usage/pricing-engine.d.ts +83 -0
  199. package/dist/usage/pricing-engine.js +6 -0
  200. package/dist/usage/usage-recorder.cjs +6 -0
  201. package/dist/usage/usage-recorder.d.cts +73 -0
  202. package/dist/usage/usage-recorder.d.ts +73 -0
  203. package/dist/usage/usage-recorder.js +6 -0
  204. package/dist/usage.cjs +11 -0
  205. package/dist/usage.d.cts +8 -0
  206. package/dist/usage.d.ts +8 -0
  207. package/dist/usage.js +11 -0
  208. package/package.json +1 -1
  209. package/dist/ApiKeyPoolService-BmMkau07.d.cts +0 -170
  210. 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,8 @@
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;
19
2
 
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
3
 
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
- }
4
+ var _chunkRSJ3TWJQcjs = require('../chunk-RSJ3TWJQ.cjs');
5
+ require('../chunk-YGXJGRFI.cjs');
38
6
 
39
7
  // src/auth/GeminiCodeAssistProjectResolver.ts
40
8
  var FREE_TIER_ID = "free-tier";
@@ -48,18 +16,18 @@ var GeminiCodeAssistHandshakeError = class extends Error {
48
16
  this.code = code;
49
17
  this.name = "GeminiCodeAssistHandshakeError";
50
18
  }
51
- status;
52
- code;
19
+
20
+
53
21
  };
54
- var GeminiCodeAssistProjectResolver = class {
55
- constructor(fetchImpl = (url, init) => fetch(url, init)) {
22
+ var GeminiCodeAssistProjectResolver = (_class = class {
23
+ constructor(fetchImpl = (url, init) => fetch(url, init)) {;_class.prototype.__init.call(this);_class.prototype.__init2.call(this);
56
24
  this.fetchImpl = fetchImpl;
57
25
  }
58
- fetchImpl;
26
+
59
27
  /** account access token → resolved project id (undefined = free-tier, no project). */
60
- cache = /* @__PURE__ */ new Map();
28
+ __init() {this.cache = /* @__PURE__ */ new Map()}
61
29
  /** In-flight handshakes so concurrent callers share one round-trip. */
62
- inflight = /* @__PURE__ */ new Map();
30
+ __init2() {this.inflight = /* @__PURE__ */ new Map()}
63
31
  /** Test/diagnostic helper — clear the cached resolution for an account. */
64
32
  clearCache() {
65
33
  this.cache.clear();
@@ -86,7 +54,7 @@ var GeminiCodeAssistProjectResolver = class {
86
54
  return run;
87
55
  }
88
56
  codeAssistUrl(method) {
89
- return `${resolveCodeAssistEndpoint()}/${resolveCodeAssistApiVersion()}:${method}`;
57
+ return `${_chunkRSJ3TWJQcjs.resolveCodeAssistEndpoint.call(void 0, )}/${_chunkRSJ3TWJQcjs.resolveCodeAssistApiVersion.call(void 0, )}:${method}`;
90
58
  }
91
59
  /** Seed project id from env; reject a purely-numeric value (project NUMBER). */
92
60
  seedProjectId() {
@@ -105,11 +73,11 @@ var GeminiCodeAssistProjectResolver = class {
105
73
  duetProject: seededProject || void 0
106
74
  }
107
75
  });
108
- if (load.currentTier?.id) {
76
+ if (_optionalChain([load, 'access', _ => _.currentTier, 'optionalAccess', _2 => _2.id])) {
109
77
  return load.cloudaicompanionProject || void 0;
110
78
  }
111
- const defaultTier = load.allowedTiers?.find((t) => t.isDefault);
112
- const tierId = defaultTier?.id ?? LEGACY_TIER_ID;
79
+ const defaultTier = _optionalChain([load, 'access', _3 => _3.allowedTiers, 'optionalAccess', _4 => _4.find, 'call', _5 => _5((t) => t.isDefault)]);
80
+ const tierId = _nullishCoalesce(_optionalChain([defaultTier, 'optionalAccess', _6 => _6.id]), () => ( LEGACY_TIER_ID));
113
81
  const isFreeish = tierId === FREE_TIER_ID || tierId === LEGACY_TIER_ID;
114
82
  const onboardProject = isFreeish ? void 0 : seededProject || void 0;
115
83
  let lro = await this.postCodeAssist("onboardUser", accessToken, {
@@ -130,11 +98,11 @@ var GeminiCodeAssistProjectResolver = class {
130
98
  }
131
99
  if (lro.error) {
132
100
  throw new GeminiCodeAssistHandshakeError(
133
- `Code Assist onboardUser failed: ${lro.error.message ?? "unknown"}`,
134
- lro.error.code ?? 500
101
+ `Code Assist onboardUser failed: ${_nullishCoalesce(lro.error.message, () => ( "unknown"))}`,
102
+ _nullishCoalesce(lro.error.code, () => ( 500))
135
103
  );
136
104
  }
137
- return lro.response?.cloudaicompanionProject?.id || void 0;
105
+ return _optionalChain([lro, 'access', _7 => _7.response, 'optionalAccess', _8 => _8.cloudaicompanionProject, 'optionalAccess', _9 => _9.id]) || void 0;
138
106
  }
139
107
  /** POST a Code Assist method, surfacing the documented hard failures clearly. */
140
108
  async postCodeAssist(method, accessToken, body) {
@@ -173,13 +141,13 @@ var GeminiCodeAssistProjectResolver = class {
173
141
  let detailMessage = "";
174
142
  try {
175
143
  const errBody = await res.json();
176
- detailCode = errBody.error?.status;
177
- detailMessage = errBody.error?.message ?? "";
178
- } catch {
144
+ detailCode = _optionalChain([errBody, 'access', _10 => _10.error, 'optionalAccess', _11 => _11.status]);
145
+ detailMessage = _nullishCoalesce(_optionalChain([errBody, 'access', _12 => _12.error, 'optionalAccess', _13 => _13.message]), () => ( ""));
146
+ } catch (e) {
179
147
  }
180
148
  if (res.status === 403) {
181
149
  throw new GeminiCodeAssistHandshakeError(
182
- `Code Assist ${method} denied (403 ${detailCode ?? "PERMISSION_DENIED"}): ${detailMessage || "enable the Cloud AI Companion API and grant the required role"}`,
150
+ `Code Assist ${method} denied (403 ${_nullishCoalesce(detailCode, () => ( "PERMISSION_DENIED"))}): ${detailMessage || "enable the Cloud AI Companion API and grant the required role"}`,
183
151
  403,
184
152
  detailCode
185
153
  );
@@ -197,7 +165,7 @@ var GeminiCodeAssistProjectResolver = class {
197
165
  detailCode
198
166
  );
199
167
  }
200
- };
168
+ }, _class);
201
169
  function delay(ms) {
202
170
  return new Promise((resolve) => {
203
171
  setTimeout(resolve, ms);
@@ -210,9 +178,8 @@ function getGeminiCodeAssistProjectResolver() {
210
178
  }
211
179
  return _resolverSingleton;
212
180
  }
213
- // Annotate the CommonJS export names for ESM import in node:
214
- 0 && (module.exports = {
215
- GeminiCodeAssistHandshakeError,
216
- GeminiCodeAssistProjectResolver,
217
- getGeminiCodeAssistProjectResolver
218
- });
181
+
182
+
183
+
184
+
185
+ exports.GeminiCodeAssistHandshakeError = GeminiCodeAssistHandshakeError; exports.GeminiCodeAssistProjectResolver = GeminiCodeAssistProjectResolver; exports.getGeminiCodeAssistProjectResolver = getGeminiCodeAssistProjectResolver;
@@ -1,12 +1,8 @@
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
+ resolveCodeAssistApiVersion,
3
+ resolveCodeAssistEndpoint
4
+ } from "../chunk-Z7Y2NPHY.js";
5
+ import "../chunk-S4WBV25P.js";
10
6
 
11
7
  // src/auth/GeminiCodeAssistProjectResolver.ts
12
8
  var FREE_TIER_ID = "free-tier";
@@ -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
+ };