@colophon-claims/verify 0.0.0 → 0.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.
Files changed (96) hide show
  1. package/README.md +39 -0
  2. package/dist/admission/application.d.ts +18 -0
  3. package/dist/admission/application.js +53 -0
  4. package/dist/admission/contracts.d.ts +506 -0
  5. package/dist/admission/contracts.js +459 -0
  6. package/dist/admission/index.d.ts +5 -0
  7. package/dist/admission/index.js +5 -0
  8. package/dist/admission/intake.d.ts +75 -0
  9. package/dist/admission/intake.js +70 -0
  10. package/dist/admission/result-evaluation.d.ts +18 -0
  11. package/dist/admission/result-evaluation.js +71 -0
  12. package/dist/admission/screening-sample.d.ts +56 -0
  13. package/dist/admission/screening-sample.js +126 -0
  14. package/dist/admission/verification.d.ts +102 -0
  15. package/dist/admission/verification.js +844 -0
  16. package/dist/anchor/check.d.ts +95 -0
  17. package/dist/anchor/check.js +146 -0
  18. package/dist/anchor/ports.d.ts +6 -0
  19. package/dist/anchor/ports.js +354 -0
  20. package/dist/assets.d.ts +33 -0
  21. package/dist/assets.js +885 -0
  22. package/dist/bin.d.ts +2 -0
  23. package/dist/bin.js +20 -0
  24. package/dist/cli.d.ts +14 -0
  25. package/dist/cli.js +205 -0
  26. package/dist/comparison.d.ts +64 -0
  27. package/dist/comparison.js +235 -0
  28. package/dist/index.d.ts +23 -0
  29. package/dist/index.js +23 -0
  30. package/dist/manifest.d.ts +54 -0
  31. package/dist/manifest.js +240 -0
  32. package/dist/materialize.d.ts +4 -0
  33. package/dist/materialize.js +13 -0
  34. package/dist/profile/admission-receipts.d.ts +11 -0
  35. package/dist/profile/admission-receipts.js +24 -0
  36. package/dist/profile/anchor-claims.d.ts +157 -0
  37. package/dist/profile/anchor-claims.js +330 -0
  38. package/dist/profile/artifacts.d.ts +261 -0
  39. package/dist/profile/artifacts.js +139 -0
  40. package/dist/profile/assembly-ports.d.ts +19 -0
  41. package/dist/profile/assembly-ports.js +42 -0
  42. package/dist/profile/binary-judge-manifest.d.ts +121 -0
  43. package/dist/profile/binary-judge-manifest.js +106 -0
  44. package/dist/profile/binary-qualification.d.ts +9 -0
  45. package/dist/profile/binary-qualification.js +58 -0
  46. package/dist/profile/branding-assets.d.ts +5 -0
  47. package/dist/profile/branding-assets.js +5 -0
  48. package/dist/profile/branding.d.ts +24 -0
  49. package/dist/profile/branding.js +14 -0
  50. package/dist/profile/claim-consistency.d.ts +26 -0
  51. package/dist/profile/claim-consistency.js +91 -0
  52. package/dist/profile/claim.d.ts +327 -0
  53. package/dist/profile/claim.js +742 -0
  54. package/dist/profile/errors.d.ts +49 -0
  55. package/dist/profile/errors.js +78 -0
  56. package/dist/profile/inspect-assurance.d.ts +16 -0
  57. package/dist/profile/inspect-assurance.js +30 -0
  58. package/dist/profile/inspect-disclosure.d.ts +28 -0
  59. package/dist/profile/inspect-disclosure.js +54 -0
  60. package/dist/profile/inspect-manifest.d.ts +706 -0
  61. package/dist/profile/inspect-manifest.js +397 -0
  62. package/dist/profile/isolation.d.ts +21 -0
  63. package/dist/profile/isolation.js +31 -0
  64. package/dist/profile/pinning-evidence.d.ts +41 -0
  65. package/dist/profile/pinning-evidence.js +43 -0
  66. package/dist/profile/ports.d.ts +3 -0
  67. package/dist/profile/ports.js +11 -0
  68. package/dist/profile/preview-log.d.ts +4 -0
  69. package/dist/profile/preview-log.js +3 -0
  70. package/dist/profile/run-results.d.ts +17 -0
  71. package/dist/profile/run-results.js +23 -0
  72. package/dist/profile/signing.d.ts +10 -0
  73. package/dist/profile/signing.js +46 -0
  74. package/dist/profile/trust.d.ts +13 -0
  75. package/dist/profile/trust.js +35 -0
  76. package/dist/profile/venue.d.ts +2 -0
  77. package/dist/profile/venue.js +2 -0
  78. package/dist/profile/verdict.d.ts +28 -0
  79. package/dist/profile/verdict.js +51 -0
  80. package/dist/reader-instructions.d.ts +41 -0
  81. package/dist/reader-instructions.js +52 -0
  82. package/dist/schema.d.ts +380 -0
  83. package/dist/schema.js +498 -0
  84. package/dist/verify.d.ts +72 -0
  85. package/dist/verify.js +1573 -0
  86. package/dist/version.d.ts +2 -0
  87. package/dist/version.js +2 -0
  88. package/package.json +63 -3
  89. package/schemas/assembly-row.schema.json +194 -0
  90. package/schemas/bundle-manifest.schema.json +23 -0
  91. package/schemas/claim-package.schema.json +279 -0
  92. package/schemas/dsse-envelope.schema.json +25 -0
  93. package/schemas/evidence-catalog.schema.json +43 -0
  94. package/schemas/public-trust.schema.json +44 -0
  95. package/schemas/verdict-catalog.schema.json +27 -0
  96. package/scripts/external-verify.py +238 -0
