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.
- package/README.md +225 -38
- package/dist/analysis/blob-report.d.ts +15 -0
- package/dist/analysis/blob-report.js +137 -0
- package/dist/analysis/blob-report.js.map +1 -0
- package/dist/analysis/cli.d.ts +7 -0
- package/dist/analysis/cli.js +28 -0
- package/dist/analysis/cli.js.map +1 -0
- package/dist/analysis/schema.d.ts +175 -0
- package/dist/analysis/schema.js +34 -0
- package/dist/analysis/schema.js.map +1 -0
- package/dist/analysis/zip-archive.d.ts +6 -0
- package/dist/analysis/zip-archive.js +193 -0
- package/dist/analysis/zip-archive.js.map +1 -0
- package/dist/artifacts/paths.d.ts +3 -0
- package/dist/artifacts/paths.js +34 -0
- package/dist/artifacts/paths.js.map +1 -0
- package/dist/artifacts/retention.d.ts +1 -0
- package/dist/artifacts/retention.js +80 -0
- package/dist/artifacts/retention.js.map +1 -0
- package/dist/bisect/engine.js +0 -1
- package/dist/bisect/engine.js.map +1 -1
- package/dist/bisect/schema.d.ts +5 -6
- package/dist/bisect/schema.js +1 -2
- package/dist/bisect/schema.js.map +1 -1
- package/dist/bisect/solari-evaluator.js +9 -1
- package/dist/bisect/solari-evaluator.js.map +1 -1
- package/dist/ci/job-summary.d.ts +2 -0
- package/dist/ci/job-summary.js +120 -2
- package/dist/ci/job-summary.js.map +1 -1
- package/dist/ci/select-command.js +1 -1
- package/dist/ci/select-command.js.map +1 -1
- package/dist/ci/summary-command.js +12 -7
- package/dist/ci/summary-command.js.map +1 -1
- package/dist/cli-arguments.d.ts +44 -0
- package/dist/cli-arguments.js +356 -0
- package/dist/cli-arguments.js.map +1 -0
- package/dist/cli-command-help.d.ts +11 -0
- package/dist/cli-command-help.js +211 -0
- package/dist/cli-command-help.js.map +1 -0
- package/dist/cli-help.d.ts +5 -2
- package/dist/cli-help.js +122 -45
- package/dist/cli-help.js.map +1 -1
- package/dist/cli-option-definitions.d.ts +202 -0
- package/dist/cli-option-definitions.js +59 -0
- package/dist/cli-option-definitions.js.map +1 -0
- package/dist/cli.js +100 -100
- package/dist/cli.js.map +1 -1
- package/dist/commands/analyze-summary.d.ts +5 -0
- package/dist/commands/analyze-summary.js +89 -0
- package/dist/commands/analyze-summary.js.map +1 -0
- package/dist/commands/analyze.d.ts +6 -0
- package/dist/commands/analyze.js +128 -0
- package/dist/commands/analyze.js.map +1 -0
- package/dist/commands/bisect.d.ts +2 -2
- package/dist/commands/bisect.js +32 -3
- package/dist/commands/bisect.js.map +1 -1
- package/dist/commands/diagnose.d.ts +3 -2
- package/dist/commands/diagnose.js +355 -23
- package/dist/commands/diagnose.js.map +1 -1
- package/dist/commands/discover.d.ts +18 -2
- package/dist/commands/discover.js +215 -25
- package/dist/commands/discover.js.map +1 -1
- package/dist/commands/doctor.d.ts +2 -0
- package/dist/commands/doctor.js +66 -25
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/investigate.d.ts +3 -2
- package/dist/commands/investigate.js +22 -3
- package/dist/commands/investigate.js.map +1 -1
- package/dist/commands/options.d.ts +123 -16
- package/dist/commands/options.js +24 -2
- package/dist/commands/options.js.map +1 -1
- package/dist/commands/prove.d.ts +2 -2
- package/dist/commands/prove.js +38 -1
- package/dist/commands/prove.js.map +1 -1
- package/dist/commands/repair.d.ts +8 -2
- package/dist/commands/repair.js +32 -9
- package/dist/commands/repair.js.map +1 -1
- package/dist/commands/replay.d.ts +2 -2
- package/dist/commands/replay.js +15 -2
- package/dist/commands/replay.js.map +1 -1
- package/dist/commands/report.d.ts +2 -2
- package/dist/commands/report.js +35 -10
- package/dist/commands/report.js.map +1 -1
- package/dist/commands/scan-summary.d.ts +7 -0
- package/dist/commands/scan-summary.js +175 -0
- package/dist/commands/scan-summary.js.map +1 -0
- package/dist/commands/scan.d.ts +9 -12
- package/dist/commands/scan.js +66 -62
- package/dist/commands/scan.js.map +1 -1
- package/dist/core/plan.js +1 -1
- package/dist/core/plan.js.map +1 -1
- package/dist/diagnosis/checkpoint.d.ts +6 -0
- package/dist/diagnosis/checkpoint.js +46 -0
- package/dist/diagnosis/checkpoint.js.map +1 -0
- package/dist/diagnosis/cli.d.ts +7 -0
- package/dist/diagnosis/cli.js +84 -0
- package/dist/diagnosis/cli.js.map +1 -0
- package/dist/diagnosis/recommendation.d.ts +13 -0
- package/dist/diagnosis/recommendation.js +95 -0
- package/dist/diagnosis/recommendation.js.map +1 -0
- package/dist/diagnosis/run-state.d.ts +52 -0
- package/dist/diagnosis/run-state.js +173 -0
- package/dist/diagnosis/run-state.js.map +1 -0
- package/dist/diagnosis/schema.d.ts +207 -0
- package/dist/diagnosis/schema.js +108 -0
- package/dist/diagnosis/schema.js.map +1 -0
- package/dist/diagnosis/solari-handoff.d.ts +9 -0
- package/dist/diagnosis/solari-handoff.js +40 -0
- package/dist/diagnosis/solari-handoff.js.map +1 -0
- package/dist/diagnosis/summary.d.ts +3 -0
- package/dist/diagnosis/summary.js +115 -0
- package/dist/diagnosis/summary.js.map +1 -0
- package/dist/discovery/auth-cookie.d.ts +19 -0
- package/dist/discovery/auth-cookie.js +26 -0
- package/dist/discovery/auth-cookie.js.map +1 -0
- package/dist/discovery/evaluate.d.ts +35 -2
- package/dist/discovery/evaluate.js +136 -30
- package/dist/discovery/evaluate.js.map +1 -1
- package/dist/discovery/event-loop.d.ts +25 -0
- package/dist/discovery/event-loop.js +84 -0
- package/dist/discovery/event-loop.js.map +1 -0
- package/dist/discovery/minimize.d.ts +61 -1
- package/dist/discovery/minimize.js +179 -7
- package/dist/discovery/minimize.js.map +1 -1
- package/dist/discovery/resource-loading.d.ts +25 -0
- package/dist/discovery/resource-loading.js +84 -0
- package/dist/discovery/resource-loading.js.map +1 -0
- package/dist/discovery/runner-environment.d.ts +26 -0
- package/dist/discovery/runner-environment.js +68 -0
- package/dist/discovery/runner-environment.js.map +1 -0
- package/dist/discovery/startup-event.d.ts +25 -0
- package/dist/discovery/startup-event.js +84 -0
- package/dist/discovery/startup-event.js.map +1 -0
- package/dist/discovery/storage-state.d.ts +26 -0
- package/dist/discovery/storage-state.js +86 -0
- package/dist/discovery/storage-state.js.map +1 -0
- package/dist/discovery/temporal-environment.d.ts +31 -0
- package/dist/discovery/temporal-environment.js +43 -0
- package/dist/discovery/temporal-environment.js.map +1 -0
- package/dist/discovery/visual-environment.d.ts +28 -0
- package/dist/discovery/visual-environment.js +42 -0
- package/dist/discovery/visual-environment.js.map +1 -0
- package/dist/domain/schema.d.ts +840 -20
- package/dist/domain/schema.js +216 -6
- package/dist/domain/schema.js.map +1 -1
- package/dist/faults/browser-context.d.ts +16 -0
- package/dist/faults/browser-context.js +60 -0
- package/dist/faults/browser-context.js.map +1 -0
- package/dist/faults/cookie-header.d.ts +5 -0
- package/dist/faults/cookie-header.js +25 -0
- package/dist/faults/cookie-header.js.map +1 -0
- package/dist/faults/document-bootstrap.d.ts +5 -0
- package/dist/faults/document-bootstrap.js +141 -0
- package/dist/faults/document-bootstrap.js.map +1 -0
- package/dist/faults/install.d.ts +1 -1
- package/dist/faults/install.js +199 -6
- package/dist/faults/install.js.map +1 -1
- package/dist/faults/pattern.d.ts +1 -0
- package/dist/faults/pattern.js +24 -0
- package/dist/faults/pattern.js.map +1 -0
- package/dist/investigator/agent.js +39 -17
- package/dist/investigator/agent.js.map +1 -1
- package/dist/investigator/ledger.d.ts +1 -1
- package/dist/investigator/ledger.js +2 -2
- package/dist/investigator/ledger.js.map +1 -1
- package/dist/investigator/safe-source.d.ts +1 -0
- package/dist/investigator/safe-source.js +12 -3
- package/dist/investigator/safe-source.js.map +1 -1
- package/dist/investigator/schema.d.ts +293 -2
- package/dist/investigator/schema.js +100 -2
- package/dist/investigator/schema.js.map +1 -1
- package/dist/proof/cli.d.ts +7 -0
- package/dist/proof/cli.js +108 -0
- package/dist/proof/cli.js.map +1 -0
- package/dist/proof/preflight.d.ts +4 -0
- package/dist/proof/preflight.js +9 -0
- package/dist/proof/preflight.js.map +1 -0
- package/dist/repair/generator.d.ts +12 -1
- package/dist/repair/generator.js +30 -6
- package/dist/repair/generator.js.map +1 -1
- package/dist/repair/remote-proof-runner.js +6 -10
- package/dist/repair/remote-proof-runner.js.map +1 -1
- package/dist/repair/schema.d.ts +77 -2
- package/dist/repair/schema.js +23 -2
- package/dist/repair/schema.js.map +1 -1
- package/dist/repair/solari-validator.d.ts +2 -0
- package/dist/repair/solari-validator.js +4 -6
- package/dist/repair/solari-validator.js.map +1 -1
- package/dist/repair/summary.d.ts +10 -0
- package/dist/repair/summary.js +58 -0
- package/dist/repair/summary.js.map +1 -0
- package/dist/repair/validator.d.ts +1 -0
- package/dist/repair/validator.js +53 -12
- package/dist/repair/validator.js.map +1 -1
- package/dist/report/bundle.js +16 -37
- package/dist/report/bundle.js.map +1 -1
- package/dist/report/model.js +131 -12
- package/dist/report/model.js.map +1 -1
- package/dist/report/open.d.ts +9 -0
- package/dist/report/open.js +23 -0
- package/dist/report/open.js.map +1 -1
- package/dist/report/report-client.css +2 -0
- package/dist/report/report-client.js +58 -0
- package/dist/report/schema.d.ts +115 -5
- package/dist/report/schema.js +24 -5
- package/dist/report/schema.js.map +1 -1
- package/dist/reproducer/schema.d.ts +89 -4
- package/dist/reproducer/schema.js +3 -4
- package/dist/reproducer/schema.js.map +1 -1
- package/dist/runner/execution-fault.d.ts +10 -0
- package/dist/runner/execution-fault.js +24 -0
- package/dist/runner/execution-fault.js.map +1 -0
- package/dist/runner/fault-proxy.d.ts +7 -0
- package/dist/runner/fault-proxy.js +366 -0
- package/dist/runner/fault-proxy.js.map +1 -0
- package/dist/runner/local.js +2 -2
- package/dist/runner/local.js.map +1 -1
- package/dist/runner/native-scan.d.ts +25 -0
- package/dist/runner/native-scan.js +306 -0
- package/dist/runner/native-scan.js.map +1 -0
- package/dist/runner/playwright-executor.d.ts +3 -0
- package/dist/runner/playwright-executor.js +125 -66
- package/dist/runner/playwright-executor.js.map +1 -1
- package/dist/runner/process-tree.d.ts +7 -0
- package/dist/runner/process-tree.js +62 -0
- package/dist/runner/process-tree.js.map +1 -0
- package/dist/runner/project-bridge.d.ts +7 -0
- package/dist/runner/project-bridge.js +83 -0
- package/dist/runner/project-bridge.js.map +1 -0
- package/dist/runner/trial-reporter.d.ts +7 -0
- package/dist/runner/trial-reporter.js +47 -0
- package/dist/runner/trial-reporter.js.map +1 -0
- package/dist/scan/failure-clusters.d.ts +24 -0
- package/dist/scan/failure-clusters.js +74 -0
- package/dist/scan/failure-clusters.js.map +1 -0
- package/dist/scan/schema.d.ts +170 -0
- package/dist/scan/schema.js +71 -0
- package/dist/scan/schema.js.map +1 -0
- package/dist/solari/executor.d.ts +5 -1
- package/dist/solari/executor.js +25 -17
- package/dist/solari/executor.js.map +1 -1
- package/dist/solari/run-demo.d.ts +13 -1
- package/dist/solari/run-demo.js +35 -16
- package/dist/solari/run-demo.js.map +1 -1
- package/dist/solari/usage.d.ts +8 -2
- package/dist/solari/usage.js +14 -4
- package/dist/solari/usage.js.map +1 -1
- package/dist/ui/boundary.d.ts +17 -0
- package/dist/ui/boundary.js +18 -0
- package/dist/ui/boundary.js.map +1 -0
- package/dist/ui/console.d.ts +4 -0
- package/dist/ui/console.js +11 -0
- package/dist/ui/console.js.map +1 -0
- package/dist/ui/document.d.ts +40 -0
- package/dist/ui/document.js +120 -0
- package/dist/ui/document.js.map +1 -0
- package/dist/ui/format.d.ts +8 -0
- package/dist/ui/format.js +32 -0
- package/dist/ui/format.js.map +1 -0
- package/dist/ui/progress.d.ts +17 -1
- package/dist/ui/progress.js +51 -8
- package/dist/ui/progress.js.map +1 -1
- package/dist/ui/status.d.ts +7 -0
- package/dist/ui/status.js +36 -0
- package/dist/ui/status.js.map +1 -0
- package/dist/ui/style.d.ts +8 -0
- package/dist/ui/style.js +22 -0
- package/dist/ui/style.js.map +1 -0
- package/dist/ui/text.d.ts +17 -0
- package/dist/ui/text.js +123 -0
- package/dist/ui/text.js.map +1 -0
- package/dist/ui/theme.d.ts +23 -0
- package/dist/ui/theme.js +77 -0
- package/dist/ui/theme.js.map +1 -0
- package/dist/ui/trial-progress.d.ts +13 -0
- package/dist/ui/trial-progress.js +42 -0
- package/dist/ui/trial-progress.js.map +1 -0
- package/package.json +14 -19
- package/dist/faults/network-delay.d.ts +0 -5
- package/dist/faults/network-delay.js +0 -34
- package/dist/faults/network-delay.js.map +0 -1
- package/dist/faults/request-failure.d.ts +0 -5
- package/dist/faults/request-failure.js +0 -24
- package/dist/faults/request-failure.js.map +0 -1
- package/dist/playwright.d.ts +0 -3
- package/dist/playwright.js +0 -21
- package/dist/playwright.js.map +0 -1
- package/dist/report/browser-entry.d.ts +0 -2
- package/dist/report/browser-entry.js +0 -15
- package/dist/report/browser-entry.js.map +0 -1
- package/dist/report/components/artifacts.d.ts +0 -4
- package/dist/report/components/artifacts.js +0 -6
- package/dist/report/components/artifacts.js.map +0 -1
- package/dist/report/components/experiments.d.ts +0 -4
- package/dist/report/components/experiments.js +0 -7
- package/dist/report/components/experiments.js.map +0 -1
- package/dist/report/components/hypotheses.d.ts +0 -4
- package/dist/report/components/hypotheses.js +0 -26
- package/dist/report/components/hypotheses.js.map +0 -1
- package/dist/report/components/indicators.d.ts +0 -32
- package/dist/report/components/indicators.js +0 -42
- package/dist/report/components/indicators.js.map +0 -1
- package/dist/report/components/layout.d.ts +0 -29
- package/dist/report/components/layout.js +0 -20
- package/dist/report/components/layout.js.map +0 -1
- package/dist/report/components/proof.d.ts +0 -4
- package/dist/report/components/proof.js +0 -34
- package/dist/report/components/proof.js.map +0 -1
- package/dist/report/components/reproduction.d.ts +0 -4
- package/dist/report/components/reproduction.js +0 -19
- package/dist/report/components/reproduction.js.map +0 -1
- package/dist/report/components/summary.d.ts +0 -4
- package/dist/report/components/summary.js +0 -12
- package/dist/report/components/summary.js.map +0 -1
- package/dist/report/components/verdict.d.ts +0 -4
- package/dist/report/components/verdict.js +0 -27
- package/dist/report/components/verdict.js.map +0 -1
- package/dist/report/report-app.d.ts +0 -6
- package/dist/report/report-app.js +0 -16
- package/dist/report/report-app.js.map +0 -1
- package/dist/report/report-details.css +0 -182
- package/dist/report/report.css +0 -404
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { CredentialProvider } from "../security/credentials.js";
|
|
2
|
+
type CredentialRequester = (provider: CredentialProvider, forcePrompt: boolean) => Promise<string>;
|
|
3
|
+
export declare function preflightProofCredentials(forcePrompt: boolean, request?: CredentialRequester): Promise<void>;
|
|
4
|
+
export {};
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { requireCredential } from "../security/credentials.js";
|
|
2
|
+
async function requestCredential(provider, forcePrompt) {
|
|
3
|
+
return requireCredential(provider, { forcePrompt });
|
|
4
|
+
}
|
|
5
|
+
export async function preflightProofCredentials(forcePrompt, request = requestCredential) {
|
|
6
|
+
await request("groq", forcePrompt);
|
|
7
|
+
await request("solari", forcePrompt);
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=preflight.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"preflight.js","sourceRoot":"","sources":["../../src/proof/preflight.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAA;AAQ9D,KAAK,UAAU,iBAAiB,CAC9B,QAA4B,EAC5B,WAAoB;IAEpB,OAAO,iBAAiB,CAAC,QAAQ,EAAE,EAAE,WAAW,EAAE,CAAC,CAAA;AACrD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,yBAAyB,CAC7C,WAAoB,EACpB,UAA+B,iBAAiB;IAEhD,MAAM,OAAO,CAAC,MAAM,EAAE,WAAW,CAAC,CAAA;IAClC,MAAM,OAAO,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAA;AACtC,CAAC"}
|
|
@@ -3,10 +3,21 @@ import type { InvestigationReport } from "../investigator/schema.js";
|
|
|
3
3
|
import type { CandidatePatch } from "./schema.js";
|
|
4
4
|
interface PatchGeneratorOptions {
|
|
5
5
|
investigation: InvestigationReport;
|
|
6
|
+
maxCostUsd: number;
|
|
6
7
|
maxSeconds: number;
|
|
7
8
|
model: LanguageModel;
|
|
8
9
|
projectRoot: string;
|
|
9
10
|
signal?: AbortSignal;
|
|
11
|
+
sourcePaths: string[];
|
|
10
12
|
}
|
|
11
|
-
export
|
|
13
|
+
export interface CandidateGenerationUsage {
|
|
14
|
+
estimatedCostUsd: number;
|
|
15
|
+
inputTokens: number;
|
|
16
|
+
outputTokens: number;
|
|
17
|
+
}
|
|
18
|
+
export interface GeneratedCandidatePatch {
|
|
19
|
+
candidate: CandidatePatch;
|
|
20
|
+
usage: CandidateGenerationUsage;
|
|
21
|
+
}
|
|
22
|
+
export declare function generateCandidatePatch(options: PatchGeneratorOptions): Promise<GeneratedCandidatePatch>;
|
|
12
23
|
export {};
|
package/dist/repair/generator.js
CHANGED
|
@@ -1,7 +1,12 @@
|
|
|
1
1
|
import { generateText, Output } from "ai";
|
|
2
|
-
import {
|
|
2
|
+
import { readSafeRepairContext } from "../investigator/safe-source.js";
|
|
3
|
+
import { QWEN_INPUT_USD_PER_MILLION, QWEN_OUTPUT_USD_PER_MILLION, } from "../investigator/groq.js";
|
|
3
4
|
import { validateCandidatePatch } from "./policy.js";
|
|
4
5
|
import { candidatePatchSchema } from "./schema.js";
|
|
6
|
+
function estimatedCost(inputTokens, outputTokens) {
|
|
7
|
+
return (inputTokens * QWEN_INPUT_USD_PER_MILLION
|
|
8
|
+
+ outputTokens * QWEN_OUTPUT_USD_PER_MILLION) / 1_000_000;
|
|
9
|
+
}
|
|
5
10
|
function patchPrompt(investigation, sources) {
|
|
6
11
|
return [
|
|
7
12
|
"Propose the smallest application-code repair for this experimentally confirmed failure.",
|
|
@@ -31,7 +36,14 @@ async function requestCandidate(options, prompt) {
|
|
|
31
36
|
abortSignal: options.signal,
|
|
32
37
|
temperature: 0.2,
|
|
33
38
|
});
|
|
34
|
-
return
|
|
39
|
+
return {
|
|
40
|
+
candidate: result.output,
|
|
41
|
+
usage: {
|
|
42
|
+
estimatedCostUsd: estimatedCost(result.usage.inputTokens ?? 0, result.usage.outputTokens ?? 0),
|
|
43
|
+
inputTokens: result.usage.inputTokens ?? 0,
|
|
44
|
+
outputTokens: result.usage.outputTokens ?? 0,
|
|
45
|
+
},
|
|
46
|
+
};
|
|
35
47
|
}
|
|
36
48
|
catch (error) {
|
|
37
49
|
if (attempt === 2) {
|
|
@@ -47,13 +59,25 @@ async function requestCandidate(options, prompt) {
|
|
|
47
59
|
throw new Error("Structured candidate generation exhausted its retry budget");
|
|
48
60
|
}
|
|
49
61
|
export async function generateCandidatePatch(options) {
|
|
50
|
-
const sources = await
|
|
62
|
+
const sources = await readSafeRepairContext(options.projectRoot, options.investigation.test, options.sourcePaths);
|
|
51
63
|
const allowedPaths = sources.map((source) => source.path);
|
|
52
64
|
let prompt = patchPrompt(options.investigation, sources);
|
|
65
|
+
const usage = {
|
|
66
|
+
estimatedCostUsd: 0,
|
|
67
|
+
inputTokens: 0,
|
|
68
|
+
outputTokens: 0,
|
|
69
|
+
};
|
|
53
70
|
for (let attempt = 1; attempt <= 2; attempt += 1) {
|
|
54
|
-
const
|
|
71
|
+
const generated = await requestCandidate(options, prompt);
|
|
72
|
+
usage.inputTokens += generated.usage.inputTokens;
|
|
73
|
+
usage.outputTokens += generated.usage.outputTokens;
|
|
74
|
+
usage.estimatedCostUsd = estimatedCost(usage.inputTokens, usage.outputTokens);
|
|
75
|
+
if (usage.estimatedCostUsd > options.maxCostUsd) {
|
|
76
|
+
throw new Error(`Repair generation cost $${usage.estimatedCostUsd.toFixed(4)} exceeded its configured budget`);
|
|
77
|
+
}
|
|
55
78
|
try {
|
|
56
|
-
|
|
79
|
+
const candidate = await validateCandidatePatch(options.projectRoot, options.investigation.test, allowedPaths, generated.candidate);
|
|
80
|
+
return { candidate, usage };
|
|
57
81
|
}
|
|
58
82
|
catch (error) {
|
|
59
83
|
if (attempt === 2) {
|
|
@@ -64,7 +88,7 @@ export async function generateCandidatePatch(options) {
|
|
|
64
88
|
prompt,
|
|
65
89
|
"The previous candidate was rejected before execution.",
|
|
66
90
|
`Policy reason: ${reason}`,
|
|
67
|
-
`Rejected candidate: ${JSON.stringify(candidate)}`,
|
|
91
|
+
`Rejected candidate: ${JSON.stringify(generated.candidate)}`,
|
|
68
92
|
"Produce a structural application fix that satisfies the original constraints.",
|
|
69
93
|
].join("\n");
|
|
70
94
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generator.js","sourceRoot":"","sources":["../../src/repair/generator.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,IAAI,CAAA;AAGzC,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"generator.js","sourceRoot":"","sources":["../../src/repair/generator.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { parseArgs } from "node:util";
|
|
2
2
|
import { evaluateExperiment } from "../discovery/evaluate.js";
|
|
3
|
+
import { faultSetSchema } from "../domain/schema.js";
|
|
3
4
|
import { createPlaywrightExecutor } from "../runner/playwright-executor.js";
|
|
4
5
|
function required(value, name) {
|
|
5
6
|
if (!value) {
|
|
@@ -18,25 +19,20 @@ async function main() {
|
|
|
18
19
|
const { values } = parseArgs({
|
|
19
20
|
options: {
|
|
20
21
|
concurrency: { type: "string" },
|
|
21
|
-
"
|
|
22
|
+
"faults-json": { type: "string" },
|
|
22
23
|
hostile: { type: "boolean", default: false },
|
|
23
24
|
"min-rate": { type: "string" },
|
|
24
|
-
pattern: { type: "string" },
|
|
25
25
|
seed: { type: "string" },
|
|
26
26
|
selector: { type: "string" },
|
|
27
27
|
trials: { type: "string" },
|
|
28
28
|
},
|
|
29
29
|
});
|
|
30
|
-
const
|
|
31
|
-
?
|
|
32
|
-
|
|
33
|
-
delayMs: integer(values["delay-ms"], "delay-ms"),
|
|
34
|
-
pattern: required(values.pattern, "pattern"),
|
|
35
|
-
}
|
|
36
|
-
: undefined;
|
|
30
|
+
const faults = values.hostile
|
|
31
|
+
? faultSetSchema.parse(JSON.parse(required(values["faults-json"], "faults-json")))
|
|
32
|
+
: [];
|
|
37
33
|
const result = await evaluateExperiment(createPlaywrightExecutor(process.cwd(), required(values.selector, "selector")), {
|
|
38
34
|
concurrency: integer(values.concurrency, "concurrency"),
|
|
39
|
-
|
|
35
|
+
faults,
|
|
40
36
|
minimumFailureRate: Number(required(values["min-rate"], "min-rate")),
|
|
41
37
|
seed: integer(values.seed, "seed"),
|
|
42
38
|
trials: integer(values.trials, "trials"),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"remote-proof-runner.js","sourceRoot":"","sources":["../../src/repair/remote-proof-runner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAA;AAErC,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAA;
|
|
1
|
+
{"version":3,"file":"remote-proof-runner.js","sourceRoot":"","sources":["../../src/repair/remote-proof-runner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAA;AAErC,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAA;AAC7D,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AACpD,OAAO,EAAE,wBAAwB,EAAE,MAAM,kCAAkC,CAAA;AAE3E,SAAS,QAAQ,CAAC,KAAyB,EAAE,IAAY;IACvD,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI,cAAc,CAAC,CAAA;IACxC,CAAC;IACD,OAAO,KAAK,CAAA;AACd,CAAC;AAED,SAAS,OAAO,CAAC,KAAyB,EAAE,IAAY;IACtD,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAA;IAC5C,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC;QAC9B,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI,qBAAqB,CAAC,CAAA;IAC/C,CAAC;IACD,OAAO,MAAM,CAAA;AACf,CAAC;AAED,KAAK,UAAU,IAAI;IACjB,MAAM,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;QAC3B,OAAO,EAAE;YACP,WAAW,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YAC/B,aAAa,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YACjC,OAAO,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE;YAC5C,UAAU,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YAC9B,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YACxB,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;YAC5B,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;SAC3B;KACF,CAAC,CAAA;IACF,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO;QAC3B,CAAC,CAAC,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,aAAa,CAAC,CAAC,CAAC;QAClF,CAAC,CAAC,EAAE,CAAA;IACN,MAAM,MAAM,GAAG,MAAM,kBAAkB,CACrC,wBAAwB,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,QAAQ,CAAC,MAAM,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC,EAC9E;QACE,WAAW,EAAE,OAAO,CAAC,MAAM,CAAC,WAAW,EAAE,aAAa,CAAC;QACvD,MAAM;QACN,kBAAkB,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,UAAU,CAAC,CAAC;QACpE,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC;QAClC,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC;KACzC,CACF,CAAA;IACD,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAA;AACrC,CAAC;AAED,IAAI,CAAC;IACH,MAAM,IAAI,EAAE,CAAA;AACd,CAAC;AAAC,OAAO,KAAK,EAAE,CAAC;IACf,OAAO,CAAC,KAAK,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,4BAA4B,CAAC,CAAA;IACpF,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAA;AACtB,CAAC"}
|
package/dist/repair/schema.d.ts
CHANGED
|
@@ -14,10 +14,13 @@ export declare const candidatePatchSchema: z.ZodObject<{
|
|
|
14
14
|
}, z.core.$strip>>;
|
|
15
15
|
}, z.core.$strip>;
|
|
16
16
|
export declare const proofOfFixSchema: z.ZodObject<{
|
|
17
|
-
version: z.ZodLiteral<1>;
|
|
18
17
|
execution: z.ZodLiteral<"solari-microvm">;
|
|
19
18
|
patchAccepted: z.ZodBoolean;
|
|
20
19
|
patchPath: z.ZodString;
|
|
20
|
+
sourceLocations: z.ZodArray<z.ZodObject<{
|
|
21
|
+
line: z.ZodNumber;
|
|
22
|
+
path: z.ZodString;
|
|
23
|
+
}, z.core.$strip>>;
|
|
21
24
|
staticChecks: z.ZodObject<{
|
|
22
25
|
typecheck: z.ZodBoolean;
|
|
23
26
|
lint: z.ZodBoolean;
|
|
@@ -27,52 +30,124 @@ export declare const proofOfFixSchema: z.ZodObject<{
|
|
|
27
30
|
lint: z.ZodOptional<z.ZodString>;
|
|
28
31
|
}, z.core.$strip>;
|
|
29
32
|
beforeHostile: z.ZodObject<{
|
|
33
|
+
causalEffect: z.ZodOptional<z.ZodObject<{
|
|
34
|
+
controlFailures: z.ZodNumber;
|
|
35
|
+
controlRate: z.ZodNumber;
|
|
36
|
+
controlUpperBound80: z.ZodNumber;
|
|
37
|
+
failureRateIncrease: z.ZodNumber;
|
|
38
|
+
signature: z.ZodString;
|
|
39
|
+
treatmentFailures: z.ZodNumber;
|
|
40
|
+
treatmentLowerBound80: z.ZodNumber;
|
|
41
|
+
treatmentRate: z.ZodNumber;
|
|
42
|
+
}, z.core.$strip>>;
|
|
30
43
|
confirmed: z.ZodBoolean;
|
|
31
44
|
dominantFailureSignature: z.ZodOptional<z.ZodString>;
|
|
32
45
|
dominantFailureReason: z.ZodOptional<z.ZodString>;
|
|
33
46
|
errors: z.ZodNumber;
|
|
34
47
|
failed: z.ZodNumber;
|
|
35
48
|
failureRate: z.ZodNumber;
|
|
49
|
+
failureSignatures: z.ZodArray<z.ZodObject<{
|
|
50
|
+
failures: z.ZodNumber;
|
|
51
|
+
failureRate: z.ZodNumber;
|
|
52
|
+
lowerBound80: z.ZodNumber;
|
|
53
|
+
signature: z.ZodString;
|
|
54
|
+
upperBound80: z.ZodNumber;
|
|
55
|
+
}, z.core.$strip>>;
|
|
36
56
|
lowerBound80: z.ZodNumber;
|
|
37
57
|
passed: z.ZodNumber;
|
|
38
58
|
trials: z.ZodNumber;
|
|
59
|
+
upperBound80: z.ZodNumber;
|
|
39
60
|
}, z.core.$strip>;
|
|
40
61
|
afterHostile: z.ZodObject<{
|
|
62
|
+
causalEffect: z.ZodOptional<z.ZodObject<{
|
|
63
|
+
controlFailures: z.ZodNumber;
|
|
64
|
+
controlRate: z.ZodNumber;
|
|
65
|
+
controlUpperBound80: z.ZodNumber;
|
|
66
|
+
failureRateIncrease: z.ZodNumber;
|
|
67
|
+
signature: z.ZodString;
|
|
68
|
+
treatmentFailures: z.ZodNumber;
|
|
69
|
+
treatmentLowerBound80: z.ZodNumber;
|
|
70
|
+
treatmentRate: z.ZodNumber;
|
|
71
|
+
}, z.core.$strip>>;
|
|
41
72
|
confirmed: z.ZodBoolean;
|
|
42
73
|
dominantFailureSignature: z.ZodOptional<z.ZodString>;
|
|
43
74
|
dominantFailureReason: z.ZodOptional<z.ZodString>;
|
|
44
75
|
errors: z.ZodNumber;
|
|
45
76
|
failed: z.ZodNumber;
|
|
46
77
|
failureRate: z.ZodNumber;
|
|
78
|
+
failureSignatures: z.ZodArray<z.ZodObject<{
|
|
79
|
+
failures: z.ZodNumber;
|
|
80
|
+
failureRate: z.ZodNumber;
|
|
81
|
+
lowerBound80: z.ZodNumber;
|
|
82
|
+
signature: z.ZodString;
|
|
83
|
+
upperBound80: z.ZodNumber;
|
|
84
|
+
}, z.core.$strip>>;
|
|
47
85
|
lowerBound80: z.ZodNumber;
|
|
48
86
|
passed: z.ZodNumber;
|
|
49
87
|
trials: z.ZodNumber;
|
|
88
|
+
upperBound80: z.ZodNumber;
|
|
50
89
|
}, z.core.$strip>;
|
|
51
90
|
afterControl: z.ZodObject<{
|
|
91
|
+
causalEffect: z.ZodOptional<z.ZodObject<{
|
|
92
|
+
controlFailures: z.ZodNumber;
|
|
93
|
+
controlRate: z.ZodNumber;
|
|
94
|
+
controlUpperBound80: z.ZodNumber;
|
|
95
|
+
failureRateIncrease: z.ZodNumber;
|
|
96
|
+
signature: z.ZodString;
|
|
97
|
+
treatmentFailures: z.ZodNumber;
|
|
98
|
+
treatmentLowerBound80: z.ZodNumber;
|
|
99
|
+
treatmentRate: z.ZodNumber;
|
|
100
|
+
}, z.core.$strip>>;
|
|
52
101
|
confirmed: z.ZodBoolean;
|
|
53
102
|
dominantFailureSignature: z.ZodOptional<z.ZodString>;
|
|
54
103
|
dominantFailureReason: z.ZodOptional<z.ZodString>;
|
|
55
104
|
errors: z.ZodNumber;
|
|
56
105
|
failed: z.ZodNumber;
|
|
57
106
|
failureRate: z.ZodNumber;
|
|
107
|
+
failureSignatures: z.ZodArray<z.ZodObject<{
|
|
108
|
+
failures: z.ZodNumber;
|
|
109
|
+
failureRate: z.ZodNumber;
|
|
110
|
+
lowerBound80: z.ZodNumber;
|
|
111
|
+
signature: z.ZodString;
|
|
112
|
+
upperBound80: z.ZodNumber;
|
|
113
|
+
}, z.core.$strip>>;
|
|
58
114
|
lowerBound80: z.ZodNumber;
|
|
59
115
|
passed: z.ZodNumber;
|
|
60
116
|
trials: z.ZodNumber;
|
|
117
|
+
upperBound80: z.ZodNumber;
|
|
61
118
|
}, z.core.$strip>;
|
|
62
119
|
regressions: z.ZodArray<z.ZodObject<{
|
|
63
120
|
selector: z.ZodString;
|
|
64
121
|
result: z.ZodObject<{
|
|
122
|
+
causalEffect: z.ZodOptional<z.ZodObject<{
|
|
123
|
+
controlFailures: z.ZodNumber;
|
|
124
|
+
controlRate: z.ZodNumber;
|
|
125
|
+
controlUpperBound80: z.ZodNumber;
|
|
126
|
+
failureRateIncrease: z.ZodNumber;
|
|
127
|
+
signature: z.ZodString;
|
|
128
|
+
treatmentFailures: z.ZodNumber;
|
|
129
|
+
treatmentLowerBound80: z.ZodNumber;
|
|
130
|
+
treatmentRate: z.ZodNumber;
|
|
131
|
+
}, z.core.$strip>>;
|
|
65
132
|
confirmed: z.ZodBoolean;
|
|
66
133
|
dominantFailureSignature: z.ZodOptional<z.ZodString>;
|
|
67
134
|
dominantFailureReason: z.ZodOptional<z.ZodString>;
|
|
68
135
|
errors: z.ZodNumber;
|
|
69
136
|
failed: z.ZodNumber;
|
|
70
137
|
failureRate: z.ZodNumber;
|
|
138
|
+
failureSignatures: z.ZodArray<z.ZodObject<{
|
|
139
|
+
failures: z.ZodNumber;
|
|
140
|
+
failureRate: z.ZodNumber;
|
|
141
|
+
lowerBound80: z.ZodNumber;
|
|
142
|
+
signature: z.ZodString;
|
|
143
|
+
upperBound80: z.ZodNumber;
|
|
144
|
+
}, z.core.$strip>>;
|
|
71
145
|
lowerBound80: z.ZodNumber;
|
|
72
146
|
passed: z.ZodNumber;
|
|
73
147
|
trials: z.ZodNumber;
|
|
148
|
+
upperBound80: z.ZodNumber;
|
|
74
149
|
}, z.core.$strip>;
|
|
75
150
|
}, z.core.$strip>>;
|
|
76
|
-
}, z.core.$
|
|
151
|
+
}, z.core.$strict>;
|
|
77
152
|
export type CandidatePatch = z.infer<typeof candidatePatchSchema>;
|
|
78
153
|
export type ProofOfFix = z.infer<typeof proofOfFixSchema>;
|
package/dist/repair/schema.js
CHANGED
|
@@ -10,21 +10,42 @@ export const candidatePatchSchema = z.object({
|
|
|
10
10
|
edits: z.array(patchEditSchema).min(1).max(3),
|
|
11
11
|
});
|
|
12
12
|
const validationResultSchema = z.object({
|
|
13
|
+
causalEffect: z.object({
|
|
14
|
+
controlFailures: z.number().int().nonnegative(),
|
|
15
|
+
controlRate: z.number().min(0).max(1),
|
|
16
|
+
controlUpperBound80: z.number().min(0).max(1),
|
|
17
|
+
failureRateIncrease: z.number().min(-1).max(1),
|
|
18
|
+
signature: z.string().min(1),
|
|
19
|
+
treatmentFailures: z.number().int().nonnegative(),
|
|
20
|
+
treatmentLowerBound80: z.number().min(0).max(1),
|
|
21
|
+
treatmentRate: z.number().min(0).max(1),
|
|
22
|
+
}).optional(),
|
|
13
23
|
confirmed: z.boolean(),
|
|
14
24
|
dominantFailureSignature: z.string().min(1).optional(),
|
|
15
25
|
dominantFailureReason: z.string().min(1).max(2_000).optional(),
|
|
16
26
|
errors: z.number().int().nonnegative(),
|
|
17
27
|
failed: z.number().int().nonnegative(),
|
|
18
28
|
failureRate: z.number().min(0).max(1),
|
|
29
|
+
failureSignatures: z.array(z.object({
|
|
30
|
+
failures: z.number().int().positive(),
|
|
31
|
+
failureRate: z.number().min(0).max(1),
|
|
32
|
+
lowerBound80: z.number().min(0).max(1),
|
|
33
|
+
signature: z.string().min(1),
|
|
34
|
+
upperBound80: z.number().min(0).max(1),
|
|
35
|
+
})),
|
|
19
36
|
lowerBound80: z.number().min(0).max(1),
|
|
20
37
|
passed: z.number().int().nonnegative(),
|
|
21
38
|
trials: z.number().int().nonnegative(),
|
|
39
|
+
upperBound80: z.number().min(0).max(1),
|
|
22
40
|
});
|
|
23
41
|
export const proofOfFixSchema = z.object({
|
|
24
|
-
version: z.literal(1),
|
|
25
42
|
execution: z.literal("solari-microvm"),
|
|
26
43
|
patchAccepted: z.boolean(),
|
|
27
44
|
patchPath: z.string().min(1),
|
|
45
|
+
sourceLocations: z.array(z.object({
|
|
46
|
+
line: z.number().int().positive(),
|
|
47
|
+
path: z.string().min(1).max(500),
|
|
48
|
+
})).min(1).max(3),
|
|
28
49
|
staticChecks: z.object({
|
|
29
50
|
typecheck: z.boolean(),
|
|
30
51
|
lint: z.boolean(),
|
|
@@ -40,5 +61,5 @@ export const proofOfFixSchema = z.object({
|
|
|
40
61
|
selector: z.string().min(1),
|
|
41
62
|
result: validationResultSchema,
|
|
42
63
|
})),
|
|
43
|
-
});
|
|
64
|
+
}).strict();
|
|
44
65
|
//# sourceMappingURL=schema.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/repair/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,CAAC,MAAM,CAAC;IACtC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;IAChC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC;IACrC,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC;CACrC,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC3C,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC;IACtC,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC;IACxC,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;CAC9C,CAAC,CAAA;AAEF,MAAM,sBAAsB,GAAG,CAAC,CAAC,MAAM,CAAC;IACtC,SAAS,EAAE,CAAC,CAAC,OAAO,EAAE;IACtB,wBAAwB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IACtD,qBAAqB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,QAAQ,EAAE;IAC9D,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE;IACtC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE;IACtC,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IACrC,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IACtC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE;IACtC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE;CACvC,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC;IACvC,
|
|
1
|
+
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/repair/schema.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { ExperimentResult } from "../discovery/evaluate.js";
|
|
2
|
+
import type { Fault } from "../domain/schema.js";
|
|
2
3
|
import type { Reproducer } from "../reproducer/schema.js";
|
|
3
4
|
interface RemoteValidationOptions {
|
|
4
5
|
apiKey: string;
|
|
@@ -21,5 +22,6 @@ export interface RemoteValidationResult {
|
|
|
21
22
|
typecheck: boolean;
|
|
22
23
|
typecheckDiagnostic?: string;
|
|
23
24
|
}
|
|
25
|
+
export declare function remoteFaultArguments(faults: Fault[], hostile: boolean): string[];
|
|
24
26
|
export declare function validatePatchInSolari(options: RemoteValidationOptions): Promise<RemoteValidationResult>;
|
|
25
27
|
export {};
|
|
@@ -10,6 +10,9 @@ const SANDBOX_TIMEOUT_MS = 15 * 60_000;
|
|
|
10
10
|
const COMMAND_TIMEOUT_MS = 10 * 60_000;
|
|
11
11
|
const UPLOAD_BATCH_SIZE = 8;
|
|
12
12
|
const SETUP_POLL_ATTEMPTS = 300;
|
|
13
|
+
export function remoteFaultArguments(faults, hostile) {
|
|
14
|
+
return ["--faults-json", JSON.stringify(faults), ...(hostile ? ["--hostile"] : [])];
|
|
15
|
+
}
|
|
13
16
|
async function listProjectFiles(root, directory = root) {
|
|
14
17
|
const entries = await readdir(directory, { withFileTypes: true });
|
|
15
18
|
const files = [];
|
|
@@ -120,7 +123,6 @@ async function runDetachedSetup(sandbox, label, script, statusPath, signal) {
|
|
|
120
123
|
throw new Error(`Solari ${label} exceeded its timeout`);
|
|
121
124
|
}
|
|
122
125
|
function proofArguments(options, selector, trials, hostile) {
|
|
123
|
-
const fault = options.reproducer.faults[0];
|
|
124
126
|
return [
|
|
125
127
|
"exec",
|
|
126
128
|
"tsx",
|
|
@@ -135,11 +137,7 @@ function proofArguments(options, selector, trials, hostile) {
|
|
|
135
137
|
String(options.reproducer.seed),
|
|
136
138
|
"--min-rate",
|
|
137
139
|
String(options.reproducer.expectedFailure.minimumRate),
|
|
138
|
-
|
|
139
|
-
String(fault.delayMs),
|
|
140
|
-
"--pattern",
|
|
141
|
-
fault.pattern,
|
|
142
|
-
...(hostile ? ["--hostile"] : []),
|
|
140
|
+
...remoteFaultArguments(options.reproducer.faults, hostile),
|
|
143
141
|
];
|
|
144
142
|
}
|
|
145
143
|
async function runExperiment(sandbox, options, selector, trials, hostile) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"solari-validator.js","sourceRoot":"","sources":["../../src/repair/solari-validator.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AAClD,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AACpD,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,WAAW,CAAA;AAC/D,OAAO,EAAE,UAAU,IAAI,KAAK,EAAE,MAAM,sBAAsB,CAAA;AAG1D,OAAO,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAA;
|
|
1
|
+
{"version":3,"file":"solari-validator.js","sourceRoot":"","sources":["../../src/repair/solari-validator.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { TerminalTheme } from "../ui/theme.js";
|
|
2
|
+
import type { ProofOfFix } from "./schema.js";
|
|
3
|
+
/**
|
|
4
|
+
* The proof matrix as one scannable block: the hostile condition before and
|
|
5
|
+
* after the patch, the clean control, nearby regressions, and static checks.
|
|
6
|
+
*/
|
|
7
|
+
export declare function formatProofSummary(proof: ProofOfFix, paths: {
|
|
8
|
+
patch: string;
|
|
9
|
+
proof: string;
|
|
10
|
+
}, theme?: TerminalTheme): string;
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { TerminalDocument } from "../ui/document.js";
|
|
2
|
+
import { formatCount } from "../ui/format.js";
|
|
3
|
+
import { PLAIN_THEME } from "../ui/theme.js";
|
|
4
|
+
function trialSummary(result) {
|
|
5
|
+
const outcome = `${result.passed}/${result.trials} passed · ${result.failed} failed`;
|
|
6
|
+
return result.errors > 0 ? `${outcome} · ${formatCount(result.errors, "error")}` : outcome;
|
|
7
|
+
}
|
|
8
|
+
function regressionSummary(proof) {
|
|
9
|
+
const failures = proof.regressions.reduce((total, entry) => total + entry.result.failed, 0);
|
|
10
|
+
return `${formatCount(proof.regressions.length, "nearby selector")}`
|
|
11
|
+
+ ` · ${formatCount(failures, "failure")}`;
|
|
12
|
+
}
|
|
13
|
+
function checkLabel(passed) {
|
|
14
|
+
return passed ? "passed" : "failed";
|
|
15
|
+
}
|
|
16
|
+
function proofRows(proof) {
|
|
17
|
+
return [
|
|
18
|
+
{ label: "Before hostile", value: trialSummary(proof.beforeHostile) },
|
|
19
|
+
{ label: "After hostile", value: trialSummary(proof.afterHostile) },
|
|
20
|
+
{ label: "Clean control", value: trialSummary(proof.afterControl) },
|
|
21
|
+
{ label: "Regressions", value: regressionSummary(proof) },
|
|
22
|
+
{ label: "Typecheck", value: checkLabel(proof.staticChecks.typecheck) },
|
|
23
|
+
{ label: "ESLint", value: checkLabel(proof.staticChecks.lint) },
|
|
24
|
+
];
|
|
25
|
+
}
|
|
26
|
+
function appendDiagnostics(document, proof) {
|
|
27
|
+
const diagnostics = [
|
|
28
|
+
["Typecheck", proof.staticDiagnostics.typecheck],
|
|
29
|
+
["ESLint", proof.staticDiagnostics.lint],
|
|
30
|
+
];
|
|
31
|
+
const reported = diagnostics.filter(([, value]) => value !== undefined && value !== "");
|
|
32
|
+
if (reported.length === 0) {
|
|
33
|
+
return;
|
|
34
|
+
}
|
|
35
|
+
document.section("Static diagnostics");
|
|
36
|
+
for (const [label, value] of reported) {
|
|
37
|
+
document.entry("warning", label, value ?? "");
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* The proof matrix as one scannable block: the hostile condition before and
|
|
42
|
+
* after the patch, the clean control, nearby regressions, and static checks.
|
|
43
|
+
*/
|
|
44
|
+
export function formatProofSummary(proof, paths, theme = PLAIN_THEME) {
|
|
45
|
+
const tone = proof.patchAccepted ? "success" : "failure";
|
|
46
|
+
const document = new TerminalDocument(theme);
|
|
47
|
+
document.entry(tone, proof.patchAccepted ? "candidate accepted" : "candidate rejected", proof.patchAccepted
|
|
48
|
+
? "The patch removed the hostile failure without breaking clean behavior."
|
|
49
|
+
: "The patch did not satisfy every proof condition; the evidence is retained.");
|
|
50
|
+
document.blank().section("Proof matrix").rows(proofRows(proof));
|
|
51
|
+
appendDiagnostics(document, proof);
|
|
52
|
+
document.section("Evidence").rows([
|
|
53
|
+
{ label: "Patch", value: paths.patch },
|
|
54
|
+
{ label: "Proof", value: paths.proof },
|
|
55
|
+
]);
|
|
56
|
+
return document.render();
|
|
57
|
+
}
|
|
58
|
+
//# sourceMappingURL=summary.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"summary.js","sourceRoot":"","sources":["../../src/repair/summary.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,6 +9,7 @@ interface ValidationOptions {
|
|
|
9
9
|
reproducer: Reproducer;
|
|
10
10
|
signal?: AbortSignal;
|
|
11
11
|
}
|
|
12
|
+
export declare function nearbyRegressionSelectors(root: string, selectedTest: string, candidate: CandidatePatch): Promise<string[]>;
|
|
12
13
|
export declare function validateProofOfFix(options: ValidationOptions, patchPath: string): Promise<{
|
|
13
14
|
diff: string;
|
|
14
15
|
proof: ProofOfFix;
|