mirror of
https://github.com/ruvnet/RuVector.git
synced 2026-05-26 07:44:05 +00:00
SSE Proxy Decoupling (ADR-130): - Fix ruvbrain-sse proxy: proper MCP handshake, session creation, drain polling - Fix internal queue endpoints: session_create keeps receiver, drain returns buffered messages - Add response_queues to AppState for SSE proxy communication - Skip sparsifier for >5M edge graphs (was crashing on 16M edges) - Add SSE_DISABLED/MAX_SSE env vars for configurable connection limits - Route SSE to dedicated mcp.pi.ruv.io subdomain (Cloudflare CNAME) - Serve SSE at root / path on proxy (no /sse needed) - Update all references from pi.ruv.io/sse to mcp.pi.ruv.io - Fix Dockerfile consciousness crate build (feature/version mismatches) Claude Code CLI Source Research (ADR-133): - 19 research documents analyzing Claude Code internals (3000+ lines) - Decompiler script + RVF corpus builder for all major versions - Binary RVF containers for v0.2, v1.0, v2.0, v2.1 (300-2068 vectors each) - Call graphs, class hierarchies, state machines from minified source Integration Strategy (ADR-134): - 6-tier integration plan: WASM MCP, agents, hooks, cache, SDK, plugin - Integration guide with architecture diagrams and performance targets Co-Authored-By: claude-flow <ruv@ruv.net>
94 lines
3.1 KiB
Markdown
94 lines
3.1 KiB
Markdown
# Claude Code CLI: Overview and Binary Structure
|
|
|
|
## Version Analyzed
|
|
|
|
- **Version**: 2.1.90
|
|
- **Runtime**: Bun 1.3.11 (compiled as Single Executable Application)
|
|
- **Binary Format**: ELF 64-bit LSB executable, x86-64, dynamically linked
|
|
- **Binary Size**: ~229 MB (uncompressed), ~51 MB (.zst compressed)
|
|
|
|
## Installation Locations
|
|
|
|
```
|
|
/home/<user>/.local/bin/claude -> symlink to active version
|
|
/home/<user>/.local/share/claude/versions/2.1.90 -> native binary (Bun SEA)
|
|
/home/<user>/.vscode-remote/extensions/anthropic.claude-code-2.1.90-linux-x64/
|
|
extension.js -> VS Code extension entry (1.8 MB, minified)
|
|
webview/index.js -> React-based UI (4.8 MB, minified)
|
|
package.json -> VS Code extension manifest
|
|
claude-code-settings.schema.json -> 76-property settings schema
|
|
resources/
|
|
native-binary/claude -> same binary, for VS Code
|
|
walkthrough/ -> onboarding assets
|
|
```
|
|
|
|
## Binary Architecture
|
|
|
|
The Claude Code CLI is a **Bun Single Executable Application (SEA)**.
|
|
|
|
### How It Works
|
|
|
|
1. **Bun Runtime**: The binary embeds the full Bun runtime (v1.3.11)
|
|
- V8 engine compiled in (not Node.js -- Bun uses JavaScriptCore, but the
|
|
binary symbols show V8, indicating a hybrid or Node.js compatibility layer)
|
|
- Native HTTP client, filesystem, and child_process support
|
|
|
|
2. **Embedded JS Bundles**: The binary contains multiple bundled JS regions:
|
|
- **Bun framework code** (~2.1 MB at offset ~1.8M): React SSR, HMR, Tailwind
|
|
- **Application code** (~12.8 MB at offset ~107M-120M): The actual Claude Code
|
|
application with all tools, agent loop, MCP client, permissions, etc.
|
|
|
|
3. **Compression**: Ships with a `.zst` (Zstandard) compressed copy alongside
|
|
the full binary for efficient distribution
|
|
|
|
### Binary Sections (Key Offsets)
|
|
|
|
| Region | Offset | Content |
|
|
|--------|--------|---------|
|
|
| ELF headers + V8 | 0 - 1.8M | Native code, V8 engine |
|
|
| Bun framework bundle | ~1.8M - 4.0M | Bun's built-in React, HMR, Tailwind |
|
|
| V8 snapshot data | ~4M - 107M | V8 heap snapshot, compiled bytecode |
|
|
| Application JS | ~107M - 120M | Claude Code application source |
|
|
| Binary data | 120M+ | Resources, compressed assets |
|
|
|
|
## Version Management
|
|
|
|
```
|
|
~/.local/share/claude/versions/
|
|
2.1.86 (228 MB)
|
|
2.1.87 (228 MB)
|
|
2.1.90 (229 MB) <- current
|
|
```
|
|
|
|
The CLI supports auto-updates with two channels:
|
|
- `latest` (default): Bleeding edge
|
|
- `stable`: Tested releases
|
|
|
|
Version selection controlled by `autoUpdatesChannel` setting and
|
|
`DISABLE_AUTOUPDATER` env var.
|
|
|
|
## Dual Interface
|
|
|
|
Claude Code operates as both:
|
|
|
|
1. **CLI Tool** (`claude` binary): Terminal-based interactive REPL and
|
|
non-interactive `--print` mode
|
|
2. **VS Code Extension**: WebView-based UI communicating with the same
|
|
core via the `extension.js` bridge
|
|
|
|
The extension.js acts as a bridge between VS Code's extension host and
|
|
the native binary, translating between VS Code's API and Claude Code's
|
|
internal protocols.
|
|
|
|
## Package Identity
|
|
|
|
```json
|
|
{
|
|
"name": "claude-code",
|
|
"version": "2.1.90",
|
|
"displayName": "Claude Code for VS Code",
|
|
"publisher": "Anthropic"
|
|
}
|
|
```
|
|
|
|
Zero npm dependencies in the VS Code extension -- everything is bundled.
|