| <!doctype html> |
| <html lang="en"> |
| <head> |
| <meta charset="utf-8" /> |
| <meta name="viewport" content="width=device-width, initial-scale=1" /> |
| <title>Document</title> |
| <script> |
| |
| try { |
| var t = localStorage.getItem('cw-theme') |
| document.documentElement.dataset.theme = |
| t === 'dark' || t === 'light' ? t : matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light' |
| } catch (e) { |
| document.documentElement.dataset.theme = 'light' |
| } |
| </script> |
| <link rel="preload" href="/fonts/inter-latin.woff2" as="font" type="font/woff2" crossorigin /> |
| |
| <link rel="stylesheet" href="/app.css" /> |
| <link rel="icon" href="data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'%3E%3Crect width='32' height='32' rx='8' fill='%231d5c45'/%3E%3Crect x='9' y='10' width='14' height='2.2' rx='1.1' fill='white'/%3E%3Crect x='9' y='15' width='14' height='2.2' rx='1.1' fill='white'/%3E%3Crect x='9' y='20' width='9' height='2.2' rx='1.1' fill='white'/%3E%3C/svg%3E" /> |
| </head> |
| <body class="page-doc"> |
| <div id="signin" class="overlay hidden"> |
| <div class="card"> |
| <h2>cowrite</h2> |
| <p>Collaborative documents where agents comment and suggest — but never write.</p> |
| <a class="btn primary" id="signin-btn" href="/auth/login">Sign in with Hugging Face</a> |
| <div id="dev-login" class="hidden"> |
| <input id="dev-user" placeholder="dev username" /> |
| <button class="btn" id="dev-go">Dev sign-in</button> |
| </div> |
| </div> |
| </div> |
|
|
| <header id="topbar"> |
| <a id="back-link" href="/" title="All documents"></a> |
| <button class="iconbtn phone-only" id="m-pages" title="Pages"></button> |
| <span id="doc-title">…</span> |
| <span id="conn" title="connection"></span> |
| <div id="header-tools"></div> |
| <div class="spacer"></div> |
| <div id="presence"></div> |
| <div id="mode-switch" title="Editing writes straight into the document; Suggesting proposes changes instead"></div> |
| <button class="iconbtn phone-only" id="m-fmt" title="Formatting">Aa</button> |
| <button class="iconbtn phone-only" id="m-comments" title="Comments"></button> |
| <button class="iconbtn phone-only" id="m-more" title="More">⋯</button> |
| <button class="iconbtn" id="theme-btn" title="Switch theme"></button> |
| <button class="btn ghost small" id="share-btn">Share</button> |
| <button class="btn ghost small" id="agents-btn">Agents</button> |
| <span id="whoami"></span> |
| </header> |
|
|
| <div id="more-pop" class="hidden"></div> |
| <div id="scrim" class="hidden"></div> |
|
|
| <div id="share-pop" class="hidden"> |
| <h3>Share</h3> |
| <p class="hint">People you share with can read, edit, comment — and point their own agents at this doc.</p> |
| <div id="share-list" class="muted">loading…</div> |
| <form id="share-form"> |
| <input id="share-user" placeholder="Hugging Face username" /> |
| <button class="btn small" type="submit">Share</button> |
| </form> |
| </div> |
|
|
| <div id="agents-pop" class="hidden"> |
| <h3>Agents</h3> |
| <p class="hint">Agents that can act in this doc (their owners have access). Register your own, |
| copy its prompt, and mention it in any comment: <b>@handle do something</b>. They answer by |
| proposing changes in the document and keep their replies short.</p> |
| <div id="agents-list" class="muted">loading…</div> |
| <form id="agent-form"> |
| <input id="agent-handle" placeholder="handle, e.g. leandro-claude" /> |
| <button class="btn small" type="submit">Add</button> |
| </form> |
| </div> |
|
|
| <div id="link-pop" class="hidden"> |
| <input id="link-url" placeholder="https://…" /> |
| <button class="btn small primary" id="link-apply">Link</button> |
| </div> |
|
|
| <main id="layout"> |
| <nav id="sidebar" class="hidden"> |
| <div id="sidebar-head"> |
| <span class="sidebar-title">Pages</span> |
| <button class="iconbtn" id="page-add" title="Add page">+</button> |
| <button class="iconbtn phone-only" id="sidebar-close" title="Close"></button> |
| </div> |
| <div id="page-tree"></div> |
| <a id="structure-link" title="Edit the page tree (a YAML page — changes can be suggested)">structure</a> |
| </nav> |
| <button id="sidebar-toggle" title="Toggle pages sidebar"></button> |
| <button id="margin-toggle" title="Toggle comments panel"></button> |
| <div id="editor-col"> |
| |
| |
| |
| |
| <div id="doc-skeleton" aria-hidden="true"> |
| <div class="sk-line sk-title"></div> |
| <div class="sk-line w90"></div> |
| <div class="sk-line w75"></div> |
| <div class="sk-line w82"></div> |
| <div class="sk-line sk-gap w40"></div> |
| <div class="sk-line w88"></div> |
| <div class="sk-line w70"></div> |
| <div class="sk-line w80"></div> |
| </div> |
| <div id="editor"></div> |
| <div id="proposal-view" class="hidden"></div> |
| <div id="selection-menu" class="hidden"> |
| <button id="comment-btn"></button> |
| <button id="suggest-btn"></button> |
| </div> |
| </div> |
|
|
| <aside id="margin-col"> |
| <div id="margin-head"> |
| <span id="margin-grab"></span> |
| <span id="margin-head-title">Comments</span> |
| <button class="iconbtn" id="margin-close" title="Close comments"></button> |
| </div> |
| <div id="margin-tools"> |
| <label class="row" style="gap:6px; cursor:pointer;"><input type="checkbox" id="show-resolved" /> show resolved</label> |
| </div> |
| <div id="margin-items"> |
| <div id="composer" class="composer-box hidden"> |
| <blockquote id="composer-quote"></blockquote> |
| <textarea id="composer-text" rows="3" placeholder="Comment — @handle to hand it to an agent. Enter sends, Shift+Enter for a new line."></textarea> |
| <div id="composer-mentions" class="mention-menu hidden"></div> |
| <div class="row"> |
| <button class="btn small ghost" id="composer-cancel">Cancel</button> |
| <button class="btn small primary" id="composer-send">Comment</button> |
| </div> |
| </div> |
| <div id="suggest-composer" class="composer-box hidden"> |
| <blockquote id="suggest-quote"></blockquote> |
| <textarea id="suggest-text" rows="6" placeholder="Rewrite the selected block(s) in markdown…"></textarea> |
| <input id="suggest-rationale" placeholder="Why? (optional)" /> |
| <div class="row"> |
| <button class="btn small ghost" id="suggest-cancel">Cancel</button> |
| <button class="btn small primary" id="suggest-send">Suggest</button> |
| </div> |
| </div> |
| </div> |
| </aside> |
| </main> |
|
|
| <script src="/doc.js"></script> |
| </body> |
| </html> |
|
|