mirror of
https://github.com/QwenLM/qwen-code.git
synced 2026-04-29 12:11:09 +00:00
add singal abort for hooks
This commit is contained in:
parent
a0041191a7
commit
8bd7cf2cda
16 changed files with 344 additions and 52 deletions
|
|
@ -89,9 +89,12 @@ export class HookSystem {
|
|||
|
||||
async fireUserPromptSubmitEvent(
|
||||
prompt: string,
|
||||
signal?: AbortSignal,
|
||||
): Promise<DefaultHookOutput | undefined> {
|
||||
const result =
|
||||
await this.hookEventHandler.fireUserPromptSubmitEvent(prompt);
|
||||
const result = await this.hookEventHandler.fireUserPromptSubmitEvent(
|
||||
prompt,
|
||||
signal,
|
||||
);
|
||||
return result.finalOutput
|
||||
? createHookOutput('UserPromptSubmit', result.finalOutput)
|
||||
: undefined;
|
||||
|
|
@ -100,10 +103,12 @@ export class HookSystem {
|
|||
async fireStopEvent(
|
||||
stopHookActive: boolean = false,
|
||||
lastAssistantMessage: string = '',
|
||||
signal?: AbortSignal,
|
||||
): Promise<DefaultHookOutput | undefined> {
|
||||
const result = await this.hookEventHandler.fireStopEvent(
|
||||
stopHookActive,
|
||||
lastAssistantMessage,
|
||||
signal,
|
||||
);
|
||||
return result.finalOutput
|
||||
? createHookOutput('Stop', result.finalOutput)
|
||||
|
|
@ -115,12 +120,14 @@ export class HookSystem {
|
|||
model: string,
|
||||
permissionMode?: PermissionMode,
|
||||
agentType?: AgentType,
|
||||
signal?: AbortSignal,
|
||||
): Promise<DefaultHookOutput | undefined> {
|
||||
const result = await this.hookEventHandler.fireSessionStartEvent(
|
||||
source,
|
||||
model,
|
||||
permissionMode,
|
||||
agentType,
|
||||
signal,
|
||||
);
|
||||
return result.finalOutput
|
||||
? createHookOutput('SessionStart', result.finalOutput)
|
||||
|
|
@ -129,8 +136,12 @@ export class HookSystem {
|
|||
|
||||
async fireSessionEndEvent(
|
||||
reason: SessionEndReason,
|
||||
signal?: AbortSignal,
|
||||
): Promise<DefaultHookOutput | undefined> {
|
||||
const result = await this.hookEventHandler.fireSessionEndEvent(reason);
|
||||
const result = await this.hookEventHandler.fireSessionEndEvent(
|
||||
reason,
|
||||
signal,
|
||||
);
|
||||
return result.finalOutput
|
||||
? createHookOutput('SessionEnd', result.finalOutput)
|
||||
: undefined;
|
||||
|
|
@ -144,12 +155,14 @@ export class HookSystem {
|
|||
toolInput: Record<string, unknown>,
|
||||
toolUseId: string,
|
||||
permissionMode: PermissionMode,
|
||||
signal?: AbortSignal,
|
||||
): Promise<DefaultHookOutput | undefined> {
|
||||
const result = await this.hookEventHandler.firePreToolUseEvent(
|
||||
toolName,
|
||||
toolInput,
|
||||
toolUseId,
|
||||
permissionMode,
|
||||
signal,
|
||||
);
|
||||
return result.finalOutput
|
||||
? createHookOutput('PreToolUse', result.finalOutput)
|
||||
|
|
@ -165,6 +178,7 @@ export class HookSystem {
|
|||
toolResponse: Record<string, unknown>,
|
||||
toolUseId: string,
|
||||
permissionMode: PermissionMode,
|
||||
signal?: AbortSignal,
|
||||
): Promise<DefaultHookOutput | undefined> {
|
||||
const result = await this.hookEventHandler.firePostToolUseEvent(
|
||||
toolName,
|
||||
|
|
@ -172,6 +186,7 @@ export class HookSystem {
|
|||
toolResponse,
|
||||
toolUseId,
|
||||
permissionMode,
|
||||
signal,
|
||||
);
|
||||
return result.finalOutput
|
||||
? createHookOutput('PostToolUse', result.finalOutput)
|
||||
|
|
@ -188,6 +203,7 @@ export class HookSystem {
|
|||
errorMessage: string,
|
||||
isInterrupt?: boolean,
|
||||
permissionMode?: PermissionMode,
|
||||
signal?: AbortSignal,
|
||||
): Promise<DefaultHookOutput | undefined> {
|
||||
const result = await this.hookEventHandler.firePostToolUseFailureEvent(
|
||||
toolUseId,
|
||||
|
|
@ -196,6 +212,7 @@ export class HookSystem {
|
|||
errorMessage,
|
||||
isInterrupt,
|
||||
permissionMode,
|
||||
signal,
|
||||
);
|
||||
return result.finalOutput
|
||||
? createHookOutput('PostToolUseFailure', result.finalOutput)
|
||||
|
|
@ -208,10 +225,12 @@ export class HookSystem {
|
|||
async firePreCompactEvent(
|
||||
trigger: PreCompactTrigger,
|
||||
customInstructions: string = '',
|
||||
signal?: AbortSignal,
|
||||
): Promise<DefaultHookOutput | undefined> {
|
||||
const result = await this.hookEventHandler.firePreCompactEvent(
|
||||
trigger,
|
||||
customInstructions,
|
||||
signal,
|
||||
);
|
||||
return result.finalOutput
|
||||
? createHookOutput('PreCompact', result.finalOutput)
|
||||
|
|
@ -225,11 +244,13 @@ export class HookSystem {
|
|||
message: string,
|
||||
notificationType: NotificationType,
|
||||
title?: string,
|
||||
signal?: AbortSignal,
|
||||
): Promise<DefaultHookOutput | undefined> {
|
||||
const result = await this.hookEventHandler.fireNotificationEvent(
|
||||
message,
|
||||
notificationType,
|
||||
title,
|
||||
signal,
|
||||
);
|
||||
return result.finalOutput
|
||||
? createHookOutput('Notification', result.finalOutput)
|
||||
|
|
@ -243,11 +264,13 @@ export class HookSystem {
|
|||
agentId: string,
|
||||
agentType: AgentType | string,
|
||||
permissionMode: PermissionMode,
|
||||
signal?: AbortSignal,
|
||||
): Promise<DefaultHookOutput | undefined> {
|
||||
const result = await this.hookEventHandler.fireSubagentStartEvent(
|
||||
agentId,
|
||||
agentType,
|
||||
permissionMode,
|
||||
signal,
|
||||
);
|
||||
return result.finalOutput
|
||||
? createHookOutput('SubagentStart', result.finalOutput)
|
||||
|
|
@ -264,6 +287,7 @@ export class HookSystem {
|
|||
lastAssistantMessage: string,
|
||||
stopHookActive: boolean,
|
||||
permissionMode: PermissionMode,
|
||||
signal?: AbortSignal,
|
||||
): Promise<DefaultHookOutput | undefined> {
|
||||
const result = await this.hookEventHandler.fireSubagentStopEvent(
|
||||
agentId,
|
||||
|
|
@ -272,6 +296,7 @@ export class HookSystem {
|
|||
lastAssistantMessage,
|
||||
stopHookActive,
|
||||
permissionMode,
|
||||
signal,
|
||||
);
|
||||
return result.finalOutput
|
||||
? createHookOutput('SubagentStop', result.finalOutput)
|
||||
|
|
@ -286,12 +311,14 @@ export class HookSystem {
|
|||
toolInput: Record<string, unknown>,
|
||||
permissionMode: PermissionMode,
|
||||
permissionSuggestions?: PermissionSuggestion[],
|
||||
signal?: AbortSignal,
|
||||
): Promise<DefaultHookOutput | undefined> {
|
||||
const result = await this.hookEventHandler.firePermissionRequestEvent(
|
||||
toolName,
|
||||
toolInput,
|
||||
permissionMode,
|
||||
permissionSuggestions,
|
||||
signal,
|
||||
);
|
||||
return result.finalOutput
|
||||
? createHookOutput('PermissionRequest', result.finalOutput)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue