@xdevops/issue-auto-finish 1.0.94 → 1.0.96

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.
Files changed (37) hide show
  1. package/dist/{PtyRunner-6RSDKUMM.js → PtyRunner-UD3M7GNM.js} +2 -2
  2. package/dist/ai-runner/AIRunner.d.ts +4 -0
  3. package/dist/ai-runner/AIRunner.d.ts.map +1 -1
  4. package/dist/ai-runner/PtyRunner.d.ts.map +1 -1
  5. package/dist/{ai-runner-45IRCBIR.js → ai-runner-6OQYGU56.js} +2 -2
  6. package/dist/{analyze-7TY5DYBT.js → analyze-LZHS3MHW.js} +2 -2
  7. package/dist/{braindump-FLX6HEVB.js → braindump-7QDUYUZW.js} +2 -2
  8. package/dist/{chunk-ZDY5NCP3.js → chunk-75ANI33A.js} +1 -1
  9. package/dist/{chunk-RR65A7J4.js → chunk-AFGUFM6H.js} +2 -2
  10. package/dist/{chunk-4JI5AJEA.js → chunk-P6KYWBMT.js} +9 -9
  11. package/dist/{chunk-36G3DPO3.js → chunk-SJSVO46Z.js} +23 -4
  12. package/dist/chunk-SJSVO46Z.js.map +1 -0
  13. package/dist/{chunk-MTXTSSBH.js → chunk-W553OKAJ.js} +66 -31
  14. package/dist/{chunk-MTXTSSBH.js.map → chunk-W553OKAJ.js.map} +1 -1
  15. package/dist/cli.js +5 -5
  16. package/dist/index.js +4 -4
  17. package/dist/{init-O7XJLCP3.js → init-Q4DTX6JN.js} +2 -2
  18. package/dist/lib.js +2 -2
  19. package/dist/orchestrator/steps/PhaseHelpers.d.ts +1 -1
  20. package/dist/orchestrator/steps/PhaseHelpers.d.ts.map +1 -1
  21. package/dist/orchestrator/steps/SetupStep.d.ts +7 -0
  22. package/dist/orchestrator/steps/SetupStep.d.ts.map +1 -1
  23. package/dist/{restart-4LNDGOOU.js → restart-CEFVMQLL.js} +2 -2
  24. package/dist/run.js +4 -4
  25. package/dist/{start-Z4ODDTJ5.js → start-JYVFJZCL.js} +2 -2
  26. package/package.json +1 -1
  27. package/dist/chunk-36G3DPO3.js.map +0 -1
  28. /package/dist/{PtyRunner-6RSDKUMM.js.map → PtyRunner-UD3M7GNM.js.map} +0 -0
  29. /package/dist/{ai-runner-45IRCBIR.js.map → ai-runner-6OQYGU56.js.map} +0 -0
  30. /package/dist/{analyze-7TY5DYBT.js.map → analyze-LZHS3MHW.js.map} +0 -0
  31. /package/dist/{braindump-FLX6HEVB.js.map → braindump-7QDUYUZW.js.map} +0 -0
  32. /package/dist/{chunk-ZDY5NCP3.js.map → chunk-75ANI33A.js.map} +0 -0
  33. /package/dist/{chunk-RR65A7J4.js.map → chunk-AFGUFM6H.js.map} +0 -0
  34. /package/dist/{chunk-4JI5AJEA.js.map → chunk-P6KYWBMT.js.map} +0 -0
  35. /package/dist/{init-O7XJLCP3.js.map → init-Q4DTX6JN.js.map} +0 -0
  36. /package/dist/{restart-4LNDGOOU.js.map → restart-CEFVMQLL.js.map} +0 -0
  37. /package/dist/{start-Z4ODDTJ5.js.map → start-JYVFJZCL.js.map} +0 -0
@@ -12,7 +12,7 @@ import {
12
12
  isTuiNoise,
13
13
  parseInteractiveDialog,
14
14
  stripAnsi
15
- } from "./chunk-36G3DPO3.js";
15
+ } from "./chunk-SJSVO46Z.js";
16
16
  import "./chunk-TFEPHOVE.js";
17
17
  import "./chunk-G7QI5WDI.js";
