diff --git a/biome.json b/biome.json index 48cb3a3a1..84bc5f3c4 100644 --- a/biome.json +++ b/biome.json @@ -7,7 +7,8 @@ }, "files": { "includes": [ - "src/**/*.ts" + "src/**/*.ts", + "test/**/*.ts" ] }, "linter": { diff --git a/package.json b/package.json index 205707144..ef0dacd5e 100644 --- a/package.json +++ b/package.json @@ -43,7 +43,7 @@ "start": "tsx src/index.ts", "clawdis": "tsx src/index.ts", "clawdis:rpc": "tsx src/index.ts agent --mode rpc --json", - "lint": "biome check src", + "lint": "biome check src test && oxlint --type-aware src test --ignore-pattern src/canvas-host/a2ui/a2ui.bundle.js", "lint:swift": "swiftlint lint --config .swiftlint.yml && (cd apps/ios && swiftlint lint --config .swiftlint.yml)", "lint:fix": "biome check --write --unsafe src && biome format --write src", "format": "biome format src", @@ -115,6 +115,8 @@ "lucide": "^0.562.0", "markdown-it": "^14.1.0", "ollama": "^0.6.3", + "oxlint": "^1.35.0", + "oxlint-tsgolint": "^0.10.0", "quicktype-core": "^23.2.6", "rolldown": "1.0.0-beta.55", "signal-utils": "^0.21.1", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 7e8aa3f59..5393138b2 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -144,6 +144,12 @@ importers: ollama: specifier: ^0.6.3 version: 0.6.3 + oxlint: + specifier: ^1.35.0 + version: 1.35.0(oxlint-tsgolint@0.10.0) + oxlint-tsgolint: + specifier: ^0.10.0 + version: 0.10.0 quicktype-core: specifier: ^23.2.6 version: 23.2.6 @@ -697,6 +703,76 @@ packages: '@oxc-project/types@0.103.0': resolution: {integrity: sha512-bkiYX5kaXWwUessFRSoXFkGIQTmc6dLGdxuRTrC+h8PSnIdZyuXHHlLAeTmOue5Br/a0/a7dHH0Gca6eXn9MKg==} + '@oxlint-tsgolint/darwin-arm64@0.10.0': + resolution: {integrity: sha512-mhBF/pjey0UdLL1ocU46Fqta+uJuRfqrLfDpcViRg17BtDiUNd8JY9iN2FOoS2HGSCAgCUjZ0AZkwkHwFs/VTw==} + cpu: [arm64] + os: [darwin] + + '@oxlint-tsgolint/darwin-x64@0.10.0': + resolution: {integrity: sha512-roLi34mw/i1z+NS7luboix55SXyhVv38dNUTcRDkk+0lNPzI9ngrM+1y1N2oBSUmz5o9OZGnfJJ7BSGCw/fFEQ==} + cpu: [x64] + os: [darwin] + + '@oxlint-tsgolint/linux-arm64@0.10.0': + resolution: {integrity: sha512-HL9NThPH1V2F6l9XhwNmhQZUknN4m4yQYEvQFFGfZTYN6cvEEBIiqfF4KvBUg8c0xadMbQlW+Ug7/ybA9Nn+CA==} + cpu: [arm64] + os: [linux] + + '@oxlint-tsgolint/linux-x64@0.10.0': + resolution: {integrity: sha512-Tw8QNq8ab+4+qE5krvJyMA66v6XE3GoiISRD5WmJ7YOxUnu//jSw/bBm7OYf/TNEZyeV0BTR7zXzhT5R+VFWlQ==} + cpu: [x64] + os: [linux] + + '@oxlint-tsgolint/win32-arm64@0.10.0': + resolution: {integrity: sha512-LTogmTRwpwQqVaH1Ama8Wd5/VVZWBSF8v5qTbeT628+1F5Kt1V5eHBvyFh4oN18UCZlgqrh7DqkDhsieXUaC8Q==} + cpu: [arm64] + os: [win32] + + '@oxlint-tsgolint/win32-x64@0.10.0': + resolution: {integrity: sha512-ygqxx8EmNWy9/wCQS5uXq9k/o2EyYNwNxY1ZHNzlmZC/kV06Aemx5OBDafefawBNqH7xTZPfccUrjdiy+QlTrw==} + cpu: [x64] + os: [win32] + + '@oxlint/darwin-arm64@1.35.0': + resolution: {integrity: sha512-ieiYVHkNZPo77Hgrxav595wGS4rRNKuDNrljf+4xhwpJsddrxMpM64IQUf2IvR3MhK4FxdGzhhB6OVmGVHY5/w==} + cpu: [arm64] + os: [darwin] + + '@oxlint/darwin-x64@1.35.0': + resolution: {integrity: sha512-1jNHu3j66X5jKySvgtE+jGtjx4ye+xioAucVTi2IuROZO6keK2YG74pnD+9FT+DpWZAtWRZGoW0r0x6aN9sEEg==} + cpu: [x64] + os: [darwin] + + '@oxlint/linux-arm64-gnu@1.35.0': + resolution: {integrity: sha512-T1lc0UaYbTxZyqVpLfC7eipbauNG8pBpkaZEW4JGz8Y68rxTH7d9s+CF0zxUxNr5RCtcmT669RLVjQT7VrKVLg==} + cpu: [arm64] + os: [linux] + + '@oxlint/linux-arm64-musl@1.35.0': + resolution: {integrity: sha512-7Wv5Pke9kwWKFycUziSHsmi3EM0389TLzraB0KE/MArrKxx30ycwfJ5PYoMj9ERoW+Ybs0txdaOF/xJy/XyYkg==} + cpu: [arm64] + os: [linux] + + '@oxlint/linux-x64-gnu@1.35.0': + resolution: {integrity: sha512-HDMPOzyVVy+rQl3H7UOq8oGHt7m1yaiWCanlhAu4jciK8dvXeO9OG/OQd74lD/h05IcJh93pCLEJ3wWOG8hTiQ==} + cpu: [x64] + os: [linux] + + '@oxlint/linux-x64-musl@1.35.0': + resolution: {integrity: sha512-kAPBBsUOM3HQQ6n3nnZauvFR9EoXqCSoj4O3OSXXarzsRTiItNrHabVUwxeswZEc+xMzQNR0FHEWg/d4QAAWLw==} + cpu: [x64] + os: [linux] + + '@oxlint/win32-arm64@1.35.0': + resolution: {integrity: sha512-qrpBkkOASS0WT8ra9xmBRXOEliN6D/MV9JhI/68lFHrtLhfFuRwg4AjzjxrCWrQCnQ0WkvAVpJzu73F4ICLYZw==} + cpu: [arm64] + os: [win32] + + '@oxlint/win32-x64@1.35.0': + resolution: {integrity: sha512-yPFcj6umrhusnG/kMS5wh96vblsqZ0kArQJS+7kEOSJDrH+DsFWaDCsSRF8U6gmSmZJ26KVMU3C3TMpqDN4M1g==} + cpu: [x64] + os: [win32] + '@pinojs/redact@0.4.0': resolution: {integrity: sha512-k2ENnmBugE/rzQfEcdWHcCY+/FM3VLzH9cYEsbdsoqrvzAKRhUZeRNhAZvB8OitQJ1TBed3yqWtdjzS6wJKBwg==} @@ -1995,6 +2071,20 @@ packages: opus-decoder@0.7.11: resolution: {integrity: sha512-+e+Jz3vGQLxRTBHs8YJQPRPc1Tr+/aC6coV/DlZylriA29BdHQAYXhvNRKtjftof17OFng0+P4wsFIqQu3a48A==} + oxlint-tsgolint@0.10.0: + resolution: {integrity: sha512-LDDSIu5J/4D4gFUuQQIEQpAC6maNEbMg4nC8JL/+Pe0cUDR86dtVZ09E2x5MwCh8f9yfktoaxt5x6UIVyzrajg==} + hasBin: true + + oxlint@1.35.0: + resolution: {integrity: sha512-QDX1aUgaiqznkGfTM2qHwva2wtKqhVoqPSVXrnPz+yLUhlNadikD3QRuRtppHl7WGuy3wG6nKAuR8lash3aWSg==} + engines: {node: ^20.19.0 || >=22.12.0} + hasBin: true + peerDependencies: + oxlint-tsgolint: '>=0.10.0' + peerDependenciesMeta: + oxlint-tsgolint: + optional: true + p-queue@9.0.1: resolution: {integrity: sha512-RhBdVhSwJb7Ocn3e8ULk4NMwBEuOxe+1zcgphUy9c2e5aR/xbEsdVXxHJ3lynw6Qiqu7OINEyHlZkiblEpaq7w==} engines: {node: '>=20'} @@ -3076,6 +3166,48 @@ snapshots: '@oxc-project/types@0.103.0': {} + '@oxlint-tsgolint/darwin-arm64@0.10.0': + optional: true + + '@oxlint-tsgolint/darwin-x64@0.10.0': + optional: true + + '@oxlint-tsgolint/linux-arm64@0.10.0': + optional: true + + '@oxlint-tsgolint/linux-x64@0.10.0': + optional: true + + '@oxlint-tsgolint/win32-arm64@0.10.0': + optional: true + + '@oxlint-tsgolint/win32-x64@0.10.0': + optional: true + + '@oxlint/darwin-arm64@1.35.0': + optional: true + + '@oxlint/darwin-x64@1.35.0': + optional: true + + '@oxlint/linux-arm64-gnu@1.35.0': + optional: true + + '@oxlint/linux-arm64-musl@1.35.0': + optional: true + + '@oxlint/linux-x64-gnu@1.35.0': + optional: true + + '@oxlint/linux-x64-musl@1.35.0': + optional: true + + '@oxlint/win32-arm64@1.35.0': + optional: true + + '@oxlint/win32-x64@1.35.0': + optional: true + '@pinojs/redact@0.4.0': {} '@pkgjs/parseargs@0.11.0': @@ -4351,6 +4483,27 @@ snapshots: '@wasm-audio-decoders/common': 9.0.7 optional: true + oxlint-tsgolint@0.10.0: + optionalDependencies: + '@oxlint-tsgolint/darwin-arm64': 0.10.0 + '@oxlint-tsgolint/darwin-x64': 0.10.0 + '@oxlint-tsgolint/linux-arm64': 0.10.0 + '@oxlint-tsgolint/linux-x64': 0.10.0 + '@oxlint-tsgolint/win32-arm64': 0.10.0 + '@oxlint-tsgolint/win32-x64': 0.10.0 + + oxlint@1.35.0(oxlint-tsgolint@0.10.0): + optionalDependencies: + '@oxlint/darwin-arm64': 1.35.0 + '@oxlint/darwin-x64': 1.35.0 + '@oxlint/linux-arm64-gnu': 1.35.0 + '@oxlint/linux-arm64-musl': 1.35.0 + '@oxlint/linux-x64-gnu': 1.35.0 + '@oxlint/linux-x64-musl': 1.35.0 + '@oxlint/win32-arm64': 1.35.0 + '@oxlint/win32-x64': 1.35.0 + oxlint-tsgolint: 0.10.0 + p-queue@9.0.1: dependencies: eventemitter3: 5.0.1