agentic-mermaid 0.3.2 → 0.4.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.
Files changed (56) hide show
  1. package/CHANGELOG.md +102 -0
  2. package/dist/agent-core.d.ts +2 -2
  3. package/dist/agent-core.js +2 -2
  4. package/dist/agent.d.ts +2 -2
  5. package/dist/agent.js +4 -4
  6. package/dist/agentic-mermaid-mcp.js +5 -5
  7. package/dist/am.js +6 -6
  8. package/dist/browser-lazy/chunks/{architecture-WMSX5L4P.js → architecture-NUJTDJJ7.js} +1 -1
  9. package/dist/browser-lazy/chunks/{chunk-TBZAU7KC.js → chunk-2W3BS3M3.js} +1 -1
  10. package/dist/browser-lazy/chunks/{chunk-TEH2PRKN.js → chunk-4RLZTVJP.js} +1 -1
  11. package/dist/browser-lazy/chunks/{chunk-W6Q4PHPC.js → chunk-4ZURJQXD.js} +1 -1
  12. package/dist/browser-lazy/chunks/{chunk-32FWKUUV.js → chunk-55F5M5XA.js} +1 -1
  13. package/dist/browser-lazy/chunks/{chunk-QMZ4Y6I7.js → chunk-5QI4P3EJ.js} +1 -1
  14. package/dist/browser-lazy/chunks/{chunk-AOCFMYYH.js → chunk-6LBHOBXT.js} +1 -1
  15. package/dist/browser-lazy/chunks/{chunk-TDGTBGV3.js → chunk-ASPYKC6M.js} +1 -1
  16. package/dist/browser-lazy/chunks/{chunk-EX6TP7QM.js → chunk-DQHK4JCG.js} +2 -2
  17. package/dist/browser-lazy/chunks/{chunk-RLS545DI.js → chunk-EKHEVTE2.js} +1 -1
  18. package/dist/browser-lazy/chunks/{chunk-QYJMRNS3.js → chunk-HO5GDIPN.js} +1 -1
  19. package/dist/browser-lazy/chunks/{chunk-WN7SFUCZ.js → chunk-N2K2BPQT.js} +1 -1
  20. package/dist/browser-lazy/chunks/{chunk-CCTZFX43.js → chunk-OLQF6DTZ.js} +1 -1
  21. package/dist/browser-lazy/chunks/{chunk-ZZECLXC3.js → chunk-TCPK32QH.js} +1 -1
  22. package/dist/browser-lazy/chunks/{chunk-ANTNEVJC.js → chunk-UO3RFEMI.js} +1 -1
  23. package/dist/browser-lazy/chunks/{chunk-EBPTM2RP.js → chunk-ZMPTJUXS.js} +1 -1
  24. package/dist/browser-lazy/chunks/{class-7JRALQIM.js → class-ABIOBAFL.js} +1 -1
  25. package/dist/browser-lazy/chunks/{er-UDCGHKBX.js → er-CX3NGEC2.js} +1 -1
  26. package/dist/browser-lazy/chunks/{flowchart-5FP7RRIK.js → flowchart-ML54IJ7F.js} +1 -1
  27. package/dist/browser-lazy/chunks/{gantt-NTOIC5CW.js → gantt-ZMOMOTF6.js} +1 -1
  28. package/dist/browser-lazy/chunks/{gitgraph-JYAPXUIJ.js → gitgraph-OBTCRWCA.js} +1 -1
  29. package/dist/browser-lazy/chunks/{journey-646EFIB6.js → journey-RJBHWLRG.js} +1 -1
  30. package/dist/browser-lazy/chunks/{mindmap-2SBTQHQO.js → mindmap-YXHLCHOO.js} +1 -1
  31. package/dist/browser-lazy/chunks/{pie-7FDXZ24K.js → pie-TN2QOLSL.js} +1 -1
  32. package/dist/browser-lazy/chunks/{quadrant-72UT4XAW.js → quadrant-QE5JZ4H2.js} +1 -1
  33. package/dist/browser-lazy/chunks/{radar-SU7BO56J.js → radar-ZPV6O27I.js} +1 -1
  34. package/dist/browser-lazy/chunks/{render-core-Q2JWXDDL.js → render-core-VPMAH3HT.js} +1 -1
  35. package/dist/browser-lazy/chunks/{sequence-5O5ET264.js → sequence-4AERT525.js} +1 -1
  36. package/dist/browser-lazy/chunks/{state-IWPLFQ6R.js → state-67TZ7USF.js} +1 -1
  37. package/dist/browser-lazy/chunks/{timeline-WJWYHH5Y.js → timeline-AHOAT7ZL.js} +1 -1
  38. package/dist/browser-lazy/chunks/{xychart-HHQVQA5O.js → xychart-YUY3CPT2.js} +1 -1
  39. package/dist/browser-lazy/index.js +1 -1
  40. package/dist/browser.global.js +5 -5
  41. package/dist/{chunk-GX7UT56Q.js → chunk-M3VTTD3Q.js} +2 -2
  42. package/dist/{chunk-3D4EHVQ4.js → chunk-PG4PTPJL.js} +7 -7
  43. package/dist/{chunk-R5U67OIW.js → chunk-QWCD67AZ.js} +4 -4
  44. package/dist/{chunk-IVN6KP3W.js → chunk-SDJYD4OP.js} +2 -2
  45. package/dist/{chunk-YWKCUBQN.js → chunk-UKLKEZBJ.js} +2 -2
  46. package/dist/{chunk-NE6JBHSE.js → chunk-WMFFVZ4Q.js} +35 -44
  47. package/dist/{index-BFg_LoZS.d.ts → index-BoqfBufn.d.ts} +1 -1
  48. package/dist/index.d.ts +1 -1
  49. package/dist/index.js +1 -1
  50. package/dist/mcp-cli-YOAFIAVD.js +17 -0
  51. package/docs/style-authoring.md +1 -1
  52. package/package.json +12 -1
  53. package/server.json +2 -2
  54. package/skills/agentic-mermaid-diagram-workflow/SKILL.md +64 -1
  55. package/skills/agentic-mermaid-diagram-workflow/references/hosted-mcp.md +110 -0
  56. package/dist/mcp-cli-XGZP6CMW.js +0 -17
@@ -93,7 +93,7 @@ import {
93
93
  visualWidth,
94
94
  wcagCssContrastRatio,
95
95
  wrapperPrefix
96
- } from "./chunk-3D4EHVQ4.js";
96
+ } from "./chunk-PG4PTPJL.js";
97
97
 
98
98
  // src/agent/trace-log.ts
99
99
  var appendFn;
@@ -4712,4 +4712,4 @@ export {
4712
4712
  layoutMermaidWithReceipt,
4713
4713
  layoutMermaid
4714
4714
  };
4715
- //# sourceMappingURL=chunk-GX7UT56Q.js.map
4715
+ //# sourceMappingURL=chunk-M3VTTD3Q.js.map
@@ -174,7 +174,7 @@ function negotiateRenderCapabilityTuple(output, tuple) {
174
174
  }
175
175
 
176
176
  // src/version.ts
177
- var PACKAGE_VERSION = "0.3.2";
177
+ var PACKAGE_VERSION = "0.4.0";
178
178
 
179
179
  // src/shared/extension-identity.ts
180
180
  function sameExtensionIdentity(left, right2) {
@@ -524,7 +524,7 @@ var SCENE_ROLE_DESCRIPTORS = Object.freeze(
524
524
  id: `role:${role}`,
525
525
  kind: "role",
526
526
  version: "1.0.0",
527
- compatibility: { core: "^0.3.0", scene: "^2.0.0" },
527
+ compatibility: { core: "^0.4.0", scene: "^2.0.0" },
528
528
  provenance: { owner: "agentic-mermaid", source: "built-in", reference: "src/scene/roles.ts" }
529
529
  }),
530
530
  role,
