Skip to main content
Version0.0.0
Purityconfig-only (no runtime code, no src/ barrel)
PurposeThree shipped tsconfig presets, base.json, react.json, node.json, that pin the TypeScript 5 strict compiler options shared across the monorepo. Consumed exclusively via the "extends" field of each package/app tsconfig.json.
Workspace depsnone
External depsnone
This is a config-only package: package.json ships exactly the three preset JSON files (no src/, no main, no exports, no types, no build step). It is private: true and never published. Every other workspace package and both apps add it as a devDependency and reference a preset by its file path in "extends". react.json and node.json both extend base.json and override only what they must, so the strict baseline stays in one place.

Presets

There is no src/index.ts barrel to enumerate. The “API” of this package is the three preset files and the compiler options they set. A consumer references one via "extends":
{
  "extends": "@clawboo/tsconfig/base.json",
  "compilerOptions": { /* per-package overrides */ }
}

base.json

The strict TS 5 baseline. Every preset (and most packages directly) extend this.
OptionValueEffect
stricttrueFull strict family (noImplicitAny, strictNullChecks, etc.).
targetES2022Emit / lib target.
moduleESNextES-module output (node preset overrides to CommonJS).
moduleResolutionbundlerBundler-style resolution (node preset overrides to node).
esModuleInteroptrueInterop for CJS default imports.
skipLibChecktrueSkip type-checking .d.ts dependencies.
forceConsistentCasingInFileNamestrueCase-sensitive import paths.
resolveJsonModuletrueimport x from './x.json'.
isolatedModulestrueEach file transpilable in isolation (required by Vite / esbuild / tsup).
declarationtrueEmit .d.ts.
declarationMaptrueEmit .d.ts.map for go-to-definition into source.
sourceMaptrueEmit .js.map.

react.json

base.json + the browser/JSX surface. Used by the two front-end packages.
OverrideValueEffect
extends./base.jsonInherits the strict baseline.
jsxreact-jsxThe automatic JSX runtime (no import React).
lib["dom", "dom.iterable", "ES2022"]Browser DOM libs alongside ES2022.

node.json

base.json + CommonJS / Node resolution. Used by the server-side packages and the CLI.
OverrideValueEffect
extends./base.jsonInherits the strict baseline.
moduleCommonJSCJS output for the Node/CLI build target.
moduleResolutionnodeClassic Node resolution.
types["node"]Pulls in @types/node ambient types.
The presets only ship compilerOptions. They set no include / exclude / outDir; each consumer’s own tsconfig.json supplies those plus any per-package overrides (e.g. a package that emits ESM keeps base.json’s module: ESNext; a tsup-built package may add its own outDir).

Used by

All 25 workspace packages and both apps add @clawboo/tsconfig as a devDependency and extend one of the three presets:
  • base.json (17 consumers), the pure / build-tool-resolved packages: agent-registry, boo-avatar, capability-registry, compaction, evals, events, executor, gateway-client, governance, obs, protocol, scheduler, and the five adapters (adapter-{claude-code,codex,hermes,native,openclaw}).
  • react.json (2 consumers), apps/web and packages/ui (the only DOM/JSX surfaces).
  • node.json (7 consumers), apps/cli, packages/config, packages/db, packages/gateway-proxy, packages/logger, packages/mcp, packages/worktrees (the server-side / Node-resolved packages).

Source

Preset files (config-only, no barrel): packages/tsconfig/base.json, packages/tsconfig/react.json, packages/tsconfig/node.json. The package.json "files" array ships exactly these three; there is no exports map or main entry.

See also