toon-memory 1.0.4 → 1.0.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/bin/setup.js CHANGED
@@ -1,73 +1,36 @@
1
1
  #!/usr/bin/env node
2
-
3
- import { existsSync, mkdirSync, copyFileSync, readFileSync, writeFileSync } from "fs"
4
- import { join, dirname } from "path"
2
+ import { existsSync, mkdirSync, writeFileSync, cpSync } from "fs"
3
+ import { dirname, join } from "path"
5
4
  import { fileURLToPath } from "url"
6
5
  import { execSync } from "child_process"
7
6
 
8
7
  const __dirname = dirname(fileURLToPath(import.meta.url))
9
- const PROJECT_ROOT = process.cwd()
10
- const TOOLS_DIR = join(PROJECT_ROOT, ".opencode", "tools")
11
- const MEMORY_DIR = join(PROJECT_ROOT, ".opencode", "memory")
12
- const MEMORY_FILE = join(MEMORY_DIR, "data.toon")
13
- const SKILL_DIR = join(PROJECT_ROOT, ".opencode", "skills")
14
- const SKILL_FILE = join(SKILL_DIR, "toon-memory.md")
15
- const PKG_DIR = join(__dirname, "..")
16
-
17
- function ensureDir(dir) {
18
- if (!existsSync(dir)) mkdirSync(dir, { recursive: true })
8
+ const projectRoot = process.cwd()
9
+ const toolsDir = join(projectRoot, ".opencode", "tools")
10
+ const memoryDir = join(projectRoot, ".opencode", "memory")
11
+ const memoryFile = join(memoryDir, "data.toon")
12
+ const sourceDir = join(__dirname, "..", "src")
13
+
14
+ // Auto-install @toon-format/toon if not present
15
+ try {
16
+ require.resolve("@toon-format/toon")
17
+ } catch {
18
+ console.log("Installing @toon-format/toon...")
19
+ execSync("npm install @toon-format/toon", { cwd: projectRoot, stdio: "inherit" })
19
20
  }
20
21
 
21
- function main() {
22
- console.log("🧠 toon-memory — Installing persistent memory for OpenCode...\n")
23
-
24
- // 1. Copy tool file
25
- ensureDir(TOOLS_DIR)
26
- const toolSrc = join(PKG_DIR, "src", "memory.ts")
27
- const toolDest = join(TOOLS_DIR, "memory.ts")
28
- copyFileSync(toolSrc, toolDest)
29
- console.log(` āœ… Tool: ${toolDest}`)
30
-
31
- // 2. Create memory directory and initial data file
32
- ensureDir(MEMORY_DIR)
33
- if (!existsSync(MEMORY_FILE)) {
34
- writeFileSync(MEMORY_FILE, "version: 1\nentries[0|]:\nsummaries:\n", "utf-8")
35
- console.log(` āœ… Memory: ${MEMORY_FILE}`)
36
- } else {
37
- console.log(` ā­ļø Memory already exists: ${MEMORY_FILE}`)
38
- }
39
-
40
- // 3. Copy SKILL.md
41
- ensureDir(SKILL_DIR)
42
- const skillSrc = join(PKG_DIR, "skills", "toon-memory.md")
43
- if (existsSync(skillSrc)) {
44
- copyFileSync(skillSrc, SKILL_FILE)
45
- console.log(` āœ… Skill: ${SKILL_FILE}`)
46
- }
22
+ // Create directories
23
+ if (!existsSync(toolsDir)) mkdirSync(toolsDir, { recursive: true })
24
+ if (!existsSync(memoryDir)) mkdirSync(memoryDir, { recursive: true })
47
25
 
48
- // 4. Install @toon-format/toon if not present
49
- const pkgPath = join(PROJECT_ROOT, "package.json")
50
- if (existsSync(pkgPath)) {
51
- const pkg = JSON.parse(readFileSync(pkgPath, "utf-8"))
52
- const deps = { ...pkg.dependencies, ...pkg.devDependencies }
53
- if (!deps["@toon-format/toon"]) {
54
- console.log("\n šŸ“¦ Installing @toon-format/toon...")
55
- try {
56
- execSync("npm install @toon-format/toon", { cwd: PROJECT_ROOT, stdio: "inherit" })
57
- console.log(" āœ… @toon-format/toon installed")
58
- } catch {
59
- console.log(" āš ļø Failed to install. Run manually: npm install @toon-format/toon")
60
- }
61
- }
62
- }
26
+ // Copy memory.ts
27
+ cpSync(join(sourceDir, "memory.ts"), join(toolsDir, "memory.ts"))
28
+ console.log("Copied memory.ts to .opencode/tools/")
63
29
 
64
- console.log("\nšŸŽ‰ Done! Restart OpenCode to load the memory tools.")
65
- console.log("\nUsage:")
66
- console.log(" memory_stats — See memory state")
67
- console.log(" memory_remember — Save a decision/pattern/bug")
68
- console.log(" memory_recall — Search memory before reading files")
69
- console.log(" memory_forget — Remove an entry")
70
- console.log(" memory_summary — Save/retrieve file summaries")
30
+ // Create empty memory file if it doesn't exist
31
+ if (!existsSync(memoryFile)) {
32
+ writeFileSync(memoryFile, "version: 1\nentries[0|]{id|category|key|content|file|tags|date}:\n")
33
+ console.log("Created .opencode/memory/data.toon")
71
34
  }
72
35
 
73
- main()
36
+ console.log("toon-memory installed! Restart opencode to use memory tools.")
File without changes