@@ -28659,7 +28659,7 @@ ${pageRect}` : sceneNodeSerialization(part)).join("\n");
28659
28659
  }
28660
28660
  };
28661
28661
  var CORE_BACKEND_VERSION = "1.0.0";
28662
- var CORE_BACKEND_COMPATIBILITY = Object.freeze({ core: "^0.3.0", scene: "^2.0.0" });
28662
+ var CORE_BACKEND_COMPATIBILITY = Object.freeze({ core: "^0.4.0", scene: "^2.0.0" });
28663
28663
  var CORE_BACKEND_PROVENANCE = Object.freeze({
28664
28664
  owner: "agentic-mermaid",
28665
28665
  source: "built-in",
@@ -30628,7 +30628,7 @@ var INTERNAL_STYLE_FACE_PROJECTION = Object.freeze({
30628
30628
  group: Object.freeze({ sourceRole: "group", fields: Object.freeze([...INTERNAL_TEXT_FACE_FIELDS, ...INTERNAL_BOX_FACE_FIELDS, "fontFamily", "headerFillColor"]) })
30629
30629
  });
30630
30630
  var CORE_STYLE_VERSION = "1.0.0";
30631
- var CORE_STYLE_COMPATIBILITY = Object.freeze({ core: "^0.3.0" });
30631
+ var CORE_STYLE_COMPATIBILITY = Object.freeze({ core: "^0.4.0" });
30632
30632
  var CORE_STYLE_PROVENANCE = Object.freeze({
30633
30633
  owner: "agentic-mermaid",
30634
30634
  source: "built-in",
@@ -56179,7 +56179,7 @@ function completeBuiltinDescriptor(seed) {
56179
56179
  id: `family:${seed.id}`,
56180
56180
  kind: "family",
56181
56181
  version: "1.0.0",
56182
- compatibility: { core: "^0.3.0" },
56182
+ compatibility: { core: "^0.4.0" },
56183
56183
  provenance: { owner: "agentic-mermaid", source: "built-in" }
56184
56184
  }),
56185
56185
  collisionPriority: 100,
@@ -60928,7 +60928,7 @@ var HOSTED_FONT_RESOURCES = Object.freeze(
60928
60928
  id: `resource:${fontResourceLocalId(face)}`,
60929
60929
  kind: "resource",
60930
60930
  version: "1.0.0",
60931
- compatibility: { core: "^0.3.0" },
60931
+ compatibility: { core: "^0.4.0" },
60932
60932
  provenance: { owner: "agentic-mermaid", source: "bundled", reference: `assets/fonts/${face.file}` }
60933
60933
  })
60934
60934
  }))
@@ -62033,4 +62033,4 @@ export {
62033
62033
  renderMermaidSVGWithReceipt,
62034
62034
  renderMermaidSVGAsync
62035
62035
  };
62036
- //# sourceMappingURL=chunk-3D4EHVQ4.js.map
62036
+ //# sourceMappingURL=chunk-PG4PTPJL.js.map
@@ -1,12 +1,12 @@
1
1
  import {
2
2
  renderMermaidPNG
3
- } from "./chunk-YWKCUBQN.js";
3
+ } from "./chunk-UKLKEZBJ.js";
4
4
  import {
5
5
  collectActionRecords,
6
6
  layoutMermaid,
7
7
  renderMermaidASCIIWithMeta,
8
8
  renderMermaidSVG
9
- } from "./chunk-GX7UT56Q.js";
9
+ } from "./chunk-M3VTTD3Q.js";
10
10
  import {
11
11
  SHARED_RENDER_OPTION_FIELDS,
12
12
  decodedSvgAttributeValue,
@@ -15,7 +15,7 @@ import {
15
15
  prepareRenderInput,
16
16
  scanSvgStartTags,
17
17
  toFinite
18
- } from "./chunk-3D4EHVQ4.js";
18
+ } from "./chunk-PG4PTPJL.js";
19
19
 
20
20
  // src/agent/index.ts
21
21
  function sharedRenderOptions(options) {
@@ -146,4 +146,4 @@ function renderMermaidWithActions(input, request) {
146
146
  export {
147
147
  renderMermaidWithActions
148
148
  };
149
- //# sourceMappingURL=chunk-R5U67OIW.js.map
149
+ //# sourceMappingURL=chunk-QWCD67AZ.js.map
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  AsciiWidthError,
3
3
  MermaidFamilyDetectionError
4
- } from "./chunk-3D4EHVQ4.js";
4
+ } from "./chunk-PG4PTPJL.js";
5
5
 
6
6
  // src/render-error-diagnostic.ts
7
7
  function projectKnownRenderErrorDiagnostic(error) {
@@ -34,4 +34,4 @@ export {
34
34
  projectKnownRenderErrorDiagnostic,
35
35
  projectRenderErrorDiagnostic
36
36
  };
37
- //# sourceMappingURL=chunk-IVN6KP3W.js.map
37
+ //# sourceMappingURL=chunk-SDJYD4OP.js.map
@@ -13,7 +13,7 @@ import {
13
13
  renderPngGraphicalProjection,
14
14
  snapshotHostBackendPolicy,
15
15
  snapshotResourceManifest
16
- } from "./chunk-3D4EHVQ4.js";
16
+ } from "./chunk-PG4PTPJL.js";
17
17
 
18
18
  // src/agent/png.ts
19
19
  import { fileURLToPath } from "url";
@@ -612,4 +612,4 @@ export {
612
612
  renderMermaidPNGWithReceipt,
613
613
  createMermaidPNGRenderer
614
614
  };
615
- //# sourceMappingURL=chunk-YWKCUBQN.js.map
615
+ //# sourceMappingURL=chunk-UKLKEZBJ.js.map
@@ -1,11 +1,11 @@
1
1
  import {
2
2
  projectKnownRenderErrorDiagnostic,
3
3
  projectRenderErrorDiagnostic
4
- } from "./chunk-IVN6KP3W.js";
4
+ } from "./chunk-SDJYD4OP.js";
5
5
  import {
6
6
  renderMermaidPNG,
7
7
  renderMermaidPNGWithReceipt
8
- } from "./chunk-YWKCUBQN.js";
8
+ } from "./chunk-UKLKEZBJ.js";
9
9
  import {
10
10
  analyzeMermaid,
11
11
  analyzeMermaidSource,
@@ -31,7 +31,7 @@ import {
31
31
  renderMermaidSVGWithReceipt,
32
32
  verifyMermaid,
33
33
  verifySummary
34
- } from "./chunk-GX7UT56Q.js";
34
+ } from "./chunk-M3VTTD3Q.js";
35
35
  import {
36
36
  BUILTIN_FAMILY_METADATA,
37
37
  PACKAGE_VERSION,
@@ -71,7 +71,7 @@ import {
71
71
  styleSpecTypeScriptDeclaration,
72
72
  validateJsonConfigAdmission,
73
73
  validateSerializableRenderOptions
74
- } from "./chunk-3D4EHVQ4.js";
74
+ } from "./chunk-PG4PTPJL.js";
75
75
 
76
76
  // src/mcp/server.ts
77
77
  import { randomUUID as randomUUID2 } from "crypto";
@@ -1407,19 +1407,6 @@ function modernRequestMetaProblems(req) {
1407
1407
 
1408
1408
  // src/mcp/admission.ts
1409
1409
  var admittedMcpMessage = /* @__PURE__ */ Symbol("AdmittedMcpMessage");
1410
- function admitMcpHeaderVersion(headerVersion, supportedVersions) {
1411
- if (headerVersion === null || supportedVersions.includes(headerVersion)) return null;
1412
- return {
1413
- ok: false,
1414
- kind: "unsupported-version",
1415
- response: rpcError(
1416
- null,
1417
- UNSUPPORTED_PROTOCOL_VERSION,
1418
- `Unsupported protocol version: ${headerVersion}`,
1419
- { supported: [...supportedVersions], requested: headerVersion }
1420
- )
1421
- };
1422
- }
1423
1410
  function responseId(raw, validId) {
1424
1411
  const value = raw.id;
1425
1412
  return validId && value !== void 0 ? value : null;
@@ -1455,10 +1442,6 @@ function admitMcpMessage(rawMessage, options) {
1455
1442
  const supportedVersions = options.protocolEra === "legacy" ? options.supportedVersions.filter(isLegacyProtocolVersion) : options.protocolEra === "modern" ? options.supportedVersions.filter(isModernProtocolVersion) : [...options.supportedVersions];
1456
1443
  const effectiveTransportVersion = options.negotiatedVersion ?? options.headerVersion ?? void 0;
1457
1444
  const provisionalProtocol = isModernProtocolVersion(declaredVersion) ? { era: "modern", version: declaredVersion, supportedVersions } : { era: "legacy", version: declaredVersion ?? effectiveTransportVersion, supportedVersions };
1458
- const headerAdmission = admitMcpHeaderVersion(options.headerVersion ?? null, supportedVersions);
1459
- if (headerAdmission) {
1460
- return { ...headerAdmission, protocol: provisionalProtocol, requestedEra };
1461
- }
1462
1445
  if (versionClaim.present && typeof versionClaim.value !== "string") {
1463
1446
  return rejection(
1464
1447
  "invalid-modern-metadata",
@@ -1468,6 +1451,20 @@ function admitMcpMessage(rawMessage, options) {
1468
1451
  "modern"
1469
1452
  );
1470
1453
  }
1454
+ if (options.headerVersion != null && !supportedVersions.includes(options.headerVersion)) {
1455
+ return rejection(
1456
+ "unsupported-version",
1457
+ notification,
1458
+ rpcError(
1459
+ id,
1460
+ UNSUPPORTED_PROTOCOL_VERSION,
1461
+ `Unsupported protocol version: ${options.headerVersion}`,
1462
+ { supported: [...supportedVersions], requested: options.headerVersion }
1463
+ ),
1464
+ provisionalProtocol,
1465
+ requestedEra
1466
+ );
1467
+ }
1471
1468
  if (options.negotiatedVersion != null && !supportedVersions.includes(options.negotiatedVersion)) {
1472
1469
  return rejection(
1473
1470
  "unsupported-version",
@@ -1544,14 +1541,24 @@ function admitMcpMessage(rawMessage, options) {
1544
1541
  if (!isModernProtocolVersion(declaredVersion)) {
1545
1542
  const problem = `params._meta.${META_PROTOCOL_VERSION} is required and must match the MCP-Protocol-Version header (${options.headerVersion})`;
1546
1543
  return rejection(
1547
- "header-mismatch",
1544
+ "invalid-modern-metadata",
1548
1545
  notification,
1549
- rpcError(id, HEADER_MISMATCH, `Header mismatch: ${problem}`),
1546
+ rpcError(id, -32602, `Invalid params: ${problem}`),
1550
1547
  provisionalProtocol,
1551
1548
  requestedEra
1552
1549
  );
1553
1550
  }
1554
1551
  const protocol2 = { era: "modern", version: declaredVersion, supportedVersions };
1552
+ const metaProblems = modernRequestMetaProblems(request);
1553
+ if (metaProblems.length > 0) {
1554
+ return rejection(
1555
+ "invalid-modern-metadata",
1556
+ notification,
1557
+ rpcError(id, -32602, `Invalid params: ${metaProblems.join("; ")}`),
1558
+ protocol2,
1559
+ requestedEra
1560
+ );
1561
+ }
1555
1562
  if (options.requireModernVersionHeader && options.headerVersion == null) {
1556
1563
  return rejection(
1557
1564
  "header-mismatch",
@@ -1575,16 +1582,6 @@ function admitMcpMessage(rawMessage, options) {
1575
1582
  requestedEra
1576
1583
  );
1577
1584
  }
1578
- const metaProblems = modernRequestMetaProblems(request);
1579
- if (metaProblems.length > 0) {
1580
- return rejection(
1581
- "invalid-modern-metadata",
1582
- notification,
1583
- rpcError(id, -32602, `Invalid params: ${metaProblems.join("; ")}`),
1584
- protocol2,
1585
- requestedEra
1586
- );
1587
- }
1588
1585
  return acceptance(request, id, notification, protocol2);
1589
1586
  }
1590
1587
  const protocol = {
@@ -1601,7 +1598,7 @@ function withClosedMcpInputSchema(tool) {
1601
1598
  }
1602
1599
  var MCP_SERVER_NAME = "agentic-mermaid-mcp";
1603
1600
  var MCP_SERVER_VERSION = PACKAGE_VERSION;
1604
- var SERVER_CAPABILITIES = { tools: {}, prompts: {}, resources: {} };
1601
+ var SERVER_CAPABILITIES = { tools: {} };
1605
1602
  var PURE_COMPUTE_ANNOTATIONS = {
1606
1603
  readOnlyHint: true,
1607
1604
  destructiveHint: false,
@@ -1816,7 +1813,7 @@ function surfaceSupportedVersions(surface, options = {}) {
1816
1813
  }
1817
1814
  function discoverResult(surface, supportedVersions) {
1818
1815
  return {
1819
- supportedVersions: supportedVersions.filter(isModernProtocolVersion),
1816
+ supportedVersions: [...supportedVersions],
1820
1817
  capabilities: SERVER_CAPABILITIES,
1821
1818
  instructions: surface.instructions
1822
1819
  };
@@ -1898,19 +1895,13 @@ async function dispatchAdmittedMcpRequest(message, context, surface) {
1898
1895
  response = await surface.handleToolCall(id, { ...req.params, arguments: args }, context);
1899
1896
  break;
1900
1897
  }
1901
- case "prompts/list":
1902
- response = reply(id, { prompts: [] });
1903
- break;
1904
- case "resources/list":
1905
- response = reply(id, { resources: [] });
1906
- break;
1907
1898
  default:
1908
1899
  response = unknownMethod(id, req.method);
1909
1900
  }
1910
1901
  return notification ? null : decorateMcpResult(response, req.method, era, surface.serverName ?? MCP_SERVER_NAME);
1911
1902
  }
1912
1903
  var LIST_RESULT_TTL_MS = 3e5;
1913
- var CACHEABLE_METHODS = /* @__PURE__ */ new Set(["server/discover", "tools/list", "prompts/list", "resources/list"]);
1904
+ var CACHEABLE_METHODS = /* @__PURE__ */ new Set(["server/discover", "tools/list"]);
1914
1905
  function decorateMcpResult(response, method, era, serverName) {
1915
1906
  if (era !== "modern" || !response || !plainJsonObject(response.result)) return response;
1916
1907
  const existingMeta = plainJsonObject(response.result._meta) ? response.result._meta : {};
@@ -3488,7 +3479,7 @@ function safePath(root, name) {
3488
3479
 
3489
3480
  // src/mcp/server.ts
3490
3481
  var PROTOCOL_VERSION = "2024-11-05";
3491
- var STDIO_PROTOCOL_VERSIONS = ["2024-11-05", "2025-03-26", "2025-06-18", "2025-11-25", "2026-07-28"];
3482
+ var STDIO_PROTOCOL_VERSIONS = ["2024-11-05", "2025-06-18", "2025-11-25", "2026-07-28"];
3492
3483
  var HTTP_SSE_PROTOCOL_VERSIONS = ["2024-11-05"];
3493
3484
  var HTTP_SSE_DISPATCH = { supportedVersions: HTTP_SSE_PROTOCOL_VERSIONS };
3494
3485
  var MAX_RPC_BODY_BYTES = 1024 * 1024;
@@ -4120,4 +4111,4 @@ export {
4120
4111
  parseMcpCliOptions,
4121
4112
  runMcpCli
4122
4113
  };
4123
- //# sourceMappingURL=chunk-NE6JBHSE.js.map
4114
+ //# sourceMappingURL=chunk-WMFFVZ4Q.js.map
@@ -31,7 +31,7 @@ interface ExtensionIdentity<Kind extends string = string> {
31
31
  /** Host contract versions understood by this runtime. Requirements for other
32
32
  * namespaced contracts are retained but deliberately deferred to their owner. */
33
33
  declare const KNOWN_EXTENSION_CONTRACT_VERSIONS: Readonly<{
34
- readonly core: "0.3.2";
34
+ readonly core: "0.4.0";
35
35
  readonly scene: "2.0.0";
36
36
  }>;
37
37
  interface ExtensionCompatibilityResolution {
package/dist/index.d.ts CHANGED
@@ -1 +1 @@
1
- export { g0 as ARCHITECTURE_ICON_LIMITS, g as AnyPort, r as ArchitectureVisualOverrides, s as AsciiRenderColorMode, A as AsciiRenderOptions, t as AsciiWidthError, u as AsciiWidthErrorReason, B as BACKEND_CONFORMANCE_CHECK_IDS, v as BACKEND_CONFORMANCE_FIXTURE_ID, w as BACKEND_CONFORMANCE_VERSION, x as BINDABLE_ROLE_STYLE_PROPERTIES, y as BINDABLE_SCENE_ROLES, z as BRAND_CONSTRAINT_DESCRIPTORS, C as BRAND_CONSTRAINT_KINDS, g1 as BROWSER_CANVAS_RUNTIME, G as BUILTIN_SCENE_ROLE_TRAITS, I as BackendCapabilityConformanceResult, J as BackendCapabilityConformanceStatus, K as BackendConformanceCheck, L as BackendConformanceCheckId, M as BackendConformanceReport, N as BackendDescriptor, O as BackendRegistrationOptions, Q as BindableSceneRole, S as BrandConstraint, T as BrandConstraintAction, U as BrandConstraintKind, g2 as BrowserPngDiagnostic, g3 as BrowserPngFontSource, g4 as BrowserPngRasterContext, g5 as BrowserPngRasterResult, g6 as BrowserPngRasterizer, g7 as BrowserPngRuntimeProvenance, g8 as BuiltinSceneRole, X as CAPABILITY_NEGOTIATION_VERSION, Y as CORE_CAPABILITY_OFFERS, Z as CORE_SCENE_FEATURES, _ as CORE_SCENE_OPERATIONS, $ as CORE_SCENE_PRIMITIVES, a0 as CapabilityDecision, a1 as CapabilityId, a2 as CapabilityOffer, a3 as CapabilityRequirement, a4 as CapabilityRequirementLevel, a5 as CapabilityResolution, g9 as CapabilityValidationResult, ad as CliRenderTransport, ae as CodeModeRenderTransport, ga as ConfigDiagnostic, af as ConnectorContourSemantics, gb as ConnectorDash, gc as ConnectorDirection, gd as ConnectorEndpointAnchor, ag as ConnectorEndpoints, ah as ConnectorGeometry, ai as ConnectorHitGeometry, aj as ConnectorLabelDescriptor, ak as ConnectorMark, al as ConnectorRelationship, am as ConnectorRoute, an as ConnectorStroke, ao as ConnectorSubpath, ap as ConnectorTerminalLabelProjection, aq as ConnectorTerminalMarkerPlacement, ar as ConnectorTerminalMarkerProjection, as as ConnectorTerminalProjection, at as ConnectorTerminalStrokeLoss, ge as CoreSceneFeature, gf as CoreSceneOperation, gg as CoreScenePrimitive, gh as CoreSceneRole, gi as DEFAULTS, av as DefaultBackend, gj as DiagramColors, aB as DiamondFacet, gk as DocumentMark, gl as ESSENTIAL_SCENE_PRIMITIVE_CAPABILITIES, gm as ESSENTIAL_SCENE_PRIMITIVE_OPERATIONS, aC as EXACT_ROLE_STYLE_CONTRACT, aD as EXACT_STYLE_SCENE_ROLES, aE as EXTERNAL_SCENE_API_VERSION, aG as EdgeRouteCertificate, gn as EssentialScenePrimitiveCapability, go as EssentialScenePrimitiveOperation, aO as ExactStyleSceneRole, gp as ExtensionCollisionError, gq as ExtensionCompatibility, gr as ExtensionCompatibilityDecision, gs as ExtensionCompatibilityResolution, aP as ExtensionDiagramBody, aQ as ExtensionIdentity, gt as ExtensionProvenance, gu as ExtensionRegistration, aR as ExtensionValidDiagram, aT as ExternalSceneConnector, aU as ExternalSceneConnectorGeometry, aV as ExternalSceneConnectorLabel, aW as ExternalSceneContainer, aX as ExternalSceneDataMark, aY as ExternalSceneDocument, aZ as ExternalSceneGeometry, a_ as ExternalSceneInput, a$ as ExternalSceneMarker, b0 as ExternalSceneNode, b1 as ExternalSceneNodeBase, b2 as ExternalSceneShape, b3 as ExternalSceneText, bg as FamilyDetectionDiagnostic, bh as FamilyEdgeRouteCertificate, bo as FamilyRouteCertificate, gv as Geometry, gw as GitGraphBranch, gx as GitGraphCommit, gy as GitGraphCommitType, gz as GitGraphDiagram, gA as GitGraphDuplicateCommitError, gB as GitGraphParseError, gC as GitGraphRuntimeConfig, gD as GroupMark, bJ as HOSTED_FONT_RESOURCES, H as HostBackendPolicy, gE as HostBackendSelection, gF as HostedFontFace, gG as HostedFontResource, gH as JourneyRuntimeConfig, gI as KNOWN_EXTENSION_CONTRACT_VERSIONS, bQ as LayoutRouteCertificate, bR as LayoutRouteClass, bT as LibraryRenderTransport, bU as MAX_HOSTED_PNG_BYTES, bV as MAX_HOSTED_PNG_PIXELS, bW as MAX_PNG_FONT_DIRECTORIES, bX as MAX_PNG_FONT_DIRECTORY_LENGTH, bY as MAX_PNG_PIXELS, bZ as MAX_PNG_RASTER_DIMENSION, gJ as MarkPaint, b_ as MarkerDescriptor, gK as MarkerSerializationOptions, gL as MarkerShape, gM as MermaidBrowserPNGRenderer, gN as MermaidBrowserPNGRendererHostOptions, b$ as MermaidFamilyClassification, c0 as MermaidFamilyDetectionError, gO as MermaidGraph, gP as MermaidRenderer, gQ as MermaidRendererHostOptions, gR as MermaidRuntimeConfig, gS as MermaidThemeVariables, gT as MindmapDiagram, gU as MindmapDuplicateIdError, gV as MindmapNode, gW as MindmapParseError, gX as MindmapRuntimeConfig, gY as MindmapShape, c6 as NATIVE_PNG_HOST_ONLY_OPTION_FIELDS, c7 as NATIVE_PNG_OUTPUT_POLICY_FIELDS, gZ as NamespacedSceneRole, c8 as NativePngHostOnlyOptionField, c9 as NativePngOutputPolicyField, g_ as OUTPUT_COLOR_PROFILE, g$ as OUTPUT_SECURITY_POLICY_VERSION, h0 as OutputSecurityDiagnostic, h1 as OutputSecurityMode, h2 as OutputSecurityResult, cb as PNG_DEFAULT_FONT_FAMILY, cc as PNG_DEFAULT_SCALE, cd as PNG_FONT_SOURCES, ce as PNG_NAPI_RUNTIME, cf as PNG_OUTPUT_OPTION_FIELDS, cg as PNG_OUTPUT_OPTION_FIELD_DESCRIPTORS, ch as PNG_OUTPUT_POLICY_VERSION, ci as PNG_WASM_RUNTIME, cj as PORTABLE_PNG_OUTPUT_OPTION_FIELDS, ck as PRIMITIVE_REALIZATIONS, P as ParsedDiagram, h3 as ParsedDiagramFamilyMismatchError, h4 as PieRuntimeConfig, h5 as PngColorProfileReceipt, h6 as PngDimensions, cr as PngFitTo, cs as PngFontSource, ct as PngOutputOptionField, cu as PngOutputOptionFieldDescriptor, cv as PngOutputOptionInputKind, cw as PngOutputOptionPolicyState, cx as PngOutputOptionReceiptState, cy as PngOutputOptionScope, a as PngOutputPolicyInput, cz as PngRasterDimensions, c as PngRuntimeProvenance, cA as PortSemanticRole, cB as PortSide, cC as PortablePngOutputOptionField, cD as PortablePngOutputOptions, fX as PositionedDiagram, h7 as PositionedGitGraphDiagram, h8 as PositionedGraph, h9 as PositionedMindmapDiagram, cE as PreservedDiagramBody, cF as PreservedSourceSpans, cG as PreservedValidDiagram, ha as PrimitiveCapabilityClaim, hb as PrimitiveRealization, hc as QuadrantRuntimeConfig, cM as RENDER_CONTRACT_VERSION, cN as RENDER_OUTPUTS, cO as RENDER_OUTPUT_DESCRIPTORS, cP as RESOURCE_MANIFEST, cQ as RESOURCE_MANIFEST_VERSION, cR as ROLE_STYLE_PROPERTY_DESCRIPTORS, hd as RadarRuntimeConfig, cX as RegionContainmentCertificate, cY as RenderCapabilityError, he as RenderContext, R as RenderOptions, hf as RenderOutput, cZ as RenderOutputDescriptor, c_ as RenderOutputTransports, b as RenderRequestReceipt, hg as RenderableMarkerDescriptor, c$ as RenderedAscii, hh as RenderedBrowserPng, f$ as RenderedSvg, hi as ResolvedArchitectureIcon, hj as ResolvedColors, d5 as ResolvedPngOutputPolicy, hk as ResolvedSceneRoleTraits, d6 as ResolvedTerminalOutputPolicy, hl as ResolvedTerminalStyle, hm as ResourceLicense, hn as ResourceManifest, ho as ResourceManifestEntry, d8 as RoleStyleFor, d9 as RoleStyleSpec, da as RoleStyles, db as RouteBlocker, dc as RouteCertificate, dd as RouteClass, de as RoutePortAssignment, df as SCENE_CONTRACT_VERSION, dg as SCENE_ROLE_DESCRIPTORS, dh as SCENE_VALIDATION_LIMITS, di as SCENE_VALIDATION_VERSION, dj as SEMANTIC_BINDING_CHANNELS, dk as SHARED_RENDER_OPTION_FIELDS, dl as STYLE_COLOR_TOKEN_DESCRIPTORS, dm as STYLE_SPEC_FIELD_DESCRIPTORS, dn as STYLE_SPEC_FORMAT_VERSION, hp as SceneBox, hq as SceneConnectorHit, dp as SceneDoc, hr as SceneFeature, hs as SceneMarkKind, dq as SceneNode, ht as SceneNodeBase, hu as SceneOperation, hv as ScenePoint, hw as ScenePrimitive, dr as SceneRole, hx as SceneRoleDescriptor, hy as SceneRoleTraits, hz as SceneSketchPolicy, ds as SceneValidationDiagnostic, dt as SceneValidationDiagnosticCode, du as SceneValidationError, dv as SceneValidationOptions, dw as SceneValidationResult, dx as SemanticBinding, dy as SemanticBindingChannel, dz as SemanticChannels, dA as SemanticSlots, hA as ShapeMark, dM as SourceSpan, dN as SourceSpanPoint, hB as StateRuntimeConfig, dT as StyleBackend, dU as StyleBackendContext, dV as StyleColors, dW as StyleDescriptor, dX as StyleInput, dY as StyleReferenceResolution, dZ as StyleRegistrationOptions, hC as StyleRegistryKind, d_ as StyleSpec, hD as SvgRelationSemantics, hE as SvgSemanticAccessibility, hF as SvgSemanticIdentity, d$ as TERMINAL_BOUNDED_PADDING_X, e0 as TERMINAL_DEFAULT_BOX_BORDER_PADDING, e1 as TERMINAL_DEFAULT_PADDING_X, e2 as TERMINAL_DEFAULT_PADDING_Y, e3 as TERMINAL_OUTPUT_POLICY_VERSION, hG as TERMINAL_STYLE_VERSION, e4 as TEXT_MEASUREMENT_CONTRACT, hH as TerminalConnectorProjection, hI as TerminalConnectorProjectionReceipt, e5 as TerminalOutputPolicyError, e6 as TerminalOutputPolicyInput, hJ as TerminalProjectionDiagnostic, fY as TerminalProjectionDiagnosticCode, hK as TerminalProjectionSecurityContext, hL as TextMark, e7 as TextMeasurementContract, e8 as TextMeasurementInput, e9 as TextMeasurementResult, hM as TimelineRuntimeConfig, hN as XyChartRuntimeConfig, hO as applyOutputSecurityPolicy, hP as applyPngColorProfile, hQ as architectureIconManifest, hR as architectureToMermaidGraph, eV as assertHostedPngRasterBudget, eW as assertPngRasterBudget, hS as assertRenderableMarker, eX as assertValidSceneDoc, eY as buildExternalScene, hT as canonicalExtensionId, e_ as classifyMermaidFamilyFromFirstLine, hU as connectorHitDistance, e$ as createExtensionIdentity, hV as createMermaidBrowserPNGRenderer, hW as createMermaidRenderer, hX as essentialScenePrimitiveOperation, hY as evaluateExtensionCompatibility, hZ as fromShikiTheme, f5 as getBackend, f8 as getStyle, h_ as hitTestConnector, h$ as hitTestSceneConnectors, f9 as hostedFontResource, fa as inferBackend, i0 as inlineResolvedColors, i1 as inspectPngColorProfile, i2 as inspectPngDimensions, fd as knownBackendDescriptors, fg as knownStyleDescriptors, fh as knownStyles, fi as measureText, fj as measureTextWidth, fk as negotiateCapabilities, fl as negotiateRenderCapabilities, fm as normalizePortablePngBackground, fo as omitPngOutputOptions, i3 as parseArchitectureDiagram, i4 as parseExtensionId, i5 as parseGitGraph, i6 as parseMindmap, fp as parseRegisteredMermaid, fq as parseSemVer, fr as pngNapiRuntimeProvenance, fs as pngOutputOptionsJsonSchema, ft as pngRasterDimensions, fu as prepareSvgForPngRasterization, fv as projectNativePngOutputPolicyInput, fw as projectPortablePngOutputOptions, fx as registerBackend, i7 as registerExtension, fy as registerStyle, i8 as renderContractDigest, fZ as renderMermaidASCII, i9 as renderMermaidASCIIWithReceipt, ia as renderMermaidPNGInBrowserWithReceipt, f_ as renderMermaidSVG, ib as renderMermaidSVGAsync, ic as renderMermaidSVGWithReceipt, id as resolveArchitectureIcon, ie as resolveColors, ig as resolveDiagramColors, fz as resolvePngOutputPolicy, fA as resolvePortablePngOutputPolicy, fB as resolveSceneRoleTraits, fC as resolveStyleReference, fD as resolveStyleStack, fE as resolveTerminalOutputPolicy, fF as runBackendConformance, fG as sceneRoleTraits, fH as semVerSatisfies, ih as serializeGitGraph, ii as serializeMarkerResource, ij as serializeMarkerResources, ik as serializeMindmap, fI as sharedRenderOptionsJsonSchema, il as snapshotResourceManifest, fJ as styleInputJsonSchema, fK as styleSpecJsonSchema, fL as svgIntrinsicDimensions, fM as terminalConnectorCapabilityClaims, fO as validatePrimitiveCapabilities, fP as validateResourceManifest, fQ as validateSceneDoc, fR as validateSerializableRenderOptions, fS as validateStyleSpec, fT as verifyNoExternalRefs, fU as verifyResourceBytes, im as verifySvgDocumentEnvelope } from './index-BFg_LoZS.js';
1
+ export { g0 as ARCHITECTURE_ICON_LIMITS, g as AnyPort, r as ArchitectureVisualOverrides, s as AsciiRenderColorMode, A as AsciiRenderOptions, t as AsciiWidthError, u as AsciiWidthErrorReason, B as BACKEND_CONFORMANCE_CHECK_IDS, v as BACKEND_CONFORMANCE_FIXTURE_ID, w as BACKEND_CONFORMANCE_VERSION, x as BINDABLE_ROLE_STYLE_PROPERTIES, y as BINDABLE_SCENE_ROLES, z as BRAND_CONSTRAINT_DESCRIPTORS, C as BRAND_CONSTRAINT_KINDS, g1 as BROWSER_CANVAS_RUNTIME, G as BUILTIN_SCENE_ROLE_TRAITS, I as BackendCapabilityConformanceResult, J as BackendCapabilityConformanceStatus, K as BackendConformanceCheck, L as BackendConformanceCheckId, M as BackendConformanceReport, N as BackendDescriptor, O as BackendRegistrationOptions, Q as BindableSceneRole, S as BrandConstraint, T as BrandConstraintAction, U as BrandConstraintKind, g2 as BrowserPngDiagnostic, g3 as BrowserPngFontSource, g4 as BrowserPngRasterContext, g5 as BrowserPngRasterResult, g6 as BrowserPngRasterizer, g7 as BrowserPngRuntimeProvenance, g8 as BuiltinSceneRole, X as CAPABILITY_NEGOTIATION_VERSION, Y as CORE_CAPABILITY_OFFERS, Z as CORE_SCENE_FEATURES, _ as CORE_SCENE_OPERATIONS, $ as CORE_SCENE_PRIMITIVES, a0 as CapabilityDecision, a1 as CapabilityId, a2 as CapabilityOffer, a3 as CapabilityRequirement, a4 as CapabilityRequirementLevel, a5 as CapabilityResolution, g9 as CapabilityValidationResult, ad as CliRenderTransport, ae as CodeModeRenderTransport, ga as ConfigDiagnostic, af as ConnectorContourSemantics, gb as ConnectorDash, gc as ConnectorDirection, gd as ConnectorEndpointAnchor, ag as ConnectorEndpoints, ah as ConnectorGeometry, ai as ConnectorHitGeometry, aj as ConnectorLabelDescriptor, ak as ConnectorMark, al as ConnectorRelationship, am as ConnectorRoute, an as ConnectorStroke, ao as ConnectorSubpath, ap as ConnectorTerminalLabelProjection, aq as ConnectorTerminalMarkerPlacement, ar as ConnectorTerminalMarkerProjection, as as ConnectorTerminalProjection, at as ConnectorTerminalStrokeLoss, ge as CoreSceneFeature, gf as CoreSceneOperation, gg as CoreScenePrimitive, gh as CoreSceneRole, gi as DEFAULTS, av as DefaultBackend, gj as DiagramColors, aB as DiamondFacet, gk as DocumentMark, gl as ESSENTIAL_SCENE_PRIMITIVE_CAPABILITIES, gm as ESSENTIAL_SCENE_PRIMITIVE_OPERATIONS, aC as EXACT_ROLE_STYLE_CONTRACT, aD as EXACT_STYLE_SCENE_ROLES, aE as EXTERNAL_SCENE_API_VERSION, aG as EdgeRouteCertificate, gn as EssentialScenePrimitiveCapability, go as EssentialScenePrimitiveOperation, aO as ExactStyleSceneRole, gp as ExtensionCollisionError, gq as ExtensionCompatibility, gr as ExtensionCompatibilityDecision, gs as ExtensionCompatibilityResolution, aP as ExtensionDiagramBody, aQ as ExtensionIdentity, gt as ExtensionProvenance, gu as ExtensionRegistration, aR as ExtensionValidDiagram, aT as ExternalSceneConnector, aU as ExternalSceneConnectorGeometry, aV as ExternalSceneConnectorLabel, aW as ExternalSceneContainer, aX as ExternalSceneDataMark, aY as ExternalSceneDocument, aZ as ExternalSceneGeometry, a_ as ExternalSceneInput, a$ as ExternalSceneMarker, b0 as ExternalSceneNode, b1 as ExternalSceneNodeBase, b2 as ExternalSceneShape, b3 as ExternalSceneText, bg as FamilyDetectionDiagnostic, bh as FamilyEdgeRouteCertificate, bo as FamilyRouteCertificate, gv as Geometry, gw as GitGraphBranch, gx as GitGraphCommit, gy as GitGraphCommitType, gz as GitGraphDiagram, gA as GitGraphDuplicateCommitError, gB as GitGraphParseError, gC as GitGraphRuntimeConfig, gD as GroupMark, bJ as HOSTED_FONT_RESOURCES, H as HostBackendPolicy, gE as HostBackendSelection, gF as HostedFontFace, gG as HostedFontResource, gH as JourneyRuntimeConfig, gI as KNOWN_EXTENSION_CONTRACT_VERSIONS, bQ as LayoutRouteCertificate, bR as LayoutRouteClass, bT as LibraryRenderTransport, bU as MAX_HOSTED_PNG_BYTES, bV as MAX_HOSTED_PNG_PIXELS, bW as MAX_PNG_FONT_DIRECTORIES, bX as MAX_PNG_FONT_DIRECTORY_LENGTH, bY as MAX_PNG_PIXELS, bZ as MAX_PNG_RASTER_DIMENSION, gJ as MarkPaint, b_ as MarkerDescriptor, gK as MarkerSerializationOptions, gL as MarkerShape, gM as MermaidBrowserPNGRenderer, gN as MermaidBrowserPNGRendererHostOptions, b$ as MermaidFamilyClassification, c0 as MermaidFamilyDetectionError, gO as MermaidGraph, gP as MermaidRenderer, gQ as MermaidRendererHostOptions, gR as MermaidRuntimeConfig, gS as MermaidThemeVariables, gT as MindmapDiagram, gU as MindmapDuplicateIdError, gV as MindmapNode, gW as MindmapParseError, gX as MindmapRuntimeConfig, gY as MindmapShape, c6 as NATIVE_PNG_HOST_ONLY_OPTION_FIELDS, c7 as NATIVE_PNG_OUTPUT_POLICY_FIELDS, gZ as NamespacedSceneRole, c8 as NativePngHostOnlyOptionField, c9 as NativePngOutputPolicyField, g_ as OUTPUT_COLOR_PROFILE, g$ as OUTPUT_SECURITY_POLICY_VERSION, h0 as OutputSecurityDiagnostic, h1 as OutputSecurityMode, h2 as OutputSecurityResult, cb as PNG_DEFAULT_FONT_FAMILY, cc as PNG_DEFAULT_SCALE, cd as PNG_FONT_SOURCES, ce as PNG_NAPI_RUNTIME, cf as PNG_OUTPUT_OPTION_FIELDS, cg as PNG_OUTPUT_OPTION_FIELD_DESCRIPTORS, ch as PNG_OUTPUT_POLICY_VERSION, ci as PNG_WASM_RUNTIME, cj as PORTABLE_PNG_OUTPUT_OPTION_FIELDS, ck as PRIMITIVE_REALIZATIONS, P as ParsedDiagram, h3 as ParsedDiagramFamilyMismatchError, h4 as PieRuntimeConfig, h5 as PngColorProfileReceipt, h6 as PngDimensions, cr as PngFitTo, cs as PngFontSource, ct as PngOutputOptionField, cu as PngOutputOptionFieldDescriptor, cv as PngOutputOptionInputKind, cw as PngOutputOptionPolicyState, cx as PngOutputOptionReceiptState, cy as PngOutputOptionScope, a as PngOutputPolicyInput, cz as PngRasterDimensions, c as PngRuntimeProvenance, cA as PortSemanticRole, cB as PortSide, cC as PortablePngOutputOptionField, cD as PortablePngOutputOptions, fX as PositionedDiagram, h7 as PositionedGitGraphDiagram, h8 as PositionedGraph, h9 as PositionedMindmapDiagram, cE as PreservedDiagramBody, cF as PreservedSourceSpans, cG as PreservedValidDiagram, ha as PrimitiveCapabilityClaim, hb as PrimitiveRealization, hc as QuadrantRuntimeConfig, cM as RENDER_CONTRACT_VERSION, cN as RENDER_OUTPUTS, cO as RENDER_OUTPUT_DESCRIPTORS, cP as RESOURCE_MANIFEST, cQ as RESOURCE_MANIFEST_VERSION, cR as ROLE_STYLE_PROPERTY_DESCRIPTORS, hd as RadarRuntimeConfig, cX as RegionContainmentCertificate, cY as RenderCapabilityError, he as RenderContext, R as RenderOptions, hf as RenderOutput, cZ as RenderOutputDescriptor, c_ as RenderOutputTransports, b as RenderRequestReceipt, hg as RenderableMarkerDescriptor, c$ as RenderedAscii, hh as RenderedBrowserPng, f$ as RenderedSvg, hi as ResolvedArchitectureIcon, hj as ResolvedColors, d5 as ResolvedPngOutputPolicy, hk as ResolvedSceneRoleTraits, d6 as ResolvedTerminalOutputPolicy, hl as ResolvedTerminalStyle, hm as ResourceLicense, hn as ResourceManifest, ho as ResourceManifestEntry, d8 as RoleStyleFor, d9 as RoleStyleSpec, da as RoleStyles, db as RouteBlocker, dc as RouteCertificate, dd as RouteClass, de as RoutePortAssignment, df as SCENE_CONTRACT_VERSION, dg as SCENE_ROLE_DESCRIPTORS, dh as SCENE_VALIDATION_LIMITS, di as SCENE_VALIDATION_VERSION, dj as SEMANTIC_BINDING_CHANNELS, dk as SHARED_RENDER_OPTION_FIELDS, dl as STYLE_COLOR_TOKEN_DESCRIPTORS, dm as STYLE_SPEC_FIELD_DESCRIPTORS, dn as STYLE_SPEC_FORMAT_VERSION, hp as SceneBox, hq as SceneConnectorHit, dp as SceneDoc, hr as SceneFeature, hs as SceneMarkKind, dq as SceneNode, ht as SceneNodeBase, hu as SceneOperation, hv as ScenePoint, hw as ScenePrimitive, dr as SceneRole, hx as SceneRoleDescriptor, hy as SceneRoleTraits, hz as SceneSketchPolicy, ds as SceneValidationDiagnostic, dt as SceneValidationDiagnosticCode, du as SceneValidationError, dv as SceneValidationOptions, dw as SceneValidationResult, dx as SemanticBinding, dy as SemanticBindingChannel, dz as SemanticChannels, dA as SemanticSlots, hA as ShapeMark, dM as SourceSpan, dN as SourceSpanPoint, hB as StateRuntimeConfig, dT as StyleBackend, dU as StyleBackendContext, dV as StyleColors, dW as StyleDescriptor, dX as StyleInput, dY as StyleReferenceResolution, dZ as StyleRegistrationOptions, hC as StyleRegistryKind, d_ as StyleSpec, hD as SvgRelationSemantics, hE as SvgSemanticAccessibility, hF as SvgSemanticIdentity, d$ as TERMINAL_BOUNDED_PADDING_X, e0 as TERMINAL_DEFAULT_BOX_BORDER_PADDING, e1 as TERMINAL_DEFAULT_PADDING_X, e2 as TERMINAL_DEFAULT_PADDING_Y, e3 as TERMINAL_OUTPUT_POLICY_VERSION, hG as TERMINAL_STYLE_VERSION, e4 as TEXT_MEASUREMENT_CONTRACT, hH as TerminalConnectorProjection, hI as TerminalConnectorProjectionReceipt, e5 as TerminalOutputPolicyError, e6 as TerminalOutputPolicyInput, hJ as TerminalProjectionDiagnostic, fY as TerminalProjectionDiagnosticCode, hK as TerminalProjectionSecurityContext, hL as TextMark, e7 as TextMeasurementContract, e8 as TextMeasurementInput, e9 as TextMeasurementResult, hM as TimelineRuntimeConfig, hN as XyChartRuntimeConfig, hO as applyOutputSecurityPolicy, hP as applyPngColorProfile, hQ as architectureIconManifest, hR as architectureToMermaidGraph, eV as assertHostedPngRasterBudget, eW as assertPngRasterBudget, hS as assertRenderableMarker, eX as assertValidSceneDoc, eY as buildExternalScene, hT as canonicalExtensionId, e_ as classifyMermaidFamilyFromFirstLine, hU as connectorHitDistance, e$ as createExtensionIdentity, hV as createMermaidBrowserPNGRenderer, hW as createMermaidRenderer, hX as essentialScenePrimitiveOperation, hY as evaluateExtensionCompatibility, hZ as fromShikiTheme, f5 as getBackend, f8 as getStyle, h_ as hitTestConnector, h$ as hitTestSceneConnectors, f9 as hostedFontResource, fa as inferBackend, i0 as inlineResolvedColors, i1 as inspectPngColorProfile, i2 as inspectPngDimensions, fd as knownBackendDescriptors, fg as knownStyleDescriptors, fh as knownStyles, fi as measureText, fj as measureTextWidth, fk as negotiateCapabilities, fl as negotiateRenderCapabilities, fm as normalizePortablePngBackground, fo as omitPngOutputOptions, i3 as parseArchitectureDiagram, i4 as parseExtensionId, i5 as parseGitGraph, i6 as parseMindmap, fp as parseRegisteredMermaid, fq as parseSemVer, fr as pngNapiRuntimeProvenance, fs as pngOutputOptionsJsonSchema, ft as pngRasterDimensions, fu as prepareSvgForPngRasterization, fv as projectNativePngOutputPolicyInput, fw as projectPortablePngOutputOptions, fx as registerBackend, i7 as registerExtension, fy as registerStyle, i8 as renderContractDigest, fZ as renderMermaidASCII, i9 as renderMermaidASCIIWithReceipt, ia as renderMermaidPNGInBrowserWithReceipt, f_ as renderMermaidSVG, ib as renderMermaidSVGAsync, ic as renderMermaidSVGWithReceipt, id as resolveArchitectureIcon, ie as resolveColors, ig as resolveDiagramColors, fz as resolvePngOutputPolicy, fA as resolvePortablePngOutputPolicy, fB as resolveSceneRoleTraits, fC as resolveStyleReference, fD as resolveStyleStack, fE as resolveTerminalOutputPolicy, fF as runBackendConformance, fG as sceneRoleTraits, fH as semVerSatisfies, ih as serializeGitGraph, ii as serializeMarkerResource, ij as serializeMarkerResources, ik as serializeMindmap, fI as sharedRenderOptionsJsonSchema, il as snapshotResourceManifest, fJ as styleInputJsonSchema, fK as styleSpecJsonSchema, fL as svgIntrinsicDimensions, fM as terminalConnectorCapabilityClaims, fO as validatePrimitiveCapabilities, fP as validateResourceManifest, fQ as validateSceneDoc, fR as validateSerializableRenderOptions, fS as validateStyleSpec, fT as verifyNoExternalRefs, fU as verifyResourceBytes, im as verifySvgDocumentEnvelope } from './index-BoqfBufn.js';
package/dist/index.js CHANGED
@@ -164,7 +164,7 @@ import {
164
164
  verifyNoExternalRefs,
165
165
  verifyResourceBytes,
166
166
  verifySvgDocumentEnvelope
167
- } from "./chunk-3D4EHVQ4.js";
167
+ } from "./chunk-PG4PTPJL.js";
168
168
  export {
169
169
  ARCHITECTURE_ICON_LIMITS,
170
170
  AsciiWidthError,
@@ -0,0 +1,17 @@
1
+ import {
2
+ MCP_CLI_HELP,
3
+ MCP_FLAG_SPECS,
4
+ parseMcpCliOptions,
5
+ runMcpCli
6
+ } from "./chunk-WMFFVZ4Q.js";
7
+ import "./chunk-SDJYD4OP.js";
8
+ import "./chunk-UKLKEZBJ.js";
9
+ import "./chunk-M3VTTD3Q.js";
10
+ import "./chunk-PG4PTPJL.js";
11
+ export {
12
+ MCP_CLI_HELP,
13
+ MCP_FLAG_SPECS,
14
+ parseMcpCliOptions,
15
+ runMcpCli
16
+ };
17
+ //# sourceMappingURL=mcp-cli-YOAFIAVD.js.map
@@ -260,7 +260,7 @@ contract explicitly; no built-in compatibility default is borrowed by
260
260
  ```ts
