@opencode-ai/ai 0.0.0-dev-18215 → 0.0.0-dev-18218
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.
|
@@ -349,13 +349,22 @@ const lowerMessages = Effect.fn("OpenAIChat.lowerMessages")(function* (request,
|
|
|
349
349
|
]
|
|
350
350
|
: [{ role: "system", content: ProviderShared.joinText(request.system) }];
|
|
351
351
|
const messages = [...system];
|
|
352
|
+
const requireAssistantAfterTool = request.model.compatibility?.requireAssistantAfterTool ??
|
|
353
|
+
["mistral", "devstral", "codestral", "pixtral", "mixtral"].some((family) => request.model.id.toLowerCase().includes(family));
|
|
354
|
+
const bridgeTools = () => {
|
|
355
|
+
if (requireAssistantAfterTool && messages.at(-1)?.role === "tool")
|
|
356
|
+
messages.push({ role: "assistant", content: "Done." });
|
|
357
|
+
};
|
|
352
358
|
const pendingImages = [];
|
|
353
359
|
const flushImages = () => {
|
|
354
360
|
if (pendingImages.length === 0)
|
|
355
361
|
return;
|
|
362
|
+
bridgeTools();
|
|
356
363
|
messages.push({ role: "user", content: pendingImages.splice(0) });
|
|
357
364
|
};
|
|
358
365
|
for (const message of request.messages) {
|
|
366
|
+
if (message.role === "user")
|
|
367
|
+
bridgeTools();
|
|
359
368
|
if (message.role === "system") {
|
|
360
369
|
const part = yield* ProviderShared.wrappedSystemUpdate("OpenAI Chat", message);
|
|
361
370
|
if (pendingImages.length > 0) {
|
|
@@ -396,6 +405,8 @@ const lowerMessages = Effect.fn("OpenAIChat.lowerMessages")(function* (request,
|
|
|
396
405
|
: { role: "user", content: part.text });
|
|
397
406
|
continue;
|
|
398
407
|
}
|
|
408
|
+
if (message.role === "assistant" && message.content.every((part) => part.type === "text" && part.text.trim() === ""))
|
|
409
|
+
continue;
|
|
399
410
|
if (message.role === "tool") {
|
|
400
411
|
const lowered = yield* lowerToolMessages(message, options);
|
|
401
412
|
messages.push(...lowered.messages);
|
package/dist/schema/options.d.ts
CHANGED
|
@@ -74,6 +74,7 @@ declare const LanguageModelCompatibility_base: Schema.Class<LanguageModelCompati
|
|
|
74
74
|
readonly reasoningField: Schema.optional<Schema.String>;
|
|
75
75
|
readonly maxTokensField: Schema.optional<Schema.Literals<readonly ["max_completion_tokens", "max_tokens"]>>;
|
|
76
76
|
readonly requireFinishReason: Schema.optional<Schema.Boolean>;
|
|
77
|
+
readonly requireAssistantAfterTool: Schema.optional<Schema.Boolean>;
|
|
77
78
|
readonly supportsStore: Schema.optional<Schema.Boolean>;
|
|
78
79
|
readonly supportsUsageInStreaming: Schema.optional<Schema.Boolean>;
|
|
79
80
|
readonly supportsStrictMode: Schema.optional<Schema.Boolean>;
|
package/dist/schema/options.js
CHANGED
|
@@ -101,6 +101,7 @@ export class LanguageModelCompatibility extends Schema.Class("LLM.LanguageModelC
|
|
|
101
101
|
reasoningField: Schema.optional(Schema.String),
|
|
102
102
|
maxTokensField: Schema.optional(LanguageModelMaxTokensFieldCompatibility),
|
|
103
103
|
requireFinishReason: Schema.optional(Schema.Boolean),
|
|
104
|
+
requireAssistantAfterTool: Schema.optional(Schema.Boolean),
|
|
104
105
|
supportsStore: Schema.optional(Schema.Boolean),
|
|
105
106
|
supportsUsageInStreaming: Schema.optional(Schema.Boolean),
|
|
106
107
|
supportsStrictMode: Schema.optional(Schema.Boolean),
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://json.schemastore.org/package.json",
|
|
3
|
-
"version": "0.0.0-dev-
|
|
3
|
+
"version": "0.0.0-dev-18218",
|
|
4
4
|
"name": "@opencode-ai/ai",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "MIT",
|
|
@@ -30,7 +30,7 @@
|
|
|
30
30
|
"devDependencies": {
|
|
31
31
|
"@clack/prompts": "1.0.0-alpha.1",
|
|
32
32
|
"@effect/platform-node": "4.0.0-rc.111",
|
|
33
|
-
"@opencode-ai/http-recorder": "0.0.0-dev-
|
|
33
|
+
"@opencode-ai/http-recorder": "0.0.0-dev-18218",
|
|
34
34
|
"@tsconfig/bun": "1.0.9",
|
|
35
35
|
"@types/bun": "1.3.13",
|
|
36
36
|
"@typescript/native-preview": "7.0.0-dev.20251207.1",
|
|
@@ -39,7 +39,7 @@
|
|
|
39
39
|
"dependencies": {
|
|
40
40
|
"@smithy/eventstream-codec": "4.2.14",
|
|
41
41
|
"@smithy/util-utf8": "4.2.2",
|
|
42
|
-
"@opencode-ai/schema": "0.0.0-dev-
|
|
42
|
+
"@opencode-ai/schema": "0.0.0-dev-18218",
|
|
43
43
|
"aws4fetch": "1.0.20",
|
|
44
44
|
"effect": "4.0.0-rc.111",
|
|
45
45
|
"google-auth-library": "10.5.0"
|