koneck 2.128.45 → 2.128.47

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.
@@ -46,6 +46,20 @@ export declare function safeCutAtOrBefore(messages: readonly Message[], from: nu
46
46
  * is a prompt the model will refuse.
47
47
  */
48
48
  export declare function safeCutAtOrAfter(messages: readonly Message[], from: number, balanced?: boolean[]): number | null;
49
+ /**
50
+ * What a compaction attempt did, including the two ways it can decline.
51
+ *
52
+ * Both used to be indistinguishable from "not needed", which is how a compaction that could never
53
+ * work came to be retried on every turn.
54
+ */
55
+ export interface CompressResult {
56
+ messages: Message[];
57
+ compressed: boolean;
58
+ /** It summarised, and the result was no smaller. The original is returned. */
59
+ noGain?: boolean;
60
+ /** The instructions and tool schemas alone fill the window. Nothing was attempted. */
61
+ floorExceedsWindow?: boolean;
62
+ }
49
63
  export interface CompressOptions {
50
64
  /** The model's context window, so compaction happens before the model overflows rather than
51
65
  * at a number chosen without reference to it. */
@@ -59,6 +73,14 @@ export interface CompressOptions {
59
73
  promptTokens?: number;
60
74
  /** Forced by an overflow the model has already refused: the size no longer matters. */
61
75
  force?: boolean;
76
+ /**
77
+ * Instructions plus tool schemas: what the prompt costs before a word of conversation.
78
+ *
79
+ * Compaction cannot reduce it — the schemas are not even sent as messages — so when it alone
80
+ * fills the window there is nothing to compact under, and rounds of summarising are model calls
81
+ * that cannot succeed.
82
+ */
83
+ fixedCost?: number;
62
84
  }
63
85
  /**
64
86
  * The instruction the session is currently working on.
@@ -84,9 +106,6 @@ export declare function activeRequestIndex(messages: readonly Message[]): number
84
106
  * again later.
85
107
  */
86
108
  export declare function keepForTarget(messages: readonly Message[], size: number, limit: number, start?: number): number;
87
- export declare function compressIfNeeded(messages: Message[], client: OpenAI, model: string, options?: CompressOptions): Promise<{
88
- messages: Message[];
89
- compressed: boolean;
90
- }>;
109
+ export declare function compressIfNeeded(messages: Message[], client: OpenAI, model: string, options?: CompressOptions): Promise<CompressResult>;
91
110
  export { estimateTokens };
92
111
  //# sourceMappingURL=compressor.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"compressor.d.ts","sourceRoot":"","sources":["../src/compressor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,QAAQ,CAAC;AACjC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAM1C,iBAAS,cAAc,CAAC,QAAQ,EAAE,OAAO,EAAE,GAAG,MAAM,CAenD;AAeD;;;;;;;;;;;GAWG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,SAAS,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAMtF;AAUD;;;;;;;;;;;GAWG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,SAAS,OAAO,EAAE,GAAG,OAAO,EAAE,CAW1E;AAED,yEAAyE;AACzE,wBAAgB,yBAAyB,CAAC,QAAQ,EAAE,SAAS,OAAO,EAAE,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAE9F;AAED,wEAAwE;AACxE,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,SAAS,OAAO,EAAE,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAE7F;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,SAAS,OAAO,EAAE,EAC5B,IAAI,EAAE,MAAM,EACZ,GAAG,SAAI,EACP,QAAQ,YAA+B,GACtC,MAAM,GAAG,IAAI,CAKf;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAC9B,QAAQ,EAAE,SAAS,OAAO,EAAE,EAC5B,IAAI,EAAE,MAAM,EACZ,QAAQ,YAA+B,GACtC,MAAM,GAAG,IAAI,CAKf;AAED,MAAM,WAAW,eAAe;IAC9B;sDACkD;IAClD,KAAK,EAAE,MAAM,CAAC;IACd;;;;;OAKG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,uFAAuF;IACvF,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,SAAS,OAAO,EAAE,GAAG,MAAM,CAiCvE;AAED;;;;;;;;GAQG;AACH,wBAAgB,aAAa,CAC3B,QAAQ,EAAE,SAAS,OAAO,EAAE,EAC5B,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,EACb,KAAK,SAAuB,GAC3B,MAAM,CAYR;AAQD,wBAAsB,gBAAgB,CACpC,QAAQ,EAAE,OAAO,EAAE,EACnB,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,EAGb,OAAO,GAAE,eAAkD,GAC1D,OAAO,CAAC;IAAE,QAAQ,EAAE,OAAO,EAAE,CAAC;IAAC,UAAU,EAAE,OAAO,CAAA;CAAE,CAAC,CAsGvD;AA8BD,OAAO,EAAE,cAAc,EAAE,CAAC"}
1
+ {"version":3,"file":"compressor.d.ts","sourceRoot":"","sources":["../src/compressor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,QAAQ,CAAC;AACjC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAM1C,iBAAS,cAAc,CAAC,QAAQ,EAAE,OAAO,EAAE,GAAG,MAAM,CAenD;AAeD;;;;;;;;;;;GAWG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,SAAS,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAMtF;AAUD;;;;;;;;;;;GAWG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,SAAS,OAAO,EAAE,GAAG,OAAO,EAAE,CAW1E;AAED,yEAAyE;AACzE,wBAAgB,yBAAyB,CAAC,QAAQ,EAAE,SAAS,OAAO,EAAE,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAE9F;AAED,wEAAwE;AACxE,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,SAAS,OAAO,EAAE,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAE7F;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,SAAS,OAAO,EAAE,EAC5B,IAAI,EAAE,MAAM,EACZ,GAAG,SAAI,EACP,QAAQ,YAA+B,GACtC,MAAM,GAAG,IAAI,CAKf;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAC9B,QAAQ,EAAE,SAAS,OAAO,EAAE,EAC5B,IAAI,EAAE,MAAM,EACZ,QAAQ,YAA+B,GACtC,MAAM,GAAG,IAAI,CAKf;AAED;;;;;GAKG;AACH,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,UAAU,EAAE,OAAO,CAAC;IACpB,8EAA8E;IAC9E,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,sFAAsF;IACtF,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC9B;AAED,MAAM,WAAW,eAAe;IAC9B;sDACkD;IAClD,KAAK,EAAE,MAAM,CAAC;IACd;;;;;OAKG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,uFAAuF;IACvF,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB;;;;;;OAMG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,SAAS,OAAO,EAAE,GAAG,MAAM,CAiCvE;AAED;;;;;;;;GAQG;AACH,wBAAgB,aAAa,CAC3B,QAAQ,EAAE,SAAS,OAAO,EAAE,EAC5B,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,EACb,KAAK,SAAuB,GAC3B,MAAM,CAYR;AAQD,wBAAsB,gBAAgB,CACpC,QAAQ,EAAE,OAAO,EAAE,EACnB,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,EAGb,OAAO,GAAE,eAAkD,GAC1D,OAAO,CAAC,cAAc,CAAC,CA0IzB;AA8BD,OAAO,EAAE,cAAc,EAAE,CAAC"}
@@ -1,4 +1,4 @@
1
- import { shouldCompact, COMPACT_AT, DEFAULT_CONTEXT_LIMIT } from './context-limit.js';
1
+ import { shouldCompact, COMPACT_AT, DEFAULT_CONTEXT_LIMIT, overheadIsCrowded } from './context-limit.js';
2
2
  const CHARS_PER_TOKEN = 4;
3
3
  const KEEP_RECENT_MESSAGES = 12;
4
4
  function estimateTokens(messages) {
@@ -204,6 +204,27 @@ options = { limit: DEFAULT_CONTEXT_LIMIT }) {
204
204
  if (!options.force && !shouldCompact(size, options.limit)) {
205
205
  return { messages, compressed: false };
206
206
  }
207
+ /*
208
+ * Refused when the window cannot hold the prompt whatever is cut.
209
+ *
210
+ * The instructions and the tool schemas are not in `messages` — the schemas are not sent as
211
+ * messages at all — so compaction cannot touch them. When they alone exceed the window, summing
212
+ * the conversation to nothing still leaves a prompt too large, and every round is a model call
213
+ * that cannot succeed. Watched against Ollama serving 4,096 with a 7,453-token floor: compact,
214
+ * compact again, forever.
215
+ *
216
+ * There is nothing to compact your way under, so it stops and says which number is the problem.
217
+ *
218
+ * Speculative compaction only. `force` means the provider has already refused this prompt for
219
+ * length, and then cutting the conversation is the one lever there is: the floor is an estimate,
220
+ * the real limit may be higher than the one being compared against, and declining to try
221
+ * guarantees the failure it is predicting. Attempt it and let the retry find out.
222
+ */
223
+ if (!options.force
224
+ && options.fixedCost !== undefined
225
+ && overheadIsCrowded(options.fixedCost, options.limit)) {
226
+ return { messages, compressed: false, floorExceedsWindow: true };
227
+ }
207
228
  // Always keep: system prompt + first user message + the last N messages.
208
229
  //
209
230
  // The tail boundary is then walked back to a turn boundary. A fixed-size slice can begin part
@@ -280,10 +301,24 @@ options = { limit: DEFAULT_CONTEXT_LIMIT }) {
280
301
  role: 'assistant',
281
302
  content: `[COMPRESSED HISTORY — ${middle.length} messages]\n${summary}`,
282
303
  };
283
- return {
284
- messages: [...head, summaryMsg, ...restated(activeMessage), ...tail],
285
- compressed: true,
286
- };
304
+ const rebuilt = [...head, summaryMsg, ...restated(activeMessage), ...tail];
305
+ /*
306
+ * Compaction that saved nothing is not compaction.
307
+ *
308
+ * `compressed: true` used to mean "a summary was produced", not "the conversation got
309
+ * smaller" — and those come apart whenever the middle was already short: a summary of two
310
+ * brief messages, plus the active request restated, can be longer than what it replaced.
311
+ * Reported as two notices in a row, the second reading "8 messages summarised into 8", each
312
+ * one a model call that bought nothing.
313
+ *
314
+ * Measured rather than assumed, and the original is kept when the rebuild is not smaller.
315
+ * Saying so is the caller's business; what matters here is not claiming a reduction that did
316
+ * not happen, because a caller that believes it will come straight back and ask again.
317
+ */
318
+ if (estimateTokens(rebuilt) >= estimateTokens(messages)) {
319
+ return { messages, compressed: false, noGain: true };
320
+ }
321
+ return { messages: rebuilt, compressed: true };
287
322
  }
288
323
  catch {
289
324
  // If summarisation fails, just drop the middle — tail + head is still coherent. The active
@@ -1 +1 @@
1
- {"version":3,"file":"compressor.js","sourceRoot":"","sources":["../src/compressor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"compressor.js","sourceRoot":"","sources":["../src/compressor.ts"],"names":[],"mappings":"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"}
package/dist/engine.d.ts CHANGED
@@ -199,7 +199,9 @@ export declare function stepAwaitsUser(text: string): boolean;
199
199
  * fix; carrying on when they meant stop writes files they never asked for.
200
200
  */
201
201
  export declare function replyAwaitsUser(text: string): boolean;
202
- export declare function announcesMoreWork(text: string): boolean;
202
+ export declare function announcesMoreWork(text: string, opts?: {
203
+ taskBuilds?: boolean;
204
+ }): boolean;
203
205
  export { buildClient } from './providers.js';
204
206
  /**
205
207
  * `git status --short`, summarised rather than pasted.
@@ -1 +1 @@
1
- {"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../src/engine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../src/engine.ts"],"names":[],"mappings":"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"}
package/dist/engine.js CHANGED
@@ -15,7 +15,7 @@ import { claim, release, describeClaims } from './claims.js';
15
15
  import { handoffFrom, describeHandoff, worthSaying } from './handoff.js';
16
16
  import { readAll as readLedger, relevant as relevantFindings, withStaleness, describeFindings, deriveFindings, freshFindings, record as recordFindings, changedSince, currentSha } from './ledger.js';
17
17
  import { repoNameFor } from './session-bus.js';
18
- import { compressIfNeeded } from './compressor.js';
18
+ import { compressIfNeeded, activeRequestIndex } from './compressor.js';
19
19
  import { contextLimitFor, looksLikeContextOverflow, parseContextLimit, fetchModelContextLimit, ollamaServingLimit, fixedRequestTokens, overheadIsCrowded, crowdedWindowAdvice, probeServedContext, decideServedWindow, detectWindowPlateau, truncationNotice, windowFixFor, windowSettingIgnored, runsOnThisMachine, } from './context-limit.js';
20
20
  import { generateSessionId, saveSession } from './session.js';
21
21
  import { EMPTY_PLAN, parsePlan, planReminder, planAck, noPlanReminder } from './plan.js';
@@ -510,19 +510,42 @@ const SHARED_WORK = /\b(npm|yarn|pnpm|bun)\s+(run\s+\S+|test|install|ci|build|st
510
510
  * reporting skipped work has not answered the question, however long the write-up is. They are
511
511
  * therefore checked at any length, unlike the forward-looking phrases below.
512
512
  */
513
+ /*
514
+ * The agent describing its own process: an admission whatever the task was.
515
+ *
516
+ * "I stopped there", "I only ran the initial searches", "I have not yet read the tests" — these are
517
+ * about what the agent did, and a long report that says them is an unfinished job, not an answer.
518
+ */
513
519
  const ADMITS_UNFINISHED = new RegExp([
514
- // "I haven't finished", "I stopped there", "I only ran initial searches"
515
- "\\b(?:haven'?t|have not) (?:finished|completed|yet\\b)",
520
+ "\\b(?:haven'?t|have not) (?:finished|completed)\\b",
516
521
  "\\bi stopped (?:there|here|short)\\b",
517
- "\\b(?:has|have) not yet (?:read|checked|reviewed|examined|explored|looked|created|written|implemented|added|changed)\\b",
518
- "\\bnot yet (?:read|checked|reviewed|examined|explored|created|written|implemented|added|started)\\b",
522
+ "\\b(?:has|have|haven'?t) not yet (?:read|checked|reviewed|examined|explored|looked)\\b",
523
+ "\\b(?:haven'?t|have not) yet (?:read|checked|reviewed|examined|explored|looked)\\b",
524
+ "\\bnot yet (?:read|checked|reviewed|examined|explored|started)\\b",
519
525
  "\\bi only (?:ran|did|searched|looked|checked|read)\\b",
520
- "\\bstill (?:need|needs|remains?) to\\b",
521
- // "no files were created or changed yet", "nothing has been implemented"
526
+ "\\bi still (?:need|have) to\\b",
527
+ "\\bwill (?:now )?(?:proceed|begin|start) to\\b",
528
+ ].join('|'), 'i');
529
+ /*
530
+ * What does not exist yet: a confession in a build, and the answer in a question.
531
+ *
532
+ * These used to sit in the list above and counted in every task. So asked "check what i am working
533
+ * on?", a model that did the whole investigation correctly and reported "the actual financial logic
534
+ * for the Stokvel platform is yet to be implemented" was read as admitting its own work was
535
+ * unfinished — because the sentence matched `yet to be implemented`. It was nudged to continue,
536
+ * sent the same accurate summary back, and the run was then labelled "Not finished" on a question
537
+ * it had answered in full.
538
+ *
539
+ * The words are identical either way. Whether they are a confession depends on whether the agent
540
+ * was asked to make the thing, and that is known: it is the task.
541
+ */
542
+ const DESCRIBES_UNBUILT = new RegExp([
543
+ "\\b(?:has|have) not yet (?:created|written|implemented|added|changed)\\b",
544
+ "\\bnot yet (?:created|written|implemented|added)\\b",
545
+ "\\bstill (?:needs?|remains?) to\\b",
522
546
  "\\bno (?:files?|changes?|code|modules?) (?:were|was|have been|has been)\\b",
523
547
  "\\bnothing (?:was|were|has been|have been) (?:created|changed|written|implemented|added|modified)\\b",
524
548
  "\\b(?:remains?|yet) to be (?:written|created|implemented|done|added)\\b",
525
- "\\bwill (?:now )?(?:proceed|begin|start) to\\b",
526
549
  ].join('|'), 'i');
527
550
  /**
528
551
  * Detects a provider or gateway error that arrived as assistant *content* with HTTP 200, rather
@@ -629,7 +652,7 @@ export function replyAwaitsUser(text) {
629
652
  return /\b(say the word|just say the word|shall i\b|should i (proceed|continue|go ahead|start)|want me to\b|would you like me to\b|do you want me to\b|if you'?d like,? i'?ll|if you want,? i'?ll|ready when you are|your call\b|give me the go-?ahead|with your (approval|go-?ahead|sign-?off)|awaiting your|let me know (if|whether) you (want|would like|need) me to|tell me (which|and i'?ll))/
630
653
  .test(tail);
631
654
  }
632
- export function announcesMoreWork(text) {
655
+ export function announcesMoreWork(text, opts = {}) {
633
656
  const trimmed = text.trim();
634
657
  if (!trimmed)
635
658
  return false;
@@ -637,6 +660,10 @@ export function announcesMoreWork(text) {
637
660
  // says "I stopped there" is still an unfinished job, not an answer.
638
661
  if (ADMITS_UNFINISHED.test(trimmed))
639
662
  return true;
663
+ // Unbuilt things are only a confession when building them was the job. Unknown means yes: a
664
+ // caller that cannot say keeps the stricter reading it always had.
665
+ if ((opts.taskBuilds ?? true) && DESCRIBES_UNBUILT.test(trimmed))
666
+ return true;
640
667
  // Forward-looking intent ("now let me read X") only counts in short text, since a long
641
668
  // answer that happens to mention reading a file is a conclusion, not a preamble.
642
669
  if (trimmed.length > 600)
@@ -1643,6 +1670,9 @@ compactRequest = { pending: false }) {
1643
1670
  * was the wrong and only moment.
1644
1671
  */
1645
1672
  let windowReprobed = false;
1673
+ /** Both said once per session: they describe the setup, not the turn. */
1674
+ let floorNoticeGiven = false;
1675
+ let noGainNoticeGiven = false;
1646
1676
  /** Why the turn loop was broken out of, when it was. Null means it ran to its own end. */
1647
1677
  let stoppedBecause = null;
1648
1678
  /** Reported prompt counts against the history that produced them, for spotting a plateau. */
@@ -1910,7 +1940,38 @@ compactRequest = { pending: false }) {
1910
1940
  limit: effectiveLimit(),
1911
1941
  promptTokens: lastPromptTokens,
1912
1942
  force: forceCompact || compactRequest.pending,
1943
+ // So it can decline outright when the instructions and tool schemas alone fill the window,
1944
+ // instead of spending a summarisation call on a conversation that is not the problem.
1945
+ ...(fixedCost > 0 ? { fixedCost } : {}),
1913
1946
  });
1947
+ /*
1948
+ * Two ways compaction declines, each said once and then left alone.
1949
+ *
1950
+ * Retrying either is the fault being fixed: with Ollama serving 4,096 against a 7,453-token
1951
+ * floor, the conversation was summarised on every single turn — "8 messages summarised into
1952
+ * 8" — each round a model call that could not have helped. Reported as compaction notices
1953
+ * stacking up after the window had supposedly been raised.
1954
+ */
1955
+ if (compressed.floorExceedsWindow && !floorNoticeGiven) {
1956
+ floorNoticeGiven = true;
1957
+ const endpoint = resolveProvider(config.provider, config.baseURL).baseURL;
1958
+ const advice = crowdedWindowAdvice(fixedCost, effectiveLimit(), {
1959
+ model: config.model,
1960
+ endpoint,
1961
+ remote: !runsOnThisMachine(endpoint),
1962
+ runtime: config.servedRuntime ?? null,
1963
+ });
1964
+ config.onCompactNoop?.('the instructions and tool descriptions alone do not fit the window, so summarising the '
1965
+ + 'conversation cannot get under it');
1966
+ config.onCrowdedWindow?.(fixedCost, effectiveLimit(), advice);
1967
+ if (!silent)
1968
+ tui.printWarning(advice);
1969
+ }
1970
+ if (compressed.noGain && !noGainNoticeGiven) {
1971
+ noGainNoticeGiven = true;
1972
+ config.onCompactNoop?.('summarising produced nothing smaller than what it replaced, so the conversation was left '
1973
+ + 'as it was');
1974
+ }
1914
1975
  if (!compressed.compressed && compactRequest.pending) {
1915
1976
  /*
1916
1977
  * Asked for, and there was nothing to do.
@@ -2930,8 +2991,20 @@ compactRequest = { pending: false }) {
2930
2991
  // A run asked to build something that is about to end without having written anything has
2931
2992
  // not finished, whatever its closing paragraph claims. This catches the phrasings a fixed
2932
2993
  // list of admissions cannot.
2933
- const originalTask = messages.find(m => m.role === 'user' && typeof m.content === 'string');
2934
- const builtNothing = finishedWithoutBuilding(typeof originalTask?.content === 'string' ? originalTask.content : '', usedMutatingTool);
2994
+ /*
2995
+ * The request being worked on, not the first thing ever typed.
2996
+ *
2997
+ * This read the session's first user message, which in the session that reported it was
2998
+ * "Hi" — the actual question came second. Harmless there by luck; wrong in general, since a
2999
+ * session that opened with "build X" and later asked a question would have every question
3000
+ * judged as an unfinished build. activeRequestIndex already skips KONECK's own nudges, for
3001
+ * exactly this reason, and is what compaction uses to find the same thing.
3002
+ */
3003
+ const activeAt = activeRequestIndex(messages);
3004
+ const activeRequest = activeAt >= 0 ? messages[activeAt] : undefined;
3005
+ const taskText = typeof activeRequest?.content === 'string' ? activeRequest.content : '';
3006
+ const taskBuilds = BUILD_INTENT.test(taskText);
3007
+ const builtNothing = finishedWithoutBuilding(taskText, usedMutatingTool);
2935
3008
  // A turn with no text and no tool calls is not an answer; it is the provider returning
2936
3009
  // nothing. A few in a row means the model is not responding, and continuing to nudge an
2937
3010
  // unresponsive endpoint just burns turns before reporting a success that never happened.
@@ -3037,6 +3110,24 @@ compactRequest = { pending: false }) {
3037
3110
  }
3038
3111
  previousReply = replyBody;
3039
3112
  if (identicalReplies >= 1) {
3113
+ /*
3114
+ * A finished answer, sent twice because it was pushed, is finished.
3115
+ *
3116
+ * Two identical replies mean the nudge is not landing, and there are two reasons that
3117
+ * happens. Either the model is stuck — it keeps announcing a step it never takes — or it has
3118
+ * already answered and there is nothing to continue with, so it gives the answer again.
3119
+ * This ran into the second as if it were the first: asked "check what i am working on?",
3120
+ * the model investigated, answered accurately, was pushed by a false reading of its own
3121
+ * summary, repeated the summary, and the run was then reported "Not finished".
3122
+ *
3123
+ * They are told apart by what is left. Nothing on the plan, nothing the task needed built,
3124
+ * and a reply that does not announce more work: that is an answer, and it is accepted.
3125
+ */
3126
+ const planLeft = planRef.current.steps.some(step => step.state === 'todo' || step.state === 'doing');
3127
+ if (!planLeft && !builtNothing && !announcesMoreWork(assistantContent, { taskBuilds })) {
3128
+ messages.push({ role: 'assistant', content: assistantContent });
3129
+ return !forcedAnswer;
3130
+ }
3040
3131
  /*
3041
3132
  * Why it stopped, what is left, and what to do — all three.
3042
3133
  *
@@ -3068,7 +3159,7 @@ compactRequest = { pending: false }) {
3068
3159
  pushNudge(repetitionNotice(looping));
3069
3160
  continue;
3070
3161
  }
3071
- if ((announcesMoreWork(assistantContent) || builtNothing || nextStep !== undefined)
3162
+ if ((announcesMoreWork(assistantContent, { taskBuilds }) || builtNothing || nextStep !== undefined)
3072
3163
  && continuationNudges < MAX_CONTINUATION_NUDGES) {
3073
3164
  continuationNudges++;
3074
3165
  messages.push({ role: 'assistant', content: assistantContent });