@clien-ai/mcp 0.8.1 → 0.10.0
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/README.md +38 -6
- package/dist/tools/collections.js +308 -5
- package/dist/tools/collections.js.map +1 -1
- package/dist/tools/content-type-display.js +166 -0
- package/dist/tools/content-type-display.js.map +1 -0
- package/dist/tools/credits.js +299 -0
- package/dist/tools/credits.js.map +1 -0
- package/dist/tools/interview-scripts.js +370 -0
- package/dist/tools/interview-scripts.js.map +1 -0
- package/dist/tools/interview.js +148 -6
- package/dist/tools/interview.js.map +1 -1
- package/dist/tools/output-schemas.js +47 -0
- package/dist/tools/output-schemas.js.map +1 -1
- package/dist/tools/personas.js +276 -48
- package/dist/tools/personas.js.map +1 -1
- package/dist/tools/registry.js +316 -24
- package/dist/tools/registry.js.map +1 -1
- package/dist/tools/report-digest.js +179 -3
- package/dist/tools/report-digest.js.map +1 -1
- package/dist/tools/reports.js +9 -2
- package/dist/tools/reports.js.map +1 -1
- package/dist/tools/research.js +102 -5
- package/dist/tools/research.js.map +1 -1
- package/dist/tools/scoped-research.js +270 -42
- package/dist/tools/scoped-research.js.map +1 -1
- package/dist/tools/status.js +2 -2
- package/dist/tools/status.js.map +1 -1
- package/dist/types/report.js +207 -5
- package/dist/types/report.js.map +1 -1
- package/package.json +3 -3
|
@@ -37,8 +37,17 @@
|
|
|
37
37
|
* refused. Hence the local `asArray` / `asRecord` / `str` / `num` accessors rather
|
|
38
38
|
* than typed field access: a reshaped field must degrade to "not shown", never
|
|
39
39
|
* throw and lose the whole digest.
|
|
40
|
+
*
|
|
41
|
+
* ⚠️ IT ALSO OWNS THE LINE BETWEEN PROSE AND PROOF (FUL-510). `composeReportText` at
|
|
42
|
+
* the bottom of this file assembles the whole agent-visible report text for the three
|
|
43
|
+
* tools that return one, and the split is the reason it lives here: the run's own
|
|
44
|
+
* `verdictSummary` is MODEL-WRITTEN prose and renders ABOVE the `---`, while everything
|
|
45
|
+
* `buildTrustDigest` emits is code-derived and renders below it. Anything that ever
|
|
46
|
+
* moves agent-authored text below that separator breaks the digest's own authority
|
|
47
|
+
* rule, which a reader applies positionally.
|
|
40
48
|
*/
|
|
41
49
|
import { collapseWhitespace, safeInline, safeId, clipReceiptQuote, RECEIPT_QUOTE_MAX, } from './render-safety.js';
|
|
50
|
+
import { canonicalContentType, contentTypeDeviationLine, contentTypeProvenanceLine, } from './content-type-display.js';
|
|
42
51
|
/**
|
|
43
52
|
* Max claims rendered per spine. Above this the digest states how many were
|
|
44
53
|
* dropped and where the full list lives — never a silent cut. Sized so a typical
|
|
@@ -441,7 +450,20 @@ function renderReceiptPools(reportData, channel) {
|
|
|
441
450
|
const quote = collapseWhitespace(str(source?.quote) ?? '');
|
|
442
451
|
const clipped = clipReceiptQuote(quote, spansByReceipt.get(receiptId) ?? [], RECEIPT_QUOTE_MAX);
|
|
443
452
|
const quoteLine = quote ? `\n "${clipped}"` : '';
|
|
444
|
-
|
|
453
|
+
// FUL-560: the source type, stated ONCE for the pool (in the header below) and inline only
|
|
454
|
+
// on a row that breaks the stated rule. This pool is the one place in the package where the
|
|
455
|
+
// type is a near-constant: `stampEvidenceMetadata` (agent-side) prunes every non-`user_voice`
|
|
456
|
+
// source out of `persona.sources`, so a per-row line here would print the same word down
|
|
457
|
+
// forty rows and bury the one that mattered. The header carries the claim; this carries the
|
|
458
|
+
// exception, in the shared wording.
|
|
459
|
+
//
|
|
460
|
+
// ⚠️ ABSENT AND NON-CANONICAL ARE BOTH DEVIATIONS. `canonicalContentType` fails closed, so a
|
|
461
|
+
// legacy untyped receipt (M0a predates plenty of stored runs) and a token from a newer
|
|
462
|
+
// producer both land here rather than being silently absorbed by the header's claim — which
|
|
463
|
+
// would be exactly the "silence reads as reassurance" fail-open this change exists to close.
|
|
464
|
+
const personaType = canonicalContentType(source?.contentType);
|
|
465
|
+
const deviationLine = personaType === 'user_voice' ? '' : contentTypeDeviationLine(source?.contentType);
|
|
466
|
+
personaReceipts.push(`- ${receiptId} — ${platform} — ${url}${quoteLine}${deviationLine}`);
|
|
445
467
|
});
|
|
446
468
|
});
|
|
447
469
|
const evidenceReceipts = reportEvidence.map((raw, n) => {
|
|
@@ -456,7 +478,22 @@ function renderReceiptPools(reportData, channel) {
|
|
|
456
478
|
// WE fetched it. Rendering retrievedAt as recency would be a lie, so an absent
|
|
457
479
|
// publication date is shown honestly as unknown rather than substituted.
|
|
458
480
|
const published = safeInline(source?.publishedDate, 40) ?? 'publish date unknown';
|
|
459
|
-
|
|
481
|
+
// FUL-560: the source type, on EVERY row and in both directions — the same words and the same
|
|
482
|
+
// trailing position `search_forums` and `list_community_signals` use, through the same helper,
|
|
483
|
+
// because two surfaces over one dataset must not disagree about what is worth an agent's
|
|
484
|
+
// attention (FUL-247). This pool is the market/competitor evidence spine: it is what a claim's
|
|
485
|
+
// `RRCP-s{n}` arrow resolves TO, and without this line a vendor listicle and a real company
|
|
486
|
+
// page answered that arrow identically.
|
|
487
|
+
//
|
|
488
|
+
// No pool-level invariant is claimed here, unlike the persona pool above. `marketing_seo`
|
|
489
|
+
// cannot enter this pool through the current producer (`orchestrator.ts` admits only genuinely
|
|
490
|
+
// `report_evidence`-typed urls), but stored runs predate that gate and an unstamped source is
|
|
491
|
+
// routine — so the honest shape is a per-row statement, not a header promise.
|
|
492
|
+
//
|
|
493
|
+
// No `safeInline` and no FUL-253 concern: `canonicalContentType` admits three literal tokens
|
|
494
|
+
// and nothing else, which is strictly stronger than flattening — a newline cannot survive a
|
|
495
|
+
// set-membership test, so this field cannot forge a row.
|
|
496
|
+
return `- RRCP-s${n} (${section}) — ${platform} — ${published} — ${url}${contentTypeProvenanceLine(source?.contentType)}`;
|
|
460
497
|
});
|
|
461
498
|
if (personaReceipts.length === 0 && evidenceReceipts.length === 0) {
|
|
462
499
|
return ('### Receipt pools — EMPTY\n' +
|
|
@@ -466,7 +503,8 @@ function renderReceiptPools(reportData, channel) {
|
|
|
466
503
|
const sections = ['### Receipt pools'];
|
|
467
504
|
if (personaReceipts.length > 0) {
|
|
468
505
|
const shown = personaReceipts.slice(0, CLAIM_RENDER_CAP);
|
|
469
|
-
sections.push(`**Persona receipts** (${plural(personaReceipts.length, 'cached forum post')}) — the target of an \`RCP-\` pointer
|
|
506
|
+
sections.push(`**Persona receipts** (${plural(personaReceipts.length, 'cached forum post')}) — the target of an \`RCP-\` pointer. ` +
|
|
507
|
+
'Every receipt here is a first-hand `user_voice` post unless its own row says otherwise:\n' +
|
|
470
508
|
shown.join('\n') +
|
|
471
509
|
capNote(shown.length, personaReceipts.length, channel, 'report_data.personas[].sources'));
|
|
472
510
|
}
|
|
@@ -671,6 +709,62 @@ function renderRobustness(reportData, channel) {
|
|
|
671
709
|
return (`${header}\n${lines.join('\n')}` +
|
|
672
710
|
capNote(shown.length, withRobustness.length, channel, 'report_data.hypothesisResults'));
|
|
673
711
|
}
|
|
712
|
+
/**
|
|
713
|
+
* The rendered budget for the run-level verdict rationale.
|
|
714
|
+
*
|
|
715
|
+
* The producer bounds it to `MAX_VERDICT_SUMMARY_WORDS` (50) whole words and drops it
|
|
716
|
+
* outright when no safe cut exists, so 400 chars is a defensive ceiling on a value that
|
|
717
|
+
* should already be well under it — not a routine trim. It exists because this renderer
|
|
718
|
+
* reads `report_data` that may have arrived by the RAW passthrough path, where nothing
|
|
719
|
+
* has validated the field at all.
|
|
720
|
+
*/
|
|
721
|
+
const VERDICT_SUMMARY_MAX = 400;
|
|
722
|
+
/** The heading `renderVerdictRationale` emits. Named so tests can pin it exactly. */
|
|
723
|
+
export const VERDICT_RATIONALE_HEADING = "## Verdict rationale — the run's own stated reason for its verdict";
|
|
724
|
+
/**
|
|
725
|
+
* The run-level verdict rationale (FUL-471 producer, FUL-510 on this surface).
|
|
726
|
+
*
|
|
727
|
+
* ⚠️ DELIBERATELY NOT PART OF {@link buildTrustDigest}, and the separation is the point.
|
|
728
|
+
* The digest declares itself machine-checked; every line in it is derived by this code
|
|
729
|
+
* from structured data. `verdictSummary` is MODEL-WRITTEN PROSE the run stored. Rendering
|
|
730
|
+
* it inside the digest would launder agent prose into the one section a reader is told to
|
|
731
|
+
* trust over the prose — the same anti-laundering rule that keeps `identityProvenance`
|
|
732
|
+
* from ever reading as a receipt. So it renders ABOVE the `---`, on the prose side of the
|
|
733
|
+
* line, and callers compose it exactly there.
|
|
734
|
+
*
|
|
735
|
+
* ⚠️ WHY IT HAS TO CROSS AT ALL. DESIGN.md forbids the web renderer from composing this
|
|
736
|
+
* sentence out of the verdict tally — "the renderer may show only the judgement the run
|
|
737
|
+
* actually stored". An agent handed only counts and per-hypothesis verdicts is in exactly
|
|
738
|
+
* that forbidden position, and is MORE likely than a human skimming a hero band to
|
|
739
|
+
* synthesise the missing rationale from the parts. Carrying the stored field is what
|
|
740
|
+
* removes the need.
|
|
741
|
+
*
|
|
742
|
+
* ABSENT RENDERS NOTHING — no placeholder, no reserved space, no substitute. That is a
|
|
743
|
+
* deliberate exception to this module's usual "announce the absence" rule (see
|
|
744
|
+
* {@link NO_TRUST_DATA}), which applies to machine-checked sections whose silence would
|
|
745
|
+
* read as a clean result. Here there is nothing to be wrong about: the run simply wrote no
|
|
746
|
+
* rationale, and a band saying so on every legacy report would be noise. The instruction
|
|
747
|
+
* that matters — absence is normal, never re-derive it — belongs in the always-visible
|
|
748
|
+
* tool description, which a caller reads whether or not this block renders.
|
|
749
|
+
*
|
|
750
|
+
* `safeInline` is load-bearing rather than tidiness. This block sits directly above the
|
|
751
|
+
* digest, whose authority rule is "the LAST such section in this message is the real one".
|
|
752
|
+
* A newline inside the stored rationale would let it mint a heading of its own — including
|
|
753
|
+
* a forged `## Trust digest` AFTER the real one, which is the one position that defeats
|
|
754
|
+
* that rule. Collapsing is the option a crafted value cannot get around.
|
|
755
|
+
*/
|
|
756
|
+
function renderVerdictRationale(reportData) {
|
|
757
|
+
const data = asRecord(reportData);
|
|
758
|
+
if (!data)
|
|
759
|
+
return '';
|
|
760
|
+
const summary = safeInline(data.verdictSummary, VERDICT_SUMMARY_MAX);
|
|
761
|
+
if (!summary)
|
|
762
|
+
return '';
|
|
763
|
+
return (`${VERDICT_RATIONALE_HEADING}\n\n` +
|
|
764
|
+
`> ${summary}\n\n` +
|
|
765
|
+
'_Written by the run at synthesis time and stored with the report — retrieved, not derived ' +
|
|
766
|
+
'from the verdict tally below, and not machine-checked._');
|
|
767
|
+
}
|
|
674
768
|
/**
|
|
675
769
|
* The digest heading.
|
|
676
770
|
*
|
|
@@ -720,4 +814,86 @@ export function buildTrustDigest(reportData, channel) {
|
|
|
720
814
|
].filter((section) => section.length > 0);
|
|
721
815
|
return `${DIGEST_HEADING}\n\n${sections.join('\n\n')}`;
|
|
722
816
|
}
|
|
817
|
+
/** The heading `renderReportGaps` emits. Named so tests can pin it exactly. */
|
|
818
|
+
export const REPORT_GAPS_HEADING = '## ⚠️ INCOMPLETE REPORT — parts of this run did not land';
|
|
819
|
+
/** Longest single gap line rendered. Generous: these are short, code-authored sentences. */
|
|
820
|
+
const GAP_LINE_MAX = 300;
|
|
821
|
+
/** Never render more than this many gap lines; a run cannot honestly produce more. */
|
|
822
|
+
const GAP_LINES_MAX = 12;
|
|
823
|
+
/**
|
|
824
|
+
* FUL-586 — the completeness banner, rendered FIRST, above the report prose.
|
|
825
|
+
*
|
|
826
|
+
* ⚠️ THE POSITION IS THE POINT, not formatting. Everything else this module renders sits
|
|
827
|
+
* below the `---`, because the digest's authority rule is that the LAST such section wins.
|
|
828
|
+
* This one has to be read BEFORE the agent forms its summary, because the failure it prevents
|
|
829
|
+
* happens during that summarisation: an agent handed a report whose competitor section is
|
|
830
|
+
* simply absent does not perceive a hole, it perceives "no competitors" and says so. A caveat
|
|
831
|
+
* printed after the prose arrives after the conclusion it was meant to prevent.
|
|
832
|
+
*
|
|
833
|
+
* ⚠️ AND IT IS DELIBERATELY NOT A DIGEST SECTION. `buildTrustDigest` declares itself
|
|
834
|
+
* machine-checked and its structure carries that promise; bolting a document-level caveat into
|
|
835
|
+
* it would blur what the digest is asserting. This is a statement ABOUT the document, not a
|
|
836
|
+
* claim WITHIN it.
|
|
837
|
+
*
|
|
838
|
+
* ABSENT RENDERS NOTHING — deliberately, and unlike {@link NO_TRUST_DATA}. A band on every
|
|
839
|
+
* healthy report is noise, and noise is how a warning gets ignored. The instruction that
|
|
840
|
+
* absence is not proof of completeness lives in the always-visible field description, which a
|
|
841
|
+
* caller reads whether or not this block renders.
|
|
842
|
+
*
|
|
843
|
+
* `safeInline` is load-bearing, not tidiness: these lines sit in a line-structured render, and
|
|
844
|
+
* an embedded newline would let a value forge a line of this renderer's own output (FUL-247).
|
|
845
|
+
*/
|
|
846
|
+
function renderReportGaps(reportData) {
|
|
847
|
+
const data = asRecord(reportData);
|
|
848
|
+
if (!data)
|
|
849
|
+
return '';
|
|
850
|
+
const record = asRecord(data.reportGaps);
|
|
851
|
+
if (!record)
|
|
852
|
+
return '';
|
|
853
|
+
const raw = Array.isArray(record.gaps) ? record.gaps : [];
|
|
854
|
+
const lines = raw
|
|
855
|
+
.slice(0, GAP_LINES_MAX)
|
|
856
|
+
.map((g) => safeInline(g, GAP_LINE_MAX))
|
|
857
|
+
.filter((g) => Boolean(g));
|
|
858
|
+
const rawCodes = Array.isArray(record.codes) ? record.codes : [];
|
|
859
|
+
const codes = rawCodes
|
|
860
|
+
.slice(0, GAP_LINES_MAX)
|
|
861
|
+
.map((c) => safeInline(c, 60))
|
|
862
|
+
.filter((c) => Boolean(c));
|
|
863
|
+
// A `reportGaps` object carrying nothing usable is still a positive signal that something
|
|
864
|
+
// went wrong — the producer only writes this key when it has something to confess. Say so
|
|
865
|
+
// rather than returning '', which would read exactly like a healthy run.
|
|
866
|
+
if (lines.length === 0 && codes.length === 0) {
|
|
867
|
+
return (`${REPORT_GAPS_HEADING}\n\n` +
|
|
868
|
+
'This run recorded that it failed to deliver part of its report, but the detail did not ' +
|
|
869
|
+
'survive. Treat any section that looks empty below as UNKNOWN, not as an empty result.');
|
|
870
|
+
}
|
|
871
|
+
return (`${REPORT_GAPS_HEADING}\n\n` +
|
|
872
|
+
'Parts of this report were never produced. A section that looks empty below may be MISSING ' +
|
|
873
|
+
'rather than genuinely empty — do not report "none were found" for anything named here.\n\n' +
|
|
874
|
+
lines.map((l) => `- ${l}`).join('\n') +
|
|
875
|
+
(codes.length > 0 ? `\n\nCodes: ${codes.join(', ')}` : ''));
|
|
876
|
+
}
|
|
877
|
+
/**
|
|
878
|
+
* The agent-visible TEXT of a report, composed once for the three tools that return one.
|
|
879
|
+
*
|
|
880
|
+
* `get_report`, `clien_research` and `clien_research_status` hand back the SAME report
|
|
881
|
+
* payload — the last two are the hero run and its recovery path — so the text they render
|
|
882
|
+
* has to be assembled in one place. It was not: each built the string inline, which is how
|
|
883
|
+
* a field can reach a caller through one tool and not the others while every test stays
|
|
884
|
+
* green. FUL-510's `verdictSummary` is the field that made the seam worth naming.
|
|
885
|
+
*
|
|
886
|
+
* The order is the contract. Report prose first (the run's markdown, then its own stored
|
|
887
|
+
* verdict rationale), then `---`, then the machine-checked digest LAST — because the
|
|
888
|
+
* digest's authority rule is that the last such section in the message is the real one,
|
|
889
|
+
* and anything above the separator is prose that may resemble it.
|
|
890
|
+
*/
|
|
891
|
+
export function composeReportText(reportMarkdown, reportData, channel) {
|
|
892
|
+
const rationale = renderVerdictRationale(reportData);
|
|
893
|
+
// FUL-586: the completeness banner goes FIRST — before the prose it is a caveat about.
|
|
894
|
+
const gaps = renderReportGaps(reportData);
|
|
895
|
+
return (`${gaps ? `${gaps}\n\n---\n\n` : ''}` +
|
|
896
|
+
`${reportMarkdown}${rationale ? `\n\n${rationale}` : ''}` +
|
|
897
|
+
`\n\n---\n\n${buildTrustDigest(reportData, channel)}`);
|
|
898
|
+
}
|
|
723
899
|
//# sourceMappingURL=report-digest.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"report-digest.js","sourceRoot":"","sources":["../../src/tools/report-digest.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AAEH,OAAO,EACL,kBAAkB,EAClB,UAAU,EACV,MAAM,EACN,gBAAgB,EAChB,iBAAiB,GAClB,MAAM,oBAAoB,CAAA;AAE3B;;;;;GAKG;AACH,MAAM,gBAAgB,GAAG,EAAE,CAAA;AAE3B,+EAA+E;AAC/E,MAAM,cAAc,GAAG,GAAG,CAAA;AAE1B,uEAAuE;AACvE,MAAM,eAAe,GAAG,EAAE,CAAA;AAE1B;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,cAAc,GAAG,OAAO,CAAA;AAE9B;;;;;;;;;;;GAWG;AACH,MAAM,eAAe,GAAG,WAAW,CAAA;AAEnC,8EAA8E;AAC9E,qFAAqF;AACrF,8EAA8E;AAE9E,SAAS,QAAQ,CAAC,KAAc;IAC9B,OAAO,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QACzE,CAAC,CAAE,KAAiC;QACpC,CAAC,CAAC,IAAI,CAAA;AACV,CAAC;AAED,SAAS,OAAO,CAAC,KAAc;IAC7B,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAA;AAC1C,CAAC;AAED,SAAS,GAAG,CAAC,KAAc;IACzB,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAA;AACrE,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,SAAS,QAAQ,CAAC,GAAY,EAAE,MAAM,GAAG,SAAS;IAChD,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,IAAI,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE;QAAE,OAAO,MAAM,CAAA;IACjF,OAAO,MAAM,CAAC,GAAG,CAAC,IAAI,mBAAmB,CAAA;AAC3C,CAAC;AAED;;;;;;;;;;GAUG;AACH,SAAS,sBAAsB,CAAC,WAAoB;IAClD,MAAM,MAAM,GACV,WAAW,KAAK,SAAS,IAAI,WAAW,KAAK,IAAI,IAAI,MAAM,CAAC,WAAW,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,CAAA;IACxF,OAAO,MAAM;QACX,CAAC,CAAC,8CAA8C;QAChD,CAAC,CAAC,wFAAwF,CAAA;AAC9F,CAAC;AAED,SAAS,GAAG,CAAC,KAAc;IACzB,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAA;AAC3E,CAAC;AAED;;;;;;;;;GASG;AACH,SAAS,OAAO,CAAC,KAAc;IAC7B,OAAO,OAAO,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAA;AAClD,CAAC;AAED,6EAA6E;AAC7E,SAAS,IAAI,CAAC,KAAc;IAC1B,OAAO,OAAO,CAAC,KAAK,CAAC,KAAK,IAAI,CAAA;AAChC,CAAC;AAED,gFAAgF;AAChF,SAAS,UAAU,CAAC,KAAc;IAChC,OAAO,KAAK,KAAK,SAAS,IAAI,OAAO,KAAK,KAAK,SAAS,CAAA;AAC1D,CAAC;AAED,0EAA0E;AAC1E,SAAS,MAAM,CAAC,KAAa,EAAE,IAAY,EAAE,UAAmB;IAC9D,OAAO,GAAG,KAAK,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,UAAU,IAAI,GAAG,IAAI,GAAG,CAAC,EAAE,CAAA;AACtE,CAAC;AAcD;;;;;GAKG;AACH,SAAS,OAAO,CAAC,KAAa,EAAE,KAAa,EAAE,OAAsB,EAAE,IAAY;IACjF,IAAI,KAAK,IAAI,KAAK;QAAE,OAAO,EAAE,CAAA;IAC7B,OAAO,eAAe,KAAK,OAAO,KAAK,oBAAoB,KAAK,GAAG,KAAK,aAAa,OAAO,IAAI,IAAI,MAAM,CAAA;AAC5G,CAAC;AAaD,SAAS,WAAW,CAAC,MAAiB;IACpC,MAAM,KAAK,GAAe,EAAE,QAAQ,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAA;IACjF,KAAK,MAAM,GAAG,IAAI,MAAM,EAAE,CAAC;QACzB,MAAM,KAAK,GAAG,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,CAAA;QACvC,IAAI,KAAK,KAAK,UAAU;YAAE,KAAK,CAAC,QAAQ,IAAI,CAAC,CAAA;aACxC,IAAI,KAAK,KAAK,aAAa;YAAE,KAAK,CAAC,WAAW,IAAI,CAAC,CAAA;aACnD,IAAI,KAAK,KAAK,YAAY;YAAE,KAAK,CAAC,SAAS,IAAI,CAAC,CAAA;QACrD,wEAAwE;QACxE,yEAAyE;;YACpE,KAAK,CAAC,KAAK,IAAI,CAAC,CAAA;IACvB,CAAC;IACD,OAAO,KAAK,CAAA;AACd,CAAC;AAED,SAAS,SAAS,CAAC,KAAiB,EAAE,KAAa;IACjD,MAAM,KAAK,GAAG;QACZ,GAAG,KAAK,CAAC,QAAQ,WAAW;QAC5B,GAAG,KAAK,CAAC,WAAW,cAAc;QAClC,GAAG,KAAK,CAAC,SAAS,aAAa;KAChC,CAAA;IACD,IAAI,KAAK,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC;QACpB,KAAK,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,KAAK,mDAAmD,CAAC,CAAA;IAC/E,CAAC;IACD,OAAO,GAAG,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAA;AAC1D,CAAC;AAED;;;;;;GAMG;AACH,SAAS,kBAAkB,CAAC,GAAY;IACtC,MAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAA;IAC3B,IAAI,CAAC,KAAK;QAAE,OAAO,4BAA4B,CAAA;IAC/C,4EAA4E;IAC5E,0EAA0E;IAC1E,+EAA+E;IAC/E,+EAA+E;IAC/E,6EAA6E;IAC7E,8EAA8E;IAC9E,4EAA4E;IAC5E,gEAAgE;IAChE,EAAE;IACF,8EAA8E;IAC9E,+EAA+E;IAC/E,8EAA8E;IAC9E,iEAAiE;IACjE,MAAM,QAAQ,GAAG,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;IACjC,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,eAAe,CAAA;IAC5D,MAAM,EAAE,GAAG,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;IAC7B,MAAM,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAA;IACzC,MAAM,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAA;IACvC,MAAM,IAAI,GAAG,UAAU,CAAC,KAAK,CAAC,IAAI,EAAE,cAAc,CAAC,CAAA;IACnD,6EAA6E;IAC7E,wEAAwE;IACxE,IAAI,OAAO,GAAG,EAAE,CAAA;IAChB,IAAI,QAAQ,KAAK,UAAU,EAAE,CAAC;QAC5B,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC,MAAM,QAAQ,EAAE,CAAC,CAAC,CAAC,sBAAsB,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAA;IAChF,CAAC;SAAM,IAAI,QAAQ,EAAE,CAAC;QACpB,OAAO,GAAG,aAAa,QAAQ,+CAA+C,KAAK,GAAG,CAAA;IACxF,CAAC;IACD,MAAM,GAAG,GAAG,SAAS,CAAC,CAAC,CAAC,KAAK,SAAS,GAAG,CAAC,CAAC,CAAC,EAAE,CAAA;IAC9C,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,OAAO,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE,CAAA;IACvC,OAAO,MAAM,KAAK,KAAK,EAAE,GAAG,GAAG,GAAG,OAAO,GAAG,IAAI,EAAE,CAAA;AACpD,CAAC;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,SAAS,iBAAiB,CAAC,GAAY;IACrC,MAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAA;IAC3B,IAAI,CAAC,KAAK;QAAE,OAAO,4BAA4B,CAAA;IAC/C,6EAA6E;IAC7E,6EAA6E;IAC7E,MAAM,QAAQ,GAAG,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;IACjC,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,eAAe,CAAA;IAC5D,MAAM,EAAE,GAAG,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;IAC7B,MAAM,OAAO,GAAG,UAAU,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,CAAC,CAAA;IAC7C,MAAM,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAA;IACvC,MAAM,IAAI,GAAG,UAAU,CAAC,KAAK,CAAC,IAAI,EAAE,cAAc,CAAC,CAAA;IACnD,MAAM,WAAW,GAAG,QAAQ,CAAC,KAAK,CAAC,WAAW,CAAC,CAAA;IAC/C,MAAM,gBAAgB,GAAG,MAAM,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAA;IAEtD,+EAA+E;IAC/E,0EAA0E;IAC1E,8EAA8E;IAC9E,2EAA2E;IAC3E,gFAAgF;IAChF,8EAA8E;IAC9E,mFAAmF;IACnF,IAAI,UAAU,GAAG,EAAE,CAAA;IACnB,IAAI,QAAQ,KAAK,UAAU,EAAE,CAAC;QAC5B,UAAU,GAAG,QAAQ,CAAC,CAAC,CAAC,MAAM,QAAQ,EAAE,CAAC,CAAC,CAAC,sBAAsB,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAA;IACnF,CAAC;SAAM,IAAI,QAAQ,KAAK,YAAY,IAAI,gBAAgB,EAAE,CAAC;QACzD,UAAU,GAAG,MAAM,cAAc,MAAM,gBAAgB,kBAAkB,CAAA;IAC3E,CAAC;SAAM,IAAI,QAAQ,KAAK,YAAY,EAAE,CAAC;QACrC,UAAU,GAAG,MAAM,eAAe,qCAAqC,CAAA;IACzE,CAAC;IACD,+EAA+E;IAC/E,4DAA4D;IAC5D,IAAI,QAAQ,KAAK,UAAU,IAAI,QAAQ,EAAE,CAAC;QACxC,UAAU,IAAI,aAAa,QAAQ,+CAA+C,KAAK,GAAG,CAAA;IAC5F,CAAC;IACD,MAAM,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC,KAAK,OAAO,GAAG,CAAC,CAAC,CAAC,EAAE,CAAA;IAC5C,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,OAAO,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE,CAAA;IACvC,OAAO,MAAM,KAAK,KAAK,EAAE,GAAG,KAAK,GAAG,UAAU,GAAG,IAAI,EAAE,CAAA;AACzD,CAAC;AAED,SAAS,kBAAkB,CAAC,UAAmC,EAAE,OAAsB;IACrF,MAAM,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,CAAA;IACzC,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,OAAO,CACL,qDAAqD;YACrD,0FAA0F;YAC1F,sFAAsF,CACvF,CAAA;IACH,CAAC;IACD,MAAM,KAAK,GAAG,WAAW,CAAC,MAAM,CAAC,CAAA;IACjC,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,gBAAgB,CAAC,CAAA;IAC/C,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAA;IAC3C,OAAO,CACL,6BAA6B,SAAS,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI;QAChE,iGAAiG;QACjG,iGAAiG;QACjG,8FAA8F;QAC9F,wDAAwD;QACxD,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;QACrB,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,EAAE,oBAAoB,CAAC,CACpE,CAAA;AACH,CAAC;AAED,SAAS,iBAAiB,CAAC,UAAmC,EAAE,OAAsB;IACpF,MAAM,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,YAAY,CAAC,CAAA;IAC/C,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACxB,OAAO,CACL,oDAAoD;YACpD,yFAAyF;YACzF,4FAA4F;YAC5F,uBAAuB,CACxB,CAAA;IACH,CAAC;IACD,MAAM,KAAK,GAAG,WAAW,CAAC,MAAM,CAAC,CAAA;IACjC,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE;QACrC,MAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAA;QAC3B,OAAO,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,KAAK,YAAY,IAAI,GAAG,CAAC,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC,EAAE,QAAQ,CAAC,KAAK,IAAI,CAAA;IACnG,CAAC,CAAC,CAAC,MAAM,CAAA;IACT,MAAM,YAAY,GAAG,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,cAAc,QAAQ,IAAI,cAAc,GAAG,CAAC,CAAC,CAAC,EAAE,CAAA;IACpF,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,gBAAgB,CAAC,CAAA;IAC/C,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAA;IAC1C,OAAO,CACL,4BAA4B,SAAS,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,GAAG,YAAY,IAAI;QAC9E,8FAA8F;QAC9F,gGAAgG;QAChG,0FAA0F;QAC1F,+FAA+F;QAC/F,wDAAwD;QACxD,8DAA8D,cAAc,yBAAyB;QACrG,iGAAiG;QACjG,4FAA4F;QAC5F,8DAA8D;QAC9D,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;QACrB,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,EAAE,0BAA0B,CAAC,CAC1E,CAAA;AACH,CAAC;AAED;;;;;;;;;;;;;;;GAeG;AACH,SAAS,oBAAoB,CAAC,UAAmC;IAC/D,MAAM,KAAK,GAAG,IAAI,GAAG,EAAoB,CAAA;IACzC,KAAK,MAAM,GAAG,IAAI,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,gBAAgB,CAAC,EAAE,CAAC;QACxE,MAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAA;QAC3B,IAAI,CAAC,KAAK,IAAI,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,UAAU;YAAE,SAAQ;QACvD,MAAM,QAAQ,GAAG,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAA;QACpC,MAAM,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,CAAA;QACjC,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI;YAAE,SAAQ;QAChC,MAAM,QAAQ,GAAG,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;QACpC,IAAI,QAAQ;YAAE,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;;YAC5B,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,CAAC,CAAA;IAClC,CAAC;IACD,OAAO,KAAK,CAAA;AACd,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,SAAS,kBAAkB,CAAC,UAAmC,EAAE,OAAsB;IACrF,MAAM,QAAQ,GAAG,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAA;IAC7C,MAAM,cAAc,GAAG,OAAO,CAAC,UAAU,CAAC,cAAc,CAAC,CAAA;IACzD,MAAM,cAAc,GAAG,oBAAoB,CAAC,UAAU,CAAC,CAAA;IAEvD,MAAM,eAAe,GAAa,EAAE,CAAA;IACpC,QAAQ,CAAC,OAAO,CAAC,CAAC,UAAU,EAAE,CAAC,EAAE,EAAE;QACjC,MAAM,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAC,CAAA;QACtD,OAAO,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,CAAC,EAAE,EAAE;YAC/B,MAAM,MAAM,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAA;YAClC,2EAA2E;YAC3E,yEAAyE;YACzE,2DAA2D;YAC3D,MAAM,QAAQ,GAAG,UAAU,CAAC,MAAM,EAAE,QAAQ,EAAE,EAAE,CAAC,IAAI,kBAAkB,CAAA;YACvE,MAAM,GAAG,GAAG,UAAU,CAAC,MAAM,EAAE,GAAG,EAAE,GAAG,CAAC,IAAI,UAAU,CAAA;YACtD,2EAA2E;YAC3E,4EAA4E;YAC5E,+EAA+E;YAC/E,EAAE;YACF,0EAA0E;YAC1E,yEAAyE;YACzE,4EAA4E;YAC5E,6EAA6E;YAC7E,6EAA6E;YAC7E,EAAE;YACF,8EAA8E;YAC9E,6EAA6E;YAC7E,4EAA4E;YAC5E,4EAA4E;YAC5E,yEAAyE;YACzE,MAAM,SAAS,GAAG,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAA;YACnC,MAAM,KAAK,GAAG,kBAAkB,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,CAAA;YAC1D,MAAM,OAAO,GAAG,gBAAgB,CAAC,KAAK,EAAE,cAAc,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,EAAE,iBAAiB,CAAC,CAAA;YAC/F,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,UAAU,OAAO,GAAG,CAAC,CAAC,CAAC,EAAE,CAAA;YACnD,eAAe,CAAC,IAAI,CAAC,KAAK,SAAS,MAAM,QAAQ,MAAM,GAAG,GAAG,SAAS,EAAE,CAAC,CAAA;QAC3E,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;IAEF,MAAM,gBAAgB,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE;QACrD,MAAM,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAA;QAC5B,4EAA4E;QAC5E,wEAAwE;QACxE,8CAA8C;QAC9C,MAAM,OAAO,GAAG,UAAU,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE,CAAC,IAAI,iBAAiB,CAAA;QACpE,MAAM,QAAQ,GAAG,UAAU,CAAC,MAAM,EAAE,QAAQ,EAAE,EAAE,CAAC,IAAI,kBAAkB,CAAA;QACvE,MAAM,GAAG,GAAG,UAAU,CAAC,MAAM,EAAE,GAAG,EAAE,GAAG,CAAC,IAAI,UAAU,CAAA;QACtD,+EAA+E;QAC/E,+EAA+E;QAC/E,yEAAyE;QACzE,MAAM,SAAS,GAAG,UAAU,CAAC,MAAM,EAAE,aAAa,EAAE,EAAE,CAAC,IAAI,sBAAsB,CAAA;QACjF,OAAO,WAAW,CAAC,KAAK,OAAO,OAAO,QAAQ,MAAM,SAAS,MAAM,GAAG,EAAE,CAAA;IAC1E,CAAC,CAAC,CAAA;IAEF,IAAI,eAAe,CAAC,MAAM,KAAK,CAAC,IAAI,gBAAgB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAClE,OAAO,CACL,6BAA6B;YAC7B,8FAA8F;YAC9F,yDAAyD,CAC1D,CAAA;IACH,CAAC;IAED,MAAM,QAAQ,GAAa,CAAC,mBAAmB,CAAC,CAAA;IAChD,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC/B,MAAM,KAAK,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC,EAAE,gBAAgB,CAAC,CAAA;QACxD,QAAQ,CAAC,IAAI,CACX,yBAAyB,MAAM,CAAC,eAAe,CAAC,MAAM,EAAE,mBAAmB,CAAC,0CAA0C;YACpH,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;YAChB,OAAO,CACL,KAAK,CAAC,MAAM,EACZ,eAAe,CAAC,MAAM,EACtB,OAAO,EACP,gCAAgC,CACjC,CACJ,CAAA;IACH,CAAC;IACD,IAAI,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAChC,MAAM,KAAK,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC,EAAE,gBAAgB,CAAC,CAAA;QACzD,QAAQ,CAAC,IAAI,CACX,mCAAmC,MAAM,CAAC,gBAAgB,CAAC,MAAM,EAAE,aAAa,CAAC,2CAA2C;YAC1H,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;YAChB,OAAO,CACL,KAAK,CAAC,MAAM,EACZ,gBAAgB,CAAC,MAAM,EACvB,OAAO,EACP,4BAA4B,CAC7B,CACJ,CAAA;IACH,CAAC;IACD,OAAO,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;AAC9B,CAAC;AAED;;;;;;;;;;;GAWG;AACH,SAAS,cAAc,CAAC,UAAmC,EAAE,OAAsB;IACjF,MAAM,QAAQ,GAAG,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAA;IAC7C,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,OAAO,yCAAyC,CAAA;IAClD,CAAC;IACD,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,eAAe,CAAC,CAAA;IAChD,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE;QACjC,MAAM,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAA;QAC7B,6EAA6E;QAC7E,+EAA+E;QAC/E,2EAA2E;QAC3E,2EAA2E;QAC3E,8EAA8E;QAC9E,wDAAwD;QACxD,MAAM,IAAI,GAAG,UAAU,CAAC,OAAO,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,WAAW,CAAC,EAAE,CAAA;QAC7D,MAAM,IAAI,GAAG,UAAU,CAAC,OAAO,EAAE,IAAI,EAAE,GAAG,CAAC,CAAA;QAC3C,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;QACzC,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC,CAAA;QACxC,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,EAAE,aAAa,CAAC;aAC5C,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;aAC9B,MAAM,CAAC,CAAC,CAAC,EAAe,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,CAAA;QACzC,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,EAAE,oBAAoB,CAAC,CAAA;QACxD,MAAM,YAAY,GAAG,GAAG,CAAC,OAAO,EAAE,YAAY,CAAC,CAAA;QAC/C,MAAM,MAAM,GAAG,QAAQ,CAAC,OAAO,EAAE,cAAc,CAAC,CAAA;QAChD,MAAM,SAAS,GAAG,UAAU,CAAC,MAAM,EAAE,SAAS,EAAE,EAAE,CAAC,CAAA;QACnD,MAAM,UAAU,GAAG,UAAU,CAAC,MAAM,EAAE,UAAU,EAAE,EAAE,CAAC,CAAA;QACrD,MAAM,UAAU,GAAG,UAAU,CAAC,OAAO,EAAE,kBAAkB,EAAE,GAAG,CAAC,CAAA;QAE/D,MAAM,IAAI,GAAa,EAAE,CAAA;QACzB,IAAI,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,CAAA;QACjD,IAAI,YAAY,EAAE,CAAC;YACjB,IAAI,CAAC,IAAI,CACP,0BAA0B,YAAY,KAAK,IAAI,CAAC,CAAC,CAAC,UAAU,YAAY,oBAAoB,CAAC,CAAC,CAAC,EAAE,EAAE,CACpG,CAAA;QACH,CAAC;aAAM,IAAI,YAAY,KAAK,IAAI,EAAE,CAAC;YACjC,IAAI,CAAC,IAAI,CAAC,iBAAiB,YAAY,EAAE,CAAC,CAAA;QAC5C,CAAC;QACD,2EAA2E;QAC3E,2DAA2D;QAC3D,IAAI,SAAS;YAAE,IAAI,CAAC,IAAI,CAAC,6BAA6B,SAAS,EAAE,CAAC,CAAA;QAClE,IAAI,UAAU;YAAE,IAAI,CAAC,IAAI,CAAC,8BAA8B,UAAU,EAAE,CAAC,CAAA;QAErE,4EAA4E;QAC5E,uEAAuE;QACvE,MAAM,IAAI,GAAG,OAAO;YAClB,CAAC,CAAC,gBAAgB,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,uBAAuB,2CAA2C;YACtI,CAAC,CAAC,UAAU,CAAC,OAAO,EAAE,SAAS,CAAC;gBAC9B,CAAC,CAAC,+EAA+E;gBACjF,CAAC,CAAC,EAAE,CAAA;QACR,MAAM,cAAc,GAAG,UAAU;YAC/B,CAAC,CAAC,4BAA4B,UAAU,yEAAyE;YACjH,CAAC,CAAC,EAAE,CAAA;QACN,OAAO,OAAO,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,cAAc,EAAE,CAAA;IACjG,CAAC,CAAC,CAAA;IACF,MAAM,YAAY,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,MAAM,CAAA;IAChF,gFAAgF;IAChF,gFAAgF;IAChF,iEAAiE;IACjE,MAAM,eAAe,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC,MAAM,CAAA;IACzF,MAAM,MAAM,GACV,YAAY,GAAG,CAAC;QACd,CAAC,CAAC,kBAAkB,QAAQ,CAAC,MAAM,QAAQ,YAAY,aAAa;QACpE,CAAC,CAAC,eAAe,GAAG,CAAC;YACnB,CAAC,CAAC,kBAAkB,QAAQ,CAAC,MAAM,iCAAiC,eAAe,uBAAuB;YAC1G,CAAC,CAAC,kBAAkB,QAAQ,CAAC,MAAM,mBAAmB,CAAA;IAC5D,OAAO,CACL,GAAG,MAAM,KAAK,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;QAChC,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,OAAO,EAAE,sBAAsB,CAAC,CACxE,CAAA;AACH,CAAC;AAED;;;;GAIG;AACH,SAAS,gBAAgB,CAAC,UAAmC,EAAE,OAAsB;IACnF,MAAM,OAAO,GAAG,QAAQ,CAAC,UAAU,CAAC,iBAAiB,CAAC,CAAA;IACtD,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,CACL,kDAAkD;YAClD,+FAA+F;YAC/F,kFAAkF,CACnF,CAAA;IACH,CAAC;IACD,MAAM,eAAe,GAAG,GAAG,CAAC,OAAO,CAAC,eAAe,CAAC,CAAA;IACpD,MAAM,sBAAsB,GAAG,GAAG,CAAC,OAAO,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAA;IACvE,MAAM,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC,cAAc,CAAC,CAAA;IACtD,MAAM,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,CAAA;IAEpD,MAAM,KAAK,GAAa,EAAE,CAAA;IAC1B,uEAAuE;IACvE,IAAI,eAAe,KAAK,IAAI,EAAE,CAAC;QAC7B,KAAK,CAAC,IAAI,CACR,eAAe,KAAK,CAAC;YACnB,CAAC,CAAC,2FAA2F;gBAC3F,yFAAyF;YAC3F,CAAC,CAAC,GAAG,MAAM,CAAC,eAAe,EAAE,oBAAoB,CAAC,uBAAuB,CAC5E,CAAA;IACH,CAAC;IACD,IAAI,sBAAsB,GAAG,CAAC,EAAE,CAAC;QAC/B,MAAM,KAAK,GAAG,cAAc;aACzB,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,iBAAiB,CAAC,CAAC;YACxD,0EAA0E;YAC1E,yEAAyE;YACzE,6BAA6B;aAC5B,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,WAAW,EAAE,GAAG,CAAC,IAAI,WAAW,CAAC,CAAA;QAC3E,KAAK,CAAC,IAAI,CACR,MAAM,sBAAsB,sEAAsE;YAChG,0DAA0D,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAC/E,CAAA;IACH,CAAC;IACD,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC7B,MAAM,KAAK,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC,EAAE,eAAe,CAAC,CAAA;QACrD,KAAK,CAAC,IAAI,CACR,yEAAyE;YACvE,KAAK;iBACF,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;gBACX,MAAM,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAA;gBACvB,MAAM,EAAE,GAAG,QAAQ,CAAC,CAAC,EAAE,YAAY,CAAC,CAAA;gBACpC,MAAM,UAAU,GAAG,OAAO,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,MAAM,CAAA;gBAChD,MAAM,QAAQ,GAAG,OAAO,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,MAAM,CAAA;gBAC5C,MAAM,OAAO,GAAG,OAAO,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,MAAM,CAAA;gBAC1C,OAAO,OAAO,EAAE,KAAK,UAAU,iBAAiB,OAAO,cAAc,QAAQ,cAAc,CAAA;YAC7F,CAAC,CAAC;iBACD,IAAI,CAAC,IAAI,CAAC;YACb,OAAO,CACL,KAAK,CAAC,MAAM,EACZ,aAAa,CAAC,MAAM,EACpB,OAAO,EACP,6CAA6C,CAC9C,CACJ,CAAA;IACH,CAAC;IACD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,KAAK,CAAC,IAAI,CAAC,+EAA+E,CAAC,CAAA;IAC7F,CAAC;IACD,OAAO,wBAAwB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAA;AACnD,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,gBAAgB,CAAC,UAAmC,EAAE,OAAsB;IACnF,MAAM,OAAO,GAAG,OAAO,CAAC,UAAU,CAAC,iBAAiB,CAAC,CAAA;IACrD,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAA;IACnC,MAAM,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,UAAU,CAAC,KAAK,IAAI,CAAC,CAAA;IAC5F,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAChC,OAAO,CACL,yDAAyD;YACzD,2FAA2F;YAC3F,4CAA4C,CAC7C,CAAA;IACH,CAAC;IACD,MAAM,KAAK,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC,EAAE,eAAe,CAAC,CAAA;IACtD,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;QAC9B,MAAM,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAA;QAC5B,6EAA6E;QAC7E,sEAAsE;QACtE,yEAAyE;QACzE,yEAAyE;QACzE,MAAM,EAAE,GAAG,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC,CAAA;QACzC,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,CAAC,IAAI,SAAS,CAAA;QAC1D,MAAM,UAAU,GAAG,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC,CAAA;QAC/C,MAAM,QAAQ,GAAG,GAAG,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAA;QAC1C,MAAM,KAAK,GAAG,GAAG,CAAC,UAAU,EAAE,KAAK,CAAC,CAAA;QACpC,MAAM,OAAO,GAAG,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC,CAAA;QAC5C,MAAM,UAAU,GAAG,UAAU,CAAC,UAAU,EAAE,gBAAgB,EAAE,EAAE,CAAC,CAAA;QAC/D,MAAM,KAAK,GAAG,QAAQ,KAAK,IAAI,IAAI,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,QAAQ,QAAQ,IAAI,KAAK,WAAW,CAAC,CAAC,CAAC,4BAA4B,CAAA;QACvH,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;YACrB,OAAO,CACL,KAAK,EAAE,gBAAgB,MAAM,qCAAqC,KAAK,KAAK;gBAC5E,8BAA8B,UAAU,IAAI,8CAA8C,aAAa,MAAM,KAAK,CACnH,CAAA;QACH,CAAC;QACD,0EAA0E;QAC1E,2CAA2C;QAC3C,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;YACrB,OAAO,KAAK,EAAE,gBAAgB,MAAM,mCAAmC,KAAK,uCAAuC,CAAA;QACrH,CAAC;QACD,OAAO,KAAK,EAAE,OAAO,MAAM,QAAQ,KAAK,EAAE,CAAA;IAC5C,CAAC,CAAC,CAAA;IACF,MAAM,YAAY,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CACjD,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,UAAU,CAAC,EAAE,OAAO,CAAC,CACnD,CAAC,MAAM,CAAA;IACR,MAAM,eAAe,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CACpD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,UAAU,CAAC,EAAE,OAAO,CAAC,KAAK,IAAI,CAC/D,CAAC,MAAM,CAAA;IACR,+EAA+E;IAC/E,gFAAgF;IAChF,6EAA6E;IAC7E,MAAM,QAAQ,GAAG,OAAO,CAAC,MAAM,GAAG,cAAc,CAAC,MAAM,CAAA;IACvD,MAAM,YAAY,GAChB,QAAQ,GAAG,CAAC;QACV,CAAC,CAAC,KAAK,cAAc,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM,kCAAkC,QAAQ,kDAAkD;QAC1I,CAAC,CAAC,EAAE,CAAA;IACR,MAAM,MAAM,GACV,YAAY,GAAG,CAAC;QACd,CAAC,CAAC,kCAAkC,YAAY,uCAAuC,YAAY,EAAE;QACrG,CAAC,CAAC,eAAe,GAAG,CAAC;YACnB,CAAC,CAAC,6DAA6D,eAAe,mCAAmC,YAAY,EAAE;YAC/H,CAAC,CAAC,2DAA2D,YAAY,EAAE,CAAA;IACjF,OAAO,CACL,GAAG,MAAM,KAAK,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;QAChC,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE,cAAc,CAAC,MAAM,EAAE,OAAO,EAAE,+BAA+B,CAAC,CACvF,CAAA;AACH,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,cAAc,GAClB,yGAAyG;IACzG,qGAAqG;IACrG,4EAA4E,CAAA;AAE9E;;;;;;GAMG;AACH,MAAM,aAAa,GACjB,GAAG,cAAc,MAAM;IACvB,gGAAgG;IAChG,0FAA0F;IAC1F,+FAA+F;IAC/F,8DAA8D,CAAA;AAEhE;;;;;;;GAOG;AACH,MAAM,UAAU,gBAAgB,CAAC,UAAmB,EAAE,OAAsB;IAC1E,MAAM,IAAI,GAAG,QAAQ,CAAC,UAAU,CAAC,CAAA;IACjC,IAAI,CAAC,IAAI;QAAE,OAAO,aAAa,CAAA;IAE/B,MAAM,QAAQ,GAAG;QACf,kBAAkB,CAAC,IAAI,EAAE,OAAO,CAAC;QACjC,iBAAiB,CAAC,IAAI,EAAE,OAAO,CAAC;QAChC,kBAAkB,CAAC,IAAI,EAAE,OAAO,CAAC;QACjC,cAAc,CAAC,IAAI,EAAE,OAAO,CAAC;QAC7B,gBAAgB,CAAC,IAAI,EAAE,OAAO,CAAC;QAC/B,gBAAgB,CAAC,IAAI,EAAE,OAAO,CAAC;KAChC,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;IAEzC,OAAO,GAAG,cAAc,OAAO,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAA;AACxD,CAAC"}
|
|
1
|
+
{"version":3,"file":"report-digest.js","sourceRoot":"","sources":["../../src/tools/report-digest.ts"],"names":[],"mappings":"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"}
|
package/dist/tools/reports.js
CHANGED
|
@@ -28,7 +28,7 @@
|
|
|
28
28
|
*/
|
|
29
29
|
import { z } from 'zod';
|
|
30
30
|
import { ResearchReportDataSchema } from '../types/report.js';
|
|
31
|
-
import {
|
|
31
|
+
import { composeReportText } from './report-digest.js';
|
|
32
32
|
import { ToolError } from './errors.js';
|
|
33
33
|
import { apiCall, categorizeFetchError, webJobUrl, } from './research.js';
|
|
34
34
|
import { truncate, safeInline, safeId } from './render-safety.js';
|
|
@@ -278,9 +278,16 @@ export async function getReport(input, deps) {
|
|
|
278
278
|
// payload defensively (it also handles the raw passthrough above) and always
|
|
279
279
|
// returns something: when there is no trust data it says so loudly, because a
|
|
280
280
|
// silently-missing digest is indistinguishable from a clean one.
|
|
281
|
+
//
|
|
282
|
+
// FUL-510: `composeReportText` is that same argument applied to the run's own
|
|
283
|
+
// `verdictSummary`. It reached this tool ONLY through `_meta.report_data`, so the
|
|
284
|
+
// one sentence explaining WHY the verdict came out this way was invisible to the
|
|
285
|
+
// agent — which then had to infer a rationale from the tally, the exact thing the
|
|
286
|
+
// field was written to stop the web renderer doing. Composed in the shared helper
|
|
287
|
+
// so this tool, `clien_research` and `clien_research_status` cannot drift.
|
|
281
288
|
return {
|
|
282
289
|
content: [
|
|
283
|
-
{ type: 'text', text:
|
|
290
|
+
{ type: 'text', text: composeReportText(json.reportMarkdown, reportData, 'structuredContent') },
|
|
284
291
|
],
|
|
285
292
|
_meta: {
|
|
286
293
|
job_id: jobId,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reports.js","sourceRoot":"","sources":["../../src/tools/reports.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAGvB,OAAO,EAAE,wBAAwB,EAA2B,MAAM,oBAAoB,CAAA;AACtF,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"reports.js","sourceRoot":"","sources":["../../src/tools/reports.ts"],"names":[],"mappings":"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"}
|
package/dist/tools/research.js
CHANGED
|
@@ -8,8 +8,11 @@
|
|
|
8
8
|
* caller via MCP notifications/progress.
|
|
9
9
|
* 4. On terminal status, GET /api/validate/{jobId}/report (Accept: application/json)
|
|
10
10
|
* -> { reportMarkdown, reportData }.
|
|
11
|
-
* 5.
|
|
12
|
-
*
|
|
11
|
+
* 5. After that durable report read, POST /api/validate/{jobId}/promote and preserve its typed
|
|
12
|
+
* persistence outcome without turning a partial collections block into report failure.
|
|
13
|
+
* 6. Return { content: [{ type: 'text', text: reportMarkdown + persistence notice }],
|
|
14
|
+
* _meta: { report_data, job_id, status, project_id, promoted,
|
|
15
|
+
* promotion_error_code, promotion_retryable } }.
|
|
13
16
|
*
|
|
14
17
|
* Error mapping:
|
|
15
18
|
* - 402 -> tool error "Insufficient credits ..."
|
|
@@ -28,8 +31,8 @@ import { z } from 'zod';
|
|
|
28
31
|
import { OAuthError } from '../auth/oauth.js';
|
|
29
32
|
import { ResearchReportDataSchema } from '../types/report.js';
|
|
30
33
|
import { ToolError } from './errors.js';
|
|
31
|
-
import {
|
|
32
|
-
import { truncate } from './render-safety.js';
|
|
34
|
+
import { composeReportText } from './report-digest.js';
|
|
35
|
+
import { safeInline, truncate } from './render-safety.js';
|
|
33
36
|
import { classifyResearchTask, buildTaskGuardMessage } from './task-guard.js';
|
|
34
37
|
// Per-endpoint timeouts (#173). Node fetch has no implicit timeout, so a hung
|
|
35
38
|
// Supabase or Clien.ai endpoint would otherwise wedge the MCP server forever.
|
|
@@ -174,6 +177,54 @@ export async function apiCall(ctx, method, path, opts = {}) {
|
|
|
174
177
|
}
|
|
175
178
|
return response;
|
|
176
179
|
}
|
|
180
|
+
/** Promote one completed job without starting or debiting anything. */
|
|
181
|
+
export async function promoteCompletedJob(ctx, jobId) {
|
|
182
|
+
try {
|
|
183
|
+
const response = await apiCall(ctx, 'POST', `/api/validate/${jobId}/promote`, {
|
|
184
|
+
timeoutMs: 30_000,
|
|
185
|
+
});
|
|
186
|
+
const body = (await response.json().catch(() => null));
|
|
187
|
+
if (!response.ok) {
|
|
188
|
+
// ⚠️ `retryable` is a claim about what THE SERVER will do next, not about this HTTP call.
|
|
189
|
+
// A failed promote leaves `validation_jobs.promoted_at` NULL, so the stale-complete sweep
|
|
190
|
+
// re-promotes the job regardless of the status we saw — which makes almost every non-2xx
|
|
191
|
+
// recoverable. Reporting a 401/403/404 as "manual inspection required" told a paying user
|
|
192
|
+
// to seek help for something the server heals within ~10 minutes. Only a request the server
|
|
193
|
+
// will reject identically forever is permanent, and none of these statuses proves that.
|
|
194
|
+
return {
|
|
195
|
+
promoted: false,
|
|
196
|
+
errorCode: body?.code ?? `PROMOTION_HTTP_${response.status}`,
|
|
197
|
+
retryable: true,
|
|
198
|
+
marketUpdated: null,
|
|
199
|
+
};
|
|
200
|
+
}
|
|
201
|
+
if (body?.collections?.error) {
|
|
202
|
+
return {
|
|
203
|
+
promoted: false,
|
|
204
|
+
errorCode: body.collections.errorCode ?? body.collections.error,
|
|
205
|
+
// Older servers omit retryability; preserve their established sweep-retry behavior.
|
|
206
|
+
retryable: body.collections.retryable ?? true,
|
|
207
|
+
marketUpdated: null,
|
|
208
|
+
};
|
|
209
|
+
}
|
|
210
|
+
return {
|
|
211
|
+
promoted: true,
|
|
212
|
+
errorCode: null,
|
|
213
|
+
retryable: null,
|
|
214
|
+
// Absent on an older server → null → the caller says nothing about market.
|
|
215
|
+
marketUpdated: body?.collections?.marketUpdated ?? null,
|
|
216
|
+
};
|
|
217
|
+
}
|
|
218
|
+
catch (error) {
|
|
219
|
+
console.error(`[clien-mcp] promote request errored for job ${jobId}:`, error instanceof Error ? error.message : String(error));
|
|
220
|
+
return {
|
|
221
|
+
promoted: false,
|
|
222
|
+
errorCode: 'PROMOTION_REQUEST_FAILED',
|
|
223
|
+
retryable: true,
|
|
224
|
+
marketUpdated: null,
|
|
225
|
+
};
|
|
226
|
+
}
|
|
227
|
+
}
|
|
177
228
|
// ------------------------------------------------------------------
|
|
178
229
|
// Main tool handler
|
|
179
230
|
// ------------------------------------------------------------------
|
|
@@ -431,6 +482,38 @@ export async function runResearch(input, deps) {
|
|
|
431
482
|
console.error('[clien-mcp] report_data failed schema validation; passing through raw payload:', parsedReport.error.issues[0]);
|
|
432
483
|
}
|
|
433
484
|
}
|
|
485
|
+
// Promotion runs only after the durable report is readable. It is idempotent and owns no start
|
|
486
|
+
// or debit path, so this makes MCP completion match the web lifecycle without double-spend risk.
|
|
487
|
+
//
|
|
488
|
+
// ⚠️ Promotion is NOT gated on `startProjectId`. That field is the server's echo and is absent
|
|
489
|
+
// on older deployments (see where it is read), so a client-side guard would silently skip
|
|
490
|
+
// promotion for genuinely attached runs. The SERVER is the authority on whether a project
|
|
491
|
+
// exists; we only have to report its answer honestly — see the NO_PROJECT branch below.
|
|
492
|
+
const promotion = await promoteCompletedJob(ctx, jobId);
|
|
493
|
+
// ⚠️ `errorCode` is sanitized because `promoteCompletedJob` deliberately falls back to the
|
|
494
|
+
// server's RAW error string when an older server omits the typed code. A newline in a Postgres
|
|
495
|
+
// or zod message would end this line early and everything after it would read as our own
|
|
496
|
+
// output — one blank line below the trust digest whose receipt lines it could forge.
|
|
497
|
+
const renderableErrorCode = safeInline(promotion.errorCode, 60) ?? 'UNKNOWN';
|
|
498
|
+
// ⚠️ NEVER infer the market claim from `promoted`. It is true for "market replaced", "market
|
|
499
|
+
// ignored as older" and "market never eligible" alike, so asserting a snapshot from it tells
|
|
500
|
+
// the model the project's Market page matches this report when a newer run may own it.
|
|
501
|
+
// `marketUpdated` is the server's own discriminator; null (older server) says nothing.
|
|
502
|
+
// ⚠️ NO_PROJECT is not an incident. It is the server saying this run was never attached to a
|
|
503
|
+
// project, so there was nothing to persist — but it is a NON-retryable code, so without this
|
|
504
|
+
// branch a legitimate standalone run rendered as "project collections require manual
|
|
505
|
+
// inspection", inventing an operational failure for the model to relay to the user.
|
|
506
|
+
const persistenceNotice = promotion.errorCode === 'NO_PROJECT'
|
|
507
|
+
? 'PERSISTENCE: not attached to a project — the report is returned here but NOT saved.'
|
|
508
|
+
: promotion.promoted
|
|
509
|
+
? promotion.marketUpdated === true
|
|
510
|
+
? 'PERSISTENCE: Saved to the project, including its coherent Market snapshot.'
|
|
511
|
+
: promotion.marketUpdated === false
|
|
512
|
+
? 'PERSISTENCE: Saved to the project. The Market snapshot was NOT changed by this run — a newer run owns it.'
|
|
513
|
+
: 'PERSISTENCE: Saved to the project.'
|
|
514
|
+
: promotion.retryable === false
|
|
515
|
+
? `PERSISTENCE BLOCKED (${renderableErrorCode}): the report is ready, but project collections require manual inspection.`
|
|
516
|
+
: `PERSISTENCE: the report is ready; project collections are retrying automatically (${renderableErrorCode}).`;
|
|
434
517
|
// FUL-243: same appended trust digest as `get_report` / `clien_research_status`
|
|
435
518
|
// — the three tools return the same report payload, so all three must deliver
|
|
436
519
|
// its trust spine through the TEXT rather than through `_meta`, which hosts are
|
|
@@ -440,7 +523,7 @@ export async function runResearch(input, deps) {
|
|
|
440
523
|
content: [
|
|
441
524
|
{
|
|
442
525
|
type: 'text',
|
|
443
|
-
text: `${reportJson.reportMarkdown
|
|
526
|
+
text: `${composeReportText(reportJson.reportMarkdown, reportData, '_meta')}\n\n${persistenceNotice}`,
|
|
444
527
|
},
|
|
445
528
|
],
|
|
446
529
|
_meta: {
|
|
@@ -448,6 +531,9 @@ export async function runResearch(input, deps) {
|
|
|
448
531
|
status: reportJson.status ?? status,
|
|
449
532
|
project_id: startProjectId,
|
|
450
533
|
report_data: reportData,
|
|
534
|
+
promoted: promotion.promoted,
|
|
535
|
+
promotion_error_code: promotion.errorCode,
|
|
536
|
+
promotion_retryable: promotion.retryable,
|
|
451
537
|
...(totalCostCents !== undefined ? { total_cost_cents: totalCostCents } : {}),
|
|
452
538
|
},
|
|
453
539
|
};
|
|
@@ -527,6 +613,17 @@ async function handleStartError(response) {
|
|
|
527
613
|
'24 hours and is temporarily blocked. This is an automatic anti-runaway safeguard, not ' +
|
|
528
614
|
'a limit you can raise — wait for the rolling 24-hour window to clear, or contact support.');
|
|
529
615
|
}
|
|
616
|
+
if (status === 403 && parsed?.code === 'PROJECT_LOCKED') {
|
|
617
|
+
// FUL-559: the project is subscription-locked, so it is read-only in full and
|
|
618
|
+
// no paid run may start against it. Distinct from a credit refusal — topping
|
|
619
|
+
// up does not unlock it — so the generic fallback's "Failed to start research
|
|
620
|
+
// (HTTP 403)" would send the agent down the wrong recovery path. The server's
|
|
621
|
+
// message is self-sufficient; surface it verbatim.
|
|
622
|
+
throw new ResearchToolError(parsed?.error ??
|
|
623
|
+
parsed?.message ??
|
|
624
|
+
'This project is locked due to subscription limits. Upgrade to Pro at ' +
|
|
625
|
+
'https://clien.ai/app/billing to start research on it.');
|
|
626
|
+
}
|
|
530
627
|
if (status === 403 && parsed?.code === 'BILLING_LIMIT_EXCEEDED') {
|
|
531
628
|
throw new ResearchToolError(parsed?.message ??
|
|
532
629
|
'Monthly validation limit reached. Upgrade at https://clien.ai/app/billing.');
|