@xdevops/issue-auto-finish 1.0.92 → 1.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.
- package/dist/{PtyRunner-NYASBTRP.js → PtyRunner-6RSDKUMM.js} +4 -2
- package/dist/ai-runner/DialogClassifier.d.ts +44 -0
- package/dist/ai-runner/DialogClassifier.d.ts.map +1 -0
- package/dist/ai-runner/PlanFileResolver.d.ts +1 -0
- package/dist/ai-runner/PlanFileResolver.d.ts.map +1 -1
- package/dist/ai-runner/PtyRunner.d.ts +17 -0
- package/dist/ai-runner/PtyRunner.d.ts.map +1 -1
- package/dist/{ai-runner-TOHVJJ76.js → ai-runner-45IRCBIR.js} +2 -2
- package/dist/{analyze-DBH4K3J7.js → analyze-7TY5DYBT.js} +2 -2
- package/dist/{braindump-RYI4BGMG.js → braindump-FLX6HEVB.js} +2 -2
- package/dist/{chunk-4XMYOXGZ.js → chunk-36G3DPO3.js} +944 -93
- package/dist/chunk-36G3DPO3.js.map +1 -0
- package/dist/{chunk-6T7ZHAV2.js → chunk-4JI5AJEA.js} +9 -9
- package/dist/{chunk-WZGEYHCC.js → chunk-MTXTSSBH.js} +271 -716
- package/dist/chunk-MTXTSSBH.js.map +1 -0
- package/dist/{chunk-ENF24C44.js → chunk-RR65A7J4.js} +2 -2
- package/dist/{chunk-2WDVTLVF.js → chunk-ZDY5NCP3.js} +1 -1
- package/dist/cli.js +5 -5
- package/dist/hooks/HookInjector.d.ts +20 -0
- package/dist/hooks/HookInjector.d.ts.map +1 -1
- package/dist/index.js +4 -4
- package/dist/{init-UKTP7LXS.js → init-O7XJLCP3.js} +2 -2
- package/dist/lib.js +2 -2
- package/dist/{restart-5D3ZDD5L.js → restart-4LNDGOOU.js} +2 -2
- package/dist/run.js +4 -4
- package/dist/{start-IQBNXLEI.js → start-Z4ODDTJ5.js} +2 -2
- package/package.json +1 -1
- package/src/web/frontend/dist/assets/index-BrvoaFSK.css +1 -0
- package/src/web/frontend/dist/assets/{index-BR0UoQER.js → index-CmyxgdS_.js} +54 -54
- package/src/web/frontend/dist/index.html +2 -2
- package/dist/chunk-4XMYOXGZ.js.map +0 -1
- package/dist/chunk-WZGEYHCC.js.map +0 -1
- package/src/web/frontend/dist/assets/index-DWOHf3bd.css +0 -1
- /package/dist/{PtyRunner-NYASBTRP.js.map → PtyRunner-6RSDKUMM.js.map} +0 -0
- /package/dist/{ai-runner-TOHVJJ76.js.map → ai-runner-45IRCBIR.js.map} +0 -0
- /package/dist/{analyze-DBH4K3J7.js.map → analyze-7TY5DYBT.js.map} +0 -0
- /package/dist/{braindump-RYI4BGMG.js.map → braindump-FLX6HEVB.js.map} +0 -0
- /package/dist/{chunk-6T7ZHAV2.js.map → chunk-4JI5AJEA.js.map} +0 -0
- /package/dist/{chunk-ENF24C44.js.map → chunk-RR65A7J4.js.map} +0 -0
- /package/dist/{chunk-2WDVTLVF.js.map → chunk-ZDY5NCP3.js.map} +0 -0
- /package/dist/{init-UKTP7LXS.js.map → init-O7XJLCP3.js.map} +0 -0
- /package/dist/{restart-5D3ZDD5L.js.map → restart-4LNDGOOU.js.map} +0 -0
- /package/dist/{start-IQBNXLEI.js.map → start-Z4ODDTJ5.js.map} +0 -0
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
INTERACTIVE_NAV_HINT_RE,
|
|
3
|
+
InputWaitController,
|
|
3
4
|
PERMISSION_DIALOG_RE,
|
|
4
5
|
PLAN_CONFIRM_RE,
|
|
5
6
|
PtyRunner,
|
|
@@ -11,13 +12,14 @@ import {
|
|
|
11
12
|
isTuiNoise,
|
|
12
13
|
parseInteractiveDialog,
|
|
13
14
|
stripAnsi
|
|
14
|
-
} from "./chunk-
|
|
15
|
+
} from "./chunk-36G3DPO3.js";
|
|
15
16
|
import "./chunk-TFEPHOVE.js";
|
|
16
17
|
import "./chunk-G7QI5WDI.js";
|
|
17
18
|
import "./chunk-2RWGZPNF.js";
|
|
18
19
|
import "./chunk-GF2RRYHB.js";
|
|
19
20
|
export {
|
|
20
21
|
INTERACTIVE_NAV_HINT_RE,
|
|
22
|
+
InputWaitController,
|
|
21
23
|
PERMISSION_DIALOG_RE,
|
|
22
24
|
PLAN_CONFIRM_RE,
|
|
23
25
|
PtyRunner,
|
|
@@ -30,4 +32,4 @@ export {
|
|
|
30
32
|
parseInteractiveDialog,
|
|
31
33
|
stripAnsi
|
|
32
34
|
};
|
|
33
|
-
//# sourceMappingURL=PtyRunner-
|
|
35
|
+
//# sourceMappingURL=PtyRunner-6RSDKUMM.js.map
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import type { HookEvent } from '../hooks/HookInjector.js';
|
|
2
|
+
import type { DialogOption } from './AIRunner.js';
|
|
3
|
+
export interface AskUserData {
|
|
4
|
+
question: string;
|
|
5
|
+
options: DialogOption[];
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* Dual-channel dialog classifier: combines hook events (high confidence)
|
|
9
|
+
* with regex detection (fallback) to identify interactive dialogs.
|
|
10
|
+
*
|
|
11
|
+
* Hook channel: PreToolUse(AskUserQuestion) provides structured question+options
|
|
12
|
+
* before TUI rendering. Notification(permission_prompt) suppresses false positives.
|
|
13
|
+
*
|
|
14
|
+
* Regex channel: existing parseInteractiveDialog/isInteractiveDialog logic
|
|
15
|
+
* as fallback for runners that don't support hooks.
|
|
16
|
+
*/
|
|
17
|
+
export declare class DialogClassifier {
|
|
18
|
+
private recentEvents;
|
|
19
|
+
private handledIds;
|
|
20
|
+
ingestHookEvent(event: HookEvent): void;
|
|
21
|
+
/**
|
|
22
|
+
* Check if there's a pending AskUserQuestion from hooks that hasn't been
|
|
23
|
+
* handled yet. Returns structured data or null.
|
|
24
|
+
*/
|
|
25
|
+
consumePendingAskUser(): AskUserData | null;
|
|
26
|
+
/**
|
|
27
|
+
* Whether a recent permission_prompt notification exists, indicating
|
|
28
|
+
* that regex-detected dialogs are likely false positives.
|
|
29
|
+
*/
|
|
30
|
+
hasRecentPermissionPrompt(): boolean;
|
|
31
|
+
/**
|
|
32
|
+
* Whether a recent ask_user_question hook event exists, indicating
|
|
33
|
+
* that regex detection should be suppressed to avoid duplicate forwarding.
|
|
34
|
+
*/
|
|
35
|
+
hasRecentAskUser(): boolean;
|
|
36
|
+
/**
|
|
37
|
+
* Whether regex-based dialog detection should be suppressed
|
|
38
|
+
* (either due to recent hook-based AskUser or permission_prompt).
|
|
39
|
+
*/
|
|
40
|
+
shouldSuppressRegex(): boolean;
|
|
41
|
+
reset(): void;
|
|
42
|
+
private pruneExpired;
|
|
43
|
+
}
|
|
44
|
+
//# sourceMappingURL=DialogClassifier.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DialogClassifier.d.ts","sourceRoot":"","sources":["../../src/ai-runner/DialogClassifier.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAyB,MAAM,0BAA0B,CAAC;AACjF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAclD,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,YAAY,EAAE,CAAC;CACzB;AAED;;;;;;;;;GASG;AACH,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,YAAY,CAAoB;IACxC,OAAO,CAAC,UAAU,CAAqB;IAEvC,eAAe,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI;IAgBvC;;;OAGG;IACH,qBAAqB,IAAI,WAAW,GAAG,IAAI;IAmB3C;;;OAGG;IACH,yBAAyB,IAAI,OAAO;IASpC;;;OAGG;IACH,gBAAgB,IAAI,OAAO;IAQ3B;;;OAGG;IACH,mBAAmB,IAAI,OAAO;IAI9B,KAAK,IAAI,IAAI;IAKb,OAAO,CAAC,YAAY;CAIrB"}
|
|
@@ -41,6 +41,7 @@ export declare class PlanFileResolver {
|
|
|
41
41
|
static buildContentHint(issueIid: number, issueTitle?: string): string;
|
|
42
42
|
private listFiles;
|
|
43
43
|
private findNewFiles;
|
|
44
|
+
private isMetadataFile;
|
|
44
45
|
/**
|
|
45
46
|
* Fallback: if no new files found (rare case — plan might have overwritten
|
|
46
47
|
* an existing file), find the most recently modified file.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PlanFileResolver.d.ts","sourceRoot":"","sources":["../../src/ai-runner/PlanFileResolver.ts"],"names":[],"mappings":"AAOA,MAAM,WAAW,gBAAgB;IAC/B,gEAAgE;IAChE,UAAU,EAAE,MAAM,CAAC;IACnB,mBAAmB;IACnB,OAAO,EAAE,MAAM,CAAC;CACjB;
|
|
1
|
+
{"version":3,"file":"PlanFileResolver.d.ts","sourceRoot":"","sources":["../../src/ai-runner/PlanFileResolver.ts"],"names":[],"mappings":"AAOA,MAAM,WAAW,gBAAgB;IAC/B,gEAAgE;IAChE,UAAU,EAAE,MAAM,CAAC;IACnB,mBAAmB;IACnB,OAAO,EAAE,MAAM,CAAC;CACjB;AAaD;;;;GAIG;AACH,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAClC,OAAO,CAAC,WAAW,CAAkC;gBAEzC,QAAQ,CAAC,EAAE,MAAM;IAI7B,0FAA0F;IAC1F,MAAM,CAAC,SAAS,CAAC,SAAS,EAAE,MAAM,GAAG,gBAAgB;IAKrD,2EAA2E;IAC3E,kBAAkB,IAAI,IAAI;IAQ1B;;;;OAIG;IACH,qBAAqB,IAAI,OAAO;IAShC;;;;;;;;;;OAUG;IACH,OAAO,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,gBAAgB,GAAG,IAAI;IAuCtD;;OAEG;IACH,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM;IAMtE,OAAO,CAAC,SAAS;IAwBjB,OAAO,CAAC,YAAY;IAUpB,OAAO,CAAC,cAAc;IAKtB;;;OAGG;IACH,OAAO,CAAC,eAAe;IAgCvB,OAAO,CAAC,cAAc;IA+BtB,OAAO,CAAC,cAAc;IAKtB,OAAO,CAAC,aAAa;CActB"}
|
|
@@ -65,6 +65,23 @@ export declare function isInteractiveDialog(stripped: string): boolean;
|
|
|
65
65
|
export declare function containsActiveWork(stripped: string): boolean;
|
|
66
66
|
/** True when the line is Claude Code TUI chrome (spinners, status bar, etc.) */
|
|
67
67
|
export declare function isTuiNoise(line: string): boolean;
|
|
68
|
+
/**
|
|
69
|
+
* Manages timer pause/resume when an interactive dialog is forwarded to the
|
|
70
|
+
* user. Tracks cumulative wall-clock consumption so the remaining budget is
|
|
71
|
+
* correctly restored after the user responds.
|
|
72
|
+
*/
|
|
73
|
+
export declare class InputWaitController {
|
|
74
|
+
private readonly totalBudgetMs;
|
|
75
|
+
private _waiting;
|
|
76
|
+
private wallClockUsedMs;
|
|
77
|
+
private wallClockSegmentStart;
|
|
78
|
+
constructor(totalBudgetMs: number);
|
|
79
|
+
get waiting(): boolean;
|
|
80
|
+
pause(): void;
|
|
81
|
+
resume(): void;
|
|
82
|
+
get remainingMs(): number;
|
|
83
|
+
get usedMs(): number;
|
|
84
|
+
}
|
|
68
85
|
/**
|
|
69
86
|
* AIRunner implementation that drives persistent interactive AI agent
|
|
70
87
|
* terminal sessions (PTY) per issue.
|
|
@@ -1 +1 @@
|
|
|
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;
|
|
1
|
+
{"version":3,"file":"PtyRunner.d.ts","sourceRoot":"","sources":["../../src/ai-runner/PtyRunner.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,7 +2,7 @@ import "./chunk-MSL7ROVK.js";
|
|
|
2
2
|
import {
|
|
3
3
|
PlanFileResolver,
|
|
4
4
|
PtyRunner
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-36G3DPO3.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-
|
|
57
|
+
//# sourceMappingURL=ai-runner-45IRCBIR.js.map
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import "./chunk-MSL7ROVK.js";
|
|
2
|
-
import "./chunk-
|
|
2
|
+
import "./chunk-36G3DPO3.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-
|
|
80
|
+
//# sourceMappingURL=analyze-7TY5DYBT.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-
|
|
18
|
+
import "./chunk-36G3DPO3.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-
|
|
212
|
+
//# sourceMappingURL=braindump-FLX6HEVB.js.map
|