Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions app/core/assets/prompts/agent.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# archdraw agent
# Arch Agent

You are archdraw's architecture partner: you help the user understand, question, change and create the architecture
You are Arch Agent, archdraw's architecture partner: you help the user understand, question, change and create the architecture
diagrams of their projects. You are an expert at diagrams that are the clearest, simplest and complete enough to decide
from. You talk with the user in a panel beside the diagrams.

Expand Down
2 changes: 1 addition & 1 deletion app/core/src/agent.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// The archdraw agent: one conversation = one pi Agent (pi-agent-core) with archdraw's read-only tools, streaming to the
// Arch Agent, archdraw's agent: one conversation = one pi Agent (pi-agent-core) with archdraw's read-only tools, streaming to the
// page. Every event is kept in order and saved, so any device that opens the conversation replays all of it.
//
// The events the page reads: user, ready, assistant_start, delta, assistant,
Expand Down
2 changes: 1 addition & 1 deletion app/ui/src/App.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -709,7 +709,7 @@ export default function App() {
</button>
)}
{project && (
<button type="button" className="ad-btn ad-btn-ask" onClick={() => (chat ? setChat(false) : openChat())} data-testid="open-chat" data-tour="ask" title="The archdraw agent (⌘K to jump or ask)">
<button type="button" className="ad-btn ad-btn-ask" onClick={() => (chat ? setChat(false) : openChat())} data-testid="open-chat" data-tour="ask" title="Arch Agent (⌘K to jump or ask)">
✦ Ask<kbd className="max-sm:hidden">⌘K</kbd>
</button>
)}
Expand Down
2 changes: 1 addition & 1 deletion app/ui/src/Chat.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -131,7 +131,7 @@ export function ChatPanel(props: ChatProps) {
<div className="ad-chat-head">
<span className="ad-dot" data-busy={t.busy || undefined} />
<div className="min-w-0">
<div className="truncate text-sm font-semibold">archdraw agent</div>
<div className="truncate text-sm font-semibold">Arch Agent</div>
<div className="truncate text-[11px] text-[var(--muted)]" data-testid="chat-meta">
{props.project} · ${t.cost.toFixed(2)} of ${budget.conversation.toFixed(2)}
{t.model ? ` · ${t.model.split("/").pop()}` : ""}
Expand Down
8 changes: 4 additions & 4 deletions app/ui/src/Palette.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ import { looksLikeAsk, rank, type Target } from "./agent"
type Item = { kind: "ask"; text: string } | { kind: "go"; t: Target }

/**
* ⌘K: one box that jumps to any project or diagram by name, or hands the words to the archdraw agent. A query that
* ⌘K: one box that jumps to any project or diagram by name, or hands the words to Arch Agent. A query that
* reads like a request (three words or more, or a question) puts "Ask" first; a name puts the matches first.
*/
export function Palette({ targets, project, onGo, onAsk, onClose }: { targets: Target[]; project?: string; onGo: (t: Target) => void; onAsk: (text: string) => void; onClose: () => void }) {
Expand Down Expand Up @@ -37,7 +37,7 @@ export function Palette({ targets, project, onGo, onAsk, onClose }: { targets: T
autoFocus
value={q}
data-testid="palette-input"
placeholder={project ? `Jump to a diagram, or ask the agent about ${project}…` : "Jump to a project…"}
placeholder={project ? `Jump to a diagram, or ask Arch Agent about ${project}…` : "Jump to a project…"}
className="h-12 min-w-0 flex-1 bg-transparent text-[15px] outline-none"
onChange={e => setQ(e.target.value)}
onKeyDown={e => {
Expand Down Expand Up @@ -68,7 +68,7 @@ export function Palette({ targets, project, onGo, onAsk, onClose }: { targets: T
<>
<span className="ad-palette-icon">✦</span>
<span className="min-w-0 flex-1 truncate">
Ask the archdraw agent: <b>{it.text}</b>
Ask Arch Agent: <b>{it.text}</b>
</span>
<kbd>↵</kbd>
</>
Expand All @@ -81,7 +81,7 @@ export function Palette({ targets, project, onGo, onAsk, onClose }: { targets: T
)}
</button>
))}
{!items.length && <p className="px-3 py-3 text-sm text-[var(--muted)]">Type a name, or a sentence for the agent.</p>}
{!items.length && <p className="px-3 py-3 text-sm text-[var(--muted)]">Type a name, or a sentence for Arch Agent.</p>}
</div>
</div>
</div>
Expand Down
2 changes: 1 addition & 1 deletion app/ui/src/Tour.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ export const STEPS: Step[] = [
{
n: 4,
title: "Ask for a change.",
body: "This is archdraw's agent. We typed a request for you: press Send. Its proposal appears beside the original, and nothing changes until you press Accept.",
body: "This is Arch Agent, archdraw's assistant. We typed a request for you: press Send. Its proposal appears beside the original, and nothing changes until you press Accept.",
target: () => ["[data-testid=ghost-accept]", "[data-testid=proposal] [data-testid=accept]:not([disabled])", "[data-testid=chat-send]:not([disabled])", "[data-testid=chat-input]"],
done: ["proposal.accepted", "proposal.dismissed"],
},
Expand Down
2 changes: 1 addition & 1 deletion app/ui/src/agent.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// The archdraw agent, the pure half: its API, the event log folded into a transcript, a line diff for proposals,
// Arch Agent (archdraw's agent), the pure half: its API, the event log folded into a transcript, a line diff for proposals,
// and the ⌘K palette's matching. No DOM here, so it is tested in node (agent.test.ts).

import { ApiError } from "./model"
Expand Down
6 changes: 3 additions & 3 deletions docs/user-guide.md
Original file line number Diff line number Diff line change
Expand Up @@ -33,11 +33,11 @@ Diagrams are files in the repo's `.archdraw/` folder: `<name>.archdraw` for the

The "…" beside a diagram renames, duplicates, archives or deletes it. Archived diagrams stay in Archive and trash until you bring them back; deleted ones can be restored from there for 30 days.

## The agent
## Arch Agent

✦ Ask (or ⌘K) opens the agent. It reads the project's code and diagrams, answers questions about them, and proposes new or changed diagrams. A proposal appears beside the original; nothing changes until you press Accept.
✦ Ask (or ⌘K) opens Arch Agent, archdraw's agent. It reads the project's code and diagrams, answers questions about them, and proposes new or changed diagrams. A proposal appears beside the original; nothing changes until you press Accept.

The agent uses your own key. Add it in Settings, or paste it when the chat asks. archdraw supports OpenAI, Anthropic, Google and OpenRouter, and you choose the models in Settings. Daily and per-conversation spending caps are in Settings too.
Arch Agent uses your own key. Add it in Settings, or paste it when the chat asks. archdraw supports OpenAI, Anthropic, Google and OpenRouter, and you choose the models in Settings. Daily and per-conversation spending caps are in Settings too.

## The Inbox

Expand Down