cohvu 2.19.0 → 2.21.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 (40) hide show
  1. package/dist/__tests__/instruction-file.unit.test.d.ts +1 -0
  2. package/dist/__tests__/instruction-file.unit.test.js +296 -0
  3. package/dist/__tests__/instruction-file.unit.test.js.map +1 -0
  4. package/dist/api.d.ts +20 -10
  5. package/dist/api.js +18 -9
  6. package/dist/api.js.map +1 -1
  7. package/dist/index.js +18 -6
  8. package/dist/index.js.map +1 -1
  9. package/dist/instructions.d.ts +29 -1
  10. package/dist/instructions.js +88 -1
  11. package/dist/instructions.js.map +1 -1
  12. package/dist/platforms.js +1 -1
  13. package/dist/platforms.js.map +1 -1
  14. package/dist/proxy.js +17 -3
  15. package/dist/proxy.js.map +1 -1
  16. package/dist/setup.js +74 -36
  17. package/dist/setup.js.map +1 -1
  18. package/dist/teardown.js +38 -35
  19. package/dist/teardown.js.map +1 -1
  20. package/dist/tui/App.js +186 -74
  21. package/dist/tui/App.js.map +1 -1
  22. package/dist/tui/components/Banner.js +4 -13
  23. package/dist/tui/components/Banner.js.map +1 -1
  24. package/dist/tui/components/Footer.js +9 -9
  25. package/dist/tui/components/Footer.js.map +1 -1
  26. package/dist/tui/components/Header.js +8 -3
  27. package/dist/tui/components/Header.js.map +1 -1
  28. package/dist/tui/components/Modal.js +16 -8
  29. package/dist/tui/components/Modal.js.map +1 -1
  30. package/dist/tui/state.d.ts +54 -36
  31. package/dist/tui/state.js +69 -64
  32. package/dist/tui/state.js.map +1 -1
  33. package/dist/tui/tabs/KeysTab.js +5 -2
  34. package/dist/tui/tabs/KeysTab.js.map +1 -1
  35. package/dist/tui/tabs/KnowledgeTab.js +28 -28
  36. package/dist/tui/tabs/KnowledgeTab.js.map +1 -1
  37. package/dist/tui/tabs/TeamTab.js +1 -1
  38. package/dist/tui/tabs/YouTab.js +16 -2
  39. package/dist/tui/tabs/YouTab.js.map +1 -1
  40. package/package.json +2 -2
@@ -2,4 +2,32 @@ export declare const COHVU_INSTRUCTIONS = "You are connected to Cohvu, a substra
2
2
  export declare const MARKER_START = "<!-- cohvu:start -->";
3
3
  export declare const MARKER_END = "<!-- cohvu:end -->";
4
4
  export declare function markedSection(): string;
