@agentteams/runner 0.0.58 → 0.0.59-dev.107

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,4 +1,5 @@
1
1
  import type { ClaimResult, DaemonInfo, DaemonTrigger, PendingResponse, TriggerFinalStatus, TriggerLogInput, TriggerRuntime } from "./types.js";
2
+ import type { ServerHarnessConfig } from "./harness/types.js";
2
3
  export declare class DaemonApiClient {
3
4
  private readonly apiUrl;
4
5
  private readonly daemonToken;
@@ -19,5 +20,6 @@ export declare class DaemonApiClient {
19
20
  logs?: TriggerLogInput[];
20
21
  heartbeat?: boolean;
21
22
  }): Promise<void>;
23
+ fetchHarnessConfig(projectId: string): Promise<ServerHarnessConfig | null>;
22
24
  notifyUpdate(version: string, pkg?: "cli" | "runner"): Promise<void>;
23
25
  }
@@ -202,6 +202,17 @@ export class DaemonApiClient {
202
202
  throw new Error(`Failed to append trigger logs (${response.status})`);
203
203
  }
204
204
  }
205
+ async fetchHarnessConfig(projectId) {
206
+ const response = await this.requestWithRetry(`/api/harness-configs/${projectId}`, {
207
+ method: "GET",
208
+ headers: this.daemonHeaders()
209
+ });
210
+ if (!response.ok) {
211
+ throw new Error(`Failed to fetch harness config (${response.status})`);
212
+ }
213
+ const payload = await response.json();
214
+ return payload.data;
215
+ }
205
216
  async notifyUpdate(version, pkg = "runner") {
206
217
  const response = await this.requestWithRetry("/api/daemons/notify-update", {
207
218
  method: "POST",
@@ -1 +1 @@
1
- {"version":3,"file":"api-client.js","sourceRoot":"","sources":["../src/api-client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"api-client.js","sourceRoot":"","sources":["../src/api-client.ts"],"names":[],"mappings":"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"}
@@ -8,6 +8,8 @@ import { resolveRunnerHistoryPaths } from "../utils/runner-history.js";
8
8
  import { isGitRepo, createWorktree } from "../utils/git-worktree.js";
9
9
  import { extractResultTextFromStreamJson } from "../runners/claude-code.js";
10
10
  import { runOriginIssueSafeguard } from "../utils/origin-issue-safeguard.js";
11
+ import { loadHarnessConfig } from "../harness/config-loader.js";
12
+ import { executePreHooks } from "../harness/hook-executor.js";
11
13
  function sanitizeErrorMessage(msg) {
12
14
  return msg.replaceAll(homedir(), '~');
13
15
  }
@@ -197,6 +199,34 @@ export const createTriggerHandler = (options, dependencies = {}) => {
197
199
  currentHistoryPath = historyPaths.currentHistoryPath;
198
200
  await restoreParentHistoryFromServer(historyPaths.parentHistoryPath, runtime.parentHistoryMarkdown);
199
201
  const runnerPrompt = buildRunnerPrompt(trigger, historyPaths.currentHistoryPath, historyPaths.parentHistoryPath, runtime.useWorktree, runtime.baseBranch);
202
+ // -- Pre-execution hooks --------------------------------------------------
203
+ let harnessConfig = { preHooks: [], postHooks: [], qualityGate: null };
204
+ if (effectiveAuthPath) {
205
+ harnessConfig = await loadHarnessConfig(effectiveAuthPath, client, runtime.projectId);
206
+ if (harnessConfig.preHooks.length > 0) {
207
+ activeLogReporter.append("INFO", `Running ${harnessConfig.preHooks.length} pre-execution hook(s).`);
208
+ const hookContext = {
209
+ authPath: effectiveAuthPath,
210
+ triggerId: trigger.id,
211
+ triggerLogAppend: (level, msg) => activeLogReporter.append(level, msg),
212
+ };
213
+ const hookOutcome = await executePreHooks(harnessConfig.preHooks, hookContext);
214
+ if (hookOutcome.failureAction === "fail" || hookOutcome.failureAction === "needs_review") {
215
+ const errorMessage = hookOutcome.failureReason ?? "Pre-execution hook failed.";
216
+ const failStatus = hookOutcome.failureAction === "needs_review" ? "NEEDS_REVIEW" : "FAILED";
217
+ logger.warn("Pre-execution hook blocked trigger", {
218
+ triggerId: trigger.id,
219
+ reason: errorMessage,
220
+ });
221
+ activeLogReporter.append("ERROR", `Trigger blocked by pre-hook: ${errorMessage}`);
222
+ await logReporter.stop();
223
+ await client.updateTriggerStatus(trigger.id, failStatus, errorMessage);
224
+ return;
225
+ }
226
+ activeLogReporter.append("INFO", "All pre-execution hooks passed.");
227
+ }
228
+ }
229
+ // -- End pre-execution hooks ----------------------------------------------
200
230
  const runner = createRunner(trigger.runnerType);
201
231
  const cancelController = new AbortController();
202
232
  let cancelRequested = false;
@@ -265,6 +295,32 @@ export const createTriggerHandler = (options, dependencies = {}) => {
265
295
  await client.updateTriggerHistory(trigger.id, fallbackHistory);
266
296
  logReporter.append("WARN", "Runner did not write a history file. Captured stdout was stored as fallback history.");
267
297
  }
298
+ // -- Post-execution hooks -------------------------------------------------
299
+ let postHookStatus = null;
300
+ let postHookError;
301
+ if (!runResult.cancelled && runResult.exitCode === 0 && effectiveAuthPath && harnessConfig.postHooks.length > 0) {
302
+ activeLogReporter.append("INFO", `Running ${harnessConfig.postHooks.length} post-execution hook(s).`);
303
+ const postHookContext = {
304
+ authPath: effectiveAuthPath,
305
+ triggerId: trigger.id,
306
+ triggerLogAppend: (level, msg) => activeLogReporter.append(level, msg),
307
+ };
308
+ const postOutcome = await executePreHooks(harnessConfig.postHooks, postHookContext);
309
+ if (postOutcome.failureAction === "fail") {
310
+ postHookStatus = "FAILED";
311
+ postHookError = postOutcome.failureReason ?? "Post-execution hook failed.";
312
+ activeLogReporter.append("ERROR", `Post-hook blocked: ${postHookError}`);
313
+ }
314
+ else if (postOutcome.failureAction === "needs_review") {
315
+ postHookStatus = "NEEDS_REVIEW";
316
+ postHookError = postOutcome.failureReason ?? "Post-execution hook requires review.";
317
+ activeLogReporter.append("WARN", `Post-hook requires review: ${postHookError}`);
318
+ }
319
+ else {
320
+ activeLogReporter.append("INFO", "All post-execution hooks passed.");
321
+ }
322
+ }
323
+ // -- End post-execution hooks ---------------------------------------------
268
324
  await logReporter.stop();
269
325
  // 3차 방어: origin issue 자동 연결 안전장치 (fire-and-forget)
270
326
  void runOriginIssueSafeguard(trigger.prompt, currentHistoryPath, effectiveAuthPath).catch(() => {
@@ -272,12 +328,16 @@ export const createTriggerHandler = (options, dependencies = {}) => {
272
328
  });
273
329
  const status = runResult.cancelled
274
330
  ? "CANCELLED"
275
- : runResult.exitCode === 0 ? "DONE" : "FAILED";
331
+ : postHookStatus
332
+ ? postHookStatus
333
+ : runResult.exitCode === 0 ? "DONE" : "FAILED";
276
334
  const errorMessage = status === "FAILED"
277
- ? (runResult.errorMessage || runResult.lastOutput || `Runner exited with code ${runResult.exitCode}`)
335
+ ? (postHookError || runResult.errorMessage || runResult.lastOutput || `Runner exited with code ${runResult.exitCode}`)
278
336
  : status === "CANCELLED"
279
337
  ? (runResult.errorMessage || "Runner cancelled by user")
280
- : undefined;
338
+ : status === "NEEDS_REVIEW"
339
+ ? postHookError
340
+ : undefined;
281
341
  await client.updateTriggerStatus(trigger.id, status, errorMessage ? sanitizeErrorMessage(errorMessage) : undefined);
282
342
  logger.info("Trigger completed", {
283
343
  triggerId: trigger.id,
@@ -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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"}
@@ -1,5 +1,8 @@
1
1
  import assert from "node:assert/strict";
2
2
  import test, { mock } from "node:test";
3
+ import { mkdtemp, mkdir, writeFile, rm } from "node:fs/promises";
4
+ import { tmpdir } from "node:os";
5
+ import { join } from "node:path";
3
6
  import { logger } from "../logger.js";
4
7
  import { createTriggerHandler } from "./trigger-handler.js";
5
8
  const trigger = {
@@ -493,4 +496,352 @@ test("createTriggerHandler marks the trigger as failed when runtime loading thro
493
496
  assert.deepEqual(clientCalls.at(-1)?.args, ["trigger-1", "FAILED", "runtime boom"]);
494
497
  assert.equal(errors.some((entry) => entry.message === "Trigger handling failed"), true);
495
498
  });
499
+ // ---------------------------------------------------------------------------
500
+ // Pre-execution hook tests
501
+ // ---------------------------------------------------------------------------
502
+ const withTempDir = async (run) => {
503
+ const dir = await mkdtemp(join(tmpdir(), "trigger-handler-hook-test-"));
504
+ try {
505
+ await run(dir);
506
+ }
507
+ finally {
508
+ await rm(dir, { recursive: true, force: true });
509
+ }
510
+ };
511
+ test("createTriggerHandler blocks trigger when pre-hook fails with onFailure=fail", async () => {
512
+ await withTempDir(async (dir) => {
513
+ // Write harness.yml with a failing pre-hook
514
+ const harnessDir = join(dir, ".agentteams");
515
+ await mkdir(harnessDir, { recursive: true });
516
+ await writeFile(join(harnessDir, "harness.yml"), [
517
+ "preHooks:",
518
+ " - name: lint-check",
519
+ " command: exit 1",
520
+ " onFailure: fail",
521
+ ].join("\n"));
522
+ const clientCalls = [];
523
+ let runnerCalled = false;
524
+ const client = {
525
+ fetchTriggerRuntime: async () => ({
526
+ ...runtime,
527
+ authPath: dir,
528
+ }),
529
+ fetchHarnessConfig: async () => null,
530
+ isTriggerCancelRequested: async () => false,
531
+ updateTriggerHistory: async (...args) => {
532
+ clientCalls.push({ method: "updateTriggerHistory", args });
533
+ },
534
+ updateTriggerStatus: async (...args) => {
535
+ clientCalls.push({ method: "updateTriggerStatus", args });
536
+ },
537
+ };
538
+ const handler = createTriggerHandler({
539
+ config: {
540
+ daemonToken: "daemon-token",
541
+ apiUrl: "https://api.example",
542
+ pollingIntervalMs: 5000,
543
+ timeoutMs: 1500,
544
+ idleTimeoutMs: 500,
545
+ runnerCmd: "opencode",
546
+ },
547
+ client: client,
548
+ }, {
549
+ createRunnerFactory: () => () => ({
550
+ run: async () => {
551
+ runnerCalled = true;
552
+ return { exitCode: 0 };
553
+ },
554
+ }),
555
+ createLogReporter: () => ({
556
+ start: () => undefined,
557
+ append: () => undefined,
558
+ stop: async () => undefined,
559
+ }),
560
+ readHistoryFile: async () => "",
561
+ resolveRunnerHistoryPaths: () => ({
562
+ currentHistoryPath: join(dir, ".agentteams/runner/history/trigger-1.md"),
563
+ parentHistoryPath: null,
564
+ }),
565
+ });
566
+ await handler({ ...trigger, parentTriggerId: null });
567
+ assert.equal(runnerCalled, false, "Runner should not be called when pre-hook fails");
568
+ const statusCall = clientCalls.find((c) => c.method === "updateTriggerStatus");
569
+ assert.ok(statusCall);
570
+ assert.equal(statusCall.args[1], "FAILED");
571
+ assert.ok(String(statusCall.args[2]).includes("lint-check"));
572
+ });
573
+ });
574
+ test("createTriggerHandler continues when pre-hook fails with onFailure=warn", async () => {
575
+ await withTempDir(async (dir) => {
576
+ const harnessDir = join(dir, ".agentteams");
577
+ await mkdir(harnessDir, { recursive: true });
578
+ await writeFile(join(harnessDir, "harness.yml"), [
579
+ "preHooks:",
580
+ " - name: optional-check",
581
+ " command: exit 1",
582
+ " onFailure: warn",
583
+ ].join("\n"));
584
+ let runnerCalled = false;
585
+ const clientCalls = [];
586
+ const client = {
587
+ fetchTriggerRuntime: async () => ({
588
+ ...runtime,
589
+ authPath: dir,
590
+ }),
591
+ fetchHarnessConfig: async () => null,
592
+ isTriggerCancelRequested: async () => false,
593
+ updateTriggerHistory: async (...args) => {
594
+ clientCalls.push({ method: "updateTriggerHistory", args });
595
+ },
596
+ updateTriggerStatus: async (...args) => {
597
+ clientCalls.push({ method: "updateTriggerStatus", args });
598
+ },
599
+ };
600
+ const handler = createTriggerHandler({
601
+ config: {
602
+ daemonToken: "daemon-token",
603
+ apiUrl: "https://api.example",
604
+ pollingIntervalMs: 5000,
605
+ timeoutMs: 1500,
606
+ idleTimeoutMs: 500,
607
+ runnerCmd: "opencode",
608
+ },
609
+ client: client,
610
+ }, {
611
+ createRunnerFactory: () => () => ({
612
+ run: async () => {
613
+ runnerCalled = true;
614
+ return { exitCode: 0 };
615
+ },
616
+ }),
617
+ createLogReporter: () => ({
618
+ start: () => undefined,
619
+ append: () => undefined,
620
+ stop: async () => undefined,
621
+ }),
622
+ readHistoryFile: async () => "### Summary\n- done\n",
623
+ resolveRunnerHistoryPaths: () => ({
624
+ currentHistoryPath: join(dir, ".agentteams/runner/history/trigger-1.md"),
625
+ parentHistoryPath: null,
626
+ }),
627
+ });
628
+ await handler({ ...trigger, parentTriggerId: null });
629
+ assert.equal(runnerCalled, true, "Runner should still execute when pre-hook fails with warn");
630
+ const statusCall = clientCalls.find((c) => c.method === "updateTriggerStatus");
631
+ assert.ok(statusCall);
632
+ assert.equal(statusCall.args[1], "DONE");
633
+ });
634
+ });
635
+ test("createTriggerHandler runs normally when no pre-hooks are defined", async () => {
636
+ await withTempDir(async (dir) => {
637
+ // No harness.yml — should behave exactly as before
638
+ let runnerCalled = false;
639
+ const clientCalls = [];
640
+ const client = {
641
+ fetchTriggerRuntime: async () => ({
642
+ ...runtime,
643
+ authPath: dir,
644
+ }),
645
+ fetchHarnessConfig: async () => null,
646
+ isTriggerCancelRequested: async () => false,
647
+ updateTriggerHistory: async (...args) => {
648
+ clientCalls.push({ method: "updateTriggerHistory", args });
649
+ },
650
+ updateTriggerStatus: async (...args) => {
651
+ clientCalls.push({ method: "updateTriggerStatus", args });
652
+ },
653
+ };
654
+ const handler = createTriggerHandler({
655
+ config: {
656
+ daemonToken: "daemon-token",
657
+ apiUrl: "https://api.example",
658
+ pollingIntervalMs: 5000,
659
+ timeoutMs: 1500,
660
+ idleTimeoutMs: 500,
661
+ runnerCmd: "opencode",
662
+ },
663
+ client: client,
664
+ }, {
665
+ createRunnerFactory: () => () => ({
666
+ run: async () => {
667
+ runnerCalled = true;
668
+ return { exitCode: 0 };
669
+ },
670
+ }),
671
+ createLogReporter: () => ({
672
+ start: () => undefined,
673
+ append: () => undefined,
674
+ stop: async () => undefined,
675
+ }),
676
+ readHistoryFile: async () => "### Summary\n- done\n",
677
+ resolveRunnerHistoryPaths: () => ({
678
+ currentHistoryPath: join(dir, ".agentteams/runner/history/trigger-1.md"),
679
+ parentHistoryPath: null,
680
+ }),
681
+ });
682
+ await handler({ ...trigger, parentTriggerId: null });
683
+ assert.equal(runnerCalled, true);
684
+ const statusCall = clientCalls.find((c) => c.method === "updateTriggerStatus");
685
+ assert.ok(statusCall);
686
+ assert.equal(statusCall.args[1], "DONE");
687
+ });
688
+ });
689
+ // ---------------------------------------------------------------------------
690
+ // Post-execution hook tests
691
+ // ---------------------------------------------------------------------------
692
+ test("createTriggerHandler marks DONE when post-hook succeeds after runner success", async () => {
693
+ await withTempDir(async (dir) => {
694
+ const harnessDir = join(dir, ".agentteams");
695
+ await mkdir(harnessDir, { recursive: true });
696
+ await writeFile(join(harnessDir, "harness.yml"), [
697
+ "postHooks:",
698
+ " - name: quality-gate",
699
+ " command: echo ok",
700
+ " onFailure: fail",
701
+ ].join("\n"));
702
+ const clientCalls = [];
703
+ const client = {
704
+ fetchTriggerRuntime: async () => ({ ...runtime, authPath: dir }),
705
+ fetchHarnessConfig: async () => null,
706
+ isTriggerCancelRequested: async () => false,
707
+ updateTriggerHistory: async (...args) => {
708
+ clientCalls.push({ method: "updateTriggerHistory", args });
709
+ },
710
+ updateTriggerStatus: async (...args) => {
711
+ clientCalls.push({ method: "updateTriggerStatus", args });
712
+ },
713
+ };
714
+ const handler = createTriggerHandler({
715
+ config: { daemonToken: "t", apiUrl: "https://api.example", pollingIntervalMs: 5000, timeoutMs: 1500, idleTimeoutMs: 500, runnerCmd: "opencode" },
716
+ client: client,
717
+ }, {
718
+ createRunnerFactory: () => () => ({ run: async () => ({ exitCode: 0 }) }),
719
+ createLogReporter: () => ({ start: () => undefined, append: () => undefined, stop: async () => undefined }),
720
+ readHistoryFile: async () => "### Summary\n- done\n",
721
+ resolveRunnerHistoryPaths: () => ({ currentHistoryPath: join(dir, "h.md"), parentHistoryPath: null }),
722
+ });
723
+ await handler({ ...trigger, parentTriggerId: null });
724
+ const statusCall = clientCalls.find((c) => c.method === "updateTriggerStatus");
725
+ assert.ok(statusCall);
726
+ assert.equal(statusCall.args[1], "DONE");
727
+ });
728
+ });
729
+ test("createTriggerHandler marks FAILED when post-hook fails with onFailure=fail", async () => {
730
+ await withTempDir(async (dir) => {
731
+ const harnessDir = join(dir, ".agentteams");
732
+ await mkdir(harnessDir, { recursive: true });
733
+ await writeFile(join(harnessDir, "harness.yml"), [
734
+ "postHooks:",
735
+ " - name: quality-gate",
736
+ " command: exit 1",
737
+ " onFailure: fail",
738
+ ].join("\n"));
739
+ const clientCalls = [];
740
+ const client = {
741
+ fetchTriggerRuntime: async () => ({ ...runtime, authPath: dir }),
742
+ fetchHarnessConfig: async () => null,
743
+ isTriggerCancelRequested: async () => false,
744
+ updateTriggerHistory: async (...args) => {
745
+ clientCalls.push({ method: "updateTriggerHistory", args });
746
+ },
747
+ updateTriggerStatus: async (...args) => {
748
+ clientCalls.push({ method: "updateTriggerStatus", args });
749
+ },
750
+ };
751
+ const handler = createTriggerHandler({
752
+ config: { daemonToken: "t", apiUrl: "https://api.example", pollingIntervalMs: 5000, timeoutMs: 1500, idleTimeoutMs: 500, runnerCmd: "opencode" },
753
+ client: client,
754
+ }, {
755
+ createRunnerFactory: () => () => ({ run: async () => ({ exitCode: 0 }) }),
756
+ createLogReporter: () => ({ start: () => undefined, append: () => undefined, stop: async () => undefined }),
757
+ readHistoryFile: async () => "### Summary\n- done\n",
758
+ resolveRunnerHistoryPaths: () => ({ currentHistoryPath: join(dir, "h.md"), parentHistoryPath: null }),
759
+ });
760
+ await handler({ ...trigger, parentTriggerId: null });
761
+ const statusCall = clientCalls.find((c) => c.method === "updateTriggerStatus");
762
+ assert.ok(statusCall);
763
+ assert.equal(statusCall.args[1], "FAILED");
764
+ assert.ok(String(statusCall.args[2]).includes("quality-gate"));
765
+ });
766
+ });
767
+ test("createTriggerHandler marks NEEDS_REVIEW when post-hook fails with onFailure=needs_review", async () => {
768
+ await withTempDir(async (dir) => {
769
+ const harnessDir = join(dir, ".agentteams");
770
+ await mkdir(harnessDir, { recursive: true });
771
+ await writeFile(join(harnessDir, "harness.yml"), [
772
+ "postHooks:",
773
+ " - name: review-gate",
774
+ " command: exit 1",
775
+ " onFailure: needs_review",
776
+ ].join("\n"));
777
+ const clientCalls = [];
778
+ const client = {
779
+ fetchTriggerRuntime: async () => ({ ...runtime, authPath: dir }),
780
+ fetchHarnessConfig: async () => null,
781
+ isTriggerCancelRequested: async () => false,
782
+ updateTriggerHistory: async (...args) => {
783
+ clientCalls.push({ method: "updateTriggerHistory", args });
784
+ },
785
+ updateTriggerStatus: async (...args) => {
786
+ clientCalls.push({ method: "updateTriggerStatus", args });
787
+ },
788
+ };
789
+ const handler = createTriggerHandler({
790
+ config: { daemonToken: "t", apiUrl: "https://api.example", pollingIntervalMs: 5000, timeoutMs: 1500, idleTimeoutMs: 500, runnerCmd: "opencode" },
791
+ client: client,
792
+ }, {
793
+ createRunnerFactory: () => () => ({ run: async () => ({ exitCode: 0 }) }),
794
+ createLogReporter: () => ({ start: () => undefined, append: () => undefined, stop: async () => undefined }),
795
+ readHistoryFile: async () => "### Summary\n- done\n",
796
+ resolveRunnerHistoryPaths: () => ({ currentHistoryPath: join(dir, "h.md"), parentHistoryPath: null }),
797
+ });
798
+ await handler({ ...trigger, parentTriggerId: null });
799
+ const statusCall = clientCalls.find((c) => c.method === "updateTriggerStatus");
800
+ assert.ok(statusCall);
801
+ assert.equal(statusCall.args[1], "NEEDS_REVIEW");
802
+ });
803
+ });
804
+ test("createTriggerHandler skips post-hooks when runner fails", async () => {
805
+ await withTempDir(async (dir) => {
806
+ const harnessDir = join(dir, ".agentteams");
807
+ await mkdir(harnessDir, { recursive: true });
808
+ await writeFile(join(harnessDir, "harness.yml"), [
809
+ "postHooks:",
810
+ " - name: should-not-run",
811
+ " command: echo unreachable",
812
+ " onFailure: fail",
813
+ ].join("\n"));
814
+ const clientCalls = [];
815
+ const logEntries = [];
816
+ const client = {
817
+ fetchTriggerRuntime: async () => ({ ...runtime, authPath: dir }),
818
+ fetchHarnessConfig: async () => null,
819
+ isTriggerCancelRequested: async () => false,
820
+ updateTriggerHistory: async (...args) => {
821
+ clientCalls.push({ method: "updateTriggerHistory", args });
822
+ },
823
+ updateTriggerStatus: async (...args) => {
824
+ clientCalls.push({ method: "updateTriggerStatus", args });
825
+ },
826
+ };
827
+ const handler = createTriggerHandler({
828
+ config: { daemonToken: "t", apiUrl: "https://api.example", pollingIntervalMs: 5000, timeoutMs: 1500, idleTimeoutMs: 500, runnerCmd: "opencode" },
829
+ client: client,
830
+ }, {
831
+ createRunnerFactory: () => () => ({ run: async () => ({ exitCode: 1 }) }),
832
+ createLogReporter: () => ({
833
+ start: () => undefined,
834
+ append: (_level, msg) => { logEntries.push(msg); },
835
+ stop: async () => undefined,
836
+ }),
837
+ readHistoryFile: async () => "",
838
+ resolveRunnerHistoryPaths: () => ({ currentHistoryPath: join(dir, "h.md"), parentHistoryPath: null }),
839
+ });
840
+ await handler({ ...trigger, parentTriggerId: null });
841
+ const statusCall = clientCalls.find((c) => c.method === "updateTriggerStatus");
842
+ assert.ok(statusCall);
843
+ assert.equal(statusCall.args[1], "FAILED");
844
+ assert.equal(logEntries.some((l) => l.includes("post-execution")), false, "Post-hooks should not run when runner fails");
845
+ });
846
+ });
496
847
  //# sourceMappingURL=trigger-handler.test.js.map