refactor: rename ambiguous exported types

This commit is contained in:
mingholy.lmh
2025-11-27 14:50:40 +08:00
parent 638b7bb466
commit 56957a687b
14 changed files with 1188 additions and 614 deletions

View File

@@ -12,20 +12,20 @@ export type {
ThinkingBlock,
ToolUseBlock,
ToolResultBlock,
CLIUserMessage,
CLIAssistantMessage,
CLISystemMessage,
CLIResultMessage,
CLIPartialAssistantMessage,
CLIMessage,
SDKUserMessage,
SDKAssistantMessage,
SDKSystemMessage,
SDKResultMessage,
SDKPartialAssistantMessage,
SDKMessage,
} from './types/protocol.js';
export {
isCLIUserMessage,
isCLIAssistantMessage,
isCLISystemMessage,
isCLIResultMessage,
isCLIPartialAssistantMessage,
isSDKUserMessage,
isSDKAssistantMessage,
isSDKSystemMessage,
isSDKResultMessage,
isSDKPartialAssistantMessage,
} from './types/protocol.js';
export type {

View File

@@ -13,19 +13,19 @@ const STREAM_CLOSE_TIMEOUT = 10000;
import { randomUUID } from 'node:crypto';
import { SdkLogger } from '../utils/logger.js';
import type {
CLIMessage,
CLIUserMessage,
SDKMessage,
SDKUserMessage,
CLIControlRequest,
CLIControlResponse,
ControlCancelRequest,
PermissionSuggestion,
} from '../types/protocol.js';
import {
isCLIUserMessage,
isCLIAssistantMessage,
isCLISystemMessage,
isCLIResultMessage,
isCLIPartialAssistantMessage,
isSDKUserMessage,
isSDKAssistantMessage,
isSDKSystemMessage,
isSDKResultMessage,
isSDKPartialAssistantMessage,
isControlRequest,
isControlResponse,
isControlCancel,
@@ -52,12 +52,12 @@ interface TransportWithEndInput extends Transport {
const logger = SdkLogger.createLogger('Query');
export class Query implements AsyncIterable<CLIMessage> {
export class Query implements AsyncIterable<SDKMessage> {
private transport: Transport;
private options: QueryOptions;
private sessionId: string;
private inputStream: Stream<CLIMessage>;
private sdkMessages: AsyncGenerator<CLIMessage>;
private inputStream: Stream<SDKMessage>;
private sdkMessages: AsyncGenerator<SDKMessage>;
private abortController: AbortController;
private pendingControlRequests: Map<string, PendingControlRequest> =
new Map();
@@ -79,7 +79,7 @@ export class Query implements AsyncIterable<CLIMessage> {
this.transport = transport;
this.options = options;
this.sessionId = randomUUID();
this.inputStream = new Stream<CLIMessage>();
this.inputStream = new Stream<SDKMessage>();
this.abortController = options.abortController ?? new AbortController();
this.isSingleTurn = singleTurn;
@@ -187,7 +187,7 @@ export class Query implements AsyncIterable<CLIMessage> {
return;
}
if (isCLISystemMessage(message)) {
if (isSDKSystemMessage(message)) {
/**
* SystemMessage contains session info (cwd, tools, model, etc.)
* that should be passed to user.
@@ -196,7 +196,7 @@ export class Query implements AsyncIterable<CLIMessage> {
return;
}
if (isCLIResultMessage(message)) {
if (isSDKResultMessage(message)) {
if (this.firstResultReceivedResolve) {
this.firstResultReceivedResolve();
}
@@ -212,16 +212,16 @@ export class Query implements AsyncIterable<CLIMessage> {
}
if (
isCLIAssistantMessage(message) ||
isCLIUserMessage(message) ||
isCLIPartialAssistantMessage(message)
isSDKAssistantMessage(message) ||
isSDKUserMessage(message) ||
isSDKPartialAssistantMessage(message)
) {
this.inputStream.enqueue(message);
return;
}
logger.warn('Unknown message type:', message);
this.inputStream.enqueue(message as CLIMessage);
this.inputStream.enqueue(message as SDKMessage);
}
private async handleControlRequest(
@@ -560,29 +560,29 @@ export class Query implements AsyncIterable<CLIMessage> {
logger.info('Query closed');
}
private async *readSdkMessages(): AsyncGenerator<CLIMessage> {
private async *readSdkMessages(): AsyncGenerator<SDKMessage> {
for await (const message of this.inputStream) {
yield message;
}
}
async next(...args: [] | [unknown]): Promise<IteratorResult<CLIMessage>> {
async next(...args: [] | [unknown]): Promise<IteratorResult<SDKMessage>> {
return this.sdkMessages.next(...args);
}
async return(value?: unknown): Promise<IteratorResult<CLIMessage>> {
async return(value?: unknown): Promise<IteratorResult<SDKMessage>> {
return this.sdkMessages.return(value);
}
async throw(e?: unknown): Promise<IteratorResult<CLIMessage>> {
async throw(e?: unknown): Promise<IteratorResult<SDKMessage>> {
return this.sdkMessages.throw(e);
}
[Symbol.asyncIterator](): AsyncIterator<CLIMessage> {
[Symbol.asyncIterator](): AsyncIterator<SDKMessage> {
return this.sdkMessages;
}
async streamInput(messages: AsyncIterable<CLIUserMessage>): Promise<void> {
async streamInput(messages: AsyncIterable<SDKUserMessage>): Promise<void> {
if (this.closed) {
throw new Error('Query is closed');
}

View File

@@ -2,7 +2,7 @@
* Factory function for creating Query instances.
*/
import type { CLIUserMessage } from '../types/protocol.js';
import type { SDKUserMessage } from '../types/protocol.js';
import { serializeJsonLine } from '../utils/jsonLines.js';
import { ProcessTransport } from '../transport/ProcessTransport.js';
import { parseExecutableSpec } from '../utils/cliPath.js';
@@ -22,11 +22,11 @@ export function query({
/**
* The prompt to send to the Qwen Code CLI process.
* - `string` for single-turn query,
* - `AsyncIterable<CLIUserMessage>` for multi-turn query.
* - `AsyncIterable<SDKUserMessage>` for multi-turn query.
*
* The transport will remain open until the prompt is done.
*/
prompt: string | AsyncIterable<CLIUserMessage>;
prompt: string | AsyncIterable<SDKUserMessage>;
/**
* Configuration options for the query.
*/
@@ -67,7 +67,7 @@ export function query({
if (isSingleTurn) {
const stringPrompt = prompt as string;
const message: CLIUserMessage = {
const message: SDKUserMessage = {
type: 'user',
session_id: queryInstance.getSessionId(),
message: {
@@ -87,7 +87,7 @@ export function query({
})();
} else {
queryInstance
.streamInput(prompt as AsyncIterable<CLIUserMessage>)
.streamInput(prompt as AsyncIterable<SDKUserMessage>)
.catch((err) => {
logger.error('Error streaming input:', err);
});

View File

@@ -89,7 +89,7 @@ export interface APIAssistantMessage {
usage: Usage;
}
export interface CLIUserMessage {
export interface SDKUserMessage {
type: 'user';
uuid?: string;
session_id: string;
@@ -98,7 +98,7 @@ export interface CLIUserMessage {
options?: Record<string, unknown>;
}
export interface CLIAssistantMessage {
export interface SDKAssistantMessage {
type: 'assistant';
uuid: string;
session_id: string;
@@ -106,7 +106,7 @@ export interface CLIAssistantMessage {
parent_tool_use_id: string | null;
}
export interface CLISystemMessage {
export interface SDKSystemMessage {
type: 'system';
subtype: string;
uuid: string;
@@ -133,7 +133,7 @@ export interface CLISystemMessage {
};
}
export interface CLIResultMessageSuccess {
export interface SDKResultMessageSuccess {
type: 'result';
subtype: 'success';
uuid: string;
@@ -149,7 +149,7 @@ export interface CLIResultMessageSuccess {
[key: string]: unknown;
}
export interface CLIResultMessageError {
export interface SDKResultMessageError {
type: 'result';
subtype: 'error_max_turns' | 'error_during_execution';
uuid: string;
@@ -169,7 +169,7 @@ export interface CLIResultMessageError {
[key: string]: unknown;
}
export type CLIResultMessage = CLIResultMessageSuccess | CLIResultMessageError;
export type SDKResultMessage = SDKResultMessageSuccess | SDKResultMessageError;
export interface MessageStartStreamEvent {
type: 'message_start';
@@ -222,7 +222,7 @@ export type StreamEvent =
| ContentBlockStopEvent
| MessageStopStreamEvent;
export interface CLIPartialAssistantMessage {
export interface SDKPartialAssistantMessage {
type: 'stream_event';
uuid: string;
session_id: string;
@@ -389,22 +389,22 @@ export type ControlMessage =
| ControlCancelRequest;
/**
* Union of all CLI message types
* Union of all SDK message types
*/
export type CLIMessage =
| CLIUserMessage
| CLIAssistantMessage
| CLISystemMessage
| CLIResultMessage
| CLIPartialAssistantMessage;
export type SDKMessage =
| SDKUserMessage
| SDKAssistantMessage
| SDKSystemMessage
| SDKResultMessage
| SDKPartialAssistantMessage;
export function isCLIUserMessage(msg: any): msg is CLIUserMessage {
export function isSDKUserMessage(msg: any): msg is SDKUserMessage {
return (
msg && typeof msg === 'object' && msg.type === 'user' && 'message' in msg
);
}
export function isCLIAssistantMessage(msg: any): msg is CLIAssistantMessage {
export function isSDKAssistantMessage(msg: any): msg is SDKAssistantMessage {
return (
msg &&
typeof msg === 'object' &&
@@ -416,7 +416,7 @@ export function isCLIAssistantMessage(msg: any): msg is CLIAssistantMessage {
);
}
export function isCLISystemMessage(msg: any): msg is CLISystemMessage {
export function isSDKSystemMessage(msg: any): msg is SDKSystemMessage {
return (
msg &&
typeof msg === 'object' &&
@@ -427,7 +427,7 @@ export function isCLISystemMessage(msg: any): msg is CLISystemMessage {
);
}
export function isCLIResultMessage(msg: any): msg is CLIResultMessage {
export function isSDKResultMessage(msg: any): msg is SDKResultMessage {
return (
msg &&
typeof msg === 'object' &&
@@ -440,9 +440,9 @@ export function isCLIResultMessage(msg: any): msg is CLIResultMessage {
);
}
export function isCLIPartialAssistantMessage(
export function isSDKPartialAssistantMessage(
msg: any,
): msg is CLIPartialAssistantMessage {
): msg is SDKPartialAssistantMessage {
return (
msg &&
typeof msg === 'object' &&