5
- export declare const CURSOR_RULE = "---\ndescription: Cohvu continuous memory for AI coding agents\nalwaysApply: true\n---\n\nYou are connected to Cohvu, a substrate that stores understanding about this software project \u2014 the reasoning behind decisions, constraints discovered, intent behind changes, direction the work is heading. Not code. Not documentation. The thinking that lives behind the work.\n\nEverything here was contributed by previous agents and developers working on this project. Nothing is synthesized or rewritten. When an agent ends a session, everything it understood but didn't write down is lost permanently \u2014 these entries are what survived.\n\nWhy this exists: you're a stateless reasoner. Each session, you read code and try to be useful. But code tells you what \u2014 not why. The reasoning behind every decision, the constraints that ruled out alternatives, the intent that shaped the architecture \u2014 those lived in someone's context window, and without a substrate, they're gone the moment a session ends. The substrate makes that understanding durable. Use it well and you start with the accumulated context of every agent and developer who worked before you \u2014 the reasoning they built, available to you now \u2014 rather than inferring everything from code alone.\n\nHow the substrate works:\n\nWhen you call `understand`, your query is searched from multiple angles \u2014 not just the literal terms you used, but related concepts, alternative phrasings, and the reasoning dimension. Results are then curated for your specific task, so what you receive is what's actually relevant, not everything that matched. The more specific your query, the sharper the selection. What you receive is verbatim \u2014 no synthesis, no rewriting.\n\nWhen you call `contribute`, your contribution is saved immediately, then the substrate processes it. Multi-topic contributions are split into focused single-topic entries, because blended entries degrade everything downstream. Each entry is then checked against the existing substrate \u2014 if it directly contradicts something, the old entry is superseded; if it says the same thing with no new detail, it's merged. Multiple layers of structural safeguards prevent wrong destructive decisions. Finally, pursue examines your contribution alongside the nearby corpus and may respond \u2014 more on this below.\n\nWhy you can trust what you read: the substrate actively maintains itself through multiple mechanisms. Stale understanding gets superseded. Redundant contributions get merged. The system is biased toward keeping \u2014 letting two similar entries coexist is harmless, while wrongly removing understanding is permanent. And pursue actively surfaces tension between new contributions and existing entries, prompting agents to update or remove stale framing. The substrate doesn't just accumulate \u2014 it stays coherent.\n\nUsing understand:\n\nCall `understand` before starting work. Describe what you're working on, what you're thinking about, what you need to understand. Be specific \u2014 \"investigating why the worker queue drops jobs\" will surface constraints, architectural decisions, and locking strategies that \"worker queue\" alone won't. Call it again whenever you encounter something unfamiliar or need deeper context.\n\nUsing contribute:\n\nContribute in the moment \u2014 not after, not as a summary. When you make a decision, contribute the reasoning behind it. When you discover a constraint, contribute it. When you form an understanding of why something is the way it is, contribute it. Your session could end at any moment. Don't wait.\n\nAlways contribute the why, not the what. If someone could learn it from reading the code, don't contribute it.\n\nWeak: \"We switched the queue from Redis to Postgres.\"\nGood: \"We moved the queue from Redis to Postgres because we needed transactional guarantees with the main data. Redis worked for isolated queueing but coupling with the primary DB meant reconciling state across two systems, which caused subtle bugs in billing reconciliation.\"\n\nDon't contribute: narration of what you're doing (\"I refactored the auth module\" is narration, not understanding), code changes, implementation details obvious from the code, general programming knowledge, things derivable from the repo. Contribute: reasoning, intent, constraints, rejected alternatives, direction, and understanding that would be lost when your session ends.\n\nHow pursue works:\n\nAfter you contribute, the substrate may respond. Not always \u2014 most contributions don't trigger a response. But when the substrate sees tension with existing entries, stale framing that your contribution reveals, a connection you likely don't know about, or a gap that matters, it will tell you specifically what it found.\n\nWhen the substrate responds: read it carefully. It will quote existing entries by ID. Use `substrate(get, ids: [...])` to fetch those entries in full before acting \u2014 pursue only sees short quotes; you should see the whole entry. Once you've read them, decide: resolve tension with `substrate(update)`, contribute a new entry that adds what's missing, or (rarely) `substrate(delete)` if the entry is genuinely obsolete.\n\nThe substrate is not always right \u2014 it sees your contribution and nearby entries, not your full session. But it's the only vantage point that sees both your fresh context and the substrate's accumulated understanding simultaneously, so when it speaks, it's usually worth listening to. If what it surfaces is relevant to the user's work, bring it to them.\n\nUsing substrate:\n\nThe `substrate` tool gives you scoped operations on existing entries. Read primitives (`search`, `get`, `history`) are open to every role; mutations (`update`, `delete`, `restore`) are scoped by ownership.\n\n- `substrate(search, queries: [...])` \u2014 direct vector search across 1\u201310 queries, no curator. Useful when you already know what you're looking for or are building a custom workflow.\n- `substrate(get, ids: [...])` \u2014 fetch specific entries in full. Use this whenever you have an ID \u2014 pursue emits IDs, search returns IDs, the user may name an ID. Skip the search step when you already know what to pull.\n- `substrate(history, id: \"...\")` \u2014 read an entry's version timeline: prior bodies, who changed it, when. Useful when you're deciding how to resolve a pursue-flagged conflict or when an entry looks like it may be churning.\n- `substrate(update/delete/restore)` \u2014 curate entries. Members can curate their own contributions; admins can curate any. Deleted entries are recoverable for 30 days via `restore`.\n\nSubstrate never creates new entries \u2014 `contribute` is the only write path. Edits affect every future agent, so when in doubt, ask the user before making substantial changes.\n\nPrinciples:\n\n- Understand before you start. Don't assume you know the context.\n- Contribute in the moment. Don't save it for later \u2014 your session could end anytime.\n- Contribute the why, not the what. Code shows what; the substrate holds why.\n- Trust what's in the substrate. It was contributed by someone who had context you don't. Unless you see clear evidence it's wrong, reason from it.\n- When the substrate speaks after a contribution, treat it like a thoughtful colleague \u2014 not infallible, but usually worth listening to.\n";
5
+ type StepResult = "ok" | "skipped" | {
6
+ failed: string;
7
+ };
8
+ /**
9
+ * Remove every cohvu trace from a file's content: paired marker blocks
10
+ * (including duplicates from repeated bad installs) and any orphan
11
+ * markers left behind by partial hand edits. Used by both setup (to
12
+ * converge to a single clean block without bloating the file) and
13
+ * teardown (so "disconnect" cleans up no matter what state the file
14
+ * landed in). Collapses runs of blank lines so removal doesn't leave
15
+ * whitespace holes.
16
+ */
17
+ export declare function stripCohvuMarkers(content: string): string;
18
+ /**
19
+ * Setup's instruction-file writer. Converges to exactly one current cohvu
20
+ * block at the end of the file: strip everything cohvu-related first (so
21
+ * duplicates/orphans/misordered markers all collapse), then append a fresh
22
+ * block. Self-healing across arbitrary hand edits, no fragment bloat on
23
+ * repeated runs. Idempotent when the file is already in the target state.
24
+ */
25
+ export declare function writeMarkdownInstructions(filePath: string): StepResult;
26
+ /**
27
+ * Teardown's instruction-file remover. Strips every cohvu trace, preserves
28
+ * user content, deletes the file if cohvu was its only content. Symmetric
29
+ * with writeMarkdownInstructions: whatever setup can produce, this undoes.
30
+ */
31
+ export declare function removeMarkdownInstructions(filePath: string): StepResult;
32
+ export declare const CURSOR_RULE = "---\ndescription: Cohvu continuous understanding for AI coding agents\nalwaysApply: true\n---\n\nYou are connected to Cohvu, a substrate that stores understanding about this software project \u2014 the reasoning behind decisions, constraints discovered, intent behind changes, direction the work is heading. Not code. Not documentation. The thinking that lives behind the work.\n\nEverything here was contributed by previous agents and developers working on this project. Nothing is synthesized or rewritten. When an agent ends a session, everything it understood but didn't write down is lost permanently \u2014 these entries are what survived.\n\nWhy this exists: you're a stateless reasoner. Each session, you read code and try to be useful. But code tells you what \u2014 not why. The reasoning behind every decision, the constraints that ruled out alternatives, the intent that shaped the architecture \u2014 those lived in someone's context window, and without a substrate, they're gone the moment a session ends. The substrate makes that understanding durable. Use it well and you start with the accumulated context of every agent and developer who worked before you \u2014 the reasoning they built, available to you now \u2014 rather than inferring everything from code alone.\n\nHow the substrate works:\n\nWhen you call `understand`, your query is searched from multiple angles \u2014 not just the literal terms you used, but related concepts, alternative phrasings, and the reasoning dimension. Results are then curated for your specific task, so what you receive is what's actually relevant, not everything that matched. The more specific your query, the sharper the selection. What you receive is verbatim \u2014 no synthesis, no rewriting.\n\nWhen you call `contribute`, your contribution is saved immediately, then the substrate processes it. Multi-topic contributions are split into focused single-topic entries, because blended entries degrade everything downstream. Each entry is then checked against the existing substrate \u2014 if it directly contradicts something, the old entry is superseded; if it says the same thing with no new detail, it's merged. Multiple layers of structural safeguards prevent wrong destructive decisions. Finally, pursue examines your contribution alongside the nearby corpus and may respond \u2014 more on this below.\n\nWhy you can trust what you read: the substrate actively maintains itself through multiple mechanisms. Stale understanding gets superseded. Redundant contributions get merged. The system is biased toward keeping \u2014 letting two similar entries coexist is harmless, while wrongly removing understanding is permanent. And pursue actively surfaces tension between new contributions and existing entries, prompting agents to update or remove stale framing. The substrate doesn't just accumulate \u2014 it stays coherent.\n\nUsing understand:\n\nCall `understand` before starting work. Describe what you're working on, what you're thinking about, what you need to understand. Be specific \u2014 \"investigating why the worker queue drops jobs\" will surface constraints, architectural decisions, and locking strategies that \"worker queue\" alone won't. Call it again whenever you encounter something unfamiliar or need deeper context.\n\nUsing contribute:\n\nContribute in the moment \u2014 not after, not as a summary. When you make a decision, contribute the reasoning behind it. When you discover a constraint, contribute it. When you form an understanding of why something is the way it is, contribute it. Your session could end at any moment. Don't wait.\n\nAlways contribute the why, not the what. If someone could learn it from reading the code, don't contribute it.\n\nWeak: \"We switched the queue from Redis to Postgres.\"\nGood: \"We moved the queue from Redis to Postgres because we needed transactional guarantees with the main data. Redis worked for isolated queueing but coupling with the primary DB meant reconciling state across two systems, which caused subtle bugs in billing reconciliation.\"\n\nDon't contribute: narration of what you're doing (\"I refactored the auth module\" is narration, not understanding), code changes, implementation details obvious from the code, general programming knowledge, things derivable from the repo. Contribute: reasoning, intent, constraints, rejected alternatives, direction, and understanding that would be lost when your session ends.\n\nHow pursue works:\n\nAfter you contribute, the substrate may respond. Not always \u2014 most contributions don't trigger a response. But when the substrate sees tension with existing entries, stale framing that your contribution reveals, a connection you likely don't know about, or a gap that matters, it will tell you specifically what it found.\n\nWhen the substrate responds: read it carefully. It will quote existing entries by ID. Use `substrate(get, ids: [...])` to fetch those entries in full before acting \u2014 pursue only sees short quotes; you should see the whole entry. Once you've read them, decide: resolve tension with `substrate(update)`, contribute a new entry that adds what's missing, or (rarely) `substrate(delete)` if the entry is genuinely obsolete.\n\nThe substrate is not always right \u2014 it sees your contribution and nearby entries, not your full session. But it's the only vantage point that sees both your fresh context and the substrate's accumulated understanding simultaneously, so when it speaks, it's usually worth listening to. If what it surfaces is relevant to the user's work, bring it to them.\n\nUsing substrate:\n\nThe `substrate` tool gives you scoped operations on existing entries. Read primitives (`search`, `get`, `history`) are open to every role; mutations (`update`, `delete`, `restore`) are scoped by ownership.\n\n- `substrate(search, queries: [...])` \u2014 direct vector search across 1\u201310 queries, no curator. Useful when you already know what you're looking for or are building a custom workflow.\n- `substrate(get, ids: [...])` \u2014 fetch specific entries in full. Use this whenever you have an ID \u2014 pursue emits IDs, search returns IDs, the user may name an ID. Skip the search step when you already know what to pull.\n- `substrate(history, id: \"...\")` \u2014 read an entry's version timeline: prior bodies, who changed it, when. Useful when you're deciding how to resolve a pursue-flagged conflict or when an entry looks like it may be churning.\n- `substrate(update/delete/restore)` \u2014 curate entries. Members can curate their own contributions; admins can curate any. Deleted entries are recoverable for 30 days via `restore`.\n\nSubstrate never creates new entries \u2014 `contribute` is the only write path. Edits affect every future agent, so when in doubt, ask the user before making substantial changes.\n\nPrinciples:\n\n- Understand before you start. Don't assume you know the context.\n- Contribute in the moment. Don't save it for later \u2014 your session could end anytime.\n- Contribute the why, not the what. Code shows what; the substrate holds why.\n- Trust what's in the substrate. It was contributed by someone who had context you don't. Unless you see clear evidence it's wrong, reason from it.\n- When the substrate speaks after a contribution, treat it like a thoughtful colleague \u2014 not infallible, but usually worth listening to.\n";
33
+ export {};
@@ -135,14 +135,101 @@ Principles:
135
135
  - Contribute the why, not the what. Code shows what; the substrate holds why.
