mirror of
https://github.com/HeyPuter/puter.git
synced 2026-08-24 06:58:21 +00:00
Merge branch 'main' of https://github.com/HeyPuter/puter
This commit is contained in:
@@ -225,6 +225,21 @@ describe('AlibabaProvider.complete request shape', () => {
|
||||
expect(createMock.mock.calls[0]![0].max_tokens).toBe(256);
|
||||
});
|
||||
|
||||
it('forwards max_tokens 0 instead of substituting the default 1000', async () => {
|
||||
const { provider } = makeProvider();
|
||||
createMock.mockResolvedValueOnce(baseCompletion);
|
||||
|
||||
await withTestActor(() =>
|
||||
provider.complete({
|
||||
model: 'qwen-plus',
|
||||
messages: [{ role: 'user', content: 'hi' }],
|
||||
max_tokens: 0,
|
||||
}),
|
||||
);
|
||||
|
||||
expect(createMock.mock.calls[0]![0].max_tokens).toBe(0);
|
||||
});
|
||||
|
||||
it('forwards temperature when supplied', async () => {
|
||||
const { provider } = makeProvider();
|
||||
createMock.mockResolvedValueOnce(baseCompletion);
|
||||
|
||||
@@ -86,7 +86,7 @@ export class AlibabaProvider implements IChatProvider {
|
||||
messages,
|
||||
model: modelUsed.id,
|
||||
...(tools ? { tools } : {}),
|
||||
max_tokens: max_tokens || 1000,
|
||||
max_tokens: max_tokens ?? 1000,
|
||||
temperature,
|
||||
stream,
|
||||
...(stream
|
||||
|
||||
@@ -237,6 +237,22 @@ describe('ClaudeProvider.complete request shape', () => {
|
||||
});
|
||||
});
|
||||
|
||||
it('forwards max_tokens 0 instead of substituting the model default', async () => {
|
||||
const { provider } = makeProvider();
|
||||
messagesCreateMock.mockResolvedValueOnce(baseResponse);
|
||||
|
||||
await withTestActor(() =>
|
||||
provider.complete({
|
||||
model: 'claude-haiku-4-5-20251001',
|
||||
messages: [{ role: 'user', content: 'hello' }],
|
||||
max_tokens: 0,
|
||||
}),
|
||||
);
|
||||
|
||||
const [args] = messagesCreateMock.mock.calls[0]!;
|
||||
expect(args.max_tokens).toBe(0);
|
||||
});
|
||||
|
||||
it('extracts system messages and forwards them as the top-level `system` field', async () => {
|
||||
const { provider } = makeProvider();
|
||||
messagesCreateMock.mockResolvedValueOnce(baseResponse);
|
||||
|
||||
@@ -320,7 +320,7 @@ export class ClaudeProvider implements IChatProvider {
|
||||
} = {
|
||||
model: modelUsed.id,
|
||||
max_tokens: Math.floor(
|
||||
max_tokens ||
|
||||
max_tokens ??
|
||||
(model === 'claude-3-5-sonnet-20241022' ||
|
||||
model === 'claude-3-5-sonnet-20240620'
|
||||
? 8192
|
||||
|
||||
@@ -216,6 +216,21 @@ describe('DeepSeekProvider.complete request shape', () => {
|
||||
expect(createMock.mock.calls[0]![0].max_tokens).toBe(256);
|
||||
});
|
||||
|
||||
it('forwards max_tokens 0 instead of substituting the default 1000', async () => {
|
||||
const { provider } = makeProvider();
|
||||
createMock.mockResolvedValueOnce(baseCompletion);
|
||||
|
||||
await withTestActor(() =>
|
||||
provider.complete({
|
||||
model: 'deepseek-v4-flash',
|
||||
messages: [{ role: 'user', content: 'hi' }],
|
||||
max_tokens: 0,
|
||||
}),
|
||||
);
|
||||
|
||||
expect(createMock.mock.calls[0]![0].max_tokens).toBe(0);
|
||||
});
|
||||
|
||||
it('omits the `tools` key entirely when no tools are supplied', async () => {
|
||||
const { provider } = makeProvider();
|
||||
createMock.mockResolvedValueOnce(baseCompletion);
|
||||
|
||||
@@ -117,7 +117,7 @@ export class DeepSeekProvider implements IChatProvider {
|
||||
messages,
|
||||
model: modelUsed.id,
|
||||
...(tools ? { tools } : {}),
|
||||
max_tokens: max_tokens || 1000,
|
||||
max_tokens: max_tokens ?? 1000,
|
||||
temperature,
|
||||
stream,
|
||||
...(stream
|
||||
|
||||
Reference in New Issue
Block a user