@cachly-dev/mcp-server 0.10.108 → 0.10.113
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 +25 -3
- package/dist/src/brain-watch-hook.d.ts +21 -0
- package/dist/src/brain-watch-hook.js +86 -0
- package/dist/src/brain-watch-hook.js.map +1 -0
- package/dist/src/handlers/brain.js +36 -1
- package/dist/src/handlers/brain.js.map +1 -1
- package/dist/src/handlers/cache.js +122 -9
- package/dist/src/handlers/cache.js.map +1 -1
- package/dist/src/handlers/fedbrain.d.ts +6 -0
- package/dist/src/handlers/fedbrain.js +97 -2
- package/dist/src/handlers/fedbrain.js.map +1 -1
- package/dist/src/index.js +1 -1
- package/dist/src/tools.d.ts +102 -0
- package/dist/src/tools.js +86 -0
- package/dist/src/tools.js.map +1 -1
- package/glama.json +36 -0
- package/package.json +4 -3
- package/server.json +3 -3
|
@@ -5,18 +5,26 @@ import { join, relative, extname } from 'node:path';
|
|
|
5
5
|
import { computeEmbedding, hasEmbedProvider, embedProviderHint } from '../embeddings.js';
|
|
6
6
|
import { detectNamespace } from '../namespace.js';
|
|
7
7
|
import { simpleHash } from '../confidence.js';
|
|
8
|
+
import { scanKeys } from '../utils.js';
|
|
8
9
|
export const CACHE_TOOL_NAMES = new Set([
|
|
9
10
|
'cache_get', 'cache_set', 'cache_delete', 'cache_exists', 'cache_ttl', 'cache_keys',
|
|
10
11
|
'cache_stats', 'semantic_search', 'detect_namespace', 'cache_warmup', 'index_project',
|
|
11
12
|
'cache_mset', 'cache_mget', 'cache_lock_acquire', 'cache_lock_release',
|
|
12
|
-
'cache_stream_set', 'cache_stream_get',
|
|
13
|
+
'cache_stream_set', 'cache_stream_get', 'cache_org_stats', 'set_cost_per_call',
|
|
13
14
|
]);
|
|
14
15
|
export async function handleCacheTool(name, args, getConnection, apiFetch) {
|
|
15
16
|
switch (name) {
|
|
16
17
|
case 'cache_get': {
|
|
17
|
-
const { instance_id, key } = args;
|
|
18
|
+
const { instance_id, key, org_id } = args;
|
|
18
19
|
const redis = await getConnection(instance_id);
|
|
19
|
-
|
|
20
|
+
let value = await redis.get(key);
|
|
21
|
+
let source = 'direct';
|
|
22
|
+
if (value === null && org_id) {
|
|
23
|
+
const orgKey = `org:${org_id}:sem:${key}`;
|
|
24
|
+
value = await redis.get(orgKey);
|
|
25
|
+
if (value !== null)
|
|
26
|
+
source = `org:${org_id}:sem`;
|
|
27
|
+
}
|
|
20
28
|
if (value === null)
|
|
21
29
|
return `Key \`${key}\` → **not found** (null)`;
|
|
22
30
|
let pretty = value;
|
|
@@ -26,17 +34,24 @@ export async function handleCacheTool(name, args, getConnection, apiFetch) {
|
|
|
26
34
|
catch {
|
|
27
35
|
// not JSON — return raw
|
|
28
36
|
}
|
|
29
|
-
|
|
37
|
+
const sourceNote = source !== 'direct' ? ` _(from shared org namespace \`${source}\`)_` : '';
|
|
38
|
+
return `Key \`${key}\`:${sourceNote}\n\`\`\`\n${pretty}\n\`\`\``;
|
|
30
39
|
}
|
|
31
40
|
case 'cache_set': {
|
|
32
|
-
const { instance_id, key, value, ttl } = args;
|
|
41
|
+
const { instance_id, key, value, ttl, org_id } = args;
|
|
33
42
|
const redis = await getConnection(instance_id);
|
|
34
43
|
if (ttl && ttl > 0) {
|
|
35
44
|
await redis.set(key, value, 'EX', ttl);
|
|
36
|
-
|
|
45
|
+
if (org_id) {
|
|
46
|
+
await redis.set(`org:${org_id}:sem:${key}`, value, 'EX', ttl);
|
|
47
|
+
}
|
|
48
|
+
return `✅ Set \`${key}\` (TTL: ${ttl}s)${org_id ? ` + shared to \`org:${org_id}:sem\`` : ''}`;
|
|
37
49
|
}
|
|
38
50
|
await redis.set(key, value);
|
|
39
|
-
|
|
51
|
+
if (org_id) {
|
|
52
|
+
await redis.set(`org:${org_id}:sem:${key}`, value);
|
|
53
|
+
}
|
|
54
|
+
return `✅ Set \`${key}\` (no expiry)${org_id ? ` + shared to \`org:${org_id}:sem\`` : ''}`;
|
|
40
55
|
}
|
|
41
56
|
case 'cache_delete': {
|
|
42
57
|
const { instance_id, keys } = args;
|
|
@@ -113,7 +128,7 @@ export async function handleCacheTool(name, args, getConnection, apiFetch) {
|
|
|
113
128
|
.split('\n')
|
|
114
129
|
.filter((l) => l.startsWith('db'))
|
|
115
130
|
.map((l) => ` ${l.trim()}`);
|
|
116
|
-
|
|
131
|
+
const lines = [
|
|
117
132
|
`📊 **Cache Stats for instance \`${instance_id}\`:**`,
|
|
118
133
|
``,
|
|
119
134
|
` 💾 Memory used: ${usedMem} (peak: ${peakMem})`,
|
|
@@ -124,7 +139,46 @@ export async function handleCacheTool(name, args, getConnection, apiFetch) {
|
|
|
124
139
|
keyspaceLines.length > 0
|
|
125
140
|
? ` 🗂️ Keyspace:\n${keyspaceLines.join('\n')}`
|
|
126
141
|
: ` 🗂️ Keyspace: (empty)`,
|
|
127
|
-
]
|
|
142
|
+
];
|
|
143
|
+
try {
|
|
144
|
+
const inst = await apiFetch(`/api/v1/instances/${instance_id}`);
|
|
145
|
+
if (inst.vector_token) {
|
|
146
|
+
const vectorBase = process.env.CACHLY_VECTOR_URL ?? 'https://api.cachly.dev';
|
|
147
|
+
const statsRes = await fetch(`${vectorBase}/v1/sem/${inst.vector_token}/stats`, {
|
|
148
|
+
signal: AbortSignal.timeout(5000),
|
|
149
|
+
});
|
|
150
|
+
if (statsRes.ok) {
|
|
151
|
+
const data = await statsRes.json();
|
|
152
|
+
const fmt = (n, decimals = 2) => n !== undefined ? n.toLocaleString('en-US', { minimumFractionDigits: decimals, maximumFractionDigits: decimals }) : 'n/a';
|
|
153
|
+
const fmtInt = (n) => n !== undefined ? n.toLocaleString('en-US') : 'n/a';
|
|
154
|
+
const totalHits = data.total_hits ?? 0;
|
|
155
|
+
const totalEntries = data.total_entries ?? 0;
|
|
156
|
+
if (totalHits === 0 && totalEntries === 0) {
|
|
157
|
+
const proj = (devs) => (devs * 50 * 0.25 * 0.002 * 30).toFixed(2);
|
|
158
|
+
lines.push(``, `💰 **Tokenmaxxing ROI — Projection:**`, ` 📭 No cache hits yet — you're just getting started.`, ``, ` 📊 Typical savings for your team size:`, ` 5 devs × 50 LLM calls/day × 25% hit-rate → ~$${proj(5)}/month`, ` 10 devs × 50 LLM calls/day × 25% hit-rate → ~$${proj(10)}/month`, ` 20 devs × 50 LLM calls/day × 25% hit-rate → ~$${proj(20)}/month`, ` (Assumes avg $0.002/call saved per cache hit)`, ``, ` 🚀 Next: route LLM calls through cachly to start accumulating hits.`, ` Docs: https://cachly.dev/docs/semantic`);
|
|
159
|
+
}
|
|
160
|
+
else {
|
|
161
|
+
const wow = data.savings?.week_over_week_pct;
|
|
162
|
+
const wowLine = wow !== undefined
|
|
163
|
+
? ` ${wow >= 0 ? '📈' : '📉'} 7d trend: ${wow >= 0 ? '+' : ''}${wow.toFixed(1)}% vs prev week`
|
|
164
|
+
: '';
|
|
165
|
+
lines.push(``, `💰 **Tokenmaxxing ROI:**`, ` 📦 Semantic entries: ${fmtInt(data.total_entries)}`, ` 🎯 Total cache hits: ${fmtInt(data.total_hits)}`, ` ⏱️ Hits last 24h: ${fmtInt(data.savings?.hits_last_24h)}`, ` 📅 Hits last 7d: ${fmtInt(data.savings?.hits_last_7d)}`, ...(wowLine ? [wowLine] : []), ` 💵 Total saved: $${fmt(data.savings?.estimated_total_saved_usd)}`, ` 📈 Projected/month: $${fmt(data.savings?.estimated_monthly_saved_usd)}`, ` 📊 Avg per hit: $${fmt(data.savings?.avg_cost_per_call_usd, 4)}`);
|
|
166
|
+
}
|
|
167
|
+
if (data.top_hits && data.top_hits.length > 0) {
|
|
168
|
+
lines.push(``, `🔝 Top cached prompts:`);
|
|
169
|
+
const topN = data.top_hits.slice(0, 3);
|
|
170
|
+
topN.forEach((hit, i) => {
|
|
171
|
+
const truncated = hit.prompt.length > 50 ? `${hit.prompt.slice(0, 50)}…` : hit.prompt;
|
|
172
|
+
lines.push(` ${i + 1}. "${truncated}" (hit ${hit.hit_count}×)`);
|
|
173
|
+
});
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
catch {
|
|
179
|
+
// API unavailable or free tier — skip silently
|
|
180
|
+
}
|
|
181
|
+
return lines.join('\n');
|
|
128
182
|
}
|
|
129
183
|
case 'semantic_search': {
|
|
130
184
|
const { instance_id, query, threshold = 0.82, namespace: nsArg = 'cachly:sem', top_k = 5, use_hybrid = false, auto_namespace = false, } = args;
|
|
@@ -517,6 +571,65 @@ export async function handleCacheTool(name, args, getConnection, apiFetch) {
|
|
|
517
571
|
const preview = full.slice(0, 500);
|
|
518
572
|
return `✅ **cache_stream_get** – ${len} chunk(s) retrieved for \`${key}\`.\n\n**Preview** (first 500 chars):\n\`\`\`\n${preview}${preview.length < full.length ? '…' : ''}\n\`\`\``;
|
|
519
573
|
}
|
|
574
|
+
case 'cache_org_stats': {
|
|
575
|
+
const { instance_id, org_id } = args;
|
|
576
|
+
const redis = await getConnection(instance_id);
|
|
577
|
+
const namespace = `org:${org_id}:sem`;
|
|
578
|
+
const keys = await scanKeys(redis, `${namespace}:*`, { max: 10000, timeoutMs: 5000 });
|
|
579
|
+
const entryCount = keys.length;
|
|
580
|
+
const lines = [
|
|
581
|
+
`🏢 Org Cache Stats for org \`${org_id}\`:`,
|
|
582
|
+
` 📦 Shared entries: ${entryCount}`,
|
|
583
|
+
` 🔑 Namespace: ${namespace}`,
|
|
584
|
+
` 👥 Benefit: All instances sharing this org_id serve from the same cache`,
|
|
585
|
+
``,
|
|
586
|
+
`💡 To enable sharing: set org_id="${org_id}" in cache_set calls`,
|
|
587
|
+
];
|
|
588
|
+
// Org-wide savings aggregation (API endpoint may not be deployed yet,
|
|
589
|
+
// or the caller may not be an org member — fail silently in that case).
|
|
590
|
+
try {
|
|
591
|
+
const savings = await apiFetch(`/api/v1/orgs/${org_id}/savings`);
|
|
592
|
+
const usd = (n) => `$${(n ?? 0).toFixed(2)}`;
|
|
593
|
+
lines.push(``, `💰 Org-wide Tokenmaxxing ROI:`, ` 🖥️ Instances: ${savings.instance_count}`, ` 🎯 Total cache hits: ${savings.total_hits.toLocaleString('en-US')}`, ` ⏱️ Hits last 24h: ${savings.hits_last_24h.toLocaleString('en-US')}`, ` 💵 Total saved: ${usd(savings.estimated_total_saved_usd)}`, ` 📈 Projected/month: ${usd(savings.estimated_monthly_saved_usd)}`);
|
|
594
|
+
const top = [...(savings.per_instance ?? [])]
|
|
595
|
+
.sort((a, b) => b.estimated_total_saved_usd - a.estimated_total_saved_usd)
|
|
596
|
+
.slice(0, 5);
|
|
597
|
+
if (top.length > 0) {
|
|
598
|
+
lines.push(``, ` Top instances by savings:`);
|
|
599
|
+
for (const inst of top) {
|
|
600
|
+
lines.push(` • ${inst.name || inst.instance_id}: ${usd(inst.estimated_total_saved_usd)} (${inst.total_hits.toLocaleString('en-US')} hits)`);
|
|
601
|
+
}
|
|
602
|
+
}
|
|
603
|
+
}
|
|
604
|
+
catch {
|
|
605
|
+
// Endpoint unavailable / not a member / network error → Redis-only output.
|
|
606
|
+
}
|
|
607
|
+
return lines.join('\n');
|
|
608
|
+
}
|
|
609
|
+
case 'set_cost_per_call': {
|
|
610
|
+
const { instance_id, cost_per_call_usd } = args;
|
|
611
|
+
if (!cost_per_call_usd || cost_per_call_usd <= 0 || cost_per_call_usd > 100) {
|
|
612
|
+
throw new McpError(ErrorCode.InvalidParams, 'cost_per_call_usd must be a positive number ≤ 100');
|
|
613
|
+
}
|
|
614
|
+
await apiFetch(`/api/v1/instances/${instance_id}/cost-per-call`, {
|
|
615
|
+
method: 'PUT',
|
|
616
|
+
body: JSON.stringify({ cost_per_call_usd }),
|
|
617
|
+
});
|
|
618
|
+
const examples = {
|
|
619
|
+
'0.02': 'claude-opus-4.8',
|
|
620
|
+
'0.015': 'gpt-5.5',
|
|
621
|
+
'0.009': 'claude-sonnet-4.6',
|
|
622
|
+
'0.002': 'gpt-5.5-mini',
|
|
623
|
+
'0.001': 'claude-haiku-4.5',
|
|
624
|
+
};
|
|
625
|
+
const modelHint = examples[cost_per_call_usd.toString()] ? ` (${examples[cost_per_call_usd.toString()]})` : '';
|
|
626
|
+
return [
|
|
627
|
+
`✅ **Cost per call updated** — $${cost_per_call_usd.toFixed(4)}${modelHint}`,
|
|
628
|
+
``,
|
|
629
|
+
`ROI savings in \`cache_stats\` will now use $${cost_per_call_usd.toFixed(4)} per avoided LLM call.`,
|
|
630
|
+
`Run \`cache_stats\` to see your updated savings estimate.`,
|
|
631
|
+
].join('\n');
|
|
632
|
+
}
|
|
520
633
|
default:
|
|
521
634
|
return null;
|
|
522
635
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cache.js","sourceRoot":"","sources":["../../../src/handlers/cache.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cache.js","sourceRoot":"","sources":["../../../src/handlers/cache.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,6 +5,12 @@ export declare let _lastBrainFromGitCounts: {
|
|
|
5
5
|
refactors: number;
|
|
6
6
|
total: number;
|
|
7
7
|
} | null;
|
|
8
|
+
export declare let _lastBrainFromCiCounts: {
|
|
9
|
+
fixes: number;
|
|
10
|
+
breaks: number;
|
|
11
|
+
stable: number;
|
|
12
|
+
total: number;
|
|
13
|
+
} | null;
|
|
8
14
|
type GetConnection = (instanceId: string) => Promise<Redis>;
|
|
9
15
|
type ApiFetch = <T>(path: string, options?: RequestInit) => Promise<T>;
|
|
10
16
|
export declare const FEDBRAIN_TOOL_NAMES: Set<string>;
|
|
@@ -2,8 +2,11 @@ import { createHmac } from 'node:crypto';
|
|
|
2
2
|
import { ckgSlug, extractProblemConcept, ckgUpsertNode, ckgUpdateEdge, ckgUpsertPersonNode, ckgUpsertFileNode, ckgRecordCollaboration } from '../ckg.js';
|
|
3
3
|
import { safeJsonParse, normalizeGitPath } from '../utils.js';
|
|
4
4
|
import { buildClsPostCommitHook } from '../cls-hook.js';
|
|
5
|
+
import { installBrainWatchHook } from '../brain-watch-hook.js';
|
|
5
6
|
// Last brain_from_git category counts — set after each run so index.ts can include them in telemetry
|
|
6
7
|
export let _lastBrainFromGitCounts = null;
|
|
8
|
+
// Last brain_from_ci counts — set after each run so index.ts can include them in telemetry
|
|
9
|
+
export let _lastBrainFromCiCounts = null;
|
|
7
10
|
// Git concurrency semaphore (for brain_from_git parallel workers)
|
|
8
11
|
let _gitSemCount = 0;
|
|
9
12
|
const _GIT_SEM_MAX = 10;
|
|
@@ -27,8 +30,8 @@ function _gitSemRelease() {
|
|
|
27
30
|
export const FEDBRAIN_TOOL_NAMES = new Set([
|
|
28
31
|
'madc_deliberate', 'cls_ingest', 'cls_install_hooks', 'fedbrain_contribute', 'fedbrain_search',
|
|
29
32
|
'fedbrain_confirm', 'fedbrain_status', 'brain_federate', 'crystal_view', 'compact_recover',
|
|
30
|
-
'brain_from_git', 'brain_predict_failures',
|
|
31
|
-
'brain_contribute_signal', 'brain_import_meta',
|
|
33
|
+
'brain_from_git', 'brain_from_ci', 'brain_predict_failures',
|
|
34
|
+
'brain_contribute_signal', 'brain_import_meta', 'brain_watch',
|
|
32
35
|
]);
|
|
33
36
|
export async function handleFedbrainTool(name, args, getConnection, apiFetch) {
|
|
34
37
|
switch (name) {
|
|
@@ -1035,6 +1038,66 @@ export async function handleFedbrainTool(name, args, getConnection, apiFetch) {
|
|
|
1035
1038
|
_gitSemRelease();
|
|
1036
1039
|
}
|
|
1037
1040
|
}
|
|
1041
|
+
// ── brain_from_ci ─────────────────────────────────────────────────────────
|
|
1042
|
+
case 'brain_from_ci': {
|
|
1043
|
+
const { instance_id, outcomes } = args;
|
|
1044
|
+
const redis = await getConnection(instance_id);
|
|
1045
|
+
const ts = Date.now();
|
|
1046
|
+
let fixes = 0;
|
|
1047
|
+
let breaks = 0;
|
|
1048
|
+
let stable = 0;
|
|
1049
|
+
const total = outcomes.length;
|
|
1050
|
+
for (const entry of outcomes) {
|
|
1051
|
+
const status = String(entry.status ?? '');
|
|
1052
|
+
const prev_status = String(entry.prev_status ?? '');
|
|
1053
|
+
const job = String(entry.job ?? 'unknown');
|
|
1054
|
+
const ciCtx = String(entry.context ?? '');
|
|
1055
|
+
const isFixed = ['failure', 'red', 'error'].includes(prev_status) && ['success', 'green', 'passed'].includes(status);
|
|
1056
|
+
const isBroken = ['success', 'green', 'passed'].includes(prev_status) && ['failure', 'red', 'error'].includes(status);
|
|
1057
|
+
const slug = `ci:${ckgSlug(job)}`;
|
|
1058
|
+
const conceptId = ckgSlug(slug);
|
|
1059
|
+
await ckgUpsertNode(redis, conceptId, 'ci', 'job');
|
|
1060
|
+
if (isFixed) {
|
|
1061
|
+
const problemId = ckgSlug(`problem:${ckgSlug(job)}`);
|
|
1062
|
+
await ckgUpsertNode(redis, problemId, 'problem', 'ci-failure');
|
|
1063
|
+
await ckgUpdateEdge(redis, conceptId, 'fixes', problemId, true);
|
|
1064
|
+
const lessonObj = {
|
|
1065
|
+
topic: slug, outcome: 'success',
|
|
1066
|
+
what_worked: `CI job "${job}" went ${prev_status} → ${status}`,
|
|
1067
|
+
what_failed: `Job "${job}" was failing`, context: `brain_from_ci: ${ciCtx}`,
|
|
1068
|
+
severity: 'major', file_paths: [], commands: [], tags: ['brain_from_ci', 'ci'],
|
|
1069
|
+
depends_on: [], recall_count: 0, ts, verified_at: ts, confidence: 0.65,
|
|
1070
|
+
audit_trail: [{ ts, action: 'brain_from_ci_fixed' }], version: 3,
|
|
1071
|
+
};
|
|
1072
|
+
await redis.rpush(`cachly:lessons:${slug}`, JSON.stringify(lessonObj));
|
|
1073
|
+
await redis.ltrim(`cachly:lessons:${slug}`, -100, -1);
|
|
1074
|
+
await redis.set(`cachly:lesson:best:${slug}`, JSON.stringify(lessonObj));
|
|
1075
|
+
fixes++;
|
|
1076
|
+
}
|
|
1077
|
+
else if (isBroken) {
|
|
1078
|
+
const causeId = ckgSlug(`cause:${ckgSlug(job)}`);
|
|
1079
|
+
await ckgUpsertNode(redis, causeId, 'cause', 'ci-break');
|
|
1080
|
+
await ckgUpdateEdge(redis, conceptId, 'causes', causeId, false);
|
|
1081
|
+
breaks++;
|
|
1082
|
+
}
|
|
1083
|
+
else {
|
|
1084
|
+
stable++;
|
|
1085
|
+
}
|
|
1086
|
+
const clsKey = `cachly:cls:${instance_id}`;
|
|
1087
|
+
await redis.rpush(clsKey, JSON.stringify({ source: 'ci_outcome', payload: { status, prev_status, job }, ts }));
|
|
1088
|
+
await redis.ltrim(clsKey, -200, -1);
|
|
1089
|
+
}
|
|
1090
|
+
_lastBrainFromCiCounts = { fixes, breaks, stable, total };
|
|
1091
|
+
return [
|
|
1092
|
+
`📥 **brain_from_ci**: Ingested ${total} outcomes — ${fixes} fixes learned, ${breaks} breaks noted, ${stable} stable`,
|
|
1093
|
+
'',
|
|
1094
|
+
fixes > 0 ? `✅ ${fixes} fix lesson${fixes !== 1 ? 's' : ''} written (confidence 0.65) — CKG \`fixes\` edges added` : '',
|
|
1095
|
+
breaks > 0 ? `🔴 ${breaks} break${breaks !== 1 ? 's' : ''} noted — CKG \`causes\` edges added` : '',
|
|
1096
|
+
stable > 0 ? `📊 ${stable} stable outcome${stable !== 1 ? 's' : ''} recorded` : '',
|
|
1097
|
+
'',
|
|
1098
|
+
`💡 Explore: \`brain_search(query="ci")\` | \`brain_predict(context="<job-name>")\``,
|
|
1099
|
+
].filter(Boolean).join('\n');
|
|
1100
|
+
}
|
|
1038
1101
|
// ── brain_predict_failures ─────────────────────────────────────────────────
|
|
1039
1102
|
case 'brain_predict_failures': {
|
|
1040
1103
|
const { instance_id, context: ctx, top_k = 5, format = 'detailed' } = args;
|
|
@@ -1271,6 +1334,38 @@ export async function handleFedbrainTool(name, args, getConnection, apiFetch) {
|
|
|
1271
1334
|
}
|
|
1272
1335
|
return lines.join('\n');
|
|
1273
1336
|
}
|
|
1337
|
+
// ── brain_watch ───────────────────────────────────────────────────────────
|
|
1338
|
+
case 'brain_watch': {
|
|
1339
|
+
const { instance_id = '', project_dir = '.', api_key } = args;
|
|
1340
|
+
const { resolve } = await import('node:path');
|
|
1341
|
+
const projectDir = resolve(project_dir);
|
|
1342
|
+
const { result, hookPath } = await installBrainWatchHook(projectDir, instance_id, api_key);
|
|
1343
|
+
if (result === 'skipped-no-git') {
|
|
1344
|
+
return [
|
|
1345
|
+
`⚠️ **brain_watch: no git repository found**`,
|
|
1346
|
+
'',
|
|
1347
|
+
`No \`.git\` directory in \`${projectDir}\`.`,
|
|
1348
|
+
`Pass \`project_dir\` pointing to a git checkout.`,
|
|
1349
|
+
].join('\n');
|
|
1350
|
+
}
|
|
1351
|
+
const statusLine = {
|
|
1352
|
+
written: '✅ Hook installed (new)',
|
|
1353
|
+
upgraded: '🔄 Hook upgraded to latest version',
|
|
1354
|
+
appended: '📎 Hook appended to existing post-commit script',
|
|
1355
|
+
unchanged: '✓ Hook already up to date — nothing changed',
|
|
1356
|
+
};
|
|
1357
|
+
return [
|
|
1358
|
+
`🧠 **brain_watch ${statusLine[result] ?? result}**`,
|
|
1359
|
+
'',
|
|
1360
|
+
`Hook path: \`${hookPath}\``,
|
|
1361
|
+
`Instance: \`${instance_id || '(none — set CACHLY_BRAIN_INSTANCE_ID or pass instance_id)'}\``,
|
|
1362
|
+
'',
|
|
1363
|
+
`Every future commit will automatically teach your Brain.`,
|
|
1364
|
+
`No manual \`brain_from_git\` needed — the hook runs silently in the background.`,
|
|
1365
|
+
'',
|
|
1366
|
+
`💡 Verify: \`git commit --allow-empty -m "test brain_watch"\` then \`smart_recall(query="test")\``,
|
|
1367
|
+
].join('\n');
|
|
1368
|
+
}
|
|
1274
1369
|
default:
|
|
1275
1370
|
return null;
|
|
1276
1371
|
}
|