@memoarchitect/tools 0.6.7 → 0.7.2

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 (466) hide show
  1. package/README.md +36 -11
  2. package/package.json +19 -7
  3. package/packages/tools/lib/bin/memo.js +161 -10
  4. package/packages/tools/lib/bin/memo.js.map +1 -1
  5. package/packages/tools/lib/browser/index.d.ts +1 -1
  6. package/packages/tools/lib/browser/index.d.ts.map +1 -1
  7. package/packages/tools/lib/browser/index.js +1 -1
  8. package/packages/tools/lib/browser/index.js.map +1 -1
  9. package/packages/tools/lib/commands/ask.js +1 -1
  10. package/packages/tools/lib/commands/ask.js.map +1 -1
  11. package/packages/tools/lib/commands/check.d.ts.map +1 -1
  12. package/packages/tools/lib/commands/check.js +3 -9
  13. package/packages/tools/lib/commands/check.js.map +1 -1
  14. package/packages/tools/lib/commands/conformance.d.ts +36 -0
  15. package/packages/tools/lib/commands/conformance.d.ts.map +1 -0
  16. package/packages/tools/lib/commands/conformance.js +212 -0
  17. package/packages/tools/lib/commands/conformance.js.map +1 -0
  18. package/packages/tools/lib/commands/convert.d.ts +12 -0
  19. package/packages/tools/lib/commands/convert.d.ts.map +1 -0
  20. package/packages/tools/lib/commands/convert.js +103 -0
  21. package/packages/tools/lib/commands/convert.js.map +1 -0
  22. package/packages/tools/lib/commands/create-package.d.ts +1 -2
  23. package/packages/tools/lib/commands/create-package.d.ts.map +1 -1
  24. package/packages/tools/lib/commands/create-package.js.map +1 -1
  25. package/packages/tools/lib/commands/dev.d.ts +13 -0
  26. package/packages/tools/lib/commands/dev.d.ts.map +1 -1
  27. package/packages/tools/lib/commands/dev.js +208 -74
  28. package/packages/tools/lib/commands/dev.js.map +1 -1
  29. package/packages/tools/lib/commands/dhf-draft.js +1 -1
  30. package/packages/tools/lib/commands/dhf-draft.js.map +1 -1
  31. package/packages/tools/lib/commands/dhf-preview.js +1 -1
  32. package/packages/tools/lib/commands/dhf-preview.js.map +1 -1
  33. package/packages/tools/lib/commands/dhf.js +1 -1
  34. package/packages/tools/lib/commands/dhf.js.map +1 -1
  35. package/packages/tools/lib/commands/element.d.ts +34 -0
  36. package/packages/tools/lib/commands/element.d.ts.map +1 -0
  37. package/packages/tools/lib/commands/element.js +174 -0
  38. package/packages/tools/lib/commands/element.js.map +1 -0
  39. package/packages/tools/lib/commands/export.d.ts.map +1 -1
  40. package/packages/tools/lib/commands/export.js +39 -40
  41. package/packages/tools/lib/commands/export.js.map +1 -1
  42. package/packages/tools/lib/commands/generate.d.ts.map +1 -1
  43. package/packages/tools/lib/commands/generate.js +10 -7
  44. package/packages/tools/lib/commands/generate.js.map +1 -1
  45. package/packages/tools/lib/commands/import.d.ts.map +1 -1
  46. package/packages/tools/lib/commands/import.js +25 -12
  47. package/packages/tools/lib/commands/import.js.map +1 -1
  48. package/packages/tools/lib/commands/init.d.ts.map +1 -1
  49. package/packages/tools/lib/commands/init.js +34 -14
  50. package/packages/tools/lib/commands/init.js.map +1 -1
  51. package/packages/tools/lib/commands/inspect.d.ts +5 -0
  52. package/packages/tools/lib/commands/inspect.d.ts.map +1 -0
  53. package/packages/tools/lib/commands/inspect.js +56 -0
  54. package/packages/tools/lib/commands/inspect.js.map +1 -0
  55. package/packages/tools/lib/commands/lock.d.ts.map +1 -1
  56. package/packages/tools/lib/commands/lock.js +7 -2
  57. package/packages/tools/lib/commands/lock.js.map +1 -1
  58. package/packages/tools/lib/commands/ontology.d.ts.map +1 -1
  59. package/packages/tools/lib/commands/ontology.js +69 -116
  60. package/packages/tools/lib/commands/ontology.js.map +1 -1
  61. package/packages/tools/lib/commands/pack.d.ts +1 -1
  62. package/packages/tools/lib/commands/pack.d.ts.map +1 -1
  63. package/packages/tools/lib/commands/pack.js +20 -78
  64. package/packages/tools/lib/commands/pack.js.map +1 -1
  65. package/packages/tools/lib/commands/package.d.ts +10 -0
  66. package/packages/tools/lib/commands/package.d.ts.map +1 -0
  67. package/packages/tools/lib/commands/package.js +113 -0
  68. package/packages/tools/lib/commands/package.js.map +1 -0
  69. package/packages/tools/lib/commands/plugin.js +1 -1
  70. package/packages/tools/lib/commands/plugin.js.map +1 -1
  71. package/packages/tools/lib/commands/rules.d.ts.map +1 -1
  72. package/packages/tools/lib/commands/rules.js +120 -30
  73. package/packages/tools/lib/commands/rules.js.map +1 -1
  74. package/packages/tools/lib/commands/sysand-publish.d.ts.map +1 -1
  75. package/packages/tools/lib/commands/sysand-publish.js +14 -16
  76. package/packages/tools/lib/commands/sysand-publish.js.map +1 -1
  77. package/packages/tools/lib/commands/toolchain.d.ts +8 -0
  78. package/packages/tools/lib/commands/toolchain.d.ts.map +1 -0
  79. package/packages/tools/lib/commands/toolchain.js +64 -0
  80. package/packages/tools/lib/commands/toolchain.js.map +1 -0
  81. package/packages/tools/lib/commands/validate.d.ts +1 -1
  82. package/packages/tools/lib/commands/validate.d.ts.map +1 -1
  83. package/packages/tools/lib/commands/validate.js +183 -56
  84. package/packages/tools/lib/commands/validate.js.map +1 -1
  85. package/packages/tools/lib/completeness/tracker.d.ts +10 -2
  86. package/packages/tools/lib/completeness/tracker.d.ts.map +1 -1
  87. package/packages/tools/lib/completeness/tracker.js +16 -21
  88. package/packages/tools/lib/completeness/tracker.js.map +1 -1
  89. package/packages/tools/lib/conformance/baseline.d.ts +26 -0
  90. package/packages/tools/lib/conformance/baseline.d.ts.map +1 -0
  91. package/packages/tools/lib/conformance/baseline.js +170 -0
  92. package/packages/tools/lib/conformance/baseline.js.map +1 -0
  93. package/packages/tools/lib/conformance/bnf.d.ts +84 -0
  94. package/packages/tools/lib/conformance/bnf.d.ts.map +1 -0
  95. package/packages/tools/lib/conformance/bnf.js +166 -0
  96. package/packages/tools/lib/conformance/bnf.js.map +1 -0
  97. package/packages/tools/lib/conformance/corpus.d.ts +125 -0
  98. package/packages/tools/lib/conformance/corpus.d.ts.map +1 -0
  99. package/packages/tools/lib/conformance/corpus.js +190 -0
  100. package/packages/tools/lib/conformance/corpus.js.map +1 -0
  101. package/packages/tools/lib/conformance/diff-xmi.d.ts +118 -0
  102. package/packages/tools/lib/conformance/diff-xmi.d.ts.map +1 -0
  103. package/packages/tools/lib/conformance/diff-xmi.js +276 -0
  104. package/packages/tools/lib/conformance/diff-xmi.js.map +1 -0
  105. package/packages/tools/lib/conformance/generated/syside-rules.d.ts +10 -0
  106. package/packages/tools/lib/conformance/generated/syside-rules.d.ts.map +1 -0
  107. package/packages/tools/lib/conformance/generated/syside-rules.js +1142 -0
  108. package/packages/tools/lib/conformance/generated/syside-rules.js.map +1 -0
  109. package/packages/tools/lib/conformance/index.d.ts +7 -0
  110. package/packages/tools/lib/conformance/index.d.ts.map +1 -0
  111. package/packages/tools/lib/conformance/index.js +19 -0
  112. package/packages/tools/lib/conformance/index.js.map +1 -0
  113. package/packages/tools/lib/conformance/run.d.ts +117 -0
  114. package/packages/tools/lib/conformance/run.d.ts.map +1 -0
  115. package/packages/tools/lib/conformance/run.js +0 -0
  116. package/packages/tools/lib/conformance/run.js.map +1 -0
  117. package/packages/tools/lib/conformance/xmi.d.ts +45 -0
  118. package/packages/tools/lib/conformance/xmi.d.ts.map +1 -0
  119. package/packages/tools/lib/conformance/xmi.js +148 -0
  120. package/packages/tools/lib/conformance/xmi.js.map +1 -0
  121. package/packages/tools/lib/dhf/template-resolver.js +1 -1
  122. package/packages/tools/lib/dhf/template-resolver.js.map +1 -1
  123. package/packages/tools/lib/import/column-mapper.d.ts +2 -2
  124. package/packages/tools/lib/import/column-mapper.d.ts.map +1 -1
  125. package/packages/tools/lib/import/column-mapper.js +3 -3
  126. package/packages/tools/lib/import/column-mapper.js.map +1 -1
  127. package/packages/tools/lib/index.d.ts +20 -3
  128. package/packages/tools/lib/index.d.ts.map +1 -1
  129. package/packages/tools/lib/index.js +19 -2
  130. package/packages/tools/lib/index.js.map +1 -1
  131. package/packages/tools/lib/language/generated/ast.d.ts +196 -51
  132. package/packages/tools/lib/language/generated/ast.d.ts.map +1 -1
  133. package/packages/tools/lib/language/generated/ast.js +136 -15
  134. package/packages/tools/lib/language/generated/ast.js.map +1 -1
  135. package/packages/tools/lib/language/generated/grammar.d.ts.map +1 -1
  136. package/packages/tools/lib/language/generated/grammar.js +867 -295
  137. package/packages/tools/lib/language/generated/grammar.js.map +1 -1
  138. package/packages/tools/lib/llm/chat-engine.d.ts +4 -3
  139. package/packages/tools/lib/llm/chat-engine.d.ts.map +1 -1
  140. package/packages/tools/lib/llm/chat-engine.js +15 -12
  141. package/packages/tools/lib/llm/chat-engine.js.map +1 -1
  142. package/packages/tools/lib/llm/generate-engine.d.ts +7 -2
  143. package/packages/tools/lib/llm/generate-engine.d.ts.map +1 -1
  144. package/packages/tools/lib/llm/generate-engine.js +22 -4
  145. package/packages/tools/lib/llm/generate-engine.js.map +1 -1
  146. package/packages/tools/lib/llm/index.d.ts +1 -0
  147. package/packages/tools/lib/llm/index.d.ts.map +1 -1
  148. package/packages/tools/lib/llm/index.js +1 -0
  149. package/packages/tools/lib/llm/index.js.map +1 -1
  150. package/packages/tools/lib/llm/model-context.d.ts +2 -2
  151. package/packages/tools/lib/llm/model-context.d.ts.map +1 -1
  152. package/packages/tools/lib/llm/model-context.js +7 -13
  153. package/packages/tools/lib/llm/model-context.js.map +1 -1
  154. package/packages/tools/lib/llm/sysml-guidance.d.ts +8 -0
  155. package/packages/tools/lib/llm/sysml-guidance.d.ts.map +1 -0
  156. package/packages/tools/lib/llm/sysml-guidance.js +28 -0
  157. package/packages/tools/lib/llm/sysml-guidance.js.map +1 -0
  158. package/packages/tools/lib/lock.d.ts +14 -8
  159. package/packages/tools/lib/lock.d.ts.map +1 -1
  160. package/packages/tools/lib/lock.js +97 -108
  161. package/packages/tools/lib/lock.js.map +1 -1
  162. package/packages/tools/lib/mcp/model-loader.d.ts +3 -0
  163. package/packages/tools/lib/mcp/model-loader.d.ts.map +1 -1
  164. package/packages/tools/lib/mcp/model-loader.js +9 -5
  165. package/packages/tools/lib/mcp/model-loader.js.map +1 -1
  166. package/packages/tools/lib/mcp/tools.d.ts +3 -0
  167. package/packages/tools/lib/mcp/tools.d.ts.map +1 -1
  168. package/packages/tools/lib/mcp/tools.js +8 -9
  169. package/packages/tools/lib/mcp/tools.js.map +1 -1
  170. package/packages/tools/lib/model/activity-notation.d.ts +54 -0
  171. package/packages/tools/lib/model/activity-notation.d.ts.map +1 -0
  172. package/packages/tools/lib/model/activity-notation.js +208 -0
  173. package/packages/tools/lib/model/activity-notation.js.map +1 -0
  174. package/packages/tools/lib/model/builder.d.ts +3 -0
  175. package/packages/tools/lib/model/builder.d.ts.map +1 -1
  176. package/packages/tools/lib/model/builder.js +231 -19
  177. package/packages/tools/lib/model/builder.js.map +1 -1
  178. package/packages/tools/lib/model/config-loader.d.ts +19 -25
  179. package/packages/tools/lib/model/config-loader.d.ts.map +1 -1
  180. package/packages/tools/lib/model/config-loader.js +51 -233
  181. package/packages/tools/lib/model/config-loader.js.map +1 -1
  182. package/packages/tools/lib/model/config.d.ts +42 -213
  183. package/packages/tools/lib/model/config.d.ts.map +1 -1
  184. package/packages/tools/lib/model/config.js +11 -9
  185. package/packages/tools/lib/model/config.js.map +1 -1
  186. package/packages/tools/lib/model/effective-scope.d.ts +74 -0
  187. package/packages/tools/lib/model/effective-scope.d.ts.map +1 -0
  188. package/packages/tools/lib/model/effective-scope.js +133 -0
  189. package/packages/tools/lib/model/effective-scope.js.map +1 -0
  190. package/packages/tools/lib/model/ir-identity.d.ts +94 -0
  191. package/packages/tools/lib/model/ir-identity.d.ts.map +1 -0
  192. package/packages/tools/lib/model/ir-identity.js +178 -0
  193. package/packages/tools/lib/model/ir-identity.js.map +1 -0
  194. package/packages/tools/lib/model/kind-registry.d.ts +114 -1
  195. package/packages/tools/lib/model/kind-registry.d.ts.map +1 -1
  196. package/packages/tools/lib/model/kind-registry.js +148 -4
  197. package/packages/tools/lib/model/kind-registry.js.map +1 -1
  198. package/packages/tools/lib/model/layer-resolver.js +1 -1
  199. package/packages/tools/lib/model/layer-resolver.js.map +1 -1
  200. package/packages/tools/lib/model/methodology-loader.d.ts +19 -24
  201. package/packages/tools/lib/model/methodology-loader.d.ts.map +1 -1
  202. package/packages/tools/lib/model/methodology-loader.js +179 -176
  203. package/packages/tools/lib/model/methodology-loader.js.map +1 -1
  204. package/packages/tools/lib/model/methodology-resolver.d.ts +115 -0
  205. package/packages/tools/lib/model/methodology-resolver.d.ts.map +1 -0
  206. package/packages/tools/lib/model/methodology-resolver.js +317 -0
  207. package/packages/tools/lib/model/methodology-resolver.js.map +1 -0
  208. package/packages/tools/lib/model/native-project.d.ts +130 -0
  209. package/packages/tools/lib/model/native-project.d.ts.map +1 -0
  210. package/packages/tools/lib/model/native-project.js +570 -0
  211. package/packages/tools/lib/model/native-project.js.map +1 -0
  212. package/packages/tools/lib/model/ontology-loader.d.ts +34 -21
  213. package/packages/tools/lib/model/ontology-loader.d.ts.map +1 -1
  214. package/packages/tools/lib/model/ontology-loader.js +340 -614
  215. package/packages/tools/lib/model/ontology-loader.js.map +1 -1
  216. package/packages/tools/lib/model/package-manifest.d.ts +37 -0
  217. package/packages/tools/lib/model/package-manifest.d.ts.map +1 -0
  218. package/packages/tools/lib/model/package-manifest.js +96 -0
  219. package/packages/tools/lib/model/package-manifest.js.map +1 -0
  220. package/packages/tools/lib/model/parser-utils.d.ts +31 -0
  221. package/packages/tools/lib/model/parser-utils.d.ts.map +1 -1
  222. package/packages/tools/lib/model/parser-utils.js +89 -1
  223. package/packages/tools/lib/model/parser-utils.js.map +1 -1
  224. package/packages/tools/lib/model/paths.d.ts +10 -4
  225. package/packages/tools/lib/model/paths.d.ts.map +1 -1
  226. package/packages/tools/lib/model/paths.js +10 -4
  227. package/packages/tools/lib/model/paths.js.map +1 -1
  228. package/packages/tools/lib/model/project-conversion.d.ts +226 -0
  229. package/packages/tools/lib/model/project-conversion.d.ts.map +1 -0
  230. package/packages/tools/lib/model/project-conversion.js +946 -0
  231. package/packages/tools/lib/model/project-conversion.js.map +1 -0
  232. package/packages/tools/lib/model/relationship-legality.d.ts +10 -0
  233. package/packages/tools/lib/model/relationship-legality.d.ts.map +1 -1
  234. package/packages/tools/lib/model/relationship-legality.js.map +1 -1
  235. package/packages/tools/lib/model/relationship-registry.d.ts +16 -1
  236. package/packages/tools/lib/model/relationship-registry.d.ts.map +1 -1
  237. package/packages/tools/lib/model/relationship-registry.js.map +1 -1
  238. package/packages/tools/lib/model/semantic.d.ts +27 -0
  239. package/packages/tools/lib/model/semantic.d.ts.map +1 -1
  240. package/packages/tools/lib/model/semantic.js +3 -0
  241. package/packages/tools/lib/model/semantic.js.map +1 -1
  242. package/packages/tools/lib/model/settings-boundary.d.ts +19 -0
  243. package/packages/tools/lib/model/settings-boundary.d.ts.map +1 -0
  244. package/packages/tools/lib/model/settings-boundary.js +118 -0
  245. package/packages/tools/lib/model/settings-boundary.js.map +1 -0
  246. package/packages/tools/lib/model/short-id.d.ts.map +1 -1
  247. package/packages/tools/lib/model/short-id.js +2 -0
  248. package/packages/tools/lib/model/short-id.js.map +1 -1
  249. package/packages/tools/lib/model/source-graph.d.ts.map +1 -1
  250. package/packages/tools/lib/model/source-graph.js +5 -1
  251. package/packages/tools/lib/model/source-graph.js.map +1 -1
  252. package/packages/tools/lib/model/source-provenance.d.ts +112 -0
  253. package/packages/tools/lib/model/source-provenance.d.ts.map +1 -0
  254. package/packages/tools/lib/model/source-provenance.js +169 -0
  255. package/packages/tools/lib/model/source-provenance.js.map +1 -0
  256. package/packages/tools/lib/model/sysml-ir.d.ts +9 -0
  257. package/packages/tools/lib/model/sysml-ir.d.ts.map +1 -0
  258. package/packages/tools/lib/model/sysml-ir.js +105 -0
  259. package/packages/tools/lib/model/sysml-ir.js.map +1 -0
  260. package/packages/tools/lib/model/view-deriver.d.ts.map +1 -1
  261. package/packages/tools/lib/model/view-deriver.js +36 -6
  262. package/packages/tools/lib/model/view-deriver.js.map +1 -1
  263. package/packages/tools/lib/model/view-kinds.d.ts +2 -0
  264. package/packages/tools/lib/model/view-kinds.d.ts.map +1 -1
  265. package/packages/tools/lib/model/view-kinds.js +11 -0
  266. package/packages/tools/lib/model/view-kinds.js.map +1 -1
  267. package/packages/tools/lib/ontology/owl-exporter.d.ts +2 -2
  268. package/packages/tools/lib/ontology/owl-exporter.d.ts.map +1 -1
  269. package/packages/tools/lib/ontology/owl-exporter.js +12 -12
  270. package/packages/tools/lib/ontology/owl-exporter.js.map +1 -1
  271. package/packages/tools/lib/operations/ai-authoring.d.ts +24 -0
  272. package/packages/tools/lib/operations/ai-authoring.d.ts.map +1 -0
  273. package/packages/tools/lib/operations/ai-authoring.js +77 -0
  274. package/packages/tools/lib/operations/ai-authoring.js.map +1 -0
  275. package/packages/tools/lib/operations/authoring.d.ts +40 -0
  276. package/packages/tools/lib/operations/authoring.d.ts.map +1 -0
  277. package/packages/tools/lib/operations/authoring.js +56 -0
  278. package/packages/tools/lib/operations/authoring.js.map +1 -0
  279. package/packages/tools/lib/operations/index.d.ts +2 -0
  280. package/packages/tools/lib/operations/index.d.ts.map +1 -1
  281. package/packages/tools/lib/operations/index.js +2 -0
  282. package/packages/tools/lib/operations/index.js.map +1 -1
  283. package/packages/tools/lib/operations/project-snapshot.d.ts +28 -3
  284. package/packages/tools/lib/operations/project-snapshot.d.ts.map +1 -1
  285. package/packages/tools/lib/operations/project-snapshot.js +79 -30
  286. package/packages/tools/lib/operations/project-snapshot.js.map +1 -1
  287. package/packages/tools/lib/protocol/messages.d.ts +298 -11
  288. package/packages/tools/lib/protocol/messages.d.ts.map +1 -1
  289. package/packages/tools/lib/serializer/csv-io.d.ts +7 -7
  290. package/packages/tools/lib/serializer/csv-io.d.ts.map +1 -1
  291. package/packages/tools/lib/serializer/csv-io.js +11 -11
  292. package/packages/tools/lib/serializer/csv-io.js.map +1 -1
  293. package/packages/tools/lib/serializer/sysml-generator.d.ts.map +1 -1
  294. package/packages/tools/lib/serializer/sysml-generator.js +34 -2
  295. package/packages/tools/lib/serializer/sysml-generator.js.map +1 -1
  296. package/packages/tools/lib/server/config-resolver.d.ts +8 -4
  297. package/packages/tools/lib/server/config-resolver.d.ts.map +1 -1
  298. package/packages/tools/lib/server/config-resolver.js +25 -44
  299. package/packages/tools/lib/server/config-resolver.js.map +1 -1
  300. package/packages/tools/lib/server/conflict-policy.d.ts +44 -0
  301. package/packages/tools/lib/server/conflict-policy.d.ts.map +1 -0
  302. package/packages/tools/lib/server/conflict-policy.js +94 -0
  303. package/packages/tools/lib/server/conflict-policy.js.map +1 -0
  304. package/packages/tools/lib/server/dev-server.d.ts +32 -2
  305. package/packages/tools/lib/server/dev-server.d.ts.map +1 -1
  306. package/packages/tools/lib/server/dev-server.js +721 -53
  307. package/packages/tools/lib/server/dev-server.js.map +1 -1
  308. package/packages/tools/lib/server/element-writer.d.ts +11 -0
  309. package/packages/tools/lib/server/element-writer.d.ts.map +1 -0
  310. package/packages/tools/lib/server/element-writer.js +123 -0
  311. package/packages/tools/lib/server/element-writer.js.map +1 -0
  312. package/packages/tools/lib/server/file-watcher.d.ts +4 -1
  313. package/packages/tools/lib/server/file-watcher.d.ts.map +1 -1
  314. package/packages/tools/lib/server/file-watcher.js +17 -7
  315. package/packages/tools/lib/server/file-watcher.js.map +1 -1
  316. package/packages/tools/lib/server/mutation-domain.d.ts +22 -0
  317. package/packages/tools/lib/server/mutation-domain.d.ts.map +1 -0
  318. package/packages/tools/lib/server/mutation-domain.js +87 -0
  319. package/packages/tools/lib/server/mutation-domain.js.map +1 -0
  320. package/packages/tools/lib/server/persistor.d.ts +63 -8
  321. package/packages/tools/lib/server/persistor.d.ts.map +1 -1
  322. package/packages/tools/lib/server/persistor.js +152 -44
  323. package/packages/tools/lib/server/persistor.js.map +1 -1
  324. package/packages/tools/lib/server/relationship-writer.d.ts +28 -4
  325. package/packages/tools/lib/server/relationship-writer.d.ts.map +1 -1
  326. package/packages/tools/lib/server/relationship-writer.js +98 -13
  327. package/packages/tools/lib/server/relationship-writer.js.map +1 -1
  328. package/packages/tools/lib/server/rule-policy-writer.d.ts +40 -0
  329. package/packages/tools/lib/server/rule-policy-writer.d.ts.map +1 -0
  330. package/packages/tools/lib/server/rule-policy-writer.js +124 -0
  331. package/packages/tools/lib/server/rule-policy-writer.js.map +1 -0
  332. package/packages/tools/lib/server/runtime-budget.d.ts +14 -0
  333. package/packages/tools/lib/server/runtime-budget.d.ts.map +1 -0
  334. package/packages/tools/lib/server/runtime-budget.js +15 -0
  335. package/packages/tools/lib/server/runtime-budget.js.map +1 -0
  336. package/packages/tools/lib/server/sysml-notation.d.ts +36 -0
  337. package/packages/tools/lib/server/sysml-notation.d.ts.map +1 -0
  338. package/packages/tools/lib/server/sysml-notation.js +87 -0
  339. package/packages/tools/lib/server/sysml-notation.js.map +1 -0
  340. package/packages/tools/lib/sysml-ir/generated/sysml-derivations.d.ts +9 -0
  341. package/packages/tools/lib/sysml-ir/generated/sysml-derivations.d.ts.map +1 -0
  342. package/packages/tools/lib/sysml-ir/generated/sysml-derivations.js +315 -0
  343. package/packages/tools/lib/sysml-ir/generated/sysml-derivations.js.map +1 -0
  344. package/packages/tools/lib/sysml-ir/generated/sysml-metamodel.d.ts +5206 -0
  345. package/packages/tools/lib/sysml-ir/generated/sysml-metamodel.d.ts.map +1 -0
  346. package/packages/tools/lib/sysml-ir/generated/sysml-metamodel.js +1933 -0
  347. package/packages/tools/lib/sysml-ir/generated/sysml-metamodel.js.map +1 -0
  348. package/packages/tools/lib/sysml-ir/index.d.ts +3 -0
  349. package/packages/tools/lib/sysml-ir/index.d.ts.map +1 -0
  350. package/packages/tools/lib/sysml-ir/index.js +3 -0
  351. package/packages/tools/lib/sysml-ir/index.js.map +1 -0
  352. package/packages/tools/lib/sysml-ir/ir.d.ts +50 -0
  353. package/packages/tools/lib/sysml-ir/ir.d.ts.map +1 -0
  354. package/packages/tools/lib/sysml-ir/ir.js +2 -0
  355. package/packages/tools/lib/sysml-ir/ir.js.map +1 -0
  356. package/packages/tools/lib/sysmlc/bin/memo-sysmlc.d.ts +3 -0
  357. package/packages/tools/lib/sysmlc/bin/memo-sysmlc.d.ts.map +1 -0
  358. package/packages/tools/lib/sysmlc/bin/memo-sysmlc.js +97 -0
  359. package/packages/tools/lib/sysmlc/bin/memo-sysmlc.js.map +1 -0
  360. package/packages/tools/lib/sysmlc/index.d.ts +2 -0
  361. package/packages/tools/lib/sysmlc/index.d.ts.map +1 -0
  362. package/packages/tools/lib/sysmlc/index.js +7 -0
  363. package/packages/tools/lib/sysmlc/index.js.map +1 -0
  364. package/packages/tools/lib/sysmlc/server.d.ts +29 -0
  365. package/packages/tools/lib/sysmlc/server.d.ts.map +1 -0
  366. package/packages/tools/lib/sysmlc/server.js +168 -0
  367. package/packages/tools/lib/sysmlc/server.js.map +1 -0
  368. package/packages/tools/lib/toolchain/default-registry.d.ts +12 -0
  369. package/packages/tools/lib/toolchain/default-registry.d.ts.map +1 -0
  370. package/packages/tools/lib/toolchain/default-registry.js +28 -0
  371. package/packages/tools/lib/toolchain/default-registry.js.map +1 -0
  372. package/packages/tools/lib/toolchain/diagnostic.d.ts +57 -0
  373. package/packages/tools/lib/toolchain/diagnostic.d.ts.map +1 -0
  374. package/packages/tools/lib/toolchain/diagnostic.js +69 -0
  375. package/packages/tools/lib/toolchain/diagnostic.js.map +1 -0
  376. package/packages/tools/lib/toolchain/effective.d.ts +36 -0
  377. package/packages/tools/lib/toolchain/effective.d.ts.map +1 -0
  378. package/packages/tools/lib/toolchain/effective.js +91 -0
  379. package/packages/tools/lib/toolchain/effective.js.map +1 -0
  380. package/packages/tools/lib/toolchain/index.d.ts +11 -0
  381. package/packages/tools/lib/toolchain/index.d.ts.map +1 -0
  382. package/packages/tools/lib/toolchain/index.js +21 -0
  383. package/packages/tools/lib/toolchain/index.js.map +1 -0
  384. package/packages/tools/lib/toolchain/lowering.d.ts +63 -0
  385. package/packages/tools/lib/toolchain/lowering.d.ts.map +1 -0
  386. package/packages/tools/lib/toolchain/lowering.js +100 -0
  387. package/packages/tools/lib/toolchain/lowering.js.map +1 -0
  388. package/packages/tools/lib/toolchain/operations.d.ts +87 -0
  389. package/packages/tools/lib/toolchain/operations.d.ts.map +1 -0
  390. package/packages/tools/lib/toolchain/operations.js +111 -0
  391. package/packages/tools/lib/toolchain/operations.js.map +1 -0
  392. package/packages/tools/lib/toolchain/process.d.ts +45 -0
  393. package/packages/tools/lib/toolchain/process.d.ts.map +1 -0
  394. package/packages/tools/lib/toolchain/process.js +125 -0
  395. package/packages/tools/lib/toolchain/process.js.map +1 -0
  396. package/packages/tools/lib/toolchain/protocol.d.ts +122 -0
  397. package/packages/tools/lib/toolchain/protocol.d.ts.map +1 -0
  398. package/packages/tools/lib/toolchain/protocol.js +74 -0
  399. package/packages/tools/lib/toolchain/protocol.js.map +1 -0
  400. package/packages/tools/lib/toolchain/providers/internal-kpar.d.ts +9 -0
  401. package/packages/tools/lib/toolchain/providers/internal-kpar.d.ts.map +1 -0
  402. package/packages/tools/lib/toolchain/providers/internal-kpar.js +84 -0
  403. package/packages/tools/lib/toolchain/providers/internal-kpar.js.map +1 -0
  404. package/packages/tools/lib/toolchain/providers/internal.d.ts +33 -0
  405. package/packages/tools/lib/toolchain/providers/internal.d.ts.map +1 -0
  406. package/packages/tools/lib/toolchain/providers/internal.js +286 -0
  407. package/packages/tools/lib/toolchain/providers/internal.js.map +1 -0
  408. package/packages/tools/lib/toolchain/providers/sysand.d.ts +12 -0
  409. package/packages/tools/lib/toolchain/providers/sysand.d.ts.map +1 -0
  410. package/packages/tools/lib/toolchain/providers/sysand.js +110 -0
  411. package/packages/tools/lib/toolchain/providers/sysand.js.map +1 -0
  412. package/packages/tools/lib/toolchain/providers/syside.d.ts +24 -0
  413. package/packages/tools/lib/toolchain/providers/syside.d.ts.map +1 -0
  414. package/packages/tools/lib/toolchain/providers/syside.js +208 -0
  415. package/packages/tools/lib/toolchain/providers/syside.js.map +1 -0
  416. package/packages/tools/lib/toolchain/registry.d.ts +192 -0
  417. package/packages/tools/lib/toolchain/registry.d.ts.map +1 -0
  418. package/packages/tools/lib/toolchain/registry.js +130 -0
  419. package/packages/tools/lib/toolchain/registry.js.map +1 -0
  420. package/packages/tools/lib/toolchain/schema.d.ts +30 -0
  421. package/packages/tools/lib/toolchain/schema.d.ts.map +1 -0
  422. package/packages/tools/lib/toolchain/schema.js +112 -0
  423. package/packages/tools/lib/toolchain/schema.js.map +1 -0
  424. package/packages/tools/lib/toolchain/sysmlc-client.d.ts +77 -0
  425. package/packages/tools/lib/toolchain/sysmlc-client.d.ts.map +1 -0
  426. package/packages/tools/lib/toolchain/sysmlc-client.js +0 -0
  427. package/packages/tools/lib/toolchain/sysmlc-client.js.map +1 -0
  428. package/packages/tools/lib/validator/architecture-validator.d.ts +8 -1
  429. package/packages/tools/lib/validator/architecture-validator.d.ts.map +1 -1
  430. package/packages/tools/lib/validator/architecture-validator.js +25 -1
  431. package/packages/tools/lib/validator/architecture-validator.js.map +1 -1
  432. package/packages/tools/lib/validator/builtin-rules.d.ts +16 -0
  433. package/packages/tools/lib/validator/builtin-rules.d.ts.map +1 -0
  434. package/packages/tools/lib/validator/builtin-rules.js +62 -0
  435. package/packages/tools/lib/validator/builtin-rules.js.map +1 -0
  436. package/packages/tools/lib/validator/constraint-eval.d.ts +15 -0
  437. package/packages/tools/lib/validator/constraint-eval.d.ts.map +1 -1
  438. package/packages/tools/lib/validator/constraint-eval.js +62 -7
  439. package/packages/tools/lib/validator/constraint-eval.js.map +1 -1
  440. package/packages/tools/lib/validator/constraint-loader.d.ts +22 -4
  441. package/packages/tools/lib/validator/constraint-loader.d.ts.map +1 -1
  442. package/packages/tools/lib/validator/constraint-loader.js +100 -27
  443. package/packages/tools/lib/validator/constraint-loader.js.map +1 -1
  444. package/packages/tools/lib/validator/rule-engine.d.ts +2 -1
  445. package/packages/tools/lib/validator/rule-engine.d.ts.map +1 -1
  446. package/packages/tools/lib/validator/rule-engine.js +56 -5
  447. package/packages/tools/lib/validator/rule-engine.js.map +1 -1
  448. package/packages/tools/lib/validator/sysml-constraints.d.ts +64 -0
  449. package/packages/tools/lib/validator/sysml-constraints.d.ts.map +1 -0
  450. package/packages/tools/lib/validator/sysml-constraints.js +251 -0
  451. package/packages/tools/lib/validator/sysml-constraints.js.map +1 -0
  452. package/packages/tools/lib/validator/types.d.ts +33 -0
  453. package/packages/tools/lib/validator/types.d.ts.map +1 -1
  454. package/packages/tools/lib/version.d.ts +2 -0
  455. package/packages/tools/lib/version.d.ts.map +1 -0
  456. package/packages/tools/lib/version.js +26 -0
  457. package/packages/tools/lib/version.js.map +1 -0
  458. package/packages/tools/src/grammar/memo-sysml.langium +104 -18
  459. package/packages/tools/lib/model/dimension-filter.d.ts +0 -33
  460. package/packages/tools/lib/model/dimension-filter.d.ts.map +0 -1
  461. package/packages/tools/lib/model/dimension-filter.js +0 -57
  462. package/packages/tools/lib/model/dimension-filter.js.map +0 -1
  463. package/packages/tools/lib/model/toolchain.d.ts +0 -12
  464. package/packages/tools/lib/model/toolchain.d.ts.map +0 -1
  465. package/packages/tools/lib/model/toolchain.js +0 -92
  466. package/packages/tools/lib/model/toolchain.js.map +0 -1
