@cachly-dev/mcp-server 0.10.95 โ 0.10.97
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 +6 -3
- package/dist/src/handlers/brain.js +17 -2
- package/dist/src/handlers/brain.js.map +1 -1
- package/dist/src/handlers/fedbrain.js +14 -1
- package/dist/src/handlers/fedbrain.js.map +1 -1
- package/dist/src/handlers/team.d.ts +11 -0
- package/dist/src/handlers/team.js +225 -6
- package/dist/src/handlers/team.js.map +1 -1
- package/dist/src/index.js +3 -3
- package/dist/src/tools.d.ts +42 -0
- package/dist/src/tools.js +36 -0
- package/dist/src/tools.js.map +1 -1
- package/dist/src/toolspecs.d.ts +1 -1
- package/dist/src/toolspecs.js +1 -1
- package/package.json +2 -2
- package/server.json +3 -3
|
@@ -722,7 +722,20 @@ export async function handleFedbrainTool(name, args, getConnection, apiFetch) {
|
|
|
722
722
|
if (show_raw) {
|
|
723
723
|
lines.push('', '```json', JSON.stringify(crystal, null, 2), '```');
|
|
724
724
|
}
|
|
725
|
-
|
|
725
|
+
// Team Crystal (W8): the cross-person, causal layer โ shown alongside the
|
|
726
|
+
// per-brain crystal when team_crystallize has been run.
|
|
727
|
+
const teamRaw = await redis.get('cachly:crystal:team:latest').catch(() => null);
|
|
728
|
+
if (teamRaw) {
|
|
729
|
+
const tc = safeJsonParse(teamRaw, null);
|
|
730
|
+
if (tc && tc.patterns?.length) {
|
|
731
|
+
const tcAge = Math.floor((Date.now() - new Date(tc.ts).getTime()) / 86400000);
|
|
732
|
+
lines.push('', `---`, `๐ **Team Crystal: ${tc.label}** _(${tcAge}d ago ยท ${tc.contributors} contributors)_`, `_Fixes multiple teammates independently converged on โ the team-wide layer:_`);
|
|
733
|
+
for (const p of tc.patterns.slice(0, 5)) {
|
|
734
|
+
lines.push(` โข ๐งฉ **${p.concept}** โ ${p.author_count} people (${p.authors.map(a => `@${a}`).join(', ')}): ${p.convergent_fix.slice(0, 90)}`);
|
|
735
|
+
}
|
|
736
|
+
}
|
|
737
|
+
}
|
|
738
|
+
lines.push('', `๐ก Refresh: \`memory_crystalize()\` ยท \`team_crystallize()\` | Recover: \`compact_recover(instance_id="...")\``);
|
|
726
739
|
return lines.join('\n');
|
|
727
740
|
}
|
|
728
741
|
// โโ compact_recover โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fedbrain.js","sourceRoot":"","sources":["../../../src/handlers/fedbrain.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"fedbrain.js","sourceRoot":"","sources":["../../../src/handlers/fedbrain.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,6 +10,17 @@ export declare function getRole(redis: import('ioredis').Redis, instanceId: stri
|
|
|
10
10
|
export declare function hasPermission(actorRole: TeamRole | null, required: TeamRole): boolean;
|
|
11
11
|
/** The review level a role warrants in team_confirm. */
|
|
12
12
|
export declare function roleToReviewLevel(role: TeamRole | null): 'senior' | 'peer';
|
|
13
|
+
/** True once at least one admin exists โ i.e. governance has been turned on. */
|
|
14
|
+
export declare function rbacActive(redis: import('ioredis').Redis, instanceId: string): Promise<boolean>;
|
|
15
|
+
/**
|
|
16
|
+
* Enforce that `handle` holds at least `required` โ but only when governance is
|
|
17
|
+
* active. Returns null when the action is permitted, or a clear refusal message
|
|
18
|
+
* (never throws โ a denied write must not break the agent call). `action` is a
|
|
19
|
+
* short human phrase, e.g. "store team lessons".
|
|
20
|
+
*/
|
|
21
|
+
export declare function requireRole(redis: import('ioredis').Redis, instanceId: string, handle: string, required: TeamRole, action: string): Promise<string | null>;
|
|
22
|
+
/** Append an immutable governance-audit entry (role changes, gated actions). */
|
|
23
|
+
export declare function auditLog(redis: import('ioredis').Redis, instanceId: string, entry: Record<string, unknown>): Promise<void>;
|
|
13
24
|
export declare const GROUPS_INDEX_KEY: (instanceId: string) => string;
|
|
14
25
|
export declare const GROUP_KEY: (instanceId: string, group: string) => string;
|
|
15
26
|
/** Return the set of group names `handle` belongs to (lower-cased). */
|
|
@@ -3,11 +3,11 @@ import { join } from 'node:path';
|
|
|
3
3
|
import { calculateConfidence, CONFIDENCE_STALE_VALUE, CONFIDENCE_WARN_VALUE, CONFIDENCE_WARN_DAYS, CONFIDENCE_STALE_DAYS } from '../confidence.js';
|
|
4
4
|
import { safeJsonParse } from '../utils.js';
|
|
5
5
|
export const TEAM_TOOL_NAMES = new Set([
|
|
6
|
-
'sync_file_changes', 'team_learn', 'team_confirm', 'team_recall', 'team_synthesize', 'memory_crystalize',
|
|
6
|
+
'sync_file_changes', 'team_learn', 'team_confirm', 'team_recall', 'team_synthesize', 'memory_crystalize', 'team_crystallize',
|
|
7
7
|
'brain_doctor', 'recall_at', 'trace_dependency', 'global_learn', 'global_recall',
|
|
8
8
|
'publish_lesson', 'import_public_brain', 'setup_ai_memory',
|
|
9
9
|
'team_assign_role', 'team_whoami', 'team_roster',
|
|
10
|
-
'team_grant_scope', 'team_scopes',
|
|
10
|
+
'team_grant_scope', 'team_scopes', 'team_audit',
|
|
11
11
|
]);
|
|
12
12
|
const ROLE_RANK = {
|
|
13
13
|
admin: 4, reviewer: 3, contributor: 2, viewer: 1,
|
|
@@ -36,6 +36,45 @@ export function hasPermission(actorRole, required) {
|
|
|
36
36
|
export function roleToReviewLevel(role) {
|
|
37
37
|
return role === 'admin' || role === 'reviewer' ? 'senior' : 'peer';
|
|
38
38
|
}
|
|
39
|
+
// โโ RBAC enforcement (W6) โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
|
40
|
+
// Governance "activates" once an admin is bootstrapped on a brain (the same
|
|
41
|
+
// signal team_assign_role uses). Before that, the team is open and every tool
|
|
42
|
+
// behaves exactly as before โ so existing single-user and small-team flows are
|
|
43
|
+
// untouched. Once an admin exists, write/review tools enforce role minimums.
|
|
44
|
+
/** True once at least one admin exists โ i.e. governance has been turned on. */
|
|
45
|
+
export async function rbacActive(redis, instanceId) {
|
|
46
|
+
const allRoles = await redis.hgetall(ROLES_KEY(instanceId)).catch(() => ({}));
|
|
47
|
+
return Object.values(allRoles).includes('admin');
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Enforce that `handle` holds at least `required` โ but only when governance is
|
|
51
|
+
* active. Returns null when the action is permitted, or a clear refusal message
|
|
52
|
+
* (never throws โ a denied write must not break the agent call). `action` is a
|
|
53
|
+
* short human phrase, e.g. "store team lessons".
|
|
54
|
+
*/
|
|
55
|
+
export async function requireRole(redis, instanceId, handle, required, action) {
|
|
56
|
+
if (!(await rbacActive(redis, instanceId)))
|
|
57
|
+
return null; // open team โ allow
|
|
58
|
+
const role = handle ? await getRole(redis, instanceId, handle) : null;
|
|
59
|
+
if (hasPermission(role, required))
|
|
60
|
+
return null;
|
|
61
|
+
const have = role ? `${ROLE_BADGE[role]} ${role}` : 'no role';
|
|
62
|
+
return [
|
|
63
|
+
`๐ **Permission denied** โ to ${action} you need at least \`${required}\` ${ROLE_BADGE[required]} (you have: ${have}).`,
|
|
64
|
+
``,
|
|
65
|
+
`Ask an admin to grant it:`,
|
|
66
|
+
`\`team_assign_role(instance_id="${instanceId}", handle="${handle || '<your-handle>'}", role="${required}", assigned_by="<admin>")\``,
|
|
67
|
+
`_Governance is active on this brain. Run \`team_whoami\` to check your role._`,
|
|
68
|
+
].join('\n');
|
|
69
|
+
}
|
|
70
|
+
/** Append an immutable governance-audit entry (role changes, gated actions). */
|
|
71
|
+
export async function auditLog(redis, instanceId, entry) {
|
|
72
|
+
const key = `cachly:team:audit:${instanceId}`;
|
|
73
|
+
const rec = JSON.stringify({ ...entry, ts: new Date().toISOString() });
|
|
74
|
+
await redis.rpush(key, rec).catch(() => { });
|
|
75
|
+
await redis.ltrim(key, -500, -1).catch(() => { });
|
|
76
|
+
await redis.expire(key, 365 * 2 * 86400).catch(() => { }); // 2-year retention
|
|
77
|
+
}
|
|
39
78
|
// โโ Team-level visibility scopes (groups) โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
|
40
79
|
// A named sub-team (e.g. "backend", "security"). Lessons can be scoped to a group
|
|
41
80
|
// via `group` on learn_from_attempts; they then only surface in recall for members
|
|
@@ -134,6 +173,12 @@ export async function handleTeamTool(name, args, getConnection, apiFetch) {
|
|
|
134
173
|
const iid = instance_id;
|
|
135
174
|
if (!iid)
|
|
136
175
|
return 'โ instance_id required';
|
|
176
|
+
// W6 enforcement: once governance is active, a viewer (recall-only) cannot
|
|
177
|
+
// store team lessons โ contributor+ required. Open teams are unaffected.
|
|
178
|
+
const redisTL = await getConnection(iid);
|
|
179
|
+
const learnDenied = await requireRole(redisTL, iid, author, 'contributor', 'store team lessons');
|
|
180
|
+
if (learnDenied)
|
|
181
|
+
return learnDenied;
|
|
137
182
|
// Store with author attribution via the same learn_from_attempts Redis structure
|
|
138
183
|
const lesson = {
|
|
139
184
|
topic, outcome, what_worked,
|
|
@@ -147,11 +192,10 @@ export async function handleTeamTool(name, args, getConnection, apiFetch) {
|
|
|
147
192
|
recall_count: 0,
|
|
148
193
|
version: 2,
|
|
149
194
|
};
|
|
150
|
-
const redis = await getConnection(iid);
|
|
151
195
|
const key = `cachly:lessons:${topic}`;
|
|
152
|
-
await
|
|
196
|
+
await redisTL.rpush(key, JSON.stringify(lesson));
|
|
153
197
|
if (outcome === 'success') {
|
|
154
|
-
await
|
|
198
|
+
await redisTL.set(`cachly:lesson:best:${topic}`, JSON.stringify(lesson));
|
|
155
199
|
}
|
|
156
200
|
return `โ
Team lesson stored by **${author}**: \`${topic}\` (${outcome})\n๐ก ${what_worked.slice(0, 120)}`;
|
|
157
201
|
}
|
|
@@ -165,11 +209,17 @@ export async function handleTeamTool(name, args, getConnection, apiFetch) {
|
|
|
165
209
|
return 'โ instance_id required';
|
|
166
210
|
if (!topic || !reviewer)
|
|
167
211
|
return 'โ Required: topic, reviewer';
|
|
212
|
+
const redis = await getConnection(instance_id);
|
|
213
|
+
// W6 enforcement: once governance is active, only reviewer+ may confirm
|
|
214
|
+
// lessons (vision: "nur reviewer dรผrfen team_confirm"). Open teams are
|
|
215
|
+
// unaffected. A denied confirm returns guidance, never throws.
|
|
216
|
+
const confirmDenied = await requireRole(redis, instance_id, reviewer, 'reviewer', 'confirm team lessons');
|
|
217
|
+
if (confirmDenied)
|
|
218
|
+
return confirmDenied;
|
|
168
219
|
// Role-aware review level: if the reviewer has an assigned role, that determines
|
|
169
220
|
// weight (admin/reviewer โ senior, contributor โ peer). The caller can still
|
|
170
221
|
// pass `level` explicitly to override (e.g. a guest reviewer without a role).
|
|
171
222
|
// This prevents self-promotion โ you can't claim senior by just passing level="senior".
|
|
172
|
-
const redis = await getConnection(instance_id);
|
|
173
223
|
const assignedRole = await getRole(redis, instance_id, reviewer);
|
|
174
224
|
const autoLevel = roleToReviewLevel(assignedRole);
|
|
175
225
|
// If the caller explicitly asked for 'peer' on a senior-role reviewer,
|
|
@@ -210,6 +260,11 @@ export async function handleTeamTool(name, args, getConnection, apiFetch) {
|
|
|
210
260
|
await redis.rpush(logKey, JSON.stringify(reviewLog));
|
|
211
261
|
await redis.ltrim(logKey, -50, -1);
|
|
212
262
|
await redis.expire(logKey, 365 * 86400);
|
|
263
|
+
// Governance audit trail (W6): every confirm is recorded brain-wide so an
|
|
264
|
+
// admin can answer "who endorsed what, and when" for compliance.
|
|
265
|
+
await auditLog(redis, instance_id, {
|
|
266
|
+
action: 'team_confirm', actor: reviewer, topic, level: effectiveLevel,
|
|
267
|
+
});
|
|
213
268
|
const badge = effectiveLevel === 'senior' ? '๐ก๏ธ senior-reviewed' : 'โ๏ธ peer-reviewed';
|
|
214
269
|
const alreadyNote = isNewEndorser ? '' : ` (already endorsed by ${reviewer} โ no change to rank)`;
|
|
215
270
|
return `${badge} โ \`${topic}\` confirmed by **${reviewer}**${roleNote} (${endorsements} distinct endorsement${endorsements === 1 ? '' : 's'})${alreadyNote}.\n๐ This lesson now ranks higher in \`smart_recall\` / \`team_recall\`.${note ? `\n๐ ${note.slice(0, 200)}` : ''}`;
|
|
@@ -406,6 +461,118 @@ export async function handleTeamTool(name, args, getConnection, apiFetch) {
|
|
|
406
461
|
];
|
|
407
462
|
return lines.join('\n');
|
|
408
463
|
}
|
|
464
|
+
// โโ team_crystallize (W8) โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
|
465
|
+
// The team-wide, causal counter to per-user "Dreaming". Where memory_crystalize
|
|
466
|
+
// compresses ONE brain by category, team_crystallize surfaces what a single-user
|
|
467
|
+
// background process structurally cannot: which fixes solved structurally
|
|
468
|
+
// SIMILAR problems across MULTIPLE people. A pattern only crystallizes when โฅ2
|
|
469
|
+
// distinct authors converged on it โ that cross-person signal is the moat.
|
|
470
|
+
case 'team_crystallize': {
|
|
471
|
+
const { instance_id, min_authors = 2, label: tcLabel = '' } = args;
|
|
472
|
+
const redis = await getConnection(instance_id);
|
|
473
|
+
const now = new Date();
|
|
474
|
+
const minAuthors = Math.max(2, Number(min_authors) || 2);
|
|
475
|
+
// Load every best-lesson with its author + tags (the cross-person signal).
|
|
476
|
+
const keys = [];
|
|
477
|
+
const stream = redis.scanStream({ match: 'cachly:lesson:best:*', count: 200 });
|
|
478
|
+
await new Promise((res, rej) => {
|
|
479
|
+
stream.on('data', (b) => keys.push(...b));
|
|
480
|
+
stream.on('end', res);
|
|
481
|
+
stream.on('error', rej);
|
|
482
|
+
});
|
|
483
|
+
const lessons = [];
|
|
484
|
+
if (keys.length > 0) {
|
|
485
|
+
const raws = await redis.mget(...keys);
|
|
486
|
+
for (const raw of raws) {
|
|
487
|
+
const l = safeJsonParse(raw ?? null, null);
|
|
488
|
+
if (l && l.outcome === 'success' && l.author)
|
|
489
|
+
lessons.push(l);
|
|
490
|
+
}
|
|
491
|
+
}
|
|
492
|
+
// Derive a structural "concept key" for each lesson: the topic namespace plus
|
|
493
|
+
// its most significant problem token, so "db:pool-exhaustion" and
|
|
494
|
+
// "payments:connection-pool" can converge via the shared "pool" concept.
|
|
495
|
+
const STOP = new Set(['the', 'and', 'for', 'with', 'from', 'that', 'this', 'fix', 'bug', 'error', 'issue', 'use', 'via', 'add', 'set', 'team']);
|
|
496
|
+
const conceptOf = (l) => {
|
|
497
|
+
const [ns, ...rest] = l.topic.split(':');
|
|
498
|
+
// Tags are deliberate concept markers โ two people who both tag a lesson
|
|
499
|
+
// "pool" intend the same concept even when their topics differ. Prefer a
|
|
500
|
+
// shared, intentional tag over a topic-derived token. Alphabetically-first
|
|
501
|
+
// significant tag keeps the choice deterministic across authors.
|
|
502
|
+
const sigTags = (l.tags ?? [])
|
|
503
|
+
.map(t => t.toLowerCase().trim())
|
|
504
|
+
.filter(t => t.length > 3 && !STOP.has(t))
|
|
505
|
+
.sort();
|
|
506
|
+
if (sigTags.length > 0)
|
|
507
|
+
return sigTags[0];
|
|
508
|
+
// No usable tag โ fall back to the longest topic-tail token.
|
|
509
|
+
const tail = rest.join('-').toLowerCase();
|
|
510
|
+
const tokens = tail.replace(/[^a-z0-9\s-]/g, ' ').split(/[\s-]+/)
|
|
511
|
+
.filter(t => t.length > 3 && !STOP.has(t));
|
|
512
|
+
return tokens.sort((a, b) => b.length - a.length || a.localeCompare(b))[0] ?? ns;
|
|
513
|
+
};
|
|
514
|
+
const clusters = new Map();
|
|
515
|
+
for (const l of lessons) {
|
|
516
|
+
const concept = conceptOf(l);
|
|
517
|
+
let c = clusters.get(concept);
|
|
518
|
+
if (!c) {
|
|
519
|
+
c = { concept, authors: new Set(), lessons: [], namespaces: new Set(), bestFix: l };
|
|
520
|
+
clusters.set(concept, c);
|
|
521
|
+
}
|
|
522
|
+
c.authors.add(l.author.toLowerCase());
|
|
523
|
+
c.lessons.push(l);
|
|
524
|
+
c.namespaces.add(l.topic.split(':')[0] || 'misc');
|
|
525
|
+
// Best fix = highest community trust (endorsements > confirm_count), senior-reviewed wins ties.
|
|
526
|
+
const score = (x) => (x.endorsements ?? 0) * 10 + (x.confirm_count ?? 0) + (x.review_level === 'senior' ? 5 : 0);
|
|
527
|
+
if (score(l) > score(c.bestFix))
|
|
528
|
+
c.bestFix = l;
|
|
529
|
+
}
|
|
530
|
+
// A pattern crystallizes only when enough DISTINCT people converged on it.
|
|
531
|
+
const crossPerson = [...clusters.values()]
|
|
532
|
+
.filter(c => c.authors.size >= minAuthors)
|
|
533
|
+
.sort((a, b) => (b.authors.size - a.authors.size) || (b.lessons.length - a.lessons.length));
|
|
534
|
+
const patterns = crossPerson.slice(0, 10).map(c => ({
|
|
535
|
+
concept: c.concept,
|
|
536
|
+
author_count: c.authors.size,
|
|
537
|
+
authors: [...c.authors],
|
|
538
|
+
lesson_count: c.lessons.length,
|
|
539
|
+
spans: [...c.namespaces],
|
|
540
|
+
convergent_fix: c.bestFix.what_worked.slice(0, 200),
|
|
541
|
+
fix_topic: c.bestFix.topic,
|
|
542
|
+
}));
|
|
543
|
+
// Persist the team crystal alongside (not overwriting) the per-brain crystal.
|
|
544
|
+
const effectiveLabel = tcLabel || `${now.toISOString().slice(0, 7)} Team Crystal`;
|
|
545
|
+
const crystal = {
|
|
546
|
+
label: effectiveLabel, ts: now.toISOString(), kind: 'team',
|
|
547
|
+
contributors: new Set(lessons.map(l => l.author.toLowerCase())).size,
|
|
548
|
+
analysed: lessons.length, patterns,
|
|
549
|
+
};
|
|
550
|
+
await redis.set('cachly:crystal:team:latest', JSON.stringify(crystal));
|
|
551
|
+
await redis.expire('cachly:crystal:team:latest', 180 * 86400);
|
|
552
|
+
if (patterns.length === 0) {
|
|
553
|
+
return [
|
|
554
|
+
`๐ **Team Crystal โ not enough cross-person convergence yet**`,
|
|
555
|
+
``,
|
|
556
|
+
`Analysed **${lessons.length}** attributed success lessons from **${crystal.contributors}** contributor${crystal.contributors !== 1 ? 's' : ''}, but no concept had **${minAuthors}+ distinct authors** converge on it yet.`,
|
|
557
|
+
``,
|
|
558
|
+
`This is the one thing a per-user memory can't build โ it needs your team to accumulate shared, attributed lessons.`,
|
|
559
|
+
`Keep using \`learn_from_attempts(author="...")\` / \`team_learn\`; re-run as the team grows.`,
|
|
560
|
+
].join('\n');
|
|
561
|
+
}
|
|
562
|
+
const lines = [
|
|
563
|
+
`๐ **Team Crystal created: ${effectiveLabel}**`,
|
|
564
|
+
``,
|
|
565
|
+
`๐งฌ **${patterns.length} cross-person pattern${patterns.length !== 1 ? 's' : ''}** โ fixes that ${minAuthors}+ teammates independently converged on.`,
|
|
566
|
+
`_Compressed from ${lessons.length} attributed lessons across ${crystal.contributors} contributors. This is the team-wide, causal layer a per-user "Dreaming" process structurally cannot produce._`,
|
|
567
|
+
``,
|
|
568
|
+
];
|
|
569
|
+
for (const p of patterns.slice(0, 6)) {
|
|
570
|
+
const spanNote = p.spans.length > 1 ? ` ยท spans ${p.spans.map(s => `\`${s}\``).join(', ')}` : '';
|
|
571
|
+
lines.push(`### ๐งฉ \`${p.concept}\` โ ${p.author_count} people converged${spanNote}`, `**Convergent fix** (from \`${p.fix_topic}\`): ${p.convergent_fix}`, `**Who solved it together:** ${p.authors.map(a => `@${a}`).join(', ')} _(ask them โ they've each hit this)_`, ``);
|
|
572
|
+
}
|
|
573
|
+
lines.push(`---`, `๐ก Surfaces in \`crystal_view\` and onboarding. Re-run \`team_crystallize\` monthly.`);
|
|
574
|
+
return lines.join('\n');
|
|
575
|
+
}
|
|
409
576
|
case 'brain_doctor': {
|
|
410
577
|
const { instance_id, workspace_path: drWorkspacePath = '' } = args;
|
|
411
578
|
const redis = await getConnection(instance_id);
|
|
@@ -1208,8 +1375,14 @@ Result: Your AI **never solves the same problem twice** and always picks up exac
|
|
|
1208
1375
|
].join('\n');
|
|
1209
1376
|
}
|
|
1210
1377
|
}
|
|
1378
|
+
const prevRole = allRoles[handle.toLowerCase()] ?? null;
|
|
1211
1379
|
await redis.hset(ROLES_KEY(instance_id), handle.toLowerCase(), cleanRole);
|
|
1212
1380
|
await redis.expire(ROLES_KEY(instance_id), 365 * 2 * 86400); // 2-year TTL
|
|
1381
|
+
// Governance audit trail (W6): record every role change with who made it.
|
|
1382
|
+
await auditLog(redis, instance_id, {
|
|
1383
|
+
action: 'team_assign_role', actor: assigned_by || '(bootstrap)',
|
|
1384
|
+
handle: handle.toLowerCase(), from: prevRole, to: cleanRole,
|
|
1385
|
+
});
|
|
1213
1386
|
const isBootstrap = !hasAdmin;
|
|
1214
1387
|
const badge = ROLE_BADGE[cleanRole];
|
|
1215
1388
|
return [
|
|
@@ -1283,6 +1456,52 @@ Result: Your AI **never solves the same problem twice** and always picks up exac
|
|
|
1283
1456
|
lines.push(``, `_Manage with \`team_assign_role\`. Any admin can add or change roles._`);
|
|
1284
1457
|
return lines.join('\n');
|
|
1285
1458
|
}
|
|
1459
|
+
// โโ team_audit โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
|
1460
|
+
// Governance/compliance trail (W6): who changed roles, who confirmed which
|
|
1461
|
+
// lessons, and when. Admin-gated once governance is active โ the audit log is
|
|
1462
|
+
// sensitive (it reveals the team's review activity). Newest entries first.
|
|
1463
|
+
case 'team_audit': {
|
|
1464
|
+
const { instance_id, requester = '', limit = 50 } = args;
|
|
1465
|
+
if (!instance_id)
|
|
1466
|
+
return 'โ Required: instance_id';
|
|
1467
|
+
const redis = await getConnection(instance_id);
|
|
1468
|
+
const denied = await requireRole(redis, instance_id, requester, 'admin', 'view the governance audit log');
|
|
1469
|
+
if (denied)
|
|
1470
|
+
return denied;
|
|
1471
|
+
const max = Math.min(Math.max(1, Number(limit) || 50), 200);
|
|
1472
|
+
const raw = await redis.lrange(`cachly:team:audit:${instance_id}`, -max, -1).catch(() => []);
|
|
1473
|
+
if (raw.length === 0) {
|
|
1474
|
+
return [
|
|
1475
|
+
`## ๐ Governance Audit Log`,
|
|
1476
|
+
``,
|
|
1477
|
+
`No governance events recorded yet.`,
|
|
1478
|
+
`Events are logged automatically on \`team_assign_role\` and \`team_confirm\`.`,
|
|
1479
|
+
].join('\n');
|
|
1480
|
+
}
|
|
1481
|
+
const entries = raw
|
|
1482
|
+
.map(r => safeJsonParse(r, null))
|
|
1483
|
+
.filter((e) => e !== null)
|
|
1484
|
+
.reverse(); // newest first
|
|
1485
|
+
const fmt = (e) => {
|
|
1486
|
+
const when = e.ts ? new Date(e.ts).toISOString().replace('T', ' ').slice(0, 16) : '?';
|
|
1487
|
+
if (e.action === 'team_assign_role') {
|
|
1488
|
+
return `| ${when} | ๐ role | **${e.actor}** set \`${e.handle}\`: ${e.from ?? 'โ'} โ **${e.to}** |`;
|
|
1489
|
+
}
|
|
1490
|
+
if (e.action === 'team_confirm') {
|
|
1491
|
+
return `| ${when} | โ
confirm | **${e.actor}** confirmed \`${e.topic}\` (${e.level}) |`;
|
|
1492
|
+
}
|
|
1493
|
+
return `| ${when} | ${e.action ?? '?'} | ${e.actor ?? '?'} |`;
|
|
1494
|
+
};
|
|
1495
|
+
return [
|
|
1496
|
+
`## ๐ Governance Audit Log (${entries.length} event${entries.length !== 1 ? 's' : ''})`,
|
|
1497
|
+
``,
|
|
1498
|
+
`| When (UTC) | Type | Detail |`,
|
|
1499
|
+
`|---|---|---|`,
|
|
1500
|
+
...entries.map(fmt),
|
|
1501
|
+
``,
|
|
1502
|
+
`_Immutable trail ยท 2-year retention ยท last ${max} events. Admin-only._`,
|
|
1503
|
+
].join('\n');
|
|
1504
|
+
}
|
|
1286
1505
|
// โโ team_grant_scope โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
|
|
1287
1506
|
// Add (or remove) a member to a named group/sub-team. Group-scoped lessons
|
|
1288
1507
|
// only surface in recall for members of that group. Admin-gated after the
|