poly-weaver 0.3.2 → 0.4.1
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/README.md +19 -1
- package/dist/providers/claude/completion.d.ts +15 -1
- package/dist/providers/claude/completion.d.ts.map +1 -1
- package/dist/providers/claude/completion.js +59 -4
- package/dist/providers/claude/completion.js.map +1 -1
- package/dist/providers/claude/session.d.ts +7 -0
- package/dist/providers/claude/session.d.ts.map +1 -1
- package/dist/providers/claude/session.js +8 -2
- package/dist/providers/claude/session.js.map +1 -1
- package/dist/providers/claude/strategy.d.ts.map +1 -1
- package/dist/providers/claude/strategy.js +5 -1
- package/dist/providers/claude/strategy.js.map +1 -1
- package/dist/pty/spawn.d.ts.map +1 -1
- package/dist/pty/spawn.js +5 -0
- package/dist/pty/spawn.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -103,7 +103,7 @@ Each agent is a real CLI process (Claude Code, Codex, or GitHub Copilot) running
|
|
|
103
103
|
|
|
104
104
|
- Node.js 18+
|
|
105
105
|
- A C++ toolchain for [node-pty](https://github.com/nicktomlin/node-pty):
|
|
106
|
-
- **Windows** — Visual Studio Build Tools
|
|
106
|
+
- **Windows** — Visual Studio Build Tools; also Windows Terminal 1.22+ if you run poly-weaver inside Windows Terminal (older builds crash the hosting tab — see [Troubleshooting](#troubleshooting))
|
|
107
107
|
- **macOS** — Xcode Command Line Tools
|
|
108
108
|
- **Linux** — `build-essential`
|
|
109
109
|
- At least one supported AI CLI installed and authenticated:
|
|
@@ -194,6 +194,24 @@ poly-weaver create-flow # LLM-assisted custom flow creation
|
|
|
194
194
|
poly-weaver modify-flow # Modify an existing custom flow
|
|
195
195
|
```
|
|
196
196
|
|
|
197
|
+
## Troubleshooting
|
|
198
|
+
|
|
199
|
+
### Windows Terminal tab closes when an agent starts (Windows)
|
|
200
|
+
|
|
201
|
+
**Symptom** — the terminal tab hosting `poly-weaver` closes entirely (no stack trace) as soon as the first agent (`claude`, `codex`, …) is launched.
|
|
202
|
+
|
|
203
|
+
**Cause** — Windows Terminal 1.18 ships an `OpenConsole.exe` with a crash at `OpenConsole.exe+0x19efe` on certain PTY sequences. Event Viewer → **Application** logs show `OpenConsole.exe 1.18.2401.30001` faulting with `0xc0000005`, immediately followed by the shell process dying.
|
|
204
|
+
|
|
205
|
+
**Fix** — upgrade Windows Terminal to 1.22 or later:
|
|
206
|
+
|
|
207
|
+
```
|
|
208
|
+
winget upgrade Microsoft.WindowsTerminal
|
|
209
|
+
```
|
|
210
|
+
|
|
211
|
+
Fully close all Windows Terminal windows before relaunching; the old `OpenConsole.exe` stays resident until every WT window exits.
|
|
212
|
+
|
|
213
|
+
Poly-weaver 0.4.0 already isolates spawned agents from the OS's ConPTY via node-pty's bundled `useConptyDll`, but the *host* tab still runs Windows Terminal's own OpenConsole, so upgrading WT is required.
|
|
214
|
+
|
|
197
215
|
## Architecture
|
|
198
216
|
|
|
199
217
|
```
|
|
@@ -11,6 +11,18 @@ import { AbstractCompletionDetector } from "../base-completion.js";
|
|
|
11
11
|
* the primary signal fires.
|
|
12
12
|
*
|
|
13
13
|
* Both signals must agree before the turn is considered complete.
|
|
14
|
+
*
|
|
15
|
+
* **Plan-exit prefetch fallback (Claude Code ≥ 2.1.74 deferred-tools era)**:
|
|
16
|
+
* Since 2.1.114, `ExitPlanMode` ships as a deferred tool — Claude must call
|
|
17
|
+
* `ToolSearch({query:"select:ExitPlanMode"})` to load its schema before it can
|
|
18
|
+
* call `ExitPlanMode`. Sometimes the PTY stalls after the ToolSearch returns
|
|
19
|
+
* and the real `ExitPlanMode` call never lands. When we observe the full
|
|
20
|
+
* pre-exit pattern (plan-file `Write`/`Edit` resolved **and** the
|
|
21
|
+
* `ExitPlanMode` ToolSearch resolved), we arm a narrow staleness fallback via
|
|
22
|
+
* `isStaleFallbackReady`: the plan artifact is already on disk, so resolving
|
|
23
|
+
* off it is safe. The arm is deliberately narrow to avoid the
|
|
24
|
+
* extended-thinking false-positives that forced removal of the broad
|
|
25
|
+
* staleness fallback (commit `9ccbd83`).
|
|
14
26
|
*/
|
|
15
27
|
export declare class ClaudeCompletionStrategy extends AbstractCompletionDetector {
|
|
16
28
|
private readonly exitToolName?;
|
|
@@ -18,10 +30,12 @@ export declare class ClaudeCompletionStrategy extends AbstractCompletionDetector
|
|
|
18
30
|
private hasTextOutput;
|
|
19
31
|
private primaryFired;
|
|
20
32
|
private exitToolCalled;
|
|
21
|
-
|
|
33
|
+
private planExitPrefetchComplete;
|
|
34
|
+
constructor(pollMs?: number, quietMs?: number, exitToolName?: string | undefined, staleFallbackMs?: number);
|
|
22
35
|
protected analyzeLines(currentLines: SessionLine[]): void;
|
|
23
36
|
protected isPrimarySignalFired(): boolean;
|
|
24
37
|
protected shouldShortCircuit(_lines: SessionLine[]): boolean;
|
|
38
|
+
protected isStaleFallbackReady(): boolean;
|
|
25
39
|
protected shouldSuppressPtyTimerReset(): boolean;
|
|
26
40
|
protected extractResponse(lines: SessionLine[]): string;
|
|
27
41
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"completion.d.ts","sourceRoot":"","sources":["../../../src/providers/claude/completion.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAE3D,OAAO,EAAE,0BAA0B,EAAE,MAAM,uBAAuB,CAAC;AAEnE
|
|
1
|
+
{"version":3,"file":"completion.d.ts","sourceRoot":"","sources":["../../../src/providers/claude/completion.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAE3D,OAAO,EAAE,0BAA0B,EAAE,MAAM,uBAAuB,CAAC;AAEnE;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,qBAAa,wBAAyB,SAAQ,0BAA0B;IAWpE,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC;IAThC,OAAO,CAAC,eAAe,CAAqB;IAC5C,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,cAAc,CAAS;IAC/B,OAAO,CAAC,wBAAwB,CAAS;gBAGvC,MAAM,SAAM,EACZ,OAAO,SAAM,EACI,YAAY,CAAC,EAAE,MAAM,YAAA,EACtC,eAAe,SAAW;IAK5B,SAAS,CAAC,YAAY,CAAC,YAAY,EAAE,WAAW,EAAE,GAAG,IAAI;IAyIzD,SAAS,CAAC,oBAAoB,IAAI,OAAO;cAItB,kBAAkB,CAAC,MAAM,EAAE,WAAW,EAAE,GAAG,OAAO;cAIlD,oBAAoB,IAAI,OAAO;cAI/B,2BAA2B,IAAI,OAAO;IAQzD,SAAS,CAAC,eAAe,CAAC,KAAK,EAAE,WAAW,EAAE,GAAG,MAAM;CAGxD"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { extractClaudeResponse } from "./session.js";
|
|
1
|
+
import { CLAUDE_PLAN_FILE_PATH_REGEX, extractClaudeResponse } from "./session.js";
|
|
2
2
|
import { AbstractCompletionDetector } from "../base-completion.js";
|
|
3
3
|
/**
|
|
4
4
|
* Claude completion detection using the two-signal rule:
|
|
@@ -11,6 +11,18 @@ import { AbstractCompletionDetector } from "../base-completion.js";
|
|
|
11
11
|
* the primary signal fires.
|
|
12
12
|
*
|
|
13
13
|
* Both signals must agree before the turn is considered complete.
|
|
14
|
+
*
|
|
15
|
+
* **Plan-exit prefetch fallback (Claude Code ≥ 2.1.74 deferred-tools era)**:
|
|
16
|
+
* Since 2.1.114, `ExitPlanMode` ships as a deferred tool — Claude must call
|
|
17
|
+
* `ToolSearch({query:"select:ExitPlanMode"})` to load its schema before it can
|
|
18
|
+
* call `ExitPlanMode`. Sometimes the PTY stalls after the ToolSearch returns
|
|
19
|
+
* and the real `ExitPlanMode` call never lands. When we observe the full
|
|
20
|
+
* pre-exit pattern (plan-file `Write`/`Edit` resolved **and** the
|
|
21
|
+
* `ExitPlanMode` ToolSearch resolved), we arm a narrow staleness fallback via
|
|
22
|
+
* `isStaleFallbackReady`: the plan artifact is already on disk, so resolving
|
|
23
|
+
* off it is safe. The arm is deliberately narrow to avoid the
|
|
24
|
+
* extended-thinking false-positives that forced removal of the broad
|
|
25
|
+
* staleness fallback (commit `9ccbd83`).
|
|
14
26
|
*/
|
|
15
27
|
export class ClaudeCompletionStrategy extends AbstractCompletionDetector {
|
|
16
28
|
exitToolName;
|
|
@@ -19,14 +31,16 @@ export class ClaudeCompletionStrategy extends AbstractCompletionDetector {
|
|
|
19
31
|
hasTextOutput = false;
|
|
20
32
|
primaryFired = false;
|
|
21
33
|
exitToolCalled = false;
|
|
22
|
-
|
|
23
|
-
|
|
34
|
+
planExitPrefetchComplete = false;
|
|
35
|
+
constructor(pollMs = 500, quietMs = 500, exitToolName, staleFallbackMs = Infinity) {
|
|
36
|
+
super(pollMs, quietMs, staleFallbackMs);
|
|
24
37
|
this.exitToolName = exitToolName;
|
|
25
38
|
}
|
|
26
39
|
analyzeLines(currentLines) {
|
|
27
40
|
this.pendingToolUses.clear();
|
|
28
41
|
this.hasTextOutput = false;
|
|
29
42
|
this.exitToolCalled = false;
|
|
43
|
+
this.planExitPrefetchComplete = false;
|
|
30
44
|
let hasAnyToolUse = false;
|
|
31
45
|
let lastToolActivityIdx = -1;
|
|
32
46
|
let lastAssistantTextIdx = -1;
|
|
@@ -35,6 +49,11 @@ export class ClaudeCompletionStrategy extends AbstractCompletionDetector {
|
|
|
35
49
|
// Claude Code's JSONL writer can append tool_result before the
|
|
36
50
|
// corresponding tool_use when parallel tool calls are dispatched.
|
|
37
51
|
const resolvedIds = new Set();
|
|
52
|
+
// Track the tool_use IDs that participate in the deferred-ExitPlanMode
|
|
53
|
+
// dance, so we can flip `planExitPrefetchComplete` once both have their
|
|
54
|
+
// matching tool_result.
|
|
55
|
+
const planFileWriteIds = new Set();
|
|
56
|
+
const exitPlanModePrefetchIds = new Set();
|
|
38
57
|
for (let idx = 0; idx < currentLines.length; idx++) {
|
|
39
58
|
const line = currentLines[idx];
|
|
40
59
|
if (line.type === "assistant") {
|
|
@@ -52,6 +71,18 @@ export class ClaudeCompletionStrategy extends AbstractCompletionDetector {
|
|
|
52
71
|
this.pendingToolUses.add(block.id);
|
|
53
72
|
hasAnyToolUse = true;
|
|
54
73
|
lastToolActivityIdx = idx;
|
|
74
|
+
// Plan-file Write/Edit — artifact-on-disk half of the dance.
|
|
75
|
+
if ((block.name === "Write" || block.name === "Edit") &&
|
|
76
|
+
typeof block.input?.file_path === "string" &&
|
|
77
|
+
CLAUDE_PLAN_FILE_PATH_REGEX.test(block.input.file_path)) {
|
|
78
|
+
planFileWriteIds.add(block.id);
|
|
79
|
+
}
|
|
80
|
+
// ToolSearch pre-loading the ExitPlanMode schema — the other half.
|
|
81
|
+
if (block.name === "ToolSearch" &&
|
|
82
|
+
typeof block.input?.query === "string" &&
|
|
83
|
+
block.input.query.includes("ExitPlanMode")) {
|
|
84
|
+
exitPlanModePrefetchIds.add(block.id);
|
|
85
|
+
}
|
|
55
86
|
}
|
|
56
87
|
if (block.type === "text" && block.text) {
|
|
57
88
|
this.hasTextOutput = true;
|
|
@@ -77,6 +108,25 @@ export class ClaudeCompletionStrategy extends AbstractCompletionDetector {
|
|
|
77
108
|
// appeared earlier in the file (before the tool_use line).
|
|
78
109
|
for (const id of resolvedIds)
|
|
79
110
|
this.pendingToolUses.delete(id);
|
|
111
|
+
// Prefetch is "complete" when both halves of the dance have their
|
|
112
|
+
// matching tool_result — order-independent, so this works whether the
|
|
113
|
+
// ToolSearch came before or after the plan-file Write.
|
|
114
|
+
let sawResolvedPlanFileWrite = false;
|
|
115
|
+
for (const id of planFileWriteIds) {
|
|
116
|
+
if (resolvedIds.has(id)) {
|
|
117
|
+
sawResolvedPlanFileWrite = true;
|
|
118
|
+
break;
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
let sawResolvedExitPlanModePrefetch = false;
|
|
122
|
+
for (const id of exitPlanModePrefetchIds) {
|
|
123
|
+
if (resolvedIds.has(id)) {
|
|
124
|
+
sawResolvedExitPlanModePrefetch = true;
|
|
125
|
+
break;
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
this.planExitPrefetchComplete =
|
|
129
|
+
sawResolvedPlanFileWrite && sawResolvedExitPlanModePrefetch;
|
|
80
130
|
// Guard: stop_reason === null (strict) means the API response is still
|
|
81
131
|
// streaming content blocks. Suppress primary to avoid false completion
|
|
82
132
|
// during the gap between intermediate JSONL lines of the same response.
|
|
@@ -102,8 +152,13 @@ export class ClaudeCompletionStrategy extends AbstractCompletionDetector {
|
|
|
102
152
|
shouldShortCircuit(_lines) {
|
|
103
153
|
return this.exitToolCalled && this.pendingToolUses.size === 0;
|
|
104
154
|
}
|
|
155
|
+
isStaleFallbackReady() {
|
|
156
|
+
return this.planExitPrefetchComplete && this.pendingToolUses.size === 0;
|
|
157
|
+
}
|
|
105
158
|
shouldSuppressPtyTimerReset() {
|
|
106
|
-
return this.primaryFired ||
|
|
159
|
+
return (this.primaryFired ||
|
|
160
|
+
(this.exitToolCalled && this.pendingToolUses.size === 0) ||
|
|
161
|
+
(this.planExitPrefetchComplete && this.pendingToolUses.size === 0));
|
|
107
162
|
}
|
|
108
163
|
extractResponse(lines) {
|
|
109
164
|
return extractClaudeResponse(lines);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"completion.js","sourceRoot":"","sources":["../../../src/providers/claude/completion.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"completion.js","sourceRoot":"","sources":["../../../src/providers/claude/completion.ts"],"names":[],"mappings":"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"}
|
|
@@ -19,6 +19,13 @@ export declare function encodeClaudeProjectDir(cwd: string): string;
|
|
|
19
19
|
* We collect text blocks from the last assistant message sequence.
|
|
20
20
|
*/
|
|
21
21
|
export declare function extractClaudeResponse(lines: SessionLine[]): string;
|
|
22
|
+
/**
|
|
23
|
+
* Path pattern for Claude's native plan-file location under
|
|
24
|
+
* `~/.claude/plans/`. Shared by `extractClaudePlanFilePath` (artifact
|
|
25
|
+
* extraction) and `ClaudeCompletionStrategy` (completion detection) so the
|
|
26
|
+
* two stay in lockstep.
|
|
27
|
+
*/
|
|
28
|
+
export declare const CLAUDE_PLAN_FILE_PATH_REGEX: RegExp;
|
|
22
29
|
/**
|
|
23
30
|
* Extract the plan file path from Claude session lines.
|
|
24
31
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../../src/providers/claude/session.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AACnE,OAAO,EAAmB,KAAK,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAM5E,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AAExE;;;GAGG;AACH,wBAAgB,mBAAmB,IAAI,MAAM,CAE5C;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAE1D;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,WAAW,EAAE,GAAG,MAAM,CA0BlE;AAED;;;;;;GAMG;AACH,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,WAAW,EAAE,GAAG,MAAM,GAAG,SAAS,
|
|
1
|
+
{"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../../src/providers/claude/session.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AACnE,OAAO,EAAmB,KAAK,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAM5E,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AAExE;;;GAGG;AACH,wBAAgB,mBAAmB,IAAI,MAAM,CAE5C;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAE1D;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,WAAW,EAAE,GAAG,MAAM,CA0BlE;AAED;;;;;GAKG;AACH,eAAO,MAAM,2BAA2B,QAAiC,CAAC;AAE1E;;;;;;GAMG;AACH,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,WAAW,EAAE,GAAG,MAAM,GAAG,SAAS,CA4BlF;AAED;;;;;;GAMG;AACH,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,WAAW,EAAE,GAAG,iBAAiB,EAAE,CA8CrF;AAED;;;;;GAKG;AACH,qBAAa,oBAAqB,YAAW,cAAc;IACzD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAe;gBAEjC,aAAa,CAAC,EAAE,MAAM,MAAM;IAIxC,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM;IAKxD,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC;IAOnD,eAAe,CACnB,QAAQ,EAAE,eAAe,EACzB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,MAAM,CAAC;IAOZ,gBAAgB,CAAC,eAAe,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAI1D,qBAAqB,CACzB,eAAe,EAAE,MAAM,EACvB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,iBAAiB,EAAE,CAAC;IAIzB,mBAAmB,CACvB,eAAe,EAAE,MAAM,EACvB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;YAIhB,YAAY;CAI3B"}
|
|
@@ -46,6 +46,13 @@ export function extractClaudeResponse(lines) {
|
|
|
46
46
|
}
|
|
47
47
|
return textParts.join("\n");
|
|
48
48
|
}
|
|
49
|
+
/**
|
|
50
|
+
* Path pattern for Claude's native plan-file location under
|
|
51
|
+
* `~/.claude/plans/`. Shared by `extractClaudePlanFilePath` (artifact
|
|
52
|
+
* extraction) and `ClaudeCompletionStrategy` (completion detection) so the
|
|
53
|
+
* two stay in lockstep.
|
|
54
|
+
*/
|
|
55
|
+
export const CLAUDE_PLAN_FILE_PATH_REGEX = /[/\\]\.claude[/\\]plans[/\\]/;
|
|
49
56
|
/**
|
|
50
57
|
* Extract the plan file path from Claude session lines.
|
|
51
58
|
*
|
|
@@ -54,7 +61,6 @@ export function extractClaudeResponse(lines) {
|
|
|
54
61
|
* (always re-scanned on each run to avoid staleness).
|
|
55
62
|
*/
|
|
56
63
|
export function extractClaudePlanFilePath(lines) {
|
|
57
|
-
const planPathPattern = /[/\\]\.claude[/\\]plans[/\\]/;
|
|
58
64
|
// Scan in reverse — we want the *last* matching path, so the first
|
|
59
65
|
// reverse hit lets us return immediately without walking the full list.
|
|
60
66
|
for (let i = lines.length - 1; i >= 0; i--) {
|
|
@@ -71,7 +77,7 @@ export function extractClaudePlanFilePath(lines) {
|
|
|
71
77
|
if (block.type === "tool_use" &&
|
|
72
78
|
(block.name === "Write" || block.name === "Edit") &&
|
|
73
79
|
typeof block.input?.file_path === "string" &&
|
|
74
|
-
|
|
80
|
+
CLAUDE_PLAN_FILE_PATH_REGEX.test(block.input.file_path)) {
|
|
75
81
|
return block.input.file_path;
|
|
76
82
|
}
|
|
77
83
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session.js","sourceRoot":"","sources":["../../../src/providers/claude/session.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAElC,OAAO,EAAE,eAAe,EAAoB,MAAM,yBAAyB,CAAC;AAC5E,OAAO,EACL,oBAAoB,EACpB,gBAAgB,EAChB,qBAAqB,GACtB,MAAM,0BAA0B,CAAC;AAGlC;;;GAGG;AACH,MAAM,UAAU,mBAAmB;IACjC,OAAO,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC;AAChD,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,sBAAsB,CAAC,GAAW;IAChD,OAAO,GAAG,CAAC,OAAO,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;AACtC,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,qBAAqB,CAAC,KAAoB;IACxD,MAAM,SAAS,GAAa,EAAE,CAAC;IAE/B,+DAA+D;IAC/D,KAAK,IAAI,CAAC,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC3C,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACtB,IAAI,IAAI,CAAC,IAAI,KAAK,WAAW;YAAE,SAAS;QAExC,MAAM,OAAO,GAAG,IAAI,CAAC,OAER,CAAC;QACd,IAAI,CAAC,OAAO,EAAE,OAAO;YAAE,SAAS;QAEhC,KAAK,MAAM,KAAK,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;YACpC,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;gBACxC,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAChC,CAAC;QACH,CAAC;QAED,mFAAmF;QACnF,8EAA8E;QAC9E,IAAI,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,KAAK,WAAW;YAAE,SAAS;QACzD,MAAM;IACR,CAAC;IAED,OAAO,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC9B,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,yBAAyB,CAAC,KAAoB;IAC5D,
|
|
1
|
+
{"version":3,"file":"session.js","sourceRoot":"","sources":["../../../src/providers/claude/session.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAElC,OAAO,EAAE,eAAe,EAAoB,MAAM,yBAAyB,CAAC;AAC5E,OAAO,EACL,oBAAoB,EACpB,gBAAgB,EAChB,qBAAqB,GACtB,MAAM,0BAA0B,CAAC;AAGlC;;;GAGG;AACH,MAAM,UAAU,mBAAmB;IACjC,OAAO,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC;AAChD,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,sBAAsB,CAAC,GAAW;IAChD,OAAO,GAAG,CAAC,OAAO,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;AACtC,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,qBAAqB,CAAC,KAAoB;IACxD,MAAM,SAAS,GAAa,EAAE,CAAC;IAE/B,+DAA+D;IAC/D,KAAK,IAAI,CAAC,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC3C,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACtB,IAAI,IAAI,CAAC,IAAI,KAAK,WAAW;YAAE,SAAS;QAExC,MAAM,OAAO,GAAG,IAAI,CAAC,OAER,CAAC;QACd,IAAI,CAAC,OAAO,EAAE,OAAO;YAAE,SAAS;QAEhC,KAAK,MAAM,KAAK,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;YACpC,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;gBACxC,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAChC,CAAC;QACH,CAAC;QAED,mFAAmF;QACnF,8EAA8E;QAC9E,IAAI,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,KAAK,WAAW;YAAE,SAAS;QACzD,MAAM;IACR,CAAC;IAED,OAAO,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC9B,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAG,8BAA8B,CAAC;AAE1E;;;;;;GAMG;AACH,MAAM,UAAU,yBAAyB,CAAC,KAAoB;IAC5D,mEAAmE;IACnE,wEAAwE;IACxE,KAAK,IAAI,CAAC,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC3C,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACtB,IAAI,IAAI,CAAC,IAAI,KAAK,WAAW;YAAE,SAAS;QAExC,MAAM,OAAO,GAAG,IAAI,CAAC,OAER,CAAC;QACd,IAAI,CAAC,OAAO,EAAE,OAAO;YAAE,SAAS;QAEhC,mEAAmE;QACnE,wEAAwE;QACxE,KAAK,IAAI,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YACrD,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;YACjC,IACE,KAAK,CAAC,IAAI,KAAK,UAAU;gBACzB,CAAC,KAAK,CAAC,IAAI,KAAK,OAAO,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,CAAC;gBACjD,OAAO,KAAK,CAAC,KAAK,EAAE,SAAS,KAAK,QAAQ;gBAC1C,2BAA2B,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,EACvD,CAAC;gBACD,OAAO,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC;YAC/B,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,2BAA2B,CAAC,KAAoB;IAC9D,MAAM,cAAc,GAAwB,EAAE,CAAC;IAC/C,MAAM,WAAW,GAAG,IAAI,GAAG,EAAkB,CAAC,CAAC,8BAA8B;IAE7E,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,IAAI,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;YAC9B,MAAM,OAAO,GAAG,IAAI,CAAC,OAER,CAAC;YACd,IAAI,CAAC,OAAO,EAAE,OAAO;gBAAE,SAAS;YAChC,KAAK,MAAM,KAAK,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;gBACpC,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU,IAAI,KAAK,CAAC,IAAI,KAAK,iBAAiB,IAAI,KAAK,CAAC,EAAE,EAAE,CAAC;oBAC9E,MAAM,SAAS,GAAG,KAAK,CAAC,KAAK,EAAE,SAAS,CAAC;oBACzC,IAAI,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;wBAC7B,MAAM,YAAY,GAAG,SAAS;6BAC3B,GAAG,CAAC,CAAC,CAA0B,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;6BACvF,MAAM,CAAC,OAAO,CAAC;6BACf,IAAI,CAAC,IAAI,CAAC,CAAC;wBACd,IAAI,YAAY,EAAE,CAAC;4BACjB,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,EAAE,YAAY,CAAC,CAAC;wBAC1C,CAAC;oBACH,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QAED,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YACzB,MAAM,OAAO,GAAG,IAAI,CAAC,OAER,CAAC;YACd,IAAI,CAAC,OAAO,EAAE,OAAO;gBAAE,SAAS;YAChC,KAAK,MAAM,KAAK,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;gBACpC,IAAI,KAAK,CAAC,IAAI,KAAK,aAAa,IAAI,KAAK,CAAC,WAAW,EAAE,CAAC;oBACtD,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;oBACpD,IAAI,CAAC,QAAQ;wBAAE,SAAS;oBACxB,MAAM,MAAM,GAAG,OAAO,KAAK,CAAC,OAAO,KAAK,QAAQ;wBAC9C,CAAC,CAAC,KAAK,CAAC,OAAO;wBACf,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;oBAClC,cAAc,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC;oBAC1C,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;gBACxC,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,cAAc,CAAC;AACxB,CAAC;AAED;;;;;GAKG;AACH,MAAM,OAAO,oBAAoB;IACd,aAAa,CAAe;IAE7C,YAAY,aAA4B;QACtC,IAAI,CAAC,aAAa,GAAG,aAAa,IAAI,mBAAmB,CAAC;IAC5D,CAAC;IAED,kBAAkB,CAAC,OAAe,EAAE,SAAiB;QACnD,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;QACrC,OAAO,IAAI,CAAC,OAAO,EAAE,sBAAsB,CAAC,OAAO,CAAC,EAAE,GAAG,SAAS,QAAQ,CAAC,CAAC;IAC9E,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,OAAe;QAC5B,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;QACrC,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,EAAE,sBAAsB,CAAC,OAAO,CAAC,CAAC,CAAC;QAC3D,MAAM,KAAK,GAAG,MAAM,oBAAoB,CAAC,GAAG,CAAC,CAAC;QAC9C,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC;IACxC,CAAC;IAED,KAAK,CAAC,eAAe,CACnB,QAAyB,EACzB,QAAgB;QAEhB,IAAI,QAAQ,CAAC,OAAO,EAAE,CAAC;YACrB,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;QACpE,CAAC;QACD,OAAO,qBAAqB,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC7D,CAAC;IAED,KAAK,CAAC,gBAAgB,CAAC,eAAuB;QAC5C,OAAO,gBAAgB,CAAC,eAAe,CAAC,CAAC;IAC3C,CAAC;IAED,KAAK,CAAC,qBAAqB,CACzB,eAAuB,EACvB,UAAkB;QAElB,OAAO,2BAA2B,CAAC,MAAM,IAAI,CAAC,YAAY,CAAC,eAAe,EAAE,UAAU,CAAC,CAAC,CAAC;IAC3F,CAAC;IAED,KAAK,CAAC,mBAAmB,CACvB,eAAuB,EACvB,UAAkB;QAElB,OAAO,yBAAyB,CAAC,MAAM,IAAI,CAAC,YAAY,CAAC,eAAe,EAAE,UAAU,CAAC,CAAC,CAAC;IACzF,CAAC;IAEO,KAAK,CAAC,YAAY,CAAC,eAAuB,EAAE,UAAkB;QACpE,MAAM,QAAQ,GAAG,MAAM,eAAe,CAAC,eAAe,CAAC,CAAC;QACxD,OAAO,QAAQ,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IACpC,CAAC;CACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"strategy.d.ts","sourceRoot":"","sources":["../../../src/providers/claude/strategy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,gBAAgB,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAGnG,OAAO,EAAE,wBAAwB,EAAE,MAAM,iBAAiB,CAAC;AAG3D,qBAAa,cAAe,YAAW,gBAAgB;IACrD,QAAQ,CAAC,IAAI,YAAY;IACzB,QAAQ,CAAC,WAAW,iBAAiB;IACrC,QAAQ,CAAC,OAAO,YAAY;IAC5B,QAAQ,CAAC,UAAU,aAAa;IAChC,QAAQ,CAAC,OAAO,EAAE,cAAc,CAA8B;IAC9D,OAAO,EAAE,MAAM,GAAG,SAAS,CAAa;IAExC,IAAI,QAAQ,IAAI,cAAc,CAO7B;IAEK,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAcvE,cAAc,IAAI,wBAAwB;
|
|
1
|
+
{"version":3,"file":"strategy.d.ts","sourceRoot":"","sources":["../../../src/providers/claude/strategy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,gBAAgB,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAGnG,OAAO,EAAE,wBAAwB,EAAE,MAAM,iBAAiB,CAAC;AAG3D,qBAAa,cAAe,YAAW,gBAAgB;IACrD,QAAQ,CAAC,IAAI,YAAY;IACzB,QAAQ,CAAC,WAAW,iBAAiB;IACrC,QAAQ,CAAC,OAAO,YAAY;IAC5B,QAAQ,CAAC,UAAU,aAAa;IAChC,QAAQ,CAAC,OAAO,EAAE,cAAc,CAA8B;IAC9D,OAAO,EAAE,MAAM,GAAG,SAAS,CAAa;IAExC,IAAI,QAAQ,IAAI,cAAc,CAO7B;IAEK,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAcvE,cAAc,IAAI,wBAAwB;CAO3C"}
|
|
@@ -32,7 +32,11 @@ export class ClaudeStrategy {
|
|
|
32
32
|
return args;
|
|
33
33
|
}
|
|
34
34
|
createDetector() {
|
|
35
|
-
|
|
35
|
+
// staleFallbackMs = 15s: only armed once the narrow prefetch pattern
|
|
36
|
+
// (plan-file Write + ToolSearch(select:ExitPlanMode)) has been observed,
|
|
37
|
+
// so false positives during extended thinking are impossible by
|
|
38
|
+
// construction — see ClaudeCompletionStrategy.isStaleFallbackReady.
|
|
39
|
+
return new ClaudeCompletionStrategy(200, 500, this.planMode.exitToolName, 15_000);
|
|
36
40
|
}
|
|
37
41
|
}
|
|
38
42
|
//# sourceMappingURL=strategy.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"strategy.js","sourceRoot":"","sources":["../../../src/providers/claude/strategy.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,wBAAwB,EAAE,MAAM,iBAAiB,CAAC;AAC3D,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AAEpD,MAAM,OAAO,cAAc;IAChB,IAAI,GAAG,QAAQ,CAAC;IAChB,WAAW,GAAG,aAAa,CAAC;IAC5B,OAAO,GAAG,QAAQ,CAAC;IACnB,UAAU,GAAG,SAAS,CAAC;IACvB,OAAO,GAAmB,IAAI,oBAAoB,EAAE,CAAC;IAC9D,OAAO,GAAuB,SAAS,CAAC;IAExC,IAAI,QAAQ;QACV,MAAM,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QAClD,OAAO;YACL,YAAY,EAAE,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,yBAAyB;YAC3D,YAAY,EAAE,cAAc;YAC5B,cAAc,EAAE,MAAM;SACvB,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,MAAc,EAAE,IAAmB;QACjD,MAAM,IAAI,GAAa;YACrB,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,gCAAgC,CAAC;YACtD,GAAG,CAAC,IAAI,CAAC,eAAe,IAAI,EAAE,CAAC;SAChC,CAAC;QACF,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;YACzB,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;QAC9C,CAAC;aAAM,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YAC1B,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QAC5C,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAClB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,cAAc;QACZ,OAAO,IAAI,wBAAwB,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"strategy.js","sourceRoot":"","sources":["../../../src/providers/claude/strategy.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,wBAAwB,EAAE,MAAM,iBAAiB,CAAC;AAC3D,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AAEpD,MAAM,OAAO,cAAc;IAChB,IAAI,GAAG,QAAQ,CAAC;IAChB,WAAW,GAAG,aAAa,CAAC;IAC5B,OAAO,GAAG,QAAQ,CAAC;IACnB,UAAU,GAAG,SAAS,CAAC;IACvB,OAAO,GAAmB,IAAI,oBAAoB,EAAE,CAAC;IAC9D,OAAO,GAAuB,SAAS,CAAC;IAExC,IAAI,QAAQ;QACV,MAAM,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QAClD,OAAO;YACL,YAAY,EAAE,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,yBAAyB;YAC3D,YAAY,EAAE,cAAc;YAC5B,cAAc,EAAE,MAAM;SACvB,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,MAAc,EAAE,IAAmB;QACjD,MAAM,IAAI,GAAa;YACrB,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,gCAAgC,CAAC;YACtD,GAAG,CAAC,IAAI,CAAC,eAAe,IAAI,EAAE,CAAC;SAChC,CAAC;QACF,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;YACzB,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;QAC9C,CAAC;aAAM,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YAC1B,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QAC5C,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAClB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,cAAc;QACZ,qEAAqE;QACrE,yEAAyE;QACzE,gEAAgE;QAChE,oEAAoE;QACpE,OAAO,IAAI,wBAAwB,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;IACpF,CAAC;CACF"}
|
package/dist/pty/spawn.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"spawn.d.ts","sourceRoot":"","sources":["../../src/pty/spawn.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAI5C,wBAAgB,eAAe,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI,CAAsB;AACtE,wBAAgB,eAAe,IAAI,MAAM,CAAyB;AAGlE,wBAAgB,cAAc,CAAC,EAAE,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,SAAS,GAAG,IAAI,CAEjE;AAED,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAwCD;;;;;GAKG;AACH,wBAAgB,QAAQ,CAAC,IAAI,EAAE,YAAY,GAAG,SAAS,
|
|
1
|
+
{"version":3,"file":"spawn.d.ts","sourceRoot":"","sources":["../../src/pty/spawn.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAI5C,wBAAgB,eAAe,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI,CAAsB;AACtE,wBAAgB,eAAe,IAAI,MAAM,CAAyB;AAGlE,wBAAgB,cAAc,CAAC,EAAE,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,SAAS,GAAG,IAAI,CAEjE;AAED,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAwCD;;;;;GAKG;AACH,wBAAgB,QAAQ,CAAC,IAAI,EAAE,YAAY,GAAG,SAAS,CAwJtD"}
|
package/dist/pty/spawn.js
CHANGED
|
@@ -56,6 +56,11 @@ export function spawnPty(opts) {
|
|
|
56
56
|
rows: opts.rows ?? Math.max((process.stdout.rows ?? 30) - reservedRows, 1),
|
|
57
57
|
cwd: opts.cwd,
|
|
58
58
|
env: { ...baseEnv, ...opts.env },
|
|
59
|
+
// Use node-pty's bundled OpenConsole/conpty.dll. The in-box Windows
|
|
60
|
+
// OpenConsole (e.g. 1.18.2401.30001) has an access violation in
|
|
61
|
+
// OpenConsole.exe+0x19efe that kills the hosting terminal tab; the
|
|
62
|
+
// bundled build is newer and does not trip it.
|
|
63
|
+
useConptyDll: true,
|
|
59
64
|
});
|
|
60
65
|
const isInteractive = opts.interactive !== false;
|
|
61
66
|
let gateOpen = false;
|
package/dist/pty/spawn.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"spawn.js","sourceRoot":"","sources":["../../src/pty/spawn.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"spawn.js","sourceRoot":"","sources":["../../src/pty/spawn.ts"],"names":[],"mappings":"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"}
|