@log0u7/opencode-memory 0.1.2 → 0.2.0

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/CHANGELOG.md CHANGED
@@ -7,6 +7,15 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ## [0.2.0] - 2026-10-12
11
+
12
+ ### Added
13
+
14
+ - Dual-export plugin entry for OpenCode 2: one published package runs on both
15
+ OpenCode 1.18 and 2.x (official migration pattern, "Support V1 and V2 from
16
+ one package"). v1 hosts call `server()` (unchanged); v2 hosts call `setup()`
17
+ (`Plugin.define`). Both entries drive the same engine.
18
+
10
19
  ## [0.1.2] - 2026-09-23
11
20
 
12
21
  ### Removed
package/README.md CHANGED
@@ -2,6 +2,8 @@
2
2
 
3
3
  [![CI](https://github.com/log0u7/opencode-memory/actions/workflows/ci.yml/badge.svg)](https://github.com/log0u7/opencode-memory/actions/workflows/ci.yml)
4
4
  [![npm](https://img.shields.io/npm/v/@log0u7/opencode-memory)](https://www.npmjs.com/package/@log0u7/opencode-memory)
5
+ [![Node.js](https://img.shields.io/node/v/@log0u7/opencode-memory?logo=node.js&logoColor=white)](https://www.npmjs.com/package/@log0u7/opencode-memory)
6
+ [![TypeScript](https://img.shields.io/github/package-json/dependency-version/log0u7/opencode-memory/dev/typescript?logo=typescript&logoColor=white)](https://github.com/log0u7/opencode-memory/blob/main/package.json)
5
7
  [![License: Apache-2.0](https://img.shields.io/badge/license-Apache--2.0-blue.svg)](LICENSE)
6
8
 
7
9
  Working memory for [OpenCode](https://opencode.ai): a shared SQLite store that all sessions on a machine read and write, so decisions, facts, and compaction summaries survive session boundaries.
package/dist/index.d.ts CHANGED
@@ -5,8 +5,13 @@
5
5
  *
6
6
  * @packageDocumentation
7
7
  */
8
- declare const pluginModule: {
8
+ /**
9
+ * Dual entrypoint: v1 hosts call `server()`, v2 hosts call `setup()`
10
+ * (see https://opencode.ai/v2/docs/build/plugins/migrate-v1).
11
+ */
12
+ export declare const pluginModule: {
9
13
  id: string;
14
+ setup: (context: import("@opencode/plugin/promise/plugin").Context) => Promise<import("@opencode/plugin/promise/plugin").Cleanup | void> | import("@opencode/plugin/promise/plugin").Cleanup | void;
10
15
  server: import("@opencode-ai/plugin").Plugin;
11
16
  };
12
17
  export default pluginModule;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,QAAA,MAAM,YAAY;;;CAGqC,CAAC;eAEzC,YAAY;AAE3B,YAAY,EAAE,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAErE,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAKH;;;GAGG;AACH,eAAO,MAAM,YAAY;;;;CAGiE,CAAC;eAE5E,YAAY;AAE3B,YAAY,EAAE,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAErE,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC"}
package/dist/index.js CHANGED
@@ -5,9 +5,14 @@
5
5
  *
6
6
  * @packageDocumentation
7
7
  */
8
+ import { MemoryV2 } from "./plugin-v2.js";
8
9
  import { MemoryPlugin } from "./plugin.js";
9
- const pluginModule = {
10
- id: "@log0u7/opencode-memory",
10
+ /**
11
+ * Dual entrypoint: v1 hosts call `server()`, v2 hosts call `setup()`
12
+ * (see https://opencode.ai/v2/docs/build/plugins/migrate-v1).
13
+ */
14
+ export const pluginModule = {
15
+ ...MemoryV2,
11
16
  server: MemoryPlugin,
12
17
  };
13
18
  export default pluginModule;
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3C,MAAM,YAAY,GAAG;IACnB,EAAE,EAAE,yBAAyB;IAC7B,MAAM,EAAE,YAAY;CACiC,CAAC;AAExD,eAAe,YAAY,CAAC;AAI5B,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3C;;;GAGG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,GAAG,QAAQ;IACX,MAAM,EAAE,YAAY;CACoE,CAAC;AAE3F,eAAe,YAAY,CAAC;AAI5B,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { Plugin } from "@opencode/plugin";
2
+ export declare const MemoryV2: Plugin.Plugin;
3
+ //# sourceMappingURL=plugin-v2.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugin-v2.d.ts","sourceRoot":"","sources":["../src/plugin-v2.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAa1C,eAAO,MAAM,QAAQ,eA0LnB,CAAC"}
@@ -0,0 +1,174 @@
1
+ import { Plugin } from "@opencode/plugin";
2
+ import { openMemoryDb } from "./lib/db.js";
3
+ import { forget, list, save, search, SecretDetectedError } from "./lib/store.js";
4
+ import { SYSTEM_GUIDANCE, COMPACTION_CONTEXT, defaultDbPath, } from "./plugin.js";
5
+ const textPart = (text) => ({ type: "text", text });
6
+ export const MemoryV2 = Plugin.define({
7
+ id: "@log0u7/opencode-memory",
8
+ async setup(ctx) {
9
+ const options = ctx.options;
10
+ let db = null;
11
+ const getDb = () => {
12
+ if (!db) {
13
+ db = openMemoryDb(defaultDbPath(options));
14
+ }
15
+ return db;
16
+ };
17
+ // Tool results are shown to the model: caught errors become readable text, so
18
+ // a rejected save is guidance instead of a crashed tool call.
19
+ const run = async (fn) => {
20
+ try {
21
+ return fn();
22
+ }
23
+ catch (error) {
24
+ if (error instanceof SecretDetectedError) {
25
+ return "refused: the content looks like a credential; secrets must never be stored in memory";
26
+ }
27
+ if (error instanceof Error) {
28
+ return `error: ${error.message}`;
29
+ }
30
+ throw error;
31
+ }
32
+ };
33
+ // v1 scoped entries per session worktree; the v2 tool context carries no
34
+ // worktree, so entries default to the plugin location's directory.
35
+ const defaultScope = ctx.location.directory;
36
+ await ctx.tool.transform((editor) => {
37
+ editor.add({
38
+ name: "memory_save",
39
+ description: "Save a durable entry to shared working memory (decisions, facts, preferences, gotchas). Never store credentials.",
40
+ input: {
41
+ type: "object",
42
+ properties: {
43
+ kind: {
44
+ type: "string",
45
+ description: "Entry type, e.g. decision, fact, preference, gotcha",
46
+ },
47
+ title: { type: "string", description: "Short title (max 120 chars)" },
48
+ body: { type: "string", description: "Entry content (max 8000 chars)" },
49
+ scope: { type: "string", description: "Scope key; defaults to the project directory" },
50
+ tags: { type: "array", items: { type: "string" }, description: "Optional tags" },
51
+ expires_at: { type: "number", description: "Optional epoch ms expiry" },
52
+ },
53
+ required: ["kind", "title", "body"],
54
+ additionalProperties: false,
55
+ },
56
+ async execute(args) {
57
+ const a = args;
58
+ return {
59
+ content: await run(() => {
60
+ const entry = save(getDb(), {
61
+ scope: a.scope ?? defaultScope,
62
+ kind: a.kind,
63
+ title: a.title,
64
+ body: a.body,
65
+ tags: a.tags ?? [],
66
+ expires_at: a.expires_at ?? null,
67
+ });
68
+ return `saved ${entry.id} (${entry.scope})`;
69
+ }),
70
+ };
71
+ },
72
+ });
73
+ editor.add({
74
+ name: "memory_search",
75
+ description: "Search shared working memory (all sessions on this machine). Results include this project's scope and global entries.",
76
+ input: {
77
+ type: "object",
78
+ properties: {
79
+ query: { type: "string", description: "Free-text query" },
80
+ scope: { type: "string", description: "Scope key; defaults to the project directory" },
81
+ limit: { type: "number", description: "Max results (default 10)" },
82
+ },
83
+ required: ["query"],
84
+ additionalProperties: false,
85
+ },
86
+ async execute(args) {
87
+ const a = args;
88
+ return {
89
+ content: await run(() => {
90
+ const hits = search(getDb(), {
91
+ query: a.query,
92
+ scope: a.scope ?? defaultScope,
93
+ ...(a.limit !== undefined ? { limit: a.limit } : {}),
94
+ });
95
+ if (hits.length === 0) {
96
+ return "no matching memory entries";
97
+ }
98
+ return JSON.stringify(hits, null, 2);
99
+ }),
100
+ };
101
+ },
102
+ });
103
+ editor.add({
104
+ name: "memory_list",
105
+ description: "List recent memory entries for a scope (default: the project directory), newest first.",
106
+ input: {
107
+ type: "object",
108
+ properties: {
109
+ scope: { type: "string", description: "Scope key; defaults to the project directory" },
110
+ limit: { type: "number", description: "Max results (default 20)" },
111
+ },
112
+ additionalProperties: false,
113
+ },
114
+ async execute(args) {
115
+ const a = args;
116
+ return {
117
+ content: await run(() => {
118
+ const entries = list(getDb(), {
119
+ scope: a.scope ?? defaultScope,
120
+ ...(a.limit !== undefined ? { limit: a.limit } : {}),
121
+ });
122
+ if (entries.length === 0) {
123
+ return "no memory entries";
124
+ }
125
+ return JSON.stringify(entries, null, 2);
126
+ }),
127
+ };
128
+ },
129
+ });
130
+ editor.add({
131
+ name: "memory_forget",
132
+ description: "Delete memory entries by id, or all entries matching a query.",
133
+ input: {
134
+ type: "object",
135
+ properties: {
136
+ id: { type: "string", description: "Entry id to delete" },
137
+ query: { type: "string", description: "Delete every entry matching this query" },
138
+ },
139
+ additionalProperties: false,
140
+ },
141
+ async execute(args) {
142
+ const a = args;
143
+ return {
144
+ content: await run(() => {
145
+ if (a.id !== undefined) {
146
+ const deleted = forget(getDb(), { id: a.id });
147
+ return `deleted ${deleted} entr${deleted === 1 ? "y" : "ies"}`;
148
+ }
149
+ if (a.query !== undefined) {
150
+ const deleted = forget(getDb(), { query: a.query });
151
+ return `deleted ${deleted} entr${deleted === 1 ? "y" : "ies"}`;
152
+ }
153
+ return "provide id or query";
154
+ }),
155
+ };
156
+ },
157
+ });
158
+ });
159
+ // experimental.chat.system.transform -> context hook (edit event.system)
160
+ await ctx.session.hook("context", (event) => {
161
+ event.system.push(textPart(SYSTEM_GUIDANCE));
162
+ });
163
+ // experimental.session.compacting -> compaction hook
164
+ await ctx.session.hook("compaction", (event) => {
165
+ event.system.push(textPart(COMPACTION_CONTEXT));
166
+ });
167
+ const cleanup = async () => {
168
+ db?.close();
169
+ db = null;
170
+ };
171
+ return cleanup;
172
+ },
173
+ });
174
+ //# sourceMappingURL=plugin-v2.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugin-v2.js","sourceRoot":"","sources":["../src/plugin-v2.ts"],"names":[],"mappings":"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"}
package/dist/plugin.d.ts CHANGED
@@ -1,3 +1,9 @@
1
1
  import type { Plugin } from "@opencode-ai/plugin";
2
+ export type PluginOptions = {
3
+ dbPath?: string;
4
+ };
5
+ export declare const SYSTEM_GUIDANCE = "You have persistent working memory shared with all OpenCode sessions on this machine.\nAt the start of a non-trivial task, run memory_search for relevant decisions and facts about this project.\nWhen you make a durable decision or learn a lasting fact, call memory_save (kinds: decision, fact, preference, gotcha).\nNever store credentials, tokens, or API keys in memory; the store refuses them.";
6
+ export declare const COMPACTION_CONTEXT: string;
7
+ export declare function defaultDbPath(options?: PluginOptions): string;
2
8
  export declare const MemoryPlugin: Plugin;
3
9
  //# sourceMappingURL=plugin.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAS,MAAM,EAAE,MAAM,qBAAqB,CAAC;AA2BzD,eAAO,MAAM,YAAY,EAAE,MA6H1B,CAAC"}
1
+ {"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAS,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAMzD,MAAM,MAAM,aAAa,GAAG;IAC1B,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,eAAO,MAAM,eAAe,gZAGoD,CAAC;AAEjF,eAAO,MAAM,kBAAkB,QAEoE,CAAC;AAEpG,wBAAgB,aAAa,CAAC,OAAO,CAAC,EAAE,aAAa,GAAG,MAAM,CAM7D;AAED,eAAO,MAAM,YAAY,EAAE,MA6H1B,CAAC"}
package/dist/plugin.js CHANGED
@@ -1,13 +1,13 @@
1
1
  import { openMemoryDb } from "./lib/db.js";
2
2
  import { forget, list, save, search, SecretDetectedError } from "./lib/store.js";
3
3
  import { tool } from "@opencode-ai/plugin";
4
- const SYSTEM_GUIDANCE = `You have persistent working memory shared with all OpenCode sessions on this machine.
4
+ export const SYSTEM_GUIDANCE = `You have persistent working memory shared with all OpenCode sessions on this machine.
5
5
  At the start of a non-trivial task, run memory_search for relevant decisions and facts about this project.
6
6
  When you make a durable decision or learn a lasting fact, call memory_save (kinds: decision, fact, preference, gotcha).
7
7
  Never store credentials, tokens, or API keys in memory; the store refuses them.`;
8
- const COMPACTION_CONTEXT = "The session is being compacted. After compaction, call memory_save for every durable decision still relevant " +
8
+ export const COMPACTION_CONTEXT = "The session is being compacted. After compaction, call memory_save for every durable decision still relevant " +
9
9
  "(kind=decision) and any newly learned facts (kind=fact), so other sessions keep this knowledge.";
10
- function defaultDbPath(options) {
10
+ export function defaultDbPath(options) {
11
11
  if (typeof options?.dbPath === "string" && options.dbPath.length > 0) {
12
12
  return options.dbPath;
13
13
  }
@@ -1 +1 @@
1
- {"version":3,"file":"plugin.js","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"plugin.js","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@log0u7/opencode-memory",
3
- "version": "0.1.2",
3
+ "version": "0.2.0",
4
4
  "description": "Working memory for OpenCode: shared SQLite store with hybrid search, shared across all sessions on a machine.",
5
5
  "type": "module",
6
6
  "license": "Apache-2.0",
@@ -33,11 +33,12 @@
33
33
  "node": ">=22.0.0"
34
34
  },
35
35
  "devDependencies": {
36
- "@biomejs/biome": "2.5.13",
37
- "@opencode-ai/plugin": "1.18.30",
38
- "@types/node": "^22.0.0",
36
+ "@biomejs/biome": "2.5.14",
37
+ "@opencode-ai/plugin": "1.18.31",
38
+ "@opencode/plugin": "2.0.26",
39
+ "@types/node": "^26.6.2",
39
40
  "@vitest/coverage-v8": "^5.0.1",
40
- "lefthook": "2.1.12",
41
+ "lefthook": "2.1.14",
41
42
  "typescript": "7.0.2",
42
43
  "vitest": "^5.0.0"
43
44
  },