summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorDax Raad <[email protected]>2025-07-24 17:37:57 -0400
committerDax Raad <[email protected]>2025-07-24 17:38:11 -0400
commitaa2a5057ac8b5b0c3b9120b064f738424921d6d6 (patch)
tree340660f53ddae93c0d18c297ae747f75d9a7edf4
parent284c01018ed73a7509b6226399e51c2f6f54a58d (diff)
downloadopencode-aa2a5057ac8b5b0c3b9120b064f738424921d6d6.tar.gz
opencode-aa2a5057ac8b5b0c3b9120b064f738424921d6d6.zip
wip: fix type errors
-rw-r--r--packages/opencode/src/cli/cmd/debug/snapshot.ts1
-rw-r--r--packages/opencode/src/file/ripgrep.ts94
-rw-r--r--packages/opencode/src/snapshot/index.ts2
3 files changed, 39 insertions, 58 deletions
diff --git a/packages/opencode/src/cli/cmd/debug/snapshot.ts b/packages/opencode/src/cli/cmd/debug/snapshot.ts
index a04918dc4..72bbd61d7 100644
--- a/packages/opencode/src/cli/cmd/debug/snapshot.ts
+++ b/packages/opencode/src/cli/cmd/debug/snapshot.ts
@@ -1,4 +1,3 @@
-import { Session } from "../../../session"
import { Snapshot } from "../../../snapshot"
import { bootstrap } from "../../bootstrap"
import { cmd } from "../cmd"
diff --git a/packages/opencode/src/file/ripgrep.ts b/packages/opencode/src/file/ripgrep.ts
index a802b887d..d8d5dd531 100644
--- a/packages/opencode/src/file/ripgrep.ts
+++ b/packages/opencode/src/file/ripgrep.ts
@@ -123,15 +123,11 @@ export namespace Ripgrep {
const state = lazy(async () => {
let filepath = Bun.which("rg")
if (filepath) return { filepath }
- filepath = path.join(
- Global.Path.bin,
- "rg" + (process.platform === "win32" ? ".exe" : ""),
- )
+ filepath = path.join(Global.Path.bin, "rg" + (process.platform === "win32" ? ".exe" : ""))
const file = Bun.file(filepath)
if (!(await file.exists())) {
- const platformKey =
- `${process.arch}-${process.platform}` as keyof typeof PLATFORM
+ const platformKey = `${process.arch}-${process.platform}` as keyof typeof PLATFORM
const config = PLATFORM[platformKey]
if (!config) throw new UnsupportedPlatformError({ platform: platformKey })
@@ -140,8 +136,7 @@ export namespace Ripgrep {
const url = `https://github.com/BurntSushi/ripgrep/releases/download/${version}/${filename}`
const response = await fetch(url)
- if (!response.ok)
- throw new DownloadFailedError({ url, status: response.status })
+ if (!response.ok) throw new DownloadFailedError({ url, status: response.status })
const buffer = await response.arrayBuffer()
const archivePath = path.join(Global.Path.bin, filename)
@@ -166,33 +161,33 @@ export namespace Ripgrep {
}
if (config.extension === "zip") {
if (config.extension === "zip") {
- const zipFileReader = new ZipReader(new BlobReader(new Blob([await Bun.file(archivePath).arrayBuffer()])));
- const entries = await zipFileReader.getEntries();
- let rgEntry: any;
- for (const entry of entries) {
- if (entry.filename.endsWith("rg.exe")) {
- rgEntry = entry;
- break;
- }
+ const zipFileReader = new ZipReader(new BlobReader(new Blob([await Bun.file(archivePath).arrayBuffer()])))
+ const entries = await zipFileReader.getEntries()
+ let rgEntry: any
+ for (const entry of entries) {
+ if (entry.filename.endsWith("rg.exe")) {
+ rgEntry = entry
+ break
+ }
}
- if (!rgEntry) {
- throw new ExtractionFailedError({
- filepath: archivePath,
- stderr: "rg.exe not found in zip archive",
- });
- }
+ if (!rgEntry) {
+ throw new ExtractionFailedError({
+ filepath: archivePath,
+ stderr: "rg.exe not found in zip archive",
+ })
+ }
- const rgBlob = await rgEntry.getData(new BlobWriter());
- if (!rgBlob) {
- throw new ExtractionFailedError({
- filepath: archivePath,
- stderr: "Failed to extract rg.exe from zip archive",
- });
+ const rgBlob = await rgEntry.getData(new BlobWriter())
+ if (!rgBlob) {
+ throw new ExtractionFailedError({
+ filepath: archivePath,
+ stderr: "Failed to extract rg.exe from zip archive",
+ })
+ }
+ await Bun.write(filepath, await rgBlob.arrayBuffer())
+ await zipFileReader.close()
}
- await Bun.write(filepath, await rgBlob.arrayBuffer());
- await zipFileReader.close();
- }
}
await fs.unlink(archivePath)
if (!platformKey.endsWith("-win32")) await fs.chmod(filepath, 0o755)
@@ -208,17 +203,16 @@ export namespace Ripgrep {
return filepath
}
- export async function files(input: {
- cwd: string
- query?: string
- glob?: string
- limit?: number
- }) {
- const commands = [
- `${await filepath()} --files --hidden --glob='!.git/*' ${input.glob ? `--glob='${input.glob}'` : ``}`,
- ]
- if (input.query)
- commands.push(`${await Fzf.filepath()} --filter=${input.query}`)
+ export async function files(input: { cwd: string; query?: string; glob?: string[]; limit?: number }) {
+ const commands = [`${$.escape(await filepath())} --files --follow --hidden --glob='!.git/*'`]
+
+ if (input.glob) {
+ for (const g of input.glob) {
+ commands[0] += ` --glob='${g}'`
+ }
+ }
+
+ if (input.query) commands.push(`${await Fzf.filepath()} --filter=${input.query}`)
if (input.limit) commands.push(`head -n ${input.limit}`)
const joined = commands.join(" | ")
const result = await $`${{ raw: joined }}`.cwd(input.cwd).nothrow().text()
@@ -325,18 +319,8 @@ export namespace Ripgrep {
return lines.join("\n")
}
- export async function search(input: {
- cwd: string
- pattern: string
- glob?: string[]
- limit?: number
- }) {
- const args = [
- `${await filepath()}`,
- "--json",
- "--hidden",
- "--glob='!.git/*'",
- ]
+ export async function search(input: { cwd: string; pattern: string; glob?: string[]; limit?: number }) {
+ const args = [`${await filepath()}`, "--json", "--hidden", "--glob='!.git/*'"]
if (input.glob) {
for (const g of input.glob) {
@@ -365,4 +349,4 @@ export namespace Ripgrep {
.filter((r) => r.type === "match")
.map((r) => r.data)
}
-} \ No newline at end of file
+}
diff --git a/packages/opencode/src/snapshot/index.ts b/packages/opencode/src/snapshot/index.ts
index b7b6c1226..cd1972aaf 100644
--- a/packages/opencode/src/snapshot/index.ts
+++ b/packages/opencode/src/snapshot/index.ts
@@ -2,10 +2,8 @@ import { App } from "../app/app"
import { $ } from "bun"
import path from "path"
import fs from "fs/promises"
-import { Ripgrep } from "../file/ripgrep"
import { Log } from "../util/log"
import { Global } from "../global"
-import { Installation } from "../installation"
import { z } from "zod"
export namespace Snapshot {