@sun-asterisk/sungen 3.3.0-alpha.5 → 3.3.0-alpha.7
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/commands/contract-derive-command.d.ts.map +1 -1
- package/dist/cli/commands/contract-derive-command.js +2 -0
- package/dist/cli/commands/contract-derive-command.js.map +1 -1
- package/dist/cli/commands/delivery.d.ts.map +1 -1
- package/dist/cli/commands/delivery.js +21 -3
- package/dist/cli/commands/delivery.js.map +1 -1
- package/dist/cli/commands/generate.d.ts.map +1 -1
- package/dist/cli/commands/generate.js +3 -1
- package/dist/cli/commands/generate.js.map +1 -1
- package/dist/cli/commands/next.d.ts +5 -2
- package/dist/cli/commands/next.d.ts.map +1 -1
- package/dist/cli/commands/next.js +14 -1
- package/dist/cli/commands/next.js.map +1 -1
- package/dist/cli/commands/triage.d.ts +2 -1
- package/dist/cli/commands/triage.d.ts.map +1 -1
- package/dist/cli/commands/triage.js +42 -2
- package/dist/cli/commands/triage.js.map +1 -1
- package/dist/cli/commands/update.d.ts.map +1 -1
- package/dist/cli/commands/update.js +6 -2
- package/dist/cli/commands/update.js.map +1 -1
- package/dist/cli/index.js +4 -0
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/json-error-on-exit.d.ts +34 -0
- package/dist/cli/json-error-on-exit.d.ts.map +1 -0
- package/dist/cli/json-error-on-exit.js +63 -0
- package/dist/cli/json-error-on-exit.js.map +1 -0
- package/dist/cli/waiting-for-you-block.d.ts +15 -0
- package/dist/cli/waiting-for-you-block.d.ts.map +1 -0
- package/dist/cli/waiting-for-you-block.js +19 -0
- package/dist/cli/waiting-for-you-block.js.map +1 -0
- package/dist/contract/derive-free-feature.d.ts +2 -0
- package/dist/contract/derive-free-feature.d.ts.map +1 -1
- package/dist/contract/derive-free-feature.js +22 -0
- package/dist/contract/derive-free-feature.js.map +1 -1
- package/dist/decisions/decision-schema.d.ts +2 -1
- package/dist/decisions/decision-schema.d.ts.map +1 -1
- package/dist/decisions/decision-schema.js +2 -1
- package/dist/decisions/decision-schema.js.map +1 -1
- package/dist/decisions/legacy-waiver-migration.d.ts +2 -0
- package/dist/decisions/legacy-waiver-migration.d.ts.map +1 -1
- package/dist/decisions/legacy-waiver-migration.js +5 -2
- package/dist/decisions/legacy-waiver-migration.js.map +1 -1
- package/dist/graph/board-human-actions.d.ts +5 -0
- package/dist/graph/board-human-actions.d.ts.map +1 -0
- package/dist/graph/board-human-actions.js +83 -0
- package/dist/graph/board-human-actions.js.map +1 -0
- package/dist/graph/evaluate-graph.d.ts +16 -0
- package/dist/graph/evaluate-graph.d.ts.map +1 -1
- package/dist/graph/evaluate-graph.js +29 -6
- package/dist/graph/evaluate-graph.js.map +1 -1
- package/dist/graph/human-action.d.ts +21 -0
- package/dist/graph/human-action.d.ts.map +1 -0
- package/dist/graph/human-action.js +3 -0
- package/dist/graph/human-action.js.map +1 -0
- package/dist/graph/manual-triage-decisions.d.ts +19 -0
- package/dist/graph/manual-triage-decisions.d.ts.map +1 -0
- package/dist/graph/manual-triage-decisions.js +53 -0
- package/dist/graph/manual-triage-decisions.js.map +1 -0
- package/dist/graph/node-decl.d.ts +9 -0
- package/dist/graph/node-decl.d.ts.map +1 -1
- package/dist/graph/node-decl.js +4 -1
- package/dist/graph/node-decl.js.map +1 -1
- package/dist/graph/nodes/test-case-contract-nodes.d.ts.map +1 -1
- package/dist/graph/nodes/test-case-contract-nodes.js +16 -3
- package/dist/graph/nodes/test-case-contract-nodes.js.map +1 -1
- package/dist/graph/nodes/test-case-nodes.d.ts +3 -0
- package/dist/graph/nodes/test-case-nodes.d.ts.map +1 -1
- package/dist/graph/nodes/test-case-nodes.js +33 -4
- package/dist/graph/nodes/test-case-nodes.js.map +1 -1
- package/dist/graph/nodes/unit-audit-nodes.d.ts.map +1 -1
- package/dist/graph/nodes/unit-audit-nodes.js +1 -0
- package/dist/graph/nodes/unit-audit-nodes.js.map +1 -1
- package/dist/graph/nodes/unit-contract-node.d.ts.map +1 -1
- package/dist/graph/nodes/unit-contract-node.js +8 -0
- package/dist/graph/nodes/unit-contract-node.js.map +1 -1
- package/dist/graph/test-case-results.d.ts +1 -0
- package/dist/graph/test-case-results.d.ts.map +1 -1
- package/dist/graph/test-case-results.js +27 -3
- package/dist/graph/test-case-results.js.map +1 -1
- package/dist/graph/test-case-satisfied.d.ts +5 -4
- package/dist/graph/test-case-satisfied.d.ts.map +1 -1
- package/dist/graph/test-case-satisfied.js +4 -0
- package/dist/graph/test-case-satisfied.js.map +1 -1
- package/dist/graph/test-case-state-shape.d.ts +7 -1
- package/dist/graph/test-case-state-shape.d.ts.map +1 -1
- package/dist/graph/unit-results-freshness.d.ts +29 -0
- package/dist/graph/unit-results-freshness.d.ts.map +1 -0
- package/dist/graph/unit-results-freshness.js +213 -0
- package/dist/graph/unit-results-freshness.js.map +1 -0
- package/dist/harness/audit.d.ts +3 -2
- package/dist/harness/audit.d.ts.map +1 -1
- package/dist/harness/audit.js +4 -17
- package/dist/harness/audit.js.map +1 -1
- package/dist/harness/catalog/gate-rules.yaml +1 -1
- package/dist/harness/defect-draft.d.ts.map +1 -1
- package/dist/harness/defect-draft.js +12 -2
- package/dist/harness/defect-draft.js.map +1 -1
- package/dist/harness/defects.d.ts +14 -0
- package/dist/harness/defects.d.ts.map +1 -1
- package/dist/harness/defects.js +14 -10
- package/dist/harness/defects.js.map +1 -1
- package/dist/harness/flow-check.d.ts +9 -0
- package/dist/harness/flow-check.d.ts.map +1 -1
- package/dist/harness/flow-check.js +11 -0
- package/dist/harness/flow-check.js.map +1 -1
- package/dist/harness/gates/audit-gate-verdict.d.ts.map +1 -1
- package/dist/harness/gates/audit-gate-verdict.js +2 -1
- package/dist/harness/gates/audit-gate-verdict.js.map +1 -1
- package/dist/harness/gates/audit-input-hash.d.ts +2 -0
- package/dist/harness/gates/audit-input-hash.d.ts.map +1 -1
- package/dist/harness/gates/audit-input-hash.js +30 -2
- package/dist/harness/gates/audit-input-hash.js.map +1 -1
- package/dist/harness/gates/audit-report-verification.js +1 -1
- package/dist/harness/gates/audit-report-verification.js.map +1 -1
- package/dist/harness/gates/delivery-checklist.d.ts +3 -0
- package/dist/harness/gates/delivery-checklist.d.ts.map +1 -1
- package/dist/harness/gates/delivery-checklist.js +37 -4
- package/dist/harness/gates/delivery-checklist.js.map +1 -1
- package/dist/harness/gates/in-run-decision-check.d.ts.map +1 -1
- package/dist/harness/gates/in-run-decision-check.js +21 -1
- package/dist/harness/gates/in-run-decision-check.js.map +1 -1
- package/dist/harness/journey.d.ts +21 -0
- package/dist/harness/journey.d.ts.map +1 -1
- package/dist/harness/journey.js +61 -11
- package/dist/harness/journey.js.map +1 -1
- package/dist/harness/next-step.d.ts +17 -0
- package/dist/harness/next-step.d.ts.map +1 -1
- package/dist/harness/next-step.js +19 -0
- package/dist/harness/next-step.js.map +1 -1
- package/dist/harness/triage-manual-classification.d.ts +32 -0
- package/dist/harness/triage-manual-classification.d.ts.map +1 -0
- package/dist/harness/triage-manual-classification.js +56 -0
- package/dist/harness/triage-manual-classification.js.map +1 -0
- package/dist/harness/unit-paths.d.ts +8 -0
- package/dist/harness/unit-paths.d.ts.map +1 -1
- package/dist/harness/unit-paths.js +23 -1
- package/dist/harness/unit-paths.js.map +1 -1
- package/dist/hooks/guard-tty-spoof-rule.d.ts +3 -1
- package/dist/hooks/guard-tty-spoof-rule.d.ts.map +1 -1
- package/dist/hooks/guard-tty-spoof-rule.js +3 -2
- package/dist/hooks/guard-tty-spoof-rule.js.map +1 -1
- package/dist/hooks/hand-back-core.d.ts +1 -1
- package/dist/hooks/hand-back-core.d.ts.map +1 -1
- package/dist/hooks/hand-back-core.js +4 -2
- package/dist/hooks/hand-back-core.js.map +1 -1
- package/dist/hooks/session-start-unit-state-hook.d.ts +2 -1
- package/dist/hooks/session-start-unit-state-hook.d.ts.map +1 -1
- package/dist/hooks/session-start-unit-state-hook.js +4 -1
- package/dist/hooks/session-start-unit-state-hook.js.map +1 -1
- package/dist/hooks/stop-next-step-hook.d.ts.map +1 -1
- package/dist/hooks/stop-next-step-hook.js +1 -0
- package/dist/hooks/stop-next-step-hook.js.map +1 -1
- package/dist/orchestrator/templates/ai-src/commands/delivery.md +2 -0
- package/dist/orchestrator/templates/ai-src/commands/review.md +2 -0
- package/dist/orchestrator/templates/ai-src/partials/waiting-for-you.claude.md +11 -0
- package/dist/orchestrator/templates/ai-src/partials/waiting-for-you.codex.md +11 -0
- package/dist/orchestrator/templates/ai-src/partials/waiting-for-you.copilot.md +11 -0
- package/package.json +3 -3
- package/src/cli/commands/contract-derive-command.ts +1 -0
- package/src/cli/commands/delivery.ts +20 -3
- package/src/cli/commands/generate.ts +3 -1
- package/src/cli/commands/next.ts +14 -3
- package/src/cli/commands/triage.ts +38 -2
- package/src/cli/commands/update.ts +6 -2
- package/src/cli/index.ts +4 -0
- package/src/cli/json-error-on-exit.ts +72 -0
- package/src/cli/waiting-for-you-block.ts +23 -0
- package/src/contract/derive-free-feature.ts +21 -0
- package/src/decisions/decision-schema.ts +2 -1
- package/src/decisions/legacy-waiver-migration.ts +5 -1
- package/src/graph/board-human-actions.ts +80 -0
- package/src/graph/evaluate-graph.ts +37 -8
- package/src/graph/human-action.ts +33 -0
- package/src/graph/manual-triage-decisions.ts +55 -0
- package/src/graph/node-decl.ts +11 -0
- package/src/graph/nodes/test-case-contract-nodes.ts +20 -4
- package/src/graph/nodes/test-case-nodes.ts +37 -5
- package/src/graph/nodes/unit-audit-nodes.ts +2 -1
- package/src/graph/nodes/unit-contract-node.ts +12 -1
- package/src/graph/test-case-results.ts +25 -4
- package/src/graph/test-case-satisfied.ts +7 -4
- package/src/graph/test-case-state-shape.ts +7 -2
- package/src/graph/unit-results-freshness.ts +165 -0
- package/src/harness/audit.ts +4 -13
- package/src/harness/catalog/gate-rules.yaml +1 -1
- package/src/harness/defect-draft.ts +13 -2
- package/src/harness/defects.ts +22 -9
- package/src/harness/flow-check.ts +11 -0
- package/src/harness/gates/audit-gate-verdict.ts +2 -1
- package/src/harness/gates/audit-input-hash.ts +27 -3
- package/src/harness/gates/audit-report-verification.ts +2 -2
- package/src/harness/gates/delivery-checklist.ts +37 -5
- package/src/harness/gates/in-run-decision-check.ts +22 -1
- package/src/harness/journey.ts +79 -8
- package/src/harness/next-step.ts +31 -1
- package/src/harness/triage-manual-classification.ts +76 -0
- package/src/harness/unit-paths.ts +19 -0
- package/src/hooks/guard-tty-spoof-rule.ts +6 -3
- package/src/hooks/hand-back-core.ts +4 -2
- package/src/hooks/session-start-unit-state-hook.ts +4 -1
- package/src/hooks/stop-next-step-hook.ts +1 -0
- package/src/orchestrator/templates/ai-src/commands/delivery.md +2 -0
- package/src/orchestrator/templates/ai-src/commands/review.md +2 -0
- package/src/orchestrator/templates/ai-src/partials/waiting-for-you.claude.md +11 -0
- package/src/orchestrator/templates/ai-src/partials/waiting-for-you.codex.md +11 -0
- package/src/orchestrator/templates/ai-src/partials/waiting-for-you.copilot.md +11 -0
|
@@ -62,7 +62,9 @@ const project_deps_sync_1 = require("../../orchestrator/project-deps-sync");
|
|
|
62
62
|
*
|
|
63
63
|
* The public `--skip-npm-install` flag is still available for users who
|
|
64
64
|
* already installed the binary by other means (CI pipelines, corporate
|
|
65
|
-
* mirror, manual download)
|
|
65
|
+
* mirror, manual download). It skips only step 1: the project sync still
|
|
66
|
+
* re-pins package.json (security overrides included) and runs `npm install`
|
|
67
|
+
* there — `--skip-project` skips that (#939).
|
|
66
68
|
*/
|
|
67
69
|
const SKIP_NPM_ENV = 'SUNGEN_UPDATE_SKIP_NPM';
|
|
68
70
|
/**
|
|
@@ -84,7 +86,9 @@ function registerUpdateCommand(program) {
|
|
|
84
86
|
.default(false)
|
|
85
87
|
.conflicts('beta'))
|
|
86
88
|
.option('--tag <dist-tag>', 'Install a specific npm dist-tag (e.g. latest, beta, alpha, next). Overrides --beta / --alpha.')
|
|
87
|
-
|
|
89
|
+
// #939: it skips only the GLOBAL install — the project is still synced, so the help says so.
|
|
90
|
+
.option('--skip-npm-install', 'Skip the global npm install step. The project is still synced: its sungen packages are re-pinned in package.json '
|
|
91
|
+
+ '(security `overrides` included) and `npm install` runs in the project — add --skip-project to skip that too', false)
|
|
88
92
|
.option('--skip-project', 'Skip reinstalling the project-local sungen packages (AI assets only — leaves node_modules stale)', false)
|
|
89
93
|
.action(async (options) => {
|
|
90
94
|
try {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"update.js","sourceRoot":"","sources":["../../../src/cli/commands/update.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"update.js","sourceRoot":"","sources":["../../../src/cli/commands/update.ts"],"names":[],"mappings":"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"}
|
package/dist/cli/index.js
CHANGED
|
@@ -46,6 +46,7 @@ const registry_1 = require("../capabilities/registry");
|
|
|
46
46
|
const discover_1 = require("../capabilities/discover");
|
|
47
47
|
const assets_drift_1 = require("../orchestrator/assets-drift");
|
|
48
48
|
const hand_back_core_1 = require("../hooks/hand-back-core");
|
|
49
|
+
const json_error_on_exit_1 = require("./json-error-on-exit");
|
|
49
50
|
const hook_cli_command_1 = require("../hooks/hook-cli-command");
|
|
50
51
|
// Read version from package.json so `--version` never drifts from the released version.
|
|
51
52
|
const { version } = require('../../package.json');
|
|
@@ -59,6 +60,8 @@ async function main() {
|
|
|
59
60
|
// those rules live in the hook core (src/hooks/hand-back-core.ts) — this file only wires it.
|
|
60
61
|
const handBack = (0, hand_back_core_1.attachCliHandBack)(process.argv, process.cwd());
|
|
61
62
|
const program = new commander_1.Command();
|
|
63
|
+
// #939: a failed `--json` command prints {"error":{code,message}} on stdout (json-error-on-exit.ts).
|
|
64
|
+
const jsonErrors = (0, json_error_on_exit_1.attachJsonErrorOnExit)(process.argv, (args) => (0, json_error_on_exit_1.commandSupportsJson)(program, args));
|
|
62
65
|
program
|
|
63
66
|
.name('sungen')
|
|
64
67
|
.description('Deterministic E2E Test Compiler — Gherkin + Selectors → Playwright')
|
|
@@ -125,6 +128,7 @@ async function main() {
|
|
|
125
128
|
// The action knows its unit and output mode; the hand-back default above is refined here.
|
|
126
129
|
program.hook('preAction', (_thisCommand, actionCommand) => {
|
|
127
130
|
handBack.onAction(actionCommand.name(), actionCommand.opts(), actionCommand.args);
|
|
131
|
+
jsonErrors.onAction();
|
|
128
132
|
});
|
|
129
133
|
await program.parseAsync(process.argv);
|
|
130
134
|
}
|
package/dist/cli/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":";;AACA;;;GAGG;;AAEH,yCAAoC;AACpC,0CAAsD;AACtD,wCAAoD;AACpD,kDAA8D;AAC9D,kDAA8D;AAC9D,kEAA4E;AAC5E,8CAA0D;AAC1D,kDAA8D;AAC9D,4CAAwD;AACxD,kDAA6D;AAC7D,oDAAgE;AAChE,4CAAwD;AACxD,gDAA4D;AAC5D,sDAAiE;AACjE,gDAA4D;AAC5D,0CAAsD;AACtD,8CAA0D;AAC1D,0CAAsD;AACtD,kDAA8D;AAC9D,gDAA4D;AAC5D,8CAA0D;AAC1D,8CAA0D;AAC1D,kDAA8D;AAC9D,wDAAmE;AACnE,0DAAqE;AACrE,4CAAwD;AACxD,0CAAsD;AACtD,oDAAgE;AAChE,oDAAgE;AAChE,sDAAkE;AAClE,sDAAiE;AACjE,gDAA4D;AAC5D,8CAA0D;AAC1D,8CAA0D;AAC1D,8CAA0D;AAC1D,4DAAkE;AAClE,4CAAwD;AACxD,uDAA8D;AAC9D,uDAA2E;AAC3E,+DAA+D;AAC/D,4DAA4D;AAC5D,gEAAgE;AAEhE,wFAAwF;AACxF,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,oBAAoB,CAAwB,CAAC;AAEzE,KAAK,UAAU,IAAI;IACjB,8FAA8F;IAC9F,+FAA+F;IAC/F,gGAAgG;IAChG,gGAAgG;IAChG,4FAA4F;IAC5F,uHAAuH;IACvH,6FAA6F;IAC7F,MAAM,QAAQ,GAAG,IAAA,kCAAiB,EAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IAChE,MAAM,OAAO,GAAG,IAAI,mBAAO,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `--json` failures speak JSON too (#939 item 7). A command that supports `--json` and fails used to
|
|
3
|
+
* print its error on stderr and NOTHING on stdout, so a caller parsing stdout got an empty string. Now,
|
|
4
|
+
* when such a command exits non-zero without having written stdout, the exit prints one object:
|
|
5
|
+
*
|
|
6
|
+
* {"error":{"code":"command-failed" | "usage-error","message":"<the error it printed>"}}
|
|
7
|
+
*
|
|
8
|
+
* command-failed the action ran and failed (`next nope --json`)
|
|
9
|
+
* usage-error commander refused the arguments before any action ran (`audit --json --bogus`)
|
|
10
|
+
* The human error stays on stderr, unchanged. A command that printed its own JSON keeps it, whatever
|
|
11
|
+
* its exit code (`contract check --json` exits 2 with the verdict); a command without `--json` is never
|
|
12
|
+
* touched — commander's own "unknown option '--json'" is its usage error, not a JSON caller's.
|
|
13
|
+
* Like the hand-back, it hangs off process exit: commands exit from inside their actions.
|
|
14
|
+
*/
|
|
15
|
+
import type { Command } from 'commander';
|
|
16
|
+
export type JsonErrorCode = 'command-failed' | 'usage-error';
|
|
17
|
+
export interface JsonError {
|
|
18
|
+
error: {
|
|
19
|
+
code: JsonErrorCode;
|
|
20
|
+
message: string;
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
/** The error object for what the command printed on stderr: from its first error line on, the hand-back dropped. */
|
|
24
|
+
export declare function jsonErrorPayload(stderr: string, actionRan: boolean, exitCode: number): JsonError;
|
|
25
|
+
/** The (sub)command `args` name, walked down from `program`, defines `--json`. */
|
|
26
|
+
export declare function commandSupportsJson(program: Command, args: string[]): boolean;
|
|
27
|
+
/**
|
|
28
|
+
* Wire it to process exit for `argv` (a no-op without `--json`). `supportsJson` is asked at exit, once
|
|
29
|
+
* every command is registered; `onAction` marks that an action ran (a failure then is not a usage error).
|
|
30
|
+
*/
|
|
31
|
+
export declare function attachJsonErrorOnExit(argv: string[], supportsJson: (args: string[]) => boolean): {
|
|
32
|
+
onAction: () => void;
|
|
33
|
+
};
|
|
34
|
+
//# sourceMappingURL=json-error-on-exit.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"json-error-on-exit.d.ts","sourceRoot":"","sources":["../../src/cli/json-error-on-exit.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEzC,MAAM,MAAM,aAAa,GAAG,gBAAgB,GAAG,aAAa,CAAC;AAC7D,MAAM,WAAW,SAAS;IAAG,KAAK,EAAE;QAAE,IAAI,EAAE,aAAa,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE;AAM9E,oHAAoH;AACpH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,GAAG,SAAS,CAMhG;AAED,kFAAkF;AAClF,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAS7E;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,YAAY,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,OAAO,GAAG;IAAE,QAAQ,EAAE,MAAM,IAAI,CAAA;CAAE,CAuBzH"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.jsonErrorPayload = jsonErrorPayload;
|
|
4
|
+
exports.commandSupportsJson = commandSupportsJson;
|
|
5
|
+
exports.attachJsonErrorOnExit = attachJsonErrorOnExit;
|
|
6
|
+
const ANSI = /\u001b\[[0-9;]*m/g;
|
|
7
|
+
const ERROR_LINE = /^(?:Error|error|Fatal error|❌[^:]*):\s*/;
|
|
8
|
+
const MAX_CAPTURE = 64 * 1024;
|
|
9
|
+
/** The error object for what the command printed on stderr: from its first error line on, the hand-back dropped. */
|
|
10
|
+
function jsonErrorPayload(stderr, actionRan, exitCode) {
|
|
11
|
+
const lines = stderr.replace(ANSI, '').split('\n').map((l) => l.trimEnd()).filter((l) => l && !/^Next: /.test(l));
|
|
12
|
+
const at = lines.findIndex((l) => ERROR_LINE.test(l));
|
|
13
|
+
const picked = at >= 0 ? lines.slice(at) : lines.slice(-1);
|
|
14
|
+
const message = picked.join('\n').replace(ERROR_LINE, '').trim() || `exited with code ${exitCode}`;
|
|
15
|
+
return { error: { code: actionRan ? 'command-failed' : 'usage-error', message } };
|
|
16
|
+
}
|
|
17
|
+
/** The (sub)command `args` name, walked down from `program`, defines `--json`. */
|
|
18
|
+
function commandSupportsJson(program, args) {
|
|
19
|
+
let cmd = program;
|
|
20
|
+
for (const a of args) {
|
|
21
|
+
if (a.startsWith('-'))
|
|
22
|
+
continue;
|
|
23
|
+
const sub = cmd.commands.find((c) => c.name() === a || c.aliases().includes(a));
|
|
24
|
+
if (!sub)
|
|
25
|
+
break;
|
|
26
|
+
cmd = sub;
|
|
27
|
+
}
|
|
28
|
+
return cmd !== program && cmd.options.some((o) => o.long === '--json');
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Wire it to process exit for `argv` (a no-op without `--json`). `supportsJson` is asked at exit, once
|
|
32
|
+
* every command is registered; `onAction` marks that an action ran (a failure then is not a usage error).
|
|
33
|
+
*/
|
|
34
|
+
function attachJsonErrorOnExit(argv, supportsJson) {
|
|
35
|
+
const args = argv.slice(2);
|
|
36
|
+
if (!args.includes('--json'))
|
|
37
|
+
return { onAction: () => undefined };
|
|
38
|
+
let wroteStdout = false;
|
|
39
|
+
let stderr = '';
|
|
40
|
+
let actionRan = false;
|
|
41
|
+
const writeOut = process.stdout.write.bind(process.stdout);
|
|
42
|
+
const writeErr = process.stderr.write.bind(process.stderr);
|
|
43
|
+
process.stdout.write = ((chunk, ...rest) => {
|
|
44
|
+
if (String(chunk).length)
|
|
45
|
+
wroteStdout = true;
|
|
46
|
+
return writeOut(chunk, ...rest);
|
|
47
|
+
});
|
|
48
|
+
process.stderr.write = ((chunk, ...rest) => {
|
|
49
|
+
if (stderr.length < MAX_CAPTURE)
|
|
50
|
+
stderr += String(chunk);
|
|
51
|
+
return writeErr(chunk, ...rest);
|
|
52
|
+
});
|
|
53
|
+
process.on('exit', (code) => {
|
|
54
|
+
try {
|
|
55
|
+
if (code === 0 || wroteStdout || !supportsJson(args))
|
|
56
|
+
return;
|
|
57
|
+
writeOut(`${JSON.stringify(jsonErrorPayload(stderr, actionRan, code))}\n`);
|
|
58
|
+
}
|
|
59
|
+
catch { /* the exit code is the contract; this object is a courtesy */ }
|
|
60
|
+
});
|
|
61
|
+
return { onAction: () => { actionRan = true; } };
|
|
62
|
+
}
|
|
63
|
+
//# sourceMappingURL=json-error-on-exit.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"json-error-on-exit.js","sourceRoot":"","sources":["../../src/cli/json-error-on-exit.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The "Waiting for you" block (#954) — every pending human-only action of a unit, as ready-to-copy
|
|
3
|
+
* commands with the reason under each. One renderer for the three places that show it: `sungen next`
|
|
4
|
+
* (text) and the Stop / SessionStart hook context. Commands as the project runs sungen (`npx sungen`
|
|
5
|
+
* with a local install, #939); `--json` keeps them canonical in `humanActions`. An instruction (a commit
|
|
6
|
+
* through review, a `git checkout --`) is marked `✎ … (by hand, not a command)`, never shown as one to copy.
|
|
7
|
+
*/
|
|
8
|
+
import type { HumanAction } from '../graph/human-action';
|
|
9
|
+
export declare const WAITING_FOR_YOU_HEAD = "\u23F3 Waiting for you \u2014 a human runs these in their own terminal (in Claude Code: ! <command>); an agent never runs them:";
|
|
10
|
+
/**
|
|
11
|
+
* The block's lines (indented two spaces), or none when nothing waits for a human. `heldBy`: the title
|
|
12
|
+
* of the blocking step that cut the frontier — the block is not exhaustive then, and says what holds the rest.
|
|
13
|
+
*/
|
|
14
|
+
export declare function waitingForYouLines(actions: readonly HumanAction[] | undefined, projectRoot: string, heldBy?: string): string[];
|
|
15
|
+
//# sourceMappingURL=waiting-for-you-block.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"waiting-for-you-block.d.ts","sourceRoot":"","sources":["../../src/cli/waiting-for-you-block.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAGzD,eAAO,MAAM,oBAAoB,oIAA0H,CAAC;AAE5J;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,SAAS,WAAW,EAAE,GAAG,SAAS,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAM9H"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.WAITING_FOR_YOU_HEAD = void 0;
|
|
4
|
+
exports.waitingForYouLines = waitingForYouLines;
|
|
5
|
+
const project_sungen_invocation_1 = require("./project-sungen-invocation");
|
|
6
|
+
exports.WAITING_FOR_YOU_HEAD = '⏳ Waiting for you — a human runs these in their own terminal (in Claude Code: ! <command>); an agent never runs them:';
|
|
7
|
+
/**
|
|
8
|
+
* The block's lines (indented two spaces), or none when nothing waits for a human. `heldBy`: the title
|
|
9
|
+
* of the blocking step that cut the frontier — the block is not exhaustive then, and says what holds the rest.
|
|
10
|
+
*/
|
|
11
|
+
function waitingForYouLines(actions, projectRoot, heldBy) {
|
|
12
|
+
if (!actions?.length)
|
|
13
|
+
return [];
|
|
14
|
+
return [` ${exports.WAITING_FOR_YOU_HEAD}`, ...actions.flatMap((a) => [
|
|
15
|
+
a.instruction ? ` ✎ ${a.command} (by hand, not a command)` : ` ${(0, project_sungen_invocation_1.withProjectInvocation)(a.command, projectRoot)}`,
|
|
16
|
+
` ${a.reason}`,
|
|
17
|
+
]), ...(heldBy ? [` More appear once "${heldBy}" clears.`] : [])];
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=waiting-for-you-block.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"waiting-for-you-block.js","sourceRoot":"","sources":["../../src/cli/waiting-for-you-block.ts"],"names":[],"mappings":";;;AAgBA,gDAMC;AAdD,2EAAoE;AAEvD,QAAA,oBAAoB,GAAG,uHAAuH,CAAC;AAE5J;;;GAGG;AACH,SAAgB,kBAAkB,CAAC,OAA2C,EAAE,WAAmB,EAAE,MAAe;IAClH,IAAI,CAAC,OAAO,EAAE,MAAM;QAAE,OAAO,EAAE,CAAC;IAChC,OAAO,CAAC,KAAK,4BAAoB,EAAE,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;YAC7D,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,OAAO,6BAA6B,CAAC,CAAC,CAAC,QAAQ,IAAA,iDAAqB,EAAC,CAAC,CAAC,OAAO,EAAE,WAAW,CAAC,EAAE;YAC1H,UAAU,CAAC,CAAC,MAAM,EAAE;SACrB,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,0BAA0B,MAAM,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACxE,CAAC"}
|
|
@@ -27,6 +27,8 @@ export interface DeriveResult {
|
|
|
27
27
|
}>;
|
|
28
28
|
refused?: SecretHit[];
|
|
29
29
|
note?: string;
|
|
30
|
+
/** A derived id another `.feature` of the unit already uses (#939) — `contract check` and approve would trip on it later. */
|
|
31
|
+
warnings?: string[];
|
|
30
32
|
}
|
|
31
33
|
/**
|
|
32
34
|
* Nothing was derived and nothing explains it away: no test of the unit left an admissible trace
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"derive-free-feature.d.ts","sourceRoot":"","sources":["../../src/contract/derive-free-feature.ts"],"names":[],"mappings":"AAoBA,OAAO,EAAwD,SAAS,EAAE,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"derive-free-feature.d.ts","sourceRoot":"","sources":["../../src/contract/derive-free-feature.ts"],"names":[],"mappings":"AAoBA,OAAO,EAAwD,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAQ7G,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAKrE,MAAM,WAAW,WAAW;IAAG,WAAW,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,qBAAqB,GAAG,IAAI,CAAA;CAAE;AACjJ,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC5F,sHAAsH;IACtH,OAAO,EAAE,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,IAAI,CAAA;KAAE,CAAC,CAAC;IAChE,OAAO,CAAC,EAAE,SAAS,EAAE,CAAC;IACtB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,6HAA6H;IAC7H,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;CACrB;AAoCD;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,CAAC,EAAE,YAAY,GAAG,OAAO,CAEvD;AAED,wBAAsB,iBAAiB,CAAC,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,YAAY,CAAC,CAmD7E"}
|
|
@@ -59,6 +59,7 @@ const field_semantic_redaction_1 = require("./field-semantic-redaction");
|
|
|
59
59
|
const free_feature_blocks_1 = require("./free-feature-blocks");
|
|
60
60
|
const lock_secret_guard_1 = require("./lock-secret-guard");
|
|
61
61
|
const normalize_feature_steps_1 = require("./normalize-feature-steps");
|
|
62
|
+
const unit_paths_1 = require("../harness/unit-paths");
|
|
62
63
|
const render_free_gherkin_1 = require("./render-free-gherkin");
|
|
63
64
|
const collect_trace_evidence_1 = require("./trace/collect-trace-evidence");
|
|
64
65
|
const identity_cache_1 = require("./trace/identity-cache");
|
|
@@ -83,6 +84,24 @@ function semanticHits(text, label) {
|
|
|
83
84
|
fs.rmSync(dir, { recursive: true, force: true });
|
|
84
85
|
}
|
|
85
86
|
}
|
|
87
|
+
/**
|
|
88
|
+
* The derived ids another `.feature` of the unit already carries (#939): `contract check` reports an id
|
|
89
|
+
* used twice and approve refuses it, so say it now — when it is still one rename away — not at check.
|
|
90
|
+
*/
|
|
91
|
+
function reusedIdWarnings(unit, freeFile, ids) {
|
|
92
|
+
const owners = new Map();
|
|
93
|
+
for (const f of (0, unit_paths_1.featureFilesFor)(unit.dir, unit.name)) {
|
|
94
|
+
if (path.resolve(f) === path.resolve(freeFile) || !fs.existsSync(f))
|
|
95
|
+
continue;
|
|
96
|
+
try {
|
|
97
|
+
for (const sc of (0, normalize_feature_steps_1.scenariosOfFeatureFile)(f))
|
|
98
|
+
if (!owners.has(sc.id))
|
|
99
|
+
owners.set(sc.id, path.basename(f));
|
|
100
|
+
}
|
|
101
|
+
catch { /* an unparseable sibling is `contract check`'s to report */ }
|
|
102
|
+
}
|
|
103
|
+
return ids.filter((id) => owners.has(id)).map((id) => `${id} is already the ID of a scenario in ${owners.get(id)} — the derived scenario reuses it; give the free test (its title's leading ID) or that scenario its own ID, or \`sungen contract check\` reports it twice and approval refuses it`);
|
|
104
|
+
}
|
|
86
105
|
/**
|
|
87
106
|
* Nothing was derived and nothing explains it away: no test of the unit left an admissible trace
|
|
88
107
|
* (#932). Not when the scenarios are approved (derive leaves those alone by design), up to date,
|
|
@@ -140,6 +159,9 @@ async function deriveFreeFeature(i) {
|
|
|
140
159
|
}
|
|
141
160
|
if (!result.scenarios.length)
|
|
142
161
|
return result;
|
|
162
|
+
const reused = reusedIdWarnings(i.unit, file, result.scenarios.map((x) => x.id));
|
|
163
|
+
if (reused.length)
|
|
164
|
+
result.warnings = reused;
|
|
143
165
|
const text = (0, render_free_gherkin_1.freeFeatureText)(unitBase, [...blocks.values()]);
|
|
144
166
|
const label = path.basename(file);
|
|
145
167
|
const hits = [...(MACHINE_PATH.test(text) ? [{ where: label, reason: 'a machine path survived scrubbing' }] : []), ...(0, field_semantic_redaction_1.secretScanHits)(text, label), ...semanticHits(text, label)];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"derive-free-feature.js","sourceRoot":"","sources":["../../src/contract/derive-free-feature.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"derive-free-feature.js","sourceRoot":"","sources":["../../src/contract/derive-free-feature.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,7 +8,8 @@
|
|
|
8
8
|
* checked when read — an unknown key (a stored `superseded_by`, say) makes the entry invalid, because
|
|
9
9
|
* a field outside the id's content could carry meaning the id does not vouch for.
|
|
10
10
|
*/
|
|
11
|
-
|
|
11
|
+
/** `triage-classification`: a red classified by hand, `sungen triage --case --as` (#928, graph/manual-triage-decisions.ts). */
|
|
12
|
+
export declare const DECISION_KINDS: readonly ["waiver", "gate-override", "contract-approval", "viewpoint-acceptance", "clarification", "triage-classification"];
|
|
12
13
|
export type DecisionKind = typeof DECISION_KINDS[number];
|
|
13
14
|
export type DecisionVisibility = 'internal' | 'client';
|
|
14
15
|
export type JsonValue = string | number | boolean | null | JsonValue[] | {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"decision-schema.d.ts","sourceRoot":"","sources":["../../src/decisions/decision-schema.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,eAAO,MAAM,cAAc,
|
|
1
|
+
{"version":3,"file":"decision-schema.d.ts","sourceRoot":"","sources":["../../src/decisions/decision-schema.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,+HAA+H;AAC/H,eAAO,MAAM,cAAc,6HAA8H,CAAC;AAC1J,MAAM,MAAM,YAAY,GAAG,OAAO,cAAc,CAAC,MAAM,CAAC,CAAC;AACzD,MAAM,MAAM,kBAAkB,GAAG,UAAU,GAAG,QAAQ,CAAC;AACvD,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,GAAG,SAAS,EAAE,GAAG;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,CAAC;AAEtG,MAAM,WAAW,cAAc;IAAG,EAAE,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE;AAE7D,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,YAAY,CAAC;IACnB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IACpC,MAAM,EAAE,cAAc,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,kBAAkB,CAAC;IAC/B,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,aAAc,SAAQ,aAAa;IAAG,EAAE,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE;AAEvF,eAAO,MAAM,cAAc,QAAqB,CAAC;AAgBjD,kGAAkG;AAClG,wBAAgB,WAAW,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,EAAE,CAgBhE;AAED,+EAA+E;AAC/E,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,EAAE,CAOxD"}
|
|
@@ -13,7 +13,8 @@ exports.storedEntryErrors = storedEntryErrors;
|
|
|
13
13
|
* checked when read — an unknown key (a stored `superseded_by`, say) makes the entry invalid, because
|
|
14
14
|
* a field outside the id's content could carry meaning the id does not vouch for.
|
|
15
15
|
*/
|
|
16
|
-
|
|
16
|
+
/** `triage-classification`: a red classified by hand, `sungen triage --case --as` (#928, graph/manual-triage-decisions.ts). */
|
|
17
|
+
exports.DECISION_KINDS = ['waiver', 'gate-override', 'contract-approval', 'viewpoint-acceptance', 'clarification', 'triage-classification'];
|
|
17
18
|
exports.DECISION_ID_RE = /^D-[0-9a-f]{16}$/;
|
|
18
19
|
const ENTRY_HASH_RE = /^[0-9a-f]{64}$/;
|
|
19
20
|
const ISO_RE = /^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}(:\d{2}(\.\d+)?)?(Z|[+-]\d{2}:\d{2})$/;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"decision-schema.js","sourceRoot":"","sources":["../../src/decisions/decision-schema.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"decision-schema.js","sourceRoot":"","sources":["../../src/decisions/decision-schema.ts"],"names":[],"mappings":"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"}
|
|
@@ -18,6 +18,8 @@ export interface WaiverSyncPlan {
|
|
|
18
18
|
}
|
|
19
19
|
export declare const importMarkerPath: (projectRoot: string, slug: string) => string;
|
|
20
20
|
export declare function planWaiverSync(projectRoot: string, unit: string, slug: string, statePath: string, legacy: unknown): WaiverSyncPlan;
|
|
21
|
+
/** The command a human types to give (or confirm) a waiver — the board's line and `sungen next`'s "Waiting for you" (#954). */
|
|
22
|
+
export declare const waiveCommand: (unit: string, obligation: string, reason: string) => string;
|
|
21
23
|
/** The needs-you line for a waiver that is not in git HEAD: not counted, and how a human confirms it. */
|
|
22
24
|
export declare function untrustedWaiverText(unit: string, slug: string, title: string, u: UntrustedWaiver): string;
|
|
23
25
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"legacy-waiver-migration.d.ts","sourceRoot":"","sources":["../../src/decisions/legacy-waiver-migration.ts"],"names":[],"mappings":"AAqBA,OAAO,EAAkB,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAGjE,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAKlD,OAAO,EAA0D,YAAY,EAA2B,MAAM,oBAAoB,CAAC;AAEnI,MAAM,WAAW,eAAe;IAAG,UAAU,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,YAAY,CAAA;CAAE;AAE7E,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,0EAA0E;IAC1E,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IACtC,SAAS,EAAE,eAAe,EAAE,CAAC;IAC7B,yGAAyG;IACzG,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACtC,OAAO,EAAE,aAAa,EAAE,CAAC;IACzB,8EAA8E;IAC9E,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,eAAO,MAAM,gBAAgB,GAAI,aAAa,MAAM,EAAE,MAAM,MAAM,KAAG,MACa,CAAC;AAQnF,wBAAgB,cAAc,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,GAAG,cAAc,CA0BlI;AAED,yGAAyG;AACzG,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,EAAE,eAAe,GAAG,MAAM,CAIzG;AASD;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAwBrJ;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,EAAE,YAAY,GAAG,YAAY,CAQjH"}
|
|
1
|
+
{"version":3,"file":"legacy-waiver-migration.d.ts","sourceRoot":"","sources":["../../src/decisions/legacy-waiver-migration.ts"],"names":[],"mappings":"AAqBA,OAAO,EAAkB,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAGjE,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAKlD,OAAO,EAA0D,YAAY,EAA2B,MAAM,oBAAoB,CAAC;AAEnI,MAAM,WAAW,eAAe;IAAG,UAAU,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,YAAY,CAAA;CAAE;AAE7E,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,0EAA0E;IAC1E,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IACtC,SAAS,EAAE,eAAe,EAAE,CAAC;IAC7B,yGAAyG;IACzG,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACtC,OAAO,EAAE,aAAa,EAAE,CAAC;IACzB,8EAA8E;IAC9E,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,eAAO,MAAM,gBAAgB,GAAI,aAAa,MAAM,EAAE,MAAM,MAAM,KAAG,MACa,CAAC;AAQnF,wBAAgB,cAAc,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,GAAG,cAAc,CA0BlI;AAED,+HAA+H;AAC/H,eAAO,MAAM,YAAY,GAAI,MAAM,MAAM,EAAE,YAAY,MAAM,EAAE,QAAQ,MAAM,KAAG,MACmB,CAAC;AAEpG,yGAAyG;AACzG,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,EAAE,eAAe,GAAG,MAAM,CAIzG;AASD;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAwBrJ;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,EAAE,YAAY,GAAG,YAAY,CAQjH"}
|
|
@@ -33,7 +33,7 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
33
33
|
};
|
|
34
34
|
})();
|
|
35
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
-
exports.importMarkerPath = void 0;
|
|
36
|
+
exports.waiveCommand = exports.importMarkerPath = void 0;
|
|
37
37
|
exports.planWaiverSync = planWaiverSync;
|
|
38
38
|
exports.untrustedWaiverText = untrustedWaiverText;
|
|
39
39
|
exports.commitWaiverSync = commitWaiverSync;
|
|
@@ -113,9 +113,12 @@ function planWaiverSync(projectRoot, unit, slug, statePath, legacy) {
|
|
|
113
113
|
stateWaivers[ob] = waivers[ob] = (0, waiver_decisions_1.asLegacyWaiver)(d);
|
|
114
114
|
return { scope, waivers, untrusted, stateWaivers, imports, markDone: !!scope && untrusted.length === 0 };
|
|
115
115
|
}
|
|
116
|
+
/** The command a human types to give (or confirm) a waiver — the board's line and `sungen next`'s "Waiting for you" (#954). */
|
|
117
|
+
const waiveCommand = (unit, obligation, reason) => (0, human_confirmation_1.formatCommand)(['sungen', 'journey', '--screen', unit, '--waive', obligation, '--reason', reason]);
|
|
118
|
+
exports.waiveCommand = waiveCommand;
|
|
116
119
|
/** The needs-you line for a waiver that is not in git HEAD: not counted, and how a human confirms it. */
|
|
117
120
|
function untrustedWaiverText(unit, slug, title, u) {
|
|
118
|
-
const confirm = (0,
|
|
121
|
+
const confirm = (0, exports.waiveCommand)(unit, u.obligation, u.waiver.reason);
|
|
119
122
|
return `⚠️ Waiver on "${title}" is UNTRUSTED — not counted (decision.in-run: it is in .sungen/journey/${slug}.state.json `
|
|
120
123
|
+ `but not in git HEAD). If it is yours, confirm it on a terminal: ${confirm}`;
|
|
121
124
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"legacy-waiver-migration.js","sourceRoot":"","sources":["../../src/decisions/legacy-waiver-migration.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAsDA,wCA0BC;
|
|
1
|
+
{"version":3,"file":"legacy-waiver-migration.js","sourceRoot":"","sources":["../../src/decisions/legacy-waiver-migration.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { UnitState } from '../harness/next-step';
|
|
2
|
+
import type { HumanAction } from './human-action';
|
|
3
|
+
/** The board's and the delivery's asks of a human for this unit. `cut`: the frontier stopped at a blocking node. */
|
|
4
|
+
export declare function boardHumanActions(projectRoot: string, unitDir: string, s: UnitState, cut: boolean): HumanAction[];
|
|
5
|
+
//# sourceMappingURL=board-human-actions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"board-human-actions.d.ts","sourceRoot":"","sources":["../../src/graph/board-human-actions.ts"],"names":[],"mappings":"AAmBA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAiDlD,oHAAoH;AACpH,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,EAAE,SAAS,EAAE,GAAG,EAAE,OAAO,GAAG,WAAW,EAAE,CASjH"}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.boardHumanActions = boardHumanActions;
|
|
4
|
+
/**
|
|
5
|
+
* The human-only actions the graph does not hold ("Waiting for you", #954) — asked by the journey
|
|
6
|
+
* board and the delivery's decision check, read through THEIR functions (never restated here):
|
|
7
|
+
*
|
|
8
|
+
* waive a waiver the board re-surfaces: stale (the audit changed since) or untrusted (not
|
|
9
|
+
* in git HEAD) — readJourneyHumanAsks, the reconcile `runJourney` commits
|
|
10
|
+
* decide a gate-override that relaxes nothing because no human confirmed it (ineffective) —
|
|
11
|
+
* re-recorded with `journey --decide`, superseding it (loadUnitGateOverrides)
|
|
12
|
+
* signoff every other obligation holds — assertCanSignOff, as `journey --signoff` checks it
|
|
13
|
+
* accept-in-run a decision recorded during the run — evaluateDeliveryDecisions, as `delivery` runs it
|
|
14
|
+
* The sign-off and accept-in-run only once the frontier was not cut (the unit has run and nothing
|
|
15
|
+
* blocks before it). Read-only and advisory: whatever cannot be read adds nothing.
|
|
16
|
+
*/
|
|
17
|
+
const human_confirmation_1 = require("../decisions/human-confirmation");
|
|
18
|
+
const legacy_waiver_migration_1 = require("../decisions/legacy-waiver-migration");
|
|
19
|
+
const delivery_decision_gate_1 = require("../harness/gates/delivery-decision-gate");
|
|
20
|
+
const in_run_decision_check_1 = require("../harness/gates/in-run-decision-check");
|
|
21
|
+
const unit_gate_overrides_1 = require("../harness/gates/unit-gate-overrides");
|
|
22
|
+
const journey_1 = require("../harness/journey");
|
|
23
|
+
const unit_artifact_probes_1 = require("./unit-artifact-probes");
|
|
24
|
+
function journeyActions(projectRoot, s, cut) {
|
|
25
|
+
const asks = (0, journey_1.readJourneyHumanAsks)(projectRoot, s.unit);
|
|
26
|
+
const out = asks.redecide.map((w) => ({
|
|
27
|
+
kind: 'waive',
|
|
28
|
+
command: (0, legacy_waiver_migration_1.waiveCommand)(s.unit, w.obligation, w.reason),
|
|
29
|
+
reason: w.why === 'stale'
|
|
30
|
+
? `the waiver on "${w.title}" is stale — the evidence changed since it was given, so it no longer counts; if it still holds, a human gives it again on a terminal (or repair the obligation)`
|
|
31
|
+
: `the waiver on "${w.title}" is not in git HEAD (decision.in-run), so it is not counted — if it is yours, confirm it on a terminal`,
|
|
32
|
+
}));
|
|
33
|
+
if (!cut && asks.canSignOff && asks.signoff.status !== 'given') {
|
|
34
|
+
out.push({
|
|
35
|
+
kind: 'signoff',
|
|
36
|
+
command: (0, journey_1.signoffCommand)(s.unit),
|
|
37
|
+
reason: asks.signoff.status === 'stale'
|
|
38
|
+
? `the sign-off of ${asks.signoff.at} is stale — the suite changed since; review the queue (\`sungen journey --screen ${s.unit}\`) and sign off again`
|
|
39
|
+
: `every other obligation is satisfied or waived — the human sign-off is the one gate \`sungen gate --phase deliver\` still waits on; review the queue (\`sungen journey --screen ${s.unit}\`, ${asks.report.needsYou.length} item(s)), then sign`,
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
return out;
|
|
43
|
+
}
|
|
44
|
+
function unconfirmedOverrides(projectRoot, unitDir, s) {
|
|
45
|
+
return (0, unit_gate_overrides_1.loadUnitGateOverrides)(projectRoot, (0, unit_gate_overrides_1.unitScopeOfDir)(projectRoot, unitDir)).ineffective.map((o) => {
|
|
46
|
+
const { humanAccepted: _ignored, ...payload } = o.entry.payload ?? {};
|
|
47
|
+
return {
|
|
48
|
+
kind: 'decide',
|
|
49
|
+
command: (0, human_confirmation_1.formatCommand)(['sungen', 'journey', '--screen', s.unit, '--decide', 'gate-override', '--text', o.entry.text, '--reason', o.entry.reason,
|
|
50
|
+
'--payload', JSON.stringify(payload), '--supersedes', o.decisionId]),
|
|
51
|
+
reason: `the gate-override ${o.decisionId}${o.rule ? ` (${o.rule})` : ''} relaxes nothing: ${o.reason} — if it is meant, a human records it again on a terminal, superseding it`,
|
|
52
|
+
};
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
function inRunActions(projectRoot, unitDir, s) {
|
|
56
|
+
const files = (0, unit_artifact_probes_1.unitResultFiles)(projectRoot, s.unit);
|
|
57
|
+
const refs = (files.length ? files : [null]).map((resultsPath) => ({ label: s.unit, unitName: s.unit, unitDir, resultsPath }));
|
|
58
|
+
const inRun = (0, delivery_decision_gate_1.evaluateDeliveryDecisions)(projectRoot, refs).inRun;
|
|
59
|
+
if (!inRun.length)
|
|
60
|
+
return [];
|
|
61
|
+
const which = inRun.slice(0, 3).map((d) => `${d.kind} ${d.id}`).join(', ');
|
|
62
|
+
return [{
|
|
63
|
+
kind: 'accept-in-run',
|
|
64
|
+
command: (0, human_confirmation_1.formatCommand)(['sungen', 'delivery', s.unit, '--accept-in-run']),
|
|
65
|
+
reason: `${inRun.length} decision(s) recorded during the run (${in_run_decision_check_1.IN_RUN_RULE}): ${which}${inRun.length > 3 ? ', …' : ''} — \`sungen delivery\` refuses them until they are committed through review and the tests re-run, or a human accepts them on a terminal`,
|
|
66
|
+
}];
|
|
67
|
+
}
|
|
68
|
+
/** The board's and the delivery's asks of a human for this unit. `cut`: the frontier stopped at a blocking node. */
|
|
69
|
+
function boardHumanActions(projectRoot, unitDir, s, cut) {
|
|
70
|
+
const out = [];
|
|
71
|
+
const add = (read) => {
|
|
72
|
+
try {
|
|
73
|
+
out.push(...read());
|
|
74
|
+
}
|
|
75
|
+
catch { /* advisory: an unreadable board or decision adds nothing */ }
|
|
76
|
+
};
|
|
77
|
+
add(() => journeyActions(projectRoot, s, cut));
|
|
78
|
+
add(() => unconfirmedOverrides(projectRoot, unitDir, s));
|
|
79
|
+
if (!cut)
|
|
80
|
+
add(() => inRunActions(projectRoot, unitDir, s));
|
|
81
|
+
return out;
|
|
82
|
+
}
|
|
83
|
+
//# sourceMappingURL=board-human-actions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"board-human-actions.js","sourceRoot":"","sources":["../../src/graph/board-human-actions.ts"],"names":[],"mappings":"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"}
|