/** * @furongjun1999/dsh-memory —— 灵枢 DeepSeek Harness 插件 * (大脑唯一真源 = md_cg 认知图;aeis 能力库已下线) * * 把灵枢的时空记忆/知识飞轮/自我认知接入 DSH: * - 记忆唯一真源:**md_cg 认知图(md 文档)**,插件侧唯一显式入口 * `src/lib/mdcg_client.ts`(每个方法 = 一条 MCP cg / stg 调用) * - 工具桥接:Agent 可调用工具,经**唯一的大脑桥**(同一 md_cg 子进程)从 * **md_cg.mcp_server** 拉取(`MDCG_MCP_SURFACE=full`:`cg` / `stg` 基元 + * `mdcg_*` 细粒度全家,再由 `config.tools` 选择表筛),注册为 `` * - 自动记忆:DSH 对话经**认知图**自动沉淀(主动遗忘闸门去重 + 重要性 + 脱敏) * - 使命分离:理论仓(CTP)只留方法论文档,工程代码全部在主仓 md_cg * * 用法(cordis.yml): * ```yaml * - id: furongjun1999-dsh-memory * name: '@furongjun1999/dsh-memory' * config: * mdcg: # 记忆真源:认知图(md 文档) * # root = 记忆写入路径(用户可改)。缺省 = 用户级状态根 data/mdcg * # (~/.dsh/.dsh-memory/data/mdcg;**不在插件包内**——包内数据会被 * # pnpm 更新连目录一起删掉,见 src/lib/datapath.ts 头注) * # 覆盖优先级:env MDCG_ROOT > <用户级状态根>/paths.json > 本项 > 默认 * # root: 'D:/somewhere/mdcg' # 例:把记忆库放到别处 * actor: 'dsh-memory' * env: # 写入凭据:默认【关闭】,由你决定是否打开 * # 不配 → 只读 guest:读/召回/时间线可用,自动记忆/转录/落图不落盘(启动会告警) * # 打开①推荐:先签发再引用(明文不进配置文件) * # python -m md_cg.tokens issue --role designer --actor dsh-memory \ * # --clearance internal \ * # --ops-allow info,route,read,write,recent,goal,identity,whitebox,verify \ * # --layers-allow knowledge,contextual,structural,self,goals,unresolved,rejected * # MDCG_TOKEN: !!js process.env.MDCG_TOKEN * # 打开②最小权限:--role recorder(无 whitebox/identity/verify,不能写 self 层) * # 打开③兼容旧部署(不推荐):MDCG_LEGACY_ENV_AUTH: '1' * dbPath: '/path/to/legacy.db' # 遗留:仅角色数据目录推导用(不存记忆) * capability: # 可选「身体」后端(默认关 → 单进程纯大脑) * enabled: false * args: ['-m', 'aeis.mcp.server'] * identity: '灵枢' * memory: * userMessage: true * ``` */ import type { Context } from '@deepseek-ai/cordis'; import z from '@deepseek-ai/schemastery'; import { type ToolSelection } from './tools.js'; import { type MemoryHooksOptions } from './hooks.js'; export declare const name = "dsh-memory"; /** 本插件依赖的工具注册服务。 * P1 修复(GPT 审查):timer/webServer 是可选增强(互维/角色网页),此前强声明 * 导致最小 host(只有 tools)插件永远 PENDING 不激活。只强依赖 tools; * timer/webServer 在 apply 内动态检测(存在则启用,缺失则告警跳过)。 */ export declare const inject: string[]; /** 插件配置。 */ export interface Config { /** 内部标识(provider/日志用;**不再用于工具名前缀**,工具名与 MCP 服务同名)。 */ serverName: string; /** issue #634:是否同时注册 lingshu_* 兼容别名(缺省 true)。 * 0.9.9 起工具名去前缀,旧会话/旧脚本硬编码旧名会 unknown tool。 */ toolAliases: boolean; /** Python 可执行文件(或 md_cg-mcp console script)。 * 缺省 = 平台感知(issue #19):Windows `python` / Linux·macOS `python3`, * 可用 env `MDCG_PYTHON` 覆盖;显式配置本项优先级最高。 */ python: string; /** 传给 python 的参数(默认启动 md_cg MCP server)。 */ moduleArgs: string[]; /** ⚠️ 遗留项:SQLite 库文件路径(经 `AEIS_DB` 传给子进程),目录自动创建。 * 大脑真源已统一到 `mdcg`(认知图);此项仅供角色数据目录 roleDataDir * (由它的父目录推导)使用,**不再存记忆**,md_cg server 也不读取它。 */ dbPath: string; /** 灵枢身份标识(写入记忆的自我模型)。 */ identity: string; /** 额外环境变量(BOCHA_API_KEY / AEIS_DESIGNER_KEY 等,可 !!js 注入)。 */ env: Record; /** 暴露的工具集合:'core'(默认,仅 cg/stg 两基元)| 'brain'(完整认知面) * | 'all' | 工具名数组。 */ tools: ToolSelection; /** 护栏宪章版本声明(接入即接受宪章约束,docs/guardrail-charter.md)。 */ charter: string; /** 自动记忆开关。 */ memory: MemoryHooksOptions; /** 单次工具调用超时(毫秒)。 */ toolCallTimeoutMs: number; /** 断线重连最大间隔(毫秒)。 */ maxRetryDelayMs: number; /** 启动失败是否让插件激活失败(否则告警后继续重试)。 */ failOnStartupError: boolean; /** 互维维护(Mutual Sustain Loop v1.1):心跳写戳 + 守护 A + 任务验证。 */ mutual: { enabled: boolean; heartbeatMs: number; }; /** 认知图(md_cg)= 记忆唯一真源;AEIS 降为能力库。 */ mdcg: { enabled: boolean; root: string; actor: string; tenant: string; clearance: string; }; /** 「身体」能力后端(可选):角色扮演生成等「身」的生成能力。 * * 默认**不挂载** —— 主仓保持纯大脑单进程(只起 md_cg)。配置 enabled 后 * 额外起一个能力库子进程(如 AEIS),仅角色扮演生成使用;记忆真源仍是 * md_cg(大脑),本后端不存记忆。未挂载时角色生成接口 fail-closed。 */ capability: { enabled: boolean; python: string; args: string[]; }; } export declare const Config: z; /** * 插件激活:启动灵枢子进程 → 注册工具 → 安装自动记忆钩子。 * 卸载时清理全部资源(effect 作用域内自动回收)。 */ export declare function apply(ctx: Context, config: Config): Promise;