lockwire 0.1.31 → 0.1.33
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 +17 -4
- package/dist/actions.d.ts +82 -5
- package/dist/actions.d.ts.map +1 -1
- package/dist/actions.js +395 -10
- package/dist/actions.js.map +1 -1
- package/dist/cli.js +69 -6
- package/dist/cli.js.map +1 -1
- package/dist/compat.d.ts +21 -0
- package/dist/compat.d.ts.map +1 -0
- package/dist/compat.js +59 -0
- package/dist/compat.js.map +1 -0
- package/dist/format.d.ts +3 -1
- package/dist/format.d.ts.map +1 -1
- package/dist/format.js +42 -9
- package/dist/format.js.map +1 -1
- package/dist/hook-claude.d.ts +6 -0
- package/dist/hook-claude.d.ts.map +1 -1
- package/dist/hook-claude.js +26 -0
- package/dist/hook-claude.js.map +1 -1
- package/dist/hook-common.d.ts +5 -0
- package/dist/hook-common.d.ts.map +1 -1
- package/dist/hook-common.js +12 -2
- package/dist/hook-common.js.map +1 -1
- package/dist/index.d.ts +3 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -1
- package/dist/index.js.map +1 -1
- package/dist/lockfile.d.ts +2 -0
- package/dist/lockfile.d.ts.map +1 -1
- package/dist/lockfile.js +13 -2
- package/dist/lockfile.js.map +1 -1
- package/dist/mcp-protocol.d.ts +118 -0
- package/dist/mcp-protocol.d.ts.map +1 -0
- package/dist/mcp-protocol.js +237 -0
- package/dist/mcp-protocol.js.map +1 -0
- package/dist/mcp-server.d.ts +1 -1
- package/dist/mcp-server.d.ts.map +1 -1
- package/dist/mcp-server.js +45 -6
- package/dist/mcp-server.js.map +1 -1
- package/dist/moves.d.ts +49 -0
- package/dist/moves.d.ts.map +1 -0
- package/dist/moves.js +243 -0
- package/dist/moves.js.map +1 -0
- package/dist/reexports.d.ts +26 -0
- package/dist/reexports.d.ts.map +1 -0
- package/dist/reexports.js +174 -0
- package/dist/reexports.js.map +1 -0
- package/dist/tasks.d.ts.map +1 -1
- package/dist/tasks.js +33 -5
- package/dist/tasks.js.map +1 -1
- package/dist/types.d.ts +5 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js.map +1 -1
- package/package.json +2 -2
package/dist/format.js
CHANGED
|
@@ -11,8 +11,24 @@ export function describeDrift(r) {
|
|
|
11
11
|
parts.push(`claim says ${v.claimed.length ? v.claimed.join(", ") : "otherwise"}, value is ${v.now}${v.was && v.was !== v.now ? ` (was ${v.was})` : ""}`);
|
|
12
12
|
else if (v || r.driftedTiers.includes("value"))
|
|
13
13
|
parts.push(v?.was !== undefined ? `value: ${v.was} -> ${v?.now}` : `value${v ? `: now ${v.now}` : ""}`);
|
|
14
|
+
const moved = describeMove(r.moved);
|
|
15
|
+
if (moved)
|
|
16
|
+
parts.push(moved);
|
|
17
|
+
if (r.similar)
|
|
18
|
+
parts.push(`${label(r.similar)} has the same signature`);
|
|
14
19
|
return parts.join(", ");
|
|
15
20
|
}
|
|
21
|
+
const label = (t) => `${t.path}${t.symbol ? `#${t.symbol}` : ""}`;
|
|
22
|
+
/** `moved to src/new.ts#foo`, or where its code was found when lockwire can't tell which place is the claim's. */
|
|
23
|
+
export function describeMove(moved) {
|
|
24
|
+
if (!moved)
|
|
25
|
+
return "";
|
|
26
|
+
if (moved.to)
|
|
27
|
+
return `moved to ${label(moved.to)}`;
|
|
28
|
+
const shown = moved.candidates.slice(0, 3).map(label).join(", ");
|
|
29
|
+
const more = moved.candidates.length > 3 ? `, +${moved.candidates.length - 3} more` : "";
|
|
30
|
+
return `its code is in ${moved.candidates.length} places: ${shown}${more}`;
|
|
31
|
+
}
|
|
16
32
|
const VERSION = "0.1.0";
|
|
17
33
|
export function formatText(result) {
|
|
18
34
|
const lines = [];
|
|
@@ -52,6 +68,18 @@ export function formatText(result) {
|
|
|
52
68
|
lines.push("Fix the target of each marker whose file doesn't exist, then link.");
|
|
53
69
|
lines.push("");
|
|
54
70
|
}
|
|
71
|
+
const moved = result.results.filter((r) => !r.skipped && r.moved);
|
|
72
|
+
if (moved.length > 0) {
|
|
73
|
+
const placed = moved.filter((r) => r.moved?.to).length;
|
|
74
|
+
if (placed > 0)
|
|
75
|
+
lines.push(`${placed} claim${placed === 1 ? "'s" : "s'"} code moved to another file unchanged: run \`lockwire repoint\` to re-point ${placed === 1 ? "it" : "them"} and update the markers.`);
|
|
76
|
+
if (placed < moved.length)
|
|
77
|
+
lines.push("Where the code is in several places, choose one: `lockwire repoint <id> --to <path#symbol>`.");
|
|
78
|
+
lines.push("");
|
|
79
|
+
}
|
|
80
|
+
if (result.results.some((r) => !r.skipped && r.similar)) {
|
|
81
|
+
lines.push("Where a symbol is gone and another has the same signature: if it was renamed, `lockwire repoint <id> --to <path#symbol>` re-points the claim.", "");
|
|
82
|
+
}
|
|
55
83
|
const { summary } = result;
|
|
56
84
|
lines.push(`${summary.anchors} anchor${summary.anchors === 1 ? "" : "s"} · ${summary.fresh} ok · ${summary.drifted} drifted · ${summary.orphaned} orphaned${summary.relocated > 0 ? ` · ${summary.relocated} relocated` : ""}${summary.unlinked > 0 ? ` · ${summary.unlinked} unlinked` : ""}`);
|
|
57
85
|
lines.push(`single-hash would flag ${summary.noise.singleHashWouldFlag} · lockwire flagged ${summary.noise.tieredFlagged} · noise −${summary.noise.reductionPercent}%`);
|
|
@@ -75,6 +103,9 @@ export function formatJson(result, repo) {
|
|
|
75
103
|
driftedTiers: r.driftedTiers,
|
|
76
104
|
claimChanged: r.claimChanged ?? false,
|
|
77
105
|
value: r.value ?? null,
|
|
106
|
+
moved: r.moved ?? null,
|
|
107
|
+
similar: r.similar ?? null,
|
|
108
|
+
definedAt: r.definedAt ?? null,
|
|
78
109
|
excerpt: r.anchor.claim?.excerpt ?? null,
|
|
79
110
|
})),
|
|
80
111
|
unlinked: result.unlinked,
|
|
@@ -90,15 +121,17 @@ export function formatGithub(result, opts = {}) {
|
|
|
90
121
|
const file = r.anchor.doc ?? r.anchor.target.path;
|
|
91
122
|
const line = r.anchor.claim?.line ?? 1;
|
|
92
123
|
const what = describeDrift(r);
|
|
93
|
-
const message = r.
|
|
94
|
-
? r.
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
: r.
|
|
100
|
-
? `lockwire:
|
|
101
|
-
:
|
|
124
|
+
const message = r.moved?.to
|
|
125
|
+
? `lockwire: the code "${target}" names moved to "${label(r.moved.to)}" — run lockwire repoint ${r.anchor.id}`
|
|
126
|
+
: r.status === "orphaned"
|
|
127
|
+
? r.claimChanged
|
|
128
|
+
? `lockwire: the claim bound to "${target}" was removed from the doc — unlink it or restore the marker`
|
|
129
|
+
: `lockwire: "${target}" no longer exists — this claim is orphaned${r.moved ? ` (${describeMove(r.moved)})` : ""}`
|
|
130
|
+
: r.value && !r.value.matches
|
|
131
|
+
? `lockwire: this claim is wrong now — it states ${r.value.claimed.join(", ") || "a different value"}, but "${target}" is ${r.value.now}`
|
|
132
|
+
: r.claimChanged && r.driftedTiers.length === 0
|
|
133
|
+
? `lockwire: the claim text bound to "${target}" was edited — re-verify it against the code, then run lockwire link`
|
|
134
|
+
: `lockwire: "${target}" drifted on ${what} — this claim may be stale`;
|
|
102
135
|
lines.push(`::error file=${file},line=${line}::${message}`);
|
|
103
136
|
}
|
|
104
137
|
for (const u of result.unlinked) {
|
package/dist/format.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"format.js","sourceRoot":"","sources":["../src/format.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,MAAM,UAAU,aAAa,CAC3B,
|
|
1
|
+
{"version":3,"file":"format.js","sourceRoot":"","sources":["../src/format.ts"],"names":[],"mappings":"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"}
|
package/dist/hook-claude.d.ts
CHANGED
|
@@ -1,3 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Claude Code SessionStart adapter: once per session, tell the agent when `lockwire.lock` holds claims
|
|
3
|
+
* a newer lockwire stamped than the plugin that's running, so it can suggest updating. Silent
|
|
4
|
+
* otherwise, inert outside a repo that uses lockwire, and fail-open like the other hooks.
|
|
5
|
+
*/
|
|
6
|
+
export declare function runClaudeSessionHook(fallbackRoot: string): Promise<void>;
|
|
1
7
|
/**
|
|
2
8
|
* Claude Code PreToolUse/PostToolUse adapter. Fail-open by contract: any exception here must
|
|
3
9
|
* result in exit 0 with no output, never a broken tool call. See LOCKWIRE-SPEC.md §6.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hook-claude.d.ts","sourceRoot":"","sources":["../src/hook-claude.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"hook-claude.d.ts","sourceRoot":"","sources":["../src/hook-claude.ts"],"names":[],"mappings":"AAiBA;;;;GAIG;AACH,wBAAsB,oBAAoB,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAgB9E;AAED;;;GAGG;AACH,wBAAsB,aAAa,CACjC,OAAO,EAAE,YAAY,GAAG,aAAa,EACrC,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,IAAI,CAAC,CAiDf"}
|
package/dist/hook-claude.js
CHANGED
|
@@ -1,5 +1,31 @@
|
|
|
1
|
+
import { newerWriterNotice } from "./compat.js";
|
|
1
2
|
import { readConfig } from "./config.js";
|
|
2
3
|
import { absoluteHookPath, buildAdvisoryText, claimsForPath, hookActor, logHookError, normalizeTouchedPath, readStdinJson, reportDriftFor, resolveHookRoot, unlinkedClaimsFor, } from "./hook-common.js";
|
|
4
|
+
import { readLockfile } from "./lockfile.js";
|
|
5
|
+
import { isLockwireRepo, tryFindRepoRoot } from "./repo.js";
|
|
6
|
+
/**
|
|
7
|
+
* Claude Code SessionStart adapter: once per session, tell the agent when `lockwire.lock` holds claims
|
|
8
|
+
* a newer lockwire stamped than the plugin that's running, so it can suggest updating. Silent
|
|
9
|
+
* otherwise, inert outside a repo that uses lockwire, and fail-open like the other hooks.
|
|
10
|
+
*/
|
|
11
|
+
export async function runClaudeSessionHook(fallbackRoot) {
|
|
12
|
+
let repoRoot = fallbackRoot;
|
|
13
|
+
try {
|
|
14
|
+
const input = await readStdinJson();
|
|
15
|
+
repoRoot = tryFindRepoRoot(input.cwd ?? process.cwd()) ?? fallbackRoot;
|
|
16
|
+
if (!isLockwireRepo(repoRoot))
|
|
17
|
+
return;
|
|
18
|
+
const notice = newerWriterNotice(await readLockfile(repoRoot), "agent");
|
|
19
|
+
if (!notice)
|
|
20
|
+
return;
|
|
21
|
+
process.stdout.write(JSON.stringify({
|
|
22
|
+
hookSpecificOutput: { hookEventName: "SessionStart", additionalContext: notice },
|
|
23
|
+
}));
|
|
24
|
+
}
|
|
25
|
+
catch (err) {
|
|
26
|
+
await logHookError(repoRoot, "claude-session", err);
|
|
27
|
+
}
|
|
28
|
+
}
|
|
3
29
|
/**
|
|
4
30
|
* Claude Code PreToolUse/PostToolUse adapter. Fail-open by contract: any exception here must
|
|
5
31
|
* result in exit 0 with no output, never a broken tool call. See LOCKWIRE-SPEC.md §6.
|
package/dist/hook-claude.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hook-claude.js","sourceRoot":"","sources":["../src/hook-claude.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EACL,gBAAgB,EAChB,iBAAiB,EACjB,aAAa,EACb,SAAS,EACT,YAAY,EACZ,oBAAoB,EACpB,aAAa,EACb,cAAc,EACd,eAAe,EACf,iBAAiB,GAClB,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"hook-claude.js","sourceRoot":"","sources":["../src/hook-claude.ts"],"names":[],"mappings":"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"}
|
package/dist/hook-common.d.ts
CHANGED
|
@@ -24,6 +24,11 @@ export declare function normalizeTouchedPath(repoRoot: string, filePath: string)
|
|
|
24
24
|
export declare function buildAdvisoryText(anchors: Anchor[], config: LockwireConfig, unlinked?: UnlinkedMarker[]): string;
|
|
25
25
|
/** How long the PreToolUse hook may spend looking for unlinked claims before giving up on them. */
|
|
26
26
|
export declare const UNLINKED_SCAN_BUDGET_MS = 750;
|
|
27
|
+
/**
|
|
28
|
+
* How long the PostToolUse hook may spend looking for where a vanished symbol's code went. Past it the
|
|
29
|
+
* claim is just reported orphaned, and `lockwire check` (no budget) still finds the move.
|
|
30
|
+
*/
|
|
31
|
+
export declare const MOVE_SEARCH_BUDGET_MS = 1000;
|
|
27
32
|
/**
|
|
28
33
|
* Claims in the docs about the file about to be edited that no anchor backs. Never throws and never
|
|
29
34
|
* blocks the edit: the anchored claims are the hook's job, this is a courtesy on top, so any failure
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hook-common.d.ts","sourceRoot":"","sources":["../src/hook-common.ts"],"names":[],"mappings":"AAGA,OAAO,EAAe,KAAK,cAAc,EAAqB,MAAM,cAAc,CAAC;AAKnF,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEhE,MAAM,WAAW,SAAS;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC7F,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,wBAAsB,aAAa,IAAI,OAAO,CAAC,SAAS,CAAC,CAMxD;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAI3E;AAED,wBAAgB,eAAe,CAAC,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAI/F;AAED,6GAA6G;AAC7G,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAO/E;AAED,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,MAAM,EAAE,EACjB,MAAM,EAAE,cAAc,EACtB,QAAQ,GAAE,cAAc,EAAO,GAC9B,MAAM,CA6CR;AAED,mGAAmG;AACnG,eAAO,MAAM,uBAAuB,MAAM,CAAC;AAE3C;;;;GAIG;AACH,wBAAsB,iBAAiB,CACrC,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,cAAc,EACtB,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,EACf,QAAQ,GAAE,MAAgC,GACzC,OAAO,CAAC,cAAc,EAAE,CAAC,CAqB3B;AAED,wBAAsB,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAE5F;AAED,2GAA2G;AAC3G,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,GAAG,KAAK,CAM/D;AAED,wBAAsB,cAAc,CAClC,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,MAAM,EACnB,KAAK,CAAC,EAAE,KAAK,GACZ,OAAO,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,OAAO,CAAA;CAAE,CAAC,
|
|
1
|
+
{"version":3,"file":"hook-common.d.ts","sourceRoot":"","sources":["../src/hook-common.ts"],"names":[],"mappings":"AAGA,OAAO,EAAe,KAAK,cAAc,EAAqB,MAAM,cAAc,CAAC;AAKnF,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEhE,MAAM,WAAW,SAAS;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC7F,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,wBAAsB,aAAa,IAAI,OAAO,CAAC,SAAS,CAAC,CAMxD;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAI3E;AAED,wBAAgB,eAAe,CAAC,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAI/F;AAED,6GAA6G;AAC7G,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAO/E;AAED,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,MAAM,EAAE,EACjB,MAAM,EAAE,cAAc,EACtB,QAAQ,GAAE,cAAc,EAAO,GAC9B,MAAM,CA6CR;AAED,mGAAmG;AACnG,eAAO,MAAM,uBAAuB,MAAM,CAAC;AAE3C;;;GAGG;AACH,eAAO,MAAM,qBAAqB,OAAO,CAAC;AAE1C;;;;GAIG;AACH,wBAAsB,iBAAiB,CACrC,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,cAAc,EACtB,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,EACf,QAAQ,GAAE,MAAgC,GACzC,OAAO,CAAC,cAAc,EAAE,CAAC,CAqB3B;AAED,wBAAsB,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAE5F;AAED,2GAA2G;AAC3G,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,GAAG,KAAK,CAM/D;AAED,wBAAsB,cAAc,CAClC,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,MAAM,EACnB,KAAK,CAAC,EAAE,KAAK,GACZ,OAAO,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,OAAO,CAAA;CAAE,CAAC,CA6C9C;AAED,wBAAsB,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAejG"}
|
package/dist/hook-common.js
CHANGED
|
@@ -75,6 +75,11 @@ export function buildAdvisoryText(anchors, config, unlinked = []) {
|
|
|
75
75
|
}
|
|
76
76
|
/** How long the PreToolUse hook may spend looking for unlinked claims before giving up on them. */
|
|
77
77
|
export const UNLINKED_SCAN_BUDGET_MS = 750;
|
|
78
|
+
/**
|
|
79
|
+
* How long the PostToolUse hook may spend looking for where a vanished symbol's code went. Past it the
|
|
80
|
+
* claim is just reported orphaned, and `lockwire check` (no budget) still finds the move.
|
|
81
|
+
*/
|
|
82
|
+
export const MOVE_SEARCH_BUDGET_MS = 1000;
|
|
78
83
|
/**
|
|
79
84
|
* Claims in the docs about the file about to be edited that no anchor backs. Never throws and never
|
|
80
85
|
* blocks the edit: the anchored claims are the hook's job, this is a courtesy on top, so any failure
|
|
@@ -110,7 +115,10 @@ export async function reportDriftFor(repoRoot, touchedPath, actor) {
|
|
|
110
115
|
if (!isLockwireRepo(repoRoot))
|
|
111
116
|
return { text: "", anyDrift: false };
|
|
112
117
|
const config = await readConfig(repoRoot);
|
|
113
|
-
const result = await withRepoLock(repoRoot, () => check(repoRoot, config, [touchedPath],
|
|
118
|
+
const result = await withRepoLock(repoRoot, () => check(repoRoot, config, [touchedPath], {
|
|
119
|
+
...(actor ? { actor } : {}),
|
|
120
|
+
moveSearchMs: MOVE_SEARCH_BUDGET_MS,
|
|
121
|
+
}));
|
|
114
122
|
const relevant = result.results.filter((r) => (r.anchor.target.path === touchedPath || r.anchor.doc === touchedPath) &&
|
|
115
123
|
(r.status === "drifted" || r.status === "orphaned"));
|
|
116
124
|
const unlinked = result.unlinked.filter((u) => u.doc === touchedPath);
|
|
@@ -126,7 +134,9 @@ export async function reportDriftFor(repoRoot, touchedPath, actor) {
|
|
|
126
134
|
sections.push([
|
|
127
135
|
`lockwire: this edit drifted documentation claims:`,
|
|
128
136
|
...lines,
|
|
129
|
-
|
|
137
|
+
relevant.some((r) => r.moved?.to)
|
|
138
|
+
? `Where the code moved, run \`lockwire repoint\` to re-point the claim and its marker. Otherwise update the doc and run \`lockwire link <doc>\`, or \`lockwire ack\`/\`lockwire waive\` if this is expected.`
|
|
139
|
+
: `Update the doc and run \`lockwire link <doc>\`, or \`lockwire ack\`/\`lockwire waive\` if this is expected.`,
|
|
130
140
|
].join("\n"));
|
|
131
141
|
}
|
|
132
142
|
if (unlinked.length > 0) {
|
package/dist/hook-common.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hook-common.js","sourceRoot":"","sources":["../src/hook-common.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"hook-common.js","sourceRoot":"","sources":["../src/hook-common.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { ack, check, discoverDocs, history, linkDoc, linkLockfileOnly, refs, resolveTarget, status, unlink, waive, } from "./actions.js";
|
|
1
|
+
export { ack, check, discoverDocs, history, linkDoc, linkLockfileOnly, refs, repoint, resolveTarget, status, unlink, waive, } from "./actions.js";
|
|
2
2
|
export { readConfig, writeConfig } from "./config.js";
|
|
3
3
|
export { computeWholeFileTiers, extractFileSymbols } from "./extract.js";
|
|
4
4
|
export { formatGithub, formatJson, formatText } from "./format.js";
|
|
@@ -7,6 +7,8 @@ export { canonicalJson, fingerprint, fingerprintSet } from "./hash.js";
|
|
|
7
7
|
export { historyFor, readLedger, verifyLedger } from "./ledger.js";
|
|
8
8
|
export { readLockfile, writeLockfile } from "./lockfile.js";
|
|
9
9
|
export { scanMarkers } from "./markers.js";
|
|
10
|
+
export { type MoveHint, SourceIndex } from "./moves.js";
|
|
11
|
+
export { extractReExports, resolveModule } from "./reexports.js";
|
|
10
12
|
export { findRepoRoot } from "./repo.js";
|
|
11
13
|
export * from "./types.js";
|
|
12
14
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,GAAG,EACH,KAAK,EACL,YAAY,EACZ,OAAO,EACP,OAAO,EACP,gBAAgB,EAChB,IAAI,EACJ,aAAa,EACb,MAAM,EACN,MAAM,EACN,KAAK,GACN,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AACtD,OAAO,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AACzE,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACnE,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AACvE,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AACnE,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACzC,cAAc,YAAY,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,GAAG,EACH,KAAK,EACL,YAAY,EACZ,OAAO,EACP,OAAO,EACP,gBAAgB,EAChB,IAAI,EACJ,OAAO,EACP,aAAa,EACb,MAAM,EACN,MAAM,EACN,KAAK,GACN,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AACtD,OAAO,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AACzE,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACnE,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AACvE,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AACnE,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,KAAK,QAAQ,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACxD,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AACjE,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACzC,cAAc,YAAY,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { ack, check, discoverDocs, history, linkDoc, linkLockfileOnly, refs, resolveTarget, status, unlink, waive, } from "./actions.js";
|
|
1
|
+
export { ack, check, discoverDocs, history, linkDoc, linkLockfileOnly, refs, repoint, resolveTarget, status, unlink, waive, } from "./actions.js";
|
|
2
2
|
export { readConfig, writeConfig } from "./config.js";
|
|
3
3
|
export { computeWholeFileTiers, extractFileSymbols } from "./extract.js";
|
|
4
4
|
export { formatGithub, formatJson, formatText } from "./format.js";
|
|
@@ -7,6 +7,8 @@ export { canonicalJson, fingerprint, fingerprintSet } from "./hash.js";
|
|
|
7
7
|
export { historyFor, readLedger, verifyLedger } from "./ledger.js";
|
|
8
8
|
export { readLockfile, writeLockfile } from "./lockfile.js";
|
|
9
9
|
export { scanMarkers } from "./markers.js";
|
|
10
|
+
export { SourceIndex } from "./moves.js";
|
|
11
|
+
export { extractReExports, resolveModule } from "./reexports.js";
|
|
10
12
|
export { findRepoRoot } from "./repo.js";
|
|
11
13
|
export * from "./types.js";
|
|
12
14
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,GAAG,EACH,KAAK,EACL,YAAY,EACZ,OAAO,EACP,OAAO,EACP,gBAAgB,EAChB,IAAI,EACJ,aAAa,EACb,MAAM,EACN,MAAM,EACN,KAAK,GACN,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AACtD,OAAO,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AACzE,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACnE,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AACvE,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AACnE,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACzC,cAAc,YAAY,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,GAAG,EACH,KAAK,EACL,YAAY,EACZ,OAAO,EACP,OAAO,EACP,gBAAgB,EAChB,IAAI,EACJ,OAAO,EACP,aAAa,EACb,MAAM,EACN,MAAM,EACN,KAAK,GACN,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AACtD,OAAO,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AACzE,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACnE,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AACvE,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AACnE,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAiB,WAAW,EAAE,MAAM,YAAY,CAAC;AACxD,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AACjE,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACzC,cAAc,YAAY,CAAC"}
|
package/dist/lockfile.d.ts
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import type { Anchor, Lockfile } from "./types.js";
|
|
2
2
|
export declare function lockfilePath(repoRoot: string): string;
|
|
3
3
|
export declare function readLockfile(repoRoot: string): Promise<Lockfile>;
|
|
4
|
+
/** The lockfile's anchors read synchronously, or null when there's none or it can't be read. */
|
|
5
|
+
export declare function readLockfileSync(repoRoot: string): Lockfile | null;
|
|
4
6
|
export declare function writeLockfile(repoRoot: string, lockfile: Lockfile): Promise<void>;
|
|
5
7
|
export declare function upsertAnchor(lockfile: Lockfile, anchor: Anchor): Lockfile;
|
|
6
8
|
export declare function removeAnchor(lockfile: Lockfile, id: string): Lockfile;
|
package/dist/lockfile.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lockfile.d.ts","sourceRoot":"","sources":["../src/lockfile.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"lockfile.d.ts","sourceRoot":"","sources":["../src/lockfile.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAInD,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAErD;AAED,wBAAsB,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAetE;AAED,gGAAgG;AAChG,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,QAAQ,GAAG,IAAI,CAOlE;AAED,wBAAsB,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAMvF;AAED,wBAAgB,YAAY,CAAC,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,GAAG,QAAQ,CAIzE;AAED,wBAAgB,YAAY,CAAC,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,GAAG,QAAQ,CAErE;AAED,wBAAgB,cAAc,CAAC,QAAQ,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,GAAG,MAAM,EAAE,CAErF;AAID,wBAAgB,WAAW,IAAI,MAAM,CAIpC;AAED,+GAA+G;AAC/G,wBAAsB,eAAe,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAgBrF"}
|
package/dist/lockfile.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import { existsSync } from "node:fs";
|
|
1
|
+
import { existsSync, readFileSync } from "node:fs";
|
|
2
2
|
import { readFile, realpath, rename, rm, writeFile } from "node:fs/promises";
|
|
3
|
+
import { withLevel } from "./compat.js";
|
|
3
4
|
import { stripBom } from "./repo.js";
|
|
4
5
|
const LOCKFILE_NAME = "lockwire.lock";
|
|
5
6
|
export function lockfilePath(repoRoot) {
|
|
@@ -21,10 +22,20 @@ export async function readLockfile(repoRoot) {
|
|
|
21
22
|
}
|
|
22
23
|
return { version: 1, anchors: parsed.anchors ?? [] };
|
|
23
24
|
}
|
|
25
|
+
/** The lockfile's anchors read synchronously, or null when there's none or it can't be read. */
|
|
26
|
+
export function readLockfileSync(repoRoot) {
|
|
27
|
+
try {
|
|
28
|
+
const raw = stripBom(readFileSync(lockfilePath(repoRoot), "utf8"));
|
|
29
|
+
return { version: 1, anchors: JSON.parse(raw).anchors ?? [] };
|
|
30
|
+
}
|
|
31
|
+
catch {
|
|
32
|
+
return null;
|
|
33
|
+
}
|
|
34
|
+
}
|
|
24
35
|
export async function writeLockfile(repoRoot, lockfile) {
|
|
25
36
|
const sorted = {
|
|
26
37
|
version: 1,
|
|
27
|
-
anchors:
|
|
38
|
+
anchors: lockfile.anchors.map(withLevel).sort((a, b) => a.id.localeCompare(b.id)),
|
|
28
39
|
};
|
|
29
40
|
await writeFileAtomic(lockfilePath(repoRoot), `${JSON.stringify(sorted, null, 2)}\n`);
|
|
30
41
|
}
|
package/dist/lockfile.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lockfile.js","sourceRoot":"","sources":["../src/lockfile.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"lockfile.js","sourceRoot":"","sources":["../src/lockfile.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The Model Context Protocol, as much of it as lockwire's server uses: JSON-RPC 2.0 over stdio, the
|
|
3
|
+
* `initialize` handshake, `ping`, and tools and prompts (list, call, get). lockwire implements this
|
|
4
|
+
* itself rather than depend on the MCP SDK, whose package also carries an HTTP stack, OAuth code and
|
|
5
|
+
* demo servers that a stdio-only server never loads but every install downloads and every scanner
|
|
6
|
+
* flags. The tests drive this server with the official SDK client, so it stays compatible with it.
|
|
7
|
+
*/
|
|
8
|
+
import { z } from "zod";
|
|
9
|
+
/** Protocol versions this server speaks, newest first. A client asking for another gets the newest. */
|
|
10
|
+
export declare const SUPPORTED_PROTOCOL_VERSIONS: readonly ["2025-11-25", "2025-06-18", "2025-03-26", "2024-11-05", "2024-10-07"];
|
|
11
|
+
type Id = string | number;
|
|
12
|
+
export interface JsonRpcMessage {
|
|
13
|
+
jsonrpc: "2.0";
|
|
14
|
+
id?: Id | null;
|
|
15
|
+
method?: string;
|
|
16
|
+
params?: Record<string, unknown>;
|
|
17
|
+
result?: unknown;
|
|
18
|
+
error?: {
|
|
19
|
+
code: number;
|
|
20
|
+
message: string;
|
|
21
|
+
data?: unknown;
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* A message channel, in the shape MCP transports share: the server sets the callbacks, then calls
|
|
26
|
+
* `start`. The SDK's own transports (its in-memory pair, used by the tests) fit it as they are.
|
|
27
|
+
*/
|
|
28
|
+
export interface Transport {
|
|
29
|
+
start(): Promise<void>;
|
|
30
|
+
send(message: JsonRpcMessage): Promise<void>;
|
|
31
|
+
close(): Promise<void>;
|
|
32
|
+
onmessage?: (message: JsonRpcMessage) => void;
|
|
33
|
+
onclose?: () => void;
|
|
34
|
+
onerror?: (error: Error) => void;
|
|
35
|
+
}
|
|
36
|
+
export declare const ErrorCode: {
|
|
37
|
+
readonly ParseError: -32700;
|
|
38
|
+
readonly InvalidRequest: -32600;
|
|
39
|
+
readonly MethodNotFound: -32601;
|
|
40
|
+
readonly InvalidParams: -32602;
|
|
41
|
+
readonly InternalError: -32603;
|
|
42
|
+
};
|
|
43
|
+
export interface ToolResult {
|
|
44
|
+
content: {
|
|
45
|
+
type: "text";
|
|
46
|
+
text: string;
|
|
47
|
+
}[];
|
|
48
|
+
isError?: boolean;
|
|
49
|
+
}
|
|
50
|
+
export interface ToolAnnotations {
|
|
51
|
+
readOnlyHint: boolean;
|
|
52
|
+
destructiveHint: boolean;
|
|
53
|
+
idempotentHint: boolean;
|
|
54
|
+
openWorldHint: boolean;
|
|
55
|
+
}
|
|
56
|
+
interface PromptResult {
|
|
57
|
+
description?: string;
|
|
58
|
+
messages: {
|
|
59
|
+
role: "user" | "assistant";
|
|
60
|
+
content: {
|
|
61
|
+
type: "text";
|
|
62
|
+
text: string;
|
|
63
|
+
};
|
|
64
|
+
}[];
|
|
65
|
+
}
|
|
66
|
+
export declare class McpServer {
|
|
67
|
+
private readonly info;
|
|
68
|
+
/** Told to the client at `initialize`, for its model to read; computed then, so it's current. */
|
|
69
|
+
private readonly instructions?;
|
|
70
|
+
private readonly tools;
|
|
71
|
+
private readonly prompts;
|
|
72
|
+
private transport;
|
|
73
|
+
private clientInfo;
|
|
74
|
+
constructor(info: {
|
|
75
|
+
name: string;
|
|
76
|
+
version: string;
|
|
77
|
+
},
|
|
78
|
+
/** Told to the client at `initialize`, for its model to read; computed then, so it's current. */
|
|
79
|
+
instructions?: (() => string | undefined) | undefined);
|
|
80
|
+
/** The client's own name and version, from its `initialize` request. */
|
|
81
|
+
getClientVersion(): {
|
|
82
|
+
name?: string;
|
|
83
|
+
version?: string;
|
|
84
|
+
} | undefined;
|
|
85
|
+
registerTool<S extends z.ZodRawShape>(name: string, def: {
|
|
86
|
+
title: string;
|
|
87
|
+
description: string;
|
|
88
|
+
inputSchema: S;
|
|
89
|
+
annotations: ToolAnnotations;
|
|
90
|
+
}, handler: (args: z.output<z.ZodObject<S>>) => Promise<ToolResult> | ToolResult): void;
|
|
91
|
+
registerPrompt<S extends z.ZodRawShape>(name: string, def: {
|
|
92
|
+
title: string;
|
|
93
|
+
description: string;
|
|
94
|
+
argsSchema: S;
|
|
95
|
+
}, handler: (args: z.output<z.ZodObject<S>>) => Promise<PromptResult> | PromptResult): void;
|
|
96
|
+
connect(transport: Transport): Promise<void>;
|
|
97
|
+
close(): Promise<void>;
|
|
98
|
+
private receive;
|
|
99
|
+
private handle;
|
|
100
|
+
/** A tool's failures are results the model can read and act on, not protocol errors. */
|
|
101
|
+
private callTool;
|
|
102
|
+
}
|
|
103
|
+
/** Newline-delimited JSON-RPC on stdin and stdout, as MCP's stdio transport specifies. */
|
|
104
|
+
export declare class StdioServerTransport implements Transport {
|
|
105
|
+
private readonly input;
|
|
106
|
+
private readonly output;
|
|
107
|
+
onmessage?: (message: JsonRpcMessage) => void;
|
|
108
|
+
onclose?: () => void;
|
|
109
|
+
onerror?: (error: Error) => void;
|
|
110
|
+
private buffer;
|
|
111
|
+
constructor(input?: NodeJS.ReadableStream, output?: NodeJS.WritableStream);
|
|
112
|
+
start(): Promise<void>;
|
|
113
|
+
private line;
|
|
114
|
+
send(message: JsonRpcMessage): Promise<void>;
|
|
115
|
+
close(): Promise<void>;
|
|
116
|
+
}
|
|
117
|
+
export {};
|
|
118
|
+
//# sourceMappingURL=mcp-protocol.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mcp-protocol.d.ts","sourceRoot":"","sources":["../src/mcp-protocol.ts"],"names":[],"mappings":"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"}
|