rhachet-roles-bhrain 0.31.2 → 0.31.3

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.
Files changed (27) hide show
  1. package/dist/domain.operations/route/drive/formatRouteDriveBudgetExhausted.js +33 -0
  2. package/dist/domain.operations/route/drive/formatRouteDriveBudgetExhausted.js.map +1 -1
  3. package/dist/domain.operations/route/drive/formatRouteDriveMixedHalt.d.ts +21 -0
  4. package/dist/domain.operations/route/drive/formatRouteDriveMixedHalt.js +67 -0
  5. package/dist/domain.operations/route/drive/formatRouteDriveMixedHalt.js.map +1 -0
  6. package/dist/domain.operations/route/formatRouteStoneEmit.js +22 -1
  7. package/dist/domain.operations/route/formatRouteStoneEmit.js.map +1 -1
  8. package/dist/domain.operations/route/guard/review/peer/meter/getReviewPeerLadderStatus.d.ts +50 -0
  9. package/dist/domain.operations/route/guard/review/peer/meter/getReviewPeerLadderStatus.js +77 -0
  10. package/dist/domain.operations/route/guard/review/peer/meter/getReviewPeerLadderStatus.js.map +1 -0
  11. package/dist/domain.operations/route/guard/tree/formatGuardReviewLadderFooter.d.ts +26 -0
  12. package/dist/domain.operations/route/guard/tree/formatGuardReviewLadderFooter.js +79 -0
  13. package/dist/domain.operations/route/guard/tree/formatGuardReviewLadderFooter.js.map +1 -0
  14. package/dist/domain.operations/route/guard/tree/formatGuardReviewerTree.js +44 -4
  15. package/dist/domain.operations/route/guard/tree/formatGuardReviewerTree.js.map +1 -1
  16. package/dist/domain.operations/route/guard/tree/formatGuardTree.js +85 -52
  17. package/dist/domain.operations/route/guard/tree/formatGuardTree.js.map +1 -1
  18. package/dist/domain.operations/route/stepRouteDrive.js +35 -0
  19. package/dist/domain.operations/route/stepRouteDrive.js.map +1 -1
  20. package/dist/domain.operations/route/stones/setStoneAsPassed.js +91 -0
  21. package/dist/domain.operations/route/stones/setStoneAsPassed.js.map +1 -1
  22. package/dist/domain.roles/driver/boot.yml +4 -0
  23. package/dist/domain.roles/driver/briefs/howto.navigate-fulcrum-choices.[guide].md +82 -0
  24. package/dist/domain.roles/driver/briefs/rule.always.converge-to-terminal.md +108 -0
  25. package/dist/domain.roles/driver/briefs/rule.always.defer-fulcrums-to-last.md +79 -0
  26. package/dist/domain.roles/driver/briefs/rule.always.diagnose-reviewer-malfunctions.md +88 -0
  27. package/package.json +1 -1
@@ -1,6 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.formatRouteDriveBudgetExhausted = void 0;
4
+ const getReviewPeerLadderStatus_1 = require("../guard/review/peer/meter/getReviewPeerLadderStatus");
5
+ const formatGuardReviewLadderFooter_1 = require("../guard/tree/formatGuardReviewLadderFooter");
4
6
  const formatGuardTree_1 = require("../guard/tree/formatGuardTree");
5
7
  const asRouteDisplayPath_1 = require("./asRouteDisplayPath");
