Repository navigation
Expand file tree
/
Copy pathstrings.py
More file actions
112 lines (111 loc) · 10.5 KB
/
Copy pathstrings.py
File metadata and controls
112 lines (111 loc) · 10.5 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
"""User-facing strings for the LaunchPilot UI.
English today. A second language is a second dict with the same keys and a selector in app.py;
the agents take their language from the prompts in agents.py.
"""
EN = {
"title": "🚀 LaunchPilot",
"tagline": "**The copilot that sees a launch stockout coming before it happens.** "
"Demo: Claire, supply manager at *Maison Aurore* (a fictional cosmetics brand), is preparing her Christmas gift set.",
"hdr_data": "Data", "hdr_agents": "Agents", "hdr_dataset": "Dataset", "dataset_value": "synthetic, recorded scenario",
"agents_live": "Claude live ({model})", "agents_rules": "deterministic rules (no API key)",
"store_memory": "in memory (no database)", "store_pg": "Aiven for PostgreSQL",
"tab_launch": "Launch", "tab_memory": "Supplier memory", "tab_proof": "Proof", "tab_traces": "Agent traces",
"sim_date": "Simulated date", "events_processed": "Events processed", "critical_alerts": "Critical alerts",
"revenue_at_risk": "Revenue at risk (most critical component)",
"toggle_live": "Live Claude agent", "toggle_help": "Without an API key the watch agent runs its rules version.",
"next_event": "▶️ Next event", "fast_forward": "⏩ Fast-forward to the partial delivery (EV-019)", "reset": "↺ Reset",
"spinner_watch": "The watch agent is analysing {event}…",
"components_title": "Gift-set components",
"col_component": "Component", "col_supplier": "Supplier", "col_without_memory": "Without memory (announced lead times)",
"col_launchpilot": "LaunchPilot (median week)", "col_p_launch": "P(stockout ≤ launch + 1 wk)", "col_status": "Status",
"covered": "🟢 Covered",
"projection_select": "Stock projection",
"legend_lp": "LaunchPilot (actual lead times, median)", "legend_nm": "Without memory (announced lead times)",
"y_axis": "Projected stock (units)", "launch_label": "Launch",
"chart_caption": "Blue band: 10th to 90th percentile of 200 draws where each lead time is taken from the supplier's delivered history. "
"The grey line reads the same messages (promised dates, confirmed quantities, sell-out spikes) but believes the announced lead times.",
"feed_title": "Event feed", "feed_empty": "No events yet. Click “Next event”.",
"alerts_title": "Alerts", "alerts_empty": "No alerts.",
"alert_line": "{icon} **{label} — {component}** · stockout week of {week}",
"alert_source": "Source: {source} · triggered by {event} · confidence {confidence}",
"evidence": "Evidence (data rows)",
"propose": "💡 Propose solutions", "spinner_arb": "The arbitration agent is costing scenarios…",
"extra_cost": "Extra cost", "lost_revenue": "Lost revenue", "cash_tied": "Cash tied up in stock",
"choose": "Choose this scenario", "decision_logged": "Decision logged", "decided_by": "Claire (demo)",
"decisions_title": "Decision log",
"memory_title": "What suppliers announce vs what they actually deliver",
"memory_caption": "Memory learned from the delivery history. It is what makes the agent useful.",
"mem_supplier": "Supplier", "mem_days": "Lead time (days)", "mem_measure": "Measure",
"mem_announced": "Announced", "mem_actual": "Actual (mean)",
"memory_sql": "**Computed live by the SQL view `supplier_reliability` in Aiven for PostgreSQL:**",
"glance_title": "At a glance",
"glance_headline": "Over {seeds} synthetic worlds LaunchPilot dates **{lp} of {total}** stockouts within a week of the truth, the planner without memory **{nm}**. "
"At the hero moment the best option cuts the revenue at risk from **{risk}** to **{best}**.",
"glance_a_title": "Stockouts dated within one week ({seeds} worlds, {total} stockouts)",
"glance_a_x": "stockouts dated",
"glance_b_title": "Revenue at risk on 1 October, 30 ml airless pump",
"glance_b_x": "k€",
"glance_nm": "Without memory", "glance_lp": "LaunchPilot",
"glance_do_nothing": "Do nothing", "glance_best": "Best option",
"glance_caption": "Left: the recorded proof, same generator, 30 random worlds. Right: the arbitration at the partial-delivery moment of the demo scenario, deterministic tools, lost revenue plus extra cost; the best option is “{best}”.",
"proof_title": "Does it work? Planner without memory vs LaunchPilot",
"proof_caption": "The baseline is honest: an attentive planner who reads every message (promised dates, confirmed quantities, sell-out spikes) "
"but believes the announced lead times. LaunchPilot reads the same messages and adds the supplier memory. "
"A stockout counts as “dated” when it is announced within one week of its true date at some point in the replay.",
"proof_dated_nm": "Stockouts dated — without memory", "proof_dated_lp": "Stockouts dated — LaunchPilot",
"proof_wrong": "Dates wrong by > 1 week — LaunchPilot", "proof_wrong_delta": "{delta:+d} vs without memory",
"proof_false": "False alarms — LaunchPilot",
"proof_seeds": "{seeds} synthetic worlds drawn with the same generator (recorded scenario, not live). "
"Mean lead on dated stockouts: LaunchPilot {lead_lp} days, without memory {lead_nm} days "
"(the baseline only dates the easy December stockouts, hence its lead).",
"proof_demo": "**The demo scenario (seed {seed})**",
"proof_col_truth": "True stockout", "proof_col_nm": "Without memory", "proof_col_lp": "LaunchPilot",
"proof_col_p": "P(stockout ≤ launch + 1 wk) at the end", "proof_days_ahead": "{days} days ahead", "proof_missed": "Missed",
"proof_missing": "Run `python3 evaluate.py` to produce the results.",
"proof_limits": "Limits: synthetic data; deliveries land on French working days and a delivery counts for its whole week (weekly buckets); contract-manufacturer capacity is checked separately from the component projection, assuming the components are there.",
"cost_title": "What it costs to run",
"cost_caption": "Read live from the agent_runs table in Aiven for PostgreSQL, across every session since the last reset: {events} events analysed, {runs} agent runs, {live} of them live Claude calls. "
"Dollar figures are estimates at the model's list price ({model}: {p_in:g} and {p_out:g} USD per million input and output tokens); the gateway's spend log is the authoritative figure. Rules runs cost nothing.",
"cost_live_watch": "Live watch step", "cost_live_arb": "Live arbitration", "cost_per_event": "Est. cost per analysed event",
"cost_value": "{sec:.1f} s · {usd}", "cost_none": "no live run yet",
"cost_col_agent": "Agent", "cost_col_mode": "Mode", "cost_col_runs": "Runs", "cost_col_p50": "Median latency", "cost_col_max": "Worst latency",
"cost_col_tokens": "Tokens per run (in + out)", "cost_col_cost": "Est. cost per run", "cost_col_total": "Est. total",
"cost_mode_live": "live (Claude)", "cost_mode_rules": "rules",
"cost_agent_watch": "watch", "cost_agent_arbitration": "arbitration",
"traces_title": "What the agents did (and what it cost)",
"traces_runs": "Agent runs", "traces_live": "Of which Claude live", "traces_latency": "Mean latency (live)",
"traces_empty": "No runs yet.",
"traces_row": "{agent} · {mode} · {latency:.1f} s · {tin}+{tout} tokens",
"event_kind": {"supplier_delay": "🚚 Supplier delay", "sellout_spike": "📈 Sell-out spike",
"capacity_drop": "🏭 Contract-manufacturer capacity", "po_confirmed": "✅ Order confirmation", "noise": "· Info",
"supplier_email": "✉️ Supplier email (live)", "po_delivered": "📦 Goods receipt (live)", "channel_orders": "📈 Retailer orders (live)",
"supplier_insolvency": "⚖️ Insolvency notice, BODACC (live)", "holiday_closure": "🏖️ Closure (live)"},
"feed_email": "{from_name}: {subject}",
"feed_email_open": "Read the email",
"feed_email_meta": "From {from_name} <{from_email}> · received {received_at} · {language}",
"feed_delivery": "{po} received: {qty} units{partial}", "feed_partial": " (partial)",
"feed_insolvency": "{company}: {procedure}",
"feed_orders": "{product}: {expected} expected vs {forecast} forecast over {n} weeks (x{ratio})",
"feed_other": "{kind}",
"fast_forward_today": "⏩⏩ Fast-forward to today (22 Oct)",
"fast_forward_today_help": "Plays the rest of the recorded story in rules mode and analyses every live row on the way: the live agent reads supplier emails and any insolvency notice that names one of our suppliers; receipts and other notices go through the rules.",
"spinner_today": "Playing the story to 22 October…",
"live_due": "⏭ Analyse live events due now ({n})", "live_due_help": "Supplier emails, goods receipts and public notices that arrived through the stream and are dated on or before the simulated date.",
"spinner_live": "Analysing {n} live event(s)…",
"superseded_note": "already applied from {twin}",
"demo_mapping_label": "Demo mapping: the BODACC notice is real ({company}, SIREN {siren}, {procedure}, judgment of {judgment_date}, {court}). "
"{supplier} and its delivery history are fictional; nothing is implied about {company}'s lead times.",
"demo_mapping_caption": "Demo mapping: {supplier} carries SIREN {siren}, a real company in the same sector, so a real BODACC notice can be shown. "
"The supplier and its delivery history are fictional; nothing is implied about the real company's lead times.",
"status_alert": "{supplier} entered {procedure} (judgment of {judgment_date}): supply-continuity risk on {component}.",
"exposure_text": "{open_qty} of the {total} launch units of {component} are still on order with {supplier} ({orders}); if this order does not arrive, "
"{component} runs out the week of {week_without} instead of {week_as_is} ({extra} more units short, about {lost} at shelf price).",
"exposure_no_stockout": "if this order does not arrive, {component} runs out the week of {week_without}; as things stand it does not run out before year end ({extra} units short, about {lost} at shelf price).",
"exposure_no_second_source": "No qualified second source for this component.",
"no_week": "no stockout week, supplier status",
"severity": {"high": ("🔴", "Critical"), "medium": ("🟠", "Watch"), "low": ("🟢", "Low")},
"feed_delay": "{supplier} pushes {po} back by {days} d",
"feed_spike": "{product}: sales ×{factor}",
"feed_capacity": "{plant}: capacity −{pct}%",
"feed_confirmed": "{po} confirmed: {qty} units",
}