@milehimikey/em 1.12.0 → 1.13.1

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 (112) hide show
  1. package/.claude/skills/event-modeling/SKILL.md +5 -2
  2. package/.claude/skills/event-modeling-conform/SKILL.md +20 -9
  3. package/.claude/skills/event-modeling-conform/reference/conform.md +107 -10
  4. package/.claude/skills/event-modeling-design/SKILL.md +26 -4
  5. package/.claude/skills/event-modeling-discover/SKILL.md +1 -1
  6. package/.claude/skills/event-modeling-implement/SKILL.md +7 -4
  7. package/.claude/skills/event-modeling-implement/reference/implement.md +26 -8
  8. package/.claude/skills/event-modeling-review/SKILL.md +5 -1
  9. package/.claude/skills/event-modeling-shared/reference/em-dsl.md +45 -6
  10. package/.claude/skills/event-modeling-shared/reference/operating-principles.md +13 -3
  11. package/.claude/skills/event-modeling-shared/reference/slice-doc-schema.md +39 -0
  12. package/.claude/skills/event-modeling-shared/templates/conformance-report.md +8 -1
  13. package/.claude/skills/event-modeling-shared/templates/state.md +3 -0
  14. package/README.md +1 -0
  15. package/dist/catalog/docJoin.d.ts +9 -0
  16. package/dist/catalog/docJoin.js +6 -0
  17. package/dist/catalog/docJoin.js.map +1 -1
  18. package/dist/catalog/driftSignal.d.ts +11 -5
  19. package/dist/catalog/driftSignal.js +18 -4
  20. package/dist/catalog/driftSignal.js.map +1 -1
  21. package/dist/catalog/modelVersionValidate.d.ts +9 -0
  22. package/dist/catalog/modelVersionValidate.js +38 -0
  23. package/dist/catalog/modelVersionValidate.js.map +1 -0
  24. package/dist/catalog/sliceDoc.d.ts +12 -0
  25. package/dist/catalog/sliceDoc.js +15 -0
  26. package/dist/catalog/sliceDoc.js.map +1 -1
  27. package/dist/cli/ciInit.d.ts +24 -0
  28. package/dist/cli/ciInit.js +85 -15
  29. package/dist/cli/ciInit.js.map +1 -1
  30. package/dist/cli/conformScope.d.ts +1 -0
  31. package/dist/cli/conformScope.js +3 -1
  32. package/dist/cli/conformScope.js.map +1 -1
  33. package/dist/cli/conformSupersede.d.ts +24 -2
  34. package/dist/cli/conformSupersede.js +44 -3
  35. package/dist/cli/conformSupersede.js.map +1 -1
  36. package/dist/cli/coverage.d.ts +16 -2
  37. package/dist/cli/coverage.js +26 -4
  38. package/dist/cli/coverage.js.map +1 -1
  39. package/dist/cli/findings.d.ts +134 -0
  40. package/dist/cli/findings.js +355 -0
  41. package/dist/cli/findings.js.map +1 -0
  42. package/dist/cli/metrics.d.ts +93 -0
  43. package/dist/cli/metrics.js +331 -0
  44. package/dist/cli/metrics.js.map +1 -0
  45. package/dist/cli/modelVersion.d.ts +139 -0
  46. package/dist/cli/modelVersion.js +256 -0
  47. package/dist/cli/modelVersion.js.map +1 -0
  48. package/dist/cli/reratify.d.ts +24 -1
  49. package/dist/cli/reratify.js +73 -17
  50. package/dist/cli/reratify.js.map +1 -1
  51. package/dist/cli/skillCheck.js +2 -2
  52. package/dist/cli/skillCheck.js.map +1 -1
  53. package/dist/cli/sliceConform.d.ts +50 -0
  54. package/dist/cli/sliceConform.js +206 -0
  55. package/dist/cli/sliceConform.js.map +1 -0
  56. package/dist/cli/sliceIndex.d.ts +2 -0
  57. package/dist/cli/sliceIndex.js +15 -3
  58. package/dist/cli/sliceIndex.js.map +1 -1
  59. package/dist/cli/sliceNew.d.ts +12 -0
  60. package/dist/cli/sliceNew.js +23 -0
  61. package/dist/cli/sliceNew.js.map +1 -1
  62. package/dist/cli/sliceStubAll.d.ts +76 -0
  63. package/dist/cli/sliceStubAll.js +189 -0
  64. package/dist/cli/sliceStubAll.js.map +1 -0
  65. package/dist/cli/stateFile.d.ts +63 -7
  66. package/dist/cli/stateFile.js +179 -18
  67. package/dist/cli/stateFile.js.map +1 -1
  68. package/dist/cli/status.d.ts +79 -1
  69. package/dist/cli/status.js +134 -15
  70. package/dist/cli/status.js.map +1 -1
  71. package/dist/cli/upgrade.d.ts +132 -0
  72. package/dist/cli/upgrade.js +524 -0
  73. package/dist/cli/upgrade.js.map +1 -0
  74. package/dist/cli.js +609 -50
  75. package/dist/cli.js.map +1 -1
  76. package/dist/emit/coverageJson.d.ts +5 -2
  77. package/dist/emit/coverageJson.js +6 -2
  78. package/dist/emit/coverageJson.js.map +1 -1
  79. package/dist/emit/freshnessJson.d.ts +1 -1
  80. package/dist/emit/freshnessJson.js +3 -1
  81. package/dist/emit/freshnessJson.js.map +1 -1
  82. package/dist/emit/json.d.ts +11 -1
  83. package/dist/emit/json.js +35 -1
  84. package/dist/emit/json.js.map +1 -1
  85. package/dist/emit/metricsJson.d.ts +7 -0
  86. package/dist/emit/metricsJson.js +27 -0
  87. package/dist/emit/metricsJson.js.map +1 -0
  88. package/dist/emit/statusJson.d.ts +1 -1
  89. package/dist/emit/statusJson.js +17 -1
  90. package/dist/emit/statusJson.js.map +1 -1
  91. package/dist/emit/upgradeJson.d.ts +5 -0
  92. package/dist/emit/upgradeJson.js +29 -0
  93. package/dist/emit/upgradeJson.js.map +1 -0
  94. package/dist/emit/validateJson.d.ts +6 -2
  95. package/dist/emit/validateJson.js +12 -5
  96. package/dist/emit/validateJson.js.map +1 -1
  97. package/dist/mcp/server.d.ts +1 -1
  98. package/dist/mcp/server.js +137 -9
  99. package/dist/mcp/server.js.map +1 -1
  100. package/dist/model/rules.d.ts +7 -0
  101. package/dist/model/rules.js +12 -0
  102. package/dist/model/rules.js.map +1 -1
  103. package/dist/model/validate.d.ts +20 -0
  104. package/dist/model/validate.js +94 -45
  105. package/dist/model/validate.js.map +1 -1
  106. package/dist/templates.d.ts +2 -2
  107. package/dist/templates.js +7 -1
  108. package/dist/templates.js.map +1 -1
  109. package/dist/util/semver.d.ts +19 -0
  110. package/dist/util/semver.js +54 -0
  111. package/dist/util/semver.js.map +1 -0
  112. package/package.json +2 -2
