From d7cdf233fa3ed2ee0baf6b24e22348b9c6e9619f Mon Sep 17 00:00:00 2001 From: sean Date: Fri, 16 May 2025 21:16:34 +0800 Subject: [PATCH] refactor: reorganize project structure and move dpml protocol to base directory --- core/context/project-root-dir.executing.md | 106 -------------------- core/context/project.context.md | 3 - core/memory/basic.memory.md | 3 - core/project-base-integration.executing.md | 102 ------------------- core/resource/basic.resource.md | 41 -------- protocol/{pattern => base}/dpml.protocol.md | 0 6 files changed, 255 deletions(-) delete mode 100644 core/context/project-root-dir.executing.md delete mode 100644 core/context/project.context.md delete mode 100644 core/memory/basic.memory.md delete mode 100644 core/project-base-integration.executing.md delete mode 100644 core/resource/basic.resource.md rename protocol/{pattern => base}/dpml.protocol.md (100%) diff --git a/core/context/project-root-dir.executing.md b/core/context/project-root-dir.executing.md deleted file mode 100644 index 18e39df..0000000 --- a/core/context/project-root-dir.executing.md +++ /dev/null @@ -1,106 +0,0 @@ - - -# 项目根目录感知执行流程 - -## 感知执行阶段 - -### A级感知(高可靠性) -```mermaid -flowchart TD - A[开始] --> B{检查IDE API} - B -->|可用| C[使用IDE API获取] - B -->|不可用| D[进入B级感知] - C --> E[验证结果] - E -->|通过| F[返回结果] - E -->|失败| D - - style A fill:#4da6ff,stroke:#0066cc,color:white - style B fill:#d94dbb,stroke:#a13b8f,color:white - style C fill:#4dbb5f,stroke:#36873f,color:white - style D fill:#ffa64d,stroke:#cc7a30,color:white - style E fill:#4dbbbb,stroke:#368787,color:white - style F fill:#71ff71,stroke:#3bc23b,color:white -``` - -1. IDE API调用 -```javascript -const rootDir = cursor.getWorkspaceRoot(); -``` - -2. 结果验证 -```bash -[ -d "${ROOT_DIR}" ] && [ -r "${ROOT_DIR}" ] && [ -x "${ROOT_DIR}" ] -``` - -### B级感知(中等可靠性) - -1. 版本控制检测 -```bash -find . -name ".git" -type d -exec dirname {} \; 2>/dev/null | head -n 1 -``` - -2. 包管理文件检测 -```bash -find . \( -name "package.json" -o -name "pom.xml" -o -name "requirements.txt" \) -type f -exec dirname {} \; 2>/dev/null | head -n 1 -``` - -3. 项目配置文件检测 -```bash -find . -name ".projectrc" -type f -exec dirname {} \; 2>/dev/null | head -n 1 -``` - -### C级感知(低可靠性) - -用户交互确认(仅在A、B级方法都失败时使用) -```bash -echo "请确认项目根目录是否为: $PWD [Y/n]" -read confirmation -``` - -## 验证阶段 - -1. 路径存在性验证 -```bash -[ -d "${ROOT_DIR}" ] -``` - -2. 权限验证 -```bash -[ -r "${ROOT_DIR}" ] && [ -x "${ROOT_DIR}" ] -``` - -3. 项目标志验证 -```bash -[ -e "${ROOT_DIR}/.git" ] || [ -e "${ROOT_DIR}/package.json" ] || [ -e "${ROOT_DIR}/pom.xml" ] -``` - -4. 路径合法性验证 -```bash -[[ "${ROOT_DIR}" =~ ^[/][a-zA-Z0-9._/-]+$ ]] -``` - -## 异常处理 - -1. IDE API不可用 -- 降级到B级感知方法 -- 记录错误信息并继续 - -2. 验证失败 -- 尝试下一级感知方法 -- 记录失败原因并继续 - -## 更新策略 - -1. 自动更新触发条件 -- 会话开始时 -- 工作目录变更时 -- 显式请求更新时 -- 置信度低于0.7时 - -2. 缓存策略 -- 会话内缓存:保持整个会话有效 -- 跨会话缓存:基于项目特征判断有效性 - -> 注意:此执行流程专注于项目根目录的感知机制,通过多级感知策略和严格的验证确保准确性。感知结果可由其他组件进行存储处理。 - - \ No newline at end of file diff --git a/core/context/project.context.md b/core/context/project.context.md deleted file mode 100644 index ad50955..0000000 --- a/core/context/project.context.md +++ /dev/null @@ -1,3 +0,0 @@ - 项目根目录路径 - - diff --git a/core/memory/basic.memory.md b/core/memory/basic.memory.md deleted file mode 100644 index 6bf43cd..0000000 --- a/core/memory/basic.memory.md +++ /dev/null @@ -1,3 +0,0 @@ - - 上下文记忆 - 经验知识体系 \ No newline at end of file diff --git a/core/project-base-integration.executing.md b/core/project-base-integration.executing.md deleted file mode 100644 index 22041b8..0000000 --- a/core/project-base-integration.executing.md +++ /dev/null @@ -1,102 +0,0 @@ - - -# 记忆持久化规则 - -## 记忆存储规则 - -1. 存储位置:记忆文件存储在项目根目录下的`.memory`目录中 -2. 目录创建:如果`.memory`目录不存在,需自动创建 -3. 文件命名:使用class名称作为文件名,如`.memory/{class}.context.md` -4. 文件格式:使用Markdown格式存储记忆内容,使用二级标题区分不同的context id - -## 记忆文件结构 - -记忆文件采用以下结构: - -```markdown ---- -class: class_name ---- - -## context_id_1 -context_content_1 - -## context_id_2 -context_content_2 -``` - -## 记忆操作流程 - -```mermaid -flowchart TD - A[开始] --> B{检查class文件是否存在} - B -->|存在| C[读取已有记忆文件] - B -->|不存在| D[创建新记忆文件] - C --> E{检查context id是否存在} - E -->|存在| F[更新已有context内容] - E -->|不存在| G[添加新context内容] - D --> G - F --> H[保存记忆文件] - G --> H - H --> I[结束] -``` - -# Context与Memory对接流程 - -## 文件组织规则 - -1. Context按class分组存储: -```xml -内容 -→ .memory/{class}.context.md -``` - -2. 在文件内通过二级标题区分不同id: -```markdown -## ${context.id} -${context.content} -``` - -## 对接流程 - -```mermaid -flowchart TD - A[Context感知] --> B[提取class] - B --> C[定位或创建class文件] - C --> D[定位或创建context id段落] - D --> E[更新context内容] - E --> F[保存文件] - - style A fill:#4da6ff,stroke:#0066cc,color:white - style B fill:#d94dbb,stroke:#a13b8f,color:white - style C fill:#4dbb5f,stroke:#36873f,color:white - style D fill:#ffa64d,stroke:#cc7a30,color:white - style E fill:#4dbbbb,stroke:#368787,color:white - style F fill:#71ff71,stroke:#3bc23b,color:white -``` - -### 示例结构 - -输入: -```xml - - /Users/sean/WorkSpaces/temp/promptx-init - -``` - -输出文件 (.memory/project.context.md): -```markdown ---- -class: project ---- - -## rootDir -/Users/sean/WorkSpaces/temp/promptx-init - -## otherProjectContext -其他项目相关上下文内容... -``` - -> 注意:此对接流程采用按类分组的存储策略,减少文件数量,提高管理效率。每个class对应一个文件,文件内使用二级标题组织不同的context内容。 - - \ No newline at end of file diff --git a/core/resource/basic.resource.md b/core/resource/basic.resource.md deleted file mode 100644 index 76dd785..0000000 --- a/core/resource/basic.resource.md +++ /dev/null @@ -1,41 +0,0 @@ - -# Context 协议 - -## 语法 -@context://[class]/[id] - -## 说明 -用于引用系统定义的上下文信息。通过class和id组合访问相应的上下文内容,为AI提供情境感知能力。 - -## 使用方式 -1. 引用特定上下文: `@context://project/rootDir` - 引用project类中ID为"rootDir"的上下文 -2. 获取上下文信息: 系统会自动提取并提供指定ID的上下文内容 - - - -# Memory 协议 - -## 语法 -@memory://[id] - -## 说明 -用于引用记忆系统中存储的内容。通过记忆ID访问对应的记忆内容,记忆内容存储在项目根目录的`.memory`目录下。 - -## 使用方式 -1. 引用特定记忆: `@memory://context` - 引用ID为"context"的记忆 -2. 获取记忆内容: 系统会自动检索`.memory/context.md`文件并提取其内容 - - - -# Experience 协议 - -## 语法 -@experience://[class]/[id] - -## 说明 -用于引用系统积累的经验知识。通过class和id组合访问相应的经验内容,为AI提供经验复用能力。 - -## 使用方式 -1. 引用特定经验: `@experience://problem_solving/error_handling` - 引用problem_solving类中ID为"error_handling"的经验 -2. 获取经验知识: 系统会自动提取并应用指定的经验内容 - \ No newline at end of file diff --git a/protocol/pattern/dpml.protocol.md b/protocol/base/dpml.protocol.md similarity index 100% rename from protocol/pattern/dpml.protocol.md rename to protocol/base/dpml.protocol.md