cohvu 0.3.2 → 0.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -1,14 +1,17 @@
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 + project 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
10
- // npx cohvu deletedelete a root scope (interactive)
11
- // npx cohvu clear clear all knowledge from a scope (interactive)
9
+ // npx cohvu createcreate a project (free trial or checkout)
10
+ // npx cohvu billing check billing status or manage subscription
11
+ // npx cohvu invite — show invite links for your project
12
+ // npx cohvu members — manage project members
13
+ // npx cohvu delete — delete a root project (interactive)
14
+ // npx cohvu clear — clear all knowledge from a project (interactive)
12
15
  // npx cohvu — start MCP proxy (used by agent MCP config)
13
16
  Object.defineProperty(exports, "__esModule", { value: true });
14
17
  const stdio_js_1 = require("@modelcontextprotocol/sdk/server/stdio.js");
@@ -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,14 +41,38 @@ else if (command === "setup") {
37
41
  process.exit(1);
38
42
  });
39
43
  }
44
+ else if (command === "create") {
45
+ createProject().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
- deleteScope().catch((error) => {
69
+ deleteProject().catch((error) => {
42
70
  process.stderr.write(`Delete failed: ${error}\n`);
43
71
  process.exit(1);
44
72
  });
45
73
  }
46
74
  else if (command === "clear") {
47
- clearScope().catch((error) => {
75
+ clearProject().catch((error) => {
48
76
  process.stderr.write(`Clear failed: ${error}\n`);
49
77
  process.exit(1);
50
78
  });
@@ -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 resolveProject(baseUrl, accessToken, label) {
112
+ const me = await fetchMe(baseUrl, accessToken);
113
+ const rootProjects = me.projects.filter((s) => s.is_root);
114
+ if (rootProjects.length === 0) {
115
+ console.log("You have no projects. Run `npx cohvu create` first.");
116
+ return null;
117
+ }
118
+ if (rootProjects.length === 1)
119
+ return rootProjects[0];
120
+ console.log(`\nYour projects:\n`);
121
+ rootProjects.forEach((s, i) => {
122
+ console.log(` ${i + 1}. ${s.name} (${s.slug})`);
123
+ });
124
+ const choice = await prompt(`\n${label} (1-${rootProjects.length}): `);
125
+ const index = parseInt(choice, 10) - 1;
126
+ if (isNaN(index) || index < 0 || index >= rootProjects.length) {
127
+ console.log("Canceled.");
128
+ return null;
129
+ }
130
+ return rootProjects[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 projects — 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 rootProjects = me.projects.filter((s) => s.is_root);
146
+ if (rootProjects.length === 0) {
147
+ const answer = await prompt("Create your first project? (Y/n): ");
148
+ if (answer.toLowerCase() !== "n") {
149
+ await doCreateProject(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,49 +167,194 @@ 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 doCreateProject(baseUrl, accessToken) {
171
+ const name = await prompt("Project 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 project via REST API
182
+ const createRes = await fetch(`${baseUrl}/v1/projects`, {
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 project: ${createRes.status} ${body}`);
193
+ }
194
+ const project = (await createRes.json());
195
+ console.log(`\nProject "${project.name}" created.`);
196
+ // Trial started — no checkout needed
197
+ if (project.trial_ends_at) {
198
+ const trialEnd = new Date(project.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/projects/${project.id}/checkout`, {
205
+ method: "POST",
206
+ headers: {
207
+ Authorization: `Bearer ${accessToken}`,
208
+ "Content-Type": "application/json",
209
+ },
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 project.");
217
+ console.log("After payment, your agents will connect automatically.\n");
218
+ return;
219
+ }
220
+ }
221
+ console.log("Your agents will connect automatically.\n");
222
+ }
223
+ async function createProject() {
224
+ const baseUrl = process.env.COHVU_API_URL ?? DEFAULT_BASE_URL;
225
+ const auth = await (0, auth_1.getAuthToken)(baseUrl);
226
+ await doCreateProject(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 project = await resolveProject(baseUrl, auth.accessToken, "Which project?");
232
+ if (!project)
233
+ return;
234
+ // Fetch billing status
235
+ const billingRes = await fetch(`${baseUrl}/v1/projects/${project.project_id}/billing`, {
236
+ headers: { Authorization: `Bearer ${auth.accessToken}` },
85
237
  });
238
+ if (!billingRes.ok) {
239
+ if (billingRes.status === 404) {
240
+ console.log("\nNo billing configured for this project.");
241
+ console.log("Run `npx cohvu create` to set up a new paid project.\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${project.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${project.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/projects/${project.project_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 project = await resolveProject(baseUrl, auth.accessToken, "Which project?");
285
+ if (!project)
286
+ return;
287
+ console.log(`\n${project.name}\n`);
288
+ if (project.people_link) {
289
+ console.log(` Invite teammates: ${project.people_link}`);
290
+ }
291
+ if (project.agent_link) {
292
+ console.log(` Agent link: ${project.agent_link}`);
293
+ }
294
+ if (!project.people_link && !project.agent_link) {
295
+ console.log(" No invite links available.");
296
+ }
297
+ console.log();
86
298
  }
87
- async function deleteScope() {
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 project = await resolveProject(baseUrl, auth.accessToken, "Which project?");
303
+ if (!project)
304
+ return;
305
+ const membersRes = await fetch(`${baseUrl}/v1/projects/${project.project_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${project.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/projects/${project.project_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 deleteProject() {
345
+ const baseUrl = process.env.COHVU_API_URL ?? DEFAULT_BASE_URL;
346
+ const auth = await (0, auth_1.getAuthToken)(baseUrl);
347
+ const project = await resolveProject(baseUrl, auth.accessToken, "Which project do you want to delete?");
348
+ if (!project)
349
+ return;
350
+ console.log(`\nThis will permanently delete "${project.name}" and ALL its knowledge and memberships.`);
114
351
  console.log("This cannot be undone.\n");
115
- const confirm = await prompt(`Type "${scope.slug}" to confirm: `);
116
- if (confirm !== scope.slug) {
352
+ const confirm = await prompt(`Type "${project.slug}" to confirm: `);
353
+ if (confirm !== project.slug) {
117
354
  console.log("Canceled.");
118
355
  return;
119
356
  }
120
- const deleteRes = await fetch(`${baseUrl}/v1/scopes/${scope.scope_id}`, {
357
+ const deleteRes = await fetch(`${baseUrl}/v1/projects/${project.project_id}`, {
121
358
  method: "DELETE",
122
359
  headers: { Authorization: `Bearer ${auth.accessToken}` },
123
360
  });
@@ -125,41 +362,22 @@ 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 "${project.name}".\n`);
129
366
  }
130
- async function clearScope() {
367
+ async function clearProject() {
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.");
142
- 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.");
370
+ const project = await resolveProject(baseUrl, auth.accessToken, "Which project do you want to clear?");
371
+ if (!project)
152
372
  return;
153
- }
154
- const scope = rootScopes[index];
155
- console.log(`\nThis will remove ALL elements and connections from "${scope.name}".`);
156
- console.log("The scope itself, billing, and memberships are kept.\n");
157
- const confirm = await prompt(`Type "${scope.slug}" to confirm: `);
158
- if (confirm !== scope.slug) {
373
+ console.log(`\nThis will remove ALL knowledge from "${project.name}".`);
374
+ console.log("The project itself, billing, and memberships are kept.\n");
375
+ const confirm = await prompt(`Type "${project.slug}" to confirm: `);
376
+ if (confirm !== project.slug) {
159
377
  console.log("Canceled.");
160
378
  return;
161
379
  }
162
- const clearRes = await fetch(`${baseUrl}/v1/scopes/${scope.scope_id}/knowledge`, {
380
+ const clearRes = await fetch(`${baseUrl}/v1/projects/${project.project_id}/knowledge`, {
163
381
  method: "DELETE",
164
382
  headers: { Authorization: `Bearer ${auth.accessToken}` },
165
383
  });
@@ -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 "${project.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,8 +426,7 @@ 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') {
@@ -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 memory for AI-native development.\n\n## How to work\n\nCall `read` when you start working and whenever you feel like you might be missing context. Call `contribute` as you work \u2014 not after, not as a summary, but in the moment. Just text. The system handles deduplication and merging automatically.\n\nThat's it. Two tools. No system to learn.";
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;
@@ -1,51 +1,18 @@
1
1
  "use strict";
2
- // Cohvu workflow instruction content.
3
- // Written to each platform's global instruction file during setup.
4
2
  Object.defineProperty(exports, "__esModule", { value: true });
5
3
  exports.MARKER_END = exports.MARKER_START = exports.COHVU_INSTRUCTIONS = void 0;
6
4
  exports.markedSection = markedSection;
7
5
  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.
6
+ You are connected to Cohvu — continuous memory for AI-native development.
13
7
 
14
8
  ## How to work
15
9
 
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.
10
+ Call \`read\` when you start working and whenever you feel like \
11
+ you might be missing context. Call \`contribute\` as you work \
12
+ not after, not as a summary, but in the moment. Just text. The \
13
+ system handles deduplication and merging automatically.
22
14
 
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.
45
-
46
- 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.`;
15
+ That's it. Two tools. No system to learn.`;
49
16
  exports.MARKER_START = "<!-- cohvu:start -->";
50
17
  exports.MARKER_END = "<!-- cohvu:end -->";
51
18
  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":";;;AAeA,sCAEC;AAjBY,QAAA,kBAAkB,GAAG;;;;;;;;;;0CAUQ,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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "cohvu",
3
- "version": "0.3.2",
4
- "description": "Cohvu — connect your AI agent to a living knowledge substrate",
3
+ "version": "0.5.0",
4
+ "description": "Cohvu — continuous memory for AI-native development",
5
5
  "bin": {
6
6
  "cohvu": "dist/index.js"
7
7
  },