@clien-ai/mcp 0.10.0 → 0.10.2
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/tools/registry.js +11 -1
- package/dist/tools/registry.js.map +1 -1
- package/dist/tools/report-digest.js +360 -12
- package/dist/tools/report-digest.js.map +1 -1
- package/dist/tools/reports.js +3 -1
- package/dist/tools/reports.js.map +1 -1
- package/dist/tools/research.js +45 -20
- package/dist/tools/research.js.map +1 -1
- package/dist/tools/scoped-research.js +9 -8
- package/dist/tools/scoped-research.js.map +1 -1
- package/dist/tools/status.js +16 -8
- package/dist/tools/status.js.map +1 -1
- package/package.json +1 -1
package/dist/tools/registry.js
CHANGED
|
@@ -637,7 +637,17 @@ export const TOOLS = [
|
|
|
637
637
|
'(5) the anti-sycophancy readout — explicit rejection count, `lowDiscrimination` broken-persona ' +
|
|
638
638
|
'flags, and per-hypothesis disagreement splits. ' +
|
|
639
639
|
'(6) hypothesis robustness — when a verdict FLIPPED under rephrasing the digest names the ' +
|
|
640
|
-
'downgraded verdict to act on instead of the reported one. ' +
|
|
640
|
+
'downgraded verdict to act on instead of the reported one. Each row also quotes the ' +
|
|
641
|
+
// FUL-614. `scopeCaveat` is worth an advert line where the other two are not: it reaches
|
|
642
|
+
// NO other agent-visible text — the report markdown prints the statement and the evidence
|
|
643
|
+
// reading, and has never printed this — so an agent that is not told to look for it has
|
|
644
|
+
// no way to learn the marker exists. The wording is the digest's own label, minus the
|
|
645
|
+
// emoji, for the reason `ATTESTED_LABEL` records: an advert that names a marker
|
|
646
|
+
// differently from the text it describes sends an agent looking for nothing.
|
|
647
|
+
'hypothesis STATEMENT, so a verdict is readable without resolving its id against the prose ' +
|
|
648
|
+
'above, and — when the run set one — a "scope caveat" marking a verdict whose persona ' +
|
|
649
|
+
'support came from OUTSIDE that persona\'s credibility domain: treat that support as ' +
|
|
650
|
+
'directional, never as grounded. ' +
|
|
641
651
|
STRUCTURED_OPEN_QUESTIONS_ADVERT +
|
|
642
652
|
STRUCTURED_VERDICT_RATIONALE_ADVERT +
|
|
643
653
|
'When a section is missing the digest SAYS SO ("NOT PRESENT on this run") — absent is not ' +
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/tools/registry.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/tools/registry.ts"],"names":[],"mappings":"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"}
|
|
@@ -59,6 +59,55 @@ const CLAIM_RENDER_CAP = 40;
|
|
|
59
59
|
const CLAIM_TEXT_MAX = 140;
|
|
60
60
|
/** Max personas / hypotheses / disagreements listed before capping. */
|
|
61
61
|
const LIST_RENDER_CAP = 25;
|
|
62
|
+
/**
|
|
63
|
+
* Max chars of a hypothesis STATEMENT on a robustness row's first continuation
|
|
64
|
+
* line (FUL-614).
|
|
65
|
+
*
|
|
66
|
+
* This is the one of the three that drives the budget: `statement` is required by
|
|
67
|
+
* `HypothesisResultSchema` and was present on 371/371 hypothesis rows across the 49
|
|
68
|
+
* production jobs that carry any, so it renders on every row the section shows, and it
|
|
69
|
+
* is the only one of the three whose length nothing upstream bounds.
|
|
70
|
+
*
|
|
71
|
+
* Worst case is `LIST_RENDER_CAP` rows x (160 + ~20 for the label, indent, quotes and
|
|
72
|
+
* newline) ~= 4.5KB of statement lines on a saturated digest. ⚠️ THAT IS NOT THE WHOLE
|
|
73
|
+
* SECTION'S BUDGET: `evidenceReading` renders on nearly every row too (see
|
|
74
|
+
* {@link renderRobustness} for why its measured 3.8% is a fact about the stored corpus
|
|
75
|
+
* rather than about the field), adding 25 x (~85 for the composed sentence + ~15 of
|
|
76
|
+
* label and indent) ~= 2.5KB, so ~7KB together. A typical run has 5-8 hypotheses, so
|
|
77
|
+
* ~1.5-2KB. `scopeCaveat` stays off the budget at a real 7%.
|
|
78
|
+
*/
|
|
79
|
+
const HYPOTHESIS_STATEMENT_MAX = 160;
|
|
80
|
+
/**
|
|
81
|
+
* Max chars of a `scopeCaveat` / `evidenceReading` continuation line (FUL-614).
|
|
82
|
+
*
|
|
83
|
+
* Both are specified as ONE LINE by their producers — the synthesiser prompt asks
|
|
84
|
+
* for "a one-line note naming the mismatch", and `evidenceReading` is composed from
|
|
85
|
+
* a fixed template in `agent/src/hypothesis-reading.ts` — so this is a defensive
|
|
86
|
+
* ceiling on values that should already be well under it, in the same spirit as
|
|
87
|
+
* {@link VERDICT_SUMMARY_MAX}, not a routine trim.
|
|
88
|
+
*
|
|
89
|
+
* It can be looser than {@link HYPOTHESIS_STATEMENT_MAX} because both fields are BOUNDED
|
|
90
|
+
* BY THEIR PRODUCERS in a way `statement` is not — the longest sentence
|
|
91
|
+
* `deriveEvidenceReading`'s template can compose runs ~96 chars, and the caveat is
|
|
92
|
+
* prompted as one line — NOT because either is rare. `statement` is free model prose the
|
|
93
|
+
* synthesiser echoes from the plan under no length instruction at all, so 160 there is a
|
|
94
|
+
* real trim rather than a backstop.
|
|
95
|
+
*/
|
|
96
|
+
const HYPOTHESIS_NOTE_MAX = 200;
|
|
97
|
+
/**
|
|
98
|
+
* Max persona NAMES listed inside one group of a disagreement row (FUL-616).
|
|
99
|
+
*
|
|
100
|
+
* A separate cap from `LIST_RENDER_CAP` because it multiplies against it rather
|
|
101
|
+
* than sitting beside it: the split rows are already capped at 25, and each row
|
|
102
|
+
* now carries three name groups. Ten is comfortably above the personas a real run
|
|
103
|
+
* interviews, so this is a runaway backstop on a drifted payload and not a routine
|
|
104
|
+
* trim — the same posture `CLAIM_RENDER_CAP` takes.
|
|
105
|
+
*
|
|
106
|
+
* The overflow is STATED inline (`, +3 more`) rather than silently cut, for the
|
|
107
|
+
* reason the module header gives: a silent truncation reads as "that was all of
|
|
108
|
+
* them", and in this section that would read as "nobody else pushed back".
|
|
109
|
+
*/
|
|
110
|
+
const SPLIT_NAME_CAP = 10;
|
|
62
111
|
/**
|
|
63
112
|
* The MODEL-ATTESTED tier's user-facing word, lower-cased for inline prose (FUL-363).
|
|
64
113
|
*
|
|
@@ -77,6 +126,25 @@ const LIST_RENDER_CAP = 25;
|
|
|
77
126
|
* than two. Do not cut a release between the two.
|
|
78
127
|
*/
|
|
79
128
|
const ATTESTED_LABEL = 'cited';
|
|
129
|
+
/**
|
|
130
|
+
* The label on the continuation line that carries an attested claim's window (FUL-615).
|
|
131
|
+
*
|
|
132
|
+
* ⚠️ THE LABEL IS THE GUARD, not decoration. Before this line existed, the arrow shape
|
|
133
|
+
* (`cited →` versus the bare `←` a receipt gets) was the WHOLE visual difference between
|
|
134
|
+
* an attested row and a grounded one — the word itself stopped separating them when
|
|
135
|
+
* FUL-416 merged the two under "Cited". Adding an indented quoted excerpt takes the
|
|
136
|
+
* second difference away: `\n "…"` is EXACTLY the shape `renderReceiptPools` gives a
|
|
137
|
+
* verified persona receipt, so an agent skimming for indented quoted text below a claim
|
|
138
|
+
* would read the two as the same kind of evidence. The label restores the separation
|
|
139
|
+
* structurally, and it says what the excerpt is NOT rather than only what it is: this
|
|
140
|
+
* text is the page window a judge read, never a span verified against the claim.
|
|
141
|
+
*
|
|
142
|
+
* Pinned by `attested-window.test.ts`, which plants ONE identical quote on a persona
|
|
143
|
+
* receipt and on an attestation and asserts the two rendered lines stay distinguishable.
|
|
144
|
+
* An assertion that the quote renders is not enough — dropping the label leaves a line
|
|
145
|
+
* that still contains the quote.
|
|
146
|
+
*/
|
|
147
|
+
const ATTESTED_WINDOW_LABEL = 'cited window (NOT a verified span)';
|
|
80
148
|
/**
|
|
81
149
|
* The FLOOR tier's word, mirrored from the app's `CLAIM_STATE_DISPLAY_LABELS.NO_RECEIPT`
|
|
82
150
|
* (FUL-416 review, cross-model finding).
|
|
@@ -90,6 +158,31 @@ const ATTESTED_LABEL = 'cited';
|
|
|
90
158
|
* carries the meaning the shared word no longer can.
|
|
91
159
|
*/
|
|
92
160
|
const UNSOURCED_LABEL = 'unsourced';
|
|
161
|
+
/**
|
|
162
|
+
* The three labels on a robustness row's continuation lines (FUL-614).
|
|
163
|
+
*
|
|
164
|
+
* ⚠️ THE LABEL IS THE GUARD, for the same reason `ATTESTED_WINDOW_LABEL`'s doc gives:
|
|
165
|
+
* `\n "…"` is EXACTLY the shape `renderReceiptPools` gives a verified persona
|
|
166
|
+
* receipt, so an unlabelled indented quote under a verdict row would read as evidence
|
|
167
|
+
* that something was checked. A hypothesis statement is the opposite — it is the
|
|
168
|
+
* assertion under test, not support for it.
|
|
169
|
+
*
|
|
170
|
+
* ⚠️ THE QUOTING IS ALSO LOAD-BEARING, and it is the prose/proof line this file's header
|
|
171
|
+
* states (FUL-510). `statement` and `scopeCaveat` are MODEL-WRITTEN, so they render as
|
|
172
|
+
* QUOTED, labelled values — attributed to the run, exactly as `renderPersonaClaim`
|
|
173
|
+
* already carries a claim's model-written `text` below the `---`. `evidenceReading` is
|
|
174
|
+
* CODE-COMPOSED (`deriveEvidenceReading` in `agent/src/hypothesis-reading.ts` is its sole
|
|
175
|
+
* writer and STRIPS any model-supplied value on the rows it does not cover), so the digest
|
|
176
|
+
* states it unquoted, in its own voice. What never crosses is a model-written JUDGEMENT
|
|
177
|
+
* about the run — that is `verdictSummary`, and it renders above the separator.
|
|
178
|
+
*
|
|
179
|
+
* `EVIDENCE_READING_LABEL` deliberately echoes the report markdown's own `- **Rests on**:`
|
|
180
|
+
* (`agent/src/report-generator.ts`). One field, one word for it, on both surfaces — the
|
|
181
|
+
* lesson `ATTESTED_LABEL` above records the hard way.
|
|
182
|
+
*/
|
|
183
|
+
const HYPOTHESIS_LABEL = 'hypothesis';
|
|
184
|
+
const SCOPE_CAVEAT_LABEL = '⚠️ scope caveat — persona support from OUTSIDE its credibility domain; directional, NOT grounded';
|
|
185
|
+
const EVIDENCE_READING_LABEL = 'rests on';
|
|
93
186
|
// ---------------------------------------------------------------------------
|
|
94
187
|
// Defensive accessors — every one of these answers "or nothing" rather than throwing
|
|
95
188
|
// ---------------------------------------------------------------------------
|
|
@@ -269,8 +362,25 @@ function renderPersonaClaim(raw) {
|
|
|
269
362
|
* Neither reading is grounding. The attestation's `sourceId` is printed under an
|
|
270
363
|
* explicit `cited →` label rather than the bare `←` used for real receipts, so
|
|
271
364
|
* the two can never be skim-read as the same thing. That distinction matters MORE now
|
|
272
|
-
* that the word itself is shared with a span-verified receipt
|
|
273
|
-
*
|
|
365
|
+
* that the word itself is shared with a span-verified receipt.
|
|
366
|
+
*
|
|
367
|
+
* FUL-615: an attested claim now also carries the WINDOW the judge read, clipped to
|
|
368
|
+
* `RECEIPT_QUOTE_MAX` on a labelled continuation line. `cited` was the one provenance
|
|
369
|
+
* tier on this surface whose supporting text reached no agent-visible channel at all —
|
|
370
|
+
* a GROUNDED claim's span is readable as the `RCP-` excerpt it steers, but an attested
|
|
371
|
+
* claim's pointer resolves into `reportEvidence`, whose rows deliberately carry no quote
|
|
372
|
+
* (FUL-560). So the tier a reader is asked to weigh ("stronger than recall, still NOT a
|
|
373
|
+
* receipt") was the one tier they could not see for themselves.
|
|
374
|
+
*
|
|
375
|
+
* ⚠️ THE ABSENCE OF A QUOTE USED TO BE HALF THE SEPARATION, and this change spends it.
|
|
376
|
+
* What replaces it is `ATTESTED_WINDOW_LABEL` — see its doc for why a bare indented
|
|
377
|
+
* quote would have made an attested row read as a grounded one.
|
|
378
|
+
*
|
|
379
|
+
* DIGEST COST, in the idiom `RECEIPT_QUOTE_MAX`'s own doc sets, because a digest an
|
|
380
|
+
* agent truncates is a digest it does not read. Bounded by construction: this spine
|
|
381
|
+
* renders at most `CLAIM_RENDER_CAP` (40) rows and only attested ones get a window, so
|
|
382
|
+
* the worst case is 40 × (200 + ~40 for the label, indent, quotes and newline) ≈ 9.6 KB.
|
|
383
|
+
* Today it is 0 on every prod report — the A2 grantor writes no attestations yet.
|
|
274
384
|
*/
|
|
275
385
|
function renderReportClaim(raw) {
|
|
276
386
|
const claim = asRecord(raw);
|
|
@@ -310,7 +420,38 @@ function renderReportClaim(raw) {
|
|
|
310
420
|
}
|
|
311
421
|
const where = section ? ` (${section})` : '';
|
|
312
422
|
const body = text ? ` — "${text}"` : '';
|
|
313
|
-
return `- [${state}] ${id}${where}${provenance}${body}`;
|
|
423
|
+
return `- [${state}] ${id}${where}${provenance}${body}${attestedWindow(rawState, attestedSourceId, attestation?.quote)}`;
|
|
424
|
+
}
|
|
425
|
+
/**
|
|
426
|
+
* The attested claim's window: the captured snapshot text an independent judge read
|
|
427
|
+
* (FUL-615), on its own labelled continuation line or nothing at all.
|
|
428
|
+
*
|
|
429
|
+
* ⚠️ GATED ON THE SAME CONDITION AS THE `cited →` POINTER, not on the quote alone. A
|
|
430
|
+
* window under a row this renderer did NOT mark `cited` is an excerpt with nothing
|
|
431
|
+
* saying what it is — it would sit beneath a bare `unsourced` row and read as evidence
|
|
432
|
+
* for a claim written from model knowledge, which is the opposite of what the floor
|
|
433
|
+
* tier means. Both halves of the marker render together or neither does; `getReport`
|
|
434
|
+
* hands the RAW payload through when Zod rejects it, so `{ state: 'SPECULATION',
|
|
435
|
+
* attestation: { quote } }` genuinely reaches this code.
|
|
436
|
+
*
|
|
437
|
+
* `clipReceiptQuote` with NO spans, deliberately. The function windows an excerpt
|
|
438
|
+
* around the spans a claim was verified against, and an attested claim HAS none — that
|
|
439
|
+
* is the definition of the tier. Passing an empty list takes the head clip, which is
|
|
440
|
+
* the honest answer; inventing a window would be inventing the evidence. It also
|
|
441
|
+
* collapses whitespace, which is FUL-247's forgery guard doing its usual job here: this
|
|
442
|
+
* spine is a list of `- [STATE] …` rows and a newline in the quote would forge one.
|
|
443
|
+
*
|
|
444
|
+
* Spends the same `RECEIPT_QUOTE_MAX` budget as both receipt surfaces rather than a
|
|
445
|
+
* budget of its own, for the reason that constant's doc gives: an agent reading the
|
|
446
|
+
* same source text clipped two different ways has to wonder which is the real wording.
|
|
447
|
+
*/
|
|
448
|
+
function attestedWindow(rawState, attestedSourceId, rawQuote) {
|
|
449
|
+
if (rawState !== 'NO_RECEIPT' || !attestedSourceId)
|
|
450
|
+
return '';
|
|
451
|
+
const quote = collapseWhitespace(str(rawQuote) ?? '');
|
|
452
|
+
if (!quote)
|
|
453
|
+
return '';
|
|
454
|
+
return `\n ${ATTESTED_WINDOW_LABEL}: "${clipReceiptQuote(quote, [], RECEIPT_QUOTE_MAX)}"`;
|
|
314
455
|
}
|
|
315
456
|
function renderPersonaSpine(reportData, channel) {
|
|
316
457
|
const claims = asArray(reportData.claims);
|
|
@@ -354,7 +495,9 @@ function renderReportSpine(reportData, channel) {
|
|
|
354
495
|
'independent finding). A GROUNDED claim\'s `RRCP-s{n}` ' +
|
|
355
496
|
`indexes \`reportEvidence[n]\`. A NO_RECEIPT claim marked \`${ATTESTED_LABEL}\` means Claude read a ` +
|
|
356
497
|
'supporting page an independent check vouched for, but no exact span was pinned — stronger than ' +
|
|
357
|
-
|
|
498
|
+
`recall, still NOT a receipt. The \`${ATTESTED_WINDOW_LABEL}\` line beneath such a row is that page's ` +
|
|
499
|
+
'text as we captured it: read it as the context the judge weighed, never as a span checked against ' +
|
|
500
|
+
'the claim. Unmarked NO_RECEIPT is recalled model knowledge, unverified. ' +
|
|
358
501
|
'Key on the state, never on whether a source id is present.\n' +
|
|
359
502
|
`${lines.join('\n')}` +
|
|
360
503
|
capNote(shown.length, claims.length, channel, 'report_data.reportClaims'));
|
|
@@ -598,6 +741,24 @@ function renderPersonas(reportData, channel) {
|
|
|
598
741
|
* The anti-sycophancy readout — deterministically computed from the interviews,
|
|
599
742
|
* not model-opined, which is exactly why it belongs in the text: it is the one
|
|
600
743
|
* signal that says whether the personas actually pushed back or just agreed.
|
|
744
|
+
*
|
|
745
|
+
* FUL-616 gave the section its own evidence. It used to render six of the sixteen
|
|
746
|
+
* fields its four schemas declare, and the ten it withheld were the substance behind
|
|
747
|
+
* the six it printed: a headline claim about the rejection COUNT with no rejection
|
|
748
|
+
* behind it, and a split rendered as three integers when WHICH persona pushed back is
|
|
749
|
+
* usually the whole finding — "the buyer said no, the user said yes" is a different
|
|
750
|
+
* result from "1 of 3 disagreed". Names and rejections now render; the discrimination
|
|
751
|
+
* ratio and the tradeoff rows deliberately do not (see the allowlist reasons in
|
|
752
|
+
* `render-coverage.test.ts` — tradeoffs are the largest of the four shapes and the
|
|
753
|
+
* furthest from the question this section answers, so they stay the first thing to cut).
|
|
754
|
+
*
|
|
755
|
+
* ⚠️ THE COUNTS STAY BESIDE THE NAMES ON A SPLIT ROW, and that is a trust decision
|
|
756
|
+
* rather than a formatting one. A count is `array.length` — nothing a value can forge.
|
|
757
|
+
* A name is untrusted text: personas are user- or model-named, so a persona called
|
|
758
|
+
* `Ada, Marcus` renders as two supporters inside its group's parentheses. Keeping the
|
|
759
|
+
* integer in front means such a row disagrees with itself visibly (`1 supportive (Ada,
|
|
760
|
+
* Marcus)`) instead of quietly overstating who agreed with the idea — in the one
|
|
761
|
+
* section a reader consults precisely to find out whether the agreement was real.
|
|
601
762
|
*/
|
|
602
763
|
function renderSycophancy(reportData, channel) {
|
|
603
764
|
const signals = asRecord(reportData.sycophancySignals);
|
|
@@ -612,6 +773,12 @@ function renderSycophancy(reportData, channel) {
|
|
|
612
773
|
const disagreements = asArray(signals.disagreements);
|
|
613
774
|
const lines = [];
|
|
614
775
|
// A healthy run has ≥1 explicit rejection; zero is itself the warning.
|
|
776
|
+
//
|
|
777
|
+
// ⚠️ THIS LINE IS THE SECTION'S HEADLINE AND IT IS UNCHANGED BY FUL-616. The
|
|
778
|
+
// zero case is the case the section exists for — a run where nobody said no is
|
|
779
|
+
// the classic sycophancy signature — and it renders with no evidence block below
|
|
780
|
+
// it because there is no evidence, which is the finding. A change to this readout
|
|
781
|
+
// that only looks right on a run WITH rejections has broken exactly that case.
|
|
615
782
|
if (totalRejections !== null) {
|
|
616
783
|
lines.push(totalRejections === 0
|
|
617
784
|
? '⚠️ 0 explicit rejections across all personas — nobody said no to anything. A run with no ' +
|
|
@@ -624,10 +791,13 @@ function renderSycophancy(reportData, channel) {
|
|
|
624
791
|
// FUL-253: joined into one warning line, so a newline in a name would end
|
|
625
792
|
// the warning early and leave the rest of the flagged personas rendering
|
|
626
793
|
// as ordinary text below it.
|
|
627
|
-
.map((raw) =>
|
|
794
|
+
.map((raw) => personaLabel(raw));
|
|
628
795
|
lines.push(`⚠️ ${lowDiscriminationCount} persona(s) flagged \`lowDiscrimination\` (uniformly supportive AND ` +
|
|
629
796
|
`rejected nothing — their answers carry little signal): ${names.join(', ')}`);
|
|
630
797
|
}
|
|
798
|
+
const rejections = renderRejections(personaSignals, channel);
|
|
799
|
+
if (rejections)
|
|
800
|
+
lines.push(rejections);
|
|
631
801
|
if (disagreements.length > 0) {
|
|
632
802
|
const shown = disagreements.slice(0, LIST_RENDER_CAP);
|
|
633
803
|
lines.push(`Hypotheses the personas SPLIT on (disagreement is signal, not noise):\n` +
|
|
@@ -635,10 +805,9 @@ function renderSycophancy(reportData, channel) {
|
|
|
635
805
|
.map((raw) => {
|
|
636
806
|
const d = asRecord(raw);
|
|
637
807
|
const id = renderId(d?.hypothesisId);
|
|
638
|
-
|
|
639
|
-
|
|
640
|
-
|
|
641
|
-
return ` - ${id}: ${supportive} supportive / ${neutral} neutral / ${negative} pushed back`;
|
|
808
|
+
return (` - ${id}: ${splitGroup(d?.supportive, 'supportive')}` +
|
|
809
|
+
` / ${splitGroup(d?.neutral, 'neutral')}` +
|
|
810
|
+
` / ${splitGroup(d?.negative, 'pushed back')}`);
|
|
642
811
|
})
|
|
643
812
|
.join('\n') +
|
|
644
813
|
capNote(shown.length, disagreements.length, channel, 'report_data.sycophancySignals.disagreements'));
|
|
@@ -648,6 +817,149 @@ function renderSycophancy(reportData, channel) {
|
|
|
648
817
|
}
|
|
649
818
|
return `### Anti-sycophancy\n${lines.join('\n')}`;
|
|
650
819
|
}
|
|
820
|
+
/**
|
|
821
|
+
* The continuation lines under one robustness row (FUL-614).
|
|
822
|
+
*
|
|
823
|
+
* Returns '' when the row has nothing to add. A field that is absent, empty or
|
|
824
|
+
* whitespace-only emits NO LINE — never a label with nothing after it, which would
|
|
825
|
+
* read as "the run recorded a scope caveat and we cannot show it" on the 93% of rows
|
|
826
|
+
* that simply have none. That is `safeInline`'s own `null` contract, and here it is
|
|
827
|
+
* the whole difference between a qualification and a false alarm.
|
|
828
|
+
*
|
|
829
|
+
* ⚠️ EVERY VALUE GOES THROUGH `safeInline`, and the reason is the one `renderRobustness`
|
|
830
|
+
* already states for `status` / `downgradedStatus`: these rows are `- ` entries whose
|
|
831
|
+
* point is the ⚠️ FLIPPED warning, and `statement` / `scopeCaveat` are MODEL-WRITTEN —
|
|
832
|
+
* the first untrusted prose to reach this section. A newline in either ends the line
|
|
833
|
+
* early and lets the remainder pose as a sibling row for the same hypothesis WITHOUT the
|
|
834
|
+
* warning, which is precisely the reading a forgery would want to drop (FUL-253).
|
|
835
|
+
* `render-forgery.test.ts` has planted poisoned values on these three fields since
|
|
836
|
+
* FUL-263 — before anything rendered them, which is that file's whole premise — so its
|
|
837
|
+
* assertions bit on this change with no fixture edit.
|
|
838
|
+
*/
|
|
839
|
+
function hypothesisDetail(result) {
|
|
840
|
+
const statement = safeInline(result?.statement, HYPOTHESIS_STATEMENT_MAX);
|
|
841
|
+
const scopeCaveat = safeInline(result?.scopeCaveat, HYPOTHESIS_NOTE_MAX);
|
|
842
|
+
const evidenceReading = safeInline(result?.evidenceReading, HYPOTHESIS_NOTE_MAX);
|
|
843
|
+
return ((statement ? `\n ${HYPOTHESIS_LABEL}: "${statement}"` : '') +
|
|
844
|
+
(scopeCaveat ? `\n ${SCOPE_CAVEAT_LABEL}: "${scopeCaveat}"` : '') +
|
|
845
|
+
(evidenceReading ? `\n ${EVIDENCE_READING_LABEL}: ${evidenceReading}` : ''));
|
|
846
|
+
}
|
|
847
|
+
/**
|
|
848
|
+
* What a persona name that arrived unreadable renders as (FUL-616).
|
|
849
|
+
*
|
|
850
|
+
* One bare word carrying no punctuation of its own, so each caller decides the
|
|
851
|
+
* shape around it: `personaLabel` parenthesises it because it stands in for a
|
|
852
|
+
* whole label, and `splitGroup` prints it bare because the group already supplies
|
|
853
|
+
* the parentheses. Parenthesising it in both places produced
|
|
854
|
+
* `1 pushed back ((unnamed))` — doubled brackets that read as a formatting bug on
|
|
855
|
+
* exactly the drift path where a reader has least evidence to tell a bug from the
|
|
856
|
+
* data it is describing.
|
|
857
|
+
*/
|
|
858
|
+
const UNNAMED_PERSONA = 'unnamed';
|
|
859
|
+
/**
|
|
860
|
+
* How a persona is named wherever the anti-sycophancy section names one (FUL-616).
|
|
861
|
+
*
|
|
862
|
+
* The role is here because the name alone was ambiguous in the only place this
|
|
863
|
+
* section ever printed one — the flagged list — and FUL-616 adds a second place
|
|
864
|
+
* (the rejection rows), which would have reproduced the same ambiguity in new
|
|
865
|
+
* text. Two personas can easily share a first name in one run; "Dana (VP
|
|
866
|
+
* Engineering)" and "Dana (Founder)" are two different findings about who
|
|
867
|
+
* rubber-stamped the idea, and telling them apart is the point of naming anyone.
|
|
868
|
+
*
|
|
869
|
+
* Both halves go through `safeInline` at the budget `renderPersonaSpine` already
|
|
870
|
+
* spends on the same two fields, so the same persona is clipped identically
|
|
871
|
+
* wherever the digest names it.
|
|
872
|
+
*/
|
|
873
|
+
function personaLabel(raw) {
|
|
874
|
+
const persona = asRecord(raw);
|
|
875
|
+
const name = safeInline(persona?.personaName, 100) ?? `(${UNNAMED_PERSONA})`;
|
|
876
|
+
const role = safeInline(persona?.personaRole, 100);
|
|
877
|
+
return role ? `${name} (${role})` : name;
|
|
878
|
+
}
|
|
879
|
+
/**
|
|
880
|
+
* One stance group of a disagreement row: the count, then who (FUL-616).
|
|
881
|
+
*
|
|
882
|
+
* COUNT FIRST, deliberately — see the forgery note on `renderSycophancy`. The
|
|
883
|
+
* integer is derived from the array and cannot be influenced by what is in it, so
|
|
884
|
+
* it stays the authoritative half of the group and the names are the detail it
|
|
885
|
+
* carries. An empty group renders as the bare count (`0 neutral`) rather than as
|
|
886
|
+
* an empty pair of parentheses, matching `safeInline`'s rule that "nothing to say"
|
|
887
|
+
* gets a caller-chosen wording instead of empty punctuation.
|
|
888
|
+
*
|
|
889
|
+
* COST — this is the one cap here that MULTIPLIES, so its ceiling is stated rather
|
|
890
|
+
* than left to be derived. Worst case is `LIST_RENDER_CAP` split rows × 3 groups ×
|
|
891
|
+
* `SPLIT_NAME_CAP` names × the 100-char `safeInline` budget ≈ 76 KB, an order above
|
|
892
|
+
* anything else the digest renders. That number is a DRIFTED-PAYLOAD CEILING, not a
|
|
893
|
+
* run cost, and the two bounds it multiplies are not independent in a real run: a
|
|
894
|
+
* disagreement row exists per hypothesis and its groups partition the persona pool,
|
|
895
|
+
* so five hypotheses across five personas is 5 × 3 groups × ≤5 short names. MEASURED
|
|
896
|
+
* on the 5-persona, 3-split, 4-rejection run {@link renderRejections} also cites: all
|
|
897
|
+
* three split rows together are ~330 bytes of the section's ~1,100 — every persona in
|
|
898
|
+
* every row, the densest a run of that size gets. Even all 25 rows at that density is
|
|
899
|
+
* under 3 KB; reaching a tenth of the ceiling takes a `report_data` no
|
|
900
|
+
* synthesis run can produce — which is what a backstop is for, the posture
|
|
901
|
+
* `CLAIM_RENDER_CAP` already takes.
|
|
902
|
+
*/
|
|
903
|
+
function splitGroup(raw, label) {
|
|
904
|
+
const names = asArray(raw).map((n) => safeInline(n, 100) ?? UNNAMED_PERSONA);
|
|
905
|
+
const shown = names.slice(0, SPLIT_NAME_CAP);
|
|
906
|
+
const dropped = names.length - shown.length;
|
|
907
|
+
const who = shown.length > 0 ? ` (${shown.join(', ')}${dropped > 0 ? `, +${dropped} more` : ''})` : '';
|
|
908
|
+
return `${names.length} ${label}${who}`;
|
|
909
|
+
}
|
|
910
|
+
/**
|
|
911
|
+
* The rejection rows — the evidence behind the section's own headline (FUL-616).
|
|
912
|
+
*
|
|
913
|
+
* ⚠️ THE INTRO LINE SAYS WHAT THIS TEXT IS NOT, and that is a guard rather than a
|
|
914
|
+
* caveat. These reasons are indented quoted prose, which is the exact shape
|
|
915
|
+
* `renderReceiptPools` gives a verified persona receipt and the shape FUL-615 had to
|
|
916
|
+
* put a label in front of for the same reason. A synthetic persona's reason for
|
|
917
|
+
* saying no is not a source quote and must never be cited as one; the section's own
|
|
918
|
+
* value depends on that line staying honest, because a reader who mistook these for
|
|
919
|
+
* retrieved quotes would be trusting the sycophancy readout MORE than the report it
|
|
920
|
+
* is a check on.
|
|
921
|
+
*
|
|
922
|
+
* ⚠️ ROWS ARE NOT FILTERED FOR SUBSTANCE, on purpose. `computeSycophancySignals`
|
|
923
|
+
* already drops hollow `{ option: '', reason: '' }` rejections before storing — that
|
|
924
|
+
* filter is what makes `totalRejections` a real count rather than a presence tally —
|
|
925
|
+
* so a row reaching here with nothing in it is DRIFT, and the honest render is a row
|
|
926
|
+
* saying so. Dropping it silently would make this block disagree with the headline
|
|
927
|
+
* count above it and give a reader no way to see which number was wrong.
|
|
928
|
+
*
|
|
929
|
+
* Clipping reuses this file's existing budgets rather than minting one: `CLAIM_TEXT_MAX`
|
|
930
|
+
* for the reason (the cap the digest already spends on model-written claim prose, which
|
|
931
|
+
* is what this is) and the 100 `renderPersonaSpine` spends on a short persona field for
|
|
932
|
+
* the option label.
|
|
933
|
+
*
|
|
934
|
+
* DIGEST COST, in the idiom `RECEIPT_QUOTE_MAX`'s doc sets, because a digest an agent
|
|
935
|
+
* truncates is a digest it does not read. Bounded by construction at `LIST_RENDER_CAP`
|
|
936
|
+
* (25) rows × (140 + 100 + ~40 for the label, indent and separators) ≈ 7 KB worst case.
|
|
937
|
+
* MEASURED on a 5-persona, 4-rejection, 3-split run: the whole section is ~1,100 bytes,
|
|
938
|
+
* of which this block is ~320 — against the +8,360 FUL-247 spent on the receipt quotes.
|
|
939
|
+
* A run with ZERO rejections — the case this section exists for — adds nothing at all.
|
|
940
|
+
*/
|
|
941
|
+
function renderRejections(personaSignals, channel) {
|
|
942
|
+
const rows = [];
|
|
943
|
+
let total = 0;
|
|
944
|
+
for (const raw of personaSignals) {
|
|
945
|
+
const label = personaLabel(raw);
|
|
946
|
+
for (const rejectionRaw of asArray(asRecord(raw)?.rejections)) {
|
|
947
|
+
total += 1;
|
|
948
|
+
if (rows.length >= LIST_RENDER_CAP)
|
|
949
|
+
continue;
|
|
950
|
+
const rejection = asRecord(rejectionRaw);
|
|
951
|
+
const option = safeInline(rejection?.option, 100) ?? '(option not recorded)';
|
|
952
|
+
const reason = safeInline(rejection?.reason, CLAIM_TEXT_MAX);
|
|
953
|
+
rows.push(` - ${label} ✕ ${option}${reason ? ` — "${reason}"` : ''}`);
|
|
954
|
+
}
|
|
955
|
+
}
|
|
956
|
+
if (rows.length === 0)
|
|
957
|
+
return '';
|
|
958
|
+
return ('What the personas explicitly rejected (the evidence behind the count above — the wording is a ' +
|
|
959
|
+
'SYNTHETIC persona\'s own, never a retrieved source quote, and must not be cited as one):\n' +
|
|
960
|
+
rows.join('\n') +
|
|
961
|
+
capNote(rows.length, total, channel, 'report_data.sycophancySignals.personaSignals'));
|
|
962
|
+
}
|
|
651
963
|
/**
|
|
652
964
|
* Hypothesis verdict robustness.
|
|
653
965
|
*
|
|
@@ -655,6 +967,37 @@ function renderSycophancy(reportData, channel) {
|
|
|
655
967
|
* report's top-level `status` is NOT the verdict to act on — `downgradedStatus`
|
|
656
968
|
* is. That inversion is precisely the kind of thing an agent gets wrong when it
|
|
657
969
|
* reads only the prose, so it is stated per-hypothesis rather than as a footnote.
|
|
970
|
+
*
|
|
971
|
+
* FUL-614: a row used to identify its hypothesis BY ID ALONE, so the sharpest line in
|
|
972
|
+
* this digest named something a reader could only resolve by grepping the prose above
|
|
973
|
+
* for `H3`. It now carries the statement, and — where the run set them — the FUL-102
|
|
974
|
+
* scope caveat and the FUL-396 evidence reading, on labelled continuation lines. See
|
|
975
|
+
* {@link hypothesisDetail}.
|
|
976
|
+
*
|
|
977
|
+
* ⚠️ WHAT MAKES A FIELD THE ACTUAL GAP IS HOW OFTEN IT IS THERE — and a coverage rate
|
|
978
|
+
* says that only once it is DATED AGAINST THE PRODUCER THAT WRITES IT. Measured
|
|
979
|
+
* 2026-08-24 over the 49 stored production jobs carrying `hypothesisResults` (371 rows):
|
|
980
|
+
* `statement` 371/371, `scopeCaveat` 7%, `evidenceReading` 14/371 (3.8%). The first two
|
|
981
|
+
* are properties of the fields. The third is NOT. `withEvidenceReadings` — its sole
|
|
982
|
+
* writer, and the reason the line is code-composed rather than opined — landed
|
|
983
|
+
* 2026-08-17 (FUL-396), one week before that measurement, and
|
|
984
|
+
* `agent/src/hypothesis-reading.ts` documents 357/357 production hypotheses carrying at
|
|
985
|
+
* least one evidence item. So 3.8% is the age of the stored corpus, not the rarity of
|
|
986
|
+
* the field: it fires on essentially every row written since, and the 14 rows that carry
|
|
987
|
+
* it are consistent with being exactly that post-landing slice. `scopeCaveat`'s 7%
|
|
988
|
+
* survives the same check — its prompt has shipped since 2026-07-12 (FUL-102).
|
|
989
|
+
*
|
|
990
|
+
* So `statement` is what makes every row self-describing, `evidenceReading` joins it on
|
|
991
|
+
* nearly every row from here on, and `scopeCaveat` is the one field of the three that
|
|
992
|
+
* reaches NO other agent-visible text at all:
|
|
993
|
+
* `generateReportMarkdown` prints the statement as a heading, the evidence reading as
|
|
994
|
+
* `- **Rests on**:` and every robustness variant as its own bullet, but it has never
|
|
995
|
+
* printed the scope caveat. A verdict whose persona support came from outside that
|
|
996
|
+
* persona's credibility domain reached an agent with nothing marking it.
|
|
997
|
+
*
|
|
998
|
+
* The variants block and the evidence arrays stay out, decided with Alex on the same
|
|
999
|
+
* measurement: the markdown above the separator already prints every re-ask and every
|
|
1000
|
+
* evidence summary, and they are the largest per-row cost this section could take.
|
|
658
1001
|
*/
|
|
659
1002
|
function renderRobustness(reportData, channel) {
|
|
660
1003
|
const results = asArray(reportData.hypothesisResults);
|
|
@@ -681,16 +1024,21 @@ function renderRobustness(reportData, channel) {
|
|
|
681
1024
|
const flipped = tribool(robustness?.flipped);
|
|
682
1025
|
const downgraded = safeInline(robustness?.downgradedStatus, 40);
|
|
683
1026
|
const count = survived !== null && total !== null ? `held ${survived}/${total} framings` : 'survival count unavailable';
|
|
1027
|
+
// Appended to EVERY branch, not just the flipped one. A held verdict is the row a
|
|
1028
|
+
// reader is most likely to act on unexamined, so it is the last one that should be
|
|
1029
|
+
// identified by an id alone.
|
|
1030
|
+
const detail = hypothesisDetail(result);
|
|
684
1031
|
if (flipped === true) {
|
|
685
1032
|
return (`- ${id}: reported \`${status}\` — ⚠️ FLIPPED under rephrasing (${count}). ` +
|
|
686
|
-
`The verdict to act on is \`${downgraded ?? 'weaker than reported — downgrade unavailable'}\`, NOT \`${status}\`.`
|
|
1033
|
+
`The verdict to act on is \`${downgraded ?? 'weaker than reported — downgrade unavailable'}\`, NOT \`${status}\`.` +
|
|
1034
|
+
detail);
|
|
687
1035
|
}
|
|
688
1036
|
// An unreadable `flipped` is NOT "held" — say so rather than printing the
|
|
689
1037
|
// verdict as if it had survived re-asking.
|
|
690
1038
|
if (flipped === null) {
|
|
691
|
-
return `- ${id}: reported \`${status}\` — ⚠️ flip status UNREADABLE (${count}); treat this verdict as un-retested
|
|
1039
|
+
return `- ${id}: reported \`${status}\` — ⚠️ flip status UNREADABLE (${count}); treat this verdict as un-retested.${detail}`;
|
|
692
1040
|
}
|
|
693
|
-
return `- ${id}: \`${status}\` — ${count}`;
|
|
1041
|
+
return `- ${id}: \`${status}\` — ${count}${detail}`;
|
|
694
1042
|
});
|
|
695
1043
|
const flippedCount = withRobustness.filter((raw) => bool(asRecord(asRecord(raw)?.robustness)?.flipped)).length;
|
|
696
1044
|
const unreadableFlips = withRobustness.filter((raw) => tribool(asRecord(asRecord(raw)?.robustness)?.flipped) === null).length;
|