@cat-factory/contracts 0.240.0 → 0.242.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 (91) hide show
  1. package/dist/entities.d.ts +32 -0
  2. package/dist/entities.d.ts.map +1 -1
  3. package/dist/entities.js +10 -0
  4. package/dist/entities.js.map +1 -1
  5. package/dist/execution.d.ts +38 -0
  6. package/dist/execution.d.ts.map +1 -1
  7. package/dist/form-fields.d.ts +26 -0
  8. package/dist/form-fields.d.ts.map +1 -1
  9. package/dist/form-fields.js +21 -0
  10. package/dist/form-fields.js.map +1 -1
  11. package/dist/gate-approval.d.ts +66 -0
  12. package/dist/gate-approval.d.ts.map +1 -0
  13. package/dist/gate-approval.js +67 -0
  14. package/dist/gate-approval.js.map +1 -0
  15. package/dist/gate-config.d.ts +134 -0
  16. package/dist/gate-config.d.ts.map +1 -0
  17. package/dist/gate-config.js +134 -0
  18. package/dist/gate-config.js.map +1 -0
  19. package/dist/gate.d.ts +10 -0
  20. package/dist/gate.d.ts.map +1 -1
  21. package/dist/gate.js +11 -0
  22. package/dist/gate.js.map +1 -1
  23. package/dist/index.d.ts +3 -0
  24. package/dist/index.d.ts.map +1 -1
  25. package/dist/index.js +3 -0
  26. package/dist/index.js.map +1 -1
  27. package/dist/initiative-preset.d.ts +4 -0
  28. package/dist/initiative-preset.d.ts.map +1 -1
  29. package/dist/observability.d.ts +11 -4
  30. package/dist/observability.d.ts.map +1 -1
  31. package/dist/observability.js +11 -4
  32. package/dist/observability.js.map +1 -1
  33. package/dist/pr-report.d.ts +48 -8
  34. package/dist/pr-report.d.ts.map +1 -1
  35. package/dist/pr-report.js +39 -8
  36. package/dist/pr-report.js.map +1 -1
  37. package/dist/public-api-keys.d.ts +67 -0
  38. package/dist/public-api-keys.d.ts.map +1 -1
  39. package/dist/public-api-keys.js +34 -0
  40. package/dist/public-api-keys.js.map +1 -1
  41. package/dist/public-decisions.d.ts +57 -0
  42. package/dist/public-decisions.d.ts.map +1 -1
  43. package/dist/public-decisions.js +19 -0
  44. package/dist/public-decisions.js.map +1 -1
  45. package/dist/public-evidence.d.ts +55 -0
  46. package/dist/public-evidence.d.ts.map +1 -0
  47. package/dist/public-evidence.js +59 -0
  48. package/dist/public-evidence.js.map +1 -0
  49. package/dist/requests.d.ts +16 -0
  50. package/dist/requests.d.ts.map +1 -1
  51. package/dist/routes/agent-runs.d.ts +38 -0
  52. package/dist/routes/agent-runs.d.ts.map +1 -1
  53. package/dist/routes/bug-hunt.d.ts +38 -0
  54. package/dist/routes/bug-hunt.d.ts.map +1 -1
  55. package/dist/routes/execution.d.ts +152 -0
  56. package/dist/routes/execution.d.ts.map +1 -1
  57. package/dist/routes/human-review.d.ts +19 -0
  58. package/dist/routes/human-review.d.ts.map +1 -1
  59. package/dist/routes/human-test.d.ts +95 -0
  60. package/dist/routes/human-test.d.ts.map +1 -1
  61. package/dist/routes/index.d.ts +1 -0
  62. package/dist/routes/index.d.ts.map +1 -1
  63. package/dist/routes/index.js +1 -0
  64. package/dist/routes/index.js.map +1 -1
  65. package/dist/routes/pipelines.d.ts +64 -0
  66. package/dist/routes/pipelines.d.ts.map +1 -1
  67. package/dist/routes/public-api.d.ts +140 -0
  68. package/dist/routes/public-api.d.ts.map +1 -1
  69. package/dist/routes/public-api.js +44 -1
  70. package/dist/routes/public-api.js.map +1 -1
  71. package/dist/routes/public-decisions.d.ts +68 -0
  72. package/dist/routes/public-decisions.d.ts.map +1 -1
  73. package/dist/routes/public-evidence.d.ts +291 -0
  74. package/dist/routes/public-evidence.d.ts.map +1 -0
  75. package/dist/routes/public-evidence.js +42 -0
  76. package/dist/routes/public-evidence.js.map +1 -0
  77. package/dist/routes/visual-confirm.d.ts +57 -0
  78. package/dist/routes/visual-confirm.d.ts.map +1 -1
  79. package/dist/routes/workspaces.d.ts +112 -0
  80. package/dist/routes/workspaces.d.ts.map +1 -1
  81. package/dist/snapshot.d.ts +65 -0
  82. package/dist/snapshot.d.ts.map +1 -1
  83. package/dist/snapshot.js +11 -0
  84. package/dist/snapshot.js.map +1 -1
  85. package/dist/step-decisions.d.ts +27 -0
  86. package/dist/step-decisions.d.ts.map +1 -1
  87. package/dist/step-decisions.js +24 -2
  88. package/dist/step-decisions.js.map +1 -1
  89. package/dist/task-types.d.ts +4 -0
  90. package/dist/task-types.d.ts.map +1 -1
  91. package/package.json +1 -1
