harness-mcp-v2 3.2.6 → 3.2.7

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 (61) hide show
  1. package/README.md +4 -4
  2. package/build/data/schemas/v0/pipeline.d.ts.map +1 -1
  3. package/build/data/schemas/v0/pipeline.js +1985 -398
  4. package/build/data/schemas/v0/pipeline.js.map +1 -1
  5. package/build/data/schemas/v0/template.d.ts.map +1 -1
  6. package/build/data/schemas/v0/template.js +4143 -2125
  7. package/build/data/schemas/v0/template.js.map +1 -1
  8. package/build/data/schemas/v1/pipeline.d.ts.map +1 -1
  9. package/build/data/schemas/v1/pipeline.js +18 -20
  10. package/build/data/schemas/v1/pipeline.js.map +1 -1
  11. package/build/data/schemas/v1/template.d.ts.map +1 -1
  12. package/build/data/schemas/v1/template.js +18 -20
  13. package/build/data/schemas/v1/template.js.map +1 -1
  14. package/build/index.js +3 -3
  15. package/build/index.js.map +1 -1
  16. package/build/registry/extractors.d.ts +5 -0
  17. package/build/registry/extractors.d.ts.map +1 -1
  18. package/build/registry/extractors.js +6 -0
  19. package/build/registry/extractors.js.map +1 -1
  20. package/build/registry/toolsets/ai-evals.d.ts.map +1 -1
  21. package/build/registry/toolsets/ai-evals.js +10 -12
  22. package/build/registry/toolsets/ai-evals.js.map +1 -1
  23. package/build/registry/toolsets/ccm.d.ts.map +1 -1
  24. package/build/registry/toolsets/ccm.js +114 -12
  25. package/build/registry/toolsets/ccm.js.map +1 -1
  26. package/build/search/entity-index.d.ts +14 -0
  27. package/build/search/entity-index.d.ts.map +1 -0
  28. package/build/search/entity-index.js +88 -0
  29. package/build/search/entity-index.js.map +1 -0
  30. package/build/search/manager.d.ts.map +1 -1
  31. package/build/search/manager.js +16 -12
  32. package/build/search/manager.js.map +1 -1
  33. package/build/tools/harness-execute.d.ts.map +1 -1
  34. package/build/tools/harness-execute.js +18 -9
  35. package/build/tools/harness-execute.js.map +1 -1
  36. package/build/tools/harness-get.d.ts.map +1 -1
  37. package/build/tools/harness-get.js +4 -6
  38. package/build/tools/harness-get.js.map +1 -1
  39. package/build/tools/harness-list.d.ts.map +1 -1
  40. package/build/tools/harness-list.js +4 -6
  41. package/build/tools/harness-list.js.map +1 -1
  42. package/build/tools/harness-search.d.ts.map +1 -1
  43. package/build/tools/harness-search.js +2 -0
  44. package/build/tools/harness-search.js.map +1 -1
  45. package/build/utils/http-app.d.ts +13 -0
  46. package/build/utils/http-app.d.ts.map +1 -0
  47. package/build/utils/http-app.js +27 -0
  48. package/build/utils/http-app.js.map +1 -0
  49. package/build/utils/runtime-input-resolver.d.ts +10 -0
  50. package/build/utils/runtime-input-resolver.d.ts.map +1 -1
  51. package/build/utils/runtime-input-resolver.js +216 -0
  52. package/build/utils/runtime-input-resolver.js.map +1 -1
  53. package/build/utils/svg/render-png-child.d.ts +2 -0
  54. package/build/utils/svg/render-png-child.d.ts.map +1 -0
  55. package/build/utils/svg/render-png-child.js +30 -0
  56. package/build/utils/svg/render-png-child.js.map +1 -0
  57. package/build/utils/svg/render-png.d.ts +4 -4
  58. package/build/utils/svg/render-png.d.ts.map +1 -1
  59. package/build/utils/svg/render-png.js +101 -14
  60. package/build/utils/svg/render-png.js.map +1 -1
  61. package/package.json +1 -1
@@ -232,6 +232,203 @@ export function substituteInputs(templateYaml, userInputs) {
232
232
  expectedKeys,
233
233
  };
234
234
  }
