mirror of
https://github.com/Gitlawb/openclaude.git
synced 2026-06-01 15:27:41 +00:00
* chore(build): clean up external dependency validation warnings Remove 2 unused externals (@opentelemetry/sdk-trace-node, ink) and add 12 missing packages to package.json that are dynamically imported at runtime but weren't declared as dependencies. Also remove the unused @opentelemetry/sdk-trace-node dependency. This eliminates all 13 build validation warnings: - 8 missing OTel exporter deps (http, proto, grpc variants + prometheus) - 4 missing AWS SDK deps (bedrock, bedrock-runtime, sts, credential-providers) - 1 missing Azure dep (@azure/identity) - ink external pointed to local reimplementation, not npm package - sdk-trace-node was declared external but never imported Build validation now passes cleanly with 0 warnings. Co-Authored-By: OpenClaude <openclaude@gitlawb.com> * chore(build): eliminate external validation warnings Remove unused @opentelemetry/sdk-trace-node from externals and package.json (it's not imported anywhere in src/). Remove ink from SDK_ONLY_EXTERNALS (the project reimplements ink locally at src/ink/). Add OPTIONAL_RUNTIME_EXTERNALS list for packages that are dynamically imported but intentionally not direct deps — OTel protocol exporters and cloud provider SDKs are resolved from transitive deps or installed by users who need them. Validation now passes with 0 warnings instead of 13. Co-Authored-By: OpenClaude <openclaude@gitlawb.com> * feat(telemetry): full OpenTelemetry purge — remove all tracking dependencies Replace all @opentelemetry/* runtime dependencies with no-op stubs, delete OTel-only source modules, and remove 10 @opentelemetry packages from package.json plus @growthbook/growthbook. Key changes: - Delete 5 OTel-only modules (instrumentation, betaSessionTracing, bigqueryExporter, logger, firstPartyEventLoggingExporter) - Replace 9 modules with no-op stubs (sessionTracing, events, telemetryAttributes, firstPartyEventLogger, growthbook, index, sink, datadog, sinkKillswitch, perfettoTracing) - Remove all @opentelemetry/* imports from bootstrap/state.ts, entrypoints/init.ts, and ~20 caller files - Remove all OTel counter types, meter/provider state from state.ts - Clean externals.ts: remove 27 @opentelemetry/* entries - Clean build.ts: remove OTel native-stub namespace exports - Simplify no-telemetry-plugin.ts: remove redundant source-level stubs - Remove 10 @opentelemetry/* + @growthbook/growthbook from package.json - GrowthBook stub reads local ~/.claude/feature-flags.json for overrides Co-Authored-By: OpenClaude (zai-org-glm-5-1) <openclaude@gitlawb.com> * fix format * chore: regenerate lockfile after OTel dependency removal Co-Authored-By: OpenClaude (zai-org-glm-5-1) <openclaude@gitlawb.com> * fix(growthbook): route gate helpers through local flag overrides checkStatsigFeatureGate_CACHED_MAY_BE_STALE() and checkGate_CACHED_OR_BLOCKING() now resolve from ~/.claude/feature-flags.json like getFeatureValue_* does, so gates like tengu_thinkback, tengu_ccr_bridge, and VS Code upsells can be flipped on locally. Security gates (checkSecurityRestrictionGate) remain hard-false. Also adds 5 tests covering gate helper override behavior and unifies JSDoc wording for _getFlagValue-routed functions. Co-Authored-By: OpenClaude (zai-org-glm-5-1) <openclaude@gitlawb.com> --------- Co-authored-by: OpenClaude <openclaude@gitlawb.com>
133 lines
3.6 KiB
TypeScript
133 lines
3.6 KiB
TypeScript
/**
|
|
* Shared external dependency lists for CLI and SDK bundles.
|
|
*
|
|
* Used by build.ts and validate-externals.ts.
|
|
* When adding a new dependency to package.json, check if it should be
|
|
* added here (large packages, native modules, or packages with many exports).
|
|
*/
|
|
|
|
// Packages that should be kept external in ALL bundles (CLI + SDK)
|
|
export const COMMON_EXTERNALS: string[] = [
|
|
// Native image processing
|
|
'sharp',
|
|
// Cloud provider SDKs
|
|
'@aws-sdk/client-bedrock',
|
|
'@aws-sdk/client-bedrock-runtime',
|
|
'@aws-sdk/client-sts',
|
|
'@aws-sdk/credential-providers',
|
|
'@azure/identity',
|
|
'google-auth-library',
|
|
// @vscode/ripgrep ships a platform-specific binary alongside its
|
|
// index.js and resolves the path via __dirname at runtime. Bundling
|
|
// would freeze the build host's absolute path into dist/cli.mjs, so we
|
|
// keep it external and rely on the npm package being installed.
|
|
'@vscode/ripgrep',
|
|
// Orama search engine
|
|
'@orama/orama',
|
|
'@orama/plugin-data-persistence',
|
|
]
|
|
|
|
// Additional packages external only in the SDK bundle (TUI + heavy deps)
|
|
export const SDK_ONLY_EXTERNALS: string[] = [
|
|
'react',
|
|
'react-reconciler',
|
|
'@anthropic-ai/sdk',
|
|
'@modelcontextprotocol/sdk',
|
|
]
|
|
|
|
// Packages kept external but NOT listed in package.json dependencies.
|
|
// These are dynamically imported at runtime — they're optional and resolved
|
|
// from transitive deps or installed by users who need that provider/protocol.
|
|
export const OPTIONAL_RUNTIME_EXTERNALS: string[] = [
|
|
// Cloud provider SDKs (dynamically imported per-provider)
|
|
'@aws-sdk/client-bedrock',
|
|
'@aws-sdk/client-bedrock-runtime',
|
|
'@aws-sdk/client-sts',
|
|
'@aws-sdk/credential-providers',
|
|
'@azure/identity',
|
|
]
|
|
|
|
// Computed full lists
|
|
export const CLI_EXTERNALS: string[] = COMMON_EXTERNALS
|
|
export const SDK_EXTERNALS: string[] = [...COMMON_EXTERNALS, ...SDK_ONLY_EXTERNALS]
|
|
|
|
// Packages intentionally bundled (not external, not flagged by validation)
|
|
// These are small utilities that are fine to inline into the output bundle.
|
|
export const INTENTIONALLY_BUNDLED: string[] = [
|
|
// Anthropic provider variants (bundled, not the main SDK)
|
|
'@anthropic-ai/bedrock-sdk',
|
|
'@anthropic-ai/foundry-sdk',
|
|
'@anthropic-ai/sandbox-runtime',
|
|
'@anthropic-ai/vertex-sdk',
|
|
// CLI / TUI utilities
|
|
'@alcalzone/ansi-tokenize',
|
|
'@commander-js/extra-typings',
|
|
'bidi-js',
|
|
'chalk',
|
|
'cli-boxes',
|
|
'cli-highlight',
|
|
'commander',
|
|
'emoji-regex',
|
|
'env-paths',
|
|
'figures',
|
|
'get-east-asian-width',
|
|
'indent-string',
|
|
'strip-ansi',
|
|
'supports-hyperlinks',
|
|
'wrap-ansi',
|
|
// Data formats
|
|
'jsonc-parser',
|
|
'yaml',
|
|
'marked',
|
|
'turndown',
|
|
'xss',
|
|
// Data utilities
|
|
'ajv',
|
|
'auto-bind',
|
|
'diff',
|
|
'fflate',
|
|
'fuse.js',
|
|
'ignore',
|
|
'lodash-es',
|
|
'lru-cache',
|
|
'p-map',
|
|
'picomatch',
|
|
'proper-lockfile',
|
|
'qrcode',
|
|
'semver',
|
|
'shell-quote',
|
|
'signal-exit',
|
|
'stack-utils',
|
|
'code-excerpt',
|
|
'type-fest',
|
|
// Networking
|
|
'axios',
|
|
'cross-spawn',
|
|
'duck-duck-scrape',
|
|
'execa',
|
|
'https-proxy-agent',
|
|
'tree-kill',
|
|
'undici',
|
|
'ws',
|
|
// React ecosystem (react/react-reconciler are SDK_ONLY_EXTERNALS, bundled in CLI)
|
|
'react',
|
|
'react-compiler-runtime',
|
|
'react-reconciler',
|
|
'usehooks-ts',
|
|
// Anthropic SDK (external in SDK bundle, bundled in CLI)
|
|
'@anthropic-ai/sdk',
|
|
// MCP SDK (external in SDK bundle, bundled in CLI)
|
|
'@modelcontextprotocol/sdk',
|
|
// Schema validation
|
|
'zod',
|
|
// gRPC (bundled into CLI, not external)
|
|
'@grpc/grpc-js',
|
|
'@grpc/proto-loader',
|
|
// Web scraping
|
|
'@mendable/firecrawl-js',
|
|
// Language server protocol
|
|
'vscode-languageserver-protocol',
|
|
// File watching
|
|
'chokidar',
|
|
]
|