@specverse/engines 6.0.27 → 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.
- package/dist/ai/prompt-loader.d.ts.map +1 -1
- package/dist/ai/prompt-loader.js +30 -13
- package/dist/ai/prompt-loader.js.map +1 -1
- package/dist/ai/prompt-runner.d.ts.map +1 -1
- package/dist/ai/prompt-runner.js +73 -2
- package/dist/ai/prompt-runner.js.map +1 -1
- package/dist/analyse-prepass/community-detection.d.ts.map +1 -1
- package/dist/analyse-prepass/community-detection.js +40 -6
- package/dist/analyse-prepass/community-detection.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prompt-loader.d.ts","sourceRoot":"","sources":["../../src/ai/prompt-loader.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;
|
|
1
|
+
{"version":3,"file":"prompt-loader.d.ts","sourceRoot":"","sources":["../../src/ai/prompt-loader.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AA4DH;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAgC1E;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAChC,UAAU,EAAE,MAAM,EAClB,SAAS,CAAC,EAAE,MAAM,GACjB;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,EAAE,CAAA;CAAE,CA+BtC;AAED;;GAEG;AACH,wBAAgB,0BAA0B,CACxC,SAAS,CAAC,EAAE,MAAM,GACjB;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,EAAE,CAyCnD"}
|
package/dist/ai/prompt-loader.js
CHANGED
|
@@ -45,6 +45,23 @@ function resolvePromptsBase() {
|
|
|
45
45
|
}
|
|
46
46
|
return null;
|
|
47
47
|
}
|
|
48
|
+
/**
|
|
49
|
+
* List frozen v<N>/ directories under core/standard/ for diagnostic output
|
|
50
|
+
* when an unknown version is requested.
|
|
51
|
+
*/
|
|
52
|
+
function listAvailableFrozenVersions(promptsBase) {
|
|
53
|
+
const standardDir = join(promptsBase, 'core/standard');
|
|
54
|
+
if (!existsSync(standardDir))
|
|
55
|
+
return [];
|
|
56
|
+
try {
|
|
57
|
+
return readdirSync(standardDir)
|
|
58
|
+
.filter((name) => /^v\d+$/.test(name))
|
|
59
|
+
.sort((a, b) => parseInt(a.slice(1), 10) - parseInt(b.slice(1), 10));
|
|
60
|
+
}
|
|
61
|
+
catch {
|
|
62
|
+
return [];
|
|
63
|
+
}
|
|
64
|
+
}
|
|
48
65
|
/**
|
|
49
66
|
* Resolve prompt version to actual file system path
|
|
50
67
|
*/
|
|
@@ -53,20 +70,20 @@ export function resolvePromptPath(pver, _basePath) {
|
|
|
53
70
|
if (!promptsBase) {
|
|
54
71
|
throw new Error('Could not locate prompts directory. Ensure @specverse/assets is installed (npm install @specverse/assets).');
|
|
55
72
|
}
|
|
56
|
-
// Resolve version to path
|
|
73
|
+
// Resolve version to path. Accept 'default' (active iteration tip) or any
|
|
74
|
+
// explicit major-version directory name (v9, v10, v11, ...).
|
|
75
|
+
// Convention (see core/standard/README.md): default/ is the live directory
|
|
76
|
+
// that ships the latest prompts; v<N>/ are FROZEN baselines kept for diff /
|
|
77
|
+
// rollback / A-B testing. There is NO fallback from default → v<N> — if
|
|
78
|
+
// default/ is missing, that's a packaging bug we want to surface, not paper
|
|
79
|
+
// over. (The previous silent fallback shipped stale prompts unnoticed.)
|
|
57
80
|
if (pver === 'default' || pver.match(/^v\d+$/)) {
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
if (!existsSync(versionPath)) {
|
|
65
|
-
throw new Error(`Default prompt version (${latestVersion}) not found at ${versionPath}`);
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
else if (!existsSync(versionPath)) {
|
|
69
|
-
throw new Error(`Prompt version ${pver} not found at ${versionPath}`);
|
|
81
|
+
const versionPath = join(promptsBase, 'core/standard', pver);
|
|
82
|
+
if (!existsSync(versionPath)) {
|
|
83
|
+
throw new Error(`Prompt version '${pver}' not found at ${versionPath}. ` +
|
|
84
|
+
(pver === 'default'
|
|
85
|
+
? 'This indicates a broken @specverse/assets install — the default/ directory should always ship.'
|
|
86
|
+
: `Available frozen versions: ${listAvailableFrozenVersions(promptsBase).join(', ') || '(none)'}`));
|
|
70
87
|
}
|
|
71
88
|
return versionPath;
|
|
72
89
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prompt-loader.js","sourceRoot":"","sources":["../../src/ai/prompt-loader.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,IAAI,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AACpC,OAAO,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AAEvC,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAE/C;;;;;;GAMG;AACH,SAAS,kBAAkB;IACzB,kCAAkC;IAClC,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC,gCAAgC,CAAC,CAAC;QAC9D,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,SAAS,CAAC,CAAC;QACjD,IAAI,UAAU,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC,EAAE,CAAC;YACrD,OAAO,UAAU,CAAC;QACpB,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,mEAAmE;IACrE,CAAC;IAED,4DAA4D;IAC5D,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAClD,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;IACtC,MAAM,UAAU,GAAG;QACjB,OAAO,CAAC,SAAS,EAAE,mBAAmB,CAAC,EAAQ,qCAAqC;QACpF,OAAO,CAAC,SAAS,EAAE,sBAAsB,CAAC,EAAK,gCAAgC;QAC/E,OAAO,CAAC,SAAS,EAAE,yBAAyB,CAAC,EAAE,iCAAiC;KACjF,CAAC;IACF,KAAK,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;QAC7B,IAAI,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC,EAAE,CAAC;YAC9C,OAAO,GAAG,CAAC;QACb,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED
|
|
1
|
+
{"version":3,"file":"prompt-loader.js","sourceRoot":"","sources":["../../src/ai/prompt-loader.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,IAAI,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AACpC,OAAO,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AAEvC,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAE/C;;;;;;GAMG;AACH,SAAS,kBAAkB;IACzB,kCAAkC;IAClC,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC,gCAAgC,CAAC,CAAC;QAC9D,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,SAAS,CAAC,CAAC;QACjD,IAAI,UAAU,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC,EAAE,CAAC;YACrD,OAAO,UAAU,CAAC;QACpB,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,mEAAmE;IACrE,CAAC;IAED,4DAA4D;IAC5D,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAClD,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;IACtC,MAAM,UAAU,GAAG;QACjB,OAAO,CAAC,SAAS,EAAE,mBAAmB,CAAC,EAAQ,qCAAqC;QACpF,OAAO,CAAC,SAAS,EAAE,sBAAsB,CAAC,EAAK,gCAAgC;QAC/E,OAAO,CAAC,SAAS,EAAE,yBAAyB,CAAC,EAAE,iCAAiC;KACjF,CAAC;IACF,KAAK,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;QAC7B,IAAI,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC,EAAE,CAAC;YAC9C,OAAO,GAAG,CAAC;QACb,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;GAGG;AACH,SAAS,2BAA2B,CAAC,WAAmB;IACtD,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,EAAE,eAAe,CAAC,CAAC;IACvD,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC;QAAE,OAAO,EAAE,CAAC;IACxC,IAAI,CAAC;QACH,OAAO,WAAW,CAAC,WAAW,CAAC;aAC5B,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aACrC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;IACzE,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAAC,IAAY,EAAE,SAAkB;IAChE,MAAM,WAAW,GAAG,kBAAkB,EAAE,CAAC;IACzC,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,MAAM,IAAI,KAAK,CACb,4GAA4G,CAC7G,CAAC;IACJ,CAAC;IAED,0EAA0E;IAC1E,6DAA6D;IAC7D,2EAA2E;IAC3E,4EAA4E;IAC5E,wEAAwE;IACxE,4EAA4E;IAC5E,wEAAwE;IACxE,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC/C,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,EAAE,eAAe,EAAE,IAAI,CAAC,CAAC;QAC7D,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;YAC7B,MAAM,IAAI,KAAK,CACb,mBAAmB,IAAI,kBAAkB,WAAW,IAAI;gBACxD,CAAC,IAAI,KAAK,SAAS;oBACjB,CAAC,CAAC,gGAAgG;oBAClG,CAAC,CAAC,8BAA8B,2BAA2B,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,QAAQ,EAAE,CAAC,CACrG,CAAC;QACJ,CAAC;QACD,OAAO,WAAW,CAAC;IACrB,CAAC;SAAM,IAAI,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QACtC,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,0BAA0B;QAChE,OAAO,OAAO,CAAC,UAAU,CAAC,CAAC;IAC7B,CAAC;SAAM,CAAC;QACN,MAAM,IAAI,KAAK,CAAC,2BAA2B,IAAI,+CAA+C,CAAC,CAAC;IAClG,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,kBAAkB,CAChC,UAAkB,EAClB,SAAkB;IAElB,MAAM,MAAM,GAAa,EAAE,CAAC;IAE5B,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC5B,MAAM,CAAC,IAAI,CAAC,+BAA+B,UAAU,EAAE,CAAC,CAAC;QACzD,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;IAClC,CAAC;IAED,4DAA4D;IAC5D,IAAI,SAAS,EAAE,CAAC;QACd,MAAM,YAAY,GAAG,IAAI,CAAC,UAAU,EAAE,GAAG,SAAS,cAAc,CAAC,CAAC;QAClE,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;YAC9B,MAAM,CAAC,IAAI,CAAC,mCAAmC,YAAY,EAAE,CAAC,CAAC;QACjE,CAAC;IACH,CAAC;SAAM,CAAC;QACN,sCAAsC;QACtC,MAAM,aAAa,GAAG;YACpB,qBAAqB;YACrB,oBAAoB;YACpB,yBAAyB;YACzB,qBAAqB;SACtB,CAAC;QACF,KAAK,MAAM,IAAI,IAAI,aAAa,EAAE,CAAC;YACjC,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;YACxC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC1B,MAAM,CAAC,IAAI,CAAC,mCAAmC,QAAQ,EAAE,CAAC,CAAC;YAC7D,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;AAChD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,0BAA0B,CACxC,SAAkB;IAElB,IAAI,CAAC;QACH,MAAM,WAAW,GAAG,kBAAkB,EAAE,CAAC;QACzC,IAAI,CAAC,WAAW;YAAE,OAAO,EAAE,CAAC;QAC5B,MAAM,YAAY,GAAG,IAAI,CAAC,WAAW,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;QAC3D,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC;YAAE,OAAO,EAAE,CAAC;QAEzC,MAAM,QAAQ,GAAsD,EAAE,CAAC;QACvE,MAAM,OAAO,GAAG,WAAW,CAAC,YAAY,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;QAEnE,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC5B,IAAI,KAAK,CAAC,WAAW,EAAE,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACtD,MAAM,WAAW,GAAG,IAAI,CAAC,YAAY,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;gBAEnD,wDAAwD;gBACxD,IAAI,WAAW,GAAG,YAAY,KAAK,CAAC,IAAI,GAAG,CAAC;gBAC5C,IAAI,KAAK,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;oBACxB,WAAW,GAAG,6CAA6C,CAAC;gBAC9D,CAAC;qBAAM,IAAI,KAAK,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;oBAC/B,WAAW,GAAG,uCAAuC,CAAC;gBACxD,CAAC;gBAED,QAAQ,CAAC,IAAI,CAAC;oBACZ,OAAO,EAAE,KAAK,CAAC,IAAI;oBACnB,IAAI,EAAE,WAAW;oBACjB,IAAI,EAAE,WAAW;iBAClB,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,kCAAkC;QAClC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;YACrB,MAAM,IAAI,GAAG,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC;YACrD,MAAM,IAAI,GAAG,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC;YACrD,OAAO,IAAI,GAAG,IAAI,CAAC;QACrB,CAAC,CAAC,CAAC;QAEH,OAAO,QAAQ,CAAC;IAClB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prompt-runner.d.ts","sourceRoot":"","sources":["../../src/ai/prompt-runner.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAgB,KAAK,aAAa,EAAE,MAAM,IAAI,CAAC;AAEtD,OAAO,EAAgB,KAAK,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAe7E,6EAA6E;AAC7E,MAAM,WAAW,UAAU;IACzB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE;QACP,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,CAAC;IACF,IAAI,CAAC,EAAE;QACL,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,CAAC;CACH;AAED,+DAA+D;AAC/D,wBAAgB,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,UAAU,
|
|
1
|
+
{"version":3,"file":"prompt-runner.d.ts","sourceRoot":"","sources":["../../src/ai/prompt-runner.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAgB,KAAK,aAAa,EAAE,MAAM,IAAI,CAAC;AAEtD,OAAO,EAAgB,KAAK,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAe7E,6EAA6E;AAC7E,MAAM,WAAW,UAAU;IACzB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE;QACP,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,CAAC;IACF,IAAI,CAAC,EAAE;QACL,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,CAAC;CACH;AAED,+DAA+D;AAC/D,wBAAgB,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,UAAU,CAiCxD;AAED,0FAA0F;AAC1F,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,GAAG,MAAM,CAM3F;AAqED,sDAAsD;AACtD,wBAAgB,cAAc,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM,CAQzD;AAED,gFAAgF;AAChF,wBAAgB,YAAY,CAAC,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,GAAG,MAAM,CAGnG;AAED,MAAM,WAAW,oBAAqB,SAAQ,mBAAmB;IAC/D,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,EAAE,SAAuB,EAAE,GAAG,YAAY,EAAE,GAAE,oBAAyB,GAAG,aAAa,CAEpH;AAED,MAAM,WAAW,gBAAgB;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;IAC3C,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,YAAY,CAAC,EAAE,mBAAmB,CAAC;IACnC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC;IAChE,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE;QAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAC;IACxD,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,wBAAsB,SAAS,CAAC,EAC9B,SAAS,EACT,MAAM,EACN,KAAK,EACL,YAAiB,EACjB,SAAmB,EACnB,WAAW,EACX,UAAe,GAChB,EAAE,gBAAgB,GAAG,OAAO,CAAC,eAAe,CAAC,CAoC7C;AAED;gDACgD;AAChD,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAIhD;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,CAW9F"}
|
package/dist/ai/prompt-runner.js
CHANGED
|
@@ -49,8 +49,10 @@ export function loadPrompt(operation) {
|
|
|
49
49
|
/* engines also not installed — defer to error below */
|
|
50
50
|
}
|
|
51
51
|
for (const p of candidates) {
|
|
52
|
-
if (existsSync(p))
|
|
53
|
-
|
|
52
|
+
if (existsSync(p)) {
|
|
53
|
+
const raw = yaml.load(readFileSync(p, 'utf8'));
|
|
54
|
+
return inlinePartials(raw);
|
|
55
|
+
}
|
|
54
56
|
}
|
|
55
57
|
throw new Error(`prompt file not found for "${operation}". Tried:\n ${candidates.join('\n ')}\n` +
|
|
56
58
|
'Ensure @specverse/assets is installed (npm install @specverse/assets).');
|
|
@@ -65,6 +67,75 @@ export function substitute(text, values) {
|
|
|
65
67
|
return m;
|
|
66
68
|
});
|
|
67
69
|
}
|
|
70
|
+
/**
|
|
71
|
+
* Resolve `<assets>/prompts/core/standard/default/partials/<name>.md`.
|
|
72
|
+
* Partials are reusable Markdown blocks shared across multiple prompts —
|
|
73
|
+
* `before-starting`, `output-format-dual-block`, etc. Use `{{> partial-name}}`
|
|
74
|
+
* in a prompt template (anywhere — system.role, user.template, etc) to
|
|
75
|
+
* include one.
|
|
76
|
+
*
|
|
77
|
+
* Returns null if the partial file doesn't exist; the caller leaves the
|
|
78
|
+
* `{{> ... }}` token literal in the assembled prompt — better than silent
|
|
79
|
+
* omission (typos become obvious).
|
|
80
|
+
*/
|
|
81
|
+
function resolvePartial(name) {
|
|
82
|
+
if (!/^[a-z][a-z0-9-]*$/.test(name))
|
|
83
|
+
return null; // strict whitelist
|
|
84
|
+
try {
|
|
85
|
+
const assetsPkg = require.resolve('@specverse/assets/package.json');
|
|
86
|
+
const path = join(dirname(assetsPkg), 'prompts/core/standard/default/partials', `${name}.md`);
|
|
87
|
+
if (existsSync(path))
|
|
88
|
+
return readFileSync(path, 'utf8').replace(/\n+$/, '');
|
|
89
|
+
}
|
|
90
|
+
catch {
|
|
91
|
+
/* fall through */
|
|
92
|
+
}
|
|
93
|
+
return null;
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* Expand `{{> partial-name}}` references inside any string. Recursive
|
|
97
|
+
* (up to 3 levels of nesting) to allow partials to include partials.
|
|
98
|
+
* Variables ({{var}}) are left untouched — separate substitution pass
|
|
99
|
+
* handles those at user-template assembly time. Variables in system.role
|
|
100
|
+
* remain literal per the convention (LLM resolves them from context).
|
|
101
|
+
*/
|
|
102
|
+
function expandPartials(text) {
|
|
103
|
+
let expanded = text;
|
|
104
|
+
for (let depth = 0; depth < 3; depth++) {
|
|
105
|
+
let changed = false;
|
|
106
|
+
expanded = expanded.replace(/\{\{>\s*([a-z][a-z0-9-]*)\s*\}\}/g, (m, name) => {
|
|
107
|
+
const partial = resolvePartial(name);
|
|
108
|
+
if (partial !== null) {
|
|
109
|
+
changed = true;
|
|
110
|
+
return partial;
|
|
111
|
+
}
|
|
112
|
+
return m;
|
|
113
|
+
});
|
|
114
|
+
if (!changed)
|
|
115
|
+
break;
|
|
116
|
+
}
|
|
117
|
+
return expanded;
|
|
118
|
+
}
|
|
119
|
+
/**
|
|
120
|
+
* Apply expandPartials() to every string field in a PromptYaml. Partials
|
|
121
|
+
* are inlined at load time so downstream code sees already-flat content.
|
|
122
|
+
*/
|
|
123
|
+
function inlinePartials(prompt) {
|
|
124
|
+
const result = { ...prompt, system: { ...(prompt.system || {}) }, user: { ...(prompt.user || {}) } };
|
|
125
|
+
if (result.system) {
|
|
126
|
+
if (result.system.role)
|
|
127
|
+
result.system.role = expandPartials(result.system.role);
|
|
128
|
+
if (result.system.minimalContext)
|
|
129
|
+
result.system.minimalContext = expandPartials(result.system.minimalContext);
|
|
130
|
+
if (result.system.fullContext)
|
|
131
|
+
result.system.fullContext = expandPartials(result.system.fullContext);
|
|
132
|
+
if (result.system.context)
|
|
133
|
+
result.system.context = expandPartials(result.system.context);
|
|
134
|
+
}
|
|
135
|
+
if (result.user?.template)
|
|
136
|
+
result.user.template = expandPartials(result.user.template);
|
|
137
|
+
return result;
|
|
138
|
+
}
|
|
68
139
|
/** Assemble the system message from a prompt YAML. */
|
|
69
140
|
export function assembleSystem(prompt) {
|
|
70
141
|
const sys = prompt?.system ?? {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prompt-runner.js","sourceRoot":"","sources":["../../src/ai/prompt-runner.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AACrC,OAAO,EAAE,YAAY,EAAsB,MAAM,IAAI,CAAC;AACtD,OAAO,IAAI,MAAM,SAAS,CAAC;AAC3B,OAAO,EAAE,YAAY,EAA4B,MAAM,qBAAqB,CAAC;AAE7E,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAE/C,SAAS,mBAAmB,CAAC,GAAW;IACtC,MAAM,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC,kCAAkC,CAAC,CAAC;IAChE,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC;AACjC,CAAC;AAED,MAAM,gBAAgB,GAA2B;IAC/C,YAAY,EAAE,mBAAmB,CAAC,iCAAiC,CAAC;IACpE,mBAAmB,EAAE,mBAAmB,CAAC,wCAAwC,CAAC;IAClF,oBAAoB,EAAE,mBAAmB,CAAC,wCAAwC,CAAC;CACpF,CAAC;AAiBF,+DAA+D;AAC/D,MAAM,UAAU,UAAU,CAAC,SAAiB;IAC1C,0DAA0D;IAC1D,0EAA0E;IAC1E,uEAAuE;IACvE,iCAAiC;IACjC,MAAM,UAAU,GAAa,EAAE,CAAC;IAChC,IAAI,CAAC;QACH,MAAM,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,gCAAgC,CAAC,CAAC;QACpE,UAAU,CAAC,IAAI,CACb,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,+BAA+B,EAAE,GAAG,SAAS,cAAc,CAAC,CACtF,CAAC;IACJ,CAAC;IAAC,MAAM,CAAC;QACP,oDAAoD;IACtD,CAAC;IACD,IAAI,CAAC;QACH,MAAM,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,iCAAiC,CAAC,CAAC;QACtE,UAAU,CAAC,IAAI,CACb,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,sCAAsC,EAAE,GAAG,SAAS,cAAc,CAAC,CAC9F,CAAC;IACJ,CAAC;IAAC,MAAM,CAAC;QACP,uDAAuD;IACzD,CAAC;IAED,KAAK,MAAM,CAAC,IAAI,UAAU,EAAE,CAAC;QAC3B,IAAI,UAAU,CAAC,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"prompt-runner.js","sourceRoot":"","sources":["../../src/ai/prompt-runner.ts"],"names":[],"mappings":"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"}
|
|
@@ -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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"}
|