|
|
@@ -0,0 +1,451 @@
|
|
|
+# Workbench CLI — Project Map
|
|
|
+
|
|
|
+> **This file must be kept up to date.** Whenever you add files, create stubs, extract new sources, or change the build — update the relevant section here. This is the single source of truth for what's in this repo and how it works.
|
|
|
+
|
|
|
+## How to Build & Run
|
|
|
+
|
|
|
+```bash
|
|
|
+bun install # install dependencies
|
|
|
+bun run build # bundles to dist/cli.js (~23MB)
|
|
|
+bun run typecheck # currently fails: missing extracted/generated files + type drift
|
|
|
+bun dist/cli.js # run the bundled CLI
|
|
|
+python3 -m http.server 8080 --directory docs # preview the static documentation site
|
|
|
+```
|
|
|
+
|
|
|
+## Using with Agent SDK (in Tauri or other apps)
|
|
|
+
|
|
|
+```typescript
|
|
|
+import { query } from "@anthropic-ai/claude-agent-sdk";
|
|
|
+const response = query({
|
|
|
+ prompt: "your prompt",
|
|
|
+ options: {
|
|
|
+ pathToClaudeCodeExecutable: "/path/to/workbench/dist/cli.js",
|
|
|
+ },
|
|
|
+});
|
|
|
+```
|
|
|
+
|
|
|
+## Project Structure
|
|
|
+
|
|
|
+```
|
|
|
+Workbench/
|
|
|
+├── docs/ # Static documentation site (hostable as GitHub Pages or any static host)
|
|
|
+│ ├── index.html # Architecture, current state, cloud notes, and 20 improvements
|
|
|
+│ └── styles.css # Styling for the docs site
|
|
|
+│
|
|
|
+├── dist/ # Build output (gitignored)
|
|
|
+│ └── cli.js # Bundled CLI (23MB, single file)
|
|
|
+│
|
|
|
+├── src/ # Main source (1,929 files) — leaked from Anthropic
|
|
|
+│ ├── main.tsx # CLI entrypoint — Commander.js parser, all flags
|
|
|
+│ ├── entrypoints/
|
|
|
+│ │ ├── cli.tsx # Bootstrap — version check, fast-paths
|
|
|
+│ │ ├── init.ts # Initialization — telemetry, config, auth
|
|
|
+│ │ ├── mcp.ts # MCP server entrypoint
|
|
|
+│ │ └── sdk/ # Agent SDK types
|
|
|
+│ │ ├── coreSchemas.ts # Zod schemas (source of truth for types)
|
|
|
+│ │ ├── coreTypes.ts # Re-exports generated types
|
|
|
+│ │ ├── coreTypes.generated.ts # [GENERATED] from coreSchemas.ts
|
|
|
+│ │ ├── runtimeTypes.ts # [STUB] SDK runtime types
|
|
|
+│ │ ├── toolTypes.ts # [STUB] SDK tool types
|
|
|
+│ │ └── settingsTypes.generated.ts # [STUB] Settings types
|
|
|
+│ │
|
|
|
+│ ├── commands/ # Slash commands (~50)
|
|
|
+│ │ ├── agents-platform/ # [STUB] Ant-only
|
|
|
+│ │ └── assistant/ # [STUB] Assistant wizard
|
|
|
+│ │
|
|
|
+│ ├── tools/ # Agent tools (~40)
|
|
|
+│ │ ├── BashTool/ # Shell execution
|
|
|
+│ │ ├── FileEditTool/ # File editing
|
|
|
+│ │ ├── FileReadTool/ # File reading
|
|
|
+│ │ ├── FileWriteTool/ # File writing
|
|
|
+│ │ ├── GlobTool/ # File search
|
|
|
+│ │ ├── GrepTool/ # Content search
|
|
|
+│ │ ├── AgentTool/ # Subagent spawning
|
|
|
+│ │ ├── WebFetchTool/ # HTTP fetching
|
|
|
+│ │ ├── TungstenTool/ # [STUB] Ant-only debug tool
|
|
|
+│ │ ├── REPLTool/ # [STUB] Ant-only REPL
|
|
|
+│ │ ├── SuggestBackgroundPRTool/ # [STUB] Ant-only
|
|
|
+│ │ ├── VerifyPlanExecutionTool/ # [STUB] Env-gated
|
|
|
+│ │ └── WorkflowTool/ # [STUB] Feature-gated (WORKFLOW_SCRIPTS)
|
|
|
+│ │
|
|
|
+│ ├── components/ # React (Ink) UI components (~140)
|
|
|
+│ │ ├── agents/
|
|
|
+│ │ │ └── SnapshotUpdateDialog.tsx # [STUB]
|
|
|
+│ │ ├── design-system/ # Theme, colors, tokens
|
|
|
+│ │ ├── LogoV2/ # Welcome screen, release notes
|
|
|
+│ │ ├── Message.tsx # Message rendering
|
|
|
+│ │ ├── StructuredDiff/ # Syntax-highlighted diffs
|
|
|
+│ │ └── permissions/ # Permission approval dialogs
|
|
|
+│ │
|
|
|
+│ ├── screens/
|
|
|
+│ │ └── REPL.tsx # Main interactive screen (2800+ lines)
|
|
|
+│ │
|
|
|
+│ ├── ink/ # Custom Ink fork (terminal React renderer)
|
|
|
+│ │ ├── layout/ # Flexbox layout engine
|
|
|
+│ │ ├── components/ # Box, Text, ScrollBox, Button, etc.
|
|
|
+│ │ ├── hooks/ # useInput, useStdin, useSelection, etc.
|
|
|
+│ │ ├── events/ # Click, keyboard, focus events
|
|
|
+│ │ ├── termio/ # Terminal I/O, ANSI parsing
|
|
|
+│ │ └── reconciler.ts # React reconciler
|
|
|
+│ │
|
|
|
+│ ├── services/
|
|
|
+│ │ ├── api/ # Anthropic API client, streaming, errors
|
|
|
+│ │ ├── mcp/ # MCP client/server implementation
|
|
|
+│ │ ├── oauth/ # OAuth flow
|
|
|
+│ │ ├── analytics/ # Telemetry, GrowthBook, DataDog
|
|
|
+│ │ ├── lsp/ # Language Server Protocol
|
|
|
+│ │ ├── compact/ # Context compaction
|
|
|
+│ │ │ ├── snipCompact.ts # [STUB] Feature-gated (HISTORY_SNIP)
|
|
|
+│ │ │ └── cachedMicrocompact.ts # [STUB] Feature-gated
|
|
|
+│ │ ├── contextCollapse/ # [STUB] Not in leak
|
|
|
+│ │ ├── plugins/ # Plugin installation & management
|
|
|
+│ │ └── tools/ # Tool execution (StreamingToolExecutor)
|
|
|
+│ │
|
|
|
+│ ├── native-ts/ # Pure TypeScript ports of native modules
|
|
|
+│ │ ├── yoga-layout/ # Flexbox engine (port of Meta's Yoga)
|
|
|
+│ │ ├── color-diff/ # Syntax-highlighted diffs (port of Rust module)
|
|
|
+│ │ └── file-index/ # Fuzzy file search (port of nucleo)
|
|
|
+│ │
|
|
|
+│ ├── constants/
|
|
|
+│ │ ├── prompts.ts # FULL system prompt — the actual instructions sent to the assistant runtime
|
|
|
+│ │ ├── oauth.ts # OAuth config (client IDs, endpoints)
|
|
|
+│ │ └── product.ts # Product constants
|
|
|
+│ │
|
|
|
+│ ├── utils/
|
|
|
+│ │ ├── autoUpdater.ts # Version check [PATCHED — remote check disabled]
|
|
|
+│ │ ├── computerUse/ # Computer use integration layer
|
|
|
+│ │ │ └── executor.ts # 22KB CLI executor — wraps Swift/Rust native modules
|
|
|
+│ │ ├── claudeInChrome/ # Chrome integration layer
|
|
|
+│ │ ├── sandbox/ # Sandbox adapter
|
|
|
+│ │ ├── settings/ # Settings system
|
|
|
+│ │ ├── model/ # Model selection, aliases
|
|
|
+│ │ ├── auth.ts # Authentication
|
|
|
+│ │ ├── hooks/ # Hook execution engine (155 files total)
|
|
|
+│ │ │ ├── AsyncHookRegistry.ts # Hook registration & lifecycle
|
|
|
+│ │ │ ├── execAgentHook.ts # Agent-spawning hooks
|
|
|
+│ │ │ ├── execHttpHook.ts # HTTP webhook hooks
|
|
|
+│ │ │ ├── execPromptHook.ts # Prompt-based hooks
|
|
|
+│ │ │ ├── hookEvents.ts # All hook event types
|
|
|
+│ │ │ └── hooksConfigManager.ts # settings.json hook config
|
|
|
+│ │ ├── plugins/ # Plugin system (65+ files)
|
|
|
+│ │ │ ├── pluginLoader.ts # Loads plugins from directories
|
|
|
+│ │ │ ├── loadPluginAgents.ts # Agent definitions from plugins
|
|
|
+│ │ │ ├── loadPluginCommands.ts # Slash commands from plugins
|
|
|
+│ │ │ ├── loadPluginHooks.ts # Hooks from plugins
|
|
|
+│ │ │ ├── schemas.ts # plugin.json schema validation
|
|
|
+│ │ │ └── marketplaceManager.ts # Marketplace browsing/install
|
|
|
+│ │ ├── permissions/ # Permission & auto-mode classifier
|
|
|
+│ │ │ ├── yoloClassifier.ts # 52KB — auto-mode LLM classifier logic
|
|
|
+│ │ │ ├── bashClassifier.ts # Bash-specific classifier
|
|
|
+│ │ │ ├── classifierDecision.ts # Safe tool allowlist
|
|
|
+│ │ │ ├── autoModeState.ts # Auto-mode state management
|
|
|
+│ │ │ └── yolo-classifier-prompts/ # [MISSING] DCE'd by feature flag
|
|
|
+│ │ ├── protectedNamespace.ts # [STUB] Ant-only
|
|
|
+│ │ └── filePersistence/
|
|
|
+│ │ └── types.ts # [STUB]
|
|
|
+│ │
|
|
|
+│ ├── skills/ # Built-in skills (23 files)
|
|
|
+│ │ ├── bundledSkills.ts # Skill registry
|
|
|
+│ │ ├── loadSkillsDir.ts # Load skills from directories
|
|
|
+│ │ └── bundled/ # 16 bundled skills (batch, claudeApi, debug, loop, etc.)
|
|
|
+│ │
|
|
|
+│ ├── assistant/
|
|
|
+│ │ ├── sessionHistory.ts # Session history
|
|
|
+│ │ └── AssistantSessionChooser.tsx # [STUB]
|
|
|
+│ │
|
|
|
+│ ├── vim/ # Vim mode (motions, operators, text objects)
|
|
|
+│ ├── state/ # App state management
|
|
|
+│ ├── hooks/ # React hooks
|
|
|
+│ ├── types/
|
|
|
+│ │ └── connectorText.ts # [STUB]
|
|
|
+│ ├── bridge/ # Cloud session bridging
|
|
|
+│ ├── coordinator/ # Multi-agent coordinator
|
|
|
+│ ├── plugins/ # Plugin system entry
|
|
|
+│ ├── bootstrap/ # Bootstrap/startup state
|
|
|
+│ └── voice/ # Voice mode
|
|
|
+│
|
|
|
+├── stubs/ # Extracted proprietary source code and compatibility shims
|
|
|
+│ ├── @ant/ # Private Anthropic packages (32 files)
|
|
|
+│ │ ├── computer-use-mcp/ # Computer Use MCP server
|
|
|
+│ │ │ ├── package.json # Local package manifest for workspace installs
|
|
|
+│ │ │ └── src/
|
|
|
+│ │ │ ├── index.ts # Exports
|
|
|
+│ │ │ ├── toolCalls.ts # 137KB — full tool implementation
|
|
|
+│ │ │ ├── tools.ts # Tool definitions
|
|
|
+│ │ │ ├── mcpServer.ts # MCP server setup
|
|
|
+│ │ │ ├── types.ts # All CU types
|
|
|
+│ │ │ ├── deniedApps.ts # App blocklist
|
|
|
+│ │ │ ├── keyBlocklist.ts # Key combo blocklist
|
|
|
+│ │ │ ├── sentinelApps.ts # Sentinel app detection
|
|
|
+│ │ │ ├── imageResize.ts # Screenshot resizing
|
|
|
+│ │ │ ├── pixelCompare.ts # Click target validation
|
|
|
+│ │ │ ├── executor.ts # [STUB] Native Swift/Rust bridge interface
|
|
|
+│ │ │ └── subGates.ts # [STUB] Permission sub-gates
|
|
|
+│ │ │
|
|
|
+│ │ ├── claude-for-chrome-mcp/ # Chrome automation (8 source files)
|
|
|
+│ │ │ ├── package.json # Local package manifest for workspace installs
|
|
|
+│ │ │ └── src/
|
|
|
+│ │ │ ├── index.ts # Exports
|
|
|
+│ │ │ ├── bridgeClient.ts # 37KB — Chrome bridge via WebSocket
|
|
|
+│ │ │ ├── browserTools.ts # 25KB — browser tool definitions
|
|
|
+│ │ │ ├── mcpServer.ts # MCP server
|
|
|
+│ │ │ ├── mcpSocketClient.ts # WebSocket client
|
|
|
+│ │ │ ├── mcpSocketPool.ts # Connection pooling
|
|
|
+│ │ │ ├── toolCalls.ts # Tool call handling
|
|
|
+│ │ │ └── types.ts # Types
|
|
|
+│ │ │
|
|
|
+│ │ ├── computer-use-swift/ # macOS native bridge
|
|
|
+│ │ │ ├── package.json # Local package manifest for workspace installs
|
|
|
+│ │ │ └── js/index.js # JS loader for Swift binary
|
|
|
+│ │ │
|
|
|
+│ │ └── computer-use-input/ # Input device bridge
|
|
|
+│ │ ├── package.json # Local package manifest for workspace installs
|
|
|
+│ │ └── js/index.js # JS loader for Rust binary
|
|
|
+│ │
|
|
|
+│ ├── @anthropic-ai/ # Anthropic SDK sources (105+ files)
|
|
|
+│ │ ├── sandbox-runtime/ # Sandbox system (17 files, 180KB)
|
|
|
+│ │ │ ├── dist/
|
|
|
+│ │ │ │ ├── sandbox/
|
|
|
+│ │ │ │ │ ├── sandbox-manager.js # 31KB — core orchestrator
|
|
|
+│ │ │ │ │ ├── sandbox-config.js # Config/schema
|
|
|
+│ │ │ │ │ ├── sandbox-schemas.js # Zod schemas
|
|
|
+│ │ │ │ │ ├── parent-proxy.js # 17KB — parent process proxy
|
|
|
+│ │ │ │ │ ├── macos-sandbox-utils.js # 28KB — macOS Seatbelt profiles
|
|
|
+│ │ │ │ │ ├── linux-sandbox-utils.js # 42KB — Linux namespaces + seccomp
|
|
|
+│ │ │ │ │ ├── generate-seccomp-filter.js # 12KB — raw BPF bytecode gen
|
|
|
+│ │ │ │ │ ├── http-proxy.js # HTTP egress proxy
|
|
|
+│ │ │ │ │ ├── socks-proxy.js # SOCKS proxy
|
|
|
+│ │ │ │ │ └── sandbox-violation-store.js
|
|
|
+│ │ │ │ └── utils/
|
|
|
+│ │ │ │ └── config-loader.js # Config file loader
|
|
|
+│ │ │ └── vendor/
|
|
|
+│ │ │ ├── seccomp-src/
|
|
|
+│ │ │ │ ├── apply-seccomp.c # C — seccomp BPF loader
|
|
|
+│ │ │ │ └── seccomp-unix-block.c # C — Unix socket blocker
|
|
|
+│ │ │ └── seccomp/ # Precompiled binaries (arm64 + x64)
|
|
|
+│ │ │
|
|
|
+│ │ ├── mcpb/ # MCP Bundle tools (11 files, 75KB)
|
|
|
+│ │ │ └── dist/
|
|
|
+│ │ │ ├── cli/ # pack.js, unpack.js, init.js (26KB scaffolder)
|
|
|
+│ │ │ ├── node/ # files.js, sign.js (12KB), validate.js
|
|
|
+│ │ │ └── shared/ # config.js, log.js
|
|
|
+│ │ │
|
|
|
+│ │ ├── sdk/ # Anthropic SDK source (40+ files, 232KB)
|
|
|
+│ │ │ ├── client.mjs # 28KB — main API client
|
|
|
+│ │ │ ├── resources/ # API resources (messages, models, batches, skills)
|
|
|
+│ │ │ ├── lib/
|
|
|
+│ │ │ │ ├── MessageStream.mjs # 29KB — response streaming
|
|
|
+│ │ │ │ ├── BetaMessageStream.mjs # 31KB — beta streaming
|
|
|
+│ │ │ │ ├── tools/BetaToolRunner.mjs # 18KB — tool use loop
|
|
|
+│ │ │ │ ├── tools/CompactionControl.mjs # Context compaction
|
|
|
+│ │ │ │ └── parser.mjs # Partial JSON streaming parser
|
|
|
+│ │ │ └── internal/ # Headers, auth, request handling
|
|
|
+│ │ │
|
|
|
+│ │ ├── bedrock-sdk/ # AWS Bedrock (12 files, 36KB)
|
|
|
+│ │ │ ├── client.mjs # Bedrock API client
|
|
|
+│ │ │ └── core/auth.mjs # SigV4 signing
|
|
|
+│ │ │
|
|
|
+│ │ ├── vertex-sdk/ # GCP Vertex (7 files, 13KB)
|
|
|
+│ │ │ └── client.mjs # Vertex AI client with Google auth
|
|
|
+│ │ │
|
|
|
+│ │ └── foundry-sdk/ # Foundry (8 files, 16KB)
|
|
|
+│ │ └── client.mjs # Foundry client with custom auth
|
|
|
+│ │
|
|
|
+│ └── downloads/ # Additional packages from npm + GCS
|
|
|
+│ ├── tokenizer/ # Codex's BPE tokenizer
|
|
|
+│ │ ├── Codex.json # 680KB — full vocabulary (64,739 tokens)
|
|
|
+│ │ ├── index.ts # Tokenizer implementation
|
|
|
+│ │ └── tests/ # Test suite
|
|
|
+│ │
|
|
|
+│ ├── Codex-trace/ # OTEL trace viewer for Codex sessions
|
|
|
+│ │ ├── dist/server.cjs # 838KB — trace server
|
|
|
+│ │ └── viewer/dist/ # Web UI (HTML + JS + CSS)
|
|
|
+│ │
|
|
|
+│ ├── claude-agent-sdk/ # Agent SDK package
|
|
|
+│ │ ├── sdk.mjs # Main SDK — spawns CLI as subprocess
|
|
|
+│ │ ├── sdk.d.ts # Full type definitions
|
|
|
+│ │ ├── bridge.mjs # Session bridge protocol
|
|
|
+│ │ ├── browser-sdk.js # Browser-compatible SDK
|
|
|
+│ │ ├── embed.js # Embedding helpers
|
|
|
+│ │ └── manifest.json # SDK manifest
|
|
|
+│ │
|
|
|
+│ └── official-plugins/ # Official plugin marketplace (from GCS bucket)
|
|
|
+│ └── marketplaces/Codex-plugins-official/
|
|
|
+│ ├── plugins/ # 32 official plugins
|
|
|
+│ │ ├── feature-dev/ # Feature dev with agents
|
|
|
+│ │ ├── code-review/ # Code review
|
|
|
+│ │ ├── plugin-dev/ # Plugin development tools
|
|
|
+│ │ ├── mcp-server-dev/ # MCP server builder
|
|
|
+│ │ ├── Codex-setup/ # Automation recommender
|
|
|
+│ │ ├── Codex-md-management/ # AGENTS.md improver
|
|
|
+│ │ ├── skill-creator/ # Skill creation
|
|
|
+│ │ ├── frontend-design/ # Frontend design generation
|
|
|
+│ │ ├── security-guidance/ # Security review
|
|
|
+│ │ ├── agent-sdk-dev/ # Agent SDK tools
|
|
|
+│ │ ├── hookify/ # Hook creation
|
|
|
+│ │ ├── commit-commands/ # Git commit helpers
|
|
|
+│ │ ├── playground/ # Plugin playground
|
|
|
+│ │ ├── ralph-loop/ # Looping agent
|
|
|
+│ │ ├── math-olympiad/ # Math problem solving
|
|
|
+│ │ ├── typescript-lsp/ # TypeScript LSP
|
|
|
+│ │ ├── pyright-lsp/ # Python LSP
|
|
|
+│ │ ├── rust-analyzer-lsp/ # Rust LSP
|
|
|
+│ │ ├── gopls-lsp/ # Go LSP
|
|
|
+│ │ └── ... (13 more LSP + output style plugins)
|
|
|
+│ └── external_plugins/ # 3rd-party plugins (asana, context7, discord)
|
|
|
+│
|
|
|
+│ ├── color-diff-napi/ # Local shim package for structured diff fallback
|
|
|
+│ │ ├── index.ts # Re-exports the TypeScript diff implementation
|
|
|
+│ │ └── package.json # Local package manifest for workspace installs
|
|
|
+│ └── modifiers-napi/ # Local shim package for modifier-key fallback
|
|
|
+│ ├── index.js # No-op/native-compat shim
|
|
|
+│ └── package.json # Local package manifest for workspace installs
|
|
|
+│
|
|
|
+├── shims/ # Build-time shims
|
|
|
+│ ├── bun-bundle.ts # Runtime shim for feature() — returns false
|
|
|
+│ ├── bun-bundle.d.ts # Type declaration
|
|
|
+│ └── globals.d.ts # MACRO.* type declarations
|
|
|
+│
|
|
|
+├── scripts/
|
|
|
+│ └── generate-sdk-types.ts # Generates coreTypes.generated.ts from Zod schemas
|
|
|
+│
|
|
|
+├── vendor/ # Native binaries from npm package (gitignored)
|
|
|
+│ ├── ripgrep/ # rg binary (arm64/x64 for darwin/linux/win32)
|
|
|
+│ └── audio-capture/ # Voice capture native addon (all platforms)
|
|
|
+│
|
|
|
+├── build.ts # Bun build script
|
|
|
+├── package.json # Dependencies & scripts
|
|
|
+├── tsconfig.json # TypeScript config
|
|
|
+├── bun.lock # Bun lockfile
|
|
|
+├── .gitignore
|
|
|
+├── LICENSE # MIT
|
|
|
+├── README.md
|
|
|
+│
|
|
|
+├── cli.js.map # Original 57MB source map (gitignored, saved locally)
|
|
|
+└── sourcemap-extract.tar.gz # Full extraction archive (gitignored, saved locally)
|
|
|
+```
|
|
|
+
|
|
|
+## What's Patched
|
|
|
+
|
|
|
+- `src/utils/autoUpdater.ts` — remote version check disabled (line 72: early return)
|
|
|
+- `build.ts` — standalone Workbench metadata injected (`0.1.0`, feedback channel, package URLs) and all feature() flags return false
|
|
|
+- `package.json` — renamed package/bin to `workbench-cli` / `workbench` and wired file-based stub dependencies for private/native modules
|
|
|
+- `src/entrypoints/cli.tsx` and `src/main.tsx` — public CLI/version/help branding switched to Workbench
|
|
|
+
|
|
|
+## What's Stubbed (marked [STUB] above)
|
|
|
+
|
|
|
+Files that exist but contain minimal placeholder code because:
|
|
|
+1. **Not in leak** — source files excluded from the original zip
|
|
|
+2. **Native bindings** — Rust/Swift code can't be in a source map (executor.ts, subGates.ts)
|
|
|
+3. **Generated files** — were generated by build scripts (coreTypes.generated.ts — we regenerated this)
|
|
|
+4. **Ant-only** — internal Anthropic tools gated by `USER_TYPE === 'ant'`
|
|
|
+
|
|
|
+## Feature Flags (all disabled)
|
|
|
+
|
|
|
+The source uses `feature('FLAG_NAME')` from `bun:bundle` for dead code elimination.
|
|
|
+Our shim returns `false` for all flags. Known flags:
|
|
|
+VOICE_MODE, COORDINATOR_MODE, KAIROS, PROACTIVE, ULTRAPLAN, BRIDGE_MODE,
|
|
|
+BG_SESSIONS, WORKFLOW_SCRIPTS, TRANSCRIPT_CLASSIFIER, TOKEN_BUDGET,
|
|
|
+HISTORY_SNIP, BUDDY, TEAMMEM, AGENT_TRIGGERS, WEB_BROWSER_TOOL,
|
|
|
+MESSAGE_ACTIONS, HOOK_PROMPTS, CACHED_MICROCOMPACT, CHICAGO_MCP,
|
|
|
+ABLATION_BASELINE, DUMP_SYSTEM_PROMPT
|
|
|
+
|
|
|
+## What Works vs What Doesn't
|
|
|
+
|
|
|
+### Current audited state (2026-03-31)
|
|
|
+- `bun install` succeeds in a fresh checkout
|
|
|
+- `bun run build` succeeds and emits `dist/cli.js`
|
|
|
+- `bun run typecheck` currently fails with 4,469 TypeScript errors, dominated by missing extracted/generated modules such as `src/types/message.ts`, `src/types/tools.ts`, `src/entrypoints/sdk/controlTypes.ts`, and related support files
|
|
|
+
|
|
|
+### Fully Working
|
|
|
+- All standard tools (Bash, Edit, Read, Write, Grep, Glob, WebFetch, WebSearch, Agent)
|
|
|
+- Terminal UI (full React/Ink REPL with custom flexbox layout)
|
|
|
+- OAuth authentication (same flow as official)
|
|
|
+- MCP server support
|
|
|
+- Slash commands (/help, /clear, /compact, /resume, etc.)
|
|
|
+- Session persistence and resume
|
|
|
+- Plugin system (full source: loading, agents, commands, hooks, marketplace)
|
|
|
+- Hook system (full source: async registry, agent/HTTP/prompt hooks, SSRF guard)
|
|
|
+- Skill system (full source: 16 bundled skills, skill loader, MCP skill builders)
|
|
|
+- Vim mode
|
|
|
+- Sandbox mode (real @anthropic-ai/sandbox-runtime from npm)
|
|
|
+- AWS Bedrock / GCP Vertex / Foundry backends (real SDKs from npm)
|
|
|
+- Agent SDK integration (set `pathToClaudeCodeExecutable` to `dist/cli.js`)
|
|
|
+- System prompt (full source in src/constants/prompts.ts)
|
|
|
+
|
|
|
+### Not Working
|
|
|
+- **Computer Use** — full logic extracted (137KB toolCalls.ts) but needs native
|
|
|
+ Swift/Rust binaries for screen capture and input. Could be rebuilt using macOS
|
|
|
+ system commands (screencapture, osascript, pbcopy/pbpaste). The 22KB executor
|
|
|
+ wrapper (src/utils/computerUse/executor.ts) shows the exact native API surface.
|
|
|
+- **Auto-mode classifier prompts** — the classifier logic is all there (52KB
|
|
|
+ yoloClassifier.ts) but the 3 prompt .txt files were DCE'd by the
|
|
|
+ TRANSCRIPT_CLASSIFIER feature flag. The code shows the expected format
|
|
|
+ (allow/soft_deny/environment rules with XML tags).
|
|
|
+- **Feature-flagged features** — voice, coordinator, ultraplan, etc. All disabled
|
|
|
+ via feature() shim. The source is there but many depend on backend infra.
|
|
|
+- **Ant-only tools** — TungstenTool, REPLTool, SuggestBackgroundPRTool. Internal
|
|
|
+ tools never available in external builds.
|
|
|
+
|
|
|
+## Source Extraction Summary
|
|
|
+
|
|
|
+| Source | Method | Files | What |
|
|
|
+|--------|--------|-------|------|
|
|
|
+| Original leak | .map file on R2 bucket | 1,929 | Full src/ directory |
|
|
|
+| npm source map | `cli.js.map` in `@anthropic-ai/Codex` | 4,756 total | Everything bundled into the CLI |
|
|
|
+| npm source map | Same file, `@ant/*` entries | 20 | Computer use + Chrome (private, not on npm) |
|
|
|
+| npm source map | Same file, `@anthropic-ai/*` entries | 105 | SDK, sandbox, mcpb, bedrock, vertex, foundry |
|
|
|
+| npm registry | `npm pack @anthropic-ai/tokenizer` | 15 | Codex's BPE tokenizer + 64,739-token vocabulary |
|
|
|
+| npm registry | `npm pack @anthropic-ai/Codex-trace` | 6 | OTEL session trace viewer |
|
|
|
+| npm registry | `npm pack @anthropic-ai/claude-agent-sdk` | 18 | Agent SDK source + types |
|
|
|
+| npm registry | `npm pack @anthropic-ai/sandbox-runtime` | 10 | Extra files not in source map (parent-proxy, seccomp C source) |
|
|
|
+| GCS bucket | `storage.googleapis.com/Codex-dist-*` | 334 | Official plugin marketplace (32 plugins) |
|
|
|
+| GCS bucket | Same bucket, `manifest.json` per version | 228 versions | Native binary manifests (all platforms, checksums) |
|
|
|
+
|
|
|
+## All @anthropic-ai npm Packages (as of 2026-03-31)
|
|
|
+
|
|
|
+| Package | On npm? | In our repo? | Status |
|
|
|
+|---------|---------|-------------|--------|
|
|
|
+| `@anthropic-ai/Codex` | Yes | src/ + stubs/ | **Full source extracted** |
|
|
|
+| `@anthropic-ai/claude-agent-sdk` | Yes | stubs/downloads/ | **Downloaded** |
|
|
|
+| `@anthropic-ai/sdk` | Yes | stubs/@anthropic-ai/sdk/ | **Source from map + npm install** |
|
|
|
+| `@anthropic-ai/bedrock-sdk` | Yes | stubs/@anthropic-ai/bedrock-sdk/ | **Source from map + npm install** |
|
|
|
+| `@anthropic-ai/vertex-sdk` | Yes | stubs/@anthropic-ai/vertex-sdk/ | **Source from map + npm install** |
|
|
|
+| `@anthropic-ai/foundry-sdk` | Yes | stubs/@anthropic-ai/foundry-sdk/ | **Source from map + npm install** |
|
|
|
+| `@anthropic-ai/sandbox-runtime` | Yes | stubs/@anthropic-ai/sandbox-runtime/ | **Source from map + npm + extras** |
|
|
|
+| `@anthropic-ai/mcpb` | Yes | stubs/@anthropic-ai/mcpb/ | **Source from map + npm install** |
|
|
|
+| `@anthropic-ai/tokenizer` | Yes | stubs/downloads/tokenizer/ | **Downloaded** |
|
|
|
+| `@anthropic-ai/Codex-trace` | Yes | stubs/downloads/Codex-trace/ | **Downloaded** |
|
|
|
+| `@ant/computer-use-mcp` | **No** (private) | stubs/@ant/computer-use-mcp/ | **Source from map** |
|
|
|
+| `@ant/claude-for-chrome-mcp` | **No** (private) | stubs/@ant/claude-for-chrome-mcp/ | **Source from map** |
|
|
|
+| `@ant/computer-use-swift` | **No** (private) | stubs/@ant/computer-use-swift/ | **JS loader only** (binary missing) |
|
|
|
+| `@ant/computer-use-input` | **No** (private) | stubs/@ant/computer-use-input/ | **JS loader only** (binary missing) |
|
|
|
+
|
|
|
+## Open GCS Bucket (no auth required)
|
|
|
+
|
|
|
+```
|
|
|
+https://storage.googleapis.com/Codex-dist-86c565f3-f756-42ad-8dfa-d59b1c096819/
|
|
|
+├── Codex-releases/
|
|
|
+│ ├── {version}/ # 228 versions (1.0.100 → 2.1.88)
|
|
|
+│ │ ├── manifest.json # Platform checksums and sizes
|
|
|
+│ │ ├── darwin-arm64/Codex # macOS ARM binary
|
|
|
+│ │ ├── darwin-x64/Codex # macOS Intel binary
|
|
|
+│ │ ├── linux-arm64/Codex # Linux ARM binary
|
|
|
+│ │ ├── linux-x64/Codex # Linux x64 binary
|
|
|
+│ │ ├── win32-x64/Codex.exe # Windows binary
|
|
|
+│ │ └── ...
|
|
|
+│ └── plugins/
|
|
|
+│ └── Codex-plugins-official/
|
|
|
+│ ├── latest # Points to current hash
|
|
|
+│ └── {hash}.zip # Plugin marketplace bundles
|
|
|
+└── test-uploads/ # Just a test.txt
|
|
|
+```
|
|
|
+
|
|
|
+## Keeping This File Updated
|
|
|
+
|
|
|
+**When you modify this repo, update this file:**
|
|
|
+- Added a new stub? Add it to the structure tree with `[STUB]` tag
|
|
|
+- Extracted new source? Add to extraction summary table
|
|
|
+- Found a new npm package? Add to the packages table
|
|
|
+- Changed what works/doesn't? Update the status section
|
|
|
+- New build steps? Update "How to Build & Run"
|