V13-FE-011: finalize search list layout slice

This commit is contained in:
2026-08-09 02:57:26 +09:00
parent 9efd202e76
commit 6422cb2b13
984 changed files with 120811 additions and 1498 deletions
@@ -0,0 +1,12 @@
import { kbxTestScenarioCatalog } from '@kbx/contracts'
export function requireKbxScenario(id: keyof typeof kbxTestScenarioCatalog) {
const scenario = kbxTestScenarioCatalog[id]
if (!scenario) throw new Error(`Unknown KBX scenario: ${String(id)}`)
return scenario
}
export function scenarioTitle(id: keyof typeof kbxTestScenarioCatalog) {
const s = requireKbxScenario(id)
return `[${s.id}] ${s.title}`
}
@@ -0,0 +1,17 @@
import { createHash, randomUUID } from 'node:crypto'
import { readFile } from 'node:fs/promises'
export type KbxScenarioEvidenceArtifact = {
type: string
path: string
sha256?: string
}
export async function sha256File(path: string) {
const bytes = await readFile(path)
return createHash('sha256').update(bytes).digest('hex')
}
export function createScenarioRunId() {
return `kbx-scenario-${randomUUID()}`
}