@x12i/ai-gateway 7.9.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (179) hide show
  1. package/README.md +4259 -0
  2. package/config.defaults.json +31 -0
  3. package/dist/activity-manager.d.ts +206 -0
  4. package/dist/activity-manager.js +1051 -0
  5. package/dist/config/activity-tracking-config.d.ts +11 -0
  6. package/dist/config/activity-tracking-config.js +15 -0
  7. package/dist/config.defaults.json +31 -0
  8. package/dist/content-normalizer/content-normalizer.d.ts +46 -0
  9. package/dist/content-normalizer/content-normalizer.js +393 -0
  10. package/dist/content-normalizer/index.d.ts +7 -0
  11. package/dist/content-normalizer/index.js +6 -0
  12. package/dist/content-normalizer/types.d.ts +33 -0
  13. package/dist/content-normalizer/types.js +4 -0
  14. package/dist/defaults/instructions-blocks.json +61 -0
  15. package/dist/defaults/model-config.json +16 -0
  16. package/dist/defaults/template-rendering.json +6 -0
  17. package/dist/flex-md-loader.d.ts +109 -0
  18. package/dist/flex-md-loader.js +940 -0
  19. package/dist/gateway-config.d.ts +49 -0
  20. package/dist/gateway-config.js +292 -0
  21. package/dist/gateway-conversion.d.ts +29 -0
  22. package/dist/gateway-conversion.js +174 -0
  23. package/dist/gateway-instructions.d.ts +30 -0
  24. package/dist/gateway-instructions.js +62 -0
  25. package/dist/gateway-memory.d.ts +51 -0
  26. package/dist/gateway-memory.js +207 -0
  27. package/dist/gateway-messages.d.ts +23 -0
  28. package/dist/gateway-messages.js +83 -0
  29. package/dist/gateway-meta.d.ts +25 -0
  30. package/dist/gateway-meta.js +87 -0
  31. package/dist/gateway-provider-auto-register.d.ts +17 -0
  32. package/dist/gateway-provider-auto-register.js +159 -0
  33. package/dist/gateway-provider.d.ts +54 -0
  34. package/dist/gateway-provider.js +202 -0
  35. package/dist/gateway-rate-limiter-constants.d.ts +16 -0
  36. package/dist/gateway-rate-limiter-constants.js +16 -0
  37. package/dist/gateway-rate-limiter.d.ts +56 -0
  38. package/dist/gateway-rate-limiter.js +107 -0
  39. package/dist/gateway-retry.d.ts +49 -0
  40. package/dist/gateway-retry.js +204 -0
  41. package/dist/gateway-utils.d.ts +21 -0
  42. package/dist/gateway-utils.js +181 -0
  43. package/dist/gateway-validation.d.ts +13 -0
  44. package/dist/gateway-validation.js +50 -0
  45. package/dist/gateway.d.ts +39 -0
  46. package/dist/gateway.js +430 -0
  47. package/dist/index.d.ts +36 -0
  48. package/dist/index.js +55 -0
  49. package/dist/instruction-errors.d.ts +16 -0
  50. package/dist/instruction-errors.js +29 -0
  51. package/dist/instruction-optimizer.d.ts +113 -0
  52. package/dist/instruction-optimizer.js +293 -0
  53. package/dist/instructions-parser.d.ts +31 -0
  54. package/dist/instructions-parser.js +56 -0
  55. package/dist/logger-factory.d.ts +17 -0
  56. package/dist/logger-factory.js +42 -0
  57. package/dist/message-builder.d.ts +41 -0
  58. package/dist/message-builder.js +522 -0
  59. package/dist/object-types-library-integration.d.ts +22 -0
  60. package/dist/object-types-library-integration.js +27 -0
  61. package/dist/object-types-library.d.ts +351 -0
  62. package/dist/object-types-library.js +210 -0
  63. package/dist/output-auditor.d.ts +44 -0
  64. package/dist/output-auditor.js +49 -0
  65. package/dist/request-report-generator.d.ts +60 -0
  66. package/dist/request-report-generator.js +169 -0
  67. package/dist/response-analyzer/format-type-detector.d.ts +35 -0
  68. package/dist/response-analyzer/format-type-detector.js +115 -0
  69. package/dist/response-analyzer/index.d.ts +9 -0
  70. package/dist/response-analyzer/index.js +8 -0
  71. package/dist/response-analyzer/object-type-detector.d.ts +42 -0
  72. package/dist/response-analyzer/object-type-detector.js +95 -0
  73. package/dist/response-analyzer/response-analyzer.d.ts +38 -0
  74. package/dist/response-analyzer/response-analyzer.js +97 -0
  75. package/dist/response-analyzer/types.d.ts +97 -0
  76. package/dist/response-analyzer/types.js +4 -0
  77. package/dist/response-fallback-fixer.d.ts +11 -0
  78. package/dist/response-fallback-fixer.js +123 -0
  79. package/dist/runtime-objects.d.ts +52 -0
  80. package/dist/runtime-objects.js +46 -0
  81. package/dist/template-parser.d.ts +58 -0
  82. package/dist/template-parser.js +99 -0
  83. package/dist/template-render-merge.d.ts +9 -0
  84. package/dist/template-render-merge.js +40 -0
  85. package/dist/troubleshooting-helper.d.ts +123 -0
  86. package/dist/troubleshooting-helper.js +596 -0
  87. package/dist/types.d.ts +1173 -0
  88. package/dist/types.js +6 -0
  89. package/dist/usage-tracker.d.ts +78 -0
  90. package/dist/usage-tracker.js +79 -0
  91. package/dist-cjs/activity-manager.cjs +1056 -0
  92. package/dist-cjs/activity-manager.d.ts +206 -0
  93. package/dist-cjs/config/activity-tracking-config.cjs +18 -0
  94. package/dist-cjs/config/activity-tracking-config.d.ts +11 -0
  95. package/dist-cjs/config.defaults.json +31 -0
  96. package/dist-cjs/content-normalizer/content-normalizer.cjs +398 -0
  97. package/dist-cjs/content-normalizer/content-normalizer.d.ts +46 -0
  98. package/dist-cjs/content-normalizer/index.cjs +12 -0
  99. package/dist-cjs/content-normalizer/index.d.ts +7 -0
  100. package/dist-cjs/content-normalizer/types.cjs +5 -0
  101. package/dist-cjs/content-normalizer/types.d.ts +33 -0
  102. package/dist-cjs/defaults/instructions-blocks.json +61 -0
  103. package/dist-cjs/defaults/model-config.json +16 -0
  104. package/dist-cjs/defaults/template-rendering.json +6 -0
  105. package/dist-cjs/flex-md-loader.cjs +986 -0
  106. package/dist-cjs/flex-md-loader.d.ts +109 -0
  107. package/dist-cjs/gateway-config.cjs +331 -0
  108. package/dist-cjs/gateway-config.d.ts +49 -0
  109. package/dist-cjs/gateway-conversion.cjs +212 -0
  110. package/dist-cjs/gateway-conversion.d.ts +29 -0
  111. package/dist-cjs/gateway-instructions.cjs +67 -0
  112. package/dist-cjs/gateway-instructions.d.ts +30 -0
  113. package/dist-cjs/gateway-memory.cjs +211 -0
  114. package/dist-cjs/gateway-memory.d.ts +51 -0
  115. package/dist-cjs/gateway-messages.cjs +86 -0
  116. package/dist-cjs/gateway-messages.d.ts +23 -0
  117. package/dist-cjs/gateway-meta.cjs +90 -0
  118. package/dist-cjs/gateway-meta.d.ts +25 -0
  119. package/dist-cjs/gateway-provider-auto-register.cjs +195 -0
  120. package/dist-cjs/gateway-provider-auto-register.d.ts +17 -0
  121. package/dist-cjs/gateway-provider.cjs +214 -0
  122. package/dist-cjs/gateway-provider.d.ts +54 -0
  123. package/dist-cjs/gateway-rate-limiter-constants.cjs +19 -0
  124. package/dist-cjs/gateway-rate-limiter-constants.d.ts +16 -0
  125. package/dist-cjs/gateway-rate-limiter.cjs +111 -0
  126. package/dist-cjs/gateway-rate-limiter.d.ts +56 -0
  127. package/dist-cjs/gateway-retry.cjs +212 -0
  128. package/dist-cjs/gateway-retry.d.ts +49 -0
  129. package/dist-cjs/gateway-utils.cjs +219 -0
  130. package/dist-cjs/gateway-utils.d.ts +21 -0
  131. package/dist-cjs/gateway-validation.cjs +54 -0
  132. package/dist-cjs/gateway-validation.d.ts +13 -0
  133. package/dist-cjs/gateway.cjs +434 -0
  134. package/dist-cjs/gateway.d.ts +39 -0
  135. package/dist-cjs/index.cjs +108 -0
  136. package/dist-cjs/index.d.ts +36 -0
  137. package/dist-cjs/instruction-errors.cjs +34 -0
  138. package/dist-cjs/instruction-errors.d.ts +16 -0
  139. package/dist-cjs/instruction-optimizer.cjs +299 -0
  140. package/dist-cjs/instruction-optimizer.d.ts +113 -0
  141. package/dist-cjs/instructions-parser.cjs +61 -0
  142. package/dist-cjs/instructions-parser.d.ts +31 -0
  143. package/dist-cjs/logger-factory.cjs +45 -0
  144. package/dist-cjs/logger-factory.d.ts +17 -0
  145. package/dist-cjs/message-builder.cjs +558 -0
  146. package/dist-cjs/message-builder.d.ts +41 -0
  147. package/dist-cjs/object-types-library-integration.cjs +32 -0
  148. package/dist-cjs/object-types-library-integration.d.ts +22 -0
  149. package/dist-cjs/object-types-library.cjs +215 -0
  150. package/dist-cjs/object-types-library.d.ts +351 -0
  151. package/dist-cjs/output-auditor.cjs +52 -0
  152. package/dist-cjs/output-auditor.d.ts +44 -0
  153. package/dist-cjs/request-report-generator.cjs +172 -0
  154. package/dist-cjs/request-report-generator.d.ts +60 -0
  155. package/dist-cjs/response-analyzer/format-type-detector.cjs +119 -0
  156. package/dist-cjs/response-analyzer/format-type-detector.d.ts +35 -0
  157. package/dist-cjs/response-analyzer/index.cjs +14 -0
  158. package/dist-cjs/response-analyzer/index.d.ts +9 -0
  159. package/dist-cjs/response-analyzer/object-type-detector.cjs +99 -0
  160. package/dist-cjs/response-analyzer/object-type-detector.d.ts +42 -0
  161. package/dist-cjs/response-analyzer/response-analyzer.cjs +101 -0
  162. package/dist-cjs/response-analyzer/response-analyzer.d.ts +38 -0
  163. package/dist-cjs/response-analyzer/types.cjs +5 -0
  164. package/dist-cjs/response-analyzer/types.d.ts +97 -0
  165. package/dist-cjs/response-fallback-fixer.cjs +126 -0
  166. package/dist-cjs/response-fallback-fixer.d.ts +11 -0
  167. package/dist-cjs/runtime-objects.cjs +52 -0
  168. package/dist-cjs/runtime-objects.d.ts +52 -0
  169. package/dist-cjs/template-parser.cjs +136 -0
  170. package/dist-cjs/template-parser.d.ts +58 -0
  171. package/dist-cjs/template-render-merge.cjs +43 -0
  172. package/dist-cjs/template-render-merge.d.ts +9 -0
  173. package/dist-cjs/troubleshooting-helper.cjs +611 -0
  174. package/dist-cjs/troubleshooting-helper.d.ts +123 -0
  175. package/dist-cjs/types.cjs +7 -0
  176. package/dist-cjs/types.d.ts +1173 -0
  177. package/dist-cjs/usage-tracker.cjs +83 -0
  178. package/dist-cjs/usage-tracker.d.ts +78 -0
  179. package/package.json +91 -0
