refactor(desktop): consume plugin-owned browser contracts

This commit is contained in:
LukeParkerDev 2026-09-03 18:31:57 +10:00
parent eb242163fc
commit b1448ea08c
12 changed files with 13 additions and 9 deletions

View file

@ -63,6 +63,7 @@
"@ibm/plex": "6.4.1",
"@kobalte/core": "catalog:",
"@opencode-ai/client": "workspace:*",
"@opencode-ai/plugin-browser": "workspace:*",
"@opencode-ai/schema": "workspace:*",
"@opencode-ai/session-ui": "workspace:*",
"@opencode-ai/ui": "workspace:*",
@ -425,6 +426,7 @@
"@lydell/node-pty": "catalog:",
"@opencode-ai/app": "workspace:*",
"@opencode-ai/client": "workspace:*",
"@opencode-ai/plugin-browser": "workspace:*",
"@opencode-ai/schema": "workspace:*",
"@opencode-ai/ui": "workspace:*",
"@sentry/solid": "catalog:",

View file

@ -65,6 +65,7 @@
"@kobalte/core": "catalog:",
"@opencode-ai/client": "workspace:*",
"@opencode-ai/schema": "workspace:*",
"@opencode-ai/plugin-browser": "workspace:*",
"@opencode-ai/session-ui": "workspace:*",
"@opencode-ai/ui": "workspace:*",
"@opencode-ai/util": "workspace:*",

View file

@ -1,4 +1,4 @@
import type { Browser } from "@opencode-ai/schema/browser"
import type { Browser } from "@opencode-ai/plugin-browser/rpc"
export type BrowserPaneEndpoint = Readonly<{ url: string; username?: string; password?: string }>
export type BrowserPaneTarget = Readonly<{ sessionID: string; endpoint: BrowserPaneEndpoint }>

View file

@ -1,5 +1,5 @@
import { batch, createEffect, createMemo, on, onCleanup } from "solid-js"
import type { Browser } from "@opencode-ai/schema/browser"
import type { Browser } from "@opencode-ai/plugin-browser/rpc"
import { createStore, reconcile } from "solid-js/store"
import { useLanguage } from "@/runtime/i18n/language"
import type { BrowserPaneCommand, BrowserPaneRegistration, BrowserPaneState } from "@/runtime/platform/browser-pane"

View file

@ -39,6 +39,7 @@
"@opencode-ai/app": "workspace:*",
"@opencode-ai/client": "workspace:*",
"@opencode-ai/schema": "workspace:*",
"@opencode-ai/plugin-browser": "workspace:*",
"@opencode-ai/ui": "workspace:*",
"@sentry/solid": "catalog:",
"@sentry/vite-plugin": "catalog:",

View file

@ -1,4 +1,4 @@
import { Browser } from "@opencode-ai/schema/browser"
import { Browser } from "@opencode-ai/plugin-browser/rpc"
import electron, { type BrowserWindow, type WebContents } from "electron"
import type { Protocol } from "devtools-protocol"
import { Schema } from "effect"

View file

@ -1,6 +1,6 @@
import type { BrowserPaneCommand, BrowserPaneLayout, BrowserPaneTarget } from "@opencode-ai/app/desktop"
import { NodeHttpClient } from "@effect/platform-node"
import { Browser } from "@opencode-ai/schema/browser"
import { Browser } from "@opencode-ai/plugin-browser/rpc"
import { OpenCode } from "@opencode-ai/client/effect"
import { SessionID } from "@opencode-ai/schema/session-id"
import type { BrowserWindow } from "electron"

View file

@ -1,4 +1,4 @@
import { Browser } from "@opencode-ai/schema/browser"
import { Browser } from "@opencode-ai/plugin-browser/rpc"
import type { Protocol } from "devtools-protocol"
import type { Cdp } from "./cdp"

View file

@ -1,4 +1,4 @@
import { Browser } from "@opencode-ai/schema/browser"
import { Browser } from "@opencode-ai/plugin-browser/rpc"
import { mkdir, readFile, stat, writeFile, rm } from "node:fs/promises"
import { mkdirSync } from "node:fs"
import { tmpdir } from "node:os"

View file

@ -1,5 +1,5 @@
import type { WebContents } from "electron"
import { Browser } from "@opencode-ai/schema/browser"
import { Browser } from "@opencode-ai/plugin-browser/rpc"
import { gzipSync, gunzipSync } from "node:zlib"
import { readFile } from "node:fs/promises"
import { Schema } from "effect"

View file

@ -1,4 +1,4 @@
import { Browser } from "@opencode-ai/schema/browser"
import { Browser } from "@opencode-ai/plugin-browser/rpc"
import { Schema } from "effect"
import { Rpc } from "effect/unstable/rpc"

View file

@ -3,7 +3,7 @@ import { createServer } from "node:http"
import { once } from "node:events"
import path from "node:path"
import { app, BrowserWindow, nativeImage } from "electron"
import { Browser } from "@opencode-ai/schema/browser"
import { Browser } from "@opencode-ai/plugin-browser/rpc"
import { OpenCode } from "@opencode-ai/client"
import { Effect, Fiber, Schema, Stream } from "effect"
import { createBrowserPane } from "../../src/main/browser-pane"