lockwire 0.1.25 → 0.1.27

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 (45) hide show
  1. package/README.md +12 -0
  2. package/dist/actions.d.ts +18 -0
  3. package/dist/actions.d.ts.map +1 -1
  4. package/dist/actions.js +72 -14
  5. package/dist/actions.js.map +1 -1
  6. package/dist/changed.d.ts +12 -0
  7. package/dist/changed.d.ts.map +1 -1
  8. package/dist/changed.js +25 -0
  9. package/dist/changed.js.map +1 -1
  10. package/dist/cli.js +74 -15
  11. package/dist/cli.js.map +1 -1
  12. package/dist/docindex.js +1 -1
  13. package/dist/docindex.js.map +1 -1
  14. package/dist/extract.d.ts.map +1 -1
  15. package/dist/extract.js +19 -0
  16. package/dist/extract.js.map +1 -1
  17. package/dist/hook-common.d.ts.map +1 -1
  18. package/dist/hook-common.js +2 -1
  19. package/dist/hook-common.js.map +1 -1
  20. package/dist/lock.d.ts +3 -0
  21. package/dist/lock.d.ts.map +1 -0
  22. package/dist/lock.js +99 -0
  23. package/dist/lock.js.map +1 -0
  24. package/dist/lockfile.d.ts +2 -0
  25. package/dist/lockfile.d.ts.map +1 -1
  26. package/dist/lockfile.js +14 -2
  27. package/dist/lockfile.js.map +1 -1
  28. package/dist/markers.d.ts +10 -0
  29. package/dist/markers.d.ts.map +1 -1
  30. package/dist/markers.js +28 -5
  31. package/dist/markers.js.map +1 -1
  32. package/dist/mcp-server.d.ts.map +1 -1
  33. package/dist/mcp-server.js +86 -5
  34. package/dist/mcp-server.js.map +1 -1
  35. package/dist/tasks.d.ts +84 -0
  36. package/dist/tasks.d.ts.map +1 -0
  37. package/dist/tasks.js +432 -0
  38. package/dist/tasks.js.map +1 -0
  39. package/dist/types.d.ts +2 -0
  40. package/dist/types.d.ts.map +1 -1
  41. package/dist/values.d.ts +5 -1
  42. package/dist/values.d.ts.map +1 -1
  43. package/dist/values.js +139 -0
  44. package/dist/values.js.map +1 -1
  45. package/package.json +1 -1
package/dist/lockfile.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import { existsSync } from "node:fs";
2
- import { readFile, writeFile } from "node:fs/promises";
2
+ import { readFile, rename, rm, writeFile } from "node:fs/promises";
3
3
  import { stripBom } from "./repo.js";
4
4
  const LOCKFILE_NAME = "lockwire.lock";
5
5
  export function lockfilePath(repoRoot) {
@@ -26,7 +26,7 @@ export async function writeLockfile(repoRoot, lockfile) {
26
26
  version: 1,
27
27
  anchors: [...lockfile.anchors].sort((a, b) => a.id.localeCompare(b.id)),
28
28
  };
29
- await writeFile(lockfilePath(repoRoot), `${JSON.stringify(sorted, null, 2)}\n`, "utf8");
29
+ await writeFileAtomic(lockfilePath(repoRoot), `${JSON.stringify(sorted, null, 2)}\n`);
30
30
  }