235
+ function normalizeInputs(userInputs) {
236
+ const normalizedInputs = new Map();
237
+ for (const [key, value] of Object.entries(userInputs)) {
238
+ normalizedInputs.set(key.toLowerCase(), value);
239
+ }
240
+ return normalizedInputs;
241
+ }
242
+ function replacementForPath(path, normalizedInputs, variableNameRaw) {
243
+ const rawLeafKey = String(path[path.length - 1] ?? "");
244
+ const leafKey = rawLeafKey.toLowerCase();
245
+ const fullPath = path.map(String).join(".").toLowerCase();
246
+ const variableNameLower = variableNameRaw?.toLowerCase();
247
+ if (variableNameLower && normalizedInputs.has(variableNameLower)) {
248
+ return { value: normalizedInputs.get(variableNameLower), matchedAs: variableNameLower };
249
+ }
250
+ if (normalizedInputs.has(leafKey)) {
251
+ return { value: normalizedInputs.get(leafKey), matchedAs: leafKey };
252
+ }
253
+ if (normalizedInputs.has(fullPath)) {
254
+ return { value: normalizedInputs.get(fullPath), matchedAs: fullPath };
255
+ }
256
+ for (let i = 1; i < path.length - 1; i++) {
257
+ const suffix = path.slice(i).map(String).join(".").toLowerCase();
258
+ if (normalizedInputs.has(suffix)) {
259
+ return { value: normalizedInputs.get(suffix), matchedAs: suffix };
260
+ }
261
+ }
262
+ return { value: undefined, matchedAs: undefined };
263
+ }
264
+ function getAtPath(root, path) {
265
+ let current = root;
266
+ for (const segment of path) {
267
+ if (typeof segment === "number") {
268
+ if (!Array.isArray(current))
269
+ return undefined;
270
+ current = current[segment];
271
+ continue;
272
+ }
273
+ const record = asRecord(current);
274
+ if (!record)
275
+ return undefined;
276
+ current = record[segment];
277
+ }
278
+ return current;
279
+ }
280
+ function setAtPath(root, path, value) {
281
+ if (path.length === 0)
282
+ return false;
283
+ let current = root;
284
+ for (let i = 0; i < path.length - 1; i++) {
285
+ const segment = path[i];
286
+ const nextSegment = path[i + 1];
287
+ if (typeof segment === "number") {
288
+ if (!Array.isArray(current))
289
+ return false;
290
+ if (current[segment] === undefined) {
291
+ current[segment] = typeof nextSegment === "number" ? [] : {};
292
+ }
293
+ current = current[segment];
294
+ continue;
295
+ }
296
+ const record = asRecord(current);
297
+ if (!record)
298
+ return false;
299
+ if (record[segment] === undefined) {
300
+ record[segment] = typeof nextSegment === "number" ? [] : {};
301
+ }
302
+ current = record[segment];
303
+ }
304
+ const leaf = path[path.length - 1];
305
+ if (typeof leaf === "number") {
306
+ if (!Array.isArray(current))
307
+ return false;
308
+ current[leaf] = value;
309
+ return true;
310
+ }
311
+ const record = asRecord(current);
312
+ if (!record)
313
+ return false;
314
+ record[leaf] = value;
315
+ return true;
316
+ }
317
+ function findVariableRecord(root, parentPath, variableNameRaw) {
318
+ const variableName = variableNameRaw.toLowerCase();
319
+ const directParent = asRecord(getAtPath(root, parentPath));
320
+ if (asString(directParent?.name)?.toLowerCase() === variableName) {
321
+ return directParent;
322
+ }
323
+ const maybeVariableList = getAtPath(root, parentPath.slice(0, -1));
324
+ if (!Array.isArray(maybeVariableList))
325
+ return undefined;
326
+ for (const item of maybeVariableList) {
327
+ const record = asRecord(item);
328
+ if (asString(record?.name)?.toLowerCase() === variableName) {
329
+ return record;
330
+ }
331
+ }
332
+ return undefined;
333
+ }
334
+ function getCoveredValue(root, path, variableNameRaw) {
335
+ if (variableNameRaw) {
336
+ const variable = findVariableRecord(root, path.slice(0, -1), variableNameRaw);
337
+ const leaf = path[path.length - 1];
338
+ if (variable && typeof leaf === "string") {
339
+ return variable[leaf];
340
+ }
341
+ return undefined;
342
+ }
343
+ return getAtPath(root, path);
344
+ }
345
+ function setOverrideValue(root, path, value, variableNameRaw, templateVariable) {
346
+ if (variableNameRaw) {
347
+ const variable = findVariableRecord(root, path.slice(0, -1), variableNameRaw);
348
+ const leaf = path[path.length - 1];
349
+ if (variable && typeof leaf === "string") {
350
+ variable[leaf] = value;
351
+ return;
352
+ }
353
+ const variableList = getAtPath(root, path.slice(0, -2));
354
+ if (Array.isArray(variableList) && typeof leaf === "string") {
355
+ variableList.push({
356
+ ...(templateVariable ?? { name: variableNameRaw }),
357
+ [leaf]: value,
358
+ });
359
+ }
360
+ return;
361
+ }
362
+ setAtPath(root, path, value);
363
+ }
364
+ function isCoveredByBaseInput(value) {
365
+ if (value === undefined || value === null)
366
+ return false;
367
+ return !(typeof value === "string" && INPUT_PLACEHOLDER.test(value));
368
+ }
369
+ /**
370
+ * Apply simple inline overrides onto already-materialized input-set YAML.
371
+ *
372
+ * The runtime template is used only as a map from public input keys to exact
373
+ * runtime locations. Fields that the caller did not provide are left from the
374
+ * input set, instead of leaking unresolved `<+input>` placeholders from the
375
+ * template into the execute body.
376
+ */
377
+ export function substituteInputsIntoBaseYaml(templateYaml, userInputs, baseYaml) {
378
+ const templateRoot = YAML.parse(templateYaml);
379
+ const outputRoot = YAML.parse(baseYaml);
380
+ const normalizedInputs = normalizeInputs(userInputs);
381
+ const matched = [];
382
+ const unmatchedRequired = [];
383
+ const unmatchedOptional = [];
384
+ const expectedKeys = [];
385
+ function walk(node, path, parentRecord) {
386
+ if (Array.isArray(node)) {
387
+ node.forEach((item, index) => walk(item, [...path, index], undefined));
388
+ return;
389
+ }
390
+ const record = asRecord(node);
391
+ if (record) {
392
+ for (const [key, value] of Object.entries(record)) {
393
+ walk(value, [...path, key], record);
394
+ }
395
+ return;
396
+ }
397
+ if (typeof node !== "string" || !INPUT_PLACEHOLDER.test(node)) {
398
+ return;
399
+ }
400
+ const rawLeafKey = String(path[path.length - 1] ?? "");
401
+ const variableNameRaw = (rawLeafKey.toLowerCase() === "value" || rawLeafKey.toLowerCase() === "default")
402
+ ? asString(parentRecord?.name)
403
+ : undefined;
404
+ const displayName = variableNameRaw ?? rawLeafKey ?? path.map(String).join(".");
405
+ const isOptional = HAS_DEFAULT.test(node);
406
+ expectedKeys.push(displayName);
407
+ const replacement = replacementForPath(path, normalizedInputs, variableNameRaw);
408
+ if (replacement.value !== undefined) {
409
+ setOverrideValue(outputRoot, path, replacement.value, variableNameRaw, parentRecord);
410
+ matched.push(replacement.matchedAs ?? displayName);
411
+ return;
412
+ }
413
+ if (isCoveredByBaseInput(getCoveredValue(outputRoot, path, variableNameRaw))) {
414
+ return;
415
+ }
416
+ if (isOptional) {
417
+ unmatchedOptional.push(displayName);
418
+ }
419
+ else {
420
+ unmatchedRequired.push(displayName);
421
+ }
422
+ }
423
+ walk(templateRoot, [], undefined);
424
+ return {
425
+ yaml: YAML.stringify(outputRoot),
426
+ matched,
427
+ unmatchedRequired,
428
+ unmatchedOptional,
429
+ expectedKeys,
430
+ };
431
+ }
235
432
  /**
236
433
  * High-level resolver: fetches the template and substitutes user inputs.
237
434
  * Returns the resolved YAML string ready for the pipeline execute API.
@@ -260,4 +457,23 @@ export async function resolveRuntimeInputs(client, flatInputs, options) {
260
457
  }
261
458
  return result;
262
459
  }
460
+ export async function resolveRuntimeInputsWithBaseYaml(client, flatInputs, options, baseYaml) {
461
+ log.info(`Resolving runtime input overrides for pipeline ${options.pipelineId}`);
462
+ const templateYaml = await fetchRuntimeInputTemplate(client, options);
463
+ if (!templateYaml) {
464
+ log.info("Pipeline has no runtime input template, using materialized input set YAML as-is");
465
+ return { yaml: baseYaml, matched: [], unmatchedRequired: [], unmatchedOptional: [], expectedKeys: [] };
466
+ }
467
+ const result = substituteInputsIntoBaseYaml(templateYaml, flatInputs, baseYaml);
468
+ if (result.matched.length > 0) {
469
+ log.info(`Applied ${result.matched.length} runtime input override(s): ${result.matched.join(", ")}`);
470
+ }
471
+ if (result.unmatchedRequired.length > 0) {
472
+ log.warn(`${result.unmatchedRequired.length} required placeholders unresolved after input set merge: ${result.unmatchedRequired.join(", ")}`);
473
+ }
474
+ if (result.unmatchedOptional.length > 0) {
475
+ log.debug(`${result.unmatchedOptional.length} optional placeholders still defaulted after input set merge: ${result.unmatchedOptional.join(", ")}`);
476
+ }
477
+ return result;
478
+ }
263
479
  //# sourceMappingURL=runtime-input-resolver.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"runtime-input-resolver.js","sourceRoot":"","sources":["../../src/utils/runtime-input-resolver.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runtime-input-resolver.js","sourceRoot":"","sources":["../../src/utils/runtime-input-resolver.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=render-png-child.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"render-png-child.d.ts","sourceRoot":"","sources":["../../../src/utils/svg/render-png-child.ts"],"names":[],"mappings":""}
@@ -0,0 +1,30 @@
1
+ /**
2
+ * Child-process entry point for SVG → PNG conversion.
3
+ *
4
+ * Runs in a separate Node process so a native resvg panic (SIGSEGV) cannot
5
+ * kill the MCP server. Reads JSON from stdin, writes JSON to stdout.
6
+ */
7
+ import { text } from "node:stream/consumers";
8
+ import { stdin } from "node:process";
9
+ async function main() {
10
+ const raw = await text(stdin);
11
+ const { svg, scale } = JSON.parse(raw);
12
+ if (typeof svg !== "string" || !svg) {
13
+ process.stderr.write("Missing svg input");
14
+ process.exit(1);
15
+ }
16
+ const { Resvg } = await import("@resvg/resvg-js");
17
+ const resvg = new Resvg(svg, {
18
+ fitTo: { mode: "zoom", value: scale ?? 2 },
19
+ font: {
20
+ loadSystemFonts: false,
21
+ },
22
+ });
23
+ const pngBuffer = resvg.render().asPng();
24
+ process.stdout.write(JSON.stringify({ base64: Buffer.from(pngBuffer).toString("base64") }));
25
+ }
26
+ main().catch((err) => {
27
+ process.stderr.write(err instanceof Error ? err.message : String(err));
28
+ process.exit(1);
29
+ });
30
+ //# sourceMappingURL=render-png-child.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"render-png-child.js","sourceRoot":"","sources":["../../../src/utils/svg/render-png-child.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAC7C,OAAO,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AAOrC,KAAK,UAAU,IAAI;IACjB,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,CAAC;IAC9B,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAe,CAAC;IAErD,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,CAAC,GAAG,EAAE,CAAC;QACpC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC;QAC1C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,MAAM,CAAC,iBAAiB,CAAC,CAAC;IAClD,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,GAAG,EAAE;QAC3B,KAAK,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,IAAI,CAAC,EAAE;QAC1C,IAAI,EAAE;YACJ,eAAe,EAAE,KAAK;SACvB;KACF,CAAC,CAAC;IAEH,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,CAAC;IACzC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC;AAC9F,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,GAAY,EAAE,EAAE;IAC5B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;IACvE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
@@ -4,14 +4,14 @@
4
4
  * MCP clients (Cursor, Claude Desktop) reject image/svg+xml — only raster
