guardian-framework 0.1.140 → 0.1.141
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/cli.js
CHANGED
|
@@ -3206,7 +3206,7 @@ __export(exports_package, {
|
|
|
3206
3206
|
bin: () => bin,
|
|
3207
3207
|
author: () => author
|
|
3208
3208
|
});
|
|
3209
|
-
var name = "guardian-framework", version = "0.1.
|
|
3209
|
+
var name = "guardian-framework", version = "0.1.141", description = "Token-optimized agentic framework scaffolder with pi-first architecture", type = "module", main = "dist/exports.js", exports, types = "dist/exports.d.ts", bin, files, engines, scripts, publishConfig, pi, repository, homepage = "https://github.com/arman-jalili/guardian-framework#readme", bugs, dependencies, devDependencies, keywords, author = "Arman Wolkensteiner-Jalili", license = "MIT", package_default;
|
|
3210
3210
|
var init_package = __esm(() => {
|
|
3211
3211
|
exports = {
|
|
3212
3212
|
".": {
|
package/dist/exports.js
CHANGED
|
@@ -1991,7 +1991,7 @@ __export(exports_package, {
|
|
|
1991
1991
|
bin: () => bin,
|
|
1992
1992
|
author: () => author
|
|
1993
1993
|
});
|
|
1994
|
-
var name = "guardian-framework", version = "0.1.
|
|
1994
|
+
var name = "guardian-framework", version = "0.1.141", description = "Token-optimized agentic framework scaffolder with pi-first architecture", type = "module", main = "dist/exports.js", exports, types = "dist/exports.d.ts", bin, files, engines, scripts, publishConfig, pi, repository, homepage = "https://github.com/arman-jalili/guardian-framework#readme", bugs, dependencies, devDependencies, keywords, author = "Arman Wolkensteiner-Jalili", license = "MIT", package_default;
|
|
1995
1995
|
var init_package = __esm(() => {
|
|
1996
1996
|
exports = {
|
|
1997
1997
|
".": {
|
package/package.json
CHANGED
|
@@ -1823,21 +1823,35 @@ export default function (pi: ExtensionAPI) {
|
|
|
1823
1823
|
}
|
|
1824
1824
|
const docText = fs.readFileSync(path.join(modulesDir, docFile), "utf-8");
|
|
1825
1825
|
const catNames = svcByCtx.get(ctx)!;
|
|
1826
|
+
// Scope to the Application/Service Layer section — module docs
|
|
1827
|
+
// legitimately title it "### Application Layer (`application/`)"
|
|
1828
|
+
// or "### Service Layer (application)".
|
|
1829
|
+
const secMatch = docText.match(/###\s+(?:Application|Service)\s+Layer[^\n]*\n([\s\S]*?)(?=\n##\s|$)/i);
|
|
1830
|
+
const section = secMatch ? secMatch[1] : docText;
|
|
1831
|
+
// Catalog rows: markdown table rows whose FIRST cell is the service
|
|
1832
|
+
// name. This is the real invariant (the service is presented as a
|
|
1833
|
+
// row in the catalog table) — not a specific header wording.
|
|
1834
|
+
const rowServices = new Set<string>();
|
|
1835
|
+
for (const line of section.split("\n")) {
|
|
1836
|
+
if (!line.trim().startsWith("|")) continue;
|
|
1837
|
+
const first = (line.split("|")[1] ?? "").trim().replace(/^`|`$/g, "");
|
|
1838
|
+
if (first && !/^-+$/.test(first)) rowServices.add(first);
|
|
1839
|
+
}
|
|
1826
1840
|
let miss = 0;
|
|
1827
|
-
for (const nm of catNames)
|
|
1828
|
-
|
|
1829
|
-
|
|
1830
|
-
|
|
1831
|
-
|
|
1841
|
+
for (const nm of catNames) {
|
|
1842
|
+
if (!rowServices.has(nm)) {
|
|
1843
|
+
checks.push(" FAIL " + docFile + ": catalog service " + nm + " is not presented as a row in the Application Layer catalog section" +
|
|
1844
|
+
(docText.includes(nm) ? " (the name appears in the doc, but not as a catalog row)" : ""));
|
|
1845
|
+
miss++;
|
|
1846
|
+
}
|
|
1832
1847
|
}
|
|
1833
|
-
|
|
1834
|
-
|
|
1835
|
-
|
|
1848
|
+
issues += miss;
|
|
1849
|
+
// Implemented-seam / planned-pointer checks apply only to WIDE
|
|
1850
|
+
// catalog rows (5-column: Service | use case | FR | Status |
|
|
1851
|
+
// Delivered by). A 3-column catalog is accepted as-is.
|
|
1852
|
+
for (const line of section.split("\n")) {
|
|
1836
1853
|
if (!line.trim().startsWith("|")) continue;
|
|
1837
1854
|
const cells = line.split("|").map((c) => c.trim());
|
|
1838
|
-
// Locate the mapsToFr column (FR-00x[, FR-00y]*) — use-case
|
|
1839
|
-
// text may contain escaped pipes (\|) which naive split
|
|
1840
|
-
// fragments, so fixed indexes are unreliable.
|
|
1841
1855
|
const frIdx = cells.findIndex((c, i) => i >= 2 && /^((FR|NFR)-\d[\d, ]*)(,\s*(FR|NFR)-\d[\d, ]*)*$/.test(c));
|
|
1842
1856
|
if (cells.length < 6 || frIdx < 0) continue;
|
|
1843
1857
|
const svcName = cells[1].replace(/^`|`$/g, "");
|
|
@@ -1865,7 +1879,8 @@ export default function (pi: ExtensionAPI) {
|
|
|
1865
1879
|
}
|
|
1866
1880
|
}
|
|
1867
1881
|
}
|
|
1868
|
-
|
|
1882
|
+
|
|
1883
|
+
checks.push(issues === 0
|
|
1869
1884
|
? " PASS Catalog blocks + seams verified for all " + svcV.length + " application services"
|
|
1870
1885
|
: " FAIL " + issues + " catalog/seam issue(s)");
|
|
1871
1886
|
if (issues > 0) allPassed = false;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"timestamp": "2026-09-
|
|
2
|
+
"timestamp": "2026-09-25T19:29:02Z",
|
|
3
3
|
"mode": "all",
|
|
4
4
|
"stages_run": [],
|
|
5
5
|
"summary": {
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
"failed": 1,
|
|
9
9
|
"skipped": 12
|
|
10
10
|
},
|
|
11
|
-
"duration_seconds":
|
|
11
|
+
"duration_seconds": 1,
|
|
12
12
|
"results": [
|
|
13
13
|
{
|
|
14
14
|
"name": "check_mr_traceability.sh",
|