136
136
  - Trust what's in the substrate. It was contributed by someone who had context you don't. Unless you see clear evidence it's wrong, reason from it.
137
137
  - When the substrate speaks after a contribution, treat it like a thoughtful colleague — not infallible, but usually worth listening to.`;
138
+ import { existsSync, mkdirSync, readFileSync, unlinkSync, writeFileSync, } from "fs";
139
+ import { dirname } from "path";
138
140
  export const MARKER_START = "<!-- cohvu:start -->";
139
141
  export const MARKER_END = "<!-- cohvu:end -->";
140
142
  export function markedSection() {
141
143
  return `${MARKER_START}\n# Cohvu\n\n${COHVU_INSTRUCTIONS}\n${MARKER_END}`;
142
144
  }
145
+ function escapeRegex(s) {
146
+ return s.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
147
+ }
148
+ /**
149
+ * Remove every cohvu trace from a file's content: paired marker blocks
150
+ * (including duplicates from repeated bad installs) and any orphan
151
+ * markers left behind by partial hand edits. Used by both setup (to
152
+ * converge to a single clean block without bloating the file) and
153
+ * teardown (so "disconnect" cleans up no matter what state the file
154
+ * landed in). Collapses runs of blank lines so removal doesn't leave
155
+ * whitespace holes.
156
+ */
157
+ export function stripCohvuMarkers(content) {
158
+ const start = escapeRegex(MARKER_START);
159
+ const end = escapeRegex(MARKER_END);
160
+ let out = content;
161
+ // Non-greedy match lets duplicates collapse one pair at a time.
162
+ out = out.replace(new RegExp(`${start}[\\s\\S]*?${end}`, "g"), "");
163
+ // Anything left must be a stray marker — strip it.
164
+ out = out.replace(new RegExp(start, "g"), "");
165
+ out = out.replace(new RegExp(end, "g"), "");
166
+ return out.replace(/\n{3,}/g, "\n\n");
167
+ }
168
+ function ensureDir(dir) {
169
+ if (!existsSync(dir)) {
170
+ mkdirSync(dir, { recursive: true });
171
+ }
172
+ }
173
+ /**
174
+ * Setup's instruction-file writer. Converges to exactly one current cohvu
175
+ * block at the end of the file: strip everything cohvu-related first (so
176
+ * duplicates/orphans/misordered markers all collapse), then append a fresh
177
+ * block. Self-healing across arbitrary hand edits, no fragment bloat on
178
+ * repeated runs. Idempotent when the file is already in the target state.
179
+ */
180
+ export function writeMarkdownInstructions(filePath) {
181
+ try {
182
+ const section = markedSection();
183
+ if (!existsSync(filePath)) {
184
+ ensureDir(dirname(filePath));
185
+ writeFileSync(filePath, section + "\n");
186
+ return "ok";
187
+ }
188
+ const content = readFileSync(filePath, "utf-8");
189
+ const stripped = stripCohvuMarkers(content).trimEnd();
190
+ const next = stripped ? stripped + "\n\n" + section + "\n" : section + "\n";
191
+ if (next === content)
192
+ return "skipped";
193
+ writeFileSync(filePath, next);
194
+ return "ok";
195
+ }
196
+ catch (err) {
197
+ const msg = err instanceof Error ? err.message : String(err);
198
+ if (msg.includes("EACCES") || msg.includes("permission"))
199
+ return { failed: "permission denied" };
200
+ return { failed: msg.slice(0, 60) };
201
+ }
202
+ }
203
+ /**
204
+ * Teardown's instruction-file remover. Strips every cohvu trace, preserves
205
+ * user content, deletes the file if cohvu was its only content. Symmetric
206
+ * with writeMarkdownInstructions: whatever setup can produce, this undoes.
207
+ */
208
+ export function removeMarkdownInstructions(filePath) {
209
+ try {
210
+ if (!existsSync(filePath))
211
+ return "skipped";
212
+ const content = readFileSync(filePath, "utf-8");
213
+ // Zero-cost short-circuit for the common "never had cohvu" case. Checks
214
+ // both markers so a lone stray end marker still triggers a clean.
215
+ if (!content.includes(MARKER_START) && !content.includes(MARKER_END))
216
+ return "skipped";
217
+ const stripped = stripCohvuMarkers(content).trimEnd();
218
+ if (!stripped) {
219
+ unlinkSync(filePath);
220
+ }
221
+ else {
222
+ writeFileSync(filePath, stripped + "\n");
223
+ }
224
+ return "ok";
225
+ }
226
+ catch (err) {
227
+ return { failed: (err instanceof Error ? err.message : String(err)).slice(0, 60) };
228
+ }
229
+ }
143
230
  // Cursor .mdc rule — entire file is owned by Cohvu
