Ctrl K
ComunidadGuías…

biome.json

Rama main · réplica de lectura del repositorio original.

Archivo original ↗Preguntar a KiBot
{
  "$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" }
        }
      }
    }
  ]
}