6
8
  /**
@@ -13,6 +15,37 @@ const asRouteDisplayPath_1 = require("./asRouteDisplayPath");
13
15
  const formatRouteDriveBudgetExhausted = (input) => {
14
16
  const approveCmd = `rhx route.stone.set --stone ${input.stone} --as approved`;
15
17
  const passCmd = `rhx route.stone.set --stone ${input.stone} --as passed`;
18
+ // upward unlock — a lower level is exhausted (terminal) but a HIGHER level is live again
19
+ // (status.unlockTransition). this is NOT a spent ladder: the "halted, budget exhausted /
20
+ // ask a human" text would be a FALSE HALT (the vision's forbidden state) and would
21
+ // contradict the footer's "a human is only needed once every level is terminal" — two
22
+ // opposite reads in one stdout. so here render ONLY the reviews section + the "path
23
+ // continues" footer, which names the live level and the --as arrived re-drive. no human
24
+ // is needed yet (rule.require.single-source-of-truth-for-render).
25
+ const status = (0, getReviewPeerLadderStatus_1.getReviewPeerLadderStatus)({ peerMeters: input.meters });
26
+ if (status.unlockTransition) {
27
+ const unlockHeader = [
28
+ `🦉 where were we?`,
29
+ '',
30
+ `🗿 route.drive`,
31
+ ` ├─ where do we go?`,
32
+ ` │ ├─ route = ${(0, asRouteDisplayPath_1.asRouteDisplayPath)({ route: input.route })}`,
33
+ ` │ └─ stone = ${input.stone}`,
34
+ ` │`,
35
+ ];
36
+ const unlockMeterLines = (0, formatGuardTree_1.formatReviewsMeterLines)({
37
+ meters: input.meters,
38
+ baseIndent: ' ',
39
+ sectionIndent: ' ',
40
+ includeHeader: true,
41
+ headerPrefix: '└─',
42
+ });
43
+ const ladderFooter = (0, formatGuardReviewLadderFooter_1.formatGuardReviewLadderFooter)({
44
+ stone: input.stone,
45
+ status,
46
+ });
47
+ return [...unlockHeader, ...unlockMeterLines, '', ...ladderFooter].join('\n');
48
+ }
16
49
  // extract exhausted slugs from reason (format: "peer reviewer budget exhausted: slug1, slug2")
17
50
  const exhaustedSlugs = [];
18
51
  if (input.reason) {
@@ -1 +1 @@
1
- {"version":3,"file":"formatRouteDriveBudgetExhausted.js","sourceRoot":"","sources":["../../../../src/domain.operations/route/drive/formatRouteDriveBudgetExhausted.ts"],"names":[],"mappings":";;;AAAA,mEAGuC;AACvC,6DAA0D;AAE1D;;;;;;GAMG;AACI,MAAM,+BAA+B,GAAG,CAAC,KAK/C,EAAU,EAAE;IACX,MAAM,UAAU,GAAG,+BAA+B,KAAK,CAAC,KAAK,gBAAgB,CAAC;IAC9E,MAAM,OAAO,GAAG,+BAA+B,KAAK,CAAC,KAAK,cAAc,CAAC;IAEzE,+FAA+F;IAC/F,MAAM,cAAc,GAAa,EAAE,CAAC;IACpC,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;QACjB,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAC;QAC9D,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACf,cAAc,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QACnE,CAAC;IACH,CAAC;IAED,kEAAkE;IAClE,MAAM,OAAO,GACX,cAAc,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IAEpE,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;IAChC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;IAC7B,KAAK,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;IACpC,KAAK,CAAC,IAAI,CAAC,oBAAoB,IAAA,uCAAkB,EAAC,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;IAC7E,KAAK,CAAC,IAAI,CAAC,oBAAoB,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC;IAC9C,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACnB,KAAK,CAAC,IAAI,CAAC,8CAA8C,CAAC,CAAC;IAC3D,sEAAsE;IACtE,KAAK,CAAC,IAAI,CAAC,iDAAiD,CAAC,CAAC;IAC9D,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAEtB,wDAAwD;IACxD,MAAM,UAAU,GAAG,IAAA,yCAAuB,EAAC;QACzC,MAAM,EAAE,KAAK,CAAC,MAAM;QACpB,UAAU,EAAE,QAAQ;QACpB,aAAa,EAAE,KAAK;QACpB,aAAa,EAAE,IAAI;QACnB,YAAY,EAAE,IAAI;KACnB,CAAC,CAAC;IACH,KAAK,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,CAAC;IAC1B,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAEtB,KAAK,CAAC,IAAI,CAAC,uCAAuC,CAAC,CAAC;IACpD,KAAK,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;IACxC,KAAK,CAAC,IAAI,CAAC,kBAAkB,UAAU,EAAE,CAAC,CAAC;IAC3C,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IACzB,KAAK,CAAC,IAAI,CAAC,wCAAwC,CAAC,CAAC;IACrD,KAAK,CAAC,IAAI,CACR,6DAA6D,OAAO,YAAY,KAAK,CAAC,KAAK,EAAE,CAC9F,CAAC;IACF,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACtB,KAAK,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC;IAC9C,KAAK,CAAC,IAAI,CAAC,eAAe,OAAO,EAAE,CAAC,CAAC;IAErC,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC,CAAC;AA3DW,QAAA,+BAA+B,mCA2D1C"}
1
+ {"version":3,"file":"formatRouteDriveBudgetExhausted.js","sourceRoot":"","sources":["../../../../src/domain.operations/route/drive/formatRouteDriveBudgetExhausted.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ import { type GuardPeerMeterStatus } from '../guard/tree/formatGuardTree';
2
+ /**
3
+ * .what = formats the route.drive replay of a MIXED halt — a malfunction (or constraint)
4
+ * that broke in the SAME pass a lower level exhausted, so every reason + every
5
+ * remedy must show at once
6
+ * .why = a mixed halt persists status='malfunction' with a combined reason
7
+ * ("reviewer or judge malfunctioned; peer reviewer budget exhausted: <slugs>"). the
8
+ * onBoot/onStop replay must NOT collapse it to the bare "guard malfunction, tell a
9
+ * human" escalation — that drops the also-present exhaustion + its overrule/budget
10
+ * remedies, which sends the human down a path that hits a SECOND, unwarned block. this
11
+ * renders the full halt so the replay names every reason and offers every remedy,
12
+ * with the SAME labels the live guard tree emits (overrule / increase budget /
13
+ * approve as-is), so a driver reads the two surfaces as one story
14
+ * (rule.require.single-source-of-truth-for-render).
15
+ */
16
+ export declare const formatRouteDriveMixedHalt: (input: {
17
+ route: string;
18
+ stone: string;
19
+ reason: string;
20
+ meters: GuardPeerMeterStatus[];
21
+ }) => string;
@@ -0,0 +1,67 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.formatRouteDriveMixedHalt = void 0;
4
+ const formatGuardTree_1 = require("../guard/tree/formatGuardTree");
5
+ const asRouteDisplayPath_1 = require("./asRouteDisplayPath");
6
+ /**
7
+ * .what = formats the route.drive replay of a MIXED halt — a malfunction (or constraint)
8
+ * that broke in the SAME pass a lower level exhausted, so every reason + every
9
+ * remedy must show at once
10
+ * .why = a mixed halt persists status='malfunction' with a combined reason
11
+ * ("reviewer or judge malfunctioned; peer reviewer budget exhausted: <slugs>"). the
12
+ * onBoot/onStop replay must NOT collapse it to the bare "guard malfunction, tell a
13
+ * human" escalation — that drops the also-present exhaustion + its overrule/budget
14
+ * remedies, which sends the human down a path that hits a SECOND, unwarned block. this
15
+ * renders the full halt so the replay names every reason and offers every remedy,
16
+ * with the SAME labels the live guard tree emits (overrule / increase budget /
17
+ * approve as-is), so a driver reads the two surfaces as one story
18
+ * (rule.require.single-source-of-truth-for-render).
19
+ */
20
+ const formatRouteDriveMixedHalt = (input) => {
21
+ const overruleCmd = `rhx route.stone.set --stone ${input.stone} --as overruled`;
22
+ const approveCmd = `rhx route.stone.set --stone ${input.stone} --as approved`;
23
+ // extract the exhausted reviewer slugs from the combined reason (exhaustion is last)
24
+ const exhaustedMatch = input.reason.match(/budget exhausted:\s*(.+)/);
25
+ const exhaustedSlugs = exhaustedMatch?.[1]
26
+ ? exhaustedMatch[1].split(',').map((s) => s.trim())
27
+ : [];
28
+ const peerArg = exhaustedSlugs.length === 1 ? ` --peer ${exhaustedSlugs[0]}` : '';
29
+ const budgetCmd = `rhx route.guard.budget --for review --add N${peerArg} --stone ${input.stone}`;
30
+ // malfunction outranks constraint for the overrule noun
31
+ const overruleNoun = input.reason.includes('malfunction')
32
+ ? 'malfunction'
33
+ : 'constraint';
34
+ const lines = [];
35
+ lines.push(`🦉 where were we?`);
36
+ lines.push('');
37
+ lines.push(`🗿 route.drive`);
38
+ lines.push(` ├─ where do we go?`);
39
+ lines.push(` │ ├─ route = ${(0, asRouteDisplayPath_1.asRouteDisplayPath)({ route: input.route })}`);
40
+ lines.push(` │ └─ stone = ${input.stone}`);
41
+ lines.push(` │`);
42
+ lines.push(` └─ halted, ${input.reason}`);
43
+ lines.push(` │`);
44
+ // peer reviewer meters section via the shared formatter
45
+ const meterLines = (0, formatGuardTree_1.formatReviewsMeterLines)({
46
+ meters: input.meters,
47
+ baseIndent: ' ',
48
+ sectionIndent: '│ ',
49
+ includeHeader: true,
50
+ headerPrefix: '├─',
51
+ });
52
+ lines.push(...meterLines);
53
+ lines.push(` │`);
54
+ // every remedy, one per concurrent gate, in precedence order
55
+ lines.push(` └─ please ask a human to either`);
56
+ lines.push(` ├─ overrule the ${overruleNoun}`);
57
+ lines.push(` │ └─ ${overruleCmd}`);
58
+ lines.push(` │`);
59
+ lines.push(` ├─ increase budget (then rerun)`);
60
+ lines.push(` │ └─ ${budgetCmd}`);
61
+ lines.push(` │`);
62
+ lines.push(` └─ approve as-is`);
63
+ lines.push(` └─ ${approveCmd}`);
64
+ return lines.join('\n');
65
+ };
66
+ exports.formatRouteDriveMixedHalt = formatRouteDriveMixedHalt;
67
+ //# sourceMappingURL=formatRouteDriveMixedHalt.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"formatRouteDriveMixedHalt.js","sourceRoot":"","sources":["../../../../src/domain.operations/route/drive/formatRouteDriveMixedHalt.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.formatRouteStoneEmit = void 0;
4
+ const getReviewPeerLadderStatus_1 = require("./guard/review/peer/meter/getReviewPeerLadderStatus");
4
5
  const getSelfReviewArticulationPath_1 = require("./guard/review/self/getSelfReviewArticulationPath");