@@ -0,0 +1,291 @@
1
+ /**
2
+ * The run's verification report: the engine's bundle of captured facts, byte-for-byte what it
3
+ * maintains on the pull request, composed on read from the run's persisted state.
4
+ *
5
+ * A consumer that scraped the fenced JSON block out of a PR body can read it here instead, and
6
+ * gets it for the runs that never opened a pull request at all.
7
+ */
8
+ export declare const getPublicRunReportContract: {
9
+ readonly method: "get";
10
+ readonly requestPathParamsSchema: import("valibot").ObjectSchema<{
11
+ runId: import("valibot").StringSchema<undefined>;
12
+ }, undefined> & import("@toad-contracts/core").StandardObjectKeysV1<unknown, unknown>;
13
+ readonly pathResolver: ({ runId }: {
14
+ runId: string;
15
+ }) => string;
16
+ readonly responsesByStatusCode: {
17
+ readonly '4xx': import("valibot").ObjectSchema<{
18
+ readonly error: import("valibot").ObjectSchema<{
19
+ readonly code: import("valibot").StringSchema<undefined>;
20
+ readonly message: import("valibot").StringSchema<undefined>;
21
+ readonly details: import("valibot").OptionalSchema<import("valibot").UnknownSchema, undefined>;
22
+ readonly issues: import("valibot").OptionalSchema<import("valibot").ArraySchema<import("valibot").ObjectSchema<{
23
+ readonly path: import("valibot").OptionalSchema<import("valibot").StringSchema<undefined>, undefined>;
24
+ readonly message: import("valibot").StringSchema<undefined>;
25
+ }, undefined>, undefined>, undefined>;
26
+ }, undefined>;
27
+ }, undefined>;
28
+ readonly '5xx': import("valibot").ObjectSchema<{
29
+ readonly error: import("valibot").ObjectSchema<{
30
+ readonly code: import("valibot").StringSchema<undefined>;
31
+ readonly message: import("valibot").StringSchema<undefined>;
32
+ readonly details: import("valibot").OptionalSchema<import("valibot").UnknownSchema, undefined>;
33
+ readonly issues: import("valibot").OptionalSchema<import("valibot").ArraySchema<import("valibot").ObjectSchema<{
34
+ readonly path: import("valibot").OptionalSchema<import("valibot").StringSchema<undefined>, undefined>;
35
+ readonly message: import("valibot").StringSchema<undefined>;
36
+ }, undefined>, undefined>, undefined>;
37
+ }, undefined>;
38
+ }, undefined>;
39
+ readonly 200: import("valibot").ObjectSchema<{
40
+ readonly version: import("valibot").NumberSchema<undefined>;
41
+ readonly generatedAt: import("valibot").NumberSchema<undefined>;
42
+ readonly run: import("valibot").ObjectSchema<{
43
+ readonly executionId: import("valibot").StringSchema<undefined>;
44
+ readonly blockId: import("valibot").StringSchema<undefined>;
45
+ readonly blockTitle: import("valibot").StringSchema<undefined>;
46
+ readonly pipelineId: import("valibot").StringSchema<undefined>;
47
+ readonly pipelineName: import("valibot").StringSchema<undefined>;
48
+ readonly repo: import("valibot").OptionalSchema<import("valibot").NullableSchema<import("valibot").StringSchema<undefined>, undefined>, undefined>;
49
+ readonly provider: import("valibot").OptionalSchema<import("valibot").NullableSchema<import("valibot").PicklistSchema<["github", "gitlab"], undefined>, undefined>, undefined>;
50
+ readonly startedAt: import("valibot").OptionalSchema<import("valibot").NullableSchema<import("valibot").NumberSchema<undefined>, undefined>, undefined>;
51
+ readonly steps: import("valibot").ArraySchema<import("valibot").ObjectSchema<{
52
+ readonly index: import("valibot").NumberSchema<undefined>;
53
+ readonly agentKind: import("valibot").StringSchema<undefined>;
54
+ readonly state: import("valibot").StringSchema<undefined>;
55
+ readonly model: import("valibot").OptionalSchema<import("valibot").NullableSchema<import("valibot").StringSchema<undefined>, undefined>, undefined>;
56
+ }, undefined>, undefined>;
57
+ readonly issues: import("valibot").ArraySchema<import("valibot").ObjectSchema<{
58
+ readonly source: import("valibot").StringSchema<undefined>;
59
+ readonly externalId: import("valibot").StringSchema<undefined>;
60
+ readonly title: import("valibot").StringSchema<undefined>;
61
+ readonly url: import("valibot").StringSchema<undefined>;
62
+ }, undefined>, undefined>;
63
+ }, undefined>;
64
+ readonly ci: import("valibot").ObjectSchema<{
65
+ readonly status: import("valibot").PicklistSchema<["reported", "absent"], undefined>;
66
+ readonly note: import("valibot").OptionalSchema<import("valibot").NullableSchema<import("valibot").StringSchema<undefined>, undefined>, undefined>;
67
+ readonly verdict: import("valibot").OptionalSchema<import("valibot").NullableSchema<import("valibot").PicklistSchema<["pass", "pending", "fail"], undefined>, undefined>, undefined>;
68
+ readonly headSha: import("valibot").OptionalSchema<import("valibot").NullableSchema<import("valibot").StringSchema<undefined>, undefined>, undefined>;
69
+ readonly failingChecks: import("valibot").ArraySchema<import("valibot").ObjectSchema<{
70
+ readonly name: import("valibot").StringSchema<undefined>;
71
+ readonly conclusion: import("valibot").NullableSchema<import("valibot").StringSchema<undefined>, undefined>;
72
+ readonly url: import("valibot").OptionalSchema<import("valibot").NullableSchema<import("valibot").StringSchema<undefined>, undefined>, undefined>;
73
+ readonly repo: import("valibot").OptionalSchema<import("valibot").NullableSchema<import("valibot").StringSchema<undefined>, undefined>, undefined>;
74
+ }, undefined>, undefined>;
75
+ readonly fixerAttempts: import("valibot").NumberSchema<undefined>;
76
+ readonly maxFixerAttempts: import("valibot").OptionalSchema<import("valibot").NullableSchema<import("valibot").NumberSchema<undefined>, undefined>, undefined>;
77
+ }, undefined>;
78
+ readonly validation: import("valibot").ObjectSchema<{
79
+ readonly status: import("valibot").PicklistSchema<["reported", "absent"], undefined>;
80
+ readonly note: import("valibot").OptionalSchema<import("valibot").NullableSchema<import("valibot").StringSchema<undefined>, undefined>, undefined>;
81
+ readonly passed: import("valibot").OptionalSchema<import("valibot").NullableSchema<import("valibot").BooleanSchema<undefined>, undefined>, undefined>;
82
+ readonly stepKind: import("valibot").OptionalSchema<import("valibot").NullableSchema<import("valibot").StringSchema<undefined>, undefined>, undefined>;
83
+ readonly attempts: import("valibot").NumberSchema<undefined>;
84
+ readonly maxAttempts: import("valibot").OptionalSchema<import("valibot").NullableSchema<import("valibot").NumberSchema<undefined>, undefined>, undefined>;
85
+ readonly at: import("valibot").OptionalSchema<import("valibot").NullableSchema<import("valibot").NumberSchema<undefined>, undefined>, undefined>;
86
+ readonly commands: import("valibot").ArraySchema<import("valibot").ObjectSchema<{
87
+ readonly label: import("valibot").StringSchema<undefined>;
88
+ readonly command: import("valibot").StringSchema<undefined>;
89
+ readonly exitCode: import("valibot").NumberSchema<undefined>;
90
+ readonly passed: import("valibot").BooleanSchema<undefined>;
91
+ readonly timedOut: import("valibot").OptionalSchema<import("valibot").NullableSchema<import("valibot").BooleanSchema<undefined>, undefined>, undefined>;
92
+ readonly durationMs: import("valibot").OptionalSchema<import("valibot").NullableSchema<import("valibot").NumberSchema<undefined>, undefined>, undefined>;
93
+ readonly outputTail: import("valibot").OptionalSchema<import("valibot").NullableSchema<import("valibot").StringSchema<undefined>, undefined>, undefined>;
94
+ }, undefined>, undefined>;
95
+ }, undefined>;
96
+ readonly reproduction: import("valibot").ObjectSchema<{
97
+ readonly status: import("valibot").PicklistSchema<["reported", "absent"], undefined>;
98
+ readonly note: import("valibot").OptionalSchema<import("valibot").NullableSchema<import("valibot").StringSchema<undefined>, undefined>, undefined>;
99
+ readonly verdict: import("valibot").OptionalSchema<import("valibot").NullableSchema<import("valibot").PicklistSchema<["reproduced", "inconclusive", "declared_infeasible"], undefined>, undefined>, undefined>;
100
+ readonly command: import("valibot").OptionalSchema<import("valibot").NullableSchema<import("valibot").StringSchema<undefined>, undefined>, undefined>;
101
+ readonly testPaths: import("valibot").ArraySchema<import("valibot").StringSchema<undefined>, undefined>;
102
+ readonly omittedTestPaths: import("valibot").OptionalSchema<import("valibot").NullableSchema<import("valibot").NumberSchema<undefined>, undefined>, undefined>;
103
+ readonly base: import("valibot").OptionalSchema<import("valibot").NullableSchema<import("valibot").ObjectSchema<{
104
+ readonly exitCode: import("valibot").NumberSchema<undefined>;
105
+ readonly passed: import("valibot").BooleanSchema<undefined>;
106
+ readonly durationMs: import("valibot").OptionalSchema<import("valibot").NullableSchema<import("valibot").NumberSchema<undefined>, undefined>, undefined>;
107
+ readonly timedOut: import("valibot").OptionalSchema<import("valibot").NullableSchema<import("valibot").BooleanSchema<undefined>, undefined>, undefined>;
108
+ readonly setupFailed: import("valibot").OptionalSchema<import("valibot").NullableSchema<import("valibot").BooleanSchema<undefined>, undefined>, undefined>;
109
+ readonly outputTail: import("valibot").OptionalSchema<import("valibot").NullableSchema<import("valibot").StringSchema<undefined>, undefined>, undefined>;
110
+ }, undefined>, undefined>, undefined>;
111
+ readonly final: import("valibot").OptionalSchema<import("valibot").NullableSchema<import("valibot").ObjectSchema<{
112
+ readonly exitCode: import("valibot").NumberSchema<undefined>;
113
+ readonly passed: import("valibot").BooleanSchema<undefined>;
114
+ readonly durationMs: import("valibot").OptionalSchema<import("valibot").NullableSchema<import("valibot").NumberSchema<undefined>, undefined>, undefined>;
115
+ readonly timedOut: import("valibot").OptionalSchema<import("valibot").NullableSchema<import("valibot").BooleanSchema<undefined>, undefined>, undefined>;
116
+ readonly setupFailed: import("valibot").OptionalSchema<import("valibot").NullableSchema<import("valibot").BooleanSchema<undefined>, undefined>, undefined>;
117
+ readonly outputTail: import("valibot").OptionalSchema<import("valibot").NullableSchema<import("valibot").StringSchema<undefined>, undefined>, undefined>;
118
+ }, undefined>, undefined>, undefined>;
119
+ readonly attempts: import("valibot").NumberSchema<undefined>;
120
+ readonly maxAttempts: import("valibot").OptionalSchema<import("valibot").NullableSchema<import("valibot").NumberSchema<undefined>, undefined>, undefined>;
121
+ readonly reason: import("valibot").OptionalSchema<import("valibot").NullableSchema<import("valibot").StringSchema<undefined>, undefined>, undefined>;
122
+ readonly alternativeVerification: import("valibot").OptionalSchema<import("valibot").NullableSchema<import("valibot").StringSchema<undefined>, undefined>, undefined>;
123
+ readonly observation: import("valibot").OptionalSchema<import("valibot").NullableSchema<import("valibot").StringSchema<undefined>, undefined>, undefined>;
124
+ readonly at: import("valibot").OptionalSchema<import("valibot").NullableSchema<import("valibot").NumberSchema<undefined>, undefined>, undefined>;
125
+ }, undefined>;
126
+ readonly tests: import("valibot").ObjectSchema<{
127
+ readonly status: import("valibot").PicklistSchema<["reported", "absent"], undefined>;
128
+ readonly note: import("valibot").OptionalSchema<import("valibot").NullableSchema<import("valibot").StringSchema<undefined>, undefined>, undefined>;
129
+ readonly greenlight: import("valibot").OptionalSchema<import("valibot").NullableSchema<import("valibot").BooleanSchema<undefined>, undefined>, undefined>;
130
+ readonly summary: import("valibot").OptionalSchema<import("valibot").NullableSchema<import("valibot").StringSchema<undefined>, undefined>, undefined>;
131
+ readonly environment: import("valibot").OptionalSchema<import("valibot").NullableSchema<import("valibot").StringSchema<undefined>, undefined>, undefined>;
132
+ readonly tested: import("valibot").ArraySchema<import("valibot").StringSchema<undefined>, undefined>;
133
+ readonly outcomes: import("valibot").ArraySchema<import("valibot").ObjectSchema<{
134
+ readonly name: import("valibot").StringSchema<undefined>;
135
+ readonly status: import("valibot").StringSchema<undefined>;
136
+ readonly detail: import("valibot").OptionalSchema<import("valibot").NullableSchema<import("valibot").StringSchema<undefined>, undefined>, undefined>;
137
+ }, undefined>, undefined>;
138
+ readonly concerns: import("valibot").ArraySchema<import("valibot").ObjectSchema<{
139
+ readonly title: import("valibot").StringSchema<undefined>;
140
+ readonly severity: import("valibot").StringSchema<undefined>;
141
+ }, undefined>, undefined>;
142
+ readonly fixerAttempts: import("valibot").NumberSchema<undefined>;
143
+ readonly maxFixerAttempts: import("valibot").OptionalSchema<import("valibot").NullableSchema<import("valibot").NumberSchema<undefined>, undefined>, undefined>;
144
+ }, undefined>;
145
+ readonly requirements: import("valibot").ObjectSchema<{
146
+ readonly status: import("valibot").PicklistSchema<["reported", "absent"], undefined>;
147
+ readonly note: import("valibot").OptionalSchema<import("valibot").NullableSchema<import("valibot").StringSchema<undefined>, undefined>, undefined>;
148
+ readonly entries: import("valibot").ArraySchema<import("valibot").ObjectSchema<{
149
+ readonly id: import("valibot").StringSchema<undefined>;
150
+ readonly title: import("valibot").StringSchema<undefined>;
151
+ readonly module: import("valibot").StringSchema<undefined>;
152
+ readonly group: import("valibot").StringSchema<undefined>;
153
+ readonly priority: import("valibot").PicklistSchema<["must", "should", "could"], undefined>;
154
+ readonly state: import("valibot").PicklistSchema<["aspirational", "established"], undefined>;
155
+ readonly verdict: import("valibot").PicklistSchema<["met", "not_met", "not_covered"], undefined>;
156
+ readonly detail: import("valibot").NullableSchema<import("valibot").StringSchema<undefined>, undefined>;
157
+ readonly criteriaCount: import("valibot").NumberSchema<undefined>;
158
+ }, undefined>, undefined>;
159
+ readonly met: import("valibot").NumberSchema<undefined>;
160
+ readonly notMet: import("valibot").NumberSchema<undefined>;
161
+ readonly notCovered: import("valibot").NumberSchema<undefined>;
162
+ readonly regressions: import("valibot").NumberSchema<undefined>;
163
+ readonly total: import("valibot").NumberSchema<undefined>;
164
+ }, undefined>;
165
+ readonly environments: import("valibot").ObjectSchema<{
166
+ readonly status: import("valibot").PicklistSchema<["reported", "absent"], undefined>;
167
+ readonly note: import("valibot").OptionalSchema<import("valibot").NullableSchema<import("valibot").StringSchema<undefined>, undefined>, undefined>;
168
+ readonly entries: import("valibot").ArraySchema<import("valibot").ObjectSchema<{
169
+ readonly frameId: import("valibot").StringSchema<undefined>;
170
+ readonly status: import("valibot").PicklistSchema<["ready", "failed", "skipped"], undefined>;
171
+ readonly url: import("valibot").OptionalSchema<import("valibot").NullableSchema<import("valibot").StringSchema<undefined>, undefined>, undefined>;
172
+ readonly error: import("valibot").OptionalSchema<import("valibot").NullableSchema<import("valibot").StringSchema<undefined>, undefined>, undefined>;
173
+ }, undefined>, undefined>;
174
+ readonly teardown: import("valibot").PicklistSchema<["confirmed", "unconfirmed", "pending", "failed", "not_applicable"], undefined>;
175
+ readonly timeline: import("valibot").ObjectSchema<{
176
+ readonly gap: import("valibot").NullableSchema<import("valibot").PicklistSchema<["unwired", "unreadable", "truncated", "not_provisioned"], undefined>, undefined>;
177
+ readonly note: import("valibot").OptionalSchema<import("valibot").NullableSchema<import("valibot").StringSchema<undefined>, undefined>, undefined>;
178
+ readonly provisionedAt: import("valibot").NullableSchema<import("valibot").NumberSchema<undefined>, undefined>;
179
+ readonly tornDownAt: import("valibot").NullableSchema<import("valibot").NumberSchema<undefined>, undefined>;
180
+ readonly provisionFailures: import("valibot").NumberSchema<undefined>;
181
+ readonly teardownFailures: import("valibot").NumberSchema<undefined>;
182
+ readonly teardownsUnconfirmed: import("valibot").NumberSchema<undefined>;
183
+ }, undefined>;
184
+ readonly evidence: import("valibot").ObjectSchema<{
185
+ readonly status: import("valibot").PicklistSchema<["captured", "local", "undeclared", "absent"], undefined>;
186
+ readonly note: import("valibot").OptionalSchema<import("valibot").NullableSchema<import("valibot").StringSchema<undefined>, undefined>, undefined>;
187
+ readonly ranAgainst: import("valibot").NullableSchema<import("valibot").PicklistSchema<["local", "ephemeral"], undefined>, undefined>;
188
+ readonly capturedAt: import("valibot").NullableSchema<import("valibot").NumberSchema<undefined>, undefined>;
189
+ readonly outcomes: import("valibot").NumberSchema<undefined>;
190
+ readonly requirementVerdicts: import("valibot").NumberSchema<undefined>;
191
+ readonly screenshots: import("valibot").ArraySchema<import("valibot").ObjectSchema<{
192
+ readonly view: import("valibot").StringSchema<undefined>;
193
+ readonly artifactId: import("valibot").StringSchema<undefined>;
194
+ readonly hasReference: import("valibot").BooleanSchema<undefined>;
195
+ readonly url: import("valibot").NullableSchema<import("valibot").StringSchema<undefined>, undefined>;
196
+ }, undefined>, undefined>;
197
+ readonly url: import("valibot").NullableSchema<import("valibot").StringSchema<undefined>, undefined>;
198
+ }, undefined>;
199
+ readonly proof: import("valibot").PicklistSchema<["complete", "incomplete", "not_applicable"], undefined>;
200
+ readonly gaps: import("valibot").ArraySchema<import("valibot").StringSchema<undefined>, undefined>;
201
+ }, undefined>;
202
+ readonly merge: import("valibot").ObjectSchema<{
203
+ readonly status: import("valibot").PicklistSchema<["reported", "absent"], undefined>;
204
+ readonly note: import("valibot").OptionalSchema<import("valibot").NullableSchema<import("valibot").StringSchema<undefined>, undefined>, undefined>;
205
+ readonly assessment: import("valibot").OptionalSchema<import("valibot").NullableSchema<import("valibot").ObjectSchema<{
206
+ readonly complexity: import("valibot").SchemaWithPipe<readonly [import("valibot").NumberSchema<undefined>, import("valibot").MinValueAction<number, 0, undefined>, import("valibot").MaxValueAction<number, 1, undefined>]>;
207
+ readonly risk: import("valibot").SchemaWithPipe<readonly [import("valibot").NumberSchema<undefined>, import("valibot").MinValueAction<number, 0, undefined>, import("valibot").MaxValueAction<number, 1, undefined>]>;
208
+ readonly impact: import("valibot").SchemaWithPipe<readonly [import("valibot").NumberSchema<undefined>, import("valibot").MinValueAction<number, 0, undefined>, import("valibot").MaxValueAction<number, 1, undefined>]>;
209
+ readonly rationale: import("valibot").StringSchema<undefined>;
210
+ }, undefined>, undefined>, undefined>;
211
+ readonly outcome: import("valibot").OptionalSchema<import("valibot").NullableSchema<import("valibot").StringSchema<undefined>, undefined>, undefined>;
212
+ readonly reason: import("valibot").OptionalSchema<import("valibot").NullableSchema<import("valibot").StringSchema<undefined>, undefined>, undefined>;
213
+ readonly presetName: import("valibot").OptionalSchema<import("valibot").NullableSchema<import("valibot").StringSchema<undefined>, undefined>, undefined>;
214
+ }, undefined>;
215
+ readonly judges: import("valibot").ObjectSchema<{
216
+ readonly status: import("valibot").PicklistSchema<["reported", "absent"], undefined>;
217
+ readonly note: import("valibot").OptionalSchema<import("valibot").NullableSchema<import("valibot").StringSchema<undefined>, undefined>, undefined>;
218
+ readonly verdicts: import("valibot").ArraySchema<import("valibot").ObjectSchema<{
219
+ readonly stepKind: import("valibot").StringSchema<undefined>;
220
+ readonly rubricName: import("valibot").NullableSchema<import("valibot").StringSchema<undefined>, undefined>;
221
+ readonly rubricOverridden: import("valibot").BooleanSchema<undefined>;
222
+ readonly score: import("valibot").NullableSchema<import("valibot").NumberSchema<undefined>, undefined>;
223
+ readonly threshold: import("valibot").NullableSchema<import("valibot").NumberSchema<undefined>, undefined>;
224
+ readonly disposition: import("valibot").NullableSchema<import("valibot").PicklistSchema<["pass", "park", "bounce", "fail"], undefined>, undefined>;
225
+ readonly summary: import("valibot").NullableSchema<import("valibot").StringSchema<undefined>, undefined>;
226
+ readonly findings: import("valibot").ArraySchema<import("valibot").ObjectSchema<{
227
+ readonly title: import("valibot").SchemaWithFallback<import("valibot").StringSchema<undefined>, "Untitled finding">;
228
+ readonly detail: import("valibot").SchemaWithFallback<import("valibot").OptionalSchema<import("valibot").StringSchema<undefined>, undefined>, undefined>;
229
+ readonly severity: import("valibot").SchemaWithFallback<import("valibot").PicklistSchema<["low", "medium", "high", "critical"], undefined>, "medium">;
230
+ readonly where: import("valibot").SchemaWithFallback<import("valibot").OptionalSchema<import("valibot").StringSchema<undefined>, undefined>, undefined>;
231
+ }, undefined>, undefined>;
232
+ readonly bounces: import("valibot").NumberSchema<undefined>;
233
+ readonly maxBounces: import("valibot").NumberSchema<undefined>;
234
+ readonly model: import("valibot").NullableSchema<import("valibot").StringSchema<undefined>, undefined>;
235
+ }, undefined>, undefined>;
236
+ }, undefined>;
237
+ readonly observability: import("valibot").ObjectSchema<{
238
+ readonly runUrl: import("valibot").NullableSchema<import("valibot").StringSchema<undefined>, undefined>;
239
+ readonly trajectoryUrl: import("valibot").NullableSchema<import("valibot").StringSchema<undefined>, undefined>;
240
+ readonly reportUrl: import("valibot").NullableSchema<import("valibot").StringSchema<undefined>, undefined>;
241
+ }, undefined>;
242
+ readonly truncations: import("valibot").ArraySchema<import("valibot").StringSchema<undefined>, undefined>;
243
+ }, undefined>;
244
+ };
245
+ };
246
+ /** The binary artifacts the run captured (metadata; the bytes are a second, per-artifact fetch). */
247
+ export declare const listPublicRunArtifactsContract: {
248
+ readonly method: "get";
249
+ readonly requestPathParamsSchema: import("valibot").ObjectSchema<{
250
+ runId: import("valibot").StringSchema<undefined>;
251
+ }, undefined> & import("@toad-contracts/core").StandardObjectKeysV1<unknown, unknown>;
252
+ readonly pathResolver: ({ runId }: {
253
+ runId: string;
254
+ }) => string;
255
+ readonly responsesByStatusCode: {
256
+ readonly '4xx': import("valibot").ObjectSchema<{
257
+ readonly error: import("valibot").ObjectSchema<{
258
+ readonly code: import("valibot").StringSchema<undefined>;
259
+ readonly message: import("valibot").StringSchema<undefined>;
260
+ readonly details: import("valibot").OptionalSchema<import("valibot").UnknownSchema, undefined>;
261
+ readonly issues: import("valibot").OptionalSchema<import("valibot").ArraySchema<import("valibot").ObjectSchema<{
262
+ readonly path: import("valibot").OptionalSchema<import("valibot").StringSchema<undefined>, undefined>;
263
+ readonly message: import("valibot").StringSchema<undefined>;
264
+ }, undefined>, undefined>, undefined>;
265
+ }, undefined>;
266
+ }, undefined>;
267
+ readonly '5xx': import("valibot").ObjectSchema<{
268
+ readonly error: import("valibot").ObjectSchema<{
269
+ readonly code: import("valibot").StringSchema<undefined>;
270
+ readonly message: import("valibot").StringSchema<undefined>;
271
+ readonly details: import("valibot").OptionalSchema<import("valibot").UnknownSchema, undefined>;
272
+ readonly issues: import("valibot").OptionalSchema<import("valibot").ArraySchema<import("valibot").ObjectSchema<{
273
+ readonly path: import("valibot").OptionalSchema<import("valibot").StringSchema<undefined>, undefined>;
274
+ readonly message: import("valibot").StringSchema<undefined>;
275
+ }, undefined>, undefined>, undefined>;
276
+ }, undefined>;
277
+ }, undefined>;
278
+ readonly 200: import("valibot").ObjectSchema<{
279
+ readonly artifacts: import("valibot").ArraySchema<import("valibot").ObjectSchema<{
280
+ readonly artifactId: import("valibot").StringSchema<undefined>;
281
+ readonly kind: import("valibot").PicklistSchema<["screenshot", "reference"], undefined>;
282
+ readonly view: import("valibot").NullableSchema<import("valibot").StringSchema<undefined>, undefined>;
283
+ readonly contentType: import("valibot").StringSchema<undefined>;
284
+ readonly byteSize: import("valibot").NumberSchema<undefined>;
285
+ readonly hash: import("valibot").StringSchema<undefined>;
286
+ readonly createdAt: import("valibot").NumberSchema<undefined>;
287
+ }, undefined>, undefined>;
288
+ }, undefined>;
289
+ };
290
+ };
291
+ //# sourceMappingURL=public-evidence.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"public-evidence.d.ts","sourceRoot":"","sources":["../../src/routes/public-evidence.ts"],"names":[],"mappings":"AAwBA;;;;;;GAMG;AACH,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAKrC,CAAA;AAEF,oGAAoG;AACpG,eAAO,MAAM,8BAA8B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAKzC,CAAA"}
@@ -0,0 +1,42 @@
1
+ import { defineApiContract } from '@toad-contracts/valibot';
2
+ import { prVerificationReportSchema } from '../pr-report.js';
3
+ import { publicRunArtifactListSchema } from '../public-evidence.js';
4
+ import { errorResponses, singleStringParam } from './_shared.js';
5
+ // ---------------------------------------------------------------------------
6
+ // Route contracts for the public run-EVIDENCE surface: absolute `/api/v1` paths,
7
+ // authenticated in-controller by a public-API key at `read` scope. The wire shapes and the
8
+ // reasoning behind them live in `../public-evidence.ts`.
9
+ //
10
+ // The two reads here are addressed under `/api/v1/runs/:runId/*`, beside the parked-decision
11
+ // routes rather than under `/api/v1/debug/*`, and that is a statement about what they are: a
12
+ // run's evidence is the thing a consumer ACTS on (accept the change, score the run), where the
13
+ // debug surface is what someone reads when a run went wrong. They are workspace-scoped like the
14
+ // debug reads, though. See `PublicEvidenceController` for why the narrower decision scope
15
+ // would be the wrong reach for a consumer whose job is auditing a board.
16
+ //
17
+ // The BYTES (`GET /api/v1/artifacts/:artifactId/blob`) are deliberately not a contract: the
18
+ // response is an image, not JSON, so it is a hand-mounted Hono route documented by hand in
19
+ // `scripts/generate-openapi.mjs`, the same treatment the two SSE endpoints get.
20
+ // ---------------------------------------------------------------------------
21
+ const runIdParams = singleStringParam('runId');
22
+ /**
23
+ * The run's verification report: the engine's bundle of captured facts, byte-for-byte what it
24
+ * maintains on the pull request, composed on read from the run's persisted state.
25
+ *
26
+ * A consumer that scraped the fenced JSON block out of a PR body can read it here instead, and
27
+ * gets it for the runs that never opened a pull request at all.
28
+ */
29
+ export const getPublicRunReportContract = defineApiContract({
30
+ method: 'get',
31
+ requestPathParamsSchema: runIdParams,
32
+ pathResolver: ({ runId }) => `/api/v1/runs/${runId}/report`,
33
+ responsesByStatusCode: { 200: prVerificationReportSchema, ...errorResponses },
34
+ });
35
+ /** The binary artifacts the run captured (metadata; the bytes are a second, per-artifact fetch). */
36
+ export const listPublicRunArtifactsContract = defineApiContract({
37
+ method: 'get',
38
+ requestPathParamsSchema: runIdParams,
39
+ pathResolver: ({ runId }) => `/api/v1/runs/${runId}/artifacts`,
40
+ responsesByStatusCode: { 200: publicRunArtifactListSchema, ...errorResponses },
41
+ });
42
+ //# sourceMappingURL=public-evidence.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"public-evidence.js","sourceRoot":"","sources":["../../src/routes/public-evidence.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAA;AAC3D,OAAO,EAAE,0BAA0B,EAAE,MAAM,iBAAiB,CAAA;AAC5D,OAAO,EAAE,2BAA2B,EAAE,MAAM,uBAAuB,CAAA;AACnE,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAA;AAEhE,8EAA8E;AAC9E,iFAAiF;AACjF,2FAA2F;AAC3F,yDAAyD;AACzD,EAAE;AACF,6FAA6F;AAC7F,6FAA6F;AAC7F,+FAA+F;AAC/F,gGAAgG;AAChG,0FAA0F;AAC1F,yEAAyE;AACzE,EAAE;AACF,4FAA4F;AAC5F,2FAA2F;AAC3F,gFAAgF;AAChF,8EAA8E;AAE9E,MAAM,WAAW,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAA;AAE9C;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAG,iBAAiB,CAAC;IAC1D,MAAM,EAAE,KAAK;IACb,uBAAuB,EAAE,WAAW;IACpC,YAAY,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,gBAAgB,KAAK,SAAS;IAC3D,qBAAqB,EAAE,EAAE,GAAG,EAAE,0BAA0B,EAAE,GAAG,cAAc,EAAE;CAC9E,CAAC,CAAA;AAEF,oGAAoG;AACpG,MAAM,CAAC,MAAM,8BAA8B,GAAG,iBAAiB,CAAC;IAC9D,MAAM,EAAE,KAAK;IACb,uBAAuB,EAAE,WAAW;IACpC,YAAY,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,gBAAgB,KAAK,YAAY;IAC9D,qBAAqB,EAAE,EAAE,GAAG,EAAE,2BAA2B,EAAE,GAAG,cAAc,EAAE;CAC/E,CAAC,CAAA"}
@@ -82,6 +82,7 @@ export declare const approveVisualConfirmContract: {
82
82
  readonly branch: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
83
83
  }, undefined>, undefined>, undefined>;