@@ -0,0 +1,83 @@
1
+ "use strict";
2
+ /**
3
+ * Usage Tracker
4
+ *
5
+ * Manages usage tracking for LLM requests including:
6
+ * - Token counting
7
+ * - Consumption calculation (RPM/TPM)
8
+ * - Usage recording
9
+ *
10
+ * Note: x-models dependency removed - usage tracking functions are permanently disabled
11
+ */
12
+ Object.defineProperty(exports, "__esModule", { value: true });
13
+ exports.UsageTracker = void 0;
14
+ /**
15
+ * Manages usage tracking for LLM requests
16
+ */
17
+ class UsageTracker {
18
+ enabled;
19
+ logger;
20
+ constructor(config) {
21
+ this.enabled = config.enableUsageTracking;
22
+ this.logger = config.logger;
23
+ // x-models removed - usage tracking initialization disabled
24
+ }
25
+ /**
26
+ * Extracts token usage from router response
27
+ *
28
+ * @param response - Router response object
29
+ * @returns Token usage breakdown
30
+ */
31
+ extractTokens(response) {
32
+ return {
33
+ prompt: response.usage?.promptTokens || 0,
34
+ completion: response.usage?.completionTokens || 0,
35
+ total: response.usage?.totalTokens || 0
36
+ };
37
+ }
38
+ /**
39
+ * Records usage for a request
40
+ *
41
+ * @param params - Usage recording parameters
42
+ */
43
+ async recordUsage(params) {
44
+ // x-models removed - usage recording disabled
45
+ if (!this.enabled || !params.provider) {
46
+ return;
47
+ }
48
+ // No-op: usage tracking permanently disabled
49
+ }
50
+ /**
51
+ * Calculates consumption for a request
52
+ *
53
+ * @param params - Consumption calculation parameters
54
+ * @returns Consumption data or null if tracking is disabled
55
+ */
56
+ async calculateConsumption(params) {
57
+ // x-models removed - consumption calculation disabled
58
+ if (!this.enabled || !params.provider) {
59
+ return null;
60
+ }
61
+ // Always return null - usage tracking permanently disabled
62
+ return null;
63
+ }
64
+ /**
65
+ * Logs consumption data for debugging
66
+ *
67
+ * @param jobId - Job ID for logging context
68
+ * @param provider - Provider name
69
+ * @param consumption - Consumption data
70
+ */
71
+ logConsumption(jobId, provider, consumption) {
72
+ if (!consumption) {
73
+ return;
74
+ }
75
+ this.logger.debug('Usage consumption calculated', {
76
+ jobId,
77
+ provider,
78
+ rpmConsumption: consumption.rpmConsumption.toFixed(2),
79
+ tpmConsumption: consumption.tpmConsumption.toFixed(2)
80
+ });
81
+ }
82
+ }
83
+ exports.UsageTracker = UsageTracker;
@@ -0,0 +1,78 @@
1
+ /**
2
+ * Usage Tracker
3
+ *
4
+ * Manages usage tracking for LLM requests including:
5
+ * - Token counting
6
+ * - Consumption calculation (RPM/TPM)
7
+ * - Usage recording
8
+ *
9
+ * Note: x-models dependency removed - usage tracking functions are permanently disabled
10
+ */
11
+ import type { Logxer } from '@x12i/logxer';
12
+ import type { LLMResponse } from './types.js';
13
+ export interface UsageTrackerConfig {
14
+ enableUsageTracking: boolean;
15
+ usageTier?: string;
16
+ logger: Logxer;
17
+ }
18
+ /**
19
+ * Manages usage tracking for LLM requests
20
+ */
21
+ export declare class UsageTracker {
22
+ private enabled;
23
+ private logger;
24
+ constructor(config: UsageTrackerConfig);
25
+ /**
26
+ * Extracts token usage from router response
27
+ *
28
+ * @param response - Router response object
29
+ * @returns Token usage breakdown
30
+ */
31
+ extractTokens(response: LLMResponse): {
32
+ prompt: number;
33
+ completion: number;
34
+ total: number;
35
+ };
36
+ /**
37
+ * Records usage for a request
38
+ *
39
+ * @param params - Usage recording parameters
40
+ */
41
+ recordUsage(params: {
42
+ timestamp: number;
43
+ duration: number;
44
+ tokens: {
45
+ prompt: number;
46
+ completion: number;
47
+ total: number;
48
+ };
49
+ provider?: string;
50
+ modelId?: string;
51
+ }): Promise<void>;
52
+ /**
53
+ * Calculates consumption for a request
54
+ *
55
+ * @param params - Consumption calculation parameters
56
+ * @returns Consumption data or null if tracking is disabled
57
+ */
58
+ calculateConsumption(params: {
59
+ latencyMs: number;
60
+ promptTokens: number;
61
+ completionTokens: number;
62
+ provider?: string;
63
+ }): Promise<{
64
+ rpmConsumption: number;
65
+ tpmConsumption: number;
66
+ } | null>;
67
+ /**
68
+ * Logs consumption data for debugging
69
+ *
70
+ * @param jobId - Job ID for logging context
71
+ * @param provider - Provider name
72
+ * @param consumption - Consumption data
73
+ */
74
+ logConsumption(jobId: string, provider: string, consumption: {
75
+ rpmConsumption: number;
76
+ tpmConsumption: number;
77
+ } | null): void;
78
+ }
package/package.json ADDED
@@ -0,0 +1,91 @@
1
+ {
2
+ "name": "@x12i/ai-gateway",
3
+ "version": "7.9.1",
4
+ "description": "AI Gateway - Unified interface for LLM provider routing and management",
5
+ "type": "module",
6
+ "exports": {
7
+ ".": {
8
+ "types": "./dist/index.d.ts",
9
+ "import": "./dist/index.js",
10
+ "require": "./dist-cjs/index.cjs"
11
+ }
12
+ },
13
+ "main": "./dist-cjs/index.cjs",
14
+ "module": "./dist/index.js",
15
+ "types": "./dist/index.d.ts",
16
+ "scripts": {
17
+ "build": "npm run build:esm && npm run build:cjs && npm run rename:cjs && npm run verify:cjs && npm run copy:defaults",
18
+ "build:esm": "tsc",
19
+ "build:cjs": "tsc -p tsconfig.cjs.json",
20
+ "rename:cjs": "node scripts/rename-cjs.cjs",
21
+ "verify:cjs": "node scripts/verify-cjs-deps.cjs",
22
+ "copy:defaults": "node -e \"const fs=require('fs');const path=require('path');const src=path.join('src','defaults');const dist=path.join('dist','defaults');const distCjs=path.join('dist-cjs','defaults');const testCompiled=path.join('.tests-compiled','src','defaults');[dist,distCjs,testCompiled].forEach(dir=>{if(!fs.existsSync(dir))fs.mkdirSync(dir,{recursive:true});fs.readdirSync(src).filter(f=>f.endsWith('.json')).forEach(f=>fs.copyFileSync(path.join(src,f),path.join(dir,f)));});fs.copyFileSync('config.defaults.json',path.join('dist','config.defaults.json'));fs.copyFileSync('config.defaults.json',path.join('dist-cjs','config.defaults.json'));\n\"",
23
+ "prepublishOnly": "rimraf dist dist-cjs && npm run build",
24
+ "prepack": "rimraf dist dist-cjs && npm run build",
25
+ "test": "node .tests/run-all.js",
26
+ "test:basic": "node .tests/basic-usage.test.js",
27
+ "test:prompt": "node .tests/prompt-input.test.js",
28
+ "test:memory": "node .tests/working-memory.test.js",
29
+ "test:types": "node .tests/generic-types.test.js",
30
+ "test:compile": "tsc -p tsconfig.test.json",
31
+ "test:object-types": "npm run test:compile && node .tests-compiled/.tests/object-types.test.js",
32
+ "test:real": "npm run test:compile && node .tests-compiled/.tests/test.js",
33
+ "test:real:comprehensive": "npm run test:real && npm test",
34
+ "test:custom-instructions": "npm run test:compile && node .tests-compiled/.tests/test-custom-instructions-only.js",
35
+ "test:diagnostic": "tsc -p tsconfig.test.json && node .tests-compiled/.tests/diagnostic-test.js",
36
+ "test:config": "node .tests/config-overrides.test.js",
37
+ "test:multi": "node .tests/multi-provider.test.js",
38
+ "test:activities": "node .tests/ai-activities.test.js",
39
+ "test:activities:standalone": "node .tests/test-activities-standalone.js",
40
+ "test:focused": "npm run test:compile && node .tests-compiled/.tests/focused-scenarios.test.js",
41
+ "test:compile:db": "npx tsc .tests/database-verification.test.ts --outDir .tests-compiled --module commonjs --target ES2020 --esModuleInterop --skipLibCheck --resolveJsonModule",
42
+ "test:db-verification": "npm run test:compile:db && cross-env ACTIVITY_TRACKING_ENABLE_LOGGING=true node .tests-compiled/database-verification.test.js",
43
+ "test:template-parsing": "npm run test:compile && node .tests-compiled/template-parsing-full.test.js",
44
+ "test:template-features": "npm run test:compile && node .tests-compiled/template-parsing-features.test.js",
45
+ "test:schema-format": "npm run test:compile && node .tests-compiled/simple-schema-format.test.js",
46
+ "test:object-enrichment": "npm run test:compile && node .tests-compiled/object-types-enrichment.test.js",
47
+ "test:erc": "npm run test:compile && node .tests-compiled/.tests/erc-compliance.test.js",
48
+ "test:flex-md-parsing": "tsx .tests/flex-md-parsing-scenarios.test.ts",
49
+ "test:flex-md-esm-regression": "npm run build:esm && node .tests/flex-md-esm-regression.test.mjs",
50
+ "test:openai": "npm run test:compile && node .tests-compiled/.tests/callOpenAI.js",
51
+ "deps:latest": "npx npm-check-updates -u && npm install"
52
+ },
53
+ "keywords": [
54
+ "ai",
55
+ "llm",
56
+ "gateway",
57
+ "router",
58
+ "provider"
59
+ ],
60
+ "author": "x12i",
61
+ "license": "mit",
62
+ "dependencies": {
63
+ "@x12i/ai-providers-router": "^4.6.0",
64
+ "@x12i/rendrix": "^4.2.0",
65
+ "@aws-sdk/s3-request-presigner": "^3.953.0",
66
+ "@x12i/env": "^4.0.1",
67
+ "@x12i/logxer": "^4.0.2",
68
+ "@x12i/activix": "^6.4.0",
69
+ "@x12i/flex-md": "^4.8.0"
70
+ },
71
+ "devDependencies": {
72
+ "@types/node": "^20.0.0",
73
+ "dotenv": "^17.2.3",
74
+ "rimraf": "^5.0.0",
75
+ "tsx": "^4.21.0"
76
+ },
77
+ "publishConfig": {
78
+ "access": "public"
79
+ },
80
+ "files": [
81
+ "dist",
82
+ "dist-cjs",
83
+ "config.defaults.json",
84
+ "README.md",
85
+ "CONTENT_RESOLVER_UPSTREAM_GUIDE.md"
86
+ ],
87
+ "repository": {
88
+ "type": "git",
89
+ "url": "git+ssh://git@github.com/x12i/ai-gateway.git"
90
+ }
91
+ }