fix: abort embedded prompts on cancel

This commit is contained in:
Peter Steinberger
2026-01-18 05:17:28 +00:00
parent 89c5185f1c
commit 016693a1f5
16 changed files with 128 additions and 44 deletions

View File

@@ -1,5 +1,39 @@
import type { LogLevel } from "../../logging/levels.js";
type ShouldLogVerbose = typeof import("../../globals.js").shouldLogVerbose;
type DispatchReplyWithBufferedBlockDispatcher =
typeof import("../../auto-reply/reply/provider-dispatcher.js").dispatchReplyWithBufferedBlockDispatcher;
type CreateReplyDispatcherWithTyping =
typeof import("../../auto-reply/reply/reply-dispatcher.js").createReplyDispatcherWithTyping;
type ResolveEffectiveMessagesConfig =
typeof import("../../agents/identity.js").resolveEffectiveMessagesConfig;
type ResolveHumanDelayConfig = typeof import("../../agents/identity.js").resolveHumanDelayConfig;
type ResolveAgentRoute = typeof import("../../routing/resolve-route.js").resolveAgentRoute;
type BuildPairingReply = typeof import("../../pairing/pairing-messages.js").buildPairingReply;
type ReadChannelAllowFromStore =
typeof import("../../pairing/pairing-store.js").readChannelAllowFromStore;
type UpsertChannelPairingRequest =
typeof import("../../pairing/pairing-store.js").upsertChannelPairingRequest;
type FetchRemoteMedia = typeof import("../../media/fetch.js").fetchRemoteMedia;
type SaveMediaBuffer = typeof import("../../media/store.js").saveMediaBuffer;
type BuildMentionRegexes = typeof import("../../auto-reply/reply/mentions.js").buildMentionRegexes;
type MatchesMentionPatterns =
typeof import("../../auto-reply/reply/mentions.js").matchesMentionPatterns;
type ResolveChannelGroupPolicy =
typeof import("../../config/group-policy.js").resolveChannelGroupPolicy;
type ResolveChannelGroupRequireMention =
typeof import("../../config/group-policy.js").resolveChannelGroupRequireMention;
type CreateInboundDebouncer =
typeof import("../../auto-reply/inbound-debounce.js").createInboundDebouncer;
type ResolveInboundDebounceMs =
typeof import("../../auto-reply/inbound-debounce.js").resolveInboundDebounceMs;
type ResolveCommandAuthorizedFromAuthorizers =
typeof import("../../channels/command-gating.js").resolveCommandAuthorizedFromAuthorizers;
type ResolveTextChunkLimit = typeof import("../../auto-reply/chunk.js").resolveTextChunkLimit;
type ChunkMarkdownText = typeof import("../../auto-reply/chunk.js").chunkMarkdownText;
type HasControlCommand = typeof import("../../auto-reply/command-detection.js").hasControlCommand;
type ResolveStateDir = typeof import("../../config/paths.js").resolveStateDir;
export type RuntimeLogger = {
debug?: (message: string) => void;
info: (message: string) => void;
@@ -11,52 +45,52 @@ export type PluginRuntime = {
version: string;
channel: {
text: {
chunkMarkdownText: typeof import("../../auto-reply/chunk.js").chunkMarkdownText;
resolveTextChunkLimit: typeof import("../../auto-reply/chunk.js").resolveTextChunkLimit;
hasControlCommand: typeof import("../../auto-reply/command-detection.js").hasControlCommand;
chunkMarkdownText: ChunkMarkdownText;
resolveTextChunkLimit: ResolveTextChunkLimit;
hasControlCommand: HasControlCommand;
};
reply: {
dispatchReplyWithBufferedBlockDispatcher: typeof import("../../auto-reply/reply/provider-dispatcher.js").dispatchReplyWithBufferedBlockDispatcher;
createReplyDispatcherWithTyping: typeof import("../../auto-reply/reply/reply-dispatcher.js").createReplyDispatcherWithTyping;
resolveEffectiveMessagesConfig: typeof import("../../agents/identity.js").resolveEffectiveMessagesConfig;
resolveHumanDelayConfig: typeof import("../../agents/identity.js").resolveHumanDelayConfig;
dispatchReplyWithBufferedBlockDispatcher: DispatchReplyWithBufferedBlockDispatcher;
createReplyDispatcherWithTyping: CreateReplyDispatcherWithTyping;
resolveEffectiveMessagesConfig: ResolveEffectiveMessagesConfig;
resolveHumanDelayConfig: ResolveHumanDelayConfig;
};
routing: {
resolveAgentRoute: typeof import("../../routing/resolve-route.js").resolveAgentRoute;
resolveAgentRoute: ResolveAgentRoute;
};
pairing: {
buildPairingReply: typeof import("../../pairing/pairing-messages.js").buildPairingReply;
readAllowFromStore: typeof import("../../pairing/pairing-store.js").readChannelAllowFromStore;
upsertPairingRequest: typeof import("../../pairing/pairing-store.js").upsertChannelPairingRequest;
buildPairingReply: BuildPairingReply;
readAllowFromStore: ReadChannelAllowFromStore;
upsertPairingRequest: UpsertChannelPairingRequest;
};
media: {
fetchRemoteMedia: typeof import("../../media/fetch.js").fetchRemoteMedia;
saveMediaBuffer: typeof import("../../media/store.js").saveMediaBuffer;
fetchRemoteMedia: FetchRemoteMedia;
saveMediaBuffer: SaveMediaBuffer;
};
mentions: {
buildMentionRegexes: typeof import("../../auto-reply/reply/mentions.js").buildMentionRegexes;
matchesMentionPatterns: typeof import("../../auto-reply/reply/mentions.js").matchesMentionPatterns;
buildMentionRegexes: BuildMentionRegexes;
matchesMentionPatterns: MatchesMentionPatterns;
};
groups: {
resolveGroupPolicy: typeof import("../../config/group-policy.js").resolveChannelGroupPolicy;
resolveRequireMention: typeof import("../../config/group-policy.js").resolveChannelGroupRequireMention;
resolveGroupPolicy: ResolveChannelGroupPolicy;
resolveRequireMention: ResolveChannelGroupRequireMention;
};
debounce: {
createInboundDebouncer: typeof import("../../auto-reply/inbound-debounce.js").createInboundDebouncer;
resolveInboundDebounceMs: typeof import("../../auto-reply/inbound-debounce.js").resolveInboundDebounceMs;
createInboundDebouncer: CreateInboundDebouncer;
resolveInboundDebounceMs: ResolveInboundDebounceMs;
};
commands: {
resolveCommandAuthorizedFromAuthorizers: typeof import("../../channels/command-gating.js").resolveCommandAuthorizedFromAuthorizers;
resolveCommandAuthorizedFromAuthorizers: ResolveCommandAuthorizedFromAuthorizers;
};
};
logging: {
shouldLogVerbose: typeof import("../../globals.js").shouldLogVerbose;
shouldLogVerbose: ShouldLogVerbose;
getChildLogger: (
bindings?: Record<string, unknown>,
opts?: { level?: LogLevel },
) => RuntimeLogger;
};
state: {
resolveStateDir: typeof import("../../config/paths.js").resolveStateDir;
resolveStateDir: ResolveStateDir;
};
};