{ "$schema": "https://biomejs.dev/schemas/2.5.14/schema.json", "formatter": { "enabled": true, "indentStyle": "space", "indentWidth": 2, "lineWidth": 100 }, "linter": { "enabled": true, "rules": { "preset": "recommended", "complexity": { "noExcessiveCognitiveComplexity": { "level": "error", "options": { "maxAllowedComplexity": 15 } } }, "style": { "noNonNullAssertion": "off" } } }, "javascript": { "formatter": { "quoteStyle": "double", "trailingCommas": "all", "semicolons": "always" } }, "css": { "parser": { "tailwindDirectives": true }, "formatter": { "enabled": false }, "linter": { "enabled": false } }, "files": { "includes": [ "src/**", "web/src/**", "web/test/**", "instrument/**", "scripts/**", "test/**/*.ts", "test/**/*.tsx", "!**/dist/**", "!web/src/_generated/**", "!web/src/assets/**" ] }, "overrides": [ { "includes": ["scripts/**", "src/**", "web/src/**", "test/**", "web/test/**"], "plugins": ["./biome-plugins/double-cast.grit"] }, { "includes": [ "scripts/**", "src/**", "web/src/**", "web/test/**", "test/**" ], "plugins": ["./biome-plugins/never-cast.grit"] }, { "includes": ["src/**/*.ts", "!src/api/app.ts"], "plugins": ["./biome-plugins/router-use.grit"] }, { "includes": ["src/**/*.ts"], "linter": { "rules": { "style": { "noRestrictedImports": { "level": "error", "options": { "patterns": [ { "group": ["@sentry/**"], "message": "The kernel stays vendor-neutral OpenTelemetry. A Sentry SDK belongs in web/." }, { "group": ["nimblebrain-agent", "nimblebrain-agent/**"], "message": "src/ never imports nimblebrain-agent: it is a test-only dev dependency, reached as an ACP peer from test/helpers/acp/ (ADR-0056, src/execution/AGENTS.md)." } ] } } } } } }, { "includes": [ "src/runtime/**/*.ts", "!src/runtime/runtime.ts", "!src/runtime/workspace-runtime.ts" ], "linter": { "rules": { "style": { "noRestrictedImports": { "level": "error", "options": { "patterns": [ { "group": ["@sentry/**"], "message": "The kernel stays vendor-neutral OpenTelemetry. A Sentry SDK belongs in web/." }, { "group": ["nimblebrain-agent", "nimblebrain-agent/**"], "message": "src/ never imports nimblebrain-agent: it is a test-only dev dependency, reached as an ACP peer from test/helpers/acp/ (ADR-0056, src/execution/AGENTS.md)." }, { "group": [ "{../,../../,../../../}tools/**", "{../,../../,../../../}platform/**" ], "message": "runtime/ must not import tools/ or platform/; only runtime.ts and workspace-runtime.ts compose them (AGENTS.md, Layering)." } ] } } } } } }, { "includes": ["src/config/**/*.ts"], "linter": { "rules": { "style": { "noRestrictedImports": { "level": "error", "options": { "patterns": [ { "group": ["@sentry/**"], "message": "The kernel stays vendor-neutral OpenTelemetry. A Sentry SDK belongs in web/." }, { "group": ["nimblebrain-agent", "nimblebrain-agent/**"], "message": "src/ never imports nimblebrain-agent: it is a test-only dev dependency, reached as an ACP peer from test/helpers/acp/ (ADR-0056, src/execution/AGENTS.md)." }, { "group": [ "{../,../../,../../../}runtime/**", "{../,../../,../../../}tools/**", "{../,../../,../../../}platform/**" ], "message": "config/ must not import runtime/, tools/, or platform/ (AGENTS.md, Layering)." } ] } } } } } }, { "includes": ["src/engine/**/*.ts"], "linter": { "rules": { "style": { "noRestrictedImports": { "level": "error", "options": { "patterns": [ { "group": ["@sentry/**"], "message": "The kernel stays vendor-neutral OpenTelemetry. A Sentry SDK belongs in web/." }, { "group": ["nimblebrain-agent", "nimblebrain-agent/**"], "message": "src/ never imports nimblebrain-agent: it is a test-only dev dependency, reached as an ACP peer from test/helpers/acp/ (ADR-0056, src/execution/AGENTS.md)." }, { "group": ["{../,../../,../../../}runtime/**"], "message": "engine/ must not import runtime/; put a helper both need in util/ (AGENTS.md, Layering)." } ] } } } } } }, { "includes": ["src/execution/**/*.ts"], "plugins": ["./biome-plugins/no-agent-process.grit"], "linter": { "rules": { "style": { "noRestrictedImports": { "level": "error", "options": { "patterns": [ { "group": ["@sentry/**"], "message": "The kernel stays vendor-neutral OpenTelemetry. A Sentry SDK belongs in web/." }, { "group": ["nimblebrain-agent", "nimblebrain-agent/**"], "message": "src/ never imports nimblebrain-agent: it is a test-only dev dependency, reached as an ACP peer from test/helpers/acp/ (ADR-0056, src/execution/AGENTS.md)." }, { "group": ["node:child_process", "child_process"], "message": "An agent runtime never spawns a process (ADR-0056, src/execution/AGENTS.md)." }, { "group": [ "{../,../../,../../../}runtime/**", "{../,../../,../../../}tools/**", "{../,../../,../../../}platform/**" ], "message": "execution/ must not import runtime/, tools/, or platform/: a runtime reaches the platform only through the RunIO the door hands it (src/execution/AGENTS.md)." } ] } } } } } }, { "includes": [ "src/**/*.ts", "!src/observability/log.ts", "!src/adapters/console-events.ts", "!src/adapters/debug-events.ts", "!src/model/sync-models.ts", "!src/model/sync-nebius.ts" ], "linter": { "rules": { "suspicious": { "noConsole": "error" } } } }, { "includes": ["scripts/**", "src/**"], "plugins": [ "./biome-plugins/inline-type-import.grit", "./biome-plugins/containment-tag.grit", "./biome-plugins/control-byte.grit" ] }, { "includes": ["test/**", "web/test/**"], "linter": { "rules": { "complexity": { "noExcessiveCognitiveComplexity": "off" }, "suspicious": { "noTemplateCurlyInString": "off" } } } } ] }