compact-agent 1.13.0 → 1.15.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.
@@ -0,0 +1,40 @@
1
+ /**
2
+ * Curator — periodic skill consolidation pass (M2 item 4, convergent
3
+ * across Hermes and MemPalace audits).
4
+ *
5
+ * The problem: as the agent learns instincts and graduates them into
6
+ * skills (and as ECC ships new skills via bundle refresh), the skill
7
+ * registry accumulates duplicates, stale single-use items, and near-
8
+ * misses that should be merged. Without periodic curation, /skills
9
+ * becomes noise and `findEccSkillsForQuery` returns more false-positive
10
+ * matches.
11
+ *
12
+ * Hermes Agent runs an "Autonomous Curator" on a 7-day cron. We ship
13
+ * the same idea but:
14
+ * - Manual-only for v1.14 (`/curate`) — no automatic execution
15
+ * - Report-only: surfaces merge/archive candidates, never mutates
16
+ * - Pure heuristic: no LLM call (so it works offline and costs $0)
17
+ *
18
+ * Heuristics implemented:
19
+ * - Duplicate name: two skills with identical names (modulo whitespace)
20
+ * - Trigger overlap ≥70%: likely duplicate
21
+ * - Single use over 30 days old: stale
22
+ * - Zero use over 60 days old: probably noise
23
+ *
24
+ * Out of scope for v1.14: automatic merging, LLM-based "are these
25
+ * actually the same thing" calls, skill quality scoring. Add later
26
+ * if the heuristics turn out to false-positive a lot.
27
+ */
28
+ export interface CuratorFinding {
29
+ kind: 'duplicate-name' | 'high-overlap' | 'stale-single-use' | 'unused';
30
+ primary: string;
31
+ secondary?: string;
32
+ reason: string;
33
+ recommendation: 'archive' | 'merge' | 'review';
34
+ }
35
+ export interface CuratorReport {
36
+ scannedAt: string;
37
+ totalSkills: number;
38
+ findings: CuratorFinding[];
39
+ }
40
+ export declare function runCurator(): CuratorReport;
@@ -0,0 +1,131 @@
1
+ /**
2
+ * Curator — periodic skill consolidation pass (M2 item 4, convergent
3
+ * across Hermes and MemPalace audits).
4
+ *
5
+ * The problem: as the agent learns instincts and graduates them into
6
+ * skills (and as ECC ships new skills via bundle refresh), the skill
7
+ * registry accumulates duplicates, stale single-use items, and near-
8
+ * misses that should be merged. Without periodic curation, /skills
9
+ * becomes noise and `findEccSkillsForQuery` returns more false-positive
10
+ * matches.
11
+ *
12
+ * Hermes Agent runs an "Autonomous Curator" on a 7-day cron. We ship
13
+ * the same idea but:
14
+ * - Manual-only for v1.14 (`/curate`) — no automatic execution
15
+ * - Report-only: surfaces merge/archive candidates, never mutates
16
+ * - Pure heuristic: no LLM call (so it works offline and costs $0)
17
+ *
18
+ * Heuristics implemented:
19
+ * - Duplicate name: two skills with identical names (modulo whitespace)
20
+ * - Trigger overlap ≥70%: likely duplicate
21
+ * - Single use over 30 days old: stale
22
+ * - Zero use over 60 days old: probably noise
23
+ *
24
+ * Out of scope for v1.14: automatic merging, LLM-based "are these
25
+ * actually the same thing" calls, skill quality scoring. Add later
26
+ * if the heuristics turn out to false-positive a lot.
27
+ */
28
+ import { listSkills } from './skills.js';
29
+ /**
30
+ * Jaccard similarity between two arrays of strings. Symmetric, 0..1.
31
+ * Used for trigger-overlap detection.
32
+ */
33
+ function jaccard(a, b) {
34
+ const sa = new Set(a.map((s) => s.toLowerCase()));
35
+ const sb = new Set(b.map((s) => s.toLowerCase()));
36
+ if (sa.size === 0 && sb.size === 0)
37
+ return 0;
38
+ let intersection = 0;
39
+ for (const x of sa)
40
+ if (sb.has(x))
41
+ intersection++;
42
+ const union = sa.size + sb.size - intersection;
43
+ return union === 0 ? 0 : intersection / union;
44
+ }
45
+ function ageDays(iso) {
46
+ return (Date.now() - new Date(iso).getTime()) / (1000 * 60 * 60 * 24);
47
+ }
48
+ export function runCurator() {
49
+ const all = listSkills();
50
+ const findings = [];
51
+ // ── Duplicate names ──────────────────────────────────────
52
+ const byName = new Map();
53
+ for (const s of all) {
54
+ const key = s.name.trim().toLowerCase();
55
+ if (!byName.has(key))
56
+ byName.set(key, []);
57
+ byName.get(key).push(s);
58
+ }
59
+ for (const [name, dupes] of byName.entries()) {
60
+ if (dupes.length < 2)
61
+ continue;
62
+ // Keep the most-used / newest as primary; flag the rest for archive
63
+ const sorted = [...dupes].sort((a, b) => (b.useCount - a.useCount) || b.createdAt.localeCompare(a.createdAt));
64
+ for (let i = 1; i < sorted.length; i++) {
65
+ findings.push({
66
+ kind: 'duplicate-name',
67
+ primary: sorted[i].id,
68
+ secondary: sorted[0].id,
69
+ reason: `Duplicate of "${name}" (${sorted[i].useCount} uses vs ${sorted[0].useCount}); keep the more-used one.`,
70
+ recommendation: 'archive',
71
+ });
72
+ }
73
+ }
74
+ // ── High trigger overlap (likely near-duplicates) ────────
75
+ // O(n²) but n is small (<300 skills typically). Skip pairs already
76
+ // flagged as duplicate-name to avoid redundant findings.
77
+ const flaggedDup = new Set();
78
+ for (const f of findings) {
79
+ if (f.kind === 'duplicate-name')
80
+ flaggedDup.add(f.primary);
81
+ }
82
+ for (let i = 0; i < all.length; i++) {
83
+ for (let j = i + 1; j < all.length; j++) {
84
+ const a = all[i];
85
+ const b = all[j];
86
+ if (flaggedDup.has(a.id) || flaggedDup.has(b.id))
87
+ continue;
88
+ const sim = jaccard(a.triggers, b.triggers);
89
+ if (sim >= 0.7 && a.triggers.length >= 2) {
90
+ const sorted = [a, b].sort((x, y) => (y.useCount - x.useCount) || y.createdAt.localeCompare(x.createdAt));
91
+ findings.push({
92
+ kind: 'high-overlap',
93
+ primary: sorted[1].id,
94
+ secondary: sorted[0].id,
95
+ reason: `${(sim * 100).toFixed(0)}% trigger overlap with "${sorted[0].name}" — consider merging.`,
96
+ recommendation: 'merge',
97
+ });
98
+ }
99
+ }
100
+ }
101
+ // ── Stale single-use skills ──────────────────────────────
102
+ // Used exactly once and >30 days old → probably situational, not
103
+ // a recurring pattern. Worth reviewing whether to keep.
104
+ for (const s of all) {
105
+ if (s.useCount === 1 && ageDays(s.createdAt) > 30) {
106
+ findings.push({
107
+ kind: 'stale-single-use',
108
+ primary: s.id,
109
+ reason: `Used once, ${Math.floor(ageDays(s.createdAt))} days old — may be situational.`,
110
+ recommendation: 'review',
111
+ });
112
+ }
113
+ }
114
+ // ── Unused skills (never invoked, >60 days) ──────────────
115
+ for (const s of all) {
116
+ if (s.useCount === 0 && ageDays(s.createdAt) > 60) {
117
+ findings.push({
118
+ kind: 'unused',
119
+ primary: s.id,
120
+ reason: `Never invoked, ${Math.floor(ageDays(s.createdAt))} days old — likely noise.`,
121
+ recommendation: 'archive',
122
+ });
123
+ }
124
+ }
125
+ return {
126
+ scannedAt: new Date().toISOString(),
127
+ totalSkills: all.length,
128
+ findings,
129
+ };
130
+ }
131
+ //# sourceMappingURL=curator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"curator.js","sourceRoot":"","sources":["../src/curator.ts"],"names":[],"mappings":"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"}
package/dist/ecc.d.ts CHANGED
@@ -60,3 +60,16 @@ export declare function printEccCommandList(): void;
60
60
  * skill content into the system prompt — bumps relevance for that turn.
