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

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.95",
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.95"
45
45
  },
46
46
  "devDependencies": {
47
47
  "vitest": "^4.1.5"
@@ -1,5 +0,0 @@
1
- export declare function shouldRunWorkerRuntimeSmoke(options: {
2
- readonly commandExists: (command: string) => boolean;
3
- readonly env: Partial<Record<'AGENT_VM_WORKER_SMOKE' | 'OPEN_AI_TEST_KEY', string>>;
4
- }): boolean;
5
- //# sourceMappingURL=worker-smoke-gates.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"worker-smoke-gates.d.ts","sourceRoot":"","sources":["../src/worker-smoke-gates.ts"],"names":[],"mappings":"AAAA,wBAAgB,2BAA2B,CAAC,OAAO,EAAE;IACpD,QAAQ,CAAC,aAAa,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC;IACrD,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC,MAAM,CAAC,uBAAuB,GAAG,kBAAkB,EAAE,MAAM,CAAC,CAAC,CAAC;CACpF,GAAG,OAAO,CAOV"}
@@ -1,7 +0,0 @@
1
- export function shouldRunWorkerRuntimeSmoke(options) {
2
- return (options.env.AGENT_VM_WORKER_SMOKE === '1' &&
3
- typeof options.env.OPEN_AI_TEST_KEY === 'string' &&
4
- options.env.OPEN_AI_TEST_KEY.length > 0 &&
5
- options.commandExists('codex'));
6
- }
7
- //# sourceMappingURL=worker-smoke-gates.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"worker-smoke-gates.js","sourceRoot":"","sources":["../src/worker-smoke-gates.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,2BAA2B,CAAC,OAG3C;IACA,OAAO,CACN,OAAO,CAAC,GAAG,CAAC,qBAAqB,KAAK,GAAG;QACzC,OAAO,OAAO,CAAC,GAAG,CAAC,gBAAgB,KAAK,QAAQ;QAChD,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,MAAM,GAAG,CAAC;QACvC,OAAO,CAAC,aAAa,CAAC,OAAO,CAAC,CAC9B,CAAC;AACH,CAAC"}