@velvetmonkey/flywheel-memory 2.0.80 → 2.0.82

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 CHANGED
@@ -20,7 +20,7 @@
20
20
  | "What should I link?" | Not possible | 10-dimension scoring + semantic search |
21
21
  | Hubs, orphans, paths? | Not possible | Pre-indexed graph analysis |
22
22
 
23
- 51 tools across 17 categories. 6-line config. Zero cloud dependencies.
23
+ 61 tools across 11 categories. 6-line config. Zero cloud dependencies.
24
24
 
25
25
  **Try in 60 seconds:**
26
26
 
@@ -304,7 +304,7 @@ Add `.mcp.json` to your vault root:
304
304
  "command": "npx",
305
305
  "args": ["-y", "@velvetmonkey/flywheel-memory"],
306
306
  "env": {
307
- "FLYWHEEL_PRESET": "minimal"
307
+ "FLYWHEEL_PRESET": "default"
308
308
  }
309
309
  }
310
310
  }
@@ -315,7 +315,7 @@ Add `.mcp.json` to your vault root:
315
315
  cd /path/to/your/vault && claude
316
316
  ```
317
317
 
318
- Start with the `minimal` preset (11 tools). Add bundles as needed. See [docs/CONFIGURATION.md](https://github.com/velvetmonkey/flywheel-memory/blob/main/docs/CONFIGURATION.md) for all options.
318
+ Defaults to the `default` preset (16 tools). Add bundles as needed. See [docs/CONFIGURATION.md](https://github.com/velvetmonkey/flywheel-memory/blob/main/docs/CONFIGURATION.md) for all options.
319
319
 
320
320
  > **Note:** Developed and tested with Claude Code. Other MCP clients may work but are untested.
321
321
 
@@ -325,22 +325,11 @@ Start with the `minimal` preset (11 tools). Add bundles as needed. See [docs/CON
325
325
 
326
326
  | Preset | Tools | What you get |
327
327
  |--------|-------|--------------|
328
- | `full` (default) | 51 | Everythinggraph, schema, tasks, policy, memory |
329
- | `minimal` | 11 | Note-taking essentials — search, read, create, edit |
330
- | `writer` | 14 | minimal + task management |
331
- | `agent` | 14 | minimal + agent memory (brief, recall, memory) |
332
- | `researcher` | 12 | Search + graph navigation — read-heavy exploration |
328
+ | `default` | 16 | Note-taking essentials search, read, write, tasks |
329
+ | `agent` | 16 | Autonomous AI agents — search, read, write, memory |
330
+ | `full` | 61 | Everything all 11 categories |
333
331
 
334
- Composable bundles (add to presets or each other):
335
-
336
- | Bundle | Tools | What it adds |
337
- |--------|-------|--------------|
338
- | `graph` | 7 | Backlinks, orphans, hubs, shortest paths |
339
- | `analysis` | 9 | Schema intelligence, wikilink validation, content similarity |
340
- | `tasks` | 3 | Task queries and mutations |
341
- | `health` | 12 | Vault diagnostics, index management, growth, config, merges |
342
- | `ops` | 2 | Git undo, policy automation |
343
- | `note-ops` | 4 | Delete, move, rename notes, merge entities |
332
+ Composable bundles add capabilities to any preset. See [docs/CONFIGURATION.md](https://github.com/velvetmonkey/flywheel-memory/blob/main/docs/CONFIGURATION.md) for all bundles and fine-grained categories.
344
333
 
345
334
  The fewer tools you load, the less context Claude needs to pick the right one. See [docs/TOOLS.md](https://github.com/velvetmonkey/flywheel-memory/blob/main/docs/TOOLS.md) for the full reference.
346
335
 
@@ -351,7 +340,7 @@ The fewer tools you load, the less context Claude needs to pick the right one. S
351
340
  | Doc | Why read this |
352
341
  |---|---|
353
342
  | [PROVE-IT.md](https://github.com/velvetmonkey/flywheel-memory/blob/main/docs/PROVE-IT.md) | See it working in 5 minutes |
354
- | [TOOLS.md](https://github.com/velvetmonkey/flywheel-memory/blob/main/docs/TOOLS.md) | All 51 tools documented |
343
+ | [TOOLS.md](https://github.com/velvetmonkey/flywheel-memory/blob/main/docs/TOOLS.md) | All 61 tools documented |
355
344
  | [ALGORITHM.md](https://github.com/velvetmonkey/flywheel-memory/blob/main/docs/ALGORITHM.md) | How the scoring works |
356
345
  | [COOKBOOK.md](https://github.com/velvetmonkey/flywheel-memory/blob/main/docs/COOKBOOK.md) | Example prompts by use case |
357
346
  | [SETUP.md](https://github.com/velvetmonkey/flywheel-memory/blob/main/docs/SETUP.md) | Full setup guide for your vault |
@@ -0,0 +1,2 @@
1
+ #!/usr/bin/env node
2
+ import '../dist/index.js';
package/dist/index.js CHANGED
@@ -19336,8 +19336,7 @@ var ALL_CATEGORIES = [
19336
19336
  "tasks",
19337
19337
  "memory",
19338
19338
  "note-ops",
19339
- "diagnostics",
19340
- "automation"
19339
+ "diagnostics"
19341
19340
  ];
19342
19341
  var PRESETS = {
19343
19342
  // Presets
@@ -19352,8 +19351,7 @@ var PRESETS = {
19352
19351
  tasks: ["tasks"],
19353
19352
  memory: ["memory"],
19354
19353
  "note-ops": ["note-ops"],
19355
- diagnostics: ["diagnostics"],
19356
- automation: ["automation"]
19354
+ diagnostics: ["diagnostics"]
19357
19355
  };
19358
19356
  var DEFAULT_PRESET = "default";
19359
19357
  var DEPRECATED_ALIASES = {
@@ -19373,9 +19371,9 @@ var DEPRECATED_ALIASES = {
19373
19371
  paths: "graph",
19374
19372
  health: "diagnostics",
19375
19373
  analysis: "wikilinks",
19376
- git: "automation",
19377
- ops: "automation",
19378
- policy: "automation"
19374
+ git: "write",
19375
+ ops: "write",
19376
+ policy: "write"
19379
19377
  };
19380
19378
  function parseEnabledCategories() {
19381
19379
  const envValue = (process.env.FLYWHEEL_TOOLS ?? process.env.FLYWHEEL_PRESET)?.trim();
@@ -19427,12 +19425,14 @@ var TOOL_CATEGORY = {
19427
19425
  get_note_structure: "read",
19428
19426
  get_section_content: "read",
19429
19427
  find_sections: "read",
19430
- // write (5 tools) — content mutations + frontmatter + note creation
19428
+ // write (7 tools) — content mutations + frontmatter + note creation + undo + policy
19431
19429
  vault_add_to_section: "write",
19432
19430
  vault_remove_from_section: "write",
19433
19431
  vault_replace_in_section: "write",
19434
19432
  vault_update_frontmatter: "write",
19435
19433
  vault_create_note: "write",
19434
+ vault_undo_last_mutation: "write",
19435
+ policy: "write",
19436
19436
  // graph (9 tools) — structural analysis + link detail
19437
19437
  graph_analysis: "graph",
19438
19438
  get_backlinks: "graph",
@@ -19488,10 +19488,7 @@ var TOOL_CATEGORY = {
19488
19488
  server_log: "diagnostics",
19489
19489
  suggest_entity_merges: "diagnostics",
19490
19490
  dismiss_merge_suggestion: "diagnostics",
19491
- vault_init: "diagnostics",
19492
- // automation (2 tools) — git undo + policy engine
19493
- vault_undo_last_mutation: "automation",
19494
- policy: "automation"
19491
+ vault_init: "diagnostics"
19495
19492
  };
19496
19493
  function generateInstructions(categories) {
19497
19494
  const parts = [];
@@ -19518,7 +19515,37 @@ Escalation: "search" (enriched metadata + content preview) \u2192 "get_note_stru
19518
19515
  parts.push(`
