@claudexor/schema 1.0.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 (175) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +16 -0
  3. package/dist/agent-capabilities.d.ts +366 -0
  4. package/dist/agent-capabilities.d.ts.map +1 -0
  5. package/dist/agent-capabilities.js +125 -0
  6. package/dist/agent-capabilities.js.map +1 -0
  7. package/dist/apply-eligibility.d.ts +76 -0
  8. package/dist/apply-eligibility.d.ts.map +1 -0
  9. package/dist/apply-eligibility.js +37 -0
  10. package/dist/apply-eligibility.js.map +1 -0
  11. package/dist/attachment.d.ts +69 -0
  12. package/dist/attachment.d.ts.map +1 -0
  13. package/dist/attachment.js +54 -0
  14. package/dist/attachment.js.map +1 -0
  15. package/dist/budget.d.ts +75 -0
  16. package/dist/budget.d.ts.map +1 -0
  17. package/dist/budget.js +54 -0
  18. package/dist/budget.js.map +1 -0
  19. package/dist/config.d.ts +743 -0
  20. package/dist/config.d.ts.map +1 -0
  21. package/dist/config.js +194 -0
  22. package/dist/config.js.map +1 -0
  23. package/dist/context.d.ts +222 -0
  24. package/dist/context.d.ts.map +1 -0
  25. package/dist/context.js +70 -0
  26. package/dist/context.js.map +1 -0
  27. package/dist/control-run-detail.d.ts +1686 -0
  28. package/dist/control-run-detail.d.ts.map +1 -0
  29. package/dist/control-run-detail.js +107 -0
  30. package/dist/control-run-detail.js.map +1 -0
  31. package/dist/control-trust.d.ts +79 -0
  32. package/dist/control-trust.d.ts.map +1 -0
  33. package/dist/control-trust.js +39 -0
  34. package/dist/control-trust.js.map +1 -0
  35. package/dist/control.d.ts +4226 -0
  36. package/dist/control.d.ts.map +1 -0
  37. package/dist/control.js +1022 -0
  38. package/dist/control.js.map +1 -0
  39. package/dist/decision.d.ts +208 -0
  40. package/dist/decision.d.ts.map +1 -0
  41. package/dist/decision.js +98 -0
  42. package/dist/decision.js.map +1 -0
  43. package/dist/events.d.ts +70 -0
  44. package/dist/events.d.ts.map +1 -0
  45. package/dist/events.js +105 -0
  46. package/dist/events.js.map +1 -0
  47. package/dist/gate.d.ts +37 -0
  48. package/dist/gate.d.ts.map +1 -0
  49. package/dist/gate.js +20 -0
  50. package/dist/gate.js.map +1 -0
  51. package/dist/harness.d.ts +1418 -0
  52. package/dist/harness.d.ts.map +1 -0
  53. package/dist/harness.js +552 -0
  54. package/dist/harness.js.map +1 -0
  55. package/dist/index.d.ts +32 -0
  56. package/dist/index.d.ts.map +1 -0
  57. package/dist/index.js +32 -0
  58. package/dist/index.js.map +1 -0
  59. package/dist/orchestrate.d.ts +428 -0
  60. package/dist/orchestrate.d.ts.map +1 -0
  61. package/dist/orchestrate.js +246 -0
  62. package/dist/orchestrate.js.map +1 -0
  63. package/dist/primitives.d.ts +71 -0
  64. package/dist/primitives.d.ts.map +1 -0
  65. package/dist/primitives.js +114 -0
  66. package/dist/primitives.js.map +1 -0
  67. package/dist/review.d.ts +220 -0
  68. package/dist/review.d.ts.map +1 -0
  69. package/dist/review.js +91 -0
  70. package/dist/review.js.map +1 -0
  71. package/dist/route.d.ts +67 -0
  72. package/dist/route.d.ts.map +1 -0
  73. package/dist/route.js +33 -0
  74. package/dist/route.js.map +1 -0
  75. package/dist/spec.d.ts +561 -0
  76. package/dist/spec.d.ts.map +1 -0
  77. package/dist/spec.js +133 -0
  78. package/dist/spec.js.map +1 -0
  79. package/dist/surface-run-controls.d.ts +14 -0
  80. package/dist/surface-run-controls.d.ts.map +1 -0
  81. package/dist/surface-run-controls.js +142 -0
  82. package/dist/surface-run-controls.js.map +1 -0
  83. package/dist/task.d.ts +565 -0
  84. package/dist/task.d.ts.map +1 -0
  85. package/dist/task.js +186 -0
  86. package/dist/task.js.map +1 -0
  87. package/dist/telemetry.d.ts +660 -0
  88. package/dist/telemetry.d.ts.map +1 -0
  89. package/dist/telemetry.js +140 -0
  90. package/dist/telemetry.js.map +1 -0
  91. package/dist/thread.d.ts +348 -0
  92. package/dist/thread.d.ts.map +1 -0
  93. package/dist/thread.js +194 -0
  94. package/dist/thread.js.map +1 -0
  95. package/dist/workproduct.d.ts +31 -0
  96. package/dist/workproduct.d.ts.map +1 -0
  97. package/dist/workproduct.js +25 -0
  98. package/dist/workproduct.js.map +1 -0
  99. package/dist/workspace.d.ts +53 -0
  100. package/dist/workspace.d.ts.map +1 -0
  101. package/dist/workspace.js +30 -0
  102. package/dist/workspace.js.map +1 -0
  103. package/generated/AgentCapabilityCatalog.schema.json +389 -0
  104. package/generated/ApplyEligibility.schema.json +44 -0
  105. package/generated/BudgetLease.schema.json +95 -0
  106. package/generated/BudgetObservation.schema.json +76 -0
  107. package/generated/ConformanceReport.schema.json +107 -0
  108. package/generated/ContextPack.schema.json +186 -0
  109. package/generated/ControlApplyCheckRequest.schema.json +54 -0
  110. package/generated/ControlApplyRequest.schema.json +74 -0
  111. package/generated/ControlHarnessListResponse.schema.json +498 -0
  112. package/generated/ControlHarnessModelsResponse.schema.json +78 -0
  113. package/generated/ControlHarnessSettingsPatch.schema.json +130 -0
  114. package/generated/ControlInteractionAnswerRequest.schema.json +48 -0
  115. package/generated/ControlInteractionAnswerResponse.schema.json +35 -0
  116. package/generated/ControlPendingInteraction.schema.json +129 -0
  117. package/generated/ControlQueuedRunInfo.schema.json +44 -0
  118. package/generated/ControlRunControlRequest.schema.json +61 -0
  119. package/generated/ControlRunControlResponse.schema.json +40 -0
  120. package/generated/ControlRunDecisionRequest.schema.json +98 -0
  121. package/generated/ControlRunDecisionResponse.schema.json +40 -0
  122. package/generated/ControlRunDetail.schema.json +1925 -0
  123. package/generated/ControlRunStartInfo.schema.json +33 -0
  124. package/generated/ControlRunStartRequest.schema.json +429 -0
  125. package/generated/ControlRunSummary.schema.json +666 -0
  126. package/generated/ControlSecretListResponse.schema.json +57 -0
  127. package/generated/ControlSettingsSnapshot.schema.json +281 -0
  128. package/generated/ControlSettingsUpdateRequest.schema.json +212 -0
  129. package/generated/ControlSetupJob.schema.json +148 -0
  130. package/generated/ControlSetupJobConfirmRequest.schema.json +18 -0
  131. package/generated/ControlSetupJobCreateRequest.schema.json +38 -0
  132. package/generated/ControlSetupJobEvent.schema.json +58 -0
  133. package/generated/ControlSetupJobListResponse.schema.json +162 -0
  134. package/generated/ControlSpecFreezeRequest.schema.json +83 -0
  135. package/generated/ControlSpecQuestionsRequest.schema.json +80 -0
  136. package/generated/ControlThread.schema.json +129 -0
  137. package/generated/ControlThreadApplyRequest.schema.json +32 -0
  138. package/generated/ControlThreadApplyResponse.schema.json +47 -0
  139. package/generated/ControlThreadCreateRequest.schema.json +107 -0
  140. package/generated/ControlThreadDetail.schema.json +515 -0
  141. package/generated/ControlThreadListResponse.schema.json +141 -0
  142. package/generated/ControlThreadUpdateRequest.schema.json +46 -0
  143. package/generated/ControlTrustListResponse.schema.json +59 -0
  144. package/generated/ControlTrustState.schema.json +45 -0
  145. package/generated/ControlTrustUpdateRequest.schema.json +26 -0
  146. package/generated/DecisionRecord.schema.json +232 -0
  147. package/generated/GateResult.schema.json +81 -0
  148. package/generated/GlobalConfig.schema.json +313 -0
  149. package/generated/HarnessEvent.schema.json +360 -0
  150. package/generated/HarnessManifest.schema.json +350 -0
  151. package/generated/HarnessModel.schema.json +41 -0
  152. package/generated/HarnessStatusDto.schema.json +486 -0
  153. package/generated/McpRunToolResult.schema.json +91 -0
  154. package/generated/OrchestrateContract.schema.json +93 -0
  155. package/generated/OrchestratePlan.schema.json +244 -0
  156. package/generated/OrchestratePlanProgress.schema.json +103 -0
  157. package/generated/ProjectConfig.schema.json +95 -0
  158. package/generated/ReviewFinding.schema.json +226 -0
  159. package/generated/RouteFallbackPayload.schema.json +79 -0
  160. package/generated/RouteProof.schema.json +111 -0
  161. package/generated/RunControl.schema.json +51 -0
  162. package/generated/RunEvent.schema.json +103 -0
  163. package/generated/RunFailure.schema.json +98 -0
  164. package/generated/RunTelemetry.schema.json +433 -0
  165. package/generated/SecretMetadata.schema.json +34 -0
  166. package/generated/Session.schema.json +80 -0
  167. package/generated/SessionReboundLineage.schema.json +73 -0
  168. package/generated/SpecPack.schema.json +372 -0
  169. package/generated/TaskContract.schema.json +501 -0
  170. package/generated/Thread.schema.json +176 -0
  171. package/generated/ThreadTurn.schema.json +172 -0
  172. package/generated/TrustConfig.schema.json +44 -0
  173. package/generated/WorkProduct.schema.json +60 -0
  174. package/generated/WorkspaceEnvelope.schema.json +94 -0
  175. package/package.json +43 -0
