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.
- package/dist/__tests__/instruction-file.unit.test.d.ts +1 -0
- package/dist/__tests__/instruction-file.unit.test.js +296 -0
- package/dist/__tests__/instruction-file.unit.test.js.map +1 -0
- package/dist/api.d.ts +20 -10
- package/dist/api.js +18 -9
- package/dist/api.js.map +1 -1
- package/dist/index.js +18 -6
- package/dist/index.js.map +1 -1
- package/dist/instructions.d.ts +29 -1
- package/dist/instructions.js +88 -1
- package/dist/instructions.js.map +1 -1
- package/dist/platforms.js +1 -1
- package/dist/platforms.js.map +1 -1
- package/dist/proxy.js +17 -3
- package/dist/proxy.js.map +1 -1
- package/dist/setup.js +74 -36
- package/dist/setup.js.map +1 -1
- package/dist/teardown.js +38 -35
- package/dist/teardown.js.map +1 -1
- package/dist/tui/App.js +186 -74
- package/dist/tui/App.js.map +1 -1
- package/dist/tui/components/Banner.js +4 -13
- package/dist/tui/components/Banner.js.map +1 -1
- package/dist/tui/components/Footer.js +9 -9
- package/dist/tui/components/Footer.js.map +1 -1
- package/dist/tui/components/Header.js +8 -3
- package/dist/tui/components/Header.js.map +1 -1
- package/dist/tui/components/Modal.js +16 -8
- package/dist/tui/components/Modal.js.map +1 -1
- package/dist/tui/state.d.ts +54 -36
- package/dist/tui/state.js +69 -64
- package/dist/tui/state.js.map +1 -1
- package/dist/tui/tabs/KeysTab.js +5 -2
- package/dist/tui/tabs/KeysTab.js.map +1 -1
- package/dist/tui/tabs/KnowledgeTab.js +28 -28
- package/dist/tui/tabs/KnowledgeTab.js.map +1 -1
- package/dist/tui/tabs/TeamTab.js +1 -1
- package/dist/tui/tabs/YouTab.js +16 -2
- package/dist/tui/tabs/YouTab.js.map +1 -1
- package/package.json +2 -2
package/dist/instructions.d.ts
CHANGED
|
@@ -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
|
-
|
|
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 {};
|
package/dist/instructions.js
CHANGED
|
@@ -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
|
|
232
|
+
description: Cohvu continuous understanding for AI coding agents
|
|
146
233
|
alwaysApply: true
|
|
147
234
|
---
|
|
148
235
|
|
package/dist/instructions.js.map
CHANGED
|
@@ -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
package/dist/platforms.js.map
CHANGED
|
@@ -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,
|
|
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
|
-
|
|
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 {
|
|
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
|
-
|
|
53
|
+
const base = resolveMcpInvocation();
|
|
54
|
+
return { command: base.command, args: [...base.args, "--agent", agentSlug] };
|
|
21
55
|
}
|
|
22
56
|
function jsonEntryIsUpToDate(existing, agentSlug) {
|
|
23
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
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":"AAAA,4FAA4F;AAC5F,6CAA6C;AAE7C,OAAO,EACL,UAAU,EACV,YAAY,EACZ,aAAa,EACb,SAAS,EACT,YAAY,GACb,MAAM,IAAI,CAAC;AACZ,OAAO,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC;AAC7B,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AACrC,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAE,
|
|
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 {
|
|
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 (
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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))
|