Add LLM token
This commit is contained in:
@@ -14,9 +14,10 @@ import type {
|
||||
ComplianceSourceEvent,
|
||||
ComplianceFindingEvent,
|
||||
ComplianceDonePayload,
|
||||
ComplianceConflict,
|
||||
} from '../../contexts';
|
||||
|
||||
export type { ComplianceMeta, ComplianceState, ComplianceSourceEvent as SourceEvent, ComplianceFindingEvent as FindingEvent, ComplianceDonePayload as DonePayload };
|
||||
export type { ComplianceMeta, ComplianceState, ComplianceSourceEvent as SourceEvent, ComplianceFindingEvent as FindingEvent, ComplianceDonePayload as DonePayload, ComplianceConflict };
|
||||
export type { ComplianceActionItem as ActionItem } from '../../contexts';
|
||||
export type AnalysisStatus = import('../../contexts').ComplianceStatus;
|
||||
export type AnalysisMeta = ComplianceMeta;
|
||||
@@ -38,6 +39,8 @@ const INITIAL_STATE: ComplianceState = {
|
||||
errorText: '',
|
||||
analysisId: null,
|
||||
isReadOnly: false,
|
||||
progress: null,
|
||||
conflicts: [],
|
||||
};
|
||||
|
||||
export function useComplianceAnalysis() {
|
||||
@@ -92,6 +95,9 @@ export function useComplianceAnalysis() {
|
||||
|
||||
if (j.type === 'stage') {
|
||||
setState(s => ({ ...s, stageLabel: j.label ?? '', stageKey: j.stage ?? '' }));
|
||||
} else if (j.type === 'progress') {
|
||||
// Real per-clause progress update from backend
|
||||
setState(s => ({ ...s, progress: { done: j.done ?? 0, total: j.total ?? 0 } }));
|
||||
} else if (j.type === 'source') {
|
||||
const src: ComplianceSourceEvent = {
|
||||
standard: j.standard ?? '',
|
||||
@@ -99,6 +105,7 @@ export function useComplianceAnalysis() {
|
||||
score: j.score ?? 0,
|
||||
status: j.status ?? 'retrieved',
|
||||
full_content: j.full_content ?? '',
|
||||
clause_index: j.clause_index,
|
||||
};
|
||||
setState(s => ({ ...s, sources: [...s.sources, src] }));
|
||||
} else if (j.type === 'finding') {
|
||||
@@ -107,8 +114,13 @@ export function useComplianceAnalysis() {
|
||||
desc: j.desc ?? '',
|
||||
status: j.status ?? 'info',
|
||||
clause_ref: j.clause_ref,
|
||||
confidence: j.confidence,
|
||||
source_refs: j.source_refs,
|
||||
};
|
||||
setState(s => ({ ...s, findings: [...s.findings, finding] }));
|
||||
} else if (j.type === 'conflicts') {
|
||||
// Cross-clause conflicts detected after all findings finish
|
||||
setState(s => ({ ...s, conflicts: j.items ?? [] }));
|
||||
} else if (j.type === 'done') {
|
||||
const payload: ComplianceDonePayload = {
|
||||
conclusion: j.conclusion ?? '',
|
||||
|
||||
Reference in New Issue
Block a user