ai.matey.types 0.2.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.
- package/LICENSE +21 -0
- package/dist/cjs/adapters.js +16 -0
- package/dist/cjs/adapters.js.map +1 -0
- package/dist/cjs/bridge.js +32 -0
- package/dist/cjs/bridge.js.map +1 -0
- package/dist/cjs/errors.js +121 -0
- package/dist/cjs/errors.js.map +1 -0
- package/dist/cjs/index.js +44 -0
- package/dist/cjs/index.js.map +1 -0
- package/dist/cjs/ir.js +17 -0
- package/dist/cjs/ir.js.map +1 -0
- package/dist/cjs/middleware.js +11 -0
- package/dist/cjs/middleware.js.map +1 -0
- package/dist/cjs/model-runner.js +11 -0
- package/dist/cjs/model-runner.js.map +1 -0
- package/dist/cjs/model-translation.js +10 -0
- package/dist/cjs/model-translation.js.map +1 -0
- package/dist/cjs/models.js +11 -0
- package/dist/cjs/models.js.map +1 -0
- package/dist/cjs/router.js +93 -0
- package/dist/cjs/router.js.map +1 -0
- package/dist/cjs/streaming.js +28 -0
- package/dist/cjs/streaming.js.map +1 -0
- package/dist/esm/adapters.js +15 -0
- package/dist/esm/adapters.js.map +1 -0
- package/dist/esm/bridge.js +29 -0
- package/dist/esm/bridge.js.map +1 -0
- package/dist/esm/errors.js +118 -0
- package/dist/esm/errors.js.map +1 -0
- package/dist/esm/index.js +28 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/ir.js +16 -0
- package/dist/esm/ir.js.map +1 -0
- package/dist/esm/middleware.js +10 -0
- package/dist/esm/middleware.js.map +1 -0
- package/dist/esm/model-runner.js +10 -0
- package/dist/esm/model-runner.js.map +1 -0
- package/dist/esm/model-translation.js +9 -0
- package/dist/esm/model-translation.js.map +1 -0
- package/dist/esm/models.js +10 -0
- package/dist/esm/models.js.map +1 -0
- package/dist/esm/router.js +90 -0
- package/dist/esm/router.js.map +1 -0
- package/dist/esm/streaming.js +25 -0
- package/dist/esm/streaming.js.map +1 -0
- package/dist/types/adapters.d.ts +377 -0
- package/dist/types/adapters.d.ts.map +1 -0
- package/dist/types/bridge.d.ts +290 -0
- package/dist/types/bridge.d.ts.map +1 -0
- package/dist/types/errors.d.ts +380 -0
- package/dist/types/errors.d.ts.map +1 -0
- package/dist/types/index.d.ts +18 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/ir.d.ts +820 -0
- package/dist/types/ir.d.ts.map +1 -0
- package/dist/types/middleware.d.ts +256 -0
- package/dist/types/middleware.d.ts.map +1 -0
- package/dist/types/model-runner.d.ts +344 -0
- package/dist/types/model-runner.d.ts.map +1 -0
- package/dist/types/model-translation.d.ts +76 -0
- package/dist/types/model-translation.d.ts.map +1 -0
- package/dist/types/models.d.ts +160 -0
- package/dist/types/models.d.ts.map +1 -0
- package/dist/types/router.d.ts +526 -0
- package/dist/types/router.d.ts.map +1 -0
- package/dist/types/streaming.d.ts +96 -0
- package/dist/types/streaming.d.ts.map +1 -0
- package/package.json +64 -0
- package/readme.md +84 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2025 AI Matey Contributors
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Frontend and Backend Adapter Interfaces
|
|
4
|
+
*
|
|
5
|
+
* Adapters are the core translation layer between provider-specific formats
|
|
6
|
+
* and the universal Intermediate Representation (IR).
|
|
7
|
+
*
|
|
8
|
+
* Architecture:
|
|
9
|
+
* - Frontend Adapters: Normalize provider-specific requests → IR
|
|
10
|
+
* - Backend Adapters: Transform IR → provider API calls → IR responses
|
|
11
|
+
* - Both implement common interface with metadata for router decisions
|
|
12
|
+
*
|
|
13
|
+
* @module
|
|
14
|
+
*/
|
|
15
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
16
|
+
//# sourceMappingURL=adapters.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"adapters.js","sourceRoot":"","sources":["../../src/adapters.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;GAYG"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Bridge Types and Interfaces
|
|
4
|
+
*
|
|
5
|
+
* The Bridge is the primary developer-facing API for the Universal AI Adapter System.
|
|
6
|
+
* It connects a frontend adapter to one or more backend adapters, with embedded
|
|
7
|
+
* router and middleware stack for orchestration and cross-cutting concerns.
|
|
8
|
+
*
|
|
9
|
+
* @module
|
|
10
|
+
*/
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.BridgeEventType = void 0;
|
|
13
|
+
// ============================================================================
|
|
14
|
+
// Bridge Events
|
|
15
|
+
// ============================================================================
|
|
16
|
+
/**
|
|
17
|
+
* Event types emitted by Bridge.
|
|
18
|
+
*/
|
|
19
|
+
exports.BridgeEventType = {
|
|
20
|
+
REQUEST_START: 'request:start',
|
|
21
|
+
REQUEST_SUCCESS: 'request:success',
|
|
22
|
+
REQUEST_ERROR: 'request:error',
|
|
23
|
+
REQUEST_CANCELLED: 'request:cancelled',
|
|
24
|
+
STREAM_START: 'stream:start',
|
|
25
|
+
STREAM_CHUNK: 'stream:chunk',
|
|
26
|
+
STREAM_COMPLETE: 'stream:complete',
|
|
27
|
+
STREAM_ERROR: 'stream:error',
|
|
28
|
+
BACKEND_SELECTED: 'backend:selected',
|
|
29
|
+
BACKEND_FAILOVER: 'backend:failover',
|
|
30
|
+
MIDDLEWARE_EXECUTED: 'middleware:executed',
|
|
31
|
+
};
|
|
32
|
+
//# sourceMappingURL=bridge.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bridge.js","sourceRoot":"","sources":["../../src/bridge.ts"],"names":[],"mappings":";AAAA;;;;;;;;GAQG;;;AAqGH,+EAA+E;AAC/E,gBAAgB;AAChB,+EAA+E;AAE/E;;GAEG;AACU,QAAA,eAAe,GAAG;IAC7B,aAAa,EAAE,eAAe;IAC9B,eAAe,EAAE,iBAAiB;IAClC,aAAa,EAAE,eAAe;IAC9B,iBAAiB,EAAE,mBAAmB;IACtC,YAAY,EAAE,cAAc;IAC5B,YAAY,EAAE,cAAc;IAC5B,eAAe,EAAE,iBAAiB;IAClC,YAAY,EAAE,cAAc;IAC5B,gBAAgB,EAAE,kBAAkB;IACpC,gBAAgB,EAAE,kBAAkB;IACpC,mBAAmB,EAAE,qBAAqB;CAClC,CAAC"}
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Error Types and Codes
|
|
4
|
+
*
|
|
5
|
+
* Normalized error handling across all AI providers. Provider-specific errors
|
|
6
|
+
* are translated to universal error types with actionable context.
|
|
7
|
+
*
|
|
8
|
+
* @module
|
|
9
|
+
*/
|
|
10
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
11
|
+
exports.ERROR_CODE_CATEGORIES = exports.ErrorCategory = exports.ErrorCode = void 0;
|
|
12
|
+
// ============================================================================
|
|
13
|
+
// Error Codes
|
|
14
|
+
// ============================================================================
|
|
15
|
+
/**
|
|
16
|
+
* Universal error codes covering all adapter failure modes.
|
|
17
|
+
*/
|
|
18
|
+
exports.ErrorCode = {
|
|
19
|
+
// Authentication errors (40x)
|
|
20
|
+
INVALID_API_KEY: 'INVALID_API_KEY',
|
|
21
|
+
MISSING_API_KEY: 'MISSING_API_KEY',
|
|
22
|
+
EXPIRED_API_KEY: 'EXPIRED_API_KEY',
|
|
23
|
+
// Authorization errors (40x)
|
|
24
|
+
INSUFFICIENT_PERMISSIONS: 'INSUFFICIENT_PERMISSIONS',
|
|
25
|
+
QUOTA_EXCEEDED: 'QUOTA_EXCEEDED',
|
|
26
|
+
// Rate limiting (429)
|
|
27
|
+
RATE_LIMIT_EXCEEDED: 'RATE_LIMIT_EXCEEDED',
|
|
28
|
+
// Validation errors (400)
|
|
29
|
+
INVALID_REQUEST: 'INVALID_REQUEST',
|
|
30
|
+
INVALID_MESSAGE_FORMAT: 'INVALID_MESSAGE_FORMAT',
|
|
31
|
+
INVALID_PARAMETERS: 'INVALID_PARAMETERS',
|
|
32
|
+
UNSUPPORTED_MODEL: 'UNSUPPORTED_MODEL',
|
|
33
|
+
UNSUPPORTED_FEATURE: 'UNSUPPORTED_FEATURE',
|
|
34
|
+
CONTEXT_LENGTH_EXCEEDED: 'CONTEXT_LENGTH_EXCEEDED',
|
|
35
|
+
// Provider errors (50x)
|
|
36
|
+
PROVIDER_ERROR: 'PROVIDER_ERROR',
|
|
37
|
+
PROVIDER_UNAVAILABLE: 'PROVIDER_UNAVAILABLE',
|
|
38
|
+
PROVIDER_TIMEOUT: 'PROVIDER_TIMEOUT',
|
|
39
|
+
PROVIDER_OVERLOADED: 'PROVIDER_OVERLOADED',
|
|
40
|
+
// Adapter errors
|
|
41
|
+
ADAPTER_CONVERSION_ERROR: 'ADAPTER_CONVERSION_ERROR',
|
|
42
|
+
ADAPTER_VALIDATION_ERROR: 'ADAPTER_VALIDATION_ERROR',
|
|
43
|
+
UNSUPPORTED_CONVERSION: 'UNSUPPORTED_CONVERSION',
|
|
44
|
+
SEMANTIC_DRIFT_ERROR: 'SEMANTIC_DRIFT_ERROR',
|
|
45
|
+
// Network errors
|
|
46
|
+
NETWORK_ERROR: 'NETWORK_ERROR',
|
|
47
|
+
CONNECTION_TIMEOUT: 'CONNECTION_TIMEOUT',
|
|
48
|
+
DNS_RESOLUTION_FAILED: 'DNS_RESOLUTION_FAILED',
|
|
49
|
+
// Streaming errors
|
|
50
|
+
STREAM_ERROR: 'STREAM_ERROR',
|
|
51
|
+
STREAM_INTERRUPTED: 'STREAM_INTERRUPTED',
|
|
52
|
+
STREAM_PARSE_ERROR: 'STREAM_PARSE_ERROR',
|
|
53
|
+
STREAM_CANCELLED: 'STREAM_CANCELLED',
|
|
54
|
+
// Router errors
|
|
55
|
+
NO_BACKEND_AVAILABLE: 'NO_BACKEND_AVAILABLE',
|
|
56
|
+
ROUTING_FAILED: 'ROUTING_FAILED',
|
|
57
|
+
ALL_BACKENDS_FAILED: 'ALL_BACKENDS_FAILED',
|
|
58
|
+
// Middleware errors
|
|
59
|
+
MIDDLEWARE_ERROR: 'MIDDLEWARE_ERROR',
|
|
60
|
+
// Generic errors
|
|
61
|
+
UNKNOWN_ERROR: 'UNKNOWN_ERROR',
|
|
62
|
+
INTERNAL_ERROR: 'INTERNAL_ERROR',
|
|
63
|
+
};
|
|
64
|
+
// ============================================================================
|
|
65
|
+
// Error Categories
|
|
66
|
+
// ============================================================================
|
|
67
|
+
/**
|
|
68
|
+
* Groups error codes into categories for easier handling.
|
|
69
|
+
*/
|
|
70
|
+
exports.ErrorCategory = {
|
|
71
|
+
AUTHENTICATION: 'authentication',
|
|
72
|
+
AUTHORIZATION: 'authorization',
|
|
73
|
+
RATE_LIMIT: 'rate_limit',
|
|
74
|
+
VALIDATION: 'validation',
|
|
75
|
+
PROVIDER: 'provider',
|
|
76
|
+
ADAPTER: 'adapter',
|
|
77
|
+
NETWORK: 'network',
|
|
78
|
+
STREAMING: 'streaming',
|
|
79
|
+
ROUTING: 'routing',
|
|
80
|
+
MIDDLEWARE: 'middleware',
|
|
81
|
+
UNKNOWN: 'unknown',
|
|
82
|
+
};
|
|
83
|
+
/**
|
|
84
|
+
* Maps error codes to their categories.
|
|
85
|
+
*/
|
|
86
|
+
exports.ERROR_CODE_CATEGORIES = {
|
|
87
|
+
[exports.ErrorCode.INVALID_API_KEY]: exports.ErrorCategory.AUTHENTICATION,
|
|
88
|
+
[exports.ErrorCode.MISSING_API_KEY]: exports.ErrorCategory.AUTHENTICATION,
|
|
89
|
+
[exports.ErrorCode.EXPIRED_API_KEY]: exports.ErrorCategory.AUTHENTICATION,
|
|
90
|
+
[exports.ErrorCode.INSUFFICIENT_PERMISSIONS]: exports.ErrorCategory.AUTHORIZATION,
|
|
91
|
+
[exports.ErrorCode.QUOTA_EXCEEDED]: exports.ErrorCategory.AUTHORIZATION,
|
|
92
|
+
[exports.ErrorCode.RATE_LIMIT_EXCEEDED]: exports.ErrorCategory.RATE_LIMIT,
|
|
93
|
+
[exports.ErrorCode.INVALID_REQUEST]: exports.ErrorCategory.VALIDATION,
|
|
94
|
+
[exports.ErrorCode.INVALID_MESSAGE_FORMAT]: exports.ErrorCategory.VALIDATION,
|
|
95
|
+
[exports.ErrorCode.INVALID_PARAMETERS]: exports.ErrorCategory.VALIDATION,
|
|
96
|
+
[exports.ErrorCode.UNSUPPORTED_MODEL]: exports.ErrorCategory.VALIDATION,
|
|
97
|
+
[exports.ErrorCode.UNSUPPORTED_FEATURE]: exports.ErrorCategory.VALIDATION,
|
|
98
|
+
[exports.ErrorCode.CONTEXT_LENGTH_EXCEEDED]: exports.ErrorCategory.VALIDATION,
|
|
99
|
+
[exports.ErrorCode.PROVIDER_ERROR]: exports.ErrorCategory.PROVIDER,
|
|
100
|
+
[exports.ErrorCode.PROVIDER_UNAVAILABLE]: exports.ErrorCategory.PROVIDER,
|
|
101
|
+
[exports.ErrorCode.PROVIDER_TIMEOUT]: exports.ErrorCategory.PROVIDER,
|
|
102
|
+
[exports.ErrorCode.PROVIDER_OVERLOADED]: exports.ErrorCategory.PROVIDER,
|
|
103
|
+
[exports.ErrorCode.ADAPTER_CONVERSION_ERROR]: exports.ErrorCategory.ADAPTER,
|
|
104
|
+
[exports.ErrorCode.ADAPTER_VALIDATION_ERROR]: exports.ErrorCategory.ADAPTER,
|
|
105
|
+
[exports.ErrorCode.UNSUPPORTED_CONVERSION]: exports.ErrorCategory.ADAPTER,
|
|
106
|
+
[exports.ErrorCode.SEMANTIC_DRIFT_ERROR]: exports.ErrorCategory.ADAPTER,
|
|
107
|
+
[exports.ErrorCode.NETWORK_ERROR]: exports.ErrorCategory.NETWORK,
|
|
108
|
+
[exports.ErrorCode.CONNECTION_TIMEOUT]: exports.ErrorCategory.NETWORK,
|
|
109
|
+
[exports.ErrorCode.DNS_RESOLUTION_FAILED]: exports.ErrorCategory.NETWORK,
|
|
110
|
+
[exports.ErrorCode.STREAM_ERROR]: exports.ErrorCategory.STREAMING,
|
|
111
|
+
[exports.ErrorCode.STREAM_INTERRUPTED]: exports.ErrorCategory.STREAMING,
|
|
112
|
+
[exports.ErrorCode.STREAM_PARSE_ERROR]: exports.ErrorCategory.STREAMING,
|
|
113
|
+
[exports.ErrorCode.STREAM_CANCELLED]: exports.ErrorCategory.STREAMING,
|
|
114
|
+
[exports.ErrorCode.NO_BACKEND_AVAILABLE]: exports.ErrorCategory.ROUTING,
|
|
115
|
+
[exports.ErrorCode.ROUTING_FAILED]: exports.ErrorCategory.ROUTING,
|
|
116
|
+
[exports.ErrorCode.ALL_BACKENDS_FAILED]: exports.ErrorCategory.ROUTING,
|
|
117
|
+
[exports.ErrorCode.MIDDLEWARE_ERROR]: exports.ErrorCategory.MIDDLEWARE,
|
|
118
|
+
[exports.ErrorCode.UNKNOWN_ERROR]: exports.ErrorCategory.UNKNOWN,
|
|
119
|
+
[exports.ErrorCode.INTERNAL_ERROR]: exports.ErrorCategory.UNKNOWN,
|
|
120
|
+
};
|
|
121
|
+
//# sourceMappingURL=errors.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/errors.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Type Definitions
|
|
4
|
+
*
|
|
5
|
+
* All type definitions for the Universal AI Adapter System.
|
|
6
|
+
*
|
|
7
|
+
* @module
|
|
8
|
+
*/
|
|
9
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
12
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
13
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
14
|
+
}
|
|
15
|
+
Object.defineProperty(o, k2, desc);
|
|
16
|
+
}) : (function(o, m, k, k2) {
|
|
17
|
+
if (k2 === undefined) k2 = k;
|
|
18
|
+
o[k2] = m[k];
|
|
19
|
+
}));
|
|
20
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
21
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
22
|
+
};
|
|
23
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
24
|
+
// IR (Intermediate Representation) types
|
|
25
|
+
__exportStar(require("./ir.js"), exports);
|
|
26
|
+
// Adapter interfaces
|
|
27
|
+
__exportStar(require("./adapters.js"), exports);
|
|
28
|
+
// Model types
|
|
29
|
+
__exportStar(require("./models.js"), exports);
|
|
30
|
+
// Error types (type definitions only, implementations in errors/)
|
|
31
|
+
__exportStar(require("./errors.js"), exports);
|
|
32
|
+
// Bridge types
|
|
33
|
+
__exportStar(require("./bridge.js"), exports);
|
|
34
|
+
// Router types
|
|
35
|
+
__exportStar(require("./router.js"), exports);
|
|
36
|
+
// Middleware types
|
|
37
|
+
__exportStar(require("./middleware.js"), exports);
|
|
38
|
+
// Model runner types
|
|
39
|
+
__exportStar(require("./model-runner.js"), exports);
|
|
40
|
+
// Model translation types
|
|
41
|
+
__exportStar(require("./model-translation.js"), exports);
|
|
42
|
+
// Streaming types
|
|
43
|
+
__exportStar(require("./streaming.js"), exports);
|
|
44
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;;;;;;;;;;;;;;AAEH,yCAAyC;AACzC,0CAAwB;AAExB,qBAAqB;AACrB,gDAA8B;AAE9B,cAAc;AACd,8CAA4B;AAE5B,kEAAkE;AAClE,8CAA4B;AAE5B,eAAe;AACf,8CAA4B;AAE5B,eAAe;AACf,8CAA4B;AAE5B,mBAAmB;AACnB,kDAAgC;AAEhC,qBAAqB;AACrB,oDAAkC;AAElC,0BAA0B;AAC1B,yDAAuC;AAEvC,kBAAkB;AAClB,iDAA+B"}
|
package/dist/cjs/ir.js
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Intermediate Representation (IR) Types
|
|
4
|
+
*
|
|
5
|
+
* The IR is the universal format that sits between frontend and backend adapters.
|
|
6
|
+
* It represents chat requests, responses, and streams in a normalized, provider-agnostic way.
|
|
7
|
+
*
|
|
8
|
+
* Design principles:
|
|
9
|
+
* - Provider-agnostic: No provider-specific fields in core types
|
|
10
|
+
* - Extensible: Support for metadata and custom fields
|
|
11
|
+
* - Type-safe: Use discriminated unions for runtime type checking
|
|
12
|
+
* - Stream-friendly: First-class support for streaming responses
|
|
13
|
+
*
|
|
14
|
+
* @module
|
|
15
|
+
*/
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
//# sourceMappingURL=ir.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ir.js","sourceRoot":"","sources":["../../src/ir.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;GAaG"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Middleware Function Signatures
|
|
4
|
+
*
|
|
5
|
+
* Middleware provides composable transformation layers for cross-cutting concerns
|
|
6
|
+
* like logging, caching, telemetry, prompt rewriting, and error handling.
|
|
7
|
+
*
|
|
8
|
+
* @module
|
|
9
|
+
*/
|
|
10
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
11
|
+
//# sourceMappingURL=middleware.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"middleware.js","sourceRoot":"","sources":["../../src/middleware.ts"],"names":[],"mappings":";AAAA;;;;;;;GAOG"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Model Runner Backend Types
|
|
4
|
+
*
|
|
5
|
+
* Type definitions for backends that run models locally via subprocess/binary execution.
|
|
6
|
+
* Supports stdio and HTTP communication patterns.
|
|
7
|
+
*
|
|
8
|
+
* @module
|
|
9
|
+
*/
|
|
10
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
11
|
+
//# sourceMappingURL=model-runner.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"model-runner.js","sourceRoot":"","sources":["../../src/model-runner.ts"],"names":[],"mappings":";AAAA;;;;;;;GAOG"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"model-translation.js","sourceRoot":"","sources":["../../src/model-translation.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Model Types
|
|
4
|
+
*
|
|
5
|
+
* Types for representing AI models and model listing functionality.
|
|
6
|
+
* Backend adapters can expose available models through the listModels() method.
|
|
7
|
+
*
|
|
8
|
+
* @module
|
|
9
|
+
*/
|
|
10
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
11
|
+
//# sourceMappingURL=models.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"models.js","sourceRoot":"","sources":["../../src/models.ts"],"names":[],"mappings":";AAAA;;;;;;;GAOG"}
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Router Types and Interfaces
|
|
4
|
+
*
|
|
5
|
+
* The Router manages multiple backend adapters and provides intelligent routing,
|
|
6
|
+
* fallback strategies, and parallel dispatch capabilities.
|
|
7
|
+
*
|
|
8
|
+
* @module
|
|
9
|
+
*/
|
|
10
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
11
|
+
exports.ParallelStrategy = exports.RoutingStrategy = exports.FallbackStrategy = void 0;
|
|
12
|
+
// ============================================================================
|
|
13
|
+
// Router Configuration
|
|
14
|
+
// ============================================================================
|
|
15
|
+
/**
|
|
16
|
+
* Fallback strategies for handling backend failures.
|
|
17
|
+
*/
|
|
18
|
+
exports.FallbackStrategy = {
|
|
19
|
+
/**
|
|
20
|
+
* No fallback - fail immediately if primary backend fails.
|
|
21
|
+
*/
|
|
22
|
+
NONE: 'none',
|
|
23
|
+
/**
|
|
24
|
+
* Try backends sequentially in order until one succeeds.
|
|
25
|
+
*/
|
|
26
|
+
SEQUENTIAL: 'sequential',
|
|
27
|
+
/**
|
|
28
|
+
* Try all backends in parallel, return first success.
|
|
29
|
+
*/
|
|
30
|
+
PARALLEL: 'parallel',
|
|
31
|
+
/**
|
|
32
|
+
* Use custom fallback logic.
|
|
33
|
+
*/
|
|
34
|
+
CUSTOM: 'custom',
|
|
35
|
+
};
|
|
36
|
+
/**
|
|
37
|
+
* Routing strategies for selecting backends.
|
|
38
|
+
*/
|
|
39
|
+
exports.RoutingStrategy = {
|
|
40
|
+
/**
|
|
41
|
+
* Use backend specified in request options.
|
|
42
|
+
*/
|
|
43
|
+
EXPLICIT: 'explicit',
|
|
44
|
+
/**
|
|
45
|
+
* Route based on model name.
|
|
46
|
+
*/
|
|
47
|
+
MODEL_BASED: 'model-based',
|
|
48
|
+
/**
|
|
49
|
+
* Route to least-cost backend.
|
|
50
|
+
*/
|
|
51
|
+
COST_OPTIMIZED: 'cost-optimized',
|
|
52
|
+
/**
|
|
53
|
+
* Route to fastest backend (lowest latency).
|
|
54
|
+
*/
|
|
55
|
+
LATENCY_OPTIMIZED: 'latency-optimized',
|
|
56
|
+
/**
|
|
57
|
+
* Round-robin load balancing.
|
|
58
|
+
*/
|
|
59
|
+
ROUND_ROBIN: 'round-robin',
|
|
60
|
+
/**
|
|
61
|
+
* Random backend selection.
|
|
62
|
+
*/
|
|
63
|
+
RANDOM: 'random',
|
|
64
|
+
/**
|
|
65
|
+
* Use custom routing logic.
|
|
66
|
+
*/
|
|
67
|
+
CUSTOM: 'custom',
|
|
68
|
+
};
|
|
69
|
+
// ============================================================================
|
|
70
|
+
// Parallel Dispatch Options
|
|
71
|
+
// ============================================================================
|
|
72
|
+
/**
|
|
73
|
+
* Strategy for handling parallel dispatch results.
|
|
74
|
+
*/
|
|
75
|
+
exports.ParallelStrategy = {
|
|
76
|
+
/**
|
|
77
|
+
* Return first successful response, cancel others.
|
|
78
|
+
*/
|
|
79
|
+
FIRST: 'first',
|
|
80
|
+
/**
|
|
81
|
+
* Wait for all responses, return array of results.
|
|
82
|
+
*/
|
|
83
|
+
ALL: 'all',
|
|
84
|
+
/**
|
|
85
|
+
* Return fastest successful response (with timeout).
|
|
86
|
+
*/
|
|
87
|
+
FASTEST: 'fastest',
|
|
88
|
+
/**
|
|
89
|
+
* Use custom aggregation logic.
|
|
90
|
+
*/
|
|
91
|
+
CUSTOM: 'custom',
|
|
92
|
+
};
|
|
93
|
+
//# sourceMappingURL=router.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"router.js","sourceRoot":"","sources":["../../src/router.ts"],"names":[],"mappings":";AAAA;;;;;;;GAOG;;;AAUH,+EAA+E;AAC/E,uBAAuB;AACvB,+EAA+E;AAE/E;;GAEG;AACU,QAAA,gBAAgB,GAAG;IAC9B;;OAEG;IACH,IAAI,EAAE,MAAM;IAEZ;;OAEG;IACH,UAAU,EAAE,YAAY;IAExB;;OAEG;IACH,QAAQ,EAAE,UAAU;IAEpB;;OAEG;IACH,MAAM,EAAE,QAAQ;CACR,CAAC;AAIX;;GAEG;AACU,QAAA,eAAe,GAAG;IAC7B;;OAEG;IACH,QAAQ,EAAE,UAAU;IAEpB;;OAEG;IACH,WAAW,EAAE,aAAa;IAE1B;;OAEG;IACH,cAAc,EAAE,gBAAgB;IAEhC;;OAEG;IACH,iBAAiB,EAAE,mBAAmB;IAEtC;;OAEG;IACH,WAAW,EAAE,aAAa;IAE1B;;OAEG;IACH,MAAM,EAAE,QAAQ;IAEhB;;OAEG;IACH,MAAM,EAAE,QAAQ;CACR,CAAC;AA2SX,+EAA+E;AAC/E,4BAA4B;AAC5B,+EAA+E;AAE/E;;GAEG;AACU,QAAA,gBAAgB,GAAG;IAC9B;;OAEG;IACH,KAAK,EAAE,OAAO;IAEd;;OAEG;IACH,GAAG,EAAE,KAAK;IAEV;;OAEG;IACH,OAAO,EAAE,SAAS;IAElB;;OAEG;IACH,MAAM,EAAE,QAAQ;CACR,CAAC"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Streaming Configuration Types
|
|
4
|
+
*
|
|
5
|
+
* Defines how streaming responses should be delivered across the system.
|
|
6
|
+
* Supports flexible streaming modes with delta (incremental) and accumulated (full text) formats.
|
|
7
|
+
*
|
|
8
|
+
* @module
|
|
9
|
+
*/
|
|
10
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
11
|
+
exports.DEFAULT_CONVERSION_OPTIONS = exports.DEFAULT_STREAMING_CONFIG = void 0;
|
|
12
|
+
/**
|
|
13
|
+
* Default streaming configuration.
|
|
14
|
+
*/
|
|
15
|
+
exports.DEFAULT_STREAMING_CONFIG = {
|
|
16
|
+
mode: 'delta',
|
|
17
|
+
includeBoth: false,
|
|
18
|
+
bufferStrategy: 'memory',
|
|
19
|
+
};
|
|
20
|
+
/**
|
|
21
|
+
* Default conversion options.
|
|
22
|
+
*/
|
|
23
|
+
exports.DEFAULT_CONVERSION_OPTIONS = {
|
|
24
|
+
mode: 'delta',
|
|
25
|
+
preserveIfMatch: true,
|
|
26
|
+
validateSequence: false,
|
|
27
|
+
};
|
|
28
|
+
//# sourceMappingURL=streaming.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"streaming.js","sourceRoot":"","sources":["../../src/streaming.ts"],"names":[],"mappings":";AAAA;;;;;;;GAOG;;;AA0FH;;GAEG;AACU,QAAA,wBAAwB,GAA8B;IACjE,IAAI,EAAE,OAAO;IACb,WAAW,EAAE,KAAK;IAClB,cAAc,EAAE,QAAQ;CACzB,CAAC;AAEF;;GAEG;AACU,QAAA,0BAA0B,GAAyD;IAC9F,IAAI,EAAE,OAAO;IACb,eAAe,EAAE,IAAI;IACrB,gBAAgB,EAAE,KAAK;CACxB,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Frontend and Backend Adapter Interfaces
|
|
3
|
+
*
|
|
4
|
+
* Adapters are the core translation layer between provider-specific formats
|
|
5
|
+
* and the universal Intermediate Representation (IR).
|
|
6
|
+
*
|
|
7
|
+
* Architecture:
|
|
8
|
+
* - Frontend Adapters: Normalize provider-specific requests → IR
|
|
9
|
+
* - Backend Adapters: Transform IR → provider API calls → IR responses
|
|
10
|
+
* - Both implement common interface with metadata for router decisions
|
|
11
|
+
*
|
|
12
|
+
* @module
|
|
13
|
+
*/
|
|
14
|
+
export {};
|
|
15
|
+
//# sourceMappingURL=adapters.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"adapters.js","sourceRoot":"","sources":["../../src/adapters.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Bridge Types and Interfaces
|
|
3
|
+
*
|
|
4
|
+
* The Bridge is the primary developer-facing API for the Universal AI Adapter System.
|
|
5
|
+
* It connects a frontend adapter to one or more backend adapters, with embedded
|
|
6
|
+
* router and middleware stack for orchestration and cross-cutting concerns.
|
|
7
|
+
*
|
|
8
|
+
* @module
|
|
9
|
+
*/
|
|
10
|
+
// ============================================================================
|
|
11
|
+
// Bridge Events
|
|
12
|
+
// ============================================================================
|
|
13
|
+
/**
|
|
14
|
+
* Event types emitted by Bridge.
|
|
15
|
+
*/
|
|
16
|
+
export const BridgeEventType = {
|
|
17
|
+
REQUEST_START: 'request:start',
|
|
18
|
+
REQUEST_SUCCESS: 'request:success',
|
|
19
|
+
REQUEST_ERROR: 'request:error',
|
|
20
|
+
REQUEST_CANCELLED: 'request:cancelled',
|
|
21
|
+
STREAM_START: 'stream:start',
|
|
22
|
+
STREAM_CHUNK: 'stream:chunk',
|
|
23
|
+
STREAM_COMPLETE: 'stream:complete',
|
|
24
|
+
STREAM_ERROR: 'stream:error',
|
|
25
|
+
BACKEND_SELECTED: 'backend:selected',
|
|
26
|
+
BACKEND_FAILOVER: 'backend:failover',
|
|
27
|
+
MIDDLEWARE_EXECUTED: 'middleware:executed',
|
|
28
|
+
};
|
|
29
|
+
//# sourceMappingURL=bridge.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bridge.js","sourceRoot":"","sources":["../../src/bridge.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAqGH,+EAA+E;AAC/E,gBAAgB;AAChB,+EAA+E;AAE/E;;GAEG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,aAAa,EAAE,eAAe;IAC9B,eAAe,EAAE,iBAAiB;IAClC,aAAa,EAAE,eAAe;IAC9B,iBAAiB,EAAE,mBAAmB;IACtC,YAAY,EAAE,cAAc;IAC5B,YAAY,EAAE,cAAc;IAC5B,eAAe,EAAE,iBAAiB;IAClC,YAAY,EAAE,cAAc;IAC5B,gBAAgB,EAAE,kBAAkB;IACpC,gBAAgB,EAAE,kBAAkB;IACpC,mBAAmB,EAAE,qBAAqB;CAClC,CAAC"}
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Error Types and Codes
|
|
3
|
+
*
|
|
4
|
+
* Normalized error handling across all AI providers. Provider-specific errors
|
|
5
|
+
* are translated to universal error types with actionable context.
|
|
6
|
+
*
|
|
7
|
+
* @module
|
|
8
|
+
*/
|
|
9
|
+
// ============================================================================
|
|
10
|
+
// Error Codes
|
|
11
|
+
// ============================================================================
|
|
12
|
+
/**
|
|
13
|
+
* Universal error codes covering all adapter failure modes.
|
|
14
|
+
*/
|
|
15
|
+
export const ErrorCode = {
|
|
16
|
+
// Authentication errors (40x)
|
|
17
|
+
INVALID_API_KEY: 'INVALID_API_KEY',
|
|
18
|
+
MISSING_API_KEY: 'MISSING_API_KEY',
|
|
19
|
+
EXPIRED_API_KEY: 'EXPIRED_API_KEY',
|
|
20
|
+
// Authorization errors (40x)
|
|
21
|
+
INSUFFICIENT_PERMISSIONS: 'INSUFFICIENT_PERMISSIONS',
|
|
22
|
+
QUOTA_EXCEEDED: 'QUOTA_EXCEEDED',
|
|
23
|
+
// Rate limiting (429)
|
|
24
|
+
RATE_LIMIT_EXCEEDED: 'RATE_LIMIT_EXCEEDED',
|
|
25
|
+
// Validation errors (400)
|
|
26
|
+
INVALID_REQUEST: 'INVALID_REQUEST',
|
|
27
|
+
INVALID_MESSAGE_FORMAT: 'INVALID_MESSAGE_FORMAT',
|
|
28
|
+
INVALID_PARAMETERS: 'INVALID_PARAMETERS',
|
|
29
|
+
UNSUPPORTED_MODEL: 'UNSUPPORTED_MODEL',
|
|
30
|
+
UNSUPPORTED_FEATURE: 'UNSUPPORTED_FEATURE',
|
|
31
|
+
CONTEXT_LENGTH_EXCEEDED: 'CONTEXT_LENGTH_EXCEEDED',
|
|
32
|
+
// Provider errors (50x)
|
|
33
|
+
PROVIDER_ERROR: 'PROVIDER_ERROR',
|
|
34
|
+
PROVIDER_UNAVAILABLE: 'PROVIDER_UNAVAILABLE',
|
|
35
|
+
PROVIDER_TIMEOUT: 'PROVIDER_TIMEOUT',
|
|
36
|
+
PROVIDER_OVERLOADED: 'PROVIDER_OVERLOADED',
|
|
37
|
+
// Adapter errors
|
|
38
|
+
ADAPTER_CONVERSION_ERROR: 'ADAPTER_CONVERSION_ERROR',
|
|
39
|
+
ADAPTER_VALIDATION_ERROR: 'ADAPTER_VALIDATION_ERROR',
|
|
40
|
+
UNSUPPORTED_CONVERSION: 'UNSUPPORTED_CONVERSION',
|
|
41
|
+
SEMANTIC_DRIFT_ERROR: 'SEMANTIC_DRIFT_ERROR',
|
|
42
|
+
// Network errors
|
|
43
|
+
NETWORK_ERROR: 'NETWORK_ERROR',
|
|
44
|
+
CONNECTION_TIMEOUT: 'CONNECTION_TIMEOUT',
|
|
45
|
+
DNS_RESOLUTION_FAILED: 'DNS_RESOLUTION_FAILED',
|
|
46
|
+
// Streaming errors
|
|
47
|
+
STREAM_ERROR: 'STREAM_ERROR',
|
|
48
|
+
STREAM_INTERRUPTED: 'STREAM_INTERRUPTED',
|
|
49
|
+
STREAM_PARSE_ERROR: 'STREAM_PARSE_ERROR',
|
|
50
|
+
STREAM_CANCELLED: 'STREAM_CANCELLED',
|
|
51
|
+
// Router errors
|
|
52
|
+
NO_BACKEND_AVAILABLE: 'NO_BACKEND_AVAILABLE',
|
|
53
|
+
ROUTING_FAILED: 'ROUTING_FAILED',
|
|
54
|
+
ALL_BACKENDS_FAILED: 'ALL_BACKENDS_FAILED',
|
|
55
|
+
// Middleware errors
|
|
56
|
+
MIDDLEWARE_ERROR: 'MIDDLEWARE_ERROR',
|
|
57
|
+
// Generic errors
|
|
58
|
+
UNKNOWN_ERROR: 'UNKNOWN_ERROR',
|
|
59
|
+
INTERNAL_ERROR: 'INTERNAL_ERROR',
|
|
60
|
+
};
|
|
61
|
+
// ============================================================================
|
|
62
|
+
// Error Categories
|
|
63
|
+
// ============================================================================
|
|
64
|
+
/**
|
|
65
|
+
* Groups error codes into categories for easier handling.
|
|
66
|
+
*/
|
|
67
|
+
export const ErrorCategory = {
|
|
68
|
+
AUTHENTICATION: 'authentication',
|
|
69
|
+
AUTHORIZATION: 'authorization',
|
|
70
|
+
RATE_LIMIT: 'rate_limit',
|
|
71
|
+
VALIDATION: 'validation',
|
|
72
|
+
PROVIDER: 'provider',
|
|
73
|
+
ADAPTER: 'adapter',
|
|
74
|
+
NETWORK: 'network',
|
|
75
|
+
STREAMING: 'streaming',
|
|
76
|
+
ROUTING: 'routing',
|
|
77
|
+
MIDDLEWARE: 'middleware',
|
|
78
|
+
UNKNOWN: 'unknown',
|
|
79
|
+
};
|
|
80
|
+
/**
|
|
81
|
+
* Maps error codes to their categories.
|
|
82
|
+
*/
|
|
83
|
+
export const ERROR_CODE_CATEGORIES = {
|
|
84
|
+
[ErrorCode.INVALID_API_KEY]: ErrorCategory.AUTHENTICATION,
|
|
85
|
+
[ErrorCode.MISSING_API_KEY]: ErrorCategory.AUTHENTICATION,
|
|
86
|
+
[ErrorCode.EXPIRED_API_KEY]: ErrorCategory.AUTHENTICATION,
|
|
87
|
+
[ErrorCode.INSUFFICIENT_PERMISSIONS]: ErrorCategory.AUTHORIZATION,
|
|
88
|
+
[ErrorCode.QUOTA_EXCEEDED]: ErrorCategory.AUTHORIZATION,
|
|
89
|
+
[ErrorCode.RATE_LIMIT_EXCEEDED]: ErrorCategory.RATE_LIMIT,
|
|
90
|
+
[ErrorCode.INVALID_REQUEST]: ErrorCategory.VALIDATION,
|
|
91
|
+
[ErrorCode.INVALID_MESSAGE_FORMAT]: ErrorCategory.VALIDATION,
|
|
92
|
+
[ErrorCode.INVALID_PARAMETERS]: ErrorCategory.VALIDATION,
|
|
93
|
+
[ErrorCode.UNSUPPORTED_MODEL]: ErrorCategory.VALIDATION,
|
|
94
|
+
[ErrorCode.UNSUPPORTED_FEATURE]: ErrorCategory.VALIDATION,
|
|
95
|
+
[ErrorCode.CONTEXT_LENGTH_EXCEEDED]: ErrorCategory.VALIDATION,
|
|
96
|
+
[ErrorCode.PROVIDER_ERROR]: ErrorCategory.PROVIDER,
|
|
97
|
+
[ErrorCode.PROVIDER_UNAVAILABLE]: ErrorCategory.PROVIDER,
|
|
98
|
+
[ErrorCode.PROVIDER_TIMEOUT]: ErrorCategory.PROVIDER,
|
|
99
|
+
[ErrorCode.PROVIDER_OVERLOADED]: ErrorCategory.PROVIDER,
|
|
100
|
+
[ErrorCode.ADAPTER_CONVERSION_ERROR]: ErrorCategory.ADAPTER,
|
|
101
|
+
[ErrorCode.ADAPTER_VALIDATION_ERROR]: ErrorCategory.ADAPTER,
|
|
102
|
+
[ErrorCode.UNSUPPORTED_CONVERSION]: ErrorCategory.ADAPTER,
|
|
103
|
+
[ErrorCode.SEMANTIC_DRIFT_ERROR]: ErrorCategory.ADAPTER,
|
|
104
|
+
[ErrorCode.NETWORK_ERROR]: ErrorCategory.NETWORK,
|
|
105
|
+
[ErrorCode.CONNECTION_TIMEOUT]: ErrorCategory.NETWORK,
|
|
106
|
+
[ErrorCode.DNS_RESOLUTION_FAILED]: ErrorCategory.NETWORK,
|
|
107
|
+
[ErrorCode.STREAM_ERROR]: ErrorCategory.STREAMING,
|
|
108
|
+
[ErrorCode.STREAM_INTERRUPTED]: ErrorCategory.STREAMING,
|
|
109
|
+
[ErrorCode.STREAM_PARSE_ERROR]: ErrorCategory.STREAMING,
|
|
110
|
+
[ErrorCode.STREAM_CANCELLED]: ErrorCategory.STREAMING,
|
|
111
|
+
[ErrorCode.NO_BACKEND_AVAILABLE]: ErrorCategory.ROUTING,
|
|
112
|
+
[ErrorCode.ROUTING_FAILED]: ErrorCategory.ROUTING,
|
|
113
|
+
[ErrorCode.ALL_BACKENDS_FAILED]: ErrorCategory.ROUTING,
|
|
114
|
+
[ErrorCode.MIDDLEWARE_ERROR]: ErrorCategory.MIDDLEWARE,
|
|
115
|
+
[ErrorCode.UNKNOWN_ERROR]: ErrorCategory.UNKNOWN,
|
|
116
|
+
[ErrorCode.INTERNAL_ERROR]: ErrorCategory.UNKNOWN,
|
|
117
|
+
};
|
|
118
|
+
//# sourceMappingURL=errors.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/errors.ts"],"names":[],"mappings":"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"}
|