opencode-mem 2.7.4 → 2.7.5
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/README.md +11 -9
- package/dist/config.d.ts +1 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +8 -2
- package/dist/services/ai/providers/base-provider.d.ts +1 -0
- package/dist/services/ai/providers/base-provider.d.ts.map +1 -1
- package/dist/services/ai/providers/openai-chat-completion.d.ts.map +1 -1
- package/dist/services/ai/providers/openai-chat-completion.js +11 -2
- package/dist/services/sqlite/vector-search.d.ts.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -28,7 +28,7 @@ Add to your OpenCode configuration at `~/.config/opencode/opencode.json`:
|
|
|
28
28
|
|
|
29
29
|
```jsonc
|
|
30
30
|
{
|
|
31
|
-
"plugins": ["opencode-mem"]
|
|
31
|
+
"plugins": ["opencode-mem"],
|
|
32
32
|
}
|
|
33
33
|
```
|
|
34
34
|
|
|
@@ -37,10 +37,10 @@ The plugin downloads automatically on next startup. macOS users with Apple Silic
|
|
|
37
37
|
## Usage Examples
|
|
38
38
|
|
|
39
39
|
```typescript
|
|
40
|
-
memory({ mode: "add", content: "Project uses microservices architecture" })
|
|
41
|
-
memory({ mode: "search", query: "architecture decisions" })
|
|
42
|
-
memory({ mode: "profile" })
|
|
43
|
-
memory({ mode: "list", limit: 10 })
|
|
40
|
+
memory({ mode: "add", content: "Project uses microservices architecture" });
|
|
41
|
+
memory({ mode: "search", query: "architecture decisions" });
|
|
42
|
+
memory({ mode: "profile" });
|
|
43
|
+
memory({ mode: "list", limit: 10 });
|
|
44
44
|
```
|
|
45
45
|
|
|
46
46
|
Access the web interface at `http://127.0.0.1:4747` for visual memory browsing and management.
|
|
@@ -57,24 +57,26 @@ Configure at `~/.config/opencode/opencode-mem.jsonc`:
|
|
|
57
57
|
"embeddingModel": "Xenova/nomic-embed-text-v1",
|
|
58
58
|
"webServerEnabled": true,
|
|
59
59
|
"webServerPort": 4747,
|
|
60
|
-
|
|
60
|
+
|
|
61
61
|
"autoCaptureEnabled": true,
|
|
62
62
|
"autoCaptureLanguage": "auto",
|
|
63
63
|
"memoryProvider": "openai-chat",
|
|
64
64
|
"memoryModel": "gpt-4o-mini",
|
|
65
65
|
"memoryApiUrl": "https://api.openai.com/v1",
|
|
66
66
|
"memoryApiKey": "sk-...",
|
|
67
|
-
|
|
67
|
+
"memoryTemperature": 0.3,
|
|
68
|
+
|
|
68
69
|
"showAutoCaptureToasts": true,
|
|
69
70
|
"showUserProfileToasts": true,
|
|
70
71
|
"showErrorToasts": true,
|
|
71
|
-
|
|
72
|
+
|
|
72
73
|
"userProfileAnalysisInterval": 10,
|
|
73
|
-
"maxMemories": 10
|
|
74
|
+
"maxMemories": 10,
|
|
74
75
|
}
|
|
75
76
|
```
|
|
76
77
|
|
|
77
78
|
**API Key Formats:**
|
|
79
|
+
|
|
78
80
|
```jsonc
|
|
79
81
|
"memoryApiKey": "sk-..."
|
|
80
82
|
"memoryApiKey": "file://~/.config/opencode/api-key.txt"
|
package/dist/config.d.ts
CHANGED
|
@@ -20,6 +20,7 @@ export declare const CONFIG: {
|
|
|
20
20
|
memoryModel: string | undefined;
|
|
21
21
|
memoryApiUrl: string | undefined;
|
|
22
22
|
memoryApiKey: string | undefined;
|
|
23
|
+
memoryTemperature: number | false | undefined;
|
|
23
24
|
aiSessionRetentionDays: number;
|
|
24
25
|
webServerEnabled: boolean;
|
|
25
26
|
webServerPort: number;
|
package/dist/config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAwYA,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;;oBA2Bb,aAAa,GACb,kBAAkB,GAClB,WAAW;;;;;;;;;;;;;;;;;;;;;;;CA6BhB,CAAC;AAEF,wBAAgB,YAAY,IAAI,OAAO,CAEtC"}
|
package/dist/config.js
CHANGED
|
@@ -198,13 +198,18 @@ const CONFIG_TEMPLATE = `{
|
|
|
198
198
|
|
|
199
199
|
// Maximum iterations for multi-turn AI analysis (for openai-responses and anthropic)
|
|
200
200
|
"autoCaptureMaxIterations": 5,
|
|
201
|
-
|
|
201
|
+
|
|
202
202
|
// Timeout per iteration in milliseconds (30 seconds default)
|
|
203
203
|
"autoCaptureIterationTimeout": 30000,
|
|
204
|
-
|
|
204
|
+
|
|
205
205
|
// Days to keep AI session history before cleanup
|
|
206
206
|
"aiSessionRetentionDays": 7,
|
|
207
207
|
|
|
208
|
+
// Temperature for AI API requests (set to false to omit parameter for models that don't support it)
|
|
209
|
+
// Some reasoning models (like o1, o3, gpt-5) don't support temperature parameter
|
|
210
|
+
// Set to false and add "memoryTemperature": false in config when using such models
|
|
211
|
+
"memoryTemperature": 0.3,
|
|
212
|
+
|
|
208
213
|
// Language for auto-capture summaries (default: "auto" for auto-detection)
|
|
209
214
|
// Options: "auto", "en", "id", "zh", "ja", "es", "fr", "de", "ru", "pt", "ar", "ko"
|
|
210
215
|
// "autoCaptureLanguage": "auto",
|
|
@@ -331,6 +336,7 @@ export const CONFIG = {
|
|
|
331
336
|
memoryModel: fileConfig.memoryModel,
|
|
332
337
|
memoryApiUrl: fileConfig.memoryApiUrl,
|
|
333
338
|
memoryApiKey: resolveSecretValue(fileConfig.memoryApiKey),
|
|
339
|
+
memoryTemperature: fileConfig.memoryTemperature,
|
|
334
340
|
aiSessionRetentionDays: fileConfig.aiSessionRetentionDays ?? DEFAULTS.aiSessionRetentionDays,
|
|
335
341
|
webServerEnabled: fileConfig.webServerEnabled ?? DEFAULTS.webServerEnabled,
|
|
336
342
|
webServerPort: fileConfig.webServerPort ?? DEFAULTS.webServerPort,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base-provider.d.ts","sourceRoot":"","sources":["../../../../src/services/ai/providers/base-provider.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,CAAC,EAAE,GAAG,CAAC;IACX,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,gBAAgB,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"base-provider.d.ts","sourceRoot":"","sources":["../../../../src/services/ai/providers/base-provider.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,CAAC,EAAE,GAAG,CAAC;IACX,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,iBAAiB,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC;CACpC;AAED,8BAAsB,cAAc;IAClC,SAAS,CAAC,MAAM,EAAE,cAAc,CAAC;gBAErB,MAAM,EAAE,cAAc;IAIlC,QAAQ,CAAC,eAAe,CACtB,YAAY,EAAE,MAAM,EACpB,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,GAAG,EACf,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,cAAc,CAAC;IAE1B,QAAQ,CAAC,eAAe,IAAI,MAAM;IAElC,QAAQ,CAAC,eAAe,IAAI,OAAO;CACpC"}
|
|
@@ -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,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;AAqBlE,qBAAa,4BAA6B,SAAQ,cAAc;IAC9D,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;IAqBvB,OAAO,CAAC,iCAAiC;IAoCnC,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,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;AAqBlE,qBAAa,4BAA6B,SAAQ,cAAc;IAC9D,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;IAqBvB,OAAO,CAAC,iCAAiC;IAoCnC,eAAe,CACnB,YAAY,EAAE,MAAM,EACpB,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,kBAAkB,EAC9B,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,cAAc,CAAC;CAwP3B"}
|
|
@@ -116,8 +116,10 @@ export class OpenAIChatCompletionProvider extends BaseAIProvider {
|
|
|
116
116
|
messages,
|
|
117
117
|
tools: [toolSchema],
|
|
118
118
|
tool_choice: { type: "function", function: { name: toolSchema.function.name } },
|
|
119
|
-
temperature: 0.3,
|
|
120
119
|
};
|
|
120
|
+
if (this.config.memoryTemperature !== false) {
|
|
121
|
+
requestBody.temperature = this.config.memoryTemperature ?? 0.3;
|
|
122
|
+
}
|
|
121
123
|
const headers = {
|
|
122
124
|
"Content-Type": "application/json",
|
|
123
125
|
};
|
|
@@ -138,9 +140,16 @@ export class OpenAIChatCompletionProvider extends BaseAIProvider {
|
|
|
138
140
|
error: errorText,
|
|
139
141
|
iteration: iterations,
|
|
140
142
|
});
|
|
143
|
+
let errorMessage = `API error: ${response.status} - ${errorText}`;
|
|
144
|
+
if (response.status === 400 &&
|
|
145
|
+
errorText.includes("unsupported_value") &&
|
|
146
|
+
errorText.includes("temperature")) {
|
|
147
|
+
errorMessage =
|
|
148
|
+
'Your model does not support the temperature parameter. Add "memoryTemperature": false to your config file to disable it.';
|
|
149
|
+
}
|
|
141
150
|
return {
|
|
142
151
|
success: false,
|
|
143
|
-
error:
|
|
152
|
+
error: errorMessage,
|
|
144
153
|
iterations,
|
|
145
154
|
};
|
|
146
155
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vector-search.d.ts","sourceRoot":"","sources":["../../../src/services/sqlite/vector-search.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAGtC,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAExE,qBAAa,YAAY;IACvB,YAAY,CAAC,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,YAAY,GAAG,IAAI;IA0CtD,aAAa,CACX,KAAK,EAAE,SAAS,EAChB,WAAW,EAAE,YAAY,EACzB,YAAY,EAAE,MAAM,EACpB,KAAK,EAAE,MAAM,EACb,SAAS,CAAC,EAAE,MAAM,GACjB,YAAY,EAAE;IA0FX,kBAAkB,CACtB,MAAM,EAAE,SAAS,EAAE,EACnB,WAAW,EAAE,YAAY,EACzB,YAAY,EAAE,MAAM,EACpB,KAAK,EAAE,MAAM,EACb,mBAAmB,EAAE,MAAM,EAC3B,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC,YAAY,EAAE,CAAC;IAiB1B,YAAY,CAAC,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI;IAMlD,YAAY,
|
|
1
|
+
{"version":3,"file":"vector-search.d.ts","sourceRoot":"","sources":["../../../src/services/sqlite/vector-search.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAGtC,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAExE,qBAAa,YAAY;IACvB,YAAY,CAAC,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,YAAY,GAAG,IAAI;IA0CtD,aAAa,CACX,KAAK,EAAE,SAAS,EAChB,WAAW,EAAE,YAAY,EACzB,YAAY,EAAE,MAAM,EACpB,KAAK,EAAE,MAAM,EACb,SAAS,CAAC,EAAE,MAAM,GACjB,YAAY,EAAE;IA0FX,kBAAkB,CACtB,MAAM,EAAE,SAAS,EAAE,EACnB,WAAW,EAAE,YAAY,EACzB,YAAY,EAAE,MAAM,EACpB,KAAK,EAAE,MAAM,EACb,mBAAmB,EAAE,MAAM,EAC3B,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC,YAAY,EAAE,CAAC;IAiB1B,YAAY,CAAC,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI;IAMlD,YAAY,CACV,EAAE,EAAE,QAAQ,EACZ,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,YAAY,EACpB,UAAU,CAAC,EAAE,YAAY,GACxB,IAAI;IAkBP,YAAY,CAAC,EAAE,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,GAAG,EAAE;IAWtE,cAAc,CAAC,EAAE,EAAE,QAAQ,GAAG,GAAG,EAAE;IAKnC,aAAa,CAAC,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,GAAG,GAAG,GAAG,IAAI;IAKzD,YAAY,CAAC,EAAE,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,GAAG,MAAM;IAMxD,eAAe,CAAC,EAAE,EAAE,QAAQ,GAAG,MAAM;IAMrC,eAAe,CAAC,EAAE,EAAE,QAAQ,GAAG,GAAG,EAAE;IAepC,SAAS,CAAC,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI;IAK/C,WAAW,CAAC,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI;CAIlD;AAED,eAAO,MAAM,YAAY,cAAqB,CAAC"}
|