mirror of
https://github.com/windmill-labs/windmill.git
synced 2026-08-20 00:02:19 +00:00
46b2915a9d
* chore: record app benchmark baseline Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * feat: strengthen app benchmark persistence checks Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * feat: seed inventory tracker benchmark case Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * feat: add deterministic app diagnostics Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * feat: add app chat patch_file tool Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * test: add app session id micro-edit case Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * fix: narrow app patch file content Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * fix: stop gating app evals on lint Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
53 lines
1.4 KiB
TypeScript
53 lines
1.4 KiB
TypeScript
import { collectAppDiagnostics } from "./appDiagnostics";
|
|
import type { BenchmarkArtifactFile } from "./types";
|
|
import type { AppFilesState } from "./validators";
|
|
|
|
export function buildAppArtifacts(actual: AppFilesState): BenchmarkArtifactFile[] {
|
|
const diagnostics = collectAppDiagnostics({
|
|
frontend: actual.frontend,
|
|
backend: actual.backend,
|
|
});
|
|
const artifacts: BenchmarkArtifactFile[] = [
|
|
{
|
|
path: "app.json",
|
|
content: JSON.stringify(actual, null, 2) + "\n",
|
|
},
|
|
{
|
|
path: "lint.json",
|
|
content: JSON.stringify(diagnostics, null, 2) + "\n",
|
|
},
|
|
];
|
|
|
|
for (const [filePath, content] of Object.entries(actual.frontend)) {
|
|
artifacts.push({
|
|
path: `frontend${filePath.startsWith("/") ? filePath : `/${filePath}`}`,
|
|
content,
|
|
});
|
|
}
|
|
|
|
for (const [key, runnable] of Object.entries(actual.backend)) {
|
|
artifacts.push({
|
|
path: `backend/${key}/meta.json`,
|
|
content: JSON.stringify(runnable, null, 2) + "\n",
|
|
});
|
|
|
|
const inlineContent = runnable.inlineScript?.content;
|
|
if (inlineContent) {
|
|
const extension = runnable.inlineScript?.language === "python3" ? "py" : "ts";
|
|
artifacts.push({
|
|
path: `backend/${key}/main.${extension}`,
|
|
content: inlineContent,
|
|
});
|
|
}
|
|
}
|
|
|
|
if (actual.datatables.length > 0) {
|
|
artifacts.push({
|
|
path: "datatables.json",
|
|
content: JSON.stringify(actual.datatables, null, 2) + "\n",
|
|
});
|
|
}
|
|
|
|
return artifacts;
|
|
}
|