@roj-ai/sdk 0.1.35 → 0.1.36

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 (61) hide show
  1. package/dist/core/agents/agent.d.ts.map +1 -1
  2. package/dist/core/agents/agent.js +7 -3
  3. package/dist/core/agents/agent.js.map +1 -1
  4. package/dist/core/agents/state.d.ts +24 -0
  5. package/dist/core/agents/state.d.ts.map +1 -1
  6. package/dist/core/agents/state.js.map +1 -1
  7. package/dist/core/context/state.d.ts.map +1 -1
  8. package/dist/core/context/state.js +4 -0
  9. package/dist/core/context/state.js.map +1 -1
  10. package/dist/core/llm/anthropic.d.ts.map +1 -1
  11. package/dist/core/llm/anthropic.js +49 -8
  12. package/dist/core/llm/anthropic.js.map +1 -1
  13. package/dist/core/llm/model-shortlist-live.test.d.ts +35 -0
  14. package/dist/core/llm/model-shortlist-live.test.d.ts.map +1 -0
  15. package/dist/core/llm/model-shortlist-live.test.js +452 -0
  16. package/dist/core/llm/model-shortlist-live.test.js.map +1 -0
  17. package/dist/core/llm/openrouter-mapping.test.js +18 -0
  18. package/dist/core/llm/openrouter-mapping.test.js.map +1 -1
  19. package/dist/core/llm/openrouter.d.ts.map +1 -1
  20. package/dist/core/llm/openrouter.js +20 -11
  21. package/dist/core/llm/openrouter.js.map +1 -1
  22. package/dist/core/llm/provider.d.ts +34 -3
  23. package/dist/core/llm/provider.d.ts.map +1 -1
  24. package/dist/core/llm/provider.js.map +1 -1
  25. package/dist/core/llm/reasoning-details.test.d.ts +2 -0
  26. package/dist/core/llm/reasoning-details.test.d.ts.map +1 -0
  27. package/dist/core/llm/reasoning-details.test.js +144 -0
  28. package/dist/core/llm/reasoning-details.test.js.map +1 -0
  29. package/dist/core/llm/state.d.ts +2 -0
  30. package/dist/core/llm/state.d.ts.map +1 -1
  31. package/dist/core/llm/state.js +11 -0
  32. package/dist/core/llm/state.js.map +1 -1
  33. package/dist/core/llm/thinking-blocks.test.d.ts +2 -0
  34. package/dist/core/llm/thinking-blocks.test.d.ts.map +1 -0
  35. package/dist/core/llm/thinking-blocks.test.js +291 -0
  36. package/dist/core/llm/thinking-blocks.test.js.map +1 -0
  37. package/dist/core/reasoning-round-trip.integration.test.d.ts +2 -0
  38. package/dist/core/reasoning-round-trip.integration.test.d.ts.map +1 -0
  39. package/dist/core/reasoning-round-trip.integration.test.js +150 -0
  40. package/dist/core/reasoning-round-trip.integration.test.js.map +1 -0
  41. package/dist/core/sessions/state.d.ts.map +1 -1
  42. package/dist/core/sessions/state.js +5 -0
  43. package/dist/core/sessions/state.js.map +1 -1
  44. package/dist/index.d.ts +1 -0
  45. package/dist/index.d.ts.map +1 -1
  46. package/dist/index.js.map +1 -1
  47. package/package.json +3 -3
  48. package/src/core/agents/agent.ts +9 -3
  49. package/src/core/agents/state.ts +26 -0
  50. package/src/core/context/state.ts +4 -0
  51. package/src/core/llm/anthropic.ts +71 -10
  52. package/src/core/llm/model-shortlist-live.test.ts +577 -0
  53. package/src/core/llm/openrouter-mapping.test.ts +24 -0
  54. package/src/core/llm/openrouter.ts +28 -12
  55. package/src/core/llm/provider.ts +44 -3
  56. package/src/core/llm/reasoning-details.test.ts +177 -0
  57. package/src/core/llm/state.ts +12 -0
  58. package/src/core/llm/thinking-blocks.test.ts +345 -0
  59. package/src/core/reasoning-round-trip.integration.test.ts +188 -0
  60. package/src/core/sessions/state.ts +5 -0
  61. package/src/index.ts +1 -0
