app

oc-app · package · G10-应用 · Layer 1

① 作用

OpenCode 桌面/Web 前端的 SolidJS 主应用。src/app.tsx 组装全部 Provider(Server/SDK/ServerSync/Settings/Tabs/Command 等约 20 个 context,app.tsx:41-66)并注册 Session/Home/NewSession/Legacy 等路由;src/entry.tsx:5-11 通过 render 挂载 AppInterface 与 PlatformProvider;src/index.ts:1-30 导出 AppBaseProviders、AppInterface 及全部 context hooks(useServer/useSettings/useTabs 等)。桌面专属能力(desktop-menu.ts、updater.ts、wsl/ 目录)以子路径导出供 desktop 包复用。

② 提供能力

· AppInterface 与 AppBaseProviders 根组件(SolidJS 应用壳)
· Server/SDK/ServerSync/Tabs/Settings/Command 等全套全局 context
· Session 会话页、Home 主页、NewSession 页、布局(新旧两套)页面
· WSL 服务器探测/管理类型与桌面菜单、更新器(updater.ts)
· i18n 中英双语词典与 locale 规范化(i18n/、context/language.tsx)
· draft-store 草稿持久化与 file-picker 常量(utils/draft-store.ts:30)

③ 依赖(上游)

节点机制证据
clientworkspace-dep@opencode-ai/app/package.json dependencies.@opencode-ai/client
coreworkspace-dep@opencode-ai/app/package.json dependencies.@opencode-ai/core
schemaworkspace-dep@opencode-ai/app/package.json dependencies.@opencode-ai/schema
sdkworkspace-dep@opencode-ai/app/package.json dependencies.@opencode-ai/sdk
session-uiworkspace-dep@opencode-ai/app/package.json dependencies.@opencode-ai/session-ui
uiworkspace-dep@opencode-ai/app/package.json dependencies.@opencode-ai/ui

④ 被依赖(下游)

节点机制证据
desktopimportpackages/desktop/src/renderer/index.tsx:17

⑤ 为什么存在(why)

设计意图(官方)

作为 UI 应用壳层,将 session-ui/ui 的无状态组件与 server/core 的业务逻辑粘合为完整应用,同时为 desktop 提供可复用的桌面子模块(菜单/更新/WSL)出口。

改造关联

官方底座,未被本机装配层直接引用

⑥ 怎么用(how)

怎么用

典型场景与协作

模块内部结构 DAG(362 模块 · 1347 边 · 组级视图) 内部结构基线 v1.18.29,v1.18.35 包级结构未变(36 包集合逐一致)

按目录分组的组级视图:点击组节点下钻查看组内模块依赖;点击模块节点查看完整路径。

组级视图