@claudexor/review 3.1.1 → 3.2.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/dist/findings.d.ts +11 -0
- package/dist/findings.d.ts.map +1 -1
- package/dist/findings.js +48 -5
- package/dist/findings.js.map +1 -1
- package/dist/readiness.d.ts.map +1 -1
- package/dist/revalidate.js.map +1 -1
- package/dist/reviewEngine.d.ts +2 -4
- package/dist/reviewEngine.d.ts.map +1 -1
- package/dist/reviewEngine.js +202 -372
- package/dist/reviewEngine.js.map +1 -1
- package/dist/reviewPrompt.d.ts +122 -1
- package/dist/reviewPrompt.d.ts.map +1 -1
- package/dist/reviewPrompt.js +102 -17
- package/dist/reviewPrompt.js.map +1 -1
- package/dist/reviewRuntimeTypes.d.ts +9 -2
- package/dist/reviewRuntimeTypes.d.ts.map +1 -1
- package/dist/reviewRuntimeTypes.js +9 -1
- package/dist/reviewRuntimeTypes.js.map +1 -1
- package/dist/reviewerCostKnowledge.d.ts +26 -0
- package/dist/reviewerCostKnowledge.d.ts.map +1 -0
- package/dist/reviewerCostKnowledge.js +73 -0
- package/dist/reviewerCostKnowledge.js.map +1 -0
- package/dist/reviewerSpendAccumulator.d.ts +26 -0
- package/dist/reviewerSpendAccumulator.d.ts.map +1 -0
- package/dist/reviewerSpendAccumulator.js +48 -0
- package/dist/reviewerSpendAccumulator.js.map +1 -0
- package/dist/reviewerWorkspace.d.ts +24 -0
- package/dist/reviewerWorkspace.d.ts.map +1 -0
- package/dist/reviewerWorkspace.js +360 -0
- package/dist/reviewerWorkspace.js.map +1 -0
- package/dist/route.js.map +1 -1
- package/dist/sealedReviewEnvelope.d.ts +20 -0
- package/dist/sealedReviewEnvelope.d.ts.map +1 -0
- package/dist/sealedReviewEnvelope.js +176 -0
- package/dist/sealedReviewEnvelope.js.map +1 -0
- package/package.json +6 -6
|
@@ -0,0 +1,176 @@
|
|
|
1
|
+
export const RELEASE_NATIVE_CHECKLIST_ITEMS = [
|
|
2
|
+
"sealed_evidence",
|
|
3
|
+
"intent_and_scope",
|
|
4
|
+
"runtime_and_security",
|
|
5
|
+
"tests_and_release",
|
|
6
|
+
];
|
|
7
|
+
export const SEALED_REVIEW_SEVERITY_VALUES = [
|
|
8
|
+
"BLOCK",
|
|
9
|
+
"FIX_FIRST",
|
|
10
|
+
"WARN",
|
|
11
|
+
"NIT",
|
|
12
|
+
"OUT_OF_SCOPE",
|
|
13
|
+
"INSUFFICIENT_EVIDENCE",
|
|
14
|
+
"NEEDS_HUMAN",
|
|
15
|
+
];
|
|
16
|
+
export const SEALED_REVIEW_CATEGORY_VALUES = [
|
|
17
|
+
"correctness",
|
|
18
|
+
"regression",
|
|
19
|
+
"security",
|
|
20
|
+
"performance",
|
|
21
|
+
"maintainability",
|
|
22
|
+
"test_gap",
|
|
23
|
+
"spec_gap",
|
|
24
|
+
"deploy",
|
|
25
|
+
"architecture",
|
|
26
|
+
"ux",
|
|
27
|
+
];
|
|
28
|
+
const SEALED_REVIEW_SEVERITIES = new Set(SEALED_REVIEW_SEVERITY_VALUES);
|
|
29
|
+
const SEALED_REVIEW_CATEGORIES = new Set(SEALED_REVIEW_CATEGORY_VALUES);
|
|
30
|
+
const BLOCKING_SEVERITIES = new Set(["BLOCK", "FIX_FIRST", "NEEDS_HUMAN", "INSUFFICIENT_EVIDENCE"]);
|
|
31
|
+
/** Deterministic persisted transcript projection for sealed native reviews. */
|
|
32
|
+
export function sealedReviewTranscriptChunk(event) {
|
|
33
|
+
if (!isRecord(event) || event["type"] !== "message")
|
|
34
|
+
return null;
|
|
35
|
+
if (isRecord(event["payload"]) && event["payload"]["auth_switched"] === true)
|
|
36
|
+
return null;
|
|
37
|
+
const text = event["text"];
|
|
38
|
+
if (typeof text !== "string" || text.length === 0)
|
|
39
|
+
return null;
|
|
40
|
+
return text.endsWith("\n") ? text : `${text}\n`;
|
|
41
|
+
}
|
|
42
|
+
export function sealedReviewTranscriptFromEvents(events) {
|
|
43
|
+
// HarnessEvent.final is the cross-harness typed-answer contract. Adapter
|
|
44
|
+
// provenance such as payload.final_source remains preserved in raw events
|
|
45
|
+
// and pinned by adapter conformance, but is not a second finality authority.
|
|
46
|
+
const finals = events.filter((event) => isRecord(event) && event["type"] === "message" && event["final"] === true);
|
|
47
|
+
if (finals.length !== 1) {
|
|
48
|
+
throw new Error(`sealed review requires exactly one typed final message; observed ${finals.length}`);
|
|
49
|
+
}
|
|
50
|
+
const transcript = sealedReviewTranscriptChunk(finals[0]);
|
|
51
|
+
if (transcript === null) {
|
|
52
|
+
throw new Error("sealed review final message has no projectable text");
|
|
53
|
+
}
|
|
54
|
+
return transcript;
|
|
55
|
+
}
|
|
56
|
+
/** Dependency-free decision parser shared by the product and receipt verifier.
|
|
57
|
+
* Full product normalization still runs the canonical ReviewFinding schema. */
|
|
58
|
+
export function parseSealedReviewDecisionEnvelopeDetailed(text) {
|
|
59
|
+
const empty = (error) => ({
|
|
60
|
+
findings: [],
|
|
61
|
+
rawFindings: [],
|
|
62
|
+
malformed: 0,
|
|
63
|
+
error,
|
|
64
|
+
blocks: [],
|
|
65
|
+
});
|
|
66
|
+
const source = text.trim();
|
|
67
|
+
if (source.length === 0)
|
|
68
|
+
return empty("no sealed review envelope");
|
|
69
|
+
let envelope;
|
|
70
|
+
try {
|
|
71
|
+
envelope = JSON.parse(source);
|
|
72
|
+
}
|
|
73
|
+
catch {
|
|
74
|
+
return empty("sealed review output must be exactly one JSON object with no surrounding prose");
|
|
75
|
+
}
|
|
76
|
+
const blocks = [envelope];
|
|
77
|
+
const fail = (error, rawFindings = [], findings = [], malformed = 0) => ({
|
|
78
|
+
findings,
|
|
79
|
+
rawFindings,
|
|
80
|
+
malformed,
|
|
81
|
+
error,
|
|
82
|
+
blocks,
|
|
83
|
+
});
|
|
84
|
+
if (!isRecord(envelope) || !hasExactKeys(envelope, ["completion", "findings"])) {
|
|
85
|
+
return fail("invalid sealed review envelope shape");
|
|
86
|
+
}
|
|
87
|
+
const completion = envelope["completion"];
|
|
88
|
+
const rawFindings = envelope["findings"];
|
|
89
|
+
if (!isRecord(completion) ||
|
|
90
|
+
!hasExactKeys(completion, ["checklist", "findingCount", "verdict"]) ||
|
|
91
|
+
!Array.isArray(rawFindings)) {
|
|
92
|
+
return fail("invalid sealed completion shape");
|
|
93
|
+
}
|
|
94
|
+
const checklist = completion["checklist"];
|
|
95
|
+
if (!Array.isArray(checklist) ||
|
|
96
|
+
checklist.length !== RELEASE_NATIVE_CHECKLIST_ITEMS.length ||
|
|
97
|
+
checklist.some((row, index) => {
|
|
98
|
+
if (!isRecord(row) || !hasOnlyKeys(row, ["item", "completed", "note"]))
|
|
99
|
+
return true;
|
|
100
|
+
if (row["item"] !== RELEASE_NATIVE_CHECKLIST_ITEMS[index] || row["completed"] !== true)
|
|
101
|
+
return true;
|
|
102
|
+
return row["note"] !== undefined && typeof row["note"] !== "string";
|
|
103
|
+
})) {
|
|
104
|
+
return fail("sealed checklist must contain the four exact completed items in order", rawFindings);
|
|
105
|
+
}
|
|
106
|
+
const findingCount = completion["findingCount"];
|
|
107
|
+
if (!Number.isSafeInteger(findingCount) || findingCount < 0) {
|
|
108
|
+
return fail("findingCount must be a non-negative integer", rawFindings);
|
|
109
|
+
}
|
|
110
|
+
if (findingCount !== rawFindings.length) {
|
|
111
|
+
return fail("findingCount does not match findings.length", rawFindings);
|
|
112
|
+
}
|
|
113
|
+
const findings = rawFindings.filter(isSealedReviewFinding).map((finding) => ({
|
|
114
|
+
severity: finding["severity"],
|
|
115
|
+
}));
|
|
116
|
+
const malformed = rawFindings.length - findings.length;
|
|
117
|
+
if (malformed > 0) {
|
|
118
|
+
return fail("sealed findings contain malformed items", rawFindings, findings, malformed);
|
|
119
|
+
}
|
|
120
|
+
const expectedVerdict = findings.some((finding) => BLOCKING_SEVERITIES.has(finding.severity))
|
|
121
|
+
? "FAIL"
|
|
122
|
+
: "PASS";
|
|
123
|
+
if (completion["verdict"] !== expectedVerdict) {
|
|
124
|
+
return fail(`completion verdict must be ${expectedVerdict} for these findings`, rawFindings, findings);
|
|
125
|
+
}
|
|
126
|
+
return { findings, rawFindings, malformed: 0, error: null, blocks };
|
|
127
|
+
}
|
|
128
|
+
function isSealedReviewFinding(value) {
|
|
129
|
+
if (!isRecord(value) || !SEALED_REVIEW_SEVERITIES.has(value["severity"]))
|
|
130
|
+
return false;
|
|
131
|
+
const id = value["id"];
|
|
132
|
+
if (id != null && (typeof id !== "string" || id.length === 0))
|
|
133
|
+
return false;
|
|
134
|
+
const category = value["category"];
|
|
135
|
+
if (category != null && !SEALED_REVIEW_CATEGORIES.has(category))
|
|
136
|
+
return false;
|
|
137
|
+
const criteria = value["linked_acceptance_criteria"];
|
|
138
|
+
if (criteria != null &&
|
|
139
|
+
!isArrayOf(criteria, (item) => typeof item === "string" && item.length > 0))
|
|
140
|
+
return false;
|
|
141
|
+
const proposedFix = value["proposed_fix"];
|
|
142
|
+
if (proposedFix != null && typeof proposedFix !== "string")
|
|
143
|
+
return false;
|
|
144
|
+
return isFindingEvidence(value["evidence"]);
|
|
145
|
+
}
|
|
146
|
+
function isFindingEvidence(value) {
|
|
147
|
+
if (value == null)
|
|
148
|
+
return true;
|
|
149
|
+
if (!isRecord(value))
|
|
150
|
+
return false;
|
|
151
|
+
return (isOptionalArrayOf(value["files"], (item) => isRecord(item) &&
|
|
152
|
+
typeof item["path"] === "string" &&
|
|
153
|
+
(item["lines"] === undefined ||
|
|
154
|
+
item["lines"] === null ||
|
|
155
|
+
typeof item["lines"] === "string")) &&
|
|
156
|
+
isOptionalArrayOf(value["diff_hunks"], (item) => typeof item === "string") &&
|
|
157
|
+
isOptionalArrayOf(value["commands"], (item) => isRecord(item) && typeof item["command"] === "string") &&
|
|
158
|
+
isOptionalArrayOf(value["logs"], (item) => isRecord(item) && typeof item["path"] === "string"));
|
|
159
|
+
}
|
|
160
|
+
function isOptionalArrayOf(value, predicate) {
|
|
161
|
+
return value === undefined || isArrayOf(value, predicate);
|
|
162
|
+
}
|
|
163
|
+
function isArrayOf(value, predicate) {
|
|
164
|
+
return Array.isArray(value) && value.every(predicate);
|
|
165
|
+
}
|
|
166
|
+
function isRecord(value) {
|
|
167
|
+
return !!value && typeof value === "object" && !Array.isArray(value);
|
|
168
|
+
}
|
|
169
|
+
function hasExactKeys(value, keys) {
|
|
170
|
+
return Object.keys(value).length === keys.length && hasOnlyKeys(value, keys);
|
|
171
|
+
}
|
|
172
|
+
function hasOnlyKeys(value, keys) {
|
|
173
|
+
const allowed = new Set(keys);
|
|
174
|
+
return Object.keys(value).every((key) => allowed.has(key));
|
|
175
|
+
}
|
|
176
|
+
//# sourceMappingURL=sealedReviewEnvelope.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sealedReviewEnvelope.js","sourceRoot":"","sources":["../src/sealedReviewEnvelope.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@claudexor/review",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.2.0",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"description": "Deterministic gates, cross-family review, finding revalidation, route proof, convergence, readiness-debt.",
|
|
6
6
|
"type": "module",
|
|
@@ -16,11 +16,11 @@
|
|
|
16
16
|
"dist"
|
|
17
17
|
],
|
|
18
18
|
"dependencies": {
|
|
19
|
-
"@claudexor/
|
|
20
|
-
"@claudexor/
|
|
21
|
-
"@claudexor/core": "3.
|
|
22
|
-
"@claudexor/schema": "3.
|
|
23
|
-
"@claudexor/util": "3.
|
|
19
|
+
"@claudexor/config": "3.2.0",
|
|
20
|
+
"@claudexor/context": "3.2.0",
|
|
21
|
+
"@claudexor/core": "3.2.0",
|
|
22
|
+
"@claudexor/schema": "3.2.0",
|
|
23
|
+
"@claudexor/util": "3.2.0"
|
|
24
24
|
},
|
|
25
25
|
"repository": {
|
|
26
26
|
"type": "git",
|