cynarAI 6c7eed7580 Initial clean evOo-local from f00577b
Fresh history cut from cynarAI/evoo antigravity-handoff/project-timeline
(Voice First + project timeline). Brand docs/titles as evOo; keep @rakazo/*
packages as tech debt. Excludes node_modules, caches, secrets, voice blobs.
2026-09-20 17:15:16 +02:00

360 lines
11 KiB
TypeScript
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.

type DemoCardLine = {
k: string;
v: string;
};
export type DemoMessage =
| { type: "time"; text: string }
| { type: "meta"; text: string }
| { type: "user"; text: string }
| { type: "bot"; text: string }
| { type: "typing" }
| { type: "card"; lines: DemoCardLine[] };
export type DemoRoutine = {
name: string;
when: string;
instruction?: string;
active?: boolean;
runs?: DemoRoutineRun[];
};
export type DemoRoutineRun = {
mark: string;
color: string;
text: string;
time: string;
};
export type DemoScreen = {
host: string;
title: string;
lines: string[];
};
export type DemoBot = {
id: string;
name: string;
color: string;
time: string;
preview: string;
routines: DemoRoutine[];
screen: DemoScreen;
thread: DemoMessage[];
reply: string;
};
export type RosterBot = {
name: string;
color: string;
slug: string;
desc: string;
};
export const DEMO_BOTS: DemoBot[] = [
{
id: "chief",
name: "Chief of Staff",
color: "#3EC5A8",
time: "Yesterday",
preview: "venue booked, contract sent for signature",
routines: [{ name: "Monday briefing", when: "Mondays 7am" }],
screen: {
host: "notion.so",
title: "Offsite: week of the 14th",
lines: ["Harbor House held", "Contract out for signature", "4 calendar holds → invites"],
},
thread: [
{ type: "time", text: "Yesterday 9:02 AM" },
{ type: "user", text: "lock the offsite for the week of the 14th" },
{
type: "bot",
text: "looking at three venues in range. i will hold dates and come back before anything is signed.",
},
{
type: "card",
lines: [
{ k: "Held", v: "3 venues · 14th–16th" },
{ k: "Budget", v: "$8,400 of $10k" },
{ k: "Waiting", v: "harbor house quote" },
],
},
{ type: "user", text: "harbor house if the quote lands under 9k" },
{
type: "bot",
text: "quote came in at $8,400. venue booked and the contract is out for signature. calendar holds are now invites.",
},
],
reply: "added. i will confirm headcount with the crew thread and update the doc.",
},
{
id: "sales",
name: "Sales Outbound",
color: "#F5A03C",
time: "3:10 AM",
preview: "done. 40 accounts researched, 18 drafts queued",
routines: [
{ name: "Overnight sourcing", when: "Nightly 1am" },
{ name: "Reply sweep", when: "Weekdays 8am" },
],
screen: {
host: "app.hubspot.com",
title: "Seed-stage fintech: review list",
lines: ["40 accounts scored", "22 LinkedIn profiles read", "18 drafts queued"],
},
thread: [
{ type: "time", text: "Yesterday 11:40 PM" },
{
type: "user",
text: "work the seed-stage fintech list overnight, my voice, nothing sent without me",
},
{
type: "bot",
text: "understood. i will research, score, and draft. everything lands in a review list at 6am.",
},
{ type: "meta", text: "Created routine ◷ Overnight sourcing" },
{ type: "time", text: "3:10 AM" },
{
type: "card",
lines: [
{ k: "Researched", v: "40 accounts · 22 with a live signal" },
{ k: "Drafted", v: "18 emails + 9 LinkedIn notes" },
{ k: "Skipped", v: "4 · already in pipeline" },
],
},
{
type: "bot",
text: "two of them raised last week, so those drafts lead with the round. everything else follows your usual opener.",
},
],
reply: "on it. i will queue those and leave the rest in review.",
},
{
id: "inbox",
name: "Inbox Manager",
color: "#6A6BF5",
time: "12:11 AM",
preview: "sent. inbox at zero, 5 drafts parked",
routines: [
{ name: "Morning sweep", when: "Weekdays 6am" },
{ name: "Reply Zero", when: "Hourly" },
],
screen: {
host: "mail.google.com",
title: "Inbox: 5 drafts parked",
lines: ["41 threads read", "26 archived · 9 replied", "Nora’s renewal held"],
},
thread: [
{ type: "time", text: "Yesterday 11:11 PM" },
{ type: "user", text: "inbox got away from me over the weekend, sweep it?" },
{
type: "bot",
text: "on it. 41 unread since friday. archiving the noise, drafting the rest.",
},
{ type: "time", text: "12:11 AM" },
{
type: "card",
lines: [
{ k: "Archived", v: "26 newsletters + receipts" },
{ k: "Replied", v: "9 routine threads · scheduling and intros" },
{ k: "Drafted", v: "6 that sound like you · held for your read" },
{ k: "Flagged", v: "1 from nora · contract question" },
],
},
{
type: "bot",
text: "nora is asking whether the renewal covers the new seats. her draft answers yes and quotes the contract line. it is at the top of the held pile.",
},
{ type: "user", text: "send nora's, i'll take the rest tomorrow" },
{ type: "bot", text: "sent. inbox is at zero, with 5 drafts parked for tomorrow." },
],
reply: "got it. i will handle that on the next sweep and flag anything i am unsure about.",
},
{
id: "account",
name: "Account Manager",
color: "#9B5CF6",
time: "Yesterday",
preview: "invite's out to sam, helix note added",
routines: [{ name: "Renewal watch", when: "Daily 9am" }],
screen: {
host: "app.hubspot.com",
title: "Helix: renewal",
lines: ["Thursday 10am with Sam", "Annual only", "Nora approves"],
},
thread: [
{ type: "time", text: "Yesterday 2:40 PM" },
{
type: "bot",
text: "northstar replied on pricing, same thread as last quarter. i already had the context, so i answered without waiting on you.",
},
{ type: "meta", text: "Updated memory · Account Manager" },
{
type: "bot",
text: "noted for next time: they only sign annual, and nora is the one who approves.",
},
{ type: "user", text: "good. set the helix renewal call with sam" },
{
type: "bot",
text: "invite's out to sam for thursday 10am, with the renewal summary attached.",
},
],
reply: "noted. i will remember that for this account.",
},
{
id: "talent",
name: "Talent Scout",
color: "#3B82F6",
time: "Yesterday",
preview: "3 intros drafted in your voice, held",
routines: [{ name: "Pipeline refresh", when: "Tue + Thu" }],
screen: {
host: "app.ashbyhq.com",
title: "Infra applicants",
lines: ["61 read", "9 shortlisted: ran their own cluster", "3 intros held"],
},
thread: [
{ type: "time", text: "Yesterday 4:15 PM" },
{
type: "user",
text: "read the infra applicants and shortlist anyone who has run their own cluster",
},
{
type: "card",
lines: [
{ k: "Read", v: "61 applicants" },
{ k: "Shortlist", v: "9 · real cluster experience" },
{ k: "Drafted", v: "3 intros in your voice" },
],
},
{
type: "bot",
text: "the three i drafted have all shipped a scheduler of their own. held for your read before anything goes out.",
},
],
reply: "i will pull those and leave the intros in review.",
},
{
id: "expense",
name: "Expense Manager",
color: "#F2622A",
time: "Yesterday",
preview: "report filed. 9 receipts, nothing outstanding",
routines: [{ name: "Month-end close", when: "Last Friday" }],
screen: {
host: "app.ramp.com",
title: "Month-end close",
lines: ["9 receipts matched", "Harbor hotel: two nights", "Report filed · $2,340"],
},
thread: [
{ type: "time", text: "Yesterday 3:11 AM" },
{ type: "user", text: "month-end is friday, close out the card for me?" },
{
type: "bot",
text: "i'll match every charge to a receipt and file the report. anything that doesn't line up, i ask instead of guessing.",
},
{ type: "meta", text: "Created routine ◷ Month-end close" },
{ type: "time", text: "Yesterday 10:11 PM" },
{
type: "card",
lines: [
{ k: "Receipts", v: "9 matched to card charges" },
{ k: "Report", v: "drafted · $2,340 across 3 trips" },
{ k: "Flagged", v: "1 charge · harbor hotel, $412 twice" },
],
},
{
type: "bot",
text: "the harbor hotel charged $412 on the 12th and again on the 14th. double-billed, or two separate nights?",
},
{ type: "user", text: "two nights, riley stayed the second one" },
{
type: "bot",
text: "that clears it. report filed: 9 receipts matched, $2,340 across 3 trips, nothing outstanding.",
},
],
reply: "logged. i will fold that into the next close.",
},
{
id: "bugs",
name: "Bug Triage",
color: "#D9508A",
time: "Monday",
preview: "reproduced 4 of 6, steps in the issues",
routines: [{ name: "Triage sweep", when: "Every 2h" }],
screen: {
host: "sentry.io",
title: "Auth loop: P1",
lines: ["6 new reports", "4 reproduced", "Stale session token"],
},
thread: [
{ type: "time", text: "Monday 8:30 AM" },
{ type: "user", text: "triage what came in over the weekend" },
{
type: "card",
lines: [
{ k: "Reproduced", v: "4 of 6 reports" },
{ k: "Duplicates", v: "2 · merged into existing" },
{ k: "Severity", v: "1 raised to P1 · auth loop" },
],
},
{
type: "bot",
text: "the auth loop only happens on a stale session token. steps and a video are on the issue.",
},
],
reply: "i will reproduce it and attach the steps to the issue.",
},
];
export const DEMO_ROSTER: RosterBot[] = [
{
name: "Sales Outbound",
color: "#F5A03C",
slug: "evoo/sales-outbound",
desc: "Researches accounts overnight, scores intent, drafts in your voice, leaves a review list.",
},
{
name: "Inbox Manager",
color: "#6A6BF5",
slug: "evoo/inbox-manager",
desc: "Archives the noise, replies to routine threads, parks drafts that need your read.",
},
{
name: "Talent Scout",
color: "#3B82F6",
slug: "evoo/talent-scout",
desc: "Reads every applicant, shortlists against your bar, writes the intro emails.",
},
{
name: "Expense Manager",
color: "#F2622A",
slug: "evoo/expense-manager",
desc: "Matches receipts to charges, files the report, asks before guessing.",
},
{
name: "Bug Triage",
color: "#D9508A",
slug: "evoo/bug-triage",
desc: "Reproduces reports in a real browser and attaches steps to the issue.",
},
{
name: "Account Manager",
color: "#9B5CF6",
slug: "evoo/account-manager",
desc: "Keeps renewal context, answers known questions, escalates the rest.",
},
{
name: "Paid Media",
color: "#3EC5A8",
slug: "evoo/paid-media",
desc: "Watches spend daily, pauses what is not converting, reports what changed.",
},
{
name: "Chief of Staff",
color: "#8B93A8",
slug: "evoo/chief-of-staff",
desc: "Runs the week: briefings, bookings, and handoffs between your other bots.",
},
];