release: v1.6.0

This commit is contained in:
coso
2026-04-09 00:08:21 +08:00
parent a057d76e6a
commit db3bfae4ff
864 changed files with 307221 additions and 1689 deletions
+26 -2
View File
@@ -53,6 +53,18 @@ Lime 的命令体系固定按以下关系理解:
6. UI 的正式消费对象是统一 `CommandRunSnapshot`
聊天区轻卡和右侧 viewer 不应直接绑定底层 task、run 或原始响应结构。
## 创作主线护栏
当前 Lime 的命令运行时默认服务“创作生产与交付”主线。
这意味着:
1. 一级优先命令应优先覆盖创作生成、素材获取、研究拆解、发布交付。
2. 搜索、浏览器、网页读取、代码等能力只有在能明确支撑创作主链时,才应进入当前命令建设优先级。
3. `@发布合规` 的定位是创作交付前的风险检查,只回答“这份内容能不能发、风险在哪里、怎么改”,不是泛法务协议。
4. 如果一个新命令主要服务泛办公、泛法务或泛开发场景,而不能回挂到创作主线,应先暂停并重新论证优先级。
5. `scene` 的命名、推荐文案和补参文案也应优先使用创作语义,例如选题、脚本、配图、转写、发布预览、发布合规;不要默认长出“建立”“法务”这类脱离创作目标或过泛的场景表达。
## 固定主链
所有命令能力统一按这条主链设计:
@@ -70,6 +82,7 @@ Lime 的命令体系固定按以下关系理解:
对图片任务再补一条固定约束:
`@配图/@修图/@重绘` 原始文本必须先进入 Agent turn,再由 `harness.image_skill_launch` 辅助首刀 `Skill(image_generate)`;文稿 inline 配图、封面位、图片工作台编辑/变体这类显式图片动作也一样,必须先组装 `image_task` 上下文后再复用统一发送主线。不要把 current 主链重新改回前端预翻 slash skill、前端直建任务或“按钮直调 task API”。图片 launch 还必须显式压制 `ToolSearch / WebSearch / Read / Glob / Grep` 这类通用偏航工具,并在必要时直接从当前 session tool surface 移除这些 detour tools,避免模型在“搜技能目录”里空转或把权限错误暴露给用户。默认 `Bash -> lime media image generate --json` 入口也必须把 task file 真正推进到完成态;兼容入口 `lime task create image --json` 现在也必须复用同一条图片执行链,不能再只停在“任务已创建 / pending_submit”。即使退回 compat 的 `lime_create_image_generation_task`,也必须委托同一条 task artifact + worker 执行链,并禁止把任务改写到 `outputPath` / markdown 文稿。
- 显式图片动作允许先在前端补 `image_skill_launch` metadata,但发送前的 `session_id` 绑定仍必须走统一发送边界;如果 metadata 里暂时还是本地 draft key,必须在真正发起 send 时替换成真实会话 ID,而不是在图片动作入口提前额外建一个图片专用会话。
- `.lime/tasks/**/*.json` 继续作为图片主链的唯一恢复事实源,但它们属于内部任务快照,默认不应直接渲染成用户可见 artifact 卡片或时间线文件卡;用户面看到的应该是轻结果卡、工具过程和右侧查看。
@@ -117,10 +130,20 @@ Lime 的命令体系固定按以下关系理解:
- `lime_run_service_skill` 再根据当前 turn 绑定的 `serviceSkillId + OEM runtime` 发起服务端 run / 短轮询,保证 slash scene 也走 `Agent -> tool -> timeline` 主链
- 未命中统一目录的 slash 文本必须继续回到普通 slash 流程,不能被错误吞成“未找到本地 Skill”
如果 `scene` 绑定的是 `site_adapter / browser_assist` 型技能,还要额外遵守两条边界:
当前 `scene` slash 还必须遵守下面三条长期规则:
- `Scene Skill` 是产品场景真相;slash 只是触发入口,不能在前端把流程写死成某个站点分支
- 推荐用 `Pipeline` 作为主模式,再按需要叠加 `Inversion`、`Generator`、`Tool Wrapper`
- 聊天区“saved content / viewer 预览 / 运行摘要”都只是消费层投影,不能反过来定义 scene runtime 真相
如果 `scene` 绑定的是 `site_adapter / browser_assist` 型技能,还要额外遵守以下边界:
- 用户可见入口继续以 `entries.kind=scene` 为准,不要求把底层 site skill 强行暴露成首页技能卡;但运行时解析 `scene -> linkedSkillId` 时,不能只依赖首页可见 skill 列表,必须能回退完整 `ServiceSkill` 目录做绑定解析,否则会出现“slash 菜单里能选、发送时却找不到 skill”的假入口
- 参数补齐协议继续只落在 `slotSchema`;如果未来要在 slash 场景或技能入口里弹参数表单,可以在渲染层把 `slotSchema` 映射成 `a2ui`,但不要把 `a2ui` 结构写进 `SkillCatalog`、`request_metadata` 或 runtime 协议
- 参数补齐协议继续只落在 `slotSchema`;如果 slash scene 或技能入口需要补参,运行时应先产出结构化 `scene gate request`,再由渲染层把它映射成 `a2ui`,但不要把 `a2ui` 结构写进 `SkillCatalog`、`request_metadata` 或 runtime 协议
- 如果 skill 声明了 `readinessRequirements.requiresProject=true`,或 `saveMode=project_resource` 需要真实项目目录落盘,则输入框里的 slash scene 必须复用当前选中的项目;当前没有项目时,前端要显式打开 `scene gate` 收集项目,而不是 toast 一下后结束,更不能静默创建或回退到 default 项目,以免结果写进错误目录
- 系统侧如果为了稳定性对 `site_adapter / browser_assist` 做了 preload,这一步仍必须回放成当前 assistant 消息里的真实过程步骤;不要把 preload 只塞进系统提示,也不要把它额外渲染成脱离对话的工具卡
- preload 成功或失败后,本回合都不应再回退到 `webReader / WebFetch / WebSearch / research` 这类通用网页阅读或检索工具;要么直接消费 preload 结果继续答复,要么直接把失败原因告诉用户
- 如果 preload 成功返回的是 `markdown_bundle`,且请求参数里带了 `target_language`,则后续步骤必须被视为通用的“已保存 Markdown 后处理”协议:Agent 只允许使用 `Read / Write / Edit` 读取并覆写项目里的真实 Markdown 文件,翻译时保留代码块、链接目标、相对图片路径与 Markdown 结构,不要再重新抓站点,也不要生成第二份摘要 artifact
一句话:
@@ -188,6 +211,7 @@ Lime 的命令体系固定按以下关系理解:
- 把 `service_scene_launch` 作为当前 turn 的 binding 上下文,而不是前端直接调用云端 run
- 由 Agent 首刀调用 `lime_run_service_skill` 执行服务型技能 run
- 服务端目录失联或 scene 未命中时,客户端 seeded/fallback 仍要保证 slash 输入能回到普通工作区主链
- 如果 `ServiceSkill` 底层绑定的是 `site_adapter / browser_assist`,允许 Rust runtime 先做一次预执行收口浏览器上下文与保存逻辑;但这次预执行必须继续走标准 `tool_start / tool_end` 事件,并以内联过程步骤显示在当前对话中
### 3. `Agent + Workflow`
+50 -3
View File
@@ -65,6 +65,9 @@
- `get_model_registry_provider_ids`
它只允许读取 `src-tauri/resources/models/index.json` 的 `providers` 列表。无论是正式 Tauri 命令还是 DevBridge 开发链路,都不应再回退数据库或其它运行态缓存去“猜” provider 集合;资源异常时必须直接暴露错误,避免把索引损坏伪装成“只是没有模型”。
同理,聊天运行时初始化的 `aster_agent_init` 在浏览器 DevBridge 模式下也不能再被放进 `mockPriorityCommands`。只要桥接在线,它就必须优先读取后端真实 `provider_name / model_name`,让聊天入口拿到当前运行时模型。
进一步地,围绕运行时模型解析的真相命令:`aster_agent_init`、`get_default_provider`、`get_provider_pool_overview`、`get_api_key_providers`、`get_model_registry`、`get_provider_alias_config`、`fetch_provider_models_auto`、`get_model_registry_provider_ids`,在浏览器 DevBridge 模式下如果桥接失败,必须直接抛错,不能再通过 `safeInvoke` 静默退回 mock;否则前端会把“后端未连上 / 命令失败”误显示成假的 Provider / 模型列表。
同时要明确,`aster_agent_init` 只负责初始化 Agent,并不保证已经完成 Provider 配置;当它未返回 `provider_name / model_name` 时,前端不得把本地硬编码默认值当作真实模型,而应继续回退到 `get_default_provider` + 已配置 Provider/模型注册表解析链,拿到当前工作区真正可用的 `provider/model`。
文档导出链路同样遵循这条路径。当前主入口为 `src/lib/api/document-export.ts`,统一承接:
@@ -88,9 +91,22 @@
- `CharacterMention`、`builtinCommands`、场景 slash 补全不得再各自维护一套业务命令静态常量
- 服务端尚未返回 `entries` 时,允许网关层从 legacy `items` 兼容投影出 `entries`
- 客户端必须保留 seeded fallback,不能因为服务端暂时不可用就让 `@配图`、`@配音`、`@PPT`、`@表单`、`@网页`、`@代码`、`@发布`、`@搜索`、`@深搜`、`@研报`、`@站点搜索`、`@读PDF`、`@总结`、`@翻译`、`@分析`、`@转写` 这类主链入口失能
- 客户端必须保留 seeded fallback,不能因为服务端暂时不可用就让 `@配图`、`@海报`、`@配音`、`@浏览器`、`@PPT`、`@表单`、`@网页`、`@代码`、`@渠道预览`、`@上传`、`@发布`、`@发布合规`、`@搜索`、`@深搜`、`@研报`、`@站点搜索`、`@读PDF`、`@总结`、`@翻译`、`@分析`、`@转写` 这类主链入口失能
- `src/components/agent/chat/commands/catalog.ts` 只继续承接 Lime 本地 / Codex 原生命令;产品型 `/` 场景不应再长期硬编码在这里
- 若服务端下发的 `renderContract` 超出 Lime 当前支持范围,优先由服务端回退到已支持类型,客户端也必须退化到通用 timeline / artifact 展示
- `scene` 的展示命名、推荐文案和补参标题应继续围绕创作生产语义收敛;`@发布合规` 只是发布前风控检查,不应被产品文案扩写成独立“法务场景”,也不要在目录里长出“建立”这类脱离创作目标的泛入口
技能脚手架创建同样只允许走当前命令网关主链:
- 前端统一经由 `src/lib/api/skills.ts -> create_skill_scaffold_for_app`
- 参数统一放在嵌套 `request` 对象里,不要再散落平铺字段
- 当前允许的结构化骨架字段除了 `target / directory / name / description` 之外,还包括:
- `whenToUse`
- `inputs`
- `outputs`
- `steps`
- `fallbackStrategy`
- 聊天结果沉淀为技能时,只能继续扩这组说明型字段,不要再平行发明第二套“技能草稿协议”
当前 `/scene-key` 的发送主链也已经固定:
@@ -100,7 +116,10 @@
- `lime_run_service_skill` 负责基于当前 session / turn 上下文读取已绑定的 `serviceSkillId + OEM runtime`,再向 OEM Scene Runtime 发起 run / poll
- slash scene 不应再在前端直接调用 `createServiceSkillRun(...)` 或其它云端 run API;客户端当前职责只剩 catalog 解析、metadata 注入与 seeded/fallback 托底
- 未命中统一 scene 目录的 slash 文本必须继续回到普通 slash / Codex 命令流,不能误报本地 Skill 不存在
- `/scene` 的长期产品真相应落在 `Scene Skill`;`site_adapter` 只是 step provider,不是 scene runtime 本体
- 如果 scene 缺少 URL、项目等必填输入,前端不应只 toast 结束;应打开统一 `scene gate`,由 `slotSchema` / `readinessRequirements` 驱动补参
- 如果某个 scene 背后绑定的是 `site_adapter / browser_assist` 型技能,前端可以继续只暴露 `scene`,不必把底层 site skill 再平铺成首页目录项;但运行时解析 `scene -> linkedSkillId` 时必须能回退完整 `ServiceSkill` 目录,而不是只看首页可见 skill 列表,否则会出现目录可见但执行找不到 skill 的协议漂移
- 如果某个 `site_adapter / browser_assist` scene 还声明了 `readinessRequirements.requiresProject=true`,或 `saveMode=project_resource` 需要真实项目目录,输入框 slash 发送时必须沿用当前选中的项目;若当前没有项目,前端必须通过 `scene gate` 收集项目,不能静默 `getOrCreateDefaultProject()` 把结果写进 default 项目
- scene 或技能补参继续只声明 `slotSchema`;若后续要在 GUI 里补 `a2ui` 表单,也只能作为渲染层实现细节,不能把 `a2ui` 类型耦合进 `SkillCatalog`、`request_metadata.harness` 或 Tauri 命令契约
如果这轮改动触达了 `client/skills` 协议,不仅要改 Lime 前端 selector,还要同步检查 `limecore` 的:
@@ -148,6 +167,10 @@ Skill 执行链路同样遵循单一命令边界。当前前端入口为 `src/li
- Agent 驱动的封面命令:`@封面` / `@cover` 在 `src/components/agent/chat/workspace/useWorkspaceSendActions.ts` 中保留原始用户文本发送。聊天发送边界会把结构化 `cover_task` 写入 `request_metadata.harness.cover_skill_launch`,同时打开 `request_metadata.harness.allow_model_skills = true`。Rust 侧 `src-tauri/src/commands/aster_agent_cmd/runtime_turn.rs` 与 `src-tauri/src/commands/aster_agent_cmd/cover_skill_launch.rs` 会给当前 turn 注入只允许首刀优先调用 `Skill(cover_generate)` 的系统提示;当前封面 launch 还会在 session permission 中显式压制 `ToolSearch / WebSearch / Read / Glob / Grep` 这类偏航工具,并在当前 session registry 中直接移除这些 detour tools,避免模型在 `@封面` 首刀前先去搜索工具目录。后续默认 skill 继续优先走 `social_generate_cover_image + Bash -> lime task create cover --json`,CLI 不可用时再回退 `lime_create_cover_generation_task`,最终仍只允许落到标准 `cover_generate` task file。
`Claw` 的纯文本海报命令也应沿同一条 current 主链收敛:
- Agent 驱动的海报命令:`@海报` / `@poster` 在 `src/components/agent/chat/workspace/useWorkspaceSendActions.ts` 中保留原始用户文本发送。聊天发送边界会把解析后的平台、风格、尺寸 / 比例重新组装进 `request_metadata.harness.image_skill_launch`,同时打开 `request_metadata.harness.allow_model_skills = true`;它不是新的 `poster_task` 协议,而是继续委托 `Skill(image_generate)`。当前 `@海报` 会默认补齐“海报设计”语义,并将默认尺寸收敛为 `4:5 -> 864x1152`,同时把 `entry_source` 写为 `at_poster_command`。Rust 侧仍复用 `src-tauri/src/commands/aster_agent_cmd/runtime_turn.rs` 与 `src-tauri/src/commands/aster_agent_cmd/image_skill_launch.rs`,继续压制 `ToolSearch / WebSearch / Read / Glob / Grep` 这类偏航工具。后续默认 skill 继续优先走 `Bash -> lime media image generate --json`,CLI 不可用时再回退 `lime_create_image_generation_task`,最终仍只允许落到标准 `image_generate` task file。
`Claw` 的纯文本视频命令也应沿相同心智收敛:
- Agent 驱动的视频命令:`@视频` / `@video` 在 `src/components/agent/chat/workspace/useWorkspaceSendActions.ts` 中保留原始用户文本发送。聊天发送边界会把结构化 `video_task` 写入 `request_metadata.harness.video_skill_launch`,同时打开 `request_metadata.harness.allow_model_skills = true`。Rust 侧 `src-tauri/src/commands/aster_agent_cmd/runtime_turn.rs` 与 `src-tauri/src/commands/aster_agent_cmd/video_skill_launch.rs` 会给当前 turn 注入只允许首刀优先调用 `Skill(video_generate)` 的系统提示;当前视频 launch 还会在 session permission 中显式压制 `ToolSearch / WebSearch / Read / Glob / Grep` 这类偏航工具,并在当前 session registry 中直接移除这些 detour tools,避免模型在 `@视频` 首刀前先去搜索工具目录。后续默认 skill 继续优先走 `Bash -> lime media video generate --json`,CLI 不可用时再回退 `lime_create_video_generation_task` / `create_video_generation_task`,最终仍只允许落到标准 `video_generate` 任务主链。
@@ -173,6 +196,10 @@ Skill 执行链路同样遵循单一命令边界。当前前端入口为 `src/li
- Agent 驱动的研报命令:`@研报` / `@report` / `@research_report` 在 `src/components/agent/chat/workspace/useWorkspaceSendActions.ts` 中保留原始用户文本发送。聊天发送边界会把结构化 `report_request` 写入 `request_metadata.harness.report_skill_launch`,同时打开 `request_metadata.harness.allow_model_skills = true`。Rust 侧 `src-tauri/src/commands/aster_agent_cmd/runtime_turn.rs` 与 `src-tauri/src/commands/aster_agent_cmd/report_skill_launch.rs` 会给当前 turn 注入只允许首刀优先调用 `Skill(report_generate)` 的系统提示,并在当前 session permission 与 registry 中显式压制 `ToolSearch / Read / Glob / Grep` 这类“工具目录发现/本地文件偏航”工具,避免模型在 `@研报` 首刀前先去查工具名或误读本地文件,但会保留真实联网检索主链。后续默认 skill 必须沿 `report_generate` prompt skill -> `search_query` / `WebSearch` 主链先真实联网检索,再写出结构化研究报告;当前上下文缺少明确研报主题时,允许 Agent 最多追问 1 个关键问题,但不能伪造“研报已完成”,也不能直接退回普通聊天长文。
`Claw` 的纯文本竞品命令也应沿同一条 current 主链收敛:
- Agent 驱动的竞品命令:`@竞品` / `@competitor` / `@competitive` 在 `src/components/agent/chat/workspace/useWorkspaceSendActions.ts` 中保留原始用户文本发送。聊天发送边界会把结构化 `report_request` 写入 `request_metadata.harness.report_skill_launch`,同时打开 `request_metadata.harness.allow_model_skills = true`。Rust 侧仍复用 `src-tauri/src/commands/aster_agent_cmd/runtime_turn.rs` 与 `src-tauri/src/commands/aster_agent_cmd/report_skill_launch.rs`,强约束首刀优先调用 `Skill(report_generate)`,并继续压制 `ToolSearch / Read / Glob / Grep` 这类本地偏航工具,保留真实联网检索主链。与 `@研报` 的差异只在用户侧语义层:`@竞品` 会默认补齐竞品分析的 `focus` 与 `output_format`,并将 `entry_source` 写为 `at_competitor_command`;它不是新的协议,也不能绕开 `report_generate -> search_query / WebSearch` 主链直接凭记忆生成所谓“竞品结论”。
`Claw` 的纯文本站点搜索命令也应沿同一条 current 主链收敛:
- Agent 驱动的站点搜索命令:`@站点搜索` / `@站点` / `@site_search` / `@site` 在 `src/components/agent/chat/workspace/useWorkspaceSendActions.ts` 中保留原始用户文本发送。聊天发送边界会把结构化 `site_search_request` 写入 `request_metadata.harness.site_search_skill_launch`,同时打开 `request_metadata.harness.allow_model_skills = true`。Rust 侧 `src-tauri/src/commands/aster_agent_cmd/runtime_turn.rs` 与 `src-tauri/src/commands/aster_agent_cmd/site_search_skill_launch.rs` 会给当前 turn 注入只允许首刀优先调用 `Skill(site_search)` 的系统提示,并在当前 session permission 与 registry 中显式压制 `ToolSearch / WebSearch / Read / Glob / Grep` 这类通用搜索/本地文件偏航工具,同时拦住 `mcp__lime-browser__* / browser_* / mcp__playwright__*` 这类底层浏览器兼容面,避免模型在 `@站点搜索` 首刀前先去搜工具目录或退回浏览器底层执行。后续默认 skill 必须沿 `site_search` prompt skill -> `lime_site_info / lime_site_run / lime_site_search` 主链先执行真实站点适配器,再输出摘要与来源;当前上下文缺少明确站点或检索关键词时,允许 Agent 最多追问 1 个关键问题,但不能伪造“已完成站点搜索”,也不能先退回 `research / WebSearch`。
@@ -193,13 +220,17 @@ Skill 执行链路同样遵循单一命令边界。当前前端入口为 `src/li
- Agent 驱动的分析命令:`@分析` / `@analysis` / `@analyze` 在 `src/components/agent/chat/workspace/useWorkspaceSendActions.ts` 中保留原始用户文本发送。聊天发送边界会把结构化 `analysis_request` 写入 `request_metadata.harness.analysis_skill_launch`,同时打开 `request_metadata.harness.allow_model_skills = true`。Rust 侧 `src-tauri/src/commands/aster_agent_cmd/runtime_turn.rs` 与 `src-tauri/src/commands/aster_agent_cmd/analysis_skill_launch.rs` 会给当前 turn 注入只允许首刀优先调用 `Skill(analysis)` 的系统提示,并在当前 session permission 与 registry 中显式压制 `ToolSearch / WebSearch / Grep` 这类工具目录发现、联网检索或内容检索 detour tools,但会保留 `Read / Glob` 这类显式路径读取主链能力。后续默认 skill 必须沿 `analysis` prompt skill 主链先分析显式正文或当前对话相关上下文;只有当用户显式给出本地路径或目录时,才允许最小化使用 `list_directory / read_file` 读取必要内容并保留真实 tool timeline。当前上下文缺少显式正文时,允许 Agent 优先分析当前对话;只有在显式正文和对话上下文都不足时,才最多追问 1 个关键问题,但不能伪造“已完成分析”,也不能在前端直接生成分析结论绕过 skill。
`Claw` 的纯文本发布合规命令也应沿同一条分析主链收敛:
- Agent 驱动的发布合规命令:`@发布合规` / `@合规` / `@compliance` 在 `src/components/agent/chat/workspace/useWorkspaceSendActions.ts` 中保留原始用户文本发送。聊天发送边界会继续把结构化 `analysis_request` 写入 `request_metadata.harness.analysis_skill_launch`,同时打开 `request_metadata.harness.allow_model_skills = true`。与 `@分析` 的区别只在用户侧语义层:`@发布合规` 会默认补齐 `focus=广告法、版权、平台发布风险`、`style=合规审校`、`output_format=风险等级、风险点、修改建议、待确认项`,并把 `entry_source` 写为 `at_publish_compliance_command`;它不是新的协议,也不能绕开 `analysis` 主链直接在前端拼一段所谓“合规结论”。
`Claw` 的纯文本转写命令也应沿同一条 current 主链收敛:
- Agent 驱动的转写命令:`@转写` / `@transcribe` 在 `src/components/agent/chat/workspace/useWorkspaceSendActions.ts` 中保留原始用户文本发送。聊天发送边界会把结构化 `transcription_task` 写入 `request_metadata.harness.transcription_skill_launch`,同时打开 `request_metadata.harness.allow_model_skills = true`。Rust 侧 `src-tauri/src/commands/aster_agent_cmd/runtime_turn.rs` 与 `src-tauri/src/commands/aster_agent_cmd/transcription_skill_launch.rs` 会给当前 turn 注入只允许首刀优先调用 `Skill(transcription_generate)` 的系统提示,并在当前 session permission 与 registry 中显式压制 `ToolSearch / WebSearch / Read / Glob / Grep` 这类 detour tools,避免模型在 `@转写` 首刀前先去搜工具目录、联网检索或误读本地文件。后续默认 skill 继续优先走 `Bash -> lime task create transcription --json`,CLI 不可用时再回退 `lime_create_transcription_task`,最终仍只允许落到标准 `transcription_generate` task file;若当前上下文缺少 `source_url` / `source_path`,允许 Agent 最多追问 1 个关键问题,但不能伪造“已完成转写”。
`Claw` 的纯文本链接解析命令也应沿同一条 current 主链收敛:
`Claw` 的纯文本链接解析/网页抓取命令也应沿同一条 current 主链收敛:
- Agent 驱动的链接解析命令:`@链接解析` / `@链接` / `@url_parse` 在 `src/components/agent/chat/workspace/useWorkspaceSendActions.ts` 中保留原始用户文本发送。聊天发送边界会把结构化 `url_parse_task` 写入 `request_metadata.harness.url_parse_skill_launch`,同时打开 `request_metadata.harness.allow_model_skills = true`。Rust 侧 `src-tauri/src/commands/aster_agent_cmd/runtime_turn.rs` 与 `src-tauri/src/commands/aster_agent_cmd/url_parse_skill_launch.rs` 会给当前 turn 注入只允许首刀优先调用 `Skill(url_parse)` 的系统提示,并在当前 session permission 与 registry 中显式压制 `ToolSearch / WebSearch / Read / Glob / Grep` 这类 detour tools,避免模型在 `@链接解析` 首刀前先去搜工具目录、联网检索或误读本地文件。后续默认 skill 继续优先走 `Bash -> lime task create url-parse --json`,CLI 不可用时再回退 `lime_create_url_parse_task`,最终仍只允许落到标准 `url_parse` task file;若当前上下文缺少 URL,允许 Agent 最多追问 1 个关键问题,但不能伪造“链接已解析完成”。
- Agent 驱动的链接解析/抓取/网页读取命令:`@链接解析` / `@链接` / `@url_parse` / `@抓取` / `@网页读取` / `@web_scrape` 在 `src/components/agent/chat/workspace/useWorkspaceSendActions.ts` 中保留原始用户文本发送。聊天发送边界会把结构化 `url_parse_task` 写入 `request_metadata.harness.url_parse_skill_launch`,同时打开 `request_metadata.harness.allow_model_skills = true`。Rust 侧 `src-tauri/src/commands/aster_agent_cmd/runtime_turn.rs` 与 `src-tauri/src/commands/aster_agent_cmd/url_parse_skill_launch.rs` 会给当前 turn 注入只允许首刀优先调用 `Skill(url_parse)` 的系统提示,并在当前 session permission 与 registry 中显式压制 `ToolSearch / WebSearch / Read / Glob / Grep` 这类 detour tools,避免模型在 `@链接解析` / `@抓取` / `@网页读取` 首刀前先去搜工具目录、联网检索或误读本地文件。后续默认 skill 继续优先走 `Bash -> lime task create url-parse --json`,CLI 不可用时再回退 `lime_create_url_parse_task`,最终仍只允许落到标准 `url_parse` task file;其中 `@抓取` 只是用户侧更偏正文抓取的入口,默认 `extract_goal = full_text`;`@网页读取` 是用户侧更偏阅读总结的入口,默认 `extract_goal = summary`;它们都不是新的 task 协议。若当前上下文缺少 URL,允许 Agent 最多追问 1 个关键问题,但不能伪造“链接已解析完成”“网页已抓取完成”或“网页已读取完成”。
`Claw` 的纯文本排版命令也应沿同一条 current 主链收敛:
@@ -225,10 +256,24 @@ Skill 执行链路同样遵循单一命令边界。当前前端入口为 `src/li
- 工作流入口型命令:`@发布` / `@publish` / `@发文` / `@投稿` 在 `src/components/agent/chat/workspace/useWorkspaceSendActions.ts` 中保留原始用户文本展示,但把实际 dispatch 改写到现有 `/content_post_with_cover ...` 主链,并把结构化 `publish_command` 写入 `request_metadata.harness.publish_command`。当前实现优先复用已有 `content_post_with_cover` 发布工作流、`content-posts/*.md` / `*.publish-pack.json` 产物链,以及 `detectBrowserTaskRequirement(...)` 推导出的浏览器门禁,而不是再发明新的 `publish_task` 协议。若输入里已明确平台后台,如微信公众号后台,必须继续写入 `browser_requirement=required_with_user_step` 与平台 launch URL;若只是整理发布稿而未指定平台,则允许先在同一工作流里生成发布稿与发布前检查,不强行要求浏览器。后续若统一 agent/workflow runtime 成熟,可以把 `@发布` 从当前 slash workflow 迁走,但在那之前不得同时维护第二套发布入口真相。
`Claw` 的纯文本渠道预览命令应复用同一条发布工作流主链:
- 工作流入口型命令:`@渠道预览` / `@预览` / `@preview` 在 `src/components/agent/chat/workspace/useWorkspaceSendActions.ts` 中保留原始用户文本展示,但把实际 dispatch 改写到现有 `/content_post_with_cover ...` 主链,并继续把结构化信息写入 `request_metadata.harness.publish_command`。与 `@发布` 的区别只在语义层:`@渠道预览` 会额外写入 `publish_command.intent=preview`,同时在 dispatch body 中明确要求生成“渠道预览稿”,重点突出标题、首屏摘要、排版层级和封面建议,而不是直接走浏览器后台发布动作。当前实现不新建 `channel_preview_task` 协议、不新建 viewer,也不要求真实浏览器门禁;后续若要做平台级 UI 仿真,也必须继续在现有内容交付主链上演进,而不是重新分叉。
`Claw` 的纯文本上传命令也应复用同一条发布工作流主链:
- 工作流入口型命令:`@上传` / `@upload` / `@上架` 在 `src/components/agent/chat/workspace/useWorkspaceSendActions.ts` 中保留原始用户文本展示,但把实际 dispatch 改写到现有 `/content_post_with_cover ...` 主链,并继续把结构化信息写入 `request_metadata.harness.publish_command`。与 `@渠道预览`、`@发布` 的区别在于语义层:`@上传` 会额外写入 `publish_command.intent=upload`,同时在 dispatch body 中明确要求生成“上传稿与素材清单”,重点突出标题、正文、封面说明、标签建议和上传前检查。若输入里已明确平台后台,如微信公众号后台,必须继续写入 `browser_requirement=required_with_user_step` 与平台 launch URL;若只是整理上传稿而未指定后台,则允许先在同一工作流里生成上传包,不强行要求浏览器。当前实现不新建 `upload_task` 协议,也不新建 viewer。
同时要明确,`publish_command` 不能只停留在发送态 metadata。当前 slash skill 执行层必须继续透传这份 request metadata,把 `preview / upload / publish` 语义写进 `content-posts/*.md` 产物 meta,并由聊天区产物卡片与右侧工作台优先显示“渠道预览稿 / 上传稿 / 发布稿”这类用户语义标题;否则一旦进入 artifact 恢复或历史回访,三类结果又会重新混成同一种普通文稿。会话文件恢复链也必须保留嵌套相对路径与这份产物 metadata,不能只把 `content-posts/...` 当普通文件名恢复,否则右侧工作台仍会退回成普通文稿标题。
`Claw` 的纯文本配音命令也应沿同一条服务型技能主链收敛:
- Agent 驱动的配音命令:`@配音` / `@voice` / `@dubbing` / `@dub` 在 `src/components/agent/chat/workspace/useWorkspaceSendActions.ts` 中保留原始用户文本发送。聊天发送边界会优先从当前 `serviceSkills` / seeded fallback 中解析配音能力(当前兜底为 `cloud-video-dubbing`),并把结构化 `service_scene_launch` 写入 `request_metadata.harness.service_scene_launch`,其中固定 `scene_key=voice_runtime`、`entry_source=at_voice_command`,同时注入 OEM `scene_base_url / tenant_id / session_token` 运行时上下文。Rust 侧 `runtime_turn.rs`、`prompt_context.rs` 与 `tool_runtime/service_skill_tools.rs` 会把当前 turn 切到 `workbench`,并强约束首刀优先调用 `lime_run_service_skill`,由 OEM scene runtime 负责 run / poll。当前上下文缺少明确配音要求时,允许 Agent 最多追问 1 个关键问题;但不能退回普通聊天解释、不能伪造“配音已完成”,也不能重新回流到旧的本地 TTS 测试命令。
`Claw` 的纯文本浏览器命令也应沿同一条真实浏览器工具主链收敛:
- Agent 驱动的浏览器命令:`@浏览器` / `@browser` / `@browse` 在 `src/components/agent/chat/workspace/useWorkspaceSendActions.ts` 中保留原始用户文本发送。聊天发送边界不会再改写成另一套 skill 或 scene,而是显式把 `browser_requirement`、`browser_requirement_reason` 与 `browser_launch_url` 写入 `request_metadata.harness`,同时关闭前端本轮 `webSearch` 偏好,确保后续请求优先走 Lime Browser Assist 与 `mcp__lime-browser__*` 工具,而不是退回 WebSearch 或普通聊天。若正文里出现平台后台、登录、扫码等受保护网页步骤,则继续沿用 `required_with_user_step`;否则默认要求 `required`,并把显式 URL 或搜索入口写入 launch URL。当前命令不应伪装成站点型 `service_skill_launch`,也不应重新造一套 browser task 协议。
这些命令除了 Tauri `generate_handler!` 之外,也必须继续保持 DevBridge dispatcher 已桥接,避免浏览器模式、headless smoke 或 Playwright 续测时回退成 unknown command。
自动化设置链路同样遵循这条路径。当前主入口为 `src/lib/api/automation.ts`,统一承接:
@@ -481,6 +526,8 @@ npm run verify:local
- **站点技能首页入口主链**:首页 / 工作区弹窗只负责补参数、组装 `initialUserPrompt + harness.service_skill_launch` 上下文并进入 `Claw`;真正执行统一收口到 `Claw` 首回合,不再由首页弹窗或工作区挂载副作用直接调用 `site_run_adapter`
- **站点结果沉淀主线**:`site_run_adapter` / `lime_site_run` 优先透传 `content_id` 写回当前主稿;只有缺少 `content_id` 时,才回退到 `project_id` 新建结果文档
- **`markdown_bundle` 落盘回传主线**:当站点结果是 `markdown_bundle` 时,`saved_content` 除了 `content_id / project_id / title`,还应继续回传 `project_root_path / markdown_relative_path / images_relative_dir / meta_relative_path / image_count`,让聊天轻卡与 tool timeline 都能直接说明 Markdown 和图片实际保存到哪里
- **`markdown_bundle` 消费主线**:当前端拿到 `saved_content.markdown_relative_path` 后,聊天轻卡、工具结果卡和站点工作台应优先导航到项目内真实 Markdown 文件,而不是继续打开一份运行摘要 artifact;后续 viewer 渲染相对图片时,也必须以该 Markdown 文件路径作为 base 解析本地资源
- **`markdown_bundle + target_language` 后处理主线**:如果站点技能请求参数显式带了 `target_language`,则 preload 成功后应进入统一“已保存 Markdown 后处理”阶段,由 Agent 使用 `Read / Write / Edit` 直接读取并覆写项目里的真实 Markdown 文件;翻译只作用于正文,代码块、内联代码、URL、相对图片路径、文件路径和 Markdown 结构必须保持原样,禁止再次回退到 `lime_site_run`、`webReader`、`WebFetch`、`WebSearch` 或新建第二份摘要 artifact
- **Claw 站点直跑门禁主链**:`site_get_adapter_launch_readiness` 只负责检测“是否存在已附着的真实浏览器会话 + 目标站点上下文”;`site_run_adapter.require_attached_session = true` 时,后端必须拒绝 managed/default fallback,不能后台偷偷起 Chrome
- **attached-session 执行主链**:真实浏览器附着场景下,Bridge `run_adapter` 只允许下发 `adapter_name + args`,禁止继续透传原始脚本文本到扩展 content script,以免触发站点 CSP 的 `unsafe-eval`
- **站点运行失败语义**:`SiteAdapterRunResult` 至少统一输出 `auth_required / no_matching_context / adapter_runtime_error`,并在前端与 Agent 结果里保留 `report_hint`
+75 -1
View File
@@ -205,6 +205,17 @@ npm run test:contracts
6. 刷新页面或切换会话再返回原话题,确认最近封面任务仍可从 `.lime/tasks` 恢复
7. 如当前上下文带 `contentId`,确认封面任务写回或查看入口仍绑定当前主稿,而不是漂移成普通图片任务
### Claw `@海报` 异步任务验证
1. 在 `Claw` 对话框输入 `@海报 小红书 风格: 清新拼贴 春日咖啡市集活动海报`
2. 确认聊天区先进入 skill 执行态,并能看到 `image_generate` 相关工具轨迹,而不是前端静默直接创建任务
3. 如当前环境走 `Bash -> lime media image generate --json`,确认工具标题与结果摘要对应这条图片任务主链;CLI 不可用时,才允许回退 `lime_create_image_generation_task`
4. 确认请求 metadata 中写入了 `entry_source = at_poster_command`,而不是被当成普通 `@配图` 或另一套海报协议
5. 确认默认海报尺寸会收敛到 `4:5 / 864x1152`,且 prompt 会补齐“海报设计”语义,而不是裸主题词直传
6. 等待任务回流后,确认同一条结果只展示真实 task file 状态,不会额外再插一条前端本地伪造“海报已生成”
7. 刷新页面或切换会话再返回原话题,确认最近海报任务仍可从 `.lime/tasks` 恢复
8. 如当前界面已暴露右侧查看区或任务卡,确认其状态与聊天轻卡一致,且点击后继续复用现有图片 viewer,而不是打开独立海报工作台
### Claw `@转写` 异步任务验证
1. 在 `Claw` 对话框输入 `@转写 https://example.com/interview.mp4 生成逐字稿`
@@ -250,6 +261,35 @@ npm run test:contracts
5. 如当前页面可查看运行时摘要或请求详情,确认 `preferred_team_preset_id=code-triage-team` 与 `code_command.kind` 已注入
6. 刷新页面或切换会话后再返回原话题,确认代码任务对话仍保留在同一条消息主链,不会裂成另一套旁路会话
### Claw `@渠道预览` 工作流验证
1. 在 `Claw` 对话框输入 `@渠道预览 平台:小红书 帮我预览这篇春日咖啡活动文案的首屏效果`
2. 确认聊天区显示的仍是原始 `@渠道预览 ...` 文本,而不是直接把 slash workflow 暴露给用户
3. 如页面可查看发送详情或运行时摘要,确认实际 dispatch 已导向 `content_post_with_cover`,且 `publish_command.intent=preview` 与 `entry_source=at_channel_preview_command` 存在
4. 确认当前回合不会像 `@发布` 一样直接触发浏览器后台门禁,而是优先产出预览稿 artifact
5. 等待工作流完成后,确认当前话题下出现一份真实预览稿 artifact,而不是只有普通聊天建议
6. 打开右侧查看区,确认预览稿仍复用现有 artifact viewer,不会切到另一套渠道预览工作台
7. 刷新页面或切换会话后再返回原话题,确认渠道预览结果仍可恢复
### Claw `@上传` 工作流验证
1. 在 `Claw` 对话框输入 `@上传 平台:微信公众号后台 帮我把这篇春日咖啡活动文案整理成可直接上传的版本`
2. 确认聊天区显示的仍是原始 `@上传 ...` 文本,而不是直接把 slash workflow 暴露给用户
3. 如页面可查看发送详情或运行时摘要,确认实际 dispatch 已导向 `content_post_with_cover`,且 `publish_command.intent=upload` 与 `entry_source=at_upload_command` 存在
4. 确认命中后台平台时会继续出现真实浏览器门禁,而不是静默退化成普通 artifact 生成
5. 等待工作流完成后,确认当前话题下出现一份真实上传稿 artifact,而不是只有普通聊天建议
6. 打开右侧查看区,确认上传稿仍复用现有 artifact viewer,不会切到另一套上传工作台
7. 刷新页面或切换会话后再返回原话题,确认上传结果仍可恢复
### Claw `@发布合规` 风控验证
1. 在 `Claw` 对话框输入 `@发布合规 内容:这是一篇小红书种草文案 重点:夸大宣传 输出:风险清单`
2. 确认聊天区显示的仍是原始 `@发布合规 ...` 文本,而不是退回普通聊天口头判断
3. 如页面可查看发送详情或运行时摘要,确认实际 dispatch 已导向 `analysis_skill_launch`,且 `entry_source=at_publish_compliance_command` 存在
4. 确认默认会补齐创作风控的 `focus / style / output_format`,而不是沿用普通 `@分析` 的空白默认值
5. 等待结果完成后,确认输出包含风险等级、风险点、修改建议与待确认项,而不是一段笼统提醒
6. 刷新页面或切换会话后再返回原话题,确认风控结果仍可恢复
### Claw `@发布` 工作流验证
1. 在 `Claw` 对话框输入 `@发布 平台:微信公众号后台 帮我把这篇文章整理成可直接发布的版本`
@@ -268,6 +308,15 @@ npm run test:contracts
5. 如果当前 OEM 云端会话缺失,确认界面明确提示需要登录 / 注入会话,而不是伪造“配音已完成”
6. 刷新页面或切换会话后再返回原话题,确认该配音任务的时间线与最近使用状态仍可恢复
### Claw `@浏览器` 真实浏览器任务验证
1. 在 `Claw` 对话框输入 `@浏览器 打开 https://news.baidu.com 并提炼页面主要内容`
2. 确认聊天区保留原始 `@浏览器 ...` 文本,而不是被改写成其它内部 slash 或 skill 协议
3. 如页面可查看发送详情或运行时摘要,确认 `request_metadata.harness.browser_requirement=required` 且 `browser_launch_url=https://news.baidu.com`
4. 确认该回合优先进入 Browser Assist / `mcp__lime-browser__*` 时间线,而不是 WebSearch 或普通聊天解释
5. 如果输入改成后台发布、登录、扫码这类任务,确认 requirement 升级为 `required_with_user_step`
6. 刷新页面或切换会话后再返回原话题,确认浏览器任务时间线与关联浏览器 artifact 仍可恢复
### Claw `@读PDF` Prompt Skill 验证
1. 在 `Claw` 对话框输入 `@读PDF /tmp/agent-report.pdf 提炼三点结论并标注关键证据`
@@ -276,7 +325,7 @@ npm run test:contracts
4. 如果输入的是本地路径,确认 Agent 不会再追问“请上传 PDF”,而是直接读取并输出文档信息、核心要点、关键证据
5. 如果输入里只有 PDF URL,确认 Agent 最多只追问 1 个关键问题请求本地路径或导入工作区,而不是伪造“已读 PDF”
### Claw `@链接解析` 异步任务验证
### Claw `@链接解析 / @抓取` 异步任务验证
1. 在 `Claw` 对话框输入 `@链接解析 https://example.com/agent 提取要点 并整理成投资人可读摘要`
2. 确认聊天区先进入 skill 执行态,并能看到 `url_parse` 相关工具轨迹,而不是前端静默退回普通总结
@@ -284,6 +333,17 @@ npm run test:contracts
4. 如果当前回合无法即时抓取正文,也必须看到真实 `url_parse` task file 被创建,且 `extractStatus` 为 `pending_extract`,而不是停留在口头解释
5. 如果输入里没有 URL,确认 Agent 最多只追问 1 个关键问题请求补充链接,而不是直接创建空任务或伪造完成态
6. 刷新页面或切换会话再返回原话题,确认最近链接解析任务仍可从 `.lime/tasks` 恢复
7. 再输入 `@抓取 https://example.com/post 帮我抓正文并整理成素材库摘要`,确认仍走同一条 `url_parse` task 主链,但 `entry_source = at_web_scrape_command`,并默认携带 `extract_goal = full_text`
8. 再输入 `@网页读取 https://example.com/post 帮我读这篇文章并告诉我核心结论`,确认仍走同一条 `url_parse` task 主链,但 `entry_source = at_webpage_read_command`,并默认携带 `extract_goal = summary`
### Claw `@竞品` 研究报告验证
1. 在 `Claw` 对话框输入 `@竞品 Claude 与 Gemini 在中国开发者市场的差异`
2. 确认聊天区先进入 skill 执行态,并能看到 `report_generate` 相关工具轨迹,而不是前端静默退回普通聊天对比
3. 确认运行时仍沿 `report_generate -> search_query / WebSearch` 主链,而不是退回一次性普通搜索
4. 确认 `report_request.entry_source = at_competitor_command`
5. 确认默认会补齐竞品分析的 `focus` 与 `output_format`,而不是沿用普通 `@研报` 的默认值
6. 刷新页面或切换会话再返回原话题,确认竞品分析结果仍按原会话恢复
### Slash Skill / Skill 执行验证
@@ -293,6 +353,20 @@ npm run test:contracts
4. 打开控制台,确认浏览器模式接通 DevBridge 时不再出现 `execute_skill`、`list_executable_skills` 或 `get_skill_detail` 的 unknown command 报错
5. 如当前 skill 设计为走 `Bash -> lime ...`,继续确认最终反馈的是任务提交摘要或任务状态,而不是前端本地伪造成功态
### 聊天结果保存为技能验证
1. 在 `Claw / 创作` 中完成一段足够长的助手结果
2. 确认助手消息操作区出现 `保存为技能`
3. 点击后确认页面跳到 `技能`,并自动打开脚手架对话框
4. 确认对话框仍只暴露轻量基础字段,但已经带着来源摘要
5. 直接创建后,确认生成的 `SKILL.md` 预览里已经包含:
- `何时使用`
- `输入`
- `执行步骤`
- `输出`
- `失败回退`
6. 如当前链路来自聊天结果沉淀,确认这些 section 不是通用空壳,而是带有本次结果提炼出的上下文
### Slash Scene / ServiceSkill 验证
1. 进入 `Claw` 对话框,确认当前租户目录里存在一个 `entries.kind=scene` 的场景,例如 `/daily-trend-brief`
+25 -3
View File
@@ -86,6 +86,8 @@
如果本轮涉及 MCP bridge runtime tool surface、inventory 或 ToolSearch,还要同步检查 Rust extension 注入、inventory 快照、浏览器 fallback mock 与 GUI 面板命名;当前唯一命名事实源是 `mcp__<server>__<tool>`,对应 extension surface key 为 `mcp__<server>`,不要让 mock 或 UI 退回裸 `server__tool`。
如果本轮涉及 `create_skill_scaffold_for_app`、`SkillsPage / SkillScaffoldDialog`,或“聊天结果 -> Skill 脚手架”沉淀闭环,还要同步检查前端网关、Rust 模板、DevBridge 分发与默认 mock 是否仍保持同一条主链;若新增了结构化骨架字段,至少要确认 `何时使用 / 输入 / 执行步骤 / 输出 / 失败回退` 能真实落进生成后的 `SKILL.md`。
### 3. 用户可见 UI 改动必须补稳定回归
- 优先补现有 `*.test.tsx` 的关键文案、状态与交互断言
@@ -185,34 +187,41 @@ npm run bridge:health -- --timeout-ms 120000
- 检查 `DevBridge` 是否可用
- 检查纯文本 `Claw @配图` 是否已经走 `原始用户消息 -> harness.image_skill_launch -> Agent 首刀 Skill(image_generate) -> Bash/lime media image generate --json 或 lime_create_image_generation_task -> task/timeline` 主链,以及显式图片动作是否也已经走 `synthetic user message / displayContent -> harness.image_skill_launch -> Agent 首刀 Skill(image_generate) -> task/timeline`,而不是回流前端直连图片服务、卡在 `ToolSearch / WebSearch / Read / Glob / Grep`,或让 `lime media image generate --json` / `lime task create image --json` 只停在 `pending_submit`
- 检查纯文本 `Claw @封面` 是否已经走 `原始用户消息 -> harness.cover_skill_launch -> Agent 首刀 Skill(cover_generate) -> task file` 主链,而不是回流成普通图片命令、卡在 `ToolSearch / WebSearch / Read / Glob / Grep`,或前端本地伪造结果
- 检查纯文本 `Claw @海报` 是否已经走 `原始用户消息 -> harness.image_skill_launch -> Agent 首刀 Skill(image_generate) -> Bash/lime media image generate --json 或 lime_create_image_generation_task -> task/timeline` 主链,而不是回流成普通聊天或另一套海报协议、卡在 `ToolSearch / WebSearch / Read / Glob / Grep`,或前端本地伪造结果;同时确认默认 `entry_source=at_poster_command`、默认尺寸 `4:5 -> 864x1152` 与“海报设计”语义补齐仍然成立
- 检查纯文本 `Claw @视频` 是否已经走 `原始用户消息 -> harness.video_skill_launch -> Agent 首刀 Skill(video_generate) -> Bash/lime media video generate --json 或 create_video_generation_task -> task/timeline` 主链,而不是卡在 `ToolSearch / WebSearch / Read / Glob / Grep`,或前端本地伪造结果
- 检查纯文本 `Claw @播报` 是否已经走 `原始用户消息 -> harness.broadcast_skill_launch -> Agent 首刀 Skill(broadcast_generate) -> task file` 主链,而不是退回普通聊天改写、卡在 `ToolSearch / WebSearch / Read / Glob / Grep`,或前端本地伪造结果
- 检查纯文本 `Claw @素材` 是否已经走 `原始用户消息 -> harness.resource_search_skill_launch -> Agent 首刀 Skill(modal_resource_search) -> 图片直搜时优先 lime_search_web_images / 其余情况走 task file` 主链,而不是回流到前端本地素材页逻辑、卡在 `ToolSearch / WebSearch / Read / Glob / Grep`,或把 session permission 拒绝直接暴露给用户
- 检查纯文本 `Claw @搜索` 是否已经走 `原始用户消息 -> harness.research_skill_launch -> Agent 首刀 Skill(research) -> search_query / tool timeline` 主链,而不是直接凭模型记忆回答、卡在 `ToolSearch / Read / Glob / Grep` 这类工具目录/本地文件偏航,或把 session permission 拒绝直接暴露给用户
- 检查纯文本 `Claw @深搜` 是否已经走 `原始用户消息 -> harness.deep_search_skill_launch -> Agent 首刀 Skill(research) -> 多轮 search_query / tool timeline` 主链,而不是退化成一次普通搜索、卡在 `ToolSearch / Read / Glob / Grep` 这类工具目录/本地文件偏航,或把 session permission 拒绝直接暴露给用户
- 检查纯文本 `Claw @研报` 是否已经走 `原始用户消息 -> harness.report_skill_launch -> Agent 首刀 Skill(report_generate) -> search_query / tool timeline` 主链,而不是直接退回普通聊天长文、卡在 `ToolSearch / Read / Glob / Grep` 这类工具目录/本地文件偏航,或把 session permission 拒绝直接暴露给用户
- 检查纯文本 `Claw @竞品` 是否已经走 `原始用户消息 -> harness.report_skill_launch -> Agent 首刀 Skill(report_generate) -> search_query / tool timeline` 主链,而不是退回普通聊天口头对比、卡在 `ToolSearch / Read / Glob / Grep` 这类工具目录/本地文件偏航,或把 session permission 拒绝直接暴露给用户;同时确认默认 `focus` / `output_format` 已按竞品分析语义补齐
- 检查纯文本 `Claw @站点搜索` 是否已经走 `原始用户消息 -> harness.site_search_skill_launch -> Agent 首刀 Skill(site_search) -> lime_site_* / tool timeline` 主链,而不是先退回 `research / WebSearch`、卡在 `ToolSearch / WebSearch / Read / Glob / Grep` 这类通用搜索/本地文件偏航,或把浏览器兼容工具权限拒绝直接暴露给用户
- 检查纯文本 `Claw @读PDF` 是否已经走 `原始用户消息 -> harness.pdf_read_skill_launch -> Agent 首刀 Skill(pdf_read) -> list_directory / read_file / tool timeline` 主链,而不是退回普通聊天总结或前端本地解析、卡在 `ToolSearch / WebSearch / Grep` 这类工具目录/联网检索偏航,或把 session permission 拒绝直接暴露给用户
- 检查纯文本 `Claw @总结` 是否已经走 `原始用户消息 -> harness.summary_skill_launch -> Agent 首刀 Skill(summary) -> 可选 list_directory / read_file / tool timeline` 主链,而不是退回普通聊天总结、卡在 `ToolSearch / WebSearch / Grep` 这类工具目录/联网检索偏航,或把 session permission 拒绝直接暴露给用户;同时确认 `Read / Glob` 仍保留给显式路径场景
- 检查纯文本 `Claw @翻译` 是否已经走 `原始用户消息 -> harness.translation_skill_launch -> Agent 首刀 Skill(translation) -> 可选 list_directory / read_file / tool timeline` 主链,而不是退回普通聊天翻译、卡在 `ToolSearch / WebSearch / Grep` 这类工具目录/联网检索偏航,或把 session permission 拒绝直接暴露给用户;同时确认 `Read / Glob` 仍保留给显式路径场景
- 检查纯文本 `Claw @分析` 是否已经走 `原始用户消息 -> harness.analysis_skill_launch -> Agent 首刀 Skill(analysis) -> 可选 list_directory / read_file / tool timeline` 主链,而不是退回普通聊天分析、卡在 `ToolSearch / WebSearch / Grep` 这类工具目录/联网检索偏航,或把 session permission 拒绝直接暴露给用户;同时确认 `Read / Glob` 仍保留给显式路径场景
- 检查纯文本 `Claw @发布合规` 是否已经走 `原始用户消息 -> harness.analysis_skill_launch -> Agent 首刀 Skill(analysis) -> 可选 list_directory / read_file / tool timeline` 主链,而不是退回普通聊天判断、重新长出另一套法务协议,或把 session permission 拒绝直接暴露给用户;同时确认默认 `focus/style/output_format` 与 `entry_source=at_publish_compliance_command` 已按创作风控语义补齐
- 检查纯文本 `Claw @转写` 是否已经走 `原始用户消息 -> harness.transcription_skill_launch -> Agent 首刀 Skill(transcription_generate) -> task file` 主链,而不是回流到前端直连旧 ASR 接口、卡在 `ToolSearch / WebSearch / Read / Glob / Grep` 这类通用工具偏航,或把 session permission 拒绝直接暴露给用户
- 检查纯文本 `Claw @链接解析` 是否已经走 `原始用户消息 -> harness.url_parse_skill_launch -> Agent 首刀 Skill(url_parse) -> task file` 主链,而不是退回普通聊天总结、卡在 `ToolSearch / WebSearch / Read / Glob / Grep` 这类通用工具偏航,或把 session permission 拒绝直接暴露给用户
- 检查纯文本 `Claw @链接解析 / @抓取 / @网页读取` 是否已经走 `原始用户消息 -> harness.url_parse_skill_launch -> Agent 首刀 Skill(url_parse) -> task file` 主链,而不是退回普通聊天总结、卡在 `ToolSearch / WebSearch / Read / Glob / Grep` 这类通用工具偏航,或把 session permission 拒绝直接暴露给用户;同时确认 `@抓取` 默认会把 `extract_goal` 收敛到 `full_text`,`@网页读取` 默认会把 `extract_goal` 收敛到 `summary`
- 检查纯文本 `Claw @排版` 是否已经走 `原始用户消息 -> harness.typesetting_skill_launch -> Agent 首刀 Skill(typesetting) -> task file` 主链,而不是退回普通聊天润色、卡在 `ToolSearch / WebSearch / Read / Glob / Grep` 这类通用工具偏航,或把 session permission 拒绝直接暴露给用户
- 检查纯文本 `Claw @网页` 是否已经走 `原始用户消息 -> harness.webpage_skill_launch -> Agent 首刀 Skill(webpage_generate) -> write_file HTML artifact` 主链,而不是退回普通聊天口头方案、卡在 `ToolSearch / WebSearch / Read / Glob / Grep` 这类通用工具偏航,或没有真实 `.html` 文件就宣布完成
- 检查纯文本 `Claw @PPT` 是否已经走 `原始用户消息 -> harness.presentation_skill_launch -> Agent 首刀 Skill(presentation_generate) -> write_file Markdown artifact` 主链,而不是退回普通聊天口头提纲、卡在 `ToolSearch / WebSearch / Read / Glob / Grep` 这类通用工具偏航,或没有真实演示稿文件就宣布完成
- 检查纯文本 `Claw @表单` 是否已经走 `原始用户消息 -> harness.form_skill_launch -> Agent 首刀 Skill(form_generate) -> ```a2ui simple form JSON` 主链,而不是退回普通聊天字段建议、卡在 `ToolSearch / WebSearch / Read / Glob / Grep` 这类通用工具偏航,或回流成单文件 HTML 表单原型;同时确认 render contract 已收敛为 `form + json`
- 检查纯文本 `Claw @代码` 是否已经走 `原始用户消息 -> harness.code_command + preferred_team_preset_id -> code_orchestrated -> code_execution / tools / team runtime` 主链,而不是继续停留在普通聊天、没有打开 `task/subagent` 偏好,或把代码任务改写成另一套 prompt / workflow 旁路
- 检查纯文本 `Claw @渠道预览` 是否已经走 `原始用户消息 -> displayContent 保留 -> /content_post_with_cover -> artifact` 主链,而不是退回普通聊天解释、重新长出另一套 `channel_preview_task` 协议,或静默混成正式 `@发布`;同时确认 `publish_command.intent=preview`、`entry_source=at_channel_preview_command` 与预览稿意图补齐仍然成立
- 检查纯文本 `Claw @上传` 是否已经走 `原始用户消息 -> displayContent 保留 -> /content_post_with_cover -> artifact` 主链,而不是退回普通聊天解释、重新长出另一套 `upload_task` 协议,或静默混成正式 `@发布`;同时确认 `publish_command.intent=upload`、`entry_source=at_upload_command` 与上传稿意图补齐仍然成立;若命中平台后台,也要确认浏览器门禁继续生效
- 检查纯文本 `Claw @发布` 是否已经走 `原始用户消息 -> displayContent 保留 -> dispatch /content_post_with_cover -> content_post workflow` 主链,而不是直接把 `@发布` 文本原样当普通聊天发送,或重新造一套 `publish_task` 协议;同时确认平台后台类输入会继续触发 `browser_requirement`
- 检查纯文本 `Claw @配音` 是否已经走 `原始用户消息 -> harness.service_scene_launch(scene_key=voice_runtime) -> Agent 首刀 lime_run_service_skill -> OEM scene run/timeline` 主链,而不是退回普通聊天解释、误走站点型 `service_skill_launch`,或重新回流旧的本地 TTS 测试命令;同时确认 `skill_id`、OEM runtime 上下文与最近使用记录都能写回
- 检查纯文本 `Claw @浏览器` 是否已经走 `原始用户消息 -> harness.browser_requirement/browser_launch_url -> Browser Assist / mcp__lime-browser__* timeline` 主链,而不是退回 WebSearch、普通聊天解释,或错误伪装成站点型 `service_skill_launch`;同时确认前端本轮 `webSearch` 已关闭
- 检查产品型 `/scene-key` 是否已经走 `原始用户消息 -> harness.service_scene_launch -> Agent 首刀 lime_run_service_skill -> OEM run/timeline` 主链,而不是前端直接调用云端 run API
- 如果某个 `/scene-key` 绑定的是 `site_adapter` 型技能,还要额外检查 `scene -> linkedSkillId -> 完整 ServiceSkill 目录 -> harness.service_skill_launch` 这条绑定链是否仍然成立,避免首页隐藏 site skill 后 slash scene 变成“目录可见但执行找不到 skill”
- 如果某个 `site_adapter` 结果开始返回 `markdown_bundle`,还要确认保存链会把 Markdown、图片和 `meta.json` 一起落到项目导出目录,并把重写后的相对图片路径写回内容 metadata;同时确认聊天轻卡或 tool timeline 能显示项目目录、Markdown 路径和图片数量,不能只把远程图片 URL 或临时 DOM 文本留在聊天结果里
- 如果某个 `site_adapter` 结果开始返回 `markdown_bundle`,还要确认保存链会把 Markdown、图片和 `meta.json` 一起落到项目导出目录,并把重写后的相对图片路径写回内容 metadata;同时确认聊天轻卡或 tool timeline 能显示项目目录、Markdown 路径和图片数量,不能只把远程图片 URL 或临时 DOM 文本留在聊天结果里;进入工作区后还要实际打开项目里的真实 `index.md`,确认正文不是运行摘要副本,且相对图片已经在预览里渲染出来
高频场景:
- 修改 `safeInvoke` / `invoke`
- 修改 `execute_skill`、`list_executable_skills`、`get_skill_detail` 或它们在 DevBridge / mock 中的分流
- 修改 `create_skill_scaffold_for_app`、技能草稿透传字段,或“聊天结果 -> Skill 脚手架”主链
- 修改 `src/lib/api/document-export.ts`、`save_exported_document`,或把新的 GUI 导出入口接到本地文件保存主链
- 修改 `agent_runtime_submit_turn.turn_config.approval_policy / sandbox_policy`
- 修改 `agent_runtime_submit_turn.request_metadata.harness.team_memory_shadow`
@@ -229,24 +238,30 @@ npm run bridge:health -- --timeout-ms 120000
- 修改 `get_model_registry_provider_ids`、Provider 模型映射或 `src-tauri/resources/models/index.json` 真相源读取语义
- 修改 `create_image_generation_task_artifact`、`get_media_task_artifact`、`list_media_task_artifacts`、`cancel_media_task_artifact`、`src/lib/api/mediaTasks.ts`、`src/lib/api/skill-execution.ts`、`useWorkspaceSendActions`、`useWorkspaceImageWorkbenchActionRuntime`、`runtime_turn`,或调整 `Claw @配图 -> harness.image_skill_launch -> Agent 首刀 Skill(image_generate) -> task/timeline` 的异步图片任务主链
- 修改 `@封面` parser、`useWorkspaceSendActions`、`runtime_turn`、`cover_skill_launch`、`lime task create cover`、`cover_generate` skill 或 `lime_create_cover_generation_task`,尤其是调整 `Claw @封面 -> harness.cover_skill_launch -> Agent 首刀 Skill(cover_generate) -> task file` 主链
- 修改 `@海报` parser、`useWorkspaceSendActions`、`runtime_turn`、`image_skill_launch`、`lime media image generate --json`、`image_generate` skill 或相关图片 timeline 展示,尤其是调整 `Claw @海报 -> harness.image_skill_launch -> Agent 首刀 Skill(image_generate) -> task/timeline` 主链
- 修改 `@播报` parser、`useWorkspaceSendActions`、`runtime_turn`、`broadcast_skill_launch`、`lime task create broadcast`、`broadcast_generate` skill 或 `lime_create_broadcast_generation_task`,尤其是调整 `Claw @播报 -> harness.broadcast_skill_launch -> Agent 首刀 Skill(broadcast_generate) -> task file` 主链
- 修改 `@素材` parser、`useWorkspaceSendActions`、`runtime_turn`、`resource_search_skill_launch`、`lime task create resource-search`、`modal_resource_search` skill 或 `lime_create_modal_resource_search_task`,尤其是调整 `Claw @素材 -> harness.resource_search_skill_launch -> Agent 首刀 Skill(modal_resource_search) -> task file` 主链
- 修改 `@搜索` parser、`useWorkspaceSendActions`、`runtime_turn`、`research_skill_launch`、`research` 默认 skill 或相关 tool timeline 展示,尤其是调整 `Claw @搜索 -> harness.research_skill_launch -> Agent 首刀 Skill(research) -> search_query / timeline` 主链
- 修改 `@深搜` parser、`useWorkspaceSendActions`、`runtime_turn`、`deep_search_skill_launch`、`research` 默认 skill 或相关 tool timeline 展示,尤其是调整 `Claw @深搜 -> harness.deep_search_skill_launch -> Agent 首刀 Skill(research) -> 多轮 search_query / timeline` 主链
- 修改 `@研报` parser、`useWorkspaceSendActions`、`runtime_turn`、`report_skill_launch`、`report_generate` 默认 skill 或相关 tool timeline 展示,尤其是调整 `Claw @研报 -> harness.report_skill_launch -> Agent 首刀 Skill(report_generate) -> search_query / timeline` 主链
- 修改 `@竞品` parser、`useWorkspaceSendActions`、`runtime_turn`、`report_skill_launch`、`report_generate` 默认 skill 或相关 tool timeline 展示,尤其是调整 `Claw @竞品 -> harness.report_skill_launch -> Agent 首刀 Skill(report_generate) -> search_query / timeline` 主链
- 修改 `@站点搜索` parser、`useWorkspaceSendActions`、`runtime_turn`、`site_search_skill_launch`、`site_search` 默认 skill 或相关 `lime_site_*` timeline 展示,尤其是调整 `Claw @站点搜索 -> harness.site_search_skill_launch -> Agent 首刀 Skill(site_search) -> lime_site_* / timeline` 主链
- 修改 `@读PDF` parser、`useWorkspaceSendActions`、`runtime_turn`、`pdf_read_skill_launch`、`pdf_read` 默认 skill 或相关 `list_directory / read_file` timeline 展示,尤其是调整 `Claw @读PDF -> harness.pdf_read_skill_launch -> Agent 首刀 Skill(pdf_read) -> list_directory / read_file / timeline` 主链
- 修改 `@总结` parser、`useWorkspaceSendActions`、`runtime_turn`、`summary_skill_launch`、`summary` 默认 skill 或相关 skill / tool timeline 展示,尤其是调整 `Claw @总结 -> harness.summary_skill_launch -> Agent 首刀 Skill(summary) -> 可选 list_directory/read_file / timeline` 主链
- 修改 `@翻译` parser、`useWorkspaceSendActions`、`runtime_turn`、`translation_skill_launch`、`translation` 默认 skill 或相关 skill / tool timeline 展示,尤其是调整 `Claw @翻译 -> harness.translation_skill_launch -> Agent 首刀 Skill(translation) -> 可选 list_directory/read_file / timeline` 主链
- 修改 `@分析` parser、`useWorkspaceSendActions`、`runtime_turn`、`analysis_skill_launch`、`analysis` 默认 skill 或相关 skill / tool timeline 展示,尤其是调整 `Claw @分析 -> harness.analysis_skill_launch -> Agent 首刀 Skill(analysis) -> 可选 list_directory/read_file / timeline` 主链
- 修改 `@发布合规` parser、`useWorkspaceSendActions`、`analysis_skill_launch`、`analysis` 默认 skill 或相关 skill / tool timeline 展示,尤其是调整 `Claw @发布合规 -> harness.analysis_skill_launch -> Agent 首刀 Skill(analysis) -> 风控结论 / timeline` 主链
- 修改 `@转写` parser、`useWorkspaceSendActions`、`runtime_turn`、`transcription_skill_launch`、`lime task create transcription`、`transcription_generate` skill 或 `lime_create_transcription_task`,尤其是调整 `Claw @转写 -> harness.transcription_skill_launch -> Agent 首刀 Skill(transcription_generate) -> task file` 主链
- 修改 `@链接解析` parser、`useWorkspaceSendActions`、`runtime_turn`、`url_parse_skill_launch`、`lime task create url-parse`、`url_parse` skill 或 `lime_create_url_parse_task`,尤其是调整 `Claw @链接解析 -> harness.url_parse_skill_launch -> Agent 首刀 Skill(url_parse) -> task file` 主链
- 修改 `@链接解析` / `@抓取` / `@网页读取` parser、`useWorkspaceSendActions`、`runtime_turn`、`url_parse_skill_launch`、`lime task create url-parse`、`url_parse` skill 或 `lime_create_url_parse_task`,尤其是调整 `Claw @链接解析 / @抓取 / @网页读取 -> harness.url_parse_skill_launch -> Agent 首刀 Skill(url_parse) -> task file` 主链
- 修改 `@排版` parser、`useWorkspaceSendActions`、`runtime_turn`、`typesetting_skill_launch`、`lime task create typesetting`、`typesetting` skill 或 `lime_create_typesetting_task`,尤其是调整 `Claw @排版 -> harness.typesetting_skill_launch -> Agent 首刀 Skill(typesetting) -> task file` 主链
- 修改 `@网页` parser、`useWorkspaceSendActions`、`runtime_turn`、`webpage_skill_launch`、`webpage_generate` skill 或 HTML artifact 预览链路,尤其是调整 `Claw @网页 -> harness.webpage_skill_launch -> Agent 首刀 Skill(webpage_generate) -> write_file HTML artifact` 主链
- 修改 `@PPT` parser、`useWorkspaceSendActions`、`runtime_turn`、`presentation_skill_launch`、`presentation_generate` skill 或演示稿 artifact 预览链路,尤其是调整 `Claw @PPT -> harness.presentation_skill_launch -> Agent 首刀 Skill(presentation_generate) -> write_file Markdown artifact` 主链
- 修改 `@代码` parser、`useWorkspaceSendActions`、mention builtin command 或 `code_orchestrated` 发送边界,尤其是调整 `Claw @代码 -> harness.code_command -> code_orchestrated -> tools / team runtime` 主链
- 修改 `@渠道预览` parser、`useWorkspaceSendActions`、`publish_command` metadata 或 `content_post_with_cover` 预览意图编排,尤其是调整 `Claw @渠道预览 -> publish_command.intent=preview -> /content_post_with_cover -> artifact` 主链
- 修改 `@上传` parser、`useWorkspaceSendActions`、`publish_command` metadata、浏览器门禁推导或 `content_post_with_cover` 上传意图编排,尤其是调整 `Claw @上传 -> publish_command.intent=upload -> /content_post_with_cover -> artifact` 主链
- 修改 `@发布` parser、`useWorkspaceSendActions`、content post workflow 入口或浏览器门禁推导,尤其是调整 `Claw @发布 -> displayContent/raw -> /content_post_with_cover -> publish workflow` 主链
- 修改 `@配音` parser、`useWorkspaceSendActions`、`service_scene_launch` 组装、OEM runtime 上下文注入或 `lime_run_service_skill` 配音场景接线,尤其是调整 `Claw @配音 -> harness.service_scene_launch(scene_key=voice_runtime) -> lime_run_service_skill -> OEM run/timeline` 主链
- 修改 `@浏览器` parser、`useWorkspaceSendActions`、Browser Assist 直发策略、`browser_requirement` 推导或 `mcp__lime-browser__*` 浏览器工具接线,尤其是调整 `Claw @浏览器 -> harness.browser_requirement/browser_launch_url -> Browser Assist timeline` 主链
- 修改 `/scene-key` 解析、`serviceSkillSceneLaunch`、`useWorkspaceSendActions`、`runtime_turn`、`prompt_context`、`lime_run_service_skill` 或 `client/skills` scene 目录协议,尤其是调整 `Claw /scene-key -> harness.service_scene_launch -> Agent 首刀 lime_run_service_skill -> OEM run/timeline` 主链
- 修改 `src/lib/dev-bridge/`
- 修改 `src/lib/tauri-mock/`
@@ -412,6 +427,13 @@ npm run bridge:health -- --timeout-ms 120000
- 若 `service_scene_launch` / harness 协议继续扩散,再补 `npm run test:contracts`
- 若 GUI 主路径受影响,再补 `npm run verify:gui-smoke`
如果本轮修改了 `Claw @浏览器` 或显式浏览器任务接线,最低校验至少包含:
- `npx vitest run "src/components/agent/chat/utils/browserWorkbenchCommand.test.ts" "src/components/agent/chat/workspace/useWorkspaceSendActions.test.tsx" "src/components/agent/chat/skill-selection/CharacterMention.test.tsx" "src/lib/api/skillCatalog.test.ts"`
- 如有改动扩散到 Browser Assist 自动拉起、画布附着或浏览器工具结果回流,再补 `index.test.tsx`、`useWorkspaceBrowserAssistRuntime` 或相关 artifact/runtime 定向回归
- 若 `browser_requirement` / harness 协议继续扩散,再补 `npm run test:contracts`
- 若 GUI 主路径受影响,再补 `npm run verify:gui-smoke`
如果本轮修改了 Provider 模型真相源或设置页中的“支持的模型”展示逻辑,还应额外确认:
- 资源索引损坏时,GUI 会明确提示“模型真相源异常”
+10
View File
@@ -158,6 +158,16 @@ Lime 内部适配器标准至少包含以下字段语义:
- 不能为了保留来源格式的完整性,引入第二套 runtime、协议或错误语义
- 不能因为“某来源支持某能力”就直接判定 Lime 也应该支持
## Scene 边界
站点适配器与 slash scene 的固定关系如下:
- `site-adapter` 是步骤执行器,不是产品场景本体
- 用户可见的 `/scene` 真相应落在 `Scene Skill` / `ServiceSkill`
- `slotSchema`、`readinessRequirements` 负责声明缺失输入;是否弹 GUI 表单属于渲染层
- 如果需要补参,scene runtime 应先产出结构化 gate request,再由前端把 gate request 映射成 `a2ui`
- 不要为了单个站点把“缺 URL / 缺项目 / 缺浏览器会话”的逻辑散落在页面组件里
## 命名标准
适配器唯一标识统一使用:
+29
View File
@@ -183,6 +183,12 @@ Lime 的技能标准必须分成四层:
新增技能时,优先补结构化输入字段,不要继续把参数要求散落在 prompt 和按钮文案里。
固定边界:
- `slotSchema` / `readinessRequirements` 是技能补参真相
- `a2ui` 只允许作为 GUI 渲染层,把缺失信息映射成表单
- 不要把 `a2ui` 结构直接写进 skill catalog、runtime metadata 或协议字段
### 3. 运行时层
作用:
@@ -238,6 +244,29 @@ Lime 技能能力必须明确区分三个对象:
- 把 skill 绑定到具体执行面
- 解决“最终交给谁执行”
### 4. Scene Skill
作用:
- 把产品型 slash scene 组织成可复用的技能流程
- 解决“为了达成一个目标,需要按什么步骤驱动 skill / adapter / runtime”
固定规则:
- `/scene` 的长期真相是 `Scene Skill`,不是前端 if/else,不是单站点特判
- `site-adapter` 只能作为 `Scene Skill` 某一步的执行提供者,不能反客为主变成 scene runtime 本体
- 缺失信息时,优先由 `Scene Skill` 产出结构化 gate request,再由 GUI 层映射成 `a2ui`
- gate request 负责“缺什么、补什么、补完后怎么恢复”;`a2ui` 只负责“怎么收集”
- `Scene Skill` 产生的过程默认应回到当前 assistant 对话流里;如果 runtime 为了稳定性做了 preload、预检查或首刀绑定,这些步骤也要回放成对话内联过程,而不是只写隐藏 prompt 或额外工具卡
推荐模式组合:
- 主模式优先用 `Pipeline`
- 缺参或门禁用 `Inversion`
- 产物结构化输出用 `Generator`
- 封装站点 / CDP / 浏览器能力用 `Tool Wrapper`
- 只有在确实需要产物复核时再叠加 `Reviewer`
必须遵守:
- adapter 不是 skill
@@ -136,7 +136,7 @@
## 参考资料
- 研究报告:Lime AI Agent 改进研究报告
- aster-rust GitHub: https://github.com/astercloud/aster-rust
- 当前内置路径:`src-tauri/crates/aster-rust/`
- 相关文件:
- src-tauri/crates/services/src/session_context_service.rs
- src-tauri/crates/agent/src/aster_state_support.rs
@@ -563,12 +563,12 @@ Stage 2 的职责是生成正式结构化交付物。
如果同步建设 `aster-rust`,则建议把运行时通用能力下沉为独立 runtime 模块:
- `/Users/coso/Documents/dev/ai/astercloud/aster-rust/crates/aster/src/runtime/thread.rs`
- `/Users/coso/Documents/dev/ai/astercloud/aster-rust/crates/aster/src/runtime/turn.rs`
- `/Users/coso/Documents/dev/ai/astercloud/aster-rust/crates/aster/src/runtime/item.rs`
- `/Users/coso/Documents/dev/ai/astercloud/aster-rust/crates/aster/src/runtime/event.rs`
- `/Users/coso/Documents/dev/ai/astercloud/aster-rust/crates/aster/src/runtime/prompt.rs`
- `/Users/coso/Documents/dev/ai/astercloud/aster-rust/crates/aster/src/runtime/schema.rs`
- `src-tauri/crates/aster-rust/crates/aster/src/runtime/thread.rs`
- `src-tauri/crates/aster-rust/crates/aster/src/runtime/turn.rs`
- `src-tauri/crates/aster-rust/crates/aster/src/runtime/item.rs`
- `src-tauri/crates/aster-rust/crates/aster/src/runtime/event.rs`
- `src-tauri/crates/aster-rust/crates/aster/src/runtime/prompt.rs`
- `src-tauri/crates/aster-rust/crates/aster/src/runtime/schema.rs`
这部分是框架层远期形态参考,不构成 Lime 当前仓库的直接实施清单。
+4 -4
View File
@@ -62,10 +62,10 @@
来自以下文件:
- `/Users/coso/Documents/dev/ai/astercloud/aster-rust/crates/aster/src/blueprint/README.md`
- `/Users/coso/Documents/dev/ai/astercloud/aster-rust/crates/aster/src/blueprint/types.rs`
- `/Users/coso/Documents/dev/ai/astercloud/aster-rust/crates/aster/src/blueprint/task_tree_manager.rs`
- `/Users/coso/Documents/dev/ai/astercloud/aster-rust/crates/aster/src/blueprint/worker_executor.rs`
- `src-tauri/crates/aster-rust/crates/aster/src/blueprint/README.md`
- `src-tauri/crates/aster-rust/crates/aster/src/blueprint/types.rs`
- `src-tauri/crates/aster-rust/crates/aster/src/blueprint/task_tree_manager.rs`
- `src-tauri/crates/aster-rust/crates/aster/src/blueprint/worker_executor.rs`
可确认:
+1 -1
View File
@@ -821,7 +821,7 @@ src-tauri/src/services/artifact_document_service.rs
如果后续同步推进 `aster-rust`,则建议新增独立 runtime 模块,而不是继续堆进 `blueprint/`:
```text
/Users/coso/Documents/dev/ai/astercloud/aster-rust/crates/aster/src/runtime/
src-tauri/crates/aster-rust/crates/aster/src/runtime/
```
这部分是框架层远期方向,不覆盖 Lime 当前仓库已确定的运行时收口主计划。