Evergreen Logo

Evergreen 三角通讯链架构图

三角泳道演示 · 上游 core/ ⇢ 中游 plugins/ ⇢ 下游 renderer/ · HTML-first 主路径

泳道动图通讯链流动 详情外置节点点击直达

三角主线:上游 core/ ⇢(HTTP JSON) 中游 plugins/ ⇢(视图分发) 下游 renderer/,core → renderer import 直调构成闭环

3层泳道 25步装配 8项 JS Bridge 7×HTTP Server
上游 · core/ 纯 Dart 服务层
core/ 服务层 7×HTTP Server · 端口文件 · 原子能力
运行中 点击节点看详情 ↓
中游 · plugins/ HTML-first 主路径
plugins/ 插件目录 index.html + manifest.json → html_modle WebView + Bridge
HTML 主路径 点击节点看详情 ↓
下游 · renderer/ Flutter UI 层
renderer/ 渲染层 ModuleDispatch 模板路由 · html_modle
点击节点看详情 ↓
详情 · 三层子模块 / 装配流程 / 平台能力(泳道内只留名称,细节全在这里)
上游 · core/ 纯 Dart 服务层 · 不画像素

核心子模块

core/agent · Agent 运行时 · Tool 注册表 core/data · 数据中枢 DataOrchestrator core/module · 模块注册中心 ModuleRegistry core/theme · 主题引擎 core/skin · 皮肤包 core/config · 配置引擎 · 权限 core/plugin · 插件运行器 PluginRunner core/services · OCR / 更新 / 安装

HTTP Server 端口体系

  • AgentHttpServer · ConfigHttpServer · DataHttpServer · ModuleHttpServer · ThemeHttpServer · CoreHttpServer(+ ScraperBridgeServer)
  • 端口文件:.agent_port · .config_port · .data_port · .module_port · .theme_port · .core_port
  • renderer 与 HTML 插件 bridge 均经端口文件发现端口
中游 · plugins/ 一个目录可含多类子目录

HTML 插件 · 用户侧主路径

  • 产物:module/index.html + manifest.json(manifest "template":"html")
  • 创作:html-creator 三栏 IDE · AI 生成 · 一键导出
  • 运行:html_modle 本地 HTTP + WebView + platform.* JS Bridge
  • 主题:--evg-* CSS 变量实时注入;进程:manifest process 白名单(fail-closed)

开发者模式 · 高级能力

module/ JSON 模块 → ModuleLoader agent/ manifest+.py → PluginBridge(.exe 仅存量) theme/ theme.json → ThemeLoader config/ config.json → SettingsLoader data/ manifest+fetch.py → 数据中枢 skin/ 皮肤包(AI 视图热切换)
下游 · renderer/ Flutter UI 层 · 只消费 core barrel API

ModuleDispatch 自动选视图(弃用 descriptor.ui)

  • template 非空且非 v4 → TemplateRegistry.render(html / scraper / theme-creator / skill-creator / dsh / zju)
  • pages 非空 → TemplateRegistry.render(v4 composite)
  • workspace.enabled → EditorView;ai-assistant → ChatControllerView;其他 → DefaultView 兜底

模板注册表

v4htmlscraper theme-creatorskill-creatordsh zju / classroom / zdbk

templates_index.json 生成 · release profile tree-shake 裁剪 · 未知配置静默回退

html_modle 机制

  • 本地 HTTP(127.0.0.1 随机端口)+ WebView(Windows webview_windows / Android webview_flutter)+ JS Bridge 双通道
  • 特例:html-creator 走 Dart 原生 HtmlCreatorView(不启 WebView)
main.dart → AppBootstrap · 25 个启动步骤 失败可降级 · greenix-paths 致命 启动 00/25
① window-init ② greenix-paths ③ release-assets ④ media-kit ⑤ webview2 ⑥ prefs ⑦ settings ⑧ data-orchestrator ⑨ themes ⑩ skins ⑪ http-services ⑫ zju-safety ⑬ agent-runtime ⑭ agent-tools ⑮ tool-disabled ⑯ agent-controller ⑰ servers-start(7×HTTP · .xxx_port) ⑱ v2-scan ⑲ data-sources ⑳ modules(registry.seal) ㉑ module-server ㉒ default-theme ㉓ default-skin ㉔ ui-launch ㉕ window-show

runApp(ProviderScope overrides) → EvergreenApp —— 注入 registry / orchestrator / servers / agent / theme / skin / v2Manifests

HTML 插件 JS Bridge 能力表(platform.* · 用户侧主路径)
platform.data

get(name) 缓存优先读取 · list() 数据源清单 · refresh(name) 读缓存 · subscribe(name, fn) 订阅变化(data:changed)· testConnectivity() 连通性测试

platform.ai

chat(prompt, style) → POST /agent/chat(AgentHttpServer);style 可选 explanatory / learning / concise / socratic

platform.api

call(service, path, {method, body}) → agent / config / data / module / theme / core 六组服务通用转发,端口来自 .xxx_port 端口文件

platform.settings

get(key) 读取 · set(key, value) 写 ConfigHttpServer 并同步 .greenix/config.json

platform.storage

get / set / remove / clear / list → 模块私有 storage.json;同时注册为数据源 <id>_storage

platform.theme

getColors() 返回 8 语义色;--evg-* CSS 变量注入,主题切换实时推送(theme:changed)

platform.process

run / start / write / stop / read / onOutput / onExit → manifest process 白名单 fail-closed;scope:"long" 常驻

platform.emit / platform.on

页级事件:PageEventBus 广播与订阅,同页跨栏 / 模块联动

💡 HTML-first 修正(对照 CLAUDE.md + evg-base 源码): ① 插件形态 —— 用户侧主路径为 plugins/<id>/module/index.html + manifest.json("template":"html"),由 html-creator 创作、html_modle(本地 HTTP + WebView + JS Bridge)运行;「JSON 声明 + .exe」已降级为开发者模式 / 高级能力。
② 渲染机制 —— 弃用 renderMode 双渲染表述:ModuleDispatch 按 template / pages / workspace 自动选视图(不再使用 descriptor.ui),经模板注册表路由 v4 / html / scraper / theme-creator / skill-creator / dsh / zju 等。
③ 装配流程 —— main.dart 经 AppBootstrap 25 步启动(详见上方详情卡逐站点亮)。
④ 保留仍正确的核心 —— core/ 纯 Dart 服务层不画像素、renderer/ 只消费 core barrel API、HTTP 端口体系与 JS Bridge 能力表。