261
261
  registerBackend(backend, {
262
262
  version: '1.0.0',
263
- compatibility: { core: '^0.3.0', scene: '^2.0.0' },
263
+ compatibility: { core: '^0.4.0', scene: '^2.0.0' },
264
264
  provenance: { owner: 'acme-diagrams', source: 'application-startup' },
265
265
  })
266
266
  ```
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "agentic-mermaid",
3
3
  "mcpName": "io.github.adewale/agentic-mermaid",
4
- "version": "0.3.2",
4
+ "version": "0.4.0",
5
5
  "license": "MIT",
6
6
  "description": "Agentic Mermaid: render, verify, and safely edit Mermaid diagrams as ASCII, PNG, SVG, or structured agent workflows — with composable styles (hand-drawn, excalidraw, watercolor, or your own as JSON).",
7
7
  "type": "module",
@@ -168,6 +168,17 @@
168
168
  "lint:contracts": "bun test src/__tests__/agent-substrate-lint.test.ts src/__tests__/test-quality-lint.test.ts",
169
169
  "eval:agent-live": "bun run eval/agent-usage/live.ts",
170
170
  "eval:agent-subagent": "bun run eval/agent-usage/capture-subagent-prompt-eval.ts",
171
+ "eval:mcp-conformance": "bun run scripts/ci/mcp-conformance.ts",
172
+ "eval:skill:hydrate": "bun run scripts/eval/hydrate-private-skill-evals.ts",
173
+ "eval:skill:runner-manifest": "bun run scripts/eval/materialize-skill-runner-manifest.ts",
174
+ "eval:skill:prepare-evidence": "bun run scripts/eval/prepare-skill-evidence.ts",
175
+ "eval:skill:run-codex-evidence": "bun run scripts/eval/run-codex-evidence.ts",
176
+ "eval:skill:bundle-evidence": "bun run scripts/eval/bundle-skill-evidence.ts",
177
+ "eval:skill:materialize-codex-output": "bun run scripts/eval/materialize-codex-output.ts",
178
+ "eval:skill:summarize-evidence": "bun run scripts/eval/summarize-skill-evidence.ts",
179
+ "eval:skill:sabotage": "bun run scripts/ci/skill-eval-sabotage.ts",
180
+ "eval:family-portfolio": "bun run eval/mermaid-family-portfolio/build.ts",
181
+ "eval:family-portfolio:check": "bun run eval/mermaid-family-portfolio/build.ts --check",
171
182
  "eval:degenerate-routes": "bun run eval/degenerate-etn/enumerate.ts",
172
183
  "rubric:visual": "bun run eval/visual-rubric/run.ts",
173
184
  "contact:sheet": "bun run eval/visual-rubric/contact-sheet.ts",
package/server.json CHANGED
@@ -7,13 +7,13 @@
7
7
  "url": "https://github.com/adewale/agentic-mermaid",
8
8
  "source": "github"
9
9
  },
10
- "version": "0.3.2",
10
+ "version": "0.4.0",
11
11
  "websiteUrl": "https://agentic-mermaid.dev/",
12
12
  "packages": [
13
13
  {
14
14
  "registryType": "npm",
15
15
  "identifier": "agentic-mermaid",
16
- "version": "0.3.2",
16
+ "version": "0.4.0",
17
17
  "runtimeHint": "npx",
18
18
  "runtimeArguments": [
19
19
  {
@@ -12,7 +12,40 @@ An agent-agnostic typed editing surface for Mermaid. New diagrams can be authore
12
12
  - `agentic-mermaid-mcp` connected → **Code Mode** (`references/code-mode.md`). Multi-step edits in one round-trip.
13
13
  - Can run JS/TS with imports → **library** (`agentic-mermaid/agent`). Same SDK.
14
14
  - Shell only → **CLI** (`references/cli.md`).
15
- - No local install, network only → **hosted MCP** at `https://agentic-mermaid.dev/mcp` (stateless streamable HTTP JSON-RPC; `execute` Code Mode, `describe_sdk` for one family's mutation schema on demand, `render_svg`/`render_ascii`/`render_png`/`verify`/`describe`, and the declarative `mutate` (edit a `source`) / `build` (author from a `family`) tools — prefer `mutate`/`build` for structured edits; 64KB input caps).
15
+ - No local install, network only → **hosted MCP** at `https://agentic-mermaid.dev/mcp` (stateless Streamable HTTP JSON-RPC; `execute`, `describe_sdk`, `render_svg`, `render_ascii`, `render_png`, `verify`, `describe`, `mutate`, and `build` tools — 64 KB input cap). Read `references/hosted-mcp.md` before composing a hosted request. Use the named direct tool and its exact argument object; do not substitute library APIs or local Code Mode for a hosted direct-tool task.
16
+
17
+ For hosted MCP, choose the least-powerful tool that completes the task:
18
+
19
+ | Need | Tool | Required arguments |
20
+ |---|---|---|
21
+ | Structural validity, family, warnings, layout counts | `verify` | `{ source }` |
22
+ | Prose, AX tree, or semantic fact inventory | `describe` | `{ source, format?: 'text' \| 'json' \| 'facts' }` |
23
+ | Edit an existing diagram with known ops | `mutate` | `{ source, ops: [{ kind, ...fields }] }` |
24
+ | Author a new modeled diagram with known ops | `build` | `{ family, ops: [{ kind, ...fields }] }` |
25
+ | Discover one family's exact op fields | `describe_sdk` | `{ family, detail: 'fields' }` |
26
+ | Custom synchronous control flow | `execute` | `{ code, timeoutMs? }` |
27
+
28
+ Use `render_svg`, `render_ascii`, or `render_png` for a requested output; do not route a one-shot render, verify, describe, mutate, or build through `execute`.
29
+ Mutation vocabularies are family-specific and are never interchangeable. In
30
+ particular, a state diagram uses `add_state` and `add_transition`; never reuse
31
+ the flowchart-only `add_node` or `add_edge` kinds for a state diagram. If the
32
+ exact family op is not already known, call `describe_sdk` instead of borrowing
33
+ an op name from another family. State `add_state` accepts `id`, optional
34
+ `label`, `parent`, and `region`; it has no `terminal` field. Model an
35
+ unsuccessful terminal state as an ordinary state reached by the requested
36
+ labeled transition rather than inventing a convenience flag. For a class
37
+ association, use `{ kind: 'add_relation', from, to, relKind: 'association' }`;
38
+ there is no `add_relationship` op or `relation` field.
39
+ The request envelope's `tool` is always one of the bare hosted names above.
40
+ Never invent a provider-qualified name such as `hosted_agentic_mermaid_mcp.*`
41
+ or a diagram-specific tool such as `update_state_diagram`.
42
+ For a hosted task that asks for one final fenced JSON request, use this exact
43
+ response order: (1) finish all explanation as prose or inline code, (2) emit
44
+ the request in the answer's only fenced block, and (3) stop immediately after
45
+ the closing fence. Never print a fenced request before the explanation, even as
46
+ an example or draft, and never repeat it. Before emitting, count exactly one
47
+ fenced block and recheck every op `kind` and field against this skill or
48
+ `describe_sdk`; do not substitute a plausible synonym.
16
49
 