5
5
  * formats are supported. This converts our SVG strings to PNG buffers.
6
6
  *
7
- * The import is dynamic because @resvg/resvg-js ships a native .node binary
8
- * that can fail to load when the host Node ABI doesn't match (e.g. Claude
9
- * Desktop's embedded Node). A top-level import would crash the entire server
10
- * at startup; dynamic import confines the failure to PNG rendering only.
7
+ * Rendering runs in a child process so a native resvg panic (SIGSEGV) cannot
8
+ * kill the MCP server. JS-level failures are surfaced as catchable errors.
11
9
  */
12
10
  export interface RenderPngOptions {
13
11
  /** Scale factor for higher DPI output. Default 2 (retina). */
14
12
  scale?: number;
15
13
  }
14
+ /** Reject obviously invalid SVG before spawning the native renderer. */
15
+ export declare function validateSvgInput(svgString: string): void;
16
16
  export declare function svgToPngBase64(svgString: string, options?: RenderPngOptions): Promise<string>;
17
17
  //# sourceMappingURL=render-png.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"render-png.d.ts","sourceRoot":"","sources":["../../../src/utils/svg/render-png.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,MAAM,WAAW,gBAAgB;IAC/B,8DAA8D;IAC9D,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,wBAAsB,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,MAAM,CAAC,CAenG"}
