laminark 0.1.0 → 2.21.7

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 (52) hide show
  1. package/.claude-plugin/marketplace.json +15 -0
  2. package/README.md +71 -36
  3. package/package.json +7 -9
  4. package/plugin/.claude-plugin/plugin.json +1 -1
  5. package/plugin/dist/hooks/handler.d.ts +1 -3
  6. package/plugin/dist/hooks/handler.d.ts.map +1 -1
  7. package/plugin/dist/hooks/handler.js +22 -310
  8. package/plugin/dist/hooks/handler.js.map +1 -1
  9. package/plugin/dist/index.d.ts +1 -3
  10. package/plugin/dist/index.d.ts.map +1 -1
  11. package/plugin/dist/index.js +392 -1895
  12. package/plugin/dist/index.js.map +1 -1
  13. package/plugin/dist/{observations-CorAAc1A.d.mts → observations-Ch0nc47i.d.mts} +1 -23
  14. package/plugin/dist/observations-Ch0nc47i.d.mts.map +1 -0
  15. package/plugin/dist/{tool-registry-e710BvXq.mjs → tool-registry-CZ3mJ4iR.mjs} +13 -932
  16. package/plugin/dist/tool-registry-CZ3mJ4iR.mjs.map +1 -0
  17. package/plugin/hooks/hooks.json +6 -6
  18. package/plugin/scripts/README.md +1 -19
  19. package/plugin/scripts/bump-version.sh +3 -1
  20. package/plugin/scripts/ensure-deps.sh +2 -5
  21. package/plugin/scripts/install.sh +39 -115
  22. package/plugin/scripts/local-install.sh +58 -93
  23. package/plugin/scripts/setup-tmpdir.sh +65 -0
  24. package/plugin/scripts/uninstall.sh +38 -76
  25. package/plugin/scripts/update.sh +69 -20
  26. package/plugin/scripts/verify-install.sh +25 -69
  27. package/plugin/ui/activity.js +0 -12
  28. package/plugin/ui/app.js +54 -24
  29. package/plugin/ui/graph.js +186 -413
  30. package/plugin/ui/help.js +172 -876
  31. package/plugin/ui/index.html +242 -506
  32. package/plugin/ui/settings.js +17 -781
  33. package/plugin/ui/styles.css +44 -990
  34. package/plugin/ui/timeline.js +2 -2
  35. package/plugin/CLAUDE.md +0 -10
  36. package/plugin/commands/recall.md +0 -55
  37. package/plugin/commands/remember.md +0 -34
  38. package/plugin/commands/resume.md +0 -45
  39. package/plugin/commands/stash.md +0 -34
  40. package/plugin/commands/status.md +0 -33
  41. package/plugin/dist/observations-CorAAc1A.d.mts.map +0 -1
  42. package/plugin/dist/tool-registry-e710BvXq.mjs.map +0 -1
  43. package/plugin/laminark.db +0 -0
  44. package/plugin/package.json +0 -17
  45. package/plugin/scripts/dev-sync.sh +0 -58
  46. package/plugin/ui/help/activity-feed.png +0 -0
  47. package/plugin/ui/help/analysis-panel.png +0 -0
  48. package/plugin/ui/help/graph-toolbar.png +0 -0
  49. package/plugin/ui/help/graph-view.png +0 -0
  50. package/plugin/ui/help/settings.png +0 -0
  51. package/plugin/ui/help/timeline.png +0 -0
  52. package/plugin/ui/tools.js +0 -826
@@ -0,0 +1,15 @@
1
+ {
2
+ "name": "laminark",
3
+ "owner": {
4
+ "name": "NoobyNull"
5
+ },
6
+ "plugins": [
7
+ {
8
+ "name": "laminark",
9
+ "source": "./plugin",
10
+ "description": "Persistent adaptive memory for Claude Code. Automatic observation capture, semantic search, topic detection, knowledge graph, and web visualization.",
11
+ "version": "2.21.6",
12
+ "category": "productivity"
13
+ }
14
+ ]
15
+ }
package/README.md CHANGED
@@ -14,18 +14,28 @@ Persistent adaptive memory for Claude Code. Automatically captures observations
14
14
 
