guardian-framework 0.1.18 → 0.1.19
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
|
@@ -1335,7 +1335,7 @@ __export(exports_package, {
|
|
|
1335
1335
|
bin: () => bin,
|
|
1336
1336
|
author: () => author
|
|
1337
1337
|
});
|
|
1338
|
-
var name = "guardian-framework", version = "0.1.
|
|
1338
|
+
var name = "guardian-framework", version = "0.1.19", 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;
|
|
1339
1339
|
var init_package = __esm(() => {
|
|
1340
1340
|
exports = {
|
|
1341
1341
|
".": {
|
package/dist/exports.js
CHANGED
|
@@ -995,7 +995,7 @@ __export(exports_package, {
|
|
|
995
995
|
bin: () => bin,
|
|
996
996
|
author: () => author
|
|
997
997
|
});
|
|
998
|
-
var name = "guardian-framework", version = "0.1.
|
|
998
|
+
var name = "guardian-framework", version = "0.1.19", 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;
|
|
999
999
|
var init_package = __esm(() => {
|
|
1000
1000
|
exports = {
|
|
1001
1001
|
".": {
|
package/package.json
CHANGED
|
@@ -1656,6 +1656,51 @@ export default function (pi: ExtensionAPI) {
|
|
|
1656
1656
|
results.push(`✅ ${mod.name} — already completed, skipped`);
|
|
1657
1657
|
continue;
|
|
1658
1658
|
}
|
|
1659
|
+
|
|
1660
|
+
// Check if issues already exist for this module (session restart)
|
|
1661
|
+
const issuesDir = join(ctx.cwd, ".pi/issues");
|
|
1662
|
+
const freezePath = join(issuesDir, "issue-contract-freeze.md");
|
|
1663
|
+
if (existsSync(freezePath)) {
|
|
1664
|
+
// Issues exist — reconstruct pipeline without re-creating
|
|
1665
|
+
const existingIssues: string[] = [];
|
|
1666
|
+
if (existsSync(issuesDir)) {
|
|
1667
|
+
const files = readdirSync(issuesDir);
|
|
1668
|
+
for (const f of files) {
|
|
1669
|
+
if (f.endsWith(".md") && !f.startsWith(".")) {
|
|
1670
|
+
existingIssues.push(f.replace(/\.md$/, ""));
|
|
1671
|
+
}
|
|
1672
|
+
}
|
|
1673
|
+
}
|
|
1674
|
+
const pipelineFile = join(ctx.cwd, ".pi/.guardian-pipeline-state.json");
|
|
1675
|
+
if (!existsSync(pipelineFile) && existingIssues.length > 0) {
|
|
1676
|
+
const pipelineId = `PL-${String(Math.floor(Math.random() * 10000)).padStart(4, "0")}`;
|
|
1677
|
+
const pipelineState = {
|
|
1678
|
+
id: pipelineId,
|
|
1679
|
+
name: mod.name,
|
|
1680
|
+
items: existingIssues,
|
|
1681
|
+
steps: [
|
|
1682
|
+
{ name: "implement", prompt: ".pi/prompts/issue-implementation-series.md", acceptance: { type: "validator", validators: ["ci"] } },
|
|
1683
|
+
{ name: "validate", acceptance: { type: "validator", validators: ["ci", "tests", "security"] } },
|
|
1684
|
+
{ name: "create-mr", prompt: ".pi/prompts/issue-closeout.md", acceptance: { type: "none" } },
|
|
1685
|
+
{ name: "merge", prompt: ".pi/prompts/issue-merge.md", acceptance: { type: "validator", validators: ["ci", "canonical"] } },
|
|
1686
|
+
],
|
|
1687
|
+
currentItemIndex: 0,
|
|
1688
|
+
currentStepIndex: 0,
|
|
1689
|
+
status: "running",
|
|
1690
|
+
retryCount: 0,
|
|
1691
|
+
results: [],
|
|
1692
|
+
mergeOnValid: true,
|
|
1693
|
+
createdAt: new Date().toISOString(),
|
|
1694
|
+
updatedAt: new Date().toISOString(),
|
|
1695
|
+
};
|
|
1696
|
+
const pipelineDir = dirname(pipelineFile);
|
|
1697
|
+
if (!existsSync(pipelineDir)) mkdirSync(pipelineDir, { recursive: true });
|
|
1698
|
+
writeFileSync(pipelineFile, JSON.stringify(pipelineState, null, 2));
|
|
1699
|
+
}
|
|
1700
|
+
results.push(`📋 ${mod.name} — ${existingIssues.length} issues found (pipeline resumed)`);
|
|
1701
|
+
continue;
|
|
1702
|
+
}
|
|
1703
|
+
|
|
1659
1704
|
// Check if module has planned components BEFORE calling startEpic
|
|
1660
1705
|
// (startEpic silently falls back to wrong module if no planned components)
|
|
1661
1706
|
const matchedFile = findModuleByName(ctx.cwd, mod.name);
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"timestamp": "2026-07-03T07:
|
|
2
|
+
"timestamp": "2026-07-03T07:05:05Z",
|
|
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": 0,
|
|
12
12
|
"results": [
|
|
13
13
|
{
|
|
14
14
|
"name": "check_mr_traceability.sh",
|