84
84
  readonly lastVerdict: v.OptionalSchema<v.NullableSchema<v.PicklistSchema<["pass", "pending", "fail"], undefined>, undefined>, undefined>;
85
+ readonly config: v.OptionalSchema<v.NullableSchema<v.RecordSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 80, undefined>]>, v.UnionSchema<[v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MaxLengthAction<string, 2000, undefined>]>, v.SchemaWithPipe<readonly [v.ArraySchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MaxLengthAction<string, 2000, undefined>]>, undefined>, v.MaxLengthAction<string[], 50, undefined>]>, v.BooleanSchema<undefined>, v.NumberSchema<undefined>], undefined>, undefined>, undefined>, undefined>;
85
86
  readonly lastFailureSummary: v.OptionalSchema<v.NullableSchema<v.StringSchema<undefined>, undefined>, undefined>;
86
87
  readonly failingChecks: v.OptionalSchema<v.NullableSchema<v.ArraySchema<v.ObjectSchema<{
87
88
  readonly name: v.StringSchema<undefined>;
@@ -355,6 +356,16 @@ export declare const approveVisualConfirmContract: {
355
356
  readonly anchorId: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
356
357
  readonly body: v.StringSchema<undefined>;
357
358
  }, undefined>, undefined>, undefined>;
359
+ readonly requiredApprovals: v.OptionalSchema<v.NumberSchema<undefined>, undefined>;
360
+ readonly approverPolicy: v.OptionalSchema<v.ObjectSchema<{
361
+ readonly roles: v.OptionalSchema<v.ArraySchema<v.PicklistSchema<readonly ["admin", "member", "viewer"], undefined>, undefined>, undefined>;
362
+ readonly userIds: v.OptionalSchema<v.ArraySchema<v.StringSchema<undefined>, undefined>, undefined>;
363
+ }, undefined>, undefined>;
364
+ readonly approvals: v.OptionalSchema<v.ArraySchema<v.ObjectSchema<{
365
+ readonly actorId: v.StringSchema<undefined>;
366
+ readonly actorLabel: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
367
+ readonly at: v.NumberSchema<undefined>;
368
+ }, undefined>, undefined>, undefined>;
358
369
  }, undefined>, undefined>, undefined>;