1
+ {"version":3,"file":"render-png.d.ts","sourceRoot":"","sources":["../../../src/utils/svg/render-png.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAOH,MAAM,WAAW,gBAAgB;IAC/B,8DAA8D;IAC9D,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AA+BD,wEAAwE;AACxE,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAiBxD;AA6DD,wBAAsB,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,MAAM,CAAC,CAInG"}
@@ -4,22 +4,109 @@
4
4
  * MCP clients (Cursor, Claude Desktop) reject image/svg+xml — only raster
5
5
  * formats are supported. This converts our SVG strings to PNG buffers.
6
6
  *
7
- * The import is dynamic because @resvg/resvg-js ships a native .node binary
8
- * that can fail to load when the host Node ABI doesn't match (e.g. Claude
9
- * Desktop's embedded Node). A top-level import would crash the entire server
10
- * at startup; dynamic import confines the failure to PNG rendering only.
7
+ * Rendering runs in a child process so a native resvg panic (SIGSEGV) cannot
8
+ * kill the MCP server. JS-level failures are surfaced as catchable errors.
11
9
  */
10
+ import { spawn } from "node:child_process";
11
+ import { existsSync } from "node:fs";
12
+ import { fileURLToPath } from "node:url";
13
+ import path from "node:path";
14
+ const RENDER_TIMEOUT_MS = 30_000;
15
+ // Resolved once per module load — the path never changes at runtime.
16
+ let _childScriptPath;
17
+ function resolveChildScript() {
18
+ if (_childScriptPath)
19
+ return _childScriptPath;
20
+ const dir = path.dirname(fileURLToPath(import.meta.url));
21
+ const adjacent = path.join(dir, "render-png-child.js");
22
+ if (existsSync(adjacent)) {
23
+ _childScriptPath = adjacent;
24
+ return _childScriptPath;
25
+ }
26
+ // Vitest loads parent from src/ but the child entry is compiled under build/.
27
+ const packageRoot = path.resolve(dir, "../../..");
28
+ const buildScript = path.join(packageRoot, "build/utils/svg/render-png-child.js");
29
+ if (existsSync(buildScript)) {
30
+ _childScriptPath = buildScript;
31
+ return _childScriptPath;
32
+ }
33
+ throw new Error("render-png-child.js not found. Run pnpm build before rendering SVG.");
34
+ }
35
+ const SVG_WIDTH_RE = /\bwidth="([^"]+)"/i;
36
+ const SVG_HEIGHT_RE = /\bheight="([^"]+)"/i;
37
+ /** Reject obviously invalid SVG before spawning the native renderer. */
38
+ export function validateSvgInput(svgString) {
39
+ const trimmed = svgString.trim();
40
+ if (!trimmed) {
41
+ throw new Error("SVG input is empty");
42
+ }
43
+ if (!/<svg[\s>]/i.test(trimmed)) {
44
+ throw new Error("SVG input missing <svg> root element");
45
+ }
46
+ for (const [attr, re] of [["width", SVG_WIDTH_RE], ["height", SVG_HEIGHT_RE]]) {
47
+ const match = trimmed.match(re);
48
+ if (!match?.[1])
49
+ continue;
50
+ const value = Number.parseFloat(match[1]);
51
+ if (Number.isNaN(value) || value <= 0) {
52
+ throw new Error(`SVG has invalid ${attr}: ${match[1]}`);
53
+ }
54
+ }
55
+ }
56
+ function renderInChildProcess(svgString, scale) {
57
+ const payload = JSON.stringify({ svg: svgString, scale });
58
+ return new Promise((resolve, reject) => {
59
+ const child = spawn(process.execPath, [resolveChildScript()], {
60
+ stdio: ["pipe", "pipe", "pipe"],
61
+ });
62
+ const timeout = setTimeout(() => {
63
+ child.kill("SIGKILL");
64
+ reject(new Error(`SVG render timed out after ${RENDER_TIMEOUT_MS}ms`));
65
+ }, RENDER_TIMEOUT_MS);
66
+ let stdout = "";
67
+ let stderr = "";
68
+ child.stdout.setEncoding("utf8");
69
+ child.stderr.setEncoding("utf8");
70
+ child.stdout.on("data", (chunk) => {
71
+ stdout += chunk;
72
+ });
73
+ child.stderr.on("data", (chunk) => {
74
+ stderr += chunk;
75
+ });
76
+ child.on("error", (err) => {
77
+ clearTimeout(timeout);
78
+ reject(new Error(`Failed to spawn SVG render child: ${err.message}`));
79
+ });
80
+ child.on("close", (code, signal) => {
81
+ clearTimeout(timeout);
82
+ if (code === 0) {
83
+ try {
84
+ const parsed = JSON.parse(stdout);
85
+ if (typeof parsed.base64 !== "string") {
86
+ throw new Error("missing base64 field");
87
+ }
88
+ resolve(parsed.base64);
89
+ }
90
+ catch {
91
+ reject(new Error(`SVG render produced invalid output${stderr ? `: ${stderr}` : ""}`));
92
+ }
93
+ return;
94
+ }
95
+ const detail = stderr.trim() || (signal ? `signal ${signal}` : `exit ${code}`);
96
+ reject(new Error(`SVG render failed (${detail})`));
97
+ });
98
+ // Suppress EPIPE: if the child crashes before reading stdin, the broken
99
+ // pipe emits an error on child.stdin. Without this handler it would be an
100
+ // uncaught EventEmitter error that kills the parent — the close handler
101
+ // below will still fire and surface the child's non-zero exit code.
102
+ child.stdin.on("error", () => { });
103
+ child.stdin.write(payload);
104
+ child.stdin.end();
105
+ });
106
+ }
12
107
  export async function svgToPngBase64(svgString, options) {
108
+ validateSvgInput(svgString);
13
109
  const scale = options?.scale ?? 2;
14
- const { Resvg } = await import("@resvg/resvg-js");
15
- const resvg = new Resvg(svgString, {
16
- fitTo: { mode: "zoom", value: scale },
17
- font: {
18
- loadSystemFonts: false,
19
- },
20
- });
21
- const rendered = resvg.render();
22
- const pngBuffer = rendered.asPng();
23
- return Buffer.from(pngBuffer).toString("base64");
110
+ return renderInChildProcess(svgString, scale);
24
111
  }
