@rsaglobaltech/specgate 0.15.0 → 0.16.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/CHANGELOG.md CHANGED
@@ -8,6 +8,44 @@ The release process is in [`docs/release-process.md`](docs/release-process.md).
8
8
 
9
9
  ## [Unreleased]
10
10
 
11
+ ## [0.16.0] — 2026-10-09
12
+
13
+ ### Added
14
+
15
+ - **`specgate draft --check <change-id>`** (ADR-0029, phase 1): the checklist a
16
+ draft change must pass before anyone reviews it — a scenario and a kind for
17
+ every requirement (D1, D2), a scenario on each surface an actor uses (D3), a
18
+ measure for every non-functional requirement (D4), a source for every cited
19
+ law (D5), every stated value either in the brief or listed in
20
+ `assumptions.md` (D6), every open question blocking something (D7), and a
21
+ size a person can review (D8). A rule that cannot run says so instead of
22
+ passing. Works on any change, drafted by an agent or by hand.
23
+ - **`specgate status` notes D4 and D5 on the project's own specification**: a
24
+ non-functional requirement that promises a quantity ("fast", "scalable")
25
+ without stating it, and a business rule that cites a law with no source.
26
+ Notes, never failures. D4 flags a promised quantity, not every qualitative
27
+ constraint: on the Golden State packs the first version flagged 4
28
+ requirements about offline use, privacy and devices, none of them omissions.
29
+ - **MCP tool `specgate_verify`** (ADR-0030): the agent working from an OpenSpec
30
+ spec gets the same check `specgate verify` runs, inside its own loop.
31
+ - **A weekly check that `verify` still reads OpenSpec.** OpenSpec releases
32
+ weekly; `e2e/openspec-compat.mjs` installs the latest, lets it write and
33
+ archive a change, checks `verify` fails then passes on it, and reads
34
+ OpenSpec's own repository with nothing unreadable. Runs every Monday and on
35
+ demand with a version (`openspec-compat.yml`).
36
+
37
+ ### Fixed
38
+
39
+ - **No command's output is cut short when piped.** On macOS, Node writes to a
40
+ pipe asynchronously and `process.exit()` does not wait: a JSON document over
41
+ 64 KB reached the program reading it truncated at exactly 65,536 bytes. 0.14.4
42
+ fixed `plan`; twenty-eight more commands exited the same way. Every command
43
+ now runs with blocking stdio, so the write completes before the exit.
44
+ - **MCP tools accept an OpenSpec project.** Every tool refused a directory
45
+ without `spec.md` as "not a spec-driven project", so `specgate_verify` could
46
+ not run on the projects it was built for. A directory with `openspec/` is a
47
+ project too.
48
+
11
49
  ## [0.15.0] — 2026-10-08
12
50
 
13
51
  ### Changed
package/bin/specgate.ts CHANGED
@@ -219,8 +219,13 @@ function ensureExecutable(scriptPath: string): void {
219
219
  }
220
220
  }
221
221
 