359
370
  readonly companion: v.OptionalSchema<v.NullableSchema<v.ObjectSchema<{
360
371
  readonly threshold: v.NumberSchema<undefined>;
@@ -652,6 +663,14 @@ export declare const approveVisualConfirmContract: {
652
663
  readonly modalities: v.OptionalSchema<v.ArraySchema<v.PicklistSchema<["image", "audio", "video", "3d-model", "3d-scene", "document"], undefined>, undefined>, undefined>;
653
664
  readonly mediaTypes: v.OptionalSchema<v.ArraySchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.ToLowerCaseAction, v.MinLengthAction<string, 3, undefined>, v.MaxLengthAction<string, 128, undefined>, v.RegexAction<string, "must be a media type of the form type/subtype">]>, undefined>, undefined>;
654
665
  }, undefined>, undefined>;
666
+ readonly gateConfig: v.OptionalSchema<v.ObjectSchema<{
667
+ readonly approvers: v.OptionalSchema<v.ObjectSchema<{
668
+ readonly roles: v.OptionalSchema<v.ArraySchema<v.PicklistSchema<readonly ["admin", "member", "viewer"], undefined>, undefined>, undefined>;
669
+ readonly userIds: v.OptionalSchema<v.ArraySchema<v.StringSchema<undefined>, undefined>, undefined>;
670
+ }, undefined>, undefined>;
671
+ readonly minApprovals: v.OptionalSchema<v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.MinValueAction<number, 1, undefined>, v.MaxValueAction<number, 10, undefined>]>, undefined>;
672
+ readonly fields: v.OptionalSchema<v.RecordSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 80, undefined>]>, v.UnionSchema<[v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MaxLengthAction<string, 2000, undefined>]>, v.SchemaWithPipe<readonly [v.ArraySchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MaxLengthAction<string, 2000, undefined>]>, undefined>, v.MaxLengthAction<string[], 50, undefined>]>, v.BooleanSchema<undefined>, v.NumberSchema<undefined>], undefined>, undefined>, undefined>;
673
+ }, undefined>, undefined>;
655
674
  }, undefined>, undefined>, undefined>;