@@ -1 +1 @@
1
- {"version":3,"file":"json.js","sourceRoot":"","sources":["../../src/emit/json.ts"],"names":[],"mappings":"AAAA,+BAA+B;AAC/B,+EAA+E;AAC/E,4EAA4E;AAC5E,4EAA4E;AAC5E,EAAE;AACF,gFAAgF;AAChF,yEAAyE;AACzE,4EAA4E;AAC5E,iDAAiD;AAEjD,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,WAAW,EAAsC,aAAa,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEnH,OAAO,EAAc,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAEvE,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAC3D,OAAO,EAAc,oBAAoB,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACpF,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AAEzE,2EAA2E;AAC3E,2EAA2E;AAC3E,6EAA6E;AAC7E,MAAM,CAAC,MAAM,cAAc,GAAG,iBAAiB,CAAC;AAChD,MAAM,CAAC,MAAM,iBAAiB,GAAW,IAAI,CAAC,KAAK,CACjD,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,cAAc,CAAC,EAAE,MAAM,CAAC,CAChG,CAAC,OAAO,CAAC;AAEV,uFAAuF;AACvF,0FAA0F;AAC1F,8FAA8F;AAC9F,8CAA8C;AAC9C,qFAAqF;AACrF,6FAA6F;AAC7F,oDAAoD;AACpD,sFAAsF;AACtF,6FAA6F;AAC7F,2FAA2F;AAC3F,8DAA8D;AAC9D,+EAA+E;AAC/E,6FAA6F;AAC7F,sFAAsF;AACtF,2FAA2F;AAC3F,qFAAqF;AACrF,sFAAsF;AACtF,wFAAwF;AACxF,kFAAkF;AAClF,+FAA+F;AAC/F,4FAA4F;AAC5F,6FAA6F;AAC7F,+FAA+F;AAC/F,+FAA+F;AAC/F,0FAA0F;AAC1F,6FAA6F;AAC7F,qCAAqC;AACrC,iGAAiG;AACjG,2FAA2F;AAC3F,gGAAgG;AAChG,iGAAiG;AACjG,8DAA8D;AAC9D,mGAAmG;AACnG,kGAAkG;AAClG,6FAA6F;AAC7F,+FAA+F;AAC/F,gGAAgG;AAChG,8FAA8F;AAC9F,gGAAgG;AAChG,+FAA+F;AAC/F,8FAA8F;AAC9F,+FAA+F;AAC/F,kCAAkC;AAClC,8FAA8F;AAC9F,wFAAwF;AACxF,6FAA6F;AAC7F,wFAAwF;AACxF,4FAA4F;AAC5F,+FAA+F;AAC/F,yFAAyF;AACzF,yFAAyF;AACzF,kGAAkG;AAClG,qEAAqE;AACrE,4FAA4F;AAC5F,+FAA+F;AAC/F,+FAA+F;AAC/F,4FAA4F;AAC5F,qDAAqD;AACrD,4FAA4F;AAC5F,2FAA2F;AAC3F,yFAAyF;AACzF,4FAA4F;AAC5F,2FAA2F;AAC3F,uCAAuC;AACvC,8FAA8F;AAC9F,gGAAgG;AAChG,4FAA4F;AAC5F,+DAA+D;AAC/D,4FAA4F;AAC5F,6FAA6F;AAC7F,iBAAiB;AACjB,yFAAyF;AACzF,4FAA4F;AAC5F,+FAA+F;AAC/F,0FAA0F;AAC1F,6FAA6F;AAC7F,8FAA8F;AAC9F,gGAAgG;AAChG,0FAA0F;AAC1F,0FAA0F;AAC1F,0FAA0F;AAC1F,qFAAqF;AACrF,2FAA2F;AAC3F,iBAAiB;AACjB,MAAM,CAAC,MAAM,cAAc,GAAG,MAAM,CAAC;AA6KrC;;;;;;;GAOG;AACH,SAAS,WAAW,CAClB,CAAQ,EACR,WAAkC,EAClC,WAAgC;IAEhC,MAAM,QAAQ,GAAG,cAAc,CAAC,CAAC,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;IACrD,OAAO;QACL,IAAI,EAAE,CAAC,CAAC,IAAI;QACZ,IAAI,EAAE,CAAC,CAAC,IAAI,IAAI,IAAI;QACpB,OAAO,EAAE,QAAQ;YACf,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,GAAG,EAAE,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAE,EAAE,KAAK,EAAE,QAAQ,CAAC,KAAK,EAAE;YACtG,CAAC,CAAC,IAAI;QACR,GAAG,EAAE,CAAC,CAAC,GAAG,KAAK,IAAI;QACnB,WAAW,EAAE,CAAC,CAAC,WAAW,IAAI,IAAI;QAClC,QAAQ,EAAE,CAAC,CAAC,QAAQ,KAAK,IAAI;QAC7B,OAAO,EAAE,CAAC,CAAC,OAAO,KAAK,IAAI;QAC3B,WAAW,EAAE,CAAC,CAAC,WAAW,IAAI,IAAI;KACnC,CAAC;AACJ,CAAC;AAED;;;;+FAI+F;AAC/F,MAAM,UAAU,WAAW,CACzB,KAAsB,EACtB,IAAgB,EAChB,WAAyB,EACzB,MAAc,EACd,IAAY;IAEZ,MAAM,EAAE,GAAG,EAAE,WAAW,EAAE,cAAc,EAAE,GAAG,cAAc,CAAC,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;IACpG,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,WAAW,EAAE,cAAc,EAAE,CAAC;AAC7E,CAAC;AAED;;;;;;;;;;;;2BAY2B;AAC3B,MAAM,UAAU,gBAAgB,CAC9B,KAAsB,EACtB,IAAgB,EAChB,WAAyB,EACzB,MAAc,EACd,IAAY,EACZ,QAAgB;IAEhB,MAAM,EAAE,GAAG,EAAE,WAAW,EAAE,cAAc,EAAE,GAAG,cAAc,CAAC,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;IACpG,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,QAAQ,CAAC,CAAC;IAC/D,IAAI,CAAC,KAAK;QAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,cAAc,EAAE,CAAC;IAE7E,MAAM,QAAQ,GAAG;QACf,aAAa,EAAE,GAAG,CAAC,aAAa;QAChC,SAAS,EAAE,GAAG,CAAC,SAAS;QACxB,MAAM,EAAE,GAAG,CAAC,MAAM;QAClB,4FAA4F;QAC5F,0EAA0E;QAC1E,QAAQ,EAAE,GAAG,CAAC,KAAK,CAAC,GAAG;QACvB,QAAQ;QACR,KAAK;QACL,sFAAsF;QACtF,sFAAsF;QACtF,mFAAmF;QACnF,WAAW,EAAE,GAAG,CAAC,WAAW,CAAC,MAAM,CACjC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,QAAQ,IAAI,CAAC,CAAC,UAAU,CAAC,GAAG,QAAQ,GAAG,CAAC,CAAC,CAC3E;KACF,CAAC;IACF,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,cAAc,EAAE,CAAC;AAC/F,CAAC;AAED;;;;;mGAKmG;AACnG,MAAM,UAAU,cAAc,CAC5B,KAAsB,EACtB,IAAgB,EAChB,WAAyB,EACzB,MAAc,EACd,IAAY;IAEZ,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC;IACjD,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9B,MAAM,cAAc,GAAiB,EAAE,CAAC;IAExC,MAAM,KAAK,GAAG,CAAC,EAAsB,EAAiB,EAAE,CACtD,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;IAEtC,MAAM,MAAM,GAAG,CAAC,EAAW,EAAiD,EAAE;QAC5E,IAAI,CAAC,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC;QAClD,OAAO,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC1F,CAAC,CAAC;IAEF,wFAAwF;IACxF,0FAA0F;IAC1F,2FAA2F;IAC3F,gDAAgD;IAChD,MAAM,SAAS,GAAG,CAAC,EAAW,EAAiD,EAAE;QAC/E,IAAI,CAAC,EAAE,CAAC,OAAO,IAAI,EAAE,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC;QACxD,OAAO,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,oBAAoB,CAAC,KAAK,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IACrG,CAAC,CAAC;IAEF,2FAA2F;IAC3F,6FAA6F;IAC7F,8FAA8F;IAC9F,8FAA8F;IAC9F,8FAA8F;IAC9F,2EAA2E;IAC3E,MAAM,YAAY,GAAG,CAAC,KAAwC,EAAqB,EAAE;QACnF,MAAM,WAAW,GAAG,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,KAAK,MAAM,IAAI,EAAE,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC;QAC3F,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,EAAE,CAAC;QACxC,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;QAC/B,MAAM,MAAM,GAAsB,EAAE,CAAC;QACrC,KAAK,MAAM,QAAQ,IAAI,WAAW,EAAE,CAAC;YACnC,MAAM,SAAS,GAAG,KAAK,CAAC,QAAQ;iBAC7B,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,MAAM,IAAI,KAAK,CAAC,KAAK,KAAK,IAAI,IAAI,KAAK,CAAC,SAAS,KAAK,QAAQ,CAAC,EAAE,CAAC;iBACnG,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC;YAC/C,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;gBACjC,MAAM,OAAO,GAAG,SAAS,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;gBAC/C,KAAK,MAAM,IAAI,IAAI,QAAQ,CAAC,IAAI,IAAI,EAAE,EAAE,CAAC;oBACvC,MAAM,GAAG,GAAG,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC;oBACrD,IAAI,CAAC,GAAG;wBAAE,SAAS,CAAC,mEAAmE;oBACvF,MAAM,SAAS,GAAG,GAAG,GAAG,IAAI,OAAO,EAAE,CAAC;oBACtC,IAAI,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC;wBAAE,SAAS;oBAClC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;oBACpB,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC;gBACvC,CAAC;YACH,CAAC;QACH,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC,CAAC;IAEF,yFAAyF;IACzF,2FAA2F;IAC3F,2FAA2F;IAC3F,+DAA+D;IAC/D,MAAM,MAAM,GAAG,CAAC,EAAW,EAAsB,EAAE;QACjD,MAAM,IAAI,GAAG,WAAW,CAAC,EAAE,CAAC,CAAC;QAC7B,OAAO,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;IACvC,CAAC,CAAC;IAEF,4FAA4F;IAC5F,gGAAgG;IAChG,mFAAmF;IACnF,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,UAAU,EAAE,EAAE;QACpD,MAAM,QAAQ,GAAG,SAAS,CAAC,UAAU,CAAC,CAAC;QACvC,MAAM,EAAE,GAAG,EAAE,WAAW,EAAE,aAAa,EAAE,cAAc,EAAE,iBAAiB,EAAE,GAAG,mBAAmB,CAChG,KAAK,EACL,IAAI,EACJ,KAAK,EACL,QAAQ,EACR,OAAO,EACP,CAAC,EAAE,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAE,CACzB,CAAC;QACF,cAAc,CAAC,IAAI,CAAC,GAAG,aAAa,CAAC,CAAC;QACtC,OAAO;YACL,GAAG,EAAE,QAAQ;YACb,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,sEAAsE;YACtE,sEAAsE;YACtE,4DAA4D;YAC5D,MAAM,EAAE,KAAK,CAAC,MAAM,IAAI,IAAI;YAC5B,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,kFAAkF;YAClF,kFAAkF;YAClF,sDAAsD;YACtD,OAAO,EAAE,oBAAoB,CAAC,KAAK,CAAC;YACpC,2EAA2E;YAC3E,8EAA8E;YAC9E,uDAAuD;YACvD,GAAG;YACH,+DAA+D;YAC/D,cAAc,EAAE,iBAAiB;YACjC,SAAS,EAAE,YAAY,CAAC,KAAK,CAAC;YAC9B,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;gBACpC,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAE;gBACxB,IAAI,EAAE,EAAE,CAAC,IAAI;gBACb,IAAI,EAAE,EAAE,CAAC,IAAI;gBACb,IAAI,EAAE,EAAE,CAAC,IAAI;gBACb,MAAM,EAAE,EAAE,CAAC,MAAM;oBACf,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC,EAAE,KAAK,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;oBACtE,CAAC,CAAC,IAAI;gBACR,IAAI,EAAE,EAAE,CAAC,IAAI,IAAI,IAAI;gBACrB,KAAK,EAAE,EAAE,CAAC,KAAK,IAAI,IAAI;gBACvB,UAAU,EAAE,EAAE,CAAC,UAAU,IAAI,IAAI;gBACjC,IAAI,EAAE,MAAM,CAAC,EAAE,CAAC;gBAChB,OAAO,EAAE,EAAE,CAAC,OAAO,IAAI,IAAI;gBAC3B,OAAO,EAAE,EAAE,CAAC,OAAO,IAAI,IAAI;gBAC3B,KAAK,EAAE,EAAE,CAAC,KAAK,KAAK,IAAI;gBACxB,MAAM,EAAE,EAAE,CAAC,MAAM,KAAK,IAAI;gBAC1B,IAAI,EAAE,MAAM,CAAC,EAAE,CAAC;gBAChB,WAAW,EAAE,EAAE,CAAC,WAAW,IAAI,IAAI;gBACnC,UAAU,EACR,EAAE,CAAC,IAAI,KAAK,MAAM,IAAI,EAAE,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI;gBACtE,OAAO,EAAE,SAAS,CAAC,EAAE,CAAC;aACvB,CAAC,CAAC;SACJ,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,wFAAwF;IACxF,4FAA4F;IAC5F,+FAA+F;IAC/F,gFAAgF;IAChF,MAAM,sBAAsB,GAAG,oBAAoB,CAAC,KAAK,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IAE1E,MAAM,cAAc,GAAG,CAAC,GAAG,WAAW,EAAE,GAAG,cAAc,EAAE,GAAG,sBAAsB,CAAC,CAAC;IAEtF,MAAM,SAAS,GAAG;QAChB,aAAa,EAAE,cAAc;QAC7B,SAAS,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE,OAAO,EAAE,iBAAiB,EAAE;QAC/D,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE;QACnF,KAAK,EAAE;YACL,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,GAAG,EAAE,eAAe,CAAC,KAAK,EAAE,IAAI,CAAC;YACjC,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,aAAa,EAAE,KAAK,CAAC,aAAa;YAClC,+EAA+E;YAC/E,iDAAiD;YACjD,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBAC7B,GAAG,EAAE,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAE;gBAC3B,IAAI,EAAE,CAAC,CAAC,IAAI;gBACZ,IAAI,EAAE,CAAC,CAAC,IAAI;gBACZ,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC,EAAE,KAAK,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;aAC5E,CAAC,CAAC;YACH,MAAM;YACN,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBAC/B,IAAI,EAAE,CAAC,CAAC,IAAI;gBACZ,EAAE,EAAE,CAAC,CAAC,EAAE;gBACR,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC;gBACxB,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;gBACpB,IAAI,EAAE,CAAC,CAAC,IAAI;aACb,CAAC,CAAC;YACH,qFAAqF;YACrF,0FAA0F;YAC1F,0FAA0F;YAC1F,2EAA2E;YAC3E,KAAK,EAAE,aAAa,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBACtC,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAE;gBAC1B,EAAE,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAE;gBACtB,MAAM,EAAE,CAAC,CAAC,MAAM;aACjB,CAAC,CAAC;SACJ;QACD,WAAW,EAAE,cAAc,CAAC,GAAG,CAAC,mBAAmB,CAAC;KACrD,CAAC;IAEF,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,WAAW,EAAE,cAAc,EAAE,CAAC;AACzD,CAAC"}
1
+ {"version":3,"file":"json.js","sourceRoot":"","sources":["../../src/emit/json.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import { MetricsResult } from "../cli/metrics.js";
2
+ export declare const METRICS_SCHEMA_VERSION = "1.0";
3
+ /** Build the `em metrics <file> --from <rev> [--to <rev>] --json` document. Pretty-printed
4
+ * (2-space), no trailing newline — the caller adds it, same convention as buildStatusJson/
5
+ * buildFreshnessJson. No timestamps or other non-deterministic fields: byte-identical for the
6
+ * same repository state and range. */
7
+ export declare function buildMetricsJson(result: MetricsResult): string;
@@ -0,0 +1,27 @@
1
+ // SPDX-License-Identifier: MIT
2
+ // Builds the `em metrics --from <rev> --json` document (MIL-170): a versioned envelope around
3
+ // `MetricsResult` (see ../cli/metrics.ts). Same conventions as statusJson.ts/freshnessJson.ts/
4
+ // ledgerJson.ts: a schema field versioned independently of both the npm package and every other
5
+ // command's own schema — also the exact document the MCP `metrics` tool returns (src/mcp/
6
+ // server.ts), so there is exactly one schema for this surface (MCP parity).
7
+ import { GENERATOR_NAME, GENERATOR_VERSION } from "./json.js";
8
+ // 1.0 (MIL-170): initial shape.
9
+ export const METRICS_SCHEMA_VERSION = "1.0";
10
+ /** Build the `em metrics <file> --from <rev> [--to <rev>] --json` document. Pretty-printed
11
+ * (2-space), no trailing newline — the caller adds it, same convention as buildStatusJson/
12
+ * buildFreshnessJson. No timestamps or other non-deterministic fields: byte-identical for the
13
+ * same repository state and range. */
14
+ export function buildMetricsJson(result) {
15
+ const doc = {
16
+ metricsSchemaVersion: METRICS_SCHEMA_VERSION,
17
+ generator: { name: GENERATOR_NAME, version: GENERATOR_VERSION },
18
+ from: result.from,
19
+ to: result.to,
20
+ ratificationTurnaround: result.ratificationTurnaround,
21
+ conformCadence: result.conformCadence,
22
+ statusVsReality: result.statusVsReality,
23
+ readinessGateEffect: result.readinessGateEffect,
24
+ };
25
+ return JSON.stringify(doc, null, 2);
26
+ }
27
+ //# sourceMappingURL=metricsJson.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"metricsJson.js","sourceRoot":"","sources":["../../src/emit/metricsJson.ts"],"names":[],"mappings":"AAAA,+BAA+B;AAC/B,8FAA8F;AAC9F,+FAA+F;AAC/F,gGAAgG;AAChG,0FAA0F;AAC1F,4EAA4E;AAG5E,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAE9D,gCAAgC;AAChC,MAAM,CAAC,MAAM,sBAAsB,GAAG,KAAK,CAAC;AAE5C;;;uCAGuC;AACvC,MAAM,UAAU,gBAAgB,CAAC,MAAqB;IACpD,MAAM,GAAG,GAAG;QACV,oBAAoB,EAAE,sBAAsB;QAC5C,SAAS,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE,OAAO,EAAE,iBAAiB,EAAE;QAC/D,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,EAAE,EAAE,MAAM,CAAC,EAAE;QACb,sBAAsB,EAAE,MAAM,CAAC,sBAAsB;QACrD,cAAc,EAAE,MAAM,CAAC,cAAc;QACrC,eAAe,EAAE,MAAM,CAAC,eAAe;QACvC,mBAAmB,EAAE,MAAM,CAAC,mBAAmB;KAChD,CAAC;IACF,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;AACtC,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import { StatusReport } from "../cli/status.js";
2
- export declare const STATUS_SCHEMA_VERSION = "1.4";
2
+ export declare const STATUS_SCHEMA_VERSION = "1.7";
3
3
  /** Build the `em status <files...> --json` document. Pretty-printed (2-space), no trailing
4
4
  * newline — the caller adds it, same convention as buildCoverageJson/buildLedgerJson. No
5
5
  * timestamps or other non-deterministic fields: byte-identical for the same models/git state
@@ -21,7 +21,21 @@ import { GENERATOR_NAME, GENERATOR_VERSION } from "./json.js";
21
21
  // (again-view-only slices with no legacy doc of their own) across every input file, excluded
22
22
  // from every `slices.byStatus`/`driftSignal` bucket (the originating slice's own fact already
23
23
  // counts once). See ../cli/status.ts's StatusReport.continuations.
24
- export const STATUS_SCHEMA_VERSION = "1.4";
24
+ // 1.5 (MIL-214): `driftSignal` gains `uncertified` (number) — status: implemented slices whose
25
+ // current version has no matching conformance certification (see catalog/driftSignal.ts). Each
26
+ // `conformance[]` entry gains `unruledFindings` (number | null) — unruled conformance findings
27
+ // in scope for that model's last conformance run (null when no findings JSON exists beside the
28
+ // recorded report), and `lastConformance` gains `partial` (boolean) — whether the marker was
29
+ // recorded with `em state set-conformance --partial`. See ../cli/status.ts's
30
+ // StatusDriftCounts.uncertified/ConformanceEntry.unruledFindings/ConformanceEntry.lastConformance.
31
+ // 1.6 (MIL-218): a new top-level `modelVersion` array — one entry per input file: design
32
+ // version (from `model-versions/*.json`, or null if never bumped), the most recently certified
33
+ // version (if any), and whether the vector has drifted since the design version was bumped.
34
+ // See ../cli/status.ts's ModelVersionStatusEntry.
35
+ // 1.7 (MIL-219): a new top-level `emVersion` array — one entry per input file whose state file
36
+ // resolved: the recorded `Em version:` bullet (null when absent/unknown), the em actually
37
+ // running, and whether the recorded one is behind. See ../cli/status.ts's EmVersionStatusEntry.
38
+ export const STATUS_SCHEMA_VERSION = "1.7";
25
39
  /** Build the `em status <files...> --json` document. Pretty-printed (2-space), no trailing
26
40
  * newline — the caller adds it, same convention as buildCoverageJson/buildLedgerJson. No
27
41
  * timestamps or other non-deterministic fields: byte-identical for the same models/git state
@@ -37,6 +51,8 @@ export function buildStatusJson(report) {
37
51
  invariants: report.invariants,
38
52
  issues: report.issues,
39
53
  conformance: report.conformance,
54
+ modelVersion: report.modelVersion,
55
+ emVersion: report.emVersion,
40
56
  owners: report.owners,
41
57
  // Doc-join diagnostics (binding-missing-file/frontmatter-invalid), tagged with the file
42
58
  // each concerns — same serialized diagnostic shape em export/em diff use (severity, code,
@@ -1 +1 @@
1
- {"version":3,"file":"statusJson.js","sourceRoot":"","sources":["../../src/emit/statusJson.ts"],"names":[],"mappings":"AAAA,+BAA+B;AAC/B,0FAA0F;AAC1F,uFAAuF;AACvF,2FAA2F;AAC3F,4FAA4F;AAC5F,6FAA6F;AAC7F,mFAAmF;AAGnF,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAE9D,gCAAgC;AAChC,yFAAyF;AACzF,8FAA8F;AAC9F,6FAA6F;AAC7F,2FAA2F;AAC3F,6EAA6E;AAC7E,8FAA8F;AAC9F,+FAA+F;AAC/F,iGAAiG;AACjG,+EAA+E;AAC/E,yFAAyF;AACzF,6FAA6F;AAC7F,8FAA8F;AAC9F,mEAAmE;AACnE,MAAM,CAAC,MAAM,qBAAqB,GAAG,KAAK,CAAC;AAE3C;;;mDAGmD;AACnD,MAAM,UAAU,eAAe,CAAC,MAAoB;IAClD,MAAM,GAAG,GAAG;QACV,mBAAmB,EAAE,qBAAqB;QAC1C,SAAS,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE,OAAO,EAAE,iBAAiB,EAAE;QAC/D,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,aAAa,EAAE,MAAM,CAAC,aAAa;QACnC,WAAW,EAAE,MAAM,CAAC,WAAW;QAC/B,UAAU,EAAE,MAAM,CAAC,UAAU;QAC7B,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,WAAW,EAAE,MAAM,CAAC,WAAW;QAC/B,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,wFAAwF;QACxF,0FAA0F;QAC1F,yEAAyE;QACzE,WAAW,EAAE,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,GAAG,mBAAmB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;KAC1F,CAAC;IACF,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;AACtC,CAAC"}
1
+ {"version":3,"file":"statusJson.js","sourceRoot":"","sources":["../../src/emit/statusJson.ts"],"names":[],"mappings":"AAAA,+BAA+B;AAC/B,0FAA0F;AAC1F,uFAAuF;AACvF,2FAA2F;AAC3F,4FAA4F;AAC5F,6FAA6F;AAC7F,mFAAmF;AAGnF,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAE9D,gCAAgC;AAChC,yFAAyF;AACzF,8FAA8F;AAC9F,6FAA6F;AAC7F,2FAA2F;AAC3F,6EAA6E;AAC7E,8FAA8F;AAC9F,+FAA+F;AAC/F,iGAAiG;AACjG,+EAA+E;AAC/E,yFAAyF;AACzF,6FAA6F;AAC7F,8FAA8F;AAC9F,mEAAmE;AACnE,+FAA+F;AAC/F,+FAA+F;AAC/F,+FAA+F;AAC/F,+FAA+F;AAC/F,6FAA6F;AAC7F,6EAA6E;AAC7E,mGAAmG;AACnG,yFAAyF;AACzF,+FAA+F;AAC/F,4FAA4F;AAC5F,kDAAkD;AAClD,+FAA+F;AAC/F,0FAA0F;AAC1F,gGAAgG;AAChG,MAAM,CAAC,MAAM,qBAAqB,GAAG,KAAK,CAAC;AAE3C;;;mDAGmD;AACnD,MAAM,UAAU,eAAe,CAAC,MAAoB;IAClD,MAAM,GAAG,GAAG;QACV,mBAAmB,EAAE,qBAAqB;QAC1C,SAAS,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE,OAAO,EAAE,iBAAiB,EAAE;QAC/D,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,aAAa,EAAE,MAAM,CAAC,aAAa;QACnC,WAAW,EAAE,MAAM,CAAC,WAAW;QAC/B,UAAU,EAAE,MAAM,CAAC,UAAU;QAC7B,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,WAAW,EAAE,MAAM,CAAC,WAAW;QAC/B,YAAY,EAAE,MAAM,CAAC,YAAY;QACjC,SAAS,EAAE,MAAM,CAAC,SAAS;QAC3B,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,wFAAwF;QACxF,0FAA0F;QAC1F,yEAAyE;QACzE,WAAW,EAAE,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,GAAG,mBAAmB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;KAC1F,CAAC;IACF,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;AACtC,CAAC"}
@@ -0,0 +1,5 @@
1
+ import { UpgradeReport } from "../cli/upgrade.js";
2
+ export declare const UPGRADE_SCHEMA_VERSION = "1.1";
3
+ /** Build the `em upgrade <file> --json` document. Pretty-printed (2-space), no trailing newline
4
+ * — the caller adds it, same convention as buildLedgerJson/buildDiffJson/buildSkillCheckJson. */
5
+ export declare function buildUpgradeJson(file: string, report: UpgradeReport): string;
@@ -0,0 +1,29 @@
1
+ // SPDX-License-Identifier: MIT
2
+ // Builds the `em upgrade --json` document (dry-run report, MIL-219): a versioned envelope
3
+ // around `UpgradeReport` (see ../cli/upgrade.ts). Follows em ledger/em diff/em skill check's
4
+ // conventions (ledgerJson.ts, diffJson.ts, skillCheckJson.ts): a schema field versioned
5
+ // independently of both the npm package and every other command's own schema. `--apply` never
6
+ // prints this document — it's a dry-run/`--check` artifact only (MCP's `upgrade` tool is
7
+ // dry-run-only for the same reason, ruling F).
8
+ import { GENERATOR_NAME, GENERATOR_VERSION } from "./json.js";
9
+ // 1.0: initial shape (MIL-219).
10
+ // 1.1: (MIL-257) no shape change, but `stateFileError` semantics changed: it is `null` for an
11
+ // ABSENT state file (the `state-file` step scaffolds it and shows as an applicable step) and
12
+ // is set only for a file that exists but doesn't parse, as a sentence naming the file.
13
+ export const UPGRADE_SCHEMA_VERSION = "1.1";
14
+ /** Build the `em upgrade <file> --json` document. Pretty-printed (2-space), no trailing newline
15
+ * — the caller adds it, same convention as buildLedgerJson/buildDiffJson/buildSkillCheckJson. */
16
+ export function buildUpgradeJson(file, report) {
17
+ const doc = {
18
+ upgradeSchemaVersion: UPGRADE_SCHEMA_VERSION,
19
+ generator: { name: GENERATOR_NAME, version: GENERATOR_VERSION },
20
+ file,
21
+ from: report.from,
22
+ to: report.to,
23
+ stateFileError: report.stateFileError,
24
+ steps: report.steps,
25
+ human: report.human,
26
+ };
27
+ return JSON.stringify(doc, null, 2);
28
+ }
29
+ //# sourceMappingURL=upgradeJson.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"upgradeJson.js","sourceRoot":"","sources":["../../src/emit/upgradeJson.ts"],"names":[],"mappings":"AAAA,+BAA+B;AAC/B,0FAA0F;AAC1F,6FAA6F;AAC7F,wFAAwF;AACxF,8FAA8F;AAC9F,yFAAyF;AACzF,+CAA+C;AAG/C,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAE9D,gCAAgC;AAChC,8FAA8F;AAC9F,kGAAkG;AAClG,4FAA4F;AAC5F,MAAM,CAAC,MAAM,sBAAsB,GAAG,KAAK,CAAC;AAE5C;kGACkG;AAClG,MAAM,UAAU,gBAAgB,CAAC,IAAY,EAAE,MAAqB;IAClE,MAAM,GAAG,GAAG;QACV,oBAAoB,EAAE,sBAAsB;QAC5C,SAAS,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE,OAAO,EAAE,iBAAiB,EAAE;QAC/D,IAAI;QACJ,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,EAAE,EAAE,MAAM,CAAC,EAAE;QACb,cAAc,EAAE,MAAM,CAAC,cAAc;QACrC,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,KAAK,EAAE,MAAM,CAAC,KAAK;KACpB,CAAC;IACF,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;AACtC,CAAC"}
@@ -21,12 +21,15 @@ export declare const VALIDATE_SLICE_READY_SCHEMA_VERSION = "1.1";
21
21
  * scoped list so a consumer sees exactly why, never just the 4 named gates. `continuationOf`
22
22
  * (MIL-208) is `null` for an ordinary slice or when `gates` is `null`. */
23
23
  export declare function buildSliceReadyJson(file: string, sliceKey: string, gates: SliceReadyGates | null, diagnostics: Diagnostic[], ready: boolean, continuationOf: string | null): string;
24
- export declare const VALIDATE_LIST_SCHEMA_VERSION = "1.0";
24
+ export declare const VALIDATE_LIST_SCHEMA_VERSION = "1.1";
25
25
  /** One `--list-issues`/`--list-divergences`/`--list-public` entry — the structured replacement
26
26
  * for the ` issue :12 slice "X" command "Y": text` eyeball format. `elementRef` is the same
27
27
  * export-stable ref (`<sliceKey>/<kind>.<slug>`) `em export`/`em diff` use — never a second
28
28
  * identifier scheme. `text` is the `issue`/`divergence` annotation's own text; `null` for a
29
- * `public` marker, which carries no text. */
29
+ * `public` marker, which carries no text. `noInModelReader` (MIL-215) is the `--list-public`
30
+ * audit note ("no in-model reader") for a `public` `view` marker — see
31
+ * `publicViewsWithoutInModelReader` (model/validate.ts) for why this is an audit annotation,
32
+ * not a validate warning; `null` for an `event` marker or any `issue`/`divergence` marker. */
30
33
  export interface MarkerEntry {
31
34
  markerKind: "issue" | "divergence" | "public";
32
35
  sliceKey: string;
@@ -35,6 +38,7 @@ export interface MarkerEntry {
35
38
  elementKind: string;
36
39
  elementName: string;
37
40
  text: string | null;
41
+ noInModelReader: boolean | null;
38
42
  line: number;
39
43
  }
40
44
  /** Collects `--list-issues`/`--list-divergences`/`--list-public` markers straight off the
@@ -15,7 +15,7 @@
15
15
  // registry (model/rules.ts) — the same fixed vocabulary docs/usage-data.md's Categories tables
16
16
  // already draw from. No new judgment: this module only reshapes what the validator and
17
17
  // `RULES` already compute, never adds a check of its own.
18
- import { serializeDiagnostic } from "../model/validate.js";
18
+ import { serializeDiagnostic, publicViewsWithoutInModelReader } from "../model/validate.js";
19
19
  import { RULES } from "../model/rules.js";
20
20
  import { GENERATOR_NAME, GENERATOR_VERSION } from "./json.js";
21
21
  /** `serializeDiagnostic()`'s shape plus `usageCategory`, looked up from `RULES` — every
@@ -75,14 +75,17 @@ export function buildSliceReadyJson(file, sliceKey, gates, diagnostics, ready, c
75
75
  return JSON.stringify(doc, null, 2);
76
76
  }
77
77
  // 1.0 (MIL-128): initial shape.
78
- export const VALIDATE_LIST_SCHEMA_VERSION = "1.0";
78
+ // 1.1 (MIL-215): `noInModelReader` on `public` markers — true for a `view` no `ui`/reaction
79
+ // reads anywhere on its timeline, false for one that is read, `null` for `event` markers and
80
+ // every `issue`/`divergence` marker (the signal only applies to views). Additive-only.
81
+ export const VALIDATE_LIST_SCHEMA_VERSION = "1.1";
79
82
  /** Collects `--list-issues`/`--list-divergences`/`--list-public` markers straight off the
80
83
  * model, in document order — the same element sets cli.ts's `printIssues`/`printDivergences`/
81
84
  * `printPublicElements` already walk, just refs-aware and machine-shaped instead of printed.
82
85
  * Each `kinds` flag independently gates its own marker kind, same as the text-mode flags. */
83
86
  export function collectMarkers(model, refs, kinds) {
84
87
  const markers = [];
85
- const entryFor = (el, markerKind, text) => ({
88
+ const entryFor = (el, markerKind, text, noInModelReader = null) => ({
86
89
  markerKind,
87
90
  sliceKey: refs.sliceKeys[el.sliceIndex],
88
91
  sliceName: model.slices[el.sliceIndex].name,
@@ -90,6 +93,7 @@ export function collectMarkers(model, refs, kinds) {
90
93
  elementKind: el.kind,
91
94
  elementName: el.name,
92
95
  text,
96
+ noInModelReader,
93
97
  line: el.line,
94
98
  });
95
99
  if (kinds.issues) {
@@ -103,9 +107,12 @@ export function collectMarkers(model, refs, kinds) {
103
107
  markers.push(entryFor(el, "divergence", el.divergence));
104
108
  }
105
109
  if (kinds.public) {
110
+ const noReader = publicViewsWithoutInModelReader(model);
106
111
  for (const el of model.elements) {
107
- if (el.public && (el.kind === "event" || el.kind === "view"))
108
- markers.push(entryFor(el, "public", null));
112
+ if (el.public && (el.kind === "event" || el.kind === "view")) {
113
+ const flag = el.kind === "view" ? noReader.has(el.logicalId) : null;
114
+ markers.push(entryFor(el, "public", null, flag));
115
+ }
109
116
  }
110
117
  }
111
118
  return markers;
@@ -1 +1 @@
1
- {"version":3,"file":"validateJson.js","sourceRoot":"","sources":["../../src/emit/validateJson.ts"],"names":[],"mappings":"AAAA,+BAA+B;AAC/B,yFAAyF;AACzF,gFAAgF;AAChF,+FAA+F;AAC/F,+FAA+F;AAC/F,6FAA6F;AAC7F,iDAAiD;AACjD,EAAE;AACF,qFAAqF;AACrF,gGAAgG;AAChG,6FAA6F;AAC7F,oFAAoF;AACpF,EAAE;AACF,uFAAuF;AACvF,+FAA+F;AAC/F,uFAAuF;AACvF,0DAA0D;AAE1D,OAAO,EAAc,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AACvE,OAAO,EAAE,KAAK,EAAY,MAAM,mBAAmB,CAAC;AAIpD,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAE9D;;;2FAG2F;AAC3F,SAAS,4BAA4B,CAAC,CAAa;IACjD,OAAO,EAAE,GAAG,mBAAmB,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,KAAK,CAAC,CAAC,CAAC,IAAgB,CAAC,CAAC,aAAa,EAAE,CAAC;AAC/F,CAAC;AAED,gCAAgC;AAChC,MAAM,CAAC,MAAM,uBAAuB,GAAG,KAAK,CAAC;AAE7C;;;iCAGiC;AACjC,MAAM,UAAU,iBAAiB,CAAC,IAAY,EAAE,WAAyB;IACvE,MAAM,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,MAAM,CAAC;IACxE,MAAM,GAAG,GAAG;QACV,qBAAqB,EAAE,uBAAuB;QAC9C,SAAS,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE,OAAO,EAAE,iBAAiB,EAAE;QAC/D,IAAI;QACJ,EAAE,EAAE,MAAM,KAAK,CAAC;QAChB,OAAO,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,WAAW,CAAC,MAAM,GAAG,MAAM,EAAE,KAAK,EAAE,WAAW,CAAC,MAAM,EAAE;QACrF,WAAW,EAAE,WAAW,CAAC,GAAG,CAAC,4BAA4B,CAAC;KAC3D,CAAC;IACF,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;AACtC,CAAC;AAED,gCAAgC;AAChC,4FAA4F;AAC5F,+FAA+F;AAC/F,gGAAgG;AAChG,8FAA8F;AAC9F,sBAAsB;AACtB,MAAM,CAAC,MAAM,mCAAmC,GAAG,KAAK,CAAC;AAEzD;;;;;;;;;;2EAU2E;AAC3E,MAAM,UAAU,mBAAmB,CACjC,IAAY,EACZ,QAAgB,EAChB,KAA6B,EAC7B,WAAyB,EACzB,KAAc,EACd,cAA6B;IAE7B,MAAM,GAAG,GAAG;QACV,+BAA+B,EAAE,mCAAmC;QACpE,SAAS,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE,OAAO,EAAE,iBAAiB,EAAE;QAC/D,IAAI;QACJ,QAAQ;QACR,KAAK;QACL,cAAc;QACd,KAAK;QACL,WAAW,EAAE,WAAW,CAAC,GAAG,CAAC,4BAA4B,CAAC;KAC3D,CAAC;IACF,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;AACtC,CAAC;AAED,gCAAgC;AAChC,MAAM,CAAC,MAAM,4BAA4B,GAAG,KAAK,CAAC;AAkBlD;;;8FAG8F;AAC9F,MAAM,UAAU,cAAc,CAC5B,KAAsB,EACtB,IAAgB,EAChB,KAAoE;IAEpE,MAAM,OAAO,GAAkB,EAAE,CAAC;IAClC,MAAM,QAAQ,GAAG,CAAC,EAAW,EAAE,UAAqC,EAAE,IAAmB,EAAe,EAAE,CAAC,CAAC;QAC1G,UAAU;QACV,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,UAAU,CAAC;QACvC,SAAS,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,IAAI;QAC3C,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAE;QACpC,WAAW,EAAE,EAAE,CAAC,IAAI;QACpB,WAAW,EAAE,EAAE,CAAC,IAAI;QACpB,IAAI;QACJ,IAAI,EAAE,EAAE,CAAC,IAAI;KACd,CAAC,CAAC;IACH,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;QACjB,KAAK,MAAM,EAAE,IAAI,KAAK,CAAC,QAAQ;YAAE,IAAI,EAAE,CAAC,KAAK;gBAAE,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,OAAO,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;IAC/F,CAAC;IACD,IAAI,KAAK,CAAC,WAAW,EAAE,CAAC;QACtB,KAAK,MAAM,EAAE,IAAI,KAAK,CAAC,QAAQ;YAAE,IAAI,EAAE,CAAC,UAAU;gBAAE,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,YAAY,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC;IAC9G,CAAC;IACD,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;QACjB,KAAK,MAAM,EAAE,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;YAChC,IAAI,EAAE,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC,IAAI,KAAK,OAAO,IAAI,EAAE,CAAC,IAAI,KAAK,MAAM,CAAC;gBAAE,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC;QAC3G,CAAC;IACH,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;;8DAG8D;AAC9D,MAAM,UAAU,qBAAqB,CAAC,IAAY,EAAE,OAAsB,EAAE,WAAyB;IACnG,MAAM,GAAG,GAAG;QACV,yBAAyB,EAAE,4BAA4B;QACvD,SAAS,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE,OAAO,EAAE,iBAAiB,EAAE;QAC/D,IAAI;QACJ,OAAO;QACP,WAAW,EAAE,WAAW,CAAC,GAAG,CAAC,4BAA4B,CAAC;KAC3D,CAAC;IACF,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;AACtC,CAAC"}
1
+ {"version":3,"file":"validateJson.js","sourceRoot":"","sources":["../../src/emit/validateJson.ts"],"names":[],"mappings":"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"}
@@ -4,7 +4,7 @@ import { McpServer } from "@modelcontextprotocol/sdk/server/mcp.js";
4
4
  * so `em --version`/`em export`'s `generator.version`/this server's version never drift apart. */
5
5
  export declare const SERVER_NAME = "em";
6
6
  export declare const SERVER_VERSION: string;
7
- /** Registers all fifteen MCP tools on a fresh McpServer instance and returns it, unconnected — the
7
+ /** Registers all eighteen MCP tools on a fresh McpServer instance and returns it, unconnected — the
8
8
  * caller (src/mcp/main.ts's stdio entry, or a test harness using an in-memory transport)
9
9
  * decides how to connect it. Building the server is a pure, side-effect-free function so tests
10
10
  * can exercise it directly with the SDK's in-memory transport, no child process required. */
@@ -37,12 +37,16 @@ import { validateFrontmatterCoherence } from "../catalog/frontmatterCoherenceVal
37
37
  import { validateNoteBindings } from "../catalog/noteBindingValidate.js";
38
38
  import { validateDocModelConsistency } from "../catalog/docModelConsistencyValidate.js";
39
39
  import { validateOrphanedSliceDocs } from "../catalog/orphanedSliceDocValidate.js";
40
+ import { validateModelVersionStale } from "../catalog/modelVersionValidate.js";
40
41
  import { validateSliceReady, computeSliceReadyGates } from "../catalog/sliceReadyValidate.js";
41
- import { buildCoverageReport, resolveScopedSlices } from "../cli/coverage.js";
42
+ import { buildCoverageReport, resolveScopedSlices, resolveCoverageSliceKey } from "../cli/coverage.js";
42
43
  import { buildCoverageJson } from "../emit/coverageJson.js";
43
44
  import { readContract, contractPath } from "../cli/contract.js";
44
- import { resolveSliceStatusFacts, countOpenIssues, resolveConformanceEntry, aggregateInvariantTotals, buildStatusReport, } from "../cli/status.js";
45
+ import { resolveRepoRoot, detectUpgrade } from "../cli/upgrade.js";
46
+ import { buildUpgradeJson } from "../emit/upgradeJson.js";
47
+ import { resolveSliceStatusFacts, countOpenIssues, resolveConformanceEntry, aggregateInvariantTotals, buildStatusReport, resolveModelVersionStatusEntry, resolveEmVersionStatusEntry, } from "../cli/status.js";
45
48
  import { buildStatusJson } from "../emit/statusJson.js";
49
+ import { findCertifiedVersion, latestModelVersionNumber } from "../cli/modelVersion.js";
46
50
  import { planDiffArgs, resolveRevision, resolveDocAtRevision } from "../cli/diff-inputs.js";
47
51
  import { readSliceDoc } from "../catalog/readSliceDoc.js";
48
52
  import { buildGlossary, detectKindConflicts, detectFieldTypeConflicts } from "../model/glossary.js";
@@ -52,6 +56,9 @@ import { buildChangelogDoc } from "../cli/changelogBuild.js";
52
56
  import { buildConformScope, changedPathsSince, resolveSliceDocFacts } from "../cli/conformScope.js";
53
57
  import { loadStateFile, parseState, modelPathMismatch } from "../cli/stateFile.js";
54
58
  import { buildFreshnessJson } from "../emit/freshnessJson.js";
59
+ import { computeMetrics } from "../cli/metrics.js";
60
+ import { buildMetricsJson } from "../emit/metricsJson.js";
61
+ import { checkFindingsFile, buildCheckFindingsJson } from "../cli/findings.js";
55
62
  import { compileForQuery } from "../query/pipeline.js";
56
63
  import { buildQuerySystem } from "../query/system.js";
57
64
  import { queryConsumers, queryProducers, queryDownstream, queryUpstream, querySlices, queryInvariant, queryField, queryPath, } from "../query/verbs.js";
@@ -75,6 +82,13 @@ export const SERVER_VERSION = GENERATOR_VERSION;
75
82
  function packagedSkillDir() {
76
83
  return join(dirname(fileURLToPath(import.meta.url)), "..", "..", ".claude", "skills", "event-modeling-implement");
77
84
  }
85
+ /** The `.claude/skills/` root itself (not one specific skill directory inside it) — same
86
+ * resolution as src/cli.ts's own packagedSkillsRoot(), computed independently here for the
87
+ * same reason packagedSkillDir() above is: `upgrade`'s `skill-bundle` step needs the whole
88
+ * bundle root, not just `event-modeling-implement/`. */
89
+ function packagedSkillsRoot() {
90
+ return join(dirname(fileURLToPath(import.meta.url)), "..", "..", ".claude", "skills");
91
+ }
78
92
  function textResult(text) {
79
93
  return { content: [{ type: "text", text }] };
80
94
  }
@@ -134,6 +148,7 @@ function compileWithValidation(file) {
134
148
  ...validateNoteBindings(model, refs, baseDir),
135
149
  ...validateDocModelConsistency(model, refs, baseDir),
136
150
  ...validateOrphanedSliceDocs(model, refs, baseDir),
151
+ ...validateModelVersionStale(model, refs, baseDir, compiled.source),
137
152
  ];
138
153
  return { ...compiled, allDiagnostics };
139
154
  }
@@ -173,7 +188,7 @@ const fileParam = z.string().describe("path to the .em model file, resolved rela
173
188
  const sliceKeyParam = z
174
189
  .string()
175
190
  .describe('the slice\'s export key (its stable JSON identity, e.g. "place-order" — see `em export`\'s slice.key)');
176
- /** Registers all fifteen MCP tools on a fresh McpServer instance and returns it, unconnected — the
191
+ /** Registers all eighteen MCP tools on a fresh McpServer instance and returns it, unconnected — the
177
192
  * caller (src/mcp/main.ts's stdio entry, or a test harness using an in-memory transport)
178
193
  * decides how to connect it. Building the server is a pure, side-effect-free function so tests
179
194
  * can exercise it directly with the SDK's in-memory transport, no child process required. */
@@ -286,7 +301,7 @@ export function createServer() {
286
301
  title: "Check invariant-to-test citation coverage",
287
302
  description: "Return the same JSON document `em coverage <file> --tests <dir> --json` prints: for " +
288
303
  "every slice whose joined doc status is implemented (or, with includeReady, also " +
289
- "ready-to-implement), each INV-* invariant ID found in the doc body, whether a test " +
304
+ "ready-to-implement), or with `slice`, only that one slice whatever its status, each INV-* invariant ID found in the doc body, whether a test " +
290
305
  "file under `testsDir` cites it (word-boundary match on the exact ID), and every " +
291
306
  "citing file:line. Mechanizes reference/implement.md's definition-of-done citation " +
292
307
  "check — confirms an ID is cited, not that the citing test is good or passing (that " +
@@ -300,8 +315,14 @@ export function createServer() {
300
315
  .boolean()
301
316
  .optional()
302
317
  .describe("also count ready-to-implement docs, not just implemented (MIL-207, forward-looking report)"),
318
+ slice: z
319
+ .string()
320
+ .optional()
321
+ .describe("only this slice (export key), whether ready-to-implement or implemented — the pre-merge " +
322
+ "check for a slice under build (MIL-255); includeReady is not needed with it. An unknown " +
323
+ "key is a tool error; a continuation key resolves to its originating slice"),
303
324
  },
304
- }, async ({ file, testsDir, includeReady }) => {
325
+ }, async ({ file, testsDir, includeReady, slice }) => {
305
326
  const compiled = compileFile(file);
306
327
  if ("error" in compiled)
307
328
  return errorResult(compiled.error);
@@ -311,7 +332,18 @@ export function createServer() {
311
332
  }
312
333
  const baseDir = dirname(file);
313
334
  const scope = !!includeReady;
314
- const anyInScope = resolveScopedSlices(model, refs, baseDir, scope).some((s) => s.inScope);
335
+ // MIL-255: same --slice resolution as the CLI — unknown key is an error, a continuation
336
+ // key scopes to its originating slice.
337
+ let onlyKey;
338
+ let sliceScope = null;
339
+ if (slice !== undefined) {
340
+ const target = resolveCoverageSliceKey(model, refs, slice);
341
+ if (!target)
342
+ return errorResult(`no slice with export key "${slice}" in this model`);
343
+ onlyKey = target.key;
344
+ sliceScope = { requested: slice, continuationOf: target.continuationOf };
345
+ }
346
+ const anyInScope = resolveScopedSlices(model, refs, baseDir, scope, onlyKey).some((s) => s.inScope);
315
347
  if (!existsSync(testsDir)) {
316
348
  if (anyInScope)
317
349
  return errorResult(`testsDir not found: ${testsDir}`);
@@ -320,8 +352,8 @@ export function createServer() {
320
352
  else if (!statSync(testsDir).isDirectory()) {
321
353
  return errorResult(`testsDir is not a directory: ${testsDir}`);
322
354
  }
323
- const report = buildCoverageReport(model, refs, baseDir, testsDir, scope);
324
- return textResult(buildCoverageJson(file, testsDir, report, scope));
355
+ const report = buildCoverageReport(model, refs, baseDir, testsDir, scope, onlyKey);
356
+ return textResult(buildCoverageJson(file, testsDir, report, scope, sliceScope));
325
357
  });
326
358
  server.registerTool("contract", {
327
359
  title: "Print the implementation contract",
@@ -409,9 +441,51 @@ export function createServer() {
409
441
  const sliceDocFacts = facts.map((f) => ({ key: f.key, status: f.rawStatus, implementedIn: f.implementedIn }));
410
442
  return resolveConformanceEntry(file, repo, sliceDocFacts);
411
443
  });
412
- const report = buildStatusReport(files, sliceFacts, openIssuesCount, invariants, conformance, statusDiagnostics);
444
+ // MIL-218: one model-version entry per input file — same computation cli.ts's `status`
445
+ // action makes, for MCP parity.
446
+ const modelVersion = compiledFiles.map(({ file, compiled }) => resolveModelVersionStatusEntry(file, compiled.model, compiled.refs, compiled.source));
447
+ // MIL-219: same em-version resolution the CLI's `status` action makes, for MCP parity.
448
+ const emVersion = compiledFiles
449
+ .map(({ file }) => resolveEmVersionStatusEntry(file, GENERATOR_VERSION))
450
+ .filter((e) => e !== null);
451
+ const report = buildStatusReport(files, sliceFacts, openIssuesCount, invariants, conformance, statusDiagnostics, modelVersion, emVersion);
413
452
  return textResult(buildStatusJson(report));
414
453
  });
454
+ server.registerTool("upgrade", {
455
+ title: "Dry-run em upgrade: what would bring this repo up to date",
456
+ description: "Return the same JSON document `em upgrade <file> --json` prints (MIL-219, dry-run — " +
457
+ "this tool never writes anything, unlike the CLI's `--apply`): from/to em versions, " +
458
+ "every mechanical step (skill bundle, reaction shape, state-file bullets, generated CI " +
459
+ "blocks, constitution scaffold) with whether it's applicable and why, and the human " +
460
+ "list of things no command can safely decide by itself. REQUIRES `file`'s directory to " +
461
+ "be inside a git repository. Unlike most tools here, this one does NOT refuse when the " +
462
+ "model has validation errors — the old pre-1.7.1 reaction shape `reaction-shape` " +
463
+ "migrates is itself such an error, so refusing would make it (and the `predates-1.6` " +
464
+ "human item) unreachable for exactly the repos that need them. Only a parse error " +
465
+ "(can't compile at all) is a tool error.",
466
+ inputSchema: {
467
+ file: z.string().describe("input .em model file"),
468
+ },
469
+ }, async ({ file }) => {
470
+ const compiled = compileFile(file);
471
+ if ("error" in compiled)
472
+ return errorResult(compiled.error);
473
+ const { model, refs } = compiled;
474
+ const repoRootResult = resolveRepoRoot(dirname(file));
475
+ if (!repoRootResult.ok)
476
+ return errorResult(repoRootResult.message);
477
+ const ctx = {
478
+ modelFile: file,
479
+ baseDir: dirname(file),
480
+ repoRoot: repoRootResult.repoRoot,
481
+ installedVersion: GENERATOR_VERSION,
482
+ packagedSkillsRoot: packagedSkillsRoot(),
483
+ model,
484
+ refs,
485
+ };
486
+ const report = detectUpgrade(ctx);
487
+ return textResult(buildUpgradeJson(file, report));
488
+ });
415
489
  server.registerTool("diff", {
416
490
  title: "Compare two models structurally",
417
491
  description: "Return the same JSON document `em diff <old> <new> --json` (or `em diff <file> --from " +
@@ -611,6 +685,60 @@ export function createServer() {
611
685
  const entry = resolveConformanceEntry(file, repo, facts);
612
686
  return textResult(buildFreshnessJson(entry));
613
687
  });
688
+ server.registerTool("model_version_show", {
689
+ title: "Show the model's design/certified version",
690
+ description: "Return the same JSON document `em model version show <file> --json` prints (MIL-218): " +
691
+ "the model's current design version (from model-versions/*.json, or null if it has " +
692
+ "never been bumped via `em model version bump`) and the most recently certified " +
693
+ "version, if any (`{ version, at, on }`, written by a full, non---partial `em state " +
694
+ "set-conformance`). Reads only the manifest files beside the model — never compiles it, " +
695
+ "so this works even on a model with errors.",
696
+ inputSchema: { file: fileParam },
697
+ }, async ({ file }) => {
698
+ const baseDir = dirname(file);
699
+ const design = latestModelVersionNumber(baseDir);
700
+ const certifiedFound = findCertifiedVersion(baseDir);
701
+ const certified = certifiedFound
702
+ ? { version: certifiedFound.version, at: certifiedFound.certified.at, on: certifiedFound.certified.on }
703
+ : null;
704
+ return textResult(JSON.stringify({ file, design, certified }, null, 2));
705
+ });
706
+ server.registerTool("metrics", {
707
+ title: "The pilot metrics from git history",
708
+ description: "Return the same JSON document `em metrics <file> --from <rev> [--to <rev>] --json` " +
709
+ "prints (MIL-170): ratification turnaround (reviewed -> ratified -> implemented), " +
710
+ "conform-cycle cadence + finding counts, and status-vs-reality disagreement over time — " +
711
+ "computed from git history over `from..to` (`to` defaults to `HEAD`). A fourth metric " +
712
+ "(readiness-gate effect) is not computable from history; the document always carries " +
713
+ "`readinessGateEffect: null`. `file` is an anchor .em model, used only to locate " +
714
+ "slices/, conformance/, and .event-modeling.md relative to it — never parsed or " +
715
+ "compiled. Refuses (tool error) when `file` isn't inside a git repository, or `from`/" +
716
+ "`to` doesn't resolve to a commit.",
717
+ inputSchema: {
718
+ file: z.string().describe("anchor .em model file"),
719
+ from: z.string().describe("baseline revision"),
720
+ to: z.string().optional().describe("compare revision (default: HEAD)"),
721
+ },
722
+ }, async ({ file, from, to }) => {
723
+ const computed = computeMetrics(file, from, to ?? "HEAD");
724
+ if (!computed.ok)
725
+ return errorResult(computed.message);
726
+ return textResult(buildMetricsJson(computed.result));
727
+ });
728
+ server.registerTool("conform_findings_check", {
729
+ title: "Shape-validate a conformance findings record",
730
+ description: "Return the same JSON document `em conform-findings check <path> --json` prints " +
731
+ "(MIL-214): whether a conformance/<date>-findings.json file is shape-valid " +
732
+ "(findingsSchemaVersion, required fields, enum values, ids sorted+unique, a ruled " +
733
+ "finding carries resolvedBy+resolvedOn), and the finding count when it is. The conform " +
734
+ "skill writes this file directly alongside its report; this is how a headless run " +
735
+ "verifies what it just wrote.",
736
+ inputSchema: {
737
+ path: z.string().describe("path to a conformance/<date>-findings.json file"),
738
+ },
739
+ }, async ({ path }) => {
740
+ return textResult(buildCheckFindingsJson(checkFindingsFile(path)));
741
+ });
614
742
  server.registerTool("query", {
615
743
  title: "Deterministic graph queries over the compiled model",
616
744
  description: "Return the same JSON document `em query <verb> <files...> --json` prints (MIL-168): " +