@agent-vm/agent-vm-worker 0.0.93 → 0.0.94

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,5 +1,6 @@
1
1
  import type { WorkerConfig } from '../config/worker-config.js';
2
2
  import type { RepoLocation } from '../shared/repo-location.js';
3
+ import type { TaskStatus } from '../state/task-event-types.js';
3
4
  import type { TaskState } from '../state/task-state.js';
4
5
  export interface CreateTaskInput {
5
6
  readonly taskId: string;
@@ -18,8 +19,12 @@ export interface Coordinator {
18
19
  }>;
19
20
  getActiveTaskId(): string | null;
20
21
  getTaskState(taskId: string): TaskState | undefined;
22
+ waitForTaskStatus(taskId: string, status: TaskStatus, options?: WaitForTaskStatusOptions): Promise<TaskState>;
21
23
  closeTask(taskId: string): Promise<{
22
24
  status: 'closed';
23
25
  }>;
24
26
  }
27
+ export interface WaitForTaskStatusOptions {
28
+ readonly timeoutMs?: number;
29
+ }
25
30
  //# sourceMappingURL=coordinator-types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"coordinator-types.d.ts","sourceRoot":"","sources":["../../src/coordinator/coordinator-types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAExD,MAAM,WAAW,eAAe;IAC/B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,YAAY,EAAE,CAAC;IACzC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC3C;AAED,MAAM,WAAW,eAAe;IAC/B,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC;IAC9B,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,WAAW;IAC3B,UAAU,CAAC,KAAK,EAAE,eAAe,GAAG,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,UAAU,CAAA;KAAE,CAAC,CAAC;IACpF,eAAe,IAAI,MAAM,GAAG,IAAI,CAAC;IACjC,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,CAAC;IACpD,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,MAAM,EAAE,QAAQ,CAAA;KAAE,CAAC,CAAC;CACzD"}