31
31
  export function upsertAnchor(lockfile, anchor) {
32
32
  const anchors = lockfile.anchors.filter((a) => a.id !== anchor.id);
@@ -46,4 +46,16 @@ export function newAnchorId() {
46
46
  id += ID_ALPHABET[Math.floor(Math.random() * ID_ALPHABET.length)];
47
47
  return id;
48
48
  }
49
+ /** Write via a temp file and a rename, so a concurrent reader sees the old file or the new one, never half. */
50
+ export async function writeFileAtomic(path, text) {
51
+ const tmp = `${path}.${process.pid}.${Math.random().toString(36).slice(2, 8)}.tmp`;
52
+ try {
53
+ await writeFile(tmp, text, "utf8");
54
+ await rename(tmp, path);
55
+ }
56
+ catch (err) {
57
+ await rm(tmp, { force: true }).catch(() => undefined);
58
+ throw err;
59
+ }
60
+ }
49
61
  //# sourceMappingURL=lockfile.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"lockfile.js","sourceRoot":"","sources":["../src/lockfile.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAGrC,MAAM,aAAa,GAAG,eAAe,CAAC;AAEtC,MAAM,UAAU,YAAY,CAAC,QAAgB;IAC3C,OAAO,GAAG,QAAQ,IAAI,aAAa,EAAE,CAAC;AACxC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,QAAgB;IACjD,MAAM,IAAI,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC;IACpC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;QAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;IAC1D,MAAM,GAAG,GAAG,QAAQ,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;IACnD,IAAI,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC;QACpD,MAAM,IAAI,KAAK,CACb,GAAG,aAAa,oCAAoC,IAAI,2JAA2J,CACpN,CAAC;IACJ,IAAI,MAAgB,CAAC;IACrB,IAAI,CAAC;QACH,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAa,CAAC;IACvC,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CAAC,GAAG,aAAa,uBAAuB,IAAI,MAAO,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC;IAC7F,CAAC;IACD,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,IAAI,EAAE,EAAE,CAAC;AACvD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,QAAgB,EAAE,QAAkB;IACtE,MAAM,MAAM,GAAa;QACvB,OAAO,EAAE,CAAC;QACV,OAAO,EAAE,CAAC,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;KACxE,CAAC;IACF,MAAM,SAAS,CAAC,YAAY,CAAC,QAAQ,CAAC,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AAC1F,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,QAAkB,EAAE,MAAc;IAC7D,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,MAAM,CAAC,EAAE,CAAC,CAAC;IACnE,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACrB,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC;AACjC,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,QAAkB,EAAE,EAAU;IACzD,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;AAC9E,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,QAAkB,EAAE,gBAAwB;IACzE,OAAO,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,KAAK,gBAAgB,CAAC,CAAC;AAC5E,CAAC;AAED,MAAM,WAAW,GAAG,kCAAkC,CAAC,CAAC,0CAA0C;AAElG,MAAM,UAAU,WAAW;IACzB,IAAI,EAAE,GAAG,EAAE,CAAC;IACZ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;QAAE,EAAE,IAAI,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC;IAC9F,OAAO,EAAE,CAAC;AACZ,CAAC"}
1
+ {"version":3,"file":"lockfile.js","sourceRoot":"","sources":["../src/lockfile.ts"],"names":[],"mappings":"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"}
package/dist/markers.d.ts CHANGED
@@ -30,4 +30,14 @@ export declare function retargetMarkerLine(line: string, target: {
30
30
  path: string;
31
31
  symbol?: string;
32
32
  }): string;
33
+ /**
34
+ * A marker's words: split on whitespace, except that a double-quoted word keeps its spaces — a target
35
+ * like `"results/main.csv#E1 collection S/est"`, whose CSV row key has spaces. `\"` is a literal quote.
36
+ */
37
+ export declare function markerTokens(body: string): {
38
+ value: string;
39
+ raw: string;
40
+ }[];
41
+ /** A target as a marker word: quoted when it has whitespace or quotes in it. */
42
+ export declare function quoteTarget(target: string): string;
33
43
  //# sourceMappingURL=markers.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"markers.d.ts","sourceRoot":"","sources":["../src/markers.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAGpD,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC1C,KAAK,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC;IACrB,EAAE,EAAE,MAAM,GAAG,IAAI,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,8FAA8F;IAC9F,SAAS,EAAE,MAAM,CAAC;CACnB;AAMD,mGAAmG;AACnG,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,EAAE,CAgErD;AAgDD,eAAO,MAAM,WAAW,KAAK,CAAC;AAW9B;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,SAAS,GAAG,OAAO,CAO/E;AAED,sJAAsJ;AACtJ,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,MAAM,CAOhE;AAED,uGAAuG;AACvG,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,GACxC,MAAM,CAOR"}
1
+ {"version":3,"file":"markers.d.ts","sourceRoot":"","sources":["../src/markers.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAGpD,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC1C,KAAK,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC;IACrB,EAAE,EAAE,MAAM,GAAG,IAAI,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,8FAA8F;IAC9F,SAAS,EAAE,MAAM,CAAC;CACnB;AAMD,mGAAmG;AACnG,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,EAAE,CAkErD;AAgDD,eAAO,MAAM,WAAW,KAAK,CAAC;AAW9B;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,SAAS,GAAG,OAAO,CAO/E;AAED,sJAAsJ;AACtJ,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,MAAM,CAShE;AAED,uGAAuG;AACvG,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,GACxC,MAAM,CAOR;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,EAAE,CAQ3E;AAED,gFAAgF;AAChF,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAElD"}
package/dist/markers.js CHANGED
@@ -34,7 +34,7 @@ export function scanMarkers(text) {
34
34
  const m = MARKER_RE.exec(line.trim());
35
35
  if (!m)
36
36
  continue;
37
- const tokens = (m[1] ?? "").split(/\s+/).filter(Boolean);
37
+ const tokens = markerTokens(m[1] ?? "").map((t) => t.value);
38
38
  const targetToken = tokens[0];
39
39
  if (!targetToken)
40
40
  continue;
@@ -48,7 +48,9 @@ export function scanMarkers(text) {
48
48
  tiers = tok.split(",");
49
49
  }
50
50
  }
51
- const [rawPath, symbol] = targetToken.split("#");
51
+ const hash = targetToken.indexOf("#");
52
+ const rawPath = hash < 0 ? targetToken : targetToken.slice(0, hash);
53
+ const symbol = hash < 0 ? undefined : targetToken.slice(hash + 1);
52
54
  if (!rawPath)
53
55
  continue;
54
56
  // `./src/a.ts` and `src/./a.ts` are claims about src/a.ts: normalise the way the hooks compare.
@@ -145,7 +147,9 @@ export function stampMarkerLine(line, id) {
145
147
  if (!m)
146
148
  return line;
147
149
  const prefix = /^\s*/.exec(line)?.[0] ?? "";
148
- const tokens = (m[1] ?? "").split(/\s+/).filter((t) => !t.startsWith("id="));
150
+ const tokens = markerTokens(m[1] ?? "")
151
+ .filter((t, i) => i === 0 || !t.value.startsWith("id="))
152
+ .map((t) => t.raw);
149
153
  tokens.push(`id=${id}`);
150
154
  return `${prefix}<!-- lockwire ${tokens.join(" ")} -->`;
151
155
  }
@@ -155,8 +159,27 @@ export function retargetMarkerLine(line, target) {
155
159
  if (!m)
156
160
  return line;
157
161
  const prefix = /^\s*/.exec(line)?.[0] ?? "";
158
- const tokens = (m[1] ?? "").split(/\s+/).filter(Boolean);
159
- tokens[0] = `${target.path}${target.symbol ? `#${target.symbol}` : ""}`;
162
+ const tokens = markerTokens(m[1] ?? "").map((t) => t.raw);
163
+ tokens[0] = quoteTarget(`${target.path}${target.symbol ? `#${target.symbol}` : ""}`);
160
164
  return `${prefix}<!-- lockwire ${tokens.join(" ")} -->`;
161
165
  }
166
+ /**
167
+ * A marker's words: split on whitespace, except that a double-quoted word keeps its spaces — a target
168
+ * like `"results/main.csv#E1 collection S/est"`, whose CSV row key has spaces. `\"` is a literal quote.
169
+ */
170
+ export function markerTokens(body) {
171
+ const out = [];
172
+ const re = /"((?:\\.|[^"\\])*)"|(\S+)/g;
173
+ for (let m = re.exec(body); m; m = re.exec(body)) {
174
+ if (m[1] !== undefined)
175
+ out.push({ value: m[1].replace(/\\(.)/g, "$1"), raw: m[0] });
176
+ else
177
+ out.push({ value: m[2] ?? "", raw: m[0] });
178
+ }
179
+ return out;
180
+ }
181
+ /** A target as a marker word: quoted when it has whitespace or quotes in it. */
182
+ export function quoteTarget(target) {
183
+ return /[\s"]/.test(target) ? `"${target.replace(/(["\\])/g, "\\$1")}"` : target;
184
+ }
162
185
  //# sourceMappingURL=markers.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"markers.js","sourceRoot":"","sources":["../src/markers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"markers.js","sourceRoot":"","sources":["../src/markers.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"mcp-server.d.ts","sourceRoot":"","sources":["../src/mcp-server.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAepE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAqBhD,4KAA4K;AAC5K,wBAAgB,YAAY,CAC1B,QAAQ,EAAE,MAAM,EAChB,IAAI,GAAE;IAAE,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,CAAA;CAAO,GACxD,SAAS,CAkNX;AAED,wBAAsB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAIpE"}
1
+ {"version":3,"file":"mcp-server.d.ts","sourceRoot":"","sources":["../src/mcp-server.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAgBpE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAuBhD,4KAA4K;AAC5K,wBAAgB,YAAY,CAC1B,QAAQ,EAAE,MAAM,EAChB,IAAI,GAAE;IAAE,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,CAAA;CAAO,GACxD,SAAS,CAoUX;AAED,wBAAsB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAIpE"}
@@ -3,9 +3,12 @@ import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
3
3
  import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
4
4
  import { z } from "zod";
5
5
  import { ack, check, history, linkDoc, refs, status, unlinkedFor, waive, } from "./actions.js";
6
+ import { changedFiles } from "./changed.js";
6
7
  import { readConfig } from "./config.js";
8
+ import { withRepoLock } from "./lock.js";
7
9
  import { lockfilePath } from "./lockfile.js";
8
10
  import { toRepoPath } from "./repo.js";
11
+ import { listTasks, resolveTask, taskContext } from "./tasks.js";
9
12
  function text(payload) {
10
13
  return {
11
14
  content: [
@@ -96,9 +99,9 @@ export function createServer(repoRoot, opts = {}) {
96
99
  return text(note);
97
100
  const doc = toRepoPath(repoRoot, docArg, repoRoot);
98
101
  const config = await readConfig(repoRoot);
99
- const result = await check(repoRoot, config, undefined, {
102
+ const result = await withRepoLock(repoRoot, () => check(repoRoot, config, undefined, {
100
103
  actor: { type: "ai", tool: { name: "mcp" } },
101
- });
104
+ }));
102
105
  return text({
103
106
  anchors: result.results.filter((r) => r.anchor.doc === doc),
104
107
  unlinked: result.unlinked.filter((u) => u.doc === doc),
@@ -128,7 +131,7 @@ export function createServer(repoRoot, opts = {}) {
128
131
  idempotentHint: false,
129
132
  openWorldHint: false,
130
133
  },
131
- }, async ({ doc, reviewed }) => text(await linkDoc(repoRoot, toRepoPath(repoRoot, doc, repoRoot), await readConfig(repoRoot), { type: "ai", tool: { name: "mcp" } }, reviewed === undefined ? {} : { reviewed })));
134
+ }, async ({ doc, reviewed }) => text(await withRepoLock(repoRoot, async () => linkDoc(repoRoot, toRepoPath(repoRoot, doc, repoRoot), await readConfig(repoRoot), { type: "ai", tool: { name: "mcp" } }, reviewed === undefined ? {} : { reviewed }))));
132
135
  server.registerTool("lockwire_ack", {
133
136
  title: "Acknowledge drift",
134
137
  description: "Record that drift was handled and re-stamp the anchor's fingerprints.",
@@ -146,7 +149,7 @@ export function createServer(repoRoot, opts = {}) {
146
149
  idempotentHint: false,
147
150
  openWorldHint: false,
148
151
  },
149
- }, async ({ anchor, resolution, note }) => text(await ack(repoRoot, anchor, resolution, note, { type: "ai", tool: { name: "mcp" } }, await readConfig(repoRoot))));
152
+ }, async ({ anchor, resolution, note }) => text(await withRepoLock(repoRoot, async () => ack(repoRoot, anchor, resolution, note, { type: "ai", tool: { name: "mcp" } }, await readConfig(repoRoot)))));
150
153
  server.registerTool("lockwire_waive", {
151
154
  title: "Waive an anchor",
152
155
  description: "Time-boxed, logged, expiring waiver. No permanent suppression.",
@@ -159,7 +162,85 @@ export function createServer(repoRoot, opts = {}) {
159
162
  idempotentHint: false,
160
163
  openWorldHint: false,
161
164
  },
162
- }, async ({ anchor, reason, expires }) => text(await waive(repoRoot, anchor, reason, expires, { type: "ai", tool: { name: "mcp" } })));
165
+ }, async ({ anchor, reason, expires }) => text(await withRepoLock(repoRoot, () => waive(repoRoot, anchor, reason, expires, { type: "ai", tool: { name: "mcp" } }))));
166
+ // ---- The agent work queue: what's wrong, the context to fix it, and a checked resolve. ----------
167
+ /** Who is resolving: the MCP client's own name (claude-code, codex, cursor…) when it gave one. */
168
+ const agentActor = () => {
169
+ const client = server.server.getClientVersion();
170
+ return {
171
+ type: "ai",
172
+ tool: client?.name
173
+ ? { name: client.name, ...(client.version ? { version: client.version } : {}) }
174
+ : { name: "mcp" },
175
+ };
176
+ };
177
+ server.registerTool("lockwire_tasks", {
178
+ title: "Documentation tasks",
179
+ description: "Every documentation claim that needs attention, as a task list: claims whose code or value changed, numbers that no longer match their source, claims whose target is gone, and markers nobody has linked. Each task says what is wrong and what to do. Start here when asked to fix or update documentation. `paths` limits it to claims about (or in) those files; `changed` to files this branch touched.",
180
+ inputSchema: { paths: z.array(z.string()).optional(), changed: z.boolean().optional() },
181
+ // A dry run of check: computes everything, writes nothing.
182
+ annotations: {
183
+ readOnlyHint: true,
184
+ destructiveHint: false,
185
+ idempotentHint: true,
186
+ openWorldHint: false,
187
+ },
188
+ }, async ({ paths, changed }) => {
189
+ const note = missingLockNote(repoRoot);
190
+ if (note)
191
+ return text(note);
192
+ const scope = changed
193
+ ? changedFiles(repoRoot)
194
+ : paths?.map((p) => toRepoPath(repoRoot, p, repoRoot));
195
+ return text(await listTasks(repoRoot, await readConfig(repoRoot), scope));
196
+ });
197
+ server.registerTool("lockwire_task_context", {
198
+ title: "Context for a task",
199
+ description: "Everything needed to fix one task from lockwire_tasks: the whole claim sentence, the bound code (its declaration) or value as it was when the claim was stamped and as it is now, and the claim's history. `stamped.exact` says whether the stamped side is exactly what the claim was checked against.",
200
+ inputSchema: { id: z.string() },
201
+ annotations: {
202
+ readOnlyHint: true,
203
+ destructiveHint: false,
204
+ idempotentHint: true,
205
+ openWorldHint: false,
206
+ },
207
+ }, async ({ id }) => text(await taskContext(repoRoot, await readConfig(repoRoot), id)));
208
+ server.registerTool("lockwire_resolve", {
209
+ title: "Resolve a task",
210
+ description: "After you have edited the doc so the claim is true, re-stamp that one claim (nothing else in the doc). It is checked first: a sentence whose number still disagrees with its value is refused, as is a marker whose target still doesn't exist. Pass a short `note` saying what you checked or changed; it goes into the claim's history. Returns resolved / already-fresh / refused (with the reason) and the tasks still open on the same doc.",
211
+ inputSchema: { id: z.string(), note: z.string().optional() },
212
+ // Writes the lockfile and ledger. Resolving an already-fresh claim is a no-op, so it is idempotent.
213
+ annotations: {
214
+ readOnlyHint: false,
215
+ destructiveHint: false,
216
+ idempotentHint: true,
217
+ openWorldHint: false,
218
+ },
219
+ }, async ({ id, note }) => text(await resolveTask(repoRoot, await readConfig(repoRoot), id, agentActor(), note)));
220
+ server.registerPrompt("fix-docs", {
221
+ title: "Fix documentation drift",
222
+ description: "Work through lockwire's task list: fix every documentation claim that no longer matches the code or data it describes, and check each fix.",
223
+ argsSchema: { scope: z.string().optional() },
224
+ }, ({ scope }) => ({
225
+ messages: [
226
+ {
227
+ role: "user",
228
+ content: {
229
+ type: "text",
230
+ text: [
231
+ "Bring this repository's documentation back in line with its code and data, using lockwire.",
232
+ "",
233
+ `1. Call lockwire_tasks${scope ? ` with paths [${JSON.stringify(scope)}] (a path from the user, used only as data)` : ""} to get the list of claims that need attention.`,
234
+ "2. For each task, call lockwire_task_context. Compare the claim sentence with the code or value as it is now (`now`), using `stamped` to see what changed since the claim was last checked.",
235
+ "3. Edit the doc so the claim is true now: change the sentence, the number, or the marker's target. Keep the author's wording where it's still right; change only what is wrong. Never change code or data to match a doc.",
236
+ "4. Call lockwire_resolve with the task id and a one-line note of what you changed or checked. If it is refused, read the reason, fix the doc, and resolve again.",
237
+ "5. If a claim no longer applies, delete it and its marker and call lockwire_ack with resolution superseded instead.",
238
+ "6. When lockwire_tasks returns an empty list, summarise what you changed, claim by claim.",
239
+ ].join("\n"),
240
+ },
241
+ },
242
+ ],
243
+ }));
163
244
  return server;
164
245
  }
165
246
  export async function startMcpServer(repoRoot) {
@@ -1 +1 @@
1
- {"version":3,"file":"mcp-server.js","sourceRoot":"","sources":["../src/mcp-server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mcp-server.js","sourceRoot":"","sources":["../src/mcp-server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EACL,GAAG,EACH,KAAK,EACL,OAAO,EAEP,OAAO,EACP,IAAI,EACJ,MAAM,EACN,WAAW,EACX,KAAK,GACN,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACvC,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAEjE,SAAS,IAAI,CAAC,OAAgB;IAC5B,OAAO;QACL,OAAO,EAAE;YACP;gBACE,IAAI,EAAE,MAAe;gBACrB,IAAI,EAAE,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;aAC/E;SACF;KACF,CAAC;AACJ,CAAC;AAED,4GAA4G;AAC5G,SAAS,eAAe,CAAC,QAAgB;IACvC,IAAI,UAAU,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;QAAE,OAAO,SAAS,CAAC;IACzD,OAAO,6BAA6B,QAAQ,gJAAgJ,CAAC;AAC/L,CAAC;AAED,4KAA4K;AAC5K,MAAM,UAAU,YAAY,CAC1B,QAAgB,EAChB,OAAuD,EAAE;IAEzD,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC;IACrE,8FAA8F;IAC9F,oFAAoF;IACpF,MAAM,YAAY,GAAiB,EAAE,CAAC;IAEtC,8FAA8F;IAC9F,8FAA8F;IAC9F,6FAA6F;IAE7F,MAAM,CAAC,YAAY,CACjB,qBAAqB,EACrB;QACE,KAAK,EAAE,iBAAiB;QACxB,WAAW,EACT,sRAAsR;QACxR,WAAW,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE;QAChE,mGAAmG;QACnG,yCAAyC;QACzC,WAAW,EAAE;YACX,YAAY,EAAE,IAAI;YAClB,eAAe,EAAE,KAAK;YACtB,cAAc,EAAE,IAAI;YACpB,aAAa,EAAE,KAAK;SACrB;KACF,EACD,KAAK,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE;QACzB,MAAM,IAAI,GAAG,eAAe,CAAC,QAAQ,CAAC,CAAC;QACvC,IAAI,IAAI;YAAE,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC;QAC5B,MAAM,QAAQ,GAAG,UAAU,CAAC,QAAQ,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;QACtD,OAAO,IAAI,CAAC;YACV,OAAO,EAAE,MAAM,IAAI,CAAC,QAAQ,EAAE,QAAQ,EAAE,MAAM,CAAC;YAC/C,QAAQ,EAAE,MAAM,WAAW,CACzB,QAAQ,EACR,MAAM,UAAU,CAAC,QAAQ,CAAC,EAC1B,QAAQ,EACR,MAAM,EACN,YAAY,EACZ,IAAI,CAAC,YAAY,CAClB;SACF,CAAC,CAAC;IACL,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,YAAY,CACjB,eAAe,EACf;QACE,KAAK,EAAE,gBAAgB;QACvB,WAAW,EAAE,2DAA2D;QACxE,WAAW,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE;QAChE,WAAW,EAAE;YACX,YAAY,EAAE,IAAI;YAClB,eAAe,EAAE,KAAK;YACtB,cAAc,EAAE,IAAI;YACpB,aAAa,EAAE,KAAK;SACrB;KACF,EACD,KAAK,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,CACzB,IAAI,CACF,eAAe,CAAC,QAAQ,CAAC;QACvB,CAAC,MAAM,IAAI,CAAC,QAAQ,EAAE,UAAU,CAAC,QAAQ,EAAE,IAAI,EAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,CAAC,CACvE,CACJ,CAAC;IAEF,MAAM,CAAC,YAAY,CACjB,iBAAiB,EACjB;QACE,KAAK,EAAE,eAAe;QACtB,WAAW,EAAE,sEAAsE;QACnF,WAAW,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE;QAC7C,WAAW,EAAE;YACX,YAAY,EAAE,IAAI;YAClB,eAAe,EAAE,KAAK;YACtB,cAAc,EAAE,IAAI;YACpB,aAAa,EAAE,KAAK;SACrB;KACF,EACD,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,MAAM,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC,CACxF,CAAC;IAEF,MAAM,CAAC,YAAY,CACjB,iBAAiB,EACjB;QACE,KAAK,EAAE,cAAc;QACrB,WAAW,EAAE,oDAAoD;QACjE,WAAW,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE;QAChC,gFAAgF;QAChF,uFAAuF;QACvF,uFAAuF;QACvF,4BAA4B;QAC5B,WAAW,EAAE;YACX,YAAY,EAAE,KAAK;YACnB,eAAe,EAAE,KAAK;YACtB,cAAc,EAAE,IAAI;YACpB,aAAa,EAAE,KAAK;SACrB;KACF,EACD,KAAK,EAAE,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE;QACxB,MAAM,IAAI,GAAG,eAAe,CAAC,QAAQ,CAAC,CAAC;QACvC,IAAI,IAAI;YAAE,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC;QAC5B,MAAM,GAAG,GAAG,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;QACnD,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,QAAQ,CAAC,CAAC;QAC1C,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,QAAQ,EAAE,GAAG,EAAE,CAC/C,KAAK,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE;YACjC,KAAK,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE;SAC7C,CAAC,CACH,CAAC;QACF,OAAO,IAAI,CAAC;YACV,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,KAAK,GAAG,CAAC;YAC3D,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC;SACvD,CAAC,CAAC;IACL,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,YAAY,CACjB,kBAAkB,EAClB;QACE,KAAK,EAAE,gBAAgB;QACvB,WAAW,EACT,iIAAiI;QACnI,WAAW,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE;QAChC,WAAW,EAAE;YACX,YAAY,EAAE,IAAI;YAClB,eAAe,EAAE,KAAK;YACtB,cAAc,EAAE,IAAI;YACpB,aAAa,EAAE,KAAK;SACrB;KACF,EACD,KAAK,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,OAAO,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC,CACrF,CAAC;IAEF,MAAM,CAAC,YAAY,CACjB,eAAe,EACf;QACE,KAAK,EAAE,6BAA6B;QACpC,WAAW,EAAE,+DAA+D;QAC5E,WAAW,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,EAAE;QAClE,uFAAuF;QACvF,0FAA0F;QAC1F,2DAA2D;QAC3D,WAAW,EAAE;YACX,YAAY,EAAE,KAAK;YACnB,eAAe,EAAE,KAAK;YACtB,cAAc,EAAE,KAAK;YACrB,aAAa,EAAE,KAAK;SACrB;KACF,EACD,KAAK,EAAE,EAAE,GAAG,EAAE,QAAQ,EAAE,EAAE,EAAE,CAC1B,IAAI,CACF,MAAM,YAAY,CAAC,QAAQ,EAAE,KAAK,IAAI,EAAE,CACtC,OAAO,CACL,QAAQ,EACR,UAAU,CAAC,QAAQ,EAAE,GAAG,EAAE,QAAQ,CAAC,EACnC,MAAM,UAAU,CAAC,QAAQ,CAAC,EAC1B,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EACrC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAC3C,CACF,CACF,CACJ,CAAC;IAEF,MAAM,CAAC,YAAY,CACjB,cAAc,EACd;QACE,KAAK,EAAE,mBAAmB;QAC1B,WAAW,EAAE,uEAAuE;QACpF,WAAW,EAAE;YACX,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;YAClB,UAAU,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,YAAY,EAAE,gBAAgB,CAAC,CAAC;YAC/D,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;SAC5B;QACD,wFAAwF;QACxF,sFAAsF;QACtF,+DAA+D;QAC/D,WAAW,EAAE;YACX,YAAY,EAAE,KAAK;YACnB,eAAe,EAAE,KAAK;YACtB,cAAc,EAAE,KAAK;YACrB,aAAa,EAAE,KAAK;SACrB;KACF,EACD,KAAK,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,EAAE,EAAE,CACrC,IAAI,CACF,MAAM,YAAY,CAAC,QAAQ,EAAE,KAAK,IAAI,EAAE,CACtC,GAAG,CACD,QAAQ,EACR,MAAM,EACN,UAAU,EACV,IAAI,EACJ,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EACrC,MAAM,UAAU,CAAC,QAAQ,CAAC,CAC3B,CACF,CACF,CACJ,CAAC;IAEF,MAAM,CAAC,YAAY,CACjB,gBAAgB,EAChB;QACE,KAAK,EAAE,iBAAiB;QACxB,WAAW,EAAE,gEAAgE;QAC7E,WAAW,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE;QAC5E,yFAAyF;QACzF,kCAAkC;QAClC,WAAW,EAAE;YACX,YAAY,EAAE,KAAK;YACnB,eAAe,EAAE,KAAK;YACtB,cAAc,EAAE,KAAK;YACrB,aAAa,EAAE,KAAK;SACrB;KACF,EACD,KAAK,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE,CACpC,IAAI,CACF,MAAM,YAAY,CAAC,QAAQ,EAAE,GAAG,EAAE,CAChC,KAAK,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,CAChF,CACF,CACJ,CAAC;IAEF,oGAAoG;IAEpG,kGAAkG;IAClG,MAAM,UAAU,GAAG,GAAG,EAAE;QACtB,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,gBAAgB,EAAE,CAAC;QAChD,OAAO;YACL,IAAI,EAAE,IAAa;YACnB,IAAI,EAAE,MAAM,EAAE,IAAI;gBAChB,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE;gBAC/E,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE;SACpB,CAAC;IACJ,CAAC,CAAC;IAEF,MAAM,CAAC,YAAY,CACjB,gBAAgB,EAChB;QACE,KAAK,EAAE,qBAAqB;QAC5B,WAAW,EACT,8YAA8Y;QAChZ,WAAW,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,EAAE;QACvF,2DAA2D;QAC3D,WAAW,EAAE;YACX,YAAY,EAAE,IAAI;YAClB,eAAe,EAAE,KAAK;YACtB,cAAc,EAAE,IAAI;YACpB,aAAa,EAAE,KAAK;SACrB;KACF,EACD,KAAK,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,EAAE;QAC3B,MAAM,IAAI,GAAG,eAAe,CAAC,QAAQ,CAAC,CAAC;QACvC,IAAI,IAAI;YAAE,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC;QAC5B,MAAM,KAAK,GAAG,OAAO;YACnB,CAAC,CAAC,YAAY,CAAC,QAAQ,CAAC;YACxB,CAAC,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC;QACzD,OAAO,IAAI,CAAC,MAAM,SAAS,CAAC,QAAQ,EAAE,MAAM,UAAU,CAAC,QAAQ,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;IAC5E,CAAC,CACF,CAAC;IAEF,MAAM,CAAC,YAAY,CACjB,uBAAuB,EACvB;QACE,KAAK,EAAE,oBAAoB;QAC3B,WAAW,EACT,ySAAyS;QAC3S,WAAW,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE;QAC/B,WAAW,EAAE;YACX,YAAY,EAAE,IAAI;YAClB,eAAe,EAAE,KAAK;YACtB,cAAc,EAAE,IAAI;YACpB,aAAa,EAAE,KAAK;SACrB;KACF,EACD,KAAK,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,WAAW,CAAC,QAAQ,EAAE,MAAM,UAAU,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAC,CACpF,CAAC;IAEF,MAAM,CAAC,YAAY,CACjB,kBAAkB,EAClB;QACE,KAAK,EAAE,gBAAgB;QACvB,WAAW,EACT,kbAAkb;QACpb,WAAW,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE;QAC5D,oGAAoG;QACpG,WAAW,EAAE;YACX,YAAY,EAAE,KAAK;YACnB,eAAe,EAAE,KAAK;YACtB,cAAc,EAAE,IAAI;YACpB,aAAa,EAAE,KAAK;SACrB;KACF,EACD,KAAK,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CACrB,IAAI,CAAC,MAAM,WAAW,CAAC,QAAQ,EAAE,MAAM,UAAU,CAAC,QAAQ,CAAC,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,IAAI,CAAC,CAAC,CACxF,CAAC;IAEF,MAAM,CAAC,cAAc,CACnB,UAAU,EACV;QACE,KAAK,EAAE,yBAAyB;QAChC,WAAW,EACT,4IAA4I;QAC9I,UAAU,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE;KAC7C,EACD,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;QACd,QAAQ,EAAE;YACR;gBACE,IAAI,EAAE,MAAM;gBACZ,OAAO,EAAE;oBACP,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE;wBACJ,4FAA4F;wBAC5F,EAAE;wBACF,yBAAyB,KAAK,CAAC,CAAC,CAAC,gBAAgB,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,6CAA6C,CAAC,CAAC,CAAC,EAAE,iDAAiD;wBACzK,6LAA6L;wBAC7L,2NAA2N;wBAC3N,kKAAkK;wBAClK,qHAAqH;wBACrH,2FAA2F;qBAC5F,CAAC,IAAI,CAAC,IAAI,CAAC;iBACb;aACF;SACF;KACF,CAAC,CACH,CAAC;IAEF,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,QAAgB;IACnD,MAAM,MAAM,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC;IACtC,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAC;IAC7C,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;AAClC,CAAC"}
@@ -0,0 +1,84 @@
1
+ import type { Actor, LedgerRecord, LockwireConfig, Tier } from "./types.js";
2
+ export type TaskKind =
3
+ /** The code a claim is bound to changed in a tier the claim depends on. */
4
+ "code-changed"
5
+ /** A value anchor whose sentence no longer states the value. */
6
+ | "value-wrong"
7
+ /** A value anchor whose value moved and whose sentence states no number to check. */
8
+ | "value-changed"
9
+ /** The claim sentence was edited since it was stamped; the code didn't move. */
10
+ | "claim-edited"
11
+ /** The bound symbol, key or file is gone (or outside the repository). */
12
+ | "target-missing"
13
+ /** The marker was deleted from the doc. */
14
+ | "marker-removed"
15
+ /** A marker no anchor backs: the claim under it isn't being checked at all. */
16
+ | "unlinked";
17
+ export interface Task {
18
+ /**
19
+ * An anchor id, or `unlinked:<doc>:<marker line>:<key>` for a marker with no anchor, where `key`
20
+ * is a short hash of the marker's target and claim: a stale id can't land on a different marker.
21
+ */
22
+ id: string;
23
+ kind: TaskKind;
24
+ doc: string | null;
25
+ /** The line of the claim sentence in `doc` (its marker is above it). */
26
+ line: number | null;
27
+ claim: string | null;
28
+ target: string;
29
+ /** One line: what is wrong. */
30
+ summary: string;
31
+ /** What to do, most likely first. */
32
+ resolutions: string[];
33
+ }
34
+ /**
35
+ * Everything that needs attention, as tasks, in doc order. A dry run: nothing is written. `paths`
36
+ * scopes it the way `check <paths>` does: anchors whose target or doc is one of them, or is inside a
37
+ * listed directory.
38
+ */
39
+ export declare function listTasks(repoRoot: string, config: LockwireConfig, paths?: readonly string[]): Promise<Task[]>;
40
+ /** A side of the comparison: the bound code (or value) at one point in time. */
41
+ export interface TargetSnapshot {
42
+ /** The commit it was read from, for the stamped side. */
43
+ commit?: string | null;
44
+ /** The declaration as written (a symbol), the file (a whole-file anchor), or the value. */
45
+ source: string | null;
46
+ /** True when the code at that commit fingerprints exactly as stamped, so this is what the claim was checked against. */
47
+ exact?: boolean;
48
+ truncated?: boolean;
49
+ /** Why `source` is null, or why it is only approximate. */
50
+ note?: string;
51
+ }
52
+ export interface TaskContext {
53
+ task: Task;
54
+ /** The whole claim sentence (the task carries an excerpt). */
55
+ claimText: string | null;
56
+ tiers: Tier[];
57
+ /** As stamped. Absent for an unlinked marker, which was never stamped. */
58
+ stamped?: TargetSnapshot;
59
+ now: TargetSnapshot;
60
+ /** This claim's ledger history: how often it broke, and how it was resolved. */
61
+ history: LedgerRecord[];
62
+ }
63
+ export declare function taskContext(repoRoot: string, config: LockwireConfig, id: string): Promise<TaskContext>;
64
+ export interface ResolveOutcome {
65
+ id: string;
66
+ /**
67
+ * resolved: the claim was re-stamped and checks clean. already-fresh: there was nothing to do.
68
+ * refused: nothing was changed; see reason.
69
+ */
70
+ status: "resolved" | "already-fresh" | "refused";
71
+ reason?: string;
72
+ /** For an unlinked marker that was linked: the id it got. */
73
+ anchorId?: string;
74
+ /** What's still open on the same doc after this, so the agent can carry on. */
75
+ remaining: Task[];
76
+ }
77
+ /**
78
+ * Re-stamp one claim after the agent has fixed it — only that claim, never the rest of its doc. This
79
+ * is the reviewed path (an explicit "I checked this"), recorded in the ledger with the agent's note;
80
+ * a value anchor is still checked against its value and refused if the sentence disagrees. A refusal
81
+ * changes nothing. Runs under the repository lock, so parallel resolves can't lose each other's writes.
82
+ */
83
+ export declare function resolveTask(repoRoot: string, config: LockwireConfig, id: string, actor: Actor, note?: string): Promise<ResolveOutcome>;
84
+ //# sourceMappingURL=tasks.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tasks.d.ts","sourceRoot":"","sources":["../src/tasks.ts"],"names":[],"mappings":"AA6BA,OAAO,KAAK,EAAE,KAAK,EAAU,YAAY,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAGpF,MAAM,MAAM,QAAQ;AAClB,2EAA2E;AACzE,cAAc;AAChB,gEAAgE;GAC9D,aAAa;AACf,qFAAqF;GACnF,eAAe;AACjB,gFAAgF;GAC9E,cAAc;AAChB,yEAAyE;GACvE,gBAAgB;AAClB,2CAA2C;GACzC,gBAAgB;AAClB,+EAA+E;GAC7E,UAAU,CAAC;AAEf,MAAM,WAAW,IAAI;IACnB;;;OAGG;IACH,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,QAAQ,CAAC;IACf,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACnB,wEAAwE;IACxE,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,+BAA+B;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,qCAAqC;IACrC,WAAW,EAAE,MAAM,EAAE,CAAC;CACvB;AAqGD;;;;GAIG;AACH,wBAAsB,SAAS,CAC7B,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,cAAc,EACtB,KAAK,CAAC,EAAE,SAAS,MAAM,EAAE,GACxB,OAAO,CAAC,IAAI,EAAE,CAAC,CAgCjB;AAgCD,gFAAgF;AAChF,MAAM,WAAW,cAAc;IAC7B,yDAAyD;IACzD,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,2FAA2F;IAC3F,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,wHAAwH;IACxH,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,2DAA2D;IAC3D,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,IAAI,CAAC;IACX,8DAA8D;IAC9D,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,KAAK,EAAE,IAAI,EAAE,CAAC;IACd,0EAA0E;IAC1E,OAAO,CAAC,EAAE,cAAc,CAAC;IACzB,GAAG,EAAE,cAAc,CAAC;IACpB,gFAAgF;IAChF,OAAO,EAAE,YAAY,EAAE,CAAC;CACzB;AA8FD,wBAAsB,WAAW,CAC/B,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,cAAc,EACtB,EAAE,EAAE,MAAM,GACT,OAAO,CAAC,WAAW,CAAC,CA+BtB;AAID,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX;;;OAGG;IACH,MAAM,EAAE,UAAU,GAAG,eAAe,GAAG,SAAS,CAAC;IACjD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,6DAA6D;IAC7D,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,+EAA+E;IAC/E,SAAS,EAAE,IAAI,EAAE,CAAC;CACnB;AAeD;;;;;GAKG;AACH,wBAAgB,WAAW,CACzB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,cAAc,EACtB,EAAE,EAAE,MAAM,EACV,KAAK,EAAE,KAAK,EACZ,IAAI,CAAC,EAAE,MAAM,GACZ,OAAO,CAAC,cAAc,CAAC,CAEzB"}