@omnicross/core 0.1.0

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 (114) hide show
  1. package/LICENSE +21 -0
  2. package/NOTICE +57 -0
  3. package/README.md +15 -0
  4. package/dist/ApiKeyPoolService-BmMkau07.d.cts +170 -0
  5. package/dist/ApiKeyPoolService-BmMkau07.d.ts +170 -0
  6. package/dist/ProviderProxy-f_8ziIhW.d.cts +120 -0
  7. package/dist/ProviderProxy-vjt8sQQk.d.ts +120 -0
  8. package/dist/SubscriptionAuthSource-Cr4fVEYY.d.cts +264 -0
  9. package/dist/SubscriptionAuthSource-D89zmiSS.d.ts +264 -0
  10. package/dist/auth/GeminiCodeAssistProjectResolver.cjs +218 -0
  11. package/dist/auth/GeminiCodeAssistProjectResolver.d.cts +68 -0
  12. package/dist/auth/GeminiCodeAssistProjectResolver.d.ts +68 -0
  13. package/dist/auth/GeminiCodeAssistProjectResolver.js +189 -0
  14. package/dist/completion/ApiKeyPoolService.cjs +331 -0
  15. package/dist/completion/ApiKeyPoolService.d.cts +2 -0
  16. package/dist/completion/ApiKeyPoolService.d.ts +2 -0
  17. package/dist/completion/ApiKeyPoolService.js +306 -0
  18. package/dist/completion.cjs +4027 -0
  19. package/dist/completion.d.cts +17 -0
  20. package/dist/completion.d.ts +17 -0
  21. package/dist/completion.js +3983 -0
  22. package/dist/index-BTSmc9Sm.d.ts +645 -0
  23. package/dist/index-DXazdTzZ.d.cts +645 -0
  24. package/dist/index.cjs +10428 -0
  25. package/dist/index.d.cts +128 -0
  26. package/dist/index.d.ts +128 -0
  27. package/dist/index.js +10339 -0
  28. package/dist/outbound-api/subscriptionRegistryPort.cjs +38 -0
  29. package/dist/outbound-api/subscriptionRegistryPort.d.cts +73 -0
  30. package/dist/outbound-api/subscriptionRegistryPort.d.ts +73 -0
  31. package/dist/outbound-api/subscriptionRegistryPort.js +12 -0
  32. package/dist/outbound-api.cjs +5264 -0
  33. package/dist/outbound-api.d.cts +320 -0
  34. package/dist/outbound-api.d.ts +320 -0
  35. package/dist/outbound-api.js +5218 -0
  36. package/dist/pipeline/SubscriptionAuthSource.cjs +131 -0
  37. package/dist/pipeline/SubscriptionAuthSource.d.cts +3 -0
  38. package/dist/pipeline/SubscriptionAuthSource.d.ts +3 -0
  39. package/dist/pipeline/SubscriptionAuthSource.js +103 -0
  40. package/dist/pipeline/SubscriptionAuthStrategy.cjs +18 -0
  41. package/dist/pipeline/SubscriptionAuthStrategy.d.cts +61 -0
  42. package/dist/pipeline/SubscriptionAuthStrategy.d.ts +61 -0
  43. package/dist/pipeline/SubscriptionAuthStrategy.js +0 -0
  44. package/dist/ports/gemini-code-assist-resolver.cjs +38 -0
  45. package/dist/ports/gemini-code-assist-resolver.d.cts +26 -0
  46. package/dist/ports/gemini-code-assist-resolver.d.ts +26 -0
  47. package/dist/ports/gemini-code-assist-resolver.js +12 -0
  48. package/dist/ports.cjs +18 -0
  49. package/dist/ports.d.cts +15 -0
  50. package/dist/ports.d.ts +15 -0
  51. package/dist/ports.js +0 -0
  52. package/dist/provider-proxy/ingress/providerProxyShared.cjs +2958 -0
  53. package/dist/provider-proxy/ingress/providerProxyShared.d.cts +77 -0
  54. package/dist/provider-proxy/ingress/providerProxyShared.d.ts +77 -0
  55. package/dist/provider-proxy/ingress/providerProxyShared.js +2925 -0
  56. package/dist/provider-proxy/matchText.cjs +73 -0
  57. package/dist/provider-proxy/matchText.d.cts +47 -0
  58. package/dist/provider-proxy/matchText.d.ts +47 -0
  59. package/dist/provider-proxy/matchText.js +45 -0
  60. package/dist/provider-proxy/types.cjs +18 -0
  61. package/dist/provider-proxy/types.d.cts +12 -0
  62. package/dist/provider-proxy/types.d.ts +12 -0
  63. package/dist/provider-proxy/types.js +0 -0
  64. package/dist/provider-proxy.cjs +4667 -0
  65. package/dist/provider-proxy.d.cts +69 -0
  66. package/dist/provider-proxy.d.ts +69 -0
  67. package/dist/provider-proxy.js +4636 -0
  68. package/dist/serializeError.cjs +82 -0
  69. package/dist/serializeError.d.cts +24 -0
  70. package/dist/serializeError.d.ts +24 -0
  71. package/dist/serializeError.js +57 -0
  72. package/dist/sse-parser.cjs +456 -0
  73. package/dist/sse-parser.d.cts +143 -0
  74. package/dist/sse-parser.d.ts +143 -0
  75. package/dist/sse-parser.js +430 -0
  76. package/dist/transformer/TransformerChainExecutor.cjs +321 -0
  77. package/dist/transformer/TransformerChainExecutor.d.cts +104 -0
  78. package/dist/transformer/TransformerChainExecutor.d.ts +104 -0
  79. package/dist/transformer/TransformerChainExecutor.js +294 -0
  80. package/dist/transformer/TransformerService.cjs +290 -0
  81. package/dist/transformer/TransformerService.d.cts +138 -0
  82. package/dist/transformer/TransformerService.d.ts +138 -0
  83. package/dist/transformer/TransformerService.js +265 -0
  84. package/dist/transformer/transformers/GeminiCodeAssistTransformer.cjs +1115 -0
  85. package/dist/transformer/transformers/GeminiCodeAssistTransformer.d.cts +102 -0
  86. package/dist/transformer/transformers/GeminiCodeAssistTransformer.d.ts +102 -0
  87. package/dist/transformer/transformers/GeminiCodeAssistTransformer.js +1085 -0
  88. package/dist/transformer/transformers/GeminiTransformer.cjs +1013 -0
  89. package/dist/transformer/transformers/GeminiTransformer.d.cts +70 -0
  90. package/dist/transformer/transformers/GeminiTransformer.d.ts +70 -0
  91. package/dist/transformer/transformers/GeminiTransformer.js +986 -0
  92. package/dist/transformer/transformers/OpenAIResponseTransformer.cjs +538 -0
  93. package/dist/transformer/transformers/OpenAIResponseTransformer.d.cts +53 -0
  94. package/dist/transformer/transformers/OpenAIResponseTransformer.d.ts +53 -0
  95. package/dist/transformer/transformers/OpenAIResponseTransformer.js +513 -0
  96. package/dist/transformer/transformers/OpenCodeGoTransformer.cjs +73 -0
  97. package/dist/transformer/transformers/OpenCodeGoTransformer.d.cts +51 -0
  98. package/dist/transformer/transformers/OpenCodeGoTransformer.d.ts +51 -0
  99. package/dist/transformer/transformers/OpenCodeGoTransformer.js +48 -0
  100. package/dist/transformer/types.cjs +18 -0
  101. package/dist/transformer/types.d.cts +405 -0
  102. package/dist/transformer/types.d.ts +405 -0
  103. package/dist/transformer/types.js +0 -0
  104. package/dist/transformer.cjs +3736 -0
  105. package/dist/transformer.d.cts +33 -0
  106. package/dist/transformer.d.ts +33 -0
  107. package/dist/transformer.js +3712 -0
  108. package/dist/types-CGGrKqC_.d.cts +142 -0
  109. package/dist/types-CbCN2NQP.d.ts +142 -0
  110. package/dist/types-DCzHkhJt.d.ts +467 -0
  111. package/dist/types-DZIQbgp0.d.cts +467 -0
  112. package/dist/usage-event-sink-BX7FE1NL.d.cts +59 -0
  113. package/dist/usage-event-sink-BX7FE1NL.d.ts +59 -0
  114. package/package.json +62 -0
