diff --git a/AGENTS.md b/AGENTS.md index a5fc286535..3f8581b808 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -183,48 +183,6 @@ A change is done when all are true: 4. Docs updated when behavior or commands change 5. PR description follows the [PR template](.github/PULL_REQUEST_TEMPLATE.md) with all sections filled in (including Model Used) -## 11. Fork-Specific: HenkDz/paperclip - -This is a fork of `paperclipai/paperclip` with QoL patches and a **built-in** Hermes adapter story on branch `feat/externalize-hermes-adapter` ([tree](https://github.com/HenkDz/paperclip/tree/feat/externalize-hermes-adapter)). - -### Branch Strategy - -- `feat/externalize-hermes-adapter` now ships `hermes_local` and `hermes_gateway` as built-in core adapters. -- Older fork branches may still document plugin-only Hermes; treat this file as authoritative for the current branch. - -### Hermes (built-in) - -- `hermes_local` is available without Adapter manager installation and runs the local Hermes CLI. -- `hermes_gateway` is available without Adapter manager installation and calls an already-running Hermes API server. -- Operators may still install external Hermes packages through Adapter manager to override/shadow the built-ins. -- Optional: `file:` entry in `~/.paperclip/adapter-plugins.json` remains useful for local development of override packages. - -### Local Dev - -- Fork runs on port 3101+ (auto-detects if 3100 is taken by upstream instance) -- `npx vite build` hangs on NTFS — use `node node_modules/vite/bin/vite.js build` instead -- Server startup from NTFS takes 30-60s — don't assume failure immediately -- Kill ALL paperclip processes before starting: `pkill -f "paperclip"; pkill -f "tsx.*index.ts"` -- Vite cache survives `rm -rf dist` — delete both: `rm -rf ui/dist ui/node_modules/.vite` - -### Fork QoL Patches (not in upstream) - -These are local modifications in the fork's UI. If re-copying source, these must be re-applied: - -1. **stderr_group** — amber accordion for MCP init noise in `RunTranscriptView.tsx` -2. **tool_group** — accordion for consecutive non-terminal tools (write, read, search, browser) -3. **Dashboard excerpt** — `LatestRunCard` strips markdown, shows first 3 lines/280 chars - -### Plugin System - -PR #2218 (`feat/external-adapter-phase1`) adds external adapter support. See root `AGENTS.md` for full details. - -- Adapters can be loaded as external plugins via `~/.paperclip/adapter-plugins.json` -- The plugin-loader should have ZERO hardcoded adapter imports — pure dynamic loading -- `createServerAdapter()` must include ALL optional fields (especially `detectModel`) -- Built-in UI adapters can shadow external plugin parsers; external override pause/resume should restore the built-in parser. -- Reference external adapters: Droid (npm); Hermes can also be tested as an override package. - ## Design system `DESIGN.md` at the repo root is the source of truth for UI design decisions. The token-only rule applies to all `ui/` changes: every color, spacing, radius, type, shadow, and motion value in `ui/src/components/**` and `ui/src/pages/**` comes from the token layer in `ui/src/index.css` — no hex, raw px, arbitrary Tailwind bracket values, or raw `font-size`/`fontSize` declarations in components, outside the documented allowlist in `ui/src/index.css`. Run `pnpm check:token-gates` (`scripts/check-token-gates.mjs`) before committing UI changes — it fails on any violation not covered by that allowlist.