mirror of
https://github.com/murashit/codex-panel.git
synced 2026-07-22 06:57:10 +00:00
164 lines
4.5 KiB
Text
164 lines
4.5 KiB
Text
{
|
|
"$schema": "https://biomejs.dev/schemas/2.5.1/schema.json",
|
|
"vcs": {
|
|
"enabled": true,
|
|
"clientKind": "git",
|
|
"useIgnoreFile": true
|
|
},
|
|
"plugins": [
|
|
// App-server protocol and generated binding boundaries.
|
|
{
|
|
"path": "./scripts/lint/no-app-server-projection-rpcs.grit",
|
|
"includes": ["**/src/features/chat/application/**/*.ts", "**/src/features/chat/application/**/*.tsx"]
|
|
},
|
|
{
|
|
"path": "./scripts/lint/no-app-server-protocol-boundary-imports.grit",
|
|
"includes": ["**/src/**/*.ts", "**/src/**/*.tsx", "!**/src/app-server/**/*.ts", "!**/src/app-server/**/*.tsx"]
|
|
},
|
|
{
|
|
"path": "./scripts/lint/no-generated-app-server-boundary-imports.grit",
|
|
"includes": [
|
|
"**/src/**/*.ts",
|
|
"**/src/**/*.tsx",
|
|
"!**/src/app-server/connection/**",
|
|
"!**/src/app-server/protocol/turn.ts",
|
|
"!**/src/app-server/protocol/server-requests.ts"
|
|
]
|
|
},
|
|
|
|
// Shared source layering boundaries.
|
|
{
|
|
"path": "./scripts/lint/no-generated-app-server-thread-alias-imports.grit",
|
|
"includes": ["**/src/app-server/connection/**/*.ts", "**/src/app-server/connection/**/*.tsx"]
|
|
},
|
|
{
|
|
"path": "./scripts/lint/no-generated-app-server-turn-protocol-imports.grit",
|
|
"includes": ["**/src/app-server/protocol/turn.ts"]
|
|
},
|
|
{
|
|
"path": "./scripts/lint/no-generated-app-server-server-request-imports.grit",
|
|
"includes": ["**/src/app-server/protocol/server-requests.ts"]
|
|
},
|
|
{
|
|
"path": "./scripts/lint/no-lower-level-boundary-imports.grit",
|
|
"includes": [
|
|
"**/src/app-server/**/*.ts",
|
|
"**/src/app-server/**/*.tsx",
|
|
"**/src/domain/**/*.ts",
|
|
"**/src/domain/**/*.tsx",
|
|
"**/src/shared/**/*.ts",
|
|
"**/src/shared/**/*.tsx"
|
|
]
|
|
},
|
|
|
|
// Chat feature architecture.
|
|
{
|
|
"path": "./scripts/lint/no-chat-domain-outer-layer-imports.grit",
|
|
"includes": ["**/src/features/chat/domain/**/*.ts", "**/src/features/chat/domain/**/*.tsx"]
|
|
},
|
|
{
|
|
"path": "./scripts/lint/no-chat-signal-imports.grit",
|
|
"includes": ["**/src/**/*.ts", "**/src/**/*.tsx"]
|
|
},
|
|
{
|
|
"path": "./scripts/lint/no-pure-chat-state-side-effects.grit",
|
|
"includes": ["**/src/features/chat/application/state/**/*.ts", "**/src/features/chat/application/state/**/*.tsx"]
|
|
},
|
|
|
|
// UI and DOM source boundaries.
|
|
{
|
|
"path": "./scripts/lint/no-implicit-dom-bridges.grit",
|
|
"includes": ["**/src/**/*.ts", "**/src/**/*.tsx"]
|
|
},
|
|
{
|
|
"path": "./scripts/lint/no-ui-root-imports.grit",
|
|
"includes": ["**/src/**/*.ts", "**/src/**/*.tsx"]
|
|
},
|
|
{
|
|
"path": "./scripts/lint/no-uncontrolled-preact-form-state.grit",
|
|
"includes": ["**/src/**/*.tsx"]
|
|
},
|
|
|
|
// Project-wide source shape.
|
|
{
|
|
"path": "./scripts/lint/no-handwritten-reexports.grit",
|
|
"includes": ["**/*.ts", "**/*.tsx", "**/*.mjs"]
|
|
},
|
|
{
|
|
"path": "./scripts/lint/no-self-referential-initializer-callback.grit",
|
|
"includes": ["**/*.ts", "**/*.tsx", "**/*.mjs"]
|
|
},
|
|
{
|
|
"path": "./scripts/lint/no-unsafe-iterator-value.grit",
|
|
"includes": ["**/*.ts", "**/*.tsx", "**/*.mjs"]
|
|
},
|
|
|
|
// CSS source policy.
|
|
{
|
|
"path": "./scripts/lint/no-restricted-css-policy.grit",
|
|
"includes": ["**/src/styles/**/*.css"]
|
|
}
|
|
],
|
|
"files": {
|
|
"includes": [
|
|
"*.config.mjs",
|
|
"*.config.ts",
|
|
"*.css",
|
|
"*.json",
|
|
"*.jsonc",
|
|
"*.mjs",
|
|
"scripts/**/*.{json,jsonc}",
|
|
"scripts/**/*.grit",
|
|
"scripts/**/*.mjs",
|
|
"src/**/*.{css,ts,tsx}",
|
|
"tests/**/*.{mjs,ts,tsx}",
|
|
"!src/generated"
|
|
]
|
|
},
|
|
"formatter": {
|
|
"indentStyle": "space",
|
|
"lineWidth": 140
|
|
},
|
|
"assist": {
|
|
"actions": {
|
|
"source": {
|
|
"noDuplicateClasses": "on",
|
|
"organizeImports": "on"
|
|
}
|
|
}
|
|
},
|
|
"linter": {
|
|
"domains": {
|
|
"react": "recommended",
|
|
"test": "recommended"
|
|
},
|
|
"rules": {
|
|
"preset": "recommended",
|
|
"complexity": {
|
|
"useLiteralKeys": "off"
|
|
},
|
|
"correctness": {
|
|
"useExhaustiveDependencies": {
|
|
"level": "error",
|
|
"options": {
|
|
"reportUnnecessaryDependencies": false
|
|
}
|
|
}
|
|
},
|
|
"nursery": {
|
|
"noExcessiveSelectorClasses": {
|
|
"level": "error",
|
|
"options": {
|
|
"maxClasses": 4
|
|
}
|
|
}
|
|
},
|
|
"style": {
|
|
"noCommonJs": "error"
|
|
},
|
|
"suspicious": {
|
|
"noImportCycles": "error"
|
|
}
|
|
}
|
|
}
|
|
}
|