Files
nova/docs/graphs/handover_agent.dot
2026-04-12 07:19:48 -03:00

102 lines
3.6 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
digraph handover_agent {
rankdir=TB
bgcolor="#0a0e17"
fontname="Helvetica"
node [fontname="Helvetica" fontsize=10 style=filled color="#1e2a4a" fontcolor="#e8eaf0"]
edge [fontname="Helvetica" fontsize=9 fontcolor="#8892a8" color="#4a5568"]
label="Shift Handover Agent"
labelloc=t
fontsize=14
fontcolor="#0066ff"
start [label="START" fillcolor="#0066ff" shape=circle fontcolor="white" width=0.5]
end_done [label="END" fillcolor="#00c853" shape=doublecircle fontcolor="white" width=0.5]
subgraph cluster_gather {
label="Node: gather_all (parallel across 5 hubs)"
color="#0066ff"
fontcolor="#0066ff"
gather_point [label="" shape=point width=0]
subgraph cluster_per_hub {
label="Per hub (ORD, EWR, IAH, SFO, DEN)"
color="#1e2a4a"
fontcolor="#4a5568"
h1 [label="get_irregular_ops\n[shared]" fillcolor="#0d1a33" shape=box]
h2 [label="get_airport_status\n[shared] ★ LIVE" fillcolor="#0d2a0d" shape=box fontcolor="#00c853"]
h3 [label="get_pending_rebookings\n[ops]" fillcolor="#0d1a33" shape=box]
}
subgraph cluster_global {
label="Global"
color="#1e2a4a"
fontcolor="#4a5568"
g1 [label="get_hub_forecasts\n[shared] ★ LIVE" fillcolor="#0d2a0d" shape=box fontcolor="#00c853"]
g2 [label="get_crew_duty_status\n[ops]" fillcolor="#0d1a33" shape=box]
g3 [label="get_maintenance_flags\n[shared]" fillcolor="#0d1a33" shape=box]
}
}
subgraph cluster_triage {
label="Node: triage"
color="#ff3d00"
fontcolor="#ff3d00"
triage [label="Score each issue:\nseverity × time_sensitivity\n\nCategorize:\nIMMEDIATE (score > 50)\nMONITOR (score > 20)\nFYI (rest)" fillcolor="#121829" shape=box]
subgraph cluster_items {
rank=same
color="#1e2a4a"
fontcolor="#4a5568"
label="Triage Categories"
imm [label="IMMEDIATE\n▶ crew limits\n▶ cancellations\n▶ ground stops" fillcolor="#3a0d0d" shape=box fontcolor="#ff3d00"]
mon [label="MONITOR\n⚠ weather risk\n⚠ GDP active\n⚠ MEL restrictions" fillcolor="#3a2a0d" shape=box fontcolor="#ffc107"]
fyi [label="FYI\n nominal hubs\n resolved items" fillcolor="#1a1a2a" shape=box fontcolor="#8892a8"]
}
}
subgraph cluster_synth {
label="Node: synthesize"
color="#1e2a4a"
fontcolor="#8892a8"
synth [label="generate_narrative()\n[ops server]\n\nStructured brief:\nheader → immediate → monitor → fyi" fillcolor="#121829" shape=box]
}
subgraph cluster_format {
label="Node: format_output"
color="#1e2a4a"
fontcolor="#8892a8"
format [label="Structure brief JSON\nStore as ops://handover/latest\nRecord timing" fillcolor="#121829" shape=box]
}
// Flow
start -> gather_point
gather_point -> h1 [color="#0066ff"]
gather_point -> h2 [color="#0066ff"]
gather_point -> h3 [color="#0066ff"]
gather_point -> g1 [color="#0066ff"]
gather_point -> g2 [color="#0066ff"]
gather_point -> g3 [color="#0066ff"]
h1 -> triage [color="#4a5568"]
h2 -> triage [color="#4a5568"]
h3 -> triage [color="#4a5568"]
g1 -> triage [color="#4a5568"]
g2 -> triage [color="#4a5568"]
g3 -> triage [color="#4a5568"]
triage -> imm [style=invis]
triage -> mon [style=invis]
triage -> fyi [style=invis]
imm -> synth [color="#ff3d00"]
mon -> synth [color="#ffc107"]
fyi -> synth [color="#8892a8"]
synth -> format
format -> end_done
}