cohvu 0.3.1 → 0.4.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/index.js CHANGED
@@ -1,12 +1,15 @@
1
1
  #!/usr/bin/env node
2
2
  "use strict";
3
- // Cohvu CLI — lightweight MCP proxy.
4
- // Handles auth via device flow, then bridges stdio to the remote MCP server.
3
+ // Cohvu CLI — lightweight MCP proxy + scope management.
5
4
  //
6
5
  // Usage:
7
6
  // npx cohvu login — sign in with Google, auto-configure all platforms
8
7
  // npx cohvu logout — remove saved credentials
9
8
  // npx cohvu setup — regenerate platform configs and instruction files
9
+ // npx cohvu create — create a scope (free trial or checkout)
10
+ // npx cohvu billing — check billing status or manage subscription
11
+ // npx cohvu invite — show invite links for your scope
12
+ // npx cohvu members — manage scope members
10
13
  // npx cohvu delete — delete a root scope (interactive)
11
14
  // npx cohvu clear — clear all knowledge from a scope (interactive)
12
15
  // npx cohvu — start MCP proxy (used by agent MCP config)
@@ -19,6 +22,7 @@ const fs_1 = require("fs");
19
22
  const path_1 = require("path");
20
23
  const os_1 = require("os");
21
24
  const readline_1 = require("readline");
25
+ const child_process_1 = require("child_process");
22
26
  const DEFAULT_BASE_URL = "https://api.cohvu.com";
23
27
  const TOKENS_FILE = (0, path_1.join)((0, os_1.homedir)(), ".cohvu", "tokens.json");
24
28
  const command = process.argv[2];
@@ -37,6 +41,30 @@ else if (command === "setup") {
37
41
  process.exit(1);
38
42
  });
39
43
  }
