koneck 2.96.0 → 2.98.0

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.
@@ -58,6 +58,29 @@ export declare function capabilityCorrection(denied: readonly Capability[]): str
58
58
  * Named as KONECK's own note, the way the identity answer is, because it is a fact about this
59
59
  * program rather than the model's view of itself — and because somebody who has just been told the
60
60
  * agent cannot browse needs to know which of the two to believe.
61
+ *
62
+ * ## It does not claim an outcome it does not have
63
+ *
64
+ * The first version ended "KONECK has told it otherwise and asked again", written before the retry
65
+ * had happened. On a machine whose window was truncating the prompt the retry came back empty, so
66
+ * what the reader got was a claim that something had been asked again, no second answer, and a
67
+ * finished run — reported as "koneck says they asked again, but nothing is running at all". Which
68
+ * was fair: the sentence described an intention as though it were a result.
69
+ *
70
+ * So the wording follows what is actually known at the point it is said, and the outcome is
71
+ * reported separately when there is one.
72
+ */
73
+ export declare function capabilityNotice(denied: readonly Capability[], model: string, opts?: {
74
+ retrying: boolean;
75
+ }): string;
76
+ /**
77
+ * When the window is why it said that, and correcting it would be noise.
78
+ *
79
+ * The tools are described at the top of the prompt, so a window too small to hold them means the
80
+ * model is answering about a toolset it was never shown — and its denial is honest from where it is
81
+ * standing. Arguing with it then is worse than useless: the correction is one more message on a
82
+ * prompt already being cut, and the retry comes back empty. What the reader needs is the number and
83
+ * the fix, not a second attempt that cannot work.
61
84
  */
62
- export declare function capabilityNotice(denied: readonly Capability[], model: string): string;
85
+ export declare function deniedBecauseNoRoom(denied: readonly Capability[], model: string, floorTokens: number, limitTokens: number, howToFix: string): string;
63
86
  //# sourceMappingURL=capability-claims.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"capability-claims.d.ts","sourceRoot":"","sources":["../src/capability-claims.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AAEH,MAAM,WAAW,UAAU;IACzB,4CAA4C;IAC5C,IAAI,EAAE,MAAM,CAAC;IACb,mDAAmD;IACnD,IAAI,EAAE,MAAM,CAAC;IACb,uDAAuD;IACvD,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAC;CAC7B;AAmBD,eAAO,MAAM,YAAY,EAAE,SAAS,UAAU,EAyD7C,CAAC;AAgBF,8FAA8F;AAC9F,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAExD;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,SAAS,MAAM,EAAE,GACtB,SAAS,UAAU,EAAE,CAWvB;AAED,6FAA6F;AAC7F,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,SAAS,UAAU,EAAE,GAAG,MAAM,CAQ1E;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,SAAS,UAAU,EAAE,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAOrF"}