656
675
  readonly skipped: v.OptionalSchema<v.BooleanSchema<undefined>, undefined>;
657
676
  readonly noBusinessSpecs: v.OptionalSchema<v.BooleanSchema<undefined>, undefined>;
@@ -1145,6 +1164,7 @@ export declare const requestVisualConfirmFixContract: {
1145
1164
  readonly branch: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
1146
1165
  }, undefined>, undefined>, undefined>;
1147
1166
  readonly lastVerdict: v.OptionalSchema<v.NullableSchema<v.PicklistSchema<["pass", "pending", "fail"], undefined>, undefined>, undefined>;
1167
+ readonly config: v.OptionalSchema<v.NullableSchema<v.RecordSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 80, undefined>]>, v.UnionSchema<[v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MaxLengthAction<string, 2000, undefined>]>, v.SchemaWithPipe<readonly [v.ArraySchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MaxLengthAction<string, 2000, undefined>]>, undefined>, v.MaxLengthAction<string[], 50, undefined>]>, v.BooleanSchema<undefined>, v.NumberSchema<undefined>], undefined>, undefined>, undefined>, undefined>;
1148
1168
  readonly lastFailureSummary: v.OptionalSchema<v.NullableSchema<v.StringSchema<undefined>, undefined>, undefined>;
