neoctl 0.2.37 → 0.2.38

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.
Files changed (93) hide show
  1. package/dist/agents/agent-definition.d.ts +2 -0
  2. package/dist/agents/agent-definition.js +10 -0
  3. package/dist/agents/agent-definition.js.map +1 -1
  4. package/dist/agents/agent-tool.js +4 -0
  5. package/dist/agents/agent-tool.js.map +1 -1
  6. package/dist/agents/coordination-boundary.test.d.ts +1 -0
  7. package/dist/agents/coordination-boundary.test.js +58 -0
  8. package/dist/agents/coordination-boundary.test.js.map +1 -0
  9. package/dist/context/context-manager.d.ts +4 -0
  10. package/dist/context/context-manager.js +4 -1
  11. package/dist/context/context-manager.js.map +1 -1
  12. package/dist/context/prompt-config.d.ts +35 -0
  13. package/dist/context/prompt-config.js +151 -0
  14. package/dist/context/prompt-config.js.map +1 -0
  15. package/dist/context/prompt-config.test.d.ts +1 -0
  16. package/dist/context/prompt-config.test.js +124 -0
  17. package/dist/context/prompt-config.test.js.map +1 -0
  18. package/dist/context/prompts.d.ts +1 -1
  19. package/dist/context/prompts.js +4 -27
  20. package/dist/context/prompts.js.map +1 -1
  21. package/dist/context/smoke-context.js +3 -1
  22. package/dist/context/smoke-context.js.map +1 -1
  23. package/dist/context/system.md +16 -0
  24. package/dist/core/query-engine.d.ts +27 -1
  25. package/dist/core/query-engine.js +301 -109
  26. package/dist/core/query-engine.js.map +1 -1
  27. package/dist/core/query-session-settings.test.d.ts +1 -0
  28. package/dist/core/query-session-settings.test.js +252 -0
  29. package/dist/core/query-session-settings.test.js.map +1 -0
  30. package/dist/core/query.d.ts +16 -0
  31. package/dist/core/query.js +30 -0
  32. package/dist/core/query.js.map +1 -1
  33. package/dist/core/run-agent.js +3 -5
  34. package/dist/core/run-agent.js.map +1 -1
  35. package/dist/core/session-settings-prompt.d.ts +35 -0
  36. package/dist/core/session-settings-prompt.js +61 -0
  37. package/dist/core/session-settings-prompt.js.map +1 -0
  38. package/dist/core/session-settings-prompt.test.d.ts +1 -0
  39. package/dist/core/session-settings-prompt.test.js +257 -0
  40. package/dist/core/session-settings-prompt.test.js.map +1 -0
  41. package/dist/index.d.ts +3 -0
  42. package/dist/index.js +2 -0
  43. package/dist/index.js.map +1 -1
  44. package/dist/model/model-metadata.json +1 -3
  45. package/dist/model/openai-responses-instructions.test.d.ts +1 -0
  46. package/dist/model/openai-responses-instructions.test.js +64 -0
  47. package/dist/model/openai-responses-instructions.test.js.map +1 -0
  48. package/dist/model/openai-responses-mapper.js +5 -16
  49. package/dist/model/openai-responses-mapper.js.map +1 -1
  50. package/dist/model/smoke-responses-mapper.js +8 -5
  51. package/dist/model/smoke-responses-mapper.js.map +1 -1
  52. package/dist/session/session-export.d.ts +6 -0
  53. package/dist/session/session-export.js.map +1 -1
  54. package/dist/session/session-store.d.ts +11 -0
  55. package/dist/session/session-store.js +25 -0
  56. package/dist/session/session-store.js.map +1 -1
  57. package/dist/tools/builtins/exec-process-manager.js +4 -1
  58. package/dist/tools/builtins/exec-process-manager.js.map +1 -1
  59. package/dist/tools/terminal-background-history.test.d.ts +1 -0
  60. package/dist/tools/terminal-background-history.test.js +77 -0
  61. package/dist/tools/terminal-background-history.test.js.map +1 -0
  62. package/dist/tools/terminal-output-store.d.ts +4 -0
  63. package/dist/tools/terminal-output-store.js +18 -0
  64. package/dist/tools/terminal-output-store.js.map +1 -1
  65. package/dist/web/index.d.ts +22 -1
  66. package/dist/web/index.js +122 -12
  67. package/dist/web/index.js.map +1 -1
  68. package/dist/web/prompt-config-protocol.d.ts +4 -0
  69. package/dist/web/prompt-config-protocol.js +57 -0
  70. package/dist/web/prompt-config-protocol.js.map +1 -0
  71. package/dist/web/prompt-config-protocol.test.d.ts +1 -0
  72. package/dist/web/prompt-config-protocol.test.js +78 -0
  73. package/dist/web/prompt-config-protocol.test.js.map +1 -0
  74. package/dist/web/runtime-context-protocol.d.ts +1 -0
  75. package/dist/web/runtime-context-protocol.js +1 -0
  76. package/dist/web/runtime-context-protocol.js.map +1 -1
  77. package/dist/web/session-prompt-integration.test.d.ts +1 -0
  78. package/dist/web/session-prompt-integration.test.js +57 -0
  79. package/dist/web/session-prompt-integration.test.js.map +1 -0
  80. package/dist/web/session-prompt-protocol.d.ts +8 -0
  81. package/dist/web/session-prompt-protocol.js +11 -0
  82. package/dist/web/session-prompt-protocol.js.map +1 -0
  83. package/dist/web/session-settings.test.d.ts +1 -0
  84. package/dist/web/session-settings.test.js +254 -0
  85. package/dist/web/session-settings.test.js.map +1 -0
  86. package/dist/web/smoke-terminal-output-http.js +10 -5
  87. package/dist/web/smoke-terminal-output-http.js.map +1 -1
  88. package/dist/web/smoke-web-terminal-tasks.js +100 -3
  89. package/dist/web/smoke-web-terminal-tasks.js.map +1 -1
  90. package/docs/prompt-config.md +71 -0
  91. package/package.json +4 -3
  92. package/scripts/build-standalone.mjs +3 -0
  93. package/scripts/copy-prompt-resources.mjs +5 -0