@@ -0,0 +1,291 @@
1
+ import { describe, expect, test } from 'bun:test';
2
+ import { ToolCallId } from '../../core/tools/schema.js';
3
+ import { isOk } from '../../lib/utils/result.js';
4
+ import { AnthropicProvider } from './anthropic.js';
5
+ import { ModelId } from './schema.js';
6
+ // ============================================================================
7
+ // Extended thinking round trip
8
+ // ============================================================================
9
+ //
10
+ // Anthropic returns `thinking` blocks carrying a `signature` it verifies, and during
11
+ // tool use it requires the block sequence back on the assistant turn that made the
12
+ // tool call. So unlike OpenRouter — where dropping the blocks silently degrades the
13
+ // model — dropping them here is a hard API error the moment thinking is switched on.
14
+ //
15
+ // The blocks are opaque to the SDK. What these tests pin down is that they come back
16
+ // byte-identical and in the position the API expects, and that a response with no
17
+ // thinking produces exactly the request bytes it did before.
18
+ const testModel = ModelId('claude-sonnet-4-6');
19
+ /** Shape from the Anthropic docs. Signatures are truncated but structurally real. */
20
+ const THINKING_BLOCKS = [
21
+ {
22
+ type: 'thinking',
23
+ thinking: 'The user is asking about the weather. I should call the tool.',
24
+ signature: 'EqQBCgIYAhIM1gbcDa9GJwZA2b3hGgxBdjrkzLoky3dl1KkiMOYds',
25
+ },
26
+ {
27
+ type: 'redacted_thinking',
28
+ data: 'EmwKAhgBEgy3va3POvlKN51xeoMaDC3sTb2z0opaque',
29
+ },
30
+ ];
31
+ const createProvider = (fetchFn) => new AnthropicProvider({
32
+ apiKey: 'test-key',
33
+ imageProcessor: { resolveContent: async (content) => content },
34
+ defaultModel: String(testModel),
35
+ fetch: fetchFn,
36
+ });
37
+ const respondWith = (content) => async () => new Response(JSON.stringify({
38
+ id: 'msg_1',
39
+ model: String(testModel),
40
+ content,
41
+ stop_reason: 'end_turn',
42
+ usage: { input_tokens: 10, output_tokens: 5 },
43
+ }), { status: 200, headers: { 'content-type': 'application/json' } });
44
+ const inferenceRequest = () => ({
45
+ model: testModel,
46
+ systemPrompt: 'You are helpful.',
47
+ messages: [{ role: 'user', content: 'What is the weather?' }],
48
+ });
49
+ const rawRequest = (messages) => ({
50
+ model: testModel,
51
+ systemPrompt: 'You are helpful.',
52
+ messages,
53
+ });
54
+ /**
55
+ * The assistant message as it reaches the API, after mapping and merging.
56
+ *
57
+ * A trailing user turn is appended because the provider refuses a history that ends on an
58
+ * assistant message — the same reason the real loop always has something after it.
59
+ */
60
+ const assistantBlocks = async (...messages) => {
61
+ const http = await createProvider().buildHttpRequest(rawRequest([{ role: 'user', content: 'Hi' }, ...messages, { role: 'user', content: 'And?' }]));
62
+ const body = http.body;
63
+ if (typeof body !== 'object' || body === null || !('messages' in body) || !Array.isArray(body.messages)) {
64
+ throw new Error('unexpected request body');
65
+ }
66
+ const assistant = body.messages.find((m) => m.role === 'assistant');
67
+ if (!assistant || !Array.isArray(assistant.content))
68
+ throw new Error('no assistant message with block content');
69
+ return assistant.content;
70
+ };
71
+ describe('Anthropic thinking capture', () => {
72
+ test('captures the blocks whole, signatures included, alongside the plaintext', async () => {
73
+ const provider = createProvider(respondWith([...THINKING_BLOCKS, { type: 'text', text: 'Sunny.' }]));
74
+ const result = await provider.inference(inferenceRequest());
75
+ expect(isOk(result)).toBe(true);
76
+ if (!isOk(result))
77
+ return;
78
+ // Verbatim: the signature is what the API verifies on replay, so nothing may be rebuilt.
79
+ expect(result.value.thinkingBlocks).toEqual(THINKING_BLOCKS);
80
+ expect(result.value.reasoning).toBe('The user is asking about the weather. I should call the tool.');
81
+ expect(result.value.content).toBe('Sunny.');
82
+ });
83
+ test('leaves both fields unset when thinking is off', async () => {
84
+ const provider = createProvider(respondWith([{ type: 'text', text: 'Sunny.' }]));
85
+ const result = await provider.inference(inferenceRequest());
86
+ if (!isOk(result))
87
+ throw new Error(`inference failed: ${result.error.type} — ${result.error.message}`);
88
+ expect(result.value.thinkingBlocks).toBeUndefined();
89
+ expect(result.value.reasoning).toBeUndefined();
90
+ });
91
+ // redacted_thinking has no readable text, but the API still wants it back in sequence.
92
+ test('keeps a redacted block even though it contributes no plaintext', async () => {
93
+ const redacted = [{ type: 'redacted_thinking', data: 'EmwKAhgBEgy3opaque' }];
94
+ const provider = createProvider(respondWith([...redacted, { type: 'text', text: 'Done.' }]));
95
+ const result = await provider.inference(inferenceRequest());
96
+ expect(isOk(result)).toBe(true);
97
+ if (!isOk(result))
98
+ return;
99
+ expect(result.value.thinkingBlocks).toEqual(redacted);
100
+ expect(result.value.reasoning).toBeUndefined();
101
+ });
102
+ });
103
+ describe('Anthropic thinking echo', () => {
104
+ test('replays the blocks first, ahead of text and tool calls', async () => {
105
+ const blocks = await assistantBlocks({
106
+ role: 'assistant',
107
+ content: 'Let me check.',
108
+ thinkingBlocks: THINKING_BLOCKS,
109
+ toolCalls: [{ id: ToolCallId('toolu_1'), name: 'get_weather', input: { city: 'Prague' } }],
110
+ }, { role: 'tool', toolCallId: ToolCallId('toolu_1'), content: 'Sunny, 22°C' });
111
+ // Order is the API's requirement, not a preference.
112
+ expect(blocks).toEqual([
113
+ ...THINKING_BLOCKS,
114
+ { type: 'text', text: 'Let me check.' },
115
+ { type: 'tool_use', id: 'toolu_1', name: 'get_weather', input: { city: 'Prague' } },
116
+ ]);
117
+ });
118
+ test('replays them on an assistant message that made no tool call', async () => {
119
+ const blocks = await assistantBlocks({ role: 'assistant', content: 'Sunny.', thinkingBlocks: THINKING_BLOCKS });
120
+ expect(blocks).toEqual([...THINKING_BLOCKS, { type: 'text', text: 'Sunny.' }]);
121
+ });
122
+ // All or nothing: the API rejects an edited or partial sequence, so a set that cannot be
123
+ // recognised in full is dropped in full rather than sent truncated. Reachable if a session
124
+ // switches provider mid-conversation and foreign blocks reach this field.
125
+ test('drops the whole set when any block is unrecognisable', async () => {
126
+ const blocks = await assistantBlocks({
127
+ role: 'assistant',
128
+ content: 'Sunny.',
129
+ thinkingBlocks: [THINKING_BLOCKS[0], { type: 'reasoning.summary', summary: 'from another provider' }],
130
+ });
131
+ expect(blocks).toEqual([{ type: 'text', text: 'Sunny.' }]);
132
+ });
133
+ test('drops a thinking block whose signature is missing', async () => {
134
+ const blocks = await assistantBlocks({
135
+ role: 'assistant',
136
+ content: 'Sunny.',
137
+ thinkingBlocks: [{ type: 'thinking', thinking: 'no signature here' }],
138
+ });
139
+ expect(blocks).toEqual([{ type: 'text', text: 'Sunny.' }]);
140
+ });
141
+ });
142
+ describe('Anthropic request bytes without thinking', () => {
143
+ // The prompt cache is keyed on the serialized prefix, so a message with no thinking has to
144
+ // serialize exactly as it did before this feature existed.
145
+ test('adds nothing to a plain assistant message', async () => {
146
+ const http = await createProvider().buildHttpRequest(rawRequest([
147
+ { role: 'user', content: 'What is 2+2?' },
148
+ { role: 'assistant', content: '4' },
149
+ { role: 'user', content: 'And 3+3?' },
150
+ ]));
151
+ expect(JSON.stringify(http.body)).not.toContain('thinking');
152
+ });
153
+ test('adds nothing to an assistant message with tool calls', async () => {
154
+ const http = await createProvider().buildHttpRequest(rawRequest([
155
+ { role: 'user', content: 'Weather?' },
156
+ {
157
+ role: 'assistant',
158
+ content: '',
159
+ toolCalls: [{ id: ToolCallId('toolu_1'), name: 'get_weather', input: { city: 'Prague' } }],
160
+ },
161
+ { role: 'tool', toolCallId: ToolCallId('toolu_1'), content: 'Sunny, 22°C' },
162
+ ]));
163
+ expect(JSON.stringify(http.body)).not.toContain('thinking');
164
+ });
165
+ });
166
+ describe('Anthropic cache breakpoints around thinking', () => {
167
+ // cache_control on a replayed thinking block is an extra key on a signed payload — rejected.
168
+ // The breakpoint moves to the last block that can hold one.
169
+ test('puts the breakpoint on the text block, not the thinking block', async () => {
170
+ const blocks = await assistantBlocks({
171
+ role: 'assistant',
172
+ content: 'Sunny.',
173
+ thinkingBlocks: THINKING_BLOCKS,
174
+ cacheControl: { type: 'ephemeral' },
175
+ });
176
+ expect(blocks).toEqual([
177
+ ...THINKING_BLOCKS,
178
+ { type: 'text', text: 'Sunny.', cache_control: { type: 'ephemeral' } },
179
+ ]);
180
+ });
181
+ // Nothing in the message can carry it. Losing a breakpoint is a cache miss; sending an
182
+ // invalid one is a failed request.
183
+ test('places no breakpoint when the message is nothing but thinking', async () => {
184
+ const blocks = await assistantBlocks({
185
+ role: 'assistant',
186
+ content: '',
187
+ thinkingBlocks: THINKING_BLOCKS,
188
+ cacheControl: { type: 'ephemeral' },
189
+ });
190
+ expect(blocks).toEqual(THINKING_BLOCKS);
191
+ });
192
+ });
193
+ // ============================================================================
194
+ // Live verification
195
+ // ============================================================================
196
+ //
197
+ // Everything above runs against a mocked fetch, which proves the shape the SDK builds
198
+ // and nothing about whether Anthropic accepts it. This drives the real API through a
199
+ // full tool-use cycle with extended thinking on — the exact flow that returns a 400
200
+ // when the thinking blocks are missing from the assistant turn.
201
+ //
202
+ // LIVE_TESTS=1 ANTHROPIC_API_KEY=… bun test thinking-blocks
203
+ const liveEnabled = process.env.LIVE_TESTS === '1';
204
+ const liveApiKey = liveEnabled ? process.env.ANTHROPIC_API_KEY : undefined;
205
+ const describeLive = (name, fn) => {
206
+ if (!liveApiKey) {
207
+ describe.skip(`${name} (skipped — LIVE_TESTS=1 + ANTHROPIC_API_KEY required)`, fn);
208
+ return;
209
+ }
210
+ describe(name, fn);
211
+ };
212
+ /** Records every outbound body so the echo can be proven on the wire, not inferred. */
213
+ const createRecordingFetch = (sink) => async (input, init) => {
214
+ sink.push(JSON.parse(typeof init?.body === 'string' ? init.body : '{}'));
215
+ return globalThis.fetch(input, init);
216
+ };
217
+ const liveModel = ModelId('claude-sonnet-4-6');
218
+ const weatherTool = {
219
+ name: 'get_weather',
220
+ description: 'Get the current weather for a city.',
221
+ parameters: { type: 'object', properties: { city: { type: 'string' } }, required: ['city'] },
222
+ };
223
+ describeLive('Anthropic extended thinking, live', () => {
224
+ test('a tool-use turn survives the round trip with thinking enabled', async () => {
225
+ const sent = [];
226
+ const provider = new AnthropicProvider({
227
+ apiKey: liveApiKey ?? '',
228
+ imageProcessor: { resolveContent: async (content) => content },
229
+ defaultModel: String(liveModel),
230
+ // Anthropic's floor. Enough to make the model actually think.
231
+ thinkingBudget: 1024,
232
+ fetch: createRecordingFetch(sent),
233
+ });
234
+ const first = await provider.inference({
235
+ model: liveModel,
236
+ systemPrompt: 'You answer weather questions. Always use the tool; never guess.',
237
+ messages: [{ role: 'user', content: 'What is the weather in Prague right now?' }],
238
+ maxTokens: 2048,
239
+ tools: [],
240
+ anthropic: { thinkingBudget: 1024 },
241
+ }, undefined);
242
+ if (!isOk(first))
243
+ throw new Error(`first inference failed: ${first.error.type} — ${first.error.message}`);
244
+ // Thinking has to be on for this test to mean anything.
245
+ expect(first.value.thinkingBlocks?.length).toBeGreaterThan(0);
246
+ // Replay the captured blocks on the assistant turn, exactly as the agent loop would.
247
+ const second = await provider.inference({
248
+ model: liveModel,
249
+ systemPrompt: 'You answer weather questions. Always use the tool; never guess.',
250
+ messages: [
251
+ { role: 'user', content: 'What is the weather in Prague right now?' },
252
+ {
253
+ role: 'assistant',
254
+ content: first.value.content ?? '',
255
+ thinkingBlocks: first.value.thinkingBlocks,
256
+ },
257
+ { role: 'user', content: 'Thanks. Reply with the single word OK.' },
258
+ ],
259
+ maxTokens: 2048,
260
+ anthropic: { thinkingBudget: 1024 },
261
+ }, undefined);
262
+ // The assertion that matters: the API accepted the replayed, signed blocks.
263
+ if (!isOk(second))
264
+ throw new Error(`replay rejected: ${second.error.type} — ${second.error.message}`);
265
+ // Proven on the wire: the blocks in the second outbound body are byte-identical to
266
+ // the ones the API returned on the first call.
267
+ const secondBody = JSON.stringify(sent[1]);
268
+ expect(secondBody).toContain(JSON.stringify(first.value.thinkingBlocks?.[0]));
269
+ console.log(`LIVE OK ${JSON.stringify({ blocks: first.value.thinkingBlocks?.length, reply: second.value.content })}`);
270
+ }, 120_000);
271
+ test('no thinking key on the wire when thinking is off', async () => {
272
+ const sent = [];
273
+ const provider = new AnthropicProvider({
274
+ apiKey: liveApiKey ?? '',
275
+ imageProcessor: { resolveContent: async (content) => content },
276
+ defaultModel: String(liveModel),
277
+ fetch: createRecordingFetch(sent),
278
+ });
279
+ const result = await provider.inference({
280
+ model: liveModel,
281
+ systemPrompt: 'Answer in one word.',
282
+ messages: [{ role: 'user', content: 'What is 2+2?' }],
283
+ maxTokens: 64,
284
+ }, undefined);
285
+ if (!isOk(result))
286
+ throw new Error(`inference failed: ${result.error.type} — ${result.error.message}`);
287
+ expect(result.value.thinkingBlocks).toBeUndefined();
288
+ expect(JSON.stringify(sent[0])).not.toContain('thinking');
289
+ }, 120_000);
290
+ });
291
+ //# sourceMappingURL=thinking-blocks.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"thinking-blocks.test.js","sourceRoot":"","sources":["../../../src/core/llm/thinking-blocks.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=reasoning-round-trip.integration.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reasoning-round-trip.integration.test.d.ts","sourceRoot":"","sources":["../../src/core/reasoning-round-trip.integration.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,150 @@
1
+ import { describe, expect, it } from 'bun:test';
2
+ import { MemoryEventStore } from '../core/events/memory.js';
3
+ import { MockLLMProvider } from '../core/llm/mock.js';
4
+ import { llmEvents } from '../core/llm/state.js';
5
+ import { ToolCallId } from '../core/tools/schema.js';
6
+ import { createTestPreset, TestHarness } from '../testing/index.js';
7
+ // Reasoning blocks have to survive the whole conversation path — the event log,
8
+ // a replay of it, and the message list handed to the next inference — or a
9
+ // reasoning model restarts its chain of thought at every tool call.
10
+ const REASONING_DETAILS = [
11
+ { type: 'reasoning.encrypted', data: 'EroBCkYIBRgCKkCr0hZ0opaque', id: 'rd-1', format: 'openai-responses-v1', index: 0 },
12
+ ];
13
+ /** The Anthropic half of the same contract — a separate field, see ThinkingBlocks. */
14
+ const THINKING_BLOCKS = [
15
+ { type: 'thinking', thinking: 'Working it out.', signature: 'EqQBCgIYAhIM1gbcDa9GJwZopaque' },
16
+ ];
17
+ const assistantMessages = (request) => request.messages.filter((m) => m.role === 'assistant');
18
+ /** Same shape as reasoningThenPlainMock, on the Anthropic field. */
19
+ const thinkingThenPlainMock = () => {
20
+ let call = 0;
21
+ return new MockLLMProvider(() => {
22
+ call++;
23
+ if (call === 1) {
24
+ return {
25
+ content: null,
26
+ toolCalls: [{ id: ToolCallId('tc1'), name: 'tell_user', input: { message: 'Hi!' } }],
27
+ finishReason: 'tool_calls',
28
+ metrics: MockLLMProvider.defaultMetrics(),
29
+ thinkingBlocks: THINKING_BLOCKS,
30
+ };
31
+ }
32
+ return { content: 'Done', toolCalls: [], finishReason: 'stop', metrics: MockLLMProvider.defaultMetrics() };
33
+ });
34
+ };
35
+ /** Turn 1 reasons its way to a tool call; every later turn just finishes, without reasoning. */
36
+ const reasoningThenPlainMock = () => {
37
+ let call = 0;
38
+ return new MockLLMProvider(() => {
39
+ call++;
40
+ if (call === 1) {
41
+ return {
42
+ content: null,
43
+ toolCalls: [{ id: ToolCallId('tc1'), name: 'tell_user', input: { message: 'Hi!' } }],
44
+ finishReason: 'tool_calls',
45
+ metrics: MockLLMProvider.defaultMetrics(),
46
+ reasoningDetails: REASONING_DETAILS,
47
+ };
48
+ }
49
+ return { content: 'Done', toolCalls: [], finishReason: 'stop', metrics: MockLLMProvider.defaultMetrics() };
50
+ });
51
+ };
52
+ describe('reasoning round trip', () => {
53
+ it('echoes the blocks back on the follow-up request of the same turn', async () => {
54
+ const llmProvider = reasoningThenPlainMock();
55
+ const harness = new TestHarness({ presets: [createTestPreset()], llmProvider });
56
+ const session = await harness.createSession('test');
57
+ await session.sendAndWaitForIdle('Do something');
58
+ const [, second] = llmProvider.getCallHistory();
59
+ const assistants = assistantMessages(second);
60
+ expect(assistants).toHaveLength(1);
61
+ expect(assistants[0].reasoningDetails).toEqual(REASONING_DETAILS);
62
+ await harness.shutdown();
63
+ });
64
+ it('stores the blocks in the inference_completed event, serialized verbatim', async () => {
65
+ const llmProvider = reasoningThenPlainMock();
66
+ const harness = new TestHarness({ presets: [createTestPreset()], llmProvider });
67
+ const session = await harness.createSession('test');
68
+ await session.sendAndWaitForIdle('Do something');
69
+ const completed = await session.getEventsByType(llmEvents, 'inference_completed');
70
+ expect(completed[0].response.reasoningDetails).toEqual(REASONING_DETAILS);
71
+ // The event is what a restarted server replays, so it has to survive JSON as-is.
72
+ expect(JSON.stringify(completed[0])).toContain(`"reasoningDetails":${JSON.stringify(REASONING_DETAILS)}`);
73
+ expect(completed[1].response.reasoningDetails).toBeUndefined();
74
+ await harness.shutdown();
75
+ });
76
+ it('keeps the blocks after the session is reloaded from the event store', async () => {
77
+ const eventStore = new MemoryEventStore();
78
+ const llmProvider = reasoningThenPlainMock();
79
+ const harness1 = new TestHarness({ eventStore, presets: [createTestPreset()], llmProvider });
80
+ const session1 = await harness1.createSession('test');
81
+ await session1.sendAndWaitForIdle('Do something');
82
+ const sessionId = session1.sessionId;
83
+ await harness1.shutdown();
84
+ // Fresh harness over the same log: conversation history comes from replay only.
85
+ const harness2 = new TestHarness({ eventStore, presets: [createTestPreset()], llmProvider });
86
+ const session2 = await harness2.openSession(sessionId);
87
+ await session2.sendAndWaitForIdle('And again');
88
+ const assistants = assistantMessages(llmProvider.getCallHistory()[2]);
89
+ expect(assistants[0].reasoningDetails).toEqual(REASONING_DETAILS);
90
+ await harness2.shutdown();
91
+ });
92
+ it('leaves the assistant message untouched when the model returns no reasoning', async () => {
93
+ const llmProvider = MockLLMProvider.withSequence([
94
+ { toolCalls: [{ id: ToolCallId('tc1'), name: 'tell_user', input: { message: 'Hi!' } }] },
95
+ { content: 'Done', toolCalls: [] },
96
+ ]);
97
+ const harness = new TestHarness({ presets: [createTestPreset()], llmProvider });
98
+ const session = await harness.createSession('test');
99
+ await session.sendAndWaitForIdle('Do something');
100
+ const assistants = assistantMessages(llmProvider.getCallHistory()[1]);
101
+ expect(assistants).toHaveLength(1);
102
+ expect(assistants[0].reasoningDetails).toBeUndefined();
103
+ await harness.shutdown();
104
+ });
105
+ });
106
+ // Anthropic needs this harder than OpenRouter does: with extended thinking on, the API
107
+ // rejects a tool-use turn whose thinking blocks are missing, rather than quietly
108
+ // degrading. The two fields stay separate so a mid-conversation model switch cannot put
109
+ // one provider's blocks in front of the other.
110
+ describe('thinking round trip', () => {
111
+ it('echoes the blocks back on the follow-up request of the same turn', async () => {
112
+ const llmProvider = thinkingThenPlainMock();
113
+ const harness = new TestHarness({ presets: [createTestPreset()], llmProvider });
114
+ const session = await harness.createSession('test');
115
+ await session.sendAndWaitForIdle('Do something');
116
+ const [, second] = llmProvider.getCallHistory();
117
+ const assistants = assistantMessages(second);
118
+ expect(assistants).toHaveLength(1);
119
+ expect(assistants[0].thinkingBlocks).toEqual(THINKING_BLOCKS);
120
+ // The other field stays empty: nothing cross-populates.
121
+ expect(assistants[0].reasoningDetails).toBeUndefined();
122
+ await harness.shutdown();
123
+ });
124
+ it('keeps the blocks after the session is reloaded from the event store', async () => {
125
+ const eventStore = new MemoryEventStore();
126
+ const llmProvider = thinkingThenPlainMock();
127
+ const harness1 = new TestHarness({ eventStore, presets: [createTestPreset()], llmProvider });
128
+ const session1 = await harness1.createSession('test');
129
+ await session1.sendAndWaitForIdle('Do something');
130
+ const sessionId = session1.sessionId;
131
+ await harness1.shutdown();
132
+ const harness2 = new TestHarness({ eventStore, presets: [createTestPreset()], llmProvider });
133
+ const session2 = await harness2.openSession(sessionId);
134
+ await session2.sendAndWaitForIdle('And again');
135
+ const assistants = assistantMessages(llmProvider.getCallHistory()[2]);
136
+ expect(assistants[0].thinkingBlocks).toEqual(THINKING_BLOCKS);
137
+ await harness2.shutdown();
138
+ });
139
+ it('stores the blocks in the inference_completed event, serialized verbatim', async () => {
140
+ const llmProvider = thinkingThenPlainMock();
141
+ const harness = new TestHarness({ presets: [createTestPreset()], llmProvider });
142
+ const session = await harness.createSession('test');
143
+ await session.sendAndWaitForIdle('Do something');
144
+ const completed = await session.getEventsByType(llmEvents, 'inference_completed');
145
+ expect(JSON.stringify(completed[0])).toContain(`"thinkingBlocks":${JSON.stringify(THINKING_BLOCKS)}`);
146
+ expect(completed[1].response.thinkingBlocks).toBeUndefined();
147
+ await harness.shutdown();
148
+ });
149
+ });
150
+ //# sourceMappingURL=reasoning-round-trip.integration.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reasoning-round-trip.integration.test.js","sourceRoot":"","sources":["../../src/core/reasoning-round-trip.integration.test.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../../../src/core/sessions/state.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../../../src/core/sessions/state.ts"],"names":[],"mappings":"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"}
@@ -146,6 +146,8 @@ export const coreReducer = createTypedReducer([sessionEvents, agentEvents, toolE
146
146
  role: 'assistant',
147
147
  content: event.response.content ?? '',
148
148
  toolCalls: toolCalls.length > 0 ? toolCalls : undefined,
149
+ reasoningDetails: event.response.reasoningDetails,
150
+ thinkingBlocks: event.response.thinkingBlocks,
149
151
  };
150
152
  return updateAgent(state, event.agentId, (agent) => {
151
153
  const hasToolCalls = toolCalls.length > 0;
@@ -249,6 +251,9 @@ export const coreReducer = createTypedReducer([sessionEvents, agentEvents, toolE
249
251
  role: 'assistant',
250
252
  content: m.content,
251
253
  toolCalls: m.toolCalls,
254
+ // Survives compaction: a retained turn keeps the reasoning the provider wants echoed back.
255
+ reasoningDetails: m.reasoningDetails,
256
+ thinkingBlocks: m.thinkingBlocks,
252
257
  cacheControl: m.cacheControl,
253
258
  };
254
259
  case 'tool':
@@ -1 +1 @@
1
- {"version":3,"file":"state.js","sourceRoot":"","sources":["../../../src/core/sessions/state.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"state.js","sourceRoot":"","sources":["../../../src/core/sessions/state.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -40,6 +40,7 @@ export type { ChatMessageContentItem, LLMCallLogEntry, LLMCallMessage, ToolResul
40
40
  export { contentToString } from './core/llm/llm-log-types.js';
41
41
  export { applyMiddleware, useProvider, withAnthropic, withMaxTokens, withOpenRouter, withTemperature } from './core/llm/middleware.js';
42
42
  export type { InferenceNext, LLMMiddleware } from './core/llm/middleware.js';
43
+ export type { OpenRouterProviderRouting, OpenRouterReasoningOptions, OpenRouterRequestOptions } from './core/llm/provider.js';
43
44
  export { ModelId } from './core/llm/schema.js';
44
45
  export type { LLMCallId } from './core/llm/schema.js';
45
46
  export type { InferenceCompletedEvent, InferenceFailedEvent, InferenceStartedEvent } from './core/llm/state.js';