Add dark inference pipeline
This commit is contained in:
parent
3164167bee
commit
ea61c3b013
9 changed files with 699 additions and 1 deletions
66
packages/storage/src/inferred-dark.ts
Normal file
66
packages/storage/src/inferred-dark.ts
Normal file
|
|
@ -0,0 +1,66 @@
|
|||
import type { InferredDarkEvent } from "@islandflow/types";
|
||||
|
||||
export const INFERRED_DARK_TABLE = "inferred_dark";
|
||||
|
||||
export type InferredDarkRecord = {
|
||||
source_ts: number;
|
||||
ingest_ts: number;
|
||||
seq: number;
|
||||
trace_id: string;
|
||||
type: string;
|
||||
confidence: number;
|
||||
evidence_refs_json: string;
|
||||
};
|
||||
|
||||
export const inferredDarkTableDDL = (): string => {
|
||||
return `
|
||||
CREATE TABLE IF NOT EXISTS ${INFERRED_DARK_TABLE} (
|
||||
source_ts UInt64,
|
||||
ingest_ts UInt64,
|
||||
seq UInt64,
|
||||
trace_id String,
|
||||
type String,
|
||||
confidence Float64,
|
||||
evidence_refs_json String
|
||||
)
|
||||
ENGINE = MergeTree
|
||||
ORDER BY (source_ts, seq)
|
||||
`;
|
||||
};
|
||||
|
||||
export const toInferredDarkRecord = (event: InferredDarkEvent): InferredDarkRecord => {
|
||||
return {
|
||||
source_ts: event.source_ts,
|
||||
ingest_ts: event.ingest_ts,
|
||||
seq: event.seq,
|
||||
trace_id: event.trace_id,
|
||||
type: event.type,
|
||||
confidence: event.confidence,
|
||||
evidence_refs_json: JSON.stringify(event.evidence_refs)
|
||||
};
|
||||
};
|
||||
|
||||
const safeStringArray = (value: string): string[] => {
|
||||
try {
|
||||
const parsed = JSON.parse(value);
|
||||
if (Array.isArray(parsed)) {
|
||||
return parsed.map((entry) => String(entry));
|
||||
}
|
||||
} catch {
|
||||
// ignore
|
||||
}
|
||||
|
||||
return [];
|
||||
};
|
||||
|
||||
export const fromInferredDarkRecord = (record: InferredDarkRecord): InferredDarkEvent => {
|
||||
return {
|
||||
source_ts: record.source_ts,
|
||||
ingest_ts: record.ingest_ts,
|
||||
seq: record.seq,
|
||||
trace_id: record.trace_id,
|
||||
type: record.type,
|
||||
confidence: record.confidence,
|
||||
evidence_refs: safeStringArray(record.evidence_refs_json)
|
||||
};
|
||||
};
|
||||
Loading…
Add table
Add a link
Reference in a new issue