@@ -0,0 +1,220 @@
1
+ import { z } from "zod";
2
+ export declare const Severity: z.ZodEnum<["BLOCK", "FIX_FIRST", "WARN", "NIT", "OUT_OF_SCOPE", "INSUFFICIENT_EVIDENCE", "NEEDS_HUMAN"]>;
3
+ export type Severity = z.infer<typeof Severity>;
4
+ export declare const FindingCategory: z.ZodEnum<["correctness", "regression", "security", "performance", "maintainability", "test_gap", "spec_gap", "deploy", "architecture", "ux"]>;
5
+ export type FindingCategory = z.infer<typeof FindingCategory>;
6
+ export declare const FindingStatus: z.ZodEnum<["proposed", "accepted", "rebutted", "fixed", "accepted_risk", "duplicate", "stale", "out_of_scope", "insufficient_evidence"]>;
7
+ export type FindingStatus = z.infer<typeof FindingStatus>;
8
+ export declare const FileEvidence: z.ZodObject<{
9
+ path: z.ZodString;
10
+ lines: z.ZodDefault<z.ZodNullable<z.ZodString>>;
11
+ }, "strip", z.ZodTypeAny, {
12
+ path: string;
13
+ lines: string | null;
14
+ }, {
15
+ path: string;
16
+ lines?: string | null | undefined;
17
+ }>;
18
+ export type FileEvidence = z.infer<typeof FileEvidence>;
19
+ export declare const CommandEvidence: z.ZodObject<{
20
+ command: z.ZodString;
21
+ }, "strip", z.ZodTypeAny, {
22
+ command: string;
23
+ }, {
24
+ command: string;
25
+ }>;
26
+ export type CommandEvidence = z.infer<typeof CommandEvidence>;
27
+ export declare const FindingEvidence: z.ZodObject<{
28
+ files: z.ZodDefault<z.ZodArray<z.ZodObject<{
29
+ path: z.ZodString;
30
+ lines: z.ZodDefault<z.ZodNullable<z.ZodString>>;
31
+ }, "strip", z.ZodTypeAny, {
32
+ path: string;
33
+ lines: string | null;
34
+ }, {
35
+ path: string;
36
+ lines?: string | null | undefined;
37
+ }>, "many">>;
38
+ diff_hunks: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
39
+ commands: z.ZodDefault<z.ZodArray<z.ZodObject<{
40
+ command: z.ZodString;
41
+ }, "strip", z.ZodTypeAny, {
42
+ command: string;
43
+ }, {
44
+ command: string;
45
+ }>, "many">>;
46
+ logs: z.ZodDefault<z.ZodArray<z.ZodObject<{
47
+ path: z.ZodString;
48
+ }, "strip", z.ZodTypeAny, {
49
+ path: string;
50
+ }, {
51
+ path: string;
52
+ }>, "many">>;
53
+ }, "strip", z.ZodTypeAny, {
54
+ commands: {
55
+ command: string;
56
+ }[];
57
+ files: {
58
+ path: string;
59
+ lines: string | null;
60
+ }[];
61
+ diff_hunks: string[];
62
+ logs: {
63
+ path: string;
64
+ }[];
65
+ }, {
66
+ commands?: {
67
+ command: string;
68
+ }[] | undefined;
69
+ files?: {
70
+ path: string;
71
+ lines?: string | null | undefined;
72
+ }[] | undefined;
73
+ diff_hunks?: string[] | undefined;
74
+ logs?: {
75
+ path: string;
76
+ }[] | undefined;
77
+ }>;
78
+ export type FindingEvidence = z.infer<typeof FindingEvidence>;
79
+ export declare const ReviewFinding: z.ZodObject<{
80
+ id: z.ZodString;
81
+ severity: z.ZodEnum<["BLOCK", "FIX_FIRST", "WARN", "NIT", "OUT_OF_SCOPE", "INSUFFICIENT_EVIDENCE", "NEEDS_HUMAN"]>;
82
+ category: z.ZodEnum<["correctness", "regression", "security", "performance", "maintainability", "test_gap", "spec_gap", "deploy", "architecture", "ux"]>;
83
+ claim: z.ZodString;
84
+ linked_acceptance_criteria: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
85
+ evidence: z.ZodDefault<z.ZodObject<{
86
+ files: z.ZodDefault<z.ZodArray<z.ZodObject<{
87
+ path: z.ZodString;
88
+ lines: z.ZodDefault<z.ZodNullable<z.ZodString>>;
89
+ }, "strip", z.ZodTypeAny, {
90
+ path: string;
91
+ lines: string | null;
92
+ }, {
93
+ path: string;
94
+ lines?: string | null | undefined;
95
+ }>, "many">>;
96
+ diff_hunks: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
97
+ commands: z.ZodDefault<z.ZodArray<z.ZodObject<{
98
+ command: z.ZodString;
99
+ }, "strip", z.ZodTypeAny, {
100
+ command: string;
101
+ }, {
102
+ command: string;
103
+ }>, "many">>;
104
+ logs: z.ZodDefault<z.ZodArray<z.ZodObject<{
105
+ path: z.ZodString;
106
+ }, "strip", z.ZodTypeAny, {
107
+ path: string;
108
+ }, {
109
+ path: string;
110
+ }>, "many">>;
111
+ }, "strip", z.ZodTypeAny, {
112
+ commands: {
113
+ command: string;
114
+ }[];
115
+ files: {
116
+ path: string;
117
+ lines: string | null;
118
+ }[];
119
+ diff_hunks: string[];
120
+ logs: {
121
+ path: string;
122
+ }[];
123
+ }, {
124
+ commands?: {
125
+ command: string;
126
+ }[] | undefined;
127
+ files?: {
128
+ path: string;
129
+ lines?: string | null | undefined;
130
+ }[] | undefined;
131
+ diff_hunks?: string[] | undefined;
132
+ logs?: {
133
+ path: string;
134
+ }[] | undefined;
135
+ }>>;
136
+ proposed_fix: z.ZodDefault<z.ZodNullable<z.ZodString>>;
137
+ reviewer: z.ZodObject<{
138
+ harness_id: z.ZodString;
139
+ requested_model: z.ZodDefault<z.ZodNullable<z.ZodString>>;
140
+ requested_effort: z.ZodDefault<z.ZodNullable<z.ZodString>>;
141
+ observed_model: z.ZodDefault<z.ZodNullable<z.ZodString>>;
142
+ route_proof_status: z.ZodDefault<z.ZodEnum<["verified", "accepted_model_arg", "unverified", "same_model_fallback"]>>;
143
+ }, "strip", z.ZodTypeAny, {
144
+ harness_id: string;
145
+ observed_model: string | null;
146
+ requested_model: string | null;
147
+ requested_effort: string | null;
148
+ route_proof_status: "verified" | "accepted_model_arg" | "unverified" | "same_model_fallback";
149
+ }, {
150
+ harness_id: string;
151
+ observed_model?: string | null | undefined;
152
+ requested_model?: string | null | undefined;
153
+ requested_effort?: string | null | undefined;
154
+ route_proof_status?: "verified" | "accepted_model_arg" | "unverified" | "same_model_fallback" | undefined;
155
+ }>;
156
+ status: z.ZodDefault<z.ZodEnum<["proposed", "accepted", "rebutted", "fixed", "accepted_risk", "duplicate", "stale", "out_of_scope", "insufficient_evidence"]>>;
157
+ revalidation_note: z.ZodOptional<z.ZodString>;
158
+ }, "strip", z.ZodTypeAny, {
159
+ status: "stale" | "proposed" | "accepted" | "rebutted" | "fixed" | "accepted_risk" | "duplicate" | "out_of_scope" | "insufficient_evidence";
160
+ id: string;
161
+ severity: "BLOCK" | "FIX_FIRST" | "WARN" | "NIT" | "OUT_OF_SCOPE" | "INSUFFICIENT_EVIDENCE" | "NEEDS_HUMAN";
162
+ category: "correctness" | "regression" | "security" | "performance" | "maintainability" | "test_gap" | "spec_gap" | "deploy" | "architecture" | "ux";
163
+ claim: string;
164
+ linked_acceptance_criteria: string[];
165
+ evidence: {
166
+ commands: {
167
+ command: string;
168
+ }[];
169
+ files: {
170
+ path: string;
171
+ lines: string | null;
172
+ }[];
173
+ diff_hunks: string[];
174
+ logs: {
175
+ path: string;
176
+ }[];
177
+ };
178
+ proposed_fix: string | null;
179
+ reviewer: {
180
+ harness_id: string;
181
+ observed_model: string | null;
182
+ requested_model: string | null;
183
+ requested_effort: string | null;
184
+ route_proof_status: "verified" | "accepted_model_arg" | "unverified" | "same_model_fallback";
185
+ };
186
+ revalidation_note?: string | undefined;
187
+ }, {
188
+ id: string;
189
+ severity: "BLOCK" | "FIX_FIRST" | "WARN" | "NIT" | "OUT_OF_SCOPE" | "INSUFFICIENT_EVIDENCE" | "NEEDS_HUMAN";
190
+ category: "correctness" | "regression" | "security" | "performance" | "maintainability" | "test_gap" | "spec_gap" | "deploy" | "architecture" | "ux";
191
+ claim: string;
192
+ reviewer: {
193
+ harness_id: string;
194
+ observed_model?: string | null | undefined;
195
+ requested_model?: string | null | undefined;
196
+ requested_effort?: string | null | undefined;
197
+ route_proof_status?: "verified" | "accepted_model_arg" | "unverified" | "same_model_fallback" | undefined;
198
+ };
199
+ status?: "stale" | "proposed" | "accepted" | "rebutted" | "fixed" | "accepted_risk" | "duplicate" | "out_of_scope" | "insufficient_evidence" | undefined;
200
+ linked_acceptance_criteria?: string[] | undefined;
201
+ evidence?: {
202
+ commands?: {
203
+ command: string;
204
+ }[] | undefined;
205
+ files?: {
206
+ path: string;
207
+ lines?: string | null | undefined;
208
+ }[] | undefined;
209
+ diff_hunks?: string[] | undefined;
210
+ logs?: {
211
+ path: string;
212
+ }[] | undefined;
213
+ } | undefined;
214
+ proposed_fix?: string | null | undefined;
215
+ revalidation_note?: string | undefined;
216
+ }>;
217
+ export type ReviewFinding = z.infer<typeof ReviewFinding>;
218
+ /** Whether a finding can block convergence given its status + evidence. */
219
+ export declare function isBlocking(f: Pick<ReviewFinding, "severity" | "status" | "evidence">): boolean;
220
+ //# sourceMappingURL=review.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"review.d.ts","sourceRoot":"","sources":["../src/review.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,eAAO,MAAM,QAAQ,0GAIlB,CAAC;AACJ,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,QAAQ,CAAC,CAAC;AAEhD,eAAO,MAAM,eAAe,gJAa+B,CAAC;AAC5D,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AAE9D,eAAO,MAAM,aAAa,0IAcvB,CAAC;AACJ,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,CAAC;AAE1D,eAAO,MAAM,YAAY;;;;;;;;;EAKyB,CAAC;AACnD,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC;AAExD,eAAO,MAAM,eAAe;;;;;;EAIyB,CAAC;AACtD,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AAE9D,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAOuD,CAAC;AACpF,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AAE9D,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAqBuD,CAAC;AAClF,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,CAAC;AAE1D,2EAA2E;AAC3E,wBAAgB,UAAU,CAAC,CAAC,EAAE,IAAI,CAAC,aAAa,EAAE,UAAU,GAAG,QAAQ,GAAG,UAAU,CAAC,GAAG,OAAO,CAY9F"}
package/dist/review.js ADDED
@@ -0,0 +1,91 @@
1
+ import { z } from "zod";
2
+ import { Id } from "./primitives.js";
3
+ import { RouteProofStatus } from "./route.js";
4
+ export const Severity = z
5
+ .enum(["BLOCK", "FIX_FIRST", "WARN", "NIT", "OUT_OF_SCOPE", "INSUFFICIENT_EVIDENCE", "NEEDS_HUMAN"])
6
+ .describe("Reviewer-assigned severity of a finding: BLOCK and FIX_FIRST can block convergence when accepted with evidence, WARN/NIT are advisory, OUT_OF_SCOPE and INSUFFICIENT_EVIDENCE are triage verdicts, NEEDS_HUMAN escalates to a human decision.");
7
+ export const FindingCategory = z
8
+ .enum([
9
+ "correctness",
10
+ "regression",
11
+ "security",
12
+ "performance",
13
+ "maintainability",
14
+ "test_gap",
15
+ "spec_gap",
16
+ "deploy",
17
+ "architecture",
18
+ "ux",
19
+ ])
20
+ .describe("Subject-matter category of a review finding.");
21
+ export const FindingStatus = z
22
+ .enum([
23
+ "proposed",
24
+ "accepted",
25
+ "rebutted",
26
+ "fixed",
27
+ "accepted_risk",
28
+ "duplicate",
29
+ "stale",
30
+ "out_of_scope",
31
+ "insufficient_evidence",
32
+ ])
33
+ .describe("Lifecycle status of a finding, from proposed through accepted/rebutted/fixed to terminal triage states (accepted_risk, duplicate, stale, out_of_scope, insufficient_evidence).");
34
+ export const FileEvidence = z
35
+ .object({
36
+ path: z.string().describe("Repo-relative file path."),
37
+ lines: z.string().nullable().default(null).describe('Line range in the file (e.g. "10-42"); null when the whole file is cited.'),
38
+ })
39
+ .describe("File citation supporting a finding.");
40
+ export const CommandEvidence = z
41
+ .object({
42
+ command: z.string().describe("Command whose output supports the finding."),
43
+ })
44
+ .describe("Command citation supporting a finding.");
45
+ export const FindingEvidence = z
46
+ .object({
47
+ files: z.array(FileEvidence).default([]).describe("File citations."),
48
+ diff_hunks: z.array(z.string()).default([]).describe("Diff hunks quoted as evidence."),
49
+ commands: z.array(CommandEvidence).default([]).describe("Commands whose output supports the finding."),
50
+ logs: z.array(z.object({ path: z.string().describe("Log file path.") })).default([]).describe("Log files cited as evidence."),
51
+ })
52
+ .describe("Evidence backing a finding; a finding without evidence cannot block.");
53
+ export const ReviewFinding = z
54
+ .object({
55
+ id: Id.describe("Finding id."),
56
+ severity: Severity,
57
+ category: FindingCategory,
58
+ claim: z.string().describe("The reviewer's claim, stated concretely."),
59
+ linked_acceptance_criteria: z.array(Id).default([]).describe("Ids of acceptance criteria this finding relates to."),
60
+ evidence: FindingEvidence.default({}),
61
+ proposed_fix: z.string().nullable().default(null).describe("Reviewer-proposed fix; null when none was offered."),
62
+ reviewer: z
63
+ .object({
64
+ harness_id: Id.describe("Harness that produced the review."),
65
+ requested_model: z.string().nullable().default(null).describe("Model requested for the reviewer route."),
66
+ requested_effort: z.string().nullable().default(null).describe("Reasoning effort requested for the reviewer route."),
67
+ observed_model: z.string().nullable().default(null).describe("Model the harness actually reported using."),
68
+ route_proof_status: RouteProofStatus.default("unverified"),
69
+ })
70
+ .describe("Who reviewed: the harness/model route and its verification status."),
71
+ status: FindingStatus.default("proposed"),
72
+ revalidation_note: z.string().optional().describe("Note recorded when the finding was revalidated against a changed tree."),
73
+ })
74
+ .describe("One evidence-backed review finding produced by a reviewer harness.");
75
+ /** Whether a finding can block convergence given its status + evidence. */
76
+ export function isBlocking(f) {
77
+ if (f.status !== "accepted")
78
+ return false;
79
+ // A NEEDS_HUMAN escalation blocks until a human decides; the escalation
80
+ // itself is the signal, so it does not require file/diff evidence.
81
+ if (f.severity === "NEEDS_HUMAN")
82
+ return true;
83
+ if (f.severity !== "BLOCK" && f.severity !== "FIX_FIRST")
84
+ return false;
85
+ const hasEvidence = f.evidence.files.length > 0 ||
86
+ f.evidence.diff_hunks.length > 0 ||
87
+ f.evidence.commands.length > 0 ||
88
+ f.evidence.logs.length > 0;
89
+ return hasEvidence; // No evidence -> cannot BLOCK.
90
+ }
91
+ //# sourceMappingURL=review.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"review.js","sourceRoot":"","sources":["../src/review.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,67 @@
1
+ import { z } from "zod";
2
+ export declare const RouteProofStatus: z.ZodEnum<["verified", "accepted_model_arg", "unverified", "same_model_fallback"]>;
3
+ export type RouteProofStatus = z.infer<typeof RouteProofStatus>;
4
+ export declare const RouteEvidenceSource: z.ZodEnum<["stream_event", "metadata", "model_catalog", "transcript", "unavailable"]>;
5
+ export type RouteEvidenceSource = z.infer<typeof RouteEvidenceSource>;
6
+ /**
7
+ * Records what was requested vs what was actually observed, so multi-model
8
+ * claims cannot silently collapse onto one model.
9
+ */
10
+ export declare const RouteProof: z.ZodObject<{
11
+ requested: z.ZodObject<{
12
+ harness_id: z.ZodString;
13
+ provider_family: z.ZodEnum<["openai", "anthropic", "google", "cursor", "opencode", "xai", "local", "unknown"]>;
14
+ model_hint: z.ZodDefault<z.ZodNullable<z.ZodString>>;
15
+ }, "strip", z.ZodTypeAny, {
16
+ provider_family: "openai" | "anthropic" | "google" | "cursor" | "opencode" | "xai" | "local" | "unknown";
17
+ harness_id: string;
18
+ model_hint: string | null;
19
+ }, {
20
+ provider_family: "openai" | "anthropic" | "google" | "cursor" | "opencode" | "xai" | "local" | "unknown";
21
+ harness_id: string;
22
+ model_hint?: string | null | undefined;
23
+ }>;
24
+ observed: z.ZodObject<{
25
+ provider: z.ZodDefault<z.ZodNullable<z.ZodString>>;
26
+ model_id: z.ZodDefault<z.ZodNullable<z.ZodString>>;
27
+ evidence_source: z.ZodDefault<z.ZodEnum<["stream_event", "metadata", "model_catalog", "transcript", "unavailable"]>>;
28
+ }, "strip", z.ZodTypeAny, {
29
+ provider: string | null;
30
+ model_id: string | null;
31
+ evidence_source: "unavailable" | "stream_event" | "metadata" | "model_catalog" | "transcript";
32
+ }, {
33
+ provider?: string | null | undefined;
34
+ model_id?: string | null | undefined;
35
+ evidence_source?: "unavailable" | "stream_event" | "metadata" | "model_catalog" | "transcript" | undefined;
36
+ }>;
37
+ diversity_against: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
38
+ status: z.ZodEnum<["verified", "accepted_model_arg", "unverified", "same_model_fallback"]>;
39
+ }, "strip", z.ZodTypeAny, {
40
+ status: "verified" | "accepted_model_arg" | "unverified" | "same_model_fallback";
41
+ observed: {
42
+ provider: string | null;
43
+ model_id: string | null;
44
+ evidence_source: "unavailable" | "stream_event" | "metadata" | "model_catalog" | "transcript";
45
+ };
46
+ requested: {
47
+ provider_family: "openai" | "anthropic" | "google" | "cursor" | "opencode" | "xai" | "local" | "unknown";
48
+ harness_id: string;
49
+ model_hint: string | null;
50
+ };
51
+ diversity_against: string[];
52
+ }, {
53
+ status: "verified" | "accepted_model_arg" | "unverified" | "same_model_fallback";
54
+ observed: {
55
+ provider?: string | null | undefined;
56
+ model_id?: string | null | undefined;
57
+ evidence_source?: "unavailable" | "stream_event" | "metadata" | "model_catalog" | "transcript" | undefined;
58
+ };
59
+ requested: {
60
+ provider_family: "openai" | "anthropic" | "google" | "cursor" | "opencode" | "xai" | "local" | "unknown";
61
+ harness_id: string;
62
+ model_hint?: string | null | undefined;
63
+ };
64
+ diversity_against?: string[] | undefined;
65
+ }>;
66
+ export type RouteProof = z.infer<typeof RouteProof>;
67
+ //# sourceMappingURL=route.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"route.d.ts","sourceRoot":"","sources":["../src/route.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,eAAO,MAAM,gBAAgB,oFAI1B,CAAC;AACJ,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAEhE,eAAO,MAAM,mBAAmB,uFAEsH,CAAC;AACvJ,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAEtE;;;GAGG;AACH,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAmB2G,CAAC;AACnI,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,UAAU,CAAC,CAAC"}
package/dist/route.js ADDED
@@ -0,0 +1,33 @@
1
+ import { z } from "zod";
2
+ import { Id, ProviderFamily } from "./primitives.js";
3
+ export const RouteProofStatus = z
4
+ .enum(["verified", "accepted_model_arg", "unverified", "same_model_fallback"])
5
+ .describe("How strongly the executed route is proven: verified (observed evidence matches the request), accepted_model_arg (the requested model arg was accepted without stream evidence), unverified, or same_model_fallback (a fallback landed on the same model).");
6
+ export const RouteEvidenceSource = z
7
+ .enum(["stream_event", "metadata", "model_catalog", "transcript", "unavailable"])
8
+ .describe("Where the observed model/provider evidence came from: a stream event, response metadata, the model catalog, the transcript, or nowhere.");
9
+ /**
10
+ * Records what was requested vs what was actually observed, so multi-model
11
+ * claims cannot silently collapse onto one model.
12
+ */
13
+ export const RouteProof = z
14
+ .object({
15
+ requested: z
16
+ .object({
17
+ harness_id: Id.describe("Harness the route was requested on."),
18
+ provider_family: ProviderFamily,
19
+ model_hint: z.string().nullable().default(null).describe("Model requested for the route; null = harness default."),
20
+ })
21
+ .describe("What was requested."),
22
+ observed: z
23
+ .object({
24
+ provider: z.string().nullable().default(null).describe("Provider actually observed; null when no evidence."),
25
+ model_id: z.string().nullable().default(null).describe("Model actually observed; null when no evidence."),
26
+ evidence_source: RouteEvidenceSource.default("unavailable"),
27
+ })
28
+ .describe("What was actually observed."),
29
+ diversity_against: z.array(Id).default([]).describe("Harness ids this route was required to be diverse against."),
30
+ status: RouteProofStatus,
31
+ })
32
+ .describe("Records requested vs observed harness/model routing, so multi-model claims cannot silently collapse onto one model.");
33
+ //# sourceMappingURL=route.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"route.js","sourceRoot":"","sources":["../src/route.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,EAAE,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAErD,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC;KAC9B,IAAI,CAAC,CAAC,UAAU,EAAE,oBAAoB,EAAE,YAAY,EAAE,qBAAqB,CAAC,CAAC;KAC7E,QAAQ,CACP,2PAA2P,CAC5P,CAAC;AAGJ,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC;KACjC,IAAI,CAAC,CAAC,cAAc,EAAE,UAAU,EAAE,eAAe,EAAE,YAAY,EAAE,aAAa,CAAC,CAAC;KAChF,QAAQ,CAAC,yIAAyI,CAAC,CAAC;AAGvJ;;;GAGG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC;KACxB,MAAM,CAAC;IACN,SAAS,EAAE,CAAC;SACT,MAAM,CAAC;QACN,UAAU,EAAE,EAAE,CAAC,QAAQ,CAAC,qCAAqC,CAAC;QAC9D,eAAe,EAAE,cAAc;QAC/B,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,wDAAwD,CAAC;KACnH,CAAC;SACD,QAAQ,CAAC,qBAAqB,CAAC;IAClC,QAAQ,EAAE,CAAC;SACR,MAAM,CAAC;QACN,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,oDAAoD,CAAC;QAC5G,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,iDAAiD,CAAC;QACzG,eAAe,EAAE,mBAAmB,CAAC,OAAO,CAAC,aAAa,CAAC;KAC5D,CAAC;SACD,QAAQ,CAAC,6BAA6B,CAAC;IAC1C,iBAAiB,EAAE,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,4DAA4D,CAAC;IACjH,MAAM,EAAE,gBAAgB;CACzB,CAAC;KACD,QAAQ,CAAC,qHAAqH,CAAC,CAAC"}