memnant 1.13.0 → 1.14.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/README.md +26 -1
- package/dist/analytics/analytics.d.ts +1 -0
- package/dist/analytics/analytics.d.ts.map +1 -1
- package/dist/analytics/analytics.js +8 -0
- package/dist/analytics/analytics.js.map +1 -1
- package/dist/analytics/churn.d.ts +14 -0
- package/dist/analytics/churn.d.ts.map +1 -0
- package/dist/analytics/churn.js +45 -0
- package/dist/analytics/churn.js.map +1 -0
- package/dist/cli/analytics.d.ts.map +1 -1
- package/dist/cli/analytics.js +7 -0
- package/dist/cli/analytics.js.map +1 -1
- package/dist/cli/index.js +2 -0
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/recall.d.ts.map +1 -1
- package/dist/cli/recall.js +3 -0
- package/dist/cli/recall.js.map +1 -1
- package/dist/cli/stats.d.ts.map +1 -1
- package/dist/cli/stats.js +35 -0
- package/dist/cli/stats.js.map +1 -1
- package/dist/cli/update-check.d.ts +10 -0
- package/dist/cli/update-check.d.ts.map +1 -0
- package/dist/cli/update-check.js +87 -0
- package/dist/cli/update-check.js.map +1 -0
- package/dist/colony/promote.d.ts +3 -1
- package/dist/colony/promote.d.ts.map +1 -1
- package/dist/colony/promote.js +16 -7
- package/dist/colony/promote.js.map +1 -1
- package/dist/colony/recruitment.d.ts +13 -0
- package/dist/colony/recruitment.d.ts.map +1 -0
- package/dist/colony/recruitment.js +32 -0
- package/dist/colony/recruitment.js.map +1 -0
- package/dist/context/file-context.js +1 -1
- package/dist/context/file-context.js.map +1 -1
- package/dist/context/narrative.d.ts.map +1 -1
- package/dist/context/narrative.js +24 -0
- package/dist/context/narrative.js.map +1 -1
- package/dist/graph/relationships.d.ts +15 -0
- package/dist/graph/relationships.d.ts.map +1 -1
- package/dist/graph/relationships.js +58 -0
- package/dist/graph/relationships.js.map +1 -1
- package/dist/ledger/database.d.ts.map +1 -1
- package/dist/ledger/database.js +3 -2
- package/dist/ledger/database.js.map +1 -1
- package/dist/ledger/migrations.d.ts.map +1 -1
- package/dist/ledger/migrations.js +7 -0
- package/dist/ledger/migrations.js.map +1 -1
- package/dist/ledger/stats.d.ts +12 -0
- package/dist/ledger/stats.d.ts.map +1 -1
- package/dist/ledger/stats.js +89 -0
- package/dist/ledger/stats.js.map +1 -1
- package/dist/mcp/server.d.ts.map +1 -1
- package/dist/mcp/server.js +61 -0
- package/dist/mcp/server.js.map +1 -1
- package/dist/relevance/scoring.d.ts +4 -0
- package/dist/relevance/scoring.d.ts.map +1 -1
- package/dist/relevance/scoring.js +11 -0
- package/dist/relevance/scoring.js.map +1 -1
- package/dist/relevance/search.d.ts.map +1 -1
- package/dist/relevance/search.js +3 -0
- package/dist/relevance/search.js.map +1 -1
- package/dist/relevance/trail-decay.d.ts +9 -0
- package/dist/relevance/trail-decay.d.ts.map +1 -0
- package/dist/relevance/trail-decay.js +14 -0
- package/dist/relevance/trail-decay.js.map +1 -0
- package/dist/team/stigmergy.d.ts +37 -0
- package/dist/team/stigmergy.d.ts.map +1 -0
- package/dist/team/stigmergy.js +69 -0
- package/dist/team/stigmergy.js.map +1 -0
- package/dist/types.d.ts +3 -0
- package/dist/types.d.ts.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -99,6 +99,29 @@ Session context rendered as a story, not a database dump. Delta-focused — only
|
|
|
99
99
|
|
|
100
100
|
When an API key is available, memnant composes a conversational narrative. Offline, it falls back to a smart template. Either way, you get caught up in seconds.
|
|
101
101
|
|
|
102
|
+
## Teams
|
|
103
|
+
|
|
104
|
+
Multiple builders, one shared understanding. `memnant init --team` sets your builder identity from git config. Decisions sync through `.memnant/shared/` — git-native, no extra service.
|
|
105
|
+
|
|
106
|
+
When records from different builders contradict each other (embedding similarity > 0.85), memnant flags the contradiction automatically. `memnant team status` shows active builders, record counts, and unresolved conflicts.
|
|
107
|
+
|
|
108
|
+
```
|
|
109
|
+
$ memnant team status
|
|
110
|
+
|
|
111
|
+
Active builders (last 30 days):
|
|
112
|
+
alice 47 records
|
|
113
|
+
bob 31 records
|
|
114
|
+
|
|
115
|
+
Contradictions: 2 unresolved
|
|
116
|
+
Last import: 2026-03-04T14:22:00Z
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
**Cross-builder recall.** `recall --builder alice` or `recall --mine` filters by builder. Records confirmed by multiple builders get a diversity boost in relevance scoring.
|
|
120
|
+
|
|
121
|
+
**Onboarding brief.** `memnant brief --onboarding` compiles a structured package for new team members: key decisions, architecture patterns, known gotchas, team conventions, current work state. 8K tokens by default, `--full` removes the cap.
|
|
122
|
+
|
|
123
|
+
**Team patterns.** `synthesise --team-patterns` finds consensus (where builders agree) and divergence (where they don't). Coverage indicator shows which builders' knowledge is represented.
|
|
124
|
+
|
|
102
125
|
## More than memory
|
|
103
126
|
|
|
104
127
|
**Connection graph.** Records link themselves by semantic similarity. Supersession chains track when new decisions replace old ones. Contradictions are flagged automatically.
|
|
@@ -113,6 +136,8 @@ When an API key is available, memnant composes a conversational narrative. Offli
|
|
|
113
136
|
|
|
114
137
|
**Colony.** Machine-local cross-project ledger. Framework fixes and rejected approaches auto-promote. Search across all your projects at once.
|
|
115
138
|
|
|
139
|
+
**Team layer.** Shared understanding across builders. Git-native sync, contradiction detection, builder-filtered recall, onboarding briefs, and team pattern analysis.
|
|
140
|
+
|
|
116
141
|
## Under the hood
|
|
117
142
|
|
|
118
143
|
**Storage.** Single SQLite file at `.memnant/ledger.db`. Copy it to another machine and everything comes with you.
|
|
@@ -129,7 +154,7 @@ When an API key is available, memnant composes a conversational narrative. Offli
|
|
|
129
154
|
|
|
130
155
|
## Who it's for
|
|
131
156
|
|
|
132
|
-
You work in sessions. Days or weeks apart. You juggle multiple projects that share patterns. You want what you learned yesterday to be there tomorrow — across every tool, every codebase, every session.
|
|
157
|
+
You work in sessions. Days or weeks apart. You juggle multiple projects that share patterns. You want what you learned yesterday to be there tomorrow — across every tool, every codebase, every session. Solo or on a team.
|
|
133
158
|
|
|
134
159
|
## License
|
|
135
160
|
|
|
@@ -31,6 +31,7 @@ export interface AnalyticsReport {
|
|
|
31
31
|
topAssumption: string | null;
|
|
32
32
|
topAssumptionDecisions: number;
|
|
33
33
|
reviewPressureCount: number;
|
|
34
|
+
churn: import('./churn.js').ChurnMetric[];
|
|
34
35
|
}
|
|
35
36
|
export declare function computeAnalytics(db: any, projectId: string): Promise<AnalyticsReport>;
|
|
36
37
|
//# sourceMappingURL=analytics.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"analytics.d.ts","sourceRoot":"","sources":["../../src/analytics/analytics.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,QAAQ;IACvB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,YAAY;IAC3B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,iBAAiB,EAAE,MAAM,EAAE,CAAC;CAC7B;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE;QACR,KAAK,EAAE,WAAW,EAAE,CAAC;QACrB,KAAK,EAAE,MAAM,CAAC;QACd,KAAK,EAAE,YAAY,GAAG,YAAY,GAAG,QAAQ,CAAC;QAC9C,YAAY,EAAE,MAAM,CAAC;KACtB,CAAC;IACF,cAAc,EAAE,QAAQ,EAAE,CAAC;IAC3B,YAAY,EAAE,YAAY,CAAC;IAC3B,eAAe,EAAE,MAAM,CAAC;IACxB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,sBAAsB,EAAE,MAAM,CAAC;IAC/B,mBAAmB,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"analytics.d.ts","sourceRoot":"","sources":["../../src/analytics/analytics.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,QAAQ;IACvB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,YAAY;IAC3B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,iBAAiB,EAAE,MAAM,EAAE,CAAC;CAC7B;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE;QACR,KAAK,EAAE,WAAW,EAAE,CAAC;QACrB,KAAK,EAAE,MAAM,CAAC;QACd,KAAK,EAAE,YAAY,GAAG,YAAY,GAAG,QAAQ,CAAC;QAC9C,YAAY,EAAE,MAAM,CAAC;KACtB,CAAC;IACF,cAAc,EAAE,QAAQ,EAAE,CAAC;IAC3B,YAAY,EAAE,YAAY,CAAC;IAC3B,eAAe,EAAE,MAAM,CAAC;IACxB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,sBAAsB,EAAE,MAAM,CAAC;IAC/B,mBAAmB,EAAE,MAAM,CAAC;IAC5B,KAAK,EAAE,OAAO,YAAY,EAAE,WAAW,EAAE,CAAC;CAC3C;AAUD,wBAAsB,gBAAgB,CACpC,EAAE,EAAE,GAAG,EACP,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,eAAe,CAAC,CAyJ1B"}
|
|
@@ -115,6 +115,13 @@ export async function computeAnalytics(db, projectId) {
|
|
|
115
115
|
reviewPressureCount = candidates.length;
|
|
116
116
|
}
|
|
117
117
|
catch { /* best-effort */ }
|
|
118
|
+
// Decision churn (Epic 19)
|
|
119
|
+
let churn = [];
|
|
120
|
+
try {
|
|
121
|
+
const { computeChurnMetrics } = await import('./churn.js');
|
|
122
|
+
churn = computeChurnMetrics(db);
|
|
123
|
+
}
|
|
124
|
+
catch { /* best-effort */ }
|
|
118
125
|
return {
|
|
119
126
|
velocity: { weeks, total, trend, trendPercent },
|
|
120
127
|
knowledgeAreas,
|
|
@@ -128,6 +135,7 @@ export async function computeAnalytics(db, projectId) {
|
|
|
128
135
|
topAssumption,
|
|
129
136
|
topAssumptionDecisions,
|
|
130
137
|
reviewPressureCount,
|
|
138
|
+
churn,
|
|
131
139
|
};
|
|
132
140
|
}
|
|
133
141
|
//# sourceMappingURL=analytics.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"analytics.js","sourceRoot":"","sources":["../../src/analytics/analytics.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;
|
|
1
|
+
{"version":3,"file":"analytics.js","sourceRoot":"","sources":["../../src/analytics/analytics.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* memnant — Decision churn metrics.
|
|
3
|
+
* Finds topics where decisions have been superseded 3+ times.
|
|
4
|
+
*/
|
|
5
|
+
import type { Database } from '../ledger/database.js';
|
|
6
|
+
export interface ChurnMetric {
|
|
7
|
+
headRecordId: string;
|
|
8
|
+
contentPreview: string;
|
|
9
|
+
supersessionCount: number;
|
|
10
|
+
chainIds: string[];
|
|
11
|
+
}
|
|
12
|
+
export declare function computeChurnMetrics(db: Database, minChurn?: number): ChurnMetric[];
|
|
13
|
+
export declare function formatChurnAlerts(metrics: ChurnMetric[]): string[];
|
|
14
|
+
//# sourceMappingURL=churn.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"churn.d.ts","sourceRoot":"","sources":["../../src/analytics/churn.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAEtD,MAAM,WAAW,WAAW;IAC1B,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;IACvB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,wBAAgB,mBAAmB,CAAC,EAAE,EAAE,QAAQ,EAAE,QAAQ,GAAE,MAAU,GAAG,WAAW,EAAE,CA6CrF;AAED,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,WAAW,EAAE,GAAG,MAAM,EAAE,CAIlE"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* memnant — Decision churn metrics.
|
|
3
|
+
* Finds topics where decisions have been superseded 3+ times.
|
|
4
|
+
*/
|
|
5
|
+
export function computeChurnMetrics(db, minChurn = 3) {
|
|
6
|
+
// Find heads of supersession chains: records that supersede others
|
|
7
|
+
// but are NOT themselves superseded by anyone
|
|
8
|
+
const heads = db.all(`SELECT DISTINCT r.id, r.content_text FROM record r
|
|
9
|
+
JOIN record_relationship rr_source ON (rr_source.source_record_id = r.id AND rr_source.type = 'supersedes' AND rr_source.dismissed_at IS NULL)
|
|
10
|
+
LEFT JOIN record_relationship rr_target ON (rr_target.target_record_id = r.id AND rr_target.type = 'supersedes' AND rr_target.dismissed_at IS NULL)
|
|
11
|
+
WHERE r.retracted_at IS NULL AND r.archived_at IS NULL
|
|
12
|
+
AND rr_target.id IS NULL`);
|
|
13
|
+
const results = [];
|
|
14
|
+
for (const head of heads) {
|
|
15
|
+
const chain = [head.id];
|
|
16
|
+
let currentId = head.id;
|
|
17
|
+
const visited = new Set([currentId]);
|
|
18
|
+
// Walk the supersession chain downward (head supersedes → target supersedes → ...)
|
|
19
|
+
while (true) {
|
|
20
|
+
const rel = db.get(`SELECT target_record_id FROM record_relationship
|
|
21
|
+
WHERE source_record_id = ? AND type = 'supersedes' AND dismissed_at IS NULL`, [currentId]);
|
|
22
|
+
if (!rel || visited.has(rel.target_record_id))
|
|
23
|
+
break;
|
|
24
|
+
visited.add(rel.target_record_id);
|
|
25
|
+
chain.push(rel.target_record_id);
|
|
26
|
+
currentId = rel.target_record_id;
|
|
27
|
+
}
|
|
28
|
+
// supersessionCount is the number of supersedes relationships = chain.length - 1
|
|
29
|
+
// But the spec says "superseded 3+ times" meaning 3+ supersessions in the chain
|
|
30
|
+
if (chain.length - 1 >= minChurn) {
|
|
31
|
+
results.push({
|
|
32
|
+
headRecordId: head.id,
|
|
33
|
+
contentPreview: (head.content_text || '').split('\n')[0].slice(0, 100),
|
|
34
|
+
supersessionCount: chain.length - 1,
|
|
35
|
+
chainIds: chain,
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
results.sort((a, b) => b.supersessionCount - a.supersessionCount);
|
|
40
|
+
return results;
|
|
41
|
+
}
|
|
42
|
+
export function formatChurnAlerts(metrics) {
|
|
43
|
+
return metrics.map(m => `[churn \u00b7 ${m.supersessionCount}x] "${m.contentPreview}" \u2014 revisited ${m.supersessionCount} times. Consider resolving the underlying tension.`);
|
|
44
|
+
}
|
|
45
|
+
//# sourceMappingURL=churn.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"churn.js","sourceRoot":"","sources":["../../src/analytics/churn.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAWH,MAAM,UAAU,mBAAmB,CAAC,EAAY,EAAE,WAAmB,CAAC;IACpE,mEAAmE;IACnE,8CAA8C;IAC9C,MAAM,KAAK,GAAG,EAAE,CAAC,GAAG,CAClB;;;;gCAI4B,CAC6B,CAAC;IAE5D,MAAM,OAAO,GAAkB,EAAE,CAAC;IAClC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,KAAK,GAAa,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAClC,IAAI,SAAS,GAAG,IAAI,CAAC,EAAE,CAAC;QACxB,MAAM,OAAO,GAAG,IAAI,GAAG,CAAS,CAAC,SAAS,CAAC,CAAC,CAAC;QAE7C,mFAAmF;QACnF,OAAO,IAAI,EAAE,CAAC;YACZ,MAAM,GAAG,GAAG,EAAE,CAAC,GAAG,CAChB;qFAC6E,EAC7E,CAAC,SAAS,CAAC,CAC2C,CAAC;YAEzD,IAAI,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,gBAAgB,CAAC;gBAAE,MAAM;YACrD,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;YAClC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;YACjC,SAAS,GAAG,GAAG,CAAC,gBAAgB,CAAC;QACnC,CAAC;QAED,iFAAiF;QACjF,gFAAgF;QAChF,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,QAAQ,EAAE,CAAC;YACjC,OAAO,CAAC,IAAI,CAAC;gBACX,YAAY,EAAE,IAAI,CAAC,EAAE;gBACrB,cAAc,EAAE,CAAC,IAAI,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC;gBACtE,iBAAiB,EAAE,KAAK,CAAC,MAAM,GAAG,CAAC;gBACnC,QAAQ,EAAE,KAAK;aAChB,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,iBAAiB,GAAG,CAAC,CAAC,iBAAiB,CAAC,CAAC;IAClE,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,OAAsB;IACtD,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CACrB,iBAAiB,CAAC,CAAC,iBAAiB,OAAO,CAAC,CAAC,cAAc,sBAAsB,CAAC,CAAC,iBAAiB,oDAAoD,CACzJ,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"analytics.d.ts","sourceRoot":"","sources":["../../src/cli/analytics.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAMpC,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"analytics.d.ts","sourceRoot":"","sources":["../../src/cli/analytics.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAMpC,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAgE/D"}
|
package/dist/cli/analytics.js
CHANGED
|
@@ -54,6 +54,13 @@ export function registerAnalyticsCommand(program) {
|
|
|
54
54
|
if (report.reviewPressureCount > 0) {
|
|
55
55
|
console.log(`Review Pressure: ${report.reviewPressureCount} decision${report.reviewPressureCount !== 1 ? 's' : ''} due for review`);
|
|
56
56
|
}
|
|
57
|
+
// Decision churn
|
|
58
|
+
if (report.churn && report.churn.length > 0) {
|
|
59
|
+
console.log(`\nDecision Churn:`);
|
|
60
|
+
for (const c of report.churn) {
|
|
61
|
+
console.log(` [${c.supersessionCount}x] "${c.contentPreview}" (chain: ${c.chainIds.length} records)`);
|
|
62
|
+
}
|
|
63
|
+
}
|
|
57
64
|
});
|
|
58
65
|
}
|
|
59
66
|
//# sourceMappingURL=analytics.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"analytics.js","sourceRoot":"","sources":["../../src/cli/analytics.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"analytics.js","sourceRoot":"","sources":["../../src/cli/analytics.ts"],"names":[],"mappings":"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"}
|
package/dist/cli/index.js
CHANGED
|
@@ -46,6 +46,7 @@ import { registerAnalyticsCommand } from './analytics.js';
|
|
|
46
46
|
import { registerTeamCommand } from './team.js';
|
|
47
47
|
import { registerBriefCommand } from './brief.js';
|
|
48
48
|
import { defaultAction } from './default-action.js';
|
|
49
|
+
import { checkForUpdate } from './update-check.js';
|
|
49
50
|
const program = new Command();
|
|
50
51
|
program
|
|
51
52
|
.name('memnant')
|
|
@@ -113,5 +114,6 @@ for (const cmd of program.commands) {
|
|
|
113
114
|
cmd._hidden = true;
|
|
114
115
|
}
|
|
115
116
|
}
|
|
117
|
+
checkForUpdate();
|
|
116
118
|
program.parse();
|
|
117
119
|
//# sourceMappingURL=index.js.map
|
package/dist/cli/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":";AAEA;;;;;;;;GAQG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAChD,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAC9C,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAClD,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AACtD,OAAO,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AACxD,OAAO,EAAE,wBAAwB,EAAE,MAAM,iBAAiB,CAAC;AAC3D,OAAO,EAAE,0BAA0B,EAAE,MAAM,mBAAmB,CAAC;AAC/D,OAAO,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAChD,OAAO,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAClD,OAAO,EAAE,2BAA2B,EAAE,MAAM,mBAAmB,CAAC;AAChE,OAAO,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAClD,OAAO,EAAE,yBAAyB,EAAE,MAAM,iBAAiB,CAAC;AAC5D,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AACtD,OAAO,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AACtD,OAAO,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAClD,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AACtD,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,EAAE,0BAA0B,EAAE,MAAM,mBAAmB,CAAC;AAC/D,OAAO,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AACxD,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAClD,OAAO,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AACtD,OAAO,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AACtD,OAAO,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AACtD,OAAO,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AACtD,OAAO,EAAE,wBAAwB,EAAE,MAAM,gBAAgB,CAAC;AAC1D,OAAO,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAChD,OAAO,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
|
package/dist/cli/recall.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"recall.d.ts","sourceRoot":"","sources":["../../src/cli/recall.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAIpC,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"recall.d.ts","sourceRoot":"","sources":["../../src/cli/recall.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAIpC,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAiK5D"}
|
package/dist/cli/recall.js
CHANGED
|
@@ -136,6 +136,9 @@ export function registerRecallCommand(program) {
|
|
|
136
136
|
if (s.builder_diversity) {
|
|
137
137
|
console.log(` ├─ diversity: ${s.builder_diversity.confirmations} builder(s) +${s.builder_diversity.boost.toFixed(3)}`);
|
|
138
138
|
}
|
|
139
|
+
if (s.co_occurrence) {
|
|
140
|
+
console.log(` ├─ co_occurrence: +${s.co_occurrence.boost.toFixed(3)} trail boost`);
|
|
141
|
+
}
|
|
139
142
|
console.log(` \u2514\u2500 frequency: ${s.frequency.raw.toFixed(3)} \u00D7 ${s.frequency.weight.toFixed(2)} = ${s.frequency.weighted.toFixed(3)}`);
|
|
140
143
|
}
|
|
141
144
|
}
|
package/dist/cli/recall.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"recall.js","sourceRoot":"","sources":["../../src/cli/recall.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"recall.js","sourceRoot":"","sources":["../../src/cli/recall.ts"],"names":[],"mappings":"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"}
|
package/dist/cli/stats.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stats.d.ts","sourceRoot":"","sources":["../../src/cli/stats.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAKpC,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"stats.d.ts","sourceRoot":"","sources":["../../src/cli/stats.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAKpC,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAqD3D"}
|
package/dist/cli/stats.js
CHANGED
|
@@ -10,6 +10,7 @@ export function registerStatsCommand(program) {
|
|
|
10
10
|
.command('stats')
|
|
11
11
|
.description('Show ledger statistics dashboard')
|
|
12
12
|
.option('--json', 'Output as JSON')
|
|
13
|
+
.option('--engagement', 'Show session engagement metrics')
|
|
13
14
|
.action(async (opts) => {
|
|
14
15
|
const { openDatabase } = await import('../ledger/database.js');
|
|
15
16
|
const { getLedgerStats } = await import('../ledger/stats.js');
|
|
@@ -45,9 +46,43 @@ export function registerStatsCommand(program) {
|
|
|
45
46
|
console.log(JSON.stringify(stats, null, 2));
|
|
46
47
|
return;
|
|
47
48
|
}
|
|
49
|
+
if (opts.engagement) {
|
|
50
|
+
console.log(formatEngagement(stats));
|
|
51
|
+
return;
|
|
52
|
+
}
|
|
48
53
|
console.log(formatStats(stats, config.project.name));
|
|
49
54
|
});
|
|
50
55
|
}
|
|
56
|
+
function formatEngagement(stats) {
|
|
57
|
+
const eng = stats.engagement;
|
|
58
|
+
const lines = [];
|
|
59
|
+
lines.push(`Session #${eng.sessionNumber}`);
|
|
60
|
+
if (eng.sessionNumber === 0) {
|
|
61
|
+
lines.push('No sessions yet.');
|
|
62
|
+
return lines.join('\n');
|
|
63
|
+
}
|
|
64
|
+
if (eng.avgDaysBetween !== null) {
|
|
65
|
+
lines.push(`Avg days between: ${eng.avgDaysBetween}`);
|
|
66
|
+
lines.push(`Median days between: ${eng.medianDaysBetween}`);
|
|
67
|
+
}
|
|
68
|
+
if (eng.timeToSession3Days !== null) {
|
|
69
|
+
lines.push(`Time to session 3: ${eng.timeToSession3Days} days`);
|
|
70
|
+
}
|
|
71
|
+
else if (eng.sessionNumber < 3) {
|
|
72
|
+
lines.push(`Time to session 3: not yet (${3 - eng.sessionNumber} more to go)`);
|
|
73
|
+
}
|
|
74
|
+
lines.push(`Current streak: ${eng.currentStreakWeeks} week${eng.currentStreakWeeks !== 1 ? 's' : ''}`);
|
|
75
|
+
if (eng.longestGapDays !== null) {
|
|
76
|
+
lines.push(`Longest gap: ${eng.longestGapDays} days`);
|
|
77
|
+
}
|
|
78
|
+
if (eng.sessionsPerMonth.length > 0) {
|
|
79
|
+
lines.push('');
|
|
80
|
+
for (const m of eng.sessionsPerMonth) {
|
|
81
|
+
lines.push(` ${m.month}: ${m.count} session${m.count !== 1 ? 's' : ''}`);
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
return lines.join('\n');
|
|
85
|
+
}
|
|
51
86
|
function formatStats(stats, projectName) {
|
|
52
87
|
const lines = [];
|
|
53
88
|
lines.push(`memnant stats: ${projectName}`);
|
package/dist/cli/stats.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stats.js","sourceRoot":"","sources":["../../src/cli/stats.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAChC,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAG5B,MAAM,UAAU,oBAAoB,CAAC,OAAgB;IACnD,OAAO;SACJ,OAAO,CAAC,OAAO,CAAC;SAChB,WAAW,CAAC,kCAAkC,CAAC;SAC/C,MAAM,CAAC,QAAQ,EAAE,gBAAgB,CAAC;SAClC,MAAM,CAAC,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"stats.js","sourceRoot":"","sources":["../../src/cli/stats.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* memnant — Non-blocking update check.
|
|
3
|
+
*
|
|
4
|
+
* Compares installed version against npm registry.
|
|
5
|
+
* Prints a one-liner to stderr if outdated. Never blocks startup.
|
|
6
|
+
* Caches the check result to avoid hitting the registry on every run.
|
|
7
|
+
*/
|
|
8
|
+
export declare function isNewer(latest: string, current: string): boolean;
|
|
9
|
+
export declare function checkForUpdate(): void;
|
|
10
|
+
//# sourceMappingURL=update-check.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"update-check.d.ts","sourceRoot":"","sources":["../../src/cli/update-check.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAsCH,wBAAgB,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAQhE;AAED,wBAAgB,cAAc,IAAI,IAAI,CAoCrC"}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* memnant — Non-blocking update check.
|
|
3
|
+
*
|
|
4
|
+
* Compares installed version against npm registry.
|
|
5
|
+
* Prints a one-liner to stderr if outdated. Never blocks startup.
|
|
6
|
+
* Caches the check result to avoid hitting the registry on every run.
|
|
7
|
+
*/
|
|
8
|
+
import { readFileSync, writeFileSync, mkdirSync, existsSync } from 'fs';
|
|
9
|
+
import { join } from 'path';
|
|
10
|
+
import { homedir } from 'os';
|
|
11
|
+
import { VERSION } from '../version.js';
|
|
12
|
+
const CACHE_DIR = join(homedir(), '.memnant');
|
|
13
|
+
const CACHE_FILE = join(CACHE_DIR, 'update-check.json');
|
|
14
|
+
const CHECK_INTERVAL_MS = 24 * 60 * 60 * 1000; // 24 hours
|
|
15
|
+
function readCache() {
|
|
16
|
+
try {
|
|
17
|
+
if (!existsSync(CACHE_FILE))
|
|
18
|
+
return null;
|
|
19
|
+
const data = JSON.parse(readFileSync(CACHE_FILE, 'utf-8'));
|
|
20
|
+
if (typeof data.latestVersion === 'string' && typeof data.checkedAt === 'number') {
|
|
21
|
+
return data;
|
|
22
|
+
}
|
|
23
|
+
return null;
|
|
24
|
+
}
|
|
25
|
+
catch {
|
|
26
|
+
return null;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
function writeCache(entry) {
|
|
30
|
+
try {
|
|
31
|
+
if (!existsSync(CACHE_DIR))
|
|
32
|
+
mkdirSync(CACHE_DIR, { recursive: true });
|
|
33
|
+
writeFileSync(CACHE_FILE, JSON.stringify(entry));
|
|
34
|
+
}
|
|
35
|
+
catch {
|
|
36
|
+
// Silent — cache is best-effort
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
export function isNewer(latest, current) {
|
|
40
|
+
const a = latest.split('.').map(Number);
|
|
41
|
+
const b = current.split('.').map(Number);
|
|
42
|
+
for (let i = 0; i < 3; i++) {
|
|
43
|
+
if ((a[i] || 0) > (b[i] || 0))
|
|
44
|
+
return true;
|
|
45
|
+
if ((a[i] || 0) < (b[i] || 0))
|
|
46
|
+
return false;
|
|
47
|
+
}
|
|
48
|
+
return false;
|
|
49
|
+
}
|
|
50
|
+
export function checkForUpdate() {
|
|
51
|
+
// Fire and forget — never blocks
|
|
52
|
+
setImmediate(async () => {
|
|
53
|
+
try {
|
|
54
|
+
const cached = readCache();
|
|
55
|
+
if (cached && Date.now() - cached.checkedAt < CHECK_INTERVAL_MS) {
|
|
56
|
+
if (isNewer(cached.latestVersion, VERSION)) {
|
|
57
|
+
printUpdateNotice(cached.latestVersion);
|
|
58
|
+
}
|
|
59
|
+
return;
|
|
60
|
+
}
|
|
61
|
+
const controller = new AbortController();
|
|
62
|
+
const timeout = setTimeout(() => controller.abort(), 3000);
|
|
63
|
+
const res = await fetch('https://registry.npmjs.org/memnant/latest', {
|
|
64
|
+
signal: controller.signal,
|
|
65
|
+
headers: { 'Accept': 'application/json' },
|
|
66
|
+
});
|
|
67
|
+
clearTimeout(timeout);
|
|
68
|
+
if (!res.ok)
|
|
69
|
+
return;
|
|
70
|
+
const data = await res.json();
|
|
71
|
+
const latest = data.version;
|
|
72
|
+
if (!latest)
|
|
73
|
+
return;
|
|
74
|
+
writeCache({ latestVersion: latest, checkedAt: Date.now() });
|
|
75
|
+
if (isNewer(latest, VERSION)) {
|
|
76
|
+
printUpdateNotice(latest);
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
catch {
|
|
80
|
+
// Silent — network errors, timeouts, etc. are fine
|
|
81
|
+
}
|
|
82
|
+
});
|
|
83
|
+
}
|
|
84
|
+
function printUpdateNotice(latest) {
|
|
85
|
+
process.stderr.write(`\nmemnant ${VERSION} → ${latest} available. Run: npm update -g memnant\n\n`);
|
|
86
|
+
}
|
|
87
|
+
//# sourceMappingURL=update-check.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"update-check.js","sourceRoot":"","sources":["../../src/cli/update-check.ts"],"names":[],"mappings":"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"}
|
package/dist/colony/promote.d.ts
CHANGED
|
@@ -2,10 +2,12 @@
|
|
|
2
2
|
* Colony promotion — copies records from project ledgers to the colony.
|
|
3
3
|
*
|
|
4
4
|
* Auto-promotes framework_fix and rejected decisions. Deduplicates
|
|
5
|
-
* by embedding similarity (>0.92 = duplicate,
|
|
5
|
+
* by embedding similarity (>0.92 = duplicate, increment confirmation).
|
|
6
6
|
*/
|
|
7
7
|
import type { Record } from '../types.js';
|
|
8
|
+
export declare function findDuplicate(colonyDb: any, embedding: Float32Array, threshold?: number): string | null;
|
|
8
9
|
export declare function isDuplicate(colonyDb: any, embedding: Float32Array, threshold?: number): boolean;
|
|
10
|
+
export declare function incrementConfirmation(db: any, colonyRecordId: string): void;
|
|
9
11
|
export declare function promoteToColony(colonyDb: any, record: Record, sourceProjectId: string): Promise<{
|
|
10
12
|
id: string;
|
|
11
13
|
source_project_id: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"promote.d.ts","sourceRoot":"","sources":["../../src/colony/promote.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAO1C,wBAAgB,WAAW,CAAC,QAAQ,EAAE,GAAG,EAAE,SAAS,EAAE,YAAY,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,
|
|
1
|
+
{"version":3,"file":"promote.d.ts","sourceRoot":"","sources":["../../src/colony/promote.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAO1C,wBAAgB,aAAa,CAAC,QAAQ,EAAE,GAAG,EAAE,SAAS,EAAE,YAAY,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAYvG;AAED,wBAAgB,WAAW,CAAC,QAAQ,EAAE,GAAG,EAAE,SAAS,EAAE,YAAY,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAE/F;AAED,wBAAgB,qBAAqB,CAAC,EAAE,EAAE,GAAG,EAAE,cAAc,EAAE,MAAM,GAAG,IAAI,CAK3E;AAED,wBAAsB,eAAe,CACnC,QAAQ,EAAE,GAAG,EACb,MAAM,EAAE,MAAM,EACd,eAAe,EAAE,MAAM,GACtB,OAAO,CAAC;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,iBAAiB,EAAE,MAAM,CAAC;IAAC,gBAAgB,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAAC,CAkCrF;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAIvE"}
|
package/dist/colony/promote.js
CHANGED
|
@@ -2,29 +2,38 @@
|
|
|
2
2
|
* Colony promotion — copies records from project ledgers to the colony.
|
|
3
3
|
*
|
|
4
4
|
* Auto-promotes framework_fix and rejected decisions. Deduplicates
|
|
5
|
-
* by embedding similarity (>0.92 = duplicate,
|
|
5
|
+
* by embedding similarity (>0.92 = duplicate, increment confirmation).
|
|
6
6
|
*/
|
|
7
7
|
import { serializeEmbedding, deserializeEmbedding } from '../vector/embedding-utils.js';
|
|
8
8
|
import { dotProduct } from '../vector/search.js';
|
|
9
9
|
import { v4 as uuid } from 'uuid';
|
|
10
10
|
const DEDUP_THRESHOLD = 0.92;
|
|
11
|
-
export function
|
|
11
|
+
export function findDuplicate(colonyDb, embedding, threshold) {
|
|
12
12
|
const t = threshold ?? DEDUP_THRESHOLD;
|
|
13
|
-
const rows = colonyDb.all("SELECT embedding FROM record WHERE embedding IS NOT NULL AND retracted_at IS NULL AND archived_at IS NULL");
|
|
13
|
+
const rows = colonyDb.all("SELECT id, embedding FROM record WHERE embedding IS NOT NULL AND retracted_at IS NULL AND archived_at IS NULL");
|
|
14
14
|
for (const row of rows) {
|
|
15
15
|
const existing = deserializeEmbedding(row.embedding);
|
|
16
16
|
const sim = dotProduct(embedding, existing);
|
|
17
17
|
if (sim >= t)
|
|
18
|
-
return
|
|
18
|
+
return row.id;
|
|
19
19
|
}
|
|
20
|
-
return
|
|
20
|
+
return null;
|
|
21
|
+
}
|
|
22
|
+
export function isDuplicate(colonyDb, embedding, threshold) {
|
|
23
|
+
return findDuplicate(colonyDb, embedding, threshold) !== null;
|
|
24
|
+
}
|
|
25
|
+
export function incrementConfirmation(db, colonyRecordId) {
|
|
26
|
+
db.run('UPDATE record SET confirmation_count = confirmation_count + 1 WHERE id = ?', [colonyRecordId]);
|
|
21
27
|
}
|
|
22
28
|
export async function promoteToColony(colonyDb, record, sourceProjectId) {
|
|
23
29
|
if (!record.embedding)
|
|
24
30
|
return null;
|
|
25
|
-
// Check for duplicate
|
|
26
|
-
|
|
31
|
+
// Check for duplicate — increment confirmation instead of silently skipping
|
|
32
|
+
const duplicateId = findDuplicate(colonyDb, record.embedding);
|
|
33
|
+
if (duplicateId) {
|
|
34
|
+
incrementConfirmation(colonyDb, duplicateId);
|
|
27
35
|
return null;
|
|
36
|
+
}
|
|
28
37
|
const id = uuid();
|
|
29
38
|
const now = new Date().toISOString();
|
|
30
39
|
const embeddingBuffer = serializeEmbedding(record.embedding);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"promote.js","sourceRoot":"","sources":["../../src/colony/promote.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AACxF,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,EAAE,IAAI,IAAI,EAAE,MAAM,MAAM,CAAC;AAElC,MAAM,eAAe,GAAG,IAAI,CAAC;AAE7B,MAAM,UAAU,
|
|
1
|
+
{"version":3,"file":"promote.js","sourceRoot":"","sources":["../../src/colony/promote.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AACxF,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,EAAE,IAAI,IAAI,EAAE,MAAM,MAAM,CAAC;AAElC,MAAM,eAAe,GAAG,IAAI,CAAC;AAE7B,MAAM,UAAU,aAAa,CAAC,QAAa,EAAE,SAAuB,EAAE,SAAkB;IACtF,MAAM,CAAC,GAAG,SAAS,IAAI,eAAe,CAAC;IACvC,MAAM,IAAI,GAAG,QAAQ,CAAC,GAAG,CACvB,+GAA+G,CAChH,CAAC;IAEF,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,MAAM,QAAQ,GAAG,oBAAoB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACrD,MAAM,GAAG,GAAG,UAAU,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;QAC5C,IAAI,GAAG,IAAI,CAAC;YAAE,OAAO,GAAG,CAAC,EAAE,CAAC;IAC9B,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,QAAa,EAAE,SAAuB,EAAE,SAAkB;IACpF,OAAO,aAAa,CAAC,QAAQ,EAAE,SAAS,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC;AAChE,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,EAAO,EAAE,cAAsB;IACnE,EAAE,CAAC,GAAG,CACJ,4EAA4E,EAC5E,CAAC,cAAc,CAAC,CACjB,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,QAAa,EACb,MAAc,EACd,eAAuB;IAEvB,IAAI,CAAC,MAAM,CAAC,SAAS;QAAE,OAAO,IAAI,CAAC;IAEnC,4EAA4E;IAC5E,MAAM,WAAW,GAAG,aAAa,CAAC,QAAQ,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;IAC9D,IAAI,WAAW,EAAE,CAAC;QAChB,qBAAqB,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;QAC7C,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,EAAE,GAAG,IAAI,EAAE,CAAC;IAClB,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IACrC,MAAM,eAAe,GAAG,kBAAkB,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IAE7D,QAAQ,CAAC,GAAG,CACV;iDAC6C,EAC7C;QACE,EAAE;QACF,QAAQ;QACR,MAAM,CAAC,IAAI;QACX,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC;QAC9B,MAAM,CAAC,YAAY;QACnB,eAAe;QACf,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC;QAC3B,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;QAClB,GAAG;QACH,eAAe;QACf,MAAM,CAAC,EAAE;QACT,MAAM,CAAC,eAAe,IAAI,IAAI;KAC/B,CACF,CAAC;IAEF,OAAO,EAAE,EAAE,EAAE,iBAAiB,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC;AACjF,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,IAAY,EAAE,IAAc;IAC5D,IAAI,IAAI,KAAK,eAAe;QAAE,OAAO,IAAI,CAAC;IAC1C,IAAI,IAAI,KAAK,UAAU,IAAI,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC;QAAE,OAAO,IAAI,CAAC;IAClE,OAAO,KAAK,CAAC;AACf,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* memnant — Recruitment: proactive colony pattern surfacing.
|
|
3
|
+
* Colony records confirmed by 3+ projects surface unprompted.
|
|
4
|
+
*/
|
|
5
|
+
export interface RecruitablePattern {
|
|
6
|
+
id: string;
|
|
7
|
+
type: string;
|
|
8
|
+
content_text: string;
|
|
9
|
+
confirmation_count: number;
|
|
10
|
+
similarity: number;
|
|
11
|
+
}
|
|
12
|
+
export declare function findRecruitablePatterns(colonyDb: any, topicEmbedding: Float32Array, minConfirmations?: number, limit?: number): RecruitablePattern[];
|
|
13
|
+
//# sourceMappingURL=recruitment.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"recruitment.d.ts","sourceRoot":"","sources":["../../src/colony/recruitment.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAOH,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;IACrB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,wBAAgB,uBAAuB,CACrC,QAAQ,EAAE,GAAG,EACb,cAAc,EAAE,YAAY,EAC5B,gBAAgB,GAAE,MAAU,EAC5B,KAAK,GAAE,MAAU,GAChB,kBAAkB,EAAE,CA6BtB"}
|