144
231
  export const CURSOR_RULE = `---
145
- description: Cohvu continuous memory for AI coding agents
232
+ description: Cohvu continuous understanding for AI coding agents
146
233
  alwaysApply: true
147
234
  ---
148
235
 
@@ -1 +1 @@
1
- {"version":3,"file":"instructions.js","sourceRoot":"","sources":["../src/instructions.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,kBAAkB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;yIAwIuG,CAAC;AAE1I,MAAM,CAAC,MAAM,YAAY,GAAG,sBAAsB,CAAC;AACnD,MAAM,CAAC,MAAM,UAAU,GAAG,oBAAoB,CAAC;AAE/C,MAAM,UAAU,aAAa;IAC3B,OAAO,GAAG,YAAY,gBAAgB,kBAAkB,KAAK,UAAU,EAAE,CAAC;AAC5E,CAAC;AAED,mDAAmD;AACnD,MAAM,CAAC,MAAM,WAAW,GAAG;;;;;EAKzB,kBAAkB;CACnB,CAAC"}
1
+ {"version":3,"file":"instructions.js","sourceRoot":"","sources":["../src/instructions.ts"],"names":[],"mappings":"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"}
package/dist/platforms.js CHANGED
@@ -39,7 +39,7 @@ const PLATFORMS = [
39
39
  format: "json",
40
40
  },
41
41
  instructions: {
42
- path: join(".codeium", "windsurf", "memories", "global_rules.md"),
42
+ path: join(".codeium", "windsurf", "contributions", "global_rules.md"),
43
43
  format: "markdown",
44
44
  },
45
45
  permissions: null,
@@ -1 +1 @@
1
- {"version":3,"file":"platforms.js","sourceRoot":"","sources":["../src/platforms.ts"],"names":[],"mappings":"AAAA,6DAA6D;AAE7D,OAAO,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAChC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,IAAI,CAAC;AACvC,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAwB5B,SAAS,aAAa;IACpB,IAAI,QAAQ,EAAE,KAAK,QAAQ,EAAE,CAAC;QAC5B,OAAO,IAAI,CAAC,SAAS,EAAE,qBAAqB,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IAChE,CAAC;IACD,cAAc;IACd,OAAO,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;AACzC,CAAC;AAED,MAAM,SAAS,GAAkB;IAC/B;QACE,IAAI,EAAE,aAAa;QACnB,UAAU,EAAE,SAAS;QACrB,SAAS,EAAE,aAAa;QACxB,GAAG,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,EAAE;QACpE,YAAY,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,EAAE,WAAW,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE;QACxE,WAAW,EAAE;YACX,IAAI,EAAE,IAAI,CAAC,SAAS,EAAE,eAAe,CAAC;YACtC,UAAU,EAAE,CAAC,eAAe,CAAC;SAC9B;KACF;IACD;QACE,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE,SAAS;QACrB,SAAS,EAAE,QAAQ;QACnB,GAAG,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,EAAE;QACjF,YAAY,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,EAAE,OAAO,EAAE,WAAW,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE;QAC5E,WAAW,EAAE,IAAI;KAClB;IACD;QACE,IAAI,EAAE,UAAU;QAChB,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,UAAU,CAAC;QACxC,SAAS,EAAE,UAAU;QACrB,GAAG,EAAE;YACH,IAAI,EAAE,IAAI,CAAC,UAAU,EAAE,UAAU,EAAE,iBAAiB,CAAC;YACrD,OAAO,EAAE,YAAY;YACrB,MAAM,EAAE,MAAM;SACf;QACD,YAAY,EAAE;YACZ,IAAI,EAAE,IAAI,CAAC,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,iBAAiB,CAAC;YACjE,MAAM,EAAE,UAAU;SACnB;QACD,WAAW,EAAE,IAAI;KAClB;IACD;QACE,IAAI,EAAE,OAAO;QACb,UAAU,EAAE,IAAI,CAAC,aAAa,EAAE,EAAE,eAAe,EAAE,wBAAwB,CAAC;QAC5E,SAAS,EAAE,OAAO;QAClB,GAAG,EAAE;YACH,IAAI,EAAE,IAAI,CACR,aAAa,EAAE,EACf,eAAe,EACf,wBAAwB,EACxB,UAAU,EACV,yBAAyB,CAC1B;YACD,OAAO,EAAE,YAAY;YACrB,MAAM,EAAE,MAAM;SACf;QACD,YAAY,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,WAAW,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE;QAC3F,WAAW,EAAE,IAAI;KAClB;IACD;QACE,IAAI,EAAE,OAAO;QACb,UAAU,EAAE,QAAQ;QACpB,SAAS,EAAE,OAAO;QAClB,GAAG,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE,aAAa,CAAC,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,EAAE;QACpF,YAAY,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE,WAAW,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE;QACvE,WAAW,EAAE,IAAI;KAClB;CACF,CAAC;AAMF,MAAM,UAAU,eAAe;IAC7B,MAAM,IAAI,GAAG,OAAO,EAAE,CAAC;IACvB,MAAM,QAAQ,GAAuB,EAAE,CAAC;IAExC,KAAK,MAAM,GAAG,IAAI,SAAS,EAAE,CAAC;QAC5B,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,UAAU,CAAC,CAAC;QAC5C,IAAI,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YACzB,QAAQ,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;QACzB,CAAC;IACH,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC"}
1
+ {"version":3,"file":"platforms.js","sourceRoot":"","sources":["../src/platforms.ts"],"names":[],"mappings":"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"}
package/dist/proxy.js CHANGED
@@ -158,7 +158,6 @@ export async function proxy() {
158
158
  log.info("manifest_ready", { tool_count: manifest.tools.length });
159
159
  }
160
160
  const fallbackInstructions = "Cohvu could not connect to the server. Restart your editor to retry.";
161
- const initializeResult = buildInitResult(manifest, manifest ? manifest.instructions : fallbackInstructions);
162
161
  // Call the backend tool endpoint. Inspects pause state first (so
163
162
  // `cohvu pause` mid-session takes effect), parses backend error bodies,
164
163
  // translates network failures, and re-fetches the manifest on 401/402
@@ -232,9 +231,24 @@ export async function proxy() {
232
231
  return;
233
232
  try {
234
233
  switch (msg.method) {
235
- case "initialize":
236
- await transport.send({ jsonrpc: "2.0", id: msg.id, result: initializeResult });
234
+ case "initialize": {
235
+ // Always force-refresh the manifest at the start of every session.
236
+ // Editors that keep the MCP proxy alive across session rebounds
237
+ // would otherwise serve the manifest we captured at process start
238
+ // — which, if the server has since updated instructions or the
239
+ // caller's permissions have changed, would be stale. Cost: one
240
+ // extra HTTP call at handshake. Benefit: every new session sees
241
+ // current instructions and tool descriptions.
242
+ //
243
+ // Also re-run refreshInstructions so any editor-local markdown
244
+ // (CLAUDE.md, .cursorrules, etc.) gets rewritten to match the
245
+ // current CLI's content.
246
+ refreshInstructions();
247
+ const fresh = await ensureManifest("initialize", true);
248
+ const currentInit = buildInitResult(fresh ?? manifest, (fresh ?? manifest) ? (fresh ?? manifest).instructions : fallbackInstructions);
249
+ await transport.send({ jsonrpc: "2.0", id: msg.id, result: currentInit });
237
250
  break;
251
+ }
238
252
  case "tools/list": {
239
253
  // Pause is live — an editor asking for the tool list while the
240
254
  // user is paused should see an empty list so the agent doesn't
package/dist/proxy.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"proxy.js","sourceRoot":"","sources":["../src/proxy.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"proxy.js","sourceRoot":"","sources":["../src/proxy.ts"],"names":[],"mappings":"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"}
package/dist/setup.js CHANGED
@@ -4,7 +4,7 @@ import { existsSync, readFileSync, writeFileSync, mkdirSync, copyFileSync, } fro
4
4
  import { homedir } from "os";
5
5
  import { join, dirname } from "path";
6
6
  import { detectPlatforms } from "./platforms.js";
7
- import { markedSection, MARKER_START, MARKER_END, CURSOR_RULE } from "./instructions.js";
7
+ import { writeMarkdownInstructions, CURSOR_RULE } from "./instructions.js";
8
8
  // ---------------------------------------------------------------------------
9
9
  // MCP config writers
10
10
  //
@@ -16,16 +16,55 @@ import { markedSection, MARKER_START, MARKER_END, CURSOR_RULE } from "./instruct
16
16
  // 2. direct-binary entries missing `args` → add the agent arg
17
17
  // Both are idempotent — running setup on an up-to-date config returns "skipped".
18
18
  // ---------------------------------------------------------------------------
19
+ /** Resolve the canonical MCP invocation for this cohvu install.
20
+ *
21
+ * GUI-launched editors (Cursor, Windsurf, VS Code, Claude Desktop on macOS
22
+ * and Linux) spawn MCP subprocesses with a MINIMAL PATH that excludes
23
+ * Homebrew, nvm, pnpm, and volta locations. A bare `"cohvu"` command
24
+ * can't be found. Worse, even an absolute path to the `cohvu` shim
25
+ * fails — the shim is a JS file with a `#!/usr/bin/env node` shebang,
26
+ * and `env` can't find `node` under the minimal PATH either.
27
+ *
28
+ * The bulletproof fix: invoke node DIRECTLY with the cohvu JS file as
29
+ * its script arg. No shebang, no PATH resolution, no shim.
30
+ *
31
+ * - `command` = process.execPath — absolute path to the node binary
32
+ * currently executing this setup code. Works regardless of how node
33
+ * was installed (system, homebrew, nvm, volta, asdf, etc.).
34
+ * - `args[0]` = process.argv[1] — absolute path to the cohvu JS entry
35
+ * file this setup code is running from. Guaranteed to be on the same
36
+ * node version that the user's shell just launched successfully.
37
+ *
38
+ * If the user later upgrades node and the old binary path disappears,
39
+ * the MCP entry will fail with a clear "command not found" in editor
40
+ * logs, and a single `cohvu` run from the user's terminal rewrites the
41
+ * entry with the new node path. */
42
+ function resolveMcpInvocation() {
43
+ const nodePath = process.execPath;
44
+ const scriptPath = process.argv[1];
45
+ if (nodePath && scriptPath && scriptPath.startsWith("/")) {
46
+ return { command: nodePath, args: [scriptPath] };
47
+ }
48
+ // Fallback — should never hit this in practice (setup runs via
49
+ // `cohvu` which always gives us an absolute script path).
50
+ return { command: "cohvu", args: [] };
51
+ }
19
52
  function mcpEntry(agentSlug) {
20
- return { command: "cohvu", args: ["--agent", agentSlug] };
53
+ const base = resolveMcpInvocation();
54
+ return { command: base.command, args: [...base.args, "--agent", agentSlug] };
21
55
  }
