chore: initialize repository baseline

Import the existing Electron + React + TypeScript app as the version-control
baseline before the scanner rework (C# input/capture sidecar, resolution-anchored
layout profiles, OCR preprocessing, eval harness, rescan-merge, GOOD interop).

Housekeeping in this commit:
- Remove orphaned temp_inputhelper_block.ts (duplicate of the input-helper script).
- Ignore .claude/scheduled_tasks.lock local session state.
- Add .gitattributes to normalize line endings (LF in repo).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
AzuTear
2026-07-05 20:31:01 +02:00
commit e76d88e0c7
147 changed files with 26220 additions and 0 deletions
+79
View File
@@ -0,0 +1,79 @@
import { Eye, Play, Save } from "lucide-react";
import { BuildsView } from "../../features/builds/BuildsView";
import { OverlayPreview, OverlaySettings } from "../../features/overlay/OverlayViews";
import { ScanView } from "../../features/scan/ScanView";
import { TriageView } from "../../features/triage/TriageView";
import { AppMetrics, AppShell, AppSidebar, AppTopbar } from "../../features/layout";
import type { AppPageLayoutProps } from "./types";
import { useAppPageLayoutModel } from "./hooks/useAppPageLayoutModel";
export function AppPageLayout({ controller }: AppPageLayoutProps) {
const {
activeView,
setActiveView,
isOverlay,
isScanning,
snapshot,
captureSources,
selectedSourceId,
setSelectedSourceId,
latestCapture,
topbarStatus,
bridgeReady,
canExportGood,
canShowOverlay,
metricCards,
refreshCaptureSources,
captureSelectedSource,
exportCurrentGood,
loadStoredArtifactSnapshot,
showOverlay,
} = controller;
const { renderNavigation, handleDemoScan } = useAppPageLayoutModel({ controller });
if (isOverlay) {
return <OverlayPreview snapshot={snapshot} />;
}
return (
<AppShell
sidebar={<AppSidebar activeView={activeView} items={renderNavigation} onSelect={setActiveView} />}
children={
<>
<AppTopbar
topbarStatus={topbarStatus}
canExportGood={canExportGood}
canShowOverlay={canShowOverlay}
isScanning={isScanning}
artifactCount={snapshot.artifacts.length}
onExportGood={exportCurrentGood}
onShowOverlay={showOverlay}
onDemoScan={handleDemoScan}
exportIcon={<Save size={16} />}
overlayIcon={<Eye size={16} />}
demoIcon={<Play size={16} />}
/>
<AppMetrics metricCards={metricCards} />
{activeView === "scan" && (
<ScanView
isScanning={isScanning}
snapshot={snapshot}
captureSources={captureSources}
selectedSourceId={selectedSourceId}
setSelectedSourceId={setSelectedSourceId}
latestCapture={latestCapture}
captureStatus={topbarStatus}
refreshCaptureSources={refreshCaptureSources}
captureSelectedSource={captureSelectedSource}
bridgeReady={bridgeReady}
onStoredArtifactsChanged={loadStoredArtifactSnapshot}
/>
)}
{activeView === "triage" && <TriageView snapshot={snapshot} />}
{activeView === "builds" && <BuildsView snapshot={snapshot} />}
{activeView === "overlay" && <OverlaySettings canShowOverlay={canShowOverlay} onShowOverlay={showOverlay} />}
</>
}
/>
);
}