19519
19516
  ## Write
19520
19517
 
19521
- Write to existing notes with "vault_add_to_section". Create new notes with "vault_create_note". Update metadata with "vault_update_frontmatter". All writes auto-link entities \u2014 no manual [[wikilinks]] needed.`);
19518
+ Write to existing notes with "vault_add_to_section". Create new notes with "vault_create_note".
19519
+ Update metadata with "vault_update_frontmatter". All writes auto-link entities \u2014 no manual [[wikilinks]] needed.
19520
+ Use "vault_undo_last_mutation" to reverse the last write.
19521
+
19522
+ **Frontmatter matters more than content** for Flywheel's intelligence. When creating or updating notes, always set:
19523
+ - \`type:\` \u2014 drives entity categorization (person, project, technology). Without it, the category is guessed from the name alone.
19524
+ - \`aliases:\` \u2014 alternative names so the entity is found when referred to differently.
19525
+ - \`description:\` \u2014 one-line summary shown in search results and used by recall.
19526
+ - Tags \u2014 used for filtering, suggestion scoring, and schema analysis.
19527
+ Good frontmatter is the highest-leverage action for improving suggestions, recall, and link quality.
19528
+
19529
+ ### Policies
19530
+
19531
+ Use "policy" to build deterministic, repeatable vault workflows. Describe what you want in plain
19532
+ language \u2014 Claude authors the YAML, saves it, and can execute it on demand. No YAML knowledge needed.
19533
+
19534
+ Policies chain vault tools (add/remove/replace sections, create notes, update frontmatter, toggle
19535
+ tasks) into atomic operations \u2014 all steps succeed or all roll back, committed as a single git commit.
19536
+
19537
+ Actions: "author" a policy from a description, "validate" the YAML, "preview" (dry-run),
19538
+ "execute" with variables, "list" saved policies, "revise" to modify.
19539
+
19540
+ Key capabilities:
19541
+ - **Variables** \u2014 parameterize policies (string, number, boolean, array, enum with defaults).
19542
+ - **Conditions** \u2014 branch on file/section/frontmatter state (skip steps, don't abort).
19543
+ - **Templates** \u2014 interpolate variables, builtins ({{today}}, {{now}}), and prior step outputs.
19544
+ - **Atomicity** \u2014 failure at any step rolls back all changes. One policy = one git commit.
19545
+
19546
+ Example: ask "create a policy that generates a weekly review note, pulls open tasks, and updates
19547
+ project frontmatter" \u2014 Claude authors the YAML, saves it to .claude/policies/, and runs it whenever
19548
+ you say "run the weekly review for this week".`);
19522
19549
  }