25
112
  //# sourceMappingURL=render-png.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"render-png.js","sourceRoot":"","sources":["../../../src/utils/svg/render-png.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAOH,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,SAAiB,EAAE,OAA0B;IAChF,MAAM,KAAK,GAAG,OAAO,EAAE,KAAK,IAAI,CAAC,CAAC;IAElC,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,MAAM,CAAC,iBAAiB,CAAC,CAAC;IAElD,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,SAAS,EAAE;QACjC,KAAK,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE;QACrC,IAAI,EAAE;YACJ,eAAe,EAAE,KAAK;SACvB;KACF,CAAC,CAAC;IAEH,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;IAChC,MAAM,SAAS,GAAG,QAAQ,CAAC,KAAK,EAAE,CAAC;IACnC,OAAO,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;AACnD,CAAC"}
1
+ {"version":3,"file":"render-png.js","sourceRoot":"","sources":["../../../src/utils/svg/render-png.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "harness-mcp-v2",
3
- "version": "3.2.6",
3
+ "version": "3.2.7",
4
4
  "description": "Give AI agents full access to the Harness.io platform — manage pipelines, deployments, cloud costs, chaos engineering, feature flags, SEI, and 125+ resource types through 11 MCP tools",
5
5
  "type": "module",
6
6
  "main": "build/index.js",