1
+ {"version":3,"file":"capability-claims.d.ts","sourceRoot":"","sources":["../src/capability-claims.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AAEH,MAAM,WAAW,UAAU;IACzB,4CAA4C;IAC5C,IAAI,EAAE,MAAM,CAAC;IACb,mDAAmD;IACnD,IAAI,EAAE,MAAM,CAAC;IACb,uDAAuD;IACvD,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,SAAS,MAAM,EAAE,CAAC;CAC7B;AAmBD,eAAO,MAAM,YAAY,EAAE,SAAS,UAAU,EAyD7C,CAAC;AAgBF,8FAA8F;AAC9F,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAExD;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,SAAS,MAAM,EAAE,GACtB,SAAS,UAAU,EAAE,CAWvB;AAED,6FAA6F;AAC7F,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,SAAS,UAAU,EAAE,GAAG,MAAM,CAQ1E;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,SAAS,UAAU,EAAE,EAC7B,KAAK,EAAE,MAAM,EACb,IAAI,GAAE;IAAE,QAAQ,EAAE,OAAO,CAAA;CAAuB,GAC/C,MAAM,CAQR;AAED;;;;;;;;GAQG;AACH,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,SAAS,UAAU,EAAE,EAC7B,KAAK,EAAE,MAAM,EACb,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,MAAM,GACf,MAAM,CASR"}
@@ -159,13 +159,44 @@ export function capabilityCorrection(denied) {
159
159
  * Named as KONECK's own note, the way the identity answer is, because it is a fact about this
160
160
  * program rather than the model's view of itself — and because somebody who has just been told the
161
161
  * agent cannot browse needs to know which of the two to believe.
162
+ *
163
+ * ## It does not claim an outcome it does not have
164
+ *
165
+ * The first version ended "KONECK has told it otherwise and asked again", written before the retry
166
+ * had happened. On a machine whose window was truncating the prompt the retry came back empty, so
167
+ * what the reader got was a claim that something had been asked again, no second answer, and a
168
+ * finished run — reported as "koneck says they asked again, but nothing is running at all". Which
169
+ * was fair: the sentence described an intention as though it were a result.
170
+ *
171
+ * So the wording follows what is actually known at the point it is said, and the outcome is
172
+ * reported separately when there is one.
162
173
  */
163
- export function capabilityNotice(denied, model) {
174
+ export function capabilityNotice(denied, model, opts = { retrying: true }) {
164
175
  const what = denied.map(c => c.what).join(' and ');
165
- return `${model} said it cannot manage ${what}. It can: the \`${denied[0].tool}\` tool is `
176
+ const head = `${model} said it cannot manage ${what}. It can: the \`${denied[0].tool}\` tool is `
166
177
  + `enabled on this turn and does exactly that. Small models often carry that phrasing over from `
167
- + `training on assistants which genuinely had no browser, and a truncated prompt causes it too `
168
- + `— if the context window is small, the tools are described in the part being cut off. `
169
- + `KONECK has told it otherwise and asked again.`;
178
+ + `training on assistants which genuinely had no browser.`;
179
+ return opts.retrying
180
+ ? head + ` KONECK is telling it otherwise and trying the turn again.`
181
+ : head;
182
+ }
183
+ /**
184
+ * When the window is why it said that, and correcting it would be noise.
185
+ *
186
+ * The tools are described at the top of the prompt, so a window too small to hold them means the
187
+ * model is answering about a toolset it was never shown — and its denial is honest from where it is
188
+ * standing. Arguing with it then is worse than useless: the correction is one more message on a
189
+ * prompt already being cut, and the retry comes back empty. What the reader needs is the number and
190
+ * the fix, not a second attempt that cannot work.
191
+ */
192
+ export function deniedBecauseNoRoom(denied, model, floorTokens, limitTokens, howToFix) {
193
+ const what = denied.map(c => c.what).join(' and ');
194
+ return `${model} said it cannot manage ${what}, and on this window that is not a habit — it is `
195
+ + `the truth from where it is standing. The tool descriptions come to `
196
+ + `${floorTokens.toLocaleString()} tokens and the server is working in `
197
+ + `${limitTokens.toLocaleString()}, so the part of the prompt describing the browser is being `
198
+ + `cut off before the model sees it. It is not being told it has one.\n\n`
199
+ + `KONECK has NOT argued with it, because another message on a prompt already too long would `
200
+ + `only make it worse. Raise the window and this stops happening:\n\n${howToFix}`;
170
201
  }
171
202
  //# sourceMappingURL=capability-claims.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"capability-claims.js","sourceRoot":"","sources":["../src/capability-claims.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"capability-claims.js","sourceRoot":"","sources":["../src/capability-claims.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"context-limit.d.ts","sourceRoot":"","sources":["../src/context-limit.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"context-limit.d.ts","sourceRoot":"","sources":["../src/context-limit.ts"],"names":[],"mappings":"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"}
@@ -203,6 +203,21 @@ export function crowdedWindowAdvice(fixedTokens, limit, opts) {
203
203
  const k = (n) => `${(n / 1000).toFixed(1)}k`;
204
204
  return `**${opts.model} has about ${k(limit)} tokens to work in, and ${k(fixedTokens)} of that ` +
205
205
  `is spent before you type anything** (the instructions and the tool descriptions).\n\n` +
206
+ /*
207
+ * Whose limit this is, said before anything else about it.
208
+ *
209
+ * Read as KONECK rationing the model — "why is it even limiting context window, koneck should
210
+ * never limit but must allow a model to work freely, this is even ollama, so i am not paying
211
+ * anything". Fair, from the wording: it announced a budget and a reduced tool set and never
212
+ * said where the number came from. It comes from the server, which reports it and then cuts
213
+ * anything longer without saying so; the trimming is how a prompt survives that intact rather
214
+ * than being sliced in the middle. Nothing here is KONECK's ceiling, and there is nothing to
215
+ * pay for or ask permission for — it is one setting on your own machine.
216
+ */
217
+ `This is the window the server reports for the loaded model, not a ceiling KONECK applies: ` +
218
+ `Ollama serves 4,096 by default whatever a model was trained for. KONECK trims to fit it ` +
219
+ `because the server silently truncates anything longer — a prompt cut in the middle is how a ` +
220
+ `model comes to say it has no tools. Raise the window and nothing is trimmed at all.\n\n` +
206
221
  `That leaves roughly ${k(Math.max(0, limit - fixedTokens))} for your question, the reply, and ` +
207
222
  `every file the agent reads. It is why a model this size starts repeating itself, writes tool ` +
208
223
  `calls as plain text, or invents an answer about itself: it is not being given room to see ` +
@@ -1 +1 @@
1
- {"version":3,"file":"context-limit.js","sourceRoot":"","sources":["../src/context-limit.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"context-limit.js","sourceRoot":"","sources":["../src/context-limit.ts"],"names":[],"mappings":"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"}
package/dist/engine.d.ts CHANGED
@@ -3,11 +3,13 @@ import { type Pace } from './pace.js';
3
3
  import { Trajectory } from './trajectory.js';
4
4
  import type { TrajectoryEvent } from './trajectory.js';
5
5
  import type { Plan } from './plan.js';
6
+ import { type ProjectInfo } from './project.js';
6
7
  import { type PluginEntry } from './plugins.js';
7
8
  import { type MCPClientEntry } from './mcp.js';
9
+ import { type Assembled } from './prompt-budget.js';
8
10
  import { CheckpointRecorder } from './checkpoint.js';
9
11
  export { resolveMaxTurns } from './run-limits.js';
10
- import type { Message, AgentConfig, TokenStats } from './types.js';
12
+ import type { Message, AgentConfig, ExecutionContext, TokenStats } from './types.js';
11
13
  /**
12
14
  * Turns a provider failure into something a user can act on.
13
15
  *
@@ -167,6 +169,26 @@ export declare function personalityInstruction(personality: AgentConfig['persona
167
169
  * without limit — and the older an entry is, the likelier it is to be about something abandoned.
168
170
  */
169
171
  export declare function truncateMemory(memory: string, limit?: number): string;
172
+ export declare function buildSystemPrompt(ctx: ExecutionContext, memory?: string | null, project?: ProjectInfo | null, agentInstructions?: string | null,
173
+ /**
174
+ * Whether the window is too small for guidance.
175
+ *
176
+ * The markdown-shaping rules are worth about 300 tokens and they improve a large model's output.
177
+ * On a 4,096-token window they are 7% of everything the model will ever see, spent on how to
178
+ * format a table it has no room to write. Identity and the rules that keep it safe stay.
179
+ */
180
+ lean?: boolean,
181
+ /**
182
+ * A ceiling on the whole prompt, in tokens, or undefined for no ceiling.
183
+ *
184
+ * Set only when the window cannot hold everything. Above it, nothing is dropped and this is the
185
+ * same prompt it always was.
186
+ */
187
+ budgetTokens?: number,
188
+ /** Framework guidance detected for the project — first to go when there is no room for it. */
189
+ extraPrompt?: string,
190
+ /** User-selected presentation style; it never changes tools, approvals, or safety rules. */
191
+ personality?: AgentConfig['personality']): Assembled;
170
192
  /**
171
193
  * Which optional tools can actually do anything here.
172
194
  *
@@ -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
@@ -26,7 +26,7 @@ import { resolveSandbox, describeSandbox } from './sandbox.js';
26
26
  import { loadImages, buildUserContent, imageMime, looksLikeVisionUnsupported, visionUnsupportedNotice, } from './images.js';
27
27
  import { parseTextToolCalls, paramTypesFrom, looksLikeTextToolCall, stripTemplateTokens, splitEmittable, parseCommandStyleCalls, toolShapesFrom } from './tool-call-text.js';
28
28
  import { isIdentityQuestion, identityAnswer } from './identity.js';
29
- import { deniedCapabilities, capabilityCorrection, capabilityNotice } from './capability-claims.js';
29
+ import { deniedCapabilities, capabilityCorrection, capabilityNotice, deniedBecauseNoRoom } from './capability-claims.js';
30
30
  import { leanTools, leanModeNotice, findToolsSchema, matchDeferred, deferredToolNotice, FIND_TOOLS } from './lean-mode.js';
31
31
  import { findTailRepetition, trimTailRepetition, repetitionNotice, CHECK_EVERY } from './repetition.js';
32
32
  import { loadMemory } from './memory.js';
@@ -659,7 +659,14 @@ export function truncateMemory(memory, limit = MAX_MEMORY_CHARS) {
659
659
  const from = kept.indexOf('\n');
660
660
  return '(earlier notes omitted)\n' + (from === -1 ? kept : kept.slice(from + 1));
661
661
  }
662
- function buildSystemPrompt(ctx, memory = null, project = null, agentInstructions = null,
662
+ /*
663
+ * Exported so what the model is told about its own identity can be asserted.
664
+ *
665
+ * That block is the whole reason identity.ts exists — a model told nothing about who wrote the
666
+ * program it is running reaches for whichever lab trained it — and it is a string in the middle of
667
+ * a large function, which is exactly the kind of thing that gets edited back to something wrong.
668
+ */
669
+ export function buildSystemPrompt(ctx, memory = null, project = null, agentInstructions = null,
663
670
  /**
664
671
  * Whether the window is too small for guidance.
665
672
  *
@@ -693,8 +700,10 @@ personality = 'default') {
693
700
  const rules = `You are KONECK, a production-grade autonomous coding agent.
694
701
 
695
702
  WHO YOU ARE — fact, not inference:
696
- KONECK is Kona Dludlu's open-source coding agent, written in Eswatini.
697
- https://github.com/Gubevu/konech
703
+ KONECK is an independent open-source coding agent. Who wrote it is deliberately not disclosed: you
704
+ do not know, and there is nothing to work out. If you are asked, say it is not disclosed. Never
705
+ name a person or a company as the author, and never guess — an omission is not an invitation to
706
+ fill the gap.
698
707
  You are running on the model \`${ctx.model ?? 'unnamed'}\` served by \`${ctx.provider ?? 'unknown'}\`.
699
708
  KONECK is the program; the model is a part it uses. You were NOT made by Anthropic, OpenAI,
700
709
  Google, Alibaba or DeepSeek — the model's maker is not yours, and you must not claim to be the
@@ -877,6 +886,15 @@ export async function mapWithLimit(items, limit, fn) {
877
886
  return results;
878
887
  }
879
888
  async function handleSpawnAgents(args, config, cwd,
889
+ /*
890
+ * The parent's stop, so sub-agents go down with it.
891
+ *
892
+ * They were started with no signal at all, so stopping a run that had fanned out to six agents
893
+ * stopped the parent and left six agents working — each with its own turns, its own tools and its
894
+ * own commands, none of which anybody could reach. That is the worst version of the stop problem
895
+ * rather than a corner of it: the visible run ends and the machine keeps going.
896
+ */
897
+ abortSignal,
880
898
  /**
881
899
  * The parent's counters, so delegated work is counted as work.
882
900
  *
@@ -920,6 +938,20 @@ delegated) {
920
938
  // trip a per-second limit even when three concurrent is otherwise sustainable.
921
939
  if (i > 0)
922
940
  await new Promise(r => setTimeout(r, (i % concurrency) * AGENT_STAGGER_MS));
941
+ /*
942
+ * Nothing new is started after the stop.
943
+ *
944
+ * With a concurrency of three and nine tasks, the last six are queued behind the first three —
945
+ * so without this, stopping would be followed by six fresh agents starting up, each of which
946
+ * then has to be stopped in turn. A worktree is created here too, and one made for an agent
947
+ * that is not going to run is a directory somebody has to clean up.
948
+ */
949
+ if (abortSignal?.aborted) {
950
+ mine.status = 'failed';
951
+ publish();
952
+ return { task, success: false,
953
+ output: 'NOT RUN: stopped at the user\'s request before this agent started.' };
954
+ }
923
955
  let taskCwd = cwd;
924
956
  let branch;
925
957
  if (isGit && args.use_worktrees !== false) {
@@ -974,7 +1006,7 @@ delegated) {
974
1006
  };
975
1007
  try {
976
1008
  const session = await createAgentSession(subConfig);
977
- await session.send(task);
1009
+ await session.send(task, abortSignal);
978
1010
  // The last assistant message with something in it — not merely the last, which after a
979
1011
  // tool call is often an empty shell — and enough of it to be worth having. Three hundred
980
1012
  // characters cut a sub-agent's conclusions mid-sentence, so the parent had to work out
@@ -1162,6 +1194,13 @@ fixedTokens, platform) {
1162
1194
  }
1163
1195
  return observed + '\nIf it keeps happening, try another model with /models.';
1164
1196
  }
1197
+ /**
1198
+ * Sessions that have already been told their window is small.
1199
+ *
1200
+ * Weak, and keyed on the session's own message array: nothing here should keep a finished session's
1201
+ * transcript alive, and the array is the only object that is the same one across every send.
1202
+ */
1203
+ const windowExplained = new WeakSet();
1165
1204
  export async function runReActLoop(messages, client, config, effectiveCwd, stats, mcpClients, plugins,
1166
1205
  // Reassigned when the window is too small for the full set, so it is `let` in effect.
1167
1206
  openaiTools, turnOffset = 0, abortSignal, checkpoint,
@@ -1504,6 +1543,8 @@ detectedContext = { current: 0 }) {
1504
1543
  let commandStyleNoticed = false;
1505
1544
  /** One correction per user message: a model that repeats a false denial will not be argued out. */
1506
1545
  let capabilityCorrected = false;
1546
+ /** A correction made, whose outcome has still to be reported. */
1547
+ let correctionAwaiting = null;
1507
1548
  // The tool list, cut to fit when the window cannot hold it.
1508
1549
  //
1509
1550
  // Nine of the twenty-three tools are git subcommands, about 550 tokens between them, and every
@@ -1520,6 +1561,22 @@ detectedContext = { current: 0 }) {
1520
1561
  const systemText = messages.find(m => m.role === 'system')?.content;
1521
1562
  const systemChars = typeof systemText === 'string' ? systemText : '';
1522
1563
  let fixed = fixedRequestTokens(systemChars, JSON.stringify(openaiTools));
1564
+ /*
1565
+ * Said once for the session, not once per message.
1566
+ *
1567
+ * The trimming has to be decided on every request — the conversation grows, and what fits
1568
+ * changes with it — but the explanation of it does not change at all. It was printed each time
1569
+ * anyway, so a small window meant several paragraphs of diagnostics in front of every single
1570
+ * message: reported as "I only said Hi, what's with all this now". The window has not moved
1571
+ * since the last message and neither has the advice.
1572
+ *
1573
+ * Keyed on the message array, which is the one thing that is the same object for the whole
1574
+ * session — the config is spread afresh on every send, so its identity says nothing.
1575
+ */
1576
+ const sayOnce = !windowExplained.has(messages);
1577
+ /** The reduced-tool-set explanation, if there is one, to be said with the rest or on its own. */
1578
+ let leanSaid = '';
1579
+ let leanDropped = [];
1523
1580
  // Reduced only when it genuinely does not fit — measured against the window the server
1524
1581
  // reported, not against a threshold KONECK picked. `leanTools: false` turns it off outright.
1525
1582
  if (config.leanTools !== false && overheadIsCrowded(fixed, effectiveLimit())) {
@@ -1533,9 +1590,13 @@ detectedContext = { current: 0 }) {
1533
1590
  findToolsSchema(lean.dropped),
1534
1591
  ];
1535
1592
  messages.push({ role: 'system', content: deferredToolNotice(lean.dropped) });
1536
- config.onLeanMode?.(lean.dropped, effectiveLimit(), leanModeNotice(lean, effectiveLimit()));
1537
- if (!silent)
1538
- tui.printWarning(leanModeNotice(lean, effectiveLimit()));
1593
+ /*
1594
+ * Held rather than printed, because the crowded-window advice below is very likely to say
1595
+ * the same window figure and the same fix a moment later. Two blocks of diagnostics that
1596
+ * overlap read as twice as much wrong as there is.
1597
+ */
1598
+ leanSaid = leanModeNotice(lean, effectiveLimit());
1599
+ leanDropped = lean.dropped;
1539
1600
  fixed = fixedRequestTokens(systemChars, JSON.stringify(openaiTools));
1540
1601
  }
1541
1602
  }
@@ -1559,10 +1620,26 @@ detectedContext = { current: 0 }) {
1559
1620
  // Loopback means this machine; a LAN address is somebody else's. See runsOnThisMachine.
1560
1621
  remote: !runsOnThisMachine(resolveProvider(config.provider, config.baseURL).baseURL),
1561
1622
  });
1562
- config.onCrowdedWindow?.(fixed, effectiveLimit(), advice);
1623
+ if (sayOnce) {
1624
+ // One block, in the order somebody reads it: what the window is and whose it is, then what
1625
+ // had to be set aside because of it, then how to stop it happening.
1626
+ const together = leanSaid ? advice + '\n\n' + leanSaid : advice;
1627
+ config.onCrowdedWindow?.(fixed, effectiveLimit(), together);
1628
+ if (!silent)
1629
+ tui.printWarning(together);
1630
+ leanSaid = '';
1631
+ }
1632
+ }
1633
+ // Only reached when trimming was enough to bring it back under the line, so it stands alone.
1634
+ if (sayOnce && leanSaid) {
1635
+ config.onLeanMode?.(leanDropped, effectiveLimit(), leanSaid);
1563
1636
  if (!silent)
1564
- tui.printWarning(advice);
1637
+ tui.printWarning(leanSaid);
1565
1638
  }
1639
+ // Marked after everything above has had its say, so a session that says nothing on the first
1640
+ // message can still speak up on a later one when the conversation has grown into the limit.
1641
+ if (sayOnce && overheadIsCrowded(fixed, effectiveLimit()))
1642
+ windowExplained.add(messages);
1566
1643
  }
1567
1644
  // Questions about KONECK itself are answered by KONECK, without a request.
1568
1645
  //
@@ -2397,14 +2474,69 @@ detectedContext = { current: 0 }) {
2397
2474
  const denied = deniedCapabilities(assistantContent, openaiTools.map(t => t.function.name));
2398
2475
  if (denied.length > 0) {
2399
2476
  capabilityCorrected = true;
2400
- const notice = capabilityNotice(denied, config.model);
2401
- config.onFalseDenial?.(denied.map(d => d.what), notice);
2477
+ /*
2478
+ * Two different situations, and only one of them is worth arguing about.
2479
+ *
2480
+ * If the window cannot hold the tool descriptions, the model is answering about a toolset it
2481
+ * was never shown, and its denial is honest. A correction there is one more message on a
2482
+ * prompt already being cut: measured on exactly that machine, the retry came back empty and
2483
+ * the run finished having said nothing, under a notice claiming it had asked again.
2484
+ *
2485
+ * So when there is no room, say what the cause is and stop. When there is, correct it.
2486
+ */
2487
+ const endpoint = resolveProvider(config.provider, config.baseURL).baseURL;
2488
+ const noRoom = fixedCost > 0 && overheadIsCrowded(fixedCost, effectiveLimit());
2489
+ if (noRoom) {
2490
+ const notice = deniedBecauseNoRoom(denied, config.model, fixedCost, effectiveLimit(), ollamaWindowFix({ endpoint, remote: !runsOnThisMachine(endpoint) }));
2491
+ config.onFalseDenial?.(denied.map(d => d.what), notice);
2492
+ if (!silent)
2493
+ tui.printWarning(notice);
2494
+ // The turn is not retried and the model's answer stands: it is the only answer there is,
2495
+ // and replacing it with nothing is what left the screen blank.
2496
+ }
2497
+ else {
2498
+ const notice = capabilityNotice(denied, config.model, { retrying: true });
2499
+ config.onFalseDenial?.(denied.map(d => d.what), notice);
2500
+ if (!silent)
2501
+ tui.printWarning(notice);
2502
+ messages.push({ role: 'assistant', content: assistantContent });
2503
+ messages.push({ role: 'system', content: capabilityCorrection(denied) });
2504
+ // Remembered so the second attempt's outcome can be reported. Without this, a retry that
2505
+ // produces nothing leaves a notice describing an intention and no result anywhere.
2506
+ correctionAwaiting = { denied: denied.map(d => d.what), said: assistantContent };
2507
+ assistantContent = '';
2508
+ continue;
2509
+ }
2510
+ }
2511
+ }
2512
+ /*
2513
+ * How the corrected attempt went.
2514
+ *
2515
+ * Reported whether it worked or not. A model that repeats the denial, or returns nothing at all,
2516
+ * has to be visible as such — the alternative is what was reported: a note saying the model had
2517
+ * been told otherwise, and no sign of anything happening afterwards.
2518
+ */
2519
+ if (correctionAwaiting) {
2520
+ const attempt = correctionAwaiting;
2521
+ correctionAwaiting = null;
2522
+ const stillDenying = assistantContent
2523
+ && deniedCapabilities(assistantContent, openaiTools.map(t => t.function.name)).length > 0;
2524
+ const gaveNothing = toolCalls.length === 0 && assistantContent.trim() === '';
2525
+ if (stillDenying || gaveNothing) {
2526
+ const outcome = gaveNothing
2527
+ ? `${config.model} returned nothing to the correction. It will not be asked a third time. `
2528
+ + `This is what a prompt being truncated looks like from the outside — check the context `
2529
+ + `window with /context — and it is also what a model simply unwilling to use a tool `
2530
+ + `looks like. A larger model on the same task is the quickest way to tell them apart.`
2531
+ : `${config.model} repeated that it cannot ${attempt.denied.join(' or ')} after being told `
2532
+ + `it can. It will not be asked again. The tool is there; this model is not going to use `
2533
+ + `it on this task.`;
2534
+ config.onFalseDenial?.(attempt.denied, outcome);
2402
2535
  if (!silent)
2403
- tui.printWarning(notice);
2404
- messages.push({ role: 'assistant', content: assistantContent });
2405
- messages.push({ role: 'system', content: capabilityCorrection(denied) });
2406
- assistantContent = '';
2407
- continue;
2536
+ tui.printWarning(outcome);
2537
+ // Nothing came back, so the first answer is restored rather than leaving the turn blank.
2538
+ if (gaveNothing)
2539
+ assistantContent = attempt.said;
2408
2540
  }
2409
2541
  }
