diff --git a/src/cli/run/runner.ts b/src/cli/run/runner.ts index 81763668f..d02ac4dac 100644 --- a/src/cli/run/runner.ts +++ b/src/cli/run/runner.ts @@ -13,7 +13,7 @@ import { loadAgentProfileColors } from "./agent-profile-colors" import { suppressRunInput } from "./stdin-suppression" import { createTimestampedStdoutController } from "./timestamp-output" import { createCliPostHog, getPostHogDistinctId } from "../../shared/posthog" -import { promptAsyncAfterSessionIdle } from "../../shared/prompt-async-gate" +import { dispatchInternalPrompt } from "../../shared/prompt-async-gate" export { resolveRunAgent } @@ -110,7 +110,8 @@ export async function run(options: RunOptions): Promise { () => {}, ) - const promptResult = await promptAsyncAfterSessionIdle({ + const promptResult = await dispatchInternalPrompt({ + mode: "async", client, sessionID, source: "cli-run", diff --git a/src/hooks/todo-continuation-enforcer/continuation-injection.test.ts b/src/hooks/todo-continuation-enforcer/continuation-injection.test.ts index c757d4a81..caf6ba91d 100644 --- a/src/hooks/todo-continuation-enforcer/continuation-injection.test.ts +++ b/src/hooks/todo-continuation-enforcer/continuation-injection.test.ts @@ -4,7 +4,7 @@ const { afterEach, describe, expect, test } = require("bun:test") import { injectContinuation } from "./continuation-injection" import { OMO_INTERNAL_INITIATOR_MARKER } from "../../shared/internal-initiator-marker" import { - promptAsyncAfterSessionIdle, + dispatchInternalPrompt, releaseAllPromptAsyncReservationsForTesting, releasePromptAsyncReservation, } from "../shared/prompt-async-gate" @@ -260,7 +260,8 @@ describe("injectContinuation", () => { } // when - const peerMessageResult = await promptAsyncAfterSessionIdle({ + const peerMessageResult = await dispatchInternalPrompt({ + mode: "async", client: ctx.client, sessionID, source: "team-live-delivery", diff --git a/src/shared/model-suggestion-retry.ts b/src/shared/model-suggestion-retry.ts index 3113e962f..3f0dff3b7 100644 --- a/src/shared/model-suggestion-retry.ts +++ b/src/shared/model-suggestion-retry.ts @@ -6,8 +6,7 @@ import { type PromptRetryOptions, } from "./prompt-timeout-context" import { - promptAfterSessionIdle, - promptAsyncAfterSessionIdle, + dispatchInternalPrompt, releasePromptAsyncReservation, } from "./prompt-async-gate" @@ -100,7 +99,8 @@ export async function promptWithModelSuggestionRetry( const timeoutContext = createPromptTimeoutContext(args, timeoutMs) try { - const promptResult = await promptAsyncAfterSessionIdle({ + const promptResult = await dispatchInternalPrompt({ + mode: "async", client, sessionID: args.path.id, input: { @@ -140,7 +140,8 @@ export async function promptSyncWithModelSuggestionRetry( try { const timeoutContext = createPromptTimeoutContext(args, timeoutMs) try { - const promptResult = await promptAfterSessionIdle({ + const promptResult = await dispatchInternalPrompt({ + mode: "sync", client, sessionID: args.path.id, input: { @@ -197,7 +198,8 @@ export async function promptSyncWithModelSuggestionRetry( const timeoutContext = createPromptTimeoutContext(retryArgs, timeoutMs) try { - const promptResult = await promptAfterSessionIdle({ + const promptResult = await dispatchInternalPrompt({ + mode: "sync", client, sessionID: retryArgs.path.id, input: { diff --git a/src/shared/session-route.ts b/src/shared/session-route.ts index 3a39277d6..d94ce4961 100644 --- a/src/shared/session-route.ts +++ b/src/shared/session-route.ts @@ -3,7 +3,7 @@ import { promptSyncWithModelSuggestionRetry, promptWithModelSuggestionRetry, } from "./model-suggestion-retry" -import { promptAsyncAfterSessionIdle } from "./prompt-async-gate" +import { dispatchInternalPrompt } from "./prompt-async-gate" type OpencodeClient = PluginInput["client"] @@ -59,7 +59,8 @@ export function promptAsyncInDirectory( return Promise.reject(new Error("session id is required for routed promptAsync")) } - return promptAsyncAfterSessionIdle({ + return dispatchInternalPrompt({ + mode: "async", client, sessionID, input: routedArgs,