grounder 0.4.0 → 0.5.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.
Files changed (138) hide show
  1. package/README.md +148 -270
  2. package/dist/agents/claude.d.ts.map +1 -1
  3. package/dist/agents/claude.js +2 -1
  4. package/dist/agents/claude.js.map +1 -1
  5. package/dist/agents/cursor.d.ts.map +1 -1
  6. package/dist/agents/cursor.js +2 -1
  7. package/dist/agents/cursor.js.map +1 -1
  8. package/dist/agents/hook-runtime.d.ts +3 -3
  9. package/dist/agents/hook-runtime.js +4 -4
  10. package/dist/agents/hook-runtime.js.map +1 -1
  11. package/dist/cli.js +11 -10
  12. package/dist/cli.js.map +1 -1
  13. package/dist/commands/apply-agent-installs.d.ts +2 -2
  14. package/dist/commands/apply-agent-installs.d.ts.map +1 -1
  15. package/dist/commands/apply-agent-installs.js +1 -1
  16. package/dist/commands/doctor.d.ts.map +1 -1
  17. package/dist/commands/doctor.js +7 -4
  18. package/dist/commands/doctor.js.map +1 -1
  19. package/dist/commands/handoff/list.d.ts +23 -13
  20. package/dist/commands/handoff/list.d.ts.map +1 -1
  21. package/dist/commands/handoff/list.js +28 -16
  22. package/dist/commands/handoff/list.js.map +1 -1
  23. package/dist/commands/handoff.d.ts +2 -0
  24. package/dist/commands/handoff.d.ts.map +1 -1
  25. package/dist/commands/handoff.js +10 -1
  26. package/dist/commands/handoff.js.map +1 -1
  27. package/dist/commands/link.d.ts +12 -0
  28. package/dist/commands/link.d.ts.map +1 -0
  29. package/dist/commands/{repo/init.js → link.js} +35 -27
  30. package/dist/commands/link.js.map +1 -0
  31. package/dist/commands/migrate.js +3 -5
  32. package/dist/commands/migrate.js.map +1 -1
  33. package/dist/commands/note/list.d.ts +17 -9
  34. package/dist/commands/note/list.d.ts.map +1 -1
  35. package/dist/commands/note/list.js +19 -14
  36. package/dist/commands/note/list.js.map +1 -1
  37. package/dist/commands/note.d.ts +2 -0
  38. package/dist/commands/note.d.ts.map +1 -1
  39. package/dist/commands/note.js +10 -1
  40. package/dist/commands/note.js.map +1 -1
  41. package/dist/commands/output.d.ts +22 -2
  42. package/dist/commands/output.d.ts.map +1 -1
  43. package/dist/commands/output.js +18 -6
  44. package/dist/commands/output.js.map +1 -1
  45. package/dist/commands/plan/list.d.ts +20 -12
  46. package/dist/commands/plan/list.d.ts.map +1 -1
  47. package/dist/commands/plan/list.js +22 -17
  48. package/dist/commands/plan/list.js.map +1 -1
  49. package/dist/commands/plan.d.ts +2 -0
  50. package/dist/commands/plan.d.ts.map +1 -1
  51. package/dist/commands/plan.js +12 -2
  52. package/dist/commands/plan.js.map +1 -1
  53. package/dist/commands/require-linked.js +2 -2
  54. package/dist/commands/require-linked.js.map +1 -1
  55. package/dist/commands/search.d.ts +23 -0
  56. package/dist/commands/search.d.ts.map +1 -0
  57. package/dist/commands/search.js +277 -0
  58. package/dist/commands/search.js.map +1 -0
  59. package/dist/commands/{vault/init.d.ts → setup.d.ts} +5 -4
  60. package/dist/commands/setup.d.ts.map +1 -0
  61. package/dist/commands/setup.js +137 -0
  62. package/dist/commands/setup.js.map +1 -0
  63. package/dist/commands/status.d.ts.map +1 -1
  64. package/dist/commands/status.js +24 -15
  65. package/dist/commands/status.js.map +1 -1
  66. package/dist/commands/upgrade-banner.d.ts +2 -2
  67. package/dist/commands/upgrade-banner.js +2 -2
  68. package/dist/connector/home.d.ts +12 -0
  69. package/dist/connector/home.d.ts.map +1 -1
  70. package/dist/connector/home.js +26 -2
  71. package/dist/connector/home.js.map +1 -1
  72. package/dist/connector/state.d.ts +1 -1
  73. package/dist/connector/state.d.ts.map +1 -1
  74. package/dist/connector/vault.d.ts +2 -0
  75. package/dist/connector/vault.d.ts.map +1 -1
  76. package/dist/connector/vault.js +6 -1
  77. package/dist/connector/vault.js.map +1 -1
  78. package/dist/help.d.ts +3 -3
  79. package/dist/help.d.ts.map +1 -1
  80. package/dist/help.js +70 -51
  81. package/dist/help.js.map +1 -1
  82. package/dist/util/frontmatter.d.ts +9 -7
  83. package/dist/util/frontmatter.d.ts.map +1 -1
  84. package/dist/util/frontmatter.js +29 -4
  85. package/dist/util/frontmatter.js.map +1 -1
  86. package/dist/util/path.d.ts +23 -0
  87. package/dist/util/path.d.ts.map +1 -1
  88. package/dist/util/path.js +39 -0
  89. package/dist/util/path.js.map +1 -1
  90. package/dist/vault/list-handoffs.d.ts +3 -1
  91. package/dist/vault/list-handoffs.d.ts.map +1 -1
  92. package/dist/vault/list-handoffs.js +17 -15
  93. package/dist/vault/list-handoffs.js.map +1 -1
  94. package/dist/vault/list-markdown.d.ts +8 -0
  95. package/dist/vault/list-markdown.d.ts.map +1 -0
  96. package/dist/vault/list-markdown.js +35 -0
  97. package/dist/vault/list-markdown.js.map +1 -0
  98. package/dist/vault/list-notes.d.ts +5 -5
  99. package/dist/vault/list-notes.d.ts.map +1 -1
  100. package/dist/vault/list-notes.js +12 -22
  101. package/dist/vault/list-notes.js.map +1 -1
  102. package/dist/vault/list-plans.d.ts +2 -2
  103. package/dist/vault/list-plans.d.ts.map +1 -1
  104. package/dist/vault/list-plans.js +9 -19
  105. package/dist/vault/list-plans.js.map +1 -1
  106. package/dist/vault/search.d.ts +55 -0
  107. package/dist/vault/search.d.ts.map +1 -0
  108. package/dist/vault/search.js +328 -0
  109. package/dist/vault/search.js.map +1 -0
  110. package/dist/vault/write-handoff.d.ts +2 -0
  111. package/dist/vault/write-handoff.d.ts.map +1 -1
  112. package/dist/vault/write-handoff.js +5 -0
  113. package/dist/vault/write-handoff.js.map +1 -1
  114. package/dist/vault/write-note.d.ts +2 -0
  115. package/dist/vault/write-note.d.ts.map +1 -1
  116. package/dist/vault/write-note.js +9 -1
  117. package/dist/vault/write-note.js.map +1 -1
  118. package/dist/vault/write-plan.d.ts +4 -0
  119. package/dist/vault/write-plan.d.ts.map +1 -1
  120. package/dist/vault/write-plan.js +14 -1
  121. package/dist/vault/write-plan.js.map +1 -1
  122. package/package.json +10 -3
  123. package/templates/agents/claude/commands/grounder-note.md +6 -2
  124. package/templates/agents/claude/commands/grounder-plan.md +7 -5
  125. package/templates/agents/claude/commands/grounder-search.md +144 -0
  126. package/templates/agents/claude/commands/grounder-task-handoff.md +5 -1
  127. package/templates/agents/claude/commands/grounder-task.md +2 -2
  128. package/templates/agents/cursor/commands/grounder-note.md +6 -2
  129. package/templates/agents/cursor/commands/grounder-plan.md +7 -5
  130. package/templates/agents/cursor/commands/grounder-search.md +144 -0
  131. package/templates/agents/cursor/commands/grounder-task-handoff.md +5 -1
  132. package/templates/agents/cursor/commands/grounder-task.md +2 -2
  133. package/dist/commands/repo/init.d.ts +0 -11
  134. package/dist/commands/repo/init.d.ts.map +0 -1
  135. package/dist/commands/repo/init.js.map +0 -1
  136. package/dist/commands/vault/init.d.ts.map +0 -1
  137. package/dist/commands/vault/init.js +0 -90
  138. package/dist/commands/vault/init.js.map +0 -1
