Browse Source

remove call to npm causing noticible delay when starting chat

Dax Raad 8 months ago
parent
commit
ae4d089c06

+ 0 - 26
packages/opencode/src/provider/models.ts

@@ -64,30 +64,4 @@ export namespace ModelsDev {
       throw new Error(`Failed to fetch models.dev: ${result.statusText}`)
       throw new Error(`Failed to fetch models.dev: ${result.statusText}`)
     await Bun.write(file, result)
     await Bun.write(file, result)
   }
   }
-
-  const aisdk = lazy(async () => {
-    log.info("fetching ai-sdk")
-    const response = await fetch(
-      "https://registry.npmjs.org/-/v1/search?text=scope:@ai-sdk",
-    )
-    if (!response.ok)
-      throw new Error(
-        `Failed to fetch ai-sdk information: ${response.statusText}`,
-      )
-    const result = await response.json()
-    log.info("found ai-sdk", result.objects.length)
-    return result.objects
-      .filter((obj: any) => obj.package.name.startsWith("@ai-sdk/"))
-      .reduce((acc: any, obj: any) => {
-        acc[obj.package.name] = obj
-        return acc
-      }, {})
-  })
-
-  export async function pkg(providerID: string): Promise<[string, string]> {
-    const packages = await aisdk()
-    const match = packages[`@ai-sdk/${providerID}`]
-    if (match) return [match.package.name, "latest"]
-    return [providerID, "latest"]
-  }
 }
 }

+ 1 - 3
packages/opencode/src/provider/provider.ts

@@ -43,9 +43,7 @@ export namespace Provider {
       for (const model of Object.values(provider.models)) {
       for (const model of Object.values(provider.models)) {
         model.cost = {
         model.cost = {
           input: 0,
           input: 0,
-          inputCached: 0,
           output: 0,
           output: 0,
-          outputCached: 0,
         }
         }
       }
       }
       return {
       return {
@@ -234,7 +232,7 @@ export namespace Provider {
       const s = await state()
       const s = await state()
       const existing = s.sdk.get(provider.id)
       const existing = s.sdk.get(provider.id)
       if (existing) return existing
       if (existing) return existing
-      const [pkg, version] = await ModelsDev.pkg(provider.npm ?? provider.id)
+      const [pkg, version] = provider.npm ?? provider.id
       const mod = await import(await BunProc.install(pkg, version))
       const mod = await import(await BunProc.install(pkg, version))
       const fn = mod[Object.keys(mod).find((key) => key.startsWith("create"))!]
       const fn = mod[Object.keys(mod).find((key) => key.startsWith("create"))!]
       const loaded = fn(s.providers[provider.id]?.options)
       const loaded = fn(s.providers[provider.id]?.options)