twining-mcp 1.19.0 → 1.20.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.
Files changed (64) hide show
  1. package/README.md +2 -1
  2. package/dist/analytics/analytics-engine.js +1 -1
  3. package/dist/analytics/analytics-engine.js.map +1 -1
  4. package/dist/config.d.ts.map +1 -1
  5. package/dist/config.js +3 -0
  6. package/dist/config.js.map +1 -1
  7. package/dist/engine/blackboard.d.ts +2 -1
  8. package/dist/engine/blackboard.d.ts.map +1 -1
  9. package/dist/engine/blackboard.js +5 -1
  10. package/dist/engine/blackboard.js.map +1 -1
  11. package/dist/engine/branch-watcher.d.ts +34 -0
  12. package/dist/engine/branch-watcher.d.ts.map +1 -0
  13. package/dist/engine/branch-watcher.js +93 -0
  14. package/dist/engine/branch-watcher.js.map +1 -0
  15. package/dist/engine/decisions.d.ts.map +1 -1
  16. package/dist/engine/decisions.js +2 -0
  17. package/dist/engine/decisions.js.map +1 -1
  18. package/dist/engine/exporter.d.ts.map +1 -1
  19. package/dist/engine/exporter.js +1 -0
  20. package/dist/engine/exporter.js.map +1 -1
  21. package/dist/engine/housekeeping.d.ts +26 -1
  22. package/dist/engine/housekeeping.d.ts.map +1 -1
  23. package/dist/engine/housekeeping.js +121 -1
  24. package/dist/engine/housekeeping.js.map +1 -1
  25. package/dist/engine/staleness.d.ts +51 -0
  26. package/dist/engine/staleness.d.ts.map +1 -0
  27. package/dist/engine/staleness.js +135 -0
  28. package/dist/engine/staleness.js.map +1 -0
  29. package/dist/server.d.ts.map +1 -1
  30. package/dist/server.js +6 -6
  31. package/dist/server.js.map +1 -1
  32. package/dist/tools/blackboard-tools.d.ts +1 -1
  33. package/dist/tools/blackboard-tools.d.ts.map +1 -1
  34. package/dist/tools/blackboard-tools.js +3 -1
  35. package/dist/tools/blackboard-tools.js.map +1 -1
  36. package/dist/tools/decision-tools.d.ts +1 -1
  37. package/dist/tools/decision-tools.d.ts.map +1 -1
  38. package/dist/tools/decision-tools.js +4 -2
  39. package/dist/tools/decision-tools.js.map +1 -1
  40. package/dist/tools/housekeeping-tools.d.ts +3 -1
  41. package/dist/tools/housekeeping-tools.d.ts.map +1 -1
  42. package/dist/tools/housekeeping-tools.js +80 -3
  43. package/dist/tools/housekeeping-tools.js.map +1 -1
  44. package/dist/tools/record-tools.d.ts +1 -1
  45. package/dist/tools/record-tools.d.ts.map +1 -1
  46. package/dist/tools/record-tools.js +3 -1
  47. package/dist/tools/record-tools.js.map +1 -1
  48. package/dist/utils/git-branches.d.ts +7 -0
  49. package/dist/utils/git-branches.d.ts.map +1 -0
  50. package/dist/utils/git-branches.js +24 -0
  51. package/dist/utils/git-branches.js.map +1 -0
  52. package/dist/utils/provenance.d.ts +14 -0
  53. package/dist/utils/provenance.d.ts.map +1 -0
  54. package/dist/utils/provenance.js +33 -0
  55. package/dist/utils/provenance.js.map +1 -0
  56. package/dist/utils/record-sentinel.d.ts +8 -0
  57. package/dist/utils/record-sentinel.d.ts.map +1 -0
  58. package/dist/utils/record-sentinel.js +17 -0
  59. package/dist/utils/record-sentinel.js.map +1 -0
  60. package/dist/utils/types.d.ts +11 -1
  61. package/dist/utils/types.d.ts.map +1 -1
  62. package/dist/utils/types.js +0 -4
  63. package/dist/utils/types.js.map +1 -1
  64. package/package.json +1 -1
