@memoarchitect/tools 0.6.6 → 0.6.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +18 -0
- package/package.json +2 -2
- package/packages/tools/lib/analysis-starters.d.ts +4 -0
- package/packages/tools/lib/analysis-starters.d.ts.map +1 -0
- package/packages/tools/lib/analysis-starters.js +425 -0
- package/packages/tools/lib/analysis-starters.js.map +1 -0
- package/packages/tools/lib/commands/init.d.ts.map +1 -1
- package/packages/tools/lib/commands/init.js +3 -0
- package/packages/tools/lib/commands/init.js.map +1 -1
- package/packages/tools/lib/commands/pack.d.ts.map +1 -1
- package/packages/tools/lib/commands/pack.js +5 -2
- package/packages/tools/lib/commands/pack.js.map +1 -1
- package/packages/tools/lib/mcp/model-loader.d.ts +2 -1
- package/packages/tools/lib/mcp/model-loader.d.ts.map +1 -1
- package/packages/tools/lib/mcp/model-loader.js +7 -22
- package/packages/tools/lib/mcp/model-loader.js.map +1 -1
- package/packages/tools/lib/model/builder.d.ts.map +1 -1
- package/packages/tools/lib/model/builder.js +33 -7
- package/packages/tools/lib/model/builder.js.map +1 -1
- package/packages/tools/lib/model/relationship-legality.d.ts +2 -0
- package/packages/tools/lib/model/relationship-legality.d.ts.map +1 -1
- package/packages/tools/lib/model/relationship-legality.js.map +1 -1
- package/packages/tools/lib/model/semantic.d.ts +11 -0
- package/packages/tools/lib/model/semantic.d.ts.map +1 -1
- package/packages/tools/lib/model/semantic.js.map +1 -1
- package/packages/tools/lib/model/short-id.d.ts +8 -7
- package/packages/tools/lib/model/short-id.d.ts.map +1 -1
- package/packages/tools/lib/model/short-id.js +24 -17
- package/packages/tools/lib/model/short-id.js.map +1 -1
- package/packages/tools/lib/model/sysml-files.d.ts +9 -0
- package/packages/tools/lib/model/sysml-files.d.ts.map +1 -1
- package/packages/tools/lib/model/sysml-files.js +20 -1
- package/packages/tools/lib/model/sysml-files.js.map +1 -1
- package/packages/tools/lib/model/view-deriver.d.ts.map +1 -1
- package/packages/tools/lib/model/view-deriver.js +24 -0
- package/packages/tools/lib/model/view-deriver.js.map +1 -1
- package/packages/tools/lib/protocol/messages.d.ts +13 -0
- package/packages/tools/lib/protocol/messages.d.ts.map +1 -1
- package/packages/tools/lib/server/relationship-writer.d.ts +1 -1
- package/packages/tools/lib/server/relationship-writer.d.ts.map +1 -1
- package/packages/tools/lib/server/relationship-writer.js +8 -4
- package/packages/tools/lib/server/relationship-writer.js.map +1 -1
- package/packages/tools/lib/server/view-layout-store.d.ts.map +1 -1
- package/packages/tools/lib/server/view-layout-store.js +2 -0
- package/packages/tools/lib/server/view-layout-store.js.map +1 -1
- package/packages/tools/lib/validator/architecture-validator.d.ts +10 -0
- package/packages/tools/lib/validator/architecture-validator.d.ts.map +1 -0
- package/packages/tools/lib/validator/architecture-validator.js +77 -0
- package/packages/tools/lib/validator/architecture-validator.js.map +1 -0
- package/packages/tools/lib/validator/rule-engine.d.ts.map +1 -1
- package/packages/tools/lib/validator/rule-engine.js +4 -2
- package/packages/tools/lib/validator/rule-engine.js.map +1 -1
package/README.md
CHANGED
|
@@ -89,6 +89,24 @@ memo rules coverage
|
|
|
89
89
|
|
|
90
90
|
Run `memo --help` or `memo <command> --help` for the complete command surface.
|
|
91
91
|
|
|
92
|
+
### Jupyter analysis samples
|
|
93
|
+
|
|
94
|
+
Every `memo init` project includes `analysis/Samples/` with seven portable
|
|
95
|
+
Syside notebooks. They cover model overview and quality, architecture hotspots,
|
|
96
|
+
change-impact exploration, semantic charts, an ownership graph, and an HTML/CSV
|
|
97
|
+
inventory table. The notebooks discover either `model/` or `src/` automatically,
|
|
98
|
+
so the same samples work with default templates and worked examples.
|
|
99
|
+
|
|
100
|
+
Run them in a licensed Syside environment:
|
|
101
|
+
|
|
102
|
+
```bash
|
|
103
|
+
python -m venv analysis/.venv
|
|
104
|
+
source analysis/.venv/bin/activate
|
|
105
|
+
python -m pip install jupyterlab syside
|
|
106
|
+
cd analysis
|
|
107
|
+
jupyter lab --port 8888
|
|
108
|
+
```
|
|
109
|
+
|
|
92
110
|
## Documentation
|
|
93
111
|
|
|
94
112
|
The [published documentation](https://memoarchitect.com/memo-tools/)
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@memoarchitect/tools",
|
|
3
|
-
"version": "0.6.
|
|
3
|
+
"version": "0.6.7",
|
|
4
4
|
"description": "MEMO tools — SysML v2 parser, semantic model, validation, project operations, and CLI",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./packages/tools/lib/index.js",
|
|
@@ -44,7 +44,7 @@
|
|
|
44
44
|
"ontology:compat": "node tools/ontology-tools/syside-compat.mjs"
|
|
45
45
|
},
|
|
46
46
|
"dependencies": {
|
|
47
|
-
"@memoarchitect/ontology": "0.6.
|
|
47
|
+
"@memoarchitect/ontology": "0.6.5",
|
|
48
48
|
"chalk": "^5.3.0",
|
|
49
49
|
"chokidar": "^4.0.0",
|
|
50
50
|
"commander": "^12.1.0",
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"analysis-starters.d.ts","sourceRoot":"","sources":["../src/analysis-starters.ts"],"names":[],"mappings":"AAibA,4EAA4E;AAC5E,wBAAgB,uBAAuB,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAShE;AAED,eAAO,MAAM,mBAAmB,UAA4C,CAAC"}
|
|
@@ -0,0 +1,425 @@
|
|
|
1
|
+
import { existsSync, mkdirSync, writeFileSync } from 'node:fs';
|
|
2
|
+
import { resolve } from 'node:path';
|
|
3
|
+
const LOAD_MODEL = `from pathlib import Path
|
|
4
|
+
from collections import Counter, defaultdict
|
|
5
|
+
import syside
|
|
6
|
+
|
|
7
|
+
def find_sysml_root(start=Path.cwd()):
|
|
8
|
+
"""Find the nearest model/ or src/ folder containing textual SysML."""
|
|
9
|
+
for directory in (start, *start.parents):
|
|
10
|
+
for folder_name in ('model', 'src'):
|
|
11
|
+
candidate = directory / folder_name
|
|
12
|
+
if candidate.is_dir() and next(candidate.rglob('*.sysml'), None):
|
|
13
|
+
return candidate
|
|
14
|
+
raise FileNotFoundError('No model/ or src/ directory containing .sysml files was found')
|
|
15
|
+
|
|
16
|
+
SYSML_ROOT = find_sysml_root()
|
|
17
|
+
SYSML_FILES = sorted(SYSML_ROOT.rglob('*.sysml'))
|
|
18
|
+
model, diagnostics = syside.try_load_model([str(path) for path in SYSML_FILES])
|
|
19
|
+
print(f'Loaded {len(SYSML_FILES)} SysML files from {SYSML_ROOT}')`;
|
|
20
|
+
const SAMPLES_README = `# MEMO analysis samples
|
|
21
|
+
|
|
22
|
+
These notebooks are created by \`memo init\` and are designed to work with any
|
|
23
|
+
MEMO textual SysML v2 project. They locate the nearest \`model/\` or \`src/\`
|
|
24
|
+
directory automatically and query it through the typed Syside API.
|
|
25
|
+
|
|
26
|
+
## Prerequisites
|
|
27
|
+
|
|
28
|
+
Use Python 3.12 or newer with JupyterLab and Syside installed and licensed:
|
|
29
|
+
|
|
30
|
+
\`\`\`bash
|
|
31
|
+
python -m venv analysis/.venv
|
|
32
|
+
source analysis/.venv/bin/activate
|
|
33
|
+
python -m pip install jupyterlab syside
|
|
34
|
+
cd analysis
|
|
35
|
+
jupyter lab --port 8888
|
|
36
|
+
\`\`\`
|
|
37
|
+
|
|
38
|
+
Configure the Syside license using its supported keyring or environment setup.
|
|
39
|
+
MEMO Architect's **Analysis → Jupyter Notebooks** menu opens the local server at
|
|
40
|
+
\`http://127.0.0.1:8888\`.
|
|
41
|
+
|
|
42
|
+
## Included notebooks
|
|
43
|
+
|
|
44
|
+
| Notebook | Purpose |
|
|
45
|
+
|---|---|
|
|
46
|
+
| \`01-model-overview.ipynb\` | Model size, semantic composition, and diagnostic summary. |
|
|
47
|
+
| \`02-architecture-hotspots.ipynb\` | Busy containers, deep ownership paths, and dominant types. |
|
|
48
|
+
| \`03-model-quality.ipynb\` | Diagnostics, unnamed elements, repeated names, and empty definitions. |
|
|
49
|
+
| \`04-change-impact-explorer.ipynb\` | Search an element and inspect its structural neighborhood. |
|
|
50
|
+
| \`05-model-charts.ipynb\` | Bar and donut charts rendered without extra plotting packages. |
|
|
51
|
+
| \`06-ownership-graph.ipynb\` | SVG network graph of model ownership relationships. |
|
|
52
|
+
| \`07-model-inventory-table.ipynb\` | Filterable inventory parameters, HTML table, and CSV export. |
|
|
53
|
+
|
|
54
|
+
The notebooks use \`syside.try_load_model()\`, so partial analysis remains
|
|
55
|
+
available while the project contains parser or semantic diagnostics. Review the
|
|
56
|
+
reported diagnostics before treating analysis results as release evidence.
|
|
57
|
+
`;
|
|
58
|
+
const STARTERS = [
|
|
59
|
+
{
|
|
60
|
+
filename: '01-model-overview.ipynb',
|
|
61
|
+
title: 'Model overview',
|
|
62
|
+
description: 'Visual summary of model size, semantic content, and diagnostics.',
|
|
63
|
+
codeCells: [
|
|
64
|
+
`from IPython.display import HTML, display
|
|
65
|
+
|
|
66
|
+
semantic_types = [
|
|
67
|
+
'Package', 'PartDefinition', 'PartUsage', 'RequirementDefinition',
|
|
68
|
+
'RequirementUsage', 'ActionDefinition', 'ActionUsage', 'PortDefinition',
|
|
69
|
+
'PortUsage', 'ConnectionDefinition', 'ConnectionUsage', 'StateDefinition',
|
|
70
|
+
'StateUsage', 'AttributeDefinition', 'AttributeUsage'
|
|
71
|
+
]
|
|
72
|
+
counts = {}
|
|
73
|
+
for type_name in semantic_types:
|
|
74
|
+
node_type = getattr(syside, type_name, None)
|
|
75
|
+
if node_type is not None:
|
|
76
|
+
counts[type_name] = len(list(model.elements(node_type)))
|
|
77
|
+
|
|
78
|
+
largest = max(counts.values(), default=1)
|
|
79
|
+
rows = ''.join(
|
|
80
|
+
f'<tr><td>{name}</td><td>{count:,}</td><td><div style="background:#2d8d70;height:12px;width:{max(2, count * 320 / largest):.0f}px"></div></td></tr>'
|
|
81
|
+
for name, count in sorted(counts.items(), key=lambda item: item[1], reverse=True)
|
|
82
|
+
)
|
|
83
|
+
display(HTML(f'<h3>Semantic inventory</h3><table><tr><th>Element type</th><th>Count</th><th>Relative size</th></tr>{rows}</table>'))
|
|
84
|
+
|
|
85
|
+
{
|
|
86
|
+
'SysML files': len(SYSML_FILES),
|
|
87
|
+
'Errors': len(list(diagnostics.errors)),
|
|
88
|
+
'Warnings': len(list(diagnostics.warnings)),
|
|
89
|
+
'Information': len(list(diagnostics.infos)),
|
|
90
|
+
}`,
|
|
91
|
+
],
|
|
92
|
+
},
|
|
93
|
+
{
|
|
94
|
+
filename: '02-architecture-hotspots.ipynb',
|
|
95
|
+
title: 'Architecture hotspots',
|
|
96
|
+
description: 'Find busy containers, deep ownership paths, and dominant semantic types.',
|
|
97
|
+
codeCells: [
|
|
98
|
+
`from IPython.display import display
|
|
99
|
+
|
|
100
|
+
semantic_elements = (
|
|
101
|
+
list(model.elements(syside.Usage, include_subtypes=True))
|
|
102
|
+
+ list(model.elements(syside.Definition, include_subtypes=True))
|
|
103
|
+
)
|
|
104
|
+
|
|
105
|
+
def safe_name(element):
|
|
106
|
+
value = element.qualified_name or element.name or element.declared_name
|
|
107
|
+
return str(value) if value else '<unnamed>'
|
|
108
|
+
|
|
109
|
+
def ownership_depth(element):
|
|
110
|
+
depth, current, seen = 0, element.owner, set()
|
|
111
|
+
while current is not None and id(current) not in seen:
|
|
112
|
+
seen.add(id(current))
|
|
113
|
+
depth += 1
|
|
114
|
+
current = getattr(current, 'owner', None)
|
|
115
|
+
return depth
|
|
116
|
+
|
|
117
|
+
containers = []
|
|
118
|
+
for element in semantic_elements:
|
|
119
|
+
children = [child for child in element.owned_elements if isinstance(child, (syside.Usage, syside.Definition))]
|
|
120
|
+
if children:
|
|
121
|
+
containers.append((len(children), type(element).__name__, safe_name(element)))
|
|
122
|
+
|
|
123
|
+
print('Top containers by directly owned semantic elements')
|
|
124
|
+
display(sorted(containers, reverse=True)[:25])
|
|
125
|
+
|
|
126
|
+
print('Deepest ownership paths')
|
|
127
|
+
display(sorted(
|
|
128
|
+
((ownership_depth(item), type(item).__name__, safe_name(item)) for item in semantic_elements),
|
|
129
|
+
reverse=True,
|
|
130
|
+
)[:25])
|
|
131
|
+
|
|
132
|
+
print('Most common semantic types')
|
|
133
|
+
Counter(type(item).__name__ for item in semantic_elements).most_common(30)`,
|
|
134
|
+
],
|
|
135
|
+
},
|
|
136
|
+
{
|
|
137
|
+
filename: '03-model-quality.ipynb',
|
|
138
|
+
title: 'Model quality review',
|
|
139
|
+
description: 'Review diagnostics, unnamed elements, repeated names, and empty definitions.',
|
|
140
|
+
codeCells: [
|
|
141
|
+
`from IPython.display import display
|
|
142
|
+
|
|
143
|
+
usages = list(model.elements(syside.Usage, include_subtypes=True))
|
|
144
|
+
definitions = list(model.elements(syside.Definition, include_subtypes=True))
|
|
145
|
+
semantic_elements = usages + definitions
|
|
146
|
+
|
|
147
|
+
unnamed = [item for item in semantic_elements if not (item.name or item.declared_name)]
|
|
148
|
+
by_name = defaultdict(list)
|
|
149
|
+
for item in semantic_elements:
|
|
150
|
+
value = item.qualified_name or item.name or item.declared_name
|
|
151
|
+
name = str(value) if value else None
|
|
152
|
+
if name:
|
|
153
|
+
by_name[name].append(item)
|
|
154
|
+
duplicates = [(name, len(items), sorted({type(item).__name__ for item in items})) for name, items in by_name.items() if len(items) > 1]
|
|
155
|
+
empty_definitions = [
|
|
156
|
+
item for item in definitions
|
|
157
|
+
if not any(isinstance(child, (syside.Usage, syside.Definition)) for child in item.owned_elements)
|
|
158
|
+
]
|
|
159
|
+
|
|
160
|
+
display({
|
|
161
|
+
'parser/semantic errors': len(list(diagnostics.errors)),
|
|
162
|
+
'warnings': len(list(diagnostics.warnings)),
|
|
163
|
+
'unnamed usages or definitions': len(unnamed),
|
|
164
|
+
'repeated qualified names': len(duplicates),
|
|
165
|
+
'definitions with no owned usages/definitions': len(empty_definitions),
|
|
166
|
+
})
|
|
167
|
+
|
|
168
|
+
print('Repeated qualified names (first 30)')
|
|
169
|
+
display(sorted(duplicates, key=lambda item: item[1], reverse=True)[:30])
|
|
170
|
+
|
|
171
|
+
print('Empty definition candidates (first 30)')
|
|
172
|
+
[(type(item).__name__, item.qualified_name or item.name) for item in empty_definitions[:30]]`,
|
|
173
|
+
`print('First diagnostics to investigate')
|
|
174
|
+
for diagnostic in list(diagnostics.errors)[:20] + list(diagnostics.warnings)[:20]:
|
|
175
|
+
print(diagnostic)`,
|
|
176
|
+
],
|
|
177
|
+
},
|
|
178
|
+
{
|
|
179
|
+
filename: '04-change-impact-explorer.ipynb',
|
|
180
|
+
title: 'Change-impact explorer',
|
|
181
|
+
description: 'Search any element and inspect its owner, children, and directly related elements.',
|
|
182
|
+
codeCells: [
|
|
183
|
+
`QUERY = '' # Example: 'pump', 'controller', 'safety', or a requirement name
|
|
184
|
+
|
|
185
|
+
semantic_elements = (
|
|
186
|
+
list(model.elements(syside.Usage, include_subtypes=True))
|
|
187
|
+
+ list(model.elements(syside.Definition, include_subtypes=True))
|
|
188
|
+
)
|
|
189
|
+
|
|
190
|
+
def label(element):
|
|
191
|
+
value = element.qualified_name or element.name or element.declared_name
|
|
192
|
+
return str(value) if value else '<unnamed>'
|
|
193
|
+
|
|
194
|
+
if not QUERY:
|
|
195
|
+
print('Set QUERY to a name fragment. Suggestions:')
|
|
196
|
+
for suggestion in [label(item) for item in semantic_elements if item.name][:20]:
|
|
197
|
+
print(' -', suggestion)
|
|
198
|
+
matches = []
|
|
199
|
+
else:
|
|
200
|
+
matches = [item for item in semantic_elements if QUERY.casefold() in label(item).casefold()]
|
|
201
|
+
print(f'{len(matches)} match(es) for {QUERY!r}')
|
|
202
|
+
|
|
203
|
+
[(type(item).__name__, label(item)) for item in matches[:100]]`,
|
|
204
|
+
`def neighborhood(element):
|
|
205
|
+
owner = getattr(element, 'owner', None)
|
|
206
|
+
children = [child for child in element.owned_elements if isinstance(child, (syside.Usage, syside.Definition))]
|
|
207
|
+
related = []
|
|
208
|
+
for relationship in element.owned_relationships:
|
|
209
|
+
for candidate in relationship.related_elements:
|
|
210
|
+
if candidate is not element:
|
|
211
|
+
related.append(candidate)
|
|
212
|
+
return {
|
|
213
|
+
'selected': (type(element).__name__, label(element)),
|
|
214
|
+
'owner': None if owner is None else (type(owner).__name__, label(owner)),
|
|
215
|
+
'children': [(type(child).__name__, label(child)) for child in children[:50]],
|
|
216
|
+
'directly related': [(type(item).__name__, label(item)) for item in related[:50]],
|
|
217
|
+
}
|
|
218
|
+
|
|
219
|
+
[neighborhood(item) for item in matches[:10]]`,
|
|
220
|
+
],
|
|
221
|
+
},
|
|
222
|
+
{
|
|
223
|
+
filename: '05-model-charts.ipynb',
|
|
224
|
+
title: 'Model charts',
|
|
225
|
+
description: 'Render semantic composition and diagnostic charts without external plotting packages.',
|
|
226
|
+
codeCells: [
|
|
227
|
+
`from html import escape
|
|
228
|
+
from IPython.display import HTML, display
|
|
229
|
+
|
|
230
|
+
type_names = [
|
|
231
|
+
'PartUsage', 'RequirementUsage', 'ActionUsage', 'PortUsage',
|
|
232
|
+
'ConnectionUsage', 'StateUsage', 'AttributeUsage', 'ItemUsage',
|
|
233
|
+
'PartDefinition', 'RequirementDefinition', 'ActionDefinition', 'PortDefinition'
|
|
234
|
+
]
|
|
235
|
+
counts = {}
|
|
236
|
+
for type_name in type_names:
|
|
237
|
+
node_type = getattr(syside, type_name, None)
|
|
238
|
+
if node_type is not None:
|
|
239
|
+
counts[type_name] = len(list(model.elements(node_type)))
|
|
240
|
+
|
|
241
|
+
palette = ['#2d8d70', '#3887c7', '#e58a2b', '#8357b6', '#cf5c62', '#4f9d9d']
|
|
242
|
+
largest = max(counts.values(), default=1)
|
|
243
|
+
bars = []
|
|
244
|
+
for index, (name, count) in enumerate(sorted(counts.items(), key=lambda item: item[1], reverse=True)):
|
|
245
|
+
width = max(1, count * 100 / largest)
|
|
246
|
+
color = palette[index % len(palette)]
|
|
247
|
+
bars.append(f'''<div style="display:grid;grid-template-columns:180px 1fr 70px;gap:12px;align-items:center;margin:7px 0">
|
|
248
|
+
<div>{escape(name)}</div><div style="background:#edf2f4;border-radius:6px;overflow:hidden"><div style="width:{width:.1f}%;height:20px;background:{color}"></div></div><strong>{count:,}</strong>
|
|
249
|
+
</div>''')
|
|
250
|
+
|
|
251
|
+
error_count = len(list(diagnostics.errors))
|
|
252
|
+
warning_count = len(list(diagnostics.warnings))
|
|
253
|
+
info_count = len(list(diagnostics.infos))
|
|
254
|
+
total_diagnostics = max(1, error_count + warning_count + info_count)
|
|
255
|
+
diagnostic_gradient = (
|
|
256
|
+
f'#cf5c62 0 {error_count / total_diagnostics * 100:.1f}%, '
|
|
257
|
+
f'#e5a52b {error_count / total_diagnostics * 100:.1f}% {(error_count + warning_count) / total_diagnostics * 100:.1f}%, '
|
|
258
|
+
f'#3887c7 {(error_count + warning_count) / total_diagnostics * 100:.1f}% 100%'
|
|
259
|
+
)
|
|
260
|
+
|
|
261
|
+
display(HTML(f'''<div style="font-family:system-ui;max-width:900px">
|
|
262
|
+
<h2>Semantic composition</h2>{''.join(bars)}
|
|
263
|
+
<h2 style="margin-top:28px">Diagnostics</h2>
|
|
264
|
+
<div style="display:flex;align-items:center;gap:24px">
|
|
265
|
+
<div style="width:150px;height:150px;border-radius:50%;background:conic-gradient({diagnostic_gradient});position:relative">
|
|
266
|
+
<div style="position:absolute;inset:28px;background:white;border-radius:50%;display:grid;place-items:center;font-size:24px;font-weight:700">{error_count + warning_count + info_count}</div>
|
|
267
|
+
</div>
|
|
268
|
+
<table><tr><th>Severity</th><th>Count</th></tr><tr><td>Errors</td><td>{error_count}</td></tr><tr><td>Warnings</td><td>{warning_count}</td></tr><tr><td>Information</td><td>{info_count}</td></tr></table>
|
|
269
|
+
</div>
|
|
270
|
+
</div>'''))`,
|
|
271
|
+
],
|
|
272
|
+
},
|
|
273
|
+
{
|
|
274
|
+
filename: '06-ownership-graph.ipynb',
|
|
275
|
+
title: 'Ownership graph',
|
|
276
|
+
description: 'Draw an SVG network of model elements and their ownership relationships.',
|
|
277
|
+
codeCells: [
|
|
278
|
+
`from html import escape
|
|
279
|
+
from IPython.display import SVG, display
|
|
280
|
+
|
|
281
|
+
semantic_elements = (
|
|
282
|
+
list(model.elements(syside.Usage, include_subtypes=True))
|
|
283
|
+
+ list(model.elements(syside.Definition, include_subtypes=True))
|
|
284
|
+
)
|
|
285
|
+
|
|
286
|
+
def node_name(element):
|
|
287
|
+
value = element.name or element.declared_name or element.qualified_name
|
|
288
|
+
return str(value) if value else '<unnamed>'
|
|
289
|
+
|
|
290
|
+
# Prefer named elements with semantic children, then fill with other named elements.
|
|
291
|
+
ranked = sorted(
|
|
292
|
+
(item for item in semantic_elements if item.name or item.declared_name),
|
|
293
|
+
key=lambda item: sum(isinstance(child, (syside.Usage, syside.Definition)) for child in item.owned_elements),
|
|
294
|
+
reverse=True,
|
|
295
|
+
)
|
|
296
|
+
selected = ranked[:60]
|
|
297
|
+
selected_ids = {id(item) for item in selected}
|
|
298
|
+
|
|
299
|
+
def depth(element):
|
|
300
|
+
value, current, seen = 0, element.owner, set()
|
|
301
|
+
while current is not None and id(current) not in seen:
|
|
302
|
+
seen.add(id(current)); value += 1; current = getattr(current, 'owner', None)
|
|
303
|
+
return value
|
|
304
|
+
|
|
305
|
+
columns = defaultdict(list)
|
|
306
|
+
for item in selected:
|
|
307
|
+
columns[depth(item)].append(item)
|
|
308
|
+
depths = sorted(columns)
|
|
309
|
+
positions = {}
|
|
310
|
+
for column_index, level in enumerate(depths):
|
|
311
|
+
for row_index, item in enumerate(columns[level]):
|
|
312
|
+
positions[id(item)] = (30 + column_index * 240, 30 + row_index * 58)
|
|
313
|
+
|
|
314
|
+
width = max(500, 260 * max(1, len(depths)))
|
|
315
|
+
height = max(240, 70 + 58 * max((len(items) for items in columns.values()), default=1))
|
|
316
|
+
edges = []
|
|
317
|
+
nodes = []
|
|
318
|
+
colors = {'PartUsage':'#dff4ee', 'RequirementUsage':'#e8eefb', 'ActionUsage':'#fff0dc', 'PortUsage':'#efe5fa'}
|
|
319
|
+
for item in selected:
|
|
320
|
+
x, y = positions[id(item)]
|
|
321
|
+
owner = getattr(item, 'owner', None)
|
|
322
|
+
if owner is not None and id(owner) in selected_ids:
|
|
323
|
+
ox, oy = positions[id(owner)]
|
|
324
|
+
edges.append(f'<path d="M {ox + 190} {oy + 20} C {ox + 215} {oy + 20}, {x - 25} {y + 20}, {x} {y + 20}" fill="none" stroke="#91a7b3" stroke-width="1.5"/>')
|
|
325
|
+
kind = type(item).__name__
|
|
326
|
+
fill = colors.get(kind, '#f4f6f7')
|
|
327
|
+
label = escape(node_name(item)[:27])
|
|
328
|
+
nodes.append(f'<g><rect x="{x}" y="{y}" width="190" height="40" rx="7" fill="{fill}" stroke="#547180"/><text x="{x + 9}" y="{y + 17}" font-size="11" font-weight="700">{label}</text><text x="{x + 9}" y="{y + 32}" font-size="9" fill="#587487">{kind}</text></g>')
|
|
329
|
+
|
|
330
|
+
svg = f'''<svg xmlns="http://www.w3.org/2000/svg" width="100%" viewBox="0 0 {width} {height}" style="background:#fbfcfc;border:1px solid #d9e3e8;border-radius:10px">{''.join(edges)}{''.join(nodes)}</svg>'''
|
|
331
|
+
display(SVG(svg))
|
|
332
|
+
print(f'Displayed {len(selected)} elements and {len(edges)} ownership edges')`,
|
|
333
|
+
],
|
|
334
|
+
},
|
|
335
|
+
{
|
|
336
|
+
filename: '07-model-inventory-table.ipynb',
|
|
337
|
+
title: 'Model inventory table',
|
|
338
|
+
description: 'Filter a model-independent element table and export the current result to CSV.',
|
|
339
|
+
codeCells: [
|
|
340
|
+
`from html import escape
|
|
341
|
+
from IPython.display import HTML, display
|
|
342
|
+
|
|
343
|
+
KIND_FILTER = '' # Example: 'PartUsage' or 'Requirement'
|
|
344
|
+
NAME_FILTER = '' # Case-insensitive name fragment
|
|
345
|
+
ROW_LIMIT = 250
|
|
346
|
+
|
|
347
|
+
semantic_elements = (
|
|
348
|
+
list(model.elements(syside.Usage, include_subtypes=True))
|
|
349
|
+
+ list(model.elements(syside.Definition, include_subtypes=True))
|
|
350
|
+
)
|
|
351
|
+
|
|
352
|
+
def text(value):
|
|
353
|
+
return str(value) if value else ''
|
|
354
|
+
|
|
355
|
+
records = []
|
|
356
|
+
for item in semantic_elements:
|
|
357
|
+
kind = type(item).__name__
|
|
358
|
+
name = text(item.name or item.declared_name)
|
|
359
|
+
qualified_name = text(item.qualified_name)
|
|
360
|
+
owner = getattr(item, 'owner', None)
|
|
361
|
+
owner_name = text(getattr(owner, 'qualified_name', None) or getattr(owner, 'name', None))
|
|
362
|
+
if KIND_FILTER and KIND_FILTER.casefold() not in kind.casefold():
|
|
363
|
+
continue
|
|
364
|
+
if NAME_FILTER and NAME_FILTER.casefold() not in (name + ' ' + qualified_name).casefold():
|
|
365
|
+
continue
|
|
366
|
+
records.append({'kind': kind, 'name': name, 'qualified_name': qualified_name, 'owner': owner_name})
|
|
367
|
+
|
|
368
|
+
records.sort(key=lambda row: (row['kind'], row['qualified_name'], row['name']))
|
|
369
|
+
visible = records[:ROW_LIMIT]
|
|
370
|
+
rows = ''.join(
|
|
371
|
+
'<tr>' + ''.join(f'<td>{escape(row[key])}</td>' for key in ('kind', 'name', 'qualified_name', 'owner')) + '</tr>'
|
|
372
|
+
for row in visible
|
|
373
|
+
)
|
|
374
|
+
display(HTML(f'''<p><strong>{len(records):,}</strong> matching elements; showing {len(visible):,}.</p>
|
|
375
|
+
<div style="max-height:620px;overflow:auto"><table style="font-size:12px"><thead style="position:sticky;top:0;background:white"><tr><th>Kind</th><th>Name</th><th>Qualified name</th><th>Owner</th></tr></thead><tbody>{rows}</tbody></table></div>'''))`,
|
|
376
|
+
`import csv
|
|
377
|
+
|
|
378
|
+
OUTPUT = Path('model-inventory.csv')
|
|
379
|
+
with OUTPUT.open('w', newline='', encoding='utf-8') as stream:
|
|
380
|
+
writer = csv.DictWriter(stream, fieldnames=['kind', 'name', 'qualified_name', 'owner'])
|
|
381
|
+
writer.writeheader()
|
|
382
|
+
writer.writerows(records)
|
|
383
|
+
print(f'Exported {len(records):,} rows to {OUTPUT.resolve()}')`,
|
|
384
|
+
],
|
|
385
|
+
},
|
|
386
|
+
];
|
|
387
|
+
function markdownCell(starter) {
|
|
388
|
+
return {
|
|
389
|
+
cell_type: 'markdown',
|
|
390
|
+
metadata: {},
|
|
391
|
+
source: [`# ${starter.title}\n\n${starter.description}\n\nThis sample uses only standard SysML v2 concepts and automatically discovers the project's \`model/\` or \`src/\` directory.`],
|
|
392
|
+
};
|
|
393
|
+
}
|
|
394
|
+
function codeCell(source) {
|
|
395
|
+
return { cell_type: 'code', metadata: {}, source: [source], execution_count: null, outputs: [] };
|
|
396
|
+
}
|
|
397
|
+
function notebook(starter) {
|
|
398
|
+
const cells = [markdownCell(starter), codeCell(LOAD_MODEL), ...starter.codeCells.map(codeCell)]
|
|
399
|
+
.map((cell, index) => ({ ...cell, id: `memo-${index + 1}` }));
|
|
400
|
+
return {
|
|
401
|
+
cells,
|
|
402
|
+
metadata: {
|
|
403
|
+
kernelspec: { display_name: 'Python 3 (ipykernel)', language: 'python', name: 'python3' },
|
|
404
|
+
language_info: { name: 'python', version: '3' },
|
|
405
|
+
memo: { starter: true, description: starter.description },
|
|
406
|
+
},
|
|
407
|
+
nbformat: 4,
|
|
408
|
+
nbformat_minor: 5,
|
|
409
|
+
};
|
|
410
|
+
}
|
|
411
|
+
/** Add model-independent Jupyter samples to a newly initialized project. */
|
|
412
|
+
export function scaffoldAnalysisSamples(projectDir) {
|
|
413
|
+
const samplesDir = resolve(projectDir, 'analysis', 'Samples');
|
|
414
|
+
mkdirSync(samplesDir, { recursive: true });
|
|
415
|
+
const readmePath = resolve(samplesDir, 'README.md');
|
|
416
|
+
if (!existsSync(readmePath))
|
|
417
|
+
writeFileSync(readmePath, SAMPLES_README);
|
|
418
|
+
for (const starter of STARTERS) {
|
|
419
|
+
const path = resolve(samplesDir, starter.filename);
|
|
420
|
+
if (!existsSync(path))
|
|
421
|
+
writeFileSync(path, JSON.stringify(notebook(starter), null, 2) + '\n');
|
|
422
|
+
}
|
|
423
|
+
}
|
|
424
|
+
export const analysisSampleNames = STARTERS.map(starter => starter.filename);
|
|
425
|
+
//# sourceMappingURL=analysis-starters.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"analysis-starters.js","sourceRoot":"","sources":["../src/analysis-starters.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAeA,MAAM,WAAW,iBAAiB;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,OAAO,CAAC;CACtB;AAED,MAAM,WAAW,gBAAgB;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,iBAAiB;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,OAAO,CAAC;CACtB;AAMD,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,iBAAiB,EAAE,CAsBvE;AAED,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,gBAAgB,EAAE,CAwBpE;AAED,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,iBAAiB,EAAE,CAUtE;AAED,wBAAgB,qBAAqB,CAAC,OAAO,SAAgB,GAAG,IAAI,CAanE;AAED,wBAAgB,oBAAoB,CAAC,OAAO,SAAgB,GAAG,IAAI,CAWlE;AAED,wBAAgB,mBAAmB,CAAC,OAAO,SAAgB,GAAG,IAAI,CAajE;AAED,MAAM,WAAW,WAAW;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;CACrB;AAsFD,wBAAsB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,EAAE,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CA2F/F"}
|
|
@@ -5,6 +5,7 @@ import { parse as parseYaml, stringify as stringifyYaml } from 'yaml';
|
|
|
5
5
|
import chalk from 'chalk';
|
|
6
6
|
import { findConfigFile, findMemoManifests, installContentPackage, resolveManifestPath, } from '@memoarchitect/tools';
|
|
7
7
|
import { createLockFile } from '../lock.js';
|
|
8
|
+
import { scaffoldAnalysisSamples } from '../analysis-starters.js';
|
|
8
9
|
function manifests(fromDir) {
|
|
9
10
|
return findMemoManifests(fromDir);
|
|
10
11
|
}
|
|
@@ -238,6 +239,7 @@ export async function initCommand(name, options) {
|
|
|
238
239
|
const target = preparedTarget ?? ensureTarget(name, example.id);
|
|
239
240
|
console.log(chalk.bold(`\n📦 Creating project from example: ${example.id}\n`));
|
|
240
241
|
cpSync(example.path, target.projectDir, { recursive: true });
|
|
242
|
+
scaffoldAnalysisSamples(target.projectDir);
|
|
241
243
|
console.log(chalk.green(target.inPlace ? '\n✅ Project created in current directory' : `\n✅ Project created at ./${name}`));
|
|
242
244
|
return;
|
|
243
245
|
}
|
|
@@ -253,6 +255,7 @@ export async function initCommand(name, options) {
|
|
|
253
255
|
console.log(chalk.bold(`\n📦 Creating MEMO project: ${target.projectName} (template: ${templateId})\n`));
|
|
254
256
|
const templateDir = resolveManifestPath(loaded, templatePath);
|
|
255
257
|
cpSync(templateDir, target.projectDir, { recursive: true });
|
|
258
|
+
scaffoldAnalysisSamples(target.projectDir);
|
|
256
259
|
replaceTokens(target.projectDir, {
|
|
257
260
|
name: target.projectName,
|
|
258
261
|
npmName: npmPackageName(target.projectName),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pack.d.ts","sourceRoot":"","sources":["../../src/commands/pack.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"pack.d.ts","sourceRoot":"","sources":["../../src/commands/pack.ts"],"names":[],"mappings":"AAyEA,wBAAsB,WAAW,CAAC,OAAO,GAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAA;CAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAiBlF"}
|
|
@@ -4,12 +4,15 @@ import { createGzip } from 'node:zlib';
|
|
|
4
4
|
import { pipeline } from 'node:stream/promises';
|
|
5
5
|
import chalk from 'chalk';
|
|
6
6
|
import { packageWithConfiguredTool } from '../model/toolchain.js';
|
|
7
|
+
import { isIgnoredDirectory } from '../model/sysml-files.js';
|
|
7
8
|
import { buildProjectSnapshot } from '../operations/project-snapshot.js';
|
|
8
9
|
function collectProjectFiles(dir, root) {
|
|
9
10
|
const files = [];
|
|
10
11
|
for (const entry of readdirSync(dir, { withFileTypes: true })) {
|
|
11
|
-
|
|
12
|
-
|
|
12
|
+
// Tool output and vendored dependencies are excluded by the same rule
|
|
13
|
+
// the source walker uses, so a package can never ship (or claim in its
|
|
14
|
+
// manifest) files the rest of the toolchain ignores.
|
|
15
|
+
if (isIgnoredDirectory(entry.name) || entry.name.endsWith('.kpar'))
|
|
13
16
|
continue;
|
|
14
17
|
const full = resolve(dir, entry.name);
|
|
15
18
|
if (entry.isDirectory())
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pack.js","sourceRoot":"","sources":["../../src/commands/pack.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,iBAAiB,EAAE,UAAU,EAAE,YAAY,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAC/G,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACvC,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,yBAAyB,EAAE,MAAM,uBAAuB,CAAC;AAClE,OAAO,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AAEzE,SAAS,mBAAmB,CAAC,GAAW,EAAE,IAAY;IAClD,MAAM,KAAK,GAAwC,EAAE,CAAC;IACtD,KAAK,MAAM,KAAK,IAAI,WAAW,CAAC,GAAG,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;QAC5D,
|
|
1
|
+
{"version":3,"file":"pack.js","sourceRoot":"","sources":["../../src/commands/pack.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
+
import { findSysmlFiles } from '../model/sysml-files.js';
|
|
1
2
|
import type { QueryContext } from '../dhf/query-engine.js';
|
|
2
3
|
import type { MEMOConfig } from '../model/config.js';
|
|
3
|
-
export
|
|
4
|
+
export { findSysmlFiles };
|
|
4
5
|
export interface LoadedProject {
|
|
5
6
|
ctx: QueryContext;
|
|
6
7
|
config: MEMOConfig;
|