// Sample data for the Claude chat example (Keeper = the sample agent). Shared by react.tsx, vue.vue and
// svelte.svelte: one app with a home, a thread, an artifact viewer and a library.
export type Segment = { t : string ; b ?: boolean ; link ?: boolean };
export interface PaperDoc {
export interface ArtifactDoc {
/** Card meta line, e.g. "Document · PDF". */
/** Shown after the viewer title, in mono. */
/** Card shows the cropped page thumbnail instead of the icon tile. */
| { type : " markdown " ; text : string }
| { type : " code " ; code : string ; language : " bash " | " typescript " }
| { type : " archive " ; title : string ; meta : string }
| { type : " docs " ; ids : string [] };
role : " assistant " | " user " ;
export const appName = " Edmi " ;
{ view: " thread " , label: " Chats " },
{ view: " library " , label: " Library " },
export type View = " home " | " thread " | " library " ;
export const user = { name: " Dwi " , initials: " D " } ;
export const greeting = " Good evening, Dwi " ;
export const project = " Roadmap " ;
export const title = " Keeper starter plan " ;
export const suggestions = [
export const notes = ` **Before you use this document:**
- **The ranking is a judgment, not a score.** Data backs each idea but not the order.
- **Research is partial.** Some competitors were not checked; all are flagged.
- [RevenueCat subscription report](https://example.com/revenuecat)
- [Stripe founder data](https://example.com/stripe)
- [Jupiter API terms](https://example.com/jupiter) ` ;
export const processNote =
" Updating the task list and marking finished items complete. " ;
export const thread : Turn [] = [
text: ` **Check before you start:** the quote path for \` @jup-ag/api \` is not confirmed yet (probably \` @jup-ag/api/quote \` ). Flagged in \` docs/open-questions.md \` .
**Two open questions** in \` docs/open-questions.md \` :
- Managed RPC in production (default) or your own node?
- Start with one keeper instance? Default is 1. ` ,
{ type: " archive " , title: " Keeper starter " , meta: " ZIP " },
text: " What prompt starts the agent after the repo is cloned? " ,
text: " The kit ships a `/next-phase` command. After cloning and unzipping into the repo root, type this in your coding agent: " ,
{ type: " code " , language: " bash " , code: " /next-phase 00 " },
{ type: " markdown " , text: " Or the short plain prompt: " },
code: ' Read AGENTS.md, then docs/README.md in order. Do phase 00 in docs/plans/00-scaffold.md until the "Done when" checklist passes. ' ,
text: " Good. Which index ideas can a team of 1–3 ship first? " ,
{ type: " markdown " , text: notes },
{ type: " docs " , ids: [ " pdf " , " md " ] },
text: " Add a slide version, point by point? " ,
blocks: [{ type: " markdown " , text: processNote }],
export const docs : ArtifactDoc [] = [
title: " Eight index ideas " ,
kicker: " RESEARCH · 8 INDEX IDEAS · OCT 2026 " ,
headline: " Distribution, not AI, picks the winner " ,
t: " Some indexes can win now, but the product shape and channel decide it. Three shapes work for teams of 1–3 ( " ,
{ t: " Stripe " , link: true },
{ t: " RevenueCat " , link: true },
{ t: " None of the eight ideas passes without conditions. " , b: true },
t: " The three best supported: idea 8 as a B2B ops layer, idea 3 as a local terminal for developers, idea 4 as a learning path. " ,
heading: " What wins now: narrow vertical, recurring billing, own channel " ,
t: " The first winning shape is vertical B2B. Solo founders in the top decile are about " ,
{ t: " twice as likely to build AI-native products " , b: true },
{ t: " and sell to 10 countries in month one. " },
title: " Eight index ideas " ,
kicker: " NOTES · 8 INDEX IDEAS · OCT 2026 " ,
headline: " Eight index ideas, point by point " ,
t: " Each idea is scored on channel, margin and time to first holder. " ,
{ t: " Ideas 3, 4 and 8 clear the bar " , b: true },
{ t: " ; the other five need a channel first. " },
heading: " Open conditions per idea " ,
{ t: " Idea 8 needs one design partner. Idea 3 needs a " },
{ t: " signed terminal build " , b: true },
{ t: " . Idea 4 needs a curriculum owner. " },
title: " MAG4 — Editorial minimal " ,
kicker: " DESIGN · MAG4 · OCT 2026 " ,
headline: " MAG4, editorial and minimal " ,
{ t: " A flat, typographic index page: one " },
{ t: " serif headline " , b: true },
{ t: " , a mono number column and a single accent. " },
{ t: " Cards stay flat; only the " },
{ t: " primary action " , b: true },
kicker: " DESIGN · STOCKBREAK · SEP 2026 " ,
headline: " Stockbreak markets, shared with you " ,
{ t: " The markets, explore and portfolio pages in one " },
{ t: " layered " , b: true },
heading: " Review status " ,
{ t: " Two comments open on the " },
{ t: " leaderboard podium " , b: true },
export type ArtifactType = " docs " | " slides " | " design " ;
{ value: " all " , label: " All " },
{ value: " yours " , label: " Yours " },
{ value: " shared " , label: " Shared with you " },
title: " Designs live here now " ,
text: " New slides and designs are saved as artifacts. " ,
action: " Open the design home " ,
export const tiles : { type : ArtifactType ; label : string } [] = [
{ type: " docs " , label: " Docs " },
{ type: " slides " , label: " Slides " },
{ type: " design " , label: " Design " },
export interface LibraryItem {
/** Appears under "Shared with you" (and not under "Yours"). */
/** Viewer document opened by this row. */
export const groups : { label : string ; items : LibraryItem [] } [] = [
title: " MAG4 — Editorial minimal " ,
viewed: " Viewed 20m ago " ,
export const menu = [ " Open " , " Rename " , " Share " , " Delete " ];
export const composer = {
disclaimer: " Edmi is AI and can make mistakes. " ,
{ id: " opus " , label: " Opus " },
{ id: " sonnet " , label: " Sonnet " },
{ id: " low " , label: " Low " },
{ id: " medium " , label: " Medium " },
{ id: " high " , label: " High " },
{ id: " auto " , label: " Auto " },
{ id: " ask " , label: " Ask first " },
// Agent-home task list (Queue).
agent : { id : string ; color : string };
status : " running " | " done " ;
export const tasks : Task [] = [
title: " Draft feed post " ,
agent: { id: " writer " , color: " chart-4 " },
agent: { id: " keeper " , color: " chart-3 " },