19523
19550
  if (categories.has("memory")) {
19524
19551
  parts.push(`
package/package.json CHANGED
@@ -1,11 +1,11 @@
1
1
  {
2
2
  "name": "@velvetmonkey/flywheel-memory",
3
- "version": "2.0.80",
3
+ "version": "2.0.82",
4
4
  "description": "MCP server that gives Claude full read/write access to your Obsidian vault. Select from 51 tools for search, backlinks, graph queries, mutations, agent memory, and hybrid semantic search.",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
7
7
  "bin": {
8
- "flywheel-memory": "dist/index.js"
8
+ "flywheel-memory": "bin/flywheel-memory.js"
9
9
  },
10
10
  "repository": {
11
11
  "type": "git",
@@ -52,7 +52,7 @@
52
52
  },
53
53
  "dependencies": {
54
54
  "@modelcontextprotocol/sdk": "^1.25.1",
55
- "@velvetmonkey/vault-core": "^2.0.80",
55
+ "@velvetmonkey/vault-core": "^2.0.82",
56
56
  "better-sqlite3": "^11.0.0",
57
57
  "chokidar": "^4.0.0",
58
58
  "gray-matter": "^4.0.3",
@@ -76,6 +76,7 @@
76
76
  },
77
77
  "license": "Apache-2.0",
78
78
  "files": [
79
+ "bin",
79
80
  "dist",
80
81
  "README.md",
81
82
  "LICENSE"