@@ -1 +1 @@
1
- {"version":3,"file":"query-engine.js","sourceRoot":"","sources":["../../src/core/query-engine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"query-engine.js","sourceRoot":"","sources":["../../src/core/query-engine.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,252 @@
1
+ import assert from "node:assert/strict";
2
+ import test from "node:test";
3
+ import { QueryEngine } from "./query-engine.js";
4
+ import { buildPromptCacheIdentity } from "./prompt-cache-key.js";
5
+ import { createTextMessage } from "../types/messages.js";
6
+ import { ToolRegistry } from "../tools/registry.js";
7
+ function gate() {
8
+ let release;
9
+ const promise = new Promise((resolve) => { release = resolve; });
10
+ return { promise, release };
11
+ }
12
+ const unchanged = { async compact(messages) { return { messages: [...messages], changed: false }; } };
13
+ function fixture(options = {}) {
14
+ const opened = gate(), resume = gate();
15
+ const requests = [];
16
+ const toolOptions = [];
17
+ const builds = [];
18
+ const tools = new ToolRegistry();
19
+ tools.register({ name: "probe", description: "Stable tool", inputSchema: { type: "object" },
20
+ metadata: { readOnly: true, concurrent: true, visible: true }, validate() { return {}; },
21
+ async call(_input, context) { toolOptions.push({ ...context.options }); return { ok: true, output: "ok" }; },
22
+ });
23
+ const engine = new QueryEngine({
24
+ model: "gpt-5", reasoning: { effort: "low" }, maxOutputTokensOverride: 1000,
25
+ contextWindowTokensOverride: 100000, tools, compactor: unchanged, session: { enabled: false },
26
+ contextManager: { async build(input) {
27
+ builds.push({ ...input.toolUseContext?.options });
28
+ return {
29
+ systemPrompt: "Immutable system prefix", promptSections: [], userContext: { currentDate: "2026-09-08" },
30
+ systemContext: { cwd: "stable-workspace", platform: "win32" },
31
+ };
32
+ } },
33
+ modelGateway: { async *stream(request) {
34
+ requests.push(request);
35
+ if (requests.length === 1) {
36
+ opened.release();
37
+ await resume.promise;
38
+ yield { type: "tool_use", toolUse: { id: "probe1", name: "probe", input: {} } };
39
+ yield { type: "response_completed", responseId: "resp-first" };
40
+ }
41
+ else
42
+ yield { type: "assistant_message", message: createTextMessage("assistant", "finished") };
43
+ } }, ...options,
44
+ });
45
+ return { engine, requests, opened, resume, toolOptions, builds };
46
+ }
47
+ async function drain(stream) {
48
+ const events = [];
49
+ for await (const event of stream)
50
+ events.push(event);
51
+ return events;
52
+ }
53
+ function identity(request) {
54
+ return buildPromptCacheIdentity(request.systemPrompt, request.tools, request.model, request.messages);
55
+ }
56
+ test("midstream settings are gated, merged and next-turn-local; same-model cache and response chain stay exact", async () => {
57
+ const f = fixture();
58
+ const result = drain(f.engine.sendUserText("Original user input"));
59
+ await f.opened.promise;
60
+ const original = JSON.stringify(f.requests[0]);
61
+ assert.deepEqual(await f.engine.updateSessionSettings({ fastMode: true, contextWindowTokens: 60000, reasoning: { effort: "high" } }), { deferred: true });
62
+ await f.engine.updateSessionSettings({ contextWindowTokens: 70000 });
63
+ const snapshot = f.engine.getPendingSessionSettings();
64
+ snapshot.reasoning.effort = "max";
65
+ assert.equal(f.engine.getPendingSessionSettings().reasoning?.effort, "high");
66
+ assert.equal(JSON.stringify(f.requests[0]), original);
67
+ assert.equal(f.engine.isFastMode(), false);
68
+ f.resume.release();
69
+ const events = await result;
70
+ assert.equal(f.requests[1].serviceTier, "priority");
71
+ assert.deepEqual(f.requests[1].reasoning, { effort: "high" });
72
+ // Existing full-history tool turns intentionally omit response chaining.
73
+ assert.equal(f.requests[1].previousResponseId, undefined);
74
+ assert.equal(f.requests[1].maxOutputTokens, 1000);
75
+ assert.deepEqual(f.requests[1].tools, f.requests[0].tools);
76
+ assert.equal(f.requests[1].systemPrompt, f.requests[0].systemPrompt);
77
+ // Synthetic runtime-context envelopes get fresh local IDs/timestamps; neither is provider input.
78
+ const promptMessages = (messages) => messages.map(({ id: _id, createdAt: _createdAt, ...wire }) => wire);
79
+ assert.deepEqual(promptMessages(f.requests[1].messages.slice(0, f.requests[0].messages.length)), promptMessages(f.requests[0].messages));
80
+ assert.equal(identity(f.requests[0]).key, identity(f.requests[1]).key);
81
+ assert.equal(identity(f.requests[0]).stablePrefixHash, identity(f.requests[1]).stablePrefixHash);
82
+ assert.equal(f.toolOptions[0]?.serviceTier, undefined);
83
+ assert.deepEqual(f.toolOptions[0]?.reasoning, { effort: "low" });
84
+ assert.equal(f.builds[1]?.serviceTier, "priority");
85
+ assert.equal(f.builds[1]?.contextWindowTokensOverride, 70000);
86
+ assert(events.some((e) => e.type === "context.metrics" && e.metrics.contextWindowTokens === 70000));
87
+ assert.deepEqual(f.engine.getPendingSessionSettings(), {});
88
+ assert.doesNotMatch(JSON.stringify(f.engine.getHistoryMessages()), /fastMode|contextWindowTokens|reasoning/);
89
+ });
90
+ test("real model switch clears response chain, no-op model and canceling LWW do not", async () => {
91
+ for (const switchModel of [true, false]) {
92
+ const f = fixture();
93
+ const done = drain(f.engine.sendUserText("input"));
94
+ await f.opened.promise;
95
+ await f.engine.updateSessionSettings({ model: "gpt-5-mini", fastMode: true });
96
+ await f.engine.updateSessionSettings({ model: switchModel ? "gpt-5-mini" : "gpt-5", fastMode: false });
97
+ f.resume.release();
98
+ await done;
99
+ assert.equal(f.requests[1].model, switchModel ? "gpt-5-mini" : "gpt-5");
100
+ assert.equal(f.requests[1].previousResponseId, undefined);
101
+ assert.equal(f.requests[1].serviceTier, undefined);
102
+ assert.equal(identity(f.requests[0]).key === identity(f.requests[1]).key, !switchModel);
103
+ }
104
+ });
105
+ test("max-output recovery keeps escalation and response chain under no-op/fast/context, actual model switch discards continuation-only input", async () => {
106
+ for (const switchModel of [false, true]) {
107
+ const opened = gate(), resume = gate();
108
+ const requests = [];
109
+ const f = fixture({ modelGateway: { async *stream(request) {
110
+ requests.push(request);
111
+ if (requests.length === 1) {
112
+ opened.release();
113
+ await resume.promise;
114
+ yield { type: "assistant_message", message: createTextMessage("assistant", "PARTIAL_ANSWER") };
115
+ yield { type: "response_incomplete", responseId: "resp-recover", reason: "max_output_tokens" };
116
+ }
117
+ else
118
+ yield { type: "assistant_message", message: createTextMessage("assistant", "done") };
119
+ } } });
120
+ const done = drain(f.engine.sendUserText("RECOVER_INPUT"));
121
+ await opened.promise;
122
+ await f.engine.updateSessionSettings({ model: switchModel ? "gpt-5-mini" : "gpt-5", fastMode: true, contextWindowTokens: 70000 });
123
+ resume.release();
124
+ await done;
125
+ assert.equal(requests[1].maxOutputTokens, 64000);
126
+ assert.equal(requests[1].previousResponseId, switchModel ? undefined : "resp-recover");
127
+ assert.equal(requests[1].serviceTier, "priority");
128
+ if (switchModel)
129
+ assert.match(JSON.stringify(requests[1].messages), /RECOVER_INPUT/);
130
+ else
131
+ assert.match(JSON.stringify(requests[1].messages), /Continue from the exact point/);
132
+ }
133
+ });
134
+ test("manual compact coalesces and replaces both query state and history, never inside stream", async () => {
135
+ const inputs = [];
136
+ const f = fixture({ compactor: { ...unchanged, async manualCompact(messages, budget) {
137
+ inputs.push([...messages]);
138
+ assert.equal(budget?.contextWindowTokens, 80000);
139
+ return { messages: [createTextMessage("user", "CHECKPOINT")], changed: true, reason: "manualcompact", summary: "checkpoint" };
140
+ } } });
141
+ const done = drain(f.engine.sendUserText("OLD_INPUT"));
142
+ await f.opened.promise;
143
+ await f.engine.updateSessionSettings({ compact: true, contextWindowTokens: 80000 });
144
+ await f.engine.updateSessionSettings({ compact: true });
145
+ await f.engine.updateSessionSettings({ compact: false });
146
+ assert.equal(inputs.length, 0);
147
+ f.resume.release();
148
+ const events = await done;
149
+ assert.equal(inputs.length, 1);
150
+ assert(inputs[0].some((m) => m.blocks.some((b) => b.type === "tool_result")));
151
+ assert.match(JSON.stringify(f.requests[1].messages), /CHECKPOINT/);
152
+ assert.doesNotMatch(JSON.stringify(f.requests[1].messages), /OLD_INPUT/);
153
+ assert.doesNotMatch(JSON.stringify(f.engine.getHistoryMessages()), /OLD_INPUT/);
154
+ assert.equal(events.filter((e) => e.type === "context.compacted").length, 1);
155
+ await drain(f.engine.sendUserText("next input"));
156
+ assert.doesNotMatch(JSON.stringify(f.requests[2].messages), /OLD_INPUT/);
157
+ });
158
+ test("final no-tool boundary applies pending, compact includes final assistant and emits once", async () => {
159
+ const opened = gate(), resume = gate();
160
+ const compactInputs = [];
161
+ const f = fixture({ modelGateway: { async *stream() {
162
+ opened.release();
163
+ await resume.promise;
164
+ yield { type: "assistant_message", message: createTextMessage("assistant", "FINAL_ANSWER") };
165
+ } }, compactor: { ...unchanged, async manualCompact(messages) {
166
+ compactInputs.push([...messages]);
167
+ return { messages: [createTextMessage("user", "FINAL_CHECKPOINT")], changed: true, reason: "manualcompact", summary: "final" };
168
+ } } });
169
+ const done = drain(f.engine.sendUserText("input"));
170
+ await opened.promise;
171
+ await f.engine.updateSessionSettings({ model: "gpt-5-mini", compact: true, contextWindowTokens: 90000 });
172
+ resume.release();
173
+ const events = await done;
174
+ assert.match(JSON.stringify(compactInputs), /FINAL_ANSWER/);
175
+ assert.equal(events.filter((e) => e.type === "context.compacted").length, 1);
176
+ const metrics = events.filter((e) => e.type === "context.metrics");
177
+ assert.equal(metrics.at(-1)?.metrics.contextWindowTokens, 90000);
178
+ assert.equal(f.engine.getModelSettings().model, "gpt-5-mini");
179
+ assert.deepEqual(f.engine.getPendingSessionSettings(), {});
180
+ assert.match(JSON.stringify(f.engine.getHistoryMessages()), /FINAL_CHECKPOINT/);
181
+ });
182
+ test("idle mutations serialize compaction ahead of new user generator; idle compaction is returned", async () => {
183
+ const compacting = gate(), releaseCompact = gate();
184
+ const f = fixture({ compactor: { ...unchanged, async manualCompact() {
185
+ compacting.release();
186
+ await releaseCompact.promise;
187
+ return { messages: [createTextMessage("user", "IDLE_CHECKPOINT")], changed: true, reason: "manualcompact", summary: "idle" };
188
+ } } });
189
+ const update = f.engine.updateSessionSettings({ compact: true, fastMode: true });
190
+ await compacting.promise;
191
+ const done = drain(f.engine.sendUserText("NEW_INPUT"));
192
+ await Promise.resolve();
193
+ assert.equal(f.requests.length, 0);
194
+ assert.deepEqual(await f.engine.updateSessionSettings({ reasoning: null }), { deferred: true });
195
+ releaseCompact.release();
196
+ const result = await update;
197
+ assert.equal(result.deferred, false);
198
+ assert.equal(result.compaction?.changed, true);
199
+ await f.opened.promise;
200
+ assert.equal(f.requests[0].serviceTier, "priority");
201
+ assert.equal(f.requests[0].reasoning, null);
202
+ assert.match(JSON.stringify(f.requests[0].messages), /IDLE_CHECKPOINT/);
203
+ assert.match(JSON.stringify(f.requests[0].messages), /NEW_INPUT/);
204
+ f.resume.release();
205
+ await done;
206
+ });
207
+ test("abort and consumer return settle pending; forks never inherit pending; null versus default preserved", async () => {
208
+ const f = fixture();
209
+ const controller = new AbortController();
210
+ const done = drain(f.engine.sendUserText("input", { abortSignal: controller.signal }));
211
+ await f.opened.promise;
212
+ await f.engine.updateSessionSettings({ model: "gpt-5-mini", reasoning: null, fastMode: true });
213
+ const fork = f.engine.forkForSession();
214
+ assert.deepEqual(fork.getPendingSessionSettings(), {});
215
+ assert.equal(fork.getModelSettings().model, "gpt-5");
216
+ controller.abort();
217
+ f.resume.release();
218
+ await done;
219
+ assert.equal(f.requests.length, 1);
220
+ assert.equal(f.engine.getModelSettings().reasoning, null);
221
+ assert.equal((await f.engine.updateSessionSettings({ reasoning: undefined })).deferred, false);
222
+ assert.equal(f.engine.getModelSettings().reasoning, undefined);
223
+ const stream = f.engine.sendUserText("return early");
224
+ await stream.next();
225
+ await f.engine.updateSessionSettings({ reasoning: undefined, fastMode: false });
226
+ assert(Object.hasOwn(f.engine.getPendingSessionSettings(), "reasoning"));
227
+ await stream.return(undefined);
228
+ assert.deepEqual(f.engine.getPendingSessionSettings(), {});
229
+ assert.equal(f.engine.isFastMode(), false);
230
+ assert.equal((await f.engine.updateSessionSettings({})).deferred, false);
231
+ });
232
+ test("abort during before-turn compact commits checkpoint but never opens next model request", async () => {
233
+ const compacting = gate(), releaseCompact = gate();
234
+ const controller = new AbortController();
235
+ const f = fixture({ compactor: { ...unchanged, async manualCompact() {
236
+ compacting.release();
237
+ await releaseCompact.promise;
238
+ return { messages: [createTextMessage("user", "ABORT_CHECKPOINT")], changed: true, reason: "manualcompact", summary: "aborted" };
239
+ } } });
240
+ const done = drain(f.engine.sendUserText("input", { abortSignal: controller.signal }));
241
+ await f.opened.promise;
242
+ await f.engine.updateSessionSettings({ compact: true });
243
+ f.resume.release();
244
+ await compacting.promise;
245
+ controller.abort();
246
+ releaseCompact.release();
247
+ const events = await done;
248
+ assert.equal(f.requests.length, 1);
249
+ assert.equal(events.filter((e) => e.type === "context.compacted").length, 1);
250
+ assert.match(JSON.stringify(f.engine.getHistoryMessages()), /ABORT_CHECKPOINT/);
251
+ });
252
+ //# sourceMappingURL=query-session-settings.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"query-session-settings.test.js","sourceRoot":"","sources":["../../src/core/query-session-settings.test.ts"],"names":[],"mappings":"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"}
@@ -6,7 +6,23 @@ import type { CanUseTool, ToolUseContext } from "../tools/tool.js";
6
6
  import type { AgentEvent } from "../types/events.js";
7
7
  import { type Message, type ToolUseRequest } from "../types/messages.js";
8
8
  import { type QueryState, type TerminalReason } from "./state.js";
9
+ export interface SessionSettingsPatch {
10
+ model?: string;
11
+ reasoning?: ReasoningConfig | null;
12
+ fastMode?: boolean;
13
+ contextWindowTokens?: number;
14
+ compact?: boolean;
15
+ }
16
+ export interface BeforeTurnUpdate {
17
+ /** Only changed fields; never a full settings snapshot. */
18
+ settings?: SessionSettingsPatch;
19
+ compaction?: CompactionResult;
20
+ }
9
21
  export interface QueryOptions {
22
+ /** Safe boundary before context construction, never inside streaming/retries/tools.
23
+ * Compaction is calculated from these authoritative query messages, not engine history.
24
+ */
25
+ beforeTurn?: (messages: readonly Message[]) => BeforeTurnUpdate | undefined | Promise<BeforeTurnUpdate | undefined>;
10
26
  /** Synchronous inbox handoff immediately before a model request. */
11
27
  takePendingMessages?: () => Message[];
12
28
  agentId: string;
@@ -54,6 +54,33 @@ async function* queryLoop(initialState, dependencies, options) {
54
54
  return "aborted_streaming";
55
55
  if (maxTurns !== undefined && state.turnCount >= maxTurns)
56
56
  return "max_turns";
57
+ const update = await options.beforeTurn?.(state.messages);
58
+ const settings = update?.settings;
59
+ if (settings) {
60
+ if (Object.hasOwn(settings, "model")) {
61
+ if (settings.model !== (state.currentModel ?? options.model)) {
62
+ state.previousResponseId = undefined;
63
+ state.modelInputMessages = undefined;
64
+ }
65
+ state.currentModel = settings.model;
66
+ options.model = settings.model;
67
+ }
68
+ if (Object.hasOwn(settings, "reasoning"))
69
+ options.reasoning = settings.reasoning;
70
+ if (Object.hasOwn(settings, "fastMode"))
71
+ options.serviceTier = settings.fastMode ? "priority" : undefined;
72
+ if (Object.hasOwn(settings, "contextWindowTokens"))
73
+ options.contextWindowTokensOverride = settings.contextWindowTokens;
74
+ }
75
+ if (update?.compaction?.changed) {
76
+ state = { ...state, messages: update.compaction.messages, modelInputMessages: undefined, previousResponseId: undefined };
77
+ await dependencies.applyCompaction?.(update.compaction);
78
+ if (update.compaction.report)
79
+ yield { type: "context.compacted", compaction: update.compaction.report };
80
+ yield { type: "state", phase: "compacting", detail: formatCompactionDetail(update.compaction) };
81
+ }
82
+ if (options.abortSignal?.aborted)
83
+ return "aborted_streaming";
57
84
  state = beginTurn(state);
58
85
  toolContext = {
59
86
  ...toolContext,
@@ -64,6 +91,9 @@ async function* queryLoop(initialState, dependencies, options) {
64
91
  mainLoopModel: state.currentModel ?? options.model,
65
92
  modelGateway: dependencies.modelGateway,
66
93
  reasoning: options.reasoning,
94
+ serviceTier: options.serviceTier,
95
+ contextWindowTokensOverride: options.contextWindowTokensOverride,
96
+ maxOutputTokensOverride: state.maxOutputTokensOverride ?? options.maxOutputTokensOverride,
67
97
  },
68
98
  };
69
99
  yield { type: "state", phase: state.phase, detail: `turn ${state.turnCount + 1} started (${state.transition.reason})` };