15
15
  ## Installation
16
16
 
17
- ### Quick Install (Recommended)
17
+ User-level installation is recommended. This enables Laminark across all your projects with data automatically isolated per project directory.
18
18
 
19
- One command no git clone needed:
19
+ ### UI Installation (Easiest)
20
+
21
+ To install via Claude Code's UI (`/plugin` command), first set up TMPDIR to avoid EXDEV errors:
20
22
 
21
23
  ```bash
22
- curl -fsSL https://raw.githubusercontent.com/NoobyNull/Laminark/master/plugin/scripts/install.sh | bash
24
+ # One-time setup - run this once
25
+ git clone https://github.com/NoobyNull/Laminark.git
26
+ cd Laminark
27
+ ./scripts/setup-tmpdir.sh
28
+
29
+ # Then restart your terminal and restart Claude Code
23
30
  ```
24
31
 
25
- This will:
26
- 1. Install `laminark` globally via npm
27
- 2. Register the MCP server with Claude Code
28
- 3. Configure hooks in `~/.claude/settings.json`
32
+ After setup, you can install/update via Claude's UI:
33
+ 1. In Claude Code, type `/plugin`
34
+ 2. Select "Add marketplace"
35
+ 3. Enter `NoobyNull/Laminark`
36
+ 4. Click "Install"
37
+
38
+ **Why this is needed:** Systems with separate filesystems for `/home/` and `/tmp/` (common with btrfs, Docker, or separate partitions) encounter EXDEV errors during plugin installation. Setting TMPDIR fixes this globally.
29
39
 
30
40
  ### Local Installation (Development)
31
41
 
@@ -36,67 +46,92 @@ git clone https://github.com/NoobyNull/Laminark.git
36
46
  cd Laminark
37
47
  npm install
38
48
  npm run build
39
- ./plugin/scripts/local-install.sh
49
+ ./scripts/local-install.sh
40
50
  ```
41
51
 
42
- This uses `npm link` so changes to the repo are reflected immediately after rebuilding.
52
+ ### Marketplace Installation (End Users)
53
+
54
+ ```bash
55
+ ./scripts/install.sh
56
+ # Or: curl -fsSL https://raw.githubusercontent.com/NoobyNull/Laminark/master/scripts/install.sh | bash
57
+ ```
43
58
 
44
59
  ### Manual Installation (Advanced)
45
60
 
46
- If you need manual control:
61
+ If you need manual control or encounter issues:
47
62
 
48
63
  ```bash
49
- # Install the package
50
- npm install -g laminark
51
-
52
- # Register MCP server
53
- claude mcp add-json laminark '{"command":"laminark-server"}' -s user
54
-
55
- # Configure hooks manually in ~/.claude/settings.json
56
- # (see install.sh for the hook structure)
64
+ # Set TMPDIR to avoid cross-device errors
65
+ export TMPDIR=~/.claude/tmp
66
+ mkdir -p "$TMPDIR"
67
+ claude plugin add /path/to/Laminark
57
68
  ```
58
69
 
59
70
  ### Post-Installation
60
71
 
61
- Verify installation:
72
+ Enable the plugin:
62
73
 
63
74
  ```bash
64
- # If installed from repo:
65
- ./plugin/scripts/verify-install.sh
75
+ claude plugin enable laminark
76
+ ```
77
+
78
+ Verify installation:
66
79
 
67
- # Or check manually:
68
- npm list -g laminark && claude mcp list | grep laminark
80
+ ```bash
81
+ claude plugin list # Should show laminark
69
82
  ```
70
83
 
71
84
  Laminark will now run in every Claude Code session. Each project's memory is isolated by directory path -- Project A and Project B never share data, but each project remembers across sessions.
72
85
 
73
86
  ### Updating
74
87
 
88
+ Check for and install updates:
89
+
75
90
  ```bash