17
50
  ## Capability discovery
18
51
 
@@ -23,6 +56,10 @@ source example; the generated Section A matrix supplies explicit native,
23
56
  source-preserved, diagnosed, and absent states. This skill intentionally does
24
57
  not maintain a second family or operation table.
25
58
 
59
+ On hosted MCP, inspect the connected server's `tools/list` for its tool surface
60
+ and call `describe_sdk({ family, detail: 'fields' })` for mutation fields. There
61
+ is no hosted tool named `capabilities`.
62
+
26
63
  Any diagram with constructs we don't model falls back to an **opaque** body: it still parses, renders, verifies, and round-trips losslessly — it just isn't offered for structured mutation (the narrower returns null). The parser never silently drops anything.
27
64
 
28
65
  State diagrams own a dedicated body: `asState` models states/transitions, `[*]`, composites, stereotypes/history, concurrency regions, notes, bare declarations, and class/inline paint. `asFlowchart` returns null on a state diagram.
@@ -45,6 +82,32 @@ For new diagrams, author Mermaid source directly, then `parseRegisteredMermaid`
45
82
 
46
83
  Do not regenerate or concatenate source to edit an existing structured diagram when a typed op exists. Direct source authoring is fine for new diagrams. Mutation ops use the discriminator field `kind` (not `type`). Edge removal uses ids such as `{ kind: 'remove_edge', id: 'API->DB' }`; verify before serializing.