6
+ const formatGuardReviewLadderFooter_1 = require("./guard/tree/formatGuardReviewLadderFooter");
5
7
  const formatGuardTree_1 = require("./guard/tree/formatGuardTree");
6
8
  const formatLetsReflect_1 = require("./guard/tree/formatLetsReflect");
7
9
  const formatPatienceFriend_1 = require("./guard/tree/formatPatienceFriend");
@@ -66,7 +68,26 @@ const formatRouteStoneEmit = (input) => {
66
68
  if (input.passage === 'allowed' || input.passage === 'overruled') {
67
69
  return [header, '', tree, ...REMINDER_LINES].join('\n');
68
70
  }
69
- return [header, '', tree].join('\n');
71
+ // append the "path continues" footer at an upward unlock transition — a lower level
72
+ // is terminal (INCLUDING by exhaustion) while a HIGHER level is now the live gate. the
73
+ // footer self-gates on status.unlockTransition, so it stays silent for an all-terminal
74
+ // halt (the halt's own options block guides instead) or a regression state
75
+ // (rule.require.single-source-of-truth-for-render — derived from the same peerMeters).
76
+ const ladderStatus = input.guard.peerMeters
77
+ ? (0, getReviewPeerLadderStatus_1.getReviewPeerLadderStatus)({ peerMeters: input.guard.peerMeters })
78
+ : null;
79
+ const ladderFooter = ladderStatus
80
+ ? (0, formatGuardReviewLadderFooter_1.formatGuardReviewLadderFooter)({
81
+ stone: input.stone,
82
+ status: ladderStatus,
83
+ })
84
+ : [];
85
+ return [
86
+ header,
87
+ '',
88
+ tree,
89
+ ...(ladderFooter.length > 0 ? ['', ...ladderFooter] : []),
90
+ ].join('\n');
70
91
  }