1149
1169
  readonly failingChecks: v.OptionalSchema<v.NullableSchema<v.ArraySchema<v.ObjectSchema<{
1150
1170
  readonly name: v.StringSchema<undefined>;
@@ -1418,6 +1438,16 @@ export declare const requestVisualConfirmFixContract: {
1418
1438
  readonly anchorId: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
1419
1439
  readonly body: v.StringSchema<undefined>;
1420
1440
  }, undefined>, undefined>, undefined>;
1441
+ readonly requiredApprovals: v.OptionalSchema<v.NumberSchema<undefined>, undefined>;
1442
+ readonly approverPolicy: v.OptionalSchema<v.ObjectSchema<{
1443
+ readonly roles: v.OptionalSchema<v.ArraySchema<v.PicklistSchema<readonly ["admin", "member", "viewer"], undefined>, undefined>, undefined>;
1444
+ readonly userIds: v.OptionalSchema<v.ArraySchema<v.StringSchema<undefined>, undefined>, undefined>;
1445
+ }, undefined>, undefined>;
1446
+ readonly approvals: v.OptionalSchema<v.ArraySchema<v.ObjectSchema<{
1447
+ readonly actorId: v.StringSchema<undefined>;
1448
+ readonly actorLabel: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
1449
+ readonly at: v.NumberSchema<undefined>;
1450
+ }, undefined>, undefined>, undefined>;
1421
1451
  }, undefined>, undefined>, undefined>;