package/README.md ADDED
@@ -0,0 +1,39 @@
1
+ # @colophon-claims/verify
2
+
3
+ Verify a public Colophon claim bundle without the Colophon app or any execution runtime:
4
+
5
+ ```sh
6
+ npx @colophon-claims/verify@0.2 ./bundle
7
+ ```
8
+
9
+ Use `--json` for machine-readable output. The reader runs the checks declared by the
10
+ bundle format, covering its manifest, evidence closure, calculations, report, and claim
11
+ consistency. Exit status is `0` when every check passes, `1` for an invalid bundle, and
12
+ `2` for usage or operational failures.
13
+
14
+ This 0.2 reader supports public bundle formats v2, v4, v5, and v6. It intentionally
15
+ rejects the unrelated accounting bundle v3. Formats v2 and v4 run six checks; the
16
+ evidence-native v5 and anchored v6 formats run seven.
17
+ Existing claim bundles retain their recorded verifier pins. Use this 0.2 reader
18
+ for prompted-screening v2 support and the compatible `@0.2` line for this
19
+ release.
20
+ For this one-time prompted-screening v2 release, `@jinn-network/*` is pinned to
21
+ the exact `0.1.0-canary.sha.e00b2fc47fc5635b007eb349fb1e41aa81bb3c50` receipt.
22
+ It is not a floating `@canary` dependency and is not a stable stack release.
23
+
24
+ Verification opens no network connection, reads no account or API credential, and uploads
25
+ nothing. It checks the bundle's integrity, evidence closure, calculations, report, and claim
26
+ consistency. It does not prove that the producing machine was honest or that the compared
27
+ identities are independent parties.
28
+
29
+ Bundles are also verifiable without this package: `../EXTERNAL-VERIFICATION.md` specifies
30
+ the external path (openssl plus a dependency-free script, shipped here as
31
+ `scripts/external-verify.py`), the JSON Schemas under `schemas/`, and the conformance kit
32
+ under `fixtures/public-bundle-conformance-v1/` for testing an independent verifier.
33
+
34
+ ## What this does not yet prove
35
+
36
+ Protocol identifiers in the installed platform packages name `https://spec.jinn.network/…`.
37
+ That origin is not hosted yet. This verifier checks the bundle against the exact
38
+ `@jinn-network/*` bytes installed from npm. A third party who fetches those identifiers
39
+ from the live origin will not retrieve them.
@@ -0,0 +1,18 @@
1
+ import { type BinaryJudgmentPayload, type EvaluationSpec } from "@jinn-network/task-execution-profiles";
2
+ export declare const HUMAN_REVIEW_FORM: {
3
+ readonly protocol: "https://spec.jinn.network/binary-judgment/human-review-form/v1";
4
+ readonly question: "Is the candidate answer correct relative to the question and reference answer?";
5
+ readonly labels: readonly ["CORRECT", "WRONG", "indeterminate"];
6
+ readonly completeReviewRequired: true;
7
+ readonly rationale: "optional";
8
+ };
9
+ export declare const HUMAN_REVIEW_FORM_SEALED: {
10
+ bytes: Uint8Array;
11
+ digest: `sha256:${string}`;
12
+ };
13
+ export declare function binaryJudgmentItemBytes(item: BinaryJudgmentPayload): Uint8Array;
14
+ export declare function buildBinaryJudgmentHumanReviewEvaluationSpec(): EvaluationSpec;
15
+ export declare const BINARY_JUDGMENT_HUMAN_REVIEW_EVALUATION_SPEC_SEALED: {
16
+ bytes: Uint8Array;
17
+ digest: `sha256:${string}`;
18
+ };
@@ -0,0 +1,53 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ import { EVALUATION_SPEC_FORMAT_URI, EVAL_SEMANTICS_VERSION, canonicalJsonBytes, sealDocument, sealEvaluationSpec, } from "@jinn-network/task-execution-profiles";
3
+ export const HUMAN_REVIEW_FORM = {
4
+ protocol: "https://spec.jinn.network/binary-judgment/human-review-form/v1",
5
+ question: "Is the candidate answer correct relative to the question and reference answer?",
6
+ labels: ["CORRECT", "WRONG", "indeterminate"],
7
+ completeReviewRequired: true,
8
+ rationale: "optional",
9
+ };
10
+ export const HUMAN_REVIEW_FORM_SEALED = sealDocument(HUMAN_REVIEW_FORM);
11
+ export function binaryJudgmentItemBytes(item) {
12
+ return canonicalJsonBytes(item);
13
+ }
14
+ export function buildBinaryJudgmentHumanReviewEvaluationSpec() {
15
+ return {
16
+ protocol: EVALUATION_SPEC_FORMAT_URI,
17
+ semanticsVersion: EVAL_SEMANTICS_VERSION,
18
+ family: "human-review",
19
+ grader: {
20
+ name: "external-human-review",
21
+ uri: HUMAN_REVIEW_FORM.protocol,
22
+ digest: { sha256: HUMAN_REVIEW_FORM_SEALED.digest.slice("sha256:".length) },
23
+ mediaType: "application/vnd.jinn.binary-judgment.human-review-form.v1+json",
24
+ accessClass: "public",
25
+ },
26
+ familyBlock: {
27
+ reviewForm: {
28
+ name: "human-review-form.json",
29
+ uri: HUMAN_REVIEW_FORM.protocol,
30
+ digest: { sha256: HUMAN_REVIEW_FORM_SEALED.digest.slice("sha256:".length) },
31
+ mediaType: "application/vnd.jinn.binary-judgment.human-review-form.v1+json",
32
+ },
33
+ reviewerQualifications: { roleDeclaredInRoster: true },
34
+ attestationShape: {
35
+ labels: ["CORRECT", "WRONG", "indeterminate"],
36
+ completeReviewRequired: true,
37
+ },
38
+ },
39
+ measurements: [
40
+ { name: "truthLabel", type: "string", direction: "none", required: true },
41
+ { name: "reviewComplete", type: "boolean", direction: "none", required: true },
42
+ { name: "reviewPacketSha256", type: "string", direction: "none", required: true },
43
+ { name: "visibilityReceiptSha256", type: "string", direction: "none", required: true },
44
+ { name: "responseSha256", type: "string", direction: "none", required: true },
45
+ ],
46
+ verdictRule: { threshold: { measurement: "truthLabel", op: "eq", value: "CORRECT" } },
47
+ unscorable: [{ name: "indeterminate", disposition: "recorded-inconclusive" }],
48
+ evidenceConventions: {
49
+ requiredRefs: ["human-review-packet", "visibility-receipt", "human-review-response"],
50
+ },
51
+ };
52
+ }
53
+ export const BINARY_JUDGMENT_HUMAN_REVIEW_EVALUATION_SPEC_SEALED = sealEvaluationSpec(buildBinaryJudgmentHumanReviewEvaluationSpec());
@@ -0,0 +1,506 @@
1
+ import { z } from "zod";
2
+ export declare const HUMAN_REVIEW_PACKET_PROTOCOL: "https://spec.jinn.network/binary-judgment/human-review-packet/v1";
3
+ export declare const HUMAN_REVIEW_RESPONSE_PROTOCOL: "https://spec.jinn.network/binary-judgment/human-review-response/v1";
4
+ export declare const HUMAN_REVIEW_VISIBILITY_RECEIPT_PROTOCOL: "https://spec.jinn.network/binary-judgment/visibility-receipt/v1";
5
+ export declare const HUMAN_REVIEW_ROSTER_PROTOCOL: "https://spec.jinn.network/binary-judgment/reviewer-roster/v1";
6
+ export declare const HUMAN_REVIEW_REVEAL_RECEIPT_PROTOCOL: "https://spec.jinn.network/binary-judgment/reveal-receipt/v1";
7
+ export declare const HUMAN_REVIEW_REPLACEMENT_LEDGER_PROTOCOL: "https://spec.jinn.network/binary-judgment/replacement-ledger/v1";
8
+ export declare const HUMAN_REVIEW_OPERATOR_ASSERTION_PROTOCOL: "https://spec.jinn.network/binary-judgment/operator-truth-assertion/v1";
9
+ export declare const BINARY_JUDGMENT_ADMISSION_MANIFEST_PROTOCOL: "https://spec.jinn.network/binary-judgment/admission-manifest/v1";
10
+ export declare const SCREENING_TABLE_PROTOCOL: "https://spec.jinn.network/binary-judgment/screening-table/v1";
11
+ export declare const PROMPTED_SCREENING_PROCEDURE_PROTOCOL: "https://spec.jinn.network/binary-judgment/prompted-screening-procedure/v1";
12
+ export declare const SCREENING_POOL_PROTOCOL: "https://spec.jinn.network/binary-judgment/screening-pool/v1";
13
+ export declare const SCREENING_SAMPLE_COMMITMENT_PROTOCOL: "https://spec.jinn.network/binary-judgment/screening-sample-commitment/v1";
14
+ export declare const SCREENING_TABLE_V2_PROTOCOL: "https://spec.jinn.network/binary-judgment/screening-table/v2";
15
+ export declare const SCREENING_REVEAL_RECEIPT_PROTOCOL: "https://spec.jinn.network/binary-judgment/screening-reveal-receipt/v1";
16
+ export declare const HUMAN_REVIEW_PACKET_MEDIA_TYPE: "application/vnd.jinn.binary-judgment.human-review-packet.v1+json";
17
+ export declare const HUMAN_REVIEW_RESPONSE_MEDIA_TYPE: "application/vnd.jinn.binary-judgment.human-review-response.v1+json";
18
+ export declare const HUMAN_REVIEW_VISIBILITY_RECEIPT_MEDIA_TYPE: "application/vnd.jinn.binary-judgment.visibility-receipt.v1+json";
19
+ export declare const HUMAN_REVIEW_ROSTER_MEDIA_TYPE: "application/vnd.jinn.binary-judgment.reviewer-roster.v1+json";
20
+ export declare const HUMAN_REVIEW_REVEAL_RECEIPT_MEDIA_TYPE: "application/vnd.jinn.binary-judgment.reveal-receipt.v1+json";
21
+ export declare const HUMAN_REVIEW_OPERATOR_ASSERTION_MEDIA_TYPE: "application/vnd.jinn.binary-judgment.operator-truth-assertion.v1+json";
22
+ export declare const SCREENING_TABLE_MEDIA_TYPE: "application/vnd.jinn.binary-judgment.screening-table.v1+json";
23
+ export declare const SCREENING_TABLE_V2_MEDIA_TYPE: "application/vnd.jinn.binary-judgment.screening-table.v2+json";
24
+ export declare const SCREENING_REVEAL_RECEIPT_MEDIA_TYPE: "application/vnd.jinn.binary-judgment.screening-reveal-receipt.v1+json";
25
+ export declare const HUMAN_REVIEW_OMITTED_FIELDS: readonly ["instrumentIdentity", "candidateClass", "stratum", "otherReview", "postRunOutcomes"];
26
+ export declare const HumanReviewPacketSchema: z.ZodObject<{
27
+ protocol: z.ZodLiteral<"https://spec.jinn.network/binary-judgment/human-review-packet/v1">;
28
+ itemSha256: z.ZodString;
29
+ item: z.ZodObject<{
30
+ itemId: z.ZodString;
31
+ question: z.ZodString;
32
+ referenceAnswer: z.ZodString;
33
+ candidateAnswer: z.ZodString;
34
+ evidence: z.ZodOptional<z.ZodString>;
35
+ provenance: z.ZodObject<{
36
+ sourceCommitment: z.ZodString;
37
+ timestamp: z.ZodString;
38
+ }, z.core.$strict>;
39
+ sources: z.ZodArray<z.ZodObject<{
40
+ digest: z.ZodObject<{
41
+ sha256: z.ZodString;
42
+ }, z.core.$strict>;
43
+ }, z.core.$strict>>;
44
+ }, z.core.$strict>;
45
+ evaluationSpecSha256: z.ZodString;
46
+ reviewerId: z.ZodString;
47
+ form: z.ZodObject<{
48
+ question: z.ZodLiteral<"Is the candidate answer correct relative to the question and reference answer?">;
49
+ labels: z.ZodTuple<[z.ZodLiteral<"CORRECT">, z.ZodLiteral<"WRONG">, z.ZodLiteral<"indeterminate">], null>;
50
+ completeReviewRequired: z.ZodLiteral<true>;
51
+ }, z.core.$strict>;
52
+ }, z.core.$strict>;
53
+ export type HumanReviewPacket = z.infer<typeof HumanReviewPacketSchema>;
54
+ export declare const HumanReviewVisibilityReceiptSchema: z.ZodObject<{
55
+ protocol: z.ZodLiteral<"https://spec.jinn.network/binary-judgment/visibility-receipt/v1">;
56
+ packetSha256: z.ZodString;
57
+ itemSha256: z.ZodString;
58
+ reviewerId: z.ZodString;
59
+ omittedFields: z.ZodTuple<[z.ZodLiteral<"instrumentIdentity">, z.ZodLiteral<"candidateClass">, z.ZodLiteral<"stratum">, z.ZodLiteral<"otherReview">, z.ZodLiteral<"postRunOutcomes">], null>;
60
+ issuedAt: z.ZodString;
61
+ }, z.core.$strict>;
62
+ export type HumanReviewVisibilityReceipt = z.infer<typeof HumanReviewVisibilityReceiptSchema>;
63
+ export declare const HumanReviewResponseSchema: z.ZodObject<{
64
+ protocol: z.ZodLiteral<"https://spec.jinn.network/binary-judgment/human-review-response/v1">;
65
+ packetSha256: z.ZodString;
66
+ visibilityReceiptSha256: z.ZodString;
67
+ itemSha256: z.ZodString;
68
+ evaluatorId: z.ZodString;
69
+ label: z.ZodUnion<readonly [z.ZodEnum<{
70
+ CORRECT: "CORRECT";
71
+ WRONG: "WRONG";
72
+ }>, z.ZodLiteral<"indeterminate">]>;
73
+ complete: z.ZodBoolean;
74
+ completedAt: z.ZodString;
75
+ }, z.core.$strict>;
76
+ export type HumanReviewResponse = z.infer<typeof HumanReviewResponseSchema>;
77
+ export declare const ReviewerDeclarationSchema: z.ZodObject<{
78
+ evaluatorId: z.ZodString;
79
+ keyId: z.ZodString;
80
+ personId: z.ZodString;
81
+ role: z.ZodString;
82
+ conflicts: z.ZodArray<z.ZodString>;
83
+ }, z.core.$strict>;
84
+ export declare const HumanReviewRosterSchema: z.ZodObject<{
85
+ protocol: z.ZodLiteral<"https://spec.jinn.network/binary-judgment/reviewer-roster/v1">;
86
+ itemSha256: z.ZodString;
87
+ reviewers: z.ZodTuple<[z.ZodObject<{
88
+ evaluatorId: z.ZodString;
89
+ keyId: z.ZodString;
90
+ personId: z.ZodString;
91
+ role: z.ZodString;
92
+ conflicts: z.ZodArray<z.ZodString>;
93
+ }, z.core.$strict>, z.ZodObject<{
94
+ evaluatorId: z.ZodString;
95
+ keyId: z.ZodString;
96
+ personId: z.ZodString;
97
+ role: z.ZodString;
98
+ conflicts: z.ZodArray<z.ZodString>;
99
+ }, z.core.$strict>], null>;
100
+ attestedBy: z.ZodString;
101
+ attestorKeyId: z.ZodString;
102
+ attestorRole: z.ZodLiteral<"roster-attestor">;
103
+ attestedAt: z.ZodString;
104
+ }, z.core.$strict>;
105
+ export type HumanReviewRoster = z.infer<typeof HumanReviewRosterSchema>;
106
+ export declare const HumanReviewRevealReceiptSchema: z.ZodObject<{
107
+ protocol: z.ZodLiteral<"https://spec.jinn.network/binary-judgment/reveal-receipt/v1">;
108
+ draftId: z.ZodString;
109
+ itemSha256: z.ZodString;
110
+ truthFrozenAt: z.ZodString;
111
+ judgeExecutionState: z.ZodLiteral<"not-started">;
112
+ attestedBy: z.ZodString;
113
+ attestorKeyId: z.ZodString;
114
+ attestorRole: z.ZodLiteral<"truth-reveal-attestor">;
115
+ }, z.core.$strict>;
116
+ export type HumanReviewRevealReceipt = z.infer<typeof HumanReviewRevealReceiptSchema>;
117
+ /**
118
+ * `screening-reveal-receipt/v1` (spec §6.6): a bank-scoped sibling of `HumanReviewRevealReceiptSchema`
119
+ * above. Same ordering primitive, same attestor role, same `judgeExecutionState: "not-started"`
120
+ * gate — differing only in subject: the bank (`screeningTableSha256`), not an item (`itemSha256`).
121
+ * `AdmissionAuthorityRole` (`verify/src/admission/verification.ts`) is deliberately unchanged: this
122
+ * reuses `truth-reveal-attestor` rather than minting a new role.
123
+ */
124
+ export declare const ScreeningRevealReceiptSchema: z.ZodObject<{
125
+ protocol: z.ZodLiteral<"https://spec.jinn.network/binary-judgment/screening-reveal-receipt/v1">;
126
+ draftId: z.ZodString;
127
+ screeningTableSha256: z.ZodString;
128
+ truthFrozenAt: z.ZodString;
129
+ judgeExecutionState: z.ZodLiteral<"not-started">;
130
+ attestedBy: z.ZodString;
131
+ attestorKeyId: z.ZodString;
132
+ attestorRole: z.ZodLiteral<"truth-reveal-attestor">;
133
+ }, z.core.$strict>;
134
+ export type ScreeningRevealReceipt = z.infer<typeof ScreeningRevealReceiptSchema>;
135
+ /**
136
+ * One row of the `screening-table/v1` record (spec §6.3). `handVerdict` is present if and only if
137
+ * `handChecked === true`; both directions refuse. `handVerdict` deliberately does not reuse
138
+ * `BinaryJudgmentTruthLabelSchema` — the hand-check outcome space is confirm-or-exclude only, with
139
+ * no label corrections.
140
+ */
141
+ export declare const ScreeningRowSchema: z.ZodObject<{
142
+ itemSha256: z.ZodString;
143
+ intendedLabel: z.ZodEnum<{
144
+ CORRECT: "CORRECT";
145
+ WRONG: "WRONG";
146
+ }>;
147
+ screeningVerdict: z.ZodUnion<readonly [z.ZodEnum<{
148
+ CORRECT: "CORRECT";
149
+ WRONG: "WRONG";
150
+ }>, z.ZodLiteral<"indeterminate">]>;
151
+ handChecked: z.ZodBoolean;
152
+ handVerdict: z.ZodOptional<z.ZodEnum<{
153
+ confirm: "confirm";
154
+ exclude: "exclude";
155
+ }>>;
156
+ }, z.core.$strict>;
157
+ export type ScreeningRow = z.infer<typeof ScreeningRowSchema>;
158
+ /**
159
+ * `screening-table/v1` (spec §6.3): one signed record per bank. Every derived quantity (the
160
+ * flagged set, the sample, the exclusions, the agreement rate) is a *view* of this table, never a
161
+ * stored field that can disagree with it — those recomputations live in `screening-sample.ts` and
162
+ * its siblings, not here. `screeningModel` is deliberately absent: it is derivable from
163
+ * `screeningInstrumentSha256`, and a second copy is a second thing to drift. The table is signed
164
+ * once, over the whole record, on the existing DSSE signing path used by the other admission
165
+ * records (`sealRoleEvidence`), not the ledger's non-DSSE path.
166
+ */
167
+ export declare const ScreeningTableSchema: z.ZodObject<{
168
+ protocol: z.ZodLiteral<"https://spec.jinn.network/binary-judgment/screening-table/v1">;
169
+ draftId: z.ZodString;
170
+ screeningInstrumentSha256: z.ZodString;
171
+ sampleSeed: z.ZodString;
172
+ sampleSize: z.ZodNumber;
173
+ samplingScriptSha256: z.ZodString;
174
+ rawOutputsSha256: z.ZodString;
175
+ rows: z.ZodArray<z.ZodObject<{
176
+ itemSha256: z.ZodString;
177
+ intendedLabel: z.ZodEnum<{
178
+ CORRECT: "CORRECT";
179
+ WRONG: "WRONG";
180
+ }>;
181
+ screeningVerdict: z.ZodUnion<readonly [z.ZodEnum<{
182
+ CORRECT: "CORRECT";
183
+ WRONG: "WRONG";
184
+ }>, z.ZodLiteral<"indeterminate">]>;
185
+ handChecked: z.ZodBoolean;
186
+ handVerdict: z.ZodOptional<z.ZodEnum<{
187
+ confirm: "confirm";
188
+ exclude: "exclude";
189
+ }>>;
190
+ }, z.core.$strict>>;
191
+ sealedAt: z.ZodString;
192
+ }, z.core.$strict>;
193
+ export type ScreeningTable = z.infer<typeof ScreeningTableSchema>;
194
+ export declare const PROMPTED_SCREENING_PROFILE: "prompted-codex-screening/v1";
195
+ export declare const PROMPTED_SCREENING_LIMITATIONS: readonly ["prompt-compliance-not-machine-verified", "provider-execution-not-machine-verified", "transcript-provenance-not-machine-verified", "mutable-model-alias-weights-not-machine-verified"];
196
+ /** Closed, machine-checkable orchestration metadata. Prompt and transcript bytes stay opaque. */
197
+ export declare const PromptedScreeningProcedureV1Schema: z.ZodObject<{
198
+ protocol: z.ZodLiteral<"https://spec.jinn.network/binary-judgment/prompted-screening-procedure/v1">;
199
+ procedureId: z.ZodLiteral<"prompted-codex-screening/v1">;
200
+ coordinatorPromptSha256: z.ZodString;
201
+ coordinator: z.ZodObject<{
202
+ alias: z.ZodLiteral<"Sol">;
203
+ model: z.ZodLiteral<"gpt-5.6-sol">;
204
+ reasoningEffort: z.ZodLiteral<"high">;
205
+ mayOrchestrate: z.ZodLiteral<true>;
206
+ }, z.core.$strict>;
207
+ judgmentAgents: z.ZodTuple<[z.ZodObject<{
208
+ alias: z.ZodLiteral<"Luna">;
209
+ model: z.ZodLiteral<"gpt-5.6-luna">;
210
+ reasoningEffort: z.ZodLiteral<"medium" | "high">;
211
+ maxBatchSize: z.ZodLiteral<32>;
212
+ }, z.core.$strict>, z.ZodObject<{
213
+ alias: z.ZodLiteral<"Terra">;
214
+ model: z.ZodLiteral<"gpt-5.6-terra">;
215
+ reasoningEffort: z.ZodLiteral<"medium" | "high">;
216
+ maxBatchSize: z.ZodLiteral<16>;
217
+ }, z.core.$strict>, z.ZodObject<{
218
+ alias: z.ZodLiteral<"Sol">;
219
+ model: z.ZodLiteral<"gpt-5.6-sol">;
220
+ reasoningEffort: z.ZodLiteral<"medium" | "high">;
221
+ maxBatchSize: z.ZodLiteral<8>;
222
+ }, z.core.$strict>], null>;
223
+ toolPolicy: z.ZodObject<{
224
+ coordinator: z.ZodLiteral<"orchestration-only">;
225
+ judgmentAgents: z.ZodObject<{
226
+ web: z.ZodLiteral<false>;
227
+ shell: z.ZodLiteral<false>;
228
+ repository: z.ZodLiteral<false>;
229
+ search: z.ZodLiteral<false>;
230
+ }, z.core.$strict>;
231
+ }, z.core.$strict>;
232
+ output: z.ZodObject<{
233
+ alphabet: z.ZodTuple<[z.ZodLiteral<"CORRECT">, z.ZodLiteral<"WRONG">, z.ZodLiteral<"UNSURE">], null>;
234
+ invalidOutputDecision: z.ZodLiteral<"UNSURE">;
235
+ }, z.core.$strict>;
236
+ retry: z.ZodObject<{
237
+ maxRetries: z.ZodLiteral<1>;
238
+ onlyWhen: z.ZodLiteral<"infrastructure-failure-with-no-model-output">;
239
+ prompt: z.ZodLiteral<"identical">;
240
+ }, z.core.$strict>;
241
+ transcriptSha256: z.ZodString;
242
+ sealedAt: z.ZodString;
243
+ }, z.core.$strict>;
244
+ export type PromptedScreeningProcedureV1 = z.infer<typeof PromptedScreeningProcedureV1Schema>;
245
+ export declare const SCREENING_POOL_CANDIDATE_CLASSES: readonly ["correct", "specific-wrong", "vague-topical-wrong"];
246
+ export declare const SCREENING_POOL_STRATA: readonly ["category-1", "category-2", "category-3", "category-4"];
247
+ export declare const ScreeningPoolItemSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
248
+ itemSha256: z.ZodString;
249
+ intendedLabel: z.ZodEnum<{
250
+ CORRECT: "CORRECT";
251
+ WRONG: "WRONG";
252
+ }>;
253
+ candidateClass: z.ZodEnum<{
254
+ correct: "correct";
255
+ "specific-wrong": "specific-wrong";
256
+ "vague-topical-wrong": "vague-topical-wrong";
257
+ }>;
258
+ stratum: z.ZodEnum<{
259
+ "category-1": "category-1";
260
+ "category-2": "category-2";
261
+ "category-3": "category-3";
262
+ "category-4": "category-4";
263
+ }>;
264
+ poolPosition: z.ZodNumber;
265
+ slotId: z.ZodString;
266
+ poolKind: z.ZodLiteral<"main">;
267
+ }, z.core.$strict>, z.ZodObject<{
268
+ itemSha256: z.ZodString;
269
+ intendedLabel: z.ZodEnum<{
270
+ CORRECT: "CORRECT";
271
+ WRONG: "WRONG";
272
+ }>;
273
+ candidateClass: z.ZodEnum<{
274
+ correct: "correct";
275
+ "specific-wrong": "specific-wrong";
276
+ "vague-topical-wrong": "vague-topical-wrong";
277
+ }>;
278
+ stratum: z.ZodEnum<{
279
+ "category-1": "category-1";
280
+ "category-2": "category-2";
281
+ "category-3": "category-3";
282
+ "category-4": "category-4";
283
+ }>;
284
+ poolPosition: z.ZodNumber;
285
+ slotId: z.ZodString;
286
+ poolKind: z.ZodLiteral<"reserve">;
287
+ reserveOrder: z.ZodNumber;
288
+ }, z.core.$strict>], "poolKind">;
289
+ export type ScreeningPoolItem = z.infer<typeof ScreeningPoolItemSchema>;
290
+ /** The complete, ordered 240-main plus 424-reserve candidate universe. */
291
+ export declare const ScreeningPoolV1Schema: z.ZodObject<{
292
+ protocol: z.ZodLiteral<"https://spec.jinn.network/binary-judgment/screening-pool/v1">;
293
+ draftId: z.ZodString;
294
+ identityCommitmentSha256: z.ZodString;
295
+ items: z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
296
+ itemSha256: z.ZodString;
297
+ intendedLabel: z.ZodEnum<{
298
+ CORRECT: "CORRECT";
299
+ WRONG: "WRONG";
300
+ }>;
301
+ candidateClass: z.ZodEnum<{
302
+ correct: "correct";
303
+ "specific-wrong": "specific-wrong";
304
+ "vague-topical-wrong": "vague-topical-wrong";
305
+ }>;
306
+ stratum: z.ZodEnum<{
307
+ "category-1": "category-1";
308
+ "category-2": "category-2";
309
+ "category-3": "category-3";
310
+ "category-4": "category-4";
311
+ }>;
312
+ poolPosition: z.ZodNumber;
313
+ slotId: z.ZodString;
314
+ poolKind: z.ZodLiteral<"main">;
315
+ }, z.core.$strict>, z.ZodObject<{
316
+ itemSha256: z.ZodString;
317
+ intendedLabel: z.ZodEnum<{
318
+ CORRECT: "CORRECT";
319
+ WRONG: "WRONG";
320
+ }>;
321
+ candidateClass: z.ZodEnum<{
322
+ correct: "correct";
323
+ "specific-wrong": "specific-wrong";
324
+ "vague-topical-wrong": "vague-topical-wrong";
325
+ }>;
326
+ stratum: z.ZodEnum<{
327
+ "category-1": "category-1";
328
+ "category-2": "category-2";
329
+ "category-3": "category-3";
330
+ "category-4": "category-4";
331
+ }>;
332
+ poolPosition: z.ZodNumber;
333
+ slotId: z.ZodString;
334
+ poolKind: z.ZodLiteral<"reserve">;
335
+ reserveOrder: z.ZodNumber;
336
+ }, z.core.$strict>], "poolKind">>;
337
+ sealedAt: z.ZodString;
338
+ }, z.core.$strict>;
339
+ export type ScreeningPoolV1 = z.infer<typeof ScreeningPoolV1Schema>;
340
+ export declare const ScreeningSampleCommitmentV1Schema: z.ZodObject<{
341
+ protocol: z.ZodLiteral<"https://spec.jinn.network/binary-judgment/screening-sample-commitment/v1">;
342
+ draftId: z.ZodString;
343
+ poolSha256: z.ZodString;
344
+ poolIdentityCommitmentSha256: z.ZodString;
345
+ samplingProcedure: z.ZodLiteral<"screening-sample/1">;
346
+ sampleSeed: z.ZodString;
347
+ sampleSize: z.ZodLiteral<72>;
348
+ sampleItemSha256s: z.ZodArray<z.ZodString>;
349
+ committedAt: z.ZodString;
350
+ }, z.core.$strict>;
351
+ export type ScreeningSampleCommitmentV1 = z.infer<typeof ScreeningSampleCommitmentV1Schema>;
352
+ export declare const PromptedScreeningRowV2Schema: z.ZodObject<{
353
+ itemSha256: z.ZodString;
354
+ intendedLabel: z.ZodEnum<{
355
+ CORRECT: "CORRECT";
356
+ WRONG: "WRONG";
357
+ }>;
358
+ screeningVerdict: z.ZodEnum<{
359
+ CORRECT: "CORRECT";
360
+ WRONG: "WRONG";
361
+ UNSURE: "UNSURE";
362
+ }>;
363
+ terraReviewVerdict: z.ZodOptional<z.ZodEnum<{
364
+ CORRECT: "CORRECT";
365
+ WRONG: "WRONG";
366
+ UNSURE: "UNSURE";
367
+ }>>;
368
+ solReviewVerdict: z.ZodOptional<z.ZodEnum<{
369
+ CORRECT: "CORRECT";
370
+ WRONG: "WRONG";
371
+ UNSURE: "UNSURE";
372
+ }>>;
373
+ ritsuDecision: z.ZodDiscriminatedUnion<[z.ZodObject<{
374
+ checked: z.ZodLiteral<false>;
375
+ }, z.core.$strict>, z.ZodObject<{
376
+ checked: z.ZodLiteral<true>;
377
+ verdict: z.ZodEnum<{
378
+ confirm: "confirm";
379
+ exclude: "exclude";
380
+ }>;
381
+ decidedAt: z.ZodString;
382
+ }, z.core.$strict>], "checked">;
383
+ }, z.core.$strict>;
384
+ export type PromptedScreeningRowV2 = z.infer<typeof PromptedScreeningRowV2Schema>;
385
+ /** Signed authority decision table for the prompted Codex procedure. */
386
+ export declare const ScreeningTableV2Schema: z.ZodObject<{
387
+ protocol: z.ZodLiteral<"https://spec.jinn.network/binary-judgment/screening-table/v2">;
388
+ draftId: z.ZodString;
389
+ procedureSha256: z.ZodString;
390
+ coordinatorPromptSha256: z.ZodString;
391
+ poolSha256: z.ZodString;
392
+ sampleCommitmentSha256: z.ZodString;
393
+ samplingScriptSha256: z.ZodString;
394
+ transcriptSha256: z.ZodString;
395
+ operator: z.ZodLiteral<"Ritsu">;
396
+ rows: z.ZodArray<z.ZodObject<{
397
+ itemSha256: z.ZodString;
398
+ intendedLabel: z.ZodEnum<{
399
+ CORRECT: "CORRECT";
400
+ WRONG: "WRONG";
401
+ }>;
402
+ screeningVerdict: z.ZodEnum<{
403
+ CORRECT: "CORRECT";
404
+ WRONG: "WRONG";
405
+ UNSURE: "UNSURE";
406
+ }>;
407
+ terraReviewVerdict: z.ZodOptional<z.ZodEnum<{
408
+ CORRECT: "CORRECT";
409
+ WRONG: "WRONG";
410
+ UNSURE: "UNSURE";
411
+ }>>;
412
+ solReviewVerdict: z.ZodOptional<z.ZodEnum<{
413
+ CORRECT: "CORRECT";
414
+ WRONG: "WRONG";
415
+ UNSURE: "UNSURE";
416
+ }>>;
417
+ ritsuDecision: z.ZodDiscriminatedUnion<[z.ZodObject<{
418
+ checked: z.ZodLiteral<false>;
419
+ }, z.core.$strict>, z.ZodObject<{
420
+ checked: z.ZodLiteral<true>;
421
+ verdict: z.ZodEnum<{
422
+ confirm: "confirm";
423
+ exclude: "exclude";
424
+ }>;
425
+ decidedAt: z.ZodString;
426
+ }, z.core.$strict>], "checked">;
427
+ }, z.core.$strict>>;
428
+ sealedAt: z.ZodString;
429
+ }, z.core.$strict>;
430
+ export type ScreeningTableV2 = z.infer<typeof ScreeningTableV2Schema>;
431
+ export declare const HumanReviewReplacementLedgerEntrySchema: z.ZodObject<{
432
+ excludedItemSha256: z.ZodString;
433
+ replacementItemSha256: z.ZodString;
434
+ candidateClass: z.ZodString;
435
+ stratum: z.ZodString;
436
+ excludedPoolPosition: z.ZodNumber;
437
+ replacementPoolPosition: z.ZodNumber;
438
+ reason: z.ZodEnum<{
439
+ "review-disagreement": "review-disagreement";
440
+ "review-indeterminate": "review-indeterminate";
441
+ "review-incomplete": "review-incomplete";
442
+ "screening-disagreement": "screening-disagreement";
443
+ "screening-indeterminate": "screening-indeterminate";
444
+ "screening-hand-excluded": "screening-hand-excluded";
445
+ }>;
446
+ reviewVerdictSha256s: z.ZodOptional<z.ZodTuple<[z.ZodString, z.ZodString], null>>;
447
+ visibilityReceiptSha256s: z.ZodOptional<z.ZodTuple<[z.ZodString, z.ZodString], null>>;
448
+ reviewerRosterSha256: z.ZodOptional<z.ZodString>;
449
+ revealReceiptSha256: z.ZodOptional<z.ZodString>;
450
+ }, z.core.$strict>;
451
+ export declare const HumanReviewReplacementLedgerSchema: z.ZodObject<{
452
+ protocol: z.ZodLiteral<"https://spec.jinn.network/binary-judgment/replacement-ledger/v1">;
453
+ draftId: z.ZodString;
454
+ entries: z.ZodArray<z.ZodObject<{
455
+ excludedItemSha256: z.ZodString;
456
+ replacementItemSha256: z.ZodString;
457
+ candidateClass: z.ZodString;
458
+ stratum: z.ZodString;
459
+ excludedPoolPosition: z.ZodNumber;
460
+ replacementPoolPosition: z.ZodNumber;
461
+ reason: z.ZodEnum<{
462
+ "review-disagreement": "review-disagreement";
463
+ "review-indeterminate": "review-indeterminate";
464
+ "review-incomplete": "review-incomplete";
465
+ "screening-disagreement": "screening-disagreement";
466
+ "screening-indeterminate": "screening-indeterminate";
467
+ "screening-hand-excluded": "screening-hand-excluded";
468
+ }>;
469
+ reviewVerdictSha256s: z.ZodOptional<z.ZodTuple<[z.ZodString, z.ZodString], null>>;
470
+ visibilityReceiptSha256s: z.ZodOptional<z.ZodTuple<[z.ZodString, z.ZodString], null>>;
471
+ reviewerRosterSha256: z.ZodOptional<z.ZodString>;
472
+ revealReceiptSha256: z.ZodOptional<z.ZodString>;
473
+ }, z.core.$strict>>;
474
+ sealedAt: z.ZodString;
475
+ }, z.core.$strict>;
476
+ export type HumanReviewReplacementLedger = z.infer<typeof HumanReviewReplacementLedgerSchema>;
477
+ export declare const HumanReviewOperatorAssertionSchema: z.ZodObject<{
478
+ protocol: z.ZodLiteral<"https://spec.jinn.network/binary-judgment/operator-truth-assertion/v1">;
479
+ itemSha256: z.ZodString;
480
+ truthLabel: z.ZodEnum<{
481
+ CORRECT: "CORRECT";
482
+ WRONG: "WRONG";
483
+ }>;
484
+ assertedBy: z.ZodString;
485
+ assertedAt: z.ZodString;
486
+ attestorKeyId: z.ZodString;
487
+ attestorRole: z.ZodLiteral<"operator-truth-attestor">;
488
+ limitation: z.ZodLiteral<"operator-only-not-publication-grade">;
489
+ }, z.core.$strict>;
490
+ export type HumanReviewOperatorAssertion = z.infer<typeof HumanReviewOperatorAssertionSchema>;
491
+ export declare const BinaryJudgmentAdmissionManifestSchema: z.ZodObject<{
492
+ protocol: z.ZodLiteral<"https://spec.jinn.network/binary-judgment/admission-manifest/v1">;
493
+ draftId: z.ZodString;
494
+ truthAdmission: z.ZodEnum<{
495
+ "two-human-unanimous": "two-human-unanimous";
496
+ "operator-only": "operator-only";
497
+ "screened-operator-sampled": "screened-operator-sampled";
498
+ }>;
499
+ labelResolutionSha256s: z.ZodArray<z.ZodString>;
500
+ analysisContextSha256s: z.ZodArray<z.ZodString>;
501
+ excludedItemSha256s: z.ZodArray<z.ZodString>;
502
+ replacementLedgerSha256: z.ZodString;
503
+ screeningTableSha256: z.ZodOptional<z.ZodString>;
504
+ admittedAt: z.ZodString;
505
+ }, z.core.$strict>;
506
+ export type BinaryJudgmentAdmissionManifest = z.infer<typeof BinaryJudgmentAdmissionManifestSchema>;