61
61
  */
62
62
  export declare function findEccSkillForQuery(query: string): Skill | null;
63
+ /**
64
+ * Same scoring as findEccSkillForQuery but returns the top-K hits.
65
+ * Used by the progressive-disclosure system prompt injection to surface
66
+ * multiple potentially-relevant skill names + descriptions without
67
+ * burning the token budget on full prompt bodies.
68
+ */
69
+ export declare function findEccSkillsForQuery(query: string, limit?: number): Skill[];
70
+ /**
71
+ * Look up a skill by exact or substring name match. Used by the
72
+ * skill_view tool to expand a Level-0 reference (name only) to the
73
+ * Level-1 full prompt body the model needs to actually apply.
74
+ */
75
+ export declare function findEccSkillByName(name: string): Skill | null;
package/dist/ecc.js CHANGED
@@ -817,21 +817,45 @@ export function printEccCommandList() {
817
817
  * skill content into the system prompt — bumps relevance for that turn.
818
818
  */
819
819
  export function findEccSkillForQuery(query) {
820
+ const hits = findEccSkillsForQuery(query, 1);
821
+ return hits[0] ?? null;
822
+ }
823
+ /**
824
+ * Same scoring as findEccSkillForQuery but returns the top-K hits.
825
+ * Used by the progressive-disclosure system prompt injection to surface
826
+ * multiple potentially-relevant skill names + descriptions without
827
+ * burning the token budget on full prompt bodies.
828
+ */
829
+ export function findEccSkillsForQuery(query, limit = 3) {
820
830
  if (!query)
821
- return null;
831
+ return [];
822
832
  const q = query.toLowerCase();
823
- const candidates = listSkills().filter(s => s.id.startsWith(ECC_SKILL_ID_PREFIX));
824
- let best = null;
833
+ const candidates = listSkills().filter((s) => s.id.startsWith(ECC_SKILL_ID_PREFIX));
834
+ const scored = [];
825
835
  for (const s of candidates) {
826
836
  let score = 0;
827
837
  for (const t of s.triggers) {
828
838
  if (q.includes(t.toLowerCase()))
829
839
  score += t.length;
830
840
  }
831
- if (score > 0 && (!best || score > best.score)) {
832
- best = { skill: s, score };
833
- }
841
+ if (score > 0)
842
+ scored.push({ skill: s, score });
834
843
  }
835
- return best?.skill ?? null;
844
+ scored.sort((a, b) => b.score - a.score);
845
+ return scored.slice(0, limit).map((x) => x.skill);
846
+ }
847
+ /**
848
+ * Look up a skill by exact or substring name match. Used by the
849
+ * skill_view tool to expand a Level-0 reference (name only) to the
850
+ * Level-1 full prompt body the model needs to actually apply.
851
+ */
852
+ export function findEccSkillByName(name) {
853
+ if (!name)
854
+ return null;
855
+ const target = name.toLowerCase().trim();
856
+ const all = listSkills().filter((s) => s.id.startsWith(ECC_SKILL_ID_PREFIX));
857
+ return (all.find((s) => s.name.toLowerCase() === target)
858
+ ?? all.find((s) => s.name.toLowerCase().includes(target))
859
+ ?? null);
836
860
  }
837
861
  //# sourceMappingURL=ecc.js.map
package/dist/ecc.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"ecc.js","sourceRoot":"","sources":["../src/ecc.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ecc.js","sourceRoot":"","sources":["../src/ecc.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -57,6 +57,8 @@ import { buildWalkthroughPrompt } from './walkthrough.js';
57
57
  import { buildStitchPrompt, buildStitchToolsPrompt, saveStitchConfig, printStitchStatus, stitchConfigured } from './stitch.js';
58
58
  // MemPalace memory subsystem — wings/rooms/drawers/tunnels/KG, both global + project stores
59
59
  import * as mempalace from './mempalace/index.js';
60
+ // Curator — periodic skill consolidation pass (/curate)
61
+ import { runCurator } from './curator.js';
60
62
  // Voice / accessibility — built-in dictation (Whisper) + readout (ElevenLabs)
61
63
  import { printVoiceStatus, isVoiceEnabled, getTtsConfig, getSttConfig, getAccessibilityConfig, speak, dictateOnce, } from './voice.js';
62
64
  import { isFfmpegAvailable, audioCue, startRecording, probeMic, micProbeMessage } from './audio.js';
@@ -275,6 +277,7 @@ export function handleSlashCommand(input, config, messages, session, mode) {
275
277
  console.log(d(' ') + c('/prune') + d(' — delete expired instincts'));
276
278
  console.log(d(' ') + c('/skills') + d(' — list learned skills (and bundled ECC skills)'));
277
279
  console.log(d(' ') + c('/skill-show <name>') + d(' — print the full prompt text of a specific skill'));
280
+ console.log(d(' ') + c('/curate') + d(' — scan skill registry for dupes / stale items (report-only)'));
278
281
  console.log(d(' ') + c('/memory [sub]') + d(' — MemPalace: status, enable/disable, wings, rooms, ls, search <q>, get <id>, rm <id>'));
279
282
  console.log(d(' ') + c('/users') + d(' — manage users table'));
280
283
  console.log(d(' ') + c('/count [inc|dec|reset]') + d(' — increment/decrement/reset counter'));
@@ -816,6 +819,33 @@ export function handleSlashCommand(input, config, messages, session, mode) {
816
819
  // why /tdd or /review produced a particular shape of response. The
817
820
  // bundled ECC corpus has 228 skills as of v1.11 — most users won't
818
821
  // know they exist unless they can browse them.
822
+ // /curate — manual skill-registry curation pass. Report-only;
823
+ // surfaces duplicate names, high-overlap pairs, stale single-use,
824
+ // and never-invoked skills > 60 days old. User decides what to do.
825
+ case '/curate': {
826
+ const report = runCurator();
827
+ console.log(chalk.cyan(`\n Curator scan — ${report.totalSkills} skills checked, ${report.findings.length} finding(s)`));
828
+ if (report.findings.length === 0) {
829
+ console.log(chalk.dim(' No issues. Registry is clean.\n'));
830
+ return { handled: true };
831
+ }
832
+ // Group by recommendation
833
+ const groups = {};
834
+ for (const f of report.findings) {
835
+ (groups[f.recommendation] = groups[f.recommendation] || []).push(f);
836
+ }
837
+ for (const [rec, items] of Object.entries(groups)) {
838
+ console.log(chalk.bold(`\n ${rec.toUpperCase()} (${items.length}):`));
839
+ for (const f of items.slice(0, 20)) {
840
+ console.log(chalk.dim(` [${f.kind}] ${f.primary}${f.secondary ? ' ↔ ' + f.secondary : ''}`));
841
+ console.log(chalk.dim(` ${f.reason}`));
842
+ }
843
+ if (items.length > 20)
844
+ console.log(chalk.dim(` … and ${items.length - 20} more`));
845
+ }
846
+ console.log(chalk.dim('\n Act on findings with /prune (instincts) or by editing ~/.crowcoder/skills/.\n'));
847
+ return { handled: true };
848
+ }
819
849
  case '/skill-show': {
820
850
  const name = args.trim();
821
851
  if (!name) {