feat(orchestrator): observe Page Data validation

This commit is contained in:
john
2026-07-25 14:16:57 +08:00
parent e02495a6c0
commit 417aa9c78b
17 changed files with 784 additions and 16 deletions
+19
View File
@@ -460,6 +460,25 @@ export type OrchestratorShadowRunDetail = {
phase?: string;
plan?: Record<string, unknown>;
result?: Record<string, unknown>;
validation?: {
version?: string;
kind?: string;
taskType?: string | null;
required?: boolean;
verdict?: 'passed' | 'failed' | 'inconclusive';
checks?: Array<{
id?: string;
status?: 'passed' | 'failed' | 'skipped';
codes?: string[];
}>;
metrics?: {
pageCount?: number;
publicationCount?: number;
};
source?: string;
dataPolicy?: string;
observedAt?: number;
} | null;
} | null;
events: Array<{
sequence?: number;
@@ -328,6 +328,19 @@ export function OrchestratorShadowPanel() {
{selected.remote.executorJob.error.message}
</p>
) : null}
{selected.remote.state?.validation ? (
<p
className={selected.remote.state.validation.verdict === 'failed' ? 'alert' : undefined}
style={{ color: selected.remote.state.validation.verdict === 'failed' ? undefined : '#4f6258' }}
>
Page Data
{selected.remote.state.validation.verdict ?? 'unknown'}
{' · '}
{selected.remote.state.validation.checks?.length ?? 0}
{' · '}
{selected.remote.state.validation.dataPolicy ?? 'unknown-policy'}
</p>
) : null}
<div style={{ display: 'grid', gridTemplateColumns: 'repeat(auto-fit, minmax(300px, 1fr))', gap: 12 }}>
<div>
<strong>LangGraph checkpoint</strong>