@bjoernrochel/sevro 1.0.0 → 1.1.1

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 (405) hide show
  1. package/CONTRIBUTING.md +34 -4
  2. package/README.md +7 -6
  3. package/dist/examples/basic/graded.json +13 -0
  4. package/dist/examples/basic/host.js +9 -0
  5. package/dist/examples/basic/host.js.map +1 -0
  6. package/dist/examples/basic/prompt-only.json +7 -0
  7. package/dist/examples/recipes/candidate.js +23 -0
  8. package/dist/examples/recipes/candidate.js.map +1 -0
  9. package/dist/examples/recipes/cases/coding-change.json +21 -0
  10. package/dist/examples/recipes/cases/host-tools.json +21 -0
  11. package/dist/examples/recipes/cases/mise.json +21 -0
  12. package/dist/examples/recipes/cases/node.json +21 -0
  13. package/dist/examples/recipes/cases/python-uv.json +21 -0
  14. package/dist/examples/recipes/cases/semantic.json +17 -0
  15. package/dist/examples/recipes/coding-change/check.js +16 -0
  16. package/dist/examples/recipes/coding-change/check.js.map +1 -0
  17. package/dist/examples/recipes/executable.js +20 -0
  18. package/dist/examples/recipes/executable.js.map +1 -0
  19. package/dist/examples/recipes/extension-artifacts.js +56 -0
  20. package/dist/examples/recipes/extension-artifacts.js.map +1 -0
  21. package/dist/examples/recipes/extension-methods.js +167 -0
  22. package/dist/examples/recipes/extension-methods.js.map +1 -0
  23. package/dist/examples/recipes/extension.js +28 -0
  24. package/dist/examples/recipes/extension.js.map +1 -0
  25. package/dist/examples/recipes/modules.js +9 -0
  26. package/dist/examples/recipes/modules.js.map +1 -0
  27. package/dist/examples/recipes/repository-skill/.agents/skills/startup-guide/SKILL.md +7 -0
  28. package/dist/examples/recipes/repository-skill/.claude/skills/startup-guide/SKILL.md +7 -0
  29. package/dist/examples/recipes/repository-skill/README.md +3 -0
  30. package/dist/examples/recipes/run-inputs.js +144 -0
  31. package/dist/examples/recipes/run-inputs.js.map +1 -0
  32. package/dist/examples/recipes/run-options.js +103 -0
  33. package/dist/examples/recipes/run-options.js.map +1 -0
  34. package/dist/examples/recipes/run.js +62 -0
  35. package/dist/examples/recipes/run.js.map +1 -0
  36. package/dist/examples/recipes/runtime/empty.json +1 -0
  37. package/dist/examples/recipes/runtime/goals.json +1 -0
  38. package/dist/examples/recipes/runtime/mise.json +6 -0
  39. package/dist/examples/recipes/runtime/path.json +1 -0
  40. package/dist/examples/recipes/runtime/plugins.json +4 -0
  41. package/dist/examples/recipes/runtime/python-uv.json +10 -0
  42. package/dist/examples/recipes/semantic-judge.js +27 -0
  43. package/dist/examples/recipes/semantic-judge.js.map +1 -0
  44. package/dist/examples/templates/coding/adapter.js +14 -0
  45. package/dist/examples/templates/coding/adapter.js.map +1 -0
  46. package/dist/examples/templates/coding/case.json +15 -0
  47. package/dist/examples/templates/repository-skill/.agents/skills/startup-guide/SKILL.md +6 -0
  48. package/dist/examples/templates/repository-skill/extension-data.js +61 -0
  49. package/dist/examples/templates/repository-skill/extension-data.js.map +1 -0
  50. package/dist/examples/templates/repository-skill/extension.js +29 -0
  51. package/dist/examples/templates/repository-skill/extension.js.map +1 -0
  52. package/dist/examples/templates/response/adapter.js +13 -0
  53. package/dist/examples/templates/response/adapter.js.map +1 -0
  54. package/dist/examples/templates/response/case.json +13 -0
  55. package/dist/src/advisory.js +86 -0
  56. package/dist/src/advisory.js.map +1 -0
  57. package/dist/src/candidate-artifacts.js +139 -0
  58. package/dist/src/candidate-artifacts.js.map +1 -0
  59. package/dist/src/candidate-codex-state.js +110 -0
  60. package/dist/src/candidate-codex-state.js.map +1 -0
  61. package/dist/src/case-validation.js +92 -0
  62. package/dist/src/case-validation.js.map +1 -0
  63. package/dist/src/cli/cancellation.js +21 -0
  64. package/dist/src/cli/cancellation.js.map +1 -0
  65. package/dist/src/cli/command.js +60 -0
  66. package/dist/src/cli/command.js.map +1 -0
  67. package/dist/src/cli/completion.js +14 -0
  68. package/dist/src/cli/completion.js.map +1 -0
  69. package/dist/src/cli/demo.js +45 -0
  70. package/dist/src/cli/demo.js.map +1 -0
  71. package/dist/src/cli/evaluation.js +40 -0
  72. package/dist/src/cli/evaluation.js.map +1 -0
  73. package/dist/src/cli/extension.js +54 -0
  74. package/dist/src/cli/extension.js.map +1 -0
  75. package/dist/src/cli/help.js +190 -0
  76. package/dist/src/cli/help.js.map +1 -0
  77. package/dist/src/cli/hosts.js +33 -0
  78. package/dist/src/cli/hosts.js.map +1 -0
  79. package/dist/src/cli/init-settings.js +29 -0
  80. package/dist/src/cli/init-settings.js.map +1 -0
  81. package/dist/src/cli/init.js +82 -0
  82. package/dist/src/cli/init.js.map +1 -0
  83. package/dist/src/cli/invocation.js +431 -0
  84. package/dist/src/cli/invocation.js.map +1 -0
  85. package/dist/src/cli/loading.js +110 -0
  86. package/dist/src/cli/loading.js.map +1 -0
  87. package/dist/src/cli/preparation.js +88 -0
  88. package/dist/src/cli/preparation.js.map +1 -0
  89. package/dist/src/cli/presentation.js +61 -0
  90. package/dist/src/cli/presentation.js.map +1 -0
  91. package/dist/src/cli/progress.js +5 -0
  92. package/dist/src/cli/progress.js.map +1 -0
  93. package/dist/src/cli/run-manifest.js +108 -0
  94. package/dist/src/cli/run-manifest.js.map +1 -0
  95. package/dist/src/cli/run-options.js +367 -0
  96. package/dist/src/cli/run-options.js.map +1 -0
  97. package/dist/src/cli/run-overrides.js +51 -0
  98. package/dist/src/cli/run-overrides.js.map +1 -0
  99. package/dist/src/cli/settings.js +127 -0
  100. package/dist/src/cli/settings.js.map +1 -0
  101. package/dist/src/cli/summary.js +28 -0
  102. package/dist/src/cli/summary.js.map +1 -0
  103. package/dist/src/cli.js +20 -0
  104. package/dist/src/cli.js.map +1 -0
  105. package/dist/src/contract-types.js +2 -0
  106. package/dist/src/contract-types.js.map +1 -0
  107. package/dist/src/engine.js +4 -0
  108. package/dist/src/engine.js.map +1 -0
  109. package/dist/src/evaluation/advisory.js +85 -0
  110. package/dist/src/evaluation/advisory.js.map +1 -0
  111. package/dist/src/evaluation/check-plan.js +292 -0
  112. package/dist/src/evaluation/check-plan.js.map +1 -0
  113. package/dist/src/evaluation/collection.js +61 -0
  114. package/dist/src/evaluation/collection.js.map +1 -0
  115. package/dist/src/evaluation/context.js +2 -0
  116. package/dist/src/evaluation/context.js.map +1 -0
  117. package/dist/src/evaluation/grading-host.js +28 -0
  118. package/dist/src/evaluation/grading-host.js.map +1 -0
  119. package/dist/src/evaluation/grading.js +154 -0
  120. package/dist/src/evaluation/grading.js.map +1 -0
  121. package/dist/src/evaluation/invocation-plan.js +312 -0
  122. package/dist/src/evaluation/invocation-plan.js.map +1 -0
  123. package/dist/src/evaluation/plan.js +376 -0
  124. package/dist/src/evaluation/plan.js.map +1 -0
  125. package/dist/src/evaluation/progress.js +14 -0
  126. package/dist/src/evaluation/progress.js.map +1 -0
  127. package/dist/src/evaluation/resources.js +159 -0
  128. package/dist/src/evaluation/resources.js.map +1 -0
  129. package/dist/src/evaluation/run.js +148 -0
  130. package/dist/src/evaluation/run.js.map +1 -0
  131. package/dist/src/evaluation/scheduler.js +27 -0
  132. package/dist/src/evaluation/scheduler.js.map +1 -0
  133. package/dist/src/evaluation/semantic.js +183 -0
  134. package/dist/src/evaluation/semantic.js.map +1 -0
  135. package/dist/src/evaluation/trial.js +593 -0
  136. package/dist/src/evaluation/trial.js.map +1 -0
  137. package/dist/src/evaluation/types.js +20 -0
  138. package/dist/src/evaluation/types.js.map +1 -0
  139. package/dist/src/evidence/host-results.js +67 -0
  140. package/dist/src/evidence/host-results.js.map +1 -0
  141. package/dist/src/evidence/retained-artifacts.js +17 -0
  142. package/dist/src/evidence/retained-artifacts.js.map +1 -0
  143. package/dist/src/evidence/trial-writer.js +131 -0
  144. package/dist/src/evidence/trial-writer.js.map +1 -0
  145. package/dist/src/evidence/usage.js +14 -0
  146. package/dist/src/evidence/usage.js.map +1 -0
  147. package/dist/src/executable.js +20 -0
  148. package/dist/src/executable.js.map +1 -0
  149. package/dist/src/extension-client.js +212 -0
  150. package/dist/src/extension-client.js.map +1 -0
  151. package/dist/src/extension-session.js +236 -0
  152. package/dist/src/extension-session.js.map +1 -0
  153. package/dist/src/fixtures/advisory.js +206 -0
  154. package/dist/src/fixtures/advisory.js.map +1 -0
  155. package/dist/src/fixtures/bin.js +41 -0
  156. package/dist/src/fixtures/bin.js.map +1 -0
  157. package/dist/src/fixtures/cleanup.js +43 -0
  158. package/dist/src/fixtures/cleanup.js.map +1 -0
  159. package/dist/src/fixtures/create.js +94 -0
  160. package/dist/src/fixtures/create.js.map +1 -0
  161. package/dist/src/fixtures/generated.js +181 -0
  162. package/dist/src/fixtures/generated.js.map +1 -0
  163. package/dist/src/fixtures/git-hooks.js +16 -0
  164. package/dist/src/fixtures/git-hooks.js.map +1 -0
  165. package/dist/src/fixtures/preparation.js +201 -0
  166. package/dist/src/fixtures/preparation.js.map +1 -0
  167. package/dist/src/fixtures/repository.js +255 -0
  168. package/dist/src/fixtures/repository.js.map +1 -0
  169. package/dist/src/fixtures/setup.js +175 -0
  170. package/dist/src/fixtures/setup.js.map +1 -0
  171. package/dist/src/fixtures/tools.js +57 -0
  172. package/dist/src/fixtures/tools.js.map +1 -0
  173. package/dist/src/fixtures/workspace-state.js +155 -0
  174. package/dist/src/fixtures/workspace-state.js.map +1 -0
  175. package/dist/src/generated/cli-result.cjs +2 -0
  176. package/dist/src/generated/extension.cjs +2 -0
  177. package/dist/src/generated/report.cjs +2 -0
  178. package/dist/src/generated/run-evidence.cjs +2 -0
  179. package/dist/src/generated/runtime.cjs +2 -0
  180. package/dist/src/git.js +72 -0
  181. package/dist/src/git.js.map +1 -0
  182. package/dist/src/graders/artifact.js +68 -0
  183. package/dist/src/graders/artifact.js.map +1 -0
  184. package/dist/src/graders/git-head.js +112 -0
  185. package/dist/src/graders/git-head.js.map +1 -0
  186. package/dist/src/graders/output.js +345 -0
  187. package/dist/src/graders/output.js.map +1 -0
  188. package/dist/src/graders/semantic.js +132 -0
  189. package/dist/src/graders/semantic.js.map +1 -0
  190. package/dist/src/graders/shell.js +321 -0
  191. package/dist/src/graders/shell.js.map +1 -0
  192. package/dist/src/host-diagnostic-redaction.js +52 -0
  193. package/dist/src/host-diagnostic-redaction.js.map +1 -0
  194. package/dist/src/host-diagnostics.js +248 -0
  195. package/dist/src/host-diagnostics.js.map +1 -0
  196. package/dist/src/hosts/claude-continuation.js +89 -0
  197. package/dist/src/hosts/claude-continuation.js.map +1 -0
  198. package/dist/src/hosts/claude-credential.js +121 -0
  199. package/dist/src/hosts/claude-credential.js.map +1 -0
  200. package/dist/src/hosts/claude-events.js +136 -0
  201. package/dist/src/hosts/claude-events.js.map +1 -0
  202. package/dist/src/hosts/claude-keychain.js +100 -0
  203. package/dist/src/hosts/claude-keychain.js.map +1 -0
  204. package/dist/src/hosts/claude-login-recovery.js +67 -0
  205. package/dist/src/hosts/claude-login-recovery.js.map +1 -0
  206. package/dist/src/hosts/claude-login-refresh.js +146 -0
  207. package/dist/src/hosts/claude-login-refresh.js.map +1 -0
  208. package/dist/src/hosts/claude-login-store.js +124 -0
  209. package/dist/src/hosts/claude-login-store.js.map +1 -0
  210. package/dist/src/hosts/claude-login.js +74 -0
  211. package/dist/src/hosts/claude-login.js.map +1 -0
  212. package/dist/src/hosts/claude-native-goal.js +138 -0
  213. package/dist/src/hosts/claude-native-goal.js.map +1 -0
  214. package/dist/src/hosts/claude-process.js +10 -0
  215. package/dist/src/hosts/claude-process.js.map +1 -0
  216. package/dist/src/hosts/claude-refresh-lock.js +76 -0
  217. package/dist/src/hosts/claude-refresh-lock.js.map +1 -0
  218. package/dist/src/hosts/claude-repository-invocation.js +229 -0
  219. package/dist/src/hosts/claude-repository-invocation.js.map +1 -0
  220. package/dist/src/hosts/claude-settings.js +158 -0
  221. package/dist/src/hosts/claude-settings.js.map +1 -0
  222. package/dist/src/hosts/claude-skill-activations.js +131 -0
  223. package/dist/src/hosts/claude-skill-activations.js.map +1 -0
  224. package/dist/src/hosts/claude-state.js +237 -0
  225. package/dist/src/hosts/claude-state.js.map +1 -0
  226. package/dist/src/hosts/claude-tool-calls.js +150 -0
  227. package/dist/src/hosts/claude-tool-calls.js.map +1 -0
  228. package/dist/src/hosts/claude.js +373 -0
  229. package/dist/src/hosts/claude.js.map +1 -0
  230. package/dist/src/hosts/codex-app-server.js +764 -0
  231. package/dist/src/hosts/codex-app-server.js.map +1 -0
  232. package/dist/src/hosts/codex-configuration.js +91 -0
  233. package/dist/src/hosts/codex-configuration.js.map +1 -0
  234. package/dist/src/hosts/codex-events.js +104 -0
  235. package/dist/src/hosts/codex-events.js.map +1 -0
  236. package/dist/src/hosts/codex-exec-controls.js +434 -0
  237. package/dist/src/hosts/codex-exec-controls.js.map +1 -0
  238. package/dist/src/hosts/codex-invocation.js +54 -0
  239. package/dist/src/hosts/codex-invocation.js.map +1 -0
  240. package/dist/src/hosts/codex-marketplace.js +185 -0
  241. package/dist/src/hosts/codex-marketplace.js.map +1 -0
  242. package/dist/src/hosts/codex-native-calls.js +516 -0
  243. package/dist/src/hosts/codex-native-calls.js.map +1 -0
  244. package/dist/src/hosts/codex-process.js +10 -0
  245. package/dist/src/hosts/codex-process.js.map +1 -0
  246. package/dist/src/hosts/codex-profile.js +206 -0
  247. package/dist/src/hosts/codex-profile.js.map +1 -0
  248. package/dist/src/hosts/codex-session-files.js +89 -0
  249. package/dist/src/hosts/codex-session-files.js.map +1 -0
  250. package/dist/src/hosts/codex-state.js +310 -0
  251. package/dist/src/hosts/codex-state.js.map +1 -0
  252. package/dist/src/hosts/codex.js +527 -0
  253. package/dist/src/hosts/codex.js.map +1 -0
  254. package/dist/src/hosts/isolation-common.js +43 -0
  255. package/dist/src/hosts/isolation-common.js.map +1 -0
  256. package/dist/src/hosts/isolation-roots.js +64 -0
  257. package/dist/src/hosts/isolation-roots.js.map +1 -0
  258. package/dist/src/hosts/isolation.js +12 -0
  259. package/dist/src/hosts/isolation.js.map +1 -0
  260. package/dist/src/hosts/linux-sandbox.js +127 -0
  261. package/dist/src/hosts/linux-sandbox.js.map +1 -0
  262. package/dist/src/hosts/mac-sandbox.js +137 -0
  263. package/dist/src/hosts/mac-sandbox.js.map +1 -0
  264. package/dist/src/hosts/native-controls.js +151 -0
  265. package/dist/src/hosts/native-controls.js.map +1 -0
  266. package/dist/src/hosts/native-request.js +33 -0
  267. package/dist/src/hosts/native-request.js.map +1 -0
  268. package/dist/src/hosts/process-lifecycle.js +167 -0
  269. package/dist/src/hosts/process-lifecycle.js.map +1 -0
  270. package/dist/src/hosts/protected-worktrees.js +81 -0
  271. package/dist/src/hosts/protected-worktrees.js.map +1 -0
  272. package/dist/src/hosts/skill-hook-catalog.js +100 -0
  273. package/dist/src/hosts/skill-hook-catalog.js.map +1 -0
  274. package/dist/src/hosts/skill-hook-handler.js +228 -0
  275. package/dist/src/hosts/skill-hook-handler.js.map +1 -0
  276. package/dist/src/hosts/skill-hooks.js +423 -0
  277. package/dist/src/hosts/skill-hooks.js.map +1 -0
  278. package/dist/src/hosts/workspace-fingerprint.js +72 -0
  279. package/dist/src/hosts/workspace-fingerprint.js.map +1 -0
  280. package/dist/src/identity.js +167 -0
  281. package/dist/src/identity.js.map +1 -0
  282. package/dist/src/instrumentation.js +83 -0
  283. package/dist/src/instrumentation.js.map +1 -0
  284. package/dist/src/native-transcript-state.js +85 -0
  285. package/dist/src/native-transcript-state.js.map +1 -0
  286. package/dist/src/native-transcript-view.js +65 -0
  287. package/dist/src/native-transcript-view.js.map +1 -0
  288. package/dist/src/native-transcripts.js +208 -0
  289. package/dist/src/native-transcripts.js.map +1 -0
  290. package/dist/src/paths.js +13 -0
  291. package/dist/src/paths.js.map +1 -0
  292. package/dist/src/process-lifecycle.js +101 -0
  293. package/dist/src/process-lifecycle.js.map +1 -0
  294. package/dist/src/provenance.js +263 -0
  295. package/dist/src/provenance.js.map +1 -0
  296. package/dist/src/prune.js +228 -0
  297. package/dist/src/prune.js.map +1 -0
  298. package/dist/src/report.js +276 -0
  299. package/dist/src/report.js.map +1 -0
  300. package/dist/src/resolved-case.js +29 -0
  301. package/dist/src/resolved-case.js.map +1 -0
  302. package/dist/src/results-lock.js +40 -0
  303. package/dist/src/results-lock.js.map +1 -0
  304. package/dist/src/results.js +127 -0
  305. package/dist/src/results.js.map +1 -0
  306. package/dist/src/run-owner.js +283 -0
  307. package/dist/src/run-owner.js.map +1 -0
  308. package/dist/src/runner-paths.js +11 -0
  309. package/dist/src/runner-paths.js.map +1 -0
  310. package/dist/src/runtime/config.js +323 -0
  311. package/dist/src/runtime/config.js.map +1 -0
  312. package/dist/src/runtime/discovery-apple.js +65 -0
  313. package/dist/src/runtime/discovery-apple.js.map +1 -0
  314. package/dist/src/runtime/discovery-providers.js +37 -0
  315. package/dist/src/runtime/discovery-providers.js.map +1 -0
  316. package/dist/src/runtime/discovery.js +40 -0
  317. package/dist/src/runtime/discovery.js.map +1 -0
  318. package/dist/src/runtime/hook-processes.js +81 -0
  319. package/dist/src/runtime/hook-processes.js.map +1 -0
  320. package/dist/src/runtime/hooks.js +304 -0
  321. package/dist/src/runtime/hooks.js.map +1 -0
  322. package/dist/src/runtime/paths.js +244 -0
  323. package/dist/src/runtime/paths.js.map +1 -0
  324. package/dist/src/runtime/query.js +76 -0
  325. package/dist/src/runtime/query.js.map +1 -0
  326. package/dist/src/runtime/seeds.js +98 -0
  327. package/dist/src/runtime/seeds.js.map +1 -0
  328. package/dist/src/runtime/shared-cache.js +81 -0
  329. package/dist/src/runtime/shared-cache.js.map +1 -0
  330. package/dist/src/runtime/state.js +106 -0
  331. package/dist/src/runtime/state.js.map +1 -0
  332. package/dist/src/runtime-process.js +148 -0
  333. package/dist/src/runtime-process.js.map +1 -0
  334. package/dist/src/schema-types.js +2 -0
  335. package/dist/src/schema-types.js.map +1 -0
  336. package/dist/src/schema.js +16 -0
  337. package/dist/src/schema.js.map +1 -0
  338. package/dist/src/shell.js +5 -0
  339. package/dist/src/shell.js.map +1 -0
  340. package/dist/src/sqlite-lock.js +18 -0
  341. package/dist/src/sqlite-lock.js.map +1 -0
  342. package/dist/src/storage.js +21 -0
  343. package/dist/src/storage.js.map +1 -0
  344. package/dist/src/transcript-retention.js +109 -0
  345. package/dist/src/transcript-retention.js.map +1 -0
  346. package/dist/src/value-guards.js +26 -0
  347. package/dist/src/value-guards.js.map +1 -0
  348. package/docs/architecture.md +5 -2
  349. package/docs/creating-cases.md +2 -3
  350. package/docs/development-cli.md +12 -7
  351. package/docs/documentation-quality.md +4 -3
  352. package/docs/evaluation-workflow.md +8 -8
  353. package/docs/getting-started.md +7 -6
  354. package/docs/guide-evaluation.md +1 -1
  355. package/docs/identity-v1.md +4 -1
  356. package/docs/installing.md +31 -13
  357. package/docs/licensing.md +2 -2
  358. package/docs/native-hosts.md +1 -1
  359. package/docs/recipes.md +41 -40
  360. package/docs/releases.md +20 -4
  361. package/docs/run-settings-v1.md +3 -3
  362. package/docs/specs/repository-guide.md +1 -1
  363. package/docs/troubleshooting.md +1 -1
  364. package/docs/typescript-quality.md +18 -1
  365. package/examples/recipes/executable.ts +19 -0
  366. package/examples/recipes/extension-artifacts.ts +1 -1
  367. package/examples/recipes/extension.ts +2 -1
  368. package/examples/recipes/modules.ts +9 -0
  369. package/examples/recipes/run-inputs.ts +14 -19
  370. package/examples/recipes/run-options.ts +9 -8
  371. package/examples/recipes/run.ts +21 -7
  372. package/examples/templates/repository-skill/extension-data.ts +1 -1
  373. package/examples/templates/repository-skill/extension.ts +2 -1
  374. package/package.json +14 -6
  375. package/src/cli/demo.ts +3 -2
  376. package/src/cli/help.ts +4 -3
  377. package/src/cli/init-settings.ts +5 -4
  378. package/src/cli/init.ts +9 -8
  379. package/src/cli/invocation.ts +2 -1
  380. package/src/cli/preparation.ts +2 -2
  381. package/src/cli.ts +1 -1
  382. package/src/executable.ts +19 -0
  383. package/src/extension-client.ts +6 -12
  384. package/src/fixtures/setup.ts +3 -2
  385. package/src/git.ts +2 -1
  386. package/src/graders/git-head.ts +3 -2
  387. package/src/graders/shell.ts +4 -3
  388. package/src/hosts/claude-keychain.ts +3 -2
  389. package/src/hosts/claude-login-refresh.ts +3 -2
  390. package/src/hosts/claude-refresh-lock.ts +2 -1
  391. package/src/hosts/claude-settings.ts +3 -1
  392. package/src/hosts/claude.ts +1 -1
  393. package/src/hosts/isolation-roots.ts +3 -2
  394. package/src/hosts/process-lifecycle.ts +4 -6
  395. package/src/hosts/protected-worktrees.ts +2 -1
  396. package/src/hosts/skill-hook-handler.ts +1 -1
  397. package/src/hosts/skill-hooks.ts +10 -2
  398. package/src/provenance.ts +7 -6
  399. package/src/results-lock.ts +4 -4
  400. package/src/run-owner.ts +15 -9
  401. package/src/runner-paths.ts +21 -0
  402. package/src/runtime/hook-processes.ts +2 -1
  403. package/src/runtime/hooks.ts +9 -7
  404. package/src/runtime-process.ts +194 -0
  405. package/src/sqlite-lock.ts +25 -0
