sylix 3.2.0 → 4.0.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/dist/client.d.ts +100 -1
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +122 -16
- package/dist/errors.d.ts +108 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/errors.js +159 -0
- package/dist/index.d.ts +5 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -3
- package/dist/types.d.ts +5 -12
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +5 -9
- package/package.json +1 -1
package/dist/client.d.ts
CHANGED
|
@@ -1,13 +1,112 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Sylix SDK Client
|
|
3
|
+
* OpenAI-compatible HTTP client with retries, timeout, and configuration
|
|
4
|
+
*
|
|
5
|
+
* Owned by Sylix Technologies © 2026
|
|
6
|
+
*/
|
|
1
7
|
import { AxiosInstance } from "axios";
|
|
2
|
-
|
|
8
|
+
/**
|
|
9
|
+
* Client configuration (OpenAI-compatible)
|
|
10
|
+
*/
|
|
11
|
+
export interface SylixConfig {
|
|
12
|
+
/**
|
|
13
|
+
* API Key for authentication
|
|
14
|
+
*/
|
|
15
|
+
apiKey: string;
|
|
16
|
+
/**
|
|
17
|
+
* Organization ID (optional)
|
|
18
|
+
*/
|
|
19
|
+
organization?: string;
|
|
20
|
+
/**
|
|
21
|
+
* Project ID (optional)
|
|
22
|
+
*/
|
|
23
|
+
project?: string;
|
|
24
|
+
/**
|
|
25
|
+
* Base URL for API requests
|
|
26
|
+
* @default "https://api.sylixide.com/v1"
|
|
27
|
+
*/
|
|
28
|
+
baseURL?: string;
|
|
29
|
+
/**
|
|
30
|
+
* Request timeout in milliseconds
|
|
31
|
+
* @default 600000 (10 minutes)
|
|
32
|
+
*/
|
|
33
|
+
timeout?: number;
|
|
34
|
+
/**
|
|
35
|
+
* Maximum number of retries for failed requests
|
|
36
|
+
* @default 2
|
|
37
|
+
*/
|
|
38
|
+
maxRetries?: number;
|
|
39
|
+
/**
|
|
40
|
+
* Default headers to include in requests
|
|
41
|
+
*/
|
|
42
|
+
defaultHeaders?: Record<string, string>;
|
|
43
|
+
/**
|
|
44
|
+
* Default query parameters
|
|
45
|
+
*/
|
|
46
|
+
defaultQuery?: Record<string, string>;
|
|
47
|
+
/**
|
|
48
|
+
* Custom fetch implementation
|
|
49
|
+
*/
|
|
50
|
+
fetch?: typeof fetch;
|
|
51
|
+
/**
|
|
52
|
+
* Allow browser usage (for client-side apps)
|
|
53
|
+
* @default false
|
|
54
|
+
*/
|
|
55
|
+
dangerouslyAllowBrowser?: boolean;
|
|
56
|
+
}
|
|
3
57
|
export declare class SylixClient {
|
|
4
58
|
private client;
|
|
5
59
|
private apiKey;
|
|
6
60
|
private baseURL;
|
|
61
|
+
private organization?;
|
|
62
|
+
private project?;
|
|
63
|
+
private maxRetries;
|
|
64
|
+
private timeout;
|
|
65
|
+
private customFetch?;
|
|
7
66
|
constructor(config: SylixConfig);
|
|
67
|
+
/**
|
|
68
|
+
* Setup automatic retry logic with exponential backoff
|
|
69
|
+
*/
|
|
70
|
+
private setupRetryInterceptor;
|
|
71
|
+
/**
|
|
72
|
+
* Determine if request should be retried
|
|
73
|
+
*/
|
|
74
|
+
private shouldRetry;
|
|
75
|
+
/**
|
|
76
|
+
* Sleep helper
|
|
77
|
+
*/
|
|
78
|
+
private sleep;
|
|
79
|
+
/**
|
|
80
|
+
* Wrap axios errors in API error types
|
|
81
|
+
*/
|
|
82
|
+
private wrapError;
|
|
83
|
+
/**
|
|
84
|
+
* Validate model ID
|
|
85
|
+
*/
|
|
8
86
|
validateModel(model: string): void;
|
|
87
|
+
/**
|
|
88
|
+
* Get axios client instance
|
|
89
|
+
*/
|
|
9
90
|
getClient(): AxiosInstance;
|
|
91
|
+
/**
|
|
92
|
+
* Get base URL
|
|
93
|
+
*/
|
|
10
94
|
getBaseURL(): string;
|
|
95
|
+
/**
|
|
96
|
+
* Get API key
|
|
97
|
+
*/
|
|
11
98
|
getApiKey(): string;
|
|
99
|
+
/**
|
|
100
|
+
* Get custom fetch if provided
|
|
101
|
+
*/
|
|
102
|
+
getFetch(): typeof fetch;
|
|
103
|
+
/**
|
|
104
|
+
* Get organization ID
|
|
105
|
+
*/
|
|
106
|
+
getOrganization(): string | undefined;
|
|
107
|
+
/**
|
|
108
|
+
* Get project ID
|
|
109
|
+
*/
|
|
110
|
+
getProject(): string | undefined;
|
|
12
111
|
}
|
|
13
112
|
//# sourceMappingURL=client.d.ts.map
|
package/dist/client.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,OAAc,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAc,EAAE,aAAa,EAAsB,MAAM,OAAO,CAAC;AAUjE;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;IAEf;;OAEG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB;;OAEG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAExC;;OAEG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAEtC;;OAEG;IACH,KAAK,CAAC,EAAE,OAAO,KAAK,CAAC;IAErB;;;OAGG;IACH,uBAAuB,CAAC,EAAE,OAAO,CAAC;CACnC;AAED,qBAAa,WAAW;IACtB,OAAO,CAAC,MAAM,CAAgB;IAC9B,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,YAAY,CAAC,CAAS;IAC9B,OAAO,CAAC,OAAO,CAAC,CAAS;IACzB,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,WAAW,CAAC,CAAe;gBAEvB,MAAM,EAAE,WAAW;IA8C/B;;OAEG;IACH,OAAO,CAAC,qBAAqB;IA8B7B;;OAEG;IACH,OAAO,CAAC,WAAW;IAenB;;OAEG;IACH,OAAO,CAAC,KAAK;IAIb;;OAEG;IACH,OAAO,CAAC,SAAS;IAqBjB;;OAEG;IACH,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAWlC;;OAEG;IACH,SAAS,IAAI,aAAa;IAI1B;;OAEG;IACH,UAAU,IAAI,MAAM;IAIpB;;OAEG;IACH,SAAS,IAAI,MAAM;IAInB;;OAEG;IACH,QAAQ,IAAI,OAAO,KAAK;IAIxB;;OAEG;IACH,eAAe,IAAI,MAAM,GAAG,SAAS;IAIrC;;OAEG;IACH,UAAU,IAAI,MAAM,GAAG,SAAS;CAGjC"}
|
package/dist/client.js
CHANGED
|
@@ -1,51 +1,157 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Sylix SDK Client
|
|
3
|
+
* OpenAI-compatible HTTP client with retries, timeout, and configuration
|
|
4
|
+
*
|
|
5
|
+
* Owned by Sylix Technologies © 2026
|
|
6
|
+
*/
|
|
1
7
|
import axios from "axios";
|
|
2
|
-
import {
|
|
8
|
+
import { APIError, APIConnectionError, APIConnectionTimeoutError, APIUserAbortError } from "./errors.js";
|
|
9
|
+
import { CHARLES_MODEL_IDS } from "./types.js";
|
|
3
10
|
export class SylixClient {
|
|
4
11
|
constructor(config) {
|
|
5
12
|
if (!config.apiKey) {
|
|
6
|
-
throw new
|
|
13
|
+
throw new AuthenticationError(401, { message: "Missing API key" }, "apiKey is required. Get your API key from https://sylixide.com", undefined);
|
|
14
|
+
}
|
|
15
|
+
// Browser check
|
|
16
|
+
if (typeof globalThis !== 'undefined' && typeof globalThis.window !== 'undefined' && !config.dangerouslyAllowBrowser) {
|
|
17
|
+
console.warn("Sylix SDK: It looks like you're running in a browser. " +
|
|
18
|
+
"Set dangerouslyAllowBrowser: true to suppress this warning.");
|
|
7
19
|
}
|
|
8
20
|
this.apiKey = config.apiKey;
|
|
9
21
|
this.baseURL = config.baseURL || "https://api.sylixide.com/v1";
|
|
22
|
+
this.organization = config.organization;
|
|
23
|
+
this.project = config.project;
|
|
24
|
+
this.maxRetries = config.maxRetries ?? 2;
|
|
25
|
+
this.timeout = config.timeout ?? 600000; // 10 minutes default like OpenAI
|
|
26
|
+
this.customFetch = config.fetch;
|
|
10
27
|
const headers = {
|
|
11
28
|
"Content-Type": "application/json",
|
|
29
|
+
"Authorization": `Bearer ${this.apiKey}`,
|
|
12
30
|
"x-api-key": this.apiKey,
|
|
13
|
-
...(config.
|
|
31
|
+
...(config.organization && { "Sylix-Organization": config.organization }),
|
|
32
|
+
...(config.project && { "Sylix-Project": config.project }),
|
|
33
|
+
...(config.defaultHeaders || {}),
|
|
14
34
|
};
|
|
15
35
|
this.client = axios.create({
|
|
16
36
|
baseURL: this.baseURL,
|
|
17
|
-
timeout:
|
|
37
|
+
timeout: this.timeout,
|
|
18
38
|
headers,
|
|
39
|
+
params: config.defaultQuery,
|
|
19
40
|
});
|
|
20
|
-
// Add retry interceptor
|
|
41
|
+
// Add retry interceptor
|
|
42
|
+
this.setupRetryInterceptor();
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Setup automatic retry logic with exponential backoff
|
|
46
|
+
*/
|
|
47
|
+
setupRetryInterceptor() {
|
|
21
48
|
this.client.interceptors.response.use((response) => response, async (error) => {
|
|
22
49
|
const config = error.config;
|
|
23
|
-
if (!config)
|
|
24
|
-
return Promise.reject(error);
|
|
25
|
-
|
|
26
|
-
config.
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
50
|
+
if (!config) {
|
|
51
|
+
return Promise.reject(this.wrapError(error));
|
|
52
|
+
}
|
|
53
|
+
config._retryCount = config._retryCount || 0;
|
|
54
|
+
// Check if we should retry
|
|
55
|
+
const shouldRetry = this.shouldRetry(error, config._retryCount);
|
|
56
|
+
if (shouldRetry) {
|
|
57
|
+
config._retryCount++;
|
|
58
|
+
// Exponential backoff: 1s, 2s, 4s...
|
|
59
|
+
const delay = Math.pow(2, config._retryCount - 1) * 1000;
|
|
60
|
+
await this.sleep(delay);
|
|
32
61
|
return this.client(config);
|
|
33
62
|
}
|
|
34
|
-
return Promise.reject(error);
|
|
63
|
+
return Promise.reject(this.wrapError(error));
|
|
35
64
|
});
|
|
36
65
|
}
|
|
66
|
+
/**
|
|
67
|
+
* Determine if request should be retried
|
|
68
|
+
*/
|
|
69
|
+
shouldRetry(error, retryCount) {
|
|
70
|
+
if (retryCount >= this.maxRetries)
|
|
71
|
+
return false;
|
|
72
|
+
// Retry on network errors
|
|
73
|
+
if (!error.response)
|
|
74
|
+
return true;
|
|
75
|
+
// Retry on 5xx errors
|
|
76
|
+
if (error.response.status >= 500)
|
|
77
|
+
return true;
|
|
78
|
+
// Retry on 429 rate limit
|
|
79
|
+
if (error.response.status === 429)
|
|
80
|
+
return true;
|
|
81
|
+
return false;
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Sleep helper
|
|
85
|
+
*/
|
|
86
|
+
sleep(ms) {
|
|
87
|
+
return new Promise((resolve) => setTimeout(resolve, ms));
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Wrap axios errors in API error types
|
|
91
|
+
*/
|
|
92
|
+
wrapError(error) {
|
|
93
|
+
if (error.code === 'ECONNABORTED') {
|
|
94
|
+
return new APIConnectionTimeoutError({ message: error.message });
|
|
95
|
+
}
|
|
96
|
+
if (error.code === 'ERR_CANCELED' || error.name === 'AbortError') {
|
|
97
|
+
return new APIUserAbortError({ message: error.message });
|
|
98
|
+
}
|
|
99
|
+
if (!error.response) {
|
|
100
|
+
return new APIConnectionError({ cause: error });
|
|
101
|
+
}
|
|
102
|
+
const status = error.response.status;
|
|
103
|
+
const data = error.response.data;
|
|
104
|
+
const message = data?.error?.message || error.message;
|
|
105
|
+
const headers = error.response.headers;
|
|
106
|
+
return APIError.generate(status, data?.error, message, headers);
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* Validate model ID
|
|
110
|
+
*/
|
|
37
111
|
validateModel(model) {
|
|
112
|
+
// Skip validation for custom models
|
|
113
|
+
if (model.includes(':') || model.includes('/'))
|
|
114
|
+
return;
|
|
38
115
|
if (!CHARLES_MODEL_IDS.includes(model)) {
|
|
39
|
-
|
|
116
|
+
console.warn(`Model "${model}" may not be available. Known models: ${CHARLES_MODEL_IDS.join(", ")}`);
|
|
40
117
|
}
|
|
41
118
|
}
|
|
119
|
+
/**
|
|
120
|
+
* Get axios client instance
|
|
121
|
+
*/
|
|
42
122
|
getClient() {
|
|
43
123
|
return this.client;
|
|
44
124
|
}
|
|
125
|
+
/**
|
|
126
|
+
* Get base URL
|
|
127
|
+
*/
|
|
45
128
|
getBaseURL() {
|
|
46
129
|
return this.baseURL;
|
|
47
130
|
}
|
|
131
|
+
/**
|
|
132
|
+
* Get API key
|
|
133
|
+
*/
|
|
48
134
|
getApiKey() {
|
|
49
135
|
return this.apiKey;
|
|
50
136
|
}
|
|
137
|
+
/**
|
|
138
|
+
* Get custom fetch if provided
|
|
139
|
+
*/
|
|
140
|
+
getFetch() {
|
|
141
|
+
return this.customFetch || fetch;
|
|
142
|
+
}
|
|
143
|
+
/**
|
|
144
|
+
* Get organization ID
|
|
145
|
+
*/
|
|
146
|
+
getOrganization() {
|
|
147
|
+
return this.organization;
|
|
148
|
+
}
|
|
149
|
+
/**
|
|
150
|
+
* Get project ID
|
|
151
|
+
*/
|
|
152
|
+
getProject() {
|
|
153
|
+
return this.project;
|
|
154
|
+
}
|
|
51
155
|
}
|
|
156
|
+
// Re-export error for backwards compatibility
|
|
157
|
+
import { AuthenticationError } from "./errors.js";
|
package/dist/errors.d.ts
ADDED
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Sylix SDK Error Types
|
|
3
|
+
* Full OpenAI-compatible error hierarchy
|
|
4
|
+
*
|
|
5
|
+
* Owned by Sylix Technologies © 2026
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Base API Error
|
|
9
|
+
*/
|
|
10
|
+
export declare class APIError extends Error {
|
|
11
|
+
readonly status: number | undefined;
|
|
12
|
+
readonly headers: Record<string, string> | undefined;
|
|
13
|
+
readonly error: any;
|
|
14
|
+
readonly code: string | null;
|
|
15
|
+
readonly param: string | null;
|
|
16
|
+
readonly type: string | undefined;
|
|
17
|
+
constructor(status: number | undefined, error: any, message: string | undefined, headers: Record<string, string> | undefined);
|
|
18
|
+
static generate(status: number | undefined, error: any, message: string | undefined, headers: Record<string, string> | undefined): APIError;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Connection Error - Network issues
|
|
22
|
+
*/
|
|
23
|
+
export declare class APIConnectionError extends APIError {
|
|
24
|
+
constructor({ cause, message }?: {
|
|
25
|
+
cause?: Error;
|
|
26
|
+
message?: string;
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Connection Timeout Error
|
|
31
|
+
*/
|
|
32
|
+
export declare class APIConnectionTimeoutError extends APIConnectionError {
|
|
33
|
+
constructor({ message }?: {
|
|
34
|
+
message?: string;
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* User Abort Error
|
|
39
|
+
*/
|
|
40
|
+
export declare class APIUserAbortError extends APIError {
|
|
41
|
+
constructor({ message }?: {
|
|
42
|
+
message?: string;
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* 400 Bad Request
|
|
47
|
+
*/
|
|
48
|
+
export declare class BadRequestError extends APIError {
|
|
49
|
+
readonly status: 400;
|
|
50
|
+
constructor(status: number, error: any, message: string | undefined, headers: Record<string, string> | undefined);
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* 401 Authentication Error
|
|
54
|
+
*/
|
|
55
|
+
export declare class AuthenticationError extends APIError {
|
|
56
|
+
readonly status: 401;
|
|
57
|
+
constructor(status: number, error: any, message: string | undefined, headers: Record<string, string> | undefined);
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* 403 Permission Denied
|
|
61
|
+
*/
|
|
62
|
+
export declare class PermissionDeniedError extends APIError {
|
|
63
|
+
readonly status: 403;
|
|
64
|
+
constructor(status: number, error: any, message: string | undefined, headers: Record<string, string> | undefined);
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* 404 Not Found
|
|
68
|
+
*/
|
|
69
|
+
export declare class NotFoundError extends APIError {
|
|
70
|
+
readonly status: 404;
|
|
71
|
+
constructor(status: number, error: any, message: string | undefined, headers: Record<string, string> | undefined);
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* 409 Conflict
|
|
75
|
+
*/
|
|
76
|
+
export declare class ConflictError extends APIError {
|
|
77
|
+
readonly status: 409;
|
|
78
|
+
constructor(status: number, error: any, message: string | undefined, headers: Record<string, string> | undefined);
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* 422 Unprocessable Entity
|
|
82
|
+
*/
|
|
83
|
+
export declare class UnprocessableEntityError extends APIError {
|
|
84
|
+
readonly status: 422;
|
|
85
|
+
constructor(status: number, error: any, message: string | undefined, headers: Record<string, string> | undefined);
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* 429 Rate Limit Error
|
|
89
|
+
*/
|
|
90
|
+
export declare class RateLimitError extends APIError {
|
|
91
|
+
readonly status: 429;
|
|
92
|
+
constructor(status: number, error: any, message: string | undefined, headers: Record<string, string> | undefined);
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* 5xx Internal Server Error
|
|
96
|
+
*/
|
|
97
|
+
export declare class InternalServerError extends APIError {
|
|
98
|
+
constructor(status: number, error: any, message: string | undefined, headers: Record<string, string> | undefined);
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* Legacy SylixError for backwards compatibility
|
|
102
|
+
*/
|
|
103
|
+
export declare class SylixError extends Error {
|
|
104
|
+
code: string;
|
|
105
|
+
raw?: any | undefined;
|
|
106
|
+
constructor(code: string, message: string, raw?: any | undefined);
|
|
107
|
+
}
|
|
108
|
+
//# sourceMappingURL=errors.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;GAEG;AACH,qBAAa,QAAS,SAAQ,KAAK;IAC/B,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IACpC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,CAAC;IACrD,QAAQ,CAAC,KAAK,EAAE,GAAG,CAAC;IACpB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC;gBAG9B,MAAM,EAAE,MAAM,GAAG,SAAS,EAC1B,KAAK,EAAE,GAAG,EACV,OAAO,EAAE,MAAM,GAAG,SAAS,EAC3B,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS;IAY/C,MAAM,CAAC,QAAQ,CACX,MAAM,EAAE,MAAM,GAAG,SAAS,EAC1B,KAAK,EAAE,GAAG,EACV,OAAO,EAAE,MAAM,GAAG,SAAS,EAC3B,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,GAC5C,QAAQ;CAcd;AAED;;GAEG;AACH,qBAAa,kBAAmB,SAAQ,QAAQ;gBAChC,EAAE,KAAK,EAAE,OAAO,EAAE,GAAE;QAAE,KAAK,CAAC,EAAE,KAAK,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAO;CAI3E;AAED;;GAEG;AACH,qBAAa,yBAA0B,SAAQ,kBAAkB;gBACjD,EAAE,OAAO,EAAE,GAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAA;KAAO;CAIrD;AAED;;GAEG;AACH,qBAAa,iBAAkB,SAAQ,QAAQ;gBAC/B,EAAE,OAAO,EAAE,GAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAA;KAAO;CAIrD;AAED;;GAEG;AACH,qBAAa,eAAgB,SAAQ,QAAQ;IACzC,QAAQ,CAAC,MAAM,EAAE,GAAG,CAAO;gBAGvB,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,GAAG,EACV,OAAO,EAAE,MAAM,GAAG,SAAS,EAC3B,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS;CAKlD;AAED;;GAEG;AACH,qBAAa,mBAAoB,SAAQ,QAAQ;IAC7C,QAAQ,CAAC,MAAM,EAAE,GAAG,CAAO;gBAGvB,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,GAAG,EACV,OAAO,EAAE,MAAM,GAAG,SAAS,EAC3B,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS;CAKlD;AAED;;GAEG;AACH,qBAAa,qBAAsB,SAAQ,QAAQ;IAC/C,QAAQ,CAAC,MAAM,EAAE,GAAG,CAAO;gBAGvB,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,GAAG,EACV,OAAO,EAAE,MAAM,GAAG,SAAS,EAC3B,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS;CAKlD;AAED;;GAEG;AACH,qBAAa,aAAc,SAAQ,QAAQ;IACvC,QAAQ,CAAC,MAAM,EAAE,GAAG,CAAO;gBAGvB,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,GAAG,EACV,OAAO,EAAE,MAAM,GAAG,SAAS,EAC3B,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS;CAKlD;AAED;;GAEG;AACH,qBAAa,aAAc,SAAQ,QAAQ;IACvC,QAAQ,CAAC,MAAM,EAAE,GAAG,CAAO;gBAGvB,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,GAAG,EACV,OAAO,EAAE,MAAM,GAAG,SAAS,EAC3B,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS;CAKlD;AAED;;GAEG;AACH,qBAAa,wBAAyB,SAAQ,QAAQ;IAClD,QAAQ,CAAC,MAAM,EAAE,GAAG,CAAO;gBAGvB,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,GAAG,EACV,OAAO,EAAE,MAAM,GAAG,SAAS,EAC3B,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS;CAKlD;AAED;;GAEG;AACH,qBAAa,cAAe,SAAQ,QAAQ;IACxC,QAAQ,CAAC,MAAM,EAAE,GAAG,CAAO;gBAGvB,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,GAAG,EACV,OAAO,EAAE,MAAM,GAAG,SAAS,EAC3B,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS;CAKlD;AAED;;GAEG;AACH,qBAAa,mBAAoB,SAAQ,QAAQ;gBAEzC,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,GAAG,EACV,OAAO,EAAE,MAAM,GAAG,SAAS,EAC3B,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS;CAKlD;AAED;;GAEG;AACH,qBAAa,UAAW,SAAQ,KAAK;IAEtB,IAAI,EAAE,MAAM;IAEZ,GAAG,CAAC,EAAE,GAAG;gBAFT,IAAI,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,EACR,GAAG,CAAC,EAAE,GAAG,YAAA;CAKvB"}
|
package/dist/errors.js
ADDED
|
@@ -0,0 +1,159 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Sylix SDK Error Types
|
|
3
|
+
* Full OpenAI-compatible error hierarchy
|
|
4
|
+
*
|
|
5
|
+
* Owned by Sylix Technologies © 2026
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Base API Error
|
|
9
|
+
*/
|
|
10
|
+
export class APIError extends Error {
|
|
11
|
+
constructor(status, error, message, headers) {
|
|
12
|
+
super(message || 'An error occurred');
|
|
13
|
+
this.status = status;
|
|
14
|
+
this.headers = headers;
|
|
15
|
+
this.error = error;
|
|
16
|
+
this.code = error?.code || null;
|
|
17
|
+
this.param = error?.param || null;
|
|
18
|
+
this.type = error?.type;
|
|
19
|
+
this.name = 'APIError';
|
|
20
|
+
}
|
|
21
|
+
static generate(status, error, message, headers) {
|
|
22
|
+
if (!status)
|
|
23
|
+
return new APIConnectionError({ cause: error });
|
|
24
|
+
if (status === 400)
|
|
25
|
+
return new BadRequestError(status, error, message, headers);
|
|
26
|
+
if (status === 401)
|
|
27
|
+
return new AuthenticationError(status, error, message, headers);
|
|
28
|
+
if (status === 403)
|
|
29
|
+
return new PermissionDeniedError(status, error, message, headers);
|
|
30
|
+
if (status === 404)
|
|
31
|
+
return new NotFoundError(status, error, message, headers);
|
|
32
|
+
if (status === 409)
|
|
33
|
+
return new ConflictError(status, error, message, headers);
|
|
34
|
+
if (status === 422)
|
|
35
|
+
return new UnprocessableEntityError(status, error, message, headers);
|
|
36
|
+
if (status === 429)
|
|
37
|
+
return new RateLimitError(status, error, message, headers);
|
|
38
|
+
if (status >= 500)
|
|
39
|
+
return new InternalServerError(status, error, message, headers);
|
|
40
|
+
return new APIError(status, error, message, headers);
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Connection Error - Network issues
|
|
45
|
+
*/
|
|
46
|
+
export class APIConnectionError extends APIError {
|
|
47
|
+
constructor({ cause, message } = {}) {
|
|
48
|
+
super(undefined, cause, message || 'Connection error', undefined);
|
|
49
|
+
this.name = 'APIConnectionError';
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Connection Timeout Error
|
|
54
|
+
*/
|
|
55
|
+
export class APIConnectionTimeoutError extends APIConnectionError {
|
|
56
|
+
constructor({ message } = {}) {
|
|
57
|
+
super({ message: message || 'Request timed out' });
|
|
58
|
+
this.name = 'APIConnectionTimeoutError';
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* User Abort Error
|
|
63
|
+
*/
|
|
64
|
+
export class APIUserAbortError extends APIError {
|
|
65
|
+
constructor({ message } = {}) {
|
|
66
|
+
super(undefined, undefined, message || 'Request was aborted', undefined);
|
|
67
|
+
this.name = 'APIUserAbortError';
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* 400 Bad Request
|
|
72
|
+
*/
|
|
73
|
+
export class BadRequestError extends APIError {
|
|
74
|
+
constructor(status, error, message, headers) {
|
|
75
|
+
super(status, error, message, headers);
|
|
76
|
+
this.status = 400;
|
|
77
|
+
this.name = 'BadRequestError';
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* 401 Authentication Error
|
|
82
|
+
*/
|
|
83
|
+
export class AuthenticationError extends APIError {
|
|
84
|
+
constructor(status, error, message, headers) {
|
|
85
|
+
super(status, error, message, headers);
|
|
86
|
+
this.status = 401;
|
|
87
|
+
this.name = 'AuthenticationError';
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* 403 Permission Denied
|
|
92
|
+
*/
|
|
93
|
+
export class PermissionDeniedError extends APIError {
|
|
94
|
+
constructor(status, error, message, headers) {
|
|
95
|
+
super(status, error, message, headers);
|
|
96
|
+
this.status = 403;
|
|
97
|
+
this.name = 'PermissionDeniedError';
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* 404 Not Found
|
|
102
|
+
*/
|
|
103
|
+
export class NotFoundError extends APIError {
|
|
104
|
+
constructor(status, error, message, headers) {
|
|
105
|
+
super(status, error, message, headers);
|
|
106
|
+
this.status = 404;
|
|
107
|
+
this.name = 'NotFoundError';
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* 409 Conflict
|
|
112
|
+
*/
|
|
113
|
+
export class ConflictError extends APIError {
|
|
114
|
+
constructor(status, error, message, headers) {
|
|
115
|
+
super(status, error, message, headers);
|
|
116
|
+
this.status = 409;
|
|
117
|
+
this.name = 'ConflictError';
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
/**
|
|
121
|
+
* 422 Unprocessable Entity
|
|
122
|
+
*/
|
|
123
|
+
export class UnprocessableEntityError extends APIError {
|
|
124
|
+
constructor(status, error, message, headers) {
|
|
125
|
+
super(status, error, message, headers);
|
|
126
|
+
this.status = 422;
|
|
127
|
+
this.name = 'UnprocessableEntityError';
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* 429 Rate Limit Error
|
|
132
|
+
*/
|
|
133
|
+
export class RateLimitError extends APIError {
|
|
134
|
+
constructor(status, error, message, headers) {
|
|
135
|
+
super(status, error, message, headers);
|
|
136
|
+
this.status = 429;
|
|
137
|
+
this.name = 'RateLimitError';
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
/**
|
|
141
|
+
* 5xx Internal Server Error
|
|
142
|
+
*/
|
|
143
|
+
export class InternalServerError extends APIError {
|
|
144
|
+
constructor(status, error, message, headers) {
|
|
145
|
+
super(status, error, message, headers);
|
|
146
|
+
this.name = 'InternalServerError';
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
/**
|
|
150
|
+
* Legacy SylixError for backwards compatibility
|
|
151
|
+
*/
|
|
152
|
+
export class SylixError extends Error {
|
|
153
|
+
constructor(code, message, raw) {
|
|
154
|
+
super(message);
|
|
155
|
+
this.code = code;
|
|
156
|
+
this.raw = raw;
|
|
157
|
+
this.name = "SylixError";
|
|
158
|
+
}
|
|
159
|
+
}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { SylixClient } from "./client.js";
|
|
2
|
-
import { ChatRequest, ChatResponse, VisionRequest, VisionResponse, CodeRequest, CodeResponse, ReasonRequest, ReasonResponse, ModelInfo,
|
|
1
|
+
import { SylixClient, SylixConfig } from "./client.js";
|
|
2
|
+
import { ChatRequest, ChatResponse, VisionRequest, VisionResponse, CodeRequest, CodeResponse, ReasonRequest, ReasonResponse, ModelInfo, CharlesModel, CharlesModelsListResponse, CharlesEmbeddingRequest, CharlesEmbeddingResponse, CharlesChatRequest, ChatStreamChunk } from "./types.js";
|
|
3
3
|
import { readFile, fileToBase64 } from "./utils.js";
|
|
4
4
|
/**
|
|
5
5
|
* Chat completions namespace
|
|
@@ -220,7 +220,8 @@ export declare class Sylix {
|
|
|
220
220
|
*/
|
|
221
221
|
getModel(id: string): ModelInfo | undefined;
|
|
222
222
|
}
|
|
223
|
-
export { ChatRequest, ChatResponse, VisionRequest, VisionResponse, CodeRequest, CodeResponse, ReasonRequest, ReasonResponse, ModelInfo,
|
|
224
|
-
export type { ChatMessage } from "./types.js";
|
|
223
|
+
export { ChatRequest, ChatResponse, VisionRequest, VisionResponse, CodeRequest, CodeResponse, ReasonRequest, ReasonResponse, ModelInfo, CHARLES_MODELS, CHARLES_MODEL_IDS, CharlesModel, CharlesModelsListResponse, CharlesEmbeddingRequest, CharlesEmbeddingResponse, CharlesChatRequest, } from "./types.js";
|
|
224
|
+
export type { ChatMessage, SylixConfig } from "./types.js";
|
|
225
|
+
export { APIError, APIConnectionError, APIConnectionTimeoutError, APIUserAbortError, BadRequestError, AuthenticationError, PermissionDeniedError, NotFoundError, ConflictError, UnprocessableEntityError, RateLimitError, InternalServerError, SylixError, } from "./errors.js";
|
|
225
226
|
export { readFile, fileToBase64 };
|
|
226
227
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { SylixClient } from "./client.js";
|
|
2
|
-
import { SylixError, } from "./
|
|
2
|
+
import { SylixError, } from "./errors.js";
|
|
3
3
|
import { readFile, fileToBase64 } from "./utils.js";
|
|
4
4
|
/**
|
|
5
5
|
* Chat completions namespace
|
|
@@ -430,7 +430,9 @@ export class Sylix {
|
|
|
430
430
|
return this.models().find((m) => m.id === id || m.displayName === id);
|
|
431
431
|
}
|
|
432
432
|
}
|
|
433
|
-
//
|
|
434
|
-
export {
|
|
433
|
+
// Type exports
|
|
434
|
+
export { CHARLES_MODELS, CHARLES_MODEL_IDS, } from "./types.js";
|
|
435
|
+
// Error exports (OpenAI-compatible)
|
|
436
|
+
export { APIError, APIConnectionError, APIConnectionTimeoutError, APIUserAbortError, BadRequestError, AuthenticationError, PermissionDeniedError, NotFoundError, ConflictError, UnprocessableEntityError, RateLimitError, InternalServerError, SylixError, } from "./errors.js";
|
|
435
437
|
// Utilities
|
|
436
438
|
export { readFile, fileToBase64 };
|
package/dist/types.d.ts
CHANGED
|
@@ -1,13 +1,10 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Sylix SDK Type Definitions
|
|
3
|
-
* OpenAI-
|
|
3
|
+
* OpenAI-compatible types for Charles models
|
|
4
|
+
*
|
|
5
|
+
* Owned by Sylix Technologies © 2026
|
|
4
6
|
*/
|
|
5
|
-
export
|
|
6
|
-
apiKey: string;
|
|
7
|
-
baseURL?: string;
|
|
8
|
-
timeout?: number;
|
|
9
|
-
headers?: Record<string, string>;
|
|
10
|
-
}
|
|
7
|
+
export type { SylixConfig } from "./client.js";
|
|
11
8
|
export interface ChatMessage {
|
|
12
9
|
role: "system" | "user" | "assistant";
|
|
13
10
|
content: string;
|
|
@@ -119,11 +116,7 @@ export interface SylixResponse<T> {
|
|
|
119
116
|
status: number;
|
|
120
117
|
data: T;
|
|
121
118
|
}
|
|
122
|
-
export
|
|
123
|
-
code: string;
|
|
124
|
-
raw?: any | undefined;
|
|
125
|
-
constructor(code: string, message: string, raw?: any | undefined);
|
|
126
|
-
}
|
|
119
|
+
export { SylixError } from "./errors.js";
|
|
127
120
|
export declare const CHARLES_MODELS: {
|
|
128
121
|
readonly MINI: "charles-mini:latest";
|
|
129
122
|
readonly S1: "charles-s1:latest";
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/dist/types.js
CHANGED
|
@@ -1,15 +1,11 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Sylix SDK Type Definitions
|
|
3
|
-
* OpenAI-
|
|
3
|
+
* OpenAI-compatible types for Charles models
|
|
4
|
+
*
|
|
5
|
+
* Owned by Sylix Technologies © 2026
|
|
4
6
|
*/
|
|
5
|
-
export
|
|
6
|
-
|
|
7
|
-
super(message);
|
|
8
|
-
this.code = code;
|
|
9
|
-
this.raw = raw;
|
|
10
|
-
this.name = "SylixError";
|
|
11
|
-
}
|
|
12
|
-
}
|
|
7
|
+
// Re-export errors from errors.ts
|
|
8
|
+
export { SylixError } from "./errors.js";
|
|
13
9
|
export const CHARLES_MODELS = {
|
|
14
10
|
MINI: "charles-mini:latest",
|
|
15
11
|
S1: "charles-s1:latest",
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "sylix",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "4.0.0",
|
|
4
4
|
"description": "The official Sylix AI SDK for TypeScript and JavaScript. Build intelligent applications with Charles v3 models featuring multi-model consensus, intelligent routing, vision understanding, deep reasoning, and OpenAI-compatible APIs. Enterprise-grade AI infrastructure for developers.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|