Files
openswarm/linter/config/config.json
T

135 lines
5.2 KiB
JSON

{
"enabled": {
"max-file-lines": true,
"max-folder-items": true,
"no-nested-imports": false,
"vulture": true,
"eslint": false,
"knip": false,
"endpoints": false,
"classes": false
},
"_notes": {
"no-nested-imports": "Off on purpose: this codebase uses function-level/lazy imports to break import cycles (400+ sites). Flagging them all is wrong for us.",
"eslint-knip": "Node tooling deferred to a later pass.",
"classes": "Placeholder check, not wired up. endpoints: orphaned-endpoint triage deferred."
},
"rules": {
"max-file-lines": 300,
"max-folder-items": 7,
"vulture-min-confidence": 1,
"vulture-error-threshold": 1,
"no-nested-imports": true,
"endpoint-ignore-routes": ["*/callback", "*/callback/*"]
},
"include_extensions": [".py", ".ts", ".tsx", ".js", ".jsx"],
"exclude": [
"node_modules",
".venv",
"dist",
"build",
"__pycache__",
".git",
".cursor",
".vscode",
".claude",
".pytest_cache",
".mypy_cache",
".ruff_cache",
".account-factory",
".local-stash",
".DS_Store",
"python-env",
"build-staging",
"webapp_template_cache",
"openswarm-cloud",
"uv-bin",
"data",
"public",
"openswarm_debug.egg-info"
],
"exceptions": {
"max-file-lines": [
"backend/apps/agents/agent_manager.py",
"backend/apps/agents/agents.py",
"backend/apps/agents/anthropic_proxy.py",
"backend/apps/agents/anthropic_to_openai.py",
"backend/apps/agents/browser_agent.py",
"backend/apps/agents/browser_agent_mcp_server.py",
"backend/apps/agents/browser_schema.py",
"backend/apps/agents/prompt_context.py",
"backend/apps/agents/providers/pricing.py",
"backend/apps/agents/providers/registry.py",
"backend/apps/dashboards/dashboards.py",
"backend/apps/discord_mcp_shim/server.py",
"backend/apps/mcp_registry/mcp_registry.py",
"backend/apps/nine_router/oauth.py",
"backend/apps/nine_router/process.py",
"backend/apps/nine_router/sync_custom.py",
"backend/apps/outputs/outputs.py",
"backend/apps/outputs/runtime.py",
"backend/apps/outputs/view_builder_templates.py",
"backend/apps/outputs/webapp_template/frontend/src/shared/styles/ThemeContext.tsx",
"backend/apps/service/client.py",
"backend/apps/service/service.py",
"backend/apps/settings/settings.py",
"backend/apps/skills/skills.py",
"backend/apps/subscription/router.py",
"backend/apps/tools_lib/tools_lib.py",
"backend/apps/web/web.py",
"backend/main.py",
"backend/tests/test_disconnect_resilience.py",
"backend/tests/test_outputs_runtime_cleanup.py",
"backend/tests/test_service.py",
"backend/tests/test_v2_invariants.py",
"backend/tests/test_v2_label_logic.py",
"electron/affiliateTracking.test.js",
"electron/main.js",
"frontend/src/app/Main.tsx",
"frontend/src/app/components/CommandPicker.tsx",
"frontend/src/app/components/DirectoryBrowser.tsx",
"frontend/src/app/components/DynamicIsland.tsx",
"frontend/src/app/components/GlobalSearchPalette.tsx",
"frontend/src/app/components/Layout/AppShell.tsx",
"frontend/src/app/components/Onboarding/OnboardingPanel.tsx",
"frontend/src/app/components/Onboarding/ac/AgenticCursor.tsx",
"frontend/src/app/components/Onboarding/ac/acRuntime.ts",
"frontend/src/app/components/PlanPicker.tsx",
"frontend/src/app/components/RichPromptEditor.tsx",
"frontend/src/app/components/SignInGate.tsx",
"frontend/src/app/components/useDomElementSelector.ts",
"frontend/src/app/pages/AgentChat/AgentChat.tsx",
"frontend/src/app/pages/AgentChat/ApprovalBar.tsx",
"frontend/src/app/pages/AgentChat/BrowserAgentInlineFeed.tsx",
"frontend/src/app/pages/AgentChat/MessageBubble.tsx",
"frontend/src/app/pages/AgentChat/toolLabels.ts",
"frontend/src/app/pages/Analytics/PixelChart.tsx",
"frontend/src/app/pages/Commands/Commands.tsx",
"frontend/src/app/pages/Dashboard/AgentCard.tsx",
"frontend/src/app/pages/Dashboard/BrowserAgentOverlay.tsx",
"frontend/src/app/pages/Dashboard/BrowserCard.tsx",
"frontend/src/app/pages/Dashboard/DashboardHeader.tsx",
"frontend/src/app/pages/Dashboard/DashboardToolbar.tsx",
"frontend/src/app/pages/Dashboard/DashboardViewCard.tsx",
"frontend/src/app/pages/Dashboard/NoteCard.tsx",
"frontend/src/app/pages/Dashboard/useCanvasControls.ts",
"frontend/src/app/pages/DashboardSelection/DashboardSelection.tsx",
"frontend/src/app/pages/Modes/Modes.tsx",
"frontend/src/app/pages/Skills/SkillBuilderChat.tsx",
"frontend/src/app/pages/Skills/Skills.tsx",
"frontend/src/app/pages/Views/ViewEditor.tsx",
"frontend/src/app/pages/Views/ViewPreview.tsx",
"frontend/src/app/pages/Views/useIframeElementSelector.ts",
"frontend/src/shared/browserCommandHandler.ts",
"frontend/src/shared/state/agentsSlice.ts",
"frontend/src/shared/state/dashboardLayoutSlice.ts",
"frontend/src/shared/ws/WebSocketManager.ts"
],
"max-folder-items": [],
"no-nested-imports": [],
"vulture": ["backend/tests/*"],
"endpoints": [],
"classes": []
}
}