76
- npm update -g laminark
77
- # Or: ./plugin/scripts/update.sh
91
+ ./scripts/update.sh
92
+ # Or: npm run update
78
93
  ```
79
94
 
95
+ The update script will:
96
+ - Check your current version
97
+ - Fetch the latest version from GitHub
98
+ - Prompt before updating
99
+ - Handle EXDEV errors automatically
100
+
80
101
  ### Uninstalling
81
102
 
103
+ Remove the plugin with optional data cleanup:
104
+
82
105
  ```bash
83
- claude mcp remove laminark -s user
84
- npm uninstall -g laminark
85
- # Then remove laminark hook entries from ~/.claude/settings.json
86
- # Optionally: rm -rf ~/.laminark (deletes all memories)
106
+ ./scripts/uninstall.sh
107
+ # Or: npm run uninstall
87
108
  ```
88
109
 
89
- ## Recommended: GSD (Get Shit Done)
110
+ The uninstall script will:
111
+ - Remove the plugin
112
+ - Ask if you want to keep or delete your data
113
+ - Clean up plugin cache
90
114
 
91
- Laminark pairs well with [GSD](https://github.com/gsd-framework/gsd) by [@gsd-framework](https://github.com/gsd-framework), a structured workflow plugin for Claude Code. While Laminark handles persistent memory and context, GSD provides project planning, phased execution, and atomic commits. Together they give Claude Code sessions continuity (Laminark) and structure (GSD).
115
+ ### Troubleshooting: EXDEV Errors
92
116
 
93
- > **Note:** GSD is an independent project. Its authors do not endorse or recommend Laminark. This is our recommendation based on how well the two tools complement each other.
117
+ If you see `EXDEV: cross-device link not permitted` errors:
94
118
 
95
- ```bash
96
- claude plugin add gsd
97
- ```
119
+ **Cause:** Your `/home/` and `/tmp/` directories are on different filesystems (common with btrfs, Docker, or separate partitions).
120
+
121
+ **Solutions (choose one):**
122
+
123
+ 1. **For UI installation** - Run the setup script once:
124
+ ```bash
125
+ ./scripts/setup-tmpdir.sh
126
+ # Then restart terminal and Claude Code
127
+ ```
128
+ This configures TMPDIR globally, allowing you to use Claude's `/plugin` UI.
98
129
 
99
- The install scripts will offer to install GSD automatically if it isn't already present.
130
+ 2. **For command-line installation** - Use our scripts:
131
+ ```bash
132
+ ./scripts/local-install.sh # or ./scripts/install.sh
133
+ ```
134
+ These scripts handle EXDEV automatically without global configuration.
100
135
 
101
136
  ## Why User-Level?
102
137
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "laminark",
3
- "version": "0.1.0",
3
+ "version": "2.21.7",
4
4
  "description": "Persistent adaptive memory for Claude Code",
5
5
  "type": "module",
6
6
  "bin": {
@@ -10,7 +10,8 @@
10
10
  "main": "./plugin/dist/index.js",
11
11
  "types": "./plugin/dist/index.d.ts",
12
12
  "files": [
13
- "plugin"
13
+ "plugin",
14
+ ".claude-plugin"
14
15
  ],
15
16
  "engines": {
16
17
  "node": ">=22.0.0"
@@ -21,13 +22,10 @@
21
22
  "test": "vitest run",
22
23
  "test:watch": "vitest",
23
24
  "prepublishOnly": "npm run build",
24
- "install:local": "./plugin/scripts/local-install.sh",
25
- "install:global": "./plugin/scripts/install.sh",
26
- "update": "./plugin/scripts/update.sh",
27
- "uninstall": "./plugin/scripts/uninstall.sh",
28
- "verify": "./plugin/scripts/verify-install.sh",
29
- "sync": "./plugin/scripts/dev-sync.sh",
30
- "dev": "npm run build && npm run sync"
25
+ "install:local": "./scripts/local-install.sh",
26
+ "install:marketplace": "./scripts/install.sh",
27
+ "update": "./scripts/update.sh",
28
+ "uninstall": "./scripts/uninstall.sh"
31
29
  },
32
30
  "repository": {
33
31
  "type": "git",
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "laminark",
3
3
  "description": "Persistent adaptive memory for Claude Code. Automatic observation capture, semantic search, topic detection, knowledge graph, and web visualization.",
4
- "version": "0.1.0",
4
+ "version": "2.21.6",
5
5
  "author": {
6
6
  "name": "NoobyNull"
7
7
  },
@@ -1,4 +1,4 @@
1
- import { t as ObservationRepository } from "../observations-CorAAc1A.mjs";
1
+ import { t as ObservationRepository } from "../observations-Ch0nc47i.mjs";
2
2
  import * as better_sqlite30 from "better-sqlite3";
3
3
  import Database from "better-sqlite3";
4
4
 
@@ -63,7 +63,6 @@ interface DiscoveredTool {
63
63
  projectHash: string | null;
64
64
  description: string | null;
65
65
  serverName: string | null;
66
- triggerHints: string | null;
67
66
  }
68
67
  /**
69
68
  * Raw database row from the tool_registry table (snake_case).
@@ -77,7 +76,6 @@ interface ToolRegistryRow {
77
76
  project_hash: string | null;
78
77
  description: string | null;
79
78
  server_name: string | null;
80
- trigger_hints: string | null;
81
79
  usage_count: number;
82
80
  last_used_at: string | null;
83
81
  discovered_at: string;
@@ -1 +1 @@
1
- {"version":3,"file":"handler.d.ts","names":[],"sources":["../../../src/storage/research-buffer.ts","../../../src/shared/tool-types.ts","../../../src/storage/tool-registry.ts","../../../src/hooks/handler.ts"],"mappings":";;;;;;;;;AAcA;;;;;;cAAa,wBAAA;EAAA,iBACM,EAAA;EAAA,iBACA,WAAA;EAAA,iBAEA,UAAA;EAAA,iBACA,aAAA;EAAA,iBACA,SAAA;cAEL,EAAA,EAAI,QAAA,CAAc,QAAA,EAAU,WAAA;EAAA;;;EA2BxC,GAAA,CAAI,KAAA;IACF,SAAA;IACA,QAAA;IACA,MAAA;EAAA;EAmBA;;;EAFF,SAAA,CACE,SAAA,UACA,aAAA,YACC,KAAA;IAAQ,QAAA;IAAkB,MAAA;IAAgB,SAAA;EAAA;EAiBV;;;EAAnC,KAAA,CAAM,gBAAA;AAAA;;;;;;KCtFI,QAAA;;ADWZ;;KCNY,SAAA;;;;;UAMK,cAAA;EACf,IAAA;EACA,QAAA,EAAU,QAAA;EACV,KAAA,EAAO,SAAA;EACP,MAAA;EACA,WAAA;EACA,WAAA;EACA,UAAA;EACA,YAAA;AAAA;;;;UAMe,eAAA;EACf,EAAA;EACA,IAAA;EACA,SAAA;EACA,KAAA;EACA,MAAA;EACA,YAAA;EACA,WAAA;EACA,WAAA;EACA,aAAA;EACA,WAAA;EACA,YAAA;EACA,aAAA;EACA,UAAA;EACA,MAAA;AAAA;;;;UAkBe,cAAA;EACf,SAAA;EACA,WAAA;EACA,SAAA;AAAA;;;;UAMe,gBAAA;EACf,IAAA,EAAM,eAAA;EACN,KAAA;EACA,SAAA;AAAA;;;;;;AD1DF;;;;;;;cEEa,sBAAA;EAAA,iBACM,EAAA;EAAA,iBAGA,UAAA;EAAA,iBACA,eAAA;EAAA,iBACA,cAAA;EAAA,iBACA,aAAA;EAAA,iBACA,UAAA;EAAA,iBACA,SAAA;EAAA,iBACA,0BAAA;EAAA,iBACA,eAAA;EAAA,iBACA,mBAAA;EAAA,iBACA,sBAAA;EAAA,iBACA,iBAAA;EAAA,iBACA,kBAAA;EAAA,iBACA,aAAA;EAAA,iBACA,eAAA;EAAA,iBACA,cAAA;EAAA,iBACA,oBAAA;EAAA,iBACA,0BAAA;cAEL,EAAA,EAAI,QAAA,CAAc,QAAA;EFmDxB;;;;EE4GN,MAAA,CAAO,IAAA,EAAM,cAAA;;ADlMf;;;ECwNE,WAAA,CAAY,IAAA,UAAc,WAAA;EDxNR;AAKpB;;;;;AAMA;EC6NE,cAAA,CACE,IAAA,UACA,QAAA,EAAU,IAAA,CAAK,cAAA,WACf,SAAA,kBACA,OAAA;;;;EAqBF,aAAA,CAAc,WAAA,WAAsB,eAAA;EDpP1B;;;;EC4PV,sBAAA,CAAuB,WAAA,WAAsB,eAAA;EDxP7C;;;EC+PA,SAAA,CAAU,IAAA,WAAe,eAAA;ED7Pb;AAMd;;EC+PE,MAAA,CAAA,GAAU,eAAA;ED/PoB;;;ECsQ9B,KAAA,CAAA;EDlQA;;;;EC2QA,eAAA,CAAgB,QAAA,UAAkB,WAAA,UAAqB,YAAA,YAAmC,cAAA;EDtQ1F;;;EC8QA,kBAAA,CAAmB,SAAA,WAAoB,cAAA;ED1QvC;;;;ECkRA,aAAA,CAAc,WAAA,UAAqB,YAAA,YAAmC,cAAA;ED/PzC;;;;;ECwQ7B,cAAA,CAAe,WAAA,UAAqB,KAAA,YAAsB,cAAA;EDrQjD;;AAMX;;EC2QE,SAAA,CAAU,IAAA,UAAc,WAAA;ED1QH;;;ECsRrB,WAAA,CAAY,IAAA,UAAc,WAAA;EDpR1B;;;;ECiSA,UAAA,CAAW,IAAA,UAAc,WAAA;;AAzV3B;;;EAsWE,qBAAA,CAAsB,WAAA,WAAsB,eAAA;EAjL/B;;;;;EA+Lb,sBAAA,CAAuB,QAAA,UAAkB,WAAA,UAAqB,KAAA,YAAoB,KAAA;IAAQ,OAAA;EAAA;EAjFnD;;;;;EAAA,QAmG/B,aAAA;EAyDuB;;;;EAtC/B,eAAA,CAAgB,KAAA,UAAe,OAAA;IAAY,KAAA;IAAgB,KAAA;EAAA,IAAmB,gBAAA;EAkKjC;;;;EA5H7C,cAAA,CAAe,cAAA,EAAgB,YAAA,EAAc,OAAA;IAAY,KAAA;IAAgB,KAAA;EAAA,IAAmB,KAAA;IAAQ,OAAA;IAAiB,QAAA;EAAA;EAnbpG;;;;;EAwdX,WAAA,CACJ,KAAA,UACA,OAAA;IACE,KAAA;IACA,KAAA;IACA,MAAA;MAAW,OAAA;MAAoB,KAAA,CAAM,IAAA,WAAe,OAAA,CAAQ,YAAA;IAAA;IAC5D,gBAAA;EAAA,IAED,OAAA,CAAQ,gBAAA;EAvTE;;;;EAwXb,cAAA,CAAe,MAAA,UAAgB,SAAA,EAAW,YAAA;EAlV1C;;;;EAgWA,mBAAA,CAAoB,KAAA,YAAoB,KAAA;IAAQ,EAAA;IAAY,IAAA;IAAc,WAAA;EAAA;AAAA;;;;;AF7jB5E;;;;iBGkDgB,0BAAA,CACd,KAAA,EAAO,MAAA,mBACP,OAAA,EAAS,qBAAA,EACT,cAAA,GAAiB,wBAAA,EACjB,YAAA,GAAe,sBAAA,EACf,WAAA,WACA,EAAA,GAFqC,eAAA,CAEP,QAAA"}
1
+ {"version":3,"file":"handler.d.ts","names":[],"sources":["../../../src/storage/research-buffer.ts","../../../src/shared/tool-types.ts","../../../src/storage/tool-registry.ts","../../../src/hooks/handler.ts"],"mappings":"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"}