confluence_web/agent/tests/sdk.test.ts
Artur Mukhamadiev 38a8ca67f7 agent: pi runtime track handoff (contract revision 1)
Pinned pi SDK 0.85.1 bridge, Python supervisor, artifact exporter,
scripted backend peer, image checks and boundary checks under agent/**.
Review findings F1-F3 are recorded in docs/implementation/PI_AGENT_REVIEW.md.
2026-09-14 21:57:54 +03:00

17 lines
1.2 KiB
TypeScript

import test from 'node:test';
import assert from 'node:assert/strict';
import { contextToModelRequest, modelResponseToAssistantMessage, createModelProvider } from '../model-provider.js';
const descriptor = { id: 'scripted', context_window_tokens: 1000, max_output_tokens: 100 };
test('usage, stop reasons and opaque continuation survive SDK translation', () => {
const { model } = createModelProvider(descriptor, async () => { throw Error(); });
for (const reason of ['stop', 'tool_calls', 'length'] as const) {
const response = { content: [{ type: 'text' as const, text: 'hi' }, { type: 'tool_call' as const, id: 'sdk_1', name: 'read', arguments: { path: '/work/x' } }], stop_reason: reason, usage: { input_tokens: 7, output_tokens: 3 }, provider_state: '' };
const message = modelResponseToAssistantMessage(response, model);
assert.equal(message.usage.totalTokens, 10);
assert.equal(message.stopReason, reason === 'tool_calls' ? 'toolUse' : reason);
const request = contextToModelRequest({ systemPrompt: 'TRUSTED', messages: [message] });
assert.deepEqual(request.messages[0], { role: 'assistant', content: response.content, provider_state: '' });
assert(!JSON.stringify(request).includes('TRUSTED'));
}
});