qlogicagent 2.10.11 → 2.10.13

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.
Files changed (66) hide show
  1. package/dist/agent.js +14 -14
  2. package/dist/cli.js +344 -363
  3. package/dist/index.js +343 -362
  4. package/dist/orchestration.js +6 -6
  5. package/dist/protocol.js +1 -1
  6. package/dist/types/agent/agent.d.ts +1 -1
  7. package/dist/types/agent/tool-loop.d.ts +1 -1
  8. package/dist/types/agent/types.d.ts +1 -1
  9. package/dist/types/cli/handlers/memory-handler.d.ts +1 -0
  10. package/dist/types/cli/handlers/turn-handler.d.ts +1 -1
  11. package/dist/types/cli/tool-bootstrap.d.ts +3 -3
  12. package/dist/types/index.d.ts +2 -2
  13. package/dist/types/llm/index.d.ts +1 -1
  14. package/dist/types/orchestration/tool-cascade.d.ts +2 -2
  15. package/dist/types/protocol/wire/gateway-rpc.d.ts +14 -0
  16. package/dist/types/runtime/execution/dream-agent.d.ts +1 -1
  17. package/dist/types/runtime/execution/forked-agent.d.ts +1 -1
  18. package/dist/types/runtime/hooks/context-compression.d.ts +1 -1
  19. package/dist/types/runtime/session/session-persistence.d.ts +1 -1
  20. package/package.json +3 -2
  21. package/dist/types/provider-core/adapters/aliyun-oss-file-upload-adapter.d.ts +0 -44
  22. package/dist/types/provider-core/adapters/gemini-file-upload-adapter.d.ts +0 -26
  23. package/dist/types/provider-core/adapters/hub-oss-file-upload-adapter.d.ts +0 -29
  24. package/dist/types/provider-core/adapters/index.d.ts +0 -10
  25. package/dist/types/provider-core/adapters/openai-file-upload-adapter.d.ts +0 -38
  26. package/dist/types/provider-core/adapters/volcengine-file-upload-adapter.d.ts +0 -24
  27. package/dist/types/provider-core/builtin-providers.d.ts +0 -8
  28. package/dist/types/provider-core/constants.d.ts +0 -1
  29. package/dist/types/provider-core/credentials.d.ts +0 -1
  30. package/dist/types/provider-core/debug-transport.d.ts +0 -12
  31. package/dist/types/provider-core/errors.d.ts +0 -11
  32. package/dist/types/provider-core/events.d.ts +0 -48
  33. package/dist/types/provider-core/file-upload-service.d.ts +0 -68
  34. package/dist/types/provider-core/gemini-schema-utils.d.ts +0 -17
  35. package/dist/types/provider-core/index.d.ts +0 -37
  36. package/dist/types/provider-core/llm-client.d.ts +0 -43
  37. package/dist/types/provider-core/media-client.d.ts +0 -42
  38. package/dist/types/provider-core/media-transport.d.ts +0 -176
  39. package/dist/types/provider-core/media.d.ts +0 -2
  40. package/dist/types/provider-core/model-detection.d.ts +0 -22
  41. package/dist/types/provider-core/paths.d.ts +0 -2
  42. package/dist/types/provider-core/provider-def.d.ts +0 -220
  43. package/dist/types/provider-core/provider-registry.d.ts +0 -50
  44. package/dist/types/provider-core/provider-tool-api.d.ts +0 -44
  45. package/dist/types/provider-core/provider-variant-resolver.d.ts +0 -35
  46. package/dist/types/provider-core/retry.d.ts +0 -37
  47. package/dist/types/provider-core/transport.d.ts +0 -281
  48. package/dist/types/provider-core/transports/anthropic-messages.d.ts +0 -65
  49. package/dist/types/provider-core/transports/gemini-cache-api.d.ts +0 -86
  50. package/dist/types/provider-core/transports/gemini-file-api.d.ts +0 -90
  51. package/dist/types/provider-core/transports/gemini-generatecontent.d.ts +0 -56
  52. package/dist/types/provider-core/transports/gemini-lyria-realtime.d.ts +0 -117
  53. package/dist/types/provider-core/transports/gemini-media.d.ts +0 -53
  54. package/dist/types/provider-core/transports/media-resolve.d.ts +0 -50
  55. package/dist/types/provider-core/transports/minimax-media.d.ts +0 -56
  56. package/dist/types/provider-core/transports/openai-chat.d.ts +0 -81
  57. package/dist/types/provider-core/transports/openai-media.d.ts +0 -24
  58. package/dist/types/provider-core/transports/openai-responses.d.ts +0 -63
  59. package/dist/types/provider-core/transports/qwen-media.d.ts +0 -59
  60. package/dist/types/provider-core/transports/realtime-transport.d.ts +0 -183
  61. package/dist/types/provider-core/transports/volcengine-grounding.d.ts +0 -58
  62. package/dist/types/provider-core/transports/volcengine-media.d.ts +0 -94
  63. package/dist/types/provider-core/transports/volcengine-responses.d.ts +0 -64
  64. package/dist/types/provider-core/transports/zhipu-media.d.ts +0 -82
  65. package/dist/types/provider-core/transports/zhipu-tool-api.d.ts +0 -35
  66. package/dist/types/provider-core/wire-types.d.ts +0 -51