222
+ // Every command runs with blocking stdio, so `process.exit()` in it cannot
223
+ // truncate output piped to another program (golden_app finding #33).
224
+ const BLOCKING_STDIO = path.join(rootDir, "dist", "scripts", "lib", "blocking-stdio.js");
225
+
222
226
  function runNodeScript(scriptPath: string, args: string[]): void {
223
- const result = spawnSync(process.execPath, [scriptPath, ...args], {
227
+ const preload = fs.existsSync(BLOCKING_STDIO) ? ["--require", BLOCKING_STDIO] : [];
228
+ const result = spawnSync(process.execPath, [...preload, scriptPath, ...args], {
224
229
  stdio: "inherit",
225
230
  env: process.env,
226
231
  });
@@ -196,8 +196,12 @@ function ensureExecutable(scriptPath) {
196
196
  process.exit(3);
197
197
  }
198
198
  }
199
+ // Every command runs with blocking stdio, so `process.exit()` in it cannot
200
+ // truncate output piped to another program (golden_app finding #33).
201
+ const BLOCKING_STDIO = path.join(rootDir, "dist", "scripts", "lib", "blocking-stdio.js");
199
202
  function runNodeScript(scriptPath, args) {
200
- const result = (0, child_process_1.spawnSync)(process.execPath, [scriptPath, ...args], {
203
+ const preload = fs.existsSync(BLOCKING_STDIO) ? ["--require", BLOCKING_STDIO] : [];
204
+ const result = (0, child_process_1.spawnSync)(process.execPath, [...preload, scriptPath, ...args], {
201
205
  stdio: "inherit",
202
206
  env: process.env,
203
207
  });
@@ -1 +1 @@
1
- {"version":3,"file":"specgate.js","sourceRoot":"","sources":["../../bin/specgate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"specgate.js","sourceRoot":"","sources":["../../bin/specgate.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,334 @@
1
+ "use strict";
2
+ /**
3
+ * Is a draft complete enough to review? (ADR-0029, docs/specs/draft-from-brief.md §4)
4
+ *
5
+ * The rules a draft change must satisfy before a person reads it. Each one is
6
+ * an omission the Golden State pilot made by hand and nothing caught: sixteen
7
+ * requirements with no scenario, a whole API and screen layer never asked
8
+ * for, values nobody had said. They are mechanical on purpose (ADR-0023): the
9
+ * checklist does not judge whether a requirement is right, only that the
10
+ * draft says what it must say.
11
+ *
12
+ * Pure: the caller reads the change's deltas, the brief, `assumptions.md` and
13
+ * `questions.md` and hands the text in.
14
+ */
15
+ Object.defineProperty(exports, "__esModule", { value: true });
16
+ exports.KINDS = void 0;
17
+ exports.actorSurfaces = actorSurfaces;
18
+ exports.statedValues = statedValues;
19
+ exports.unmeasured = unmeasured;
20
+ exports.checkDraft = checkDraft;
21
+ exports.specNotes = specNotes;
22
+ const Diagnostic_1 = require("./Diagnostic");
23
+ const SpecParser_1 = require("./SpecParser");
24
+ exports.KINDS = new Set(["functional", "non-functional", "business-rule"]);
25
+ // ── The brief's front matter ──────────────────────────────────────────────────
26
+ /** `actors: [{ name: Worker, surfaces: [mobile] }]` → Worker → [mobile]. */
27
+ function actorSurfaces(brief) {
28
+ const out = new Map();
29
+ const fm = /^---\n([\s\S]*?)\n---/.exec(brief.replace(/\r\n/g, "\n"));
30
+ if (!fm)
31
+ return out;
32
+ const re = /\{\s*name:\s*([^,}]+?)\s*,\s*surfaces:\s*\[([^\]]*)\]\s*\}/g;
33
+ let m;
34
+ while ((m = re.exec(fm[1])) !== null) {
35
+ out.set(m[1].trim().toLowerCase(), m[2]
36
+ .split(",")
37
+ .map((s) => s.trim().toLowerCase())
38
+ .filter(Boolean));
39
+ }
40
+ return out;
41
+ }
42
+ // ── Values a scenario states ──────────────────────────────────────────────────
43
+ const ID_TOKEN = /\b(?:REQ|SCN|UC|CMD|AGG|EVT|Q|A)-[A-Za-z0-9.]+\b/g;
44
+ /** Numbers and double-quoted strings in a step: what a reader would take as fact. */
45
+ function statedValues(step) {
46
+ const text = step.replace(ID_TOKEN, " ").replace(/^\s*(GIVEN|WHEN|THEN|AND|BUT)\b/i, "");
47
+ const out = [];
48
+ for (const q of text.matchAll(/"([^"]+)"/g))
49
+ out.push(q[1]);
50
+ const unquoted = text.replace(/"[^"]*"/g, " ").replace(/`[^`]*`/g, " ");
51
+ for (const n of unquoted.matchAll(/(?<![\w.])\d+(?:[.,]\d+)*(?![\w])/g))
52
+ out.push(n[0]);
53
+ return out;
54
+ }
55
+ const norm = (s) => s
56
+ .toLowerCase()
57
+ .replace(/[,\s]+/g, " ")
58
+ .trim();
59
+ const escapeRegExp = (v) => v.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
60
+ function inText(value, text) {
61
+ if (/^\d/.test(value)) {
62
+ const bare = value.replace(/,/g, "");
63
+ const plain = text.replace(/(\d),(\d)/g, "$1$2");
64
+ return new RegExp(`(?<![\\d.])${escapeRegExp(bare)}(?![\\d])`).test(plain);
65
+ }
66
+ return norm(text).includes(norm(value));
67
+ }
68
+ // ── Questions ─────────────────────────────────────────────────────────────────
69
+ /** Rows of `questions.md`: `| # | Question | Blocks | … |`. */
70
+ function questionRows(md) {
71
+ const lines = md.replace(/\r\n/g, "\n").split("\n");
72
+ const header = lines.findIndex((l) => /^\|.*\bBlocks\b.*\|/i.test(l));
73
+ if (header === -1)
74
+ return [];
75
+ const cols = lines[header].split("|").map((c) => c.trim().toLowerCase());
76
+ const at = cols.indexOf("blocks");
77
+ const out = [];
78
+ for (let i = header + 2; i < lines.length && /^\|/.test(lines[i]); i += 1) {
79
+ const cells = lines[i].split("|").map((c) => c.trim());
80
+ out.push({
81
+ row: cells[1] || `row ${i + 1}`,
82
+ blocks: (cells[at] || "").match(/REQ-[A-Za-z0-9.]+/g) || [],
83
+ line: i + 1,
84
+ });
85
+ }
86
+ return out;
87
+ }
88
+ // ── What D4 and D5 look for ───────────────────────────────────────────────────
89
+ const MEASURE = /\d+(?:[.,]\d+)?\s*(ms|s|sec|seconds?|min|minutes?|h|hours?|%|m|km|kb|mb|gb|req\/s|rps|users?|days?)\b/i;
90
+ const CITES = /(\bCode\s*§|§\s*\d|\bACI\b|\bOSHA\b|\bGDPR\b|\bCCPA\b|\bHIPAA\b|\bISO\s*\d|\bCBA\b|\bcontract\b|\bregulation\b|\bLey\b|\bnorma\b)/i;
91
+ const SOURCED = /(https?:\/\/|\bSource:|\bFuente:)/i;
92
+ /**
93
+ * Words that promise a quantity. A non-functional requirement is unmeasured
94
+ * when it uses one and states no number: "fast", "scalable", "low latency".
95
+ * A qualitative constraint — offline, privacy, which devices — is verifiable
96
+ * without a number; flagging every one of those was 4 false positives out of
97
+ * 4 on the Golden State packs.
98
+ */
99
+ const QUANTITATIVE = /\b(fast|faster|quick(ly)?|slow|speed|latency|response time|responsive|performan(t|ce)|throughput|concurren(t|cy)|load|scal(able|e|ability)|uptime|availab(le|ility)|capacity|real[- ]time|instant(ly)?|r[aá]pid[oa]?|veloz|escalable|disponibilidad)\b/i;
100
+ /** Promises a quantity and states none. */
101
+ function unmeasured(text) {
102
+ return QUANTITATIVE.test(text) && !MEASURE.test(text);
103
+ }
104
+ // ── The checklist ─────────────────────────────────────────────────────────────
105
+ function checkDraft(files) {
106
+ const status = [];
107
+ const skipped = [];
108
+ const reqs = [];
109
+ for (const d of files.deltas) {
110
+ const delta = (0, SpecParser_1.parseDelta)(d.source);
111
+ for (const r of [...(delta.added || []), ...(delta.modified || [])]) {
112
+ reqs.push({
113
+ id: r.id || r.name,
114
+ name: r.name,
115
+ text: r.text || "",
116
+ line: r.line,
117
+ file: d.path,
118
+ trace: r.trace || {},
119
+ scenarios: (r.scenarios || []).map((s) => ({
120
+ id: s.id || s.name,
121
+ name: s.name,
122
+ steps: s.steps || [],
123
+ line: s.line,
124
+ })),
125
+ });
126
+ }
127
+ }
128
+ const at = (r) => ({ file: r.file, line: r.line, target: r.id });
129
+ // D1 — a requirement has a scenario.
130
+ for (const r of reqs) {
131
+ if (r.scenarios.length === 0) {
132
+ status.push((0, Diagnostic_1.error)("D1_no_scenario", `${r.id} has no scenario: nothing would verify it.`, {
133
+ ...at(r),
134
+ fix: "Add at least one scenario with values a test can assert.",
135
+ }));
136
+ }
137
+ }
138
+ // D2 — a requirement has a kind.
139
+ for (const r of reqs) {
140
+ if (!exports.KINDS.has(r.trace.kind || "")) {
141
+ status.push((0, Diagnostic_1.error)("D2_no_kind", `${r.id} has no kind (functional, non-functional or business-rule).`, {
142
+ ...at(r),
143
+ fix: `Add <!-- csda:trace kind=functional --> (or non-functional, business-rule) under its heading.`,
144
+ }));
145
+ }
146
+ }
147
+ // D3 — a requirement a person drives has a scenario on each surface its actor uses.
148
+ const surfaces = files.brief ? actorSurfaces(files.brief) : new Map();
149
+ if (surfaces.size === 0) {
150
+ skipped.push({
151
+ rule: "D3",
152
+ why: files.brief
153
+ ? "the brief declares no actors with surfaces in its front matter"
154
+ : "no brief given",
155
+ });
156
+ }
157
+ else {
158
+ const API = /\b(GET|POST|PUT|PATCH|DELETE)\s+\/\S*/;
159
+ const SCREEN = /\b(taps?|clicks?|opens?|sees?|toca|abre|pulsa|ve)\b/i;
160
+ for (const r of reqs) {
161
+ const actor = (r.trace.actor || "").toLowerCase();
162
+ const wanted = surfaces.get(actor);
163
+ if (!actor || !wanted)
164
+ continue;
165
+ const steps = r.scenarios.flatMap((s) => s.steps);
166
+ const has = {
167
+ api: steps.some((s) => API.test(s)),
168
+ screen: steps.some((s) => SCREEN.test(s)),
169
+ };
170
+ for (const surface of wanted) {
171
+ const ok = surface === "api" ? has.api : has.screen;
172
+ if (!ok) {
173
+ status.push((0, Diagnostic_1.error)("D3_surface_missing", `${r.id} is driven by ${r.trace.actor}, who uses ${surface}, and no scenario exercises it.`, {
174
+ ...at(r),
175
+ fix: surface === "api"
176
+ ? "Add a scenario whose WHEN is the HTTP call (e.g. `POST /api/…`) and whose THEN is the response."
177
+ : "Add a scenario whose WHEN is what the person does on the screen (taps, opens) and whose THEN is what they see.",
178
+ }));
179
+ }
180
+ }
181
+ }
182
+ }
183
+ // D4 — a non-functional requirement states a number with a unit.
184
+ for (const r of reqs) {
185
+ if (r.trace.kind !== "non-functional")
186
+ continue;
187
+ const all = [r.text, ...r.scenarios.flatMap((s) => s.steps)].join("\n");
188
+ if (unmeasured(all)) {
189
+ status.push((0, Diagnostic_1.error)("D4_unmeasured_nfr", `${r.id} promises a quantity (speed, load, availability) and states no number with a unit.`, {
190
+ ...at(r),
191
+ fix: 'State the measure: "within 2 seconds", "99.5 % of requests", "under 200 MB".',
192
+ }));
193
+ }
194
+ }
195
+ // D5 — a business rule that cites a law, standard or contract names its source.
196
+ for (const r of reqs) {
197
+ if (r.trace.kind !== "business-rule")
198
+ continue;
199
+ if (CITES.test(r.text) && !SOURCED.test(r.text)) {
200
+ status.push((0, Diagnostic_1.error)("D5_unsourced_rule", `${r.id} cites a law, standard or contract and names no source.`, {
201
+ ...at(r),
202
+ fix: 'Add a "Source:" line (a link, or the clause and edition), or mark it as an assumption.',
203
+ }));
204
+ }
205
+ }
206
+ // D6 — a stated value is in the brief or listed as an assumption.
207
+ if (!files.brief) {
208
+ skipped.push({ rule: "D6", why: "no brief given" });
209
+ }
210
+ else {
211
+ const assumptions = files.assumptions || "";
212
+ for (const r of reqs) {
213
+ for (const s of r.scenarios) {
214
+ for (const step of s.steps) {
215
+ for (const v of statedValues(step)) {
216
+ if (inText(v, files.brief))
217
+ continue;
218
+ const listed = assumptions
219
+ .split("\n")
220
+ .some((row) => inText(v, row) && (row.includes(s.id) || row.includes(r.id)));
221
+ if (listed)
222
+ continue;
223
+ status.push((0, Diagnostic_1.error)("D6_unlisted_value", `${s.id} states "${v}", which is not in the brief and not listed as an assumption for ${s.id} or ${r.id}.`, {
224
+ file: r.file,
225
+ line: s.line,
226
+ target: s.id,
227
+ fix: `List it in assumptions.md with ${s.id} (or ${r.id}) in its row, or use the value the brief gives.`,
228
+ }));
229
+ }
230
+ }
231
+ }
232
+ }
233
+ }
234
+ // D7 — an open question names what it blocks, and what it blocks waits.
235
+ if (files.questions) {
236
+ const byId = new Map(reqs.map((r) => [r.id, r]));
237
+ for (const q of questionRows(files.questions)) {
238
+ if (q.blocks.length === 0) {
239
+ status.push((0, Diagnostic_1.error)("D7_floating_question", `Question ${q.row} blocks no requirement.`, {
240
+ file: "questions.md",
241
+ line: q.line,
242
+ fix: "Name the requirements it blocks in the Blocks column — a question that blocks nothing is answered by guessing.",
243
+ }));
244
+ continue;
245
+ }
246
+ for (const id of q.blocks) {
247
+ const r = byId.get(id);
248
+ if (r && r.trace.status !== "Needs Clarification") {
249
+ status.push((0, Diagnostic_1.error)("D7_floating_question", `Question ${q.row} blocks ${id}, and ${id} is not Needs Clarification.`, {
250
+ ...at(r),
251
+ fix: `Set status="Needs Clarification" in ${id}'s csda:trace, so it cannot be built around the question.`,
252
+ }));
253
+ }
254
+ }
255
+ }
256
+ }
257
+ // D8 — the draft is reviewable in one sitting.
258
+ const max = files.maxRequirements ?? 25;
259
+ if (reqs.length > max) {
260
+ status.push((0, Diagnostic_1.error)("D8_too_large", `The draft holds ${reqs.length} requirements; the review limit is ${max}.`, {
261
+ fix: "Draft one module per change. A draft nobody can review in one sitting is approved without being read.",
262
+ }));
263
+ }
264
+ return {
265
+ requirements: reqs.length,
266
+ scenarios: reqs.reduce((n, r) => n + r.scenarios.length, 0),
267
+ skipped,
268
+ status,
269
+ };
270
+ }
271
+ // ── The same rules on a hand-written specification ─────────────────────────────
272
+ const SECTION = /^(#{2,4})\s+(?:Requirement:\s*)?(REQ-[A-Za-z0-9.]+)\b\s*[—–:-]?\s*(.*)$/;
273
+ const TRACE = /<!--\s*csda:trace\b(.*?)-->/;
274
+ /** Each requirement section of `spec.md` or a capability spec: id, line, text, trace. */
275
+ function sections(source) {
276
+ const lines = source.replace(/\r\n/g, "\n").split("\n");
277
+ const out = [];
278
+ for (let i = 0; i < lines.length; i += 1) {
279
+ const m = SECTION.exec(lines[i].trim());
280
+ if (!m)
281
+ continue;
282
+ const level = m[1].length;
283
+ const body = [];
284
+ const trace = {};
285
+ for (let j = i + 1; j < lines.length; j += 1) {
286
+ if (new RegExp(`^#{1,${level}}\\s+\\S`).test(lines[j]))
287
+ break;
288
+ const t = TRACE.exec(lines[j]);
289
+ if (t) {
290
+ for (const kv of t[1].matchAll(/([a-z_]+)=("([^"]*)"|'([^']*)'|(\S+))/gi)) {
291
+ trace[kv[1].toLowerCase()] = kv[3] ?? kv[4] ?? kv[5];
292
+ }
293
+ continue;
294
+ }
295
+ body.push(lines[j]);
296
+ }
297
+ out.push({ id: m[2], line: i + 1, text: body.join("\n"), trace });
298
+ }
299
+ return out;
300
+ }
301
+ /**
302
+ * D4 and D5 as a report on a project's own specification (ADR-0029 decision 6).
303
+ *
304
+ * The checks that need no brief and say something `plan` does not already:
305
+ * D1 is `plan`'s "Needs Feature File"; D2 is not an omission outside a draft,
306
+ * since a requirement with no kind is functional (use-case model, §2). Info
307
+ * severity: adopting a release never turns a project red over its past
308
+ * (ADR-0023).
309
+ */
310
+ function specNotes(specs, features) {
311
+ const notes = [];
312
+ for (const f of specs) {
313
+ for (const r of sections(f.source)) {
314
+ const where = { file: f.path, line: r.line, target: r.id };
315
+ if (r.trace.kind === "non-functional") {
316
+ const tagged = features.filter((x) => new RegExp(`@${r.id}(?![A-Za-z0-9])`).test(x.source));
317
+ if (unmeasured([r.text, ...tagged.map((x) => x.source)].join("\n"))) {
318
+ notes.push((0, Diagnostic_1.info)("D4_unmeasured_nfr", `${r.id} promises a quantity (speed, load, availability) and states no number with a unit.`, {
319
+ ...where,
320
+ fix: 'State the measure: "within 2 seconds", "99.5 % of requests".',
321
+ }));
322
+ }
323
+ }
324
+ if (r.trace.kind === "business-rule" && CITES.test(r.text) && !SOURCED.test(r.text)) {
325
+ notes.push((0, Diagnostic_1.info)("D5_unsourced_rule", `${r.id} cites a law, standard or contract and names no source.`, {
326
+ ...where,
327
+ fix: 'Add a "Source:" line: a link, or the clause and edition.',
328
+ }));
329
+ }
330
+ }
331
+ }
332
+ return notes;
333
+ }
334
+ //# sourceMappingURL=DraftChecklist.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DraftChecklist.js","sourceRoot":"","sources":["../../../../../packages/core/src/domain/DraftChecklist.ts"],"names":[],"mappings":"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"}
@@ -54,8 +54,12 @@ class ProjectHelper {
54
54
  if (!fs.existsSync(projectDir)) {
55
55
  throw new Error(`projectDir does not exist: ${projectDir}`);
56
56
  }
57
- if (!fs.existsSync(path.join(projectDir, "spec.md"))) {
58
- throw new Error(`Not a spec-driven project (no spec.md): ${projectDir}`);
57
+ // A Specgate project has spec.md; an OpenSpec one has openspec/, and
58
+ // `specgate_verify` exists for it (ADR-0030). Requiring spec.md refused
59
+ // every OpenSpec project the tool was built for.
60
+ if (!fs.existsSync(path.join(projectDir, "spec.md")) &&
61
+ !fs.existsSync(path.join(projectDir, "openspec"))) {
62
+ throw new Error(`Not a Specgate or OpenSpec project (no spec.md, no openspec/): ${projectDir}`);
59
63
  }
60
64
  return projectDir;
61
65
  }
@@ -250,6 +254,14 @@ exports.TOOLS["specgate_check"] = new GenericCliTool("specgate_check", "The gate
250
254
  },
251
255
  required: ["projectDir"],
252
256
  }, "positional", false);
257
+ exports.TOOLS["specgate_verify"] = new GenericCliTool("specgate_verify", "Gate what OpenSpec calls done on tests that name each criterion (ADR-0030).", "verify", {
258
+ type: "object",
259
+ properties: {
260
+ projectDir: { type: "string" },
261
+ cliPath: { type: "string" },
262
+ },
263
+ required: ["projectDir"],
264
+ }, "flag", false);
253
265
  exports.TOOLS["validate_project"] = new GenericCliTool("validate_project", "Check structure, traceability, Gherkin. --strict is the gate: TDD, links, scenarios, requirements and coverage.", "validate", {
254
266
  type: "object",
255
267
  properties: {
@@ -1 +1 @@
1
- {"version":3,"file":"tools.js","sourceRoot":"","sources":["../../../../packages/mcp-spec-driven/src/tools.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tools.js","sourceRoot":"","sources":["../../../../packages/mcp-spec-driven/src/tools.ts"],"names":[],"mappings":"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"}