flakelab 0.1.0 → 0.1.2

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 (322) hide show
  1. package/README.md +225 -38
  2. package/dist/analysis/blob-report.d.ts +15 -0
  3. package/dist/analysis/blob-report.js +137 -0
  4. package/dist/analysis/blob-report.js.map +1 -0
  5. package/dist/analysis/cli.d.ts +7 -0
  6. package/dist/analysis/cli.js +28 -0
  7. package/dist/analysis/cli.js.map +1 -0
  8. package/dist/analysis/schema.d.ts +175 -0
  9. package/dist/analysis/schema.js +34 -0
  10. package/dist/analysis/schema.js.map +1 -0
  11. package/dist/analysis/zip-archive.d.ts +6 -0
  12. package/dist/analysis/zip-archive.js +193 -0
  13. package/dist/analysis/zip-archive.js.map +1 -0
  14. package/dist/artifacts/paths.d.ts +3 -0
  15. package/dist/artifacts/paths.js +34 -0
  16. package/dist/artifacts/paths.js.map +1 -0
  17. package/dist/artifacts/retention.d.ts +1 -0
  18. package/dist/artifacts/retention.js +80 -0
  19. package/dist/artifacts/retention.js.map +1 -0
  20. package/dist/bisect/engine.js +0 -1
  21. package/dist/bisect/engine.js.map +1 -1
  22. package/dist/bisect/schema.d.ts +5 -6
  23. package/dist/bisect/schema.js +1 -2
  24. package/dist/bisect/schema.js.map +1 -1
  25. package/dist/bisect/solari-evaluator.js +9 -1
  26. package/dist/bisect/solari-evaluator.js.map +1 -1
  27. package/dist/ci/job-summary.d.ts +2 -0
  28. package/dist/ci/job-summary.js +120 -2
  29. package/dist/ci/job-summary.js.map +1 -1
  30. package/dist/ci/select-command.js +1 -1
  31. package/dist/ci/select-command.js.map +1 -1
  32. package/dist/ci/summary-command.js +12 -7
  33. package/dist/ci/summary-command.js.map +1 -1
  34. package/dist/cli-arguments.d.ts +44 -0
  35. package/dist/cli-arguments.js +356 -0
  36. package/dist/cli-arguments.js.map +1 -0
  37. package/dist/cli-command-help.d.ts +11 -0
  38. package/dist/cli-command-help.js +211 -0
  39. package/dist/cli-command-help.js.map +1 -0
  40. package/dist/cli-help.d.ts +5 -2
  41. package/dist/cli-help.js +122 -45
  42. package/dist/cli-help.js.map +1 -1
  43. package/dist/cli-option-definitions.d.ts +202 -0
  44. package/dist/cli-option-definitions.js +59 -0
  45. package/dist/cli-option-definitions.js.map +1 -0
  46. package/dist/cli.js +100 -100
  47. package/dist/cli.js.map +1 -1
  48. package/dist/commands/analyze-summary.d.ts +5 -0
  49. package/dist/commands/analyze-summary.js +89 -0
  50. package/dist/commands/analyze-summary.js.map +1 -0
  51. package/dist/commands/analyze.d.ts +6 -0
  52. package/dist/commands/analyze.js +128 -0
  53. package/dist/commands/analyze.js.map +1 -0
  54. package/dist/commands/bisect.d.ts +2 -2
  55. package/dist/commands/bisect.js +32 -3
  56. package/dist/commands/bisect.js.map +1 -1
  57. package/dist/commands/diagnose.d.ts +3 -2
  58. package/dist/commands/diagnose.js +355 -23
  59. package/dist/commands/diagnose.js.map +1 -1
  60. package/dist/commands/discover.d.ts +18 -2
  61. package/dist/commands/discover.js +215 -25
  62. package/dist/commands/discover.js.map +1 -1
  63. package/dist/commands/doctor.d.ts +2 -0
  64. package/dist/commands/doctor.js +66 -25
  65. package/dist/commands/doctor.js.map +1 -1
  66. package/dist/commands/investigate.d.ts +3 -2
  67. package/dist/commands/investigate.js +22 -3
  68. package/dist/commands/investigate.js.map +1 -1
  69. package/dist/commands/options.d.ts +123 -16
  70. package/dist/commands/options.js +24 -2
  71. package/dist/commands/options.js.map +1 -1
  72. package/dist/commands/prove.d.ts +2 -2
  73. package/dist/commands/prove.js +38 -1
  74. package/dist/commands/prove.js.map +1 -1
  75. package/dist/commands/repair.d.ts +8 -2
  76. package/dist/commands/repair.js +32 -9
  77. package/dist/commands/repair.js.map +1 -1
  78. package/dist/commands/replay.d.ts +2 -2
  79. package/dist/commands/replay.js +15 -2
  80. package/dist/commands/replay.js.map +1 -1
  81. package/dist/commands/report.d.ts +2 -2
  82. package/dist/commands/report.js +35 -10
  83. package/dist/commands/report.js.map +1 -1
  84. package/dist/commands/scan-summary.d.ts +7 -0
  85. package/dist/commands/scan-summary.js +175 -0
  86. package/dist/commands/scan-summary.js.map +1 -0
  87. package/dist/commands/scan.d.ts +9 -12
  88. package/dist/commands/scan.js +66 -62
  89. package/dist/commands/scan.js.map +1 -1
  90. package/dist/core/plan.js +1 -1
  91. package/dist/core/plan.js.map +1 -1
  92. package/dist/diagnosis/checkpoint.d.ts +6 -0
  93. package/dist/diagnosis/checkpoint.js +46 -0
  94. package/dist/diagnosis/checkpoint.js.map +1 -0
  95. package/dist/diagnosis/cli.d.ts +7 -0
  96. package/dist/diagnosis/cli.js +84 -0
  97. package/dist/diagnosis/cli.js.map +1 -0
  98. package/dist/diagnosis/recommendation.d.ts +13 -0
  99. package/dist/diagnosis/recommendation.js +95 -0
  100. package/dist/diagnosis/recommendation.js.map +1 -0
  101. package/dist/diagnosis/run-state.d.ts +52 -0
  102. package/dist/diagnosis/run-state.js +173 -0
  103. package/dist/diagnosis/run-state.js.map +1 -0
  104. package/dist/diagnosis/schema.d.ts +207 -0
  105. package/dist/diagnosis/schema.js +108 -0
  106. package/dist/diagnosis/schema.js.map +1 -0
  107. package/dist/diagnosis/solari-handoff.d.ts +9 -0
  108. package/dist/diagnosis/solari-handoff.js +40 -0
  109. package/dist/diagnosis/solari-handoff.js.map +1 -0
  110. package/dist/diagnosis/summary.d.ts +3 -0
  111. package/dist/diagnosis/summary.js +115 -0
  112. package/dist/diagnosis/summary.js.map +1 -0
  113. package/dist/discovery/auth-cookie.d.ts +19 -0
  114. package/dist/discovery/auth-cookie.js +26 -0
  115. package/dist/discovery/auth-cookie.js.map +1 -0
  116. package/dist/discovery/evaluate.d.ts +35 -2
  117. package/dist/discovery/evaluate.js +136 -30
  118. package/dist/discovery/evaluate.js.map +1 -1
  119. package/dist/discovery/event-loop.d.ts +25 -0
  120. package/dist/discovery/event-loop.js +84 -0
  121. package/dist/discovery/event-loop.js.map +1 -0
  122. package/dist/discovery/minimize.d.ts +61 -1
  123. package/dist/discovery/minimize.js +179 -7
  124. package/dist/discovery/minimize.js.map +1 -1
  125. package/dist/discovery/resource-loading.d.ts +25 -0
  126. package/dist/discovery/resource-loading.js +84 -0
  127. package/dist/discovery/resource-loading.js.map +1 -0
  128. package/dist/discovery/runner-environment.d.ts +26 -0
  129. package/dist/discovery/runner-environment.js +68 -0
  130. package/dist/discovery/runner-environment.js.map +1 -0
  131. package/dist/discovery/startup-event.d.ts +25 -0
  132. package/dist/discovery/startup-event.js +84 -0
  133. package/dist/discovery/startup-event.js.map +1 -0
  134. package/dist/discovery/storage-state.d.ts +26 -0
  135. package/dist/discovery/storage-state.js +86 -0
  136. package/dist/discovery/storage-state.js.map +1 -0
  137. package/dist/discovery/temporal-environment.d.ts +31 -0
  138. package/dist/discovery/temporal-environment.js +43 -0
  139. package/dist/discovery/temporal-environment.js.map +1 -0
  140. package/dist/discovery/visual-environment.d.ts +28 -0
  141. package/dist/discovery/visual-environment.js +42 -0
  142. package/dist/discovery/visual-environment.js.map +1 -0
  143. package/dist/domain/schema.d.ts +840 -20
  144. package/dist/domain/schema.js +216 -6
  145. package/dist/domain/schema.js.map +1 -1
  146. package/dist/faults/browser-context.d.ts +16 -0
  147. package/dist/faults/browser-context.js +60 -0
  148. package/dist/faults/browser-context.js.map +1 -0
  149. package/dist/faults/cookie-header.d.ts +5 -0
  150. package/dist/faults/cookie-header.js +25 -0
  151. package/dist/faults/cookie-header.js.map +1 -0
  152. package/dist/faults/document-bootstrap.d.ts +5 -0
  153. package/dist/faults/document-bootstrap.js +141 -0
  154. package/dist/faults/document-bootstrap.js.map +1 -0
  155. package/dist/faults/install.d.ts +1 -1
  156. package/dist/faults/install.js +199 -6
  157. package/dist/faults/install.js.map +1 -1
  158. package/dist/faults/pattern.d.ts +1 -0
  159. package/dist/faults/pattern.js +24 -0
  160. package/dist/faults/pattern.js.map +1 -0
  161. package/dist/investigator/agent.js +39 -17
  162. package/dist/investigator/agent.js.map +1 -1
  163. package/dist/investigator/ledger.d.ts +1 -1
  164. package/dist/investigator/ledger.js +2 -2
  165. package/dist/investigator/ledger.js.map +1 -1
  166. package/dist/investigator/safe-source.d.ts +1 -0
  167. package/dist/investigator/safe-source.js +12 -3
  168. package/dist/investigator/safe-source.js.map +1 -1
  169. package/dist/investigator/schema.d.ts +293 -2
  170. package/dist/investigator/schema.js +100 -2
  171. package/dist/investigator/schema.js.map +1 -1
  172. package/dist/proof/cli.d.ts +7 -0
  173. package/dist/proof/cli.js +108 -0
  174. package/dist/proof/cli.js.map +1 -0
  175. package/dist/proof/preflight.d.ts +4 -0
  176. package/dist/proof/preflight.js +9 -0
  177. package/dist/proof/preflight.js.map +1 -0
  178. package/dist/repair/generator.d.ts +12 -1
  179. package/dist/repair/generator.js +30 -6
  180. package/dist/repair/generator.js.map +1 -1
  181. package/dist/repair/remote-proof-runner.js +6 -10
  182. package/dist/repair/remote-proof-runner.js.map +1 -1
  183. package/dist/repair/schema.d.ts +77 -2
  184. package/dist/repair/schema.js +23 -2
  185. package/dist/repair/schema.js.map +1 -1
  186. package/dist/repair/solari-validator.d.ts +2 -0
  187. package/dist/repair/solari-validator.js +4 -6
  188. package/dist/repair/solari-validator.js.map +1 -1
  189. package/dist/repair/summary.d.ts +10 -0
  190. package/dist/repair/summary.js +58 -0
  191. package/dist/repair/summary.js.map +1 -0
  192. package/dist/repair/validator.d.ts +1 -0
  193. package/dist/repair/validator.js +53 -12
  194. package/dist/repair/validator.js.map +1 -1
  195. package/dist/report/bundle.js +16 -37
  196. package/dist/report/bundle.js.map +1 -1
  197. package/dist/report/model.js +131 -12
  198. package/dist/report/model.js.map +1 -1
  199. package/dist/report/open.d.ts +9 -0
  200. package/dist/report/open.js +23 -0
  201. package/dist/report/open.js.map +1 -1
  202. package/dist/report/report-client.css +2 -0
  203. package/dist/report/report-client.js +58 -0
  204. package/dist/report/schema.d.ts +115 -5
  205. package/dist/report/schema.js +24 -5
  206. package/dist/report/schema.js.map +1 -1
  207. package/dist/reproducer/schema.d.ts +89 -4
  208. package/dist/reproducer/schema.js +3 -4
  209. package/dist/reproducer/schema.js.map +1 -1
  210. package/dist/runner/execution-fault.d.ts +10 -0
  211. package/dist/runner/execution-fault.js +24 -0
  212. package/dist/runner/execution-fault.js.map +1 -0
  213. package/dist/runner/fault-proxy.d.ts +7 -0
  214. package/dist/runner/fault-proxy.js +366 -0
  215. package/dist/runner/fault-proxy.js.map +1 -0
  216. package/dist/runner/local.js +2 -2
  217. package/dist/runner/local.js.map +1 -1
  218. package/dist/runner/native-scan.d.ts +25 -0
  219. package/dist/runner/native-scan.js +306 -0
  220. package/dist/runner/native-scan.js.map +1 -0
  221. package/dist/runner/playwright-executor.d.ts +3 -0
  222. package/dist/runner/playwright-executor.js +125 -66
  223. package/dist/runner/playwright-executor.js.map +1 -1
  224. package/dist/runner/process-tree.d.ts +7 -0
  225. package/dist/runner/process-tree.js +62 -0
  226. package/dist/runner/process-tree.js.map +1 -0
  227. package/dist/runner/project-bridge.d.ts +7 -0
  228. package/dist/runner/project-bridge.js +83 -0
  229. package/dist/runner/project-bridge.js.map +1 -0
  230. package/dist/runner/trial-reporter.d.ts +7 -0
  231. package/dist/runner/trial-reporter.js +47 -0
  232. package/dist/runner/trial-reporter.js.map +1 -0
  233. package/dist/scan/failure-clusters.d.ts +24 -0
  234. package/dist/scan/failure-clusters.js +74 -0
  235. package/dist/scan/failure-clusters.js.map +1 -0
  236. package/dist/scan/schema.d.ts +170 -0
  237. package/dist/scan/schema.js +71 -0
  238. package/dist/scan/schema.js.map +1 -0
  239. package/dist/solari/executor.d.ts +5 -1
  240. package/dist/solari/executor.js +25 -17
  241. package/dist/solari/executor.js.map +1 -1
  242. package/dist/solari/run-demo.d.ts +13 -1
  243. package/dist/solari/run-demo.js +35 -16
  244. package/dist/solari/run-demo.js.map +1 -1
  245. package/dist/solari/usage.d.ts +8 -2
  246. package/dist/solari/usage.js +14 -4
  247. package/dist/solari/usage.js.map +1 -1
  248. package/dist/ui/boundary.d.ts +17 -0
  249. package/dist/ui/boundary.js +18 -0
  250. package/dist/ui/boundary.js.map +1 -0
  251. package/dist/ui/console.d.ts +4 -0
  252. package/dist/ui/console.js +11 -0
  253. package/dist/ui/console.js.map +1 -0
  254. package/dist/ui/document.d.ts +40 -0
  255. package/dist/ui/document.js +120 -0
  256. package/dist/ui/document.js.map +1 -0
  257. package/dist/ui/format.d.ts +8 -0
  258. package/dist/ui/format.js +32 -0
  259. package/dist/ui/format.js.map +1 -0
  260. package/dist/ui/progress.d.ts +17 -1
  261. package/dist/ui/progress.js +51 -8
  262. package/dist/ui/progress.js.map +1 -1
  263. package/dist/ui/status.d.ts +7 -0
  264. package/dist/ui/status.js +36 -0
  265. package/dist/ui/status.js.map +1 -0
  266. package/dist/ui/style.d.ts +8 -0
  267. package/dist/ui/style.js +22 -0
  268. package/dist/ui/style.js.map +1 -0
  269. package/dist/ui/text.d.ts +17 -0
  270. package/dist/ui/text.js +123 -0
  271. package/dist/ui/text.js.map +1 -0
  272. package/dist/ui/theme.d.ts +23 -0
  273. package/dist/ui/theme.js +77 -0
  274. package/dist/ui/theme.js.map +1 -0
  275. package/dist/ui/trial-progress.d.ts +13 -0
  276. package/dist/ui/trial-progress.js +42 -0
  277. package/dist/ui/trial-progress.js.map +1 -0
  278. package/package.json +14 -19
  279. package/dist/faults/network-delay.d.ts +0 -5
  280. package/dist/faults/network-delay.js +0 -34
  281. package/dist/faults/network-delay.js.map +0 -1
  282. package/dist/faults/request-failure.d.ts +0 -5
  283. package/dist/faults/request-failure.js +0 -24
  284. package/dist/faults/request-failure.js.map +0 -1
  285. package/dist/playwright.d.ts +0 -3
  286. package/dist/playwright.js +0 -21
  287. package/dist/playwright.js.map +0 -1
  288. package/dist/report/browser-entry.d.ts +0 -2
  289. package/dist/report/browser-entry.js +0 -15
  290. package/dist/report/browser-entry.js.map +0 -1
  291. package/dist/report/components/artifacts.d.ts +0 -4
  292. package/dist/report/components/artifacts.js +0 -6
  293. package/dist/report/components/artifacts.js.map +0 -1
  294. package/dist/report/components/experiments.d.ts +0 -4
  295. package/dist/report/components/experiments.js +0 -7
  296. package/dist/report/components/experiments.js.map +0 -1
  297. package/dist/report/components/hypotheses.d.ts +0 -4
  298. package/dist/report/components/hypotheses.js +0 -26
  299. package/dist/report/components/hypotheses.js.map +0 -1
  300. package/dist/report/components/indicators.d.ts +0 -32
  301. package/dist/report/components/indicators.js +0 -42
  302. package/dist/report/components/indicators.js.map +0 -1
  303. package/dist/report/components/layout.d.ts +0 -29
  304. package/dist/report/components/layout.js +0 -20
  305. package/dist/report/components/layout.js.map +0 -1
  306. package/dist/report/components/proof.d.ts +0 -4
  307. package/dist/report/components/proof.js +0 -34
  308. package/dist/report/components/proof.js.map +0 -1
  309. package/dist/report/components/reproduction.d.ts +0 -4
  310. package/dist/report/components/reproduction.js +0 -19
  311. package/dist/report/components/reproduction.js.map +0 -1
  312. package/dist/report/components/summary.d.ts +0 -4
  313. package/dist/report/components/summary.js +0 -12
  314. package/dist/report/components/summary.js.map +0 -1
  315. package/dist/report/components/verdict.d.ts +0 -4
  316. package/dist/report/components/verdict.js +0 -27
  317. package/dist/report/components/verdict.js.map +0 -1
  318. package/dist/report/report-app.d.ts +0 -6
  319. package/dist/report/report-app.js +0 -16
  320. package/dist/report/report-app.js.map +0 -1
  321. package/dist/report/report-details.css +0 -182
  322. package/dist/report/report.css +0 -404