71
92
  // handle review.self blocked case
72
93
  if (input.action === 'passed' && input.selfReview) {
@@ -1 +1 @@
1
- {"version":3,"file":"formatRouteStoneEmit.js","sourceRoot":"","sources":["../../../src/domain.operations/route/formatRouteStoneEmit.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"formatRouteStoneEmit.js","sourceRoot":"","sources":["../../../src/domain.operations/route/formatRouteStoneEmit.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,50 @@
1
+ import type { GuardPeerMeterStatus } from '../../../tree/formatGuardTree';
2
+ import type { ReviewPeerVerdict } from './computeReviewPeerVerdict';
3
+ /**
4
+ * .what = one terminal level in the ladder, with the representative verdict that
5
+ * earned its terminal state (the most-escalated verdict at the level)
6
+ * .why = the footer names WHY a level no longer blocks — "l1 is terminal (exhausted)"
7
+ */
8
+ export interface ReviewPeerLadderLevelTerminal {
9
+ level: number;
10
+ verdict: ReviewPeerVerdict;
11
+ }
12
+ /**
13
+ * .what = the ladder's terminal/live shape, derived from the peer meters
14
+ * .why = the "path continues" footer needs to say which levels are DONE (terminal),
15
+ * which level is NOW LIVE (the active gate), and whether the whole ladder is
16
+ * spent — all three read from the SAME peerMeters the tree already renders, so
17
+ * the footer can never drift from the reviewer lines above it
18
+ * (rule.require.single-source-of-truth-for-render)
19
+ */
20
+ export interface ReviewPeerLadderStatus {
21
+ /** levels where every reviewer is terminal, low-to-high, each with a representative verdict */
22
+ terminalLevels: ReviewPeerLadderLevelTerminal[];
23
+ /** the lowest non-terminal level — the active gate now — or null when every level is terminal */
24
+ liveLevel: number | null;
25
+ /** every level is terminal (no live gate remains) */
26
+ allTerminal: boolean;
27
+ /**
28
+ * a lower level went terminal via a HUMAN-DEFERRABLE verdict (approved or exhausted) and a
29
+ * HIGHER level is now the live gate — the true "path continues" unlock moment
30
+ * (lower-unlocks-higher). the sole gate the ladder footer reads. false when:
31
+ * - the live gate sits below every terminal level (a regression state, e.g. a higher level
32
+ * approved via overrule while a lower level re-rejects) — NOT an unlock, so the footer must
33
+ * not name the base level as "now live"; OR
34
+ * - any terminal level is malfunction/constraint — those need a human NOW (to overrule or fix
35
+ * the broken reviewer), which contradicts the footer's "a human is only needed once every
36
+ * level is terminal" line. only exhaustion/approval legitimately DEFER the human; a
37
+ * malfunction/constraint halt's own remedy block ("overrule the malfunction") carries the
38
+ * guidance instead, so the footer stays silent.
39
+ */
40
+ unlockTransition: boolean;
41
+ }
42
+ /**
43
+ * .what = derives the ladder's terminal/live shape from the current peer meters
44
+ * .why = one transformer computes what the footer and any caller need to know about the
45
+ * ladder — which levels are done, which is live, whether all are spent — so the
46
+ * guidance is a read of the meters, never a hand-rolled re-derivation
47
+ */
48
+ export declare const getReviewPeerLadderStatus: (input: {
49
+ peerMeters: GuardPeerMeterStatus[];
50
+ }) => ReviewPeerLadderStatus;
@@ -0,0 +1,77 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getReviewPeerLadderStatus = void 0;
4
+ const isReviewPeerLevelTerminal_1 = require("./isReviewPeerLevelTerminal");
5
+ /** verdict precedence for a level's representative label — most-escalated first */
6
+ const VERDICT_ESCALATION_ORDER = [
7
+ 'malfunction',
8
+ 'constraint',
9
+ 'exhausted',
10
+ 'approved',
11
+ ];
12
+ /**
13
+ * .what = whether a terminal verdict lets the driver DEFER the human (vs need one now)
14
+ * .why = the footer promises "a human is only needed once every level is terminal" — true only
15
+ * when the terminal levels are approved or exhausted (the driver did all it could, or the
16
+ * level passed clean). a malfunction/constraint is terminal-for-unlock too, but it needs a
17
+ * human NOW (overrule the broken reviewer / lift the constraint), so it does NOT defer the
18
+ * human — the footer stays silent there, so the halt's own remedy block guides instead.
19
+ */
20
+ const isReviewPeerVerdictDeferrable = (verdict) => verdict === 'approved' || verdict === 'exhausted';
21
+ /**
22
+ * .what = the single representative verdict for a terminal level
23
+ * .why = a level can hold several reviewers with different terminal verdicts; the footer
24
+ * shows one, and the human most needs the most-escalated (a malfunction outranks an
25
+ * approved) — so the parenthetical names the verdict that most warrants attention
26
+ */
27
+ const asRepresentativeTerminalVerdict = (verdicts) => {
28
+ for (const candidate of VERDICT_ESCALATION_ORDER)
29
+ if (verdicts.includes(candidate))
30
+ return candidate;
31
+ // every terminal verdict is in the escalation order, so this is unreachable in practice;
32
+ // fall back to the first present verdict to stay total
33
+ return verdicts[0] ?? 'approved';
34
+ };
35
+ /**
36
+ * .what = derives the ladder's terminal/live shape from the current peer meters
37
+ * .why = one transformer computes what the footer and any caller need to know about the
38
+ * ladder — which levels are done, which is live, whether all are spent — so the
39
+ * guidance is a read of the meters, never a hand-rolled re-derivation
40
+ */
41
+ const getReviewPeerLadderStatus = (input) => {
42
+ // unique levels, low-to-high — the ladder rungs in order
43
+ const levels = [...new Set(input.peerMeters.map((m) => m.level))].sort((a, b) => a - b);
44
+ const terminalLevels = [];
45
+ let liveLevel = null;
46
+ for (const level of levels) {
47
+ const atLevel = input.peerMeters.filter((m) => m.level === level);
48
+ const levelTerminal = atLevel.every((m) => (0, isReviewPeerLevelTerminal_1.isReviewPeerVerdictTerminal)(m.verdict));
49
+ // a terminal level joins the "done" list with its representative verdict
50
+ if (levelTerminal) {
51
+ terminalLevels.push({
52
+ level,
53
+ verdict: asRepresentativeTerminalVerdict(atLevel.map((m) => m.verdict)),
54
+ });
55
+ continue;
56
+ }
57
+ // the first non-terminal level is the live gate (lowest, since levels sort low-to-high)
58
+ if (liveLevel === null)
59
+ liveLevel = level;
60
+ }
61
+ // the unlock moment: a terminal level sits BELOW the live gate (lower-unlocks-higher) AND
62
+ // every terminal level is human-DEFERRABLE (approved or exhausted). false when:
63
+ // - no terminal level is below the live gate (a regression state, not an unlock), OR
64
+ // - any terminal level is malfunction/constraint — those need a human NOW, so the footer's
65
+ // "human only needed once all terminal" would contradict the halt's "overrule now" remedy.
66
+ const unlockTransition = liveLevel !== null &&
67
+ terminalLevels.some((terminal) => terminal.level < liveLevel) &&
68
+ terminalLevels.every((terminal) => isReviewPeerVerdictDeferrable(terminal.verdict));
69
+ return {
70
+ terminalLevels,
71
+ liveLevel,
72
+ allTerminal: liveLevel === null && terminalLevels.length > 0,
73
+ unlockTransition,
74
+ };
75
+ };
76
+ exports.getReviewPeerLadderStatus = getReviewPeerLadderStatus;
77
+ //# sourceMappingURL=getReviewPeerLadderStatus.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getReviewPeerLadderStatus.js","sourceRoot":"","sources":["../../../../../../../src/domain.operations/route/guard/review/peer/meter/getReviewPeerLadderStatus.ts"],"names":[],"mappings":";;;AAEA,2EAA0E;AA2C1E,mFAAmF;AACnF,MAAM,wBAAwB,GAAwB;IACpD,aAAa;IACb,YAAY;IACZ,WAAW;IACX,UAAU;CACX,CAAC;AAEF;;;;;;;GAOG;AACH,MAAM,6BAA6B,GAAG,CAAC,OAA0B,EAAW,EAAE,CAC5E,OAAO,KAAK,UAAU,IAAI,OAAO,KAAK,WAAW,CAAC;AAEpD;;;;;GAKG;AACH,MAAM,+BAA+B,GAAG,CACtC,QAA6B,EACV,EAAE;IACrB,KAAK,MAAM,SAAS,IAAI,wBAAwB;QAC9C,IAAI,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC;YAAE,OAAO,SAAS,CAAC;IACrD,yFAAyF;IACzF,uDAAuD;IACvD,OAAO,QAAQ,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC;AACnC,CAAC,CAAC;AAEF;;;;;GAKG;AACI,MAAM,yBAAyB,GAAG,CAAC,KAEzC,EAA0B,EAAE;IAC3B,yDAAyD;IACzD,MAAM,MAAM,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CACpE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAChB,CAAC;IAEF,MAAM,cAAc,GAAoC,EAAE,CAAC;IAC3D,IAAI,SAAS,GAAkB,IAAI,CAAC;IAEpC,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,MAAM,OAAO,GAAG,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,CAAC;QAClE,MAAM,aAAa,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CACxC,IAAA,uDAA2B,EAAC,CAAC,CAAC,OAAO,CAAC,CACvC,CAAC;QAEF,yEAAyE;QACzE,IAAI,aAAa,EAAE,CAAC;YAClB,cAAc,CAAC,IAAI,CAAC;gBAClB,KAAK;gBACL,OAAO,EAAE,+BAA+B,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;aACxE,CAAC,CAAC;YACH,SAAS;QACX,CAAC;QAED,wFAAwF;QACxF,IAAI,SAAS,KAAK,IAAI;YAAE,SAAS,GAAG,KAAK,CAAC;IAC5C,CAAC;IAED,0FAA0F;IAC1F,gFAAgF;IAChF,qFAAqF;IACrF,2FAA2F;IAC3F,6FAA6F;IAC7F,MAAM,gBAAgB,GACpB,SAAS,KAAK,IAAI;QAClB,cAAc,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,KAAK,GAAG,SAAS,CAAC;QAC7D,cAAc,CAAC,KAAK,CAAC,CAAC,QAAQ,EAAE,EAAE,CAChC,6BAA6B,CAAC,QAAQ,CAAC,OAAO,CAAC,CAChD,CAAC;IAEJ,OAAO;QACL,cAAc;QACd,SAAS;QACT,WAAW,EAAE,SAAS,KAAK,IAAI,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC;QAC5D,gBAAgB;KACjB,CAAC;AACJ,CAAC,CAAC;AAhDW,QAAA,yBAAyB,6BAgDpC"}
@@ -0,0 +1,26 @@
1
+ import type { ReviewPeerLadderStatus } from '../review/peer/meter/getReviewPeerLadderStatus';
2
+ /**
3
+ * .what = renders the "path continues" hint — a STANDALONE block (own 🪷 header) that the
4
+ * vision's day-in-the-life mockup shows beneath the guard tree
5
+ * .why = the wish's headline UX deliverable: when a lower level goes terminal (INCLUDING by
6
+ * exhaustion) and a higher level is now the live gate, the driver must be told plainly
7
+ * that the lower level no longer blocks, WHICH level has engaged, the exact command to
8
+ * re-drive, and that a human is only needed once every level is terminal. the
9
+ * per-reviewer `terminal — does not block higher levels` line kills the "it is all
10
+ * halted" misread at the reviewer; this hint answers the next question — "so where do i
11
+ * go now?" — at the ladder level. it stands APART from the `🗿 route.stone.set` tree (its
12
+ * own header, peer to the tree) so the driver reads it as guidance, not guard metadata.
13
+ * .note = derived entirely from the ladder status (a read of the SAME peerMeters the tree
14
+ * renders), so the hint can never drift from the reviewer lines
15
+ * (rule.require.single-source-of-truth-for-render).
16
+ * .note = shown ONLY at the unlock transition — a lower level terminal AND a HIGHER level now
17
+ * live (status.unlockTransition). when every level is terminal there is no live gate to
18
+ * point at, so the halt's own "options" block (overrule / budget / approve) carries the
19
+ * human guidance instead; and when the live gate sits below every terminal level (a
20
+ * regression state, e.g. a higher level approved via overrule while the base re-rejects)
21
+ * there is no upward unlock to narrate, so the hint stays silent.
22
+ */
23
+ export declare const formatGuardReviewLadderFooter: (input: {
24
+ stone: string;
25
+ status: ReviewPeerLadderStatus;
26
+ }) => string[];
@@ -0,0 +1,79 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.formatGuardReviewLadderFooter = void 0;
4
+ /**
5
+ * the verdict glyphs the footer can show. only DEFERRABLE terminal verdicts ever reach the
6
+ * footer (status.unlockTransition gates out malfunction/constraint), so exhausted (🌙) is the
7
+ * only glyph — approved carries none. malfunction (💥) / constraint (✋) never render here; their
8
+ * halt shows its own remedy block instead (see getReviewPeerLadderStatus.unlockTransition).
9
+ */
10
+ const VERDICT_GLYPH = {
11
+ exhausted: ' 🌙',
12
+ };
13
+ /**
14
+ * .what = the label for a terminal level's line, e.g. "l1 is terminal (exhausted 🌙)"
15
+ * .why = names WHY the level no longer blocks, with the same glyph the reviewer line above
16
+ * carries, so a driver reads the footer and the tree as one consistent story
17
+ */
18
+ const asTerminalLevelLabel = (level) => {
19
+ const glyph = VERDICT_GLYPH[level.verdict] ?? '';
20
+ return `l${level.level} is terminal (${level.verdict}${glyph}) — it no longer blocks you`;
21
+ };
22
+ /** the header glyph — a lotus for the way that opens, set apart as a calm hint */
23
+ const FOOTER_HEADER = '🪷 the path continues';
24
+ /**
25
+ * .what = renders the "path continues" hint — a STANDALONE block (own 🪷 header) that the
26
+ * vision's day-in-the-life mockup shows beneath the guard tree
27
+ * .why = the wish's headline UX deliverable: when a lower level goes terminal (INCLUDING by
28
+ * exhaustion) and a higher level is now the live gate, the driver must be told plainly
29
+ * that the lower level no longer blocks, WHICH level has engaged, the exact command to
30
+ * re-drive, and that a human is only needed once every level is terminal. the
31
+ * per-reviewer `terminal — does not block higher levels` line kills the "it is all
32
+ * halted" misread at the reviewer; this hint answers the next question — "so where do i
33
+ * go now?" — at the ladder level. it stands APART from the `🗿 route.stone.set` tree (its
34
+ * own header, peer to the tree) so the driver reads it as guidance, not guard metadata.
35
+ * .note = derived entirely from the ladder status (a read of the SAME peerMeters the tree
36
+ * renders), so the hint can never drift from the reviewer lines
37
+ * (rule.require.single-source-of-truth-for-render).
38
+ * .note = shown ONLY at the unlock transition — a lower level terminal AND a HIGHER level now
39
+ * live (status.unlockTransition). when every level is terminal there is no live gate to
40
+ * point at, so the halt's own "options" block (overrule / budget / approve) carries the
41
+ * human guidance instead; and when the live gate sits below every terminal level (a
42
+ * regression state, e.g. a higher level approved via overrule while the base re-rejects)
43
+ * there is no upward unlock to narrate, so the hint stays silent.
44
+ */
45
+ const formatGuardReviewLadderFooter = (input) => {
46
+ // render only at a true upward unlock — a lower level terminal beneath a higher live gate.
47
+ // silent otherwise: all-terminal (halt options guide instead) or a regression state where
48
+ // the live gate sits below every terminal level (no upward unlock to narrate).
49
+ if (!input.status.unlockTransition)
50
+ return [];
51
+ // build the ordered child groups: each terminal level, then the live level (+ its
52
+ // re-drive command), then the human-backstop reminder
53
+ const groups = [];
54
+ for (const terminal of input.status.terminalLevels)
55
+ groups.push({ label: asTerminalLevelLabel(terminal), cmd: null });
56
+ groups.push({
57
+ label: `l${input.status.liveLevel} has engaged — address its blockers, then:`,
58
+ cmd: `rhx route.stone.set --stone ${input.stone} --as arrived`,
59
+ });
60
+ groups.push({
61
+ label: `a human is only needed once every level is terminal`,
62
+ cmd: null,
63
+ });
64
+ // render as a standalone top-level block: the 🪷 header, then box-draw children at the
65
+ // same 3-space indent the other top-level blocks (🗿 route.stone.set) use
66
+ const lines = [FOOTER_HEADER];
67
+ groups.forEach((group, i) => {
68
+ const isLast = i === groups.length - 1;
69
+ const connector = isLast ? '└─' : '├─';
70
+ lines.push(` ${connector} ${group.label}`);
71
+ if (group.cmd !== null) {
72
+ const cmdIndent = isLast ? ' ' : '│ ';
73
+ lines.push(` ${cmdIndent}└─ ${group.cmd}`);
74
+ }
75
+ });
76
+ return lines;
77
+ };
78
+ exports.formatGuardReviewLadderFooter = formatGuardReviewLadderFooter;
79
+ //# sourceMappingURL=formatGuardReviewLadderFooter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"formatGuardReviewLadderFooter.js","sourceRoot":"","sources":["../../../../../src/domain.operations/route/guard/tree/formatGuardReviewLadderFooter.ts"],"names":[],"mappings":";;;AAMA;;;;;GAKG;AACH,MAAM,aAAa,GAA+C;IAChE,SAAS,EAAE,KAAK;CACjB,CAAC;AAEF;;;;GAIG;AACH,MAAM,oBAAoB,GAAG,CAAC,KAAoC,EAAU,EAAE;IAC5E,MAAM,KAAK,GAAG,aAAa,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;IACjD,OAAO,IAAI,KAAK,CAAC,KAAK,iBAAiB,KAAK,CAAC,OAAO,GAAG,KAAK,6BAA6B,CAAC;AAC5F,CAAC,CAAC;AAEF,kFAAkF;AAClF,MAAM,aAAa,GAAG,uBAAuB,CAAC;AAE9C;;;;;;;;;;;;;;;;;;;;GAoBG;AACI,MAAM,6BAA6B,GAAG,CAAC,KAG7C,EAAY,EAAE;IACb,2FAA2F;IAC3F,0FAA0F;IAC1F,+EAA+E;IAC/E,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,gBAAgB;QAAE,OAAO,EAAE,CAAC;IAE9C,kFAAkF;IAClF,sDAAsD;IACtD,MAAM,MAAM,GAAiD,EAAE,CAAC;IAChE,KAAK,MAAM,QAAQ,IAAI,KAAK,CAAC,MAAM,CAAC,cAAc;QAChD,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,oBAAoB,CAAC,QAAQ,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC;IACpE,MAAM,CAAC,IAAI,CAAC;QACV,KAAK,EAAE,IAAI,KAAK,CAAC,MAAM,CAAC,SAAS,4CAA4C;QAC7E,GAAG,EAAE,+BAA+B,KAAK,CAAC,KAAK,eAAe;KAC/D,CAAC,CAAC;IACH,MAAM,CAAC,IAAI,CAAC;QACV,KAAK,EAAE,qDAAqD;QAC5D,GAAG,EAAE,IAAI;KACV,CAAC,CAAC;IAEH,uFAAuF;IACvF,0EAA0E;IAC1E,MAAM,KAAK,GAAa,CAAC,aAAa,CAAC,CAAC;IACxC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE;QAC1B,MAAM,MAAM,GAAG,CAAC,KAAK,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;QACvC,MAAM,SAAS,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;QACvC,KAAK,CAAC,IAAI,CAAC,MAAM,SAAS,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC;QAC7C,IAAI,KAAK,CAAC,GAAG,KAAK,IAAI,EAAE,CAAC;YACvB,MAAM,SAAS,GAAG,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC;YACzC,KAAK,CAAC,IAAI,CAAC,MAAM,SAAS,MAAM,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC;QAC/C,CAAC;IACH,CAAC,CAAC,CAAC;IACH,OAAO,KAAK,CAAC;AACf,CAAC,CAAC;AApCW,QAAA,6BAA6B,iCAoCxC"}
@@ -15,6 +15,14 @@ const asTakenDetailLine = (pathGiven) => {
15
15
  return null;
16
16
  return `taken: ${(0, getRouteGuardReviewPeerPathTaken_1.getRouteGuardReviewPeerPathTaken)({ pathGiven })}`;
17
17
  };
18
+ /**
19
+ * .what = the one reassurance line every TERMINAL-for-unlock verdict carries
20
+ * .why = single source of truth so the four terminal verdicts (exhausted, malfunction,
21
+ * constraint, and any future kind) stay in lockstep — the asymmetry this narrative
22
+ * was added to kill must not recur through a copy that one branch forgets to update.
23
+ * speaks only to the LADDER (higher levels unlock and run); passage may still block.
24
+ */
25
+ const TERMINAL_UNLOCK_NARRATIVE = 'terminal — does not block higher levels';
18
26
  /**
19
27
  * .what = formats a single reviewer as tree lines
20
28
  * .why = shared format for inflight progress and final result contexts
@@ -52,7 +60,15 @@ const formatGuardReviewerTree = (input) => {
52
60
  return lines;
53
61
  }
54
62
  if (state.type === 'malfunction') {
55
- const detailLines = ['💥 malfunction', `given: ${state.path}`];
63
+ // terminal narrative: malfunction is TERMINAL-for-unlock (isReviewPeerVerdictTerminal),
64
+ // so like exhausted it never holds the ladder — higher levels unlock and run. it DOES
65
+ // block passage (the reviewer broke), but a driver must not misread it as "the whole
66
+ // ladder is halted here". same reassurance line as exhausted, for the same invariant. (D5)
67
+ const detailLines = [
68
+ 'malfunction 💥',
69
+ TERMINAL_UNLOCK_NARRATIVE,
70
+ `given: ${state.path}`,
71
+ ];
56
72
  const takenLine = asTakenDetailLine(state.path);
57
73
  if (takenLine)
58
74
  detailLines.push(takenLine);
@@ -60,7 +76,15 @@ const formatGuardReviewerTree = (input) => {
60
76
  return lines;
61
77
  }
62
78
  if (state.type === 'constraint') {
63
- const detailLines = ['✋ constraint', `given: ${state.path}`];
79
+ // terminal narrative: constraint is TERMINAL-for-unlock (isReviewPeerVerdictTerminal),
80
+ // so like exhausted it never holds the ladder — higher levels unlock and run. it DOES
81
+ // block passage (needs a fix or an overrule), but a driver must not misread it as "the
82
+ // whole ladder is halted here". same reassurance line as exhausted, same invariant. (D5)
83
+ const detailLines = [
84
+ 'constraint ✋',
85
+ TERMINAL_UNLOCK_NARRATIVE,
86
+ `given: ${state.path}`,
87
+ ];
64
88
  const takenLine = asTakenDetailLine(state.path);
65
89
  if (takenLine)
66
90
  detailLines.push(takenLine);
@@ -70,13 +94,29 @@ const formatGuardReviewerTree = (input) => {
70
94
  // finished state: approved, rejected, or exhausted
71
95
  if (state.type === 'finished') {
72
96
  const detailLines = [];
97
+ // verdict glyph: exhausted carries the 🌙 marker — an earned exhaustion, the level
98
+ // spent its whole budget on genuine convergence effort and yields (see the driver
99
+ // brief rule.always.converge-to-terminal). only exhausted gets a glyph here.
100
+ const verdictGlyph = state.verdict === 'exhausted' ? ' 🌙' : '';
73
101
  // status line: verdict [duration] OR verdict, cached
74
102
  if (state.cached) {
75
- detailLines.push(`${state.verdict}, cached`);
103
+ detailLines.push(`${state.verdict}${verdictGlyph}, cached`);
76
104
  }
77
105
  else {
78
106
  const dur = state.durationSec !== null ? ` ${state.durationSec.toFixed(1)}s` : '';
79
- detailLines.push(`${state.verdict}${dur}`);
107
+ detailLines.push(`${state.verdict}${verdictGlyph}${dur}`);
108
+ }
109
+ // exhaustion narrative: exhausted is TERMINAL, so it never blocks higher levels — they
110
+ // unlock and run. a driver must never read `exhausted` as "you are blocked here"; this
111
+ // line states plainly the level is done and does not hold the ladder. (D5)
112
+ // .why = kills the "oh, it is all halted" misread at the exact spot it occurs. phrased
113
+ // to hold at ANY level: at a lower level the higher one runs (shown below in the
114
+ // tree); at the highest level there is no higher level to block, so it is still
115
+ // true. the cross-level "next level has engaged" callout — which names WHICH level
116
+ // is live + the re-drive command — is the aggregate `the path continues` footer,
117
+ // rendered once beneath the reviewers by formatGuardReviewLadderFooter.
118
+ if (state.verdict === 'exhausted') {
119
+ detailLines.push(TERMINAL_UNLOCK_NARRATIVE);
80
120
  }
81
121
  // blockers line: always show
82
122
  const blockersLabel = state.blockers === 1 ? 'blocker' : 'blockers';
@@ -1 +1 @@
1
- {"version":3,"file":"formatGuardReviewerTree.js","sourceRoot":"","sources":["../../../../../src/domain.operations/route/guard/tree/formatGuardReviewerTree.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"formatGuardReviewerTree.js","sourceRoot":"","sources":["../../../../../src/domain.operations/route/guard/tree/formatGuardReviewerTree.ts"],"names":[],"mappings":"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"}