@cachly-dev/mcp-server 0.10.78 → 0.10.80
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/README.md +12 -1
- package/dist/src/handlers/brain.js +24 -1
- package/dist/src/handlers/brain.js.map +1 -1
- package/dist/src/handlers/share.d.ts +3 -1
- package/dist/src/handlers/share.js +274 -1
- package/dist/src/handlers/share.js.map +1 -1
- package/dist/src/index.js +84 -4
- package/dist/src/index.js.map +1 -1
- package/dist/src/starter-corpus.d.ts +28 -0
- package/dist/src/starter-corpus.js +165 -0
- package/dist/src/starter-corpus.js.map +1 -0
- package/dist/src/tools.d.ts +79 -0
- package/dist/src/tools.js +65 -0
- package/dist/src/tools.js.map +1 -1
- package/package.json +1 -1
- package/server.json +3 -3
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import type { Redis } from 'ioredis';
|
|
2
|
+
import { STARTER_CORPUS_SIZE } from '../starter-corpus.js';
|
|
2
3
|
type GetConnection = (instanceId: string) => Promise<Redis>;
|
|
3
4
|
type ApiFetch = <T>(path: string, options?: RequestInit) => Promise<T>;
|
|
4
5
|
export declare const SHARE_TOOL_NAMES: Set<string>;
|
|
5
6
|
export declare function handleShareTool(name: string, args: Record<string, unknown>, getConnection: GetConnection, apiFetch: ApiFetch): Promise<string | null>;
|
|
6
|
-
|
|
7
|
+
/** Exposed for the empty-brain welcome nudge in session_start. */
|
|
8
|
+
export { STARTER_CORPUS_SIZE };
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import { safeJsonParse } from '../utils.js';
|
|
2
|
+
import { STARTER_CORPUS, STARTER_CORPUS_SIZE } from '../starter-corpus.js';
|
|
2
3
|
export const SHARE_TOOL_NAMES = new Set([
|
|
3
|
-
'brain_share', 'brain_import',
|
|
4
|
+
'brain_share', 'brain_import', 'brain_share_list', 'brain_unshare', 'brain_discover',
|
|
5
|
+
'brain_seed_starter',
|
|
4
6
|
]);
|
|
5
7
|
async function scanAllLessons(redis, topicFilter) {
|
|
6
8
|
const keys = [];
|
|
@@ -249,8 +251,279 @@ export async function handleShareTool(name, args, getConnection, apiFetch) {
|
|
|
249
251
|
}
|
|
250
252
|
return lines.join('\n');
|
|
251
253
|
}
|
|
254
|
+
// ── brain_share_list ───────────────────────────────────────────────────────
|
|
255
|
+
case 'brain_share_list': {
|
|
256
|
+
const { instance_id } = args;
|
|
257
|
+
if (!instance_id)
|
|
258
|
+
return '⚠️ `brain_share_list` requires `instance_id`.';
|
|
259
|
+
const redis = await getConnection(instance_id);
|
|
260
|
+
// Load from local provenance log
|
|
261
|
+
let localShares = [];
|
|
262
|
+
try {
|
|
263
|
+
const raw = await redis.lrange('cachly:brain:shares', 0, -1);
|
|
264
|
+
localShares = raw.map(r => {
|
|
265
|
+
try {
|
|
266
|
+
return JSON.parse(r);
|
|
267
|
+
}
|
|
268
|
+
catch {
|
|
269
|
+
return null;
|
|
270
|
+
}
|
|
271
|
+
}).filter(Boolean);
|
|
272
|
+
}
|
|
273
|
+
catch { /* non-critical */ }
|
|
274
|
+
// Also try API for authoritative list
|
|
275
|
+
let apiShares = [];
|
|
276
|
+
try {
|
|
277
|
+
const result = await apiFetch('/api/v1/brains/share');
|
|
278
|
+
apiShares = result.shares ?? [];
|
|
279
|
+
}
|
|
280
|
+
catch { /* API may not be live yet */ }
|
|
281
|
+
// Merge: API is authoritative; local fills gaps
|
|
282
|
+
const merged = apiShares.length > 0 ? apiShares : localShares;
|
|
283
|
+
if (merged.length === 0) {
|
|
284
|
+
return [
|
|
285
|
+
`📤 **brain_share_list** — no shares yet`,
|
|
286
|
+
``,
|
|
287
|
+
`You haven't shared any Brain snapshots from this instance.`,
|
|
288
|
+
``,
|
|
289
|
+
`Create one with: \`brain_share(instance_id="${instance_id}", title="My Patterns")\``,
|
|
290
|
+
].join('\n');
|
|
291
|
+
}
|
|
292
|
+
const lines = [
|
|
293
|
+
`📤 **Your Brain Shares** (${merged.length})`,
|
|
294
|
+
``,
|
|
295
|
+
`| # | Title | Lessons | Visibility | Created |`,
|
|
296
|
+
`|---|-------|---------|------------|---------|`,
|
|
297
|
+
];
|
|
298
|
+
for (const [i, s] of merged.entries()) {
|
|
299
|
+
const d = new Date(s.created_at);
|
|
300
|
+
const created = isNaN(d.getTime()) ? s.created_at : d.toISOString().slice(0, 10);
|
|
301
|
+
const vis = s.visibility === 'public' ? '🌐 public' : '🔗 unlisted';
|
|
302
|
+
lines.push(`| ${i + 1} | ${s.title ?? '—'} | ${s.lesson_count ?? '?'} | ${vis} | ${created} |`);
|
|
303
|
+
}
|
|
304
|
+
const newest = merged[merged.length - 1];
|
|
305
|
+
lines.push(``, `**Import command:** \`brain_import(instance_id="<their-id>", share_id="${newest?.share_id ?? '...'}")\``, `**Revoke:** \`brain_unshare(instance_id="${instance_id}", share_id="<id>")\``);
|
|
306
|
+
return lines.join('\n');
|
|
307
|
+
}
|
|
308
|
+
// ── brain_unshare ──────────────────────────────────────────────────────────
|
|
309
|
+
case 'brain_unshare': {
|
|
310
|
+
const { instance_id, share_id } = args;
|
|
311
|
+
if (!instance_id)
|
|
312
|
+
return '⚠️ `brain_unshare` requires `instance_id`.';
|
|
313
|
+
if (!share_id)
|
|
314
|
+
return '⚠️ `brain_unshare` requires `share_id`.';
|
|
315
|
+
// Call API to delete
|
|
316
|
+
try {
|
|
317
|
+
await apiFetch(`/api/v1/brains/share/${share_id}`, { method: 'DELETE' });
|
|
318
|
+
}
|
|
319
|
+
catch (e) {
|
|
320
|
+
const msg = e.message ?? '';
|
|
321
|
+
if (msg.includes('404') || msg.includes('not found')) {
|
|
322
|
+
return `❌ Share \`${share_id}\` not found — it may have already been removed.`;
|
|
323
|
+
}
|
|
324
|
+
// If API is down, just remove from local log and warn
|
|
325
|
+
if (msg.includes('ECONNREFUSED') || msg.includes('fetch failed')) {
|
|
326
|
+
const redis = await getConnection(instance_id);
|
|
327
|
+
try {
|
|
328
|
+
const raw = await redis.lrange('cachly:brain:shares', 0, -1);
|
|
329
|
+
const kept = raw.filter(r => { try {
|
|
330
|
+
return JSON.parse(r).share_id !== share_id;
|
|
331
|
+
}
|
|
332
|
+
catch {
|
|
333
|
+
return true;
|
|
334
|
+
} });
|
|
335
|
+
await redis.del('cachly:brain:shares');
|
|
336
|
+
for (const entry of kept)
|
|
337
|
+
await redis.rpush('cachly:brain:shares', entry);
|
|
338
|
+
}
|
|
339
|
+
catch { /* non-critical */ }
|
|
340
|
+
return [
|
|
341
|
+
`⚠️ **brain_unshare** — removed from local log`,
|
|
342
|
+
``,
|
|
343
|
+
`API unreachable — removed \`${share_id}\` from your local share registry.`,
|
|
344
|
+
`The public link may still be accessible until the API confirms deletion.`,
|
|
345
|
+
].join('\n');
|
|
346
|
+
}
|
|
347
|
+
return `❌ brain_unshare failed: ${msg}`;
|
|
348
|
+
}
|
|
349
|
+
// Remove from local log
|
|
350
|
+
const redis = await getConnection(instance_id);
|
|
351
|
+
try {
|
|
352
|
+
const raw = await redis.lrange('cachly:brain:shares', 0, -1);
|
|
353
|
+
const kept = raw.filter(r => { try {
|
|
354
|
+
return JSON.parse(r).share_id !== share_id;
|
|
355
|
+
}
|
|
356
|
+
catch {
|
|
357
|
+
return true;
|
|
358
|
+
} });
|
|
359
|
+
await redis.del('cachly:brain:shares');
|
|
360
|
+
for (const entry of kept)
|
|
361
|
+
await redis.rpush('cachly:brain:shares', entry);
|
|
362
|
+
}
|
|
363
|
+
catch { /* non-critical */ }
|
|
364
|
+
return [
|
|
365
|
+
`🗑️ **brain_unshare** — share revoked`,
|
|
366
|
+
``,
|
|
367
|
+
`Share \`${share_id}\` has been deleted. The public link is no longer accessible.`,
|
|
368
|
+
``,
|
|
369
|
+
`_Anyone who already imported this Brain keeps their local copy._`,
|
|
370
|
+
].join('\n');
|
|
371
|
+
}
|
|
372
|
+
// ── brain_discover ─────────────────────────────────────────────────────────
|
|
373
|
+
case 'brain_discover': {
|
|
374
|
+
const { query = '', topic = '', limit = 10, } = args;
|
|
375
|
+
// Search public Brain marketplace
|
|
376
|
+
let results = [];
|
|
377
|
+
try {
|
|
378
|
+
const params = new URLSearchParams();
|
|
379
|
+
if (query)
|
|
380
|
+
params.set('q', query);
|
|
381
|
+
if (topic)
|
|
382
|
+
params.set('topic', topic);
|
|
383
|
+
params.set('limit', String(limit));
|
|
384
|
+
results = await apiFetch(`/api/v1/brains/discover?${params.toString()}`);
|
|
385
|
+
}
|
|
386
|
+
catch (e) {
|
|
387
|
+
const msg = e.message ?? '';
|
|
388
|
+
if (msg.includes('404') || msg.includes('ECONNREFUSED') || msg.includes('fetch failed')) {
|
|
389
|
+
return [
|
|
390
|
+
`🔍 **brain_discover** — marketplace not yet live`,
|
|
391
|
+
``,
|
|
392
|
+
`The public Brain marketplace is coming soon.`,
|
|
393
|
+
``,
|
|
394
|
+
`**In the meantime:**`,
|
|
395
|
+
` • Share your Brain: \`brain_share(instance_id="...", visibility="public")\``,
|
|
396
|
+
` • Import by ID: \`brain_import(instance_id="...", share_id="<id>")\``,
|
|
397
|
+
` • Community index: https://cachly.dev/brains`,
|
|
398
|
+
].join('\n');
|
|
399
|
+
}
|
|
400
|
+
return `❌ brain_discover failed: ${msg}`;
|
|
401
|
+
}
|
|
402
|
+
if (results.length === 0) {
|
|
403
|
+
const hint = query ? `matching "${query}"` : topic ? `in topic "${topic}"` : '';
|
|
404
|
+
return [
|
|
405
|
+
`🔍 **brain_discover** — no public Brains found ${hint}`.trim(),
|
|
406
|
+
``,
|
|
407
|
+
`Be the first! \`brain_share(instance_id="...", visibility="public")\``,
|
|
408
|
+
].join('\n');
|
|
409
|
+
}
|
|
410
|
+
const lines = [
|
|
411
|
+
`🔍 **brain_discover**${query ? ` — "${query}"` : ''}${topic ? ` · topic: ${topic}` : ''} (${results.length} result${results.length !== 1 ? 's' : ''})`,
|
|
412
|
+
``,
|
|
413
|
+
];
|
|
414
|
+
for (const [i, r] of results.entries()) {
|
|
415
|
+
const d = new Date(r.created_at);
|
|
416
|
+
const created = isNaN(d.getTime()) ? '' : ` · ${d.toISOString().slice(0, 10)}`;
|
|
417
|
+
const importCount = r.imports != null ? ` · ${r.imports} imports` : '';
|
|
418
|
+
const topicStr = r.topics?.length ? ` · topics: ${r.topics.slice(0, 4).join(', ')}` : '';
|
|
419
|
+
const by = r.author ? ` by **${r.author}**` : '';
|
|
420
|
+
lines.push(`**${i + 1}. ${r.title}**${by}`, ` 📚 ${r.lesson_count} lessons${topicStr}${importCount}${created}`, r.description ? ` _${r.description.slice(0, 120)}_` : '', ` \`brain_import(instance_id="...", share_id="${r.share_id}")\``, ``);
|
|
421
|
+
}
|
|
422
|
+
lines.push(`_Browse more at https://cachly.dev/brains_`);
|
|
423
|
+
return lines.filter(l => l !== ' ').join('\n');
|
|
424
|
+
}
|
|
425
|
+
// ── brain_seed_starter ─────────────────────────────────────────────────────
|
|
426
|
+
// Seeds a fresh Brain with curated, universal engineering lessons so the very
|
|
427
|
+
// first query returns a hit — drives time-to-first-recall under 2 minutes.
|
|
428
|
+
case 'brain_seed_starter': {
|
|
429
|
+
const { instance_id, topic_filter, dry_run = false, force = false, } = args;
|
|
430
|
+
if (!instance_id)
|
|
431
|
+
return '⚠️ `brain_seed_starter` requires `instance_id`.';
|
|
432
|
+
const redis = await getConnection(instance_id);
|
|
433
|
+
// Idempotency guard: don't double-seed unless force=true.
|
|
434
|
+
const seededMarker = await redis.get(`cachly:brain:starter_seeded:${instance_id}`);
|
|
435
|
+
if (seededMarker && !force && !dry_run) {
|
|
436
|
+
return [
|
|
437
|
+
`🌱 **brain_seed_starter** — already seeded`,
|
|
438
|
+
``,
|
|
439
|
+
`This Brain was seeded with the starter corpus on ${seededMarker}.`,
|
|
440
|
+
``,
|
|
441
|
+
`Pass \`force=true\` to re-seed (existing starter lessons will be refreshed).`,
|
|
442
|
+
].join('\n');
|
|
443
|
+
}
|
|
444
|
+
const topicFilter = Array.isArray(topic_filter) && topic_filter.length > 0 ? topic_filter : undefined;
|
|
445
|
+
const selected = topicFilter
|
|
446
|
+
? STARTER_CORPUS.filter(l => topicFilter.some(f => l.topic.includes(f) || l.tags.some(t => t.includes(f))))
|
|
447
|
+
: STARTER_CORPUS;
|
|
448
|
+
if (selected.length === 0) {
|
|
449
|
+
return [
|
|
450
|
+
`🌱 **brain_seed_starter** — no matching starter lessons`,
|
|
451
|
+
``,
|
|
452
|
+
`No starter lessons match filter: ${topicFilter?.join(', ')}.`,
|
|
453
|
+
`Available topics: ${STARTER_CORPUS.map(l => `\`${l.topic}\``).join(', ')}`,
|
|
454
|
+
].join('\n');
|
|
455
|
+
}
|
|
456
|
+
if (dry_run) {
|
|
457
|
+
const sample = selected.slice(0, 8).map(l => ` ✅ \`${l.topic}\` — ${l.what_worked.slice(0, 70)}…`);
|
|
458
|
+
return [
|
|
459
|
+
`🌱 **brain_seed_starter (DRY RUN)** — would seed ${selected.length} lesson${selected.length !== 1 ? 's' : ''}`,
|
|
460
|
+
``,
|
|
461
|
+
...sample,
|
|
462
|
+
selected.length > 8 ? ` _...and ${selected.length - 8} more_` : '',
|
|
463
|
+
``,
|
|
464
|
+
`_Remove \`dry_run=true\` to seed these into the Brain._`,
|
|
465
|
+
].filter(l => l !== '').join('\n');
|
|
466
|
+
}
|
|
467
|
+
const now = new Date().toISOString();
|
|
468
|
+
let seeded = 0;
|
|
469
|
+
let skipped = 0;
|
|
470
|
+
for (const lesson of selected) {
|
|
471
|
+
const bestKey = `cachly:lesson:best:${lesson.topic}`;
|
|
472
|
+
// Never clobber a user's own lesson on the same topic (unless force).
|
|
473
|
+
if (!force) {
|
|
474
|
+
const existing = await redis.get(bestKey);
|
|
475
|
+
if (existing) {
|
|
476
|
+
const parsed = safeJsonParse(existing, null);
|
|
477
|
+
// Only skip if it's a real user lesson (not a prior starter seed).
|
|
478
|
+
if (parsed && parsed.source !== 'starter') {
|
|
479
|
+
skipped++;
|
|
480
|
+
continue;
|
|
481
|
+
}
|
|
482
|
+
}
|
|
483
|
+
}
|
|
484
|
+
const lessonToStore = JSON.stringify({
|
|
485
|
+
topic: lesson.topic,
|
|
486
|
+
outcome: lesson.outcome,
|
|
487
|
+
what_worked: lesson.what_worked,
|
|
488
|
+
what_failed: lesson.what_failed,
|
|
489
|
+
ctx: lesson.ctx,
|
|
490
|
+
tags: lesson.tags,
|
|
491
|
+
confidence: lesson.confidence,
|
|
492
|
+
recall_count: 0,
|
|
493
|
+
source: 'starter',
|
|
494
|
+
ts: now,
|
|
495
|
+
verified_at: now,
|
|
496
|
+
version: 3,
|
|
497
|
+
});
|
|
498
|
+
await redis.set(bestKey, lessonToStore);
|
|
499
|
+
const listKey = `cachly:lessons:${lesson.topic}`;
|
|
500
|
+
await redis.rpush(listKey, lessonToStore);
|
|
501
|
+
await redis.ltrim(listKey, -100, -1);
|
|
502
|
+
await redis.expire(listKey, 90 * 86400);
|
|
503
|
+
seeded++;
|
|
504
|
+
}
|
|
505
|
+
// Stamp born_at so time-to-first-recall starts counting from the seed moment.
|
|
506
|
+
await redis.set(`cachly:stats:born_at:${instance_id}`, now, 'EX', 365 * 86400, 'NX').catch(() => { });
|
|
507
|
+
// Mark seeded for idempotency.
|
|
508
|
+
await redis.set(`cachly:brain:starter_seeded:${instance_id}`, now, 'EX', 365 * 86400);
|
|
509
|
+
return [
|
|
510
|
+
`🌱 **brain_seed_starter** — Brain seeded`,
|
|
511
|
+
``,
|
|
512
|
+
`**${seeded}** universal engineering lesson${seeded !== 1 ? 's' : ''} added${skipped > 0 ? ` (${skipped} skipped — your own lessons take priority)` : ''}.`,
|
|
513
|
+
``,
|
|
514
|
+
`Your Brain now answers common questions out of the box:`,
|
|
515
|
+
` • \`smart_recall(query="docker build slow")\``,
|
|
516
|
+
` • \`smart_recall(query="pod OOMKilled")\``,
|
|
517
|
+
` • \`smart_recall(query="jwt token rejected")\``,
|
|
518
|
+
``,
|
|
519
|
+
`_Starter lessons are tagged \`source: "starter"\` and never override your own._`,
|
|
520
|
+
`_They're replaced as you learn project-specific lessons on the same topics._`,
|
|
521
|
+
].join('\n');
|
|
522
|
+
}
|
|
252
523
|
default:
|
|
253
524
|
return null;
|
|
254
525
|
}
|
|
255
526
|
}
|
|
527
|
+
/** Exposed for the empty-brain welcome nudge in session_start. */
|
|
528
|
+
export { STARTER_CORPUS_SIZE };
|
|
256
529
|
//# sourceMappingURL=share.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"share.js","sourceRoot":"","sources":["../../../src/handlers/share.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"share.js","sourceRoot":"","sources":["../../../src/handlers/share.ts"],"names":[],"mappings":"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"}
|
package/dist/src/index.js
CHANGED
|
@@ -65,7 +65,7 @@ import { Redis } from 'ioredis';
|
|
|
65
65
|
let API_URL = process.env.CACHLY_API_URL ?? 'https://api.cachly.dev';
|
|
66
66
|
let JWT = process.env.CACHLY_JWT ?? '';
|
|
67
67
|
const _EMBED_MODEL = process.env.CACHLY_EMBED_MODEL ?? '';
|
|
68
|
-
const CURRENT_VERSION = '0.10.
|
|
68
|
+
const CURRENT_VERSION = '0.10.80';
|
|
69
69
|
// Max time to wait for a freshly-provisioned instance to become "running" before
|
|
70
70
|
// giving up. Free-tier provisioning in high-latency regions can take 45–90s, so the
|
|
71
71
|
// old hard-coded 25s caused spurious "instance_not_reachable" on first run.
|
|
@@ -771,11 +771,25 @@ async function handleTool(name, args) {
|
|
|
771
771
|
const gitCounts = _lastBrainFromGitCounts;
|
|
772
772
|
sendFunnelEvent('brain_from_git', { ...telemetryExtra, ...(gitCounts ?? {}) });
|
|
773
773
|
sendFunnelEvent('recall_best_solution', telemetryExtra);
|
|
774
|
+
// If git history yielded nothing usable (fresh/shallow/no-fix repo),
|
|
775
|
+
// seed the curated starter corpus so the very first smart_recall hits.
|
|
776
|
+
// This is the key lever on time-to-first-recall for new/empty repos.
|
|
777
|
+
let starterText = '';
|
|
778
|
+
if ((_lastBrainFromGitCounts?.total ?? 0) === 0) {
|
|
779
|
+
try {
|
|
780
|
+
const seed = await handleShareTool('brain_seed_starter', { instance_id: instanceId }, getConnection, apiFetch);
|
|
781
|
+
if (seed) {
|
|
782
|
+
sendFunnelEvent('brain_seed_starter', { ...telemetryExtra, auto: true });
|
|
783
|
+
starterText = '\n---\n' + String(seed);
|
|
784
|
+
}
|
|
785
|
+
}
|
|
786
|
+
catch { /* seeding errors must never break session_start */ }
|
|
787
|
+
}
|
|
774
788
|
// Append bootstrap summary to the session_start briefing.
|
|
775
789
|
// brainResult is always a string here (handleBrainTool returns string for session_start).
|
|
776
790
|
const bootstrapText = String(gitBootstrap);
|
|
777
|
-
if (bootstrapText) {
|
|
778
|
-
return String(brainResult) + '\n---\n' + bootstrapText;
|
|
791
|
+
if (bootstrapText || starterText) {
|
|
792
|
+
return String(brainResult) + '\n---\n' + bootstrapText + starterText;
|
|
779
793
|
}
|
|
780
794
|
}
|
|
781
795
|
}
|
|
@@ -1868,6 +1882,72 @@ if (process.argv[2] === 'share') {
|
|
|
1868
1882
|
}
|
|
1869
1883
|
process.exit(0);
|
|
1870
1884
|
}
|
|
1885
|
+
// ── CLI: cachly publish ───────────────────────────────────────────────────────
|
|
1886
|
+
// Creates a publicly importable Brain snapshot and prints the share URL + card.
|
|
1887
|
+
// Usage: npx @cachly-dev/mcp-server@latest publish [--public] [--title "My Patterns"]
|
|
1888
|
+
if (process.argv[2] === 'publish') {
|
|
1889
|
+
const apiKey = process.env.CACHLY_JWT ?? '';
|
|
1890
|
+
const instanceId = process.env.CACHLY_BRAIN_INSTANCE_ID ?? '';
|
|
1891
|
+
if (!apiKey || !instanceId) {
|
|
1892
|
+
console.log('\n⚠️ CACHLY_JWT and CACHLY_BRAIN_INSTANCE_ID must be set.');
|
|
1893
|
+
console.log(' Run: npx @cachly-dev/mcp-server@latest setup\n');
|
|
1894
|
+
process.exit(1);
|
|
1895
|
+
}
|
|
1896
|
+
const titleIdx = process.argv.indexOf('--title');
|
|
1897
|
+
const publishTitle = titleIdx !== -1 ? (process.argv[titleIdx + 1] ?? 'My Brain Snapshot') : 'My Brain Snapshot';
|
|
1898
|
+
const isPublic = process.argv.includes('--public');
|
|
1899
|
+
process.stdout.write('\n🧠 Publishing Brain snapshot...\n');
|
|
1900
|
+
try {
|
|
1901
|
+
// Fetch stats for the card
|
|
1902
|
+
const statsRes = await fetch(`${API_URL}/api/v1/instances/${instanceId}/brain/stats`, {
|
|
1903
|
+
headers: { Authorization: `Bearer ${apiKey}` },
|
|
1904
|
+
signal: AbortSignal.timeout(8000),
|
|
1905
|
+
});
|
|
1906
|
+
let lessons = 0, recalls = 0;
|
|
1907
|
+
if (statsRes.ok) {
|
|
1908
|
+
const stats = await statsRes.json();
|
|
1909
|
+
lessons = stats.lesson_count ?? 0;
|
|
1910
|
+
recalls = stats.total_recall_count ?? 0;
|
|
1911
|
+
}
|
|
1912
|
+
// Create the public share via API
|
|
1913
|
+
const shareRes = await fetch(`${API_URL}/api/v1/brains/share`, {
|
|
1914
|
+
method: 'POST',
|
|
1915
|
+
headers: { Authorization: `Bearer ${apiKey}`, 'Content-Type': 'application/json' },
|
|
1916
|
+
body: JSON.stringify({ title: publishTitle, visibility: isPublic ? 'public' : 'unlisted', instance_id: instanceId }),
|
|
1917
|
+
signal: AbortSignal.timeout(15000),
|
|
1918
|
+
});
|
|
1919
|
+
if (!shareRes.ok)
|
|
1920
|
+
throw new Error(`HTTP ${shareRes.status}`);
|
|
1921
|
+
const share = await shareRes.json();
|
|
1922
|
+
const shareId = share.share_id ?? 'unavailable';
|
|
1923
|
+
const shareUrl = `https://cachly.dev/brain/share/${shareId}`;
|
|
1924
|
+
console.log('');
|
|
1925
|
+
console.log('┌─────────────────────────────────────────────────────────────┐');
|
|
1926
|
+
console.log('│ 📤 Brain Published · powered by \x1b[35mcachly.dev\x1b[0m │');
|
|
1927
|
+
console.log('├─────────────────────────────────────────────────────────────┤');
|
|
1928
|
+
console.log(`│ Title : \x1b[33m${publishTitle.slice(0, 44).padEnd(44)}\x1b[0m│`);
|
|
1929
|
+
console.log(`│ Lessons : \x1b[32m${String(lessons).padEnd(10)}\x1b[0m Recalls: \x1b[36m${String(recalls).padEnd(26)}\x1b[0m│`);
|
|
1930
|
+
console.log(`│ Visibility: \x1b[${isPublic ? '32' : '33'}m${(isPublic ? 'public (discoverable)' : 'unlisted (link only)').padEnd(44)}\x1b[0m│`);
|
|
1931
|
+
console.log('├─────────────────────────────────────────────────────────────┤');
|
|
1932
|
+
console.log(`│ \x1b[1mShare URL:\x1b[0m \x1b[36m${shareUrl.padEnd(51)}\x1b[0m│`);
|
|
1933
|
+
console.log('├─────────────────────────────────────────────────────────────┤');
|
|
1934
|
+
console.log('│ \x1b[2mAnyone can import with:\x1b[0m │');
|
|
1935
|
+
console.log(`│ \x1b[90m brain_import(instance_id="...", share_id="${shareId.slice(0, 17)}")\x1b[0m│`);
|
|
1936
|
+
console.log('└─────────────────────────────────────────────────────────────┘');
|
|
1937
|
+
console.log('');
|
|
1938
|
+
console.log(` \x1b[1m📋 Share this with your team:\x1b[0m`);
|
|
1939
|
+
console.log(` ${shareUrl}`);
|
|
1940
|
+
console.log('');
|
|
1941
|
+
console.log(` \x1b[2mTo list all your shares:\x1b[0m brain_share_list(instance_id="${instanceId.slice(0, 24)}...")`);
|
|
1942
|
+
console.log(` \x1b[2mTo revoke this share:\x1b[0m brain_unshare(share_id="${shareId.slice(0, 24)}...")`);
|
|
1943
|
+
console.log('');
|
|
1944
|
+
}
|
|
1945
|
+
catch (e) {
|
|
1946
|
+
console.log(`\n❌ Could not publish Brain: ${e.message}\n`);
|
|
1947
|
+
process.exit(1);
|
|
1948
|
+
}
|
|
1949
|
+
process.exit(0);
|
|
1950
|
+
}
|
|
1871
1951
|
// ── CLI: cachly badge ─────────────────────────────────────────────────────────
|
|
1872
1952
|
// Outputs the Markdown + HTML snippet for embedding a live Brain lesson-count
|
|
1873
1953
|
// badge in any README or website. Badge SVG served by cachly API (public, no auth).
|
|
@@ -3001,7 +3081,7 @@ if (process.argv[2] === 'learn-git') {
|
|
|
3001
3081
|
// • Editor as an MCP stdio server (non-TTY) → ONE stderr hint, then KEEP RUNNING
|
|
3002
3082
|
// so tools/list works and the first tool call starts the browser sign-in.
|
|
3003
3083
|
// Skip entirely for CLI subcommands that intentionally run without credentials.
|
|
3004
|
-
const _cliNoAuthCommands = ['demo', 'share', 'health', 'setup', 'init', 'digest', 'invite', 'badge', 'join', 'upgrade'];
|
|
3084
|
+
const _cliNoAuthCommands = ['demo', 'share', 'publish', 'health', 'setup', 'init', 'digest', 'invite', 'badge', 'join', 'upgrade'];
|
|
3005
3085
|
if (!JWT && !_cliNoAuthCommands.includes(process.argv[2] ?? '')) {
|
|
3006
3086
|
const runningInTerminal = !process.argv[2] && process.stdout.isTTY === true && _isMain;
|
|
3007
3087
|
if (runningInTerminal) {
|