package/README.md CHANGED
@@ -1,43 +1,45 @@
1
- # Grounder
2
-
3
- [![npm version](https://img.shields.io/npm/v/grounder.svg)](https://www.npmjs.com/package/grounder)
4
- [![license](https://img.shields.io/npm/l/grounder.svg)](../../LICENSE)
1
+ <div align="center">
5
2
 
6
- > **Markdown-native memory shared across AI agents, sessions, and machines.**
7
-
8
- AI agents forget everything between sessions and can't share context with each other. **Grounder** fixes this by externalizing agent memory into local files you control (Obsidian-compatible, but never required). Context survives session ends, agent switches, and machine migrations.
3
+ # Grounder
9
4
 
10
- ### What it is
5
+ **Obsidian vault memory for Cursor and Claude Code.**
6
+ Session summaries, plans, and notes in files you own.
11
7
 
12
- AI-first CLI and agent command set that:
8
+ <picture>
9
+ <source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/andrej-kolic/grounder/main/docs/assets/what-dark.svg">
10
+ <img alt="Grounder connects Cursor, Claude Code, and more agents to one markdown vault through slash commands and the CLI. The vault is a folder tree: 10-Projects/your-project/ containing plans (updated across sessions), notes (always a new file), and logs (saved session summaries). Caption: Any agent. One vault. Only when you ask." src="https://raw.githubusercontent.com/andrej-kolic/grounder/main/docs/assets/what.svg">
11
+ </picture>
13
12
 
14
- - **Connects any project** — git repositories or standard folders — to your local vault (multi-project support).
15
- - **Captures state deliberately** — converts a discussion into a living plan, checkpoints a session for handoff, or saves arbitrary notes.
16
- - **Hydrates on demand** — allows you or any agent to resume exactly where a prior session left off without re-deriving context.
17
- - **Works natively today** with Cursor, Claude Code, and standard CLI workflows.
13
+ <div>&nbsp;</div>
18
14
 
19
- ### What it is not
15
+ [![npm version](https://img.shields.io/npm/v/grounder.svg)](https://www.npmjs.com/package/grounder)
16
+ [![license](https://img.shields.io/npm/l/grounder.svg)](https://github.com/andrej-kolic/grounder/blob/main/LICENSE)
20
17
 
21
- Grounder is **not** an auto-capture or RAG tool, nor does it attempt to record every interaction. There is no vector database, no background indexing, and zero context injection unless explicitly requested. One small, deliberate checkpoint replaces an agent re-deriving context from scratch — using a fraction of the tokens in a file you can diff, edit, or delete.
18
+ </div>
22
19
 
23
- ### Demo
20
+ **Grounder** keeps agent memory in plain markdown on disk — an Obsidian vault, or any
21
+ directory. Because it's files instead of chat history, work started in Cursor can be
22
+ picked up in Claude Code, weeks later, on a different machine.
24
23
 
25
- ![A session loop: peek teaser, /grounder-task resume, /grounder-plan list, continuing a plan, /grounder-note, /grounder-task-handoff each with the real grounder CLI call it runs and the vault path it touches](../demo-casts/out/readme.gif)
24
+ The daily loop is five slash commands[examples](#examples) show what you type.
26
25
 
27
- A full session loop, one step at a time:
26
+ ## The problem
28
27
 
29
- - **Peek hook** resumes a prior handoff automatically at session start
30
- - **`/grounder-task`** picks up the next step from that handoff
31
- - **`/grounder-plan list`** shows the real plans already sitting in the vault
32
- - Continuing a plan by name — plain chat works too, not just slash commands
33
- - **`/grounder-note`** captures a quick mid-session insight
34
- - **`/grounder-task-handoff`** checkpoints the session on close
28
+ - **Every new chat starts from scratch.** Close the window and the next session has no idea what you just decided.
29
+ - **Cursor and Claude Code don't share context.** Decisions from one stay trapped in that tool's chat history.
30
+ - **You can't find the plan.** Implementation plans and decisions end up buried in a chat transcript, or in whatever directory some tool chose for you.
35
31
 
36
- Dim lines are the actual `grounder` CLI call each slash command runs under the hood. Regenerated with `pnpm demo:cast` from [`@grounder/demo-casts`](../demo-casts/).
32
+ ## What you get
37
33
 
38
- **Requirements:** Node.js 18+ and an Obsidian vault on disk. Git is optional but used when present (project id detection and link lookup bounds).
34
+ - **Files, not a service** plain markdown on disk: open it, diff it, delete it. No database or background process.
35
+ - **One vault, every project** — each linked project gets its own folder. A git repo or a plain folder both work.
36
+ - **Plans live, sessions accumulate** — a plan updates in place across sessions; notes and handoffs are dated files, kept to go back to. `search` ranks across all of them.
37
+ - **Deliberate** — nothing is read or written until you run a command. No auto-capture, no RAG, no tokens spent otherwise.
38
+ - **Follows you across machines** — the vault is just a folder, so git (or Syncthing, or Dropbox) is all the sync you need.
39
+ - **Cursor and Claude Code today** — slash commands for both; more agents on the [roadmap](#roadmap).
39
40
 
40
- **Contents:** [Install](#install) · [Upgrading](#upgrading) · [Quickstart](#quickstart) · [Setup overview](#setup-overview) · [Commands](#commands) · [Configuration](#configuration) · [Agents](#agents) · [Session-start hooks](#session-start-hooks) · [Troubleshooting](#troubleshooting) · [Roadmap](#roadmap)
41
+ **Requirements:** Node.js 18+ and a folder to keep the files in an existing Obsidian
42
+ vault, or an empty directory Grounder fills over time. Git is optional.
41
43
 
42
44
  ## Install
43
45
 
@@ -45,306 +47,177 @@ Dim lines are the actual `grounder` CLI call each slash command runs under the h
45
47
  npm install -g grounder
46
48
  ```
47
49
 
48
- Or run without installing:
50
+ Or let an agent handle install and setup:
49
51
 
50
52
  ```bash
51
- npx grounder --help
53
+ npx skills add andrej-kolic/grounder --skill grounder-setup -g
52
54
  ```
53
55
 
54
- `grounder -h` prints a short synopsis; `grounder --help` (or `grounder help`) prints the full reference; `grounder -v` prints the installed version.
55
-
56
- ## Upgrading
57
-
58
- After upgrading the package, refresh agent installs:
59
-
60
- ```bash
61
- grounder migrate
62
- ```
56
+ Adding the skill only loads instructions it does **nothing** until you ask your agent to
57
+ run it (e.g. "set up grounder"). Skip the global install with
58
+ `npx grounder --help`, at the cost of re-running `grounder migrate` after each upgrade.
63
59
 
64
- Run `grounder doctor` if you’re unsure it hints when plain `migrate` is enough vs `migrate --force` (needed **once** when upgrading from Grounder before 0.3, or when command files were edited locally). Most grounder commands and session-start teasers will also tell you when a migrate is due. Flag details: [Migrate flags](#migrate-flags).
60
+ `grounder -h` prints a short synopsis, `grounder --help` the full reference, and
61
+ `grounder -v` the installed version.
65
62
 
66
63
  ## Quickstart
67
64
 
68
- **1. One-time setup:**
69
-
70
65
  ```bash
71
- # Once per machine — set vault location + install agent slash commands
72
- # --hooks adds an optional one-line session-start reminder (see Session-start hooks)
73
- grounder vault init <path-to-your-vault> --hooks
66
+ # Once per machine — connect to a vault + install agent slash commands
67
+ grounder setup <path-to-your-vault> --hooks
74
68
 
75
- # Once per project folder — link project id to vault notes/ + logs/ + plans/
69
+ # Once per project folder
76
70
  cd your-project
77
- grounder init
71
+ grounder link
78
72
  ```
79
73
 
80
- Both commands preview what they'll write and ask to confirm; add `--yes` to skip the prompt (e.g. in scripts).
81
-
82
- **2. Daily use from your agent's chat:**
74
+ Both commands preview what they'll write and ask to confirm. Add `--yes` to skip the
75
+ prompt or `--dry-run` to see the preview without writing. `--hooks` is optional and adds a
76
+ one-line reminder at session start when a saved session exists — see
77
+ [session-start hooks](https://github.com/andrej-kolic/grounder/blob/main/docs/session-hooks.md).
83
78
 
84
- ```text
85
- > /grounder-task
79
+ ## Daily use
86
80
 
87
- Reading latest handoff… (logs/2026-07-21-091500-auth-middleware.md)
88
- Done: mapped middleware order.
89
- Next: 1. Add tests for 401 path
90
- Starting on tests for the 401 path now.
81
+ Work from the agent's chat. A typical loop starts by resuming the last saved session and
82
+ ends by saving a short summary.
91
83
 
92
- > ...you work with the agent...
84
+ Anything after a slash command is an instruction, not file content. The agent follows
85
+ it — writes a plan, saves a note, or searches the vault. `/grounder-task` and
86
+ `/grounder-task-handoff` don't need text at all.
93
87
 
94
- > /grounder-task-handoff
88
+ ### Examples
95
89
 
96
- Wrote handoff → <vault>/10-Projects/your-project/logs/2026-07-28-143200-auth-middleware.md
97
- ```
90
+ A typical session:
98
91
 
99
- `/grounder-task` hydrates the agent from the newest *usable* handoff plus `AGENTS.md`; `/grounder-task-handoff` writes the next checkpoint when you close the session. Behind the scenes these run `grounder handoff list --head` and `grounder handoff <text>` for you — see [Session loop](#session-loop).
92
+ | You type | What it does |
93
+ | -------- | ------------ |
94
+ | `/grounder-task` | Resume the latest saved session |
95
+ | `/grounder-plan save insights from this session as an implementation plan with steps` | Write a named plan |
96
+ | `/grounder-search decisions and discussions on token refresh` | Search the vault |
97
+ | `/grounder-note explain why we rejected cookie sessions` | Save a new note |
98
+ | `/grounder-task-handoff` | Save a short session summary |
100
99
 
101
- No agent, or want to write by hand? The same actions are plain CLI commands:
100
+ Later, update the living plan or resume a named session:
102
101
 
103
- ```bash
104
- grounder note "Investigate auth middleware" # ad-hoc note
105
- grounder handoff $'# Handoff: ...\n\n## Next\n1. ...' # session checkpoint
106
- grounder handoff list # newest handoffs, for manual hydrate
107
- grounder plan $'# Goal\n\nShip it' --title phase-1 # named living plan
108
- ```
102
+ | You type | What it does |
103
+ | -------- | ------------ |
104
+ | `/grounder-plan update the auth rewrite plan jwt validator is done` | Update an existing plan |
105
+ | `/grounder-task resume the auth-middleware session` | Resume a specific saved session, not the latest |
109
106
 
110
- Notes land in `<vault>/10-Projects/{projectId}/notes/`.
111
- Handoffs land in `<vault>/10-Projects/{projectId}/logs/` (one file per close; newest *usable* file wins — an empty or unreadable newest file falls back to the next one).
112
- Plans land in `<vault>/10-Projects/{projectId}/plans/` (one file per `--title`; overwrite only with `--force`).
113
-
114
- Unlike `note` (one-off) and `handoff` (per-session checkpoint), `plan` is for anything spanning multiple sessions — write it once with the goal + steps, then re-run with `--force` as the work progresses to keep one file current instead of scattering updates across handoffs.
115
-
116
- Inspect or debug setup any time with `grounder status` / `grounder doctor` — see [Troubleshooting](#troubleshooting).
117
-
118
- ### Session loop
119
-
120
- ```text
121
- (optional teaser) → /grounder-task → work → /grounder-task-handoff → next session
122
- ```
123
-
124
-
125
- | Slash command | Equivalent CLI | Role |
126
- | ------------------------ | ---------------------------------------- | ---------------------------------------------------------- |
127
- | `/grounder-note` | `grounder note` | Ad-hoc vault note |
128
- | `/grounder-task-handoff` | `grounder handoff` | Write session checkpoint to `logs/` |
129
- | `/grounder-task` | `grounder handoff list --head` + read it | Read-only hydrate from newest usable handoff + `AGENTS.md` |
130
- | `/grounder-plan` | `grounder plan` | Named living plan under `plans/` |
131
-
132
-
133
- The "Equivalent CLI" column is what you'd type by hand — under the hood, slash commands invoke a small runtime `vault init` maintains at `~/.grounder/runtime` (see [Agents](#agents)), not whatever `grounder` binary happens to be on your `PATH`.
134
-
135
- With `--hooks` on `vault init`, a new Cursor/Claude session may also print a one-line teaser when a handoff exists — never the full body. See [Session-start hooks](#session-start-hooks).
107
+ ### Demo
136
108
 
137
- ## Setup overview
109
+ ![Daily-use session loop across the five slash commands](https://raw.githubusercontent.com/andrej-kolic/grounder/main/packages/demo-casts/out/readme.gif)
138
110
 
139
- - `grounder vault init <path>` (once per machine) writes `~/.grounder/config.json`, creates `<vault>/10-Projects/`, and installs slash commands for detected agents (Cursor → `~/.cursor/commands/`, Claude Code → `~/.claude/commands/`; override with `--agent=<id>`).
140
- - `grounder init` (once per project folder) writes `.grounder.json` (`projectId` — safe to commit) and creates `<vault>/10-Projects/{projectId}/notes/`, `logs/`, and `plans/`.
141
- - **Daily use** — notes, handoffs, plans, and recall via CLI or slash commands; no further install.
111
+ ## How it works
142
112
 
143
- Nothing is written into the repo except the small `.grounder.json` marker. Agent artifacts stay under the user’s home directory; vault notes stay outside the project tree.
113
+ Three things, and that's the whole model:
144
114
 
145
- ## Commands
115
+ 1. **One vault per machine.** `grounder setup` records the vault path in
116
+ `~/.grounder/config.json`. Nothing else on the machine needs to know where it is.
117
+ 2. **One folder per project.** `grounder link` writes a two-line `.grounder.json`
118
+ (safe to commit) into the project and creates the matching folder in the vault. That
119
+ marker is how every later command knows where to read and write.
120
+ 3. **Three document types**, each with a fixed shape so agents produce consistent files:
146
121
 
147
122
  ```text
148
- grounder vault init <path> Initialize vault + home config (once per machine)
149
- grounder init Connect the current folder to your vault
150
- grounder note <text> Write a note to the vault
151
- grounder note list Print recent notes (count header + numbered title/path, newest first)
152
- grounder handoff <text> Write a session handoff to vault logs/
153
- grounder handoff list Print recent handoffs (count header + numbered title/path, newest first)
154
- grounder handoff list --head Print only the newest usable handoff path
155
- grounder handoff peek One-line latest-handoff teaser (used by session hooks)
156
- grounder plan <text> Write/update a named plan under vault plans/
157
- grounder plan list Print recent plans (count header + numbered title/path, newest first)
158
- grounder path notes Print resolved notes directory
159
- grounder path logs Print resolved logs directory
160
- grounder path plans Print resolved plans directory
161
- grounder status Snapshot of machine + project link + resolved paths
162
- grounder doctor Health checks with fix hints
163
- grounder migrate Refresh agent install after upgrading grounder
123
+ 10-Projects/your-project/
124
+ ├── notes/
125
+ │ └── 2026-07-21-auth-investigation.md ← one-off, always a new file
126
+ ├── logs/
127
+ │ ├── 2026-07-21-091500-auth-middleware.md ← one handoff per session
128
+ │ └── 2026-08-14-103000-auth-middleware.md
129
+ └── plans/
130
+ └── auth-rewrite.md ← living: updated in place
164
131
  ```
165
132
 
133
+ `10-Projects/` is a common Obsidian vault convention, so Grounder slots into an existing vault instead
134
+ of fighting it. A **handoff** is a saved session summary — what got done, what's next,
135
+ what's blocked — and they live under `logs/` because they accumulate one per session.
136
+ `/grounder-task` resumes the latest saved session by default, or an earlier one by name.
166
137
 
138
+ Here's the living plan, `plans/auth-rewrite.md`:
167
139
 
168
- ### Init flags
169
-
170
-
171
- | Flag | Commands | Description |
172
- | ---------------- | ------------------------------- | ------------------------------------------------------------------------------------------------- |
173
- | `--yes` | `vault init`, `init` | Skip confirmation prompts |
174
- | `--force` | `vault init`, `init`, `migrate` | Overwrite existing generated / locally-modified files |
175
- | `--id <id>` | `init` | Override detected project id |
176
- | `--vault <path>` | `init` | Override home vault root for this run |
177
- | `--agent <id>` | `vault init`, `migrate` | Install for a specific agent (repeatable; default: auto-detect). Supported: `cursor`, `claude` |
178
- | `--hooks` | `vault init`, `migrate` | Also install session-start teaser hooks (opt-in; see [Session-start hooks](#session-start-hooks)) |
179
-
180
-
181
-
182
-
183
- ### Migrate flags
184
-
185
-
186
- | Flag | Description |
187
- | -------------- | -------------------------------------------------------------------------------------------------------------- |
188
- | `--force` | Overwrite slash command files you edited locally; also needed **once** when upgrading from Grounder before 0.3 |
189
- | `--dry-run` | Preview without writing |
190
- | `--agent <id>` | Limit to a specific agent (repeatable) |
191
- | `--hooks` | Install hooks even if they were never installed before |
192
-
193
-
194
- See [Upgrading](#upgrading) for the usual post-package-upgrade flow. Untouched command files update automatically; locally edited ones (and pre-0.3 installs with no ledger) are skipped unless you pass `--force`.
195
-
196
- ### Note / handoff flags
197
-
198
-
199
- | Flag | Commands | Description |
200
- | ---------------- | --------------------------- | ------------------------------------------------------------------------------------------------------- |
201
- | `--title <slug>` | `note`, `handoff` | Filename slug (default: slugified text / first line) |
202
- | `--limit <n>` | `note list` | Max notes to print (default: 5) |
203
- | `--limit <n>` | `handoff list` | Max handoffs to print (default: 5) |
204
- | `--limit <n>` | `plan list` | Max plans to print (default: 5) |
205
- | `--head` | `handoff list` | Print only the newest *usable* handoff path — skips empty/unreadable files, same pick as `handoff peek` |
206
-
140
+ ```markdown
141
+ ---
142
+ project: "your-project"
143
+ created: "2026-07-21T09:15:00Z"
144
+ updated: "2026-08-14T10:30:00Z"
145
+ topics: ["auth", "middleware", "jwt"]
146
+ ---
207
147
 
148
+ ## Goal
149
+ Ship the auth rewrite before Q3 cutover.
208
150
 
209
-
210
- ### Plan flags
211
-
212
-
213
- | Flag | Commands | Description |
214
- | ---------------- | -------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------- |
215
- | `--title <name>` | `plan` | Filename stem when creating/updating by name (trailing `.md` ok; sanitized, max 80 chars; no auto-slug). Mutually exclusive with `--path`. |
216
- | `--path <file>` | `plan` | Update an existing plan by path (must resolve under this project's `plans/`; no title sanitization; always overwrites). Mutually exclusive with `--title`. |
217
- | `--force` | `plan` | With `--title`: overwrite an existing plan (preserves original `created`, sets `updated`). Not used with `--path`. |
218
-
219
-
220
- Unlike `note` / `handoff` (always a new dated file), `plan` is living: create or collide by `--title` (use `--force` to overwrite), or update an existing file in place with `--path`.
221
-
222
- ### Doctor flags
223
-
224
-
225
- | Flag | Description |
226
- | ---------- | ---------------------------------------------- |
227
- | `--global` | Machine-only checks (skip project/link checks) |
228
-
229
-
230
- Run `grounder --help` for the full reference.
231
-
232
- ### Status vs doctor
233
-
234
-
235
- | Command | Job | When to use |
236
- | ----------------- | -------------------------------------------------------------------------------------------- | ------------------------------------------ |
237
- | `grounder status` | Snapshot of Machine (home config + vault path) and Project (link, id, notes/logs/plans, git) | “Am I wired?” — see paths and link state |
238
- | `grounder doctor` | Health checklist (`ok` / `fail` / `warn`) with fix hints; exit `1` on any fail | “Why isn’t memory working?” — verify setup |
239
-
240
-
241
- Both are read-only. `status` exits `0` even when unlinked; `doctor` fails when checks fail. Use `doctor --global` to check the machine without a project link.
242
-
243
- `status` only reads the install ledger (`Schemas: current` / `Schemas: ledger stale` — it does not open agent command/hook files). `doctor` checks on-disk drift via migrate dry-run, and also warns when files already match but the ledger schema is still behind, so both point at `grounder migrate` in that case.
244
-
245
- ## Configuration
246
-
247
- **Machine config** — `~/.grounder/config.json`:
248
-
249
- ```json
250
- { "vaultRoot": "/path/to/your/vault" }
251
- ```
252
-
253
- Written by `grounder vault init`. Holds the vault path for this machine only.
254
-
255
- **Link marker** — `.grounder.json` in the folder where you run `grounder init` (safe to commit):
256
-
257
- ```json
258
- { "version": 1, "projectId": "your-project" }
151
+ ## Steps
152
+ - [x] Map current middleware order
153
+ - [ ] Add tests for the 401 path
154
+ - [ ] Swap in new token validator
259
155
  ```
260
156
 
261
- Written by `grounder init` in the **current working directory**. Project id detection (when `--id` is omitted): `package.json` name in that folder git `origin` remote (if inside a git repo) folder basename.
157
+ `created` and `updated` are different dates the plan survived a second session, in the
158
+ same agent or a different one, on the same machine or another. Obsidian renders that
159
+ frontmatter as Properties, so it's browsable and queryable without plugins.
262
160
 
263
- `grounder note`, `grounder handoff`, `grounder plan`, and `grounder path *` walk up from the current directory to find the nearest `.grounder.json`, stopping at the git root when one exists (or at the filesystem root otherwise).
264
-
265
- **Environment variables**
266
-
267
-
268
- | Variable | Description |
269
- | ---------------- | ------------------------------------------------------------ |
270
- | `GROUNDER_VAULT` | Override vault root for the current session |
271
- | `GROUNDER_HOME` | Override home directory (default: `~`) for config resolution |
272
-
273
-
274
-
275
-
276
- ## Agents
277
-
278
- The vault layout is agent-agnostic. `grounder vault init` installs thin glue artifacts per detected agent via a pluggable adapter registry (`src/agents/`).
279
-
280
-
281
- | Agent | Detection | Artifacts |
282
- | ----------- | ------------------ | -------------------------------------------------------------- |
283
- | Cursor | `~/.cursor` exists | `~/.cursor/commands/grounder-{note,task,task-handoff,plan}.md` |
284
- | Claude Code | `~/.claude` exists | `~/.claude/commands/grounder-{note,task,task-handoff,plan}.md` |
161
+ Machine config, the link marker, and how commands find the project:
162
+ **[Configuration](https://github.com/andrej-kolic/grounder/blob/main/docs/configuration.md)**.
285
163
 
164
+ ## Commands
286
165
 
287
- No `--agent` flag: auto-detect installed agents. Explicit install:
166
+ No agent, or want to write by hand? Each slash command has a matching CLI command.
167
+ Pass the file text (or search query) — not an instruction for the agent.
288
168
 
289
169
  ```bash
290
- grounder vault init <path-to-your-vault> --agent=cursor --agent=claude
170
+ grounder plan $'# Goal\n\nShip it' --title auth-rewrite # named plan
171
+ grounder note "Investigate auth middleware" # always a new note
172
+ grounder handoff $'# Handoff: ...\n\n## Next\n1. ...' # saved session summary
173
+ grounder search "token refresh" # find earlier documents on token refresh
174
+ grounder plan list # also: note list, handoff list
175
+ grounder status # am I wired up?
176
+ grounder doctor # why isn't this working?
291
177
  ```
292
178
 
293
- Slash commands invoke `~/.grounder/runtime/dist/cli.js` directly (not `npx`) — see [Session-start hooks](#session-start-hooks) for how that runtime stays current. Command files that still match what Grounder last wrote are refreshed by `grounder migrate` without `--force`. Locally edited files are left alone unless you pass `--force`.
179
+ Full flags and behavior: **[CLI reference](https://github.com/andrej-kolic/grounder/blob/main/docs/cli-reference.md)**.
294
180
 
295
- After upgrading the package, see [Upgrading](#upgrading). `vault init --force` still works for scripts that already use it; it shares the same install path as `migrate`.
181
+ ## FAQ
296
182
 
297
- Templates live under `templates/agents/{id}/`. Adding another agent means one adapter file + one template directory — `vault init` stays agent-blind.
183
+ ### How is this different from `AGENTS.md` or `CLAUDE.md`?
298
184
 
299
- ## Session-start hooks
185
+ Those are instructions written once: stable rules about the project. Grounder stores
186
+ what accumulates: what happened last session, what's next, the plan currently in flight.
187
+ They're complements — `/grounder-task` reads the latest saved session *and* `AGENTS.md`.
300
188
 
301
- Opt-in safety net for the session loop: when a Cursor or Claude Code session starts in a linked project that already has a handoff, Grounder prints **one line** reminding you it exists. You (or the agent) still decide whether to run `/grounder-task`.
189
+ ### Is this an MCP server?
302
190
 
303
- ```bash
304
- grounder vault init <path-to-your-vault> --hooks
305
- ```
306
-
307
- Example teaser:
308
-
309
- ```text
310
- [grounder] Latest handoff: "auth middleware" (2026-07-28). Run /grounder-task to load it, or ignore if unrelated.
311
- ```
191
+ No. It's a CLI plus slash command files. Nothing is registered with the agent, nothing
192
+ runs in the background, and no tokens are spent until you type a command.
312
193
 
313
- What hooks do **not** do:
194
+ ### Do I need Obsidian?
314
195
 
315
- - They never auto-load the full handoff body into context
316
- - They never block or delay a session from starting
317
- - Unlinked folders and projects with no handoffs print nothing (exit 0, silent)
196
+ No any directory works. Obsidian is just a nice reader for it: frontmatter shows up as
197
+ Properties, and search and backlinks come for free.
318
198
 
319
- `doctor` reports a `warn` (never a `fail`) when a detected agent has no Grounder hook installed, and when `~/.grounder/runtime` is stale or missing.
199
+ ### Does it work across machines?
320
200
 
321
- Hooks *and* slash commands both run `~/.grounder/runtime/dist/cli.js` directly (never `npx`) — `vault init` materializes it, regardless of whether `--hooks` is passed:
201
+ Yes, if the vault does. Make the vault a git repo (or use Syncthing, Dropbox, iCloud) and
202
+ agent memory follows. `grounder setup` is per machine; `.grounder.json` travels
203
+ with the project.
322
204
 
323
- - **Real install** (`npm i -g grounder`, `pnpm add -g grounder`, or a monorepo checkout) → symlinked. Upgrading overwrites the same path in place, so both stay current with **no re-run needed**.
324
- - **Bare** `npx grounder vault init …` (nothing installed) → copied, since each `npx` invocation resolves to a disposable, version-pinned cache dir that can't be symlinked durably. Re-run `grounder migrate` (or `vault init`) after upgrading grounder to refresh (no `--force` needed).
205
+ ### What does it put in my repo?
325
206
 
326
- If you want the runtime to stay current with zero maintenance, install grounder rather than using bare `npx` for this step.
207
+ Only `.grounder.json` two lines, safe to commit. Slash commands go under `~/.cursor` and
208
+ `~/.claude`; vault content stays outside the project tree entirely.
327
209
 
328
- That refresh only touches the shared runtime, not installed command files — see [Upgrading](#upgrading) if `doctor` flags command drift.
329
-
330
- ## Troubleshooting
331
-
332
-
333
- | Symptom | Try |
334
- | -------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------- |
335
- | Not sure if this folder is linked | `grounder status` — check Project `Linked:` and paths |
336
- | Notes / handoffs / plans fail or slash commands missing | `grounder doctor` — follow fix hints |
337
- | Machine setup only (no project yet) | `grounder doctor --global` |
338
- | Home config / vault missing | `grounder vault init <path>` |
339
- | No `.grounder.json` / notes / logs / plans dirs | `grounder init` |
340
- | Agent slash commands drifted (`doctor` warns) | Follow the hint: plain `grounder migrate` when files would auto-update; `grounder migrate --force` when locally modified (also typical once when upgrading from before 0.3) |
341
- | Session-start teaser missing (optional) | `grounder migrate --hooks` — `doctor` warns when absent |
342
- | Shared runtime stale after upgrade (bare npx install) | `grounder migrate` — `doctor` warns when `hook-runtime` is stale |
343
- | Migrate skips all commands as locally modified (first run after upgrade) | `grounder migrate --force` once, then plain `migrate` on later upgrades |
344
- | Node binary gone / not executable (`doctor` fails on hook or command interpreter path) | `grounder migrate` (add `--force` if command files were edited or you’re still on a pre-0.3 install) |
210
+ ### Does it capture my conversations automatically?
345
211
 
212
+ No. Nothing is written or loaded unless you ask. That's the point.
346
213
 
214
+ ## Docs
347
215
 
216
+ - [CLI reference](https://github.com/andrej-kolic/grounder/blob/main/docs/cli-reference.md) — every command and flag
217
+ - [Configuration](https://github.com/andrej-kolic/grounder/blob/main/docs/configuration.md) — machine config, `.grounder.json`, env vars, agent adapters
218
+ - [Upgrading](https://github.com/andrej-kolic/grounder/blob/main/docs/upgrading.md) — run `grounder migrate` after a package upgrade
219
+ - [Session-start hooks](https://github.com/andrej-kolic/grounder/blob/main/docs/session-hooks.md) — the opt-in saved-session reminder
220
+ - [Troubleshooting](https://github.com/andrej-kolic/grounder/blob/main/docs/troubleshooting.md) — symptom → fix
348
221
 
349
222
  ## Roadmap
350
223
 
@@ -353,4 +226,9 @@ That refresh only touches the shared runtime, not installed command files — se
353
226
 
354
227
  ## Development
355
228
 
356
- Source, tests, and contribution workflow live in the [Grounder monorepo](https://github.com/andrej-kolic/grounder).
229
+ Source, tests, and contribution workflow live in the
230
+ [Grounder monorepo](https://github.com/andrej-kolic/grounder).
231
+
232
+ ## License
233
+
234
+ [MIT](https://github.com/andrej-kolic/grounder/blob/main/LICENSE)
@@ -1 +1 @@
1
- {"version":3,"file":"claude.d.ts","sourceRoot":"","sources":["../../src/agents/claude.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EACV,YAAY,EAIb,MAAM,YAAY,CAAC;AAYpB;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAE9D;AAED;;;GAGG;AACH,eAAO,MAAM,4BAA4B,0BAA0B,CAAC;AAEpE,wBAAgB,iBAAiB,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAE1D;AAED,uFAAuF;AACvF,wBAAgB,sBAAsB,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAE/D;AAED,wBAAgB,uBAAuB,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAEhE;AAED,wBAAgB,uBAAuB,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAEhE;AAED,wBAAgB,8BAA8B,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAEvE;AAED,wBAAgB,uBAAuB,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAEhE;AAED,wBAAgB,iBAAiB,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAE5D;AAED,kFAAkF;AAClF,wBAAgB,qBAAqB,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAEhE;AA+ND,eAAO,MAAM,MAAM,EAAE,YAwCpB,CAAC"}
1
+ {"version":3,"file":"claude.d.ts","sourceRoot":"","sources":["../../src/agents/claude.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EACV,YAAY,EAIb,MAAM,YAAY,CAAC;AAapB;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAE9D;AAED;;;GAGG;AACH,eAAO,MAAM,4BAA4B,0BAA0B,CAAC;AAEpE,wBAAgB,iBAAiB,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAE1D;AAED,uFAAuF;AACvF,wBAAgB,sBAAsB,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAE/D;AAED,wBAAgB,uBAAuB,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAEhE;AAED,wBAAgB,uBAAuB,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAEhE;AAED,wBAAgB,8BAA8B,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAEvE;AAED,wBAAgB,uBAAuB,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAEhE;AAED,wBAAgB,iBAAiB,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAE5D;AAED,kFAAkF;AAClF,wBAAgB,qBAAqB,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAEhE;AA+ND,eAAO,MAAM,MAAM,EAAE,YAwCpB,CAAC"}
@@ -10,6 +10,7 @@ const pkgRoot = path.resolve(path.dirname(fileURLToPath(import.meta.url)), "../.
10
10
  const templateDir = path.join(pkgRoot, "templates", "agents", "claude", "commands");
11
11
  const COMMANDS = [
12
12
  "grounder-note.md",
13
+ "grounder-search.md",
13
14
  "grounder-plan.md",
14
15
  "grounder-task-handoff.md",
15
16
  "grounder-task.md",
@@ -257,7 +258,7 @@ async function installHooks(opts) {
257
258
  export const claude = {
258
259
  id: "claude",
259
260
  name: "Claude Code",
260
- commandsSchema: 2,
261
+ commandsSchema: 3,
261
262
  hooksSchema: 1,
262
263
  async isInstalled() {
263
264
  return fileExists(path.join(resolveHomeDir(), ".claude"));
@@ -1 +1 @@
1
- {"version":3,"file":"claude.js","sourceRoot":"","sources":["../../src/agents/claude.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EACL,kBAAkB,EAClB,yBAAyB,EACzB,kBAAkB,EAClB,eAAe,GAChB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,kBAAkB,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAQnF,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;AACpF,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;AAEpF,MAAM,QAAQ,GAAG;IACf,kBAAkB;IAClB,kBAAkB;IAClB,0BAA0B;IAC1B,kBAAkB;CACV,CAAC;AAEX;;;GAGG;AACH,MAAM,UAAU,qBAAqB,CAAC,OAAgB;IACpD,OAAO,eAAe,CAAC,OAAO,CAAC,CAAC;AAClC,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,MAAM,4BAA4B,GAAG,uBAAuB,CAAC;AAEpE,MAAM,UAAU,iBAAiB,CAAC,OAAgB;IAChD,OAAO,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC;AACnE,CAAC;AAED,uFAAuF;AACvF,MAAM,UAAU,sBAAsB,CAAC,OAAgB;IACrD,OAAO,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE,SAAS,EAAE,eAAe,CAAC,CAAC;AACxE,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,OAAgB;IACtD,OAAO,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,EAAE,kBAAkB,CAAC,CAAC;AACnE,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,OAAgB;IACtD,OAAO,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,EAAE,kBAAkB,CAAC,CAAC;AACnE,CAAC;AAED,MAAM,UAAU,8BAA8B,CAAC,OAAgB;IAC7D,OAAO,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,EAAE,0BAA0B,CAAC,CAAC;AAC3E,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,OAAgB;IACtD,OAAO,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,EAAE,kBAAkB,CAAC,CAAC;AACnE,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,OAAgB;IAChD,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC;AACrF,CAAC;AAED,kFAAkF;AAClF,MAAM,UAAU,qBAAqB,CAAC,OAAgB;IACpD,OAAO,CAAC,sBAAsB,CAAC,OAAO,CAAC,CAAC,CAAC;AAC3C,CAAC;AAED,8EAA8E;AAC9E,uDAAuD;AACvD,EAAE;AACF,+EAA+E;AAC/E,4EAA4E;AAC5E,4EAA4E;AAC5E,EAAE;AACF,MAAM;AACN,iBAAiB;AACjB,0BAA0B;AAC1B,YAAY;AACZ,gDAAgD;AAChD,uBAAuB;AACvB,gBAAgB;AAChB,mCAAmC;AACnC,mGAAmG;AACnG,gBAAgB;AAChB,cAAc;AACd,YAAY;AACZ,UAAU;AACV,QAAQ;AACR,MAAM;AACN,EAAE;AACF,0BAA0B;AAC1B,0DAA0D;AAC1D,+EAA+E;AAC/E,wEAAwE;AACxE,sDAAsD;AACtD,gEAAgE;AAChE,EAAE;AACF,+EAA+E;AAC/E,8EAA8E;AAE9E,SAAS,aAAa,CAAC,OAAgB;IACrC,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,qBAAqB,CAAC,OAAO,CAAC,EAAE,CAAC;AACtE,CAAC;AAED;;;;;GAKG;AACH,SAAS,YAAY,CAAC,YAAuB;IAC3C,KAAK,IAAI,QAAQ,GAAG,CAAC,EAAE,QAAQ,GAAG,YAAY,CAAC,MAAM,EAAE,QAAQ,EAAE,EAAE,CAAC;QAClE,MAAM,KAAK,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC;QACrC,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YAChE,SAAS;QACX,CAAC;QACD,MAAM,KAAK,GAAI,KAA6B,CAAC,KAAK,CAAC;QACnD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YAC1B,SAAS;QACX,CAAC;QACD,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,GAAG,KAAK,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE,CAAC;YACxD,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC;YAC5B,IACE,IAAI;gBACJ,OAAO,IAAI,KAAK,QAAQ;gBACxB,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;gBACpB,yBAAyB,CAAE,IAA8B,CAAC,OAAO,CAAC,EAClE,CAAC;gBACD,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC;YAC/B,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,6FAA6F;AAC7F,KAAK,UAAU,wBAAwB,CAAC,QAAgB;IACtD,IAAI,CAAC;QACH,MAAM,MAAM,GAAY,IAAI,CAAC,KAAK,CAAC,MAAM,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC;QACrE,IAAI,MAAM,KAAK,IAAI,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YAC3E,OAAO,KAAK,CAAC;QACf,CAAC;QACD,MAAM,KAAK,GAAI,MAAkC,CAAC,KAAK,CAAC;QACxD,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YAChE,OAAO,KAAK,CAAC;QACf,CAAC;QACD,MAAM,YAAY,GAAI,KAAiC,CAAC,YAAY,CAAC;QACrE,OAAO,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,YAAY,CAAC,YAAY,CAAC,KAAK,IAAI,CAAC;IAC5E,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,KAAK,UAAU,gBAAgB,CAAC,QAAgB,EAAE,OAAgB;IAChE,IAAI,CAAC,CAAC,MAAM,UAAU,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC;QAClC,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IAAI,MAAM,kBAAkB,CAAC,OAAO,CAAC,EAAE,CAAC;QACtC,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IAAI,CAAC;QACH,MAAM,MAAM,GAAY,IAAI,CAAC,KAAK,CAAC,MAAM,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC;QACrE,IAAI,MAAM,KAAK,IAAI,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YAC3E,OAAO,KAAK,CAAC;QACf,CAAC;QACD,MAAM,KAAK,GAAI,MAAkC,CAAC,KAAK,CAAC;QACxD,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YAChE,OAAO,KAAK,CAAC;QACf,CAAC;QACD,MAAM,YAAY,GAAI,KAAiC,CAAC,YAAY,CAAC;QACrE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC;YACjC,OAAO,KAAK,CAAC;QACf,CAAC;QACD,MAAM,KAAK,GAAG,YAAY,CAAC,YAAY,CAAC,CAAC;QACzC,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,OAAO,KAAK,CAAC;QACf,CAAC;QACD,MAAM,KAAK,GAAG,YAAY,CAAC,KAAK,CAAC,QAAQ,CAA4C,CAAC;QACtF,OAAO,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,OAAO,KAAK,qBAAqB,CAAC,OAAO,CAAC,CAAC;IAChF,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,SAAS,gBAAgB,CACvB,OAAgC,EAChC,OAAgB;IAEhB,MAAM,KAAK,GACT,OAAO,CAAC,KAAK,IAAI,OAAO,OAAO,CAAC,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC;QACjF,CAAC,CAAC,EAAE,GAAI,OAAO,CAAC,KAAiC,EAAE;QACnD,CAAC,CAAC,EAAE,CAAC;IACT,MAAM,YAAY,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACtF,MAAM,KAAK,GAAG,YAAY,CAAC,YAAY,CAAC,CAAC;IACzC,MAAM,KAAK,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC;IAErC,IAAI,KAAK,EAAE,CAAC;QACV,wDAAwD;QACxD,MAAM,KAAK,GAAG,EAAE,GAAI,YAAY,CAAC,KAAK,CAAC,QAAQ,CAA6B,EAAE,CAAC;QAC/E,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACtE,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,KAAK,CAAC;QAClC,KAAK,CAAC,KAAK,GAAG,UAAU,CAAC;QACzB,YAAY,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,KAAK,CAAC;IACvC,CAAC;SAAM,CAAC;QACN,MAAM,UAAU,GAAG,YAAY,CAAC,SAAS,CACvC,CAAC,KAAK,EAAE,EAAE,CACR,KAAK;YACL,OAAO,KAAK,KAAK,QAAQ;YACzB,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;YACpB,KAA+B,CAAC,OAAO,KAAK,4BAA4B,CAC5E,CAAC;QACF,IAAI,UAAU,IAAI,CAAC,EAAE,CAAC;YACpB,4EAA4E;YAC5E,MAAM,KAAK,GAAG,EAAE,GAAI,YAAY,CAAC,UAAU,CAA6B,EAAE,CAAC;YAC3E,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YACtE,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACvB,KAAK,CAAC,KAAK,GAAG,UAAU,CAAC;YACzB,YAAY,CAAC,UAAU,CAAC,GAAG,KAAK,CAAC;QACnC,CAAC;aAAM,CAAC;YACN,sEAAsE;YACtE,YAAY,CAAC,IAAI,CAAC;gBAChB,OAAO,EAAE,4BAA4B;gBACrC,KAAK,EAAE,CAAC,KAAK,CAAC;aACf,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,OAAO,EAAE,GAAG,OAAO,EAAE,KAAK,EAAE,EAAE,GAAG,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,EAAE,CAAC;AACzE,CAAC;AAED;;;;;;;;;;GAUG;AACH,KAAK,UAAU,YAAY,CAAC,IAAyB;IACnD,MAAM,IAAI,GAAG,sBAAsB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAClD,MAAM,QAAQ,GAAG,MAAM,gBAAgB,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IAE5D,IAAI,QAAQ,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;QAC5B,OAAO,EAAE,SAAS,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,EAAE,CAAC;IAC9C,CAAC;IAED,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;QAChB,MAAM,WAAW,GAAG,MAAM,UAAU,CAAC,IAAI,CAAC,CAAC;QAC3C,MAAM,gBAAgB,GAAG,WAAW,IAAI,CAAC,MAAM,wBAAwB,CAAC,IAAI,CAAC,CAAC,CAAC;QAC/E,MAAM,MAAM,GAAmB,gBAAgB,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC;QAC5E,OAAO,EAAE,SAAS,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC;IAC3C,CAAC;IAED,MAAM,kBAAkB,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;IACpD,MAAM,WAAW,GAAG,MAAM,UAAU,CAAC,IAAI,CAAC,CAAC;IAC3C,MAAM,gBAAgB,GAAG,WAAW,IAAI,CAAC,MAAM,wBAAwB,CAAC,IAAI,CAAC,CAAC,CAAC;IAC/E,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,IAAI,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;IAE/F,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAClC,CAAC;IAED,MAAM,MAAM,GAAmB,gBAAgB,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC;IAC5E,OAAO,EAAE,SAAS,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC;AAC3C,CAAC;AAED,MAAM,CAAC,MAAM,MAAM,GAAiB;IAClC,EAAE,EAAE,QAAQ;IACZ,IAAI,EAAE,aAAa;IACnB,cAAc,EAAE,CAAC;IACjB,WAAW,EAAE,CAAC;IAEd,KAAK,CAAC,WAAW;QACf,OAAO,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,EAAE,SAAS,CAAC,CAAC,CAAC;IAC5D,CAAC;IAED,iBAAiB;IACjB,qBAAqB;IAErB,KAAK,CAAC,OAAO,CAAC,IAAyB;QACrC,MAAM,SAAS,GAAmC,EAAE,CAAC;QACrD,MAAM,KAAK,GAAqC,EAAE,CAAC;QACnD,KAAK,MAAM,QAAQ,IAAI,QAAQ,EAAE,CAAC;YAChC,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,kBAAkB,CAAC;gBACtD,GAAG,IAAI;gBACP,OAAO,EAAE,MAAM,CAAC,EAAE;gBAClB,WAAW;gBACX,WAAW,EAAE,iBAAiB,CAAC,IAAI,CAAC,OAAO,CAAC;gBAC5C,QAAQ;aACT,CAAC,CAAC;YACH,SAAS,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC;YACzB,IAAI,IAAI,EAAE,CAAC;gBACT,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC;YACzB,CAAC;QACH,CAAC;QACD,MAAM,uBAAuB,CAAC;YAC5B,OAAO,EAAE,MAAM,CAAC,EAAE;YAClB,cAAc,EAAE,MAAM,CAAC,cAAc;YACrC,KAAK;YACL,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,MAAM,EAAE,IAAI,CAAC,MAAM;SACpB,CAAC,CAAC;QACH,OAAO,EAAE,SAAS,EAAE,CAAC;IACvB,CAAC;IAED,YAAY;CACb,CAAC"}
1
+ {"version":3,"file":"claude.js","sourceRoot":"","sources":["../../src/agents/claude.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"cursor.d.ts","sourceRoot":"","sources":["../../src/agents/cursor.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EACV,YAAY,EAIb,MAAM,YAAY,CAAC;AAYpB;;;;GAIG;AACH,wBAAgB,qBAAqB,CACnC,OAAO,CAAC,EAAE,MAAM,EAChB,SAAS,GAAE,SAAS,MAAM,EAAe,GACxC,MAAM,CAER;AAED,wBAAgB,iBAAiB,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAE1D;AAED,8EAA8E;AAC9E,wBAAgB,mBAAmB,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAE5D;AAED,wBAAgB,uBAAuB,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAEhE;AAED,wBAAgB,uBAAuB,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAEhE;AAED,wBAAgB,8BAA8B,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAEvE;AAED,wBAAgB,uBAAuB,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAEhE;AAED,wBAAgB,iBAAiB,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAE5D;AAED,+EAA+E;AAC/E,wBAAgB,qBAAqB,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAEhE;AAkLD,eAAO,MAAM,MAAM,EAAE,YAwCpB,CAAC"}
1
+ {"version":3,"file":"cursor.d.ts","sourceRoot":"","sources":["../../src/agents/cursor.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EACV,YAAY,EAIb,MAAM,YAAY,CAAC;AAapB;;;;GAIG;AACH,wBAAgB,qBAAqB,CACnC,OAAO,CAAC,EAAE,MAAM,EAChB,SAAS,GAAE,SAAS,MAAM,EAAe,GACxC,MAAM,CAER;AAED,wBAAgB,iBAAiB,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAE1D;AAED,8EAA8E;AAC9E,wBAAgB,mBAAmB,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAE5D;AAED,wBAAgB,uBAAuB,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAEhE;AAED,wBAAgB,uBAAuB,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAEhE;AAED,wBAAgB,8BAA8B,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAEvE;AAED,wBAAgB,uBAAuB,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAEhE;AAED,wBAAgB,iBAAiB,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAE5D;AAED,+EAA+E;AAC/E,wBAAgB,qBAAqB,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAEhE;AAkLD,eAAO,MAAM,MAAM,EAAE,YAwCpB,CAAC"}
@@ -10,6 +10,7 @@ const pkgRoot = path.resolve(path.dirname(fileURLToPath(import.meta.url)), "../.
10
10
  const templateDir = path.join(pkgRoot, "templates", "agents", "cursor", "commands");
11
11
  const COMMANDS = [
12
12
  "grounder-note.md",
13
+ "grounder-search.md",
13
14
  "grounder-plan.md",
14
15
  "grounder-task-handoff.md",
15
16
  "grounder-task.md",
@@ -207,7 +208,7 @@ async function installHooks(opts) {
207
208
  export const cursor = {
208
209
  id: "cursor",
209
210
  name: "Cursor",
210
- commandsSchema: 2,
211
+ commandsSchema: 3,
211
212
  hooksSchema: 1,
212
213
  async isInstalled() {
213
214
  return fileExists(path.join(resolveHomeDir(), ".cursor"));