@redonvn/event-ws-cliproxyapi-sdk 1.0.2 → 1.0.4
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/claude/client.d.ts +1 -1
- package/dist/claude/index.d.ts +1 -1
- package/dist/cliproxy/client.d.ts +1 -1
- package/dist/cliproxy/index.d.ts +1 -1
- package/dist/gemini/client.d.ts +1 -1
- package/dist/gemini/index.d.ts +1 -1
- package/dist/index.d.ts +3 -3
- package/dist/index.js +3 -3
- package/dist/management/client.d.ts +2 -1
- package/dist/management/client.js +4 -1
- package/dist/management/index.d.ts +1 -1
- package/dist/openai/client.d.ts +1 -1
- package/dist/openai/index.d.ts +1 -1
- package/dist/shared/errors.d.ts +4 -4
- package/dist/shared/errors.js +15 -9
- package/dist/shared/http.d.ts +3 -1
- package/dist/shared/http.js +18 -12
- package/dist/shared/index.d.ts +1 -1
- package/dist/shared/index.js +1 -1
- package/dist/shared/types.d.ts +19 -8
- package/dist/ws/client.d.ts +1 -0
- package/dist/ws/client.js +15 -13
- package/dist/ws/codec.js +1 -1
- package/dist/ws/index.d.ts +1 -1
- package/dist/ws/index.js +1 -1
- package/dist/ws/types.d.ts +4 -4
- package/package.json +1 -1
package/dist/claude/client.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import type { ClaudeMessagesRequest, ModelListResponse } from '../shared/types.js';
|
|
2
1
|
import type { RequestOptions } from '../shared/http.js';
|
|
3
2
|
import { BaseHttpClient } from '../shared/http.js';
|
|
3
|
+
import type { ClaudeMessagesRequest, ModelListResponse } from '../shared/types.js';
|
|
4
4
|
export declare class ClaudeClient extends BaseHttpClient {
|
|
5
5
|
getModels(options?: RequestOptions): Promise<ModelListResponse>;
|
|
6
6
|
postMessages(body: ClaudeMessagesRequest, options?: RequestOptions): Promise<Response>;
|
package/dist/claude/index.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
+
export type { ClaudeCompatibleRequest, ClaudeCompatibleResponse, ClaudeContentBlock, ClaudeContentImage, ClaudeContentText, ClaudeMessage, ClaudeMessageRole, ClaudeMessagesRequest, ClaudeMessagesResponse, ClaudeStreamEvent, ClaudeStreamEventType, ClaudeUsage } from '../shared/types.js';
|
|
1
2
|
export { ClaudeClient } from './client.js';
|
|
2
|
-
export type { ClaudeMessageRole, ClaudeContentText, ClaudeContentImage, ClaudeContentBlock, ClaudeMessage, ClaudeMessagesRequest, ClaudeUsage, ClaudeMessagesResponse, ClaudeStreamEventType, ClaudeStreamEvent, ClaudeCompatibleRequest, ClaudeCompatibleResponse } from '../shared/types.js';
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import type { CliproxyAuthsQuery, CliproxyAuthsResponse, CliproxyChatRequest, CliproxyModelsQuery, CliproxyModelsResponse, KeepAliveResponse, RootResponse } from '../shared/types.js';
|
|
2
1
|
import type { RequestOptions } from '../shared/http.js';
|
|
3
2
|
import { BaseHttpClient } from '../shared/http.js';
|
|
3
|
+
import type { CliproxyAuthsQuery, CliproxyAuthsResponse, CliproxyChatRequest, CliproxyModelsQuery, CliproxyModelsResponse, KeepAliveResponse, RootResponse } from '../shared/types.js';
|
|
4
4
|
export declare class CliproxyClient extends BaseHttpClient {
|
|
5
5
|
getRoot(): Promise<RootResponse>;
|
|
6
6
|
getManagementHtml(): Promise<Response>;
|
package/dist/cliproxy/index.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
+
export type { CliproxyAuthEntry, CliproxyAuthModelEntry, CliproxyAuthsQuery, CliproxyAuthsResponse, CliproxyChatRequest, CliproxyModelsQuery, CliproxyModelsResponse } from '../shared/types.js';
|
|
1
2
|
export { CliproxyClient } from './client.js';
|
|
2
|
-
export type { CliproxyChatRequest, CliproxyAuthModelEntry, CliproxyAuthEntry, CliproxyAuthsResponse, CliproxyModelsResponse, CliproxyAuthsQuery, CliproxyModelsQuery } from '../shared/types.js';
|
package/dist/gemini/client.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import type { GeminiCompatibleRequest } from '../shared/types.js';
|
|
2
1
|
import type { RequestOptions } from '../shared/http.js';
|
|
3
2
|
import { BaseHttpClient } from '../shared/http.js';
|
|
3
|
+
import type { GeminiCompatibleRequest } from '../shared/types.js';
|
|
4
4
|
export declare class GeminiClient extends BaseHttpClient {
|
|
5
5
|
getModels(options?: RequestOptions): Promise<Response>;
|
|
6
6
|
postModelsAction(action: string, body: GeminiCompatibleRequest, options?: RequestOptions): Promise<Response>;
|
package/dist/gemini/index.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
+
export type { GeminiCandidate, GeminiCompatibleRequest, GeminiCompatibleResponse, GeminiContent, GeminiFunctionCall, GeminiFunctionResponse, GeminiGenerateContentRequest, GeminiGenerateContentResponse, GeminiGenerationConfig, GeminiInlineData, GeminiPart, GeminiPromptFeedback, GeminiStreamChunk, GeminiToolDeclaration } from '../shared/types.js';
|
|
1
2
|
export { GeminiClient } from './client.js';
|
|
2
|
-
export type { GeminiInlineData, GeminiFunctionCall, GeminiFunctionResponse, GeminiPart, GeminiContent, GeminiGenerationConfig, GeminiToolDeclaration, GeminiGenerateContentRequest, GeminiCandidate, GeminiPromptFeedback, GeminiGenerateContentResponse, GeminiStreamChunk, GeminiCompatibleRequest, GeminiCompatibleResponse } from '../shared/types.js';
|
package/dist/index.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
export * from './ws/index.js';
|
|
2
|
-
export * from './cliproxy/index.js';
|
|
3
|
-
export * from './openai/index.js';
|
|
4
1
|
export * from './claude/index.js';
|
|
2
|
+
export * from './cliproxy/index.js';
|
|
5
3
|
export * from './gemini/index.js';
|
|
6
4
|
export * from './management/index.js';
|
|
5
|
+
export * from './openai/index.js';
|
|
7
6
|
export * from './shared/index.js';
|
|
7
|
+
export * from './ws/index.js';
|
package/dist/index.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
export * from './ws/index.js';
|
|
2
|
-
export * from './cliproxy/index.js';
|
|
3
|
-
export * from './openai/index.js';
|
|
4
1
|
export * from './claude/index.js';
|
|
2
|
+
export * from './cliproxy/index.js';
|
|
5
3
|
export * from './gemini/index.js';
|
|
6
4
|
export * from './management/index.js';
|
|
5
|
+
export * from './openai/index.js';
|
|
7
6
|
export * from './shared/index.js';
|
|
7
|
+
export * from './ws/index.js';
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type { AmpModelMapping, AmpModelMappingsPatch, AmpUpstreamAPIKeyEntry, AmpUpstreamAPIKeysPatch, ApiCallRequest, ApiCallResponse, AuthFileDeleteResponse, AuthFileListQuery, AuthFileListResponse, AuthFileModelsQuery, AuthFileModelsResponse, AuthFileStatusRequest, AuthFileStatusResponse, AuthStatusResponse, DesktopKeysResponse, ManagementApiKeysResponse, ClaudeKey, ClaudeKeyPatch, CodexKey, CodexKeyPatch, Config, DeleteLogsResponse, ErrorLogFilesResponse, GeminiKey, GeminiKeyPatch, KeyedValueResponse, LogLinesResponse, OAuthCallbackRequest, OAuthCallbackResponse, OAuthExcludedModelsPatch, OAuthModelAlias, OAuthModelAliasPatch, OAuthStartResponse, OpenAICompatibility, OpenAICompatPatch, PatchByIndexOrMatch, PatchStringListRequest, UsageExportResponse, UsageGetResponse, UsageImportRequest, UsageImportResponse, VertexCompatKey, VertexCompatPatch } from '../shared/types.js';
|
|
2
1
|
import { BaseHttpClient } from '../shared/http.js';
|
|
2
|
+
import type { AmpModelMapping, AmpModelMappingsPatch, AmpUpstreamAPIKeyEntry, AmpUpstreamAPIKeysPatch, ApiCallRequest, ApiCallResponse, AuthFileDeleteResponse, AuthFileListQuery, AuthFileListResponse, AuthFileModelsQuery, AuthFileModelsResponse, AuthFileStatusRequest, AuthFileStatusResponse, AuthStatusResponse, ClaudeKey, ClaudeKeyPatch, CodexKey, CodexKeyPatch, Config, DeleteLogsResponse, DesktopKeysResponse, ErrorLogFilesResponse, GeminiKey, GeminiKeyPatch, KeyedValueResponse, LogLinesResponse, ManagementApiKeysResponse, OAuthCallbackRequest, OAuthCallbackResponse, OAuthExcludedModelsPatch, OAuthModelAlias, OAuthModelAliasPatch, OAuthStartResponse, OpenAICompatibility, OpenAICompatPatch, PatchByIndexOrMatch, PatchStringListRequest, UpdateConnectionSettingsRequest, UsageExportResponse, UsageGetResponse, UsageImportRequest, UsageImportResponse, VertexCompatKey, VertexCompatPatch } from '../shared/types.js';
|
|
3
3
|
export declare class ManagementClient extends BaseHttpClient {
|
|
4
4
|
getDesktopKeys(): Promise<DesktopKeysResponse>;
|
|
5
5
|
getManagementApiKeys(): Promise<ManagementApiKeysResponse>;
|
|
@@ -9,6 +9,7 @@ export declare class ManagementClient extends BaseHttpClient {
|
|
|
9
9
|
getConfig(): Promise<Config>;
|
|
10
10
|
getConfigYaml(): Promise<string>;
|
|
11
11
|
putConfigYaml(body: string): Promise<KeyedValueResponse<"status", "ok">>;
|
|
12
|
+
putConnectionSettings(body: UpdateConnectionSettingsRequest): Promise<KeyedValueResponse<"status", "ok">>;
|
|
12
13
|
getLatestVersion(): Promise<KeyedValueResponse<"latest-version", string>>;
|
|
13
14
|
getDebug(): Promise<KeyedValueResponse<"debug", boolean>>;
|
|
14
15
|
putDebug(body: KeyedValueResponse<'value', boolean>): Promise<KeyedValueResponse<"status", "ok">>;
|
|
@@ -42,6 +42,9 @@ export class ManagementClient extends BaseHttpClient {
|
|
|
42
42
|
return text ? JSON.parse(text) : { status: 'ok' };
|
|
43
43
|
});
|
|
44
44
|
}
|
|
45
|
+
putConnectionSettings(body) {
|
|
46
|
+
return this.requestJson('PUT', '/v0/management/connection-settings', body, undefined, 'management');
|
|
47
|
+
}
|
|
45
48
|
getLatestVersion() {
|
|
46
49
|
return this.requestJson('GET', '/v0/management/latest-version', undefined, undefined, 'management');
|
|
47
50
|
}
|
|
@@ -361,7 +364,7 @@ export class ManagementClient extends BaseHttpClient {
|
|
|
361
364
|
return this.requestJson('GET', '/v0/management/auth-files', undefined, { query: query }, 'management');
|
|
362
365
|
}
|
|
363
366
|
getAuthFileModels(query) {
|
|
364
|
-
return this.requestJson('GET', '/v0/management/auth-files/models', undefined, { query: query }, 'management');
|
|
367
|
+
return this.requestJson('GET', '/v0/management/auth-files/models', undefined, { query: { name: query.name } }, 'management');
|
|
365
368
|
}
|
|
366
369
|
getStaticModelDefinitions(channel) {
|
|
367
370
|
return this.requestRaw('GET', `/v0/management/model-definitions/${encodeURIComponent(channel)}`, undefined, undefined, 'management');
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
+
export type { AccessConfig, AccessProvider, AmpCodeConfig, AmpModelMapping, AmpModelMappingsPatch, AmpStringListPatch, AmpUpstreamAPIKeyEntry, AmpUpstreamAPIKeysPatch, ApiCallRequest, ApiCallResponse, AuthFileDeleteResponse, AuthFileDownloadRequest, AuthFileEntry, AuthFileListQuery, AuthFileListResponse, AuthFileModelsQuery, AuthFileModelsResponse, AuthFileStatusRequest, AuthFileStatusResponse, AuthFileUploadRequest, AuthFileUploadResponse, AuthStatusResponse, ClaudeKey, ClaudeKeyPatch, ClaudeModel, CloakConfig, CodexKey, CodexKeyPatch, CodexModel, Config, DeleteLogsResponse, DesktopKeysResponse, ErrorLogFileInfo, ErrorLogFilesResponse, ErrorResponse, GeminiKey, GeminiKeyPatch, GeminiModel, KeepAliveResponse, LogLinesResponse, ManagementApiKeysResponse, ModelInfo, ModelListResponse, ModelThinkingSupport, OAuthCallbackRequest, OAuthCallbackResponse, OAuthExcludedModelsPatch, OAuthModelAlias, OAuthModelAliasPatch, OAuthStartResponse, OpenAICompatibility, OpenAICompatibilityAPIKey, OpenAICompatibilityModel, OpenAICompatPatch, PatchByIndexOrMatch, PatchStringListRequest, PayloadConfig, PayloadFilterRule, PayloadModelRule, PayloadRule, PprofConfig, QuotaExceededConfig, RemoteManagementConfig, RootResponse, RoutingConfig, SDKConfig, StatusResponse, StreamingConfig, TLSConfig, UpdateConnectionSettingsRequest, UsageApiSnapshot, UsageExportResponse, UsageGetResponse, UsageImportRequest, UsageImportResponse, UsageModelSnapshot, UsageRequestDetail, UsageStatisticsSnapshot, UsageTokenStats, VertexCompatKey, VertexCompatModel, VertexCompatPatch, VertexImportRequest } from '../shared/types.js';
|
|
1
2
|
export { ManagementClient } from './client.js';
|
|
2
|
-
export type { SDKConfig, StreamingConfig, AccessConfig, AccessProvider, TLSConfig, PprofConfig, RemoteManagementConfig, QuotaExceededConfig, RoutingConfig, OAuthModelAlias, AmpModelMapping, AmpUpstreamAPIKeyEntry, AmpCodeConfig, PayloadConfig, PayloadFilterRule, PayloadRule, PayloadModelRule, CloakConfig, ClaudeModel, ClaudeKey, CodexModel, CodexKey, GeminiModel, GeminiKey, OpenAICompatibilityAPIKey, OpenAICompatibilityModel, OpenAICompatibility, VertexCompatModel, VertexCompatKey, Config, UsageTokenStats, UsageRequestDetail, UsageModelSnapshot, UsageApiSnapshot, UsageStatisticsSnapshot, UsageGetResponse, UsageExportResponse, UsageImportRequest, UsageImportResponse, ApiCallRequest, ApiCallResponse, ErrorResponse, StatusResponse, LogLinesResponse, DeleteLogsResponse, ErrorLogFileInfo, ErrorLogFilesResponse, AuthFileEntry, AuthFileListResponse, AuthFileModelsResponse, AuthFileUploadResponse, AuthFileDeleteResponse, AuthFileStatusRequest, AuthFileStatusResponse, OAuthCallbackRequest, OAuthCallbackResponse, OAuthStartResponse, AuthStatusResponse, AuthFileDownloadRequest, AuthFileListQuery, AuthFileModelsQuery, PatchStringListRequest, PatchByIndexOrMatch, GeminiKeyPatch, ClaudeKeyPatch, CodexKeyPatch, OpenAICompatPatch, VertexCompatPatch, OAuthExcludedModelsPatch, OAuthModelAliasPatch, AmpModelMappingsPatch, AmpUpstreamAPIKeysPatch, AmpStringListPatch, AuthFileUploadRequest, VertexImportRequest, RootResponse, KeepAliveResponse, DesktopKeysResponse, ManagementApiKeysResponse, ModelThinkingSupport, ModelInfo, ModelListResponse } from '../shared/types.js';
|
package/dist/openai/client.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import type { ModelListResponse, OpenAIChatCompletionRequest, OpenAICompletionRequest, OpenAIResponsesRequest } from '../shared/types.js';
|
|
2
1
|
import type { RequestOptions } from '../shared/http.js';
|
|
3
2
|
import { BaseHttpClient } from '../shared/http.js';
|
|
3
|
+
import type { ModelListResponse, OpenAIChatCompletionRequest, OpenAICompletionRequest, OpenAIResponsesRequest } from '../shared/types.js';
|
|
4
4
|
export declare class OpenAIClient extends BaseHttpClient {
|
|
5
5
|
getModels(options?: RequestOptions): Promise<ModelListResponse>;
|
|
6
6
|
postChatCompletions(body: OpenAIChatCompletionRequest, options?: RequestOptions): Promise<Response>;
|
package/dist/openai/index.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
+
export type { OpenAIChatCompletionChoice, OpenAIChatCompletionChunk, OpenAIChatCompletionChunkChoice, OpenAIChatCompletionRequest, OpenAIChatCompletionResponse, OpenAIChatMessage, OpenAIChatMessageContentImageUrl, OpenAIChatMessageContentPart, OpenAIChatMessageContentText, OpenAIChatRole, OpenAICompatibleRequest, OpenAICompatibleResponse, OpenAICompletionChoice, OpenAICompletionChunk, OpenAICompletionRequest, OpenAICompletionResponse, OpenAIErrorDetail, OpenAIErrorResponse, OpenAIResponsesChunk, OpenAIResponsesInputContent, OpenAIResponsesInputImage, OpenAIResponsesInputMessage, OpenAIResponsesInputText, OpenAIResponsesOutput, OpenAIResponsesRequest, OpenAIResponsesResponse } from '../shared/types.js';
|
|
1
2
|
export { OpenAIClient } from './client.js';
|
|
2
|
-
export type { OpenAIChatRole, OpenAIChatMessageContentText, OpenAIChatMessageContentImageUrl, OpenAIChatMessageContentPart, OpenAIChatMessage, OpenAIChatCompletionRequest, OpenAICompletionRequest, OpenAIResponsesInputText, OpenAIResponsesInputImage, OpenAIResponsesInputContent, OpenAIResponsesInputMessage, OpenAIResponsesRequest, OpenAIChatCompletionChoice, OpenAIChatCompletionResponse, OpenAIChatCompletionChunkChoice, OpenAIChatCompletionChunk, OpenAICompletionChoice, OpenAICompletionResponse, OpenAICompletionChunk, OpenAIResponsesOutput, OpenAIResponsesResponse, OpenAIResponsesChunk, OpenAICompatibleRequest, OpenAICompatibleResponse, OpenAIErrorDetail, OpenAIErrorResponse } from '../shared/types.js';
|
package/dist/shared/errors.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { ErrorResponse, JsonObject, JsonValue, OpenAIErrorResponse, StatusResponse } from './types.js';
|
|
2
2
|
export type ManagementErrorResponse = ErrorResponse;
|
|
3
3
|
export type ApiErrorPayload = OpenAIErrorResponse | ManagementErrorResponse | StatusResponse | JsonObject | {
|
|
4
4
|
error: string;
|
|
@@ -8,6 +8,6 @@ export declare class APIError extends Error {
|
|
|
8
8
|
readonly payload?: ApiErrorPayload;
|
|
9
9
|
constructor(message: string, status: number, payload?: ApiErrorPayload);
|
|
10
10
|
}
|
|
11
|
-
export declare function isOpenAIError(payload:
|
|
12
|
-
export declare function isStatusError(payload:
|
|
13
|
-
export declare function isManagementError(payload:
|
|
11
|
+
export declare function isOpenAIError(payload: JsonValue | undefined): payload is OpenAIErrorResponse;
|
|
12
|
+
export declare function isStatusError(payload: JsonValue | undefined): payload is StatusResponse;
|
|
13
|
+
export declare function isManagementError(payload: JsonValue | undefined): payload is ManagementErrorResponse;
|
package/dist/shared/errors.js
CHANGED
|
@@ -6,21 +6,27 @@ export class APIError extends Error {
|
|
|
6
6
|
this.payload = payload;
|
|
7
7
|
}
|
|
8
8
|
}
|
|
9
|
+
function isJsonObject(payload) {
|
|
10
|
+
return !!payload && typeof payload === 'object' && !Array.isArray(payload);
|
|
11
|
+
}
|
|
9
12
|
export function isOpenAIError(payload) {
|
|
10
|
-
if (!payload
|
|
13
|
+
if (!isJsonObject(payload))
|
|
14
|
+
return false;
|
|
15
|
+
const error = payload.error;
|
|
16
|
+
if (!error || typeof error !== 'object' || Array.isArray(error))
|
|
11
17
|
return false;
|
|
12
|
-
const
|
|
13
|
-
|
|
18
|
+
const message = error.message;
|
|
19
|
+
const type = error.type;
|
|
20
|
+
return typeof message === 'string' && typeof type === 'string';
|
|
14
21
|
}
|
|
15
22
|
export function isStatusError(payload) {
|
|
16
|
-
if (!payload
|
|
23
|
+
if (!isJsonObject(payload))
|
|
17
24
|
return false;
|
|
18
|
-
const
|
|
19
|
-
return typeof
|
|
25
|
+
const status = payload.status;
|
|
26
|
+
return typeof status === 'string' && (status === 'error' || status === 'wait' || status === 'ok');
|
|
20
27
|
}
|
|
21
28
|
export function isManagementError(payload) {
|
|
22
|
-
if (!payload
|
|
29
|
+
if (!isJsonObject(payload))
|
|
23
30
|
return false;
|
|
24
|
-
|
|
25
|
-
return typeof obj.error === 'string';
|
|
31
|
+
return typeof payload.error === 'string';
|
|
26
32
|
}
|
package/dist/shared/http.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { JsonValue } from './types.js';
|
|
1
2
|
export interface HttpClientOptions {
|
|
2
3
|
baseUrl: string;
|
|
3
4
|
accessKey?: string;
|
|
@@ -21,9 +22,10 @@ export declare class BaseHttpClient {
|
|
|
21
22
|
setLocalPassword(value?: string): void;
|
|
22
23
|
getWebsocketUrl(path?: string): string;
|
|
23
24
|
protected buildUrl(path: string, query?: Record<string, string | number | boolean | undefined>): string;
|
|
24
|
-
protected requestJson<T>(method: string, path: string, body?:
|
|
25
|
+
protected requestJson<T>(method: string, path: string, body?: JsonValue, options?: RequestOptions, auth?: 'access' | 'management' | 'local'): Promise<T>;
|
|
25
26
|
protected requestText(method: string, path: string, body?: string, options?: RequestOptions, auth?: 'access' | 'management' | 'local'): Promise<string>;
|
|
26
27
|
protected requestRaw(method: string, path: string, body?: BodyInit, options?: RequestOptions, auth?: 'access' | 'management' | 'local'): Promise<Response>;
|
|
27
28
|
protected applyAuth(headers: Record<string, string>, auth?: 'access' | 'management' | 'local'): void;
|
|
28
29
|
protected throwApiError(res: Response): Promise<never>;
|
|
30
|
+
private extractErrorMessage;
|
|
29
31
|
}
|
package/dist/shared/http.js
CHANGED
|
@@ -108,18 +108,24 @@ export class BaseHttpClient {
|
|
|
108
108
|
catch {
|
|
109
109
|
payload = { error: text };
|
|
110
110
|
}
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
111
|
+
message = this.extractErrorMessage(payload, message);
|
|
112
|
+
}
|
|
113
|
+
throw new APIError(message, res.status, payload ?? { error: message });
|
|
114
|
+
}
|
|
115
|
+
extractErrorMessage(payload, fallback) {
|
|
116
|
+
if (!payload || typeof payload !== 'object' || Array.isArray(payload))
|
|
117
|
+
return fallback;
|
|
118
|
+
const obj = payload;
|
|
119
|
+
const error = obj.error;
|
|
120
|
+
if (typeof error === 'string')
|
|
121
|
+
return error;
|
|
122
|
+
if (error && typeof error === 'object' && !Array.isArray(error)) {
|
|
123
|
+
const nestedMessage = error.message;
|
|
124
|
+
if (typeof nestedMessage === 'string')
|
|
125
|
+
return nestedMessage;
|
|
122
126
|
}
|
|
123
|
-
|
|
127
|
+
if (typeof obj.message === 'string')
|
|
128
|
+
return obj.message;
|
|
129
|
+
return fallback;
|
|
124
130
|
}
|
|
125
131
|
}
|
package/dist/shared/index.d.ts
CHANGED
package/dist/shared/index.js
CHANGED
package/dist/shared/types.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
export type
|
|
2
|
-
export type
|
|
3
|
-
export type
|
|
1
|
+
export type JsonPrimitive = string | number | boolean | null;
|
|
2
|
+
export type JsonValue = JsonPrimitive | object | JsonArray | undefined;
|
|
3
|
+
export type JsonObject = Record<string, JsonValue>;
|
|
4
|
+
export type JsonArray = JsonValue[];
|
|
4
5
|
export type PrimaryOpenAIChatRequest = OpenAIChatCompletionRequest;
|
|
5
6
|
export type PrimaryOpenAICompletionRequest = OpenAICompletionRequest;
|
|
6
7
|
export type PrimaryOpenAIResponsesRequest = OpenAIResponsesRequest;
|
|
@@ -110,7 +111,7 @@ export interface AccessProvider {
|
|
|
110
111
|
type: string;
|
|
111
112
|
sdk?: string;
|
|
112
113
|
'api-keys'?: string[];
|
|
113
|
-
config?:
|
|
114
|
+
config?: JsonObject;
|
|
114
115
|
}
|
|
115
116
|
export interface TLSConfig {
|
|
116
117
|
enable: boolean;
|
|
@@ -169,7 +170,7 @@ export interface PayloadFilterRule {
|
|
|
169
170
|
}
|
|
170
171
|
export interface PayloadRule {
|
|
171
172
|
models: PayloadModelRule[];
|
|
172
|
-
params:
|
|
173
|
+
params: JsonObject;
|
|
173
174
|
}
|
|
174
175
|
export interface PayloadModelRule {
|
|
175
176
|
name: string;
|
|
@@ -332,6 +333,16 @@ export interface UsageImportResponse {
|
|
|
332
333
|
total_requests: number;
|
|
333
334
|
failed_requests: number;
|
|
334
335
|
}
|
|
336
|
+
export interface UpdateConnectionSettingsRequest {
|
|
337
|
+
'base-url'?: string;
|
|
338
|
+
baseUrl?: string;
|
|
339
|
+
'access-api-key'?: string;
|
|
340
|
+
accessApiKey?: string;
|
|
341
|
+
'api-key'?: string;
|
|
342
|
+
apiKey?: string;
|
|
343
|
+
'management-key'?: string;
|
|
344
|
+
managementKey?: string;
|
|
345
|
+
}
|
|
335
346
|
export interface ApiCallRequest {
|
|
336
347
|
auth_index?: string;
|
|
337
348
|
authIndex?: string;
|
|
@@ -401,7 +412,7 @@ export interface AuthFileEntry {
|
|
|
401
412
|
updated_at?: string;
|
|
402
413
|
last_refresh?: string;
|
|
403
414
|
path?: string;
|
|
404
|
-
id_token?:
|
|
415
|
+
id_token?: JsonObject;
|
|
405
416
|
}
|
|
406
417
|
export interface AuthFileListResponse {
|
|
407
418
|
files: AuthFileEntry[];
|
|
@@ -745,12 +756,12 @@ export interface GeminiInlineData {
|
|
|
745
756
|
export interface GeminiFunctionCall {
|
|
746
757
|
id?: string;
|
|
747
758
|
name: string;
|
|
748
|
-
args:
|
|
759
|
+
args: JsonObject;
|
|
749
760
|
}
|
|
750
761
|
export interface GeminiFunctionResponse {
|
|
751
762
|
id?: string;
|
|
752
763
|
name: string;
|
|
753
|
-
response:
|
|
764
|
+
response: JsonObject;
|
|
754
765
|
}
|
|
755
766
|
export interface GeminiPart {
|
|
756
767
|
thought?: boolean;
|
package/dist/ws/client.d.ts
CHANGED
package/dist/ws/client.js
CHANGED
|
@@ -60,21 +60,23 @@ export class CliproxyWSProvider {
|
|
|
60
60
|
const req = decodeRequest(msg.payload);
|
|
61
61
|
const ctx = this.buildContext(msg.id);
|
|
62
62
|
this.handlers?.onEvent?.({ type: 'request', requestId: msg.id, request: req });
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
const message = err?.message ?? 'provider error';
|
|
68
|
-
ctx.error(message);
|
|
69
|
-
this.emitError(message, msg?.id);
|
|
70
|
-
});
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
|
-
catch (err) {
|
|
74
|
-
const message = err instanceof Error ? err.message : 'provider error';
|
|
63
|
+
Promise.resolve()
|
|
64
|
+
.then(() => this.handlers?.onRequest(req, ctx))
|
|
65
|
+
.catch((err) => {
|
|
66
|
+
const message = this.errorMessage(err);
|
|
75
67
|
ctx.error(message);
|
|
76
|
-
this.emitError(message, msg
|
|
68
|
+
this.emitError(message, msg.id);
|
|
69
|
+
});
|
|
70
|
+
}
|
|
71
|
+
errorMessage(err) {
|
|
72
|
+
if (typeof err === 'string' && err)
|
|
73
|
+
return err;
|
|
74
|
+
if (err && typeof err === 'object' && 'message' in err && typeof err.message === 'string' && err.message) {
|
|
75
|
+
return err.message;
|
|
77
76
|
}
|
|
77
|
+
if (err instanceof Error && err.message)
|
|
78
|
+
return err.message;
|
|
79
|
+
return 'provider error';
|
|
78
80
|
}
|
|
79
81
|
handleClose(code, reason) {
|
|
80
82
|
this.handlers?.onEvent?.({ type: 'ws:close', code, reason });
|
package/dist/ws/codec.js
CHANGED
|
@@ -89,7 +89,7 @@ export function encodeError(message, status) {
|
|
|
89
89
|
// CLIProxyAPI always formats as "message (status=...)".
|
|
90
90
|
export function decodeError(payload) {
|
|
91
91
|
if (!payload)
|
|
92
|
-
return 'wsrelay:
|
|
92
|
+
return 'wsrelay: upstream error';
|
|
93
93
|
const message = typeof payload.error === 'string' ? payload.error : 'wsrelay: upstream error';
|
|
94
94
|
const status = typeof payload.status === 'number'
|
|
95
95
|
? payload.status
|
package/dist/ws/index.d.ts
CHANGED
package/dist/ws/index.js
CHANGED
package/dist/ws/types.d.ts
CHANGED
|
@@ -15,13 +15,13 @@ export interface HTTPResponse {
|
|
|
15
15
|
export interface WSHttpRequestPayload {
|
|
16
16
|
method: string;
|
|
17
17
|
url: string;
|
|
18
|
-
headers?:
|
|
18
|
+
headers?: Record<string, string | string[]>;
|
|
19
19
|
body?: string;
|
|
20
20
|
sent_at?: string;
|
|
21
21
|
}
|
|
22
22
|
export interface WSHttpResponsePayload {
|
|
23
|
-
status: number;
|
|
24
|
-
headers?:
|
|
23
|
+
status: number | string;
|
|
24
|
+
headers?: Record<string, string | string[]>;
|
|
25
25
|
body?: string;
|
|
26
26
|
}
|
|
27
27
|
export interface WSStreamChunkPayload {
|
|
@@ -29,7 +29,7 @@ export interface WSStreamChunkPayload {
|
|
|
29
29
|
}
|
|
30
30
|
export interface WSErrorPayload {
|
|
31
31
|
error: string;
|
|
32
|
-
status?: number;
|
|
32
|
+
status?: number | string;
|
|
33
33
|
}
|
|
34
34
|
export interface WSHttpRequestMessage {
|
|
35
35
|
id: string;
|