pi-mono/tsconfig.json
Claude 8d95fd138b
feat(ai): declare model catalog generation as providers and rules
Replace the single 3300-line generate-models.ts with declarative provider
definitions and ordered rule packs under scripts/model-generation/.

Each provider is a defineProvider() call: an upstream source (usually the
generic modelsDev() mapper), static models upstream lacks, and rules scoped
to that provider. Cross-provider facts live in rule packs applied in a fixed
order. Every rule() carries a why, matches models with plain data, and
patches them with typed set/replace/apply semantics.

Generated model data is unchanged: 1443 models across 41 providers compare
equal against a snapshot of the same upstream responses, apart from a now
stable key order. Committed models.generated.ts and provider shards are
byte-identical.

Also:
- Bring packages/ai/scripts under tsgo and biome; the old generator had 20+
  type errors that nothing checked.
- Add --upstream-snapshot <dir> to record and replay upstream catalogs and
  --explain <provider>:<model> to list the rules applied to a model.
- Report rules that matched no model so stale corrections get removed.
- Export parseRadiusGatewayConfig so the generator can replay Radius too.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018ExCU9zaZnN8vB5fKpTAjP
2026-09-20 16:03:22 +00:00

59 lines
3.2 KiB
JSON

{
"extends": "./tsconfig.base.json",
"compilerOptions": {
"noEmit": true,
"module": "NodeNext",
"moduleResolution": "NodeNext",
"paths": {
"*": ["./*"],
"@earendil-works/chord": ["./packages/chord/src/index.ts"],
"@earendil-works/chord/bundler": ["./packages/chord/src/bundler.ts"],
"@earendil-works/chord/context": ["./packages/chord/src/context/index.ts"],
"@earendil-works/chord/delta": ["./packages/chord/src/delta/index.ts"],
"@earendil-works/chord/node": ["./packages/chord/src/node.ts"],
"@earendil-works/pi-telemetry": ["./packages/telemetry/src/index.ts"],
"@earendil-works/pi-telemetry/testing": ["./packages/telemetry/src/testing/index.ts"],
"@earendil-works/pi-ai": ["./packages/ai/src/index.ts"],
"@earendil-works/pi-ai/oauth": ["./packages/ai/src/oauth.ts"],
"@earendil-works/pi-ai/*": ["./packages/ai/src/*.ts", "./packages/ai/src/providers/*.ts"],
"@earendil-works/pi-ai/dist/*": ["./packages/ai/src/*"],
"@earendil-works/pi-durable": ["./packages/durable/src/index.ts"],
"@earendil-works/pi-durable/*": ["./packages/durable/src/*"],
"@earendil-works/pi-agent-core": ["./packages/agent/src/index.ts"],
"@earendil-works/pi-agent-core/harness/session/testing": [
"./packages/agent/src/harness/session/testing/index.ts"
],
"@earendil-works/pi-agent-core/experimental/pico3": [
"./packages/agent/src/harness/pico3/index.ts"
],
"@earendil-works/pi-agent-core/node": ["./packages/agent/src/node.ts"],
"@earendil-works/pi-agent-core/*": [
"./packages/agent/src/*.ts",
"./packages/agent/src/*/index.ts",
"./packages/agent/src/*"
],
"@earendil-works/pi-session-backend-sqlite-node": ["./packages/session-backends/sqlite-node/src/index.ts"],
"@earendil-works/pi-coding-agent": ["./packages/coding-agent/src/index.ts"],
"@earendil-works/pi-coding-agent/experimental/plugin": [
"./packages/coding-agent/src/experimental/plugin.ts"
],
"@earendil-works/pi-coding-agent/hooks": ["./packages/coding-agent/src/core/hooks/index.ts"],
"@earendil-works/pi-coding-agent/*": ["./packages/coding-agent/src/*"],
"@earendil-works/pi-protocol": ["./packages/protocol/src/index.ts"],
"@earendil-works/pi-protocol/*": ["./packages/protocol/src/*"],
"@earendil-works/pi-client": ["./packages/client/src/index.ts"],
"@earendil-works/pi-client/unix": ["./packages/client/src/unix.ts"],
"@earendil-works/pi-client/*": ["./packages/client/src/*"],
"@earendil-works/pi-server": ["./packages/server/src/index.ts"],
"@earendil-works/pi-server/unix": ["./packages/server/src/transports/unix/index.ts"],
"@earendil-works/pi-server/*": ["./packages/server/src/*"],
"typebox": ["./node_modules/typebox"],
"@earendil-works/pi-tui": ["./packages/tui/src/index.ts"],
"@earendil-works/pi-tui/*": ["./packages/tui/src/*"],
"@earendil-works/pi-agent-old": ["./packages/agent-old/src/index.ts"],
"@earendil-works/pi-agent-old/*": ["./packages/agent-old/src/*"]
}
},
"include": ["packages/*/src/**/*", "packages/*/test/**/*", "packages/ai/scripts/**/*", "packages/session-backends/*/src/**/*", "packages/session-backends/*/test/**/*", "packages/coding-agent/examples/**/*"],
"exclude": ["**/dist/**", "packages/coding-agent/examples/extensions/gondolin/**"]
}