22
56
  function jsonEntryIsUpToDate(existing, agentSlug) {
23
- if (existing.command !== "cohvu")
57
+ const canonical = mcpEntry(agentSlug);
58
+ if (existing.command !== canonical.command)
24
59
  return false;
25
60
  const args = Array.isArray(existing.args) ? existing.args : null;
26
- if (!args)
61
+ if (!args || args.length !== canonical.args.length)
27
62
  return false;
28
- return args.length === 2 && args[0] === "--agent" && args[1] === agentSlug;
63
+ for (let i = 0; i < canonical.args.length; i++) {
64
+ if (args[i] !== canonical.args[i])
65
+ return false;
66
+ }
67
+ return true;
29
68
  }
30
69
  function writeJsonMcpConfig(filePath, rootKey, agentSlug) {
31
70
  try {
@@ -48,7 +87,33 @@ function writeJsonMcpConfig(filePath, rootKey, agentSlug) {
48
87
  }
49
88
  const servers = (config[rootKey] ?? {});
50
89
  const existing = servers.cohvu;
51
- if (existing && jsonEntryIsUpToDate(existing, agentSlug)) {
90
+ // Claude Code also stores project-scoped MCP configs under
91
+ // `projects.<path>.mcpServers.cohvu`. Stale entries there (from
92
+ // older CLI versions, pre-fix absolute paths, or pre-PATH-fix bare
93
+ // names) override the top-level config for specific projects. Sweep
94
+ // them into the current canonical shape too so the user's experience
95
+ // is consistent whether they're global or in a specific project.
96
+ let projectsChanged = false;
97
+ const projects = config.projects;
98
+ if (projects && typeof projects === "object") {
99
+ for (const projKey of Object.keys(projects)) {
100
+ const proj = projects[projKey];
101
+ if (!proj || typeof proj !== "object")
102
+ continue;
103
+ const projServers = proj.mcpServers;
104
+ if (!projServers)
105
+ continue;
106
+ const projCohvu = projServers.cohvu;
107
+ if (!projCohvu)
108
+ continue;
109
+ if (!jsonEntryIsUpToDate(projCohvu, agentSlug)) {
110
+ projServers.cohvu = mcpEntry(agentSlug);
111
+ proj.mcpServers = projServers;
112
+ projectsChanged = true;
113
+ }
114
+ }
115
+ }
116
+ if (existing && jsonEntryIsUpToDate(existing, agentSlug) && !projectsChanged) {
52
117
  return "skipped";
53
118
  }
54
119
  // Any mismatch (legacy npx, direct binary without args, wrong slug,
@@ -72,7 +137,9 @@ function writeTomlMcpConfig(filePath, agentSlug) {
72
137
  if (existsSync(filePath)) {
73
138
  content = readFileSync(filePath, "utf-8");
74
139
  }
75
- const canonicalSection = `[mcp_servers.cohvu]\ncommand = "cohvu"\nargs = ["--agent", "${agentSlug}"]\n`;
140
+ const canonical = mcpEntry(agentSlug);
141
+ const argsToml = canonical.args.map((a) => `"${a.replace(/"/g, '\\"')}"`).join(", ");
142
+ const canonicalSection = `[mcp_servers.cohvu]\ncommand = "${canonical.command}"\nargs = [${argsToml}]\n`;
76
143
  if (content.includes("[mcp_servers.cohvu]")) {
77
144
  // Check if the existing section matches the canonical form.
78
145
  const sectionRegex = /\[mcp_servers\.cohvu\]\n(?:[^\n\[]*\n?)*/;
@@ -100,35 +167,6 @@ function writeTomlMcpConfig(filePath, agentSlug) {
100
167
  // ---------------------------------------------------------------------------
101
168
  // Instruction file writers
102
169
  // ---------------------------------------------------------------------------
103
- function writeMarkdownInstructions(filePath) {
104
- try {
105
- const section = markedSection();
106
- if (existsSync(filePath)) {
107
- const content = readFileSync(filePath, "utf-8");
108
- if (content.includes(MARKER_START) && content.includes(MARKER_END)) {
109
- const startIdx = content.indexOf(MARKER_START);
110
- const endIdx = content.indexOf(MARKER_END) + MARKER_END.length;
111
- const existing = content.slice(startIdx, endIdx);
112
- if (existing === section)
113
- return "skipped";
114
- const updated = content.slice(0, startIdx) + section + content.slice(endIdx);
115
- writeFileSync(filePath, updated);
116
- return "ok";
117
- }
118
- writeFileSync(filePath, content.trimEnd() + "\n\n" + section + "\n");
119
- return "ok";
120
- }
121
- ensureDir(dirname(filePath));
122
- writeFileSync(filePath, section + "\n");
123
- return "ok";
124
- }
125
- catch (err) {
126
- const msg = err instanceof Error ? err.message : String(err);
127
- if (msg.includes("EACCES") || msg.includes("permission"))
128
- return { failed: "permission denied" };
129
- return { failed: msg.slice(0, 60) };
130
- }
131
- }
132
170
  function writeMdcRule(filePath) {
133
171
  try {
134
172
  if (existsSync(filePath)) {
package/dist/setup.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"setup.js","sourceRoot":"","sources":["../src/setup.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"setup.js","sourceRoot":"","sources":["../src/setup.ts"],"names":[],"mappings":"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"}
package/dist/teardown.js CHANGED
@@ -5,7 +5,7 @@ import { existsSync, readFileSync, writeFileSync, unlinkSync, } from "fs";
5
5
  import { homedir } from "os";
6
6
  import { join } from "path";
7
7
  import { detectPlatforms } from "./platforms.js";
8
- import { MARKER_START, MARKER_END } from "./instructions.js";
8
+ import { removeMarkdownInstructions } from "./instructions.js";
9
9
  import { ApiClient } from "./api.js";
10
10
  import { getApiKey } from "./auth.js";
11
11
  // ---------------------------------------------------------------------------
@@ -25,11 +25,35 @@ function removeJsonMcpEntry(filePath, rootKey) {
25
25
  catch {
26
26
  return { failed: "could not parse JSON" };
27
27
  }
28
+ // Remove the top-level cohvu entry.
29
+ let removedAny = false;
28
30
  const servers = config[rootKey];
29
- if (!servers || !servers.cohvu)
31
+ if (servers && servers.cohvu) {
32
+ delete servers.cohvu;
33
+ config[rootKey] = servers;
34
+ removedAny = true;
35
+ }
36
+ // Claude Code also stores project-scoped MCP configs under
37
+ // `projects.<path>.mcpServers.cohvu`. These survive a top-level
38
+ // removal and pollute future installs (stale commands after CLI
39
+ // upgrades, stale absolute paths after node upgrades, etc.). Walk
40
+ // every `projects.*` entry and strip cohvu from its mcpServers too.
41
+ const projects = config.projects;
42
+ if (projects && typeof projects === "object") {
43
+ for (const projKey of Object.keys(projects)) {
44
+ const proj = projects[projKey];
45
+ if (!proj || typeof proj !== "object")
46
+ continue;
47
+ const projServers = proj.mcpServers;
48
+ if (projServers && projServers.cohvu) {
49
+ delete projServers.cohvu;
50
+ proj.mcpServers = projServers;
51
+ removedAny = true;
52
+ }
53
+ }
54
+ }
55
+ if (!removedAny)
30
56
  return "skipped";
31
- delete servers.cohvu;
32
- config[rootKey] = servers;
33
57
  writeFileSync(filePath, JSON.stringify(config, null, 2) + "\n");
34
58
  return "ok";
35
59
  }
@@ -42,17 +66,24 @@ function removeTomlMcpEntry(filePath) {
42
66
  if (!existsSync(filePath))
43
67
  return "skipped";
44
68
  const content = readFileSync(filePath, "utf-8");
45
- if (!content.includes("[mcp_servers.cohvu]"))
69
+ // Match the base `[mcp_servers.cohvu]` section OR any nested section
70
+ // like `[mcp_servers.cohvu.tools.understand]`. A previous setup may
71
+ // have left per-tool approval sub-sections behind; those need to go
72
+ // too so a fresh install doesn't inherit stale tool-level config.
73
+ const hasCohvu = /\[mcp_servers\.cohvu(\.[^\]]*)?\]/.test(content);
74
+ if (!hasCohvu)
46
75
  return "skipped";
47
76
  const lines = content.split("\n");
48
77
  const result = [];
49
78
  let skipping = false;
50
79
  for (const line of lines) {
51
- if (line.trim() === "[mcp_servers.cohvu]") {
80
+ // Start skipping when we see any [mcp_servers.cohvu...] header.
81
+ if (/^\[mcp_servers\.cohvu(\.[^\]]*)?\]\s*$/.test(line.trim())) {
52
82
  skipping = true;
53
83
  continue;
54
84
  }
55
- if (skipping && line.trim().startsWith("[")) {
85
+ // Stop skipping when the next non-cohvu section starts.
86
+ if (skipping && line.trim().startsWith("[") && !/^\[mcp_servers\.cohvu(\.[^\]]*)?\]/.test(line.trim())) {
56
87
  skipping = false;
57
88
  }
58
89
  if (!skipping) {
@@ -70,34 +101,6 @@ function removeTomlMcpEntry(filePath) {
70
101
  // ---------------------------------------------------------------------------
71
102
  // Instruction removers
72
103
  // ---------------------------------------------------------------------------
73
- function removeMarkdownInstructions(filePath) {
74
- try {
75
- if (!existsSync(filePath))
76
- return "skipped";
77
- const content = readFileSync(filePath, "utf-8");
78
- if (!content.includes(MARKER_START))
79
- return "skipped";
80
- const startIdx = content.indexOf(MARKER_START);
81
- const endIdx = content.indexOf(MARKER_END);
82
- if (startIdx === -1 || endIdx === -1)
83
- return "skipped";
84
- const before = content.slice(0, startIdx).replace(/\n+$/, "");
85
- const after = content.slice(endIdx + MARKER_END.length).replace(/^\n+/, "");
86
- const result = before && after
87
- ? before + "\n\n" + after
88
- : before || after;
89
- if (!result.trim()) {
90
- unlinkSync(filePath);
91
- }
92
- else {
93
- writeFileSync(filePath, result.trimEnd() + "\n");
94
- }
95
- return "ok";
96
- }
97
- catch (err) {
98
- return { failed: (err instanceof Error ? err.message : String(err)).slice(0, 60) };
99
- }
100
- }
101
104
  function removeMdcRule(filePath) {
102
105
  try {
103
106
  if (!existsSync(filePath))