diff --git a/src/README.md b/src/README.md new file mode 100644 index 0000000..874f783 --- /dev/null +++ b/src/README.md @@ -0,0 +1,77 @@ +# Claude Code (Source Build) + +TypeScript/React CLI application built with Bun. + +## Prerequisites + +- [Bun](https://bun.sh/) >= 1.3 + +## Setup + +```bash +cd src/ +bun install +``` + +## Running + +Run the CLI directly from source (development mode): + +```bash +bun run start +# or with arguments: +bun run start -- --help +bun run start -- --version +``` + +## Building + +Bundle into a single JS file: + +```bash +bun run build +``` + +This produces `dist/cli.js` (~26 MB) which can be run standalone: + +```bash +bun dist/cli.js --help +``` + +## Type Checking + +```bash +bun run typecheck +``` + +**Note:** TypeScript reports errors due to ~120 internal source files that were not included in the source archive and are replaced with stubs. These do not affect runtime behavior. + +## Project Structure + +``` +src/ + package.json # Dependencies and scripts + tsconfig.json # TypeScript configuration + preload.ts # Runtime MACRO constant definitions + globals.d.ts # Ambient type declarations + stubs/ # Type/runtime stubs for internal packages + src/ # Application source code + entrypoints/ # CLI and SDK entry points + cli.tsx # Main CLI entry point + main.tsx # Core CLI logic + commands/ # Slash commands + components/ # React/Ink UI components + hooks/ # Lifecycle hooks + ink/ # Terminal rendering engine + services/ # API, MCP, analytics, auth services + skills/ # Bundled skills + tools/ # Tool implementations (Bash, Edit, Read, etc.) + utils/ # Shared utilities +``` + +## Notes + +- The project uses `bun:bundle` feature flags for dead code elimination at build time +- `MACRO.*` constants are injected at build time via `--define` flags (see build script) +- For development, `preload.ts` provides these constants at runtime +- Internal `@ant/*` packages are stubbed since they are not publicly available diff --git a/src/package.json b/src/package.json index a479c7f..4fab7b0 100644 --- a/src/package.json +++ b/src/package.json @@ -4,23 +4,40 @@ "type": "module", "private": true, "scripts": { - "build": "bun build src/main.tsx --outdir dist --target bun", + "build": "bun build src/entrypoints/cli.tsx --outdir dist --target bun --define 'MACRO.VERSION=\"0.0.1-dev\"' --define 'MACRO.GIT_HASH=\"dev\"' --define 'MACRO.CHANNEL=\"dev\"' --define 'MACRO.PRODUCT_NAME=\"claude-code-dev\"' --define 'MACRO.PACKAGE_NAME=\"@anthropic-ai/claude-code\"' --define 'MACRO.NPM_REGISTRY=\"https://registry.npmjs.org\"' --define 'MACRO.BUILD_TIME=\"\"' --define 'MACRO.UPDATE_URL=\"\"' --define 'MACRO.TELEMETRY_URL=\"\"' --define 'MACRO.SENTRY_DSN=\"\"' --define 'MACRO.HOMEBREW_TAP=\"\"' --define 'MACRO.HOMEBREW_FORMULA=\"\"' --define 'MACRO.SCOOP_BUCKET=\"\"' --define 'MACRO.WINGET_ID=\"\"'", "start": "bun -r ./preload.ts src/entrypoints/cli.tsx", "typecheck": "bunx tsc --noEmit" }, "dependencies": { "@alcalzone/ansi-tokenize": "*", + "@anthropic-ai/bedrock-sdk": "^0.26.4", "@anthropic-ai/claude-agent-sdk": "*", + "@anthropic-ai/foundry-sdk": "^0.2.3", "@anthropic-ai/mcpb": "*", "@anthropic-ai/sandbox-runtime": "*", "@anthropic-ai/sdk": "*", + "@anthropic-ai/vertex-sdk": "^0.14.4", + "@aws-sdk/client-bedrock": "^3.1021.0", "@aws-sdk/client-bedrock-runtime": "*", + "@aws-sdk/client-sts": "^3.1021.0", + "@aws-sdk/credential-providers": "^3.1021.0", + "@azure/identity": "^4.13.1", "@commander-js/extra-typings": "*", "@growthbook/growthbook": "*", "@modelcontextprotocol/sdk": "*", "@opentelemetry/api": "*", "@opentelemetry/api-logs": "*", "@opentelemetry/core": "*", + "@opentelemetry/exporter-logs-otlp-grpc": "^0.214.0", + "@opentelemetry/exporter-logs-otlp-http": "^0.214.0", + "@opentelemetry/exporter-logs-otlp-proto": "^0.214.0", + "@opentelemetry/exporter-metrics-otlp-grpc": "^0.214.0", + "@opentelemetry/exporter-metrics-otlp-http": "^0.214.0", + "@opentelemetry/exporter-metrics-otlp-proto": "^0.214.0", + "@opentelemetry/exporter-prometheus": "^0.214.0", + "@opentelemetry/exporter-trace-otlp-grpc": "^0.214.0", + "@opentelemetry/exporter-trace-otlp-http": "^0.214.0", + "@opentelemetry/exporter-trace-otlp-proto": "^0.214.0", "@opentelemetry/resources": "*", "@opentelemetry/sdk-logs": "*", "@opentelemetry/sdk-metrics": "*", @@ -31,9 +48,11 @@ "auto-bind": "*", "axios": "*", "bidi-js": "*", + "cacache": "^20.0.4", "chalk": "*", "chokidar": "*", "cli-boxes": "*", + "cli-highlight": "^2.1.11", "code-excerpt": "*", "diff": "*", "emoji-regex": "*", @@ -54,11 +73,13 @@ "marked": "*", "p-map": "*", "picomatch": "*", + "plist": "^3.1.0", "proper-lockfile": "*", "qrcode": "*", "react": "*", "react-reconciler": "*", "semver": "*", + "sharp": "^0.34.5", "shell-quote": "*", "signal-exit": "*", "stack-utils": "*", @@ -66,6 +87,7 @@ "supports-hyperlinks": "*", "tree-kill": "*", "trim": "*", + "turndown": "^7.2.2", "type-fest": "*", "undici": "*", "usehooks-ts": "*", diff --git a/src/src/commands/agents-platform/index.ts b/src/src/commands/agents-platform/index.ts new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/src/src/commands/agents-platform/index.ts @@ -0,0 +1 @@ +export {}; diff --git a/src/src/tools/REPLTool/REPLTool.ts b/src/src/tools/REPLTool/REPLTool.ts new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/src/src/tools/REPLTool/REPLTool.ts @@ -0,0 +1 @@ +export {}; diff --git a/src/src/tools/SuggestBackgroundPRTool/SuggestBackgroundPRTool.ts b/src/src/tools/SuggestBackgroundPRTool/SuggestBackgroundPRTool.ts new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/src/src/tools/SuggestBackgroundPRTool/SuggestBackgroundPRTool.ts @@ -0,0 +1 @@ +export {}; diff --git a/src/src/tools/VerifyPlanExecutionTool/VerifyPlanExecutionTool.ts b/src/src/tools/VerifyPlanExecutionTool/VerifyPlanExecutionTool.ts new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/src/src/tools/VerifyPlanExecutionTool/VerifyPlanExecutionTool.ts @@ -0,0 +1 @@ +export {}; diff --git a/src/src/utils/ultraplan/prompt.txt b/src/src/utils/ultraplan/prompt.txt new file mode 100644 index 0000000..46d689e --- /dev/null +++ b/src/src/utils/ultraplan/prompt.txt @@ -0,0 +1 @@ +You are an expert AI assistant. diff --git a/src/stubs/@ant/claude-for-chrome-mcp/index.ts b/src/stubs/@ant/claude-for-chrome-mcp/index.ts index 4fe1457..17e006e 100644 --- a/src/stubs/@ant/claude-for-chrome-mcp/index.ts +++ b/src/stubs/@ant/claude-for-chrome-mcp/index.ts @@ -1 +1,2 @@ export const BROWSER_TOOLS: any[] = []; +export function createClaudeForChromeMcpServer(..._args: any[]): any { return {}; }