laminark 2.21.8 → 2.21.9
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/README.md +36 -71
- package/package.json +9 -7
- package/plugin/.claude-plugin/plugin.json +2 -2
- package/plugin/CLAUDE.md +10 -0
- package/plugin/commands/recall.md +55 -0
- package/plugin/commands/remember.md +34 -0
- package/plugin/commands/resume.md +45 -0
- package/plugin/commands/stash.md +34 -0
- package/plugin/commands/status.md +33 -0
- package/plugin/dist/hooks/handler.d.ts +3 -1
- package/plugin/dist/hooks/handler.d.ts.map +1 -1
- package/plugin/dist/hooks/handler.js +312 -23
- package/plugin/dist/hooks/handler.js.map +1 -1
- package/plugin/dist/index.d.ts +3 -1
- package/plugin/dist/index.d.ts.map +1 -1
- package/plugin/dist/index.js +2111 -525
- package/plugin/dist/index.js.map +1 -1
- package/plugin/dist/{observations-Ch0nc47i.d.mts → observations-CorAAc1A.d.mts} +23 -1
- package/plugin/dist/observations-CorAAc1A.d.mts.map +1 -0
- package/plugin/dist/{tool-registry-CZ3mJ4iR.mjs → tool-registry-D8un_AcG.mjs} +932 -13
- package/plugin/dist/tool-registry-D8un_AcG.mjs.map +1 -0
- package/plugin/hooks/hooks.json +6 -6
- package/plugin/laminark.db +0 -0
- package/plugin/package.json +17 -0
- package/plugin/scripts/README.md +19 -1
- package/plugin/scripts/bump-version.sh +24 -19
- package/plugin/scripts/dev-sync.sh +58 -0
- package/plugin/scripts/ensure-deps.sh +5 -2
- package/plugin/scripts/install.sh +115 -39
- package/plugin/scripts/local-install.sh +93 -58
- package/plugin/scripts/uninstall.sh +76 -38
- package/plugin/scripts/update.sh +20 -69
- package/plugin/scripts/verify-install.sh +69 -25
- package/plugin/ui/activity.js +12 -0
- package/plugin/ui/app.js +24 -54
- package/plugin/ui/graph.js +413 -186
- package/plugin/ui/help/activity-feed.png +0 -0
- package/plugin/ui/help/analysis-panel.png +0 -0
- package/plugin/ui/help/graph-toolbar.png +0 -0
- package/plugin/ui/help/graph-view.png +0 -0
- package/plugin/ui/help/settings.png +0 -0
- package/plugin/ui/help/timeline.png +0 -0
- package/plugin/ui/help.js +876 -172
- package/plugin/ui/index.html +506 -242
- package/plugin/ui/settings.js +781 -17
- package/plugin/ui/styles.css +990 -44
- package/plugin/ui/timeline.js +2 -2
- package/plugin/ui/tools.js +826 -0
- package/.claude-plugin/marketplace.json +0 -15
- package/plugin/dist/observations-Ch0nc47i.d.mts.map +0 -1
- package/plugin/dist/tool-registry-CZ3mJ4iR.mjs.map +0 -1
- package/plugin/scripts/setup-tmpdir.sh +0 -65
package/README.md
CHANGED
|
@@ -14,28 +14,18 @@ Persistent adaptive memory for Claude Code. Automatically captures observations
|
|
|
14
14
|
|
|
15
15
|
## Installation
|
|
16
16
|
|
|
17
|
-
|
|
17
|
+
### Quick Install (Recommended)
|
|
18
18
|
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
To install via Claude Code's UI (`/plugin` command), first set up TMPDIR to avoid EXDEV errors:
|
|
19
|
+
One command — no git clone needed:
|
|
22
20
|
|
|
23
21
|
```bash
|
|
24
|
-
|
|
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
|
|
22
|
+
curl -fsSL https://raw.githubusercontent.com/NoobyNull/Laminark/master/plugin/scripts/install.sh | bash
|
|
30
23
|
```
|
|
31
24
|
|
|
32
|
-
|
|
33
|
-
1.
|
|
34
|
-
2.
|
|
35
|
-
3.
|
|
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.
|
|
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`
|
|
39
29
|
|
|
40
30
|
### Local Installation (Development)
|
|
41
31
|
|
|
@@ -46,92 +36,67 @@ git clone https://github.com/NoobyNull/Laminark.git
|
|
|
46
36
|
cd Laminark
|
|
47
37
|
npm install
|
|
48
38
|
npm run build
|
|
49
|
-
./scripts/local-install.sh
|
|
39
|
+
./plugin/scripts/local-install.sh
|
|
50
40
|
```
|
|
51
41
|
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
```bash
|
|
55
|
-
./scripts/install.sh
|
|
56
|
-
# Or: curl -fsSL https://raw.githubusercontent.com/NoobyNull/Laminark/master/scripts/install.sh | bash
|
|
57
|
-
```
|
|
42
|
+
This uses `npm link` so changes to the repo are reflected immediately after rebuilding.
|
|
58
43
|
|
|
59
44
|
### Manual Installation (Advanced)
|
|
60
45
|
|
|
61
|
-
If you need manual control
|
|
46
|
+
If you need manual control:
|
|
62
47
|
|
|
63
48
|
```bash
|
|
64
|
-
#
|
|
65
|
-
|
|
66
|
-
mkdir -p "$TMPDIR"
|
|
67
|
-
claude plugin add /path/to/Laminark
|
|
68
|
-
```
|
|
69
|
-
|
|
70
|
-
### Post-Installation
|
|
49
|
+
# Install the package
|
|
50
|
+
npm install -g laminark
|
|
71
51
|
|
|
72
|
-
|
|
52
|
+
# Register MCP server
|
|
53
|
+
claude mcp add-json laminark '{"command":"laminark-server"}' -s user
|
|
73
54
|
|
|
74
|
-
|
|
75
|
-
|
|
55
|
+
# Configure hooks manually in ~/.claude/settings.json
|
|
56
|
+
# (see install.sh for the hook structure)
|
|
76
57
|
```
|
|
77
58
|
|
|
59
|
+
### Post-Installation
|
|
60
|
+
|
|
78
61
|
Verify installation:
|
|
79
62
|
|
|
80
63
|
```bash
|
|
81
|
-
|
|
64
|
+
# If installed from repo:
|
|
65
|
+
./plugin/scripts/verify-install.sh
|
|
66
|
+
|
|
67
|
+
# Or check manually:
|
|
68
|
+
npm list -g laminark && claude mcp list | grep laminark
|
|
82
69
|
```
|
|
83
70
|
|
|
84
71
|
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.
|
|
85
72
|
|
|
86
73
|
### Updating
|
|
87
74
|
|
|
88
|
-
Check for and install updates:
|
|
89
|
-
|
|
90
75
|
```bash
|
|
91
|
-
|
|
92
|
-
# Or:
|
|
76
|
+
npm update -g laminark
|
|
77
|
+
# Or: ./plugin/scripts/update.sh
|
|
93
78
|
```
|
|
94
79
|
|
|
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
|
-
|
|
101
80
|
### Uninstalling
|
|
102
81
|
|
|
103
|
-
Remove the plugin with optional data cleanup:
|
|
104
|
-
|
|
105
82
|
```bash
|
|
106
|
-
|
|
107
|
-
|
|
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)
|
|
108
87
|
```
|
|
109
88
|
|
|
110
|
-
|
|
111
|
-
- Remove the plugin
|
|
112
|
-
- Ask if you want to keep or delete your data
|
|
113
|
-
- Clean up plugin cache
|
|
114
|
-
|
|
115
|
-
### Troubleshooting: EXDEV Errors
|
|
116
|
-
|
|
117
|
-
If you see `EXDEV: cross-device link not permitted` errors:
|
|
89
|
+
## Recommended: GSD (Get Shit Done)
|
|
118
90
|
|
|
119
|
-
|
|
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).
|
|
120
92
|
|
|
121
|
-
**
|
|
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.
|
|
122
94
|
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
# Then restart terminal and Claude Code
|
|
127
|
-
```
|
|
128
|
-
This configures TMPDIR globally, allowing you to use Claude's `/plugin` UI.
|
|
95
|
+
```bash
|
|
96
|
+
claude plugin add gsd
|
|
97
|
+
```
|
|
129
98
|
|
|
130
|
-
|
|
131
|
-
```bash
|
|
132
|
-
./scripts/local-install.sh # or ./scripts/install.sh
|
|
133
|
-
```
|
|
134
|
-
These scripts handle EXDEV automatically without global configuration.
|
|
99
|
+
The install scripts will offer to install GSD automatically if it isn't already present.
|
|
135
100
|
|
|
136
101
|
## Why User-Level?
|
|
137
102
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "laminark",
|
|
3
|
-
"version": "2.21.
|
|
3
|
+
"version": "2.21.9",
|
|
4
4
|
"description": "Persistent adaptive memory for Claude Code",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
@@ -10,8 +10,7 @@
|
|
|
10
10
|
"main": "./plugin/dist/index.js",
|
|
11
11
|
"types": "./plugin/dist/index.d.ts",
|
|
12
12
|
"files": [
|
|
13
|
-
"plugin"
|
|
14
|
-
".claude-plugin"
|
|
13
|
+
"plugin"
|
|
15
14
|
],
|
|
16
15
|
"engines": {
|
|
17
16
|
"node": ">=22.0.0"
|
|
@@ -22,10 +21,13 @@
|
|
|
22
21
|
"test": "vitest run",
|
|
23
22
|
"test:watch": "vitest",
|
|
24
23
|
"prepublishOnly": "npm run build",
|
|
25
|
-
"install:local": "./scripts/local-install.sh",
|
|
26
|
-
"install:
|
|
27
|
-
"update": "./scripts/update.sh",
|
|
28
|
-
"uninstall": "./scripts/uninstall.sh"
|
|
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"
|
|
29
31
|
},
|
|
30
32
|
"repository": {
|
|
31
33
|
"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": "
|
|
4
|
+
"version": "0.1.0",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "NoobyNull"
|
|
7
7
|
},
|
|
@@ -9,5 +9,5 @@
|
|
|
9
9
|
"repository": "https://github.com/NoobyNull/Laminark",
|
|
10
10
|
"license": "ISC",
|
|
11
11
|
"keywords": ["memory", "mcp", "sqlite", "knowledge-graph", "semantic-search"],
|
|
12
|
-
"skills": "
|
|
12
|
+
"skills": "./skills/"
|
|
13
13
|
}
|
package/plugin/CLAUDE.md
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
# Memory & Context
|
|
2
|
+
|
|
3
|
+
When you need to recall prior work, decisions, or context:
|
|
4
|
+
- **First** query Laminark's memory tools (`recall`, `query_graph`, `query_branches`) before resorting to grep/glob searches
|
|
5
|
+
- Use `recall` with keyword searches to find past observations, decisions, and findings
|
|
6
|
+
- Use `query_graph` to find relationships between files, decisions, and problems
|
|
7
|
+
- Use `query_branches` to see work history - what was investigated, fixed, built, and where it left off
|
|
8
|
+
- Use `show_branch` to trace the full arc of a specific work unit (investigation -> diagnosis -> planning -> execution -> verification)
|
|
9
|
+
- Use `save_memory` to persist important decisions, findings, and reference material
|
|
10
|
+
- Only fall back to raw file searches (Grep, Glob) when Laminark has no relevant results
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
# /laminark:recall
|
|
2
|
+
|
|
3
|
+
Search Laminark memories by description or topic.
|
|
4
|
+
|
|
5
|
+
## Usage
|
|
6
|
+
|
|
7
|
+
/laminark:recall {description of what you're looking for}
|
|
8
|
+
|
|
9
|
+
## Instructions
|
|
10
|
+
|
|
11
|
+
When the user invokes this command:
|
|
12
|
+
|
|
13
|
+
1. Take the text provided after the command as the search query
|
|
14
|
+
2. Call the `search` MCP tool with:
|
|
15
|
+
- `query`: The user's search description
|
|
16
|
+
- `limit`: 10 (show top 10 results)
|
|
17
|
+
3. Present the results to the user in a readable format:
|
|
18
|
+
- Show each result with its relevance score, a content snippet, the source, and when it was created
|
|
19
|
+
- Group results by relevance tier if helpful (highly relevant, somewhat relevant)
|
|
20
|
+
- If results include memories from different sessions, note which session they came from
|
|
21
|
+
|
|
22
|
+
## Response Format
|
|
23
|
+
|
|
24
|
+
Present results like this:
|
|
25
|
+
|
|
26
|
+
**Memory Search: "{query}"**
|
|
27
|
+
|
|
28
|
+
Found {N} relevant memories:
|
|
29
|
+
|
|
30
|
+
1. **[{score}% match]** {content snippet, first 200 chars}
|
|
31
|
+
_{source} | {relative time}_
|
|
32
|
+
|
|
33
|
+
2. **[{score}% match]** {content snippet}
|
|
34
|
+
_{source} | {relative time}_
|
|
35
|
+
|
|
36
|
+
...
|
|
37
|
+
|
|
38
|
+
_Use the search tool for more specific queries, or get_observations for full details on any memory._
|
|
39
|
+
|
|
40
|
+
## Examples
|
|
41
|
+
|
|
42
|
+
User: /laminark:recall authentication decisions
|
|
43
|
+
Action: Call search with query="authentication decisions"
|
|
44
|
+
Response: Show top results about auth-related memories with scores and snippets
|
|
45
|
+
|
|
46
|
+
User: /laminark:recall what database did we choose
|
|
47
|
+
Action: Call search with query="what database did we choose"
|
|
48
|
+
Response: Show results mentioning database selection decisions
|
|
49
|
+
|
|
50
|
+
## Notes
|
|
51
|
+
|
|
52
|
+
- Results use hybrid search (keyword + semantic) for best matching
|
|
53
|
+
- If no results are found, suggest the user try different search terms or check if they have saved any memories yet
|
|
54
|
+
- If no query is provided after the command, ask the user what they'd like to search for
|
|
55
|
+
- For detailed view of any result, Claude can use the get_observations MCP tool with the observation ID
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
# /laminark:remember
|
|
2
|
+
|
|
3
|
+
Save a memory to Laminark for future retrieval.
|
|
4
|
+
|
|
5
|
+
## Usage
|
|
6
|
+
|
|
7
|
+
/laminark:remember {text to remember}
|
|
8
|
+
|
|
9
|
+
## Instructions
|
|
10
|
+
|
|
11
|
+
When the user invokes this command:
|
|
12
|
+
|
|
13
|
+
1. Take the text provided after the command as the memory content
|
|
14
|
+
2. Call the `save_memory` MCP tool with:
|
|
15
|
+
- `content`: The user's text exactly as provided
|
|
16
|
+
- `source`: "slash:remember" (identifies this as an explicit user save)
|
|
17
|
+
3. Confirm to the user that the memory has been saved
|
|
18
|
+
4. Show a brief snippet of what was saved (first 100 characters)
|
|
19
|
+
|
|
20
|
+
## Examples
|
|
21
|
+
|
|
22
|
+
User: /laminark:remember The auth system uses JWT with 15-minute expiry and refresh tokens stored in httpOnly cookies
|
|
23
|
+
Action: Call save_memory with content="The auth system uses JWT with 15-minute expiry and refresh tokens stored in httpOnly cookies" and source="slash:remember"
|
|
24
|
+
Response: "Saved to memory: 'The auth system uses JWT with 15-minute expiry and refresh tokens stored in httpOnly cookies'"
|
|
25
|
+
|
|
26
|
+
User: /laminark:remember We decided to use Postgres instead of MySQL for the new service because of JSONB support
|
|
27
|
+
Action: Call save_memory with the full text
|
|
28
|
+
Response: "Saved to memory: 'We decided to use Postgres instead of MySQL for the new serv...'"
|
|
29
|
+
|
|
30
|
+
## Notes
|
|
31
|
+
|
|
32
|
+
- Memories saved via /laminark:remember are high-priority in search results (source: "slash:remember")
|
|
33
|
+
- These memories persist across sessions and are included in session context injection
|
|
34
|
+
- If no text is provided after the command, ask the user what they'd like to remember
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
# /laminark:resume
|
|
2
|
+
|
|
3
|
+
Resume a previously stashed context thread, or list all available stashed threads.
|
|
4
|
+
|
|
5
|
+
## Usage
|
|
6
|
+
|
|
7
|
+
/laminark:resume
|
|
8
|
+
/laminark:resume {stash-id}
|
|
9
|
+
|
|
10
|
+
## Instructions
|
|
11
|
+
|
|
12
|
+
When the user invokes this command:
|
|
13
|
+
|
|
14
|
+
### List mode (no ID provided)
|
|
15
|
+
|
|
16
|
+
1. Call the `topic_context` MCP tool with no arguments (or limit: 5)
|
|
17
|
+
2. Present the stashed threads as a numbered list showing:
|
|
18
|
+
- Topic label
|
|
19
|
+
- How long ago it was stashed
|
|
20
|
+
- Brief summary (first 80 characters)
|
|
21
|
+
3. Tell the user they can resume a specific thread by providing its ID
|
|
22
|
+
|
|
23
|
+
### Resume mode (ID provided)
|
|
24
|
+
|
|
25
|
+
1. Call the `topic_context` MCP tool to look up the stash
|
|
26
|
+
2. Restore the context from the stash observations into the conversation
|
|
27
|
+
3. Confirm to the user which thread was resumed and how many observations were restored
|
|
28
|
+
4. Summarize the key context from the restored thread so the user can pick up where they left off
|
|
29
|
+
|
|
30
|
+
## Examples
|
|
31
|
+
|
|
32
|
+
User: /laminark:resume
|
|
33
|
+
Action: Call topic_context to list stashed threads
|
|
34
|
+
Response: Show numbered list of available threads with topic labels and timestamps
|
|
35
|
+
|
|
36
|
+
User: /laminark:resume abc123def456
|
|
37
|
+
Action: Resume the specific stash, inject its context
|
|
38
|
+
Response: "Resumed: 'JWT authentication' -- Context restored with 5 observations. Here's where you left off: ..."
|
|
39
|
+
|
|
40
|
+
## Notes
|
|
41
|
+
|
|
42
|
+
- Only threads with status "stashed" are shown (already resumed threads are excluded)
|
|
43
|
+
- Resuming a thread marks it as "resumed" so it no longer appears in the list
|
|
44
|
+
- The restored context includes observation snapshots from the time of stashing
|
|
45
|
+
- If no stashed threads exist, inform the user they are working in a single thread
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
# /laminark:stash
|
|
2
|
+
|
|
3
|
+
Manually stash the current session's context for later retrieval.
|
|
4
|
+
|
|
5
|
+
## Usage
|
|
6
|
+
|
|
7
|
+
/laminark:stash [optional label]
|
|
8
|
+
|
|
9
|
+
## Instructions
|
|
10
|
+
|
|
11
|
+
When the user invokes this command:
|
|
12
|
+
|
|
13
|
+
1. Call the `save_memory` MCP tool to persist current observations, then call the stash handler to snapshot the current session
|
|
14
|
+
2. If a label is provided after the command, use it as the stash topic label
|
|
15
|
+
3. If no label is provided, one is generated automatically from the earliest observation
|
|
16
|
+
4. Confirm to the user that their context was stashed
|
|
17
|
+
5. Show the topic label and remind them about /laminark:resume
|
|
18
|
+
|
|
19
|
+
## Examples
|
|
20
|
+
|
|
21
|
+
User: /laminark:stash authentication implementation
|
|
22
|
+
Action: Stash current session context with label "authentication implementation"
|
|
23
|
+
Response: "Context stashed: 'authentication implementation'. Use /laminark:resume to return to it."
|
|
24
|
+
|
|
25
|
+
User: /laminark:stash
|
|
26
|
+
Action: Stash current session context with auto-generated label
|
|
27
|
+
Response: "Context stashed: 'Initial project setup and configur...'. Use /laminark:resume to return to it."
|
|
28
|
+
|
|
29
|
+
## Notes
|
|
30
|
+
|
|
31
|
+
- Stashing preserves a snapshot of the current session's observations
|
|
32
|
+
- The stash remains available across sessions until resumed or deleted
|
|
33
|
+
- Use /laminark:resume to list available stashes or restore a specific one
|
|
34
|
+
- Automatic stashing also occurs when topic shifts are detected during normal work
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
# /laminark:status
|
|
2
|
+
|
|
3
|
+
Show Laminark system status: connection info, memory count, token estimates, and capabilities.
|
|
4
|
+
|
|
5
|
+
## Usage
|
|
6
|
+
|
|
7
|
+
/laminark:status
|
|
8
|
+
|
|
9
|
+
## Instructions
|
|
10
|
+
|
|
11
|
+
When the user invokes this command:
|
|
12
|
+
|
|
13
|
+
1. Call the `status` MCP tool with no arguments
|
|
14
|
+
2. Present the returned dashboard directly to the user
|
|
15
|
+
|
|
16
|
+
The tool returns a formatted status report including:
|
|
17
|
+
- **Connection**: project path, project hash, database path, uptime
|
|
18
|
+
- **Capabilities**: vector search availability, embedding worker status
|
|
19
|
+
- **Memories**: observation count, embedded count, session count, stashed threads
|
|
20
|
+
- **Tokens**: estimated total tokens across all stored memories
|
|
21
|
+
- **Knowledge Graph**: node and edge counts
|
|
22
|
+
|
|
23
|
+
## Examples
|
|
24
|
+
|
|
25
|
+
User: /laminark:status
|
|
26
|
+
Action: Call the status MCP tool
|
|
27
|
+
Response: Display the formatted status dashboard
|
|
28
|
+
|
|
29
|
+
## Notes
|
|
30
|
+
|
|
31
|
+
- This is a read-only diagnostic command with no side effects
|
|
32
|
+
- Token estimates use the ~4 chars/token heuristic
|
|
33
|
+
- Uptime reflects time since the MCP server process started
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { t as ObservationRepository } from "../observations-
|
|
1
|
+
import { t as ObservationRepository } from "../observations-CorAAc1A.mjs";
|
|
2
2
|
import * as better_sqlite30 from "better-sqlite3";
|
|
3
3
|
import Database from "better-sqlite3";
|
|
4
4
|
|
|
@@ -63,6 +63,7 @@ interface DiscoveredTool {
|
|
|
63
63
|
projectHash: string | null;
|
|
64
64
|
description: string | null;
|
|
65
65
|
serverName: string | null;
|
|
66
|
+
triggerHints: string | null;
|
|
66
67
|
}
|
|
67
68
|
/**
|
|
68
69
|
* Raw database row from the tool_registry table (snake_case).
|
|
@@ -76,6 +77,7 @@ interface ToolRegistryRow {
|
|
|
76
77
|
project_hash: string | null;
|
|
77
78
|
description: string | null;
|
|
78
79
|
server_name: string | null;
|
|
80
|
+
trigger_hints: string | null;
|
|
79
81
|
usage_count: number;
|
|
80
82
|
last_used_at: string | null;
|
|
81
83
|
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;AAAA;;;;UAMe,eAAA;EACf,EAAA;EACA,IAAA;EACA,SAAA;EACA,KAAA;EACA,MAAA;EACA,YAAA;EACA,WAAA;EACA,WAAA;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;;;;;;
|
|
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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"}
|