@xfabric/memory 0.2.0 → 0.2.2
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/plugin/index.d.ts.map +1 -1
- package/dist/plugin/index.js +23 -10
- package/dist/plugin/index.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/plugin/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/plugin/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AA0ClD,eAAO,MAAM,YAAY,EAAE,MAyG1B,CAAC;AAEF,eAAe,YAAY,CAAC"}
|
package/dist/plugin/index.js
CHANGED
|
@@ -3,19 +3,33 @@
|
|
|
3
3
|
* Exposes memory_search and memory_get tools to AI agents
|
|
4
4
|
*/
|
|
5
5
|
import { tool } from "@opencode-ai/plugin/tool";
|
|
6
|
+
import { homedir } from "node:os";
|
|
7
|
+
import { join } from "node:path";
|
|
6
8
|
import { MemoryManager } from "../memory-manager.js";
|
|
7
9
|
let manager = null;
|
|
8
|
-
|
|
10
|
+
/**
|
|
11
|
+
* Get the XDG data directory for opencode
|
|
12
|
+
* Follows XDG Base Directory Specification
|
|
13
|
+
*/
|
|
14
|
+
function getDataDir() {
|
|
15
|
+
const xdgDataHome = process.env.XDG_DATA_HOME || join(homedir(), ".local", "share");
|
|
16
|
+
return join(xdgDataHome, "memory");
|
|
17
|
+
}
|
|
18
|
+
async function getManager() {
|
|
9
19
|
if (!manager) {
|
|
20
|
+
const memoryDir = getDataDir();
|
|
21
|
+
// Ensure memory directory exists
|
|
22
|
+
const { mkdir } = await import("node:fs/promises");
|
|
23
|
+
await mkdir(memoryDir, { recursive: true });
|
|
10
24
|
manager = await MemoryManager.create({
|
|
11
25
|
agentId: "opencode-agent",
|
|
12
|
-
workspaceDir,
|
|
26
|
+
workspaceDir: memoryDir, // Index markdown files from memory directory
|
|
13
27
|
provider: "auto",
|
|
14
28
|
remote: {
|
|
15
29
|
apiKey: process.env.OPENROUTER_API_KEY || process.env.OPENAI_API_KEY,
|
|
16
30
|
},
|
|
17
31
|
store: {
|
|
18
|
-
path:
|
|
32
|
+
path: join(memoryDir, "index.sqlite"),
|
|
19
33
|
},
|
|
20
34
|
sync: {
|
|
21
35
|
enabled: true,
|
|
@@ -24,12 +38,12 @@ async function getManager(workspaceDir) {
|
|
|
24
38
|
}
|
|
25
39
|
return manager;
|
|
26
40
|
}
|
|
27
|
-
export const MemoryPlugin = async (
|
|
28
|
-
const
|
|
41
|
+
export const MemoryPlugin = async () => {
|
|
42
|
+
const memoryDir = getDataDir();
|
|
29
43
|
return {
|
|
30
44
|
tool: {
|
|
31
45
|
memory_search: tool({
|
|
32
|
-
description: "Search semantic memory for relevant information from indexed markdown files
|
|
46
|
+
description: "Search semantic memory for relevant information from indexed markdown files. " +
|
|
33
47
|
"Use this to find past context, preferences, notes, or any stored knowledge.",
|
|
34
48
|
args: {
|
|
35
49
|
query: tool.schema.string().describe("Natural language search query"),
|
|
@@ -40,7 +54,7 @@ export const MemoryPlugin = async (ctx) => {
|
|
|
40
54
|
},
|
|
41
55
|
async execute(args) {
|
|
42
56
|
try {
|
|
43
|
-
const mgr = await getManager(
|
|
57
|
+
const mgr = await getManager();
|
|
44
58
|
const results = await mgr.search(args.query, {
|
|
45
59
|
maxResults: args.maxResults ?? 10,
|
|
46
60
|
});
|
|
@@ -75,7 +89,7 @@ export const MemoryPlugin = async (ctx) => {
|
|
|
75
89
|
args: {
|
|
76
90
|
path: tool.schema
|
|
77
91
|
.string()
|
|
78
|
-
.describe("Relative path to the file (from
|
|
92
|
+
.describe("Relative path to the file (from memory directory)"),
|
|
79
93
|
from: tool.schema
|
|
80
94
|
.number()
|
|
81
95
|
.optional()
|
|
@@ -88,8 +102,7 @@ export const MemoryPlugin = async (ctx) => {
|
|
|
88
102
|
async execute(args) {
|
|
89
103
|
try {
|
|
90
104
|
const { readFile } = await import("node:fs/promises");
|
|
91
|
-
const
|
|
92
|
-
const absPath = join(workspaceDir, args.path);
|
|
105
|
+
const absPath = join(memoryDir, args.path);
|
|
93
106
|
const content = await readFile(absPath, "utf-8");
|
|
94
107
|
const allLines = content.split("\n");
|
|
95
108
|
const startLine = Math.max(1, args.from ?? 1);
|
package/dist/plugin/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/plugin/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,0BAA0B,CAAC;AAEhD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAErD,IAAI,OAAO,GAAyB,IAAI,CAAC;AAEzC,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/plugin/index.ts"],"names":[],"mappings":"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"}
|