@xdevops/issue-auto-finish 1.0.88 → 1.0.90
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/{AIRunnerRegistry-II3WWSFN.js → AIRunnerRegistry-CFDNWSXC.js} +6 -3
- package/dist/{LockNote-Z2CLDZNN.js → LockNote-W2JNVMW7.js} +3 -3
- package/dist/PtyRunner-NYASBTRP.js +33 -0
- package/dist/SdkRunner-U2OTOMZU.js +9 -0
- package/dist/ai-runner/AIRunner.d.ts +19 -1
- package/dist/ai-runner/AIRunner.d.ts.map +1 -1
- package/dist/ai-runner/AIRunnerRegistry.d.ts +8 -0
- package/dist/ai-runner/AIRunnerRegistry.d.ts.map +1 -1
- package/dist/ai-runner/PlanFileResolver.d.ts +53 -0
- package/dist/ai-runner/PlanFileResolver.d.ts.map +1 -0
- package/dist/ai-runner/PtyRunner.d.ts +45 -4
- package/dist/ai-runner/PtyRunner.d.ts.map +1 -1
- package/dist/ai-runner/SdkRunner.d.ts +22 -0
- package/dist/ai-runner/SdkRunner.d.ts.map +1 -0
- package/dist/ai-runner/index.d.ts +5 -2
- package/dist/ai-runner/index.d.ts.map +1 -1
- package/dist/ai-runner/sdk/ClaudeCodeSDK.d.ts +37 -0
- package/dist/ai-runner/sdk/ClaudeCodeSDK.d.ts.map +1 -0
- package/dist/ai-runner/sdk/Stream.d.ts +22 -0
- package/dist/ai-runner/sdk/Stream.d.ts.map +1 -0
- package/dist/ai-runner/sdk/types.d.ts +146 -0
- package/dist/ai-runner/sdk/types.d.ts.map +1 -0
- package/dist/{ai-runner-HLA44WI6.js → ai-runner-TOHVJJ76.js} +14 -5
- package/dist/{analyze-ZIXNC5GN.js → analyze-DBH4K3J7.js} +8 -6
- package/dist/{analyze-ZIXNC5GN.js.map → analyze-DBH4K3J7.js.map} +1 -1
- package/dist/{braindump-56WAY2RD.js → braindump-RYI4BGMG.js} +11 -9
- package/dist/{braindump-56WAY2RD.js.map → braindump-RYI4BGMG.js.map} +1 -1
- package/dist/{chunk-AVGZH64A.js → chunk-2RWGZPNF.js} +4 -1
- package/dist/chunk-2RWGZPNF.js.map +1 -0
- package/dist/chunk-4XMYOXGZ.js +1153 -0
- package/dist/chunk-4XMYOXGZ.js.map +1 -0
- package/dist/{chunk-M5C2WILQ.js → chunk-5M5SB6ZA.js} +7 -5
- package/dist/{chunk-M5C2WILQ.js.map → chunk-5M5SB6ZA.js.map} +1 -1
- package/dist/{chunk-D47Q5745.js → chunk-ENF24C44.js} +7 -7
- package/dist/{chunk-GXFG4JU6.js → chunk-EU4XFZ2T.js} +2 -2
- package/dist/{chunk-NZHKAPU6.js → chunk-FJTZKAJA.js} +9 -3
- package/dist/chunk-FJTZKAJA.js.map +1 -0
- package/dist/chunk-G7QI5WDI.js +14 -0
- package/dist/chunk-G7QI5WDI.js.map +1 -0
- package/dist/{chunk-2YQHKXLL.js → chunk-GPZX4DSY.js} +22 -6
- package/dist/chunk-GPZX4DSY.js.map +1 -0
- package/dist/{chunk-IP3QTP5A.js → chunk-IWSMQXBL.js} +189 -48
- package/dist/chunk-IWSMQXBL.js.map +1 -0
- package/dist/chunk-MSL7ROVK.js +1 -0
- package/dist/{chunk-YCYVNRLF.js → chunk-OBGEEGQ3.js} +61 -19
- package/dist/chunk-OBGEEGQ3.js.map +1 -0
- package/dist/chunk-R32Q3RGK.js +666 -0
- package/dist/chunk-R32Q3RGK.js.map +1 -0
- package/dist/{chunk-LNFMARKQ.js → chunk-SEO57UYI.js} +25 -8
- package/dist/chunk-SEO57UYI.js.map +1 -0
- package/dist/{chunk-2GJ2KA4Z.js → chunk-TDKTI363.js} +3 -3
- package/dist/{chunk-SAMTXC4A.js → chunk-TFEPHOVE.js} +12 -17
- package/dist/chunk-TFEPHOVE.js.map +1 -0
- package/dist/{chunk-C4MFVASL.js → chunk-Y62E72TA.js} +63 -20
- package/dist/chunk-Y62E72TA.js.map +1 -0
- package/dist/{chunk-HDFNMVRQ.js → chunk-Z3OBKODV.js} +12 -11
- package/dist/chunk-Z3OBKODV.js.map +1 -0
- package/dist/cli/setup/ConfigGenerator.d.ts +2 -0
- package/dist/cli/setup/ConfigGenerator.d.ts.map +1 -1
- package/dist/cli/setup/DependencyChecker.d.ts +1 -1
- package/dist/cli/setup/DependencyChecker.d.ts.map +1 -1
- package/dist/cli/setup/PreflightChecker.d.ts.map +1 -1
- package/dist/cli/setup/env-metadata.d.ts.map +1 -1
- package/dist/cli.js +10 -9
- package/dist/cli.js.map +1 -1
- package/dist/{config-WTRSZLOC.js → config-23TBYFP5.js} +5 -4
- package/dist/config-schema.d.ts +6 -0
- package/dist/config-schema.d.ts.map +1 -1
- package/dist/config.d.ts +6 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/{doctor-37JNBGDN.js → doctor-LLETZLW2.js} +3 -3
- package/dist/errors/AIExecutionError.d.ts +3 -0
- package/dist/errors/AIExecutionError.d.ts.map +1 -1
- package/dist/{errors-S3BWYA4I.js → errors-J3ZRP66W.js} +2 -2
- package/dist/events/EventBus.d.ts +1 -1
- package/dist/events/EventBus.d.ts.map +1 -1
- package/dist/i18n/locales/en.d.ts.map +1 -1
- package/dist/i18n/locales/zh-CN.d.ts.map +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +16 -14
- package/dist/{init-4THZTNXY.js → init-UKTP7LXS.js} +9 -8
- package/dist/{init-4THZTNXY.js.map → init-UKTP7LXS.js.map} +1 -1
- package/dist/lib.js +10 -8
- package/dist/lib.js.map +1 -1
- package/dist/orchestrator/PendingDialogStore.d.ts +12 -0
- package/dist/orchestrator/PendingDialogStore.d.ts.map +1 -0
- package/dist/orchestrator/steps/FailureHandler.d.ts.map +1 -1
- package/dist/orchestrator/steps/PhaseLoopStep.d.ts.map +1 -1
- package/dist/persistence/PlanPersistence.d.ts +5 -0
- package/dist/persistence/PlanPersistence.d.ts.map +1 -1
- package/dist/persistence/TodolistExtractor.d.ts +31 -0
- package/dist/persistence/TodolistExtractor.d.ts.map +1 -0
- package/dist/phases/BasePhase.d.ts.map +1 -1
- package/dist/phases/PhaseOutcome.d.ts +2 -0
- package/dist/phases/PhaseOutcome.d.ts.map +1 -1
- package/dist/phases/PlanPhase.d.ts.map +1 -1
- package/dist/prompts/templates.d.ts +2 -2
- package/dist/prompts/templates.d.ts.map +1 -1
- package/dist/{restart-VEDIKB6M.js → restart-2BCP6AMK.js} +9 -8
- package/dist/{restart-VEDIKB6M.js.map → restart-2BCP6AMK.js.map} +1 -1
- package/dist/run.js +16 -14
- package/dist/run.js.map +1 -1
- package/dist/start-ECUOKGM2.js +16 -0
- package/dist/start-ECUOKGM2.js.map +1 -0
- package/dist/tracker/IssueTracker.d.ts +6 -0
- package/dist/tracker/IssueTracker.d.ts.map +1 -1
- package/dist/web/routes/api.d.ts.map +1 -1
- package/package.json +5 -1
- package/src/web/frontend/dist/assets/index-DWOHf3bd.css +1 -0
- package/src/web/frontend/dist/assets/index-Dby4j-V_.js +151 -0
- package/src/web/frontend/dist/index.html +2 -2
- package/dist/PtyRunner-6UGI5STW.js +0 -22
- package/dist/chunk-2YQHKXLL.js.map +0 -1
- package/dist/chunk-AVGZH64A.js.map +0 -1
- package/dist/chunk-C4MFVASL.js.map +0 -1
- package/dist/chunk-HDFNMVRQ.js.map +0 -1
- package/dist/chunk-IP3QTP5A.js.map +0 -1
- package/dist/chunk-LNFMARKQ.js.map +0 -1
- package/dist/chunk-NZHKAPU6.js.map +0 -1
- package/dist/chunk-SAMTXC4A.js.map +0 -1
- package/dist/chunk-U237JSLB.js +0 -1
- package/dist/chunk-U6GWFTKA.js +0 -657
- package/dist/chunk-U6GWFTKA.js.map +0 -1
- package/dist/chunk-YCYVNRLF.js.map +0 -1
- package/dist/start-5N6DIWM2.js +0 -15
- package/src/web/frontend/dist/assets/index-COYziOhv.css +0 -1
- package/src/web/frontend/dist/assets/index-D_oTMuJU.js +0 -151
- /package/dist/{AIRunnerRegistry-II3WWSFN.js.map → AIRunnerRegistry-CFDNWSXC.js.map} +0 -0
- /package/dist/{LockNote-Z2CLDZNN.js.map → LockNote-W2JNVMW7.js.map} +0 -0
- /package/dist/{PtyRunner-6UGI5STW.js.map → PtyRunner-NYASBTRP.js.map} +0 -0
- /package/dist/{ai-runner-HLA44WI6.js.map → SdkRunner-U2OTOMZU.js.map} +0 -0
- /package/dist/{chunk-U237JSLB.js.map → ai-runner-TOHVJJ76.js.map} +0 -0
- /package/dist/{chunk-D47Q5745.js.map → chunk-ENF24C44.js.map} +0 -0
- /package/dist/{chunk-GXFG4JU6.js.map → chunk-EU4XFZ2T.js.map} +0 -0
- /package/dist/{config-WTRSZLOC.js.map → chunk-MSL7ROVK.js.map} +0 -0
- /package/dist/{chunk-2GJ2KA4Z.js.map → chunk-TDKTI363.js.map} +0 -0
- /package/dist/{errors-S3BWYA4I.js.map → config-23TBYFP5.js.map} +0 -0
- /package/dist/{doctor-37JNBGDN.js.map → doctor-LLETZLW2.js.map} +0 -0
- /package/dist/{start-5N6DIWM2.js.map → errors-J3ZRP66W.js.map} +0 -0
|
@@ -10,9 +10,11 @@ import {
|
|
|
10
10
|
isRegisteredRunner,
|
|
11
11
|
registerAIRunner,
|
|
12
12
|
resolveRunnerMode,
|
|
13
|
+
usesDeterministicPlanCopy,
|
|
13
14
|
validateRunnerRegistry
|
|
14
|
-
} from "./chunk-
|
|
15
|
-
import "./chunk-
|
|
15
|
+
} from "./chunk-TFEPHOVE.js";
|
|
16
|
+
import "./chunk-G7QI5WDI.js";
|
|
17
|
+
import "./chunk-2RWGZPNF.js";
|
|
16
18
|
import "./chunk-GF2RRYHB.js";
|
|
17
19
|
export {
|
|
18
20
|
createAIRunner,
|
|
@@ -26,6 +28,7 @@ export {
|
|
|
26
28
|
isRegisteredRunner,
|
|
27
29
|
registerAIRunner,
|
|
28
30
|
resolveRunnerMode,
|
|
31
|
+
usesDeterministicPlanCopy,
|
|
29
32
|
validateRunnerRegistry
|
|
30
33
|
};
|
|
31
|
-
//# sourceMappingURL=AIRunnerRegistry-
|
|
34
|
+
//# sourceMappingURL=AIRunnerRegistry-CFDNWSXC.js.map
|
|
@@ -5,8 +5,8 @@ import {
|
|
|
5
5
|
findLockNote,
|
|
6
6
|
isLockStale,
|
|
7
7
|
parseLockNote
|
|
8
|
-
} from "./chunk-
|
|
9
|
-
import "./chunk-
|
|
8
|
+
} from "./chunk-EU4XFZ2T.js";
|
|
9
|
+
import "./chunk-OBGEEGQ3.js";
|
|
10
10
|
export {
|
|
11
11
|
buildLockNoteBody,
|
|
12
12
|
buildReleaseNoteBody,
|
|
@@ -15,4 +15,4 @@ export {
|
|
|
15
15
|
isLockStale,
|
|
16
16
|
parseLockNote
|
|
17
17
|
};
|
|
18
|
-
//# sourceMappingURL=LockNote-
|
|
18
|
+
//# sourceMappingURL=LockNote-W2JNVMW7.js.map
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import {
|
|
2
|
+
INTERACTIVE_NAV_HINT_RE,
|
|
3
|
+
PERMISSION_DIALOG_RE,
|
|
4
|
+
PLAN_CONFIRM_RE,
|
|
5
|
+
PtyRunner,
|
|
6
|
+
TRUST_DIALOG_RE,
|
|
7
|
+
containsActiveWork,
|
|
8
|
+
getDialogConfidence,
|
|
9
|
+
isIdlePrompt,
|
|
10
|
+
isInteractiveDialog,
|
|
11
|
+
isTuiNoise,
|
|
12
|
+
parseInteractiveDialog,
|
|
13
|
+
stripAnsi
|
|
14
|
+
} from "./chunk-4XMYOXGZ.js";
|
|
15
|
+
import "./chunk-TFEPHOVE.js";
|
|
16
|
+
import "./chunk-G7QI5WDI.js";
|
|
17
|
+
import "./chunk-2RWGZPNF.js";
|
|
18
|
+
import "./chunk-GF2RRYHB.js";
|
|
19
|
+
export {
|
|
20
|
+
INTERACTIVE_NAV_HINT_RE,
|
|
21
|
+
PERMISSION_DIALOG_RE,
|
|
22
|
+
PLAN_CONFIRM_RE,
|
|
23
|
+
PtyRunner,
|
|
24
|
+
TRUST_DIALOG_RE,
|
|
25
|
+
containsActiveWork,
|
|
26
|
+
getDialogConfidence,
|
|
27
|
+
isIdlePrompt,
|
|
28
|
+
isInteractiveDialog,
|
|
29
|
+
isTuiNoise,
|
|
30
|
+
parseInteractiveDialog,
|
|
31
|
+
stripAnsi
|
|
32
|
+
};
|
|
33
|
+
//# sourceMappingURL=PtyRunner-NYASBTRP.js.map
|
|
@@ -6,9 +6,15 @@ export interface StreamEvent {
|
|
|
6
6
|
content: unknown;
|
|
7
7
|
timestamp: string;
|
|
8
8
|
}
|
|
9
|
+
export interface DialogOption {
|
|
10
|
+
index: number;
|
|
11
|
+
label: string;
|
|
12
|
+
}
|
|
9
13
|
export interface InputRequest {
|
|
10
|
-
type: 'plan-approval' | 'generic';
|
|
14
|
+
type: 'plan-approval' | 'interactive-dialog' | 'generic';
|
|
11
15
|
content: string;
|
|
16
|
+
/** Numbered options parsed from the TUI dialog (interactive-dialog only) */
|
|
17
|
+
options?: DialogOption[];
|
|
12
18
|
}
|
|
13
19
|
export interface RunOptions {
|
|
14
20
|
prompt: string;
|
|
@@ -24,6 +30,15 @@ export interface RunOptions {
|
|
|
24
30
|
artifactCheck?: () => boolean;
|
|
25
31
|
/** 预期产物文件的完整路径列表(用于 PtyRunner 原生 plan mode 的 commit 步骤) */
|
|
26
32
|
artifactPaths?: string[];
|
|
33
|
+
/** Progressive timeout: recent-output window (ms) to consider agent "active" at wall-clock deadline */
|
|
34
|
+
timeoutGraceMs?: number;
|
|
35
|
+
/** Progressive timeout: how long (ms) to extend per extension when agent is active */
|
|
36
|
+
timeoutExtensionMs?: number;
|
|
37
|
+
/** Progressive timeout: maximum number of extensions allowed */
|
|
38
|
+
timeoutMaxExtensions?: number;
|
|
39
|
+
/** When PTY output matches this regex, immediately signal task completion (skip debounce).
|
|
40
|
+
* Used by native plan mode to detect the plan confirmation dialog. */
|
|
41
|
+
completionSignal?: RegExp;
|
|
27
42
|
onStreamEvent?: (event: StreamEvent) => void;
|
|
28
43
|
onInputRequired?: (request: InputRequest) => Promise<string>;
|
|
29
44
|
}
|
|
@@ -35,6 +50,9 @@ export interface RunResult {
|
|
|
35
50
|
sessionId?: string;
|
|
36
51
|
exitCode: number | null;
|
|
37
52
|
timeoutType?: 'wall-clock' | 'idle';
|
|
53
|
+
/** Whether the agent was still actively producing output when timeout fired.
|
|
54
|
+
* Used by the orchestrator to avoid penalizing slow-but-progressing agents. */
|
|
55
|
+
wasActiveAtTimeout?: boolean;
|
|
38
56
|
}
|
|
39
57
|
export interface AIRunner {
|
|
40
58
|
run(options: RunOptions): Promise<RunResult>;
|
|
@@ -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,IAAI,EAAE,eAAe,GAAG,SAAS,CAAC;
|
|
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"}
|
|
@@ -59,6 +59,14 @@ export declare function getDefaultBinary(mode: string): string;
|
|
|
59
59
|
export declare function getBinaryEnvKey(mode: string): string | undefined;
|
|
60
60
|
export declare function getRunnerCapabilities(mode: string): RunnerCapabilities | undefined;
|
|
61
61
|
export declare function getPtyProfile(agentMode: string): PtyProfile | undefined;
|
|
62
|
+
/**
|
|
63
|
+
* Whether the runner will use deterministic plan file copy (PtyRunner.runNativePlanMode)
|
|
64
|
+
* instead of prompting the agent to write the plan file.
|
|
65
|
+
*
|
|
66
|
+
* True when: runner doesn't natively handle plan mode AND the PTY profile supports
|
|
67
|
+
* interactive mode switching (Shift+Tab between plan/bypass).
|
|
68
|
+
*/
|
|
69
|
+
export declare function usesDeterministicPlanCopy(agentMode: string): boolean;
|
|
62
70
|
/** Get registry entry for an agent mode (used by PtyRunner to resolve binary/envKey) */
|
|
63
71
|
export declare function getRegistryEntry(mode: string): RunnerRegistryEntry | undefined;
|
|
64
72
|
export declare function createAIRunner(ai: AIConfig): AIRunner;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AIRunnerRegistry.d.ts","sourceRoot":"","sources":["../../src/ai-runner/AIRunnerRegistry.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAQtD,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,KAAK,iBAAiB,GAAG,KAAK,MAAM,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,KAAK,YAAY,CAAC;AAEtG,MAAM,WAAW,kBAAkB;IACjC,kFAAkF;IAClF,cAAc,EAAE,OAAO,CAAC;CACzB;AAED;;;;GAIG;AACH,MAAM,WAAW,UAAU;IACzB,6EAA6E;IAC7E,YAAY,EAAE,CAAC,IAAI,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,KAAK,MAAM,EAAE,CAAC;IACzE;gEAC4D;IAC5D,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;kFAE8E;IAC9E,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB;2EACuE;IACvE,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;8EAC0E;IAC1E,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,CAAC;IACtD,qEAAqE;IACrE,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,4EAA4E;IAC5E,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,CAAC,EAAE,iBAAiB,CAAC;IACzB,wDAAwD;IACxD,SAAS,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,KAAK,QAAQ,CAAC;IACjF,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,kBAAkB,CAAC;IACjC,mEAAmE;IACnE,UAAU,CAAC,EAAE,UAAU,CAAC;CACzB;AAQD,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,mBAAmB,GAAG,IAAI,CAE/E;AAED,wBAAgB,wBAAwB,IAAI,MAAM,EAAE,CAEnD;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAExD;AAMD,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAErD;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAGrD;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAEhE;AAED,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,kBAAkB,GAAG,SAAS,CAElF;AAED,wBAAgB,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS,CAEvE;AAED,wFAAwF;AACxF,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,mBAAmB,GAAG,SAAS,CAE9E;AAMD,wBAAgB,cAAc,CAAC,EAAE,EAAE,QAAQ,GAAG,QAAQ,CAUrD;AAMD,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,CAQ5D;AAMD,yDAAyD;AACzD,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAMlE"}
|
|
1
|
+
{"version":3,"file":"AIRunnerRegistry.d.ts","sourceRoot":"","sources":["../../src/ai-runner/AIRunnerRegistry.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
export interface ResolvedPlanFile {
|
|
2
|
+
/** Absolute path to the plan file in the CLI plans directory */
|
|
3
|
+
sourcePath: string;
|
|
4
|
+
/** File content */
|
|
5
|
+
content: string;
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* Resolves the correct plan file from CLI-native plan storage (e.g. ~/.claude/plans/)
|
|
9
|
+
* after a plan-mode execution. Uses snapshot diffing (before/after file lists) with
|
|
10
|
+
* optional content-based validation to handle concurrent plan generation.
|
|
11
|
+
*/
|
|
12
|
+
export declare class PlanFileResolver {
|
|
13
|
+
private readonly plansDir;
|
|
14
|
+
private beforeFiles;
|
|
15
|
+
constructor(plansDir?: string);
|
|
16
|
+
/** Create a resolver for a specific runner mode (e.g. 'claude-internal', 'codebuddy'). */
|
|
17
|
+
static forRunner(agentMode: string): PlanFileResolver;
|
|
18
|
+
/** Take a snapshot of existing plan files before the plan phase starts. */
|
|
19
|
+
takeBeforeSnapshot(): void;
|
|
20
|
+
/**
|
|
21
|
+
* Check if any new or modified plan files exist since the before-snapshot.
|
|
22
|
+
* Used as an artifact gate by detectCompletion to prevent premature
|
|
23
|
+
* completion when the agent is still exploring/thinking.
|
|
24
|
+
*/
|
|
25
|
+
hasNewOrModifiedFiles(): boolean;
|
|
26
|
+
/**
|
|
27
|
+
* After plan phase completes, find the newly created plan file.
|
|
28
|
+
*
|
|
29
|
+
* Strategy:
|
|
30
|
+
* 1. Diff against beforeSnapshot to find new files
|
|
31
|
+
* 2. Sort candidates by mtime (newest first)
|
|
32
|
+
* 3. If contentHint provided, prefer the file whose content matches
|
|
33
|
+
* 4. Return the best candidate
|
|
34
|
+
*
|
|
35
|
+
* @param contentHint - Optional string (e.g. issue IID or title) to validate content
|
|
36
|
+
*/
|
|
37
|
+
resolve(contentHint?: string): ResolvedPlanFile | null;
|
|
38
|
+
/**
|
|
39
|
+
* Build a content hint string from issue metadata for content-based matching.
|
|
40
|
+
*/
|
|
41
|
+
static buildContentHint(issueIid: number, issueTitle?: string): string;
|
|
42
|
+
private listFiles;
|
|
43
|
+
private findNewFiles;
|
|
44
|
+
/**
|
|
45
|
+
* Fallback: if no new files found (rare case — plan might have overwritten
|
|
46
|
+
* an existing file), find the most recently modified file.
|
|
47
|
+
*/
|
|
48
|
+
private fallbackByMtime;
|
|
49
|
+
private matchByContent;
|
|
50
|
+
private contentMatches;
|
|
51
|
+
private readCandidate;
|
|
52
|
+
}
|
|
53
|
+
//# sourceMappingURL=PlanFileResolver.d.ts.map
|
|
@@ -0,0 +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;AAQD;;;;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;IAqCtD;;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;;;OAGG;IACH,OAAO,CAAC,eAAe;IAgCvB,OAAO,CAAC,cAAc;IAqBtB,OAAO,CAAC,cAAc;IAKtB,OAAO,CAAC,aAAa;CActB"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { AIRunner, RunOptions, RunResult } from './AIRunner.js';
|
|
1
|
+
import type { AIRunner, RunOptions, RunResult, DialogOption } from './AIRunner.js';
|
|
2
2
|
import type { TerminalManager } from '../terminal/TerminalManager.js';
|
|
3
3
|
export declare function stripAnsi(str: string): string;
|
|
4
4
|
/** Claude Code / Codebuddy shows a prompt when idle and waiting for user input.
|
|
@@ -16,6 +16,44 @@ export declare const TRUST_DIALOG_RE: RegExp;
|
|
|
16
16
|
* The dialog shows numbered options with "Yes" pre-selected (❯ 1. Yes).
|
|
17
17
|
* Auto-confirm by sending Enter to select the highlighted option. */
|
|
18
18
|
export declare const PERMISSION_DIALOG_RE: RegExp;
|
|
19
|
+
/** Plan confirmation dialog — Claude Code shows this when the plan is finalized
|
|
20
|
+
* and ready to execute. This is the definitive signal that plan mode is done.
|
|
21
|
+
* Matches: "Claude has written up a plan and is ready to execute"
|
|
22
|
+
* or "Yes, and bypass permissions" (unique to this dialog). */
|
|
23
|
+
export declare const PLAN_CONFIRM_RE: RegExp;
|
|
24
|
+
/** Navigation hint shown at the bottom of Claude Code interactive selection menus.
|
|
25
|
+
* Presence of this line is a strong positive signal for an interactive dialog. */
|
|
26
|
+
export declare const INTERACTIVE_NAV_HINT_RE: RegExp;
|
|
27
|
+
export type DialogConfidence = 'high' | 'low';
|
|
28
|
+
/**
|
|
29
|
+
* Parse a TUI frame containing a numbered-choice dialog. Returns the question
|
|
30
|
+
* text and option list, or null if the frame doesn't contain a valid dialog.
|
|
31
|
+
*
|
|
32
|
+
* When a navigation hint ("Enter to select · ↑/↓ to navigate") is present,
|
|
33
|
+
* the minimum option threshold is lowered to 1 (ANSI stripping may corrupt
|
|
34
|
+
* some option lines). Otherwise, at least 2 numbered options are required.
|
|
35
|
+
*/
|
|
36
|
+
export declare function parseInteractiveDialog(stripped: string): {
|
|
37
|
+
question: string;
|
|
38
|
+
options: DialogOption[];
|
|
39
|
+
} | null;
|
|
40
|
+
/**
|
|
41
|
+
* Assess the confidence that a frame is a genuine interactive dialog vs. an
|
|
42
|
+
* agent's numbered markdown list. High-confidence signals include TUI-specific
|
|
43
|
+
* chrome that only appears in real dialogs (nav hint, ❯ highlight, ☐ header).
|
|
44
|
+
*/
|
|
45
|
+
export declare function getDialogConfidence(stripped: string): DialogConfidence;
|
|
46
|
+
/**
|
|
47
|
+
* Returns true when the frame contains an interactive numbered-choice dialog
|
|
48
|
+
* that is NOT already handled by PLAN_CONFIRM_RE or PERMISSION_DIALOG_RE.
|
|
49
|
+
*
|
|
50
|
+
* Two detection paths:
|
|
51
|
+
* 1. Standard: parseInteractiveDialog finds >= 2 numbered options.
|
|
52
|
+
* 2. Nav-hint fallback: the frame contains a navigation hint line
|
|
53
|
+
* ("Enter to select · ↑/↓ to navigate") AND at least 1 numbered option.
|
|
54
|
+
* This handles cases where ANSI stripping corrupts some option lines.
|
|
55
|
+
*/
|
|
56
|
+
export declare function isInteractiveDialog(stripped: string): boolean;
|
|
19
57
|
/**
|
|
20
58
|
* Check if a PTY data frame contains active work content alongside the idle
|
|
21
59
|
* prompt. Claude Code TUI co-renders the ❯ prompt with tool results, file
|
|
@@ -101,11 +139,14 @@ export declare class PtyRunner implements AIRunner {
|
|
|
101
139
|
/**
|
|
102
140
|
* Two-phase plan execution:
|
|
103
141
|
* Phase 1 — Switch to plan mode, send plan prompt, wait for idle (no artifact gate).
|
|
104
|
-
* Phase 2 —
|
|
142
|
+
* Phase 2 — Deterministic copy: resolve plan file from CLI-native storage
|
|
143
|
+
* (~/.claude/plans/) and copy it to the expected artifact path.
|
|
144
|
+
*
|
|
145
|
+
* Phase 2 was previously prompt-driven ("ask agent to write file"), which was
|
|
146
|
+
* unreliable because /clear wiped the agent's context. Now it uses PlanFileResolver
|
|
147
|
+
* to find the plan file by snapshot diffing + content validation.
|
|
105
148
|
*/
|
|
106
149
|
private runNativePlanMode;
|
|
107
|
-
/** Build the prompt that instructs the agent to write the plan to disk. */
|
|
108
|
-
private buildPlanCommitPrompt;
|
|
109
150
|
/** Map detectCompletion result to RunResult. */
|
|
110
151
|
private buildRunResult;
|
|
111
152
|
private writePromptFile;
|
|
@@ -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,MAAM,eAAe,CAAC;
|
|
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;AAMhG,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AAatE,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;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;IAsG/B,gDAAgD;IAChD,OAAO,CAAC,cAAc;IAiBtB,OAAO,CAAC,eAAe;IAcvB,OAAO,CAAC,gBAAgB;CA8azB"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SdkRunner — AIRunner implementation that drives Claude Code via its
|
|
3
|
+
* structured JSON SDK protocol (--output-format stream-json).
|
|
4
|
+
*
|
|
5
|
+
* Unlike PtyRunner (which parses ANSI terminal output heuristically),
|
|
6
|
+
* SdkRunner relies on deterministic JSON messages for completion detection
|
|
7
|
+
* and uses the canCallTool callback for native plan mode support.
|
|
8
|
+
*/
|
|
9
|
+
import type { AIRunner, RunOptions, RunResult } from './AIRunner.js';
|
|
10
|
+
export declare class SdkRunner implements AIRunner {
|
|
11
|
+
private readonly binary;
|
|
12
|
+
private readonly nvmNodeVersion;
|
|
13
|
+
private readonly model?;
|
|
14
|
+
private activeProcesses;
|
|
15
|
+
constructor(binary: string, nvmNodeVersion: string, model?: string | undefined);
|
|
16
|
+
run(options: RunOptions): Promise<RunResult>;
|
|
17
|
+
killAll(): void;
|
|
18
|
+
killByWorkDir(targetWorkDir: string): number;
|
|
19
|
+
private processMessage;
|
|
20
|
+
private forceKill;
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=SdkRunner.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SdkRunner.d.ts","sourceRoot":"","sources":["../../src/ai-runner/SdkRunner.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAKH,OAAO,KAAK,EACV,QAAQ,EACR,UAAU,EACV,SAAS,EAEV,MAAM,eAAe,CAAC;AAwBvB,qBAAa,SAAU,YAAW,QAAQ;IAItC,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,cAAc;IAC/B,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC;IALzB,OAAO,CAAC,eAAe,CAA0C;gBAG9C,MAAM,EAAE,MAAM,EACd,cAAc,EAAE,MAAM,EACtB,KAAK,CAAC,EAAE,MAAM,YAAA;IAK3B,GAAG,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,SAAS,CAAC;IAqOlD,OAAO,IAAI,IAAI;IAWf,aAAa,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM;IAqB5C,OAAO,CAAC,cAAc;IAsFtB,OAAO,CAAC,SAAS;CAclB"}
|
|
@@ -1,12 +1,15 @@
|
|
|
1
|
-
export type { AIRunner, RunOptions, RunResult, StreamEvent, InputRequest } from './AIRunner.js';
|
|
1
|
+
export type { AIRunner, RunOptions, RunResult, StreamEvent, InputRequest, DialogOption } from './AIRunner.js';
|
|
2
2
|
export { BaseAIRunner } from './BaseAIRunner.js';
|
|
3
3
|
export { ClaudeInternalRunner } from './ClaudeInternalRunner.js';
|
|
4
4
|
export { CodebuddyRunner } from './CodebuddyRunner.js';
|
|
5
5
|
export { CodebuddyAcpRunner } from './CodebuddyAcpRunner.js';
|
|
6
6
|
export { CursorAgentRunner } from './CursorAgentRunner.js';
|
|
7
7
|
export { PtyRunner } from './PtyRunner.js';
|
|
8
|
+
export { SdkRunner } from './SdkRunner.js';
|
|
9
|
+
export { PlanFileResolver } from './PlanFileResolver.js';
|
|
10
|
+
export type { ResolvedPlanFile } from './PlanFileResolver.js';
|
|
8
11
|
export { resolveModelForRunner } from './ModelMapping.js';
|
|
9
|
-
export { createAIRunner, registerAIRunner, validateRunnerRegistry, getRegisteredRunnerModes, isRegisteredRunner, resolveRunnerMode, getDefaultBinary, getBinaryEnvKey, getRunnerCapabilities, isBinaryAvailable, } from './AIRunnerRegistry.js';
|
|
12
|
+
export { createAIRunner, registerAIRunner, validateRunnerRegistry, getRegisteredRunnerModes, isRegisteredRunner, resolveRunnerMode, getDefaultBinary, getBinaryEnvKey, getRunnerCapabilities, isBinaryAvailable, usesDeterministicPlanCopy, } from './AIRunnerRegistry.js';
|
|
10
13
|
export type { AIConfig, RunnerRegistryEntry, RunnerCapabilities, PtyProfile } from './AIRunnerRegistry.js';
|
|
11
14
|
export { getPtyProfile, getRegistryEntry } from './AIRunnerRegistry.js';
|
|
12
15
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/ai-runner/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,QAAQ,EAAE,UAAU,EAAE,SAAS,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/ai-runner/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,QAAQ,EAAE,UAAU,EAAE,SAAS,EAAE,WAAW,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC9G,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,YAAY,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAE9D,OAAO,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAG1D,OAAO,EACL,cAAc,EACd,gBAAgB,EAChB,sBAAsB,EACtB,wBAAwB,EACxB,kBAAkB,EAClB,iBAAiB,EACjB,gBAAgB,EAChB,eAAe,EACf,qBAAqB,EACrB,iBAAiB,EACjB,yBAAyB,GAC1B,MAAM,uBAAuB,CAAC;AAC/B,YAAY,EAAE,QAAQ,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAC3G,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Claude Code SDK — spawns Claude Code CLI with --output-format stream-json
|
|
3
|
+
* and provides a structured async iterable of SDK messages.
|
|
4
|
+
*
|
|
5
|
+
* Adapted from happy project (packages/happy-cli/src/claude/sdk/query.ts).
|
|
6
|
+
*/
|
|
7
|
+
import { type ChildProcessWithoutNullStreams } from 'node:child_process';
|
|
8
|
+
import type { Writable } from 'node:stream';
|
|
9
|
+
import { type QueryOptions, type QueryPrompt, type SDKMessage, type CanCallToolCallback } from './types.js';
|
|
10
|
+
export declare class Query implements AsyncIterableIterator<SDKMessage> {
|
|
11
|
+
private childStdin;
|
|
12
|
+
private pendingControlResponses;
|
|
13
|
+
private cancelControllers;
|
|
14
|
+
private sdkMessages;
|
|
15
|
+
private inputStream;
|
|
16
|
+
private canCallTool?;
|
|
17
|
+
/** The underlying child process — exposed for kill/abort by SdkRunner. */
|
|
18
|
+
readonly child: ChildProcessWithoutNullStreams;
|
|
19
|
+
constructor(child: ChildProcessWithoutNullStreams, childStdin: Writable | null, processExitPromise: Promise<void>, canCallTool?: CanCallToolCallback);
|
|
20
|
+
setError(error: Error): void;
|
|
21
|
+
next(): Promise<IteratorResult<SDKMessage>>;
|
|
22
|
+
return(value?: unknown): Promise<IteratorResult<SDKMessage>>;
|
|
23
|
+
throw(e?: unknown): Promise<IteratorResult<SDKMessage>>;
|
|
24
|
+
[Symbol.asyncIterator](): AsyncIterableIterator<SDKMessage>;
|
|
25
|
+
private readMessages;
|
|
26
|
+
private readSdkMessages;
|
|
27
|
+
private handleControlRequest;
|
|
28
|
+
private handleControlCancelRequest;
|
|
29
|
+
private processControlRequest;
|
|
30
|
+
private cleanupControllers;
|
|
31
|
+
}
|
|
32
|
+
export declare function query(config: {
|
|
33
|
+
prompt: QueryPrompt;
|
|
34
|
+
binary: string;
|
|
35
|
+
options?: QueryOptions;
|
|
36
|
+
}): Query;
|
|
37
|
+
//# sourceMappingURL=ClaudeCodeSDK.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ClaudeCodeSDK.d.ts","sourceRoot":"","sources":["../../../src/ai-runner/sdk/ClaudeCodeSDK.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAS,KAAK,8BAA8B,EAAE,MAAM,oBAAoB,CAAC;AAEhF,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAE5C,OAAO,EACL,KAAK,YAAY,EACjB,KAAK,WAAW,EAChB,KAAK,UAAU,EAMf,KAAK,mBAAmB,EAEzB,MAAM,YAAY,CAAC;AAWpB,qBAAa,KAAM,YAAW,qBAAqB,CAAC,UAAU,CAAC;IAY3D,OAAO,CAAC,UAAU;IAXpB,OAAO,CAAC,uBAAuB,CAA6C;IAC5E,OAAO,CAAC,iBAAiB,CAAsC;IAC/D,OAAO,CAAC,WAAW,CAAoC;IACvD,OAAO,CAAC,WAAW,CAA4B;IAC/C,OAAO,CAAC,WAAW,CAAC,CAAsB;IAE1C,0EAA0E;IAC1E,QAAQ,CAAC,KAAK,EAAE,8BAA8B,CAAC;gBAG7C,KAAK,EAAE,8BAA8B,EAC7B,UAAU,EAAE,QAAQ,GAAG,IAAI,EACnC,kBAAkB,EAAE,OAAO,CAAC,IAAI,CAAC,EACjC,WAAW,CAAC,EAAE,mBAAmB;IAQnC,QAAQ,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI;IAM5B,IAAI,IAAI,OAAO,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;IAI3C,MAAM,CAAC,KAAK,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;IAO5D,KAAK,CAAC,CAAC,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;IAOvD,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,qBAAqB,CAAC,UAAU,CAAC;YAM7C,YAAY;YAiDX,eAAe;YAQhB,oBAAoB;IAwClC,OAAO,CAAC,0BAA0B;YAQpB,qBAAqB;IAmBnC,OAAO,CAAC,kBAAkB;CAM3B;AAMD,wBAAgB,KAAK,CAAC,MAAM,EAAE;IAC5B,MAAM,EAAE,WAAW,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,YAAY,CAAC;CACxB,GAAG,KAAK,CA0HR"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Async stream implementation for handling SDK message streams.
|
|
3
|
+
* Provides an AsyncIterableIterator interface with queuing, error propagation,
|
|
4
|
+
* and proper cleanup.
|
|
5
|
+
*
|
|
6
|
+
* Adapted from happy project (packages/happy-cli/src/claude/sdk/stream.ts).
|
|
7
|
+
*/
|
|
8
|
+
export declare class Stream<T> implements AsyncIterableIterator<T> {
|
|
9
|
+
private queue;
|
|
10
|
+
private readResolve?;
|
|
11
|
+
private readReject?;
|
|
12
|
+
private isDone;
|
|
13
|
+
private hasError?;
|
|
14
|
+
private started;
|
|
15
|
+
[Symbol.asyncIterator](): AsyncIterableIterator<T>;
|
|
16
|
+
next(): Promise<IteratorResult<T>>;
|
|
17
|
+
enqueue(value: T): void;
|
|
18
|
+
done(): void;
|
|
19
|
+
error(error: Error): void;
|
|
20
|
+
return(): Promise<IteratorResult<T>>;
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=Stream.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Stream.d.ts","sourceRoot":"","sources":["../../../src/ai-runner/sdk/Stream.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,qBAAa,MAAM,CAAC,CAAC,CAAE,YAAW,qBAAqB,CAAC,CAAC,CAAC;IACxD,OAAO,CAAC,KAAK,CAAW;IACxB,OAAO,CAAC,WAAW,CAAC,CAAqC;IACzD,OAAO,CAAC,UAAU,CAAC,CAAyB;IAC5C,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,QAAQ,CAAC,CAAQ;IACzB,OAAO,CAAC,OAAO,CAAS;IAExB,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,qBAAqB,CAAC,CAAC,CAAC;IAQ5C,IAAI,IAAI,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;IAmBxC,OAAO,CAAC,KAAK,EAAE,CAAC,GAAG,IAAI;IAWvB,IAAI,IAAI,IAAI;IAUZ,KAAK,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI;IAUnB,MAAM,IAAI,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;CAI3C"}
|
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Type definitions for Claude Code SDK integration.
|
|
3
|
+
* Provides type-safe interfaces for all SDK communication via
|
|
4
|
+
* --output-format stream-json.
|
|
5
|
+
*
|
|
6
|
+
* Adapted from happy project (packages/happy-cli/src/claude/sdk/types.ts).
|
|
7
|
+
*/
|
|
8
|
+
export interface SDKMessage {
|
|
9
|
+
type: string;
|
|
10
|
+
[key: string]: unknown;
|
|
11
|
+
}
|
|
12
|
+
export interface SDKUserMessage extends SDKMessage {
|
|
13
|
+
type: 'user';
|
|
14
|
+
parent_tool_use_id?: string;
|
|
15
|
+
message: {
|
|
16
|
+
role: 'user';
|
|
17
|
+
content: string | Array<{
|
|
18
|
+
type: string;
|
|
19
|
+
text?: string;
|
|
20
|
+
tool_use_id?: string;
|
|
21
|
+
content?: unknown;
|
|
22
|
+
[key: string]: unknown;
|
|
23
|
+
}>;
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
export interface SDKAssistantMessage extends SDKMessage {
|
|
27
|
+
type: 'assistant';
|
|
28
|
+
parent_tool_use_id?: string;
|
|
29
|
+
message: {
|
|
30
|
+
role: 'assistant';
|
|
31
|
+
content: Array<{
|
|
32
|
+
type: string;
|
|
33
|
+
text?: string;
|
|
34
|
+
id?: string;
|
|
35
|
+
name?: string;
|
|
36
|
+
input?: unknown;
|
|
37
|
+
[key: string]: unknown;
|
|
38
|
+
}>;
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
export interface SDKSystemMessage extends SDKMessage {
|
|
42
|
+
type: 'system';
|
|
43
|
+
subtype: string;
|
|
44
|
+
session_id?: string;
|
|
45
|
+
model?: string;
|
|
46
|
+
cwd?: string;
|
|
47
|
+
tools?: string[];
|
|
48
|
+
}
|
|
49
|
+
export interface SDKResultMessage extends SDKMessage {
|
|
50
|
+
type: 'result';
|
|
51
|
+
subtype: 'success' | 'error_max_turns' | 'error_during_execution';
|
|
52
|
+
result?: string;
|
|
53
|
+
num_turns: number;
|
|
54
|
+
usage?: {
|
|
55
|
+
input_tokens: number;
|
|
56
|
+
output_tokens: number;
|
|
57
|
+
cache_read_input_tokens?: number;
|
|
58
|
+
cache_creation_input_tokens?: number;
|
|
59
|
+
};
|
|
60
|
+
total_cost_usd: number;
|
|
61
|
+
duration_ms: number;
|
|
62
|
+
duration_api_ms: number;
|
|
63
|
+
is_error: boolean;
|
|
64
|
+
session_id: string;
|
|
65
|
+
}
|
|
66
|
+
export interface SDKLogMessage extends SDKMessage {
|
|
67
|
+
type: 'log';
|
|
68
|
+
log: {
|
|
69
|
+
level: 'debug' | 'info' | 'warn' | 'error';
|
|
70
|
+
message: string;
|
|
71
|
+
};
|
|
72
|
+
}
|
|
73
|
+
export interface SDKControlRequest {
|
|
74
|
+
request_id: string;
|
|
75
|
+
type: 'control_request';
|
|
76
|
+
request: ControlRequest;
|
|
77
|
+
}
|
|
78
|
+
export interface ControlRequest {
|
|
79
|
+
subtype: string;
|
|
80
|
+
}
|
|
81
|
+
export interface CanUseToolRequest extends ControlRequest {
|
|
82
|
+
subtype: 'can_use_tool';
|
|
83
|
+
tool_name: string;
|
|
84
|
+
input: unknown;
|
|
85
|
+
}
|
|
86
|
+
export interface CanUseToolControlRequest {
|
|
87
|
+
type: 'control_request';
|
|
88
|
+
request_id: string;
|
|
89
|
+
request: CanUseToolRequest;
|
|
90
|
+
}
|
|
91
|
+
export interface CanUseToolControlResponse {
|
|
92
|
+
type: 'control_response';
|
|
93
|
+
response: {
|
|
94
|
+
subtype: 'success' | 'error';
|
|
95
|
+
request_id: string;
|
|
96
|
+
response?: PermissionResult;
|
|
97
|
+
error?: string;
|
|
98
|
+
};
|
|
99
|
+
}
|
|
100
|
+
export interface SDKControlResponse extends SDKMessage {
|
|
101
|
+
type: 'control_response';
|
|
102
|
+
response: {
|
|
103
|
+
request_id: string;
|
|
104
|
+
subtype: 'success' | 'error';
|
|
105
|
+
error?: string;
|
|
106
|
+
};
|
|
107
|
+
}
|
|
108
|
+
export interface ControlCancelRequest {
|
|
109
|
+
type: 'control_cancel_request';
|
|
110
|
+
request_id: string;
|
|
111
|
+
}
|
|
112
|
+
export type PermissionResult = {
|
|
113
|
+
behavior: 'allow';
|
|
114
|
+
updatedInput: Record<string, unknown>;
|
|
115
|
+
} | {
|
|
116
|
+
behavior: 'deny';
|
|
117
|
+
message: string;
|
|
118
|
+
};
|
|
119
|
+
export interface CanCallToolCallback {
|
|
120
|
+
(toolName: string, input: unknown, options: {
|
|
121
|
+
signal: AbortSignal;
|
|
122
|
+
}): Promise<PermissionResult>;
|
|
123
|
+
}
|
|
124
|
+
export type SdkPermissionMode = 'default' | 'acceptEdits' | 'bypassPermissions' | 'plan';
|
|
125
|
+
export interface QueryOptions {
|
|
126
|
+
abort?: AbortSignal;
|
|
127
|
+
allowedTools?: string[];
|
|
128
|
+
cwd?: string;
|
|
129
|
+
disallowedTools?: string[];
|
|
130
|
+
model?: string;
|
|
131
|
+
permissionMode?: SdkPermissionMode;
|
|
132
|
+
canCallTool?: CanCallToolCallback;
|
|
133
|
+
/** Resume a previous session by its ID */
|
|
134
|
+
resume?: string;
|
|
135
|
+
/** Continue the most recent conversation */
|
|
136
|
+
continueConversation?: boolean;
|
|
137
|
+
/** Append to the system prompt */
|
|
138
|
+
appendSystemPrompt?: string;
|
|
139
|
+
/** Max turns before auto-stopping */
|
|
140
|
+
maxTurns?: number;
|
|
141
|
+
}
|
|
142
|
+
export type QueryPrompt = string;
|
|
143
|
+
export declare class AbortError extends Error {
|
|
144
|
+
constructor(message: string);
|
|
145
|
+
}
|
|
146
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/ai-runner/sdk/types.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAMH,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,cAAe,SAAQ,UAAU;IAChD,IAAI,EAAE,MAAM,CAAC;IACb,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,OAAO,EAAE;QACP,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,MAAM,GAAG,KAAK,CAAC;YACtB,IAAI,EAAE,MAAM,CAAC;YACb,IAAI,CAAC,EAAE,MAAM,CAAC;YACd,WAAW,CAAC,EAAE,MAAM,CAAC;YACrB,OAAO,CAAC,EAAE,OAAO,CAAC;YAClB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;SACxB,CAAC,CAAC;KACJ,CAAC;CACH;AAED,MAAM,WAAW,mBAAoB,SAAQ,UAAU;IACrD,IAAI,EAAE,WAAW,CAAC;IAClB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,OAAO,EAAE;QACP,IAAI,EAAE,WAAW,CAAC;QAClB,OAAO,EAAE,KAAK,CAAC;YACb,IAAI,EAAE,MAAM,CAAC;YACb,IAAI,CAAC,EAAE,MAAM,CAAC;YACd,EAAE,CAAC,EAAE,MAAM,CAAC;YACZ,IAAI,CAAC,EAAE,MAAM,CAAC;YACd,KAAK,CAAC,EAAE,OAAO,CAAC;YAChB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;SACxB,CAAC,CAAC;KACJ,CAAC;CACH;AAED,MAAM,WAAW,gBAAiB,SAAQ,UAAU;IAClD,IAAI,EAAE,QAAQ,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;CAClB;AAED,MAAM,WAAW,gBAAiB,SAAQ,UAAU;IAClD,IAAI,EAAE,QAAQ,CAAC;IACf,OAAO,EAAE,SAAS,GAAG,iBAAiB,GAAG,wBAAwB,CAAC;IAClE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE;QACN,YAAY,EAAE,MAAM,CAAC;QACrB,aAAa,EAAE,MAAM,CAAC;QACtB,uBAAuB,CAAC,EAAE,MAAM,CAAC;QACjC,2BAA2B,CAAC,EAAE,MAAM,CAAC;KACtC,CAAC;IACF,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,MAAM,CAAC;IACxB,QAAQ,EAAE,OAAO,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,aAAc,SAAQ,UAAU;IAC/C,IAAI,EAAE,KAAK,CAAC;IACZ,GAAG,EAAE;QACH,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;QAC3C,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;CACH;AAMD,MAAM,WAAW,iBAAiB;IAChC,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,iBAAiB,CAAC;IACxB,OAAO,EAAE,cAAc,CAAC;CACzB;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,iBAAkB,SAAQ,cAAc;IACvD,OAAO,EAAE,cAAc,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,OAAO,CAAC;CAChB;AAED,MAAM,WAAW,wBAAwB;IACvC,IAAI,EAAE,iBAAiB,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,iBAAiB,CAAC;CAC5B;AAED,MAAM,WAAW,yBAAyB;IACxC,IAAI,EAAE,kBAAkB,CAAC;IACzB,QAAQ,EAAE;QACR,OAAO,EAAE,SAAS,GAAG,OAAO,CAAC;QAC7B,UAAU,EAAE,MAAM,CAAC;QACnB,QAAQ,CAAC,EAAE,gBAAgB,CAAC;QAC5B,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC;CACH;AAED,MAAM,WAAW,kBAAmB,SAAQ,UAAU;IACpD,IAAI,EAAE,kBAAkB,CAAC;IACzB,QAAQ,EAAE;QACR,UAAU,EAAE,MAAM,CAAC;QACnB,OAAO,EAAE,SAAS,GAAG,OAAO,CAAC;QAC7B,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC;CACH;AAED,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,wBAAwB,CAAC;IAC/B,UAAU,EAAE,MAAM,CAAC;CACpB;AAMD,MAAM,MAAM,gBAAgB,GAAG;IAC7B,QAAQ,EAAE,OAAO,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACvC,GAAG;IACF,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,MAAM,WAAW,mBAAmB;IAClC,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE;QAAE,MAAM,EAAE,WAAW,CAAA;KAAE,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC;CACjG;AAMD,MAAM,MAAM,iBAAiB,GAAG,SAAS,GAAG,aAAa,GAAG,mBAAmB,GAAG,MAAM,CAAC;AAEzF,MAAM,WAAW,YAAY;IAC3B,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,cAAc,CAAC,EAAE,iBAAiB,CAAC;IACnC,WAAW,CAAC,EAAE,mBAAmB,CAAC;IAClC,0CAA0C;IAC1C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,4CAA4C;IAC5C,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,kCAAkC;IAClC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,qCAAqC;IACrC,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,MAAM,WAAW,GAAG,MAAM,CAAC;AAMjC,qBAAa,UAAW,SAAQ,KAAK;gBACvB,OAAO,EAAE,MAAM;CAI5B"}
|
|
@@ -1,7 +1,11 @@
|
|
|
1
|
-
import "./chunk-
|
|
1
|
+
import "./chunk-MSL7ROVK.js";
|
|
2
2
|
import {
|
|
3
|
+
PlanFileResolver,
|
|
3
4
|
PtyRunner
|
|
4
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-4XMYOXGZ.js";
|
|
6
|
+
import {
|
|
7
|
+
SdkRunner
|
|
8
|
+
} from "./chunk-R32Q3RGK.js";
|
|
5
9
|
import {
|
|
6
10
|
BaseAIRunner,
|
|
7
11
|
ClaudeInternalRunner,
|
|
@@ -20,9 +24,11 @@ import {
|
|
|
20
24
|
registerAIRunner,
|
|
21
25
|
resolveModelForRunner,
|
|
22
26
|
resolveRunnerMode,
|
|
27
|
+
usesDeterministicPlanCopy,
|
|
23
28
|
validateRunnerRegistry
|
|
24
|
-
} from "./chunk-
|
|
25
|
-
import "./chunk-
|
|
29
|
+
} from "./chunk-TFEPHOVE.js";
|
|
30
|
+
import "./chunk-G7QI5WDI.js";
|
|
31
|
+
import "./chunk-2RWGZPNF.js";
|
|
26
32
|
import "./chunk-GF2RRYHB.js";
|
|
27
33
|
export {
|
|
28
34
|
BaseAIRunner,
|
|
@@ -30,7 +36,9 @@ export {
|
|
|
30
36
|
CodebuddyAcpRunner,
|
|
31
37
|
CodebuddyRunner,
|
|
32
38
|
CursorAgentRunner,
|
|
39
|
+
PlanFileResolver,
|
|
33
40
|
PtyRunner,
|
|
41
|
+
SdkRunner,
|
|
34
42
|
createAIRunner,
|
|
35
43
|
getBinaryEnvKey,
|
|
36
44
|
getDefaultBinary,
|
|
@@ -43,6 +51,7 @@ export {
|
|
|
43
51
|
registerAIRunner,
|
|
44
52
|
resolveModelForRunner,
|
|
45
53
|
resolveRunnerMode,
|
|
54
|
+
usesDeterministicPlanCopy,
|
|
46
55
|
validateRunnerRegistry
|
|
47
56
|
};
|
|
48
|
-
//# sourceMappingURL=ai-runner-
|
|
57
|
+
//# sourceMappingURL=ai-runner-TOHVJJ76.js.map
|