2410
2542
  // Only print buffered content if it wasn't already live-streamed
@@ -2639,7 +2771,36 @@ detectedContext = { current: 0 }) {
2639
2771
  function: { name: tc.name, arguments: tc.arguments },
2640
2772
  })),
2641
2773
  });
2642
- for (const tc of toolCalls) {
2774
+ for (const [callIndex, tc] of toolCalls.entries()) {
2775
+ /*
2776
+ * Stop means stop, including the calls already queued behind this one.
2777
+ *
2778
+ * A turn commonly arrives with several calls in it, and this loop ran every one of them
2779
+ * whatever the user had pressed — there was no check here at all. So stopping during a turn
2780
+ * that had asked for eight commands meant waiting for eight commands. Pressing it again did
2781
+ * nothing except abort an already-aborted signal, which is exactly the "I have to click many
2782
+ * times before it stops" that was reported: each press was honoured instantly and none of
2783
+ * them reached the thing actually taking the time.
2784
+ *
2785
+ * The ones not run still get an answer. Every tool_call in an assistant message must have a
2786
+ * matching tool result or the next request is rejected outright — so abandoning them silently
2787
+ * would trade a slow stop for a session that cannot be resumed, which is worse. Saying what
2788
+ * happened also keeps the transcript honest about which steps did not run.
2789
+ */
2790
+ if (abortSignal?.aborted) {
2791
+ for (const skipped of toolCalls.slice(callIndex)) {
2792
+ messages.push({
2793
+ role: 'tool', tool_call_id: skipped.id,
2794
+ content: 'NOT RUN: stopped at the user\'s request before this call was made.',
2795
+ });
2796
+ }
2797
+ if (!silent) {
2798
+ tui.printWarning(toolCalls.length - callIndex === 1
2799
+ ? 'Stopped. One queued call was not run.'
2800
+ : `Stopped. ${toolCalls.length - callIndex} queued calls were not run.`);
2801
+ }
2802
+ return false;
2803
+ }
2643
2804
  const sig = tc.name + '::' + tc.arguments;
2644
2805
  /*
2645
2806
  * Recorded on attempt, not on execution.
@@ -2954,14 +3115,16 @@ detectedContext = { current: 0 }) {
2954
3115
  }
2955
3116
  catch { /* use empty */ }
2956
3117
  delegated.agents += parsed.tasks?.length ?? 0;
2957
- result = await handleSpawnAgents(parsed, config, effectiveCwd, stats, delegated);
3118
+ result = await handleSpawnAgents(parsed, config, effectiveCwd, abortSignal, stats, delegated);
2958
3119
  }
