@agentteams/runner 0.0.90 → 0.0.92
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.
- package/dist/handlers/trigger-handler.d.ts +3 -0
- package/dist/handlers/trigger-handler.js +65 -37
- package/dist/handlers/trigger-handler.js.map +1 -1
- package/dist/handlers/trigger-handler.test.js +182 -1
- package/dist/handlers/trigger-handler.test.js.map +1 -1
- package/dist/runners/amp.js +22 -8
- package/dist/runners/amp.js.map +1 -1
- package/dist/runners/claude-code.js +22 -8
- package/dist/runners/claude-code.js.map +1 -1
- package/dist/runners/opencode-json-parser.d.ts +34 -0
- package/dist/runners/opencode-json-parser.js +250 -0
- package/dist/runners/opencode-json-parser.js.map +1 -0
- package/dist/runners/opencode-json-parser.test.d.ts +1 -0
- package/dist/runners/opencode-json-parser.test.js +101 -0
- package/dist/runners/opencode-json-parser.test.js.map +1 -0
- package/dist/runners/opencode.js +35 -17
- package/dist/runners/opencode.js.map +1 -1
- package/dist/runners/stream-json-parser.d.ts +15 -0
- package/dist/runners/stream-json-parser.js +37 -0
- package/dist/runners/stream-json-parser.js.map +1 -1
- package/dist/runners/stream-json-parser.test.js +38 -1
- package/dist/runners/stream-json-parser.test.js.map +1 -1
- package/package.json +2 -1
|
@@ -3,6 +3,7 @@ import { DaemonApiClient } from '../api-client.js';
|
|
|
3
3
|
import { createRunnerFactory } from '../runners/index.js';
|
|
4
4
|
import { TriggerLogReporter } from '../runners/log-reporter.js';
|
|
5
5
|
import { resolveRunnerHistoryPaths } from '../utils/runner-history.js';
|
|
6
|
+
import { isGitRepo, createWorktree } from '../utils/git-worktree.js';
|
|
6
7
|
type TriggerHandlerOptions = {
|
|
7
8
|
config: RuntimeConfig;
|
|
8
9
|
client: DaemonApiClient;
|
|
@@ -16,6 +17,8 @@ type RemoveAttachmentDirectory = (path: string) => Promise<void>;
|
|
|
16
17
|
type TriggerHandlerDependencies = {
|
|
17
18
|
createRunnerFactory?: typeof createRunnerFactory;
|
|
18
19
|
createLogReporter?: (client: DaemonApiClient, triggerId: string) => ReporterLike;
|
|
20
|
+
isGitRepo?: typeof isGitRepo;
|
|
21
|
+
createWorktree?: typeof createWorktree;
|
|
19
22
|
readHistoryFile?: ReadHistoryFile;
|
|
20
23
|
writeHistoryFile?: WriteHistoryFile;
|
|
21
24
|
fetchAttachmentFile?: FetchAttachmentFile;
|
|
@@ -14,6 +14,8 @@ function sanitizeErrorMessage(msg) {
|
|
|
14
14
|
export const createTriggerHandler = (options, dependencies = {}) => {
|
|
15
15
|
const { config, client, onAuthPathDiscovered } = options;
|
|
16
16
|
const createRunner = (dependencies.createRunnerFactory ?? createRunnerFactory)(config.runnerCmd);
|
|
17
|
+
const checkIsGitRepo = dependencies.isGitRepo ?? isGitRepo;
|
|
18
|
+
const createRunnerWorktree = dependencies.createWorktree ?? createWorktree;
|
|
17
19
|
const createLogReporter = dependencies.createLogReporter ??
|
|
18
20
|
((apiClient, triggerId) => new TriggerLogReporter(apiClient, triggerId));
|
|
19
21
|
const readHistoryFile = dependencies.readHistoryFile ?? ((path, encoding) => readFile(path, encoding));
|
|
@@ -165,11 +167,11 @@ export const createTriggerHandler = (options, dependencies = {}) => {
|
|
|
165
167
|
reporter?.append('WARN', 'Runner did not write a history file. Captured stdout was stored as fallback history.');
|
|
166
168
|
}
|
|
167
169
|
if (historyForUpload === null) {
|
|
168
|
-
return { uploadedHistoryFile: false };
|
|
170
|
+
return { uploadedHistoryFile: false, hasHistoryFile };
|
|
169
171
|
}
|
|
170
172
|
try {
|
|
171
173
|
await client.updateTriggerHistory(triggerId, historyForUpload);
|
|
172
|
-
return { uploadedHistoryFile: hasHistoryFile };
|
|
174
|
+
return { uploadedHistoryFile: hasHistoryFile, hasHistoryFile };
|
|
173
175
|
}
|
|
174
176
|
catch (error) {
|
|
175
177
|
// 히스토리 업로드 실패는 러너 성공을 뒤집지 않는다. 로컬 파일을 보존하고 경고만 남긴다.
|
|
@@ -179,13 +181,13 @@ export const createTriggerHandler = (options, dependencies = {}) => {
|
|
|
179
181
|
error: error instanceof Error ? error.message : String(error),
|
|
180
182
|
});
|
|
181
183
|
reporter?.append('WARN', 'Failed to upload runner history to the server. The local history file is preserved.');
|
|
182
|
-
return { uploadedHistoryFile: false };
|
|
184
|
+
return { uploadedHistoryFile: false, hasHistoryFile };
|
|
183
185
|
}
|
|
184
186
|
};
|
|
185
187
|
const buildFallbackHistory = (outputText, errorMessage) => {
|
|
186
188
|
const summaryLine = errorMessage
|
|
187
189
|
? `- Runner terminated with error: ${errorMessage}`
|
|
188
|
-
: '- Runner
|
|
190
|
+
: '- Runner exited without writing the required history file (flagged for review).';
|
|
189
191
|
const trimmed = outputText.trim();
|
|
190
192
|
if (trimmed.length === 0) {
|
|
191
193
|
return ['### Summary', summaryLine, '- No stdout captured.', '', '### Questions for User', 'None'].join('\n');
|
|
@@ -211,6 +213,18 @@ export const createTriggerHandler = (options, dependencies = {}) => {
|
|
|
211
213
|
}
|
|
212
214
|
await writeHistoryFile(parentHistoryPath, normalizedMarkdown.slice(0, maxHistoryLength));
|
|
213
215
|
};
|
|
216
|
+
const reportWorktreeFailure = async (triggerId, reason, reporter) => {
|
|
217
|
+
reporter?.append('ERROR', reason);
|
|
218
|
+
try {
|
|
219
|
+
await client.reportWorktreeStatus(triggerId, 'FAILED', sanitizeErrorMessage(reason));
|
|
220
|
+
}
|
|
221
|
+
catch (error) {
|
|
222
|
+
logger.warn('Failed to report worktree failure status', {
|
|
223
|
+
triggerId,
|
|
224
|
+
error: error instanceof Error ? error.message : String(error),
|
|
225
|
+
});
|
|
226
|
+
}
|
|
227
|
+
};
|
|
214
228
|
return async (trigger) => {
|
|
215
229
|
let logReporter = null;
|
|
216
230
|
let currentHistoryPath = null;
|
|
@@ -239,41 +253,45 @@ export const createTriggerHandler = (options, dependencies = {}) => {
|
|
|
239
253
|
});
|
|
240
254
|
activeLogReporter.append('INFO', `Runtime fetched (agentConfigId=${runtime.agentConfigId}).`);
|
|
241
255
|
let effectiveAuthPath = runtime.authPath;
|
|
242
|
-
if (runtime.useWorktree
|
|
256
|
+
if (runtime.useWorktree) {
|
|
257
|
+
if (!runtime.authPath) {
|
|
258
|
+
const reason = 'Worktree requested but authPath is not configured.';
|
|
259
|
+
logger.warn('Worktree requested but authPath is not configured', {
|
|
260
|
+
triggerId: trigger.id,
|
|
261
|
+
});
|
|
262
|
+
await reportWorktreeFailure(trigger.id, reason, activeLogReporter);
|
|
263
|
+
throw new Error(reason);
|
|
264
|
+
}
|
|
265
|
+
if (!checkIsGitRepo(runtime.authPath)) {
|
|
266
|
+
const reason = `Not a git repository: ${runtime.authPath}`;
|
|
267
|
+
logger.warn('Worktree requested but authPath is not a git repo', {
|
|
268
|
+
triggerId: trigger.id,
|
|
269
|
+
authPath: runtime.authPath,
|
|
270
|
+
});
|
|
271
|
+
await reportWorktreeFailure(trigger.id, reason, activeLogReporter);
|
|
272
|
+
throw new Error(reason);
|
|
273
|
+
}
|
|
243
274
|
try {
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
});
|
|
256
|
-
}
|
|
257
|
-
else {
|
|
258
|
-
logger.warn('Worktree requested but authPath is not a git repo, falling back to authPath', {
|
|
259
|
-
triggerId: trigger.id,
|
|
260
|
-
authPath: runtime.authPath,
|
|
261
|
-
});
|
|
262
|
-
activeLogReporter.append('WARN', 'Worktree requested but authPath is not a git repo. Falling back to authPath.');
|
|
263
|
-
}
|
|
275
|
+
const worktreePath = createRunnerWorktree(runtime.authPath, {
|
|
276
|
+
worktreeId: runtime.worktreeId ?? trigger.id,
|
|
277
|
+
baseBranch: runtime.baseBranch,
|
|
278
|
+
});
|
|
279
|
+
effectiveAuthPath = worktreePath;
|
|
280
|
+
await client.reportWorktreeStatus(trigger.id, 'ACTIVE');
|
|
281
|
+
activeLogReporter.append('INFO', `Worktree created at ${worktreePath}.`);
|
|
282
|
+
logger.info('Worktree created for trigger', {
|
|
283
|
+
triggerId: trigger.id,
|
|
284
|
+
worktreePath,
|
|
285
|
+
});
|
|
264
286
|
}
|
|
265
287
|
catch (err) {
|
|
266
|
-
|
|
288
|
+
const reason = err instanceof Error ? err.message : String(err);
|
|
289
|
+
logger.warn('Failed to create worktree', {
|
|
267
290
|
triggerId: trigger.id,
|
|
268
|
-
error:
|
|
291
|
+
error: reason,
|
|
269
292
|
});
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
await client.reportWorktreeStatus(trigger.id, 'FAILED');
|
|
273
|
-
}
|
|
274
|
-
catch {
|
|
275
|
-
// Ignore status report failure
|
|
276
|
-
}
|
|
293
|
+
await reportWorktreeFailure(trigger.id, reason, activeLogReporter);
|
|
294
|
+
throw new Error(reason);
|
|
277
295
|
}
|
|
278
296
|
}
|
|
279
297
|
const historyPaths = resolveHistoryPaths(effectiveAuthPath, trigger.id, trigger.parentTriggerId);
|
|
@@ -355,18 +373,26 @@ export const createTriggerHandler = (options, dependencies = {}) => {
|
|
|
355
373
|
exitCode: runResult.exitCode,
|
|
356
374
|
});
|
|
357
375
|
logReporter.append('INFO', `Runner finished with exitCode=${runResult.exitCode}.`);
|
|
358
|
-
const {
|
|
376
|
+
const { hasHistoryFile } = await reportHistory(trigger.id, currentHistoryPath, logReporter, {
|
|
359
377
|
outputText: runResult.outputText ?? '',
|
|
360
378
|
errorMessage: runResult.exitCode === 0 ? undefined : runResult.errorMessage,
|
|
361
379
|
});
|
|
362
380
|
// idle 워치독에 의해 종료됐지만 러너가 온전한 히스토리 파일을 남겼다면, 작업은 사실상
|
|
363
381
|
// 완료됐는데 종료 시퀀스에서 행이 걸린 경우다(예: Antigravity print 모드 finalize 행).
|
|
364
382
|
// hard-FAIL 대신 NEEDS_REVIEW로 강등해 사람이 산출물을 보고 승인/거부하도록 한다.
|
|
365
|
-
|
|
383
|
+
// 산출물 존재 여부(hasHistoryFile)로 판단한다 — 서버 업로드 실패는 완료를 뒤집지 않는다.
|
|
384
|
+
const idleTimedOutWithHistory = runResult.idleTimedOut === true && hasHistoryFile && !runResult.cancelled;
|
|
366
385
|
if (idleTimedOutWithHistory) {
|
|
367
386
|
// 사유는 빨간 Error 탭이 아니라 INFO 로그로 남긴다(소프트 상태라 에러 스타일은 부적절).
|
|
368
387
|
logReporter.append('INFO', 'Runner idle-timed-out during shutdown but a complete history file was produced; flagged for human review (approve to mark DONE, reject to mark FAILED).');
|
|
369
388
|
}
|
|
389
|
+
// exitCode 0이라도 러너가 필수 히스토리 파일을 안 썼다면 작업 완료를 보장할 수 없다(턴이
|
|
390
|
+
// 산출물 작성 전에 끝났거나 모델이 마지막 쓰기 단계를 누락한 경우). DONE으로 단정하지 않고
|
|
391
|
+
// NEEDS_REVIEW로 강등해 사람이 폴백(정제된 출력)을 보고 승인/거부하게 한다.
|
|
392
|
+
const exitedCleanWithoutHistory = runResult.exitCode === 0 && !hasHistoryFile && !runResult.cancelled;
|
|
393
|
+
if (exitedCleanWithoutHistory) {
|
|
394
|
+
logReporter.append('INFO', 'Runner exited cleanly (exitCode=0) but did not write a history file; flagged for human review (approve to mark DONE, reject to mark FAILED).');
|
|
395
|
+
}
|
|
370
396
|
await logReporter.stop();
|
|
371
397
|
// 3차 방어: origin issue 자동 연결 안전장치 (fire-and-forget)
|
|
372
398
|
void runOriginIssueSafeguard(trigger.prompt, currentHistoryPath, effectiveAuthPath).catch(() => {
|
|
@@ -375,7 +401,9 @@ export const createTriggerHandler = (options, dependencies = {}) => {
|
|
|
375
401
|
const status = runResult.cancelled
|
|
376
402
|
? 'CANCELLED'
|
|
377
403
|
: runResult.exitCode === 0
|
|
378
|
-
?
|
|
404
|
+
? hasHistoryFile
|
|
405
|
+
? 'DONE'
|
|
406
|
+
: 'NEEDS_REVIEW'
|
|
379
407
|
: idleTimedOutWithHistory
|
|
380
408
|
? 'NEEDS_REVIEW'
|
|
381
409
|
: 'FAILED';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"trigger-handler.js","sourceRoot":"","sources":["../../src/handlers/trigger-handler.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"trigger-handler.js","sourceRoot":"","sources":["../../src/handlers/trigger-handler.ts"],"names":[],"mappings":"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"}
|
|
@@ -170,6 +170,61 @@ test('createTriggerHandler preserves the local history file and still marks succ
|
|
|
170
170
|
const statusCall = clientCalls.find((entry) => entry.method === 'updateTriggerStatus');
|
|
171
171
|
assert.deepEqual(statusCall?.args, ['trigger-1', 'DONE', undefined]);
|
|
172
172
|
});
|
|
173
|
+
test('createTriggerHandler flags NEEDS_REVIEW when the runner exits 0 without writing a history file', async () => {
|
|
174
|
+
const clientCalls = [];
|
|
175
|
+
const writeHistoryCalls = [];
|
|
176
|
+
const client = {
|
|
177
|
+
fetchTriggerRuntime: async () => runtime,
|
|
178
|
+
isTriggerCancelRequested: async () => false,
|
|
179
|
+
updateTriggerHistory: async (...args) => {
|
|
180
|
+
clientCalls.push({ method: 'updateTriggerHistory', args });
|
|
181
|
+
},
|
|
182
|
+
updateTriggerStatus: async (...args) => {
|
|
183
|
+
clientCalls.push({ method: 'updateTriggerStatus', args });
|
|
184
|
+
},
|
|
185
|
+
};
|
|
186
|
+
const handler = createTriggerHandler({
|
|
187
|
+
config: {
|
|
188
|
+
daemonToken: 'daemon-token',
|
|
189
|
+
apiUrl: 'https://api.example',
|
|
190
|
+
pollingIntervalMs: 5000,
|
|
191
|
+
timeoutMs: 1500,
|
|
192
|
+
idleTimeoutMs: 500,
|
|
193
|
+
runnerCmd: 'opencode',
|
|
194
|
+
preventSleepWhileBusy: false,
|
|
195
|
+
},
|
|
196
|
+
client: client,
|
|
197
|
+
}, {
|
|
198
|
+
createRunnerFactory: () => () => ({
|
|
199
|
+
run: async () => ({ exitCode: 0, outputText: 'The final summary.' }),
|
|
200
|
+
}),
|
|
201
|
+
createLogReporter: () => ({
|
|
202
|
+
start: () => undefined,
|
|
203
|
+
append: () => undefined,
|
|
204
|
+
stop: async () => undefined,
|
|
205
|
+
}),
|
|
206
|
+
// 러너가 필수 히스토리 파일을 남기지 않은 상태(파일 없음 → 읽기 실패).
|
|
207
|
+
readHistoryFile: async () => {
|
|
208
|
+
throw new Error('ENOENT: no such file');
|
|
209
|
+
},
|
|
210
|
+
writeHistoryFile: async (path, content) => {
|
|
211
|
+
writeHistoryCalls.push({ path, content });
|
|
212
|
+
},
|
|
213
|
+
resolveRunnerHistoryPaths: () => ({
|
|
214
|
+
currentHistoryPath: '/auth/path/.agentteams/runner/history/trigger-1.md',
|
|
215
|
+
parentHistoryPath: null,
|
|
216
|
+
}),
|
|
217
|
+
});
|
|
218
|
+
await handler(trigger);
|
|
219
|
+
// 캡처한 출력이 폴백 히스토리로 로컬 기록 + 서버 업로드되며, "completed successfully"라고 단정하지 않는다.
|
|
220
|
+
assert.equal(writeHistoryCalls.length, 1);
|
|
221
|
+
assert.match(writeHistoryCalls[0]?.content ?? '', /exited without writing the required history file/);
|
|
222
|
+
const uploadCall = clientCalls.find((entry) => entry.method === 'updateTriggerHistory');
|
|
223
|
+
assert.match(String(uploadCall?.args?.[1] ?? ''), /exited without writing the required history file/);
|
|
224
|
+
// 핵심: exitCode 0이어도 산출물이 없으면 DONE이 아니라 NEEDS_REVIEW로 강등된다.
|
|
225
|
+
const statusCall = clientCalls.find((entry) => entry.method === 'updateTriggerStatus');
|
|
226
|
+
assert.deepEqual(statusCall?.args, ['trigger-1', 'NEEDS_REVIEW', undefined]);
|
|
227
|
+
});
|
|
173
228
|
test('createTriggerHandler strips a UTF-8 BOM before reporting history to the database', async () => {
|
|
174
229
|
const clientCalls = [];
|
|
175
230
|
const logEntries = [];
|
|
@@ -459,6 +514,131 @@ test('createTriggerHandler reports runner failures and falls back to last output
|
|
|
459
514
|
await handler({ ...trigger, parentTriggerId: null });
|
|
460
515
|
assert.deepEqual(clientCalls.at(-1)?.args, ['trigger-1', 'FAILED', 'last output']);
|
|
461
516
|
});
|
|
517
|
+
test('createTriggerHandler fails without running the runner when worktree creation fails', async () => {
|
|
518
|
+
const clientCalls = [];
|
|
519
|
+
const runnerInputs = [];
|
|
520
|
+
const worktreeRuntime = {
|
|
521
|
+
...runtime,
|
|
522
|
+
useWorktree: true,
|
|
523
|
+
baseBranch: 'dev',
|
|
524
|
+
worktreeId: 'worktree-1',
|
|
525
|
+
};
|
|
526
|
+
const client = {
|
|
527
|
+
fetchTriggerRuntime: async () => worktreeRuntime,
|
|
528
|
+
isTriggerCancelRequested: async (...args) => {
|
|
529
|
+
clientCalls.push({ method: 'isTriggerCancelRequested', args });
|
|
530
|
+
return false;
|
|
531
|
+
},
|
|
532
|
+
updateTriggerHistory: async (...args) => {
|
|
533
|
+
clientCalls.push({ method: 'updateTriggerHistory', args });
|
|
534
|
+
},
|
|
535
|
+
updateTriggerStatus: async (...args) => {
|
|
536
|
+
clientCalls.push({ method: 'updateTriggerStatus', args });
|
|
537
|
+
},
|
|
538
|
+
reportWorktreeStatus: async (...args) => {
|
|
539
|
+
clientCalls.push({ method: 'reportWorktreeStatus', args });
|
|
540
|
+
},
|
|
541
|
+
};
|
|
542
|
+
const handler = createTriggerHandler({
|
|
543
|
+
config: {
|
|
544
|
+
daemonToken: 'daemon-token',
|
|
545
|
+
apiUrl: 'https://api.example',
|
|
546
|
+
pollingIntervalMs: 5000,
|
|
547
|
+
timeoutMs: 1500,
|
|
548
|
+
idleTimeoutMs: 500,
|
|
549
|
+
runnerCmd: 'opencode',
|
|
550
|
+
preventSleepWhileBusy: false,
|
|
551
|
+
},
|
|
552
|
+
client: client,
|
|
553
|
+
}, {
|
|
554
|
+
createRunnerFactory: () => () => ({
|
|
555
|
+
run: async (input) => {
|
|
556
|
+
runnerInputs.push({ authPath: input.authPath });
|
|
557
|
+
return { exitCode: 0 };
|
|
558
|
+
},
|
|
559
|
+
}),
|
|
560
|
+
createLogReporter: () => ({
|
|
561
|
+
start: () => undefined,
|
|
562
|
+
append: () => undefined,
|
|
563
|
+
stop: async () => undefined,
|
|
564
|
+
}),
|
|
565
|
+
isGitRepo: () => true,
|
|
566
|
+
createWorktree: () => {
|
|
567
|
+
throw new Error('git worktree add failed');
|
|
568
|
+
},
|
|
569
|
+
readHistoryFile: async () => '',
|
|
570
|
+
resolveRunnerHistoryPaths: () => ({
|
|
571
|
+
currentHistoryPath: '/auth/path/.agentteams/runner/history/trigger-1.md',
|
|
572
|
+
parentHistoryPath: null,
|
|
573
|
+
}),
|
|
574
|
+
});
|
|
575
|
+
await handler({ ...trigger, useWorktree: true, baseBranch: 'dev', worktreeId: 'worktree-1', parentTriggerId: null });
|
|
576
|
+
assert.deepEqual(runnerInputs, []);
|
|
577
|
+
assert.deepEqual(clientCalls.at(0)?.args, ['trigger-1', 'FAILED', 'git worktree add failed']);
|
|
578
|
+
assert.deepEqual(clientCalls.at(-1)?.args, ['trigger-1', 'FAILED', 'git worktree add failed']);
|
|
579
|
+
assert.equal(clientCalls.some((entry) => entry.method === 'isTriggerCancelRequested'), false);
|
|
580
|
+
});
|
|
581
|
+
test('createTriggerHandler fails without running the runner when worktree authPath is not a git repo', async () => {
|
|
582
|
+
const clientCalls = [];
|
|
583
|
+
const runnerInputs = [];
|
|
584
|
+
const worktreeRuntime = {
|
|
585
|
+
...runtime,
|
|
586
|
+
useWorktree: true,
|
|
587
|
+
baseBranch: 'dev',
|
|
588
|
+
worktreeId: 'worktree-1',
|
|
589
|
+
};
|
|
590
|
+
const client = {
|
|
591
|
+
fetchTriggerRuntime: async () => worktreeRuntime,
|
|
592
|
+
isTriggerCancelRequested: async (...args) => {
|
|
593
|
+
clientCalls.push({ method: 'isTriggerCancelRequested', args });
|
|
594
|
+
return false;
|
|
595
|
+
},
|
|
596
|
+
updateTriggerHistory: async (...args) => {
|
|
597
|
+
clientCalls.push({ method: 'updateTriggerHistory', args });
|
|
598
|
+
},
|
|
599
|
+
updateTriggerStatus: async (...args) => {
|
|
600
|
+
clientCalls.push({ method: 'updateTriggerStatus', args });
|
|
601
|
+
},
|
|
602
|
+
reportWorktreeStatus: async (...args) => {
|
|
603
|
+
clientCalls.push({ method: 'reportWorktreeStatus', args });
|
|
604
|
+
},
|
|
605
|
+
};
|
|
606
|
+
const handler = createTriggerHandler({
|
|
607
|
+
config: {
|
|
608
|
+
daemonToken: 'daemon-token',
|
|
609
|
+
apiUrl: 'https://api.example',
|
|
610
|
+
pollingIntervalMs: 5000,
|
|
611
|
+
timeoutMs: 1500,
|
|
612
|
+
idleTimeoutMs: 500,
|
|
613
|
+
runnerCmd: 'opencode',
|
|
614
|
+
preventSleepWhileBusy: false,
|
|
615
|
+
},
|
|
616
|
+
client: client,
|
|
617
|
+
}, {
|
|
618
|
+
createRunnerFactory: () => () => ({
|
|
619
|
+
run: async (input) => {
|
|
620
|
+
runnerInputs.push({ authPath: input.authPath });
|
|
621
|
+
return { exitCode: 0 };
|
|
622
|
+
},
|
|
623
|
+
}),
|
|
624
|
+
createLogReporter: () => ({
|
|
625
|
+
start: () => undefined,
|
|
626
|
+
append: () => undefined,
|
|
627
|
+
stop: async () => undefined,
|
|
628
|
+
}),
|
|
629
|
+
isGitRepo: () => false,
|
|
630
|
+
readHistoryFile: async () => '',
|
|
631
|
+
resolveRunnerHistoryPaths: () => ({
|
|
632
|
+
currentHistoryPath: '/auth/path/.agentteams/runner/history/trigger-1.md',
|
|
633
|
+
parentHistoryPath: null,
|
|
634
|
+
}),
|
|
635
|
+
});
|
|
636
|
+
await handler({ ...trigger, useWorktree: true, baseBranch: 'dev', worktreeId: 'worktree-1', parentTriggerId: null });
|
|
637
|
+
assert.deepEqual(runnerInputs, []);
|
|
638
|
+
assert.deepEqual(clientCalls.at(0)?.args, ['trigger-1', 'FAILED', 'Not a git repository: /auth/path']);
|
|
639
|
+
assert.deepEqual(clientCalls.at(-1)?.args, ['trigger-1', 'FAILED', 'Not a git repository: /auth/path']);
|
|
640
|
+
assert.equal(clientCalls.some((entry) => entry.method === 'isTriggerCancelRequested'), false);
|
|
641
|
+
});
|
|
462
642
|
test('createTriggerHandler downgrades an idle-timeout to NEEDS_REVIEW when a history file was uploaded', async () => {
|
|
463
643
|
const clientCalls = [];
|
|
464
644
|
const client = {
|
|
@@ -607,7 +787,8 @@ test('createTriggerHandler stores stdout as fallback history when the runner omi
|
|
|
607
787
|
assert.equal(writtenFiles[0]?.path, '/auth/path/.agentteams/runner/history/trigger-1.md');
|
|
608
788
|
assert.match(String(clientCalls[0]?.args[1]), /Agent output \(history file not written\)/);
|
|
609
789
|
assert.match(String(clientCalls[0]?.args[1]), /agentrunner version 0\.0\.11/);
|
|
610
|
-
|
|
790
|
+
// exitCode 0이라도 히스토리 파일이 없으면 DONE으로 단정하지 않고 NEEDS_REVIEW로 강등한다.
|
|
791
|
+
assert.deepEqual(clientCalls.at(-1)?.args, ['trigger-1', 'NEEDS_REVIEW', undefined]);
|
|
611
792
|
});
|
|
612
793
|
test('createTriggerHandler truncates long agent output in fallback history', async () => {
|
|
613
794
|
const clientCalls = [];
|