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 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
- import { SylixConfig } from "./types.js";
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
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,OAAc,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAiC,MAAM,YAAY,CAAC;AAExE,qBAAa,WAAW;IACtB,OAAO,CAAC,MAAM,CAAgB;IAC9B,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,OAAO,CAAS;gBAEZ,MAAM,EAAE,WAAW;IA+C/B,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAWlC,SAAS,IAAI,aAAa;IAI1B,UAAU,IAAI,MAAM;IAIpB,SAAS,IAAI,MAAM;CAGpB"}
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 { SylixError, CHARLES_MODEL_IDS } from "./types.js";
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 SylixError("MISSING_API_KEY", "apiKey is required. Get your API key from https://sylixide.com");
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.headers || {}),
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: config.timeout || 30000,
37
+ timeout: this.timeout,
18
38
  headers,
39
+ params: config.defaultQuery,
19
40
  });
20
- // Add retry interceptor for 5xx errors
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
- // Retry up to 3 times for 5xx errors
26
- config.retryCount = config.retryCount || 0;
27
- if (error.response?.status >= 500 && config.retryCount < 3) {
28
- config.retryCount++;
29
- // Exponential backoff: 1s, 2s, 4s
30
- const delay = Math.pow(2, config.retryCount - 1) * 1000;
31
- await new Promise((resolve) => setTimeout(resolve, delay));
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
- throw new SylixError("INVALID_MODEL", `Model "${model}" is not available in v1.0.0. Available models: ${CHARLES_MODEL_IDS.join(", ")}. To use custom models, see https://github.com/sylix-ide/sylix-sdk#custom-models`);
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";
@@ -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, SylixConfig, CharlesModel, CharlesModelsListResponse, CharlesEmbeddingRequest, CharlesEmbeddingResponse, CharlesChatRequest, ChatStreamChunk } from "./types.js";
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, SylixError, CHARLES_MODELS, CHARLES_MODEL_IDS, CharlesModel, CharlesModelsListResponse, CharlesEmbeddingRequest, CharlesEmbeddingResponse, CharlesChatRequest, } from "./types.js";
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
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
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 "./types.js";
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
- // Exports
434
- export { SylixError, CHARLES_MODELS, CHARLES_MODEL_IDS, } from "./types.js";
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-style types for Charles models
3
+ * OpenAI-compatible types for Charles models
4
+ *
5
+ * Owned by Sylix Technologies © 2026
4
6
  */
5
- export interface SylixConfig {
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 declare class SylixError extends Error {
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";
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
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-style types for Charles models
3
+ * OpenAI-compatible types for Charles models
4
+ *
5
+ * Owned by Sylix Technologies © 2026
4
6
  */
5
- export class SylixError extends Error {
6
- constructor(code, message, raw) {
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.2.0",
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",