2959
3120
  else if (BUILTIN_NAMES.has(tc.name)) {
2960
3121
  result = await dispatchTool(tc.name, tc.arguments, effectiveCwd,
2961
3122
  // Ink owns approvals through `config.approve`. Sending it through the legacy TUI as
2962
3123
  // well created a second readline prompt over Ink's frame, which looked like a hang
2963
3124
  // and could leave two terminal interfaces fighting for stdin.
2964
- !config.approve && (config.requireApproval || policyDecision.requireApproval), line => config.onToolOutput?.(tc.name, line), sandbox);
3125
+ !config.approve && (config.requireApproval || policyDecision.requireApproval), line => config.onToolOutput?.(tc.name, line), sandbox,
3126
+ // So a command, a page load or a fetch already in flight is cut rather than waited out.
3127
+ abortSignal);
2965
3128
  }
2966
3129
  else if (plugins.some(pl => pl.definition.name === tc.name)) {
2967
3130
  result = await callPlugin(tc.name, tc.arguments, effectiveCwd, plugins);
@@ -2969,7 +3132,9 @@ detectedContext = { current: 0 }) {
2969
3132
  else if (aliasedTool) {
2970
3133
  // The name is not ours but its meaning is not in doubt: `create_file` with a path and
2971
3134
  // contents is `write_file`. Refusing it wastes the turn and, twice now, the task.
2972
- result = aliasNotice(tc.name, aliasedTool) + await dispatchTool(aliasedTool, tc.arguments, effectiveCwd, !config.approve && (config.requireApproval || policyDecision.requireApproval), line => config.onToolOutput?.(tc.name, line), sandbox);
3135
+ result = aliasNotice(tc.name, aliasedTool) + await dispatchTool(aliasedTool, tc.arguments, effectiveCwd, !config.approve && (config.requireApproval || policyDecision.requireApproval), line => config.onToolOutput?.(tc.name, line), sandbox,
3136
+ // So a command, a page load or a fetch already in flight is cut rather than waited out.
3137
+ abortSignal);
2973
3138
  }
2974
3139
  else {
2975
3140
  // A name the model invented, not a plugin that failed to load. Saying which tools exist