@@ -10,7 +10,6 @@ export declare const failureOwnershipSchema: z.ZodEnum<{
10
10
  UNKNOWN: "UNKNOWN";
11
11
  }>;
12
12
  export declare const evidenceReportSchema: z.ZodObject<{
13
- version: z.ZodLiteral<1>;
14
13
  generatedAt: z.ZodISODateTime;
15
14
  status: z.ZodEnum<{
16
15
  FIX_PROVEN: "FIX_PROVEN";
@@ -19,6 +18,10 @@ export declare const evidenceReportSchema: z.ZodObject<{
19
18
  test: z.ZodString;
20
19
  model: z.ZodString;
21
20
  conclusion: z.ZodString;
21
+ causalClaim: z.ZodObject<{
22
+ controlExperimentIds: z.ZodArray<z.ZodString>;
23
+ interventionExperimentIds: z.ZodArray<z.ZodString>;
24
+ }, z.core.$strip>;
22
25
  ownership: z.ZodObject<{
23
26
  classification: z.ZodEnum<{
24
27
  PRODUCT_RACE: "PRODUCT_RACE";
@@ -38,9 +41,97 @@ export declare const evidenceReportSchema: z.ZodObject<{
38
41
  rationale: z.ZodString;
39
42
  }, z.core.$strip>;
40
43
  trigger: z.ZodObject<{
41
- kind: z.ZodLiteral<"network-delay">;
42
- pattern: z.ZodString;
43
- delayMs: z.ZodNumber;
44
+ faults: z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
45
+ kind: z.ZodLiteral<"animation-speed">;
46
+ pattern: z.ZodString;
47
+ rate: z.ZodNumber;
48
+ }, z.core.$strict>, z.ZodObject<{
49
+ kind: z.ZodLiteral<"auth-cookie-expiry">;
50
+ pattern: z.ZodString;
51
+ cookieName: z.ZodString;
52
+ }, z.core.$strict>, z.ZodObject<{
53
+ kind: z.ZodLiteral<"clock-jump">;
54
+ pattern: z.ZodString;
55
+ jumpAfterMs: z.ZodNumber;
56
+ offsetMs: z.ZodNumber;
57
+ }, z.core.$strict>, z.ZodObject<{
58
+ kind: z.ZodLiteral<"event-loop-stall">;
59
+ pattern: z.ZodString;
60
+ startAfterMs: z.ZodNumber;
61
+ durationMs: z.ZodNumber;
62
+ }, z.core.$strict>, z.ZodObject<{
63
+ kind: z.ZodLiteral<"locale">;
64
+ pattern: z.ZodString;
65
+ locale: z.ZodString;
66
+ }, z.core.$strict>, z.ZodObject<{
67
+ kind: z.ZodLiteral<"network-delay">;
68
+ pattern: z.ZodString;
69
+ delayMs: z.ZodNumber;
70
+ }, z.core.$strict>, z.ZodObject<{
71
+ kind: z.ZodLiteral<"request-failure">;
72
+ pattern: z.ZodString;
73
+ statusCode: z.ZodNumber;
74
+ }, z.core.$strict>, z.ZodObject<{
75
+ kind: z.ZodLiteral<"reduced-motion">;
76
+ pattern: z.ZodString;
77
+ }, z.core.$strict>, z.ZodObject<{
78
+ kind: z.ZodLiteral<"resource-loading-delay">;
79
+ pattern: z.ZodString;
80
+ resourceType: z.ZodEnum<{
81
+ script: "script";
82
+ document: "document";
83
+ font: "font";
84
+ image: "image";
85
+ stylesheet: "stylesheet";
86
+ }>;
87
+ delayMs: z.ZodNumber;
88
+ }, z.core.$strict>, z.ZodObject<{
89
+ kind: z.ZodLiteral<"response-duplication">;
90
+ pattern: z.ZodString;
91
+ duplicateBytes: z.ZodNumber;
92
+ }, z.core.$strict>, z.ZodObject<{
93
+ kind: z.ZodLiteral<"response-reordering">;
94
+ pattern: z.ZodString;
95
+ holdMs: z.ZodNumber;
96
+ }, z.core.$strict>, z.ZodObject<{
97
+ kind: z.ZodLiteral<"response-truncation">;
98
+ pattern: z.ZodString;
99
+ removeBytes: z.ZodNumber;
100
+ }, z.core.$strict>, z.ZodObject<{
101
+ kind: z.ZodLiteral<"shared-state-interference">;
102
+ pattern: z.ZodString;
103
+ copies: z.ZodNumber;
104
+ }, z.core.$strict>, z.ZodObject<{
105
+ kind: z.ZodLiteral<"storage-state-delay">;
106
+ pattern: z.ZodString;
107
+ storage: z.ZodEnum<{
108
+ "local-storage": "local-storage";
109
+ "session-storage": "session-storage";
110
+ }>;
111
+ key: z.ZodString;
112
+ delayMs: z.ZodNumber;
113
+ }, z.core.$strict>, z.ZodObject<{
114
+ kind: z.ZodLiteral<"startup-event-delay">;
115
+ pattern: z.ZodString;
116
+ event: z.ZodEnum<{
117
+ "dom-content-loaded": "dom-content-loaded";
118
+ load: "load";
119
+ }>;
120
+ delayMs: z.ZodNumber;
121
+ }, z.core.$strict>, z.ZodObject<{
122
+ kind: z.ZodLiteral<"timezone">;
123
+ pattern: z.ZodString;
124
+ timezoneId: z.ZodString;
125
+ }, z.core.$strict>, z.ZodObject<{
126
+ kind: z.ZodLiteral<"viewport">;
127
+ pattern: z.ZodString;
128
+ width: z.ZodNumber;
129
+ height: z.ZodNumber;
130
+ }, z.core.$strict>, z.ZodObject<{
131
+ kind: z.ZodLiteral<"worker-pressure">;
132
+ pattern: z.ZodString;
133
+ workers: z.ZodNumber;
134
+ }, z.core.$strict>], "kind">>;
44
135
  minimumFailureRate: z.ZodNumber;
45
136
  signature: z.ZodOptional<z.ZodString>;
46
137
  }, z.core.$strip>;
@@ -59,6 +150,19 @@ export declare const evidenceReportSchema: z.ZodObject<{
59
150
  id: z.ZodString;
60
151
  hypothesisId: z.ZodString;
61
152
  condition: z.ZodString;
153
+ representativeRuns: z.ZodArray<z.ZodObject<{
154
+ artifacts: z.ZodArray<z.ZodObject<{
155
+ contentType: z.ZodString;
156
+ name: z.ZodString;
157
+ path: z.ZodString;
158
+ }, z.core.$strip>>;
159
+ durationMs: z.ZodNumber;
160
+ status: z.ZodEnum<{
161
+ passed: "passed";
162
+ failed: "failed";
163
+ }>;
164
+ trialId: z.ZodString;
165
+ }, z.core.$strip>>;
62
166
  result: z.ZodObject<{
63
167
  errors: z.ZodNumber;
64
168
  failed: z.ZodNumber;
@@ -68,6 +172,12 @@ export declare const evidenceReportSchema: z.ZodObject<{
68
172
  trials: z.ZodNumber;
69
173
  }, z.core.$strip>;
70
174
  }, z.core.$strip>>;
175
+ replayCommand: z.ZodString;
176
+ sourcePaths: z.ZodArray<z.ZodString>;
177
+ sourceLocations: z.ZodArray<z.ZodObject<{
178
+ line: z.ZodNumber;
179
+ path: z.ZodString;
180
+ }, z.core.$strip>>;
71
181
  proof: z.ZodObject<{
72
182
  accepted: z.ZodBoolean;
73
183
  execution: z.ZodLiteral<"solari-microvm">;
@@ -96,6 +206,6 @@ export declare const evidenceReportSchema: z.ZodObject<{
96
206
  label: z.ZodString;
97
207
  path: z.ZodString;
98
208
  }, z.core.$strip>>;
99
- }, z.core.$strip>;
209
+ }, z.core.$strict>;
100
210
  export type EvidenceReport = z.infer<typeof evidenceReportSchema>;
101
211
  export type FailureOwnership = z.infer<typeof failureOwnershipSchema>;
@@ -1,4 +1,5 @@
1
1
  import { z } from "zod";
2
+ import { faultSetSchema } from "../domain/schema.js";
2
3
  export const failureOwnershipSchema = z.enum([
3
4
  "PRODUCT_RACE",
4
5
  "TEST_SELECTOR",
@@ -17,22 +18,33 @@ const resultSchema = z.object({
17
18
  passed: z.number().int().nonnegative(),
18
19
  trials: z.number().int().nonnegative(),
19
20
  });
21
+ const representativeRunSchema = z.object({
22
+ artifacts: z.array(z.object({
23
+ contentType: z.string().min(1),
24
+ name: z.string().min(1),
25
+ path: z.string().min(1).max(500),
26
+ })).max(5),
27
+ durationMs: z.number().int().nonnegative(),
28
+ status: z.enum(["failed", "passed"]),
29
+ trialId: z.string().min(1),
30
+ });
20
31
  export const evidenceReportSchema = z.object({
21
- version: z.literal(1),
22
32
  generatedAt: z.iso.datetime(),
23
33
  status: z.enum(["FIX_PROVEN", "PATCH_REJECTED"]),
24
34
  test: z.string().min(1).max(500),
25
35
  model: z.string().min(1).max(200),
26
36
  conclusion: z.string().min(1).max(2_000),
37
+ causalClaim: z.object({
38
+ controlExperimentIds: z.array(z.string().min(1)).min(1),
39
+ interventionExperimentIds: z.array(z.string().min(1)).min(1),
40
+ }),
27
41
  ownership: z.object({
28
42
  classification: failureOwnershipSchema,
29
43
  confidence: z.enum(["high", "medium", "low"]),
30
44
  rationale: z.string().min(1).max(1_000),
31
45
  }),
32
46
  trigger: z.object({
33
- kind: z.literal("network-delay"),
34
- pattern: z.string().min(1).max(500),
35
- delayMs: z.number().int().positive(),
47
+ faults: faultSetSchema,
36
48
  minimumFailureRate: z.number().gt(0).max(1),
37
49
  signature: z.string().min(1).max(200).optional(),
38
50
  }),
@@ -47,8 +59,15 @@ export const evidenceReportSchema = z.object({
47
59
  id: z.string().min(1),
48
60
  hypothesisId: z.string().min(1),
49
61
  condition: z.string().min(1).max(500),
62
+ representativeRuns: z.array(representativeRunSchema).max(2),
50
63
  result: resultSchema,
51
64
  })),
65
+ replayCommand: z.string().min(1).max(1_000),
66
+ sourcePaths: z.array(z.string().min(1).max(500)).min(1).max(8),
67
+ sourceLocations: z.array(z.object({
68
+ line: z.number().int().positive(),
69
+ path: z.string().min(1).max(500),
70
+ })).min(1).max(3),
52
71
  proof: z.object({
53
72
  accepted: z.boolean(),
54
73
  execution: z.literal("solari-microvm"),
@@ -67,5 +86,5 @@ export const evidenceReportSchema = z.object({
67
86
  label: z.string().min(1).max(100),
68
87
  path: z.string().min(1).max(500),
69
88
  })).min(3),
70
- });
89
+ }).strict();
71
90
  //# sourceMappingURL=schema.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/report/schema.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/report/schema.ts"],"names":[],"mappings":"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"}
@@ -1,17 +1,102 @@
1
1
  import { z } from "zod";
2
2
  export declare const reproducerSchema: z.ZodObject<{
3
- version: z.ZodLiteral<1>;
4
3
  test: z.ZodString;
5
4
  seed: z.ZodNumber;
6
5
  trials: z.ZodNumber;
7
- faults: z.ZodArray<z.ZodObject<{
6
+ faults: z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
7
+ kind: z.ZodLiteral<"animation-speed">;
8
+ pattern: z.ZodString;
9
+ rate: z.ZodNumber;
10
+ }, z.core.$strict>, z.ZodObject<{
11
+ kind: z.ZodLiteral<"auth-cookie-expiry">;
12
+ pattern: z.ZodString;
13
+ cookieName: z.ZodString;
14
+ }, z.core.$strict>, z.ZodObject<{
15
+ kind: z.ZodLiteral<"clock-jump">;
16
+ pattern: z.ZodString;
17
+ jumpAfterMs: z.ZodNumber;
18
+ offsetMs: z.ZodNumber;
19
+ }, z.core.$strict>, z.ZodObject<{
20
+ kind: z.ZodLiteral<"event-loop-stall">;
21
+ pattern: z.ZodString;
22
+ startAfterMs: z.ZodNumber;
23
+ durationMs: z.ZodNumber;
24
+ }, z.core.$strict>, z.ZodObject<{
25
+ kind: z.ZodLiteral<"locale">;
26
+ pattern: z.ZodString;
27
+ locale: z.ZodString;
28
+ }, z.core.$strict>, z.ZodObject<{
8
29
  kind: z.ZodLiteral<"network-delay">;
9
30
  pattern: z.ZodString;
10
31
  delayMs: z.ZodNumber;
11
- }, z.core.$strip>>;
32
+ }, z.core.$strict>, z.ZodObject<{
33
+ kind: z.ZodLiteral<"request-failure">;
34
+ pattern: z.ZodString;
35
+ statusCode: z.ZodNumber;
36
+ }, z.core.$strict>, z.ZodObject<{
37
+ kind: z.ZodLiteral<"reduced-motion">;
38
+ pattern: z.ZodString;
39
+ }, z.core.$strict>, z.ZodObject<{
40
+ kind: z.ZodLiteral<"resource-loading-delay">;
41
+ pattern: z.ZodString;
42
+ resourceType: z.ZodEnum<{
43
+ script: "script";
44
+ document: "document";
45
+ font: "font";
46
+ image: "image";
47
+ stylesheet: "stylesheet";
48
+ }>;
49
+ delayMs: z.ZodNumber;
50
+ }, z.core.$strict>, z.ZodObject<{
51
+ kind: z.ZodLiteral<"response-duplication">;
52
+ pattern: z.ZodString;
53
+ duplicateBytes: z.ZodNumber;
54
+ }, z.core.$strict>, z.ZodObject<{
55
+ kind: z.ZodLiteral<"response-reordering">;
56
+ pattern: z.ZodString;
57
+ holdMs: z.ZodNumber;
58
+ }, z.core.$strict>, z.ZodObject<{
59
+ kind: z.ZodLiteral<"response-truncation">;
60
+ pattern: z.ZodString;
61
+ removeBytes: z.ZodNumber;
62
+ }, z.core.$strict>, z.ZodObject<{
63
+ kind: z.ZodLiteral<"shared-state-interference">;
64
+ pattern: z.ZodString;
65
+ copies: z.ZodNumber;
66
+ }, z.core.$strict>, z.ZodObject<{
67
+ kind: z.ZodLiteral<"storage-state-delay">;
68
+ pattern: z.ZodString;
69
+ storage: z.ZodEnum<{
70
+ "local-storage": "local-storage";
71
+ "session-storage": "session-storage";
72
+ }>;
73
+ key: z.ZodString;
74
+ delayMs: z.ZodNumber;
75
+ }, z.core.$strict>, z.ZodObject<{
76
+ kind: z.ZodLiteral<"startup-event-delay">;
77
+ pattern: z.ZodString;
78
+ event: z.ZodEnum<{
79
+ "dom-content-loaded": "dom-content-loaded";
80
+ load: "load";
81
+ }>;
82
+ delayMs: z.ZodNumber;
83
+ }, z.core.$strict>, z.ZodObject<{
84
+ kind: z.ZodLiteral<"timezone">;
85
+ pattern: z.ZodString;
86
+ timezoneId: z.ZodString;
87
+ }, z.core.$strict>, z.ZodObject<{
88
+ kind: z.ZodLiteral<"viewport">;
89
+ pattern: z.ZodString;
90
+ width: z.ZodNumber;
91
+ height: z.ZodNumber;
92
+ }, z.core.$strict>, z.ZodObject<{
93
+ kind: z.ZodLiteral<"worker-pressure">;
94
+ pattern: z.ZodString;
95
+ workers: z.ZodNumber;
96
+ }, z.core.$strict>], "kind">>;
12
97
  expectedFailure: z.ZodObject<{
13
98
  minimumRate: z.ZodNumber;
14
99
  signature: z.ZodOptional<z.ZodString>;
15
100
  }, z.core.$strip>;
16
- }, z.core.$strip>;
101
+ }, z.core.$strict>;
17
102
  export type Reproducer = z.infer<typeof reproducerSchema>;
