export * from './twin-engine.js' export * from './canonical-ingest.js' export * from './kpi-fold.js' export * from './property-effects.js' export * from './kpi-baseline.js' /* 지표 정본 표(TWIN_METRIC)·목표 판정 — 소비처(twin-ai 등)가 지표 이름을 다시 열거하지 않게. */ export * from './kpi-target.js' export * from '@things-factory/headless-twin/dist-shared/kpi-broadcast.js' /* 집약 채널 태그(접두사 + 트윈별 태그 생성) — 소비처가 문자열을 다시 적지 않게 내보낸다. */ export * from '@things-factory/headless-twin/dist-shared/entity-delta.js' /* 공간 계층의 단계 — 씬 표현·성과 카드·AI 가 같은 목록을 쓴다. */ export * from '@things-factory/headless-twin/dist-shared/twin-level.js' /* 부하 계기판 — 어떤 작업이 이벤트 루프를 얼마나 쓰는지. */ export * from './load-meter.js' export * from './loop-lag.js' /* 런타임 레지스트리 키 규약 — 소비처(다른 키 캐시·테스트)가 `:` 를 다시 적지 않게 함께 내보낸다. */ export * from './runtime-key.js' export * from './kpi-query.js' export * from './spec-coverage.js' export * from './travel-estimator.js' export * from './measured-estimator.js' export * from './model-basis.js' export * from './live-feed-registry.js' /* 동기화 건강 — 「이 트윈이 현장과 맞춰지고 있나」. 판정·추이·사유·표본. */ export * from './ingest-health.js' /* 로컬 선언(현장·트윈) — 소비처(twin-ai 도구)가 명세·검사 규칙을 다시 적지 않게. */ export * from './local-declarations.js' export * from './operation-basis.js' export * from './measured-yield.js' export * from './declared-stimulus.js' export * from './integration-coverage.js' /* * 사실의 정체(identity)와 시각을 판단하는 함수들. * * 모듈 전체를 export 하지 않고 이 둘만 내보낸다. `FactDeduper` 같은 상태를 가진 클래스는 커널 * 안에서만 쓰여야 하고, 밖에서 인스턴스를 따로 만들면 중복 판단 기억이 두 벌이 된다. * * 밖에서 이 둘이 필요한 이유는 하나다 — 저널에 앉은 사실이 제대로 된 정체와 시각을 가졌는지 * 확인할 때, 유입할 때와 **똑같은 함수로** 판단해야 하기 때문이다. 확인하는 쪽이 규칙을 다시 * 구현하면 두 규칙이 어긋나는 날 확인이 조용히 통과한다. */ export { factIdentity } from './ingest-dedupe.js' /* * `shouldHaveTime` is the part that matters outside: it separates "this record legitimately has no * time of its own" (a snapshot observation — the polling moment IS the right time) from "the kind * declares a time field and we could not read it", which is a real defect. Anything checking the * journal must use this split rather than inventing its own, or it reports healthy rows as broken. */ export { factEventTime, shouldHaveTime, undatedByKind } from './event-time.js'