@@ -1,24 +0,0 @@
1
- /**
2
- * OpenAI Media Transport 鈥?Images API (gpt-image-2) + Audio Speech API (tts-1).
3
- *
4
- * Image: POST /v1/images/generations (sync response, returns URLs)
5
- * TTS: POST /v1/audio/speech (sync response, returns raw audio bytes)
6
- * Auth: Authorization: Bearer $OPENAI_API_KEY
7
- * Docs: https://platform.openai.com/docs/api-reference/images/create
8
- * https://platform.openai.com/docs/api-reference/audio/createSpeech
9
- */
10
- import type { MediaTransport, MediaRequest, MediaResult, MediaType } from "../media-transport.js";
11
- export interface OpenAIMediaConfig {
12
- /** Base URL, e.g. "https://api.openai.com" */
13
- baseUrl: string;
14
- timeoutMs?: number;
15
- }
16
- export declare class OpenAIMediaTransport implements MediaTransport {
17
- readonly supportedTypes: readonly MediaType[];
18
- private baseUrl;
19
- private timeoutMs;
20
- constructor(config: OpenAIMediaConfig);
21
- generate(request: MediaRequest, apiKey: string, signal?: AbortSignal): Promise<MediaResult>;
22
- private generateImage;
23
- private generateTTS;
24
- }
@@ -1,63 +0,0 @@
1
- /**
2
- * OpenAI Responses API TransportSSE streaming implementation.
3
- *
4
- * Implements the OpenAI Responses API (`POST /v1/responses`),
5
- * the officially recommended path for GPT-5.x text generation.
6
- *
7
- * Key differences from OpenAI Chat Completions:
8
- * - Endpoint: POST {baseUrl}/v1/responses
9
- * - Request body uses `input` (not `messages`), `instructions`, `reasoning`
10
- * - SSE events: response.output_text.delta, response.function_call_arguments.delta,
11
- * response.completed, etc.
12
- * - Tool defs: { type: "function", name, parameters } (not nested under `function:`)
13
- * - Tool results: { type: "function_call_output", call_id, output }
14
- * - Context persistence: previous_response_id for server-side session continuation
15
- * - Structured output: `text: { format: { type: "json_schema", ... } }`
16
- * - Reasoning: `reasoning: { effort, summary }` for GPT-5.x models
17
- *
18
- * Wire format reference:
19
- * https://developers.openai.com/api/docs/api-reference/responses/create
20
- * https://developers.openai.com/api/docs/api-reference/responses/streaming-events
21
- *
22
- * Design: Closely mirrors volcengine-responses.ts patterns while adapting to
23
- * OpenAI-specific wire format. Shared LLMChunk output makes upper layers
24
- * transport-agnostic.
25
- */
26
- import type { LLMChunk, LLMRequest, LLMTransport } from "../transport.js";
27
- import type { ProviderQuirks } from "../provider-def.js";
28
- import type { FileUploadAdapter } from "../file-upload-service.js";
29
- export interface OpenAIResponsesTransportConfig {
30
- baseUrl: string;
31
- extraHeaders?: Record<string, string>;
32
- timeoutMs?: number;
33
- quirks?: ProviderQuirks;
34
- fileUploadAdapter?: FileUploadAdapter;
35
- }
36
- export declare class OpenAIResponsesTransport implements LLMTransport {
37
- private baseUrl;
38
- private extraHeaders;
39
- private timeoutMs;
40
- private quirks;
41
- private fileUploadAdapter?;
42
- constructor(config: OpenAIResponsesTransportConfig);
43
- stream(request: LLMRequest, apiKey: string, signal?: AbortSignal): AsyncGenerator<LLMChunk>;
44
- private buildRequestBody;
45
- private fetchAndStream;
46
- private handleNonStreamingResponse;
47
- /**
48
- * Parse OpenAI Responses API SSE stream.
49
- *
50
- * Event format: "event: <type>\ndata: <json>\n\n"
51
- * Key events:
52
- * - response.output_text.delta 閳?text content delta
53
- * - response.reasoning_summary_text.delta 閳?reasoning summary text
54
- * - response.function_call_arguments.delta 閳?tool call arguments streaming
55
- * - response.output_item.added 閳?new output item started
56
- * - response.output_item.done 閳?output item completed
57
- * - response.content_part.done 閳?content part completed (annotations)
58
- * - response.completed 閳?full response complete with usage
59
- * - response.failed 閳?error
60
- */
61
- private parseSSEStream;
62
- private processEvent;
63
- }
@@ -1,59 +0,0 @@
1
- /**
2
- * Qwen (DashScope) Media Transport.
3
- *
4
- * DashScope async task API pattern:
5
- * Submit: POST /api/v1/services/aigc/<service>/generation (X-DashScope-Async: enable)
6
- * Poll: GET /api/v1/tasks/{taskId}
7
- *
8
- * Auth: Authorization: Bearer $DASHSCOPE_API_KEY
9
- * Docs: https://help.aliyun.com/zh/model-studio/developer-reference/
10
- *
11
- * Video models: wan2.7-t2v (text-to-video), wan2.7-i2v (image-to-video)
12
- * TTS endpoints:
13
- * Qwen3-TTS: /api/v1/services/aigc/multimodal-generation/generation
14
- * CosyVoice: /api/v1/services/audio/tts/SpeechSynthesizer
15
- * Rerank: /api/v1/services/rerank/text-rerank/text-rerank
16
- * Embedding: /compatible-mode/v1/embeddings
17
- */
18
- import type { AsyncMediaTransport, MediaRequest, MediaResult, MediaType } from "../media-transport.js";
19
- export interface QwenMediaConfig {
20
- /** Base URL, e.g. "https://dashscope.aliyuncs.com" */
21
- baseUrl: string;
22
- timeoutMs?: number;
23
- }
24
- export declare class QwenMediaTransport implements AsyncMediaTransport {
25
- readonly supportedTypes: readonly MediaType[];
26
- private baseUrl;
27
- private timeoutMs;
28
- constructor(config: QwenMediaConfig);
29
- generate(request: MediaRequest, apiKey: string, signal?: AbortSignal): Promise<MediaResult>;
30
- private generateTTS;
31
- private generateQwenTTS;
32
- private generateCosyVoiceTTS;
33
- private generateEmbedding;
34
- private generateRerank;
35
- private pollTask;
36
- private generateVideo;
37
- /**
38
- * Query a single task by ID using DashScope unified task endpoint.
39
- * GET /api/v1/tasks/{taskId}
40
- */
41
- getTaskStatus(taskId: string, apiKey: string, signal?: AbortSignal): Promise<{
42
- status: string;
43
- task: Record<string, unknown>;
44
- }>;
45
- /**
46
- * List tasks 鈥?DashScope has a task list API.
47
- * GET /api/v1/tasks?page_no=1&page_size=20&status=RUNNING
48
- */
49
- listVideoTasks(apiKey: string, options?: {
50
- after?: string;
51
- limit?: number;
52
- status?: string;
53
- }, signal?: AbortSignal): Promise<Record<string, unknown>>;
54
- /**
55
- * Cancel/delete 鈥?DashScope does not have a public task cancellation API.
56
- */
57
- deleteVideoTask(_taskId: string, _apiKey: string, _signal?: AbortSignal): Promise<void>;
58
- private extractMediaUrl;
59
- }
@@ -1,183 +0,0 @@
1
- /**
2
- * Realtime WebSocket Transport 鈥?bidirectional audio/voice streaming
3
- * via the OpenAI Realtime API protocol (also compatible with GLM Realtime).
4
- *
5
- * ## Protocol: WebSocket JSON events
6
- *
7
- * Client 鈫?Server:
8
- * - session.update: configure session (model, voice, tools, etc.)
9
- * - input_audio_buffer.append: send audio chunks (base64 PCM16)
10
- * - input_audio_buffer.commit: signal end of audio input
11
- * - conversation.item.create: inject text/function_result items
12
- * - response.create: request a model response
13
- * - response.cancel: abort in-progress response
14
- *
15
- * Server 鈫?Client:
16
- * - session.created: session initialized
17
- * - session.updated: config acknowledged
18
- * - input_audio_buffer.speech_started: VAD detected speech
19
- * - input_audio_buffer.speech_stopped: VAD detected silence
20
- * - response.created: response generation started
21
- * - response.output_item.added: new output item (text/audio/function_call)
22
- * - response.audio.delta: audio chunk (base64 PCM16)
23
- * - response.audio_transcript.delta: transcript of generated speech
24
- * - response.text.delta: text generation delta
25
- * - response.function_call_arguments.delta: tool call args delta
26
- * - response.function_call_arguments.done: tool call complete
27
- * - response.output_item.done: output item finished
28
- * - response.done: full response complete
29
- * - error: server error
30
- *
31
- * ## Architecture
32
- *
33
- * RealtimeTransport manages a single persistent WebSocket connection per session.
34
- * It exposes an event-driven API (AsyncGenerator) that the agent tool-loop
35
- * can consume for voice-enabled interactions.
36
- *
37
- * Docs:
38
- * - OpenAI: https://platform.openai.com/docs/api-reference/realtime
39
- * - GLM: https://docs.bigmodel.cn/cn/guide/develop/realtime-api
40
- */
41
- export interface RealtimeConfig {
42
- /** WebSocket endpoint (e.g. "wss://api.openai.com/v1/realtime") */
43
- baseUrl: string;
44
- /** Model to use (e.g. "gpt-realtime-2", "glm-realtime") */
45
- model: string;
46
- /** API key */
47
- apiKey: string;
48
- /** Voice for TTS output */
49
- voice?: string;
50
- /** Input modalities: "text", "audio", or both */
51
- inputModalities?: Array<"text" | "audio">;
52
- /** Output modalities: "text", "audio", or both */
53
- outputModalities?: Array<"text" | "audio">;
54
- /** Temperature for generation */
55
- temperature?: number;
56
- /** Tool definitions for function calling */
57
- tools?: RealtimeTool[];
58
- /** Voice Activity Detection mode */
59
- vadMode?: "server_vad" | "none";
60
- /** VAD threshold (0.0-1.0) */
61
- vadThreshold?: number;
62
- /** Auth type: "header" (OpenAI) or "query" (GLM) */
63
- authMode?: "header" | "query";
64
- }
65
- export interface RealtimeTool {
66
- type: "function";
67
- name: string;
68
- description: string;
69
- parameters: Record<string, unknown>;
70
- }
71
- export type RealtimeEvent = {
72
- type: "session_created";
73
- sessionId: string;
74
- } | {
75
- type: "speech_started";
76
- } | {
77
- type: "speech_stopped";
78
- audioEndMs: number;
79
- } | {
80
- type: "audio_delta";
81
- delta: string;
82
- } | {
83
- type: "audio_transcript_delta";
84
- delta: string;
85
- } | {
86
- type: "text_delta";
87
- delta: string;
88
- } | {
89
- type: "function_call_start";
90
- callId: string;
91
- name: string;
92
- } | {
93
- type: "function_call_delta";
94
- callId: string;
95
- delta: string;
96
- } | {
97
- type: "function_call_done";
98
- callId: string;
99
- name: string;
100
- arguments: string;
101
- } | {
102
- type: "response_done";
103
- usage?: RealtimeUsage;
104
- } | {
105
- type: "error";
106
- code: string;
107
- message: string;
108
- } | {
109
- type: "closed";
110
- code: number;
111
- reason: string;
112
- };
113
- export interface RealtimeUsage {
114
- inputTokens: number;
115
- outputTokens: number;
116
- inputAudioTokens?: number;
117
- outputAudioTokens?: number;
118
- }
119
- /**
120
- * Manages a persistent WebSocket connection for real-time audio/voice
121
- * interactions with an LLM provider.
122
- *
123
- * Usage:
124
- * ```ts
125
- * const rt = new RealtimeTransport(config);
126
- * rt.connect();
127
- *
128
- * // Send audio
129
- * rt.appendAudio(base64Chunk);
130
- * rt.commitAudio();
131
- *
132
- * // Or send text
133
- * rt.sendText("Hello!");
134
- *
135
- * // Submit function results
136
- * rt.sendFunctionResult(callId, result);
137
- *
138
- * // Consume events
139
- * for await (const event of rt.events()) {
140
- * switch (event.type) {
141
- * case "audio_delta": playAudio(event.delta); break;
142
- * case "function_call_done": handleToolCall(event); break;
143
- * }
144
- * }
145
- *
146
- * rt.close();
147
- * ```
148
- */
149
- export declare class RealtimeTransport {
150
- private ws;
151
- private config;
152
- private eventQueue;
153
- private waiters;
154
- private closed;
155
- constructor(config: RealtimeConfig);
156
- /** Open WebSocket connection and configure session. */
157
- connect(): Promise<void>;
158
- /** Send audio data (base64 PCM16). */
159
- appendAudio(base64Chunk: string): void;
160
- /** Mark end of audio input and trigger response. */
161
- commitAudio(): void;
162
- /** Send a text message. */
163
- sendText(text: string): void;
164
- /** Submit a function call result back to the model. */
165
- sendFunctionResult(callId: string, output: string): void;
166
- /** Trigger a model response (e.g. after sending text). */
167
- requestResponse(): void;
168
- /** Cancel an in-progress response. */
169
- cancelResponse(): void;
170
- /** Async iterator of server events. */
171
- events(): AsyncGenerator<RealtimeEvent>;
172
- /** Close the WebSocket connection. */
173
- close(): void;
174
- private buildUrl;
175
- private sendSessionUpdate;
176
- private send;
177
- private push;
178
- private drainWaiters;
179
- /**
180
- * Parse a server-sent JSON event into our typed event(s).
181
- */
182
- private parseServerEvent;
183
- }
@@ -1,58 +0,0 @@
1
- /**
2
- * Volcengine Grounding 鈥?spatial coordinate parser (volcengine-ProviderMax 搂14).
3
- *
4
- * Parses model-emitted spatial reference tags from text output:
5
- * - <bbox>x_min y_min x_max y_max</bbox> 鈫?bounding box
6
- * - <point>x y</point> 鈫?single point
7
- * - <polygon>x1 y1 x2 y2 ...</polygon> 鈫?polygon vertices
8
- *
9
- * All coordinates are in normalized 1000脳1000 space, range [0, 999].
10
- * Use `toPixelCoords()` to convert to actual image pixel coordinates.
11
- */
12
- export type SpatialReference = {
13
- type: "bbox";
14
- x1: number;
15
- y1: number;
16
- x2: number;
17
- y2: number;
18
- space: "normalized_1000";
19
- } | {
20
- type: "point";
21
- x: number;
22
- y: number;
23
- space: "normalized_1000";
24
- } | {
25
- type: "polygon";
26
- points: Array<{
27
- x: number;
28
- y: number;
29
- }>;
30
- space: "normalized_1000";
31
- };
32
- export interface PixelBbox {
33
- x1: number;
34
- y1: number;
35
- x2: number;
36
- y2: number;
37
- }
38
- export interface PixelPoint {
39
- x: number;
40
- y: number;
41
- }
42
- /**
43
- * Extract all spatial references from model output text.
44
- * Returns an empty array if no grounding tags are found.
45
- */
46
- export declare function parseGroundingTags(text: string): SpatialReference[];
47
- /**
48
- * Convert a normalized 1000脳1000 bounding box to pixel coordinates.
49
- */
50
- export declare function bboxToPixels(ref: Extract<SpatialReference, {
51
- type: "bbox";
52
- }>, width: number, height: number): PixelBbox;
53
- /**
54
- * Convert a normalized 1000脳1000 point to pixel coordinates.
55
- */
56
- export declare function pointToPixels(ref: Extract<SpatialReference, {
57
- type: "point";
58
- }>, width: number, height: number): PixelPoint;
@@ -1,94 +0,0 @@
1
- /**
2
- * Volcengine Media Transport 鈥?Doubao Seedream (image), Seedance (video), 3D generation.
3
- *
4
- * API reference:
5
- * Image: POST /v3/images/generations (sync)
6
- * Video: POST /v3/contents/generations/tasks (async job)
7
- * 3D: POST /v3/contents/generations/tasks (async job, same endpoint as video)
8
- *
9
- * Auth: Authorization: Bearer $ARK_API_KEY
10
- * Docs: https://www.volcengine.com/docs/82379/1330310
11
- * https://www.volcengine.com/docs/82379/1874993 (3D)
12
- */
13
- import type { AsyncMediaTransport, MediaRequest, MediaResult, MediaType } from "../media-transport.js";
14
- export interface VolcengineMediaConfig {
15
- /** Base URL, e.g. "https://ark.cn-beijing.volces.com/api" */
16
- baseUrl: string;
17
- timeoutMs?: number;
18
- }
19
- export declare class VolcengineMediaTransport implements AsyncMediaTransport {
20
- readonly supportedTypes: readonly MediaType[];
21
- private baseUrl;
22
- private timeoutMs;
23
- constructor(config: VolcengineMediaConfig);
24
- generate(request: MediaRequest, apiKey: string, signal?: AbortSignal): Promise<MediaResult>;
25
- private generateEmbedding;
26
- /**
27
- * Check if this transport can handle a given operation.
28
- * Video edit/merge/upscale are routed through the same video endpoint.
29
- */
30
- canHandle(request: MediaRequest): boolean;
31
- private generateImage;
32
- /**
33
- * Parse streaming image SSE 鈥?yields progressive image quality upgrades.
34
- * Final event contains the full-quality image URL.
35
- */
36
- private parseStreamingImage;
37
- private generateVideo;
38
- private generate3D;
39
- /**
40
- * Query a single video generation task by ID.
41
- * GET /v3/contents/generations/tasks/{taskId}
42
- */
43
- getTaskStatus(taskId: string, apiKey: string, signal?: AbortSignal): Promise<{
44
- status: string;
45
- task: Record<string, unknown>;
46
- }>;
47
- /**
48
- * List video generation tasks with optional filters.
49
- * GET /v3/contents/generations/tasks
50
- */
51
- listVideoTasks(apiKey: string, options?: {
52
- after?: string;
53
- limit?: number;
54
- status?: string;
55
- }, signal?: AbortSignal): Promise<Record<string, unknown>>;
56
- /**
57
- * Cancel or delete a video generation task.
58
- * DELETE /v3/contents/generations/tasks/{taskId}
59
- */
60
- deleteVideoTask(taskId: string, apiKey: string, signal?: AbortSignal): Promise<void>;
61
- /**
62
- * Upload a file to Volcengine Files API for reuse in multimodal requests.
63
- * POST /v3/files
64
- */
65
- uploadFile(file: Blob | Buffer, apiKey: string, options?: {
66
- purpose?: string;
67
- filename?: string;
68
- }, signal?: AbortSignal): Promise<{
69
- id: string;
70
- status: string;
71
- }>;
72
- /**
73
- * Get file info by ID.
74
- * GET /v3/files/{fileId}
75
- */
76
- getFile(fileId: string, apiKey: string, signal?: AbortSignal): Promise<Record<string, unknown>>;
77
- /**
78
- * List uploaded files.
79
- * GET /v3/files
80
- */
81
- listFiles(apiKey: string, options?: {
82
- after?: string;
83
- limit?: number;
84
- purpose?: string;
85
- order?: "asc" | "desc";
86
- }, signal?: AbortSignal): Promise<Record<string, unknown>>;
87
- /**
88
- * Delete a file.
89
- * DELETE /v3/files/{fileId}
90
- */
91
- deleteFile(fileId: string, apiKey: string, signal?: AbortSignal): Promise<void>;
92
- private submitTask;
93
- private pollTask;
94
- }
@@ -1,64 +0,0 @@
1
- /**
2
- * Volcengine Responses API TransportSSE streaming implementation.
3
- *
4
- * Implements the fire mountain ark Responses API (`/api/v3/responses`),
5
- * which is the officially recommended primary path for Doubao LLM text generation
6
- * (250615+ models: doubao-seed-2.0 series).
7
- *
8
- * Key differences from OpenAI Chat Completions:
9
- * - Endpoint: POST {baseUrl}/v3/responses
10
- * - Request body uses `input` (not `messages`), `instructions`, `thinking`, `reasoning`
11
- * - SSE events: response.output_text.delta, response.reasoning_summary_text.delta,
12
- * response.function_call_arguments.delta, response.completed, etc.
13
- * - Tool calling: function_call / function_call_output with call_id
14
- * - Context persistence: previous_response_id for server-side session continuation
15
- * - Deep thinking: thinking.type (enabled/disabled/auto) + reasoning.effort
16
- *
17
- * Docs: https://www.volcengine.com/docs/82379/1399008
18
- */
19
- import type { LLMChunk, LLMRequest, LLMTransport } from "../transport.js";
20
- import type { ProviderQuirks } from "../provider-def.js";
21
- import type { FileUploadAdapter } from "../file-upload-service.js";
22
- export interface VolcengineResponsesTransportConfig {
23
- baseUrl: string;
24
- extraHeaders?: Record<string, string>;
25
- timeoutMs?: number;
26
- quirks?: ProviderQuirks;
27
- /** File upload adapter for resolving local media URLs via upload instead of base64. */
28
- fileUploadAdapter?: FileUploadAdapter;
29
- }
30
- export declare class VolcengineResponsesTransport implements LLMTransport {
31
- private baseUrl;
32
- private extraHeaders;
33
- private timeoutMs;
34
- private quirks;
35
- private fileUploadAdapter?;
36
- constructor(config: VolcengineResponsesTransportConfig);
37
- stream(request: LLMRequest, apiKey: string, signal?: AbortSignal): AsyncGenerator<LLMChunk>;
38
- /**
39
- * Resolve known Volcengine Responses API incompatibilities:
40
- * - instructions + caching 閳?drop caching (鎼?0.7)
41
- * - caching + json_schema 閳?downgrade to json_object (鎼?0.10)
42
- * - caching + builtin_web_search/image_process 閳?drop those builtin tools
43
- * Returns a shallow copy with fields adjusted; never mutates the original.
44
- */
45
- private resolveConstraints;
46
- private buildRequestBody;
47
- private fetchAndStream;
48
- private handleNonStreamingResponse;
49
- /**
50
- * Parse Volcengine Responses API SSE stream.
51
- *
52
- * Event format: "event: <type>\ndata: <json>\n\n"
53
- * Key events:
54
- * - response.output_text.delta 閳?text content delta
55
- * - response.reasoning_summary_text.delta 閳?thinking/reasoning text
56
- * - response.function_call_arguments.delta 閳?tool call arguments streaming
57
- * - response.output_item.added 閳?new output item started
58
- * - response.output_item.done 閳?output item completed
59
- * - response.completed 閳?full response complete with usage
60
- * - response.failed 閳?error
61
- */
62
- private parseSSEStream;
63
- private processEvent;
64
- }
@@ -1,82 +0,0 @@
1
- /**
2
- * Zhipu (GLM) Media Transport 鈥?CogView (image), CogVideoX (video), TTS, STT, Embedding.
3
- *
4
- * API reference (docs.bigmodel.cn):
5
- * Image sync: POST /images/generations (CogView-4, cogview-3-flash)
6
- * Image async: POST /async/images/generations (glm-image)
7
- * Video async: POST /videos/generations (CogVideoX)
8
- * TTS sync: POST /audio/speech (glm-tts, returns audio bytes)
9
- * STT sync: POST /audio/transcriptions (glm-asr, multipart/form-data)
10
- * Embedding: POST /embeddings (embedding-3/2)
11
- * Async poll: GET /async-result/{id} (unified poll for all async tasks)
12
- *
13
- * Base URL: https://open.bigmodel.cn/api/paas/v4
14
- * Auth: Authorization: Bearer $ZHIPU_API_KEY
15
- */
16
- import type { AsyncMediaTransport, MediaRequest, MediaResult, MediaType } from "../media-transport.js";
17
- export interface ZhipuMediaConfig {
18
- /** Base URL, e.g. "https://open.bigmodel.cn/api/paas/v4" */
19
- baseUrl: string;
20
- timeoutMs?: number;
21
- }
22
- export declare class ZhipuMediaTransport implements AsyncMediaTransport {
23
- readonly supportedTypes: readonly MediaType[];
24
- private baseUrl;
25
- private timeoutMs;
26
- constructor(config: ZhipuMediaConfig);
27
- generate(request: MediaRequest, apiKey: string, signal?: AbortSignal): Promise<MediaResult>;
28
- private generateImage;
29
- /** CogView-4 / cogview-3-flash 鈥?sync, returns URL directly */
30
- private generateImageSync;
31
- /** glm-image 鈥?async submit + poll */
32
- private generateImageAsync;
33
- private generateVideo;
34
- private generateTTS;
35
- private generateSTT;
36
- private generateEmbedding;
37
- private generateVoiceClone;
38
- private generateDocumentParsing;
39
- private generateRerank;
40
- private postJSON;
41
- /**
42
- * Unified async result polling 鈥?GET /async-result/{id}
43
- * Returns the result object when task_status === "SUCCESS".
44
- * Throws on "FAIL" or timeout.
45
- */
46
- private pollAsyncResult;
47
- /**
48
- * Query a single task status 鈥?GET /async-result/{id}
49
- * Zhipu uses a unified async result endpoint for all task types.
50
- */
51
- getTaskStatus(taskId: string, apiKey: string, signal?: AbortSignal): Promise<{
52
- status: string;
53
- task: Record<string, unknown>;
54
- }>;
55
- /**
56
- * List recent tasks 鈥?Zhipu does not have a native list endpoint.
57
- * Returns empty since individual task query via getTaskStatus() is the primary API.
58
- */
59
- listVideoTasks(_apiKey: string, _options?: {
60
- after?: string;
61
- limit?: number;
62
- status?: string;
63
- }, _signal?: AbortSignal): Promise<Record<string, unknown>>;
64
- /**
65
- * Cancel/delete is not supported by Zhipu's async API 鈥?throws informative error.
66
- * The /async-result/{id} endpoint is read-only.
67
- */
68
- deleteVideoTask(_taskId: string, _apiKey: string, _signal?: AbortSignal): Promise<void>;
69
- /**
70
- * List cloned voices 鈥?GET /voice/
71
- * Returns all voice clones for the current user.
72
- */
73
- listVoices(apiKey: string, signal?: AbortSignal): Promise<Array<{
74
- voice_id: string;
75
- voice_name: string;
76
- status: string;
77
- }>>;
78
- /**
79
- * Delete a cloned voice 鈥?POST /voice/delete
80
- */
81
- deleteVoice(voiceId: string, apiKey: string, signal?: AbortSignal): Promise<void>;
82
- }
@@ -1,35 +0,0 @@
1
- /**
2
- * ZhipuToolAPI 鈥?Zhipu-specific utility endpoints.
3
- *
4
- * Implements ProviderToolAPI for Zhipu GLM platform independent APIs:
5
- * C1: Web Search 鈥?POST /tools/web-search
6
- * C2: Reader 鈥?POST /tools/reader (extract web page content)
7
- * C3: Tokenizer 鈥?POST /tokenizer
8
- * C4: Moderations 鈥?POST /moderations
9
- *
10
- * Base URL: https://open.bigmodel.cn/api/paas/v4
11
- * Auth: Authorization: Bearer $ZHIPU_API_KEY
12
- *
13
- * C5 (File Parser) is handled by document_parsing media handler.
14
- * C6 (Realtime API) requires WebSocket 鈥?out of scope for this interface.
15
- */
16
- import type { ProviderToolAPI, ProviderToolCapability, WebSearchResult, ReaderResult, TokenizerResult, ModerationResult } from "../provider-tool-api.js";
17
- export interface ZhipuToolAPIConfig {
18
- baseUrl: string;
19
- apiKey: string;
20
- timeoutMs?: number;
21
- }
22
- export declare class ZhipuToolAPI implements ProviderToolAPI {
23
- readonly capabilities: readonly ProviderToolCapability[];
24
- private baseUrl;
25
- private apiKey;
26
- private timeoutMs;
27
- constructor(config: ZhipuToolAPIConfig);
28
- webSearch(query: string, options?: {
29
- maxResults?: number;
30
- }): Promise<WebSearchResult[]>;
31
- reader(pageUrl: string): Promise<ReaderResult>;
32
- tokenize(text: string, model: string): Promise<TokenizerResult>;
33
- moderate(text: string): Promise<ModerationResult>;
34
- private postJSON;
35
- }