assistant/apps/admin/source-provenance.md

36 lines
4.8 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 学习后台迁移来源与边界
当前后台以现有 A2A 学习后台裁剪迁入,入口是 `src/A2AWorkbench.tsx`。原项目位于 `D:/qiekj/PenguinUniOS-Workspace/projects/learning`,所属 Git 根为 `D:/qiekj/PenguinUniOS-Workspace`,本轮读取时为 `main`、`db7b54a`。
已阅读原仓库与学习端两层 `AGENTS.md`。源项目冻结并保持只读;未启动原服务、运行原测试、同步索引或修改源文件。当前工具未提供 CodeGraph,依照文件搜索与源文件审查确定迁移边界。未读取或复制 `.env`、账号、浏览器 profile、运行资料、数据库、构建产物与依赖目录。
## 直接迁入后裁剪或适配
所有源路径以下列目录为起点:`apps/console/src/`。
- `App.tsx` 的 `app-shell/sidebar/workspace/page` 布局与底部账号呈现迁入 `src/A2AWorkbench.tsx`;本地会话与空库管理员初始化采用本项目认证适配器,移除学校/项目范围、原账号角色和写入恢复服务依赖。
- `components/SidebarNavigation.tsx` 迁入同名文件,保留原学习分组与学习批次、账本总览、能力实体、脚本测试导航,裁掉本轮没有服务支持的多机、消费与系统管理入口。
- `components/States.tsx`、`PageControls.tsx`、`DetailDrawer.tsx` 直接迁入,作为实际使用的状态、分页、补充信息抽屉组件。
- `components/ScriptParameterTable.tsx` 保留原参数表主体和约束/用途展示,生成合同导入替换为 `learning-view-model.ts` 的最小本地视图类型。参数与用途来自候选 manifest;未知业务覆盖仍显示待核实。对象/列表名称按本项目参数语义调整。
- `components/TestRunHistory.tsx` 保留原测试历史抽屉、表格与分页主体,固定 A2A 包引用改为不可变候选 ID,数据来自本项目 PostgreSQL 中的真实验证记录;SQLite 保留为离线开发与测试适配。
- `pages/LearningCampaignPages.tsx` 的列表、标题、筛选、满高表格和分页主体裁剪迁入同名文件。一条本地任务对应一条明确链路的学习批次,不展示未实现的租约、自动发现、来源目录和覆盖闭合状态。
- `pages/ProgressPage.tsx` 的账本汇总、来源表、内容分栏与右侧详情轨裁剪迁入同名文件,改为本地任务状态和候选/验证统计,不将观察数推断成已学会数。
- `pages/CapabilitiesPage.tsx` 的能力列表、固定版本详情、使用参数/操作链/定位证据 Tabs 迁入 `pages/CandidatesPage.tsx`;生产发布、消费统计、检索描述和语义编辑等未支持分支移除。
- `pages/TestsPage.tsx` 的固定版本测试表、能力选择抽屉与记录详情导航裁剪迁入同名文件;使用本地验证详情适配器展示参数、环境、断言、实际输出与证据。未迁入 SSE、执行宿主派发、停止、失败修复和逐帧回放控制。
- `styles.css` 直接迁入 `a2a-learning.css`,`capability-parameters.css` 直接迁入同名文件;`migration.css` 补明暗主题、本地录制工作区以及窄屏适配,保持原后台信息密度与表格滚动结构。
## 保留的本地适配器
- `api.ts`:本项目 `/api`、同源会话、CSRF、认证过期和结构化错误,不依赖原 API 前缀或 generated contracts。
- `App.tsx`:维护者登录;空库首次启动由后台初始化 `admin / 123456`,已有账号及后续密码不在启动时覆盖。保留手动设置表单供内部关闭自动初始化的验证场景使用。
- `pages/TasksPage.tsx`:新建任务表单,接平台、入口、目标、本地会话引用与参数。
- `pages/TaskDetailPage.tsx`:真实浏览器打开、用户官方页面自行登录、人工确认、观察采集、动作记录与候选生成。使用迁入的 DetailDrawer 查看页面文字。
- `pages/ValidationsPage.tsx` 的 `ValidationDetails/ValidationTable`:本地记录详情适配器,独立来源读回未配置时明确显示缺口。
- `components/common.tsx` 的资源代次防串写、格式化与 JSON 展示保留;较早参考过 `D:/qiekj/browser_use/console/components/common/PageTools.tsx`。早期重建的四菜单 Ant Design Layout 和概览卡片页已由迁入的 A2A 主界面替换。
## 没有迁移的业务
原 `LearningTasksPage.tsx` 是多机外部任务上报监控,依赖 reporter、machine、heartbeat 和事件游标;不将其伪装成本地任务状态。原 production、consumer、semantics、recovery、账号管理、学校/来源身份核验和完整能力包合同也没有复制。相关模块后续按本项目需求与真实接口单独接入。
路由为 `#/tasks`、`#/tasks/:id`、`#/overview`、`#/candidates`、`#/candidates/:id`、`#/validations`。本机示例只验证工具链,小红书模板不是已学习或已验收能力,macOS 与独立来源读回仍需要后续真实验证。