Files
LLeMbas-CLI/src/tui/components/welcome.tsx
T
HomerandClaude Fable 5.1 837f38c744 Harness spec 1.1.0: one plan, prototypes and the library shared; the CLI implements it
The spec: plan_write and plan_update (new, shared, offered in every mode) and
plan_submit (now shared) keep one structured plan — findings, objectives,
phases of tasks — in place of the todo list, which lives on as a former name
of plan_write. The shared system text is one text for both projects, with
variables for what differs; the mode texts, a prototypes block and a library
block are shared. acp.md: the client hands the device what only it knows
(context, library, prototypes), the plan travels as a structure (plan_state),
library calls carry the chat's scope, and a client may rewind a session.
loop.json says its numbers as numbers. Four conformance areas: plan,
prototype, library_scope, toolcall_index.

The CLI: the plan is kept per session in the store and drawn above the prompt
and on the approval card; the prompt is assembled from the spec's texts with
their variables filled; the link reads the instance's instructions,
personalization, knowledge scope and prototype offer, sends the plan as a
structure and answers rewind; library calls to the instance carry the session
as scope; a prototype written in the terminal is saved as a file and named in
the transcript; a tool-call fragment without an index continues the last call;
the default theme is Moria; dead exports and Hermes leftovers removed.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-18 04:02:12 +02:00

34 lines
1.3 KiB
TypeScript

import { TextAttributes } from "@opentui/core"
import { Show } from "solid-js"
import { VERSION } from "../../version.ts"
import { useTui } from "../context.ts"
export function Welcome() {
const { theme, app } = useTui()
const c = () => theme().colors
return (
<box border borderStyle="rounded" borderColor={c().border} flexDirection="column" paddingLeft={1} paddingRight={1} marginTop={1} flexShrink={0}>
<text fg={c().title} attributes={TextAttributes.BOLD}>
{theme().branding.agentName} <span style={{ fg: c().dim, attributes: 0 }}>{VERSION}</span>
</text>
<text fg={c().text} wrapMode="none" truncate>
<span style={{ fg: c().label }}>model </span>
{app.engine.model.ref}
</text>
<text fg={c().text} wrapMode="none" truncate>
<span style={{ fg: c().label }}>project </span>
{app.project.root}
<span style={{ fg: c().dim }}>{app.project.gitRoot ? " (git)" : " (no git)"}</span>
</text>
<Show when={!app.trusted}>
<text fg={c().warn} wrapMode="word">
This project is not trusted: its .agent config, commands and servers are ignored. /trust to change that.
</text>
</Show>
<text fg={c().dim} wrapMode="word">
enter send · shift+enter newline · shift+tab mode · /help
</text>
</box>
)
}