poly-weaver 0.4.3 → 0.4.4
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/providers/claude/completion.d.ts +20 -0
- package/dist/providers/claude/completion.d.ts.map +1 -1
- package/dist/providers/claude/completion.js +61 -13
- package/dist/providers/claude/completion.js.map +1 -1
- package/dist/providers/claude/strategy.d.ts.map +1 -1
- package/dist/providers/claude/strategy.js +6 -3
- package/dist/providers/claude/strategy.js.map +1 -1
- package/package.json +1 -1
|
@@ -44,6 +44,26 @@ import { AbstractCompletionDetector } from "../base-completion.js";
|
|
|
44
44
|
* **turn-scoped** — iteration N must do its own edit before the fallback
|
|
45
45
|
* arms, so a stale plan from iteration 1 cannot resolve iteration 2
|
|
46
46
|
* before any work happens.
|
|
47
|
+
*
|
|
48
|
+
* **AskUserQuestion suppressor (session-wide)**: `AskUserQuestion` is
|
|
49
|
+
* also a deferred tool, and Claude often pre-loads it alongside
|
|
50
|
+
* `ExitPlanMode` in a single bundled query (e.g.
|
|
51
|
+
* `select:ExitPlanMode,AskUserQuestion`). When a question end-state is
|
|
52
|
+
* loaded, the fallback's premise — "the only valid next call after a plan
|
|
53
|
+
* Write is `ExitPlanMode`, so 15 s of silence must be the PTY bug" —
|
|
54
|
+
* stops holding: Claude can legitimately spend >15 s thinking before
|
|
55
|
+
* emitting `AskUserQuestion`. So we track resolved
|
|
56
|
+
* `ToolSearch(query.includes("AskUserQuestion"))` invocations the same
|
|
57
|
+
* session-scoped way and refuse to arm the fallback when one has been
|
|
58
|
+
* seen. The schema, once loaded, persists for the rest of the session, so
|
|
59
|
+
* this suppressor is **session-wide**: any resolved AskUserQuestion
|
|
60
|
+
* prefetch (current turn or any prior turn) disables the fallback for
|
|
61
|
+
* every subsequent turn of that Claude session, including resumed
|
|
62
|
+
* planner iterations. That is an accepted trade — see dump
|
|
63
|
+
* `2026-05-02T17-53-03-277Z` for the bug this fixes, and KNOWN-ISSUES.md
|
|
64
|
+
* §"Deferred ExitPlanMode Stall" for the regression on dump
|
|
65
|
+
* `2026-05-01T16-10-11-526Z` we explicitly accept (recoverable Ctrl+C
|
|
66
|
+
* hang vs. silently dropped clarification round).
|
|
47
67
|
*/
|
|
48
68
|
export declare class ClaudeCompletionStrategy extends AbstractCompletionDetector {
|
|
49
69
|
private readonly exitToolName?;
|
|
@@ -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;AAcnE
|
|
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;AAcnE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgEG;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;IA0OzD,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"}
|
|
@@ -54,6 +54,26 @@ const TASK_NOTIFICATION_REGEX = /^<task-notification>[\s\S]*?<tool-use-id>([^<]+
|
|
|
54
54
|
* **turn-scoped** — iteration N must do its own edit before the fallback
|
|
55
55
|
* arms, so a stale plan from iteration 1 cannot resolve iteration 2
|
|
56
56
|
* before any work happens.
|
|
57
|
+
*
|
|
58
|
+
* **AskUserQuestion suppressor (session-wide)**: `AskUserQuestion` is
|
|
59
|
+
* also a deferred tool, and Claude often pre-loads it alongside
|
|
60
|
+
* `ExitPlanMode` in a single bundled query (e.g.
|
|
61
|
+
* `select:ExitPlanMode,AskUserQuestion`). When a question end-state is
|
|
62
|
+
* loaded, the fallback's premise — "the only valid next call after a plan
|
|
63
|
+
* Write is `ExitPlanMode`, so 15 s of silence must be the PTY bug" —
|
|
64
|
+
* stops holding: Claude can legitimately spend >15 s thinking before
|
|
65
|
+
* emitting `AskUserQuestion`. So we track resolved
|
|
66
|
+
* `ToolSearch(query.includes("AskUserQuestion"))` invocations the same
|
|
67
|
+
* session-scoped way and refuse to arm the fallback when one has been
|
|
68
|
+
* seen. The schema, once loaded, persists for the rest of the session, so
|
|
69
|
+
* this suppressor is **session-wide**: any resolved AskUserQuestion
|
|
70
|
+
* prefetch (current turn or any prior turn) disables the fallback for
|
|
71
|
+
* every subsequent turn of that Claude session, including resumed
|
|
72
|
+
* planner iterations. That is an accepted trade — see dump
|
|
73
|
+
* `2026-05-02T17-53-03-277Z` for the bug this fixes, and KNOWN-ISSUES.md
|
|
74
|
+
* §"Deferred ExitPlanMode Stall" for the regression on dump
|
|
75
|
+
* `2026-05-01T16-10-11-526Z` we explicitly accept (recoverable Ctrl+C
|
|
76
|
+
* hang vs. silently dropped clarification round).
|
|
57
77
|
*/
|
|
58
78
|
export class ClaudeCompletionStrategy extends AbstractCompletionDetector {
|
|
59
79
|
exitToolName;
|
|
@@ -90,9 +110,11 @@ export class ClaudeCompletionStrategy extends AbstractCompletionDetector {
|
|
|
90
110
|
const messagesWithToolUseBlock = new Set();
|
|
91
111
|
// Track the tool_use IDs that participate in the deferred-ExitPlanMode
|
|
92
112
|
// dance, so we can flip `planExitPrefetchComplete` once both have their
|
|
93
|
-
// matching tool_result.
|
|
113
|
+
// matching tool_result. AskUserQuestion prefetches are tracked
|
|
114
|
+
// separately as a session-wide suppressor.
|
|
94
115
|
const planFileWriteIds = new Set();
|
|
95
116
|
const exitPlanModePrefetchIds = new Set();
|
|
117
|
+
const askUserQuestionPrefetchIds = new Set();
|
|
96
118
|
for (let idx = 0; idx < currentLines.length; idx++) {
|
|
97
119
|
const line = currentLines[idx];
|
|
98
120
|
if (line.type === "assistant") {
|
|
@@ -122,11 +144,19 @@ export class ClaudeCompletionStrategy extends AbstractCompletionDetector {
|
|
|
122
144
|
CLAUDE_PLAN_FILE_PATH_REGEX.test(block.input.file_path)) {
|
|
123
145
|
planFileWriteIds.add(block.id);
|
|
124
146
|
}
|
|
125
|
-
// ToolSearch pre-loading the ExitPlanMode schema — the other
|
|
147
|
+
// ToolSearch pre-loading the ExitPlanMode schema — the other
|
|
148
|
+
// half. A bundled query like `select:ExitPlanMode,AskUserQuestion`
|
|
149
|
+
// hits both branches: it both arms the ExitPlanMode half and
|
|
150
|
+
// disqualifies the fallback below via the AskUserQuestion
|
|
151
|
+
// suppressor.
|
|
126
152
|
if (block.name === "ToolSearch" &&
|
|
127
|
-
typeof block.input?.query === "string"
|
|
128
|
-
block.input.query.includes("ExitPlanMode")) {
|
|
129
|
-
|
|
153
|
+
typeof block.input?.query === "string") {
|
|
154
|
+
if (block.input.query.includes("ExitPlanMode")) {
|
|
155
|
+
exitPlanModePrefetchIds.add(block.id);
|
|
156
|
+
}
|
|
157
|
+
if (block.input.query.includes("AskUserQuestion")) {
|
|
158
|
+
askUserQuestionPrefetchIds.add(block.id);
|
|
159
|
+
}
|
|
130
160
|
}
|
|
131
161
|
}
|
|
132
162
|
if (block.type === "text" && block.text) {
|
|
@@ -191,15 +221,32 @@ export class ClaudeCompletionStrategy extends AbstractCompletionDetector {
|
|
|
191
221
|
break;
|
|
192
222
|
}
|
|
193
223
|
}
|
|
224
|
+
let sawResolvedAskUserQuestionPrefetch = false;
|
|
225
|
+
for (const id of askUserQuestionPrefetchIds) {
|
|
226
|
+
if (resolvedIds.has(id)) {
|
|
227
|
+
sawResolvedAskUserQuestionPrefetch = true;
|
|
228
|
+
break;
|
|
229
|
+
}
|
|
230
|
+
}
|
|
194
231
|
// Prefetch is session-scoped: a resolved ToolSearch(ExitPlanMode) in any
|
|
195
232
|
// prior turn keeps the schema loaded for the current turn too. Only
|
|
196
233
|
// scan `priorLines` if the current slice did not already observe one,
|
|
197
234
|
// since the in-slice scan is strictly more authoritative (same data).
|
|
198
|
-
|
|
199
|
-
|
|
235
|
+
// The same session-scoped reasoning applies to the AskUserQuestion
|
|
236
|
+
// suppressor: a resolved AskUserQuestion prefetch from any prior turn
|
|
237
|
+
// disables the fallback for every later turn of the session.
|
|
238
|
+
if (this.priorLines.length > 0) {
|
|
239
|
+
if (!sawResolvedExitPlanModePrefetch) {
|
|
240
|
+
sawResolvedExitPlanModePrefetch = didResolvePrefetchFor(this.priorLines, "ExitPlanMode");
|
|
241
|
+
}
|
|
242
|
+
if (!sawResolvedAskUserQuestionPrefetch) {
|
|
243
|
+
sawResolvedAskUserQuestionPrefetch = didResolvePrefetchFor(this.priorLines, "AskUserQuestion");
|
|
244
|
+
}
|
|
200
245
|
}
|
|
201
246
|
this.planExitPrefetchComplete =
|
|
202
|
-
sawResolvedPlanFileWrite &&
|
|
247
|
+
sawResolvedPlanFileWrite &&
|
|
248
|
+
sawResolvedExitPlanModePrefetch &&
|
|
249
|
+
!sawResolvedAskUserQuestionPrefetch;
|
|
203
250
|
// A message whose stop_reason is "tool_use" is guaranteed to contain at
|
|
204
251
|
// least one tool_use block. If we have not yet observed any tool_use
|
|
205
252
|
// block from such a message, the message is still being written to
|
|
@@ -257,11 +304,12 @@ export class ClaudeCompletionStrategy extends AbstractCompletionDetector {
|
|
|
257
304
|
}
|
|
258
305
|
/**
|
|
259
306
|
* Scan a slice of session lines for a resolved
|
|
260
|
-
* `ToolSearch({query: includes(
|
|
261
|
-
*
|
|
262
|
-
*
|
|
307
|
+
* `ToolSearch({query: includes(needle)})` invocation. Used to detect whether
|
|
308
|
+
* a deferred-tool schema was loaded in any prior turn of a resumed Claude
|
|
309
|
+
* session — both for the `ExitPlanMode` arming half of the prefetch fallback
|
|
310
|
+
* and for the `AskUserQuestion` session-wide suppressor.
|
|
263
311
|
*/
|
|
264
|
-
function
|
|
312
|
+
function didResolvePrefetchFor(lines, needle) {
|
|
265
313
|
const prefetchIds = new Set();
|
|
266
314
|
const resolvedIds = new Set();
|
|
267
315
|
for (const line of lines) {
|
|
@@ -274,7 +322,7 @@ function didResolveExitPlanModePrefetch(lines) {
|
|
|
274
322
|
block.id &&
|
|
275
323
|
block.name === "ToolSearch" &&
|
|
276
324
|
typeof block.input?.query === "string" &&
|
|
277
|
-
block.input.query.includes(
|
|
325
|
+
block.input.query.includes(needle)) {
|
|
278
326
|
prefetchIds.add(block.id);
|
|
279
327
|
}
|
|
280
328
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"completion.js","sourceRoot":"","sources":["../../../src/providers/claude/completion.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,2BAA2B,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AAClF,OAAO,EAAE,0BAA0B,EAAE,MAAM,uBAAuB,CAAC;AAEnE;;;;;;;;GAQG;AACH,MAAM,uBAAuB,GAC3B,iEAAiE,CAAC;AAEpE
|
|
1
|
+
{"version":3,"file":"completion.js","sourceRoot":"","sources":["../../../src/providers/claude/completion.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,2BAA2B,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AAClF,OAAO,EAAE,0BAA0B,EAAE,MAAM,uBAAuB,CAAC;AAEnE;;;;;;;;GAQG;AACH,MAAM,uBAAuB,GAC3B,iEAAiE,CAAC;AAEpE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgEG;AACH,MAAM,OAAO,wBAAyB,SAAQ,0BAA0B;IAWnD;IAVnB,mBAAmB;IACX,eAAe,GAAG,IAAI,GAAG,EAAU,CAAC;IACpC,aAAa,GAAG,KAAK,CAAC;IACtB,YAAY,GAAG,KAAK,CAAC;IACrB,cAAc,GAAG,KAAK,CAAC;IACvB,wBAAwB,GAAG,KAAK,CAAC;IAEzC,YACE,MAAM,GAAG,GAAG,EACZ,OAAO,GAAG,GAAG,EACI,YAAqB,EACtC,eAAe,GAAG,QAAQ;QAE1B,KAAK,CAAC,MAAM,EAAE,OAAO,EAAE,eAAe,CAAC,CAAC;QAHvB,iBAAY,GAAZ,YAAY,CAAS;IAIxC,CAAC;IAES,YAAY,CAAC,YAA2B;QAChD,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC;QAC7B,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;QAC3B,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;QAC5B,IAAI,CAAC,wBAAwB,GAAG,KAAK,CAAC;QACtC,IAAI,aAAa,GAAG,KAAK,CAAC;QAC1B,IAAI,mBAAmB,GAAG,CAAC,CAAC,CAAC;QAC7B,IAAI,oBAAoB,GAAG,CAAC,CAAC,CAAC;QAC9B,IAAI,uBAAkD,CAAC;QAEvD,sEAAsE;QACtE,+DAA+D;QAC/D,kEAAkE;QAClE,MAAM,WAAW,GAAG,IAAI,GAAG,EAAU,CAAC;QAEtC,wEAAwE;QACxE,uEAAuE;QACvE,mEAAmE;QACnE,qEAAqE;QACrE,iEAAiE;QACjE,8DAA8D;QAC9D,MAAM,yBAAyB,GAAG,IAAI,GAAG,EAAU,CAAC;QACpD,MAAM,wBAAwB,GAAG,IAAI,GAAG,EAAU,CAAC;QAEnD,uEAAuE;QACvE,wEAAwE;QACxE,+DAA+D;QAC/D,2CAA2C;QAC3C,MAAM,gBAAgB,GAAG,IAAI,GAAG,EAAU,CAAC;QAC3C,MAAM,uBAAuB,GAAG,IAAI,GAAG,EAAU,CAAC;QAClD,MAAM,0BAA0B,GAAG,IAAI,GAAG,EAAU,CAAC;QAErD,KAAK,IAAI,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,YAAY,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE,CAAC;YACnD,MAAM,IAAI,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;YAC/B,IAAI,IAAI,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;gBAC9B,MAAM,OAAO,GAAG,IAAI,CAAC,OAYR,CAAC;gBACd,IAAI,CAAC,OAAO,EAAE,OAAO;oBAAE,SAAS;gBAEhC,uBAAuB,GAAG,OAAO,CAAC,WAAW,CAAC;gBAC9C,MAAM,SAAS,GAAG,OAAO,CAAC,EAAE,CAAC;gBAC7B,IAAI,SAAS,IAAI,OAAO,CAAC,WAAW,KAAK,UAAU,EAAE,CAAC;oBACpD,yBAAyB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;gBAC3C,CAAC;gBAED,KAAK,MAAM,KAAK,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;oBACpC,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU,IAAI,KAAK,CAAC,EAAE,EAAE,CAAC;wBAC1C,IAAI,SAAS;4BAAE,wBAAwB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;wBACvD,2DAA2D;wBAC3D,IAAI,IAAI,CAAC,YAAY,IAAI,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,YAAY,EAAE,CAAC;4BAC1D,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;4BAC3B,SAAS;wBACX,CAAC;wBACD,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;wBACnC,aAAa,GAAG,IAAI,CAAC;wBACrB,mBAAmB,GAAG,GAAG,CAAC;wBAE1B,6DAA6D;wBAC7D,IACE,CAAC,KAAK,CAAC,IAAI,KAAK,OAAO,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,CAAC;4BACjD,OAAO,KAAK,CAAC,KAAK,EAAE,SAAS,KAAK,QAAQ;4BAC1C,2BAA2B,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,EACvD,CAAC;4BACD,gBAAgB,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;wBACjC,CAAC;wBAED,6DAA6D;wBAC7D,mEAAmE;wBACnE,6DAA6D;wBAC7D,0DAA0D;wBAC1D,cAAc;wBACd,IACE,KAAK,CAAC,IAAI,KAAK,YAAY;4BAC3B,OAAO,KAAK,CAAC,KAAK,EAAE,KAAK,KAAK,QAAQ,EACtC,CAAC;4BACD,IAAI,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC;gCAC/C,uBAAuB,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;4BACxC,CAAC;4BACD,IAAI,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,iBAAiB,CAAC,EAAE,CAAC;gCAClD,0BAA0B,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;4BAC3C,CAAC;wBACH,CAAC;oBACH,CAAC;oBACD,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;wBACxC,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;wBAC1B,oBAAoB,GAAG,GAAG,CAAC;oBAC7B,CAAC;gBACH,CAAC;YACH,CAAC;iBAAM,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;gBAChC,MAAM,OAAO,GAAG,IAAI,CAAC,OAER,CAAC;gBACd,IAAI,CAAC,OAAO,EAAE,OAAO;oBAAE,SAAS;gBAEhC,iEAAiE;gBACjE,4DAA4D;gBAC5D,IAAI,OAAO,OAAO,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;oBACxC,MAAM,CAAC,GAAG,uBAAuB,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;oBACxD,IAAI,CAAC,EAAE,CAAC;wBACN,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;wBAChB,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;wBAChC,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;wBACpB,mBAAmB,GAAG,GAAG,CAAC;oBAC5B,CAAC;oBACD,SAAS;gBACX,CAAC;gBAED,2CAA2C;gBAC3C,iEAAiE;gBACjE,kEAAkE;gBAClE,MAAM,GAAG,GAAI,IAAkD;qBAC5D,aAAa,CAAC;gBACjB,MAAM,aAAa,GAAG,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,OAAO,KAAK,IAAI,CAAC;gBAEpD,KAAK,MAAM,KAAK,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;oBACpC,IAAI,KAAK,CAAC,IAAI,KAAK,aAAa,IAAI,KAAK,CAAC,WAAW,EAAE,CAAC;wBACtD,IAAI,aAAa,EAAE,CAAC;4BAClB,mBAAmB,GAAG,GAAG,CAAC;4BAC1B,SAAS;wBACX,CAAC;wBACD,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;wBAC/C,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;wBACnC,mBAAmB,GAAG,GAAG,CAAC;oBAC5B,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QAED,sEAAsE;QACtE,2DAA2D;QAC3D,KAAK,MAAM,EAAE,IAAI,WAAW;YAAE,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAE9D,kEAAkE;QAClE,sEAAsE;QACtE,uDAAuD;QACvD,IAAI,wBAAwB,GAAG,KAAK,CAAC;QACrC,KAAK,MAAM,EAAE,IAAI,gBAAgB,EAAE,CAAC;YAClC,IAAI,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;gBACxB,wBAAwB,GAAG,IAAI,CAAC;gBAChC,MAAM;YACR,CAAC;QACH,CAAC;QACD,IAAI,+BAA+B,GAAG,KAAK,CAAC;QAC5C,KAAK,MAAM,EAAE,IAAI,uBAAuB,EAAE,CAAC;YACzC,IAAI,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;gBACxB,+BAA+B,GAAG,IAAI,CAAC;gBACvC,MAAM;YACR,CAAC;QACH,CAAC;QACD,IAAI,kCAAkC,GAAG,KAAK,CAAC;QAC/C,KAAK,MAAM,EAAE,IAAI,0BAA0B,EAAE,CAAC;YAC5C,IAAI,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;gBACxB,kCAAkC,GAAG,IAAI,CAAC;gBAC1C,MAAM;YACR,CAAC;QACH,CAAC;QACD,yEAAyE;QACzE,oEAAoE;QACpE,sEAAsE;QACtE,sEAAsE;QACtE,mEAAmE;QACnE,sEAAsE;QACtE,6DAA6D;QAC7D,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC/B,IAAI,CAAC,+BAA+B,EAAE,CAAC;gBACrC,+BAA+B,GAAG,qBAAqB,CACrD,IAAI,CAAC,UAAU,EACf,cAAc,CACf,CAAC;YACJ,CAAC;YACD,IAAI,CAAC,kCAAkC,EAAE,CAAC;gBACxC,kCAAkC,GAAG,qBAAqB,CACxD,IAAI,CAAC,UAAU,EACf,iBAAiB,CAClB,CAAC;YACJ,CAAC;QACH,CAAC;QACD,IAAI,CAAC,wBAAwB;YAC3B,wBAAwB;gBACxB,+BAA+B;gBAC/B,CAAC,kCAAkC,CAAC;QAEtC,wEAAwE;QACxE,qEAAqE;QACrE,mEAAmE;QACnE,sCAAsC;QACtC,IAAI,uBAAuB,GAAG,KAAK,CAAC;QACpC,KAAK,MAAM,EAAE,IAAI,yBAAyB,EAAE,CAAC;YAC3C,IAAI,CAAC,wBAAwB,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;gBACtC,uBAAuB,GAAG,IAAI,CAAC;gBAC/B,MAAM;YACR,CAAC;QACH,CAAC;QAED,oEAAoE;QACpE,YAAY;QACZ,0EAA0E;QAC1E,oEAAoE;QACpE,2EAA2E;QAC3E,uEAAuE;QACvE,yEAAyE;QACzE,sEAAsE;QACtE,yCAAyC;QACzC,8DAA8D;QAC9D,MAAM,kBAAkB,GACtB,uBAAuB,KAAK,IAAI;YAChC,uBAAuB,KAAK,eAAe;YAC3C,uBAAuB,CAAC;QAE1B,kBAAkB;QAClB,kDAAkD;QAClD,yBAAyB;QACzB,uCAAuC;QACvC,sEAAsE;QACtE,0EAA0E;QAC1E,0CAA0C;QAC1C,IAAI,CAAC,YAAY;YACf,CAAC,kBAAkB;gBACnB,IAAI,CAAC,eAAe,CAAC,IAAI,KAAK,CAAC;gBAC/B,IAAI,CAAC,aAAa;gBAClB,CAAC,CAAC,aAAa,IAAI,oBAAoB,GAAG,mBAAmB,CAAC,CAAC;IACnE,CAAC;IAES,oBAAoB;QAC5B,OAAO,IAAI,CAAC,YAAY,CAAC;IAC3B,CAAC;IAEkB,kBAAkB,CAAC,MAAqB;QACzD,OAAO,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,eAAe,CAAC,IAAI,KAAK,CAAC,CAAC;IAChE,CAAC;IAEkB,oBAAoB;QACrC,OAAO,IAAI,CAAC,wBAAwB,IAAI,IAAI,CAAC,eAAe,CAAC,IAAI,KAAK,CAAC,CAAC;IAC1E,CAAC;IAEkB,2BAA2B;QAC5C,OAAO,CACL,IAAI,CAAC,YAAY;YACjB,CAAC,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,eAAe,CAAC,IAAI,KAAK,CAAC,CAAC;YACxD,CAAC,IAAI,CAAC,wBAAwB,IAAI,IAAI,CAAC,eAAe,CAAC,IAAI,KAAK,CAAC,CAAC,CACnE,CAAC;IACJ,CAAC;IAES,eAAe,CAAC,KAAoB;QAC5C,OAAO,qBAAqB,CAAC,KAAK,CAAC,CAAC;IACtC,CAAC;CACF;AAED;;;;;;GAMG;AACH,SAAS,qBAAqB,CAAC,KAAoB,EAAE,MAAc;IACjE,MAAM,WAAW,GAAG,IAAI,GAAG,EAAU,CAAC;IACtC,MAAM,WAAW,GAAG,IAAI,GAAG,EAAU,CAAC;IAEtC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,IAAI,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;YAC9B,MAAM,OAAO,GAAG,IAAI,CAAC,OASR,CAAC;YACd,IAAI,CAAC,OAAO,EAAE,OAAO;gBAAE,SAAS;YAChC,KAAK,MAAM,KAAK,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;gBACpC,IACE,KAAK,CAAC,IAAI,KAAK,UAAU;oBACzB,KAAK,CAAC,EAAE;oBACR,KAAK,CAAC,IAAI,KAAK,YAAY;oBAC3B,OAAO,KAAK,CAAC,KAAK,EAAE,KAAK,KAAK,QAAQ;oBACtC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,EAClC,CAAC;oBACD,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;gBAC5B,CAAC;YACH,CAAC;QACH,CAAC;aAAM,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YAChC,MAAM,OAAO,GAAG,IAAI,CAAC,OAER,CAAC;YACd,IAAI,CAAC,OAAO,EAAE,OAAO,IAAI,OAAO,OAAO,CAAC,OAAO,KAAK,QAAQ;gBAAE,SAAS;YACvE,KAAK,MAAM,KAAK,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;gBACpC,IAAI,KAAK,CAAC,IAAI,KAAK,aAAa,IAAI,KAAK,CAAC,WAAW,EAAE,CAAC;oBACtD,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;gBACrC,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,KAAK,MAAM,EAAE,IAAI,WAAW,EAAE,CAAC;QAC7B,IAAI,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC;YAAE,OAAO,IAAI,CAAC;IACvC,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC"}
|
|
@@ -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;CAU3C"}
|
|
@@ -33,9 +33,12 @@ export class ClaudeStrategy {
|
|
|
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
|
-
//
|
|
38
|
-
//
|
|
36
|
+
// (plan-file Write + ToolSearch(select:ExitPlanMode)) has been observed
|
|
37
|
+
// AND no AskUserQuestion prefetch has resolved anywhere in the session.
|
|
38
|
+
// The AskUserQuestion suppressor exists because a question end-state
|
|
39
|
+
// legitimately needs >15 s of "thinking" silence — see
|
|
40
|
+
// ClaudeCompletionStrategy.isStaleFallbackReady and the doc comment on
|
|
41
|
+
// the strategy class for the full reasoning.
|
|
39
42
|
return new ClaudeCompletionStrategy(200, 500, this.planMode.exitToolName, 15_000);
|
|
40
43
|
}
|
|
41
44
|
}
|
|
@@ -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,qEAAqE;QACrE,
|
|
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,wEAAwE;QACxE,wEAAwE;QACxE,qEAAqE;QACrE,uDAAuD;QACvD,uEAAuE;QACvE,6CAA6C;QAC7C,OAAO,IAAI,wBAAwB,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;IACpF,CAAC;CACF"}
|