@@ -7,8 +7,12 @@
7
7
  */
8
8
  import fs from "node:fs";
9
9
  import path from "node:path";
10
+ import { auditStaleness } from "./staleness.js";
11
+ import { detectDeletedBranches } from "./branch-watcher.js";
10
12
  /** Default: flag provisionals older than 7 days. */
11
13
  const STALE_PROVISIONAL_DAYS = 7;
14
+ /** Default: flag at score >= this when the user explicitly requests staleness review. */
15
+ const DEFAULT_STALENESS_THRESHOLD = 0.95;
12
16
  /** Default: keep metrics for 30 days. */
13
17
  const METRICS_RETENTION_DAYS = 30;
14
18
  export class HousekeepingEngine {
@@ -17,18 +21,24 @@ export class HousekeepingEngine {
17
21
  decisionStore;
18
22
  archiver;
19
23
  graphEngine;
20
- constructor(twiningDir, blackboardStore, decisionStore, archiver, graphEngine) {
24
+ projectRoot;
25
+ stalenessThreshold;
26
+ constructor(twiningDir, blackboardStore, decisionStore, archiver, graphEngine, projectRoot = null, stalenessThreshold = DEFAULT_STALENESS_THRESHOLD) {
21
27
  this.twiningDir = twiningDir;
22
28
  this.blackboardStore = blackboardStore;
23
29
  this.decisionStore = decisionStore;
24
30
  this.archiver = archiver;
25
31
  this.graphEngine = graphEngine;
32
+ this.projectRoot = projectRoot;
33
+ this.stalenessThreshold = stalenessThreshold;
26
34
  }
27
35
  async run(options) {
28
36
  const staleDays = options?.stale_days ?? STALE_PROVISIONAL_DAYS;
29
37
  const metricsRetentionDays = options?.metrics_retention_days ?? METRICS_RETENTION_DAYS;
30
38
  const execute = options?.execute ?? false;
31
39
  const promoteProvisionals = options?.promote_provisionals ?? false;
40
+ const stalenessReview = options?.staleness_review ?? false;
41
+ const mergeSweep = options?.merge_sweep ?? false;
32
42
  const result = {
33
43
  archived: { count: 0, file: "" },
34
44
  deduplicated: { removed: 0 },
@@ -153,6 +163,105 @@ export class HousekeepingEngine {
153
163
  catch {
154
164
  // Non-fatal
155
165
  }
166
+ // 7. Staleness review — opt-in (provenance-aware orphan detection).
167
+ if (stalenessReview && this.projectRoot) {
168
+ try {
169
+ const allDecisionEntries = await this.decisionStore.getIndex();
170
+ const decisions = [];
171
+ for (const entry of allDecisionEntries) {
172
+ if (entry.status !== "active")
173
+ continue;
174
+ const d = await this.decisionStore.get(entry.id);
175
+ if (d)
176
+ decisions.push(d);
177
+ }
178
+ const { entries: bbEntries } = await this.blackboardStore.read();
179
+ const audit = auditStaleness(decisions, bbEntries, {
180
+ threshold: this.stalenessThreshold,
181
+ projectRoot: this.projectRoot,
182
+ });
183
+ result.staleness_review = audit;
184
+ }
185
+ catch {
186
+ // Non-fatal — staleness review is opt-in and shouldn't break housekeeping
187
+ }
188
+ }
189
+ // 8. Merge sweep — opt-in (branch-watcher diff vs last housekeeping snapshot).
190
+ // Snapshot file is only updated when execute=true; dry-runs compute the
191
+ // diff against the existing baseline without advancing it, so a preview
192
+ // can never silently consume deletions before the user acts.
193
+ if (mergeSweep && this.projectRoot) {
194
+ try {
195
+ const sweep = detectDeletedBranches(this.twiningDir, this.projectRoot, execute);
196
+ const candidates = [];
197
+ if (sweep.deleted_branches.length > 0) {
198
+ const deletedSet = new Set(sweep.deleted_branches);
199
+ // Active decisions only — archived ones are already off the books.
200
+ const decisionIndex = await this.decisionStore.getIndex();
201
+ for (const idx of decisionIndex) {
202
+ if (idx.status !== "active")
203
+ continue;
204
+ const d = await this.decisionStore.get(idx.id);
205
+ if (!d?.provenance?.branch)
206
+ continue;
207
+ if (!deletedSet.has(d.provenance.branch))
208
+ continue;
209
+ const item = {
210
+ id: d.id,
211
+ kind: "decision",
212
+ summary: d.summary,
213
+ scope: d.scope,
214
+ branch: d.provenance.branch,
215
+ };
216
+ if (d.provenance.commit_sha)
217
+ item.commit_sha = d.provenance.commit_sha;
218
+ if (d.provenance.recorded_at)
219
+ item.recorded_at = d.provenance.recorded_at;
220
+ candidates.push(item);
221
+ }
222
+ const { entries: bbEntries } = await this.blackboardStore.read();
223
+ for (const e of bbEntries) {
224
+ if (!e.provenance?.branch)
225
+ continue;
226
+ if (!deletedSet.has(e.provenance.branch))
227
+ continue;
228
+ const item = {
229
+ id: e.id,
230
+ kind: "blackboard",
231
+ summary: e.summary,
232
+ scope: e.scope,
233
+ branch: e.provenance.branch,
234
+ };
235
+ if (e.provenance.commit_sha)
236
+ item.commit_sha = e.provenance.commit_sha;
237
+ if (e.provenance.recorded_at)
238
+ item.recorded_at = e.provenance.recorded_at;
239
+ candidates.push(item);
240
+ }
241
+ }
242
+ result.merge_sweep = {
243
+ initial_record: sweep.initial_record,
244
+ enumerated: sweep.enumerated,
245
+ current_branches: sweep.current_branches,
246
+ deleted_branches: sweep.deleted_branches,
247
+ since: sweep.state_recorded_at,
248
+ candidates,
249
+ };
250
+ }
251
+ catch {
252
+ // Non-fatal — merge sweep is opt-in and shouldn't break housekeeping
253
+ }
254
+ }
255
+ // Dedupe: if both staleness_review and merge_sweep ran, an entry from a
256
+ // recently-deleted branch will appear in both candidate lists (branch_gone
257
+ // signal vs deleted-branch sweep). Remove the staleness duplicate so the
258
+ // caller doesn't see the same ID framed two different ways. merge_sweep
259
+ // wins because it's the more specific signal.
260
+ if (result.staleness_review && result.merge_sweep) {
261
+ const sweepIds = new Set(result.merge_sweep.candidates.map((c) => c.id));
262
+ result.staleness_review.candidates =
263
+ result.staleness_review.candidates.filter((c) => !sweepIds.has(c.id));
264
+ }
156
265
  // Build summary
157
266
  const prefix = execute ? "" : "[preview] ";
158
267
  const verb = execute ? "" : "would ";
@@ -171,6 +280,17 @@ export class HousekeepingEngine {
171
280
  parts.push(`${verb}prune ${result.graph_pruned.removed} orphaned entities`);
172
281
  if (result.metrics_rotated.removed > 0)
173
282
  parts.push(`${verb}rotate ${result.metrics_rotated.removed} old metrics`);
283
+ if (result.staleness_review && result.staleness_review.candidates.length > 0) {
284
+ parts.push(`${result.staleness_review.candidates.length} items ≥ score ${result.staleness_review.threshold} flagged stale`);
285
+ }
286
+ if (result.merge_sweep) {
287
+ if (result.merge_sweep.initial_record) {
288
+ parts.push(`merge_sweep: recorded initial branch snapshot (${result.merge_sweep.current_branches?.length ?? 0} branches)`);
289
+ }
290
+ else if (result.merge_sweep.deleted_branches.length > 0) {
291
+ parts.push(`merge_sweep: ${result.merge_sweep.deleted_branches.length} deleted branch(es), ${result.merge_sweep.candidates.length} entries from them`);
292
+ }
293
+ }
174
294
  result.summary = parts.length > 0
175
295
  ? prefix + parts.join(", ")
176
296
  : "Nothing to clean up";
@@ -1 +1 @@
1
- {"version":3,"file":"housekeeping.js","sourceRoot":"","sources":["../../src/engine/housekeeping.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"housekeeping.js","sourceRoot":"","sources":["../../src/engine/housekeeping.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,51 @@
1
+ import type { BlackboardEntry, Decision } from "../utils/types.js";
2
+ export interface StalenessReason {
3
+ signal: "scope_path_missing" | "affected_files_missing" | "branch_gone";
4
+ score: number;
5
+ detail: string;
6
+ }
7
+ export interface StaleItem {
8
+ id: string;
9
+ kind: "decision" | "blackboard";
10
+ summary: string;
11
+ scope: string;
12
+ score: number;
13
+ reasons: StalenessReason[];
14
+ branch?: string;
15
+ commit_sha?: string;
16
+ recorded_at?: string;
17
+ }
18
+ export interface StalenessAuditOptions {
19
+ threshold: number;
20
+ projectRoot: string;
21
+ }
22
+ export interface StalenessAuditResult {
23
+ threshold: number;
24
+ candidates: StaleItem[];
25
+ }
26
+ /**
27
+ * Score one decision or blackboard entry. Pure given probe results.
28
+ * Exported for unit testing without filesystem.
29
+ */
30
+ export declare function scoreItem(item: {
31
+ scope: string;
32
+ affected_files?: string[];
33
+ provenance?: {
34
+ branch?: string;
35
+ };
36
+ }, probes: {
37
+ scopePathExists: (scope: string) => boolean | null;
38
+ fileExists: (file: string) => boolean;
39
+ branchKnown: (branch: string) => boolean;
40
+ }): {
41
+ score: number;
42
+ reasons: StalenessReason[];
43
+ };
44
+ /** Build the three probes for a real project root. Cheap one-shot setup. */
45
+ export declare function buildProbes(projectRoot: string): {
46
+ scopePathExists: (scope: string) => boolean | null;
47
+ fileExists: (file: string) => boolean;
48
+ branchKnown: (branch: string) => boolean;
49
+ };
50
+ export declare function auditStaleness(decisions: Decision[], blackboardEntries: BlackboardEntry[], options: StalenessAuditOptions): StalenessAuditResult;
51
+ //# sourceMappingURL=staleness.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"staleness.d.ts","sourceRoot":"","sources":["../../src/engine/staleness.ts"],"names":[],"mappings":"AAmBA,OAAO,KAAK,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAGnE,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,oBAAoB,GAAG,wBAAwB,GAAG,aAAa,CAAC;IACxE,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,UAAU,GAAG,YAAY,CAAC;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,eAAe,EAAE,CAAC;IAC3B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,qBAAqB;IACpC,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,oBAAoB;IACnC,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,SAAS,EAAE,CAAC;CACzB;AAED;;;GAGG;AACH,wBAAgB,SAAS,CACvB,IAAI,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAAC,UAAU,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,EACpF,MAAM,EAAE;IACN,eAAe,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,GAAG,IAAI,CAAC;IACnD,UAAU,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC;IACtC,WAAW,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC;CAC1C,GACA;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,eAAe,EAAE,CAAA;CAAE,CAuC/C;AAED,4EAA4E;AAC5E,wBAAgB,WAAW,CAAC,WAAW,EAAE,MAAM,GAAG;IAChD,eAAe,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,GAAG,IAAI,CAAC;IACnD,UAAU,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC;IACtC,WAAW,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC;CAC1C,CAyBA;AAED,wBAAgB,cAAc,CAC5B,SAAS,EAAE,QAAQ,EAAE,EACrB,iBAAiB,EAAE,eAAe,EAAE,EACpC,OAAO,EAAE,qBAAqB,GAC7B,oBAAoB,CA8CtB"}
@@ -0,0 +1,135 @@
1
+ /**
2
+ * Staleness detection — scores blackboard entries and decisions on three
3
+ * deterministic signals:
4
+ *
5
+ * 1. scope_path_missing — scope looks like a file/dir path and no longer exists.
6
+ * 2. affected_files_missing — proportion of an entry's affected_files no longer on disk.
7
+ * 3. branch_gone — provenance.branch is no longer in the local git ref list
8
+ * (i.e. branch was deleted, typically after merge).
9
+ *
10
+ * Final score is max() of the three signals; an entry is flagged when the score
11
+ * crosses a configurable threshold (default 0.95). Items with no checkable
12
+ * signals (scope=="project", no affected_files, no provenance) score 0 and are
13
+ * never flagged.
14
+ *
15
+ * Semantic-content review (LLM-judged "Wave 3 / HMS Lancaster" cases) is out
16
+ * of scope here — see follow-up issue.
17
+ */
18
+ import fs from "node:fs";
19
+ import path from "node:path";
20
+ import { listLocalBranches } from "../utils/git-branches.js";
21
+ /**
22
+ * Score one decision or blackboard entry. Pure given probe results.
23
+ * Exported for unit testing without filesystem.
24
+ */
25
+ export function scoreItem(item, probes) {
26
+ const reasons = [];
27
+ // Signal 1: scope path missing
28
+ const scopeProbe = probes.scopePathExists(item.scope);
29
+ if (scopeProbe === false) {
30
+ reasons.push({
31
+ signal: "scope_path_missing",
32
+ score: 1.0,
33
+ detail: `scope "${item.scope}" no longer exists on disk`,
34
+ });
35
+ }
36
+ // Signal 2: affected files missing (proportion)
37
+ if (item.affected_files && item.affected_files.length > 0) {
38
+ const missing = item.affected_files.filter((f) => !probes.fileExists(f));
39
+ if (missing.length > 0) {
40
+ const proportion = missing.length / item.affected_files.length;
41
+ reasons.push({
42
+ signal: "affected_files_missing",
43
+ score: proportion,
44
+ detail: `${missing.length}/${item.affected_files.length} affected files missing: ${missing.slice(0, 3).join(", ")}${missing.length > 3 ? ", …" : ""}`,
45
+ });
46
+ }
47
+ }
48
+ // Signal 3: branch gone
49
+ if (item.provenance?.branch && !probes.branchKnown(item.provenance.branch)) {
50
+ reasons.push({
51
+ signal: "branch_gone",
52
+ score: 1.0,
53
+ detail: `originating branch "${item.provenance.branch}" no longer exists`,
54
+ });
55
+ }
56
+ const score = reasons.length > 0
57
+ ? Math.max(...reasons.map((r) => r.score))
58
+ : 0;
59
+ return { score, reasons };
60
+ }
61
+ /** Build the three probes for a real project root. Cheap one-shot setup. */
62
+ export function buildProbes(projectRoot) {
63
+ const knownBranches = listLocalBranches(projectRoot);
64
+ // Distinguish "branch listing failed" (return null) from "listing succeeded
65
+ // but returned empty" (legitimately empty repo). When listing fails the
66
+ // probe always returns true so branch_gone never fires.
67
+ const listingFailed = knownBranches === null;
68
+ const branches = knownBranches ?? new Set();
69
+ return {
70
+ scopePathExists: (scope) => {
71
+ if (!scope || scope === "project" || scope === "global")
72
+ return null;
73
+ // Heuristic: a "path-like" scope contains "/" or matches a real entry on disk.
74
+ // Strings like "architecture" or "implementation" are categorical, not paths — return null.
75
+ const looksLikePath = scope.includes("/") || scope.includes(".");
76
+ if (!looksLikePath)
77
+ return null;
78
+ const candidate = scope.endsWith("/") ? scope.slice(0, -1) : scope;
79
+ return fs.existsSync(path.join(projectRoot, candidate));
80
+ },
81
+ fileExists: (file) => {
82
+ if (!file)
83
+ return true;
84
+ return fs.existsSync(path.join(projectRoot, file));
85
+ },
86
+ branchKnown: (branch) => listingFailed ? true : branches.has(branch),
87
+ };
88
+ }
89
+ export function auditStaleness(decisions, blackboardEntries, options) {
90
+ const probes = buildProbes(options.projectRoot);
91
+ const candidates = [];
92
+ for (const d of decisions) {
93
+ const { score, reasons } = scoreItem(d, probes);
94
+ if (score >= options.threshold && reasons.length > 0) {
95
+ const item = {
96
+ id: d.id,
97
+ kind: "decision",
98
+ summary: d.summary,
99
+ scope: d.scope,
100
+ score,
101
+ reasons,
102
+ };
103
+ if (d.provenance?.branch)
104
+ item.branch = d.provenance.branch;
105
+ if (d.provenance?.commit_sha)
106
+ item.commit_sha = d.provenance.commit_sha;
107
+ if (d.provenance?.recorded_at)
108
+ item.recorded_at = d.provenance.recorded_at;
109
+ candidates.push(item);
110
+ }
111
+ }
112
+ for (const e of blackboardEntries) {
113
+ const { score, reasons } = scoreItem({ scope: e.scope, provenance: e.provenance }, probes);
114
+ if (score >= options.threshold && reasons.length > 0) {
115
+ const item = {
116
+ id: e.id,
117
+ kind: "blackboard",
118
+ summary: e.summary,
119
+ scope: e.scope,
120
+ score,
121
+ reasons,
122
+ };
123
+ if (e.provenance?.branch)
124
+ item.branch = e.provenance.branch;
125
+ if (e.provenance?.commit_sha)
126
+ item.commit_sha = e.provenance.commit_sha;
127
+ if (e.provenance?.recorded_at)
128
+ item.recorded_at = e.provenance.recorded_at;
129
+ candidates.push(item);
130
+ }
131
+ }
132
+ candidates.sort((a, b) => b.score - a.score);
133
+ return { threshold: options.threshold, candidates };
134
+ }
135
+ //# sourceMappingURL=staleness.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"staleness.js","sourceRoot":"","sources":["../../src/engine/staleness.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAmCpE,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AAKpE;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,SAAS,CAAC;IAClB,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,OAAO,kBAAkB,EAAE,aAAa,CAAC;CAClD;AAED,wBAAgB,YAAY,CAAC,WAAW,EAAE,MAAM,GAAG,aAAa,CA+K/D"}
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAmCpE,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AAKpE;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,SAAS,CAAC;IAClB,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,OAAO,kBAAkB,EAAE,aAAa,CAAC;CAClD;AAED,wBAAgB,YAAY,CAAC,WAAW,EAAE,MAAM,GAAG,aAAa,CAkL/D"}
package/dist/server.js CHANGED
@@ -56,7 +56,7 @@ export function createServer(projectRoot) {
56
56
  const indexManager = new IndexManager(twiningDir);
57
57
  const searchEngine = new SearchEngine(embedder, indexManager);
58
58
  // Create engines (with embedding support)
59
- const blackboardEngine = new BlackboardEngine(blackboardStore, embedder, indexManager, searchEngine);
59
+ const blackboardEngine = new BlackboardEngine(blackboardStore, embedder, indexManager, searchEngine, projectRoot);
60
60
  const graphEngine = new GraphEngine(graphStore);
61
61
  const decisionEngine = new DecisionEngine(decisionStore, blackboardEngine, embedder, indexManager, projectRoot, searchEngine, graphEngine);
62
62
  const archiver = new Archiver(twiningDir, blackboardStore, blackboardEngine, indexManager);
@@ -83,7 +83,7 @@ export function createServer(projectRoot) {
83
83
  const verifyEngine = new VerifyEngine(decisionStore, blackboardStore, blackboardEngine, graphEngine, projectRoot);
84
84
  verifyEngine.setAssemblyChecker((agentId) => contextAssembler.hasRecentAssembly(agentId));
85
85
  // Create housekeeping engine
86
- const housekeepingEngine = new HousekeepingEngine(twiningDir, blackboardStore, decisionStore, archiver, graphEngine);
86
+ const housekeepingEngine = new HousekeepingEngine(twiningDir, blackboardStore, decisionStore, archiver, graphEngine, projectRoot, config.housekeeping?.staleness_threshold);
87
87
  // Create exporter
88
88
  const exporter = new Exporter(blackboardStore, decisionStore, graphStore);
89
89
  // Process pending posts and actions (fire-and-forget, non-fatal)
@@ -110,10 +110,10 @@ export function createServer(projectRoot) {
110
110
  const toolMode = config.tools?.mode ?? "full";
111
111
  const fullSurface = config.tools?.full_surface ?? false;
112
112
  // Core tools (always registered in both full and lite modes)
113
- registerRecordTools(server, blackboardEngine, decisionEngine, projectRoot);
114
- registerHousekeepingTools(server, housekeepingEngine);
115
- registerBlackboardTools(server, blackboardEngine, { fullSurface });
116
- registerDecisionTools(server, decisionEngine, { fullSurface });
113
+ registerRecordTools(server, blackboardEngine, decisionEngine, projectRoot, twiningDir);
114
+ registerHousekeepingTools(server, housekeepingEngine, blackboardEngine, decisionStore);
115
+ registerBlackboardTools(server, blackboardEngine, twiningDir, { fullSurface });
116
+ registerDecisionTools(server, decisionEngine, twiningDir, { fullSurface });
117
117
  registerContextTools(server, contextAssembler, { fullSurface });
118
118
  if (fullSurface) {
119
119
  registerVerifyTools(server, verifyEngine);
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import type { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
2
2
  import type { BlackboardEngine } from "../engine/blackboard.js";
3
- export declare function registerBlackboardTools(server: McpServer, engine: BlackboardEngine, options?: {
3
+ export declare function registerBlackboardTools(server: McpServer, engine: BlackboardEngine, twiningDir: string, options?: {
4
4
  fullSurface?: boolean;
5
5
  }): void;
6
6
  //# sourceMappingURL=blackboard-tools.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"blackboard-tools.d.ts","sourceRoot":"","sources":["../../src/tools/blackboard-tools.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAIhE,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,SAAS,EACjB,MAAM,EAAE,gBAAgB,EACxB,OAAO,GAAE;IAAE,WAAW,CAAC,EAAE,OAAO,CAAA;CAAO,GACtC,IAAI,CA6LN"}
1
+ {"version":3,"file":"blackboard-tools.d.ts","sourceRoot":"","sources":["../../src/tools/blackboard-tools.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAKhE,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,SAAS,EACjB,MAAM,EAAE,gBAAgB,EACxB,UAAU,EAAE,MAAM,EAClB,OAAO,GAAE;IAAE,WAAW,CAAC,EAAE,OAAO,CAAA;CAAO,GACtC,IAAI,CA8LN"}
@@ -5,7 +5,8 @@
5
5
  import { z } from "zod";
6
6
  import { ENTRY_TYPES } from "../utils/types.js";
7
7
  import { toolResult, toolError, TwiningError } from "../utils/errors.js";
8
- export function registerBlackboardTools(server, engine, options = {}) {
8
+ import { writeRecordSentinel } from "../utils/record-sentinel.js";
9
+ export function registerBlackboardTools(server, engine, twiningDir, options = {}) {
9
10
  // twining_post — Post an entry to the shared blackboard
10
11
  server.registerTool("twining_post", {
11
12
  description: "Share a finding, warning, need, or status update with other agents. Post a 'status' entry before ending each session. Does NOT accept entry_type 'decision' — use twining_decide instead.",
@@ -36,6 +37,7 @@ export function registerBlackboardTools(server, engine, options = {}) {
36
37
  }, async (args) => {
37
38
  try {
38
39
  const result = await engine.post(args);
40
+ writeRecordSentinel(twiningDir);
39
41
  return toolResult(result);
40
42
  }
41
43
  catch (e) {
@@ -1 +1 @@
1
- {"version":3,"file":"blackboard-tools.js","sourceRoot":"","sources":["../../src/tools/blackboard-tools.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"blackboard-tools.js","sourceRoot":"","sources":["../../src/tools/blackboard-tools.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import type { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
2
2
  import type { DecisionEngine } from "../engine/decisions.js";
3
- export declare function registerDecisionTools(server: McpServer, engine: DecisionEngine, options?: {
3
+ export declare function registerDecisionTools(server: McpServer, engine: DecisionEngine, twiningDir: string, options?: {
4
4
  fullSurface?: boolean;
5
5
  }): void;
6
6
  //# sourceMappingURL=decision-tools.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"decision-tools.d.ts","sourceRoot":"","sources":["../../src/tools/decision-tools.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAG7D,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,SAAS,EACjB,MAAM,EAAE,cAAc,EACtB,OAAO,GAAE;IAAE,WAAW,CAAC,EAAE,OAAO,CAAA;CAAO,GACtC,IAAI,CAmYN"}
1
+ {"version":3,"file":"decision-tools.d.ts","sourceRoot":"","sources":["../../src/tools/decision-tools.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAI7D,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,SAAS,EACjB,MAAM,EAAE,cAAc,EACtB,UAAU,EAAE,MAAM,EAClB,OAAO,GAAE;IAAE,WAAW,CAAC,EAAE,OAAO,CAAA;CAAO,GACtC,IAAI,CAoYN"}
@@ -4,7 +4,8 @@
4
4
  */
5
5
  import { z } from "zod";
6
6
  import { toolResult, toolError, TwiningError } from "../utils/errors.js";
7
- export function registerDecisionTools(server, engine, options = {}) {
7
+ import { writeRecordSentinel } from "../utils/record-sentinel.js";
8
+ export function registerDecisionTools(server, engine, twiningDir, options = {}) {
8
9
  // twining_decide — Record a decision with full rationale (full surface only — use twining_record instead)
9
10
  if (options.fullSurface)
10
11
  server.registerTool("twining_decide", {
@@ -80,6 +81,7 @@ export function registerDecisionTools(server, engine, options = {}) {
80
81
  }, async (args) => {
81
82
  try {
82
83
  const result = await engine.decide(args);
84
+ writeRecordSentinel(twiningDir);
83
85
  return toolResult(result);
84
86
  }
85
87
  catch (e) {
@@ -243,7 +245,7 @@ export function registerDecisionTools(server, engine, options = {}) {
243
245
  .optional()
244
246
  .describe("Filter by decision domain (e.g., 'architecture', 'implementation')"),
245
247
  status: z
246
- .enum(["active", "provisional", "superseded", "overridden"])
248
+ .enum(["active", "provisional", "superseded", "overridden", "archived"])
247
249
  .optional()
248
250
  .describe("Filter by decision status"),
249
251
  confidence: z
@@ -1 +1 @@
1
- {"version":3,"file":"decision-tools.js","sourceRoot":"","sources":["../../src/tools/decision-tools.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"decision-tools.js","sourceRoot":"","sources":["../../src/tools/decision-tools.ts"],"names":[],"mappings":"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"}