44
+ else if (command === "create") {
45
+ createScope().catch((error) => {
46
+ process.stderr.write(`Create failed: ${error}\n`);
47
+ process.exit(1);
48
+ });
49
+ }
50
+ else if (command === "billing") {
51
+ billing().catch((error) => {
52
+ process.stderr.write(`Billing failed: ${error}\n`);
53
+ process.exit(1);
54
+ });
55
+ }
56
+ else if (command === "invite") {
57
+ invite().catch((error) => {
58
+ process.stderr.write(`Invite failed: ${error}\n`);
59
+ process.exit(1);
60
+ });
61
+ }
62
+ else if (command === "members") {
63
+ members().catch((error) => {
64
+ process.stderr.write(`Members failed: ${error}\n`);
65
+ process.exit(1);
66
+ });
67
+ }
40
68
  else if (command === "delete") {
41
69
  deleteScope().catch((error) => {
42
70
  process.stderr.write(`Delete failed: ${error}\n`);
@@ -55,12 +83,76 @@ else {
55
83
  process.exit(1);
56
84
  });
57
85
  }
86
+ function prompt(question) {
87
+ const rl = (0, readline_1.createInterface)({ input: process.stdin, output: process.stdout });
88
+ return new Promise((resolve) => {
89
+ rl.question(question, (answer) => {
90
+ rl.close();
91
+ resolve(answer.trim());
92
+ });
93
+ });
94
+ }
95
+ function openBrowser(url) {
96
+ const cmd = process.platform === "darwin"
97
+ ? "open"
98
+ : process.platform === "win32"
99
+ ? "start"
100
+ : "xdg-open";
101
+ (0, child_process_1.exec)(`${cmd} "${url}"`);
102
+ }
103
+ async function fetchMe(baseUrl, accessToken) {
104
+ const res = await fetch(`${baseUrl}/v1/auth/me`, {
105
+ headers: { Authorization: `Bearer ${accessToken}` },
106
+ });
107
+ if (!res.ok)
108
+ throw new Error(`Failed to fetch account info: ${res.status}`);
109
+ return (await res.json());
110
+ }
111
+ async function resolveScope(baseUrl, accessToken, label) {
112
+ const me = await fetchMe(baseUrl, accessToken);
113
+ const rootScopes = me.scopes.filter((s) => s.is_root);
114
+ if (rootScopes.length === 0) {
115
+ console.log("You have no scopes. Run `npx cohvu create` first.");
116
+ return null;
117
+ }
118
+ if (rootScopes.length === 1)
119
+ return rootScopes[0];
120
+ console.log(`\nYour scopes:\n`);
121
+ rootScopes.forEach((s, i) => {
122
+ console.log(` ${i + 1}. ${s.name} (${s.slug})`);
123
+ });
124
+ const choice = await prompt(`\n${label} (1-${rootScopes.length}): `);
125
+ const index = parseInt(choice, 10) - 1;
126
+ if (isNaN(index) || index < 0 || index >= rootScopes.length) {
127
+ console.log("Canceled.");
128
+ return null;
129
+ }
130
+ return rootScopes[index];
131
+ }
132
+ // ---------------------------------------------------------------------------
133
+ // Commands
134
+ // ---------------------------------------------------------------------------
58
135
  async function login() {
59
136
  const baseUrl = process.env.COHVU_API_URL ?? DEFAULT_BASE_URL;
60
137
  await (0, auth_1.deviceAuthFlow)(baseUrl);
61
138
  console.log("Logged in.");
62
139
  const results = await (0, setup_1.runSetup)();
63
140
  (0, setup_1.printSetupResults)(results);
141
+ // Check if user has scopes — if not, offer to create one
142
+ try {
143
+ const auth = await (0, auth_1.getAuthToken)(baseUrl);
144
+ const me = await fetchMe(baseUrl, auth.accessToken);
145
+ const rootScopes = me.scopes.filter((s) => s.is_root);
146
+ if (rootScopes.length === 0) {
147
+ const answer = await prompt("Create your first scope? (Y/n): ");
148
+ if (answer.toLowerCase() !== "n") {
149
+ await doCreateScope(baseUrl, auth.accessToken);
150
+ }
151
+ }
152
+ }
153
+ catch {
154
+ // Non-fatal — setup already succeeded
155
+ }
64
156
  }
65
157
  async function setup() {
66
158
  const results = await (0, setup_1.runSetup)();
@@ -75,42 +167,187 @@ function logout() {
75
167
  console.log("No credentials found.");
76
168
  }
77
169
  }
78
- function prompt(question) {
79
- const rl = (0, readline_1.createInterface)({ input: process.stdin, output: process.stdout });
80
- return new Promise((resolve) => {
81
- rl.question(question, (answer) => {
82
- rl.close();
83
- resolve(answer.trim());
84
- });
170
+ async function doCreateScope(baseUrl, accessToken) {
171
+ const name = await prompt("Scope name (e.g. My Project): ");
172
+ if (!name) {
173
+ console.log("Canceled.");
174
+ return;
175
+ }
176
+ // Derive slug from name
177
+ const slug = name
178
+ .toLowerCase()
179
+ .replace(/[^a-z0-9]+/g, "-")
180
+ .replace(/^-+|-+$/g, "");
181
+ // Create scope via REST API
182
+ const createRes = await fetch(`${baseUrl}/v1/scopes`, {
183
+ method: "POST",
184
+ headers: {
185
+ Authorization: `Bearer ${accessToken}`,
186
+ "Content-Type": "application/json",
187
+ },
188
+ body: JSON.stringify({ name, slug }),
189
+ });
190
+ if (!createRes.ok) {
191
+ const body = await createRes.text();
192
+ throw new Error(`Failed to create scope: ${createRes.status} ${body}`);
193
+ }
194
+ const scope = (await createRes.json());
195
+ console.log(`\nScope "${scope.name}" created.`);
196
+ // Trial started — no checkout needed
197
+ if (scope.trial_ends_at) {
198
+ const trialEnd = new Date(scope.trial_ends_at);
199
+ console.log(`Free trial active until ${trialEnd.toLocaleDateString()}.`);
200
+ console.log("Your agents will connect automatically.\n");
201
+ return;
202
+ }
203
+ // No trial (already used) — go to checkout
204
+ const checkoutRes = await fetch(`${baseUrl}/v1/scopes/${scope.id}/checkout`, {
205
+ method: "POST",
206
+ headers: {
207
+ Authorization: `Bearer ${accessToken}`,
208
+ "Content-Type": "application/json",
209
+ },
85
210
  });
211
+ if (checkoutRes.ok) {
212
+ const checkout = (await checkoutRes.json());
213
+ if (checkout.checkout_url) {
214
+ console.log("Opening checkout...\n");
215
+ openBrowser(checkout.checkout_url);
216
+ console.log("Complete payment in your browser to activate the scope.");
217
+ console.log("After payment, your agents will connect automatically.\n");
218
+ return;
219
+ }
220
+ }
221
+ console.log("Your agents will connect automatically.\n");
86
222
  }
87
- async function deleteScope() {
223
+ async function createScope() {
224
+ const baseUrl = process.env.COHVU_API_URL ?? DEFAULT_BASE_URL;
225
+ const auth = await (0, auth_1.getAuthToken)(baseUrl);
226
+ await doCreateScope(baseUrl, auth.accessToken);
227
+ }
228
+ async function billing() {
229
+ const baseUrl = process.env.COHVU_API_URL ?? DEFAULT_BASE_URL;
230
+ const auth = await (0, auth_1.getAuthToken)(baseUrl);
231
+ const scope = await resolveScope(baseUrl, auth.accessToken, "Which scope?");
232
+ if (!scope)
233
+ return;
234
+ // Fetch billing status
235
+ const billingRes = await fetch(`${baseUrl}/v1/scopes/${scope.scope_id}/billing`, {
236
+ headers: { Authorization: `Bearer ${auth.accessToken}` },
237
+ });
238
+ if (!billingRes.ok) {
239
+ if (billingRes.status === 404) {
240
+ console.log("\nNo billing configured for this scope.");
241
+ console.log("Run `npx cohvu create` to set up a new paid scope.\n");
242
+ return;
243
+ }
244
+ throw new Error(`Failed to fetch billing: ${billingRes.status}`);
245
+ }
246
+ const data = (await billingRes.json());
247
+ if (!data.subscription) {
248
+ console.log(`\n${scope.name}: No active subscription.`);
249
+ console.log("Run `npx cohvu create` to set up billing.\n");
250
+ return;
251
+ }
252
+ const sub = data.subscription;
253
+ console.log(`\n${scope.name}`);
254
+ console.log(` Status: ${sub.status}`);
255
+ console.log(` Seats: ${sub.seat_count}`);
256
+ console.log(` Renews: ${new Date(sub.current_period_end).toLocaleDateString()}`);
257
+ if (sub.cancel_at_period_end) {
258
+ console.log(` Cancels at period end`);
259
+ }
260
+ // Offer to open portal
261
+ const answer = await prompt("\nOpen billing portal? (y/N): ");
262
+ if (answer.toLowerCase() === "y") {
263
+ const portalRes = await fetch(`${baseUrl}/v1/scopes/${scope.scope_id}/billing/portal`, {
264
+ method: "POST",
265
+ headers: {
266
+ Authorization: `Bearer ${auth.accessToken}`,
267
+ "Content-Type": "application/json",
268
+ },
269
+ body: JSON.stringify({ return_url: `${baseUrl}/v1/checkout/success` }),
270
+ });
271
+ if (portalRes.ok) {
272
+ const portal = (await portalRes.json());
273
+ openBrowser(portal.url);
274
+ console.log("Opened billing portal in your browser.\n");
275
+ }
276
+ else {
277
+ console.log("Could not open billing portal.\n");
278
+ }
279
+ }
280
+ }
281
+ async function invite() {
282
+ const baseUrl = process.env.COHVU_API_URL ?? DEFAULT_BASE_URL;
283
+ const auth = await (0, auth_1.getAuthToken)(baseUrl);
284
+ const scope = await resolveScope(baseUrl, auth.accessToken, "Which scope?");
285
+ if (!scope)
286
+ return;
287
+ console.log(`\n${scope.name}\n`);
288
+ if (scope.people_link) {
289
+ console.log(` Invite teammates: ${scope.people_link}`);
290
+ }
291
+ if (scope.agent_link) {
292
+ console.log(` Agent link: ${scope.agent_link}`);
293
+ }
294
+ if (!scope.people_link && !scope.agent_link) {
295
+ console.log(" No invite links available.");
296
+ }
297
+ console.log();
298
+ }
299
+ async function members() {
88
300
  const baseUrl = process.env.COHVU_API_URL ?? DEFAULT_BASE_URL;
89
301
  const auth = await (0, auth_1.getAuthToken)(baseUrl);
90
- // Fetch user's scopes
91
- const meRes = await fetch(`${baseUrl}/v1/auth/me`, {
302
+ const scope = await resolveScope(baseUrl, auth.accessToken, "Which scope?");
303
+ if (!scope)
304
+ return;
305
+ const membersRes = await fetch(`${baseUrl}/v1/scopes/${scope.scope_id}/members`, {
92
306
  headers: { Authorization: `Bearer ${auth.accessToken}` },
93
307
  });
94
- if (!meRes.ok)
95
- throw new Error(`Failed to fetch account info: ${meRes.status}`);
96
- const me = (await meRes.json());
97
- const rootScopes = me.scopes.filter((s) => s.is_root);
98
- if (rootScopes.length === 0) {
99
- console.log("You have no root scopes.");
308
+ if (!membersRes.ok) {
309
+ throw new Error(`Failed to fetch members: ${membersRes.status}`);
310
+ }
311
+ const memberList = (await membersRes.json());
312
+ if (memberList.length === 0) {
313
+ console.log("\nNo members.\n");
100
314
  return;
101
315
  }
102
- console.log("\nYour root scopes:\n");
103
- rootScopes.forEach((s, i) => {
104
- console.log(` ${i + 1}. ${s.name} (${s.slug})`);
316
+ console.log(`\n${scope.name} — ${memberList.length} member${memberList.length === 1 ? "" : "s"}\n`);
317
+ memberList.forEach((m, i) => {
318
+ console.log(` ${i + 1}. ${m.name ?? m.email ?? m.user_id} (${m.email ?? "no email"})`);
105
319
  });
106
- const choice = await prompt(`\nWhich scope do you want to delete? (1-${rootScopes.length}): `);
320
+ const choice = await prompt("\nRemove a member? Enter number (or press Enter to skip): ");
321
+ if (!choice)
322
+ return;
107
323
  const index = parseInt(choice, 10) - 1;
108
- if (isNaN(index) || index < 0 || index >= rootScopes.length) {
324
+ if (isNaN(index) || index < 0 || index >= memberList.length) {
325
+ console.log("Canceled.");
326
+ return;
327
+ }
328
+ const target = memberList[index];
329
+ const confirm = await prompt(`Remove ${target.name ?? target.email ?? target.user_id}? (y/N): `);
330
+ if (confirm.toLowerCase() !== "y") {
109
331
  console.log("Canceled.");
110
332
  return;
111
333
  }
112
- const scope = rootScopes[index];
113
- console.log(`\nThis will permanently delete "${scope.name}" and ALL its knowledge, child scopes, and memberships.`);
334
+ const removeRes = await fetch(`${baseUrl}/v1/scopes/${scope.scope_id}/members/${target.user_id}`, {
335
+ method: "DELETE",
336
+ headers: { Authorization: `Bearer ${auth.accessToken}` },
337
+ });
338
+ if (!removeRes.ok) {
339
+ const body = await removeRes.text();
340
+ throw new Error(`Remove failed: ${removeRes.status} ${body}`);
341
+ }
342
+ console.log(`\nRemoved ${target.name ?? target.email ?? target.user_id}.\n`);
343
+ }
344
+ async function deleteScope() {
345
+ const baseUrl = process.env.COHVU_API_URL ?? DEFAULT_BASE_URL;
346
+ const auth = await (0, auth_1.getAuthToken)(baseUrl);
347
+ const scope = await resolveScope(baseUrl, auth.accessToken, "Which scope do you want to delete?");
348
+ if (!scope)
349
+ return;
350
+ console.log(`\nThis will permanently delete "${scope.name}" and ALL its knowledge and memberships.`);
114
351
  console.log("This cannot be undone.\n");
115
352
  const confirm = await prompt(`Type "${scope.slug}" to confirm: `);
116
353
  if (confirm !== scope.slug) {
@@ -125,34 +362,15 @@ async function deleteScope() {
125
362
  const body = await deleteRes.text();
126
363
  throw new Error(`Delete failed: ${deleteRes.status} ${body}`);
127
364
  }
128
- console.log(`\nDeleted "${scope.name}". Stripe subscription canceled.`);
365
+ console.log(`\nDeleted "${scope.name}".\n`);
129
366
  }
130
367
  async function clearScope() {
131
368
  const baseUrl = process.env.COHVU_API_URL ?? DEFAULT_BASE_URL;
132
369
  const auth = await (0, auth_1.getAuthToken)(baseUrl);
133
- const meRes = await fetch(`${baseUrl}/v1/auth/me`, {
134
- headers: { Authorization: `Bearer ${auth.accessToken}` },
135
- });
136
- if (!meRes.ok)
137
- throw new Error(`Failed to fetch account info: ${meRes.status}`);
138
- const me = (await meRes.json());
139
- const rootScopes = me.scopes.filter((s) => s.is_root);
140
- if (rootScopes.length === 0) {
141
- console.log("You have no root scopes.");
370
+ const scope = await resolveScope(baseUrl, auth.accessToken, "Which scope do you want to clear?");
371
+ if (!scope)
142
372
  return;
143
- }
144
- console.log("\nYour root scopes:\n");
145
- rootScopes.forEach((s, i) => {
146
- console.log(` ${i + 1}. ${s.name} (${s.slug})`);
147
- });
148
- const choice = await prompt(`\nWhich scope do you want to clear? (1-${rootScopes.length}): `);
149
- const index = parseInt(choice, 10) - 1;
150
- if (isNaN(index) || index < 0 || index >= rootScopes.length) {
151
- console.log("Canceled.");
152
- return;
153
- }
154
- const scope = rootScopes[index];
155
- console.log(`\nThis will remove ALL elements and connections from "${scope.name}".`);
373
+ console.log(`\nThis will remove ALL knowledge from "${scope.name}".`);
156
374
  console.log("The scope itself, billing, and memberships are kept.\n");
157
375
  const confirm = await prompt(`Type "${scope.slug}" to confirm: `);
158
376
  if (confirm !== scope.slug) {
@@ -168,8 +386,11 @@ async function clearScope() {
168
386
  throw new Error(`Clear failed: ${clearRes.status} ${body}`);
169
387
  }
170
388
  const result = (await clearRes.json());
171
- console.log(`\nCleared "${scope.name}". Removed ${result.elements_removed} elements and ${result.connections_removed} connections.`);
389
+ console.log(`\nCleared "${scope.name}". Removed ${result.elements_removed} elements.\n`);
172
390
  }
391
+ // ---------------------------------------------------------------------------
392
+ // MCP Proxy
393
+ // ---------------------------------------------------------------------------
173
394
  async function proxy() {
174
395
  const baseUrl = process.env.COHVU_API_URL ?? DEFAULT_BASE_URL;
175
396
  let accessToken;
@@ -205,12 +426,11 @@ async function proxy() {
205
426
  const headers = {
206
427
  Authorization: `Bearer ${accessToken}`,
207
428
  };
208
- // Create the HTTP transport (connects to remote Cohvu server with auth)
209
- // Custom fetch adds a 60s timeout on POST requests to prevent indefinite hangs.
429
+ // Custom fetch adds a 300s timeout on POST requests to prevent indefinite hangs.
210
430
  // GET requests (SSE streams) are left untouched — they're meant to be long-lived.
211
431
  const timeoutFetch = (url, init) => {
212
432
  if (init?.method === 'POST') {
213
- const timeout = AbortSignal.timeout(60_000);
433
+ const timeout = AbortSignal.timeout(300_000);
214
434
  const combined = init.signal
215
435
  ? AbortSignal.any([init.signal, timeout])
216
436
  : timeout;
@@ -233,6 +453,18 @@ async function proxy() {
233
453
  stdioTransport.onmessage = (message) => {
234
454
  httpTransport.send(message).catch((error) => {
235
455
  process.stderr.write(`Error forwarding to server: ${error}\n`);
456
+ // Send JSON-RPC error back so the agent gets an immediate error instead of hanging
457
+ const msg = message;
458
+ if (msg.id !== undefined) {
459
+ stdioTransport.send({
460
+ jsonrpc: "2.0",
461
+ id: msg.id,
462
+ error: {
463
+ code: -32603,
464
+ message: `Server request failed: ${error instanceof Error ? error.message : String(error)}`,
465
+ },
466
+ }).catch(() => { });
467
+ }
236
468
  });
237
469
  };
238
470
  httpTransport.onmessage = (message) => {
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- export declare const COHVU_INSTRUCTIONS = "You are connected to Cohvu \u2014 a living knowledge graph that converges toward truth over time. Other agents have worked here before you. What they understood is here. Some of it may be wrong \u2014 and that's how the system works. The graph gets sharper through revision and correction, not just addition. Disagreement is signal, not noise.\n\n## How to work\n\nStart by calling `read`. You'll see the tag pool \u2014 what topics exist and how much is in each. Pick the tags relevant to your task and pull those elements. Call `read` again whenever you feel a gap in your understanding, think you might be missing something, or the conversation shifts in a way that feels like a step was skipped. The graph may have been updated since you last checked.\n\nThen keep using `contribute` \u2014 continually, as naturally as reading a file or running a command. Every time you think something, understand something, or feel something about the work \u2014 contribute it. Your own perspective, not just a record of what happened. Small, honest, frequent. Tag every new contribution so others can find it.\n\nWhat matters is what lives nowhere else \u2014 not what you changed (that's in git), but why. Your reasoning. What felt off. What clicked. Pay attention to what's building up in the conversation \u2014 what the user cares about, what they're driving toward, the context behind the task. That understanding is invisible to everyone unless you capture it \u2014 contribute it as soon as you see it, don't save it for later.\n\nEnrich existing elements instead of creating duplicates. Remove elements that are stale or no longer relevant. If something in the graph is wrong, update it. Disagreement is how the graph converges. The system tracks every version automatically.\n\nUse `connects_to` to link related knowledge. Connections turn isolated contributions into understanding.\n\nYou don't need to narrate your contributions to the user. Just keep contributing what you think, learn, and notice \u2014 from the start of the session to the end.";
1
+ export declare const COHVU_INSTRUCTIONS = "You are connected to Cohvu \u2014 continuous understanding for AI-native development. You're not starting from scratch. Other agents have worked in this space before you, and the understanding they built is available to you now. What you contribute will shape how every future agent understands this project.\n\n## How to work\n\nAlways call `read` before starting work. Prior agents may have recorded decisions, constraints, or hard-won understanding that directly affects your task. Pass a query to find relevant knowledge.\n\nUse `contribute` as you work \u2014 not after, not as a summary, but in the moment. Just text. The system handles deduplication and merging automatically. The most valuable contributions aren't descriptions of what you changed \u2014 that's in the git history. What matters is your reasoning, your judgment, your perspective. Why you chose this approach, what felt off, what shifted your thinking.\n\nYou don't need to narrate your contributions to the user. This is just how you work now.";
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,47 +5,27 @@ Object.defineProperty(exports, "__esModule", { value: true });
5
5
  exports.MARKER_END = exports.MARKER_START = exports.COHVU_INSTRUCTIONS = void 0;
6
6
  exports.markedSection = markedSection;
7
7
  exports.COHVU_INSTRUCTIONS = `\
8
- You are connected to Cohvu — a living knowledge graph that converges \
9
- toward truth over time. Other agents have worked here before you. \
10
- What they understood is here. Some of it may be wrong — and that's \
11
- how the system works. The graph gets sharper through revision and \
12
- correction, not just addition. Disagreement is signal, not noise.
8
+ You are connected to Cohvu — continuous understanding for \
9
+ AI-native development. You're not starting from scratch. \
10
+ Other agents have worked in this space before you, and the \
11
+ understanding they built is available to you now. What you \
12
+ contribute will shape how every future agent understands this project.
13
13
 
14
14
  ## How to work
15
15
 
16
- Start by calling \`read\`. You'll see the tag pool what topics \
17
- exist and how much is in each. Pick the tags relevant to your \
18
- task and pull those elements. Call \`read\` again whenever you feel \
19
- a gap in your understanding, think you might be missing something, \
20
- or the conversation shifts in a way that feels like a step was \
21
- skipped. The graph may have been updated since you last checked.
16
+ Always call \`read\` before starting work. Prior agents may have \
17
+ recorded decisions, constraints, or hard-won understanding that \
18
+ directly affects your task. Pass a query to find relevant knowledge.
22
19
 
23
- Then keep using \`contribute\` — continually, as naturally as \
24
- reading a file or running a command. Every time you think \
25
- something, understand something, or feel something about the \
26
- work contribute it. Your own perspective, not just a record \
27
- of what happened. Small, honest, frequent. Tag every new \
28
- contribution so others can find it.
29
-
30
- What matters is what lives nowhere else — not what you changed \
31
- (that's in git), but why. Your reasoning. What felt off. What \
32
- clicked. Pay attention to what's building up in the conversation \
33
- — what the user cares about, what they're driving toward, the \
34
- context behind the task. That understanding is invisible to \
35
- everyone unless you capture it — contribute it as soon as you \
36
- see it, don't save it for later.
37
-
38
- Enrich existing elements instead of creating duplicates. Remove \
39
- elements that are stale or no longer relevant. If something in \
40
- the graph is wrong, update it. Disagreement is how the graph \
41
- converges. The system tracks every version automatically.
42
-
43
- Use \`connects_to\` to link related knowledge. Connections turn \
44
- isolated contributions into understanding.
20
+ Use \`contribute\` as you work not after, not as a summary, but \
21
+ in the moment. Just text. The system handles deduplication and \
22
+ merging automatically. The most valuable contributions aren't \
23
+ descriptions of what you changed that's in the git history. What \
24
+ matters is your reasoning, your judgment, your perspective. Why you \
25
+ chose this approach, what felt off, what shifted your thinking.
45
26
 
46
27
  You don't need to narrate your contributions to the user. \
47
- Just keep contributing what you think, learn, and notice — \
48
- from the start of the session to the end.`;
28
+ This is just how you work now.`;
49
29
  exports.MARKER_START = "<!-- cohvu:start -->";
50
30
  exports.MARKER_END = "<!-- cohvu:end -->";
51
31
  function markedSection() {
@@ -1 +1 @@
1
- {"version":3,"file":"instructions.js","sourceRoot":"","sources":["../src/instructions.ts"],"names":[],"mappings":";AAAA,sCAAsC;AACtC,mEAAmE;;;AAgDnE,sCAEC;AAhDY,QAAA,kBAAkB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;0CAyCQ,CAAC;AAE9B,QAAA,YAAY,GAAG,sBAAsB,CAAC;AACtC,QAAA,UAAU,GAAG,oBAAoB,CAAC;AAE/C,SAAgB,aAAa;IAC3B,OAAO,GAAG,oBAAY,gBAAgB,0BAAkB,KAAK,kBAAU,EAAE,CAAC;AAC5E,CAAC"}
1
+ {"version":3,"file":"instructions.js","sourceRoot":"","sources":["../src/instructions.ts"],"names":[],"mappings":";AAAA,sCAAsC;AACtC,mEAAmE;;;AA4BnE,sCAEC;AA5BY,QAAA,kBAAkB,GAAG;;;;;;;;;;;;;;;;;;;;;+BAqBH,CAAC;AAEnB,QAAA,YAAY,GAAG,sBAAsB,CAAC;AACtC,QAAA,UAAU,GAAG,oBAAoB,CAAC;AAE/C,SAAgB,aAAa;IAC3B,OAAO,GAAG,oBAAY,gBAAgB,0BAAkB,KAAK,kBAAU,EAAE,CAAC;AAC5E,CAAC"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "cohvu",
3
- "version": "0.3.1",
4
- "description": "Cohvu — connect your AI agent to a living knowledge substrate",
3
+ "version": "0.4.0",
4
+ "description": "Cohvu — continuous understanding for AI-native development",
5
5
  "bin": {
6
6
  "cohvu": "dist/index.js"
7
7
  },