opencode-memory-plugin 0.1.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.
Files changed (102) hide show
  1. package/README.md +73 -0
  2. package/dist/compression/compressor.d.ts +86 -0
  3. package/dist/compression/compressor.d.ts.map +1 -0
  4. package/dist/compression/compressor.js +142 -0
  5. package/dist/compression/compressor.js.map +1 -0
  6. package/dist/compression/parser.d.ts +73 -0
  7. package/dist/compression/parser.d.ts.map +1 -0
  8. package/dist/compression/parser.js +139 -0
  9. package/dist/compression/parser.js.map +1 -0
  10. package/dist/compression/pipeline.d.ts +73 -0
  11. package/dist/compression/pipeline.d.ts.map +1 -0
  12. package/dist/compression/pipeline.js +205 -0
  13. package/dist/compression/pipeline.js.map +1 -0
  14. package/dist/compression/privacy.d.ts +8 -0
  15. package/dist/compression/privacy.d.ts.map +1 -0
  16. package/dist/compression/privacy.js +30 -0
  17. package/dist/compression/privacy.js.map +1 -0
  18. package/dist/compression/prompts.d.ts +24 -0
  19. package/dist/compression/prompts.d.ts.map +1 -0
  20. package/dist/compression/prompts.js +106 -0
  21. package/dist/compression/prompts.js.map +1 -0
  22. package/dist/compression/quality.d.ts +48 -0
  23. package/dist/compression/quality.d.ts.map +1 -0
  24. package/dist/compression/quality.js +159 -0
  25. package/dist/compression/quality.js.map +1 -0
  26. package/dist/config.d.ts +114 -0
  27. package/dist/config.d.ts.map +1 -0
  28. package/dist/config.js +265 -0
  29. package/dist/config.js.map +1 -0
  30. package/dist/context/generator.d.ts +28 -0
  31. package/dist/context/generator.d.ts.map +1 -0
  32. package/dist/context/generator.js +80 -0
  33. package/dist/context/generator.js.map +1 -0
  34. package/dist/hooks/chat-message.d.ts +14 -0
  35. package/dist/hooks/chat-message.d.ts.map +1 -0
  36. package/dist/hooks/chat-message.js +35 -0
  37. package/dist/hooks/chat-message.js.map +1 -0
  38. package/dist/hooks/compaction.d.ts +13 -0
  39. package/dist/hooks/compaction.d.ts.map +1 -0
  40. package/dist/hooks/compaction.js +22 -0
  41. package/dist/hooks/compaction.js.map +1 -0
  42. package/dist/hooks/events.d.ts +52 -0
  43. package/dist/hooks/events.d.ts.map +1 -0
  44. package/dist/hooks/events.js +138 -0
  45. package/dist/hooks/events.js.map +1 -0
  46. package/dist/hooks/system-transform.d.ts +14 -0
  47. package/dist/hooks/system-transform.d.ts.map +1 -0
  48. package/dist/hooks/system-transform.js +26 -0
  49. package/dist/hooks/system-transform.js.map +1 -0
  50. package/dist/hooks/tool-after.d.ts +26 -0
  51. package/dist/hooks/tool-after.d.ts.map +1 -0
  52. package/dist/hooks/tool-after.js +88 -0
  53. package/dist/hooks/tool-after.js.map +1 -0
  54. package/dist/index.d.ts +11 -0
  55. package/dist/index.d.ts.map +1 -0
  56. package/dist/index.js +79 -0
  57. package/dist/index.js.map +1 -0
  58. package/dist/logger.d.ts +60 -0
  59. package/dist/logger.d.ts.map +1 -0
  60. package/dist/logger.js +91 -0
  61. package/dist/logger.js.map +1 -0
  62. package/dist/storage/db.d.ts +22 -0
  63. package/dist/storage/db.d.ts.map +1 -0
  64. package/dist/storage/db.js +198 -0
  65. package/dist/storage/db.js.map +1 -0
  66. package/dist/storage/schema.d.ts +2473 -0
  67. package/dist/storage/schema.d.ts.map +1 -0
  68. package/dist/storage/schema.js +100 -0
  69. package/dist/storage/schema.js.map +1 -0
  70. package/dist/storage/store.d.ts +376 -0
  71. package/dist/storage/store.d.ts.map +1 -0
  72. package/dist/storage/store.js +1025 -0
  73. package/dist/storage/store.js.map +1 -0
  74. package/dist/tools/memory-forget.d.ts +11 -0
  75. package/dist/tools/memory-forget.d.ts.map +1 -0
  76. package/dist/tools/memory-forget.js +249 -0
  77. package/dist/tools/memory-forget.js.map +1 -0
  78. package/dist/tools/memory-get.d.ts +10 -0
  79. package/dist/tools/memory-get.d.ts.map +1 -0
  80. package/dist/tools/memory-get.js +50 -0
  81. package/dist/tools/memory-get.js.map +1 -0
  82. package/dist/tools/memory-search.d.ts +11 -0
  83. package/dist/tools/memory-search.d.ts.map +1 -0
  84. package/dist/tools/memory-search.js +38 -0
  85. package/dist/tools/memory-search.js.map +1 -0
  86. package/dist/tools/memory-stats.d.ts +39 -0
  87. package/dist/tools/memory-stats.d.ts.map +1 -0
  88. package/dist/tools/memory-stats.js +121 -0
  89. package/dist/tools/memory-stats.js.map +1 -0
  90. package/dist/tools/memory-timeline.d.ts +10 -0
  91. package/dist/tools/memory-timeline.d.ts.map +1 -0
  92. package/dist/tools/memory-timeline.js +49 -0
  93. package/dist/tools/memory-timeline.js.map +1 -0
  94. package/dist/types.d.ts +178 -0
  95. package/dist/types.d.ts.map +1 -0
  96. package/dist/types.js +4 -0
  97. package/dist/types.js.map +1 -0
  98. package/dist/utils.d.ts +130 -0
  99. package/dist/utils.d.ts.map +1 -0
  100. package/dist/utils.js +308 -0
  101. package/dist/utils.js.map +1 -0
  102. package/package.json +36 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"store.js","sourceRoot":"","sources":["../../src/storage/store.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ import { type ToolDefinition } from "@opencode-ai/plugin";
2
+ import { MemoryStore } from "../storage/store";
3
+ /**
4
+ * Creates the memory deletion tool with preview and confirm flow.
5
+ *
6
+ * @param store - Memory store.
7
+ * @param now - Clock function.
8
+ * @returns Tool definition.
9
+ */
10
+ export declare function createMemoryForgetTool(store: MemoryStore, now: () => number): ToolDefinition;
11
+ //# sourceMappingURL=memory-forget.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"memory-forget.d.ts","sourceRoot":"","sources":["../../src/tools/memory-forget.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,KAAK,cAAc,EAAE,MAAM,qBAAqB,CAAA;AAC/D,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAuB9C;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,WAAW,EAAE,GAAG,EAAE,MAAM,MAAM,GAAG,cAAc,CA4F5F"}
@@ -0,0 +1,249 @@
1
+ import { tool } from "@opencode-ai/plugin";
2
+ import { MemoryStore } from "../storage/store";
3
+ import { formatRelativeTime } from "../utils";
4
+ const DELETE_PREVIEW_LIMIT = 50;
5
+ const DELETE_MATCH_LIMIT = 5_000;
6
+ const CONFIRMATION_MIN_DELAY_MS = 1_000;
7
+ const CONFIRMATION_TTL_MS = 10 * 60_000;
8
+ /**
9
+ * Creates the memory deletion tool with preview and confirm flow.
10
+ *
11
+ * @param store - Memory store.
12
+ * @param now - Clock function.
13
+ * @returns Tool definition.
14
+ */
15
+ export function createMemoryForgetTool(store, now) {
16
+ const pendingConfirmations = new Map();
17
+ return tool({
18
+ description: "Delete persistent memory observations by IDs, query, session, or date. Always run preview first. Deletion requires confirm=true with confirmationToken from preview in a later user turn.",
19
+ args: {
20
+ ids: tool.schema.array(tool.schema.string()).max(50).optional(),
21
+ query: tool.schema.string().min(1).optional(),
22
+ sessionId: tool.schema.string().min(1).optional(),
23
+ before: tool.schema.string().datetime().optional(),
24
+ confirm: tool.schema.boolean().optional(),
25
+ confirmationToken: tool.schema.string().min(1).optional(),
26
+ },
27
+ async execute(args, context) {
28
+ purgeExpiredConfirmations(pendingConfirmations, now());
29
+ await store.incrementToolUsage(context.sessionID, "memory_forget");
30
+ if (args.confirm) {
31
+ return executeConfirmedDeletion({
32
+ confirmationToken: args.confirmationToken,
33
+ criteria: {
34
+ ids: args.ids,
35
+ query: args.query,
36
+ sessionId: args.sessionId,
37
+ before: args.before,
38
+ },
39
+ }, {
40
+ context,
41
+ store,
42
+ now,
43
+ pendingConfirmations,
44
+ });
45
+ }
46
+ const criteria = normalizeCriteria({
47
+ ids: args.ids,
48
+ query: args.query,
49
+ sessionId: args.sessionId,
50
+ before: args.before,
51
+ });
52
+ if (!hasCriteria(criteria)) {
53
+ return "memory_forget requires at least one of: ids, query, sessionId, or before.";
54
+ }
55
+ const preview = await buildPreview(store, criteria);
56
+ if (!preview.matches.length) {
57
+ return "No observations match the provided deletion criteria.";
58
+ }
59
+ const token = createConfirmationToken();
60
+ const key = createConfirmationKey(context.sessionID, token);
61
+ const criteriaKey = serializeCriteria(criteria);
62
+ pendingConfirmations.set(key, {
63
+ token,
64
+ previewMessageId: context.messageID,
65
+ createdAt: now(),
66
+ criteriaKey,
67
+ matchIds: preview.matches.map((match) => match.id),
68
+ });
69
+ const lines = preview.matches
70
+ .slice(0, DELETE_PREVIEW_LIMIT)
71
+ .map((observation) => `[${observation.id}] ${observation.title} (${observation.type}, ${formatRelativeTime(observation.createdAt, now)})`);
72
+ const extra = preview.matches.length > DELETE_PREVIEW_LIMIT
73
+ ? `\n... and ${preview.matches.length - DELETE_PREVIEW_LIMIT} more.`
74
+ : "";
75
+ return [
76
+ `Will delete ${preview.matches.length} observations:`,
77
+ ...lines,
78
+ extra,
79
+ "",
80
+ `Confirmation token: ${token}`,
81
+ "Deletion is blocked in the same assistant turn.",
82
+ "Ask the user explicitly and only proceed after they confirm.",
83
+ "Run memory_forget again with confirm=true and confirmationToken in a later turn.",
84
+ ]
85
+ .filter(Boolean)
86
+ .join("\n");
87
+ },
88
+ });
89
+ }
90
+ /**
91
+ * Executes a confirmed deletion using a pending confirmation token.
92
+ *
93
+ * @param args - Confirmation arguments.
94
+ * @param dependencies - Runtime dependencies.
95
+ * @returns Tool response.
96
+ */
97
+ async function executeConfirmedDeletion(args, dependencies) {
98
+ const { context, now, pendingConfirmations, store } = dependencies;
99
+ if (!args.confirmationToken) {
100
+ return "memory_forget confirmation requires confirmationToken from a preview response.";
101
+ }
102
+ const confirmationKey = createConfirmationKey(context.sessionID, args.confirmationToken);
103
+ const pending = pendingConfirmations.get(confirmationKey);
104
+ if (!pending) {
105
+ return "No pending deletion confirmation found for this token. Run memory_forget preview first.";
106
+ }
107
+ if (pending.previewMessageId === context.messageID) {
108
+ return "Deletion blocked: confirmation must happen in a new user turn after preview.";
109
+ }
110
+ const ageMs = now() - pending.createdAt;
111
+ if (ageMs < CONFIRMATION_MIN_DELAY_MS) {
112
+ const remainingSeconds = Math.ceil((CONFIRMATION_MIN_DELAY_MS - ageMs) / 1000);
113
+ return `Deletion blocked: wait ${remainingSeconds}s and ask for explicit user confirmation first.`;
114
+ }
115
+ if (ageMs > CONFIRMATION_TTL_MS) {
116
+ pendingConfirmations.delete(confirmationKey);
117
+ return "Deletion confirmation token expired. Run memory_forget preview again.";
118
+ }
119
+ const criteria = normalizeCriteria(args.criteria);
120
+ if (hasCriteria(criteria) && serializeCriteria(criteria) !== pending.criteriaKey) {
121
+ return "Deletion blocked: criteria do not match the preview linked to this confirmationToken.";
122
+ }
123
+ const deletedCount = await store.deleteObservations(pending.matchIds);
124
+ await store.logDeletion(pending.criteriaKey, deletedCount, "user");
125
+ pendingConfirmations.delete(confirmationKey);
126
+ return `Deleted ${deletedCount} observations from persistent memory.`;
127
+ }
128
+ /**
129
+ * Builds a stable key for a session-scoped confirmation token.
130
+ *
131
+ * @param sessionId - Session identifier.
132
+ * @param token - Confirmation token.
133
+ * @returns Internal map key.
134
+ */
135
+ function createConfirmationKey(sessionId, token) {
136
+ return `${sessionId}:${token}`;
137
+ }
138
+ /**
139
+ * Creates a random confirmation token.
140
+ *
141
+ * @returns New token string.
142
+ */
143
+ function createConfirmationToken() {
144
+ return crypto.randomUUID().replace(/-/g, "").slice(0, 16);
145
+ }
146
+ /**
147
+ * Removes expired confirmation tokens from memory.
148
+ *
149
+ * @param confirmations - Confirmation map.
150
+ * @param nowTimestamp - Current timestamp.
151
+ * @returns Nothing.
152
+ */
153
+ function purgeExpiredConfirmations(confirmations, nowTimestamp) {
154
+ for (const [key, confirmation] of confirmations) {
155
+ if (nowTimestamp - confirmation.createdAt > CONFIRMATION_TTL_MS) {
156
+ confirmations.delete(key);
157
+ }
158
+ }
159
+ }
160
+ /**
161
+ * Normalizes deletion criteria for deterministic comparison.
162
+ *
163
+ * @param criteria - Raw criteria.
164
+ * @returns Normalized criteria.
165
+ */
166
+ function normalizeCriteria(criteria) {
167
+ const ids = criteria.ids?.length
168
+ ? [...new Set(criteria.ids.map((id) => id.trim()).filter(Boolean))].sort((left, right) => left.localeCompare(right))
169
+ : undefined;
170
+ const query = criteria.query?.trim() || undefined;
171
+ const sessionId = criteria.sessionId?.trim() || undefined;
172
+ const before = criteria.before?.trim() || undefined;
173
+ return {
174
+ ids: ids?.length ? ids : undefined,
175
+ query,
176
+ sessionId,
177
+ before,
178
+ };
179
+ }
180
+ /**
181
+ * Checks whether any deletion criteria were provided.
182
+ *
183
+ * @param criteria - Deletion criteria.
184
+ * @returns True when at least one criterion exists.
185
+ */
186
+ function hasCriteria(criteria) {
187
+ return Boolean(criteria.ids?.length || criteria.query || criteria.sessionId || criteria.before);
188
+ }
189
+ /**
190
+ * Serializes criteria into a stable JSON string.
191
+ *
192
+ * @param criteria - Deletion criteria.
193
+ * @returns Stable serialized criteria.
194
+ */
195
+ function serializeCriteria(criteria) {
196
+ return JSON.stringify(normalizeCriteria(criteria));
197
+ }
198
+ /**
199
+ * Builds a deletion preview for the selected criteria.
200
+ *
201
+ * @param store - Memory store.
202
+ * @param criteria - Deletion filters.
203
+ * @returns Matching observations.
204
+ */
205
+ async function buildPreview(store, criteria) {
206
+ const candidates = [];
207
+ const seenIds = new Set();
208
+ if (criteria.ids?.length) {
209
+ const rows = await store.getObservationsBatch(criteria.ids);
210
+ addUnique(candidates, rows, seenIds);
211
+ }
212
+ if (criteria.query) {
213
+ const matches = await store.searchFTS(criteria.query, DELETE_MATCH_LIMIT);
214
+ const rows = await store.getObservationsBatch(matches.map((match) => match.id));
215
+ addUnique(candidates, rows, seenIds);
216
+ }
217
+ if (criteria.sessionId) {
218
+ const rows = await store.getSessionObservations(criteria.sessionId);
219
+ addUnique(candidates, rows, seenIds);
220
+ }
221
+ if (criteria.before) {
222
+ const beforeDate = new Date(criteria.before);
223
+ if (!Number.isNaN(beforeDate.getTime())) {
224
+ const rows = await store.searchByDateRange(new Date(0), beforeDate, DELETE_MATCH_LIMIT);
225
+ addUnique(candidates, rows, seenIds);
226
+ }
227
+ }
228
+ return {
229
+ matches: candidates.sort((left, right) => right.createdAt - left.createdAt),
230
+ };
231
+ }
232
+ /**
233
+ * Adds observations into a list without duplicates.
234
+ *
235
+ * @param target - Destination array.
236
+ * @param rows - Source observations.
237
+ * @param seenIds - Seen IDs set.
238
+ * @returns Nothing.
239
+ */
240
+ function addUnique(target, rows, seenIds) {
241
+ for (const row of rows) {
242
+ if (seenIds.has(row.id)) {
243
+ continue;
244
+ }
245
+ seenIds.add(row.id);
246
+ target.push(row);
247
+ }
248
+ }
249
+ //# sourceMappingURL=memory-forget.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"memory-forget.js","sourceRoot":"","sources":["../../src/tools/memory-forget.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import { type ToolDefinition } from "@opencode-ai/plugin";
2
+ import { MemoryStore } from "../storage/store";
3
+ /**
4
+ * Creates the detailed observation retrieval tool.
5
+ *
6
+ * @param store - Memory store.
7
+ * @returns Tool definition.
8
+ */
9
+ export declare function createMemoryGetTool(store: MemoryStore): ToolDefinition;
10
+ //# sourceMappingURL=memory-get.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"memory-get.d.ts","sourceRoot":"","sources":["../../src/tools/memory-get.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,KAAK,cAAc,EAAE,MAAM,qBAAqB,CAAA;AAC/D,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAG9C;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,WAAW,GAAG,cAAc,CA6CtE"}
@@ -0,0 +1,50 @@
1
+ import { tool } from "@opencode-ai/plugin";
2
+ import { MemoryStore } from "../storage/store";
3
+ import { formatTimestamp } from "../utils";
4
+ /**
5
+ * Creates the detailed observation retrieval tool.
6
+ *
7
+ * @param store - Memory store.
8
+ * @returns Tool definition.
9
+ */
10
+ export function createMemoryGetTool(store) {
11
+ return tool({
12
+ description: "Fetch full persistent memory observations by ID. Use after memory_search or memory_timeline when full details are needed.",
13
+ args: {
14
+ ids: tool.schema.array(tool.schema.string()).min(1).max(10),
15
+ },
16
+ async execute(args, context) {
17
+ await store.incrementToolUsage(context.sessionID, "memory_get");
18
+ const observations = await store.getObservationsBatch(args.ids);
19
+ const found = new Set(observations.map((observation) => observation.id));
20
+ const missing = args.ids.filter((id) => !found.has(id));
21
+ if (!observations.length) {
22
+ return `No observations found. Missing: ${missing.join(", ")}`;
23
+ }
24
+ const body = observations
25
+ .map((observation) => {
26
+ const facts = observation.facts.length
27
+ ? observation.facts.map((fact) => `- ${fact}`).join("\n")
28
+ : "- none";
29
+ const files = observation.filesInvolved.length
30
+ ? observation.filesInvolved.join(", ")
31
+ : "none";
32
+ return [
33
+ `## [${observation.id}] ${observation.title}`,
34
+ `Type: ${observation.type} | Created: ${formatTimestamp(observation.createdAt)}`,
35
+ `Tool: ${observation.toolName ?? "unknown"} | Files: ${files}`,
36
+ `Quality: ${observation.quality}`,
37
+ observation.subtitle ?? "No subtitle",
38
+ observation.narrative,
39
+ observation.rawFallback ? `Raw fallback:\n${observation.rawFallback}` : "",
40
+ "Facts:",
41
+ facts,
42
+ `Concepts: ${observation.concepts.join(", ") || "none"}`,
43
+ ].join("\n");
44
+ })
45
+ .join("\n\n");
46
+ return missing.length ? `${body}\n\nNot found: ${missing.join(", ")}` : body;
47
+ },
48
+ });
49
+ }
50
+ //# sourceMappingURL=memory-get.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"memory-get.js","sourceRoot":"","sources":["../../src/tools/memory-get.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAuB,MAAM,qBAAqB,CAAA;AAC/D,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAA;AAE1C;;;;;GAKG;AACH,MAAM,UAAU,mBAAmB,CAAC,KAAkB;IACpD,OAAO,IAAI,CAAC;QACV,WAAW,EACT,2HAA2H;QAC7H,IAAI,EAAE;YACJ,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC;SAC5D;QACD,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO;YACzB,MAAM,KAAK,CAAC,kBAAkB,CAAC,OAAO,CAAC,SAAS,EAAE,YAAY,CAAC,CAAA;YAE/D,MAAM,YAAY,GAAG,MAAM,KAAK,CAAC,oBAAoB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;YAC/D,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAA;YACxE,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAA;YAEvD,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC;gBACzB,OAAO,mCAAmC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAA;YAChE,CAAC;YAED,MAAM,IAAI,GAAG,YAAY;iBACtB,GAAG,CAAC,CAAC,WAAW,EAAE,EAAE;gBACnB,MAAM,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC,MAAM;oBACpC,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;oBACzD,CAAC,CAAC,QAAQ,CAAA;gBACZ,MAAM,KAAK,GAAG,WAAW,CAAC,aAAa,CAAC,MAAM;oBAC5C,CAAC,CAAC,WAAW,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC;oBACtC,CAAC,CAAC,MAAM,CAAA;gBAEV,OAAO;oBACL,OAAO,WAAW,CAAC,EAAE,KAAK,WAAW,CAAC,KAAK,EAAE;oBAC7C,SAAS,WAAW,CAAC,IAAI,eAAe,eAAe,CAAC,WAAW,CAAC,SAAS,CAAC,EAAE;oBAChF,SAAS,WAAW,CAAC,QAAQ,IAAI,SAAS,aAAa,KAAK,EAAE;oBAC9D,YAAY,WAAW,CAAC,OAAO,EAAE;oBACjC,WAAW,CAAC,QAAQ,IAAI,aAAa;oBACrC,WAAW,CAAC,SAAS;oBACrB,WAAW,CAAC,WAAW,CAAC,CAAC,CAAC,kBAAkB,WAAW,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE;oBAC1E,QAAQ;oBACR,KAAK;oBACL,aAAa,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,MAAM,EAAE;iBACzD,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;YACd,CAAC,CAAC;iBACD,IAAI,CAAC,MAAM,CAAC,CAAA;YAEf,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,kBAAkB,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAA;QAC9E,CAAC;KACF,CAAC,CAAA;AACJ,CAAC"}
@@ -0,0 +1,11 @@
1
+ import { type ToolDefinition } from "@opencode-ai/plugin";
2
+ import { MemoryStore } from "../storage/store";
3
+ /**
4
+ * Creates the keyword-based memory search tool.
5
+ *
6
+ * @param store - Memory store.
7
+ * @param now - Clock function.
8
+ * @returns Tool definition.
9
+ */
10
+ export declare function createMemorySearchTool(store: MemoryStore, now: () => number): ToolDefinition;
11
+ //# sourceMappingURL=memory-search.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"memory-search.d.ts","sourceRoot":"","sources":["../../src/tools/memory-search.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,KAAK,cAAc,EAAE,MAAM,qBAAqB,CAAA;AAC/D,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAI9C;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,WAAW,EAAE,GAAG,EAAE,MAAM,MAAM,GAAG,cAAc,CA8B5F"}
@@ -0,0 +1,38 @@
1
+ import { tool } from "@opencode-ai/plugin";
2
+ import { MemoryStore } from "../storage/store";
3
+ import { OBSERVATION_TYPES } from "../types";
4
+ import { formatRelativeTime } from "../utils";
5
+ /**
6
+ * Creates the keyword-based memory search tool.
7
+ *
8
+ * @param store - Memory store.
9
+ * @param now - Clock function.
10
+ * @returns Tool definition.
11
+ */
12
+ export function createMemorySearchTool(store, now) {
13
+ return tool({
14
+ description: "Search persistent project memory from previous OpenCode sessions. Returns compact index entries that can be expanded with memory_get.",
15
+ args: {
16
+ query: tool.schema.string().min(1),
17
+ limit: tool.schema.number().int().min(1).max(50).optional(),
18
+ type: tool.schema.enum(OBSERVATION_TYPES).optional(),
19
+ },
20
+ async execute(args, context) {
21
+ await store.incrementToolUsage(context.sessionID, "memory_search");
22
+ const results = await store.searchFTS(args.query, args.limit ?? 10, args.type);
23
+ if (!results.length) {
24
+ return "No memory results found. Try broader keywords, a different observation type, or use memory_timeline.";
25
+ }
26
+ return results
27
+ .map((result) => {
28
+ const marker = result.quality === "low" ? "[?] " : "";
29
+ const suffix = result.quality === "low"
30
+ ? " -> low-confidence summary, use memory_get for raw fallback context"
31
+ : "";
32
+ return `[${result.id}] ${marker}${result.title} — ${result.subtitle ?? "No subtitle"} (${result.type}, ${formatRelativeTime(result.createdAt, now)})${suffix}`;
33
+ })
34
+ .join("\n");
35
+ },
36
+ });
37
+ }
38
+ //# sourceMappingURL=memory-search.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"memory-search.js","sourceRoot":"","sources":["../../src/tools/memory-search.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAuB,MAAM,qBAAqB,CAAA;AAC/D,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAC9C,OAAO,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAA;AAC5C,OAAO,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAA;AAE7C;;;;;;GAMG;AACH,MAAM,UAAU,sBAAsB,CAAC,KAAkB,EAAE,GAAiB;IAC1E,OAAO,IAAI,CAAC;QACV,WAAW,EACT,uIAAuI;QACzI,IAAI,EAAE;YACJ,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;YAClC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE;YAC3D,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,QAAQ,EAAE;SACrD;QACD,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO;YACzB,MAAM,KAAK,CAAC,kBAAkB,CAAC,OAAO,CAAC,SAAS,EAAE,eAAe,CAAC,CAAA;YAElE,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,CAAA;YAC9E,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;gBACpB,OAAO,sGAAsG,CAAA;YAC/G,CAAC;YAED,OAAO,OAAO;iBACX,GAAG,CACF,CAAC,MAAM,EAAE,EAAE;gBACT,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,KAAK,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAA;gBACrD,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,KAAK,KAAK;oBACrC,CAAC,CAAC,qEAAqE;oBACvE,CAAC,CAAC,EAAE,CAAA;gBACN,OAAO,IAAI,MAAM,CAAC,EAAE,KAAK,MAAM,GAAG,MAAM,CAAC,KAAK,MAAM,MAAM,CAAC,QAAQ,IAAI,aAAa,KAAK,MAAM,CAAC,IAAI,KAAK,kBAAkB,CAAC,MAAM,CAAC,SAAS,EAAE,GAAG,CAAC,IAAI,MAAM,EAAE,CAAA;YAChK,CAAC,CACF;iBACA,IAAI,CAAC,IAAI,CAAC,CAAA;QACf,CAAC;KACF,CAAC,CAAA;AACJ,CAAC"}
@@ -0,0 +1,39 @@
1
+ import { type ToolDefinition } from "@opencode-ai/plugin";
2
+ import { MemoryStore } from "../storage/store";
3
+ /**
4
+ * Creates the readonly memory statistics tool.
5
+ *
6
+ * @param store - Memory store.
7
+ * @param now - Clock function.
8
+ * @returns Tool definition.
9
+ */
10
+ export declare function createMemoryStatsTool(store: MemoryStore, now: () => number): ToolDefinition;
11
+ /**
12
+ * Converts bytes into a compact human-readable unit.
13
+ *
14
+ * @param value - Byte count.
15
+ * @returns Formatted size string.
16
+ */
17
+ export declare function formatBytes(value: number): string;
18
+ /**
19
+ * Calculates a safe percentage.
20
+ *
21
+ * @param value - Partial value.
22
+ * @param total - Total value.
23
+ * @returns Rounded percentage.
24
+ */
25
+ export declare function percentage(value: number, total: number): number;
26
+ /**
27
+ * Aggregates tool usage by known tool names.
28
+ *
29
+ * @param stats - Tool usage rows.
30
+ * @returns Aggregated counts.
31
+ */
32
+ export declare function summarizeToolUsage(stats: Awaited<ReturnType<MemoryStore["getToolUsageStats"]>>): {
33
+ search: number;
34
+ timeline: number;
35
+ get: number;
36
+ forget: number;
37
+ stats: number;
38
+ };
39
+ //# sourceMappingURL=memory-stats.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"memory-stats.d.ts","sourceRoot":"","sources":["../../src/tools/memory-stats.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,KAAK,cAAc,EAAE,MAAM,qBAAqB,CAAA;AAC/D,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAG9C;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,WAAW,EAAE,GAAG,EAAE,MAAM,MAAM,GAAG,cAAc,CAuD3F;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAcjD;AAED;;;;;;GAMG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAM/D;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,mBAAmB,CAAC,CAAC,CAAC,GAAG;IAChG,MAAM,EAAE,MAAM,CAAA;IACd,QAAQ,EAAE,MAAM,CAAA;IAChB,GAAG,EAAE,MAAM,CAAA;IACX,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,EAAE,MAAM,CAAA;CACd,CAoCA"}
@@ -0,0 +1,121 @@
1
+ import { tool } from "@opencode-ai/plugin";
2
+ import { MemoryStore } from "../storage/store";
3
+ import { formatRelativeTime } from "../utils";
4
+ /**
5
+ * Creates the readonly memory statistics tool.
6
+ *
7
+ * @param store - Memory store.
8
+ * @param now - Clock function.
9
+ * @returns Tool definition.
10
+ */
11
+ export function createMemoryStatsTool(store, now) {
12
+ return tool({
13
+ description: "Show memory plugin statistics including observation counts, quality distribution, queue status, deletion activity, and tool usage.",
14
+ args: {},
15
+ async execute(_, context) {
16
+ await store.incrementToolUsage(context.sessionID, "memory_stats");
17
+ const [totalObservations, observations24h, summariesCount, pendingCounts, qualityDistribution, compression, toolUsage, deletionStats, dbSize,] = await Promise.all([
18
+ store.countObservations(),
19
+ store.countObservationsSince(now() - 86_400_000),
20
+ store.countSessionSummaries(),
21
+ store.getPendingStatusCounts(),
22
+ store.getQualityDistribution(),
23
+ store.getCompressionStats(),
24
+ store.getToolUsageStats(7),
25
+ store.getDeletionStats(30),
26
+ store.getDatabaseSizeBytes(),
27
+ ]);
28
+ const lowQuality = qualityDistribution.low;
29
+ const totalQuality = qualityDistribution.high + qualityDistribution.medium + qualityDistribution.low;
30
+ const highPct = percentage(qualityDistribution.high, totalQuality);
31
+ const mediumPct = percentage(qualityDistribution.medium, totalQuality);
32
+ const lowPct = percentage(qualityDistribution.low, totalQuality);
33
+ const toolCounts = summarizeToolUsage(toolUsage);
34
+ const compressionRatio = compression.averageRatio > 0 ? `${compression.averageRatio.toFixed(1)}:1` : "n/a";
35
+ const lastCompression = compression.lastCompressedAt
36
+ ? formatRelativeTime(compression.lastCompressedAt, now)
37
+ : "never";
38
+ return [
39
+ `Observations: ${totalObservations} (last 24h: ${observations24h}, low-quality: ${lowQuality})`,
40
+ `Session summaries: ${summariesCount}`,
41
+ `Pending messages: ${pendingCounts.pending} pending, ${pendingCounts.processing} processing, ${pendingCounts.failed} failed`,
42
+ `Database size: ${formatBytes(dbSize)}`,
43
+ `Avg compression ratio: ${compressionRatio}`,
44
+ `Quality: ${highPct}% high, ${mediumPct}% medium, ${lowPct}% low`,
45
+ `Tool usage (last 7d): search ${toolCounts.search}, timeline ${toolCounts.timeline}, get ${toolCounts.get}, forget ${toolCounts.forget}, stats ${toolCounts.stats}`,
46
+ `Deletions (last 30d): ${deletionStats.operations} operations, ${deletionStats.removed} observations removed`,
47
+ `Last compression: ${lastCompression}`,
48
+ ].join("\n");
49
+ },
50
+ });
51
+ }
52
+ /**
53
+ * Converts bytes into a compact human-readable unit.
54
+ *
55
+ * @param value - Byte count.
56
+ * @returns Formatted size string.
57
+ */
58
+ export function formatBytes(value) {
59
+ if (value <= 0) {
60
+ return "0 B";
61
+ }
62
+ const units = ["B", "KB", "MB", "GB"];
63
+ let size = value;
64
+ let index = 0;
65
+ while (size >= 1024 && index < units.length - 1) {
66
+ size /= 1024;
67
+ index += 1;
68
+ }
69
+ return `${size.toFixed(index === 0 ? 0 : 1)} ${units[index]}`;
70
+ }
71
+ /**
72
+ * Calculates a safe percentage.
73
+ *
74
+ * @param value - Partial value.
75
+ * @param total - Total value.
76
+ * @returns Rounded percentage.
77
+ */
78
+ export function percentage(value, total) {
79
+ if (total <= 0) {
80
+ return 0;
81
+ }
82
+ return Math.round((value / total) * 100);
83
+ }
84
+ /**
85
+ * Aggregates tool usage by known tool names.
86
+ *
87
+ * @param stats - Tool usage rows.
88
+ * @returns Aggregated counts.
89
+ */
90
+ export function summarizeToolUsage(stats) {
91
+ const counters = {
92
+ search: 0,
93
+ timeline: 0,
94
+ get: 0,
95
+ forget: 0,
96
+ stats: 0,
97
+ };
98
+ for (const row of stats) {
99
+ if (row.toolName === "memory_search") {
100
+ counters.search += row.callCount;
101
+ continue;
102
+ }
103
+ if (row.toolName === "memory_timeline") {
104
+ counters.timeline += row.callCount;
105
+ continue;
106
+ }
107
+ if (row.toolName === "memory_get") {
108
+ counters.get += row.callCount;
109
+ continue;
110
+ }
111
+ if (row.toolName === "memory_forget") {
112
+ counters.forget += row.callCount;
113
+ continue;
114
+ }
115
+ if (row.toolName === "memory_stats") {
116
+ counters.stats += row.callCount;
117
+ }
118
+ }
119
+ return counters;
120
+ }
121
+ //# sourceMappingURL=memory-stats.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"memory-stats.js","sourceRoot":"","sources":["../../src/tools/memory-stats.ts"],"names":[],"mappings":"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"}