@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,73 @@
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);
19
+
20
+ // src/provider-proxy/matchText.ts
21
+ var matchText_exports = {};
22
+ __export(matchText_exports, {
23
+ MATCH_TEXT_PER_MESSAGE_CAP: () => MATCH_TEXT_PER_MESSAGE_CAP,
24
+ MATCH_TEXT_RECENT_MESSAGES: () => MATCH_TEXT_RECENT_MESSAGES,
25
+ collectMatchText: () => collectMatchText,
26
+ flattenMatchText: () => flattenMatchText
27
+ });
28
+ module.exports = __toCommonJS(matchText_exports);
29
+ var MATCH_TEXT_PER_MESSAGE_CAP = 8192;
30
+ var MATCH_TEXT_RECENT_MESSAGES = 6;
31
+ function flattenMatchText(value) {
32
+ if (typeof value === "string") return value;
33
+ if (Array.isArray(value)) {
34
+ const parts = [];
35
+ for (const item of value) {
36
+ const text = flattenMatchText(item);
37
+ if (text) parts.push(text);
38
+ }
39
+ return parts.join("\n");
40
+ }
41
+ if (value && typeof value === "object") {
42
+ const obj = value;
43
+ if (obj.type === "tool_result" && obj.content !== void 0) {
44
+ return flattenMatchText(obj.content);
45
+ }
46
+ if (typeof obj.text === "string") return obj.text;
47
+ }
48
+ return "";
49
+ }
50
+ function collectMatchText(anthropicBody) {
51
+ const messages = Array.isArray(anthropicBody.messages) ? anthropicBody.messages : [];
52
+ const slices = [];
53
+ const sys = flattenMatchText(anthropicBody.system).trim();
54
+ if (sys) slices.push(sys.slice(0, MATCH_TEXT_PER_MESSAGE_CAP));
55
+ const recent = [];
56
+ for (let i = messages.length - 1; i >= 0 && recent.length < MATCH_TEXT_RECENT_MESSAGES; i--) {
57
+ const message = messages[i];
58
+ if (!message || typeof message !== "object") continue;
59
+ const role = message.role;
60
+ if (role !== "user" && role !== "system") continue;
61
+ const text = flattenMatchText(message.content).trim();
62
+ if (text) recent.push(text.slice(0, MATCH_TEXT_PER_MESSAGE_CAP));
63
+ }
64
+ for (let i = recent.length - 1; i >= 0; i--) slices.push(recent[i]);
65
+ return slices;
66
+ }
67
+ // Annotate the CommonJS export names for ESM import in node:
68
+ 0 && (module.exports = {
69
+ MATCH_TEXT_PER_MESSAGE_CAP,
70
+ MATCH_TEXT_RECENT_MESSAGES,
71
+ collectMatchText,
72
+ flattenMatchText
73
+ });
@@ -0,0 +1,47 @@
1
+ /**
2
+ * matchText — the SINGLE SOURCE OF TRUTH for the bounded text slice the
3
+ * OpenCodeGo keyword matcher (`resolveOpenCodeGoScenario` in
4
+ * `@omnicross/subscriptions`) scans off `SubscriptionRequestSummary.matchText`.
5
+ *
6
+ * Both summary builders MUST call this one function so the two ingress paths
7
+ * (`/v1/messages` core path + `/v1/responses` dispatcher path) produce
8
+ * BYTE-IDENTICAL `matchText` for the same body — equivalence BY CONSTRUCTION,
9
+ * not by two flatteners that drift. (design.md §1 "identical bounds" invariant.)
10
+ *
11
+ * Litmus: this lives in `@omnicross/core`. The dispatcher in
12
+ * `@omnicross/subscriptions` imports it (subscriptions → core is the allowed
13
+ * direction; core imports NOTHING from subscriptions). Core only WRITES the
14
+ * resulting `string[]`; the matcher (which reads it) stays in subscriptions.
15
+ *
16
+ * @module provider-proxy/matchText
17
+ */
18
+ /** Per-message char cap for the bounded match-text slice (design.md §2). */
19
+ declare const MATCH_TEXT_PER_MESSAGE_CAP = 8192;
20
+ /** Number of most-recent user/system messages scanned (design.md §2). */
21
+ declare const MATCH_TEXT_RECENT_MESSAGES = 6;
22
+ /**
23
+ * Flatten a string / Anthropic content value to its concatenated text. The
24
+ * UNION of both prior builders' behaviors (the most-inclusive-correct
25
+ * flattener):
26
+ * - a bare string → itself;
27
+ * - an array → recurse each element (nested arrays included) and join;
28
+ * - a `tool_result` block whose `content` is a string OR a nested array →
29
+ * flatten that `content` (so tool-blocker words inside a tool_result are
30
+ * seen on BOTH paths — the regression this fixes);
31
+ * - any other object exposing a string `.text` → that text.
32
+ * No length cap here — the caller (`collectMatchText`) caps the result.
33
+ */
34
+ declare function flattenMatchText(value: unknown): string;
35
+ /**
36
+ * Build the BOUNDED match-text slice: the `system` prompt plus the most recent
37
+ * `user`/`system` messages, each truncated to a per-message char cap (design.md
38
+ * §2 — mirrors the reference `DetectScenario` role filter, bounded so matching
39
+ * cost is independent of conversation length). Assistant turns are excluded (the
40
+ * §3 common-denominator decision; same safe direction as the reference for the
41
+ * background tool-blocker pre-scan). System prompt is emitted first.
42
+ *
43
+ * @param anthropicBody the parsed Anthropic Messages request body.
44
+ */
45
+ declare function collectMatchText(anthropicBody: Record<string, unknown>): string[];
46
+
47
+ export { MATCH_TEXT_PER_MESSAGE_CAP, MATCH_TEXT_RECENT_MESSAGES, collectMatchText, flattenMatchText };
@@ -0,0 +1,47 @@
1
+ /**
2
+ * matchText — the SINGLE SOURCE OF TRUTH for the bounded text slice the
3
+ * OpenCodeGo keyword matcher (`resolveOpenCodeGoScenario` in
4
+ * `@omnicross/subscriptions`) scans off `SubscriptionRequestSummary.matchText`.
5
+ *
6
+ * Both summary builders MUST call this one function so the two ingress paths
7
+ * (`/v1/messages` core path + `/v1/responses` dispatcher path) produce
8
+ * BYTE-IDENTICAL `matchText` for the same body — equivalence BY CONSTRUCTION,
9
+ * not by two flatteners that drift. (design.md §1 "identical bounds" invariant.)
10
+ *
11
+ * Litmus: this lives in `@omnicross/core`. The dispatcher in
12
+ * `@omnicross/subscriptions` imports it (subscriptions → core is the allowed
13
+ * direction; core imports NOTHING from subscriptions). Core only WRITES the
14
+ * resulting `string[]`; the matcher (which reads it) stays in subscriptions.
15
+ *
16
+ * @module provider-proxy/matchText
17
+ */
18
+ /** Per-message char cap for the bounded match-text slice (design.md §2). */
19
+ declare const MATCH_TEXT_PER_MESSAGE_CAP = 8192;
20
+ /** Number of most-recent user/system messages scanned (design.md §2). */
21
+ declare const MATCH_TEXT_RECENT_MESSAGES = 6;
22
+ /**
23
+ * Flatten a string / Anthropic content value to its concatenated text. The
24
+ * UNION of both prior builders' behaviors (the most-inclusive-correct
25
+ * flattener):
26
+ * - a bare string → itself;
27
+ * - an array → recurse each element (nested arrays included) and join;
28
+ * - a `tool_result` block whose `content` is a string OR a nested array →
29
+ * flatten that `content` (so tool-blocker words inside a tool_result are
30
+ * seen on BOTH paths — the regression this fixes);
31
+ * - any other object exposing a string `.text` → that text.
32
+ * No length cap here — the caller (`collectMatchText`) caps the result.
33
+ */
34
+ declare function flattenMatchText(value: unknown): string;
35
+ /**
36
+ * Build the BOUNDED match-text slice: the `system` prompt plus the most recent
37
+ * `user`/`system` messages, each truncated to a per-message char cap (design.md
38
+ * §2 — mirrors the reference `DetectScenario` role filter, bounded so matching
39
+ * cost is independent of conversation length). Assistant turns are excluded (the
40
+ * §3 common-denominator decision; same safe direction as the reference for the
41
+ * background tool-blocker pre-scan). System prompt is emitted first.
42
+ *
43
+ * @param anthropicBody the parsed Anthropic Messages request body.
44
+ */
45
+ declare function collectMatchText(anthropicBody: Record<string, unknown>): string[];
46
+
47
+ export { MATCH_TEXT_PER_MESSAGE_CAP, MATCH_TEXT_RECENT_MESSAGES, collectMatchText, flattenMatchText };
@@ -0,0 +1,45 @@
1
+ // src/provider-proxy/matchText.ts
2
+ var MATCH_TEXT_PER_MESSAGE_CAP = 8192;
3
+ var MATCH_TEXT_RECENT_MESSAGES = 6;
4
+ function flattenMatchText(value) {
5
+ if (typeof value === "string") return value;
6
+ if (Array.isArray(value)) {
7
+ const parts = [];
8
+ for (const item of value) {
9
+ const text = flattenMatchText(item);
10
+ if (text) parts.push(text);
11
+ }
12
+ return parts.join("\n");
13
+ }
14
+ if (value && typeof value === "object") {
15
+ const obj = value;
16
+ if (obj.type === "tool_result" && obj.content !== void 0) {
17
+ return flattenMatchText(obj.content);
18
+ }
19
+ if (typeof obj.text === "string") return obj.text;
20
+ }
21
+ return "";
22
+ }
23
+ function collectMatchText(anthropicBody) {
24
+ const messages = Array.isArray(anthropicBody.messages) ? anthropicBody.messages : [];
25
+ const slices = [];
26
+ const sys = flattenMatchText(anthropicBody.system).trim();
27
+ if (sys) slices.push(sys.slice(0, MATCH_TEXT_PER_MESSAGE_CAP));
28
+ const recent = [];
29
+ for (let i = messages.length - 1; i >= 0 && recent.length < MATCH_TEXT_RECENT_MESSAGES; i--) {
30
+ const message = messages[i];
31
+ if (!message || typeof message !== "object") continue;
32
+ const role = message.role;
33
+ if (role !== "user" && role !== "system") continue;
34
+ const text = flattenMatchText(message.content).trim();
35
+ if (text) recent.push(text.slice(0, MATCH_TEXT_PER_MESSAGE_CAP));
36
+ }
37
+ for (let i = recent.length - 1; i >= 0; i--) slices.push(recent[i]);
38
+ return slices;
39
+ }
40
+ export {
41
+ MATCH_TEXT_PER_MESSAGE_CAP,
42
+ MATCH_TEXT_RECENT_MESSAGES,
43
+ collectMatchText,
44
+ flattenMatchText
45
+ };
@@ -0,0 +1,18 @@
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 __copyProps = (to, from, except, desc) => {
7
+ if (from && typeof from === "object" || typeof from === "function") {
8
+ for (let key of __getOwnPropNames(from))
9
+ if (!__hasOwnProp.call(to, key) && key !== except)
10
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
11
+ }
12
+ return to;
13
+ };
14
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
15
+
16
+ // src/provider-proxy/types.ts
17
+ var types_exports = {};
18
+ module.exports = __toCommonJS(types_exports);
@@ -0,0 +1,12 @@
1
+ import 'node:http';
2
+ import '@omnicross/contracts/completion-types';
3
+ import '@omnicross/contracts/subscription-types';
4
+ import '@omnicross/contracts/usage-types';
5
+ import '../ApiKeyPoolService-BmMkau07.cjs';
6
+ import '../SubscriptionAuthSource-Cr4fVEYY.cjs';
7
+ import '../pipeline/SubscriptionAuthStrategy.cjs';
8
+ export { A as AnthropicIngressHandler, b as AnthropicIngressHandlerFactory, c as AnthropicRouteHandlerParams, d as AnthropicSdkHints, E as ExtendedContextHint, I as IngressFormat, a as ProviderProxyDeps, e as ProxyAttribution, R as RetryCallback, f as RouteAuthMode, g as RouteContext, h as StreamEventCallback, S as SubscriptionDispatchProfile, i as SubscriptionRequestSummary, T as TargetProviderFormat, j as UsageRecordImportInput, U as UsageRecorderImport } from '../types-DZIQbgp0.cjs';
9
+ import '@omnicross/contracts/llm-config';
10
+ import '../transformer/types.cjs';
11
+ import '../transformer/TransformerService.cjs';
12
+ import '@omnicross/contracts/websearch-types';
@@ -0,0 +1,12 @@
1
+ import 'node:http';
2
+ import '@omnicross/contracts/completion-types';
3
+ import '@omnicross/contracts/subscription-types';
4
+ import '@omnicross/contracts/usage-types';
5
+ import '../ApiKeyPoolService-BmMkau07.js';
6
+ import '../SubscriptionAuthSource-D89zmiSS.js';
7
+ import '../pipeline/SubscriptionAuthStrategy.js';
8
+ export { A as AnthropicIngressHandler, b as AnthropicIngressHandlerFactory, c as AnthropicRouteHandlerParams, d as AnthropicSdkHints, E as ExtendedContextHint, I as IngressFormat, a as ProviderProxyDeps, e as ProxyAttribution, R as RetryCallback, f as RouteAuthMode, g as RouteContext, h as StreamEventCallback, S as SubscriptionDispatchProfile, i as SubscriptionRequestSummary, T as TargetProviderFormat, j as UsageRecordImportInput, U as UsageRecorderImport } from '../types-DCzHkhJt.js';
9
+ import '@omnicross/contracts/llm-config';
10
+ import '../transformer/types.js';
11
+ import '../transformer/TransformerService.js';
12
+ import '@omnicross/contracts/websearch-types';
File without changes