{"module":"ARCHITECTURE-OV2","version":"1.3.1","part":2,"description":"OV-2 Part 2 — interconnected operational pipelines: what runs where, how data moves, design budgets + measured witness when available.","technicalFlows":{"_description":"OV-2 Part 2 — operational pipelines showing WHAT runs WHERE, HOW data moves, and latency/speed budgets at each hop. Measured confirmation: GET /api/architecture/ov2/flows/benchmark or data/ov2-flow-benchmark-latest.json.","_part":2,"_version":"1.2.0","interconnectOverview":{"title":"How the seven pipelines connect","narrative":"SENSE feeds L1 ingress → L2 fusion → L3 synthesis. DECIDE uses L7 Symphony + L4 HITL gate. ACT disseminates via L5 surfaces + TAK/USEIF. AUDIT logs every hop. SYNC handles DDIL. LEARN updates L6 doctrine that all other layers read at runtime.","diagramAscii":[" [Sensors: ESMS/ADS-B/TAK/AIS] ──► L1 Ingress ──► L2 Fusion ──► L3 Intel ──┐","                                                                              ├──► L7 Symphony ──► L4 HITL ──► L5 Disseminate"," [Operator / COP / Intel Tools] ◄── BLUF/COA ◄── cop-alert-intel ◄────────────┘","        │                              ▲","        └── DDIL queue/sync ──► L2 edge merge ──► reconnect <30s"," [Doctrine ingest] ──► L6 corpus JSON ──► (all layers read, <100ms propagate)"," [AI request] ──► RAG floor ──► tier cascade (30s/tier, 50s global) ──► fallback corpus"],"crossFlowEdges":[{"from":"universal-connection","to":"cuas-sense-to-cop","label":"attributed observations (any registered party)"},{"from":"universal-connection","to":"hitl-engage-release","label":"effector-class cue lane (HITL always)"},{"from":"cuas-sense-to-cop","to":"cop-alert-to-coa","label":"track + threat class"},{"from":"cop-alert-to-coa","to":"intel-symphony-full-chain","label":"autonomy + effector inputs"},{"from":"intel-symphony-full-chain","to":"hitl-engage-release","label":"symphonyVerdict + hitlGate"},{"from":"ai-inference-cascade","to":"cop-alert-to-coa","label":"BLUF narrative (optional)"},{"from":"ddil-store-forward","to":"cop-alert-to-coa","label":"queued alerts flush"},{"from":"doctrine-ingest-runtime","to":"intel-symphony-full-chain","label":"corpus parameters"},{"from":"deploy-full-stack","to":"cuas-sense-to-cop","label":"template/API congruence"}]},"flows":{"cuasSenseToCop":{"id":"FLOW-1","name":"C-UAS Sense → COP Track","trigger":"Field sensor POST or scheduled feed poll (ADS-B, ESMS acoustic/RF, TAK snapshot)","endState":"Unified track on COP map with confidence score + staleness badge","totalLatencyBudget":"< 12s sensor-to-tile (tactical feeds); < 60s strategic feeds","crossLinks":["cop-alert-to-coa","ddil-store-forward"],"hops":[{"step":1,"operation":"Ingress normalize + dedup","module":"server/feeds-live.ts · server/esms-cuas.ts","endpoint":"POST /api/esms/hardware/detect · GET /api/adsb/status · GET /api/tak/snapshot","latencyTarget":"< 200ms adapter","latencyP95":"50–150ms","dataShape":"Raw sensor JSON → internal Track schema"},{"step":2,"operation":"Rate-limit + content-hash dedup (5-min window)","module":"server/feeds-live.ts","endpoint":"(internal queue)","latencyTarget":"< 50ms","latencyP95":"10–30ms","dataShape":"Deduped track event"},{"step":3,"operation":"Geo-hash correlation + confidence scoring","module":"server/uav-swarm-behavior.ts · server/reality-sync.ts","endpoint":"GET /api/uav/swarm-behavior/status","latencyTarget":"< 500ms","latencyP95":"100–400ms","dataShape":"Fused track + confidence ≥ 0.3 floor"},{"step":4,"operation":"Doctrine parameter read (Five Ds tier hints)","module":"server/doctrine-corpus.ts","endpoint":"GET /api/doctrine-corpus/status","latencyTarget":"< 100ms (JSON read)","latencyP95":"5–50ms","dataShape":"cuas.fiveDs parameters injected"},{"step":5,"operation":"COP tile render + WebSocket push","module":"server/templates/cop.html · server/platform.ts","endpoint":"GET /cop · WS cop:tracks","latencyTarget":"< 500ms to browser tile","latencyP95":"200ms–1s","dataShape":"GeoJSON layer + STALE badge if > 2× update rate"}]},"copAlertToCoa":{"id":"FLOW-2","name":"COP Alert → BLUF + COA Options","trigger":"Operator raises alert: POST /api/cop/alerts or COP UI contact submission","endState":"Auditable alert row + BLUF strip + human-gated COA options on /cop and /api/cop/alerts-intel","totalLatencyBudget":"< 5s alert-to-BLUF display","crossLinks":["intel-symphony-full-chain","hitl-engage-release","ddil-store-forward"],"hops":[{"step":1,"operation":"Validate + persist alert (DB or ephemeral prove lane)","module":"server/cop-alert-intelligence.ts","endpoint":"POST /api/cop/alerts","latencyTarget":"< 300ms","latencyP95":"50–250ms","dataShape":"cop_operational_alerts row or ephemeral map entry"},{"step":2,"operation":"COA synthesis from threat params","module":"server/coa-engine.ts","endpoint":"(internal generateCOA)","latencyTarget":"< 1s","latencyP95":"200–800ms","dataShape":"3+ COA options with risk tier"},{"step":3,"operation":"RAG grounding + citation merge","module":"server/decision-rag.ts · server/intel-rag.ts","endpoint":"GET /api/intel-rag/status","latencyTarget":"< 2s","latencyP95":"500ms–2s","dataShape":"GREEN/AMBER tags on BLUF lines"},{"step":4,"operation":"Emit integrated event + metrics","module":"server/module-coordinator.ts","endpoint":"platformBus emitIntegratedEvent","latencyTarget":"< 100ms","latencyP95":"10–50ms","dataShape":"Audit + GAP-131 integration pulse"},{"step":5,"operation":"BLUF strip hydration for COP topbar","module":"server/cop-alert-intelligence.ts","endpoint":"GET /api/cop/alerts-intel","latencyTarget":"< 200ms API","latencyP95":"50–150ms","dataShape":"BLUF + COA JSON for COP poll (10s interval)"}]},"aiInferenceCascade":{"id":"FLOW-3","name":"AI Inference Cascade (Resilient Layer)","trigger":"Operator chat, ODIN co-pilot, evaluator AI, or RAG researcher scheduled job","endState":"Grounded response with tier attribution + failover audit; never direct SDK bypass","totalLatencyBudget":"< 50s global deadline; < 2s offline RAG-only","crossLinks":["cop-alert-to-coa","doctrine-ingest-runtime"],"hops":[{"step":1,"operation":"Corpus floor check (min 2 docs)","module":"server/intel-rag.ts","endpoint":"buildGroundedContext()","latencyTarget":"< 500ms","latencyP95":"100–400ms","dataShape":"TF-IDF excerpts block"},{"step":2,"operation":"Tier 1 — GPT-4o via OpenRouter","module":"server/ai-provider-orchestrator.ts","endpoint":"POST /api/atlas/chat","latencyTarget":"< 30s per tier","latencyP95":"3–25s","dataShape":"SSE or JSON completion"},{"step":3,"operation":"Tier 2–4 cascade on timeout/abort","module":"server/ai-provider-orchestrator.ts","endpoint":"(internal failover)","latencyTarget":"30s × remaining tiers","latencyP95":"cumulative ≤ 50s","dataShape":"failoverReasons[] in response"},{"step":4,"operation":"Anthropic compliance guard","module":"server/ai-provider-orchestrator.ts","endpoint":"GET /api/ai-orchestrator/compliance","latencyTarget":"< 50ms","latencyP95":"< 20ms","dataShape":"assertNotAnthropic() — COMPLIANT or block"},{"step":5,"operation":"Offline RAG fallback (DDIL)","module":"server/intel-rag.ts","endpoint":"GET /api/intel/pulse","latencyTarget":"< 2s","latencyP95":"200ms–1.5s","dataShape":"Local corpus-only answer, no external call"},{"step":6,"operation":"Output audit + grounding tags","module":"server/atlas-ai-chat.ts","endpoint":"auditGroundedOutput()","latencyTarget":"< 200ms","latencyP95":"50–150ms","dataShape":"[GREEN]/[AMBER]/[RED] per assertion"}]},"ddilStoreForward":{"id":"FLOW-4","name":"DDIL Store-Forward + Edge Merge","trigger":"navigator.onLine === false on COP/client, or DDIL exercise mode","endState":"Zero silent data loss; flush on reconnect; CRDT merge for edge tracks","totalLatencyBudget":"< 30s full merge after reconnect","crossLinks":["cuas-sense-to-cop","cop-alert-to-coa"],"hops":[{"step":1,"operation":"Client queues operator action","module":"server/ddil-store-forward.ts · server/templates/cop.html","endpoint":"POST /api/ddil/queue","latencyTarget":"< 100ms local","latencyP95":"202 Accepted < 50ms","dataShape":"Queued action envelope + client timestamp"},{"step":2,"operation":"Edge track ingest (offline node)","module":"server/ddil-edge-cop.ts","endpoint":"POST /api/ddil/edge/tracks/ingest","latencyTarget":"< 500ms","latencyP95":"100–400ms","dataShape":"On-node proximity fusion"},{"step":3,"operation":"Online event → flush queue","module":"server/ddil-store-forward.ts","endpoint":"POST /api/ddil/sync","latencyTarget":"< 5s batch","latencyP95":"1–4s","dataShape":"Replayed alerts + audit rows"},{"step":4,"operation":"CRDT peer merge","module":"server/ddil-edge-cop.ts","endpoint":"POST /api/ddil/edge/merge","latencyTarget":"< 30s","latencyP95":"5–25s","dataShape":"Conflict-free merged track set"},{"step":5,"operation":"DDIL posture visible on COP","module":"server/templates/cop.html","endpoint":"GET /api/health/live (ddil field)","latencyTarget":"immediate pill","latencyP95":"poll 10s","dataShape":"ONLINE/DEGRADED/OFFLINE badge — never hidden"}]},"intelSymphonyFullChain":{"id":"FLOW-5","name":"Decision Intelligence Symphony (Full Chain)","trigger":"Evaluator or operator POST with partial threat/campaign inputs","endState":"symphonyVerdict across LOO 1–4 with strictest hitlGate","totalLatencyBudget":"< 2s (corpus-local math); no external AI in default path","crossLinks":["hitl-engage-release","doctrine-ingest-runtime","cop-alert-to-coa"],"hops":[{"step":1,"operation":"Corpus load + health check","module":"server/intel-tools.ts · server/doctrine-corpus.ts","endpoint":"GET /api/intel-tools/status","latencyTarget":"< 100ms","latencyP95":"10–80ms","dataShape":"corpus v1.1.0 or DEGRADED flag"},{"step":2,"operation":"LOO-1: Autonomy classify + spoof detect","module":"server/intel-tools.ts","endpoint":"POST /api/intel-tools/autonomy-classify · spoofing-detect","latencyTarget":"< 200ms each","latencyP95":"20–150ms","dataShape":"autonomyLevel + ewEffectiveness + spoofingConfidence"},{"step":3,"operation":"LOO-2: Effector match + cost-exchange","module":"server/intel-tools.ts","endpoint":"POST /api/intel-tools/sensor-effector-match · cost-exchange","latencyTarget":"< 200ms each","latencyP95":"20–150ms","dataShape":"primaryOption + ratio + verdict"},{"step":4,"operation":"LOO-3: Attrition plan + adversary track","module":"server/intel-tools.ts","endpoint":"POST /api/intel-tools/attrition-plan · GET adversary-tracker","latencyTarget":"< 300ms","latencyP95":"30–200ms","dataShape":"criticalThresholdDay + known TTPs"},{"step":5,"operation":"LOO-4: AI compliance status","module":"server/ai-provider-orchestrator.ts","endpoint":"GET /api/ai-orchestrator/compliance","latencyTarget":"< 50ms","latencyP95":"< 20ms","dataShape":"compliant boolean + blockedModels"},{"step":6,"operation":"Symphony orchestration + audit emit","module":"server/intel-tools.ts","endpoint":"POST /api/intel-tools/full-chain","latencyTarget":"< 2s total","latencyP95":"200ms–1.5s","dataShape":"symphonyVerdict + hitlGate on envelope"}]},"hitlEngageRelease":{"id":"FLOW-6","name":"HITL Engage → Release (Kill Chain Gate)","trigger":"Operator selects Defeat-class COA from USEIF queue","endState":"Approved engagement logged; optional TAK/AFATDS dissemination stub","totalLatencyBudget":"< 2s approval-to-routing","crossLinks":["intel-symphony-full-chain","cop-alert-to-coa"],"hops":[{"step":1,"operation":"Five Ds doctrine router (escalation check)","module":"server/esms-cuas.ts · server/coas-engine.ts","endpoint":"GET /api/esms/engagement-options","latencyTarget":"< 200ms","latencyP95":"50–150ms","dataShape":"Detect→Deny→Disrupt→Defeat tier"},{"step":2,"operation":"USEIF queue presentation","module":"server/universal-sensor-grid.ts","endpoint":"GET /api/useif/killchains","latencyTarget":"< 200ms","latencyP95":"50–150ms","dataShape":"Pending engagements with COA refs"},{"step":3,"operation":"Human approve/reject (hard gate)","module":"server/kill-chain-completion.ts","endpoint":"POST /api/useif/killchains/:id/approve","latencyTarget":"< 500ms","latencyP95":"100–400ms","dataShape":"Audit row + operator identity + timestamp"},{"step":4,"operation":"Disseminate to TAK CoT + fire mission log","module":"server/kill-chain-completion.ts · server/fire-mission-generator.ts","endpoint":"GET /api/tak/snapshot · GET /api/fire-mission/log","latencyTarget":"< 2s","latencyP95":"500ms–1.5s","dataShape":"CoT broadcast stub + mission log entry"},{"step":5,"operation":"Integrated event + prove chain update","module":"server/module-coordinator.ts","endpoint":"GET /api/prove/touch?behavior=1","latencyTarget":"< 5s chain","latencyP95":"1–4s","dataShape":"10/10 behavioral prove steps"}]},"doctrineIngestRuntime":{"id":"FLOW-7","name":"Doctrine Ingest → Runtime Parameters","trigger":"Admin POST new doctrine URL or signal-discipline capture","endState":"doctrine-corpus.json updated; all operational modules read new params without redeploy","totalLatencyBudget":"< 100ms propagate to next API read","crossLinks":["intel-symphony-full-chain","cuas-sense-to-cop","ai-inference-cascade"],"hops":[{"step":1,"operation":"Ingest + validate URL/PDF","module":"server/doctrine-corpus.ts","endpoint":"POST /api/doctrine-corpus/ingest","latencyTarget":"< 30s ingest","latencyP95":"2–20s","dataShape":"Parsed domain blocks → JSON"},{"step":2,"operation":"Signal discipline registry + ledger append","module":"data/signal-discipline-registry.json","endpoint":"POST /api/intel/signal-discipline/capture","latencyTarget":"< 500ms","latencyP95":"50–300ms","dataShape":"Append-only ledger row"},{"step":3,"operation":"RAG auto-ingest to docs/intel/auto/","module":"server/rag-researcher.ts · server/rag-operational-ingest.ts","endpoint":"GET /api/rag-researcher/status","latencyTarget":"< 60s cycle","latencyP95":"next daily anchor","dataShape":"Markdown corpus file"},{"step":4,"operation":"Runtime read by swarm/nav/intel-tools","module":"server/swarm-failsafe.ts · server/intel-tools.ts","endpoint":"GET /api/doctrine-corpus/parameters/:domain","latencyTarget":"< 100ms","latencyP95":"5–50ms","dataShape":"Live parameter object — no server restart"}]},"universalConnection":{"id":"FLOW-9","name":"Universal Connection Chassis (any external party → data flowing)","trigger":"External device/unit/partner POSTs /api/connect/register — or a whole unit posts its MTOE manifest to /api/connect/register-unit","endState":"Identity token issued, permission template applied, exact ingest endpoints negotiated, first observation on COP, connection health tracked by conductor","totalLatencyBudget":"< 1s register-to-token; < 20s first-observation-to-COP (one fusion cycle); conductor sweep 60s","crossLinks":["cuas-sense-to-cop","cop-alert-to-coa","hitl-engage-release"],"hops":[{"step":1,"operation":"Register (single or MTOE bulk — qty expands to individually-tokened items)","module":"server/connection-chassis.ts","endpoint":"POST /api/connect/register · POST /api/connect/register-unit","latencyTarget":"< 500ms (bulk ≤500 items, yields every 25)","latencyP95":"10-200ms","dataShape":"{name, partyClass, protocols} or {unit, equipment[]} → token(s) + scopes + yourEndpoints"},{"step":2,"operation":"Permission template by party class (sensor/effector/unit/partner-c2/feed/citizen)","module":"server/connection-chassis.ts PERMISSION_TEMPLATES","endpoint":"(in register response)","latencyTarget":"instant","latencyP95":"0ms","dataShape":"scopes[]; effector class carries HITL note — kinetic never automatic (IRON RULE 5)"},{"step":3,"operation":"Schema negotiation — protocol → exact ingest endpoint","module":"server/connection-chassis.ts PROTOCOL_ROUTES","endpoint":"(in register response)","latencyTarget":"instant","latencyP95":"0ms","dataShape":"cot→/api/integration/cot/ingest · useif-json→/api/observations/ingest · acoustic/adsb/mqtt/field-cue routes"},{"step":4,"operation":"Attributed ingest (X-Atlas-Connection token)","module":"server/connection-chassis.ts → sensor-fusion-engine.ts","endpoint":"POST /api/observations/ingest","latencyTarget":"< 300ms accept (202)","latencyP95":"20-150ms","dataShape":"USEIF envelope → ingestObservation() → fused within one cycle"},{"step":5,"operation":"Conductor health sweep + append-only audit","module":"server/connection-chassis.ts conductorTick (timedInterval)","endpoint":"GET /api/connect/registry · GET /api/connect/conductor","latencyTarget":"60s cadence","latencyP95":"scheduled","dataShape":"ACTIVE(<5m)→IDLE(<30m)→STALE transitions → data/connection-ledger.jsonl + Postgres atlas_connections"},{"step":6,"operation":"Revocation (allowlist only shrinks)","module":"server/connection-chassis.ts","endpoint":"POST /api/connect/:id/revoke (X-Admin-Secret)","latencyTarget":"< 200ms","latencyP95":"10-100ms","dataShape":"health=REVOKED; token rejected on all future calls; ledger row"}]},"deployFullStack":{"id":"FLOW-8","name":"Deploy Full-Stack Congruence","trigger":"git push origin main","endState":"EC2 runtime SHA === GitHub SHA; templates congruent; verify:prod PASS","totalLatencyBudget":"< 3 min push-to-live; harmony self-heal every 6h","crossLinks":["cuas-sense-to-cop","ai-inference-cascade"],"hops":[{"step":1,"operation":"Pre-push gate (E2E + constraint-sweep)","module":"scripts/gate-push.mjs","endpoint":"npm run gate:push","latencyTarget":"< 15 min CI","latencyP95":"8–12 min","dataShape":"0 surface-hygiene violations"},{"step":2,"operation":"GitHub Actions rsync + PM2 restart","module":".github/workflows/deploy.yml","endpoint":"(deploy pipeline)","latencyTarget":"< 3 min","latencyP95":"90–180s","dataShape":"server_dist/ + templates/ on EC2"},{"step":3,"operation":"Deploy SHA stamp validation","module":"deploy.yml Confirm EC2 step","endpoint":"GET /api/health/live","latencyTarget":"< 30s after restart","latencyP95":"10–25s","dataShape":"deployGitSha === github.sha"},{"step":4,"operation":"Harmony conductor fullStackCongruence","module":"server/atlas-health-conductor.ts","endpoint":"GET /api/health/harmony/latest","latencyTarget":"boot +4min, every 6h","latencyP95":"scheduled","dataShape":"RED if template drift or split-brain"},{"step":5,"operation":"Post-push verify","module":"scripts/post-push-verify.mjs","endpoint":"npm run verify:prod","latencyTarget":"< 60s probe","latencyP95":"30–45s","dataShape":"LIVE + lane-firewall + gateway doors"}]}}},"lastBenchmark":{"measuredAt":"2026-07-11T23:20:46.770Z","baseUrl":"https://secureassure.app","environment":"production-external","hopsProbed":26,"hopsPassed":20,"hopsFailed":5,"witnessPath":"/home/ec2-user/atlas/data/ov2-flow-benchmark-latest.json","benchmarkEndpoint":"/api/architecture/ov2/flows/benchmark"},"relatedPart1":"/api/architecture/ov2","htmlSurface":"/evaluate/architecture#part2-flows"}