@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.
- package/README.md +4259 -0
- package/config.defaults.json +31 -0
- package/dist/activity-manager.d.ts +206 -0
- package/dist/activity-manager.js +1051 -0
- package/dist/config/activity-tracking-config.d.ts +11 -0
- package/dist/config/activity-tracking-config.js +15 -0
- package/dist/config.defaults.json +31 -0
- package/dist/content-normalizer/content-normalizer.d.ts +46 -0
- package/dist/content-normalizer/content-normalizer.js +393 -0
- package/dist/content-normalizer/index.d.ts +7 -0
- package/dist/content-normalizer/index.js +6 -0
- package/dist/content-normalizer/types.d.ts +33 -0
- package/dist/content-normalizer/types.js +4 -0
- package/dist/defaults/instructions-blocks.json +61 -0
- package/dist/defaults/model-config.json +16 -0
- package/dist/defaults/template-rendering.json +6 -0
- package/dist/flex-md-loader.d.ts +109 -0
- package/dist/flex-md-loader.js +940 -0
- package/dist/gateway-config.d.ts +49 -0
- package/dist/gateway-config.js +292 -0
- package/dist/gateway-conversion.d.ts +29 -0
- package/dist/gateway-conversion.js +174 -0
- package/dist/gateway-instructions.d.ts +30 -0
- package/dist/gateway-instructions.js +62 -0
- package/dist/gateway-memory.d.ts +51 -0
- package/dist/gateway-memory.js +207 -0
- package/dist/gateway-messages.d.ts +23 -0
- package/dist/gateway-messages.js +83 -0
- package/dist/gateway-meta.d.ts +25 -0
- package/dist/gateway-meta.js +87 -0
- package/dist/gateway-provider-auto-register.d.ts +17 -0
- package/dist/gateway-provider-auto-register.js +159 -0
- package/dist/gateway-provider.d.ts +54 -0
- package/dist/gateway-provider.js +202 -0
- package/dist/gateway-rate-limiter-constants.d.ts +16 -0
- package/dist/gateway-rate-limiter-constants.js +16 -0
- package/dist/gateway-rate-limiter.d.ts +56 -0
- package/dist/gateway-rate-limiter.js +107 -0
- package/dist/gateway-retry.d.ts +49 -0
- package/dist/gateway-retry.js +204 -0
- package/dist/gateway-utils.d.ts +21 -0
- package/dist/gateway-utils.js +181 -0
- package/dist/gateway-validation.d.ts +13 -0
- package/dist/gateway-validation.js +50 -0
- package/dist/gateway.d.ts +39 -0
- package/dist/gateway.js +430 -0
- package/dist/index.d.ts +36 -0
- package/dist/index.js +55 -0
- package/dist/instruction-errors.d.ts +16 -0
- package/dist/instruction-errors.js +29 -0
- package/dist/instruction-optimizer.d.ts +113 -0
- package/dist/instruction-optimizer.js +293 -0
- package/dist/instructions-parser.d.ts +31 -0
- package/dist/instructions-parser.js +56 -0
- package/dist/logger-factory.d.ts +17 -0
- package/dist/logger-factory.js +42 -0
- package/dist/message-builder.d.ts +41 -0
- package/dist/message-builder.js +522 -0
- package/dist/object-types-library-integration.d.ts +22 -0
- package/dist/object-types-library-integration.js +27 -0
- package/dist/object-types-library.d.ts +351 -0
- package/dist/object-types-library.js +210 -0
- package/dist/output-auditor.d.ts +44 -0
- package/dist/output-auditor.js +49 -0
- package/dist/request-report-generator.d.ts +60 -0
- package/dist/request-report-generator.js +169 -0
- package/dist/response-analyzer/format-type-detector.d.ts +35 -0
- package/dist/response-analyzer/format-type-detector.js +115 -0
- package/dist/response-analyzer/index.d.ts +9 -0
- package/dist/response-analyzer/index.js +8 -0
- package/dist/response-analyzer/object-type-detector.d.ts +42 -0
- package/dist/response-analyzer/object-type-detector.js +95 -0
- package/dist/response-analyzer/response-analyzer.d.ts +38 -0
- package/dist/response-analyzer/response-analyzer.js +97 -0
- package/dist/response-analyzer/types.d.ts +97 -0
- package/dist/response-analyzer/types.js +4 -0
- package/dist/response-fallback-fixer.d.ts +11 -0
- package/dist/response-fallback-fixer.js +123 -0
- package/dist/runtime-objects.d.ts +52 -0
- package/dist/runtime-objects.js +46 -0
- package/dist/template-parser.d.ts +58 -0
- package/dist/template-parser.js +99 -0
- package/dist/template-render-merge.d.ts +9 -0
- package/dist/template-render-merge.js +40 -0
- package/dist/troubleshooting-helper.d.ts +123 -0
- package/dist/troubleshooting-helper.js +596 -0
- package/dist/types.d.ts +1173 -0
- package/dist/types.js +6 -0
- package/dist/usage-tracker.d.ts +78 -0
- package/dist/usage-tracker.js +79 -0
- package/dist-cjs/activity-manager.cjs +1056 -0
- package/dist-cjs/activity-manager.d.ts +206 -0
- package/dist-cjs/config/activity-tracking-config.cjs +18 -0
- package/dist-cjs/config/activity-tracking-config.d.ts +11 -0
- package/dist-cjs/config.defaults.json +31 -0
- package/dist-cjs/content-normalizer/content-normalizer.cjs +398 -0
- package/dist-cjs/content-normalizer/content-normalizer.d.ts +46 -0
- package/dist-cjs/content-normalizer/index.cjs +12 -0
- package/dist-cjs/content-normalizer/index.d.ts +7 -0
- package/dist-cjs/content-normalizer/types.cjs +5 -0
- package/dist-cjs/content-normalizer/types.d.ts +33 -0
- package/dist-cjs/defaults/instructions-blocks.json +61 -0
- package/dist-cjs/defaults/model-config.json +16 -0
- package/dist-cjs/defaults/template-rendering.json +6 -0
- package/dist-cjs/flex-md-loader.cjs +986 -0
- package/dist-cjs/flex-md-loader.d.ts +109 -0
- package/dist-cjs/gateway-config.cjs +331 -0
- package/dist-cjs/gateway-config.d.ts +49 -0
- package/dist-cjs/gateway-conversion.cjs +212 -0
- package/dist-cjs/gateway-conversion.d.ts +29 -0
- package/dist-cjs/gateway-instructions.cjs +67 -0
- package/dist-cjs/gateway-instructions.d.ts +30 -0
- package/dist-cjs/gateway-memory.cjs +211 -0
- package/dist-cjs/gateway-memory.d.ts +51 -0
- package/dist-cjs/gateway-messages.cjs +86 -0
- package/dist-cjs/gateway-messages.d.ts +23 -0
- package/dist-cjs/gateway-meta.cjs +90 -0
- package/dist-cjs/gateway-meta.d.ts +25 -0
- package/dist-cjs/gateway-provider-auto-register.cjs +195 -0
- package/dist-cjs/gateway-provider-auto-register.d.ts +17 -0
- package/dist-cjs/gateway-provider.cjs +214 -0
- package/dist-cjs/gateway-provider.d.ts +54 -0
- package/dist-cjs/gateway-rate-limiter-constants.cjs +19 -0
- package/dist-cjs/gateway-rate-limiter-constants.d.ts +16 -0
- package/dist-cjs/gateway-rate-limiter.cjs +111 -0
- package/dist-cjs/gateway-rate-limiter.d.ts +56 -0
- package/dist-cjs/gateway-retry.cjs +212 -0
- package/dist-cjs/gateway-retry.d.ts +49 -0
- package/dist-cjs/gateway-utils.cjs +219 -0
- package/dist-cjs/gateway-utils.d.ts +21 -0
- package/dist-cjs/gateway-validation.cjs +54 -0
- package/dist-cjs/gateway-validation.d.ts +13 -0
- package/dist-cjs/gateway.cjs +434 -0
- package/dist-cjs/gateway.d.ts +39 -0
- package/dist-cjs/index.cjs +108 -0
- package/dist-cjs/index.d.ts +36 -0
- package/dist-cjs/instruction-errors.cjs +34 -0
- package/dist-cjs/instruction-errors.d.ts +16 -0
- package/dist-cjs/instruction-optimizer.cjs +299 -0
- package/dist-cjs/instruction-optimizer.d.ts +113 -0
- package/dist-cjs/instructions-parser.cjs +61 -0
- package/dist-cjs/instructions-parser.d.ts +31 -0
- package/dist-cjs/logger-factory.cjs +45 -0
- package/dist-cjs/logger-factory.d.ts +17 -0
- package/dist-cjs/message-builder.cjs +558 -0
- package/dist-cjs/message-builder.d.ts +41 -0
- package/dist-cjs/object-types-library-integration.cjs +32 -0
- package/dist-cjs/object-types-library-integration.d.ts +22 -0
- package/dist-cjs/object-types-library.cjs +215 -0
- package/dist-cjs/object-types-library.d.ts +351 -0
- package/dist-cjs/output-auditor.cjs +52 -0
- package/dist-cjs/output-auditor.d.ts +44 -0
- package/dist-cjs/request-report-generator.cjs +172 -0
- package/dist-cjs/request-report-generator.d.ts +60 -0
- package/dist-cjs/response-analyzer/format-type-detector.cjs +119 -0
- package/dist-cjs/response-analyzer/format-type-detector.d.ts +35 -0
- package/dist-cjs/response-analyzer/index.cjs +14 -0
- package/dist-cjs/response-analyzer/index.d.ts +9 -0
- package/dist-cjs/response-analyzer/object-type-detector.cjs +99 -0
- package/dist-cjs/response-analyzer/object-type-detector.d.ts +42 -0
- package/dist-cjs/response-analyzer/response-analyzer.cjs +101 -0
- package/dist-cjs/response-analyzer/response-analyzer.d.ts +38 -0
- package/dist-cjs/response-analyzer/types.cjs +5 -0
- package/dist-cjs/response-analyzer/types.d.ts +97 -0
- package/dist-cjs/response-fallback-fixer.cjs +126 -0
- package/dist-cjs/response-fallback-fixer.d.ts +11 -0
- package/dist-cjs/runtime-objects.cjs +52 -0
- package/dist-cjs/runtime-objects.d.ts +52 -0
- package/dist-cjs/template-parser.cjs +136 -0
- package/dist-cjs/template-parser.d.ts +58 -0
- package/dist-cjs/template-render-merge.cjs +43 -0
- package/dist-cjs/template-render-merge.d.ts +9 -0
- package/dist-cjs/troubleshooting-helper.cjs +611 -0
- package/dist-cjs/troubleshooting-helper.d.ts +123 -0
- package/dist-cjs/types.cjs +7 -0
- package/dist-cjs/types.d.ts +1173 -0
- package/dist-cjs/usage-tracker.cjs +83 -0
- package/dist-cjs/usage-tracker.d.ts +78 -0
- 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,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
|
+
|