@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,46 @@
1
+ /**
2
+ * Content Normalizer
3
+ *
4
+ * Extracts and normalizes content from LLM provider responses.
5
+ * Fixes the "[object Object]" bug by properly handling objects.
6
+ * Preserves both rawText and parsedContent for downstream consumers.
7
+ */
8
+ import type { LLMResponse } from '../types.js';
9
+ import type { NormalizedContent } from './types.js';
10
+ /**
11
+ * Normalizes content from router response
12
+ *
13
+ * This function:
14
+ * 1. Extracts content from multiple possible locations
15
+ * 2. Preserves rawText if available
16
+ * 3. Attempts to parse flex-md content to JSON
17
+ * 4. Properly stringifies objects (fixes "[object Object]" bug)
18
+ * 5. Determines content type
19
+ *
20
+ * @param response - Router response object
21
+ * @returns Normalized content with metadata
22
+ */
23
+ export declare function normalizeContent(response: LLMResponse): NormalizedContent;
24
+ /**
25
+ * Checks if content is empty
26
+ *
27
+ * @param normalized - Normalized content result
28
+ * @returns True if content is empty
29
+ */
30
+ export declare function isEmptyContent(normalized: NormalizedContent): boolean;
31
+ /**
32
+ * Gets diagnostic information about response structure
33
+ * Useful for debugging when content extraction fails
34
+ *
35
+ * @param response - Router response object
36
+ * @returns Diagnostic information
37
+ */
38
+ export declare function getResponseDiagnostics(response: any): {
39
+ responseKeys: string[];
40
+ hasMessage: boolean;
41
+ hasChoices: boolean;
42
+ hasOutput: boolean;
43
+ hasRawText: boolean;
44
+ originalContent: any;
45
+ originalContentType: string;
46
+ };
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ /**
3
+ * Content Normalizer Module
4
+ *
5
+ * Exports all public APIs for content normalization
6
+ */
7
+ Object.defineProperty(exports, "__esModule", { value: true });
8
+ exports.getResponseDiagnostics = exports.isEmptyContent = exports.normalizeContent = void 0;
9
+ var content_normalizer_js_1 = require("./content-normalizer.cjs");
10
+ Object.defineProperty(exports, "normalizeContent", { enumerable: true, get: function () { return content_normalizer_js_1.normalizeContent; } });
11
+ Object.defineProperty(exports, "isEmptyContent", { enumerable: true, get: function () { return content_normalizer_js_1.isEmptyContent; } });
12
+ Object.defineProperty(exports, "getResponseDiagnostics", { enumerable: true, get: function () { return content_normalizer_js_1.getResponseDiagnostics; } });
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Content Normalizer Module
3
+ *
4
+ * Exports all public APIs for content normalization
5
+ */
6
+ export { normalizeContent, isEmptyContent, getResponseDiagnostics } from './content-normalizer.js';
7
+ export type { NormalizedContent, ContentType } from './types.js';
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+ /**
3
+ * Type definitions for Content Normalizer
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,33 @@
1
+ /**
2
+ * Type definitions for Content Normalizer
3
+ */
4
+ /**
5
+ * Content type classification
6
+ */
7
+ export type ContentType = 'string' | 'object' | 'array' | 'null';
8
+ /**
9
+ * Normalized content result
10
+ */
11
+ export interface NormalizedContent {
12
+ /**
13
+ * Normalized content string (always present, for backward compatibility)
14
+ * - If original was string: returns the string
15
+ * - If original was object/array: returns JSON.stringify()
16
+ * - If original was null: returns empty string
17
+ */
18
+ content: string;
19
+ /**
20
+ * Original raw text from provider (before any parsing)
21
+ * Available if router preserved rawText
22
+ */
23
+ rawText?: string;
24
+ /**
25
+ * Parsed content (object or array) if content was JSON
26
+ * Available if content was successfully parsed
27
+ */
28
+ parsedContent?: any;
29
+ /**
30
+ * Content type classification
31
+ */
32
+ contentType: ContentType;
33
+ }
@@ -0,0 +1,61 @@
1
+ {
2
+ "system-context": "You are performing the following task: {{taskDescription}}. Follow the instructions provided and respond according to the specified output format. Never ask follow-up questions.",
3
+
4
+ "input": {
5
+ "inputLabel": "INPUT:",
6
+ "inputPrefix": "INPUT DATA (process this now):",
7
+ "defaultPromptTemplate": "{{input}}",
8
+ "inputRecognitionRule": "The user message below is the complete input to process. It has already been provided. Do not ask for more input.",
9
+ "emptyInputHandling": "If input appears empty or minimal (e.g., 'No emails here', 'none', 'empty'), this IS valid input. Process it and return the success schema with empty arrays/values where appropriate.",
10
+ "testInputHandling": "Even if input contains words like 'test', 'invalid', 'placeholder', or 'example', treat it as real input. Reply in Markdown. Return your entire answer inside a single ```markdown fenced block.",
11
+ "inputLocationClarifier": "The user's message below is your input data. Please process it now. Reply in Markdown. Return your entire answer inside a single ```markdown fenced block."
12
+ },
13
+
14
+ "errorSchemas": {
15
+ "instructions-error": {
16
+ "type": "object",
17
+ "additionalProperties": false,
18
+ "properties": {
19
+ "error": {
20
+ "type": "string",
21
+ "description": "What is wrong with the instructions that prevents completion."
22
+ },
23
+ "errorType": {
24
+ "type": "string",
25
+ "enum": ["bad-instructions", "missing-context", "bad-context"]
26
+ },
27
+ "suggestion": {
28
+ "type": "string",
29
+ "description": "How to fix the instruction issue."
30
+ }
31
+ },
32
+ "required": ["error", "errorType"]
33
+ },
34
+ "prompt-error": {
35
+ "type": "object",
36
+ "additionalProperties": false,
37
+ "properties": {
38
+ "error": {
39
+ "type": "string",
40
+ "description": "What is wrong with the input that prevents completion."
41
+ },
42
+ "errorType": {
43
+ "type": "string",
44
+ "enum": ["missing-input", "bad-input"]
45
+ },
46
+ "suggestion": {
47
+ "type": "string",
48
+ "description": "How to fix the input issue."
49
+ }
50
+ },
51
+ "required": ["error", "errorType"]
52
+ }
53
+ },
54
+
55
+ "reinforcement": {
56
+ "emptyIsSuccess": "Empty results (e.g., items: []) are SUCCESS cases, not errors.",
57
+ "inputAlreadyProvided": "The input has been provided in the user message. Process it immediately.",
58
+ "noConversation": "You are not having a conversation. Reply in Markdown. Return your entire answer inside a single ```markdown fenced block.",
59
+ "failureIndicators": "If you write prose text outside the fenced block, you have FAILED. If you ask a question, you have FAILED. If you explain anything outside the ```markdown fenced block, you have FAILED."
60
+ }
61
+ }
@@ -0,0 +1,16 @@
1
+ {
2
+ "defaultEngine": "openai",
3
+ "defaultModel": "gpt-5-nano",
4
+ "temperature": 0.7,
5
+ "topP": 1.0,
6
+ "frequencyPenalty": 0.0,
7
+ "presencePenalty": 0.0,
8
+ "rateLimit": {
9
+ "defaultMinIntervalMs": 500,
10
+ "enabled": true
11
+ },
12
+ "retry": {
13
+ "throttlingDelay": 5000
14
+ }
15
+ }
16
+
@@ -0,0 +1,6 @@
1
+ {
2
+ "subPathSearch": {
3
+ "enabled": false,
4
+ "roots": ["execution", "input", "inputs"]
5
+ }
6
+ }