@@ -0,0 +1,102 @@
1
+ import { Transformer, TransformerLogger, UnifiedChatRequest, LLMProvider, TransformerContext } from '../types.cjs';
2
+
3
+ /**
4
+ * GeminiCodeAssistTransformer — Google **Code Assist** envelope for the gemini
5
+ * SUBSCRIPTION path (`cloudcode-pa.googleapis.com`).
6
+ *
7
+ * The gemini-CLI OAuth subscription tokens are minted for Google's internal
8
+ * Code Assist API, NOT the public Gemini API. Code Assist wraps the standard
9
+ * `generateContent` body in a project/session envelope and uses a different
10
+ * URL shape (version segment + colon-method, NO `/models/<model>` path). This
11
+ * transformer does ONLY that envelope work and DELEGATES all inner encoding /
12
+ * parsing to the existing gemini utils (`buildRequestBody`,
13
+ * `transformResponseOut`) so the two stay in lock-step.
14
+ *
15
+ * Envelope spec — verified against gemini-cli
16
+ * `packages/core/src/code_assist/{server,converter,setup,types}.ts`:
17
+ *
18
+ * Request (CAGenerateContentRequest):
19
+ * {
20
+ * model: "gemini-2.5-pro", // TOP-LEVEL (NOT inside `request`)
21
+ * project: <resolved project id>, // TOP-LEVEL, undefined for fresh free-tier
22
+ * user_prompt_id: <per-turn id>, // TOP-LEVEL, snake_case
23
+ * request: { contents, systemInstruction, tools, toolConfig,
24
+ * generationConfig, ... } // standard public-Gemini body
25
+ * }
26
+ *
27
+ * URL: `${base}/${version}:${method}` — colon AFTER the version segment, NO
28
+ * `/models/<model>` (model lives in the body). `base` defaults to
29
+ * `https://cloudcode-pa.googleapis.com`, `version` to `v1internal`;
30
+ * both overridable via `CODE_ASSIST_ENDPOINT` / `CODE_ASSIST_API_VERSION`.
31
+ * Stream method `streamGenerateContent?alt=sse`, non-stream
32
+ * `generateContent`.
33
+ *
34
+ * Auth: `Authorization: Bearer <oauth access token>` ONLY (no x-goog-api-key).
35
+ * The actual Bearer is injected downstream by the subscription
36
+ * `OAuthBearerAuthStrategy`; this transformer just clears x-goog-api-key.
37
+ *
38
+ * Response (CaGenerateContentResponse): the standard `GenerateContentResponse`
39
+ * is nested under a top-level `response` key. We PEEL `.response` from the
40
+ * body / each SSE `data:` chunk, then hand the unwrapped stream/JSON to the
41
+ * existing gemini response parser (`transformResponseOut`).
42
+ *
43
+ * @module transformer/transformers/GeminiCodeAssistTransformer
44
+ */
45
+
46
+ /** Resolve the Code Assist base URL (env override allowed). */
47
+ declare function resolveCodeAssistEndpoint(): string;
48
+ /** Resolve the Code Assist API version segment (env override allowed). */
49
+ declare function resolveCodeAssistApiVersion(): string;
50
+ /**
51
+ * Build the Code Assist URL: `${base}/${version}:${method}`.
52
+ * NOTE: no `/models/<model>` segment — the model goes in the body.
53
+ */
54
+ declare function buildCodeAssistUrl(stream: boolean): string;
55
+ /**
56
+ * GeminiCodeAssistTransformer — extends `GeminiTransformer`'s inner encoding by
57
+ * wrapping it in the Code Assist envelope. Registered under
58
+ * `gemini-code-assist` so `getTransformer('gemini-code-assist')` resolves.
59
+ */
60
+ declare class GeminiCodeAssistTransformer implements Transformer {
61
+ static TransformerName: string;
62
+ name: string;
63
+ logger?: TransformerLogger;
64
+ /** Code Assist has no fixed `/models/:modelAndAction` endpoint pattern — the
65
+ * URL is built per-request in `transformRequestIn`. Left undefined so the
66
+ * TransformerService does NOT treat this as an endpoint (reverse) transformer. */
67
+ endPoint: undefined;
68
+ /**
69
+ * unified → Code Assist envelope.
70
+ *
71
+ * Builds the inner public-Gemini body via the shared `buildRequestBody`, then
72
+ * wraps it as `{ model, project, user_prompt_id, request: <inner> }` and sets
73
+ * the Code Assist URL + Bearer-only headers.
74
+ *
75
+ * The resolved Code Assist `project` is threaded in via `provider.geminiProject`
76
+ * (stashed by the subscription dispatch seam — see SubscriptionDispatcher /
77
+ * openaiResponsesIngress). `undefined` is the valid fresh free-tier value.
78
+ */
79
+ transformRequestIn(request: UnifiedChatRequest, provider: LLMProvider, _context: TransformerContext): Promise<Record<string, unknown>>;
80
+ /**
81
+ * Code Assist request → unified (endpoint-decode parity with GeminiTransformer).
82
+ * Peels the top-level `request` envelope first, then delegates to the shared
83
+ * gemini request decoder. Not used on the subscription dispatch path (the
84
+ * endpoint transformer there is Anthropic/OpenAI-Response), but provided for
85
+ * completeness so this transformer is a drop-in for the gemini one.
86
+ */
87
+ transformRequestOut(request: unknown, _context: TransformerContext): Promise<UnifiedChatRequest>;
88
+ /**
89
+ * Code Assist response → OpenAI-compatible. PEEL the `.response` envelope from
90
+ * the body / each SSE chunk, then DELEGATE to the existing gemini parser.
91
+ */
92
+ transformResponseOut(response: Response, _context: TransformerContext): Promise<Response>;
93
+ /**
94
+ * OpenAI-compatible response → Code Assist (endpoint-encode parity). Re-wraps
95
+ * the standard gemini response under the top-level `response` key after the
96
+ * shared gemini encoder produces a public-Gemini body. Symmetric with
97
+ * `transformResponseOut`'s peel.
98
+ */
99
+ transformResponseIn(response: Response, _context?: TransformerContext): Promise<Response>;
100
+ }
101
+
102
+ export { GeminiCodeAssistTransformer, buildCodeAssistUrl, resolveCodeAssistApiVersion, resolveCodeAssistEndpoint };
@@ -0,0 +1,102 @@
1
+ import { Transformer, TransformerLogger, UnifiedChatRequest, LLMProvider, TransformerContext } from '../types.js';
2
+
3
+ /**
4
+ * GeminiCodeAssistTransformer — Google **Code Assist** envelope for the gemini
5
+ * SUBSCRIPTION path (`cloudcode-pa.googleapis.com`).
6
+ *
7
+ * The gemini-CLI OAuth subscription tokens are minted for Google's internal
8
+ * Code Assist API, NOT the public Gemini API. Code Assist wraps the standard
9
+ * `generateContent` body in a project/session envelope and uses a different
10
+ * URL shape (version segment + colon-method, NO `/models/<model>` path). This
11
+ * transformer does ONLY that envelope work and DELEGATES all inner encoding /
12
+ * parsing to the existing gemini utils (`buildRequestBody`,
13
+ * `transformResponseOut`) so the two stay in lock-step.
14
+ *
15
+ * Envelope spec — verified against gemini-cli
16
+ * `packages/core/src/code_assist/{server,converter,setup,types}.ts`:
17
+ *
18
+ * Request (CAGenerateContentRequest):
19
+ * {
20
+ * model: "gemini-2.5-pro", // TOP-LEVEL (NOT inside `request`)
21
+ * project: <resolved project id>, // TOP-LEVEL, undefined for fresh free-tier
22
+ * user_prompt_id: <per-turn id>, // TOP-LEVEL, snake_case
23
+ * request: { contents, systemInstruction, tools, toolConfig,
24
+ * generationConfig, ... } // standard public-Gemini body
25
+ * }
26
+ *
27
+ * URL: `${base}/${version}:${method}` — colon AFTER the version segment, NO
28
+ * `/models/<model>` (model lives in the body). `base` defaults to
29
+ * `https://cloudcode-pa.googleapis.com`, `version` to `v1internal`;
30
+ * both overridable via `CODE_ASSIST_ENDPOINT` / `CODE_ASSIST_API_VERSION`.
31
+ * Stream method `streamGenerateContent?alt=sse`, non-stream
32
+ * `generateContent`.
33
+ *
34
+ * Auth: `Authorization: Bearer <oauth access token>` ONLY (no x-goog-api-key).
35
+ * The actual Bearer is injected downstream by the subscription
36
+ * `OAuthBearerAuthStrategy`; this transformer just clears x-goog-api-key.
37
+ *
38
+ * Response (CaGenerateContentResponse): the standard `GenerateContentResponse`
39
+ * is nested under a top-level `response` key. We PEEL `.response` from the
40
+ * body / each SSE `data:` chunk, then hand the unwrapped stream/JSON to the
41
+ * existing gemini response parser (`transformResponseOut`).
42
+ *
43
+ * @module transformer/transformers/GeminiCodeAssistTransformer
44
+ */
45
+
46
+ /** Resolve the Code Assist base URL (env override allowed). */
47
+ declare function resolveCodeAssistEndpoint(): string;
48
+ /** Resolve the Code Assist API version segment (env override allowed). */
49
+ declare function resolveCodeAssistApiVersion(): string;
50
+ /**
51
+ * Build the Code Assist URL: `${base}/${version}:${method}`.
52
+ * NOTE: no `/models/<model>` segment — the model goes in the body.
53
+ */
54
+ declare function buildCodeAssistUrl(stream: boolean): string;
55
+ /**
56
+ * GeminiCodeAssistTransformer — extends `GeminiTransformer`'s inner encoding by
57
+ * wrapping it in the Code Assist envelope. Registered under
58
+ * `gemini-code-assist` so `getTransformer('gemini-code-assist')` resolves.
59
+ */
60
+ declare class GeminiCodeAssistTransformer implements Transformer {
61
+ static TransformerName: string;
62
+ name: string;
63
+ logger?: TransformerLogger;
64
+ /** Code Assist has no fixed `/models/:modelAndAction` endpoint pattern — the
65
+ * URL is built per-request in `transformRequestIn`. Left undefined so the
66
+ * TransformerService does NOT treat this as an endpoint (reverse) transformer. */
67
+ endPoint: undefined;
68
+ /**
69
+ * unified → Code Assist envelope.
70
+ *
71
+ * Builds the inner public-Gemini body via the shared `buildRequestBody`, then
72
+ * wraps it as `{ model, project, user_prompt_id, request: <inner> }` and sets
73
+ * the Code Assist URL + Bearer-only headers.
74
+ *
75
+ * The resolved Code Assist `project` is threaded in via `provider.geminiProject`
76
+ * (stashed by the subscription dispatch seam — see SubscriptionDispatcher /
77
+ * openaiResponsesIngress). `undefined` is the valid fresh free-tier value.
78
+ */
79
+ transformRequestIn(request: UnifiedChatRequest, provider: LLMProvider, _context: TransformerContext): Promise<Record<string, unknown>>;
80
+ /**
81
+ * Code Assist request → unified (endpoint-decode parity with GeminiTransformer).
82
+ * Peels the top-level `request` envelope first, then delegates to the shared
83
+ * gemini request decoder. Not used on the subscription dispatch path (the
84
+ * endpoint transformer there is Anthropic/OpenAI-Response), but provided for
85
+ * completeness so this transformer is a drop-in for the gemini one.
86
+ */
87
+ transformRequestOut(request: unknown, _context: TransformerContext): Promise<UnifiedChatRequest>;
88
+ /**
89
+ * Code Assist response → OpenAI-compatible. PEEL the `.response` envelope from
90
+ * the body / each SSE chunk, then DELEGATE to the existing gemini parser.
91
+ */
92
+ transformResponseOut(response: Response, _context: TransformerContext): Promise<Response>;
93
+ /**
94
+ * OpenAI-compatible response → Code Assist (endpoint-encode parity). Re-wraps
95
+ * the standard gemini response under the top-level `response` key after the
96
+ * shared gemini encoder produces a public-Gemini body. Symmetric with
97
+ * `transformResponseOut`'s peel.
98
+ */
99
+ transformResponseIn(response: Response, _context?: TransformerContext): Promise<Response>;
100
+ }
101
+
102
+ export { GeminiCodeAssistTransformer, buildCodeAssistUrl, resolveCodeAssistApiVersion, resolveCodeAssistEndpoint };