@@ -20,6 +20,17 @@ export const VIEW_KINDS = [
20
20
  'browser',
21
21
  'geometry',
22
22
  ];
23
+ /** Compact identifier prefix used by views of each standard SysML view kind. */
24
+ export const VIEW_KIND_SHORT_ID_PREFIX = {
25
+ general: 'GEN',
26
+ interconnection: 'INT',
27
+ actionflow: 'ACT',
28
+ statetransition: 'STM',
29
+ sequence: 'SEQ',
30
+ grid: 'GRID',
31
+ browser: 'BRW',
32
+ geometry: 'GEO',
33
+ };
23
34
  const VIEW_KIND_SET = new Set(VIEW_KINDS);
24
35
  export function isViewKind(value) {
25
36
  return VIEW_KIND_SET.has(value);
@@ -1 +1 @@
1
- {"version":3,"file":"view-kinds.js","sourceRoot":"","sources":["../../src/model/view-kinds.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAChF,EAAE;AACF,8EAA8E;AAC9E,+EAA+E;AAC/E,yEAAyE;AACzE,yDAAyD;AACzD,EAAE;AACF,8EAA8E;AAC9E,8EAA8E;AAC9E,0BAA0B;AAC1B,gFAAgF;AAEhF,8CAA8C;AAC9C,MAAM,CAAC,MAAM,UAAU,GAAG;IACtB,SAAS;IACT,iBAAiB;IACjB,YAAY;IACZ,iBAAiB;IACjB,UAAU;IACV,MAAM;IACN,SAAS;IACT,UAAU;CACJ,CAAC;AAIX,MAAM,aAAa,GAAwB,IAAI,GAAG,CAAC,UAAU,CAAC,CAAC;AAE/D,MAAM,UAAU,UAAU,CAAC,KAAa;IACpC,OAAO,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AACpC,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAA6B;IAC/D,GAAG,EAAE,SAAS;IACd,GAAG,EAAE,SAAS;IACd,GAAG,EAAE,SAAS;IACd,GAAG,EAAE,SAAS;IACd,OAAO,EAAE,SAAS;IAClB,IAAI,EAAE,SAAS;IACf,cAAc,EAAE,SAAS;IACzB,GAAG,EAAE,iBAAiB;IACtB,GAAG,EAAE,iBAAiB;IACtB,GAAG,EAAE,YAAY;IACjB,GAAG,EAAE,YAAY;IACjB,GAAG,EAAE,YAAY;IACjB,GAAG,EAAE,YAAY;IACjB,GAAG,EAAE,iBAAiB;IACtB,GAAG,EAAE,UAAU;IACf,IAAI,EAAE,MAAM;IACZ,KAAK,EAAE,MAAM;CAChB,CAAC;AAEF;;;;;;;GAOG;AACH,MAAM,UAAU,iBAAiB,CAAC,GAAuB;IACrD,IAAI,CAAC,GAAG;QAAE,OAAO,SAAS,CAAC;IAC3B,MAAM,WAAW,GAAG,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,EAAG,CAAC,IAAI,EAAE,CAAC;IAClD,OAAO,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC;AAC7D,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,eAAe,CAC3B,gBAAoC,EACpC,WAA+B;IAE/B,MAAM,QAAQ,GAAG,iBAAiB,CAAC,gBAAgB,CAAC,CAAC;IACrD,IAAI,QAAQ;QAAE,OAAO,QAAQ,CAAC;IAC9B,IAAI,WAAW;QAAE,OAAO,yBAAyB,CAAC,WAAW,CAAC,IAAI,SAAS,CAAC;IAC5E,OAAO,SAAS,CAAC;AACrB,CAAC"}
1
+ {"version":3,"file":"view-kinds.js","sourceRoot":"","sources":["../../src/model/view-kinds.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAChF,EAAE;AACF,8EAA8E;AAC9E,+EAA+E;AAC/E,yEAAyE;AACzE,yDAAyD;AACzD,EAAE;AACF,8EAA8E;AAC9E,8EAA8E;AAC9E,0BAA0B;AAC1B,gFAAgF;AAEhF,8CAA8C;AAC9C,MAAM,CAAC,MAAM,UAAU,GAAG;IACtB,SAAS;IACT,iBAAiB;IACjB,YAAY;IACZ,iBAAiB;IACjB,UAAU;IACV,MAAM;IACN,SAAS;IACT,UAAU;CACJ,CAAC;AAIX,gFAAgF;AAChF,MAAM,CAAC,MAAM,yBAAyB,GAA6B;IAC/D,OAAO,EAAE,KAAK;IACd,eAAe,EAAE,KAAK;IACtB,UAAU,EAAE,KAAK;IACjB,eAAe,EAAE,KAAK;IACtB,QAAQ,EAAE,KAAK;IACf,IAAI,EAAE,MAAM;IACZ,OAAO,EAAE,KAAK;IACd,QAAQ,EAAE,KAAK;CAClB,CAAC;AAEF,MAAM,aAAa,GAAwB,IAAI,GAAG,CAAC,UAAU,CAAC,CAAC;AAE/D,MAAM,UAAU,UAAU,CAAC,KAAa;IACpC,OAAO,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AACpC,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAA6B;IAC/D,GAAG,EAAE,SAAS;IACd,GAAG,EAAE,SAAS;IACd,GAAG,EAAE,SAAS;IACd,GAAG,EAAE,SAAS;IACd,OAAO,EAAE,SAAS;IAClB,IAAI,EAAE,SAAS;IACf,cAAc,EAAE,SAAS;IACzB,GAAG,EAAE,iBAAiB;IACtB,GAAG,EAAE,iBAAiB;IACtB,GAAG,EAAE,YAAY;IACjB,GAAG,EAAE,YAAY;IACjB,GAAG,EAAE,YAAY;IACjB,GAAG,EAAE,YAAY;IACjB,GAAG,EAAE,iBAAiB;IACtB,GAAG,EAAE,UAAU;IACf,IAAI,EAAE,MAAM;IACZ,KAAK,EAAE,MAAM;CAChB,CAAC;AAEF;;;;;;;GAOG;AACH,MAAM,UAAU,iBAAiB,CAAC,GAAuB;IACrD,IAAI,CAAC,GAAG;QAAE,OAAO,SAAS,CAAC;IAC3B,MAAM,WAAW,GAAG,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,EAAG,CAAC,IAAI,EAAE,CAAC;IAClD,OAAO,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC;AAC7D,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,eAAe,CAC3B,gBAAoC,EACpC,WAA+B;IAE/B,MAAM,QAAQ,GAAG,iBAAiB,CAAC,gBAAgB,CAAC,CAAC;IACrD,IAAI,QAAQ;QAAE,OAAO,QAAQ,CAAC;IAC9B,IAAI,WAAW;QAAE,OAAO,yBAAyB,CAAC,WAAW,CAAC,IAAI,SAAS,CAAC;IAC5E,OAAO,SAAS,CAAC;AACrB,CAAC"}
@@ -38,6 +38,6 @@ export interface OntologyConfig {
38
38
  license?: string;
39
39
  };
40
40
  }
41
- export declare function exportToOwlTurtle(config: OntologyConfig, namespace?: string): string;
42
- export declare function exportToOwlXml(config: OntologyConfig, namespace?: string): string;
41
+ export declare function exportToOwlTurtle(ontology: OntologyConfig, namespace?: string): string;
42
+ export declare function exportToOwlXml(ontology: OntologyConfig, namespace?: string): string;
43
43
  //# sourceMappingURL=owl-exporter.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"owl-exporter.d.ts","sourceRoot":"","sources":["../../src/ontology/owl-exporter.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,cAAc;IAC3B,WAAW,EAAE,MAAM,CAAC;IACpB,kBAAkB,CAAC,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IACpE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE;QAClB,KAAK,EAAE,MAAM,CAAC;QACd,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,cAAc,EAAE,MAAM,CAAC;QACvB,iBAAiB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;KAC9C,CAAC,CAAC;IACH,iBAAiB,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IACnF,YAAY,EAAE;QACV,EAAE,EAAE,MAAM,CAAC;QACX,WAAW,EAAE,MAAM,CAAC;QACpB,MAAM,EAAE,MAAM,CAAC;QACf,IAAI,EAAE;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,YAAY,CAAC,EAAE,MAAM,CAAC;YAAC,GAAG,CAAC,EAAE,MAAM,CAAC;YAAC,GAAG,CAAC,EAAE,MAAM,CAAC;YAAC,SAAS,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC;QAC9F,QAAQ,EAAE,MAAM,CAAC;KACpB,EAAE,CAAC;IACJ,gBAAgB,CAAC,EAAE;QACf,EAAE,EAAE,MAAM,CAAC;QACX,OAAO,EAAE,MAAM,CAAC;QAChB,WAAW,EAAE,MAAM,CAAC;QACpB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,OAAO,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC;CACL;AAED,wBAAgB,iBAAiB,CAC7B,MAAM,EAAE,cAAc,EACtB,SAAS,GAAE,MAAoD,GAChE,MAAM,CAyCR;AAED,wBAAgB,cAAc,CAC1B,MAAM,EAAE,cAAc,EACtB,SAAS,GAAE,MAAoD,GAChE,MAAM,CA6BR"}
1
+ {"version":3,"file":"owl-exporter.d.ts","sourceRoot":"","sources":["../../src/ontology/owl-exporter.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,cAAc;IAC3B,WAAW,EAAE,MAAM,CAAC;IACpB,kBAAkB,CAAC,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IACpE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE;QAClB,KAAK,EAAE,MAAM,CAAC;QACd,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,cAAc,EAAE,MAAM,CAAC;QACvB,iBAAiB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;KAC9C,CAAC,CAAC;IACH,iBAAiB,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IACnF,YAAY,EAAE;QACV,EAAE,EAAE,MAAM,CAAC;QACX,WAAW,EAAE,MAAM,CAAC;QACpB,MAAM,EAAE,MAAM,CAAC;QACf,IAAI,EAAE;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,YAAY,CAAC,EAAE,MAAM,CAAC;YAAC,GAAG,CAAC,EAAE,MAAM,CAAC;YAAC,GAAG,CAAC,EAAE,MAAM,CAAC;YAAC,SAAS,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC;QAC9F,QAAQ,EAAE,MAAM,CAAC;KACpB,EAAE,CAAC;IACJ,gBAAgB,CAAC,EAAE;QACf,EAAE,EAAE,MAAM,CAAC;QACX,OAAO,EAAE,MAAM,CAAC;QAChB,WAAW,EAAE,MAAM,CAAC;QACpB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,OAAO,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC;CACL;AAED,wBAAgB,iBAAiB,CAC7B,QAAQ,EAAE,cAAc,EACxB,SAAS,GAAE,MAAoD,GAChE,MAAM,CAyCR;AAED,wBAAgB,cAAc,CAC1B,QAAQ,EAAE,cAAc,EACxB,SAAS,GAAE,MAAoD,GAChE,MAAM,CA6BR"}
@@ -1,4 +1,4 @@
1
- export function exportToOwlTurtle(config, namespace = 'https://sysand.dev/ontology/memo/medical#') {
1
+ export function exportToOwlTurtle(ontology, namespace = 'https://sysand.dev/ontology/memo/medical#') {
2
2
  const lines = [];
3
3
  const prefix = 'memo';
4
4
  lines.push(`@prefix ${prefix}: <${namespace}> .`);
@@ -7,19 +7,19 @@ export function exportToOwlTurtle(config, namespace = 'https://sysand.dev/ontolo
7
7
  lines.push('@prefix dcterms: <http://purl.org/dc/terms/> .');
8
8
  lines.push('');
9
9
  lines.push(`<${namespace.replace(/#$/, '')}> a owl:Ontology ;`);
10
- if (config.ontologyMetadata) {
11
- lines.push(` dcterms:title "${escape(config.ontologyMetadata.description)}" ;`);
12
- lines.push(` owl:versionInfo "${config.ontologyMetadata.version}" ;`);
13
- if (config.ontologyMetadata.author) {
14
- lines.push(` dcterms:creator "${escape(config.ontologyMetadata.author)}" ;`);
10
+ if (ontology.ontologyMetadata) {
11
+ lines.push(` dcterms:title "${escape(ontology.ontologyMetadata.description)}" ;`);
12
+ lines.push(` owl:versionInfo "${ontology.ontologyMetadata.version}" ;`);
13
+ if (ontology.ontologyMetadata.author) {
14
+ lines.push(` dcterms:creator "${escape(ontology.ontologyMetadata.author)}" ;`);
15
15
  }
16
16
  }
17
17
  else {
18
- lines.push(` dcterms:title "${escape(config.projectName)}" ;`);
18
+ lines.push(` dcterms:title "${escape(ontology.projectName)}" ;`);
19
19
  }
20
20
  lines.push(' .');
21
21
  lines.push('');
22
- for (const [kindName, kindDef] of Object.entries(config.kinds ?? {})) {
22
+ for (const [kindName, kindDef] of Object.entries(ontology.kinds ?? {})) {
23
23
  lines.push(`${prefix}:${kindName} a owl:Class ;`);
24
24
  lines.push(` rdfs:label "${escape(kindDef.label)}" ;`);
25
25
  if (kindDef.layer) {
@@ -28,7 +28,7 @@ export function exportToOwlTurtle(config, namespace = 'https://sysand.dev/ontolo
28
28
  lines.push(` ${prefix}:sysmlConstruct "${kindDef.sysmlConstruct}" .`);
29
29
  lines.push('');
30
30
  }
31
- for (const rel of (config.relationshipTypes ?? [])) {
31
+ for (const rel of (ontology.relationshipTypes ?? [])) {
32
32
  lines.push(`${prefix}:${rel.name} a owl:ObjectProperty ;`);
33
33
  lines.push(` rdfs:label "${escape(rel.label)}" ;`);
34
34
  lines.push(` ${prefix}:layer "${rel.layer}" .`);
@@ -36,7 +36,7 @@ export function exportToOwlTurtle(config, namespace = 'https://sysand.dev/ontolo
36
36
  }
37
37
  return lines.join('\n');
38
38
  }
39
- export function exportToOwlXml(config, namespace = 'https://sysand.dev/ontology/memo/medical#') {
39
+ export function exportToOwlXml(ontology, namespace = 'https://sysand.dev/ontology/memo/medical#') {
40
40
  const lines = [];
41
41
  const ns = namespace.replace(/#$/, '');
42
42
  lines.push('<?xml version="1.0" encoding="UTF-8"?>');
@@ -47,12 +47,12 @@ export function exportToOwlXml(config, namespace = 'https://sysand.dev/ontology/
47
47
  lines.push('');
48
48
  lines.push(` <owl:Ontology rdf:about="${ns}"/>`);
49
49
  lines.push('');
50
- for (const [kindName, kindDef] of Object.entries(config.kinds ?? {})) {
50
+ for (const [kindName, kindDef] of Object.entries(ontology.kinds ?? {})) {
51
51
  lines.push(` <owl:Class rdf:about="${namespace}${kindName}">`);
52
52
  lines.push(` <rdfs:label>${escapeXml(kindDef.label)}</rdfs:label>`);
53
53
  lines.push(' </owl:Class>');
54
54
  }
55
- for (const rel of (config.relationshipTypes ?? [])) {
55
+ for (const rel of (ontology.relationshipTypes ?? [])) {
56
56
  lines.push(` <owl:ObjectProperty rdf:about="${namespace}${rel.name}">`);
57
57
  lines.push(` <rdfs:label>${escapeXml(rel.label)}</rdfs:label>`);
58
58
  lines.push(' </owl:ObjectProperty>');
@@ -1 +1 @@
1
- {"version":3,"file":"owl-exporter.js","sourceRoot":"","sources":["../../src/ontology/owl-exporter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"owl-exporter.js","sourceRoot":"","sources":["../../src/ontology/owl-exporter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,24 @@
1
+ import type { Diagnostic } from '../toolchain/diagnostic.js';
2
+ import { type GenerateResult, type LLMProvider } from '../llm/index.js';
3
+ export declare const MAX_SYSML_GENERATION_ATTEMPTS = 3;
4
+ export interface AiChangeRecord {
5
+ guidanceVersion: string;
6
+ compiler: {
7
+ id: string;
8
+ version?: string;
9
+ };
10
+ libraries: Record<string, string>;
11
+ }
12
+ export interface ValidatedGenerateResult extends GenerateResult {
13
+ initialSysml: string;
14
+ attempts: number;
15
+ diagnostics: Diagnostic[];
16
+ changeRecord: AiChangeRecord;
17
+ }
18
+ export declare function validateGeneratedSysml(projectRoot: string, sysml: string): Promise<Diagnostic[]>;
19
+ export declare function generateValidatedSysml(options: {
20
+ projectRoot: string;
21
+ description: string;
22
+ provider?: LLMProvider;
23
+ }): Promise<ValidatedGenerateResult>;
24
+ //# sourceMappingURL=ai-authoring.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ai-authoring.d.ts","sourceRoot":"","sources":["../../src/operations/ai-authoring.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAG7D,OAAO,EAAgE,KAAK,cAAc,EAAE,KAAK,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAGtI,eAAO,MAAM,6BAA6B,IAAI,CAAC;AAE/C,MAAM,WAAW,cAAc;IAC3B,eAAe,EAAE,MAAM,CAAC;IACxB,QAAQ,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC3C,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACrC;AAED,MAAM,WAAW,uBAAwB,SAAQ,cAAc;IAC3D,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,UAAU,EAAE,CAAC;IAC1B,YAAY,EAAE,cAAc,CAAC;CAChC;AAED,wBAAsB,sBAAsB,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC,CAwBtG;AAED,wBAAsB,sBAAsB,CAAC,OAAO,EAAE;IAClD,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,WAAW,CAAC;CAC1B,GAAG,OAAO,CAAC,uBAAuB,CAAC,CA+BnC"}
@@ -0,0 +1,77 @@
1
+ // ─── AI authoring operation ─────────────────────────────────────────────────
2
+ // The server and CLI-facing surfaces delegate here. Validation improves a draft;
3
+ // it never decides whether source may be saved (§1.1).
4
+ import { mkdtemp, rm, writeFile } from 'node:fs/promises';
5
+ import { tmpdir } from 'node:os';
6
+ import { join } from 'node:path';
7
+ import { findMemoManifests } from '../model/manifest.js';
8
+ import { loadOntologyRegistries } from '../model/ontology-loader.js';
9
+ import { EMPTY_ONTOLOGY_VIEW, ontologyViewFrom } from '../model/kind-registry.js';
10
+ import { loadProjectConfig } from '../toolchain/lowering.js';
11
+ import { mergeDiagnostics, probeToolchain, runLowering, runValidator } from '../toolchain/operations.js';
12
+ import { validateModel } from '../validator/rule-engine.js';
13
+ import { dtoToModel } from '../model/semantic.js';
14
+ import { createProvider, generateSysml, repairSysml, resolveLLMConfig } from '../llm/index.js';
15
+ import { SYSML_MEMO_GUIDANCE_VERSION } from '../llm/sysml-guidance.js';
16
+ export const MAX_SYSML_GENERATION_ATTEMPTS = 3;
17
+ export async function validateGeneratedSysml(projectRoot, sysml) {
18
+ const config = loadProjectConfig(projectRoot);
19
+ const scratch = await mkdtemp(join(tmpdir(), 'memo-ai-sysml-'));
20
+ const candidatePath = join(scratch, 'generated.sysml');
21
+ await writeFile(candidatePath, sysml, 'utf8');
22
+ try {
23
+ const options = { config, projectDir: projectRoot, files: [candidatePath] };
24
+ const validator = await runValidator(options);
25
+ const lowering = await runLowering(options);
26
+ const diagnostics = mergeDiagnostics(validator.diagnostics, lowering.diagnostics);
27
+ if (lowering.accepted) {
28
+ const model = dtoToModel(lowering.ir.model);
29
+ diagnostics.push(...validateModel(model).violations.map(violation => ({
30
+ domain: 'memo-methodology',
31
+ provider: 'memo', severity: violation.severity === 'error' ? 'warning' : violation.severity,
32
+ code: violation.ruleId,
33
+ message: violation.description,
34
+ file: violation.provenance?.declaration.sourceUri,
35
+ })));
36
+ }
37
+ return diagnostics;
38
+ }
39
+ finally {
40
+ await rm(scratch, { recursive: true, force: true });
41
+ }
42
+ }
43
+ export async function generateValidatedSysml(options) {
44
+ const config = loadProjectConfig(options.projectRoot);
45
+ const provider = options.provider ?? (() => {
46
+ const llm = resolveLLMConfig(options.projectRoot);
47
+ if (!llm)
48
+ throw new Error('No LLM provider configured. Set ANTHROPIC_API_KEY or OPENAI_API_KEY.');
49
+ return createProvider(llm);
50
+ })();
51
+ let ontology = EMPTY_ONTOLOGY_VIEW;
52
+ try {
53
+ const loaded = await loadOntologyRegistries(options.projectRoot);
54
+ ontology = ontologyViewFrom(loaded.registries.kindRegistry, loaded.registries.relationshipRegistry);
55
+ }
56
+ catch {
57
+ // Generation remains available without installed MEMO content. The
58
+ // diagnostics will make any resulting methodology gap visible.
59
+ }
60
+ let candidate = await generateSysml(options.description, ontology, provider);
61
+ const initialSysml = candidate.sysml;
62
+ let diagnostics = await validateGeneratedSysml(options.projectRoot, candidate.sysml);
63
+ let attempts = 1;
64
+ while (diagnostics.length > 0 && attempts < MAX_SYSML_GENERATION_ATTEMPTS) {
65
+ candidate = await repairSysml(options.description, candidate.sysml, diagnostics, ontology, provider);
66
+ diagnostics = await validateGeneratedSysml(options.projectRoot, candidate.sysml);
67
+ attempts += 1;
68
+ }
69
+ const probe = probeToolchain({ config, projectDir: options.projectRoot });
70
+ const selected = probe.roles.find(role => role.role === 'validator');
71
+ const libraries = Object.assign({}, ...findMemoManifests(options.projectRoot).map(found => found.manifest.packages));
72
+ return { ...candidate, initialSysml, attempts, diagnostics, changeRecord: {
73
+ guidanceVersion: SYSML_MEMO_GUIDANCE_VERSION,
74
+ compiler: { id: selected.provider, version: selected.availability.version }, libraries,
75
+ } };
76
+ }
77
+ //# sourceMappingURL=ai-authoring.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ai-authoring.js","sourceRoot":"","sources":["../../src/operations/ai-authoring.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,40 @@
1
+ import type { MEMOConfig } from '../model/config.js';
2
+ import { type IrIdentityIndex } from '../model/ir-identity.js';
3
+ import type { Diagnostic } from '../toolchain/diagnostic.js';
4
+ import type { MemoIr } from '../toolchain/protocol.js';
5
+ import { type ElementWriteRequest, type ElementWriteResult } from '../server/persistor.js';
6
+ export interface AuthoringContext {
7
+ projectDir: string;
8
+ /** Project settings; loaded from the project when the caller has none. */
9
+ config?: MEMOConfig;
10
+ /** Identity index of the revision the caller's request was built against. */
11
+ irIndex?: IrIdentityIndex;
12
+ }
13
+ /** What a recompile produced, in the shape every write-back returns it. */
14
+ export interface RecompiledRevision {
15
+ ir: MemoIr;
16
+ index: IrIdentityIndex;
17
+ diagnostics: Diagnostic[];
18
+ /** The provider that answered, so the caller can report which one ran. */
19
+ provider: string;
20
+ }
21
+ /**
22
+ * Recompile the project through the selected lowering provider.
23
+ *
24
+ * Exported on its own because "what does the model look like now" is a question
25
+ * the CLI asks too, not only the thing that happens after a write.
26
+ */
27
+ export declare function recompileProject(context: AuthoringContext): Promise<RecompiledRevision>;
28
+ export interface ElementWriteBackResult extends ElementWriteResult {
29
+ /** The revision the write produced, absent when nothing was written. */
30
+ revision?: RecompiledRevision;
31
+ }
32
+ /**
33
+ * Write one element and recompile.
34
+ *
35
+ * A failed write does not recompile: there is nothing new to compile, and
36
+ * running the provider anyway would charge every rejected edit the cost of a
37
+ * full lowering.
38
+ */
39
+ export declare function writeElement(context: AuthoringContext, element: ElementWriteRequest): Promise<ElementWriteBackResult>;
40
+ //# sourceMappingURL=authoring.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"authoring.d.ts","sourceRoot":"","sources":["../../src/operations/authoring.ts"],"names":[],"mappings":"AAuBA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAwB,KAAK,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAGrF,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAqB,KAAK,mBAAmB,EAAE,KAAK,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAE9G,MAAM,WAAW,gBAAgB;IAC7B,UAAU,EAAE,MAAM,CAAC;IACnB,0EAA0E;IAC1E,MAAM,CAAC,EAAE,UAAU,CAAC;IACpB,6EAA6E;IAC7E,OAAO,CAAC,EAAE,eAAe,CAAC;CAC7B;AAED,2EAA2E;AAC3E,MAAM,WAAW,kBAAkB;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,eAAe,CAAC;IACvB,WAAW,EAAE,UAAU,EAAE,CAAC;IAC1B,0EAA0E;IAC1E,QAAQ,EAAE,MAAM,CAAC;CACpB;AAED;;;;;GAKG;AACH,wBAAsB,gBAAgB,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAS7F;AAED,MAAM,WAAW,sBAAuB,SAAQ,kBAAkB;IAC9D,wEAAwE;IACxE,QAAQ,CAAC,EAAE,kBAAkB,CAAC;CACjC;AAED;;;;;;GAMG;AACH,wBAAsB,YAAY,CAC9B,OAAO,EAAE,gBAAgB,EACzB,OAAO,EAAE,mBAAmB,GAC7B,OAAO,CAAC,sBAAsB,CAAC,CAIjC"}
@@ -0,0 +1,56 @@
1
+ // ─── Authoring write-back ────────────────────────────────────────────────────
2
+ //
3
+ // The one implementation behind "the canvas changed the model", reached from
4
+ // the CLI and from Architect's server protocol alike (§1.2.2). A write-back is
5
+ // two steps that only make sense together:
6
+ //
7
+ // 1. edit the SysML source — by IR identity, in standard notation;
8
+ // 2. recompile through the **selected lowering provider**, and hand back the
9
+ // revision that resulted.
10
+ //
11
+ // Step 2 is not a refresh optimisation. Before this session the editing path
12
+ // wrote source and let the file watcher discover it, which meant the identities
13
+ // the UI held were only as fresh as the next watcher tick — and a write made
14
+ // against them in the meantime was addressed to a revision nobody had compiled.
15
+ // Recompiling as part of the action closes that window: the write returns the
16
+ // identities its own result created.
17
+ //
18
+ // It goes through the provider rather than calling the builder directly for the
19
+ // same reason everything else does: the lowering role is configurable, and an
20
+ // authoring path that quietly used the internal builder would be a second
21
+ // compiler nobody selected.
22
+ // ─────────────────────────────────────────────────────────────────────────────
23
+ import { buildIrIdentityIndex } from '../model/ir-identity.js';
24
+ import { loadProjectConfig } from '../toolchain/lowering.js';
25
+ import { runLowering } from '../toolchain/operations.js';
26
+ import { saveElementToFile } from '../server/persistor.js';
27
+ /**
28
+ * Recompile the project through the selected lowering provider.
29
+ *
30
+ * Exported on its own because "what does the model look like now" is a question
31
+ * the CLI asks too, not only the thing that happens after a write.
32
+ */
33
+ export async function recompileProject(context) {
34
+ const config = context.config ?? loadProjectConfig(context.projectDir);
35
+ const result = await runLowering({ config, projectDir: context.projectDir });
36
+ return {
37
+ ir: result.ir,
38
+ index: buildIrIdentityIndex(result.ir.model.sysmlIr),
39
+ diagnostics: result.diagnostics,
40
+ provider: result.provider,
41
+ };
42
+ }
43
+ /**
44
+ * Write one element and recompile.
45
+ *
46
+ * A failed write does not recompile: there is nothing new to compile, and
47
+ * running the provider anyway would charge every rejected edit the cost of a
48
+ * full lowering.
49
+ */
50
+ export async function writeElement(context, element) {
51
+ const result = await saveElementToFile(context.projectDir, element, context.irIndex);
52
+ if (!result.success)
53
+ return result;
54
+ return { ...result, revision: await recompileProject(context) };
55
+ }
56
+ //# sourceMappingURL=authoring.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"authoring.js","sourceRoot":"","sources":["../../src/operations/authoring.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAChF,EAAE;AACF,6EAA6E;AAC7E,+EAA+E;AAC/E,2CAA2C;AAC3C,EAAE;AACF,qEAAqE;AACrE,+EAA+E;AAC/E,+BAA+B;AAC/B,EAAE;AACF,6EAA6E;AAC7E,gFAAgF;AAChF,6EAA6E;AAC7E,gFAAgF;AAChF,8EAA8E;AAC9E,qCAAqC;AACrC,EAAE;AACF,gFAAgF;AAChF,8EAA8E;AAC9E,0EAA0E;AAC1E,4BAA4B;AAC5B,gFAAgF;AAGhF,OAAO,EAAE,oBAAoB,EAAwB,MAAM,yBAAyB,CAAC;AACrF,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAGzD,OAAO,EAAE,iBAAiB,EAAqD,MAAM,wBAAwB,CAAC;AAmB9G;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,OAAyB;IAC5D,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,iBAAiB,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IACvE,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC;IAC7E,OAAO;QACH,EAAE,EAAE,MAAM,CAAC,EAAE;QACb,KAAK,EAAE,oBAAoB,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC;QACpD,WAAW,EAAE,MAAM,CAAC,WAAW;QAC/B,QAAQ,EAAE,MAAM,CAAC,QAAQ;KAC5B,CAAC;AACN,CAAC;AAOD;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAC9B,OAAyB,EACzB,OAA4B;IAE5B,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC,OAAO,CAAC,UAAU,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;IACrF,IAAI,CAAC,MAAM,CAAC,OAAO;QAAE,OAAO,MAAM,CAAC;IACnC,OAAO,EAAE,GAAG,MAAM,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC,OAAO,CAAC,EAAE,CAAC;AACpE,CAAC"}
@@ -2,7 +2,9 @@
2
2
  export { initCommand as initializeProject } from '../commands/init.js';
3
3
  export { validateCommand as validateProject } from '../commands/validate.js';
4
4
  export { saveElementToFile as createElement } from '../server/persistor.js';
5
+ export { writeElement, recompileProject } from './authoring.js';
5
6
  export { compileMarkdownDocument as generateDocument } from '../dhf/document-compiler.js';
6
7
  export { buildProjectSnapshot, serializeForInlineScript } from './project-snapshot.js';
7
8
  export { devCommand as startProjectServer } from '../commands/dev.js';
9
+ export { generateValidatedSysml, validateGeneratedSysml, MAX_SYSML_GENERATION_ATTEMPTS } from './ai-authoring.js';
8
10
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/operations/index.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,OAAO,EAAE,WAAW,IAAI,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACvE,OAAO,EAAE,eAAe,IAAI,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC7E,OAAO,EAAE,iBAAiB,IAAI,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAC5E,OAAO,EAAE,uBAAuB,IAAI,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC1F,OAAO,EAAE,oBAAoB,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AACvF,OAAO,EAAE,UAAU,IAAI,kBAAkB,EAAE,MAAM,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/operations/index.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,OAAO,EAAE,WAAW,IAAI,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACvE,OAAO,EAAE,eAAe,IAAI,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC7E,OAAO,EAAE,iBAAiB,IAAI,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAC5E,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAChE,OAAO,EAAE,uBAAuB,IAAI,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC1F,OAAO,EAAE,oBAAoB,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AACvF,OAAO,EAAE,UAAU,IAAI,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACtE,OAAO,EAAE,sBAAsB,EAAE,sBAAsB,EAAE,6BAA6B,EAAE,MAAM,mBAAmB,CAAC"}
@@ -2,7 +2,9 @@
2
2
  export { initCommand as initializeProject } from '../commands/init.js';
3
3
  export { validateCommand as validateProject } from '../commands/validate.js';
4
4
  export { saveElementToFile as createElement } from '../server/persistor.js';
5
+ export { writeElement, recompileProject } from './authoring.js';
5
6
  export { compileMarkdownDocument as generateDocument } from '../dhf/document-compiler.js';
6
7
  export { buildProjectSnapshot, serializeForInlineScript } from './project-snapshot.js';
7
8
  export { devCommand as startProjectServer } from '../commands/dev.js';
9
+ export { generateValidatedSysml, validateGeneratedSysml, MAX_SYSML_GENERATION_ATTEMPTS } from './ai-authoring.js';
8
10
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/operations/index.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,OAAO,EAAE,WAAW,IAAI,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACvE,OAAO,EAAE,eAAe,IAAI,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC7E,OAAO,EAAE,iBAAiB,IAAI,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAC5E,OAAO,EAAE,uBAAuB,IAAI,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC1F,OAAO,EAAE,oBAAoB,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AACvF,OAAO,EAAE,UAAU,IAAI,kBAAkB,EAAE,MAAM,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/operations/index.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,OAAO,EAAE,WAAW,IAAI,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACvE,OAAO,EAAE,eAAe,IAAI,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC7E,OAAO,EAAE,iBAAiB,IAAI,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAC5E,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAChE,OAAO,EAAE,uBAAuB,IAAI,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC1F,OAAO,EAAE,oBAAoB,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AACvF,OAAO,EAAE,UAAU,IAAI,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACtE,OAAO,EAAE,sBAAsB,EAAE,sBAAsB,EAAE,6BAA6B,EAAE,MAAM,mBAAmB,CAAC"}
@@ -1,17 +1,42 @@
1
1
  import type { MEMOConfig } from '../model/config.js';
2
2
  import type { MemoModelDTO } from '../model/semantic.js';
3
3
  import type { CompletenessReport, ValidationResult } from '../validator/types.js';
4
+ import type { Diagnostic } from '../toolchain/diagnostic.js';
5
+ import type { ProviderRegistry } from '../toolchain/registry.js';
4
6
  export interface ProjectSnapshot {
5
7
  projectRoot: string;
6
- configPath: string;
8
+ /** Absolute path of the settings file, when the project has one. */
9
+ configPath?: string;
7
10
  config: MEMOConfig;
8
11
  model: MemoModelDTO;
9
12
  validation: ValidationResult;
10
13
  completeness: CompletenessReport;
11
- compiler: 'internal' | 'syside';
14
+ /** Provider that answered "is this valid SysML?". */
15
+ validator: string;
16
+ /** Provider that answered "what can MEMO ingest?". */
17
+ lowering: string;
18
+ /**
19
+ * @deprecated Reads as the validator. Kept so callers written against the
20
+ * single-provider shape keep working while they move to `validator`.
21
+ */
22
+ compiler: string;
23
+ /** Normalized diagnostics from both roles, each in its own domain. */
24
+ diagnostics: Diagnostic[];
25
+ /**
26
+ * True when the model shown is the last one that built, not this revision.
27
+ *
28
+ * §1.1: while the current revision is broken the diagram keeps the last
29
+ * good scene rather than blanking. A caller that draws needs to know which
30
+ * it is holding.
31
+ */
32
+ stale: boolean;
12
33
  }
34
+ /** Drop the retained model for a project — a fresh start really is fresh. */
35
+ export declare function forgetLastGoodModel(projectRoot?: string): void;
13
36
  /** Build the immutable data payload consumed by exports and Architect. */
14
- export declare function buildProjectSnapshot(projectRoot?: string): Promise<ProjectSnapshot>;
37
+ export declare function buildProjectSnapshot(projectRoot?: string, options?: {
38
+ registry?: ProviderRegistry;
39
+ }): Promise<ProjectSnapshot>;
15
40
  /** Serialize data for an inline script without permitting script termination. */
16
41
  export declare function serializeForInlineScript(value: unknown): string;
17
42
  //# sourceMappingURL=project-snapshot.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"project-snapshot.d.ts","sourceRoot":"","sources":["../../src/operations/project-snapshot.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAErD,OAAO,KAAK,EAA4B,YAAY,EAAgB,MAAM,sBAAsB,CAAC;AACjG,OAAO,KAAK,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAKlF,MAAM,WAAW,eAAe;IAC5B,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,UAAU,CAAC;IACnB,KAAK,EAAE,YAAY,CAAC;IACpB,UAAU,EAAE,gBAAgB,CAAC;IAC7B,YAAY,EAAE,kBAAkB,CAAC;IACjC,QAAQ,EAAE,UAAU,GAAG,QAAQ,CAAC;CACnC;AAED,0EAA0E;AAC1E,wBAAsB,oBAAoB,CAAC,WAAW,SAAgB,GAAG,OAAO,CAAC,eAAe,CAAC,CAmDhG;AAED,iFAAiF;AACjF,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAO/D"}
1
+ {"version":3,"file":"project-snapshot.d.ts","sourceRoot":"","sources":["../../src/operations/project-snapshot.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAErD,OAAO,KAAK,EAA4B,YAAY,EAAgB,MAAM,sBAAsB,CAAC;AACjG,OAAO,KAAK,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAMlF,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAGjE,MAAM,WAAW,eAAe;IAC5B,WAAW,EAAE,MAAM,CAAC;IACpB,oEAAoE;IACpE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,UAAU,CAAC;IACnB,KAAK,EAAE,YAAY,CAAC;IACpB,UAAU,EAAE,gBAAgB,CAAC;IAC7B,YAAY,EAAE,kBAAkB,CAAC;IACjC,qDAAqD;IACrD,SAAS,EAAE,MAAM,CAAC;IAClB,sDAAsD;IACtD,QAAQ,EAAE,MAAM,CAAC;IACjB;;;OAGG;IACH,QAAQ,EAAE,MAAM,CAAC;IACjB,sEAAsE;IACtE,WAAW,EAAE,UAAU,EAAE,CAAC;IAC1B;;;;;;OAMG;IACH,KAAK,EAAE,OAAO,CAAC;CAClB;AAYD,6EAA6E;AAC7E,wBAAgB,mBAAmB,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAG9D;AAED,0EAA0E;AAC1E,wBAAsB,oBAAoB,CACtC,WAAW,SAAgB,EAC3B,OAAO,GAAE;IAAE,QAAQ,CAAC,EAAE,gBAAgB,CAAA;CAAO,GAC9C,OAAO,CAAC,eAAe,CAAC,CAyF1B;AAED,iFAAiF;AACjF,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAO/D"}
@@ -1,64 +1,113 @@
1
1
  import { resolve } from 'node:path';
2
- import { buildMemoModel } from '../model/builder.js';
3
- import { compileWithConfiguredTool } from '../model/toolchain.js';
4
2
  import { computeCompleteness } from '../completeness/tracker.js';
5
3
  import { deriveModelViews } from '../model/view-deriver.js';
6
4
  import { findConfigFile } from '../model/config-loader.js';
7
5
  import { loadOntologyRegistries } from '../model/ontology-loader.js';
8
- import { parseFiles } from '../model/parser-utils.js';
9
6
  import { validateModel } from '../validator/rule-engine.js';
10
- import { modelToDTO } from '../model/semantic.js';
7
+ import { dtoToModel, modelToDTO } from '../model/semantic.js';
11
8
  import { loadAndResolveConfig } from '../server/config-resolver.js';
12
- import { findSysmlFiles } from '../model/sysml-files.js';
9
+ import { findProjectRoot, loadProjectSettings } from '@memoarchitect/tools';
10
+ import { defaultRegistry } from '../toolchain/default-registry.js';
11
+ import { resolveToolchain } from '../toolchain/effective.js';
12
+ import { mergeDiagnostics, runLowering, runValidator } from '../toolchain/operations.js';
13
+ /**
14
+ * Last model that built, per project root.
15
+ *
16
+ * The point of keeping it is the §1.1 rule: a broken revision leaves the last
17
+ * good picture on screen plus current diagnostics. It never blanks and never
18
+ * shows a half-built model. Process-scoped, which is the scope of the server
19
+ * that draws from it.
20
+ */
21
+ const lastGoodModel = new Map();
22
+ /** Drop the retained model for a project — a fresh start really is fresh. */
23
+ export function forgetLastGoodModel(projectRoot) {
24
+ if (projectRoot)
25
+ lastGoodModel.delete(resolve(projectRoot));
26
+ else
27
+ lastGoodModel.clear();
28
+ }
13
29
  /** Build the immutable data payload consumed by exports and Architect. */
14
- export async function buildProjectSnapshot(projectRoot = process.cwd()) {
30
+ export async function buildProjectSnapshot(projectRoot = process.cwd(), options = {}) {
15
31
  const cwd = resolve(projectRoot);
16
- const configPath = findConfigFile(cwd);
17
- if (!configPath) {
18
- throw new Error('No memo config found. Run `memo init` first.');
32
+ const registry = options.registry ?? defaultRegistry;
33
+ // A project is identified by its native entrypoint. Settings are optional:
34
+ // a project with none is complete, because settings carry no meaning.
35
+ if (!findProjectRoot(cwd)) {
36
+ throw new Error('No model/catalog/project.sysml found. A MEMO project declares its identity and method '
37
+ + 'binding in SysML — run `memo init` to scaffold one.');
19
38
  }
20
- const config = loadAndResolveConfig(configPath);
21
- const compiler = compileWithConfiguredTool(config, cwd, configPath);
39
+ const configPath = findConfigFile(cwd);
40
+ const config = configPath ? loadAndResolveConfig(configPath) : loadProjectSettings(cwd);
41
+ const effective = resolveToolchain(config, registry);
42
+ // Loaded before either role runs, so the closure is parsed once and offered
43
+ // to a provider that can use it rather than loaded again inside lowering.
22
44
  let ontologyRegistries;
23
45
  try {
24
- const loadResult = await loadOntologyRegistries(configPath);
46
+ const loadResult = await loadOntologyRegistries(cwd);
25
47
  if (loadResult.fileCount > 0)
26
48
  ontologyRegistries = loadResult.registries;
27
49
  }
28
50
  catch {
29
51
  // Snapshot generation remains available with reduced kind resolution.
30
52
  }
31
- const { documents, errors } = await parseFiles(findSysmlFiles(cwd), `${cwd}/`);
32
- const semanticModel = buildMemoModel(documents, config, errors, ontologyRegistries);
53
+ // The validator answers "is this valid SysML?" and nothing else. Its
54
+ // failures are `sysml` errors; a failure to *run* it is still an exception,
55
+ // because a selected tool that is not there must never downgrade in silence.
56
+ const validatorRun = await runValidator({ config, projectDir: cwd, registry });
57
+ // Lowering answers "what can MEMO ingest from this revision?". Its failures
58
+ // are `memo-ingest` by construction — MEMO reporting the limits of its own
59
+ // reading, not a verdict on the source. The rule this implements verbatim:
60
+ //
61
+ // an internal-parser failure on source the validator accepted is a
62
+ // `memo-ingest` diagnostic, never a SysML error.
63
+ //
64
+ // `mergeDiagnostics` then collapses the duplicate when one provider filled
65
+ // both roles, so a defect is reported once, in the domain with the most
66
+ // authority.
67
+ //
68
+ // What comes back is IR, not an AST. That is what makes the lowering role
69
+ // implementable by a separate process at all — and it means this function
70
+ // no longer builds the model itself, it receives one. Rehydrating the DTO
71
+ // restores the indexes the validator and view deriver read; nothing else
72
+ // about it depends on which transport produced it.
73
+ const loweringRun = await runLowering({
74
+ config, projectDir: cwd, registry, registries: ontologyRegistries,
75
+ });
76
+ const diagnostics = mergeDiagnostics(validatorRun.diagnostics, loweringRun.diagnostics);
77
+ const semanticModel = dtoToModel(loweringRun.ir.model);
33
78
  const validation = validateModel(semanticModel, [], ontologyRegistries?.kindRegistry);
34
- const completeness = computeCompleteness(semanticModel, validation, config);
35
- const viewpoints = config.viewpoints?.map(vp => ({
36
- id: vp.id,
37
- label: vp.label,
38
- group: vp.group,
39
- visibleKinds: vp.visibleKinds,
40
- visibleRelationships: vp.visibleRelationships,
41
- visibleLayers: vp.visibleLayers,
42
- })) ?? [];
43
- const architectureLayers = config.architectureLayers?.map(layer => ({
44
- id: layer.id,
45
- label: layer.label,
46
- color: layer.color,
47
- }));
79
+ const completeness = computeCompleteness(semanticModel, validation);
80
+ // Viewpoints and layers are derived from the model. The `viewpoints:` and
81
+ // `architectureLayers:` settings blocks that used to supply them are gone:
82
+ // a portable view's content cannot depend on a file the model does not carry.
83
+ const viewpoints = [];
84
+ const architectureLayers = undefined;
48
85
  // Diagrams are authored model views. Do not fabricate one generic BDD per
49
86
  // layer: those views carry no diagram intent and obscure the useful views.
50
87
  const diagrams = [];
51
88
  const derivedViews = deriveModelViews(semanticModel, ontologyRegistries?.kindRegistry);
52
89
  viewpoints.push(...derivedViews.viewpoints);
53
90
  diagrams.push(...derivedViews.diagrams);
91
+ const model = modelToDTO(semanticModel, { viewpoints, architectureLayers, diagrams });
92
+ // "Built" means lowering produced a model without ingest failures. A
93
+ // revision that lowered cleanly becomes the new last good picture; one that
94
+ // did not keeps the previous picture on screen next to its diagnostics.
95
+ const lowered = loweringRun.accepted;
96
+ if (lowered)
97
+ lastGoodModel.set(cwd, model);
98
+ const retained = lowered ? undefined : lastGoodModel.get(cwd);
54
99
  return {
55
100
  projectRoot: cwd,
56
101
  configPath,
57
102
  config,
58
- model: modelToDTO(semanticModel, { viewpoints, architectureLayers, diagrams }),
103
+ model: retained ?? model,
59
104
  validation,
60
105
  completeness,
61
- compiler,
106
+ validator: effective.validator,
107
+ lowering: effective.lowering,
108
+ compiler: effective.validator,
109
+ diagnostics,
110
+ stale: retained !== undefined,
62
111
  };
63
112
  }
64
113
  /** Serialize data for an inline script without permitting script termination. */