@dahch/muninn 0.1.0 → 0.2.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.
- package/README.md +260 -17
- package/dist/cli.d.ts +1 -1
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +18 -2
- package/dist/cli.js.map +1 -1
- package/dist/commands/memory.d.ts.map +1 -1
- package/dist/commands/memory.js +52 -3
- package/dist/commands/memory.js.map +1 -1
- package/dist/commands/setup.d.ts +3 -0
- package/dist/commands/setup.d.ts.map +1 -0
- package/dist/commands/setup.js +397 -0
- package/dist/commands/setup.js.map +1 -0
- package/dist/db/client.d.ts +17 -1
- package/dist/db/client.d.ts.map +1 -1
- package/dist/db/client.js +54 -0
- package/dist/db/client.js.map +1 -1
- package/dist/db/schema.sql +2 -0
- package/dist/mcp/server.d.ts +27 -6
- package/dist/mcp/server.d.ts.map +1 -1
- package/dist/mcp/server.js +156 -15
- package/dist/mcp/server.js.map +1 -1
- package/dist/service/memory-service.d.ts +121 -4
- package/dist/service/memory-service.d.ts.map +1 -1
- package/dist/service/memory-service.js +665 -45
- package/dist/service/memory-service.js.map +1 -1
- package/dist/setup/index.d.ts +6 -0
- package/dist/setup/index.d.ts.map +1 -0
- package/dist/setup/index.js +6 -0
- package/dist/setup/index.js.map +1 -0
- package/dist/setup/json-target.d.ts +30 -0
- package/dist/setup/json-target.d.ts.map +1 -0
- package/dist/setup/json-target.js +263 -0
- package/dist/setup/json-target.js.map +1 -0
- package/dist/setup/portable.d.ts +56 -0
- package/dist/setup/portable.d.ts.map +1 -0
- package/dist/setup/portable.js +365 -0
- package/dist/setup/portable.js.map +1 -0
- package/dist/setup/registry.d.ts +54 -0
- package/dist/setup/registry.d.ts.map +1 -0
- package/dist/setup/registry.js +225 -0
- package/dist/setup/registry.js.map +1 -0
- package/dist/setup/rules-target.d.ts +31 -0
- package/dist/setup/rules-target.d.ts.map +1 -0
- package/dist/setup/rules-target.js +270 -0
- package/dist/setup/rules-target.js.map +1 -0
- package/dist/setup/toml-target.d.ts +62 -0
- package/dist/setup/toml-target.d.ts.map +1 -0
- package/dist/setup/toml-target.js +869 -0
- package/dist/setup/toml-target.js.map +1 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -10,22 +10,48 @@ engine as a plain Node/Bun library and a CLI.
|
|
|
10
10
|
It used to live inside [Huginn](https://github.com/dahch/huginn); it is now an independent
|
|
11
11
|
package with no dependency on the orchestrator.
|
|
12
12
|
|
|
13
|
-
##
|
|
13
|
+
## Overview
|
|
14
14
|
|
|
15
15
|
- **Observations with categories** — `decision`, `convention`, `discovery`, `bugfix`,
|
|
16
16
|
`architecture` — searchable with SQLite **FTS5 + BM25** ranking.
|
|
17
|
+
- **Decision supersession** — saving a decision with `supersedesTopicKey` atomically marks the
|
|
18
|
+
project's active decisions with that topic key as `superseded`, linking each to its replacement.
|
|
19
|
+
Search and context hide superseded observations by default; pass `includeSuperseded` to see them.
|
|
20
|
+
- **Read-only session brief** — the library, MCP `muninn_bootstrap` tool, and
|
|
21
|
+
`muninn memory brief` render the same deterministic Markdown view of project identity, active
|
|
22
|
+
decisions, recent activity, path-selected indexed symbols, related graph neighbors, and counts.
|
|
23
|
+
Bootstrap reads an existing database without DDL or project insertion and fails open when memory
|
|
24
|
+
is missing or unusable.
|
|
17
25
|
- **A symbol graph** — the TypeScript Compiler API extracts files, functions, classes,
|
|
18
|
-
interfaces and modules from your sources, plus the `imports`/`
|
|
19
|
-
`references` edges between them, and links observations to symbols.
|
|
26
|
+
interfaces and modules from your sources, plus the `imports`/`extends`/`implements`/
|
|
27
|
+
`references` edges between them, and links observations to symbols. The schema also reserves a
|
|
28
|
+
`calls` relation, but the current indexer does not emit call edges.
|
|
29
|
+
- **Graph-aware recovery** — `MemoryService.neighbors` traverses stored dependency edges in both
|
|
30
|
+
directions, grouped by relation and direction, with deduplication, cycle protection, depth at most
|
|
31
|
+
2 (default 1), and at most 50 neighbors (default 20). Briefs expand these neighbors by default,
|
|
32
|
+
and `muninn_inspect_symbol` adds a bounded depth-1 traversal.
|
|
20
33
|
- **MCP tools** for agents: `muninn_context`, `muninn_save`, `muninn_search`,
|
|
21
|
-
`muninn_link_symbol`, `muninn_inspect_symbol`, `muninn_verify_contract`, `muninn_stats
|
|
34
|
+
`muninn_link_symbol`, `muninn_inspect_symbol`, `muninn_verify_contract`, `muninn_stats`,
|
|
35
|
+
`muninn_bootstrap`.
|
|
22
36
|
- **Contract verification** — the same TypeScript execution-contract check as a CLI command
|
|
23
37
|
(`muninn check`) and as the `muninn_verify_contract` MCP tool.
|
|
24
38
|
- **JSONL sync** — export/import the whole memory as portable line-delimited JSON.
|
|
39
|
+
- **Agent setup** — `muninn setup` lists the supported agent catalog and installs a `muninn` MCP
|
|
40
|
+
entry into standard `mcpServers`, OpenCode `mcp`, and Codex TOML configurations, plus the
|
|
41
|
+
project-agnostic portable file at `{home}/.muninn/mcp.json`. It supports `--agent`, `--project`,
|
|
42
|
+
`--list`, `--status`, `--dry-run`, `--force`, `--home`, and `--no-rules`, preserves unrelated
|
|
43
|
+
configuration, and never modifies the legacy Huginn file. Codex TOML is merged safely, and selected
|
|
44
|
+
agents receive an idempotent marked rules block with legacy-block detection.
|
|
25
45
|
- **Local-first and self-contained** — no embeddings, no network, no server: one SQLite file
|
|
26
46
|
and one process.
|
|
27
47
|
|
|
28
|
-
##
|
|
48
|
+
## Prerequisites
|
|
49
|
+
|
|
50
|
+
- Node.js 20 or newer (the published package also runs under Bun)
|
|
51
|
+
- A C/C++ toolchain for `better-sqlite3`'s native module when a prebuilt binary is unavailable
|
|
52
|
+
- Git only if you want repository discovery and sanitized remote metadata; Muninn works outside a repository
|
|
53
|
+
|
|
54
|
+
## Getting Started
|
|
29
55
|
|
|
30
56
|
```sh
|
|
31
57
|
npm install -g @dahch/muninn # CLI + MCP server
|
|
@@ -33,7 +59,13 @@ npm install -g @dahch/muninn # CLI + MCP server
|
|
|
33
59
|
npm install @dahch/muninn
|
|
34
60
|
```
|
|
35
61
|
|
|
36
|
-
|
|
62
|
+
From a checkout, install the locked dependencies and initialize memory for this repository:
|
|
63
|
+
|
|
64
|
+
```sh
|
|
65
|
+
npm ci
|
|
66
|
+
npm run build
|
|
67
|
+
node dist/cli.js memory init --project .
|
|
68
|
+
```
|
|
37
69
|
|
|
38
70
|
## CLI
|
|
39
71
|
|
|
@@ -42,10 +74,14 @@ muninn memory init [--db <path>] [--project <path>]
|
|
|
42
74
|
muninn memory search <query> [--category <cat>] [--limit <n>] [--project <path>]
|
|
43
75
|
muninn memory sync [--import] [--file <path>] [--project <path>]
|
|
44
76
|
muninn memory index [files...] [--project <path>] [--db <path>]
|
|
77
|
+
muninn memory brief [--project <path>] [--paths a,b] [--budget <n>] [--db <path>]
|
|
45
78
|
|
|
46
79
|
muninn check [files...] [--project <path>]
|
|
47
80
|
|
|
48
81
|
muninn mcp run [--db <path>] [--project <path>]
|
|
82
|
+
|
|
83
|
+
muninn setup [--list] [--agent <id|all|id,id>] [--project <path>] [--home <path>]
|
|
84
|
+
[--portable|--no-portable] [--no-rules] [--force] [--dry-run] [--status]
|
|
49
85
|
```
|
|
50
86
|
|
|
51
87
|
The database resolves to `<git-root>/.huginn/muninn.db` inside a repository and to
|
|
@@ -53,6 +89,14 @@ The database resolves to `<git-root>/.huginn/muninn.db` inside a repository and
|
|
|
53
89
|
Both the database file and the project record are resolved from the **same** root, so
|
|
54
90
|
`--project X` can never write into another project's database.
|
|
55
91
|
|
|
92
|
+
`muninn memory brief` is read-only. `--paths` accepts up to 20 comma-separated files or directories
|
|
93
|
+
(relative to the project root, or absolute inside it) and selects only indexed symbols. `--budget`
|
|
94
|
+
limits the complete Markdown output to a positive integer no greater than 20,000 characters; the
|
|
95
|
+
default is 8,000. Briefs expand dependency neighbors by default; `getSessionBrief({ expandGraph:
|
|
96
|
+
false })` and MCP `expandGraph` / `expand_graph` disable that section. If the selected symbols have no
|
|
97
|
+
stored dependencies, the section is omitted and a note explains why. A missing, inaccessible, or
|
|
98
|
+
corrupt database yields an empty brief with an explanatory note instead of being created or repaired.
|
|
99
|
+
|
|
56
100
|
## MCP
|
|
57
101
|
|
|
58
102
|
Register Muninn with any MCP-capable agent. For example, a Claude Code / Codex / Cursor config
|
|
@@ -70,12 +114,113 @@ Register Muninn with any MCP-capable agent. For example, a Claude Code / Codex /
|
|
|
70
114
|
```
|
|
71
115
|
|
|
72
116
|
OpenCode uses the same shape under the `mcp` key with `"type": "local"` and a `command` array.
|
|
73
|
-
Huginn's `huginn setup` writes this for you in every runtime it knows about.
|
|
74
117
|
|
|
75
118
|
```sh
|
|
76
119
|
muninn mcp run --project .
|
|
77
120
|
```
|
|
78
121
|
|
|
122
|
+
`muninn setup --list` shows every supported destination and where its configuration lives. With
|
|
123
|
+
`--agent`, setup merges the `muninn` entry into the selected destinations (JSON or Codex TOML), installs
|
|
124
|
+
marked usage rules unless `--no-rules` is given, and includes the portable file unless `--no-portable`
|
|
125
|
+
is given; `--project` supplies the absolute project path used by project-contained configuration files
|
|
126
|
+
and rules. Codex TOML merging is supported with safe atomic writes and read-only diagnostics.
|
|
127
|
+
|
|
128
|
+
The `muninn_save` tool accepts `supersedesTopicKey` / `supersedes_topic_key`, and
|
|
129
|
+
`muninn_search` / `muninn_context` accept `includeSuperseded` / `include_superseded`. Existing
|
|
130
|
+
calls keep working: replacement is opt-in and retrieval excludes superseded observations by
|
|
131
|
+
default.
|
|
132
|
+
|
|
133
|
+
`muninn_bootstrap` optionally accepts `paths` (at most 20), `budgetChars` / `budget_chars`
|
|
134
|
+
(default 8,000, maximum 20,000), and `expandGraph` / `expand_graph` (default `true`, disabling the
|
|
135
|
+
related-symbol expansion). It returns the shared service-rendered Markdown directly, not a JSON
|
|
136
|
+
wrapper, and does not create or initialize a database when called on a default server.
|
|
137
|
+
|
|
138
|
+
## Agent Setup
|
|
139
|
+
|
|
140
|
+
`muninn setup` manages the portable destination `{home}/.muninn/mcp.json` and the JSON- and
|
|
141
|
+
TOML-format agent destinations in the catalog.
|
|
142
|
+
|
|
143
|
+
```sh
|
|
144
|
+
muninn setup --list # print the catalog without writing
|
|
145
|
+
muninn setup # write/merge the portable entry
|
|
146
|
+
muninn setup --agent cursor,pi --project . # configure selected agents + portable
|
|
147
|
+
muninn setup --agent all --project . # every catalog destination + portable
|
|
148
|
+
muninn setup --agent opencode --no-portable # only the selected destination
|
|
149
|
+
muninn setup --agent cursor --no-rules # configure without installing rules
|
|
150
|
+
muninn setup --status --agent claude --project . # selected agents + portable, read-only
|
|
151
|
+
muninn setup --dry-run --agent all --project . # report intended actions without writing
|
|
152
|
+
```
|
|
153
|
+
|
|
154
|
+
The catalog is `cursor`, `claude`, `opencode`, `devin`, `qwen`, `codex`, `agy`, `kimi`, `pi`,
|
|
155
|
+
`commandcode`, `omp`, `mcode`, and `mimo`. Path templates expand `{project}`, `{home}`, and
|
|
156
|
+
`{opencodeConfigDir}`; `MUNINN_AGENT_<ID>_MCP_PATH` (colon-separated) overrides a target's paths, and
|
|
157
|
+
`HUGINN_AGENT_<ID>_MCP_PATH` is accepted as an equivalent fallback. `MUNINN_OPENCODE_CONFIG_DIR`
|
|
158
|
+
overrides the OpenCode config directory (`HUGINN_OPENCODE_CONFIG_DIR` is the fallback). Project-contained
|
|
159
|
+
config files get `--project <absolute path>`; shared user-level and portable files never pin a project.
|
|
160
|
+
|
|
161
|
+
Standard entries are `{ "command": "muninn", "args": ["mcp", "run"] }` under `mcpServers.muninn`.
|
|
162
|
+
OpenCode uses `{ "type": "local", "command": ["muninn", "mcp", "run"], "enabled": true }` under
|
|
163
|
+
`mcp.muninn`. Setup merges only the Muninn entry, preserves unrelated keys and servers, and leaves the
|
|
164
|
+
legacy `{home}/.huginn/mcp.json` untouched (it only reports it when present).
|
|
165
|
+
|
|
166
|
+
Diagnostic states are `absent`, `registered`, `legacy`, `conflict`, and `malformed`. A conflicting
|
|
167
|
+
entry, or a JSON target whose existing entry still invokes the legacy `huginn` command (`legacy`), is
|
|
168
|
+
skipped without `--force`. For the portable file, `legacy` means the portable config is missing while
|
|
169
|
+
`{home}/.huginn/mcp.json` exists: setup writes the portable entry and only reports the legacy file.
|
|
170
|
+
Malformed JSON, a non-regular file, a final-component symlink, or a protected path fails with exit
|
|
171
|
+
code 1. Writes are atomic, new files use mode `0o600`, new parent directories use `0o700`, and existing
|
|
172
|
+
permissions are preserved. Re-running setup over a correct entry is byte-for-byte idempotent and
|
|
173
|
+
reports `changed: false`. `--list`, `--status`, and `--dry-run` never create or modify files,
|
|
174
|
+
directories, or temporary files.
|
|
175
|
+
|
|
176
|
+
Codex uses a dependency-free TOML writer that merges `[mcp_servers.muninn]`, preserves unrelated
|
|
177
|
+
tables and keys, and applies the same conflict, permission, atomic-write, and symlink rules as JSON
|
|
178
|
+
destinations. A forced replacement can discard comments and formatting inside the replaced Muninn
|
|
179
|
+
region; unrelated content outside it is preserved where feasible. Malformed TOML, including duplicate
|
|
180
|
+
table definitions, is reported with its path and cause, leaves the original untouched, and status
|
|
181
|
+
continues to inspect the remaining destinations before exiting 1.
|
|
182
|
+
|
|
183
|
+
Selected agents also receive a Markdown rules block delimited by `<!-- muninn:rules:start -->` and
|
|
184
|
+
`<!-- muninn:rules:end -->`. It recommends `muninn_bootstrap` at session start, `muninn_search` and
|
|
185
|
+
`muninn_inspect_symbol` before designing a change, and `muninn_verify_contract` before completing code.
|
|
186
|
+
Setup appends the block to an existing rules file, creates the file only when a write is needed, and
|
|
187
|
+
replaces only its own marked block on later runs. Agents that share a rules file (for example the
|
|
188
|
+
various `AGENTS.md` destinations) receive one deduplicated block. Without `--agent`, rules are neither
|
|
189
|
+
read nor written; `--no-rules` suppresses them for an explicit selection.
|
|
190
|
+
|
|
191
|
+
A prior `<!-- huginn:muninn-rules:start -->` block is reported as `stale` and left byte-identical
|
|
192
|
+
without `--force`; with `--force` it is replaced while surrounding prose is preserved. Unmatched,
|
|
193
|
+
duplicate, unterminated, crossed, or nested managed/legacy markers are fatal and leave the file
|
|
194
|
+
untouched. Rules paths use the same containment and symlink checks as MCP configuration, and writes
|
|
195
|
+
preserve existing permissions or use `0o600` for new files. Status reports `absent`, `present`, `stale`,
|
|
196
|
+
or `malformed` per rules file and identifies the selected agents that share it; normal setup and dry-run
|
|
197
|
+
report `written`, `present`, `stale`, or `failed`. A selected agent binary missing from `PATH` produces
|
|
198
|
+
a nonfatal `not installed` warning and does not change the exit code. Targets with no meaningful local
|
|
199
|
+
executable (`cursor`, `devin`) are not probed and never warn.
|
|
200
|
+
|
|
201
|
+
## Architecture
|
|
202
|
+
|
|
203
|
+
Muninn is one `MemoryService` core with three adapters: the CLI, the MCP stdio server, and the
|
|
204
|
+
library. Storage is a single embedded SQLite database with FTS5. The AST indexer writes through the
|
|
205
|
+
service/database boundary; contract verification is a separate read-only TypeScript pass.
|
|
206
|
+
|
|
207
|
+
```mermaid
|
|
208
|
+
flowchart LR
|
|
209
|
+
Agent["MCP-capable agent"] -->|stdio JSON-RPC| MCP["MCP server\nmuninn mcp run"]
|
|
210
|
+
CLI["CLI\nmuninn ..."] --> Service["MemoryService"]
|
|
211
|
+
Library["Node/Bun library"] --> Service
|
|
212
|
+
MCP --> Service
|
|
213
|
+
Service --> DB[("SQLite + FTS5\n.huginn/muninn.db")]
|
|
214
|
+
Service <--> JSONL["JSONL export/import\n.huginn/memories.jsonl"]
|
|
215
|
+
Indexer["AST indexer\nTypeScript Compiler API"] --> Service
|
|
216
|
+
CLI --> Verifier["Contract verifier\nTypeScript Compiler API"]
|
|
217
|
+
MCP --> Verifier
|
|
218
|
+
CLI --> Setup["Agent setup\nJSON/TOML catalog + portable"]
|
|
219
|
+
```
|
|
220
|
+
|
|
221
|
+
See [`DESIGN.md`](./DESIGN.md) for the schema, service transactions, MCP validation pipeline, CLI
|
|
222
|
+
parsing, contract verifier and indexer internals.
|
|
223
|
+
|
|
79
224
|
## Library
|
|
80
225
|
|
|
81
226
|
```ts
|
|
@@ -87,53 +232,117 @@ memory.saveObservation({
|
|
|
87
232
|
category: "decision",
|
|
88
233
|
title: "Auth is a port",
|
|
89
234
|
content: "Tokens are validated behind an AuthPort so the transport can change.",
|
|
235
|
+
topicKey: "auth-boundary",
|
|
90
236
|
symbols: ["src/auth/port.ts"],
|
|
91
237
|
});
|
|
92
238
|
|
|
239
|
+
// Replaces earlier active decisions with the same topic key in this project.
|
|
240
|
+
memory.saveObservation({
|
|
241
|
+
category: "decision",
|
|
242
|
+
title: "Auth is a middleware boundary",
|
|
243
|
+
content: "Tokens are validated in middleware before any handler runs.",
|
|
244
|
+
topicKey: "auth-boundary",
|
|
245
|
+
supersedesTopicKey: "auth-boundary",
|
|
246
|
+
});
|
|
247
|
+
|
|
248
|
+
// Superseded decisions are hidden unless explicitly requested.
|
|
249
|
+
const history = memory.search({
|
|
250
|
+
query: "token validation",
|
|
251
|
+
includeSuperseded: true,
|
|
252
|
+
});
|
|
253
|
+
|
|
93
254
|
indexFilesIntoMuninn(memory, ["src/auth/port.ts"], { projectRoot: process.cwd() });
|
|
94
255
|
|
|
95
256
|
for (const hit of memory.search({ query: "token validation", limit: 5 })) {
|
|
96
257
|
console.log(hit.category, hit.title, hit.rank);
|
|
97
258
|
}
|
|
98
259
|
|
|
260
|
+
// The same bounded Markdown used by the MCP tool and CLI.
|
|
261
|
+
const brief = memory.getSessionBrief({ paths: ["src/auth"], budgetChars: 8000 });
|
|
262
|
+
console.log(brief.markdown);
|
|
263
|
+
|
|
264
|
+
// Bounded, deterministic dependency neighbors (depth max 2, limit max 50).
|
|
265
|
+
const graph = memory.neighbors("src/auth/port.ts::TokenValidator", { depth: 2 });
|
|
266
|
+
console.log(graph?.groups);
|
|
267
|
+
|
|
99
268
|
memory.close();
|
|
100
269
|
```
|
|
101
270
|
|
|
271
|
+
For bootstrap without initializing anything, use the standalone read-only entry point:
|
|
272
|
+
|
|
273
|
+
```ts
|
|
274
|
+
import { readSessionBrief } from "@dahch/muninn";
|
|
275
|
+
|
|
276
|
+
const brief = readSessionBrief({
|
|
277
|
+
projectRoot: process.cwd(),
|
|
278
|
+
paths: ["src/service"],
|
|
279
|
+
budgetChars: 8000,
|
|
280
|
+
});
|
|
281
|
+
console.log(brief.markdown);
|
|
282
|
+
```
|
|
283
|
+
|
|
102
284
|
Subpath entry points are available for narrower imports:
|
|
103
285
|
|
|
104
286
|
| Import | Contents |
|
|
105
287
|
|---|---|
|
|
106
288
|
| `@dahch/muninn` | everything below |
|
|
107
289
|
| `@dahch/muninn/db` | SQLite client, schema, path resolution, project records |
|
|
108
|
-
| `@dahch/muninn/service` | `MemoryService` (save, search, context, linking, sync, stats) |
|
|
290
|
+
| `@dahch/muninn/service` | `MemoryService` (save, search, context, linking, sync, stats, session brief, graph neighbors) |
|
|
109
291
|
| `@dahch/muninn/indexer` | AST symbol/dependency extraction and indexing |
|
|
110
292
|
| `@dahch/muninn/mcp` | MCP server, tool registry, bounded stdio transport |
|
|
111
293
|
| `@dahch/muninn/contracts` | TypeScript contract verification |
|
|
112
294
|
| `@dahch/muninn/util` | terminal-text sanitizer |
|
|
113
295
|
|
|
296
|
+
## Environment Variables
|
|
297
|
+
|
|
298
|
+
Muninn has no required environment variables. Configuration is passed as CLI flags or
|
|
299
|
+
`MemoryService` options.
|
|
300
|
+
|
|
301
|
+
| Variable | Type | Default | Purpose |
|
|
302
|
+
|---|---|---|---|
|
|
303
|
+
| `MUNINN_DEBUG` | string (presence is enough) | unset | Emit the `[muninn] mcp run: stdin closed by the client; shutting down.` diagnostic on stderr when the parent closes stdin. |
|
|
304
|
+
| `HUGINN_DEBUG` | string (presence is enough) | unset | Legacy alias for `MUNINN_DEBUG`, retained for Huginn compatibility. |
|
|
305
|
+
| `MUNINN_AGENT_<ID>_MCP_PATH` | string (colon-separated paths) | the catalog paths for that agent | Replace a setup target's MCP configuration paths. `<ID>` is the uppercase agent ID, for example `MUNINN_AGENT_CURSOR_MCP_PATH`; an all-empty override is rejected. |
|
|
306
|
+
| `HUGINN_AGENT_<ID>_MCP_PATH` | string (colon-separated paths) | unset | Legacy fallback for `MUNINN_AGENT_<ID>_MCP_PATH`, retained for Huginn compatibility. |
|
|
307
|
+
| `MUNINN_OPENCODE_CONFIG_DIR` | string (directory path) | `{home}/.config/opencode` | Directory used to expand the OpenCode target's `{opencodeConfigDir}` marker. |
|
|
308
|
+
| `HUGINN_OPENCODE_CONFIG_DIR` | string (directory path) | unset | Legacy fallback for `MUNINN_OPENCODE_CONFIG_DIR`, retained for Huginn compatibility. |
|
|
309
|
+
| `PATH` | string (platform path list) | inherited | Used by `muninn setup --agent` to detect each selected agent's executable for the nonfatal `not installed` warning. |
|
|
310
|
+
| `PATHEXT` | string (semicolon-separated extensions, Windows only) | `.EXE;.CMD;.BAT;.COM` | Windows executable extensions used by the same lookup; ignored on other platforms. |
|
|
311
|
+
|
|
114
312
|
## Security notes
|
|
115
313
|
|
|
314
|
+
- Session bootstrap opens an existing database read-only. It never creates a directory or file, runs
|
|
315
|
+
DDL/migrations, or inserts a project row; path selections are confined to the project root.
|
|
116
316
|
- Every path Muninn writes to — the SQLite file and the JSONL export — is screened: a symlink on
|
|
117
317
|
the final component is refused, and a project-relative path must resolve inside the project, so
|
|
118
318
|
a repository cannot redirect the write outside itself (the `src/util/path-safety.ts` rule, with
|
|
119
319
|
the tests in `test/db.test.ts` and `test/service.test.ts`).
|
|
120
320
|
- The MCP stdio transport is bounded and survives a dead parent instead of crashing or hanging.
|
|
121
321
|
- MCP tool inputs are validated with zod; unknown tools and bad arguments fail closed.
|
|
322
|
+
- Setup screens its config and legacy paths with the path-safety helper, refuses a final-component
|
|
323
|
+
symlink, merges only the `muninn` entry, and writes through an exclusive temporary file + atomic
|
|
324
|
+
rename. Neither `--status` nor `--dry-run` creates files or directories.
|
|
122
325
|
|
|
123
|
-
##
|
|
124
|
-
|
|
125
|
-
The design of the engine — SQLite/FTS5 schema, service core, MCP server, CLI, contract verifier and
|
|
126
|
-
AST indexer — is documented in [`DESIGN.md`](./DESIGN.md), moved here from the orchestrator's design
|
|
127
|
-
document when Muninn became its own package.
|
|
326
|
+
## Available Scripts
|
|
128
327
|
|
|
129
328
|
```sh
|
|
130
|
-
npm
|
|
329
|
+
npm run dev # run src/cli.ts directly with Bun
|
|
131
330
|
npm run build # tsc -> dist/ (+ schema.sql, +x cli.js)
|
|
132
|
-
npm test # vitest run (storage, service, indexer, MCP, CLI)
|
|
331
|
+
npm test # vitest run (storage, service, session brief, graph, indexer, MCP, CLI, contracts, setup)
|
|
332
|
+
npm run test:watch # vitest in watch mode
|
|
133
333
|
npm run typecheck # tsc --noEmit
|
|
134
|
-
|
|
334
|
+
npm run prepublishOnly # build + test + typecheck (npm lifecycle hook)
|
|
335
|
+
```
|
|
336
|
+
|
|
337
|
+
Run the built CLI without installing it globally:
|
|
338
|
+
|
|
339
|
+
```sh
|
|
340
|
+
node dist/cli.js memory init --project .
|
|
341
|
+
node dist/cli.js memory search "auth boundary" --project .
|
|
135
342
|
```
|
|
136
343
|
|
|
344
|
+
### Releasing
|
|
345
|
+
|
|
137
346
|
Publishing is tag-driven, but only once the package exists. The **first** publish is manual, from a
|
|
138
347
|
logged-in machine, because npm's trusted publishing attaches to a package page that has to exist first:
|
|
139
348
|
|
|
@@ -146,7 +355,41 @@ After that, configure the trusted publisher on npm (repository `dahch/muninn`, w
|
|
|
146
355
|
`publish.yml`) and tagged releases need no token at all: `git tag v0.1.1 && git push origin v0.1.1`
|
|
147
356
|
runs the workflow, which checks the tag against `package.json`, builds, tests and publishes over
|
|
148
357
|
OIDC. A run whose version is already on npm skips the publish step and refreshes the GitHub release
|
|
149
|
-
instead, so re-tagging to fix a message stays safe.
|
|
358
|
+
instead, so re-tagging to fix a message stays safe. The release job copies the matching version
|
|
359
|
+
section from [`CHANGELOG.md`](./CHANGELOG.md).
|
|
360
|
+
|
|
361
|
+
## Project Structure
|
|
362
|
+
|
|
363
|
+
```text
|
|
364
|
+
src/
|
|
365
|
+
cli.ts argument parsing, command routing, process entry point
|
|
366
|
+
commands/ memory (init/search/sync/index/brief), mcp run, check, setup
|
|
367
|
+
db/ SQLite client, schema.sql, path and project resolution
|
|
368
|
+
service/ MemoryService: save, search, context, links, sync, stats, brief, neighbors
|
|
369
|
+
indexer/ TypeScript/JavaScript AST symbol and dependency extraction
|
|
370
|
+
mcp/ MCP server, tool registry, Zod schemas, bounded stdio transport
|
|
371
|
+
contracts/ in-process TypeScript contract verification
|
|
372
|
+
setup/ agent catalog/path resolution, JSON/TOML target merge, marked rules
|
|
373
|
+
install/diagnose, and portable MCP install/diagnose
|
|
374
|
+
util/ terminal-text sanitizer and path-safety helpers
|
|
375
|
+
test/ Vitest integration suites for db, service, session brief, graph, indexer, MCP, CLI, contracts, setup
|
|
376
|
+
```
|
|
377
|
+
|
|
378
|
+
## Documentation
|
|
379
|
+
|
|
380
|
+
- [`SPEC.md`](./SPEC.md) — product behaviour, domain model, use cases and constraints.
|
|
381
|
+
- [`DESIGN.md`](./DESIGN.md) — technical design, schema, data flow and internals.
|
|
382
|
+
- [`ADR.md`](./ADR.md) — architecture decision records and their implementation status.
|
|
383
|
+
- [`CHANGELOG.md`](./CHANGELOG.md) — release notes.
|
|
384
|
+
- [`plan.md`](./plan.md) — staged plan for the agent-setup work.
|
|
385
|
+
- [`AGENTS.md`](./AGENTS.md) — repository conventions for coding agents; no `.opencode/agents/` are defined.
|
|
386
|
+
|
|
387
|
+
## Contributing
|
|
388
|
+
|
|
389
|
+
Keep changes aligned with the current contract: update both `src/db/schema.sql` and the `SCHEMA_SQL`
|
|
390
|
+
fallback in `src/db/client.ts`, add or update a Vitest suite under `test/`, and run
|
|
391
|
+
`npm run build && npm test && npm run typecheck` before opening a pull request. Add a new ADR for a
|
|
392
|
+
new architectural decision instead of rewriting an existing one.
|
|
150
393
|
|
|
151
394
|
## License
|
|
152
395
|
|
package/dist/cli.d.ts
CHANGED
package/dist/cli.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AAqBA,eAAO,MAAM,OAAO,UAAU,CAAC;AAE/B,MAAM,WAAW,UAAU;IACzB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,GAAG,MAAM,EAAE,CAAC;IACvD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;CACzB;AAwBD;;;;;;GAMG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,UAAU,CA8BpD;AAED,wBAAgB,KAAK,IAAI,MAAM,CAwB9B;AAED;;;GAGG;AACH,wBAAsB,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAoExD"}
|
package/dist/cli.js
CHANGED
|
@@ -17,7 +17,8 @@ import { realpathSync } from "node:fs";
|
|
|
17
17
|
import { fileURLToPath } from "node:url";
|
|
18
18
|
import { handleMcpCommand, handleMemoryCommand } from "./commands/memory.js";
|
|
19
19
|
import { handleCheckCommand } from "./commands/check.js";
|
|
20
|
-
|
|
20
|
+
import { handleSetupCommand } from "./commands/setup.js";
|
|
21
|
+
export const VERSION = "0.2.0";
|
|
21
22
|
/**
|
|
22
23
|
* Flags that never consume the next argv entry as their value. `--import` is the
|
|
23
24
|
* one that matters in practice: `muninn memory sync --import backup.jsonl` must
|
|
@@ -31,6 +32,13 @@ const BOOLEAN_FLAGS = new Set([
|
|
|
31
32
|
"--import",
|
|
32
33
|
"--json",
|
|
33
34
|
"--quiet",
|
|
35
|
+
"--force",
|
|
36
|
+
"--dry-run",
|
|
37
|
+
"--status",
|
|
38
|
+
"--portable",
|
|
39
|
+
"--no-portable",
|
|
40
|
+
"--no-rules",
|
|
41
|
+
"--list",
|
|
34
42
|
]);
|
|
35
43
|
/**
|
|
36
44
|
* Parses argv into flags plus positionals.
|
|
@@ -79,13 +87,17 @@ Usage:
|
|
|
79
87
|
muninn memory search <query> [--category <cat>] [--limit <n>] [--project <path>]
|
|
80
88
|
muninn memory sync [--import] [--file <path>] [--project <path>]
|
|
81
89
|
muninn memory index [files...] [--project <path>] [--db <path>]
|
|
90
|
+
muninn memory brief [--project <path>] [--paths a,b] [--budget <n>] [--db <path>]
|
|
82
91
|
muninn check [files...] [--project <path>]
|
|
83
92
|
muninn mcp run [--db <path>] [--project <path>]
|
|
93
|
+
muninn setup [--list] [--agent <id|all|id,id>] [--project <path>] [--home <path>]
|
|
94
|
+
[--portable|--no-portable] [--no-rules] [--force] [--dry-run] [--status]
|
|
84
95
|
|
|
85
96
|
Commands:
|
|
86
|
-
memory query and manage the persistent codebase memory (init, search, sync, index)
|
|
97
|
+
memory query and manage the persistent codebase memory (init, search, sync, index, brief)
|
|
87
98
|
mcp start the Muninn MCP server for agent memory integration (run)
|
|
88
99
|
check verify TypeScript execution contracts and pre-emit diagnostics
|
|
100
|
+
setup list, install, and diagnose Muninn agent and portable MCP configurations
|
|
89
101
|
|
|
90
102
|
Storage:
|
|
91
103
|
The database resolves to <git-root>/.huginn/muninn.db inside a repository and
|
|
@@ -141,6 +153,10 @@ export async function main(argv) {
|
|
|
141
153
|
await handleCheckCommand(files, args);
|
|
142
154
|
return;
|
|
143
155
|
}
|
|
156
|
+
if (command === "setup") {
|
|
157
|
+
await handleSetupCommand(args);
|
|
158
|
+
return;
|
|
159
|
+
}
|
|
144
160
|
console.error(`Unknown command: ${command}`);
|
|
145
161
|
console.log(usage());
|
|
146
162
|
process.exitCode = 1;
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AACA;;;;;;;;;;;;;GAaG;AACH,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAC7E,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAEzD,MAAM,CAAC,MAAM,OAAO,GAAG,OAAO,CAAC;AAS/B;;;;GAIG;AACH,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC;IAC5B,IAAI;IACJ,QAAQ;IACR,IAAI;IACJ,WAAW;IACX,UAAU;IACV,QAAQ;IACR,SAAS;
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"memory.d.ts","sourceRoot":"","sources":["../../src/commands/memory.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"memory.d.ts","sourceRoot":"","sources":["../../src/commands/memory.ts"],"names":[],"mappings":"AAkCA,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,CAwBrD;AAED,wBAAgB,gBAAgB,IAAI,IAAI,CAiBvC;AAED,wBAAgB,aAAa,IAAI,IAAI,CASpC;AAED,wBAAsB,mBAAmB,CACvC,UAAU,EAAE,MAAM,GAAG,SAAS,EAC9B,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC,EAClD,WAAW,CAAC,EAAE,MAAM,EAAE,GACrB,OAAO,CAAC,IAAI,CAAC,CA6Nf;AAsDD,wBAAsB,gBAAgB,CACpC,UAAU,EAAE,MAAM,GAAG,SAAS,EAC9B,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC,GACjD,OAAO,CAAC,IAAI,CAAC,CAoFf"}
|
package/dist/commands/memory.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import fs from "node:fs";
|
|
2
2
|
import path from "node:path";
|
|
3
3
|
import chalk from "chalk";
|
|
4
|
-
import { MemoryService } from "../service/memory-service.js";
|
|
4
|
+
import { MemoryService, MAX_SESSION_BRIEF_BUDGET, MAX_SESSION_BRIEF_PATHS, readSessionBrief, } from "../service/memory-service.js";
|
|
5
5
|
import { startMcpServer } from "../mcp/server.js";
|
|
6
6
|
import { indexFilesIntoMuninn } from "../indexer/ast-indexer.js";
|
|
7
7
|
import { sanitizeTerminalText } from "../util/text.js";
|
|
@@ -60,12 +60,14 @@ Usage:
|
|
|
60
60
|
muninn memory search <query> [--category <cat>] [--limit <n>] [--project <path>]
|
|
61
61
|
muninn memory sync [--import] [--file <path>] [--project <path>]
|
|
62
62
|
muninn memory index [files...] [--project <path>] [--db <path>]
|
|
63
|
+
muninn memory brief [--project <path>] [--paths a,b] [--budget <n>] [--db <path>]
|
|
63
64
|
|
|
64
65
|
Subcommands:
|
|
65
66
|
init Initialize SQLite database and verify schema
|
|
66
67
|
search Search observations with BM25 relevance ranking
|
|
67
68
|
sync Export observations to disk (.jsonl) or import with --import
|
|
68
69
|
index Index AST symbols and dependencies into Muninn memory
|
|
70
|
+
brief Print a bounded read-only session brief (Markdown)
|
|
69
71
|
`);
|
|
70
72
|
}
|
|
71
73
|
export function printMcpUsage() {
|
|
@@ -181,6 +183,46 @@ export async function handleMemoryCommand(subcommand, args, positionals) {
|
|
|
181
183
|
}
|
|
182
184
|
return;
|
|
183
185
|
}
|
|
186
|
+
if (subcommand === "brief") {
|
|
187
|
+
const rawPaths = typeof args["--paths"] === "string" ? args["--paths"] : undefined;
|
|
188
|
+
const paths = rawPaths === undefined
|
|
189
|
+
? undefined
|
|
190
|
+
: rawPaths
|
|
191
|
+
.split(",")
|
|
192
|
+
.map((p) => p.trim())
|
|
193
|
+
.filter(Boolean);
|
|
194
|
+
if (paths && paths.length > MAX_SESSION_BRIEF_PATHS) {
|
|
195
|
+
console.error(chalk.red(`Error: At most ${MAX_SESSION_BRIEF_PATHS} paths may be requested.`));
|
|
196
|
+
process.exitCode = 1;
|
|
197
|
+
return;
|
|
198
|
+
}
|
|
199
|
+
let budgetChars;
|
|
200
|
+
if (typeof args["--budget"] === "string") {
|
|
201
|
+
const parsedBudget = Number(args["--budget"]);
|
|
202
|
+
if (!Number.isInteger(parsedBudget) ||
|
|
203
|
+
parsedBudget <= 0 ||
|
|
204
|
+
parsedBudget > MAX_SESSION_BRIEF_BUDGET) {
|
|
205
|
+
console.error(chalk.red(`Error: --budget must be a positive integer no greater than ${MAX_SESSION_BRIEF_BUDGET}.`));
|
|
206
|
+
process.exitCode = 1;
|
|
207
|
+
return;
|
|
208
|
+
}
|
|
209
|
+
budgetChars = parsedBudget;
|
|
210
|
+
}
|
|
211
|
+
try {
|
|
212
|
+
const brief = readSessionBrief({
|
|
213
|
+
dbPath,
|
|
214
|
+
projectRoot,
|
|
215
|
+
paths,
|
|
216
|
+
budgetChars,
|
|
217
|
+
});
|
|
218
|
+
console.log(brief.markdown);
|
|
219
|
+
}
|
|
220
|
+
catch (err) {
|
|
221
|
+
console.error(chalk.red(`Error: ${err instanceof Error ? err.message : String(err)}`));
|
|
222
|
+
process.exitCode = 1;
|
|
223
|
+
}
|
|
224
|
+
return;
|
|
225
|
+
}
|
|
184
226
|
if (subcommand === "index") {
|
|
185
227
|
const rawFiles = positionals && positionals.length > 0
|
|
186
228
|
? positionals
|
|
@@ -264,10 +306,11 @@ export async function handleMcpCommand(subcommand, args) {
|
|
|
264
306
|
return;
|
|
265
307
|
}
|
|
266
308
|
if (subcommand === "run") {
|
|
267
|
-
const
|
|
309
|
+
const started = await startMcpServer({
|
|
268
310
|
dbPath,
|
|
269
311
|
projectRoot,
|
|
270
312
|
});
|
|
313
|
+
const { server, transport } = started;
|
|
271
314
|
try {
|
|
272
315
|
// Protocol failures were previously discarded (AC-30.3): surface them on
|
|
273
316
|
// stderr (never stdout — that stream carries JSON-RPC) without aborting.
|
|
@@ -313,7 +356,13 @@ export async function handleMcpCommand(subcommand, args) {
|
|
|
313
356
|
});
|
|
314
357
|
}
|
|
315
358
|
finally {
|
|
316
|
-
|
|
359
|
+
if (typeof started.closeService === "function") {
|
|
360
|
+
started.closeService();
|
|
361
|
+
}
|
|
362
|
+
else {
|
|
363
|
+
// Compatibility with injected test doubles that predate the lazy handle.
|
|
364
|
+
started.service?.close?.();
|
|
365
|
+
}
|
|
317
366
|
await server?.close?.();
|
|
318
367
|
}
|
|
319
368
|
return;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"memory.js","sourceRoot":"","sources":["../../src/commands/memory.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"memory.js","sourceRoot":"","sources":["../../src/commands/memory.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../../src/commands/setup.ts"],"names":[],"mappings":"AAuCA,wBAAgB,eAAe,IAAI,IAAI,CAmBtC;AAgND,wBAAsB,kBAAkB,CACtC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC,GACjD,OAAO,CAAC,IAAI,CAAC,CAgMf"}
|