@@ -0,0 +1,2 @@
1
+ // Generated by bun run schemas:generate; do not edit.
2
+ "use strict";module.exports = validate20;module.exports.default = validate20;const schema31 = {"$schema":"https://json-schema.org/draft/2020-12/schema","$id":"urn:sevro:schema:cli-result:v1","title":"Sevro CLI JSON result v1","type":"object","required":["format","runId","execution","grading","task","exitCode","evidencePath","cases"],"properties":{"format":{"const":"sevro.cli-result.v1"},"runId":{"type":["string","null"]},"execution":{"$ref":"#/$defs/execution"},"grading":{"$ref":"#/$defs/grading"},"task":{"$ref":"#/$defs/task"},"exitCode":{"enum":[0,1,2,3,4,64,70,130,143]},"evidencePath":{"type":["string","null"]},"cases":{"type":"array","items":{"$ref":"#/$defs/case"}},"diagnostic":{"$ref":"#/$defs/diagnostic"}},"allOf":[{"$ref":"#/$defs/stateConsistency"}],"additionalProperties":false,"$defs":{"stateConsistency":{"allOf":[{"if":{"properties":{"execution":{"properties":{"status":{"enum":["failed","cancelled","not_run"]}}}}},"then":{"properties":{"task":{"properties":{"verdict":{"not":{"const":"passed"}}}}}}},{"if":{"properties":{"grading":{"properties":{"status":{"enum":["error","unavailable","not_requested"]}}}}},"then":{"properties":{"task":{"properties":{"verdict":{"not":{"const":"passed"}}}}}}}]},"execution":{"type":"object","required":["status"],"properties":{"status":{"enum":["completed","failed","cancelled","not_run"]},"errorCode":{"type":"string","minLength":1}},"additionalProperties":false},"grading":{"type":"object","required":["status"],"properties":{"status":{"enum":["completed","error","unavailable","not_requested"]},"errorCode":{"type":"string","minLength":1}},"additionalProperties":false},"task":{"type":"object","required":["verdict"],"properties":{"verdict":{"enum":["passed","failed","not_assessed"]}},"additionalProperties":false},"check":{"type":"object","required":["id","grader","status"],"properties":{"id":{"type":"string","minLength":1},"grader":{"type":"string","minLength":1},"status":{"enum":["passed","failed","unavailable"]},"detail":{"type":"string","maxLength":4096},"evidenceRefs":{"type":"array","items":{"type":"string","minLength":1},"uniqueItems":true}},"additionalProperties":false},"domainOutcome":{"type":"object","required":["id","status","evidenceRefs"],"properties":{"id":{"type":"string","pattern":"^[a-z][a-z0-9]*(?:[.-][a-z0-9]+)+$","maxLength":128},"status":{"enum":["passed","failed","unavailable"]},"detail":{"type":"string","maxLength":4096},"evidenceRefs":{"type":"array","items":{"type":"string","minLength":1},"uniqueItems":true},"data":{"type":"object"}},"additionalProperties":false},"trial":{"type":"object","required":["trial","execution","grading","task","checks","artifactPath"],"properties":{"trial":{"type":"integer","minimum":1},"execution":{"$ref":"#/$defs/execution"},"grading":{"$ref":"#/$defs/grading"},"task":{"$ref":"#/$defs/task"},"checks":{"type":"array","items":{"$ref":"#/$defs/check"}},"domainOutcomes":{"type":"array","items":{"$ref":"#/$defs/domainOutcome"}},"artifactPath":{"type":["string","null"]}},"allOf":[{"$ref":"#/$defs/stateConsistency"}],"additionalProperties":false},"case":{"type":"object","required":["caseId","execution","grading","task","trials"],"properties":{"caseId":{"type":"string","minLength":1},"execution":{"$ref":"#/$defs/execution"},"grading":{"$ref":"#/$defs/grading"},"task":{"$ref":"#/$defs/task"},"trials":{"type":"array","items":{"$ref":"#/$defs/trial"}}},"allOf":[{"$ref":"#/$defs/stateConsistency"}],"additionalProperties":false},"diagnostic":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","minLength":1},"message":{"type":"string","minLength":1,"maxLength":4096}},"additionalProperties":false}}};const schema32 = {"allOf":[{"if":{"properties":{"execution":{"properties":{"status":{"enum":["failed","cancelled","not_run"]}}}}},"then":{"properties":{"task":{"properties":{"verdict":{"not":{"const":"passed"}}}}}}},{"if":{"properties":{"grading":{"properties":{"status":{"enum":["error","unavailable","not_requested"]}}}}},"then":{"properties":{"task":{"properties":{"verdict":{"not":{"const":"passed"}}}}}}}]};const schema33 = {"type":"object","required":["status"],"properties":{"status":{"enum":["completed","failed","cancelled","not_run"]},"errorCode":{"type":"string","minLength":1}},"additionalProperties":false};const schema34 = {"type":"object","required":["status"],"properties":{"status":{"enum":["completed","error","unavailable","not_requested"]},"errorCode":{"type":"string","minLength":1}},"additionalProperties":false};const schema35 = {"type":"object","required":["verdict"],"properties":{"verdict":{"enum":["passed","failed","not_assessed"]}},"additionalProperties":false};const schema48 = {"type":"object","required":["code","message"],"properties":{"code":{"type":"string","minLength":1},"message":{"type":"string","minLength":1,"maxLength":4096}},"additionalProperties":false};const func1 = Object.prototype.hasOwnProperty;const func2 = require("ajv/dist/runtime/ucs2length").default;const schema36 = {"type":"object","required":["caseId","execution","grading","task","trials"],"properties":{"caseId":{"type":"string","minLength":1},"execution":{"$ref":"#/$defs/execution"},"grading":{"$ref":"#/$defs/grading"},"task":{"$ref":"#/$defs/task"},"trials":{"type":"array","items":{"$ref":"#/$defs/trial"}}},"allOf":[{"$ref":"#/$defs/stateConsistency"}],"additionalProperties":false};const schema41 = {"type":"object","required":["trial","execution","grading","task","checks","artifactPath"],"properties":{"trial":{"type":"integer","minimum":1},"execution":{"$ref":"#/$defs/execution"},"grading":{"$ref":"#/$defs/grading"},"task":{"$ref":"#/$defs/task"},"checks":{"type":"array","items":{"$ref":"#/$defs/check"}},"domainOutcomes":{"type":"array","items":{"$ref":"#/$defs/domainOutcome"}},"artifactPath":{"type":["string","null"]}},"allOf":[{"$ref":"#/$defs/stateConsistency"}],"additionalProperties":false};const schema46 = {"type":"object","required":["id","grader","status"],"properties":{"id":{"type":"string","minLength":1},"grader":{"type":"string","minLength":1},"status":{"enum":["passed","failed","unavailable"]},"detail":{"type":"string","maxLength":4096},"evidenceRefs":{"type":"array","items":{"type":"string","minLength":1},"uniqueItems":true}},"additionalProperties":false};const schema47 = {"type":"object","required":["id","status","evidenceRefs"],"properties":{"id":{"type":"string","pattern":"^[a-z][a-z0-9]*(?:[.-][a-z0-9]+)+$","maxLength":128},"status":{"enum":["passed","failed","unavailable"]},"detail":{"type":"string","maxLength":4096},"evidenceRefs":{"type":"array","items":{"type":"string","minLength":1},"uniqueItems":true},"data":{"type":"object"}},"additionalProperties":false};const pattern4 = new RegExp("^[a-z][a-z0-9]*(?:[.-][a-z0-9]+)+$", "u");function validate22(data, {instancePath="", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){let vErrors = null;let errors = 0;const evaluated0 = validate22.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}const _errs3 = errors;const _errs4 = errors;let valid3 = true;const _errs5 = errors;if(data && typeof data == "object" && !Array.isArray(data)){if(data.execution !== undefined){let data0 = data.execution;if(data0 && typeof data0 == "object" && !Array.isArray(data0)){if(data0.status !== undefined){let data1 = data0.status;if(!(((data1 === "failed") || (data1 === "cancelled")) || (data1 === "not_run"))){const err0 = {};if(vErrors === null){vErrors = [err0];}else {vErrors.push(err0);}errors++;}}}}}var _valid0 = _errs5 === errors;errors = _errs4;if(vErrors !== null){if(_errs4){vErrors.length = _errs4;}else {vErrors = null;}}if(_valid0){const _errs8 = errors;if(data && typeof data == "object" && !Array.isArray(data)){if(data.task !== undefined){let data2 = data.task;if(data2 && typeof data2 == "object" && !Array.isArray(data2)){if(data2.verdict !== undefined){const _errs11 = errors;const _errs12 = errors;if("passed" !== data2.verdict){const err1 = {};if(vErrors === null){vErrors = [err1];}else {vErrors.push(err1);}errors++;}var valid8 = _errs12 === errors;if(valid8){validate22.errors = [{instancePath:instancePath+"/task/verdict",schemaPath:"#/$defs/stateConsistency/allOf/0/then/properties/task/properties/verdict/not",keyword:"not",params:{},message:"must NOT be valid"}];return false;}else {errors = _errs11;if(vErrors !== null){if(_errs11){vErrors.length = _errs11;}else {vErrors = null;}}}}}}}var _valid0 = _errs8 === errors;valid3 = _valid0;if(valid3){var props0 = {};props0.task = true;props0.execution = true;}}if(!valid3){const err2 = {instancePath,schemaPath:"#/$defs/stateConsistency/allOf/0/if",keyword:"if",params:{failingKeyword: "then"},message:"must match \"then\" schema"};if(vErrors === null){vErrors = [err2];}else {vErrors.push(err2);}errors++;validate22.errors = vErrors;return false;}var valid2 = _errs3 === errors;if(valid2){const _errs13 = errors;const _errs14 = errors;let valid9 = true;const _errs15 = errors;if(data && typeof data == "object" && !Array.isArray(data)){if(data.grading !== undefined){let data4 = data.grading;if(data4 && typeof data4 == "object" && !Array.isArray(data4)){if(data4.status !== undefined){let data5 = data4.status;if(!(((data5 === "error") || (data5 === "unavailable")) || (data5 === "not_requested"))){const err3 = {};if(vErrors === null){vErrors = [err3];}else {vErrors.push(err3);}errors++;}}}}}var _valid1 = _errs15 === errors;errors = _errs14;if(vErrors !== null){if(_errs14){vErrors.length = _errs14;}else {vErrors = null;}}if(_valid1){const _errs18 = errors;if(data && typeof data == "object" && !Array.isArray(data)){if(data.task !== undefined){let data6 = data.task;if(data6 && typeof data6 == "object" && !Array.isArray(data6)){if(data6.verdict !== undefined){const _errs21 = errors;const _errs22 = errors;if("passed" !== data6.verdict){const err4 = {};if(vErrors === null){vErrors = [err4];}else {vErrors.push(err4);}errors++;}var valid14 = _errs22 === errors;if(valid14){validate22.errors = [{instancePath:instancePath+"/task/verdict",schemaPath:"#/$defs/stateConsistency/allOf/1/then/properties/task/properties/verdict/not",keyword:"not",params:{},message:"must NOT be valid"}];return false;}else {errors = _errs21;if(vErrors !== null){if(_errs21){vErrors.length = _errs21;}else {vErrors = null;}}}}}}}var _valid1 = _errs18 === errors;valid9 = _valid1;if(valid9){var props1 = {};props1.task = true;props1.grading = true;}}if(!valid9){const err5 = {instancePath,schemaPath:"#/$defs/stateConsistency/allOf/1/if",keyword:"if",params:{failingKeyword: "then"},message:"must match \"then\" schema"};if(vErrors === null){vErrors = [err5];}else {vErrors.push(err5);}errors++;validate22.errors = vErrors;return false;}var valid2 = _errs13 === errors;if(valid2){if(props0 !== true && props1 !== undefined){if(props1 === true){props0 = true;}else {props0 = props0 || {};Object.assign(props0, props1);}}}}if(errors === 0){if(data && typeof data == "object" && !Array.isArray(data)){let missing0;if(((((((data.trial === undefined) && (missing0 = "trial")) || ((data.execution === undefined) && (missing0 = "execution"))) || ((data.grading === undefined) && (missing0 = "grading"))) || ((data.task === undefined) && (missing0 = "task"))) || ((data.checks === undefined) && (missing0 = "checks"))) || ((data.artifactPath === undefined) && (missing0 = "artifactPath"))){validate22.errors = [{instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: missing0},message:"must have required property '"+missing0+"'"}];return false;}else {const _errs23 = errors;for(const key0 in data){if(!(((((((key0 === "trial") || (key0 === "execution")) || (key0 === "grading")) || (key0 === "task")) || (key0 === "checks")) || (key0 === "domainOutcomes")) || (key0 === "artifactPath"))){validate22.errors = [{instancePath,schemaPath:"#/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key0},message:"must NOT have additional properties"}];return false;break;}}if(_errs23 === errors){if(data.trial !== undefined){let data8 = data.trial;const _errs24 = errors;if(!(((typeof data8 == "number") && (!(data8 % 1) && !isNaN(data8))) && (isFinite(data8)))){validate22.errors = [{instancePath:instancePath+"/trial",schemaPath:"#/properties/trial/type",keyword:"type",params:{type: "integer"},message:"must be integer"}];return false;}if(errors === _errs24){if((typeof data8 == "number") && (isFinite(data8))){if(data8 < 1 || isNaN(data8)){validate22.errors = [{instancePath:instancePath+"/trial",schemaPath:"#/properties/trial/minimum",keyword:"minimum",params:{comparison: ">=", limit: 1},message:"must be >= 1"}];return false;}}}var valid15 = _errs24 === errors;}else {var valid15 = true;}if(valid15){if(data.execution !== undefined){let data9 = data.execution;const _errs26 = errors;const _errs27 = errors;if(errors === _errs27){if(data9 && typeof data9 == "object" && !Array.isArray(data9)){let missing1;if((data9.status === undefined) && (missing1 = "status")){validate22.errors = [{instancePath:instancePath+"/execution",schemaPath:"#/$defs/execution/required",keyword:"required",params:{missingProperty: missing1},message:"must have required property '"+missing1+"'"}];return false;}else {const _errs29 = errors;for(const key1 in data9){if(!((key1 === "status") || (key1 === "errorCode"))){validate22.errors = [{instancePath:instancePath+"/execution",schemaPath:"#/$defs/execution/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key1},message:"must NOT have additional properties"}];return false;break;}}if(_errs29 === errors){if(data9.status !== undefined){let data10 = data9.status;const _errs30 = errors;if(!((((data10 === "completed") || (data10 === "failed")) || (data10 === "cancelled")) || (data10 === "not_run"))){validate22.errors = [{instancePath:instancePath+"/execution/status",schemaPath:"#/$defs/execution/properties/status/enum",keyword:"enum",params:{allowedValues: schema33.properties.status.enum},message:"must be equal to one of the allowed values"}];return false;}var valid17 = _errs30 === errors;}else {var valid17 = true;}if(valid17){if(data9.errorCode !== undefined){let data11 = data9.errorCode;const _errs31 = errors;if(errors === _errs31){if(typeof data11 === "string"){if(func2(data11) < 1){validate22.errors = [{instancePath:instancePath+"/execution/errorCode",schemaPath:"#/$defs/execution/properties/errorCode/minLength",keyword:"minLength",params:{limit: 1},message:"must NOT have fewer than 1 characters"}];return false;}}else {validate22.errors = [{instancePath:instancePath+"/execution/errorCode",schemaPath:"#/$defs/execution/properties/errorCode/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid17 = _errs31 === errors;}else {var valid17 = true;}}}}}else {validate22.errors = [{instancePath:instancePath+"/execution",schemaPath:"#/$defs/execution/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid15 = _errs26 === errors;}else {var valid15 = true;}if(valid15){if(data.grading !== undefined){let data12 = data.grading;const _errs33 = errors;const _errs34 = errors;if(errors === _errs34){if(data12 && typeof data12 == "object" && !Array.isArray(data12)){let missing2;if((data12.status === undefined) && (missing2 = "status")){validate22.errors = [{instancePath:instancePath+"/grading",schemaPath:"#/$defs/grading/required",keyword:"required",params:{missingProperty: missing2},message:"must have required property '"+missing2+"'"}];return false;}else {const _errs36 = errors;for(const key2 in data12){if(!((key2 === "status") || (key2 === "errorCode"))){validate22.errors = [{instancePath:instancePath+"/grading",schemaPath:"#/$defs/grading/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key2},message:"must NOT have additional properties"}];return false;break;}}if(_errs36 === errors){if(data12.status !== undefined){let data13 = data12.status;const _errs37 = errors;if(!((((data13 === "completed") || (data13 === "error")) || (data13 === "unavailable")) || (data13 === "not_requested"))){validate22.errors = [{instancePath:instancePath+"/grading/status",schemaPath:"#/$defs/grading/properties/status/enum",keyword:"enum",params:{allowedValues: schema34.properties.status.enum},message:"must be equal to one of the allowed values"}];return false;}var valid19 = _errs37 === errors;}else {var valid19 = true;}if(valid19){if(data12.errorCode !== undefined){let data14 = data12.errorCode;const _errs38 = errors;if(errors === _errs38){if(typeof data14 === "string"){if(func2(data14) < 1){validate22.errors = [{instancePath:instancePath+"/grading/errorCode",schemaPath:"#/$defs/grading/properties/errorCode/minLength",keyword:"minLength",params:{limit: 1},message:"must NOT have fewer than 1 characters"}];return false;}}else {validate22.errors = [{instancePath:instancePath+"/grading/errorCode",schemaPath:"#/$defs/grading/properties/errorCode/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid19 = _errs38 === errors;}else {var valid19 = true;}}}}}else {validate22.errors = [{instancePath:instancePath+"/grading",schemaPath:"#/$defs/grading/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid15 = _errs33 === errors;}else {var valid15 = true;}if(valid15){if(data.task !== undefined){let data15 = data.task;const _errs40 = errors;const _errs41 = errors;if(errors === _errs41){if(data15 && typeof data15 == "object" && !Array.isArray(data15)){let missing3;if((data15.verdict === undefined) && (missing3 = "verdict")){validate22.errors = [{instancePath:instancePath+"/task",schemaPath:"#/$defs/task/required",keyword:"required",params:{missingProperty: missing3},message:"must have required property '"+missing3+"'"}];return false;}else {const _errs43 = errors;for(const key3 in data15){if(!(key3 === "verdict")){validate22.errors = [{instancePath:instancePath+"/task",schemaPath:"#/$defs/task/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key3},message:"must NOT have additional properties"}];return false;break;}}if(_errs43 === errors){if(data15.verdict !== undefined){let data16 = data15.verdict;if(!(((data16 === "passed") || (data16 === "failed")) || (data16 === "not_assessed"))){validate22.errors = [{instancePath:instancePath+"/task/verdict",schemaPath:"#/$defs/task/properties/verdict/enum",keyword:"enum",params:{allowedValues: schema35.properties.verdict.enum},message:"must be equal to one of the allowed values"}];return false;}}}}}else {validate22.errors = [{instancePath:instancePath+"/task",schemaPath:"#/$defs/task/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid15 = _errs40 === errors;}else {var valid15 = true;}if(valid15){if(data.checks !== undefined){let data17 = data.checks;const _errs45 = errors;if(errors === _errs45){if(Array.isArray(data17)){var valid22 = true;const len0 = data17.length;for(let i0=0; i0<len0; i0++){let data18 = data17[i0];const _errs47 = errors;const _errs48 = errors;if(errors === _errs48){if(data18 && typeof data18 == "object" && !Array.isArray(data18)){let missing4;if((((data18.id === undefined) && (missing4 = "id")) || ((data18.grader === undefined) && (missing4 = "grader"))) || ((data18.status === undefined) && (missing4 = "status"))){validate22.errors = [{instancePath:instancePath+"/checks/" + i0,schemaPath:"#/$defs/check/required",keyword:"required",params:{missingProperty: missing4},message:"must have required property '"+missing4+"'"}];return false;}else {const _errs50 = errors;for(const key4 in data18){if(!(((((key4 === "id") || (key4 === "grader")) || (key4 === "status")) || (key4 === "detail")) || (key4 === "evidenceRefs"))){validate22.errors = [{instancePath:instancePath+"/checks/" + i0,schemaPath:"#/$defs/check/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key4},message:"must NOT have additional properties"}];return false;break;}}if(_errs50 === errors){if(data18.id !== undefined){let data19 = data18.id;const _errs51 = errors;if(errors === _errs51){if(typeof data19 === "string"){if(func2(data19) < 1){validate22.errors = [{instancePath:instancePath+"/checks/" + i0+"/id",schemaPath:"#/$defs/check/properties/id/minLength",keyword:"minLength",params:{limit: 1},message:"must NOT have fewer than 1 characters"}];return false;}}else {validate22.errors = [{instancePath:instancePath+"/checks/" + i0+"/id",schemaPath:"#/$defs/check/properties/id/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid24 = _errs51 === errors;}else {var valid24 = true;}if(valid24){if(data18.grader !== undefined){let data20 = data18.grader;const _errs53 = errors;if(errors === _errs53){if(typeof data20 === "string"){if(func2(data20) < 1){validate22.errors = [{instancePath:instancePath+"/checks/" + i0+"/grader",schemaPath:"#/$defs/check/properties/grader/minLength",keyword:"minLength",params:{limit: 1},message:"must NOT have fewer than 1 characters"}];return false;}}else {validate22.errors = [{instancePath:instancePath+"/checks/" + i0+"/grader",schemaPath:"#/$defs/check/properties/grader/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid24 = _errs53 === errors;}else {var valid24 = true;}if(valid24){if(data18.status !== undefined){let data21 = data18.status;const _errs55 = errors;if(!(((data21 === "passed") || (data21 === "failed")) || (data21 === "unavailable"))){validate22.errors = [{instancePath:instancePath+"/checks/" + i0+"/status",schemaPath:"#/$defs/check/properties/status/enum",keyword:"enum",params:{allowedValues: schema46.properties.status.enum},message:"must be equal to one of the allowed values"}];return false;}var valid24 = _errs55 === errors;}else {var valid24 = true;}if(valid24){if(data18.detail !== undefined){let data22 = data18.detail;const _errs56 = errors;if(errors === _errs56){if(typeof data22 === "string"){if(func2(data22) > 4096){validate22.errors = [{instancePath:instancePath+"/checks/" + i0+"/detail",schemaPath:"#/$defs/check/properties/detail/maxLength",keyword:"maxLength",params:{limit: 4096},message:"must NOT have more than 4096 characters"}];return false;}}else {validate22.errors = [{instancePath:instancePath+"/checks/" + i0+"/detail",schemaPath:"#/$defs/check/properties/detail/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid24 = _errs56 === errors;}else {var valid24 = true;}if(valid24){if(data18.evidenceRefs !== undefined){let data23 = data18.evidenceRefs;const _errs58 = errors;if(errors === _errs58){if(Array.isArray(data23)){var valid25 = true;const len1 = data23.length;for(let i1=0; i1<len1; i1++){let data24 = data23[i1];const _errs60 = errors;if(errors === _errs60){if(typeof data24 === "string"){if(func2(data24) < 1){validate22.errors = [{instancePath:instancePath+"/checks/" + i0+"/evidenceRefs/" + i1,schemaPath:"#/$defs/check/properties/evidenceRefs/items/minLength",keyword:"minLength",params:{limit: 1},message:"must NOT have fewer than 1 characters"}];return false;}}else {validate22.errors = [{instancePath:instancePath+"/checks/" + i0+"/evidenceRefs/" + i1,schemaPath:"#/$defs/check/properties/evidenceRefs/items/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid25 = _errs60 === errors;if(!valid25){break;}}if(valid25){let i2 = data23.length;let j0;if(i2 > 1){const indices0 = {};for(;i2--;){let item0 = data23[i2];if(typeof item0 !== "string"){continue;}if(typeof indices0[item0] == "number"){j0 = indices0[item0];validate22.errors = [{instancePath:instancePath+"/checks/" + i0+"/evidenceRefs",schemaPath:"#/$defs/check/properties/evidenceRefs/uniqueItems",keyword:"uniqueItems",params:{i: i2, j: j0},message:"must NOT have duplicate items (items ## "+j0+" and "+i2+" are identical)"}];return false;break;}indices0[item0] = i2;}}}}else {validate22.errors = [{instancePath:instancePath+"/checks/" + i0+"/evidenceRefs",schemaPath:"#/$defs/check/properties/evidenceRefs/type",keyword:"type",params:{type: "array"},message:"must be array"}];return false;}}var valid24 = _errs58 === errors;}else {var valid24 = true;}}}}}}}}else {validate22.errors = [{instancePath:instancePath+"/checks/" + i0,schemaPath:"#/$defs/check/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid22 = _errs47 === errors;if(!valid22){break;}}}else {validate22.errors = [{instancePath:instancePath+"/checks",schemaPath:"#/properties/checks/type",keyword:"type",params:{type: "array"},message:"must be array"}];return false;}}var valid15 = _errs45 === errors;}else {var valid15 = true;}if(valid15){if(data.domainOutcomes !== undefined){let data25 = data.domainOutcomes;const _errs62 = errors;if(errors === _errs62){if(Array.isArray(data25)){var valid27 = true;const len2 = data25.length;for(let i3=0; i3<len2; i3++){let data26 = data25[i3];const _errs64 = errors;const _errs65 = errors;if(errors === _errs65){if(data26 && typeof data26 == "object" && !Array.isArray(data26)){let missing5;if((((data26.id === undefined) && (missing5 = "id")) || ((data26.status === undefined) && (missing5 = "status"))) || ((data26.evidenceRefs === undefined) && (missing5 = "evidenceRefs"))){validate22.errors = [{instancePath:instancePath+"/domainOutcomes/" + i3,schemaPath:"#/$defs/domainOutcome/required",keyword:"required",params:{missingProperty: missing5},message:"must have required property '"+missing5+"'"}];return false;}else {const _errs67 = errors;for(const key5 in data26){if(!(((((key5 === "id") || (key5 === "status")) || (key5 === "detail")) || (key5 === "evidenceRefs")) || (key5 === "data"))){validate22.errors = [{instancePath:instancePath+"/domainOutcomes/" + i3,schemaPath:"#/$defs/domainOutcome/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key5},message:"must NOT have additional properties"}];return false;break;}}if(_errs67 === errors){if(data26.id !== undefined){let data27 = data26.id;const _errs68 = errors;if(errors === _errs68){if(typeof data27 === "string"){if(func2(data27) > 128){validate22.errors = [{instancePath:instancePath+"/domainOutcomes/" + i3+"/id",schemaPath:"#/$defs/domainOutcome/properties/id/maxLength",keyword:"maxLength",params:{limit: 128},message:"must NOT have more than 128 characters"}];return false;}else {if(!pattern4.test(data27)){validate22.errors = [{instancePath:instancePath+"/domainOutcomes/" + i3+"/id",schemaPath:"#/$defs/domainOutcome/properties/id/pattern",keyword:"pattern",params:{pattern: "^[a-z][a-z0-9]*(?:[.-][a-z0-9]+)+$"},message:"must match pattern \""+"^[a-z][a-z0-9]*(?:[.-][a-z0-9]+)+$"+"\""}];return false;}}}else {validate22.errors = [{instancePath:instancePath+"/domainOutcomes/" + i3+"/id",schemaPath:"#/$defs/domainOutcome/properties/id/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid29 = _errs68 === errors;}else {var valid29 = true;}if(valid29){if(data26.status !== undefined){let data28 = data26.status;const _errs70 = errors;if(!(((data28 === "passed") || (data28 === "failed")) || (data28 === "unavailable"))){validate22.errors = [{instancePath:instancePath+"/domainOutcomes/" + i3+"/status",schemaPath:"#/$defs/domainOutcome/properties/status/enum",keyword:"enum",params:{allowedValues: schema47.properties.status.enum},message:"must be equal to one of the allowed values"}];return false;}var valid29 = _errs70 === errors;}else {var valid29 = true;}if(valid29){if(data26.detail !== undefined){let data29 = data26.detail;const _errs71 = errors;if(errors === _errs71){if(typeof data29 === "string"){if(func2(data29) > 4096){validate22.errors = [{instancePath:instancePath+"/domainOutcomes/" + i3+"/detail",schemaPath:"#/$defs/domainOutcome/properties/detail/maxLength",keyword:"maxLength",params:{limit: 4096},message:"must NOT have more than 4096 characters"}];return false;}}else {validate22.errors = [{instancePath:instancePath+"/domainOutcomes/" + i3+"/detail",schemaPath:"#/$defs/domainOutcome/properties/detail/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid29 = _errs71 === errors;}else {var valid29 = true;}if(valid29){if(data26.evidenceRefs !== undefined){let data30 = data26.evidenceRefs;const _errs73 = errors;if(errors === _errs73){if(Array.isArray(data30)){var valid30 = true;const len3 = data30.length;for(let i4=0; i4<len3; i4++){let data31 = data30[i4];const _errs75 = errors;if(errors === _errs75){if(typeof data31 === "string"){if(func2(data31) < 1){validate22.errors = [{instancePath:instancePath+"/domainOutcomes/" + i3+"/evidenceRefs/" + i4,schemaPath:"#/$defs/domainOutcome/properties/evidenceRefs/items/minLength",keyword:"minLength",params:{limit: 1},message:"must NOT have fewer than 1 characters"}];return false;}}else {validate22.errors = [{instancePath:instancePath+"/domainOutcomes/" + i3+"/evidenceRefs/" + i4,schemaPath:"#/$defs/domainOutcome/properties/evidenceRefs/items/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid30 = _errs75 === errors;if(!valid30){break;}}if(valid30){let i5 = data30.length;let j1;if(i5 > 1){const indices1 = {};for(;i5--;){let item1 = data30[i5];if(typeof item1 !== "string"){continue;}if(typeof indices1[item1] == "number"){j1 = indices1[item1];validate22.errors = [{instancePath:instancePath+"/domainOutcomes/" + i3+"/evidenceRefs",schemaPath:"#/$defs/domainOutcome/properties/evidenceRefs/uniqueItems",keyword:"uniqueItems",params:{i: i5, j: j1},message:"must NOT have duplicate items (items ## "+j1+" and "+i5+" are identical)"}];return false;break;}indices1[item1] = i5;}}}}else {validate22.errors = [{instancePath:instancePath+"/domainOutcomes/" + i3+"/evidenceRefs",schemaPath:"#/$defs/domainOutcome/properties/evidenceRefs/type",keyword:"type",params:{type: "array"},message:"must be array"}];return false;}}var valid29 = _errs73 === errors;}else {var valid29 = true;}if(valid29){if(data26.data !== undefined){let data32 = data26.data;const _errs77 = errors;if(!(data32 && typeof data32 == "object" && !Array.isArray(data32))){validate22.errors = [{instancePath:instancePath+"/domainOutcomes/" + i3+"/data",schemaPath:"#/$defs/domainOutcome/properties/data/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}var valid29 = _errs77 === errors;}else {var valid29 = true;}}}}}}}}else {validate22.errors = [{instancePath:instancePath+"/domainOutcomes/" + i3,schemaPath:"#/$defs/domainOutcome/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid27 = _errs64 === errors;if(!valid27){break;}}}else {validate22.errors = [{instancePath:instancePath+"/domainOutcomes",schemaPath:"#/properties/domainOutcomes/type",keyword:"type",params:{type: "array"},message:"must be array"}];return false;}}var valid15 = _errs62 === errors;}else {var valid15 = true;}if(valid15){if(data.artifactPath !== undefined){let data33 = data.artifactPath;const _errs79 = errors;if((typeof data33 !== "string") && (data33 !== null)){validate22.errors = [{instancePath:instancePath+"/artifactPath",schemaPath:"#/properties/artifactPath/type",keyword:"type",params:{type: schema41.properties.artifactPath.type},message:"must be string,null"}];return false;}var valid15 = _errs79 === errors;}else {var valid15 = true;}}}}}}}}}}else {validate22.errors = [{instancePath,schemaPath:"#/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}validate22.errors = vErrors;return errors === 0;}validate22.evaluated = {"props":true,"dynamicProps":false,"dynamicItems":false};function validate21(data, {instancePath="", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){let vErrors = null;let errors = 0;const evaluated0 = validate21.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}const _errs3 = errors;const _errs4 = errors;let valid3 = true;const _errs5 = errors;if(data && typeof data == "object" && !Array.isArray(data)){if(data.execution !== undefined){let data0 = data.execution;if(data0 && typeof data0 == "object" && !Array.isArray(data0)){if(data0.status !== undefined){let data1 = data0.status;if(!(((data1 === "failed") || (data1 === "cancelled")) || (data1 === "not_run"))){const err0 = {};if(vErrors === null){vErrors = [err0];}else {vErrors.push(err0);}errors++;}}}}}var _valid0 = _errs5 === errors;errors = _errs4;if(vErrors !== null){if(_errs4){vErrors.length = _errs4;}else {vErrors = null;}}if(_valid0){const _errs8 = errors;if(data && typeof data == "object" && !Array.isArray(data)){if(data.task !== undefined){let data2 = data.task;if(data2 && typeof data2 == "object" && !Array.isArray(data2)){if(data2.verdict !== undefined){const _errs11 = errors;const _errs12 = errors;if("passed" !== data2.verdict){const err1 = {};if(vErrors === null){vErrors = [err1];}else {vErrors.push(err1);}errors++;}var valid8 = _errs12 === errors;if(valid8){validate21.errors = [{instancePath:instancePath+"/task/verdict",schemaPath:"#/$defs/stateConsistency/allOf/0/then/properties/task/properties/verdict/not",keyword:"not",params:{},message:"must NOT be valid"}];return false;}else {errors = _errs11;if(vErrors !== null){if(_errs11){vErrors.length = _errs11;}else {vErrors = null;}}}}}}}var _valid0 = _errs8 === errors;valid3 = _valid0;if(valid3){var props0 = {};props0.task = true;props0.execution = true;}}if(!valid3){const err2 = {instancePath,schemaPath:"#/$defs/stateConsistency/allOf/0/if",keyword:"if",params:{failingKeyword: "then"},message:"must match \"then\" schema"};if(vErrors === null){vErrors = [err2];}else {vErrors.push(err2);}errors++;validate21.errors = vErrors;return false;}var valid2 = _errs3 === errors;if(valid2){const _errs13 = errors;const _errs14 = errors;let valid9 = true;const _errs15 = errors;if(data && typeof data == "object" && !Array.isArray(data)){if(data.grading !== undefined){let data4 = data.grading;if(data4 && typeof data4 == "object" && !Array.isArray(data4)){if(data4.status !== undefined){let data5 = data4.status;if(!(((data5 === "error") || (data5 === "unavailable")) || (data5 === "not_requested"))){const err3 = {};if(vErrors === null){vErrors = [err3];}else {vErrors.push(err3);}errors++;}}}}}var _valid1 = _errs15 === errors;errors = _errs14;if(vErrors !== null){if(_errs14){vErrors.length = _errs14;}else {vErrors = null;}}if(_valid1){const _errs18 = errors;if(data && typeof data == "object" && !Array.isArray(data)){if(data.task !== undefined){let data6 = data.task;if(data6 && typeof data6 == "object" && !Array.isArray(data6)){if(data6.verdict !== undefined){const _errs21 = errors;const _errs22 = errors;if("passed" !== data6.verdict){const err4 = {};if(vErrors === null){vErrors = [err4];}else {vErrors.push(err4);}errors++;}var valid14 = _errs22 === errors;if(valid14){validate21.errors = [{instancePath:instancePath+"/task/verdict",schemaPath:"#/$defs/stateConsistency/allOf/1/then/properties/task/properties/verdict/not",keyword:"not",params:{},message:"must NOT be valid"}];return false;}else {errors = _errs21;if(vErrors !== null){if(_errs21){vErrors.length = _errs21;}else {vErrors = null;}}}}}}}var _valid1 = _errs18 === errors;valid9 = _valid1;if(valid9){var props1 = {};props1.task = true;props1.grading = true;}}if(!valid9){const err5 = {instancePath,schemaPath:"#/$defs/stateConsistency/allOf/1/if",keyword:"if",params:{failingKeyword: "then"},message:"must match \"then\" schema"};if(vErrors === null){vErrors = [err5];}else {vErrors.push(err5);}errors++;validate21.errors = vErrors;return false;}var valid2 = _errs13 === errors;if(valid2){if(props0 !== true && props1 !== undefined){if(props1 === true){props0 = true;}else {props0 = props0 || {};Object.assign(props0, props1);}}}}if(errors === 0){if(data && typeof data == "object" && !Array.isArray(data)){let missing0;if((((((data.caseId === undefined) && (missing0 = "caseId")) || ((data.execution === undefined) && (missing0 = "execution"))) || ((data.grading === undefined) && (missing0 = "grading"))) || ((data.task === undefined) && (missing0 = "task"))) || ((data.trials === undefined) && (missing0 = "trials"))){validate21.errors = [{instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: missing0},message:"must have required property '"+missing0+"'"}];return false;}else {const _errs23 = errors;for(const key0 in data){if(!(((((key0 === "caseId") || (key0 === "execution")) || (key0 === "grading")) || (key0 === "task")) || (key0 === "trials"))){validate21.errors = [{instancePath,schemaPath:"#/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key0},message:"must NOT have additional properties"}];return false;break;}}if(_errs23 === errors){if(data.caseId !== undefined){let data8 = data.caseId;const _errs24 = errors;if(errors === _errs24){if(typeof data8 === "string"){if(func2(data8) < 1){validate21.errors = [{instancePath:instancePath+"/caseId",schemaPath:"#/properties/caseId/minLength",keyword:"minLength",params:{limit: 1},message:"must NOT have fewer than 1 characters"}];return false;}}else {validate21.errors = [{instancePath:instancePath+"/caseId",schemaPath:"#/properties/caseId/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid15 = _errs24 === errors;}else {var valid15 = true;}if(valid15){if(data.execution !== undefined){let data9 = data.execution;const _errs26 = errors;const _errs27 = errors;if(errors === _errs27){if(data9 && typeof data9 == "object" && !Array.isArray(data9)){let missing1;if((data9.status === undefined) && (missing1 = "status")){validate21.errors = [{instancePath:instancePath+"/execution",schemaPath:"#/$defs/execution/required",keyword:"required",params:{missingProperty: missing1},message:"must have required property '"+missing1+"'"}];return false;}else {const _errs29 = errors;for(const key1 in data9){if(!((key1 === "status") || (key1 === "errorCode"))){validate21.errors = [{instancePath:instancePath+"/execution",schemaPath:"#/$defs/execution/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key1},message:"must NOT have additional properties"}];return false;break;}}if(_errs29 === errors){if(data9.status !== undefined){let data10 = data9.status;const _errs30 = errors;if(!((((data10 === "completed") || (data10 === "failed")) || (data10 === "cancelled")) || (data10 === "not_run"))){validate21.errors = [{instancePath:instancePath+"/execution/status",schemaPath:"#/$defs/execution/properties/status/enum",keyword:"enum",params:{allowedValues: schema33.properties.status.enum},message:"must be equal to one of the allowed values"}];return false;}var valid17 = _errs30 === errors;}else {var valid17 = true;}if(valid17){if(data9.errorCode !== undefined){let data11 = data9.errorCode;const _errs31 = errors;if(errors === _errs31){if(typeof data11 === "string"){if(func2(data11) < 1){validate21.errors = [{instancePath:instancePath+"/execution/errorCode",schemaPath:"#/$defs/execution/properties/errorCode/minLength",keyword:"minLength",params:{limit: 1},message:"must NOT have fewer than 1 characters"}];return false;}}else {validate21.errors = [{instancePath:instancePath+"/execution/errorCode",schemaPath:"#/$defs/execution/properties/errorCode/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid17 = _errs31 === errors;}else {var valid17 = true;}}}}}else {validate21.errors = [{instancePath:instancePath+"/execution",schemaPath:"#/$defs/execution/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid15 = _errs26 === errors;}else {var valid15 = true;}if(valid15){if(data.grading !== undefined){let data12 = data.grading;const _errs33 = errors;const _errs34 = errors;if(errors === _errs34){if(data12 && typeof data12 == "object" && !Array.isArray(data12)){let missing2;if((data12.status === undefined) && (missing2 = "status")){validate21.errors = [{instancePath:instancePath+"/grading",schemaPath:"#/$defs/grading/required",keyword:"required",params:{missingProperty: missing2},message:"must have required property '"+missing2+"'"}];return false;}else {const _errs36 = errors;for(const key2 in data12){if(!((key2 === "status") || (key2 === "errorCode"))){validate21.errors = [{instancePath:instancePath+"/grading",schemaPath:"#/$defs/grading/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key2},message:"must NOT have additional properties"}];return false;break;}}if(_errs36 === errors){if(data12.status !== undefined){let data13 = data12.status;const _errs37 = errors;if(!((((data13 === "completed") || (data13 === "error")) || (data13 === "unavailable")) || (data13 === "not_requested"))){validate21.errors = [{instancePath:instancePath+"/grading/status",schemaPath:"#/$defs/grading/properties/status/enum",keyword:"enum",params:{allowedValues: schema34.properties.status.enum},message:"must be equal to one of the allowed values"}];return false;}var valid19 = _errs37 === errors;}else {var valid19 = true;}if(valid19){if(data12.errorCode !== undefined){let data14 = data12.errorCode;const _errs38 = errors;if(errors === _errs38){if(typeof data14 === "string"){if(func2(data14) < 1){validate21.errors = [{instancePath:instancePath+"/grading/errorCode",schemaPath:"#/$defs/grading/properties/errorCode/minLength",keyword:"minLength",params:{limit: 1},message:"must NOT have fewer than 1 characters"}];return false;}}else {validate21.errors = [{instancePath:instancePath+"/grading/errorCode",schemaPath:"#/$defs/grading/properties/errorCode/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid19 = _errs38 === errors;}else {var valid19 = true;}}}}}else {validate21.errors = [{instancePath:instancePath+"/grading",schemaPath:"#/$defs/grading/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid15 = _errs33 === errors;}else {var valid15 = true;}if(valid15){if(data.task !== undefined){let data15 = data.task;const _errs40 = errors;const _errs41 = errors;if(errors === _errs41){if(data15 && typeof data15 == "object" && !Array.isArray(data15)){let missing3;if((data15.verdict === undefined) && (missing3 = "verdict")){validate21.errors = [{instancePath:instancePath+"/task",schemaPath:"#/$defs/task/required",keyword:"required",params:{missingProperty: missing3},message:"must have required property '"+missing3+"'"}];return false;}else {const _errs43 = errors;for(const key3 in data15){if(!(key3 === "verdict")){validate21.errors = [{instancePath:instancePath+"/task",schemaPath:"#/$defs/task/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key3},message:"must NOT have additional properties"}];return false;break;}}if(_errs43 === errors){if(data15.verdict !== undefined){let data16 = data15.verdict;if(!(((data16 === "passed") || (data16 === "failed")) || (data16 === "not_assessed"))){validate21.errors = [{instancePath:instancePath+"/task/verdict",schemaPath:"#/$defs/task/properties/verdict/enum",keyword:"enum",params:{allowedValues: schema35.properties.verdict.enum},message:"must be equal to one of the allowed values"}];return false;}}}}}else {validate21.errors = [{instancePath:instancePath+"/task",schemaPath:"#/$defs/task/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid15 = _errs40 === errors;}else {var valid15 = true;}if(valid15){if(data.trials !== undefined){let data17 = data.trials;const _errs45 = errors;if(errors === _errs45){if(Array.isArray(data17)){var valid22 = true;const len0 = data17.length;for(let i0=0; i0<len0; i0++){const _errs47 = errors;if(!(validate22(data17[i0], {instancePath:instancePath+"/trials/" + i0,parentData:data17,parentDataProperty:i0,rootData,dynamicAnchors}))){vErrors = vErrors === null ? validate22.errors : vErrors.concat(validate22.errors);errors = vErrors.length;}var valid22 = _errs47 === errors;if(!valid22){break;}}}else {validate21.errors = [{instancePath:instancePath+"/trials",schemaPath:"#/properties/trials/type",keyword:"type",params:{type: "array"},message:"must be array"}];return false;}}var valid15 = _errs45 === errors;}else {var valid15 = true;}}}}}}}}else {validate21.errors = [{instancePath,schemaPath:"#/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}validate21.errors = vErrors;return errors === 0;}validate21.evaluated = {"props":true,"dynamicProps":false,"dynamicItems":false};function validate20(data, {instancePath="", parentData, parentDataProperty, rootData=data, dynamicAnchors={}}={}){/*# sourceURL="urn:sevro:schema:cli-result:v1" */;let vErrors = null;let errors = 0;const evaluated0 = validate20.evaluated;if(evaluated0.dynamicProps){evaluated0.props = undefined;}if(evaluated0.dynamicItems){evaluated0.items = undefined;}const _errs3 = errors;const _errs4 = errors;let valid3 = true;const _errs5 = errors;if(data && typeof data == "object" && !Array.isArray(data)){if(data.execution !== undefined){let data0 = data.execution;if(data0 && typeof data0 == "object" && !Array.isArray(data0)){if(data0.status !== undefined){let data1 = data0.status;if(!(((data1 === "failed") || (data1 === "cancelled")) || (data1 === "not_run"))){const err0 = {};if(vErrors === null){vErrors = [err0];}else {vErrors.push(err0);}errors++;}}}}}var _valid0 = _errs5 === errors;errors = _errs4;if(vErrors !== null){if(_errs4){vErrors.length = _errs4;}else {vErrors = null;}}if(_valid0){const _errs8 = errors;if(data && typeof data == "object" && !Array.isArray(data)){if(data.task !== undefined){let data2 = data.task;if(data2 && typeof data2 == "object" && !Array.isArray(data2)){if(data2.verdict !== undefined){const _errs11 = errors;const _errs12 = errors;if("passed" !== data2.verdict){const err1 = {};if(vErrors === null){vErrors = [err1];}else {vErrors.push(err1);}errors++;}var valid8 = _errs12 === errors;if(valid8){validate20.errors = [{instancePath:instancePath+"/task/verdict",schemaPath:"#/$defs/stateConsistency/allOf/0/then/properties/task/properties/verdict/not",keyword:"not",params:{},message:"must NOT be valid"}];return false;}else {errors = _errs11;if(vErrors !== null){if(_errs11){vErrors.length = _errs11;}else {vErrors = null;}}}}}}}var _valid0 = _errs8 === errors;valid3 = _valid0;if(valid3){var props0 = {};props0.task = true;props0.execution = true;}}if(!valid3){const err2 = {instancePath,schemaPath:"#/$defs/stateConsistency/allOf/0/if",keyword:"if",params:{failingKeyword: "then"},message:"must match \"then\" schema"};if(vErrors === null){vErrors = [err2];}else {vErrors.push(err2);}errors++;validate20.errors = vErrors;return false;}var valid2 = _errs3 === errors;if(valid2){const _errs13 = errors;const _errs14 = errors;let valid9 = true;const _errs15 = errors;if(data && typeof data == "object" && !Array.isArray(data)){if(data.grading !== undefined){let data4 = data.grading;if(data4 && typeof data4 == "object" && !Array.isArray(data4)){if(data4.status !== undefined){let data5 = data4.status;if(!(((data5 === "error") || (data5 === "unavailable")) || (data5 === "not_requested"))){const err3 = {};if(vErrors === null){vErrors = [err3];}else {vErrors.push(err3);}errors++;}}}}}var _valid1 = _errs15 === errors;errors = _errs14;if(vErrors !== null){if(_errs14){vErrors.length = _errs14;}else {vErrors = null;}}if(_valid1){const _errs18 = errors;if(data && typeof data == "object" && !Array.isArray(data)){if(data.task !== undefined){let data6 = data.task;if(data6 && typeof data6 == "object" && !Array.isArray(data6)){if(data6.verdict !== undefined){const _errs21 = errors;const _errs22 = errors;if("passed" !== data6.verdict){const err4 = {};if(vErrors === null){vErrors = [err4];}else {vErrors.push(err4);}errors++;}var valid14 = _errs22 === errors;if(valid14){validate20.errors = [{instancePath:instancePath+"/task/verdict",schemaPath:"#/$defs/stateConsistency/allOf/1/then/properties/task/properties/verdict/not",keyword:"not",params:{},message:"must NOT be valid"}];return false;}else {errors = _errs21;if(vErrors !== null){if(_errs21){vErrors.length = _errs21;}else {vErrors = null;}}}}}}}var _valid1 = _errs18 === errors;valid9 = _valid1;if(valid9){var props1 = {};props1.task = true;props1.grading = true;}}if(!valid9){const err5 = {instancePath,schemaPath:"#/$defs/stateConsistency/allOf/1/if",keyword:"if",params:{failingKeyword: "then"},message:"must match \"then\" schema"};if(vErrors === null){vErrors = [err5];}else {vErrors.push(err5);}errors++;validate20.errors = vErrors;return false;}var valid2 = _errs13 === errors;if(valid2){if(props0 !== true && props1 !== undefined){if(props1 === true){props0 = true;}else {props0 = props0 || {};Object.assign(props0, props1);}}}}if(errors === 0){if(data && typeof data == "object" && !Array.isArray(data)){let missing0;if(((((((((data.format === undefined) && (missing0 = "format")) || ((data.runId === undefined) && (missing0 = "runId"))) || ((data.execution === undefined) && (missing0 = "execution"))) || ((data.grading === undefined) && (missing0 = "grading"))) || ((data.task === undefined) && (missing0 = "task"))) || ((data.exitCode === undefined) && (missing0 = "exitCode"))) || ((data.evidencePath === undefined) && (missing0 = "evidencePath"))) || ((data.cases === undefined) && (missing0 = "cases"))){validate20.errors = [{instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: missing0},message:"must have required property '"+missing0+"'"}];return false;}else {const _errs23 = errors;for(const key0 in data){if(!(func1.call(schema31.properties, key0))){validate20.errors = [{instancePath,schemaPath:"#/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key0},message:"must NOT have additional properties"}];return false;break;}}if(_errs23 === errors){if(data.format !== undefined){const _errs24 = errors;if("sevro.cli-result.v1" !== data.format){validate20.errors = [{instancePath:instancePath+"/format",schemaPath:"#/properties/format/const",keyword:"const",params:{allowedValue: "sevro.cli-result.v1"},message:"must be equal to constant"}];return false;}var valid15 = _errs24 === errors;}else {var valid15 = true;}if(valid15){if(data.runId !== undefined){let data9 = data.runId;const _errs25 = errors;if((typeof data9 !== "string") && (data9 !== null)){validate20.errors = [{instancePath:instancePath+"/runId",schemaPath:"#/properties/runId/type",keyword:"type",params:{type: schema31.properties.runId.type},message:"must be string,null"}];return false;}var valid15 = _errs25 === errors;}else {var valid15 = true;}if(valid15){if(data.execution !== undefined){let data10 = data.execution;const _errs27 = errors;const _errs28 = errors;if(errors === _errs28){if(data10 && typeof data10 == "object" && !Array.isArray(data10)){let missing1;if((data10.status === undefined) && (missing1 = "status")){validate20.errors = [{instancePath:instancePath+"/execution",schemaPath:"#/$defs/execution/required",keyword:"required",params:{missingProperty: missing1},message:"must have required property '"+missing1+"'"}];return false;}else {const _errs30 = errors;for(const key1 in data10){if(!((key1 === "status") || (key1 === "errorCode"))){validate20.errors = [{instancePath:instancePath+"/execution",schemaPath:"#/$defs/execution/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key1},message:"must NOT have additional properties"}];return false;break;}}if(_errs30 === errors){if(data10.status !== undefined){let data11 = data10.status;const _errs31 = errors;if(!((((data11 === "completed") || (data11 === "failed")) || (data11 === "cancelled")) || (data11 === "not_run"))){validate20.errors = [{instancePath:instancePath+"/execution/status",schemaPath:"#/$defs/execution/properties/status/enum",keyword:"enum",params:{allowedValues: schema33.properties.status.enum},message:"must be equal to one of the allowed values"}];return false;}var valid17 = _errs31 === errors;}else {var valid17 = true;}if(valid17){if(data10.errorCode !== undefined){let data12 = data10.errorCode;const _errs32 = errors;if(errors === _errs32){if(typeof data12 === "string"){if(func2(data12) < 1){validate20.errors = [{instancePath:instancePath+"/execution/errorCode",schemaPath:"#/$defs/execution/properties/errorCode/minLength",keyword:"minLength",params:{limit: 1},message:"must NOT have fewer than 1 characters"}];return false;}}else {validate20.errors = [{instancePath:instancePath+"/execution/errorCode",schemaPath:"#/$defs/execution/properties/errorCode/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid17 = _errs32 === errors;}else {var valid17 = true;}}}}}else {validate20.errors = [{instancePath:instancePath+"/execution",schemaPath:"#/$defs/execution/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid15 = _errs27 === errors;}else {var valid15 = true;}if(valid15){if(data.grading !== undefined){let data13 = data.grading;const _errs34 = errors;const _errs35 = errors;if(errors === _errs35){if(data13 && typeof data13 == "object" && !Array.isArray(data13)){let missing2;if((data13.status === undefined) && (missing2 = "status")){validate20.errors = [{instancePath:instancePath+"/grading",schemaPath:"#/$defs/grading/required",keyword:"required",params:{missingProperty: missing2},message:"must have required property '"+missing2+"'"}];return false;}else {const _errs37 = errors;for(const key2 in data13){if(!((key2 === "status") || (key2 === "errorCode"))){validate20.errors = [{instancePath:instancePath+"/grading",schemaPath:"#/$defs/grading/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key2},message:"must NOT have additional properties"}];return false;break;}}if(_errs37 === errors){if(data13.status !== undefined){let data14 = data13.status;const _errs38 = errors;if(!((((data14 === "completed") || (data14 === "error")) || (data14 === "unavailable")) || (data14 === "not_requested"))){validate20.errors = [{instancePath:instancePath+"/grading/status",schemaPath:"#/$defs/grading/properties/status/enum",keyword:"enum",params:{allowedValues: schema34.properties.status.enum},message:"must be equal to one of the allowed values"}];return false;}var valid19 = _errs38 === errors;}else {var valid19 = true;}if(valid19){if(data13.errorCode !== undefined){let data15 = data13.errorCode;const _errs39 = errors;if(errors === _errs39){if(typeof data15 === "string"){if(func2(data15) < 1){validate20.errors = [{instancePath:instancePath+"/grading/errorCode",schemaPath:"#/$defs/grading/properties/errorCode/minLength",keyword:"minLength",params:{limit: 1},message:"must NOT have fewer than 1 characters"}];return false;}}else {validate20.errors = [{instancePath:instancePath+"/grading/errorCode",schemaPath:"#/$defs/grading/properties/errorCode/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid19 = _errs39 === errors;}else {var valid19 = true;}}}}}else {validate20.errors = [{instancePath:instancePath+"/grading",schemaPath:"#/$defs/grading/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid15 = _errs34 === errors;}else {var valid15 = true;}if(valid15){if(data.task !== undefined){let data16 = data.task;const _errs41 = errors;const _errs42 = errors;if(errors === _errs42){if(data16 && typeof data16 == "object" && !Array.isArray(data16)){let missing3;if((data16.verdict === undefined) && (missing3 = "verdict")){validate20.errors = [{instancePath:instancePath+"/task",schemaPath:"#/$defs/task/required",keyword:"required",params:{missingProperty: missing3},message:"must have required property '"+missing3+"'"}];return false;}else {const _errs44 = errors;for(const key3 in data16){if(!(key3 === "verdict")){validate20.errors = [{instancePath:instancePath+"/task",schemaPath:"#/$defs/task/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key3},message:"must NOT have additional properties"}];return false;break;}}if(_errs44 === errors){if(data16.verdict !== undefined){let data17 = data16.verdict;if(!(((data17 === "passed") || (data17 === "failed")) || (data17 === "not_assessed"))){validate20.errors = [{instancePath:instancePath+"/task/verdict",schemaPath:"#/$defs/task/properties/verdict/enum",keyword:"enum",params:{allowedValues: schema35.properties.verdict.enum},message:"must be equal to one of the allowed values"}];return false;}}}}}else {validate20.errors = [{instancePath:instancePath+"/task",schemaPath:"#/$defs/task/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid15 = _errs41 === errors;}else {var valid15 = true;}if(valid15){if(data.exitCode !== undefined){let data18 = data.exitCode;const _errs46 = errors;if(!(((((((((data18 === 0) || (data18 === 1)) || (data18 === 2)) || (data18 === 3)) || (data18 === 4)) || (data18 === 64)) || (data18 === 70)) || (data18 === 130)) || (data18 === 143))){validate20.errors = [{instancePath:instancePath+"/exitCode",schemaPath:"#/properties/exitCode/enum",keyword:"enum",params:{allowedValues: schema31.properties.exitCode.enum},message:"must be equal to one of the allowed values"}];return false;}var valid15 = _errs46 === errors;}else {var valid15 = true;}if(valid15){if(data.evidencePath !== undefined){let data19 = data.evidencePath;const _errs47 = errors;if((typeof data19 !== "string") && (data19 !== null)){validate20.errors = [{instancePath:instancePath+"/evidencePath",schemaPath:"#/properties/evidencePath/type",keyword:"type",params:{type: schema31.properties.evidencePath.type},message:"must be string,null"}];return false;}var valid15 = _errs47 === errors;}else {var valid15 = true;}if(valid15){if(data.cases !== undefined){let data20 = data.cases;const _errs49 = errors;if(errors === _errs49){if(Array.isArray(data20)){var valid22 = true;const len0 = data20.length;for(let i0=0; i0<len0; i0++){const _errs51 = errors;if(!(validate21(data20[i0], {instancePath:instancePath+"/cases/" + i0,parentData:data20,parentDataProperty:i0,rootData,dynamicAnchors}))){vErrors = vErrors === null ? validate21.errors : vErrors.concat(validate21.errors);errors = vErrors.length;}var valid22 = _errs51 === errors;if(!valid22){break;}}}else {validate20.errors = [{instancePath:instancePath+"/cases",schemaPath:"#/properties/cases/type",keyword:"type",params:{type: "array"},message:"must be array"}];return false;}}var valid15 = _errs49 === errors;}else {var valid15 = true;}if(valid15){if(data.diagnostic !== undefined){let data22 = data.diagnostic;const _errs52 = errors;const _errs53 = errors;if(errors === _errs53){if(data22 && typeof data22 == "object" && !Array.isArray(data22)){let missing4;if(((data22.code === undefined) && (missing4 = "code")) || ((data22.message === undefined) && (missing4 = "message"))){validate20.errors = [{instancePath:instancePath+"/diagnostic",schemaPath:"#/$defs/diagnostic/required",keyword:"required",params:{missingProperty: missing4},message:"must have required property '"+missing4+"'"}];return false;}else {const _errs55 = errors;for(const key4 in data22){if(!((key4 === "code") || (key4 === "message"))){validate20.errors = [{instancePath:instancePath+"/diagnostic",schemaPath:"#/$defs/diagnostic/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key4},message:"must NOT have additional properties"}];return false;break;}}if(_errs55 === errors){if(data22.code !== undefined){let data23 = data22.code;const _errs56 = errors;if(errors === _errs56){if(typeof data23 === "string"){if(func2(data23) < 1){validate20.errors = [{instancePath:instancePath+"/diagnostic/code",schemaPath:"#/$defs/diagnostic/properties/code/minLength",keyword:"minLength",params:{limit: 1},message:"must NOT have fewer than 1 characters"}];return false;}}else {validate20.errors = [{instancePath:instancePath+"/diagnostic/code",schemaPath:"#/$defs/diagnostic/properties/code/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid24 = _errs56 === errors;}else {var valid24 = true;}if(valid24){if(data22.message !== undefined){let data24 = data22.message;const _errs58 = errors;if(errors === _errs58){if(typeof data24 === "string"){if(func2(data24) > 4096){validate20.errors = [{instancePath:instancePath+"/diagnostic/message",schemaPath:"#/$defs/diagnostic/properties/message/maxLength",keyword:"maxLength",params:{limit: 4096},message:"must NOT have more than 4096 characters"}];return false;}else {if(func2(data24) < 1){validate20.errors = [{instancePath:instancePath+"/diagnostic/message",schemaPath:"#/$defs/diagnostic/properties/message/minLength",keyword:"minLength",params:{limit: 1},message:"must NOT have fewer than 1 characters"}];return false;}}}else {validate20.errors = [{instancePath:instancePath+"/diagnostic/message",schemaPath:"#/$defs/diagnostic/properties/message/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}}var valid24 = _errs58 === errors;}else {var valid24 = true;}}}}}else {validate20.errors = [{instancePath:instancePath+"/diagnostic",schemaPath:"#/$defs/diagnostic/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid15 = _errs52 === errors;}else {var valid15 = true;}}}}}}}}}}}}else {validate20.errors = [{instancePath,schemaPath:"#/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}validate20.errors = vErrors;return errors === 0;}validate20.evaluated = {"props":true,"dynamicProps":false,"dynamicItems":false};