- 将 A_Memorix 从旧 submodule / 插件形态迁入主线源码,主体落到 src/A_memorix - 调整主程序接入方式,使 A_Memorix 作为源码内长期记忆子系统运行 - 回收父项目插件体系中针对 A_Memorix 的特判,减少对 plugin 通用层的侵入 - 将长期记忆配置、运行时、自检、导入、调优等能力收口到 memory 路由与主线服务层 - 重做长期记忆控制台与图谱页面,按 MaiBot 现有 dashboard 风格接入 - 补充实体关系图与证据视图双视图能力,支持查看节点、关系、段落及其证据链路 - 新增长期记忆配置编辑器与 memory-api,支持主线内配置管理 - 补齐删除管理能力:删除预览、混合删除、来源批量删除、删除操作恢复 - 优化删除预览与删除操作详情的前端展示,支持分页、检索,并以实体名/关系内容/段落摘要替代单纯 hash 展示 - 修复图谱与控制台相关前端问题,包括证据视图切换、查询触发时机、删除弹层空值保护等 - 新增或更新 A_Memorix 相关测试、WebUI 路由测试、前端 vitest 测试与辅助验证脚本 - 移除旧 plugins/A_memorix、.gitmodules 及相关历史维护文档
57 lines
1.2 KiB
Python
57 lines
1.2 KiB
Python
from __future__ import annotations
|
|
|
|
from pathlib import Path
|
|
|
|
A_MEMORIX_SYSTEM_ID = "a_memorix"
|
|
|
|
|
|
def package_root() -> Path:
|
|
return Path(__file__).resolve().parent
|
|
|
|
|
|
def src_root() -> Path:
|
|
return package_root().parent
|
|
|
|
|
|
def repo_root() -> Path:
|
|
return src_root().parent
|
|
|
|
|
|
def config_path() -> Path:
|
|
return repo_root() / "config" / f"{A_MEMORIX_SYSTEM_ID}.toml"
|
|
|
|
|
|
def default_data_dir() -> Path:
|
|
return repo_root() / "data" / "plugins" / "a-dawn.a-memorix"
|
|
|
|
|
|
def artifacts_root() -> Path:
|
|
return default_data_dir() / "artifacts"
|
|
|
|
|
|
def schema_path() -> Path:
|
|
return package_root() / "config_schema.json"
|
|
|
|
|
|
def web_root() -> Path:
|
|
return package_root() / "web"
|
|
|
|
|
|
def scripts_root() -> Path:
|
|
return package_root() / "scripts"
|
|
|
|
|
|
def resolve_repo_path(raw_path: str | Path | None, *, fallback: Path | None = None) -> Path:
|
|
if raw_path is None:
|
|
return (fallback or default_data_dir()).resolve()
|
|
|
|
raw_value = str(raw_path).strip()
|
|
if not raw_value:
|
|
return (fallback or default_data_dir()).resolve()
|
|
|
|
candidate = Path(raw_value).expanduser()
|
|
if candidate.is_absolute():
|
|
return candidate.resolve()
|
|
|
|
return (repo_root() / candidate).resolve()
|