47
84
 
85
+ For `mutate` or `build`, treat the returned envelope as the commit boundary:
86
+ accept `source` only when both top-level `ok` and `verify.ok` are true, and
87
+ inspect `verify.warnings`. If an op fails, use its `opIndex` and `error`, call
88
+ `describe_sdk` with `detail: 'fields'`, then retry with only the returned
89
+ `kind` and fields. Never guess a hosted op name or fall back to source
90
+ concatenation.
91
+
92
+ When the user asks which embedded verification fields must pass, name the
93
+ response paths exactly: require top-level `ok`, confirm top-level `family`,
94
+ require `verify.ok`, and inspect `verify.warnings`. Do not replace those field
95
+ paths with a paraphrase.
96
+
97
+ In a hosted `mutate` request, `source` is the exact pre-edit input; do not apply
98
+ the requested change to that string yourself. Express every change only in
99
+ `ops`, and include no convenience fields that `describe_sdk` did not advertise.
100
+ For file-backed input, inspect the bytes rather than relying on terminal display:
101
+ preserve line endings and whether the file has a final newline. If the file ends
102
+ in LF, the JSON `source` string must end in `\n` after its last visible line.
103
+ Never trim or normalize the source; compare the JSON-decoded `source` bytes to
104
+ the attachment before emitting the request.
105
+
106
+ If a request such as “make this better” has no concrete quality goal, ask for
107
+ the audience, output medium, and intended improvement before mutating. A
108
+ read-only `verify`, `describe`, or render inspection is safe to offer, but do
109
+ not invent an edit objective.
110
+
48
111
  Minimal existing-flowchart pattern:
49
112
 
50
113
  ```ts