1
+ {"version":3,"file":"coordinator-types.d.ts","sourceRoot":"","sources":["../../src/coordinator/coordinator-types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAExD,MAAM,WAAW,eAAe;IAC/B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,YAAY,EAAE,CAAC;IACzC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC3C;AAED,MAAM,WAAW,eAAe;IAC/B,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC;IAC9B,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,WAAW;IAC3B,UAAU,CAAC,KAAK,EAAE,eAAe,GAAG,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,UAAU,CAAA;KAAE,CAAC,CAAC;IACpF,eAAe,IAAI,MAAM,GAAG,IAAI,CAAC;IACjC,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS,CAAC;IACpD,iBAAiB,CAChB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,UAAU,EAClB,OAAO,CAAC,EAAE,wBAAwB,GAChC,OAAO,CAAC,SAAS,CAAC,CAAC;IACtB,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,MAAM,EAAE,QAAQ,CAAA;KAAE,CAAC,CAAC;CACzD;AAED,MAAM,WAAW,wBAAwB;IACxC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC5B"}
@@ -1 +1 @@
1
- {"version":3,"file":"coordinator.d.ts","sourceRoot":"","sources":["../../src/coordinator/coordinator.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,WAAW,EAAE,eAAe,EAAmB,MAAM,wBAAwB,CAAC;AAG5F,YAAY,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAyB3E,wBAAsB,iBAAiB,CAAC,IAAI,EAAE,eAAe,GAAG,OAAO,CAAC,WAAW,CAAC,CA6DnF"}
1
+ {"version":3,"file":"coordinator.d.ts","sourceRoot":"","sources":["../../src/coordinator/coordinator.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EACX,WAAW,EACX,eAAe,EAGf,MAAM,wBAAwB,CAAC;AAGhC,YAAY,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAoC3E,wBAAsB,iBAAiB,CAAC,IAAI,EAAE,eAAe,GAAG,OAAO,CAAC,WAAW,CAAC,CAmKnF"}
@@ -2,7 +2,7 @@ import { writeStderr } from '../shared/stderr.js';
2
2
  import { createInitialState, hydrateTaskStates, isTerminal, } from '../state/task-state.js';
3
3
  import { buildTaskConfig, createTaskEventRecorder, formatTaskFailureReason, } from './coordinator-helpers.js';
4
4
  import { runTask } from './task-runner.js';
5
- async function handleRunTaskEscape(taskId, error, tasks, eventRecorder, finishActiveTask) {
5
+ async function handleRunTaskEscape(taskId, error, tasks, eventRecorder, finishActiveTask, notifyTaskStateChanged) {
6
6
  const reason = formatTaskFailureReason(error);
7
7
  writeStderr(`[coordinator] Unhandled runTask error for ${taskId}: ${reason}`);
8
8
  try {
@@ -14,23 +14,82 @@ async function handleRunTaskEscape(taskId, error, tasks, eventRecorder, finishAc
14
14
  const current = tasks.get(taskId);
15
15
  if (current && !isTerminal(current)) {
16
16
  tasks.set(taskId, { ...current, status: 'failed', updatedAt: new Date().toISOString() });
17
+ notifyTaskStateChanged(taskId);
17
18
  }
18
19
  }
19
20
  finally {
20
21
  finishActiveTask(taskId);
21
22
  }
22
23
  }
24
+ const defaultTaskStatusWaitTimeoutMs = 5_000;
23
25
  export async function createCoordinator(deps) {
24
26
  const workDir = deps.workDir ?? '/work';
25
27
  const tasks = await hydrateTaskStates(deps.config.stateDir);
26
28
  const closedTaskIds = new Set();
27
- const eventRecorder = createTaskEventRecorder(deps.config.stateDir, tasks, closedTaskIds);
29
+ const taskStatusWaiters = new Map();
30
+ const baseEventRecorder = createTaskEventRecorder(deps.config.stateDir, tasks, closedTaskIds);
28
31
  let activeTaskId = null;
29
32
  function finishActiveTask(taskId) {
30
33
  if (activeTaskId === taskId) {
31
34
  activeTaskId = null;
32
35
  }
33
36
  }
37
+ function notifyTaskStateChanged(taskId) {
38
+ const state = tasks.get(taskId);
39
+ if (state === undefined) {
40
+ return;
41
+ }
42
+ const waiters = taskStatusWaiters.get(taskId);
43
+ if (waiters === undefined) {
44
+ return;
45
+ }
46
+ const remainingWaiters = [];
47
+ for (const waiter of waiters) {
48
+ if (state.status === waiter.status) {
49
+ clearTimeout(waiter.timeout);
50
+ waiter.resolve(state);
51
+ }
52
+ else if (isTerminal(state)) {
53
+ clearTimeout(waiter.timeout);
54
+ waiter.reject(new Error(`Task ${taskId} reached terminal status ${state.status} before ${waiter.status}.`));
55
+ }
56
+ else {
57
+ remainingWaiters.push(waiter);
58
+ }
59
+ }
60
+ if (remainingWaiters.length === 0) {
61
+ taskStatusWaiters.delete(taskId);
62
+ }
63
+ else {
64
+ taskStatusWaiters.set(taskId, remainingWaiters);
65
+ }
66
+ }
67
+ function removeTaskStatusWaiter(taskId, targetWaiter) {
68
+ const waiters = taskStatusWaiters.get(taskId);
69
+ if (waiters === undefined) {
70
+ return;
71
+ }
72
+ const remainingWaiters = waiters.filter((waiter) => waiter !== targetWaiter);
73
+ if (remainingWaiters.length === 0) {
74
+ taskStatusWaiters.delete(taskId);
75
+ }
76
+ else {
77
+ taskStatusWaiters.set(taskId, remainingWaiters);
78
+ }
79
+ }
80
+ const eventRecorder = {
81
+ async emit(taskId, event) {
82
+ await baseEventRecorder.emit(taskId, event);
83
+ notifyTaskStateChanged(taskId);
84
+ },
85
+ isClosed(taskId) {
86
+ return baseEventRecorder.isClosed(taskId);
87
+ },
88
+ async recordTaskFailure(taskId, reason) {
89
+ await baseEventRecorder.recordTaskFailure(taskId, reason);
90
+ notifyTaskStateChanged(taskId);
91
+ },
92
+ };
34
93
  return {
35
94
  async submitTask(input) {
36
95
  if (activeTaskId !== null) {
@@ -46,7 +105,7 @@ export async function createCoordinator(deps) {
46
105
  });
47
106
  activeTaskId = taskId;
48
107
  void runTask(taskId, deps, workDir, tasks, eventRecorder, () => finishActiveTask(taskId)).catch(async (error) => {
49
- await handleRunTaskEscape(taskId, error, tasks, eventRecorder, finishActiveTask);
108
+ await handleRunTaskEscape(taskId, error, tasks, eventRecorder, finishActiveTask, notifyTaskStateChanged);
50
109
  });
51
110
  return { taskId, status: 'accepted' };
52
111
  },
@@ -56,6 +115,30 @@ export async function createCoordinator(deps) {
56
115
  getTaskState(taskId) {
57
116
  return tasks.get(taskId);
58
117
  },
118
+ async waitForTaskStatus(taskId, status, options = {}) {
119
+ const state = tasks.get(taskId);
120
+ if (state?.status === status) {
121
+ return state;
122
+ }
123
+ if (state !== undefined && isTerminal(state)) {
124
+ throw new Error(`Task ${taskId} reached terminal status ${state.status} before ${status}.`);
125
+ }
126
+ const timeoutMs = options.timeoutMs ?? defaultTaskStatusWaitTimeoutMs;
127
+ return await new Promise((resolve, reject) => {
128
+ const waiters = taskStatusWaiters.get(taskId) ?? [];
129
+ const waiter = {
130
+ reject,
131
+ resolve,
132
+ status,
133
+ timeout: setTimeout(() => {
134
+ removeTaskStatusWaiter(taskId, waiter);
135
+ reject(new Error(`Task ${taskId} did not reach ${status} within ${String(timeoutMs)}ms. Last status: ${tasks.get(taskId)?.status ?? 'unknown'}.`));
136
+ }, timeoutMs),
137
+ };
138
+ waiters.push(waiter);
139
+ taskStatusWaiters.set(taskId, waiters);
140
+ });
141
+ },
59
142
  async closeTask(taskId) {
60
143
  const state = tasks.get(taskId);
61
144
  if (!state) {
@@ -1 +1 @@
1
- {"version":3,"file":"coordinator.js","sourceRoot":"","sources":["../../src/coordinator/coordinator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"coordinator.js","sourceRoot":"","sources":["../../src/coordinator/coordinator.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@agent-vm/agent-vm-worker",
3
- "version": "0.0.93",
3
+ "version": "0.0.94",
4
4
  "description": "Worker process that runs inside a sandboxed VM, plans, edits, validates, and reviews coding tasks.",
5
5
  "homepage": "https://github.com/ShravanSunder/agent-vm#readme",
6
6
  "bugs": {
@@ -41,7 +41,7 @@
41
41
  "hono": "^4.12.18",
42
42
  "jsonc-parser": "^3.3.1",
43
43
  "zod": "^4.4.3",
44
- "@agent-vm/gateway-interface": "0.0.93"
44
+ "@agent-vm/gateway-interface": "0.0.94"
45
45
  },
46
46
  "devDependencies": {
47
47
  "vitest": "^4.1.5"