18
18
  import "./chunk-2RWGZPNF.js";
@@ -32,4 +32,4 @@ export {
32
32
  parseInteractiveDialog,
33
33
  stripAnsi
34
34
  };
35
- //# sourceMappingURL=PtyRunner-6RSDKUMM.js.map
35
+ //# sourceMappingURL=PtyRunner-UD3M7GNM.js.map
@@ -39,6 +39,10 @@ export interface RunOptions {
39
39
  /** When PTY output matches this regex, immediately signal task completion (skip debounce).
40
40
  * Used by native plan mode to detect the plan confirmation dialog. */
41
41
  completionSignal?: RegExp;
42
+ /** Hook event name that should trigger completion when detected via HookEventWatcher.
43
+ * Used as a fallback when completionSignal regex fails to match PTY output.
44
+ * A grace period (5s) is applied to let the primary signal match first. */
45
+ completionHookEvent?: string;
42
46
  onStreamEvent?: (event: StreamEvent) => void;
43
47
  onInputRequired?: (request: InputRequest) => Promise<string>;
44
48
  }
@@ -1 +1 @@
1
- {"version":3,"file":"AIRunner.d.ts","sourceRoot":"","sources":["../../src/ai-runner/AIRunner.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,eAAe,GAAG,oBAAoB,GAAG,SAAS,CAAC;IACzD,OAAO,EAAE,MAAM,CAAC;IAChB,4EAA4E;IAC5E,OAAO,CAAC,EAAE,YAAY,EAAE,CAAC;CAC1B;AAED,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,oFAAoF;IACpF,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,0DAA0D;IAC1D,aAAa,CAAC,EAAE,MAAM,OAAO,CAAC;IAC9B,2DAA2D;IAC3D,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,uGAAuG;IACvG,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,sFAAsF;IACtF,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,gEAAgE;IAChE,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B;2EACuE;IACvE,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,CAAC;IAC7C,eAAe,CAAC,EAAE,CAAC,OAAO,EAAE,YAAY,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;CAC9D;AAED,MAAM,WAAW,SAAS;IACxB,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,qDAAqD;IACrD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,WAAW,CAAC,EAAE,YAAY,GAAG,MAAM,CAAC;IACpC;oFACgF;IAChF,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC9B;AAED,MAAM,WAAW,QAAQ;IACvB,GAAG,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;IAC7C,OAAO,IAAI,IAAI,CAAC;IAChB,aAAa,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,CAAC;IAC7C,gFAAgF;IAChF,kBAAkB,CAAC,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC;CACrD"}
1
+ {"version":3,"file":"AIRunner.d.ts","sourceRoot":"","sources":["../../src/ai-runner/AIRunner.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,eAAe,GAAG,oBAAoB,GAAG,SAAS,CAAC;IACzD,OAAO,EAAE,MAAM,CAAC;IAChB,4EAA4E;IAC5E,OAAO,CAAC,EAAE,YAAY,EAAE,CAAC;CAC1B;AAED,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,oFAAoF;IACpF,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,0DAA0D;IAC1D,aAAa,CAAC,EAAE,MAAM,OAAO,CAAC;IAC9B,2DAA2D;IAC3D,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,uGAAuG;IACvG,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,sFAAsF;IACtF,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,gEAAgE;IAChE,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B;2EACuE;IACvE,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B;;gFAE4E;IAC5E,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,CAAC;IAC7C,eAAe,CAAC,EAAE,CAAC,OAAO,EAAE,YAAY,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;CAC9D;AAED,MAAM,WAAW,SAAS;IACxB,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,qDAAqD;IACrD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,WAAW,CAAC,EAAE,YAAY,GAAG,MAAM,CAAC;IACpC;oFACgF;IAChF,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC9B;AAED,MAAM,WAAW,QAAQ;IACvB,GAAG,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;IAC7C,OAAO,IAAI,IAAI,CAAC;IAChB,aAAa,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,CAAC;IAC7C,gFAAgF;IAChF,kBAAkB,CAAC,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC;CACrD"}
@@ -1 +1 @@
1
- {"version":3,"file":"PtyRunner.d.ts","sourceRoot":"","sources":["../../src/ai-runner/PtyRunner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"PtyRunner.d.ts","sourceRoot":"","sources":["../../src/ai-runner/PtyRunner.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAE,SAAS,EAAe,YAAY,EAAE,MAAM,eAAe,CAAC;AAOhG,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AAetE,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAE7C;AAQD;;;GAGG;AACH,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAgCtD;AA+CD;;;GAGG;AACH,eAAO,MAAM,eAAe,QAAkF,CAAC;AAE/G;;;sEAGsE;AACtE,eAAO,MAAM,oBAAoB,QAC8E,CAAC;AAEhH;;;yEAGyE;AACzE,eAAO,MAAM,eAAe,QAC2E,CAAC;AAMxG;mFACmF;AACnF,eAAO,MAAM,uBAAuB,QACqB,CAAC;AAQ1D,MAAM,MAAM,gBAAgB,GAAG,MAAM,GAAG,KAAK,CAAC;AAE9C;;;;;;;GAOG;AACH,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,MAAM,GAAG;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,YAAY,EAAE,CAAA;CAAE,GAAG,IAAI,CAqC7G;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,gBAAgB,CAKtE;AAED;;;;;;;;;GASG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAU7D;AAED;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAsB5D;AAED,gFAAgF;AAChF,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAwBhD;AAMD;;;;GAIG;AACH,qBAAa,mBAAmB;IAKlB,OAAO,CAAC,QAAQ,CAAC,aAAa;IAJ1C,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,eAAe,CAAK;IAC5B,OAAO,CAAC,qBAAqB,CAAS;gBAET,aAAa,EAAE,MAAM;IAIlD,IAAI,OAAO,IAAI,OAAO,CAA0B;IAEhD,KAAK,IAAI,IAAI;IAMb,MAAM,IAAI,IAAI;IAMd,IAAI,WAAW,IAAI,MAAM,CAExB;IAED,IAAI,MAAM,IAAI,MAAM,CAEnB;CACF;AAgCD;;;;;;;GAOG;AACH,qBAAa,SAAU,YAAW,QAAQ;IAStC,OAAO,CAAC,QAAQ,CAAC,cAAc;IAC/B,OAAO,CAAC,QAAQ,CAAC,eAAe;IAChC,OAAO,CAAC,QAAQ,CAAC,gBAAgB;IACjC,OAAO,CAAC,QAAQ,CAAC,aAAa;IAC9B,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC;IAC7B,OAAO,CAAC,QAAQ,CAAC,YAAY;IAb/B,qEAAqE;IACrE,OAAO,CAAC,QAAQ,CAAqC;IAErD;kFAC8E;IAC9E,OAAO,CAAC,cAAc,CAAqB;gBAGxB,cAAc,EAAE,MAAM,EACtB,eAAe,EAAE,eAAe,EAChC,gBAAgB,EAAE,MAAM,EACxB,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EACrC,WAAW,CAAC,EAAE,MAAM,YAAA,EACpB,YAAY,GAAE,MAAe;IAK1C,GAAG,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,SAAS,CAAC;IAsFlD,OAAO,IAAI,IAAI;IASf,aAAa,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM;IAS5C,kBAAkB,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO;IAsBlD,0DAA0D;IAC1D,OAAO,CAAC,WAAW;IAKnB;;;;;;;;;OASG;YACW,YAAY;IAa1B,iEAAiE;IACjE,OAAO,CAAC,oBAAoB;IAO5B,iFAAiF;IACjF,OAAO,CAAC,sBAAsB;IAsB9B,OAAO,CAAC,aAAa;IA2ErB;;;;OAIG;IACH,OAAO,CAAC,aAAa;IAgHrB;;;;;;OAMG;YACW,cAAc;IA4C5B;;;;OAIG;IACH,OAAO,CAAC,mBAAmB;IAe3B;;;;;;OAMG;IACH,OAAO,CAAC,mBAAmB;IAM3B;;;;;;;;;OASG;YACW,iBAAiB;IAuH/B,gDAAgD;IAChD,OAAO,CAAC,cAAc;IAiBtB,OAAO,CAAC,eAAe;IAoBvB,OAAO,CAAC,gBAAgB;CA+hBzB"}
@@ -2,7 +2,7 @@ import "./chunk-MSL7ROVK.js";
2
2
  import {
3
3
  PlanFileResolver,
4
4
  PtyRunner
5
- } from "./chunk-36G3DPO3.js";
5
+ } from "./chunk-SJSVO46Z.js";
6
6
  import {
7
7
  SdkRunner
8
8
  } from "./chunk-R32Q3RGK.js";
@@ -54,4 +54,4 @@ export {
54
54
  usesDeterministicPlanCopy,
55
55
  validateRunnerRegistry
56
56
  };
57
- //# sourceMappingURL=ai-runner-45IRCBIR.js.map
57
+ //# sourceMappingURL=ai-runner-6OQYGU56.js.map
@@ -1,5 +1,5 @@
1
1
  import "./chunk-MSL7ROVK.js";
2
- import "./chunk-36G3DPO3.js";
2
+ import "./chunk-SJSVO46Z.js";
3
3
  import "./chunk-R32Q3RGK.js";
4
4
  import {
5
5
  analyze
@@ -77,4 +77,4 @@ async function analyzeCommand(opts) {
77
77
  export {
78
78
  analyzeCommand
79
79
  };
80
- //# sourceMappingURL=analyze-7TY5DYBT.js.map
80
+ //# sourceMappingURL=analyze-LZHS3MHW.js.map
@@ -15,7 +15,7 @@ import {
15
15
  GitOperations
16
16
  } from "./chunk-GPZX4DSY.js";
17
17
  import "./chunk-MSL7ROVK.js";
18
- import "./chunk-36G3DPO3.js";
18
+ import "./chunk-SJSVO46Z.js";
19
19
  import "./chunk-R32Q3RGK.js";
20
20
  import "./chunk-ACVOOHAR.js";
21
21
  import "./chunk-B7TVVODN.js";
@@ -209,4 +209,4 @@ ${bold("\u786E\u8BA4\u6267\u884C\uFF1F")} (${green("y")}=\u786E\u8BA4 / ${red("q
209
209
  export {
210
210
  braindumpCommand
211
211
  };
212
- //# sourceMappingURL=braindump-FLX6HEVB.js.map
212
+ //# sourceMappingURL=braindump-7QDUYUZW.js.map
@@ -110,4 +110,4 @@ async function startDaemon(configPath) {
110
110
  export {
111
111
  startCommand
112
112
  };
113
- //# sourceMappingURL=chunk-ZDY5NCP3.js.map
113
+ //# sourceMappingURL=chunk-75ANI33A.js.map
@@ -469,7 +469,7 @@ function createSetupRouter(deps = {}) {
469
469
  sse.write({ step: "analyzing", message: "Running AI analysis..." });
470
470
  try {
471
471
  const { loadConfig } = await import("./config-23TBYFP5.js");
472
- const { createAIRunner } = await import("./ai-runner-45IRCBIR.js");
472
+ const { createAIRunner } = await import("./ai-runner-6OQYGU56.js");
473
473
  const config = loadConfig();
474
474
  const runner = createAIRunner(config.ai);
475
475
  const knowledge = await analyze({ workDir, aiRunner: runner });
@@ -549,4 +549,4 @@ function createSetupRouter(deps = {}) {
549
549
  export {
550
550
  createSetupRouter
551
551
  };
552
- //# sourceMappingURL=chunk-RR65A7J4.js.map
552
+ //# sourceMappingURL=chunk-AFGUFM6H.js.map
@@ -4,7 +4,7 @@ import {
4
4
  } from "./chunk-5M5SB6ZA.js";
5
5
  import {
6
6
  createSetupRouter
7
- } from "./chunk-RR65A7J4.js";
7
+ } from "./chunk-AFGUFM6H.js";
8
8
  import {
9
9
  buildLockNoteBody,
10
10
  buildReleaseNoteBody,
@@ -38,7 +38,7 @@ import {
38
38
  setE2eOverride,
39
39
  setNoteSyncOverride,
40
40
  validatePhaseRegistry
41
- } from "./chunk-MTXTSSBH.js";
41
+ } from "./chunk-W553OKAJ.js";
42
42
  import {
43
43
  AsyncMutex,
44
44
  BaseTracker,
@@ -2458,7 +2458,7 @@ function createKnowledgeRouter(deps) {
2458
2458
  heartbeat = setInterval(() => {
2459
2459
  sendProgress({ step: "analyzing", current: 2, total, message: "AI \u5206\u6790\u4E2D...", elapsed: Date.now() - aiStart });
2460
2460
  }, 3e3);
2461
- const { createAIRunner: createAIRunner2 } = await import("./ai-runner-45IRCBIR.js");
2461
+ const { createAIRunner: createAIRunner2 } = await import("./ai-runner-6OQYGU56.js");
2462
2462
  const runner = createAIRunner2(config.ai);
2463
2463
  const { analyze } = await import("./KnowledgeAnalyzer-MTTTSSHX.js");
2464
2464
  const knowledge = await analyze({ workDir, aiRunner: runner, syncToProject: config.sync.knowledgeToProject });
@@ -2503,7 +2503,7 @@ function createKnowledgeRouter(deps) {
2503
2503
  (async () => {
2504
2504
  try {
2505
2505
  sendProgress({ step: "collecting", current: 1, total, message: "\u68C0\u6D4B\u53D8\u66F4\u5E76\u6536\u96C6\u4FE1\u606F..." });
2506
- const { createAIRunner: createAIRunner2 } = await import("./ai-runner-45IRCBIR.js");
2506
+ const { createAIRunner: createAIRunner2 } = await import("./ai-runner-6OQYGU56.js");
2507
2507
  const { analyzeIncremental } = await import("./KnowledgeAnalyzer-MTTTSSHX.js");
2508
2508
  const runner = createAIRunner2(config.ai);
2509
2509
  sendProgress({ step: "analyzing", current: 2, total, message: "\u589E\u91CF\u5206\u6790\u4E2D..." });
@@ -2787,7 +2787,7 @@ function createDomainModelRouter(deps) {
2787
2787
  }
2788
2788
  (async () => {
2789
2789
  try {
2790
- const { createAIRunner: createAIRunner2 } = await import("./ai-runner-45IRCBIR.js");
2790
+ const { createAIRunner: createAIRunner2 } = await import("./ai-runner-6OQYGU56.js");
2791
2791
  const runner = createAIRunner2(config.ai);
2792
2792
  const model = await analyzer.analyze({
2793
2793
  workDir: config.project.workDir,
@@ -3001,7 +3001,7 @@ function createSystemUseCaseRouter(deps) {
3001
3001
  }
3002
3002
  (async () => {
3003
3003
  try {
3004
- const { createAIRunner: createAIRunner2 } = await import("./ai-runner-45IRCBIR.js");
3004
+ const { createAIRunner: createAIRunner2 } = await import("./ai-runner-6OQYGU56.js");
3005
3005
  const runner = createAIRunner2(config.ai);
3006
3006
  const model = await analyzer.analyze({
3007
3007
  workDir: config.project.workDir,
@@ -3191,7 +3191,7 @@ function createSystemUseCaseRouter(deps) {
3191
3191
  res.status(404).json({ error: "No domain model loaded \u2014 run domain analysis first" });
3192
3192
  return;
3193
3193
  }
3194
- const { createAIRunner: createAIRunner2 } = await import("./ai-runner-45IRCBIR.js");
3194
+ const { createAIRunner: createAIRunner2 } = await import("./ai-runner-6OQYGU56.js");
3195
3195
  const runner = createAIRunner2(config.ai);
3196
3196
  const associations = await analyzer.suggestDomainAssociations(
3197
3197
  useCaseModel,
@@ -8883,7 +8883,7 @@ async function main() {
8883
8883
  let sharedTerminalManager;
8884
8884
  if (config.ai.mode === "pty") {
8885
8885
  const { TerminalManager: TerminalManager2 } = await import("./TerminalManager-RT2N7N5R.js");
8886
- const { PtyRunner } = await import("./PtyRunner-6RSDKUMM.js");
8886
+ const { PtyRunner } = await import("./PtyRunner-UD3M7GNM.js");
8887
8887
  const { registerAIRunner: regRunner, getPtyProfile } = await import("./AIRunnerRegistry-CFDNWSXC.js");
8888
8888
  const allPtyAgents = /* @__PURE__ */ new Set([
8889
8889
  config.pty.defaultAgent,
@@ -9303,4 +9303,4 @@ function migrateKnowledgeDir(srcDir, destDir) {
9303
9303
  export {
9304
9304
  main
9305
9305
  };
9306
- //# sourceMappingURL=chunk-4JI5AJEA.js.map
9306
+ //# sourceMappingURL=chunk-P6KYWBMT.js.map
@@ -742,8 +742,9 @@ if echo "$EXPECTED" | tr ',' '\\n' | grep -qx "$BASENAME"; then
742
742
  "$(date -u +%FT%TZ)" "$BASENAME" "$FILE_PATH" "$BYTES" >> ${quote(manifestFile)}
743
743
  fi
744
744
 
745
- printf '{"ts":"%s","event":"artifact_write","file":"%s","path":"%s","bytes":0}\\n' \\
746
- "$(date -u +%FT%TZ)" "$BASENAME" "$FILE_PATH" >> ${quote(eventsFile)}
745
+ BYTES_EVT=$(wc -c < "$FILE_PATH" 2>/dev/null || echo 0)
746
+ printf '{"ts":"%s","event":"artifact_write","file":"%s","path":"%s","bytes":%s}\\n' \\
747
+ "$(date -u +%FT%TZ)" "$BASENAME" "$FILE_PATH" "$BYTES_EVT" >> ${quote(eventsFile)}
747
748
  exit 0
748
749
  `;
749
750
  }
@@ -1475,7 +1476,8 @@ var PtyRunner = class {
1475
1476
  const planResult = await this.detectCompletion(sessionId, {
1476
1477
  ...options,
1477
1478
  completionSignal: PLAN_CONFIRM_RE,
1478
- artifactCheck: planArtifactCheck
1479
+ artifactCheck: planArtifactCheck,
1480
+ completionHookEvent: "exit_plan_mode"
1479
1481
  }, options.onStreamEvent, continueSession);
1480
1482
  if (planResult.timedOut) {
1481
1483
  logger6.warn("Native plan mode: plan phase timed out", {
@@ -1654,6 +1656,7 @@ var PtyRunner = class {
1654
1656
  const dialogClassifier = new DialogClassifier();
1655
1657
  let hookWatcher;
1656
1658
  let hookSub;
1659
+ let completionHookGraceTimer;
1657
1660
  const hookInjector = new HookInjector();
1658
1661
  const eventsFilePath = hookInjector.getEventsFilePath(options.workDir);
1659
1662
  if (fs4.existsSync(eventsFilePath)) {
@@ -1694,6 +1697,21 @@ var PtyRunner = class {
1694
1697
  });
1695
1698
  }
1696
1699
  }
1700
+ if (options.completionHookEvent && event.event === options.completionHookEvent && hasSubstantiveOutput && !resolved && !completionHookGraceTimer) {
1701
+ logger6.info("Completion hook event detected, starting grace period", {
1702
+ sessionId,
1703
+ event: event.event
1704
+ });
1705
+ completionHookGraceTimer = setTimeout(() => {
1706
+ if (!resolved) {
1707
+ logger6.info("Completion hook event grace period elapsed, finishing", {
1708
+ sessionId,
1709
+ event: event.event
1710
+ });
1711
+ finish({ output: outputLines.join(""), timedOut: false });
1712
+ }
1713
+ }, 5e3);
1714
+ }
1697
1715
  });
1698
1716
  hookWatcher.start();
1699
1717
  }
@@ -1975,6 +1993,7 @@ var PtyRunner = class {
1975
1993
  clearInterval(idleCheck);
1976
1994
  if (debounceTimer) clearTimeout(debounceTimer);
1977
1995
  if (dialogQuiesceTimer) clearTimeout(dialogQuiesceTimer);
1996
+ if (completionHookGraceTimer) clearTimeout(completionHookGraceTimer);
1978
1997
  subscription.dispose();
1979
1998
  hookSub?.dispose();
1980
1999
  hookWatcher?.stop();
@@ -2001,4 +2020,4 @@ export {
2001
2020
  InputWaitController,
2002
2021
  PtyRunner
2003
2022
  };
2004
- //# sourceMappingURL=chunk-36G3DPO3.js.map
2023
+ //# sourceMappingURL=chunk-SJSVO46Z.js.map