@specverse/engines 6.1.0 → 6.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"community-detection.d.ts","sourceRoot":"","sources":["../../src/analyse-prepass/community-detection.ts"],"names":[],"mappings":"AA+BA,MAAM,WAAW,mBAAmB;IAClC,kHAAkH;IAClH,aAAa,EAAE,MAAM,CAAC;IACtB,2BAA2B;IAC3B,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,mFAAmF;IACnF,UAAU,EAAE,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,eAAe,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACzE,wEAAwE;IACxE,iBAAiB,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,cAAc;IAC7B,sFAAsF;IACtF,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,4DAA4D;IAC5D,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,uFAAuF;IACvF,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,UAAU,aAAa;IACrB,IAAI,EAAE,MAAM,CAAC;CACd;AACD,UAAU,mBAAmB;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;;;;;;GAOG;AACH,wBAAgB,sBAAsB,CACpC,QAAQ,EAAE,aAAa,EAAE,EACzB,aAAa,EAAE,mBAAmB,EAAE,EACpC,IAAI,GAAE,cAAmB,GACxB,mBAAmB,EAAE,
|
|
1
|
+
{"version":3,"file":"community-detection.d.ts","sourceRoot":"","sources":["../../src/analyse-prepass/community-detection.ts"],"names":[],"mappings":"AA+BA,MAAM,WAAW,mBAAmB;IAClC,kHAAkH;IAClH,aAAa,EAAE,MAAM,CAAC;IACtB,2BAA2B;IAC3B,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,mFAAmF;IACnF,UAAU,EAAE,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,eAAe,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACzE,wEAAwE;IACxE,iBAAiB,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,cAAc;IAC7B,sFAAsF;IACtF,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,4DAA4D;IAC5D,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,uFAAuF;IACvF,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,UAAU,aAAa;IACrB,IAAI,EAAE,MAAM,CAAC;CACd;AACD,UAAU,mBAAmB;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;;;;;;GAOG;AACH,wBAAgB,sBAAsB,CACpC,QAAQ,EAAE,aAAa,EAAE,EACzB,aAAa,EAAE,mBAAmB,EAAE,EACpC,IAAI,GAAE,cAAmB,GACxB,mBAAmB,EAAE,CA+GvB;AA6DD;;;GAGG;AACH,wBAAgB,2BAA2B,CAAC,WAAW,EAAE,mBAAmB,EAAE,GAAG,MAAM,CAmDtF"}
|
|
@@ -71,13 +71,22 @@ export function detectModelCommunities(entities, relationships, opts = {}) {
|
|
|
71
71
|
}
|
|
72
72
|
// Sort communities by size descending — bigger first is more useful for
|
|
73
73
|
// human inspection and for the LLM (sets the dominant domains first).
|
|
74
|
-
// Singletons (
|
|
75
|
-
//
|
|
76
|
-
//
|
|
77
|
-
|
|
74
|
+
// Singletons (entities with no relationships in source) are SET ASIDE and
|
|
75
|
+
// bundled into a residual "MiscDomain" suggestion at the end. Empirical
|
|
76
|
+
// motivation (cal-com 2026-04-29): without surfacing isolated entities,
|
|
77
|
+
// the LLM dropped 6 of cal-com's 11 utility models from the spec — Avatar,
|
|
78
|
+
// HolidayCache, SelectedSlots, Task, TempOrgRedirect, VideoCallGuest. Most
|
|
79
|
+
// were utility/cache models with no domain home, so the LLM had nowhere
|
|
80
|
+
// obvious to place them and silently omitted them. Surfacing them as a
|
|
81
|
+
// residual cluster gives the LLM an explicit target.
|
|
82
|
+
const allCommunities = Array.from(grouped.entries())
|
|
78
83
|
.map(([id, members]) => ({ id, members: members.sort() }))
|
|
79
|
-
.filter((c) => c.members.length >= minSize)
|
|
80
84
|
.sort((a, b) => b.members.length - a.members.length);
|
|
85
|
+
const sortedCommunities = allCommunities.filter((c) => c.members.length >= minSize);
|
|
86
|
+
const isolatedEntities = allCommunities
|
|
87
|
+
.filter((c) => c.members.length < minSize)
|
|
88
|
+
.flatMap((c) => c.members)
|
|
89
|
+
.sort();
|
|
81
90
|
// Map original community id → final 1-indexed display number (after sort)
|
|
82
91
|
const idToDisplayNum = new Map();
|
|
83
92
|
sortedCommunities.forEach((comm, idx) => idToDisplayNum.set(comm.id, idx + 1));
|
|
@@ -118,6 +127,19 @@ export function detectModelCommunities(entities, relationships, opts = {}) {
|
|
|
118
127
|
internalEdgeCount: internalEdgeCount / 2, // each undirected edge counted twice in the loop
|
|
119
128
|
});
|
|
120
129
|
}
|
|
130
|
+
// Append a residual "MiscDomain" if there are isolated entities. This
|
|
131
|
+
// surfaces utility/cache/lookup models that have no relationships and
|
|
132
|
+
// would otherwise be dropped by the LLM. The LLM is told (in the prompt)
|
|
133
|
+
// that this component is a placement HINT — it MAY merge each entry into
|
|
134
|
+
// a more appropriate domain component if one fits semantically.
|
|
135
|
+
if (isolatedEntities.length > 0) {
|
|
136
|
+
suggestions.push({
|
|
137
|
+
suggestedName: 'MiscDomain',
|
|
138
|
+
entities: isolatedEntities,
|
|
139
|
+
crossEdges: [],
|
|
140
|
+
internalEdgeCount: 0,
|
|
141
|
+
});
|
|
142
|
+
}
|
|
121
143
|
return suggestions;
|
|
122
144
|
}
|
|
123
145
|
/**
|
|
@@ -200,8 +222,20 @@ export function formatSuggestionsAsMarkdown(suggestions) {
|
|
|
200
222
|
lines.push('');
|
|
201
223
|
for (let i = 0; i < suggestions.length; i++) {
|
|
202
224
|
const s = suggestions[i];
|
|
203
|
-
|
|
225
|
+
const isMisc = s.suggestedName === 'MiscDomain' && s.crossEdges.length === 0 && s.internalEdgeCount === 0;
|
|
226
|
+
const headerSuffix = isMisc
|
|
227
|
+
? ` (${s.entities.length} isolated entities, RESIDUAL — placement hints only)`
|
|
228
|
+
: ` (${s.entities.length} entities, suggested)`;
|
|
229
|
+
lines.push(`### Component ${i + 1}: ${s.suggestedName}${headerSuffix}`);
|
|
204
230
|
lines.push('');
|
|
231
|
+
if (isMisc) {
|
|
232
|
+
lines.push('These entities have NO relationships in source. They are utility / cache /');
|
|
233
|
+
lines.push('lookup / temp models with no domain home from graph analysis. **MUST be');
|
|
234
|
+
lines.push('included in the spec.** Place each one in whichever existing domain component');
|
|
235
|
+
lines.push('it semantically belongs to (e.g. Avatar → UserDomain, HolidayCache →');
|
|
236
|
+
lines.push('CalendarDomain). If none fits, keep them under a MiscDomain component.');
|
|
237
|
+
lines.push('');
|
|
238
|
+
}
|
|
205
239
|
// Render members 6 per line for readability
|
|
206
240
|
for (let j = 0; j < s.entities.length; j += 6) {
|
|
207
241
|
lines.push(' ' + s.entities.slice(j, j + 6).join(', '));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"community-detection.js","sourceRoot":"","sources":["../../src/analyse-prepass/community-detection.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AACH,yEAAyE;AACzE,gFAAgF;AAChF,4EAA4E;AAC5E,uDAAuD;AACvD,8DAA8D;AAC9D,OAAO,KAAK,gBAAgB,MAAM,YAAY,CAAC;AAC/C,8DAA8D;AAC9D,OAAO,KAAK,aAAa,MAAM,gCAAgC,CAAC;AAEhE,8DAA8D;AAC9D,MAAM,KAAK,GAAS,gBAAwB,CAAC,OAAO,IAAI,gBAAgB,CAAC;AACzE,8DAA8D;AAC9D,MAAM,OAAO,GAAS,aAAqB,CAAC,OAAO,IAAI,aAAa,CAAC;AA+BrE;;;;;;;GAOG;AACH,MAAM,UAAU,sBAAsB,CACpC,QAAyB,EACzB,aAAoC,EACpC,OAAuB,EAAE;IAEzB,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,IAAI,GAAG,CAAC;IAC1C,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,IAAI,CAAC,CAAC;IAElC,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxB,6DAA6D;QAC7D,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,yEAAyE;IACzE,qEAAqE;IACrE,MAAM,CAAC,GAAG,IAAI,KAAK,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,cAAc,EAAE,KAAK,EAAE,CAAC,CAAC;IACnE,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;QAC3B,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC;YAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAChD,CAAC;IACD,KAAK,MAAM,GAAG,IAAI,aAAa,EAAE,CAAC;QAChC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;YAAE,SAAS;QACzD,IAAI,GAAG,CAAC,IAAI,KAAK,GAAG,CAAC,EAAE;YAAE,SAAS;QAClC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;YACjC,CAAC,CAAC,iBAAiB,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;QACxC,CAAC;IACH,CAAC;IAED,IAAI,CAAC,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IAE7C,+EAA+E;IAC/E,MAAM,YAAY,GAAG,OAAO,CAAC,CAAC,EAAE,EAAE,UAAU,EAAE,CAAC,CAAC;IAEhD,kCAAkC;IAClC,MAAM,OAAO,GAAG,IAAI,GAAG,EAAoB,CAAC;IAC5C,KAAK,MAAM,CAAC,IAAI,EAAE,WAAW,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,YAAsC,CAAC,EAAE,CAAC;QACzF,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;QAC/C,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACnB,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;IACpC,CAAC;IAED,wEAAwE;IACxE,sEAAsE;IACtE,
|
|
1
|
+
{"version":3,"file":"community-detection.js","sourceRoot":"","sources":["../../src/analyse-prepass/community-detection.ts"],"names":[],"mappings":"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"}
|