[Feature] 保留声明式接入,为插件增加可执行后端与原生/Web UI 扩展路径
I maintainer di solito rispondono entro 1 giorno
@xiaoyumuxi ci sta già lavorando.
Dal 20/10/2026.
Valutazione
Questa issue non è ancora stata valutata.
Descrizione
[Feature] 保留声明式接入,为插件增加可执行后端与原生/Web UI 扩展路径
Problem to solve / 要解决的问题
Lithe 希望让新的 LSP 和构建工具通过少量声明配置接入。但复杂插件还需要多步业务处理、执行前后逻辑、私有持久化和自定义界面。仅靠 CLI 模板或固定宿主动作无法充分表达这些需求,插件作者可能被迫修改宿主或另外实现一套业务链路。
希望同一个插件可以从纯配置开始,按能力增加处理函数和自定义 UI。典型场景是 Maven:install 执行前后读取/更新插件快照;使用宿主原生树和按钮,或自己编写 Web 前端;同时继续进入 IDE 的构建、运行、输出和取消流程。
本 Issue 独立跟踪渐进扩展的实施顺序与端到端验收。关联公共契约 #1208、原生 UI #1209、Build/Run/Test #1180、验证 #1184;不替代这些任务或另行设计平行领域协议。
Proposed solution / 建议方案
能力与所有权
- 保留声明式 LSP/构建接入,作为低成本默认路径。
- 对任务执行、模型获取、依赖查询等能力,允许在声明式实现之外选择插件函数/Provider。继续遵守类型化领域契约,具体字段、版本与兼容规则先评审。
- SDK 是现有协议的客户端,复用参数、结果、错误语义;不能以无类型通用调用取代整个构建协议。
- 标准 LSP 继续由现有客户端及服务器会话负责;特殊准备和服务器扩展操作通过真实支持的公开能力协调,不重写平行 LSP。
- 插件可另外注册专属函数;以插件身份+函数 ID 路由,使用可序列化参数和结果。
- 原生 UI 和自带 Web UI 消费相同领域能力及插件动作,自定义前端仍能复用 IDE 公共工作流。
- 插件专属业务和缓存留在插件/所属后端。优先复用成熟上游,不额外维护第二份类路径、源码根或项目图。
- “插件扩展模块”是待评审的职责划分;应复用现有插件管理、ModuleRuntime、资源管理和领域 Registry,避免第二套生命周期。
PR 1:能力边界、版本及调用契约
- 盘点现有 buildSystems、Provider、LSP、Web bridge 与可复用上游能力。
- 区分插件提供领域能力和调用宿主能力,明确能力所有者,避免任务 handler 调回自身形成递归。
- 定义函数引用、注册/撤销、能力协商、稳定错误、operationID、进度、超时、取消和晚到结果保护。
- 定义声明式/函数实现的选择规则和旧包兼容,增加 shared fixtures。
验收:受控测试后端覆盖路由、结果、失败、取消和兼容;旧声明式插件保持可用。
PR 2:macOS 后端运行及首个 SDK
- 评估现有 Provider/语言服务器会话与独立插件进程的复用边界;独立进程+JSON-RPC/stdin/stdout 为候选,验证后再决定。
- 一个真实后端和首个 SDK 验证语言无关的通信边界,不要求同时实现多语言 SDK。
- 管理启动、崩溃、停用、工作区切换和退出,后端生命周期独立于面板。
- 提供最小必要的进程、输出和存储能力,固定运行时资源来源;状态写平台可写目录,发行包只读。
验收:无 UI 示例完成多步操作和状态恢复;取消清理子进程;停用/退出无残留。
PR 3:构建函数与 Maven 最小闭环
- 接入现有构建调度、日志、状态和停止流程,保留 CLI 声明实现。
- Maven install 由真实插件函数完成前置处理 → 执行 Maven → 后置处理 → 返回结果。
- 验证最小私有状态读写,不在此阶段重建 Maven 项目解析器。
- 先复用现有构建面板,任务仍可从 IDE 公共入口执行。
验收:成功、失败、取消、切换工作区及重开恢复正确;修改前后处理无需修改宿主。
PR 4:原生/Web UI 共用能力
- 在 #1209 范围内接入按钮、树、列表、菜单、图标、稳定节点 ID、事件和按需加载。
- 扩展既有 Web bridge,让两种前端调用同一领域能力/动作,处理页面关闭时的请求和订阅。
- 通用组件不增加 Maven 特有字段。
验收:同一后端可由原生/Web 面板操作,复用输出与取消;关闭/重开不重复启动后端或泄漏订阅。
注意:#1209 明确排除 Webview;本阶段 Web 部分应复用/另行跟踪现有 Web 能力,不擅自扩张该任务范围。
PR 5:Maven 专属逻辑迁移与 LSP 协作
- 将剩余 Maven 业务迁入插件或选定成熟后端,Core 保留通用校验和规范化。
- 明确快照所有权、格式版本、恢复和失效规则,不以页面 UI 状态代替工程快照。
- 使用现有 LSP 客户端及服务器实际支持的公开扩展完成项目同步,保留单一项目事实源。
- 新路径验证后删除被替代实现,定义旧包迁移期限;模型与依赖迁移过大时继续拆 PR。
验收:配置变更 → 后端同步 → 模型/快照刷新 → 构建/运行,以及语言能力构成完整流程;旧结果不覆盖新工作区。
PR 6:Windows adapter 与双端验证
- 共享同一契约,适配 Windows 进程、存储和生命周期。
- 复用现有 Worker 中适用的函数注册及请求关联,补足实际后端能力。
- 对相同示例验证领域结果、错误、取消、资源清理与 UI 行为。
- 各用户可观察功能 PR 更新平台矩阵,两端验证分别记录。
验收:双端真实运行证据与 shared fixtures 一致;平台差异留在 adapter,宿主不按 Maven 插件名增加业务分支。
顺序与第一阶段完成标准
先完成 PR 1 → PR 2 → PR 3,再复核后续范围。PR 4 和 PR 6 可在依赖稳定后独立推进;PR 5 按具体依赖拆分。六个 PR 是建议粒度,不是固定工期或必须数量。
第一阶段应证明:纯配置接入保持简单;只替换一个任务即可使用代码扩展;无 UI 后端支持多步执行、状态恢复和取消;正式构建契约和 LSP 继续服务 IDE 集成;发行资源只读,不重建上游事实。
Target platform / 目标平台
Cross-platform / 跨平台
macOS 先验证最小闭环,Windows 按共享契约适配并独立验收,不以一端通过代表另一端已实现。
Area / 模块
Extensions / 扩展
Priority / 优先级
P2 / 后续考虑:目前不着急,可安排到后续版本
这是扩展架构的渐进改进计划,当前没有报告核心工作流被阻断。
Alternatives considered / 已考虑的替代方案
- 继续只扩充 CLI JSON:保持简单,但难以覆盖多步逻辑、状态维护和工具专属交互。
- 将 Maven 业务继续放入 Core/宿主:每次新增工具能力都需要改宿主,且会侵入通用模型。
- 全部改为自定义函数并丢弃构建协议:失去类型化任务、模型、运行/测试和 IDE 公共入口,不采用。
- 强制所有插件都写后端/前端:提高最简单的 LSP 和构建工具接入成本,不采用。
- 统一一种语言或原生动态库:分别存在语言自由度和 ABI/跨平台维护成本;后端载体与首个 SDK 需通过可运行样例评估。
- 新建独立插件管理系统:优先复用已有注册、生命周期、资源管理及领域能力接口,避免双重状态。
Additional context / 补充信息
已阅读 #1208、#1209、#1180,并按用户要求单独整理实施计划。#1208 负责公共契约;本项负责将“简单接入+复杂扩展+自由前端”串成渐进交付和验收路线,不重新立项相同领域协议。
历史扩展宿主评估 #737 已关闭。其公开记录涉及成熟宿主复用、项目事实所有权及生命周期验证;后续应检查可复用成果,不把历史实验视为当前产品已具备完整运行环境。
当前源码检查依据(只读检查,未宣称在发行版本运行复现):
macos/Sources/Lithe/Platform/MacOS/Plugins/MacPluginStartupLoader.swift明确不加载插件代码;macos/Sources/LitheApplicationKernel/Plugins/DeclarativeWorkbenchModule.swift激活及导出能力为空。macos/Sources/LitheExecutionModule/Services/BuildSystemService.swift仍通过 planner 生成命令执行,并拒绝尚未接通的 Provider 来源。macos/Sources/Lithe/Application/Features/PluginWebBridge.swift有固定 build.* 方法及页面状态接口,尚非独立于页面的通用后端。macos/Sources/LitheModuleAPI/Lifecycle/ModuleContracts.swift与macos/Sources/LitheApplicationKernel/Lifecycle/ModuleRuntime.swift的事件广播未提供完整调用回复、进度和取消。windows/tauri/src/extensions/ui/services/ui-extension-host.ts、windows/tauri/src/extensions/ui/services/ui-extension-worker-runtime.ts已有 Worker 注册及调用机制,但不能直接等同于通用本地后端。
待评审:执行载体、首个 SDK、通知 API 的归属、Provider 复用范围、Web 可调用能力及旧包迁移期限。示例接口和执行方案尚未确定为发布契约。
Checklist / 提交前检查
- I searched existing issues for duplicates. / 我已搜索现有 Issue,确认没有重复建议。
已确认与 #1208 等存在关联;本项按用户要求作为独立实施/验收跟踪,复用其协议和领域任务,不另建重复协议总任务。
- Lingua principale
- TypeScript
- Stelle
- 1.8k
- Fork
- 151
- Merge medio
- 11h 28m
- PR unite (30g)
- 315
Preparare l'ambiente
Questo progetto non fornisce container di sviluppo, Dockerfile né guida per i contributori, quindi l'ambiente è a tuo carico: parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di 1lck/Lithe-IDEA
-
area:editor bug P0 platform:macos review: low
Difficoltà 2/5 1-3 ore Idoneità per principianti 65/100
1lck/Lithe-IDEA#1118 · 2 commenti ·
I maintainer di solito rispondono entro 1 giorno
-
[Bug] 进程结束的显示逻辑不够合理Apertaarea:editor bug issue-form:bug P0 platform:macos review: medium
Difficoltà 4/5 3-5 giorni Idoneità per principianti 42/100
1lck/Lithe-IDEA#1344 ·
I maintainer di solito rispondono entro 1 giorno
-
[Bug] git显示问题Apertaarea:editor bug issue-form:bug P0 platform:macos review: medium
Difficoltà 4/5 3-5 giorni Idoneità per principianti 25/100
1lck/Lithe-IDEA#1342 ·
I maintainer di solito rispondono entro 1 giorno
-
area:project enhancement P2 platform:cross-platform review: medium
Difficoltà 5/5 Più di una settimana Idoneità per principianti 35/100
1lck/Lithe-IDEA#1340 ·
I maintainer di solito rispondono entro 1 giorno
-
[Bug] Agent面板继续优化Apertaarea:editor bug issue-form:bug P0 platform:macos review: medium
1lck/Lithe-IDEA#1315 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di 1lck/Lithe-IDEA
Issue simili
-
Sequências em espanhol: «Atualizado em», a aba «Fila» e o valor 'pause' ainda saem em portuguêsAperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 77/100
melgarafael/DeskcommCRM#3104 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
I maintainer di solito rispondono entro 1 giorno
-
bug service: webapp
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
Ocelot-Social-Community/Ocelot-Social#10684 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
nicobailon/pi-subagents#2978 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 66/100
getsentry/sentry-conventions#732 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno