gsd-pi 2.28.0-dev.853dfc5 → 2.28.0-dev.a8d3050
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/resource-loader.js +80 -8
- package/dist/resources/extensions/gsd/auto-verification.ts +41 -7
- package/dist/resources/extensions/gsd/auto.ts +2 -2
- package/dist/resources/extensions/gsd/commands-handlers.ts +1 -9
- package/dist/resources/extensions/gsd/commands-prefs-wizard.ts +14 -22
- package/dist/resources/extensions/gsd/commands.ts +1 -7
- package/dist/resources/extensions/gsd/index.ts +2 -1
- package/dist/resources/extensions/gsd/json-persistence.ts +52 -0
- package/dist/resources/extensions/gsd/metrics.ts +17 -31
- package/dist/resources/extensions/gsd/paths.ts +0 -8
- package/dist/resources/extensions/gsd/routing-history.ts +13 -17
- package/dist/resources/extensions/gsd/tests/gsd-inspect.test.ts +1 -1
- package/dist/resources/extensions/gsd/tests/verification-evidence.test.ts +26 -24
- package/dist/resources/extensions/gsd/tests/verification-gate.test.ts +136 -7
- package/dist/resources/extensions/gsd/types.ts +1 -0
- package/dist/resources/extensions/gsd/unit-runtime.ts +16 -13
- package/dist/resources/extensions/gsd/verification-evidence.ts +2 -0
- package/dist/resources/extensions/gsd/verification-gate.ts +13 -2
- package/dist/resources/extensions/remote-questions/discord-adapter.ts +2 -2
- package/dist/resources/extensions/remote-questions/notify.ts +1 -2
- package/dist/resources/extensions/remote-questions/slack-adapter.ts +1 -2
- package/dist/resources/extensions/remote-questions/telegram-adapter.ts +1 -2
- package/dist/resources/extensions/remote-questions/types.ts +3 -0
- package/dist/resources/extensions/shared/mod.ts +3 -0
- package/package.json +4 -1
- package/packages/pi-coding-agent/dist/core/settings-manager.d.ts +3 -0
- package/packages/pi-coding-agent/dist/core/settings-manager.d.ts.map +1 -1
- package/packages/pi-coding-agent/dist/core/settings-manager.js +8 -0
- package/packages/pi-coding-agent/dist/core/settings-manager.js.map +1 -1
- package/packages/pi-coding-agent/dist/core/system-prompt.d.ts.map +1 -1
- package/packages/pi-coding-agent/dist/core/system-prompt.js +10 -0
- package/packages/pi-coding-agent/dist/core/system-prompt.js.map +1 -1
- package/packages/pi-coding-agent/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
- package/packages/pi-coding-agent/dist/modes/interactive/interactive-mode.js +4 -1
- package/packages/pi-coding-agent/dist/modes/interactive/interactive-mode.js.map +1 -1
- package/packages/pi-coding-agent/scripts/copy-assets.cjs +39 -8
- package/packages/pi-coding-agent/src/core/settings-manager.ts +11 -0
- package/packages/pi-coding-agent/src/core/system-prompt.ts +11 -0
- package/packages/pi-coding-agent/src/modes/interactive/interactive-mode.ts +4 -1
- package/packages/pi-tui/dist/autocomplete.d.ts +3 -0
- package/packages/pi-tui/dist/autocomplete.d.ts.map +1 -1
- package/packages/pi-tui/dist/autocomplete.js +14 -0
- package/packages/pi-tui/dist/autocomplete.js.map +1 -1
- package/packages/pi-tui/src/autocomplete.ts +19 -1
- package/src/resources/extensions/gsd/auto-verification.ts +41 -7
- package/src/resources/extensions/gsd/auto.ts +2 -2
- package/src/resources/extensions/gsd/commands-handlers.ts +1 -9
- package/src/resources/extensions/gsd/commands-prefs-wizard.ts +14 -22
- package/src/resources/extensions/gsd/commands.ts +1 -7
- package/src/resources/extensions/gsd/index.ts +2 -1
- package/src/resources/extensions/gsd/json-persistence.ts +52 -0
- package/src/resources/extensions/gsd/metrics.ts +17 -31
- package/src/resources/extensions/gsd/paths.ts +0 -8
- package/src/resources/extensions/gsd/routing-history.ts +13 -17
- package/src/resources/extensions/gsd/tests/gsd-inspect.test.ts +1 -1
- package/src/resources/extensions/gsd/tests/verification-evidence.test.ts +26 -24
- package/src/resources/extensions/gsd/tests/verification-gate.test.ts +136 -7
- package/src/resources/extensions/gsd/types.ts +1 -0
- package/src/resources/extensions/gsd/unit-runtime.ts +16 -13
- package/src/resources/extensions/gsd/verification-evidence.ts +2 -0
- package/src/resources/extensions/gsd/verification-gate.ts +13 -2
- package/src/resources/extensions/remote-questions/discord-adapter.ts +2 -2
- package/src/resources/extensions/remote-questions/notify.ts +1 -2
- package/src/resources/extensions/remote-questions/slack-adapter.ts +1 -2
- package/src/resources/extensions/remote-questions/telegram-adapter.ts +1 -2
- package/src/resources/extensions/remote-questions/types.ts +3 -0
- package/src/resources/extensions/shared/mod.ts +3 -0
- package/dist/resources/extensions/gsd/preferences-hooks.ts +0 -10
- package/dist/resources/extensions/shared/progress-widget.ts +0 -282
- package/dist/resources/extensions/shared/thinking-widget.ts +0 -107
- package/src/resources/extensions/gsd/preferences-hooks.ts +0 -10
- package/src/resources/extensions/shared/progress-widget.ts +0 -282
- package/src/resources/extensions/shared/thinking-widget.ts +0 -107
|
@@ -58,6 +58,7 @@ test("verification-evidence: writeVerificationJSON writes correct JSON shape", (
|
|
|
58
58
|
stdout: "all good",
|
|
59
59
|
stderr: "",
|
|
60
60
|
durationMs: 2340,
|
|
61
|
+
blocking: true,
|
|
61
62
|
},
|
|
62
63
|
],
|
|
63
64
|
});
|
|
@@ -105,9 +106,9 @@ test("verification-evidence: writeVerificationJSON maps exitCode to verdict corr
|
|
|
105
106
|
const result = makeResult({
|
|
106
107
|
passed: false,
|
|
107
108
|
checks: [
|
|
108
|
-
{ command: "lint", exitCode: 0, stdout: "", stderr: "", durationMs: 100 },
|
|
109
|
-
{ command: "test", exitCode: 1, stdout: "", stderr: "fail", durationMs: 200 },
|
|
110
|
-
{ command: "audit", exitCode: 2, stdout: "", stderr: "err", durationMs: 300 },
|
|
109
|
+
{ command: "lint", exitCode: 0, stdout: "", stderr: "", durationMs: 100, blocking: true },
|
|
110
|
+
{ command: "test", exitCode: 1, stdout: "", stderr: "fail", durationMs: 200, blocking: true },
|
|
111
|
+
{ command: "audit", exitCode: 2, stdout: "", stderr: "err", durationMs: 300, blocking: true },
|
|
111
112
|
],
|
|
112
113
|
});
|
|
113
114
|
|
|
@@ -133,6 +134,7 @@ test("verification-evidence: writeVerificationJSON excludes stdout/stderr from o
|
|
|
133
134
|
stdout: "hello\n",
|
|
134
135
|
stderr: "some warning",
|
|
135
136
|
durationMs: 50,
|
|
137
|
+
blocking: true,
|
|
136
138
|
},
|
|
137
139
|
],
|
|
138
140
|
});
|
|
@@ -181,8 +183,8 @@ test("verification-evidence: writeVerificationJSON uses optional unitId when pro
|
|
|
181
183
|
test("verification-evidence: formatEvidenceTable returns markdown table with correct columns", () => {
|
|
182
184
|
const result = makeResult({
|
|
183
185
|
checks: [
|
|
184
|
-
{ command: "npm run typecheck", exitCode: 0, stdout: "", stderr: "", durationMs: 2340 },
|
|
185
|
-
{ command: "npm run lint", exitCode: 1, stdout: "", stderr: "err", durationMs: 1100 },
|
|
186
|
+
{ command: "npm run typecheck", exitCode: 0, stdout: "", stderr: "", durationMs: 2340, blocking: true },
|
|
187
|
+
{ command: "npm run lint", exitCode: 1, stdout: "", stderr: "err", durationMs: 1100, blocking: true },
|
|
186
188
|
],
|
|
187
189
|
});
|
|
188
190
|
|
|
@@ -214,9 +216,9 @@ test("verification-evidence: formatEvidenceTable returns no-checks message for e
|
|
|
214
216
|
test("verification-evidence: formatEvidenceTable formats duration as seconds with 1 decimal", () => {
|
|
215
217
|
const result = makeResult({
|
|
216
218
|
checks: [
|
|
217
|
-
{ command: "fast", exitCode: 0, stdout: "", stderr: "", durationMs: 150 },
|
|
218
|
-
{ command: "slow", exitCode: 0, stdout: "", stderr: "", durationMs: 2340 },
|
|
219
|
-
{ command: "zero", exitCode: 0, stdout: "", stderr: "", durationMs: 0 },
|
|
219
|
+
{ command: "fast", exitCode: 0, stdout: "", stderr: "", durationMs: 150, blocking: true },
|
|
220
|
+
{ command: "slow", exitCode: 0, stdout: "", stderr: "", durationMs: 2340, blocking: true },
|
|
221
|
+
{ command: "zero", exitCode: 0, stdout: "", stderr: "", durationMs: 0, blocking: true },
|
|
220
222
|
],
|
|
221
223
|
});
|
|
222
224
|
|
|
@@ -230,8 +232,8 @@ test("verification-evidence: formatEvidenceTable uses ✅/❌ emoji for pass/fai
|
|
|
230
232
|
const result = makeResult({
|
|
231
233
|
passed: false,
|
|
232
234
|
checks: [
|
|
233
|
-
{ command: "pass-cmd", exitCode: 0, stdout: "", stderr: "", durationMs: 100 },
|
|
234
|
-
{ command: "fail-cmd", exitCode: 1, stdout: "", stderr: "", durationMs: 200 },
|
|
235
|
+
{ command: "pass-cmd", exitCode: 0, stdout: "", stderr: "", durationMs: 100, blocking: true },
|
|
236
|
+
{ command: "fail-cmd", exitCode: 1, stdout: "", stderr: "", durationMs: 200, blocking: true },
|
|
235
237
|
],
|
|
236
238
|
});
|
|
237
239
|
|
|
@@ -335,8 +337,8 @@ test("verification-evidence: integration — VerificationResult → JSON → tab
|
|
|
335
337
|
const result = makeResult({
|
|
336
338
|
passed: false,
|
|
337
339
|
checks: [
|
|
338
|
-
{ command: "npm run typecheck", exitCode: 0, stdout: "ok", stderr: "", durationMs: 1500 },
|
|
339
|
-
{ command: "npm run test:unit", exitCode: 1, stdout: "", stderr: "1 failed", durationMs: 3200 },
|
|
340
|
+
{ command: "npm run typecheck", exitCode: 0, stdout: "ok", stderr: "", durationMs: 1500, blocking: true },
|
|
341
|
+
{ command: "npm run test:unit", exitCode: 1, stdout: "", stderr: "1 failed", durationMs: 3200, blocking: true },
|
|
340
342
|
],
|
|
341
343
|
discoverySource: "package-json",
|
|
342
344
|
});
|
|
@@ -390,7 +392,7 @@ test("verification-evidence: writeVerificationJSON with retryAttempt and maxRetr
|
|
|
390
392
|
const result = makeResult({
|
|
391
393
|
passed: false,
|
|
392
394
|
checks: [
|
|
393
|
-
{ command: "npm run lint", exitCode: 1, stdout: "", stderr: "error", durationMs: 300 },
|
|
395
|
+
{ command: "npm run lint", exitCode: 1, stdout: "", stderr: "error", durationMs: 300, blocking: true },
|
|
394
396
|
],
|
|
395
397
|
});
|
|
396
398
|
|
|
@@ -415,7 +417,7 @@ test("verification-evidence: writeVerificationJSON without retry params omits re
|
|
|
415
417
|
const result = makeResult({
|
|
416
418
|
passed: true,
|
|
417
419
|
checks: [
|
|
418
|
-
{ command: "npm run test", exitCode: 0, stdout: "ok", stderr: "", durationMs: 100 },
|
|
420
|
+
{ command: "npm run test", exitCode: 0, stdout: "ok", stderr: "", durationMs: 100, blocking: true },
|
|
419
421
|
],
|
|
420
422
|
});
|
|
421
423
|
|
|
@@ -441,7 +443,7 @@ test("verification-evidence: writeVerificationJSON includes runtimeErrors when p
|
|
|
441
443
|
const result = makeResult({
|
|
442
444
|
passed: false,
|
|
443
445
|
checks: [
|
|
444
|
-
{ command: "npm run test", exitCode: 0, stdout: "ok", stderr: "", durationMs: 100 },
|
|
446
|
+
{ command: "npm run test", exitCode: 0, stdout: "ok", stderr: "", durationMs: 100, blocking: true },
|
|
445
447
|
],
|
|
446
448
|
runtimeErrors: [
|
|
447
449
|
{ source: "bg-shell", severity: "crash", message: "Server crashed", blocking: true },
|
|
@@ -473,7 +475,7 @@ test("verification-evidence: writeVerificationJSON omits runtimeErrors when abse
|
|
|
473
475
|
const result = makeResult({
|
|
474
476
|
passed: true,
|
|
475
477
|
checks: [
|
|
476
|
-
{ command: "npm run lint", exitCode: 0, stdout: "", stderr: "", durationMs: 50 },
|
|
478
|
+
{ command: "npm run lint", exitCode: 0, stdout: "", stderr: "", durationMs: 50, blocking: true },
|
|
477
479
|
],
|
|
478
480
|
});
|
|
479
481
|
|
|
@@ -512,7 +514,7 @@ test("verification-evidence: formatEvidenceTable appends runtime errors section"
|
|
|
512
514
|
const result = makeResult({
|
|
513
515
|
passed: false,
|
|
514
516
|
checks: [
|
|
515
|
-
{ command: "npm run test", exitCode: 0, stdout: "", stderr: "", durationMs: 100 },
|
|
517
|
+
{ command: "npm run test", exitCode: 0, stdout: "", stderr: "", durationMs: 100, blocking: true },
|
|
516
518
|
],
|
|
517
519
|
runtimeErrors: [
|
|
518
520
|
{ source: "bg-shell", severity: "crash", message: "Server crashed with SIGKILL", blocking: true },
|
|
@@ -537,7 +539,7 @@ test("verification-evidence: formatEvidenceTable omits runtime errors section wh
|
|
|
537
539
|
const result = makeResult({
|
|
538
540
|
passed: true,
|
|
539
541
|
checks: [
|
|
540
|
-
{ command: "npm run lint", exitCode: 0, stdout: "", stderr: "", durationMs: 200 },
|
|
542
|
+
{ command: "npm run lint", exitCode: 0, stdout: "", stderr: "", durationMs: 200, blocking: true },
|
|
541
543
|
],
|
|
542
544
|
});
|
|
543
545
|
|
|
@@ -552,7 +554,7 @@ test("verification-evidence: formatEvidenceTable truncates runtime error message
|
|
|
552
554
|
const result = makeResult({
|
|
553
555
|
passed: false,
|
|
554
556
|
checks: [
|
|
555
|
-
{ command: "npm run test", exitCode: 0, stdout: "", stderr: "", durationMs: 100 },
|
|
557
|
+
{ command: "npm run test", exitCode: 0, stdout: "", stderr: "", durationMs: 100, blocking: true },
|
|
556
558
|
],
|
|
557
559
|
runtimeErrors: [
|
|
558
560
|
{ source: "bg-shell", severity: "error", message: longMessage, blocking: false },
|
|
@@ -598,7 +600,7 @@ test("verification-evidence: writeVerificationJSON includes auditWarnings when p
|
|
|
598
600
|
const result = makeResult({
|
|
599
601
|
passed: true,
|
|
600
602
|
checks: [
|
|
601
|
-
{ command: "npm run test", exitCode: 0, stdout: "ok", stderr: "", durationMs: 100 },
|
|
603
|
+
{ command: "npm run test", exitCode: 0, stdout: "ok", stderr: "", durationMs: 100, blocking: true },
|
|
602
604
|
],
|
|
603
605
|
auditWarnings: SAMPLE_AUDIT_WARNINGS,
|
|
604
606
|
});
|
|
@@ -627,7 +629,7 @@ test("verification-evidence: writeVerificationJSON omits auditWarnings when abse
|
|
|
627
629
|
const result = makeResult({
|
|
628
630
|
passed: true,
|
|
629
631
|
checks: [
|
|
630
|
-
{ command: "npm run lint", exitCode: 0, stdout: "", stderr: "", durationMs: 50 },
|
|
632
|
+
{ command: "npm run lint", exitCode: 0, stdout: "", stderr: "", durationMs: 50, blocking: true },
|
|
631
633
|
],
|
|
632
634
|
});
|
|
633
635
|
|
|
@@ -666,7 +668,7 @@ test("verification-evidence: formatEvidenceTable appends audit warnings section"
|
|
|
666
668
|
const result = makeResult({
|
|
667
669
|
passed: true,
|
|
668
670
|
checks: [
|
|
669
|
-
{ command: "npm run test", exitCode: 0, stdout: "", stderr: "", durationMs: 100 },
|
|
671
|
+
{ command: "npm run test", exitCode: 0, stdout: "", stderr: "", durationMs: 100, blocking: true },
|
|
670
672
|
],
|
|
671
673
|
auditWarnings: SAMPLE_AUDIT_WARNINGS,
|
|
672
674
|
});
|
|
@@ -689,7 +691,7 @@ test("verification-evidence: formatEvidenceTable omits audit warnings section wh
|
|
|
689
691
|
const result = makeResult({
|
|
690
692
|
passed: true,
|
|
691
693
|
checks: [
|
|
692
|
-
{ command: "npm run lint", exitCode: 0, stdout: "", stderr: "", durationMs: 200 },
|
|
694
|
+
{ command: "npm run lint", exitCode: 0, stdout: "", stderr: "", durationMs: 200, blocking: true },
|
|
693
695
|
],
|
|
694
696
|
});
|
|
695
697
|
|
|
@@ -705,7 +707,7 @@ test("verification-evidence: integration — VerificationResult with auditWarnin
|
|
|
705
707
|
const result = makeResult({
|
|
706
708
|
passed: true,
|
|
707
709
|
checks: [
|
|
708
|
-
{ command: "npm run typecheck", exitCode: 0, stdout: "ok", stderr: "", durationMs: 1500 },
|
|
710
|
+
{ command: "npm run typecheck", exitCode: 0, stdout: "ok", stderr: "", durationMs: 1500, blocking: true },
|
|
709
711
|
],
|
|
710
712
|
auditWarnings: [
|
|
711
713
|
{
|
|
@@ -581,7 +581,7 @@ test("formatFailureContext: formats a single failure with command, exit code, st
|
|
|
581
581
|
const result: import("../types.ts").VerificationResult = {
|
|
582
582
|
passed: false,
|
|
583
583
|
checks: [
|
|
584
|
-
{ command: "npm run lint", exitCode: 1, stdout: "", stderr: "error: unused var", durationMs: 500 },
|
|
584
|
+
{ command: "npm run lint", exitCode: 1, stdout: "", stderr: "error: unused var", durationMs: 500, blocking: true },
|
|
585
585
|
],
|
|
586
586
|
discoverySource: "preference",
|
|
587
587
|
timestamp: Date.now(),
|
|
@@ -598,9 +598,9 @@ test("formatFailureContext: formats multiple failures", () => {
|
|
|
598
598
|
const result: import("../types.ts").VerificationResult = {
|
|
599
599
|
passed: false,
|
|
600
600
|
checks: [
|
|
601
|
-
{ command: "npm run lint", exitCode: 1, stdout: "", stderr: "lint error", durationMs: 100 },
|
|
602
|
-
{ command: "npm run test", exitCode: 2, stdout: "", stderr: "test failure", durationMs: 200 },
|
|
603
|
-
{ command: "npm run typecheck", exitCode: 0, stdout: "ok", stderr: "", durationMs: 50 },
|
|
601
|
+
{ command: "npm run lint", exitCode: 1, stdout: "", stderr: "lint error", durationMs: 100, blocking: true },
|
|
602
|
+
{ command: "npm run test", exitCode: 2, stdout: "", stderr: "test failure", durationMs: 200, blocking: true },
|
|
603
|
+
{ command: "npm run typecheck", exitCode: 0, stdout: "ok", stderr: "", durationMs: 50, blocking: true },
|
|
604
604
|
],
|
|
605
605
|
discoverySource: "preference",
|
|
606
606
|
timestamp: Date.now(),
|
|
@@ -619,7 +619,7 @@ test("formatFailureContext: truncates stderr longer than 2000 chars", () => {
|
|
|
619
619
|
const result: import("../types.ts").VerificationResult = {
|
|
620
620
|
passed: false,
|
|
621
621
|
checks: [
|
|
622
|
-
{ command: "big-err", exitCode: 1, stdout: "", stderr: longStderr, durationMs: 100 },
|
|
622
|
+
{ command: "big-err", exitCode: 1, stdout: "", stderr: longStderr, durationMs: 100, blocking: true },
|
|
623
623
|
],
|
|
624
624
|
discoverySource: "preference",
|
|
625
625
|
timestamp: Date.now(),
|
|
@@ -634,8 +634,8 @@ test("formatFailureContext: returns empty string when all checks pass", () => {
|
|
|
634
634
|
const result: import("../types.ts").VerificationResult = {
|
|
635
635
|
passed: true,
|
|
636
636
|
checks: [
|
|
637
|
-
{ command: "npm run lint", exitCode: 0, stdout: "ok", stderr: "", durationMs: 100 },
|
|
638
|
-
{ command: "npm run test", exitCode: 0, stdout: "ok", stderr: "", durationMs: 200 },
|
|
637
|
+
{ command: "npm run lint", exitCode: 0, stdout: "ok", stderr: "", durationMs: 100, blocking: true },
|
|
638
|
+
{ command: "npm run test", exitCode: 0, stdout: "ok", stderr: "", durationMs: 200, blocking: true },
|
|
639
639
|
],
|
|
640
640
|
discoverySource: "preference",
|
|
641
641
|
timestamp: Date.now(),
|
|
@@ -663,6 +663,7 @@ test("formatFailureContext: caps total output at 10,000 chars", () => {
|
|
|
663
663
|
stdout: "",
|
|
664
664
|
stderr: "e".repeat(1000), // 1000 chars each, 20 * ~1050 (with formatting) > 10,000
|
|
665
665
|
durationMs: 100,
|
|
666
|
+
blocking: true,
|
|
666
667
|
});
|
|
667
668
|
}
|
|
668
669
|
const result: import("../types.ts").VerificationResult = {
|
|
@@ -1077,3 +1078,131 @@ test("dependency-audit: subdirectory package.json does not trigger audit", () =>
|
|
|
1077
1078
|
assert.equal(npmAuditCalled, false, "subdirectory dependency files should not trigger audit");
|
|
1078
1079
|
assert.deepStrictEqual(result, []);
|
|
1079
1080
|
});
|
|
1081
|
+
|
|
1082
|
+
// ─── Non-Blocking Discovery Tests ────────────────────────────────────────────
|
|
1083
|
+
|
|
1084
|
+
test("non-blocking: package-json discovered commands failing → result.passed is still true", () => {
|
|
1085
|
+
const tmp = makeTempDir("vg-nb-pkg-fail");
|
|
1086
|
+
try {
|
|
1087
|
+
writeFileSync(
|
|
1088
|
+
join(tmp, "package.json"),
|
|
1089
|
+
JSON.stringify({ scripts: { lint: "eslint .", test: "vitest" } }),
|
|
1090
|
+
);
|
|
1091
|
+
// These commands will fail because eslint/vitest don't exist in the temp dir
|
|
1092
|
+
const result = runVerificationGate({
|
|
1093
|
+
basePath: tmp,
|
|
1094
|
+
unitId: "T01",
|
|
1095
|
+
cwd: tmp,
|
|
1096
|
+
// No preference commands — discovery falls through to package.json
|
|
1097
|
+
});
|
|
1098
|
+
assert.equal(result.discoverySource, "package-json");
|
|
1099
|
+
assert.ok(result.checks.length > 0, "should have discovered package.json checks");
|
|
1100
|
+
assert.equal(result.passed, true, "package-json failures should not block the gate");
|
|
1101
|
+
for (const check of result.checks) {
|
|
1102
|
+
assert.equal(check.blocking, false, "package-json checks should be non-blocking");
|
|
1103
|
+
}
|
|
1104
|
+
} finally {
|
|
1105
|
+
rmSync(tmp, { recursive: true, force: true });
|
|
1106
|
+
}
|
|
1107
|
+
});
|
|
1108
|
+
|
|
1109
|
+
test("non-blocking: preference commands failing → result.passed is false", () => {
|
|
1110
|
+
const tmp = makeTempDir("vg-nb-pref-fail");
|
|
1111
|
+
try {
|
|
1112
|
+
const result = runVerificationGate({
|
|
1113
|
+
basePath: tmp,
|
|
1114
|
+
unitId: "T01",
|
|
1115
|
+
cwd: tmp,
|
|
1116
|
+
preferenceCommands: ["sh -c 'exit 1'"],
|
|
1117
|
+
});
|
|
1118
|
+
assert.equal(result.discoverySource, "preference");
|
|
1119
|
+
assert.equal(result.passed, false, "preference failures should block the gate");
|
|
1120
|
+
assert.equal(result.checks[0].blocking, true, "preference checks should be blocking");
|
|
1121
|
+
} finally {
|
|
1122
|
+
rmSync(tmp, { recursive: true, force: true });
|
|
1123
|
+
}
|
|
1124
|
+
});
|
|
1125
|
+
|
|
1126
|
+
test("non-blocking: task-plan commands failing → result.passed is false", () => {
|
|
1127
|
+
const tmp = makeTempDir("vg-nb-tp-fail");
|
|
1128
|
+
try {
|
|
1129
|
+
const result = runVerificationGate({
|
|
1130
|
+
basePath: tmp,
|
|
1131
|
+
unitId: "T01",
|
|
1132
|
+
cwd: tmp,
|
|
1133
|
+
taskPlanVerify: "sh -c 'exit 1'",
|
|
1134
|
+
});
|
|
1135
|
+
assert.equal(result.discoverySource, "task-plan");
|
|
1136
|
+
assert.equal(result.passed, false, "task-plan failures should block the gate");
|
|
1137
|
+
assert.equal(result.checks[0].blocking, true, "task-plan checks should be blocking");
|
|
1138
|
+
} finally {
|
|
1139
|
+
rmSync(tmp, { recursive: true, force: true });
|
|
1140
|
+
}
|
|
1141
|
+
});
|
|
1142
|
+
|
|
1143
|
+
test("non-blocking: blocking field is set correctly based on discovery source", () => {
|
|
1144
|
+
const tmp = makeTempDir("vg-nb-field");
|
|
1145
|
+
try {
|
|
1146
|
+
// preference → blocking
|
|
1147
|
+
const prefResult = runVerificationGate({
|
|
1148
|
+
basePath: tmp,
|
|
1149
|
+
unitId: "T01",
|
|
1150
|
+
cwd: tmp,
|
|
1151
|
+
preferenceCommands: ["echo ok"],
|
|
1152
|
+
});
|
|
1153
|
+
assert.equal(prefResult.checks[0].blocking, true);
|
|
1154
|
+
|
|
1155
|
+
// task-plan → blocking
|
|
1156
|
+
const tpResult = runVerificationGate({
|
|
1157
|
+
basePath: tmp,
|
|
1158
|
+
unitId: "T01",
|
|
1159
|
+
cwd: tmp,
|
|
1160
|
+
taskPlanVerify: "echo ok",
|
|
1161
|
+
});
|
|
1162
|
+
assert.equal(tpResult.checks[0].blocking, true);
|
|
1163
|
+
|
|
1164
|
+
// package-json → non-blocking
|
|
1165
|
+
writeFileSync(
|
|
1166
|
+
join(tmp, "package.json"),
|
|
1167
|
+
JSON.stringify({ scripts: { test: "echo ok" } }),
|
|
1168
|
+
);
|
|
1169
|
+
const pkgResult = runVerificationGate({
|
|
1170
|
+
basePath: tmp,
|
|
1171
|
+
unitId: "T01",
|
|
1172
|
+
cwd: tmp,
|
|
1173
|
+
});
|
|
1174
|
+
assert.equal(pkgResult.checks[0].blocking, false);
|
|
1175
|
+
} finally {
|
|
1176
|
+
rmSync(tmp, { recursive: true, force: true });
|
|
1177
|
+
}
|
|
1178
|
+
});
|
|
1179
|
+
|
|
1180
|
+
test("non-blocking: formatFailureContext only includes blocking failures", () => {
|
|
1181
|
+
const result: import("../types.ts").VerificationResult = {
|
|
1182
|
+
passed: true,
|
|
1183
|
+
checks: [
|
|
1184
|
+
{ command: "npm run lint", exitCode: 1, stdout: "", stderr: "lint warning", durationMs: 100, blocking: false },
|
|
1185
|
+
{ command: "npm run test", exitCode: 1, stdout: "", stderr: "test error", durationMs: 200, blocking: true },
|
|
1186
|
+
{ command: "npm run typecheck", exitCode: 1, stdout: "", stderr: "type error", durationMs: 50, blocking: false },
|
|
1187
|
+
],
|
|
1188
|
+
discoverySource: "preference",
|
|
1189
|
+
timestamp: Date.now(),
|
|
1190
|
+
};
|
|
1191
|
+
const output = formatFailureContext(result);
|
|
1192
|
+
assert.ok(output.includes("`npm run test`"), "should include blocking failure");
|
|
1193
|
+
assert.ok(!output.includes("npm run lint"), "should not include non-blocking failure");
|
|
1194
|
+
assert.ok(!output.includes("npm run typecheck"), "should not include non-blocking failure");
|
|
1195
|
+
});
|
|
1196
|
+
|
|
1197
|
+
test("non-blocking: formatFailureContext returns empty when only non-blocking failures exist", () => {
|
|
1198
|
+
const result: import("../types.ts").VerificationResult = {
|
|
1199
|
+
passed: true,
|
|
1200
|
+
checks: [
|
|
1201
|
+
{ command: "npm run lint", exitCode: 1, stdout: "", stderr: "lint warning", durationMs: 100, blocking: false },
|
|
1202
|
+
{ command: "npm run test", exitCode: 1, stdout: "", stderr: "test warning", durationMs: 200, blocking: false },
|
|
1203
|
+
],
|
|
1204
|
+
discoverySource: "package-json",
|
|
1205
|
+
timestamp: Date.now(),
|
|
1206
|
+
};
|
|
1207
|
+
assert.equal(formatFailureContext(result), "", "should return empty when only non-blocking failures");
|
|
1208
|
+
});
|
|
@@ -55,6 +55,7 @@ export interface VerificationCheck {
|
|
|
55
55
|
stdout: string;
|
|
56
56
|
stderr: string;
|
|
57
57
|
durationMs: number;
|
|
58
|
+
blocking: boolean; // true for preference/task-plan sources, false for package-json (advisory only)
|
|
58
59
|
}
|
|
59
60
|
|
|
60
61
|
/** A runtime error captured from bg-shell processes or browser console */
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { existsSync,
|
|
1
|
+
import { existsSync, readdirSync, readFileSync, unlinkSync } from "node:fs";
|
|
2
2
|
import { join } from "node:path";
|
|
3
3
|
import {
|
|
4
4
|
gsdRoot,
|
|
@@ -8,6 +8,7 @@ import {
|
|
|
8
8
|
resolveTaskFile,
|
|
9
9
|
} from "./paths.js";
|
|
10
10
|
import { loadFile, parseTaskPlanMustHaves, countMustHavesMentionedInSummary } from "./files.js";
|
|
11
|
+
import { loadJsonFileOrNull, saveJsonFile } from "./json-persistence.js";
|
|
11
12
|
|
|
12
13
|
export type UnitRuntimePhase =
|
|
13
14
|
| "dispatched"
|
|
@@ -46,13 +47,23 @@ export interface AutoUnitRuntimeRecord {
|
|
|
46
47
|
lastRecoveryReason?: "idle" | "hard";
|
|
47
48
|
}
|
|
48
49
|
|
|
50
|
+
function isAutoUnitRuntimeRecord(data: unknown): data is AutoUnitRuntimeRecord {
|
|
51
|
+
return (
|
|
52
|
+
typeof data === "object" &&
|
|
53
|
+
data !== null &&
|
|
54
|
+
(data as AutoUnitRuntimeRecord).version === 1 &&
|
|
55
|
+
typeof (data as AutoUnitRuntimeRecord).unitType === "string" &&
|
|
56
|
+
typeof (data as AutoUnitRuntimeRecord).unitId === "string"
|
|
57
|
+
);
|
|
58
|
+
}
|
|
59
|
+
|
|
49
60
|
function runtimeDir(basePath: string): string {
|
|
50
61
|
return join(gsdRoot(basePath), "runtime", "units");
|
|
51
62
|
}
|
|
52
63
|
|
|
53
64
|
function runtimePath(basePath: string, unitType: string, unitId: string): string {
|
|
54
|
-
const sanitizedUnitType = unitType.replace(/[
|
|
55
|
-
const sanitizedUnitId = unitId.replace(/[
|
|
65
|
+
const sanitizedUnitType = unitType.replace(/[^a-zA-Z0-9._-]+/g, "-");
|
|
66
|
+
const sanitizedUnitId = unitId.replace(/[^a-zA-Z0-9._-]+/g, "-");
|
|
56
67
|
return join(runtimeDir(basePath), `${sanitizedUnitType}-${sanitizedUnitId}.json`);
|
|
57
68
|
}
|
|
58
69
|
|
|
@@ -63,8 +74,6 @@ export function writeUnitRuntimeRecord(
|
|
|
63
74
|
startedAt: number,
|
|
64
75
|
updates: Partial<AutoUnitRuntimeRecord> = {},
|
|
65
76
|
): AutoUnitRuntimeRecord {
|
|
66
|
-
const dir = runtimeDir(basePath);
|
|
67
|
-
mkdirSync(dir, { recursive: true });
|
|
68
77
|
const path = runtimePath(basePath, unitType, unitId);
|
|
69
78
|
const prev = readUnitRuntimeRecord(basePath, unitType, unitId);
|
|
70
79
|
const next: AutoUnitRuntimeRecord = {
|
|
@@ -84,18 +93,12 @@ export function writeUnitRuntimeRecord(
|
|
|
84
93
|
recoveryAttempts: updates.recoveryAttempts ?? prev?.recoveryAttempts ?? 0,
|
|
85
94
|
lastRecoveryReason: updates.lastRecoveryReason ?? prev?.lastRecoveryReason,
|
|
86
95
|
};
|
|
87
|
-
|
|
96
|
+
saveJsonFile(path, next);
|
|
88
97
|
return next;
|
|
89
98
|
}
|
|
90
99
|
|
|
91
100
|
export function readUnitRuntimeRecord(basePath: string, unitType: string, unitId: string): AutoUnitRuntimeRecord | null {
|
|
92
|
-
|
|
93
|
-
if (!existsSync(path)) return null;
|
|
94
|
-
try {
|
|
95
|
-
return JSON.parse(readFileSync(path, "utf-8")) as AutoUnitRuntimeRecord;
|
|
96
|
-
} catch {
|
|
97
|
-
return null;
|
|
98
|
-
}
|
|
101
|
+
return loadJsonFileOrNull(runtimePath(basePath, unitType, unitId), isAutoUnitRuntimeRecord);
|
|
99
102
|
}
|
|
100
103
|
|
|
101
104
|
export function clearUnitRuntimeRecord(basePath: string, unitType: string, unitId: string): void {
|
|
@@ -20,6 +20,7 @@ export interface EvidenceCheckJSON {
|
|
|
20
20
|
exitCode: number;
|
|
21
21
|
durationMs: number;
|
|
22
22
|
verdict: "pass" | "fail";
|
|
23
|
+
blocking: boolean;
|
|
23
24
|
}
|
|
24
25
|
|
|
25
26
|
export interface RuntimeErrorJSON {
|
|
@@ -80,6 +81,7 @@ export function writeVerificationJSON(
|
|
|
80
81
|
exitCode: check.exitCode,
|
|
81
82
|
durationMs: check.durationMs,
|
|
82
83
|
verdict: check.exitCode === 0 ? "pass" : "fail",
|
|
84
|
+
blocking: check.blocking,
|
|
83
85
|
})),
|
|
84
86
|
...(retryAttempt !== undefined ? { retryAttempt } : {}),
|
|
85
87
|
...(maxRetries !== undefined ? { maxRetries } : {}),
|
|
@@ -112,7 +112,9 @@ const MAX_FAILURE_CONTEXT_CHARS = 10_000;
|
|
|
112
112
|
* Returns an empty string when all checks pass or the checks array is empty.
|
|
113
113
|
*/
|
|
114
114
|
export function formatFailureContext(result: VerificationResult): string {
|
|
115
|
-
|
|
115
|
+
// Only include blocking failures in retry context — non-blocking (advisory) failures
|
|
116
|
+
// should not be injected into retry prompts to avoid noise pollution.
|
|
117
|
+
const failures = result.checks.filter((c) => c.exitCode !== 0 && c.blocking);
|
|
116
118
|
if (failures.length === 0) return "";
|
|
117
119
|
|
|
118
120
|
const blocks: string[] = [];
|
|
@@ -256,6 +258,10 @@ export function runVerificationGate(options: RunVerificationGateOptions): Verifi
|
|
|
256
258
|
};
|
|
257
259
|
}
|
|
258
260
|
|
|
261
|
+
// Commands from preference and task-plan sources are blocking;
|
|
262
|
+
// package-json discovered commands are advisory (non-blocking).
|
|
263
|
+
const blocking = source === "preference" || source === "task-plan";
|
|
264
|
+
|
|
259
265
|
const checks: VerificationCheck[] = [];
|
|
260
266
|
|
|
261
267
|
for (const command of commands) {
|
|
@@ -291,11 +297,16 @@ export function runVerificationGate(options: RunVerificationGateOptions): Verifi
|
|
|
291
297
|
stdout: truncate(result.stdout, MAX_OUTPUT_BYTES),
|
|
292
298
|
stderr,
|
|
293
299
|
durationMs,
|
|
300
|
+
blocking,
|
|
294
301
|
});
|
|
295
302
|
}
|
|
296
303
|
|
|
304
|
+
// Gate passes if all blocking checks pass (non-blocking failures are advisory)
|
|
305
|
+
const blockingChecks = checks.filter(c => c.blocking);
|
|
306
|
+
const passed = blockingChecks.length === 0 || blockingChecks.every(c => c.exitCode === 0);
|
|
307
|
+
|
|
297
308
|
return {
|
|
298
|
-
passed
|
|
309
|
+
passed,
|
|
299
310
|
checks,
|
|
300
311
|
discoverySource: source,
|
|
301
312
|
timestamp,
|
|
@@ -2,11 +2,11 @@
|
|
|
2
2
|
* Remote Questions — Discord adapter
|
|
3
3
|
*/
|
|
4
4
|
|
|
5
|
-
import type
|
|
5
|
+
import { PER_REQUEST_TIMEOUT_MS, type ChannelAdapter, type RemotePrompt, type RemoteDispatchResult, type RemoteAnswer, type RemotePromptRef } from "./types.js";
|
|
6
6
|
import { formatForDiscord, parseDiscordResponse, DISCORD_NUMBER_EMOJIS } from "./format.js";
|
|
7
7
|
|
|
8
8
|
const DISCORD_API = "https://discord.com/api/v10";
|
|
9
|
-
|
|
9
|
+
|
|
10
10
|
export class DiscordAdapter implements ChannelAdapter {
|
|
11
11
|
readonly name = "discord" as const;
|
|
12
12
|
private botUserId: string | null = null;
|
|
@@ -9,8 +9,7 @@
|
|
|
9
9
|
|
|
10
10
|
import { resolveRemoteConfig } from "./config.js";
|
|
11
11
|
import type { ResolvedConfig } from "./config.js";
|
|
12
|
-
|
|
13
|
-
const PER_REQUEST_TIMEOUT_MS = 15_000;
|
|
12
|
+
import { PER_REQUEST_TIMEOUT_MS } from "./types.js";
|
|
14
13
|
|
|
15
14
|
/**
|
|
16
15
|
* Send a one-way notification to the configured remote channel.
|
|
@@ -2,11 +2,10 @@
|
|
|
2
2
|
* Remote Questions — Slack adapter
|
|
3
3
|
*/
|
|
4
4
|
|
|
5
|
-
import type
|
|
5
|
+
import { PER_REQUEST_TIMEOUT_MS, type ChannelAdapter, type RemotePrompt, type RemoteDispatchResult, type RemoteAnswer, type RemotePromptRef } from "./types.js";
|
|
6
6
|
import { formatForSlack, parseSlackReply, parseSlackReactionResponse, SLACK_NUMBER_REACTION_NAMES } from "./format.js";
|
|
7
7
|
|
|
8
8
|
const SLACK_API = "https://slack.com/api";
|
|
9
|
-
const PER_REQUEST_TIMEOUT_MS = 15_000;
|
|
10
9
|
const SLACK_ACK_REACTION = "white_check_mark";
|
|
11
10
|
|
|
12
11
|
export class SlackAdapter implements ChannelAdapter {
|
|
@@ -2,11 +2,10 @@
|
|
|
2
2
|
* Remote Questions — Telegram adapter
|
|
3
3
|
*/
|
|
4
4
|
|
|
5
|
-
import type
|
|
5
|
+
import { PER_REQUEST_TIMEOUT_MS, type ChannelAdapter, type RemotePrompt, type RemoteDispatchResult, type RemoteAnswer, type RemotePromptRef } from "./types.js";
|
|
6
6
|
import { formatForTelegram, parseTelegramResponse } from "./format.js";
|
|
7
7
|
|
|
8
8
|
const TELEGRAM_API = "https://api.telegram.org";
|
|
9
|
-
const PER_REQUEST_TIMEOUT_MS = 15_000;
|
|
10
9
|
|
|
11
10
|
export class TelegramAdapter implements ChannelAdapter {
|
|
12
11
|
readonly name = "telegram" as const;
|
|
@@ -2,6 +2,9 @@
|
|
|
2
2
|
* Remote Questions — shared types
|
|
3
3
|
*/
|
|
4
4
|
|
|
5
|
+
/** Timeout applied to every outbound HTTP request across all channel adapters. */
|
|
6
|
+
export const PER_REQUEST_TIMEOUT_MS = 15_000;
|
|
7
|
+
|
|
5
8
|
export type RemoteChannel = "slack" | "discord" | "telegram";
|
|
6
9
|
|
|
7
10
|
export interface RemoteQuestionOption {
|
|
@@ -28,3 +28,6 @@ export { showInterviewRound } from "./interview-ui.js";
|
|
|
28
28
|
export type { Question, QuestionOption, RoundResult } from "./interview-ui.js";
|
|
29
29
|
export { showNextAction } from "./next-action-ui.js";
|
|
30
30
|
export { showConfirm } from "./confirm-ui.js";
|
|
31
|
+
export { sanitizeError } from "./sanitize.js";
|
|
32
|
+
export { formatDateShort, truncateWithEllipsis } from "./format-utils.js";
|
|
33
|
+
export { splitFrontmatter, parseFrontmatterMap } from "./frontmatter.js";
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "gsd-pi",
|
|
3
|
-
"version": "2.28.0-dev.
|
|
3
|
+
"version": "2.28.0-dev.a8d3050",
|
|
4
4
|
"description": "GSD — Get Shit Done coding agent",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
@@ -73,6 +73,9 @@
|
|
|
73
73
|
"validate-pack": "node scripts/validate-pack.js",
|
|
74
74
|
"typecheck:extensions": "tsc --noEmit --project tsconfig.extensions.json",
|
|
75
75
|
"pipeline:version-stamp": "node scripts/version-stamp.mjs",
|
|
76
|
+
"release:changelog": "node scripts/generate-changelog.mjs",
|
|
77
|
+
"release:bump": "node scripts/bump-version.mjs",
|
|
78
|
+
"release:update-changelog": "node scripts/update-changelog.mjs",
|
|
76
79
|
"docker:build-runtime": "docker build --target runtime -t ghcr.io/gsd-build/gsd-pi .",
|
|
77
80
|
"docker:build-builder": "docker build --target builder -t ghcr.io/gsd-build/gsd-ci-builder .",
|
|
78
81
|
"prepublishOnly": "npm run sync-pkg-version && npm run sync-platform-versions && ([ \"$CI\" = 'true' ] || git diff --exit-code || (echo 'ERROR: version sync changed files — commit them before publishing' && exit 1)) && npm run build && npm run typecheck:extensions && npm run validate-pack"
|
|
@@ -112,6 +112,7 @@ export interface Settings {
|
|
|
112
112
|
editorPaddingX?: number;
|
|
113
113
|
autocompleteMaxVisible?: number;
|
|
114
114
|
respectGitignoreInPicker?: boolean;
|
|
115
|
+
searchExcludeDirs?: string[];
|
|
115
116
|
showHardwareCursor?: boolean;
|
|
116
117
|
markdown?: MarkdownSettings;
|
|
117
118
|
memory?: MemorySettings;
|
|
@@ -281,6 +282,8 @@ export declare class SettingsManager {
|
|
|
281
282
|
setAutocompleteMaxVisible(maxVisible: number): void;
|
|
282
283
|
getRespectGitignoreInPicker(): boolean;
|
|
283
284
|
setRespectGitignoreInPicker(value: boolean): void;
|
|
285
|
+
getSearchExcludeDirs(): string[];
|
|
286
|
+
setSearchExcludeDirs(dirs: string[]): void;
|
|
284
287
|
getCodeBlockIndent(): string;
|
|
285
288
|
getMemorySettings(): {
|
|
286
289
|
enabled: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"settings-manager.d.ts","sourceRoot":"","sources":["../../src/core/settings-manager.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"settings-manager.d.ts","sourceRoot":"","sources":["../../src/core/settings-manager.ts"],"names":[],"mappings":"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"}
|