@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
package/dist/task.d.ts ADDED
@@ -0,0 +1,565 @@
1
+ import { z } from "zod";
2
+ export declare const SuccessCriterion: z.ZodObject<{
3
+ id: z.ZodString;
4
+ text: z.ZodString;
5
+ required: z.ZodDefault<z.ZodBoolean>;
6
+ }, "strip", z.ZodTypeAny, {
7
+ id: string;
8
+ text: string;
9
+ required: boolean;
10
+ }, {
11
+ id: string;
12
+ text: string;
13
+ required?: boolean | undefined;
14
+ }>;
15
+ export type SuccessCriterion = z.infer<typeof SuccessCriterion>;
16
+ export declare const TestCommand: z.ZodObject<{
17
+ id: z.ZodString;
18
+ command: z.ZodString;
19
+ required: z.ZodDefault<z.ZodBoolean>;
20
+ }, "strip", z.ZodTypeAny, {
21
+ id: string;
22
+ command: string;
23
+ required: boolean;
24
+ }, {
25
+ id: string;
26
+ command: string;
27
+ required?: boolean | undefined;
28
+ }>;
29
+ export type TestCommand = z.infer<typeof TestCommand>;
30
+ export declare const ProtectedPathApproval: z.ZodObject<{
31
+ /** Glob approved by the operator/user for this run; consumed only by the
32
+ * auto-protected gate/test path policy, not by built-in critical-path gates. */
33
+ path: z.ZodString;
34
+ reason: z.ZodOptional<z.ZodString>;
35
+ }, "strict", z.ZodTypeAny, {
36
+ path: string;
37
+ reason?: string | undefined;
38
+ }, {
39
+ path: string;
40
+ reason?: string | undefined;
41
+ }>;
42
+ export type ProtectedPathApproval = z.infer<typeof ProtectedPathApproval>;
43
+ export declare const TaskConstraints: z.ZodObject<{
44
+ /** Globs whose changes escalate risk to a human-approval gate (wired into
45
+ * classifyRisk/requireHuman). These are spec/config-owned and cannot be
46
+ * suppressed by per-run protected-path approvals. The other constraint kinds
47
+ * were unwired and removed. */
48
+ protected_paths: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
49
+ /** Engine-derived gate/test path protections. Per-run approvals can narrow
50
+ * only this auto-protected set, never spec/config-owned protected_paths. */
51
+ auto_protected_paths: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
52
+ /** Per-run typed approvals for protected gate/test path changes. These are
53
+ * produced by explicit surfaces (CLI/control/IDE), then consumed by policy. */
54
+ protected_path_approvals: z.ZodDefault<z.ZodArray<z.ZodObject<{
55
+ /** Glob approved by the operator/user for this run; consumed only by the
56
+ * auto-protected gate/test path policy, not by built-in critical-path gates. */
57
+ path: z.ZodString;
58
+ reason: z.ZodOptional<z.ZodString>;
59
+ }, "strict", z.ZodTypeAny, {
60
+ path: string;
61
+ reason?: string | undefined;
62
+ }, {
63
+ path: string;
64
+ reason?: string | undefined;
65
+ }>, "many">>;
66
+ }, "strip", z.ZodTypeAny, {
67
+ protected_paths: string[];
68
+ auto_protected_paths: string[];
69
+ protected_path_approvals: {
70
+ path: string;
71
+ reason?: string | undefined;
72
+ }[];
73
+ }, {
74
+ protected_paths?: string[] | undefined;
75
+ auto_protected_paths?: string[] | undefined;
76
+ protected_path_approvals?: {
77
+ path: string;
78
+ reason?: string | undefined;
79
+ }[] | undefined;
80
+ }>;
81
+ export type TaskConstraints = z.infer<typeof TaskConstraints>;
82
+ export declare const ConvergencePredicate: z.ZodObject<{
83
+ require_tests_pass: z.ZodDefault<z.ZodBoolean>;
84
+ require_no_accepted_block_open: z.ZodDefault<z.ZodBoolean>;
85
+ require_no_accepted_fix_first_open: z.ZodDefault<z.ZodBoolean>;
86
+ require_final_cross_family_clean_review: z.ZodDefault<z.ZodBoolean>;
87
+ require_final_diff_stable_after_review: z.ZodDefault<z.ZodBoolean>;
88
+ /**
89
+ * Block convergence while an accepted NEEDS_HUMAN escalation is still open.
90
+ * Closes the v0.8 hole where, with cross-family clean review disabled, a run
91
+ * could converge to success with an open NEEDS_HUMAN finding.
92
+ */
93
+ require_no_accepted_needs_human_open: z.ZodDefault<z.ZodBoolean>;
94
+ }, "strip", z.ZodTypeAny, {
95
+ require_tests_pass: boolean;
96
+ require_no_accepted_block_open: boolean;
97
+ require_no_accepted_fix_first_open: boolean;
98
+ require_final_cross_family_clean_review: boolean;
99
+ require_final_diff_stable_after_review: boolean;
100
+ require_no_accepted_needs_human_open: boolean;
101
+ }, {
102
+ require_tests_pass?: boolean | undefined;
103
+ require_no_accepted_block_open?: boolean | undefined;
104
+ require_no_accepted_fix_first_open?: boolean | undefined;
105
+ require_final_cross_family_clean_review?: boolean | undefined;
106
+ require_final_diff_stable_after_review?: boolean | undefined;
107
+ require_no_accepted_needs_human_open?: boolean | undefined;
108
+ }>;
109
+ export type ConvergencePredicate = z.infer<typeof ConvergencePredicate>;
110
+ /** One node of the spec-derived task graph; edges are `depends_on`. */
111
+ export declare const TaskGraphNode: z.ZodObject<{
112
+ id: z.ZodString;
113
+ title: z.ZodDefault<z.ZodString>;
114
+ depends_on: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
115
+ }, "strip", z.ZodTypeAny, {
116
+ id: string;
117
+ title: string;
118
+ depends_on: string[];
119
+ }, {
120
+ id: string;
121
+ title?: string | undefined;
122
+ depends_on?: string[] | undefined;
123
+ }>;
124
+ export type TaskGraphNode = z.infer<typeof TaskGraphNode>;
125
+ /** A topologically-ordered task graph built from a frozen SpecPack's tasks. */
126
+ export declare const TaskGraph: z.ZodObject<{
127
+ nodes: z.ZodDefault<z.ZodArray<z.ZodObject<{
128
+ id: z.ZodString;
129
+ title: z.ZodDefault<z.ZodString>;
130
+ depends_on: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
131
+ }, "strip", z.ZodTypeAny, {
132
+ id: string;
133
+ title: string;
134
+ depends_on: string[];
135
+ }, {
136
+ id: string;
137
+ title?: string | undefined;
138
+ depends_on?: string[] | undefined;
139
+ }>, "many">>;
140
+ /** Topological execution order (node ids); empty when there are no tasks. */
141
+ order: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
142
+ }, "strip", z.ZodTypeAny, {
143
+ nodes: {
144
+ id: string;
145
+ title: string;
146
+ depends_on: string[];
147
+ }[];
148
+ order: string[];
149
+ }, {
150
+ nodes?: {
151
+ id: string;
152
+ title?: string | undefined;
153
+ depends_on?: string[] | undefined;
154
+ }[] | undefined;
155
+ order?: string[] | undefined;
156
+ }>;
157
+ export type TaskGraph = z.infer<typeof TaskGraph>;
158
+ /**
159
+ * Immutable contract describing a single run. Built once, hashed, never mutated.
160
+ */
161
+ export declare const TaskContract: z.ZodObject<{
162
+ schema_version: z.ZodLiteral<2>;
163
+ task_id: z.ZodString;
164
+ created_at: z.ZodString;
165
+ repo: z.ZodObject<{
166
+ root: z.ZodString;
167
+ base_ref: z.ZodString;
168
+ base_sha: z.ZodOptional<z.ZodString>;
169
+ dirty_policy: z.ZodDefault<z.ZodEnum<["refuse", "snapshot"]>>;
170
+ }, "strip", z.ZodTypeAny, {
171
+ root: string;
172
+ base_ref: string;
173
+ dirty_policy: "refuse" | "snapshot";
174
+ base_sha?: string | undefined;
175
+ }, {
176
+ root: string;
177
+ base_ref: string;
178
+ base_sha?: string | undefined;
179
+ dirty_policy?: "refuse" | "snapshot" | undefined;
180
+ }>;
181
+ mode: z.ZodObject<{
182
+ kind: z.ZodEnum<["ask", "plan", "audit", "agent", "orchestrate"]>;
183
+ }, "strip", z.ZodTypeAny, {
184
+ kind: "ask" | "plan" | "audit" | "agent" | "orchestrate";
185
+ }, {
186
+ kind: "ask" | "plan" | "audit" | "agent" | "orchestrate";
187
+ }>;
188
+ user_intent: z.ZodObject<{
189
+ raw: z.ZodString;
190
+ normalized: z.ZodOptional<z.ZodString>;
191
+ }, "strip", z.ZodTypeAny, {
192
+ raw: string;
193
+ normalized?: string | undefined;
194
+ }, {
195
+ raw: string;
196
+ normalized?: string | undefined;
197
+ }>;
198
+ spec: z.ZodOptional<z.ZodObject<{
199
+ id: z.ZodOptional<z.ZodString>;
200
+ hash: z.ZodOptional<z.ZodString>;
201
+ path: z.ZodOptional<z.ZodString>;
202
+ }, "strip", z.ZodTypeAny, {
203
+ path?: string | undefined;
204
+ id?: string | undefined;
205
+ hash?: string | undefined;
206
+ }, {
207
+ path?: string | undefined;
208
+ id?: string | undefined;
209
+ hash?: string | undefined;
210
+ }>>;
211
+ success_criteria: z.ZodDefault<z.ZodArray<z.ZodObject<{
212
+ id: z.ZodString;
213
+ text: z.ZodString;
214
+ required: z.ZodDefault<z.ZodBoolean>;
215
+ }, "strip", z.ZodTypeAny, {
216
+ id: string;
217
+ text: string;
218
+ required: boolean;
219
+ }, {
220
+ id: string;
221
+ text: string;
222
+ required?: boolean | undefined;
223
+ }>, "many">>;
224
+ non_goals: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
225
+ forbidden_approaches: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
226
+ decided_tradeoffs: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
227
+ /** Spec-derived task graph; null until a frozen SpecPack with tasks is resolved. */
228
+ task_graph: z.ZodDefault<z.ZodNullable<z.ZodObject<{
229
+ nodes: z.ZodDefault<z.ZodArray<z.ZodObject<{
230
+ id: z.ZodString;
231
+ title: z.ZodDefault<z.ZodString>;
232
+ depends_on: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
233
+ }, "strip", z.ZodTypeAny, {
234
+ id: string;
235
+ title: string;
236
+ depends_on: string[];
237
+ }, {
238
+ id: string;
239
+ title?: string | undefined;
240
+ depends_on?: string[] | undefined;
241
+ }>, "many">>;
242
+ /** Topological execution order (node ids); empty when there are no tasks. */
243
+ order: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
244
+ }, "strip", z.ZodTypeAny, {
245
+ nodes: {
246
+ id: string;
247
+ title: string;
248
+ depends_on: string[];
249
+ }[];
250
+ order: string[];
251
+ }, {
252
+ nodes?: {
253
+ id: string;
254
+ title?: string | undefined;
255
+ depends_on?: string[] | undefined;
256
+ }[] | undefined;
257
+ order?: string[] | undefined;
258
+ }>>>;
259
+ constraints: z.ZodDefault<z.ZodObject<{
260
+ /** Globs whose changes escalate risk to a human-approval gate (wired into
261
+ * classifyRisk/requireHuman). These are spec/config-owned and cannot be
262
+ * suppressed by per-run protected-path approvals. The other constraint kinds
263
+ * were unwired and removed. */
264
+ protected_paths: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
265
+ /** Engine-derived gate/test path protections. Per-run approvals can narrow
266
+ * only this auto-protected set, never spec/config-owned protected_paths. */
267
+ auto_protected_paths: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
268
+ /** Per-run typed approvals for protected gate/test path changes. These are
269
+ * produced by explicit surfaces (CLI/control/IDE), then consumed by policy. */
270
+ protected_path_approvals: z.ZodDefault<z.ZodArray<z.ZodObject<{
271
+ /** Glob approved by the operator/user for this run; consumed only by the
272
+ * auto-protected gate/test path policy, not by built-in critical-path gates. */
273
+ path: z.ZodString;
274
+ reason: z.ZodOptional<z.ZodString>;
275
+ }, "strict", z.ZodTypeAny, {
276
+ path: string;
277
+ reason?: string | undefined;
278
+ }, {
279
+ path: string;
280
+ reason?: string | undefined;
281
+ }>, "many">>;
282
+ }, "strip", z.ZodTypeAny, {
283
+ protected_paths: string[];
284
+ auto_protected_paths: string[];
285
+ protected_path_approvals: {
286
+ path: string;
287
+ reason?: string | undefined;
288
+ }[];
289
+ }, {
290
+ protected_paths?: string[] | undefined;
291
+ auto_protected_paths?: string[] | undefined;
292
+ protected_path_approvals?: {
293
+ path: string;
294
+ reason?: string | undefined;
295
+ }[] | undefined;
296
+ }>>;
297
+ tests: z.ZodDefault<z.ZodObject<{
298
+ commands: z.ZodDefault<z.ZodArray<z.ZodObject<{
299
+ id: z.ZodString;
300
+ command: z.ZodString;
301
+ required: z.ZodDefault<z.ZodBoolean>;
302
+ }, "strip", z.ZodTypeAny, {
303
+ id: string;
304
+ command: string;
305
+ required: boolean;
306
+ }, {
307
+ id: string;
308
+ command: string;
309
+ required?: boolean | undefined;
310
+ }>, "many">>;
311
+ }, "strip", z.ZodTypeAny, {
312
+ commands: {
313
+ id: string;
314
+ command: string;
315
+ required: boolean;
316
+ }[];
317
+ }, {
318
+ commands?: {
319
+ id: string;
320
+ command: string;
321
+ required?: boolean | undefined;
322
+ }[] | undefined;
323
+ }>>;
324
+ access: z.ZodDefault<z.ZodObject<{
325
+ requested_profile: z.ZodDefault<z.ZodEnum<["readonly", "workspace_write", "full", "external_sandbox_full", "inherit_native"]>>;
326
+ /** Profile actually enforced by the engine (mode/trust clamps applied; never client-supplied). */
327
+ effective_profile: z.ZodDefault<z.ZodEnum<["readonly", "workspace_write", "full", "external_sandbox_full", "inherit_native"]>>;
328
+ }, "strip", z.ZodTypeAny, {
329
+ requested_profile: "readonly" | "workspace_write" | "full" | "external_sandbox_full" | "inherit_native";
330
+ effective_profile: "readonly" | "workspace_write" | "full" | "external_sandbox_full" | "inherit_native";
331
+ }, {
332
+ requested_profile?: "readonly" | "workspace_write" | "full" | "external_sandbox_full" | "inherit_native" | undefined;
333
+ effective_profile?: "readonly" | "workspace_write" | "full" | "external_sandbox_full" | "inherit_native" | undefined;
334
+ }>>;
335
+ external_context: z.ZodDefault<z.ZodObject<{
336
+ policy: z.ZodDefault<z.ZodEnum<["off", "auto", "cached", "live"]>>;
337
+ web_required: z.ZodDefault<z.ZodBoolean>;
338
+ /** Mode the selected route actually executes (disclosed upgrades, e.g. claude cached->live). */
339
+ effective_mode: z.ZodDefault<z.ZodEnum<["off", "auto", "cached", "live"]>>;
340
+ }, "strip", z.ZodTypeAny, {
341
+ policy: "off" | "auto" | "cached" | "live";
342
+ web_required: boolean;
343
+ effective_mode: "off" | "auto" | "cached" | "live";
344
+ }, {
345
+ policy?: "off" | "auto" | "cached" | "live" | undefined;
346
+ web_required?: boolean | undefined;
347
+ effective_mode?: "off" | "auto" | "cached" | "live" | undefined;
348
+ }>>;
349
+ tool_permission_policy: z.ZodDefault<z.ZodObject<{
350
+ web: z.ZodDefault<z.ZodEnum<["off", "auto", "cached", "live"]>>;
351
+ allow: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
352
+ deny: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
353
+ }, "strip", z.ZodTypeAny, {
354
+ web: "off" | "auto" | "cached" | "live";
355
+ allow: string[];
356
+ deny: string[];
357
+ }, {
358
+ web?: "off" | "auto" | "cached" | "live" | undefined;
359
+ allow?: string[] | undefined;
360
+ deny?: string[] | undefined;
361
+ }>>;
362
+ budget: z.ZodDefault<z.ZodObject<{
363
+ portfolio: z.ZodDefault<z.ZodEnum<["daily-rich", "balanced", "cheapest", "strongest", "burn", "subscription-first", "api-overflow", "conserve-claude", "conserve-codex"]>>;
364
+ max_usd: z.ZodDefault<z.ZodNullable<z.ZodNumber>>;
365
+ }, "strip", z.ZodTypeAny, {
366
+ max_usd: number | null;
367
+ portfolio: "daily-rich" | "balanced" | "cheapest" | "strongest" | "burn" | "subscription-first" | "api-overflow" | "conserve-claude" | "conserve-codex";
368
+ }, {
369
+ max_usd?: number | null | undefined;
370
+ portfolio?: "daily-rich" | "balanced" | "cheapest" | "strongest" | "burn" | "subscription-first" | "api-overflow" | "conserve-claude" | "conserve-codex" | undefined;
371
+ }>>;
372
+ /** Resolved harness-scoped model map for this run (harness id → model id),
373
+ * after scalar→primary expansion. The contract is the SSOT the route spec
374
+ * builder reads; empty = every route uses its per-harness settings default. */
375
+ routing_models: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodString>>;
376
+ convergence: z.ZodDefault<z.ZodObject<{
377
+ require_tests_pass: z.ZodDefault<z.ZodBoolean>;
378
+ require_no_accepted_block_open: z.ZodDefault<z.ZodBoolean>;
379
+ require_no_accepted_fix_first_open: z.ZodDefault<z.ZodBoolean>;
380
+ require_final_cross_family_clean_review: z.ZodDefault<z.ZodBoolean>;
381
+ require_final_diff_stable_after_review: z.ZodDefault<z.ZodBoolean>;
382
+ /**
383
+ * Block convergence while an accepted NEEDS_HUMAN escalation is still open.
384
+ * Closes the v0.8 hole where, with cross-family clean review disabled, a run
385
+ * could converge to success with an open NEEDS_HUMAN finding.
386
+ */
387
+ require_no_accepted_needs_human_open: z.ZodDefault<z.ZodBoolean>;
388
+ }, "strip", z.ZodTypeAny, {
389
+ require_tests_pass: boolean;
390
+ require_no_accepted_block_open: boolean;
391
+ require_no_accepted_fix_first_open: boolean;
392
+ require_final_cross_family_clean_review: boolean;
393
+ require_final_diff_stable_after_review: boolean;
394
+ require_no_accepted_needs_human_open: boolean;
395
+ }, {
396
+ require_tests_pass?: boolean | undefined;
397
+ require_no_accepted_block_open?: boolean | undefined;
398
+ require_no_accepted_fix_first_open?: boolean | undefined;
399
+ require_final_cross_family_clean_review?: boolean | undefined;
400
+ require_final_diff_stable_after_review?: boolean | undefined;
401
+ require_no_accepted_needs_human_open?: boolean | undefined;
402
+ }>>;
403
+ }, "strip", z.ZodTypeAny, {
404
+ access: {
405
+ requested_profile: "readonly" | "workspace_write" | "full" | "external_sandbox_full" | "inherit_native";
406
+ effective_profile: "readonly" | "workspace_write" | "full" | "external_sandbox_full" | "inherit_native";
407
+ };
408
+ tool_permission_policy: {
409
+ web: "off" | "auto" | "cached" | "live";
410
+ allow: string[];
411
+ deny: string[];
412
+ };
413
+ mode: {
414
+ kind: "ask" | "plan" | "audit" | "agent" | "orchestrate";
415
+ };
416
+ schema_version: 2;
417
+ created_at: string;
418
+ repo: {
419
+ root: string;
420
+ base_ref: string;
421
+ dirty_policy: "refuse" | "snapshot";
422
+ base_sha?: string | undefined;
423
+ };
424
+ task_id: string;
425
+ tests: {
426
+ commands: {
427
+ id: string;
428
+ command: string;
429
+ required: boolean;
430
+ }[];
431
+ };
432
+ budget: {
433
+ max_usd: number | null;
434
+ portfolio: "daily-rich" | "balanced" | "cheapest" | "strongest" | "burn" | "subscription-first" | "api-overflow" | "conserve-claude" | "conserve-codex";
435
+ };
436
+ user_intent: {
437
+ raw: string;
438
+ normalized?: string | undefined;
439
+ };
440
+ success_criteria: {
441
+ id: string;
442
+ text: string;
443
+ required: boolean;
444
+ }[];
445
+ non_goals: string[];
446
+ forbidden_approaches: string[];
447
+ decided_tradeoffs: string[];
448
+ task_graph: {
449
+ nodes: {
450
+ id: string;
451
+ title: string;
452
+ depends_on: string[];
453
+ }[];
454
+ order: string[];
455
+ } | null;
456
+ constraints: {
457
+ protected_paths: string[];
458
+ auto_protected_paths: string[];
459
+ protected_path_approvals: {
460
+ path: string;
461
+ reason?: string | undefined;
462
+ }[];
463
+ };
464
+ external_context: {
465
+ policy: "off" | "auto" | "cached" | "live";
466
+ web_required: boolean;
467
+ effective_mode: "off" | "auto" | "cached" | "live";
468
+ };
469
+ routing_models: Record<string, string>;
470
+ convergence: {
471
+ require_tests_pass: boolean;
472
+ require_no_accepted_block_open: boolean;
473
+ require_no_accepted_fix_first_open: boolean;
474
+ require_final_cross_family_clean_review: boolean;
475
+ require_final_diff_stable_after_review: boolean;
476
+ require_no_accepted_needs_human_open: boolean;
477
+ };
478
+ spec?: {
479
+ path?: string | undefined;
480
+ id?: string | undefined;
481
+ hash?: string | undefined;
482
+ } | undefined;
483
+ }, {
484
+ mode: {
485
+ kind: "ask" | "plan" | "audit" | "agent" | "orchestrate";
486
+ };
487
+ schema_version: 2;
488
+ created_at: string;
489
+ repo: {
490
+ root: string;
491
+ base_ref: string;
492
+ base_sha?: string | undefined;
493
+ dirty_policy?: "refuse" | "snapshot" | undefined;
494
+ };
495
+ task_id: string;
496
+ user_intent: {
497
+ raw: string;
498
+ normalized?: string | undefined;
499
+ };
500
+ spec?: {
501
+ path?: string | undefined;
502
+ id?: string | undefined;
503
+ hash?: string | undefined;
504
+ } | undefined;
505
+ access?: {
506
+ requested_profile?: "readonly" | "workspace_write" | "full" | "external_sandbox_full" | "inherit_native" | undefined;
507
+ effective_profile?: "readonly" | "workspace_write" | "full" | "external_sandbox_full" | "inherit_native" | undefined;
508
+ } | undefined;
509
+ tool_permission_policy?: {
510
+ web?: "off" | "auto" | "cached" | "live" | undefined;
511
+ allow?: string[] | undefined;
512
+ deny?: string[] | undefined;
513
+ } | undefined;
514
+ tests?: {
515
+ commands?: {
516
+ id: string;
517
+ command: string;
518
+ required?: boolean | undefined;
519
+ }[] | undefined;
520
+ } | undefined;
521
+ budget?: {
522
+ max_usd?: number | null | undefined;
523
+ portfolio?: "daily-rich" | "balanced" | "cheapest" | "strongest" | "burn" | "subscription-first" | "api-overflow" | "conserve-claude" | "conserve-codex" | undefined;
524
+ } | undefined;
525
+ success_criteria?: {
526
+ id: string;
527
+ text: string;
528
+ required?: boolean | undefined;
529
+ }[] | undefined;
530
+ non_goals?: string[] | undefined;
531
+ forbidden_approaches?: string[] | undefined;
532
+ decided_tradeoffs?: string[] | undefined;
533
+ task_graph?: {
534
+ nodes?: {
535
+ id: string;
536
+ title?: string | undefined;
537
+ depends_on?: string[] | undefined;
538
+ }[] | undefined;
539
+ order?: string[] | undefined;
540
+ } | null | undefined;
541
+ constraints?: {
542
+ protected_paths?: string[] | undefined;
543
+ auto_protected_paths?: string[] | undefined;
544
+ protected_path_approvals?: {
545
+ path: string;
546
+ reason?: string | undefined;
547
+ }[] | undefined;
548
+ } | undefined;
549
+ external_context?: {
550
+ policy?: "off" | "auto" | "cached" | "live" | undefined;
551
+ web_required?: boolean | undefined;
552
+ effective_mode?: "off" | "auto" | "cached" | "live" | undefined;
553
+ } | undefined;
554
+ routing_models?: Record<string, string> | undefined;
555
+ convergence?: {
556
+ require_tests_pass?: boolean | undefined;
557
+ require_no_accepted_block_open?: boolean | undefined;
558
+ require_no_accepted_fix_first_open?: boolean | undefined;
559
+ require_final_cross_family_clean_review?: boolean | undefined;
560
+ require_final_diff_stable_after_review?: boolean | undefined;
561
+ require_no_accepted_needs_human_open?: boolean | undefined;
562
+ } | undefined;
563
+ }>;
564
+ export type TaskContract = z.infer<typeof TaskContract>;
565
+ //# sourceMappingURL=task.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"task.d.ts","sourceRoot":"","sources":["../src/task.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAaxB,eAAO,MAAM,gBAAgB;;;;;;;;;;;;EAMgC,CAAC;AAC9D,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAEhE,eAAO,MAAM,WAAW;;;;;;;;;;;;EAMgD,CAAC;AACzE,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC,CAAC;AAEtD,eAAO,MAAM,qBAAqB;IAE9B;oFACgF;;;;;;;;;EAOmB,CAAC;AACxG,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAE1E,eAAO,MAAM,eAAe;IAExB;;;mCAG+B;;IAO/B;gFAC4E;;IAK5E;mFAC+E;;QA9B/E;wFACgF;;;;;;;;;;;;;;;;;;;;;;;;EAmCxB,CAAC;AAC7D,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AAE9D,eAAO,MAAM,oBAAoB;;;;;;IAmB7B;;;;OAIG;;;;;;;;;;;;;;;;EAMsF,CAAC;AAC9F,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAExE,uEAAuE;AACvE,eAAO,MAAM,aAAa;;;;;;;;;;;;EAMmD,CAAC;AAC9E,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,CAAC;AAE1D,+EAA+E;AAC/E,eAAO,MAAM,SAAS;;;;;;;;;;;;;;IAGlB,6EAA6E;;;;;;;;;;;;;;;;EAGM,CAAC;AACxF,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,SAAS,CAAC,CAAC;AAElD;;GAEG;AACH,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAgCrB,oFAAoF;;;;;;;;;;;;;;;QAzCpF,6EAA6E;;;;;;;;;;;;;;;;;;QAxE7E;;;uCAG+B;;QAO/B;oFAC4E;;QAK5E;uFAC+E;;YA9B/E;4FACgF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAyI5E,kGAAkG;;;;;;;;;;;;QAclG,gGAAgG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAsBpG;;mFAE+E;;;;;;;;QAtH/E;;;;WAIG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA2HsF,CAAC;AAC9F,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC"}