1422
1452
  readonly companion: v.OptionalSchema<v.NullableSchema<v.ObjectSchema<{
1423
1453
  readonly threshold: v.NumberSchema<undefined>;
@@ -1715,6 +1745,14 @@ export declare const requestVisualConfirmFixContract: {
1715
1745
  readonly modalities: v.OptionalSchema<v.ArraySchema<v.PicklistSchema<["image", "audio", "video", "3d-model", "3d-scene", "document"], undefined>, undefined>, undefined>;
1716
1746
  readonly mediaTypes: v.OptionalSchema<v.ArraySchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.ToLowerCaseAction, v.MinLengthAction<string, 3, undefined>, v.MaxLengthAction<string, 128, undefined>, v.RegexAction<string, "must be a media type of the form type/subtype">]>, undefined>, undefined>;
1717
1747
  }, undefined>, undefined>;
1748
+ readonly gateConfig: v.OptionalSchema<v.ObjectSchema<{
1749
+ readonly approvers: v.OptionalSchema<v.ObjectSchema<{
1750
+ readonly roles: v.OptionalSchema<v.ArraySchema<v.PicklistSchema<readonly ["admin", "member", "viewer"], undefined>, undefined>, undefined>;
1751
+ readonly userIds: v.OptionalSchema<v.ArraySchema<v.StringSchema<undefined>, undefined>, undefined>;
1752
+ }, undefined>, undefined>;
1753
+ readonly minApprovals: v.OptionalSchema<v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.MinValueAction<number, 1, undefined>, v.MaxValueAction<number, 10, undefined>]>, undefined>;
1754
+ readonly fields: v.OptionalSchema<v.RecordSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 80, undefined>]>, v.UnionSchema<[v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MaxLengthAction<string, 2000, undefined>]>, v.SchemaWithPipe<readonly [v.ArraySchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MaxLengthAction<string, 2000, undefined>]>, undefined>, v.MaxLengthAction<string[], 50, undefined>]>, v.BooleanSchema<undefined>, v.NumberSchema<undefined>], undefined>, undefined>, undefined>;
1755
+ }, undefined>, undefined>;
1718
1756
  }, undefined>, undefined>, undefined>;
1719
1757
  readonly skipped: v.OptionalSchema<v.BooleanSchema<undefined>, undefined>;
1720
1758
  readonly noBusinessSpecs: v.OptionalSchema<v.BooleanSchema<undefined>, undefined>;
@@ -2206,6 +2244,7 @@ export declare const recaptureVisualConfirmContract: {
2206
2244
  readonly branch: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
2207
2245
  }, undefined>, undefined>, undefined>;
2208
2246
  readonly lastVerdict: v.OptionalSchema<v.NullableSchema<v.PicklistSchema<["pass", "pending", "fail"], undefined>, undefined>, undefined>;
2247
+ readonly config: v.OptionalSchema<v.NullableSchema<v.RecordSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 80, undefined>]>, v.UnionSchema<[v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MaxLengthAction<string, 2000, undefined>]>, v.SchemaWithPipe<readonly [v.ArraySchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MaxLengthAction<string, 2000, undefined>]>, undefined>, v.MaxLengthAction<string[], 50, undefined>]>, v.BooleanSchema<undefined>, v.NumberSchema<undefined>], undefined>, undefined>, undefined>, undefined>;
2209
2248
  readonly lastFailureSummary: v.OptionalSchema<v.NullableSchema<v.StringSchema<undefined>, undefined>, undefined>;
2210
2249
  readonly failingChecks: v.OptionalSchema<v.NullableSchema<v.ArraySchema<v.ObjectSchema<{
2211
2250
  readonly name: v.StringSchema<undefined>;
@@ -2479,6 +2518,16 @@ export declare const recaptureVisualConfirmContract: {
2479
2518
  readonly anchorId: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
2480
2519
  readonly body: v.StringSchema<undefined>;
2481
2520
  }, undefined>, undefined>, undefined>;
2521
+ readonly requiredApprovals: v.OptionalSchema<v.NumberSchema<undefined>, undefined>;
2522
+ readonly approverPolicy: v.OptionalSchema<v.ObjectSchema<{
2523
+ readonly roles: v.OptionalSchema<v.ArraySchema<v.PicklistSchema<readonly ["admin", "member", "viewer"], undefined>, undefined>, undefined>;
2524
+ readonly userIds: v.OptionalSchema<v.ArraySchema<v.StringSchema<undefined>, undefined>, undefined>;
2525
+ }, undefined>, undefined>;
2526
+ readonly approvals: v.OptionalSchema<v.ArraySchema<v.ObjectSchema<{
2527
+ readonly actorId: v.StringSchema<undefined>;
2528
+ readonly actorLabel: v.OptionalSchema<v.StringSchema<undefined>, undefined>;
2529
+ readonly at: v.NumberSchema<undefined>;
2530
+ }, undefined>, undefined>, undefined>;
2482
2531
  }, undefined>, undefined>, undefined>;
2483
2532
  readonly companion: v.OptionalSchema<v.NullableSchema<v.ObjectSchema<{
2484
2533
  readonly threshold: v.NumberSchema<undefined>;
@@ -2776,6 +2825,14 @@ export declare const recaptureVisualConfirmContract: {
2776
2825
  readonly modalities: v.OptionalSchema<v.ArraySchema<v.PicklistSchema<["image", "audio", "video", "3d-model", "3d-scene", "document"], undefined>, undefined>, undefined>;
2777
2826
  readonly mediaTypes: v.OptionalSchema<v.ArraySchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.TrimAction, v.ToLowerCaseAction, v.MinLengthAction<string, 3, undefined>, v.MaxLengthAction<string, 128, undefined>, v.RegexAction<string, "must be a media type of the form type/subtype">]>, undefined>, undefined>;
2778
2827
  }, undefined>, undefined>;
2828
+ readonly gateConfig: v.OptionalSchema<v.ObjectSchema<{
2829
+ readonly approvers: v.OptionalSchema<v.ObjectSchema<{
2830
+ readonly roles: v.OptionalSchema<v.ArraySchema<v.PicklistSchema<readonly ["admin", "member", "viewer"], undefined>, undefined>, undefined>;
2831
+ readonly userIds: v.OptionalSchema<v.ArraySchema<v.StringSchema<undefined>, undefined>, undefined>;
2832
+ }, undefined>, undefined>;
2833
+ readonly minApprovals: v.OptionalSchema<v.SchemaWithPipe<readonly [v.NumberSchema<undefined>, v.IntegerAction<number, undefined>, v.MinValueAction<number, 1, undefined>, v.MaxValueAction<number, 10, undefined>]>, undefined>;
2834
+ readonly fields: v.OptionalSchema<v.RecordSchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MinLengthAction<string, 1, undefined>, v.MaxLengthAction<string, 80, undefined>]>, v.UnionSchema<[v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MaxLengthAction<string, 2000, undefined>]>, v.SchemaWithPipe<readonly [v.ArraySchema<v.SchemaWithPipe<readonly [v.StringSchema<undefined>, v.MaxLengthAction<string, 2000, undefined>]>, undefined>, v.MaxLengthAction<string[], 50, undefined>]>, v.BooleanSchema<undefined>, v.NumberSchema<undefined>], undefined>, undefined>, undefined>;
2835
+ }, undefined>, undefined>;
2779
2836
  }, undefined>, undefined>, undefined>;
2780
2837
  readonly skipped: v.OptionalSchema<v.BooleanSchema<undefined>, undefined>;
2781
2838
  readonly noBusinessSpecs: v.OptionalSchema<v.BooleanSchema<undefined>, undefined>;
@@ -1 +1 @@
1
- {"version":3,"file":"visual-confirm.d.ts","sourceRoot":"","sources":["../../src/routes/visual-confirm.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAqC,MAAM,yBAAyB,CAAA;AAC3F,OAAO,KAAK,CAAC,MAAM,SAAS,CAAA;AAc5B,eAAO,MAAM,4BAA4B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAMvC,CAAA;AAEF,eAAO,MAAM,+BAA+B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAM1C,CAAA;AAEF,eAAO,MAAM,8BAA8B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAMzC,CAAA"}
1
+ {"version":3,"file":"visual-confirm.d.ts","sourceRoot":"","sources":["../../src/routes/visual-confirm.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAqC,MAAM,yBAAyB,CAAA;AAC3F,OAAO,KAAK,CAAC,MAAM,SAAS,CAAA;AAc5B,eAAO,MAAM,4BAA4B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAMvC,CAAA;AAEF,eAAO,MAAM,+BAA+B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAM1C,CAAA;AAEF,eAAO,MAAM,8BAA8B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAMzC,CAAA"}