@@ -1,14 +1,13 @@
1
1
  import { z } from "zod";
2
- import { networkDelayFaultSchema } from "../domain/schema.js";
2
+ import { faultSetSchema } from "../domain/schema.js";
3
3
  export const reproducerSchema = z.object({
4
- version: z.literal(1),
5
4
  test: z.string().min(1),
6
5
  seed: z.number().int().min(0).max(0xffff_ffff),
7
6
  trials: z.number().int().min(2).max(100),
8
- faults: z.array(networkDelayFaultSchema).length(1),
7
+ faults: faultSetSchema,
9
8
  expectedFailure: z.object({
10
9
  minimumRate: z.number().gt(0).max(1),
11
10
  signature: z.string().min(1).optional(),
12
11
  }),
13
- });
12
+ }).strict();
14
13
  //# sourceMappingURL=schema.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/reproducer/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB,OAAO,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAA;AAE7D,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC;IACvC,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;IACrB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACvB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC;IAC9C,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;IACxC,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;IAClD,eAAe,EAAE,CAAC,CAAC,MAAM,CAAC;QACxB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QACpC,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;KACxC,CAAC;CACH,CAAC,CAAA"}
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/reproducer/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AAEpD,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC;IACvC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACvB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,WAAW,CAAC;IAC9C,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;IACxC,MAAM,EAAE,cAAc;IACtB,eAAe,EAAE,CAAC,CAAC,MAAM,CAAC;QACxB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QACpC,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;KACxC,CAAC;CACH,CAAC,CAAC,MAAM,EAAE,CAAA"}
@@ -0,0 +1,10 @@
1
+ import type { Fault } from "../domain/schema.js";
2
+ export type RunnerExecutionFault = Extract<Fault, {
3
+ kind: "shared-state-interference" | "worker-pressure";
4
+ }>;
5
+ export interface RunnerExecutionControls {
6
+ arguments: string[];
7
+ environment: NodeJS.ProcessEnv;
8
+ }
9
+ export declare function isRunnerExecutionFault(fault: Fault): fault is RunnerExecutionFault;
10
+ export declare function runnerExecutionControls(faults: readonly Fault[]): RunnerExecutionControls;
@@ -0,0 +1,24 @@
1
+ export function isRunnerExecutionFault(fault) {
2
+ return fault.kind === "shared-state-interference" || fault.kind === "worker-pressure";
3
+ }
4
+ export function runnerExecutionControls(faults) {
5
+ const runnerFault = faults.find(isRunnerExecutionFault);
6
+ if (!runnerFault) {
7
+ return { arguments: ["--workers=1"], environment: {} };
8
+ }
9
+ if (runnerFault.kind === "worker-pressure") {
10
+ return {
11
+ arguments: [`--workers=${runnerFault.workers}`, "--fully-parallel"],
12
+ environment: { FLAKELAB_WORKER_PRESSURE_ACTIVE: "1" },
13
+ };
14
+ }
15
+ return {
16
+ arguments: [
17
+ `--workers=${runnerFault.copies}`,
18
+ `--repeat-each=${runnerFault.copies}`,
19
+ "--fully-parallel",
20
+ ],
21
+ environment: { FLAKELAB_SHARED_STATE_ACTIVE: "1" },
22
+ };
23
+ }
24
+ //# sourceMappingURL=execution-fault.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"execution-fault.js","sourceRoot":"","sources":["../../src/runner/execution-fault.ts"],"names":[],"mappings":"AAWA,MAAM,UAAU,sBAAsB,CAAC,KAAY;IACjD,OAAO,KAAK,CAAC,IAAI,KAAK,2BAA2B,IAAI,KAAK,CAAC,IAAI,KAAK,iBAAiB,CAAA;AACvF,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,MAAwB;IAC9D,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAA;IACvD,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,OAAO,EAAE,SAAS,EAAE,CAAC,aAAa,CAAC,EAAE,WAAW,EAAE,EAAE,EAAE,CAAA;IACxD,CAAC;IACD,IAAI,WAAW,CAAC,IAAI,KAAK,iBAAiB,EAAE,CAAC;QAC3C,OAAO;YACL,SAAS,EAAE,CAAC,aAAa,WAAW,CAAC,OAAO,EAAE,EAAE,kBAAkB,CAAC;YACnE,WAAW,EAAE,EAAE,+BAA+B,EAAE,GAAG,EAAE;SACtD,CAAA;IACH,CAAC;IACD,OAAO;QACL,SAAS,EAAE;YACT,aAAa,WAAW,CAAC,MAAM,EAAE;YACjC,iBAAiB,WAAW,CAAC,MAAM,EAAE;YACrC,kBAAkB;SACnB;QACD,WAAW,EAAE,EAAE,4BAA4B,EAAE,GAAG,EAAE;KACnD,CAAA;AACH,CAAC"}
@@ -0,0 +1,7 @@
1
+ import type { Fault } from "../domain/schema.js";
2
+ export interface FaultProxy {
3
+ close: () => Promise<void>;
4
+ unmatchedFaults: () => Fault[];
5
+ url: string;
6
+ }
7
+ export declare function startFaultProxy(input: readonly Fault[]): Promise<FaultProxy>;