@reposkein/mcp 0.6.1 → 0.8.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 +1 -0
- package/binary-digests.json +4 -4
- package/dist/SKILL.md +22 -0
- package/dist/cli/adr.js +1 -1
- package/dist/cli/adr.js.map +1 -1
- package/dist/cli/adrReanchor.d.ts +8 -0
- package/dist/cli/adrReanchor.js +74 -0
- package/dist/cli/adrReanchor.js.map +1 -0
- package/dist/cli/doctor.d.ts +2 -2
- package/dist/cli/doctor.js +12 -5
- package/dist/cli/doctor.js.map +1 -1
- package/dist/cli/doctorDecisions.d.ts +5 -0
- package/dist/cli/doctorDecisions.js +39 -2
- package/dist/cli/doctorDecisions.js.map +1 -1
- package/dist/cli/doctorFreshness.d.ts +6 -0
- package/dist/cli/doctorFreshness.js +23 -0
- package/dist/cli/doctorFreshness.js.map +1 -1
- package/dist/cli/migrate.d.ts +26 -0
- package/dist/cli/migrate.js +208 -0
- package/dist/cli/migrate.js.map +1 -0
- package/dist/index.d.ts +1 -1
- package/dist/index.js +30 -7
- package/dist/index.js.map +1 -1
- package/dist/server/createMcpServer.d.ts +5 -1
- package/dist/server/createMcpServer.js +16 -0
- package/dist/server/createMcpServer.js.map +1 -1
- package/dist/store/decisions.d.ts +22 -3
- package/dist/store/decisions.js +71 -15
- package/dist/store/decisions.js.map +1 -1
- package/dist/store/instrumentTool.d.ts +9 -1
- package/dist/store/instrumentTool.js +33 -2
- package/dist/store/instrumentTool.js.map +1 -1
- package/dist/store/reanchor.d.ts +33 -0
- package/dist/store/reanchor.js +85 -0
- package/dist/store/reanchor.js.map +1 -0
- package/dist/store/repoSession.d.ts +19 -0
- package/dist/store/repoSession.js +25 -0
- package/dist/store/repoSession.js.map +1 -1
- package/dist/store/trackedGraph.d.ts +14 -0
- package/dist/store/trackedGraph.js +39 -0
- package/dist/store/trackedGraph.js.map +1 -0
- package/dist/tools/reaffirmDecision.d.ts +4 -2
- package/dist/tools/reaffirmDecision.js +4 -2
- package/dist/tools/reaffirmDecision.js.map +1 -1
- package/dist/tools/reanchorDecision.d.ts +12 -0
- package/dist/tools/reanchorDecision.js +52 -0
- package/dist/tools/reanchorDecision.js.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { anchorRepoIds, loadDecisions } from "../store/decisions.js";
|
|
2
|
+
import { applyReanchor, planReanchor } from "../store/reanchor.js";
|
|
3
|
+
const err = (text) => ({ content: [{ type: "text", text }], isError: true });
|
|
4
|
+
function planReport(plan) {
|
|
5
|
+
return {
|
|
6
|
+
decision_id: plan.decision_id,
|
|
7
|
+
changed: plan.changed,
|
|
8
|
+
unresolved: plan.unresolved,
|
|
9
|
+
anchors: plan.anchors.map((a) => ({
|
|
10
|
+
node_id: a.anchor.node_id,
|
|
11
|
+
action: a.action,
|
|
12
|
+
...(a.to ? { to_node_id: a.to.node_id } : {}),
|
|
13
|
+
...(a.candidates !== undefined ? { candidates: a.candidates } : {}),
|
|
14
|
+
})),
|
|
15
|
+
};
|
|
16
|
+
}
|
|
17
|
+
/** Mechanical anchor repair (REP-24): rebinds anchors whose node moved or
|
|
18
|
+
* whose id churned, on confident matches only. Prose and (v2) body hash are
|
|
19
|
+
* untouched; staleness flags survive — reaffirm_decision clears those. */
|
|
20
|
+
export function makeReanchorDecision(store, repoId, repoPath, opts = {}) {
|
|
21
|
+
const today = opts.today ?? (() => new Date().toISOString().slice(0, 10));
|
|
22
|
+
return async (args) => {
|
|
23
|
+
try {
|
|
24
|
+
const { decisions } = loadDecisions(repoPath);
|
|
25
|
+
const targets = args.decision_id
|
|
26
|
+
? decisions.filter((d) => d.id === args.decision_id)
|
|
27
|
+
: decisions.filter((d) => d.anchors.length > 0);
|
|
28
|
+
if (args.decision_id && targets.length === 0)
|
|
29
|
+
return err(`unknown decision: ${args.decision_id}`);
|
|
30
|
+
const repoIds = await anchorRepoIds(store, repoId);
|
|
31
|
+
// Hoisted so every decision in this call gets the same stamp — a sweep
|
|
32
|
+
// straddling midnight must not split across two dates.
|
|
33
|
+
const reanchoredAt = today();
|
|
34
|
+
const results = [];
|
|
35
|
+
for (const rec of targets) {
|
|
36
|
+
const plan = await planReanchor(store, repoIds, rec);
|
|
37
|
+
if (!args.dry_run)
|
|
38
|
+
applyReanchor(repoPath, rec, plan, reanchoredAt);
|
|
39
|
+
results.push(planReport(plan));
|
|
40
|
+
}
|
|
41
|
+
return {
|
|
42
|
+
content: [
|
|
43
|
+
{ type: "text", text: JSON.stringify({ ok: true, dry_run: args.dry_run === true, results }) },
|
|
44
|
+
],
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
catch (e) {
|
|
48
|
+
return err(e.message);
|
|
49
|
+
}
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
//# sourceMappingURL=reanchorDecision.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reanchorDecision.js","sourceRoot":"","sources":["../../src/tools/reanchorDecision.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED