Skip to content

Commit 126f773

Browse files
authored
refactor(tasks): route acp through executor (#57478)
* refactor(tasks): add executor facade * refactor(tasks): extract delivery policy * refactor(tasks): route acp through executor
1 parent 0e078e8 commit 126f773

2 files changed

Lines changed: 22 additions & 14 deletions

File tree

src/acp/control-plane/manager.core.ts

Lines changed: 19 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,11 @@ import { logVerbose } from "../../globals.js";
44
import { normalizeAgentId } from "../../routing/session-key.js";
55
import { isAcpSessionKey } from "../../sessions/session-key-utils.js";
66
import {
7-
createTaskRecord,
8-
markTaskRunningByRunId,
9-
markTaskTerminalByRunId,
10-
} from "../../tasks/task-registry.js";
7+
createRunningTaskRun,
8+
completeTaskRunByRunId,
9+
failTaskRunByRunId,
10+
startTaskRunByRunId,
11+
} from "../../tasks/task-executor.js";
1112
import type { DeliveryContext } from "../../utils/delivery-context.js";
1213
import {
1314
AcpRuntimeError,
@@ -1880,7 +1881,7 @@ export class AcpSessionManager {
18801881

18811882
private createBackgroundTaskRecord(context: BackgroundTaskContext, startedAt: number): void {
18821883
try {
1883-
createTaskRecord({
1884+
createRunningTaskRun({
18841885
runtime: "acp",
18851886
sourceId: context.runId,
18861887
requesterSessionKey: context.requesterSessionKey,
@@ -1889,7 +1890,6 @@ export class AcpSessionManager {
18891890
runId: context.runId,
18901891
label: context.label,
18911892
task: context.task,
1892-
status: "running",
18931893
startedAt,
18941894
});
18951895
} catch (error) {
@@ -1907,7 +1907,7 @@ export class AcpSessionManager {
19071907
},
19081908
): void {
19091909
try {
1910-
markTaskRunningByRunId({
1910+
startTaskRunByRunId({
19111911
runId,
19121912
lastEventAt: params.lastEventAt,
19131913
progressSummary: params.progressSummary,
@@ -1930,15 +1930,25 @@ export class AcpSessionManager {
19301930
},
19311931
): void {
19321932
try {
1933-
markTaskTerminalByRunId({
1933+
if (params.status === "succeeded") {
1934+
completeTaskRunByRunId({
1935+
runId,
1936+
endedAt: params.endedAt,
1937+
lastEventAt: params.lastEventAt,
1938+
progressSummary: params.progressSummary,
1939+
terminalSummary: params.terminalSummary,
1940+
terminalOutcome: params.terminalOutcome,
1941+
});
1942+
return;
1943+
}
1944+
failTaskRunByRunId({
19341945
runId,
19351946
status: params.status,
19361947
endedAt: params.endedAt,
19371948
lastEventAt: params.lastEventAt,
19381949
error: params.error,
19391950
progressSummary: params.progressSummary,
19401951
terminalSummary: params.terminalSummary,
1941-
terminalOutcome: params.terminalOutcome,
19421952
});
19431953
} catch (error) {
19441954
logVerbose(`acp-manager: failed updating background task for ${runId}: ${String(error)}`);

src/agents/acp-spawn.ts

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ import {
4444
normalizeAgentId,
4545
parseAgentSessionKey,
4646
} from "../routing/session-key.js";
47-
import { createTaskRecord } from "../tasks/task-registry.js";
47+
import { createRunningTaskRun } from "../tasks/task-executor.js";
4848
import {
4949
deliveryContextFromSession,
5050
formatConversationTarget,
@@ -953,7 +953,7 @@ export async function spawnAcpDirect(
953953
}
954954
parentRelay?.notifyStarted();
955955
try {
956-
createTaskRecord({
956+
createRunningTaskRun({
957957
runtime: "acp",
958958
sourceId: childRunId,
959959
requesterSessionKey: requesterInternalKey,
@@ -963,7 +963,6 @@ export async function spawnAcpDirect(
963963
label: params.label,
964964
task: params.task,
965965
preferMetadata: true,
966-
status: "running",
967966
deliveryStatus: requesterInternalKey.trim() ? "pending" : "parent_missing",
968967
startedAt: Date.now(),
969968
});
@@ -985,7 +984,7 @@ export async function spawnAcpDirect(
985984
}
986985

987986
try {
988-
createTaskRecord({
987+
createRunningTaskRun({
989988
runtime: "acp",
990989
sourceId: childRunId,
991990
requesterSessionKey: requesterInternalKey,
@@ -995,7 +994,6 @@ export async function spawnAcpDirect(
995994
label: params.label,
996995
task: params.task,
997996
preferMetadata: true,
998-
status: "running",
999997
deliveryStatus: requesterInternalKey.trim() ? "pending" : "parent_missing",
1000998
startedAt: Date.now(),
1001999
});

0 commit comments

Comments
 (0)