@haisto/opencode-mem 2.14.3-beta.5 → 2.14.3-beta.6
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.
- package/dist/services/ai/providers/google-gemini.d.ts.map +1 -1
- package/dist/services/ai/providers/google-gemini.js +11 -2
- package/dist/services/ai/providers/openai-chat-completion.d.ts.map +1 -1
- package/dist/services/ai/providers/openai-chat-completion.js +12 -7
- package/dist/services/ai/providers/openai-responses.d.ts.map +1 -1
- package/dist/services/ai/providers/openai-responses.js +9 -0
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"google-gemini.d.ts","sourceRoot":"","sources":["../../../../src/services/ai/providers/google-gemini.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,KAAK,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACzE,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AACpE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAIlE;;;GAGG;AACH,qBAAa,oBAAqB,SAAQ,cAAc;IACtD,OAAO,CAAC,gBAAgB,CAAmB;gBAE/B,MAAM,EAAE,GAAG,EAAE,gBAAgB,EAAE,gBAAgB;IAK3D,eAAe,IAAI,MAAM;IAIzB,eAAe,IAAI,OAAO;IAI1B,OAAO,CAAC,eAAe;IA4BjB,eAAe,CACnB,YAAY,EAAE,MAAM,EACpB,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,kBAAkB,EAC9B,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"google-gemini.d.ts","sourceRoot":"","sources":["../../../../src/services/ai/providers/google-gemini.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,KAAK,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACzE,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AACpE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAIlE;;;GAGG;AACH,qBAAa,oBAAqB,SAAQ,cAAc;IACtD,OAAO,CAAC,gBAAgB,CAAmB;gBAE/B,MAAM,EAAE,GAAG,EAAE,gBAAgB,EAAE,gBAAgB;IAK3D,eAAe,IAAI,MAAM;IAIzB,eAAe,IAAI,OAAO;IAI1B,OAAO,CAAC,eAAe;IA4BjB,eAAe,CACnB,YAAY,EAAE,MAAM,EACpB,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,kBAAkB,EAC9B,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,cAAc,CAAC;CAiO3B"}
|
|
@@ -193,6 +193,15 @@ export class GoogleGeminiProvider extends BaseAIProvider {
|
|
|
193
193
|
if (toolCall.function.name === toolSchema.function.name) {
|
|
194
194
|
try {
|
|
195
195
|
const parsed = JSON.parse(toolCall.function.arguments);
|
|
196
|
+
// Recover when the model double-encodes arrays as JSON strings
|
|
197
|
+
for (const key of ["preferences", "patterns", "workflows"]) {
|
|
198
|
+
if (typeof parsed[key] === "string") {
|
|
199
|
+
try {
|
|
200
|
+
parsed[key] = JSON.parse(parsed[key]);
|
|
201
|
+
}
|
|
202
|
+
catch { /* keep as-is */ }
|
|
203
|
+
}
|
|
204
|
+
}
|
|
196
205
|
const result = UserProfileValidator.validate(parsed);
|
|
197
206
|
if (!result.valid)
|
|
198
207
|
throw new Error(result.errors.join(", "));
|
|
@@ -202,13 +211,13 @@ export class GoogleGeminiProvider extends BaseAIProvider {
|
|
|
202
211
|
catch (validationError) {
|
|
203
212
|
const errorMessage = `Validation failed: ${String(validationError)}`;
|
|
204
213
|
this.addToolResponse(session.id, contents, toolCall.id, JSON.stringify({ success: false, error: errorMessage }));
|
|
205
|
-
|
|
214
|
+
break;
|
|
206
215
|
}
|
|
207
216
|
}
|
|
208
217
|
}
|
|
209
218
|
}
|
|
210
219
|
// Retry if no tool call was made
|
|
211
|
-
const retryPrompt =
|
|
220
|
+
const retryPrompt = `Please use the ${toolSchema.function.name} tool as instructed.`;
|
|
212
221
|
const retrySequence = this.aiSessionManager.getLastSequence(session.id) + 1;
|
|
213
222
|
this.aiSessionManager.addMessage({
|
|
214
223
|
aiSessionId: session.id,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"openai-chat-completion.d.ts","sourceRoot":"","sources":["../../../../src/services/ai/providers/openai-chat-completion.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EACd,KAAK,cAAc,EACnB,KAAK,cAAc,EAEpB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AACzE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAgElE,qBAAa,4BAA6B,SAAQ,cAAc;IAC9D,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAmB;gBAExC,MAAM,EAAE,cAAc,EAAE,gBAAgB,EAAE,gBAAgB;IAKtE,eAAe,IAAI,MAAM;IAIzB,eAAe,IAAI,OAAO;IAI1B,OAAO,CAAC,eAAe;IAqBvB,SAAS,CAAC,iCAAiC,CAAC,QAAQ,EAAE,SAAS,EAAE,GAAG,SAAS,EAAE;IAwCzE,eAAe,CACnB,YAAY,EAAE,MAAM,EACpB,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,kBAAkB,EAC9B,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"openai-chat-completion.d.ts","sourceRoot":"","sources":["../../../../src/services/ai/providers/openai-chat-completion.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EACd,KAAK,cAAc,EACnB,KAAK,cAAc,EAEpB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AACzE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAgElE,qBAAa,4BAA6B,SAAQ,cAAc;IAC9D,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAmB;gBAExC,MAAM,EAAE,cAAc,EAAE,gBAAgB,EAAE,gBAAgB;IAKtE,eAAe,IAAI,MAAM;IAIzB,eAAe,IAAI,OAAO;IAI1B,OAAO,CAAC,eAAe;IAqBvB,SAAS,CAAC,iCAAiC,CAAC,QAAQ,EAAE,SAAS,EAAE,GAAG,SAAS,EAAE;IAwCzE,eAAe,CACnB,YAAY,EAAE,MAAM,EACpB,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,kBAAkB,EAC9B,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,cAAc,CAAC;CAoS3B"}
|
|
@@ -245,7 +245,16 @@ export class OpenAIChatCompletionProvider extends BaseAIProvider {
|
|
|
245
245
|
const toolCallId = toolCall.id;
|
|
246
246
|
if (toolCall.function.name === toolSchema.function.name) {
|
|
247
247
|
try {
|
|
248
|
-
|
|
248
|
+
let parsed = JSON.parse(toolCall.function.arguments);
|
|
249
|
+
// Recover when the model double-encodes arrays as JSON strings
|
|
250
|
+
for (const key of ["preferences", "patterns", "workflows"]) {
|
|
251
|
+
if (typeof parsed[key] === "string") {
|
|
252
|
+
try {
|
|
253
|
+
parsed[key] = JSON.parse(parsed[key]);
|
|
254
|
+
}
|
|
255
|
+
catch { /* keep as-is */ }
|
|
256
|
+
}
|
|
257
|
+
}
|
|
249
258
|
const result = UserProfileValidator.validate(parsed);
|
|
250
259
|
if (!result.valid) {
|
|
251
260
|
throw new Error(result.errors.join(", "));
|
|
@@ -271,11 +280,7 @@ export class OpenAIChatCompletionProvider extends BaseAIProvider {
|
|
|
271
280
|
});
|
|
272
281
|
const errorMessage = `Validation failed: ${String(validationError)}`;
|
|
273
282
|
this.addToolResponse(session.id, messages, toolCallId, JSON.stringify({ success: false, error: errorMessage }));
|
|
274
|
-
|
|
275
|
-
success: false,
|
|
276
|
-
error: errorMessage,
|
|
277
|
-
iterations,
|
|
278
|
-
};
|
|
283
|
+
break;
|
|
279
284
|
}
|
|
280
285
|
}
|
|
281
286
|
const wrongToolMessage = `Wrong tool called. Please use ${toolSchema.function.name} instead.`;
|
|
@@ -284,7 +289,7 @@ export class OpenAIChatCompletionProvider extends BaseAIProvider {
|
|
|
284
289
|
}
|
|
285
290
|
}
|
|
286
291
|
const retrySequence = this.aiSessionManager.getLastSequence(session.id) + 1;
|
|
287
|
-
const retryPrompt =
|
|
292
|
+
const retryPrompt = `Please use the ${toolSchema.function.name} tool as instructed.`;
|
|
288
293
|
this.aiSessionManager.addMessage({
|
|
289
294
|
aiSessionId: session.id,
|
|
290
295
|
sequence: retrySequence,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"openai-responses.d.ts","sourceRoot":"","sources":["../../../../src/services/ai/providers/openai-responses.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,KAAK,cAAc,EAAwB,MAAM,oBAAoB,CAAC;AAC/F,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AACpE,OAAO,EAAuB,KAAK,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAsBvF,qBAAa,uBAAwB,SAAQ,cAAc;IACzD,OAAO,CAAC,gBAAgB,CAAmB;gBAE/B,MAAM,EAAE,GAAG,EAAE,gBAAgB,EAAE,gBAAgB;IAK3D,eAAe,IAAI,MAAM;IAIzB,eAAe,IAAI,OAAO;IAIpB,eAAe,CACnB,YAAY,EAAE,MAAM,EACpB,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,kBAAkB,EAC9B,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,cAAc,CAAC;IA0H1B,OAAO,CAAC,eAAe;
|
|
1
|
+
{"version":3,"file":"openai-responses.d.ts","sourceRoot":"","sources":["../../../../src/services/ai/providers/openai-responses.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,KAAK,cAAc,EAAwB,MAAM,oBAAoB,CAAC;AAC/F,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AACpE,OAAO,EAAuB,KAAK,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAsBvF,qBAAa,uBAAwB,SAAQ,cAAc;IACzD,OAAO,CAAC,gBAAgB,CAAmB;gBAE/B,MAAM,EAAE,GAAG,EAAE,gBAAgB,EAAE,gBAAgB;IAK3D,eAAe,IAAI,MAAM;IAIzB,eAAe,IAAI,OAAO;IAIpB,eAAe,CACnB,YAAY,EAAE,MAAM,EACpB,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,kBAAkB,EAC9B,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,cAAc,CAAC;IA0H1B,OAAO,CAAC,eAAe;IAqCvB,OAAO,CAAC,gBAAgB;IAgBxB,OAAO,CAAC,gBAAgB;CAsBzB"}
|
|
@@ -127,6 +127,15 @@ export class OpenAIResponsesProvider extends BaseAIProvider {
|
|
|
127
127
|
if (item.arguments) {
|
|
128
128
|
try {
|
|
129
129
|
const parsed = JSON.parse(item.arguments);
|
|
130
|
+
// Recover when the model double-encodes arrays as JSON strings
|
|
131
|
+
for (const key of ["preferences", "patterns", "workflows"]) {
|
|
132
|
+
if (typeof parsed[key] === "string") {
|
|
133
|
+
try {
|
|
134
|
+
parsed[key] = JSON.parse(parsed[key]);
|
|
135
|
+
}
|
|
136
|
+
catch { /* keep as-is */ }
|
|
137
|
+
}
|
|
138
|
+
}
|
|
130
139
|
return parsed;
|
|
131
140
|
}
|
|
132
141
|
catch (error) {
|
package/package.json
CHANGED