mirror of
https://github.com/AgentSeal/codeburn.git
synced 2026-11-01 12:01:05 +00:00
* feat: Command Code support Reads the cmd CLI's session transcripts at ~/.commandcode/projects/<slug>/<id>.jsonl (CODEBURN_COMMANDCODE_DIR moves the root). Checkpoint and prompt sidecars are skipped. usage.inputTokens includes cacheReadTokens, so fresh input is inputTokens - cacheReadTokens. The recorded costUsd is kept per call (costFromBilling); a call without one is priced from tokens and marked estimated. Forks copy parent message ids into a new file, so calls dedupe by message id across sessions. Desktop: Electron sandbox read path, macOS and Windows change watchers, Windows tab colour. No quota adapter. * fix(command-code): dedupe on meta.messageId, not the 8-hex line id The top-level id is randomUUID().slice(0, 8) and only unique within one file, so calls from unrelated sessions could collide and vanish. meta.messageId is a full uuid that survives forks. Fixture ids now use the real 8-hex shape. * test(command-code): check sidecar skipping by file name, not a posix path
80 lines
5.6 KiB
Markdown
80 lines
5.6 KiB
Markdown
# Provider Docs
|
|
|
|
One file per provider integration. If you are fixing a bug or adding a feature scoped to a single provider, read the file for that provider first; it tells you which file to edit, where on disk the source data lives, and what edge cases the test suite already covers.
|
|
|
|
For the architectural picture, see `../architecture.md`.
|
|
|
|
## Provider Index
|
|
|
|
### Eager (always loaded)
|
|
|
|
| Provider | Storage | Source | Test |
|
|
|---|---|---|---|
|
|
| [Amp](amp.md) | JSON (per-thread) | `src/providers/amp.ts` | `tests/providers/amp.test.ts` |
|
|
| [Claude](claude.md) | JSONL (no parser) | `src/providers/claude.ts` | none (covered indirectly) |
|
|
| [Cline](cline.md) | JSON | `src/providers/cline.ts` | `tests/providers/cline.test.ts` |
|
|
| [Cline CLI](cline-cli.md) | JSON | `src/providers/cline-cli.ts` | `tests/providers/cline-cli.test.ts` |
|
|
| [CodeWhale](codewhale.md) | JSON | `src/providers/codewhale.ts` | `tests/providers/codewhale.test.ts` |
|
|
| [Command Code](command-code.md) | JSONL | `src/providers/command-code.ts` | `tests/providers/command-code.test.ts` |
|
|
| [Codebuff](codebuff.md) | JSON | `src/providers/codebuff.ts` | `tests/providers/codebuff.test.ts` |
|
|
| [Codex](codex.md) | JSONL | `src/providers/codex.ts` | `tests/providers/codex.test.ts` |
|
|
| [Copilot](copilot.md) | JSONL + SQLite (OTel) + Nitrite .db (JetBrains) | `src/providers/copilot.ts` | `tests/providers/copilot.test.ts` |
|
|
| [Devin](devin.md) | JSON + SQLite enrichment | `src/providers/devin.ts` | `tests/providers/devin.test.ts` |
|
|
| [Droid](droid.md) | JSONL | `src/providers/droid.ts` | `tests/providers/droid.test.ts` |
|
|
| [DeepSeek Harness](dsh.md) | JSONL (zstd frames) | `src/providers/dsh.ts` | `tests/providers/dsh.test.ts` |
|
|
| [Gemini](gemini.md) | JSON / JSONL | `src/providers/gemini.ts` | `tests/providers/gemini.test.ts` |
|
|
| [Hermes Agent](hermes.md) | SQLite | `src/providers/hermes.ts` | `tests/providers/hermes.test.ts` |
|
|
| [IBM Bob](ibm-bob.md) | JSON | `src/providers/ibm-bob.ts` | `tests/providers/ibm-bob.test.ts` |
|
|
| [KiloCode](kilo-code.md) | JSON | `src/providers/kilo-code.ts` | `tests/providers/kilo-code.test.ts` |
|
|
| [Kiro](kiro.md) | JSON | `src/providers/kiro.ts` | `tests/providers/kiro.test.ts` |
|
|
| [Kimi](kimi.md) | JSONL | `src/providers/kimi.ts` | `tests/providers/kimi.test.ts` |
|
|
| [Kimi Code](kimicode.md) | JSONL | `src/providers/kimicode.ts` | `tests/providers/kimicode.test.ts` |
|
|
| [LingTai TUI](lingtai-tui.md) | JSONL | `src/providers/lingtai-tui.ts` | `tests/providers/lingtai-tui.test.ts` |
|
|
| [Mistral Vibe](mistral-vibe.md) | JSON / JSONL | `src/providers/mistral-vibe.ts` | `tests/providers/mistral-vibe.test.ts` |
|
|
| [Mux](mux.md) | JSONL | `src/providers/mux.ts` | `tests/providers/mux.test.ts` |
|
|
| [OpenClaw](openclaw.md) | JSONL | `src/providers/openclaw.ts` | `tests/providers/openclaw.test.ts` |
|
|
| [OpenClaude](openclaude.md) | JSONL | `src/providers/openclaude.ts` | `tests/providers/openclaude.test.ts` |
|
|
| [Open Design](open-design.md) | JSONL | `src/providers/open-design.ts` | `tests/providers/open-design.test.ts` |
|
|
| [Pi](pi.md) | JSONL | `src/providers/pi.ts` | `tests/providers/pi.test.ts` |
|
|
| [OMP](omp.md) | JSONL | `src/providers/pi.ts` | `tests/providers/omp.test.ts` |
|
|
| [Qwen](qwen.md) | JSONL | `src/providers/qwen.ts` | none |
|
|
| [Quick Desktop](quickdesk.md) | EMF JSONL + SQLite | `src/providers/quickdesk.ts` | `tests/providers/quickdesk.test.ts` |
|
|
| [Zerostack](zerostack.md) | JSON | `src/providers/zerostack.ts` | `tests/providers/zerostack.test.ts` |
|
|
| [Grok Build](grok.md) | JSON/JSONL | `src/providers/grok.ts` | `tests/providers/grok.test.ts` |
|
|
| [Grok Bot](grokbot.md) | JSON | `src/providers/grokbot.ts` | `tests/providers/grokbot.test.ts` |
|
|
|
|
### Lazy (loaded on first call)
|
|
|
|
| Provider | Storage | Source | Test |
|
|
|---|---|---|---|
|
|
| [Antigravity](antigravity.md) | protobuf over RPC | `src/providers/antigravity.ts` | `tests/providers/antigravity.test.ts` |
|
|
| [Crush](crush.md) | SQLite (per-project) | `src/providers/crush.ts` | `tests/providers/crush.test.ts` |
|
|
| [Forge](forge.md) | SQLite | `src/providers/forge.ts` | `tests/providers/forge.test.ts` |
|
|
| [Cursor](cursor.md) | SQLite | `src/providers/cursor.ts` | `tests/providers/cursor.test.ts` |
|
|
| [Cursor Agent](cursor-agent.md) | text / JSONL | `src/providers/cursor-agent.ts` | `tests/providers/cursor-agent.test.ts` |
|
|
| [Goose](goose.md) | SQLite | `src/providers/goose.ts` | none |
|
|
| [OpenCode](opencode.md) | SQLite | `src/providers/opencode.ts` | `tests/providers/opencode.test.ts` |
|
|
| [Warp](warp.md) | SQLite | `src/providers/warp.ts` | `tests/providers/warp.test.ts` |
|
|
| [Vercel AI Gateway](vercel-gateway.md) | REST API | `src/providers/vercel-gateway.ts` | `tests/providers/vercel-gateway.test.ts` |
|
|
| [ZCode](zcode.md) | SQLite (usage) + z.ai quota endpoint (plan) | `src/providers/zcode.ts`, `src/quota/zcode.ts` | `tests/providers/zcode.test.ts`, `tests/quota-zcode.test.ts` |
|
|
| [Zed](zed.md) | SQLite | `src/providers/zed.ts` | `tests/providers/zed.test.ts` |
|
|
|
|
### Shared
|
|
|
|
| Helper | Used by | Source |
|
|
|---|---|---|
|
|
| [vscode-cline-parser](vscode-cline-parser.md) | `cline`, `ibm-bob`, `kilo-code` | `src/providers/vscode-cline-parser.ts` |
|
|
|
|
## File Format
|
|
|
|
Each provider doc has the same structure:
|
|
|
|
1. **One-line summary** of what the provider integrates.
|
|
2. **Where it reads from** on disk (or over RPC).
|
|
3. **Storage format** and validation rules.
|
|
4. **Caching** (which cache layer, if any).
|
|
5. **Deduplication key** so you understand cross-provider dedup.
|
|
6. **Quirks** that have bitten us before.
|
|
7. **When fixing a bug here** as a checklist.
|
|
|
|
If you add a new provider, copy `claude.md` as a template and fill in your provider's specifics. Update this index, and prefer adding a real test fixture under `tests/providers/`.
|