SDK
sdk/ 是当前仓库中的私有混合核心,也是共享内部能力的唯一入口。它不是一个供外部直接安装的独立 npm 包。它是将旧核心实现从 cli/ 中抽离出来后形成的事实来源层。
这一层负责什么
- 它包含私有 npm 包
@truenine/memory-sync-sdk - 它包含 Rust crate
tnmsd的实际 workspace 路径 - 它负责 Rust crate
tnmsd的 facade、NAPI 构建、prompt service、schema 生成,以及最小化的 TypeScript loader 入口 - 它仍然承接少量过渡期 bridge 逻辑,但这些 bridge 路径已经退回到
sdk/内部实现,不再是cli/的公共组合中心 - 它是
mcp/、gui/以及未来内部消费者的默认依赖入口 - 它编排 Logger、MDX-Compiler、Script-Runtime 三类基础能力;其中 Logger 和 Script-Runtime 的 TypeScript facade 已内联到
sdk/src/libraries/*,sdk/*保留 Rust crate 与发布壳层
这一层不负责什么
- 它不直接负责公共 npm CLI 的发布入口
- 它不负责
@truenine/memory-sync-cli-<suffix>这类平台 shim 包的分发标识 - 它不会把共享内部 API 再塞回
cli/,从而形成第二个事实来源
保持不变的公共标识
这次分层调整没有改变下面这些公共标识:
- CLI 二进制仍然是
tnmsc - 公共 npm CLI 包仍然是
@truenine/memory-sync-cli - 公共平台包仍然是
@truenine/memory-sync-cli-<suffix> - Rust crate 名称现在是
tnmsd
变化的是路径和归属关系,而不是这些对外标识本身。
Workspace Libraries 快速导航
AI 友好的结构化日志系统,为 tnmsd 提供清晰的诊断输出
- ✅ Markdown 格式化的日志输出(
### Title+ 列表) - ✅ 结构化诊断记录与缓冲机制(rootCause / exactFix / possibleFixes)
- ✅ Rust 高性能 + NAPI 跨平台绑定(5 大平台)
- ✅ 异步 Output Worker 线程,避免 I/O 阻塞主线程
- ✅ 全局级别控制与环境变量支持
Rust-first MDX/Markdown 编译与转换引擎,Prompt Service 的核心动力
- ✅ MDX → Markdown 完整编译流水线(Parser → Eval → Transform → Serialize)
- ✅ 受控作用域内的表达式求值与 JSX 组件处理
- ✅ 导出元数据静态提取(YAML + ESM exports 合并)
- ✅ TOML Artifact 构建(面向 Prompt 工程场景)
- ✅ Native-first 包入口 +
src/compiler/TypeScript 参考流水线
Rust 支持的代理模块加载器与路径安全验证运行时
- ✅ Jiti 驱动的动态代理模块加载(TS/ESM 即时编译执行)
- ✅ Rust 原生路径验证(防遍历、防绝对路径注入)
- ✅ Worker 进程隔离执行 + 超时控制(默认 5000ms)
- ✅ 函数式 / 对象式两种代理定义模式
- ✅ 命令匹配器(matcher)支持按命令选择性生效
想看完整的系统架构? → SDK 架构总览 包含三库角色定位图、依赖关系 DAG、CLI/MCP 数据流时序图以及从 Rust 源码到 npm 制品的完整构建流程。
消费者依赖方向
| 消费者 | 依赖方式 |
|---|---|
cli/ | 一个对 sdk/ 导出能力做轻量封装的 shell 和兼容层 |
mcp/ | 通过 @truenine/memory-sync-sdk 的最小 binding 访问 prompt 管理能力 |
gui/src-tauri | 继续依赖 crate tnmsd,其实际路径现在位于 sdk/ 下 |
消费者依赖方向是单向的:cli/、mcp/、gui/ 都依赖 sdk/。在 sdk/ 下游,MDX-Compiler 仍完整保留在 sdk/,而 Logger / Script-Runtime 已形成”sdk/src/libraries/* 作为 TypeScript 事实来源 + sdk/* 作为 Rust crate / wrapper 发布层”的边界。Library 之间的依赖为:MDX-Compiler → Logger;Logger 和 Script-Runtime 互不依赖。
边界规则
- 仓库中的新内部代码不应再把
cli/视为默认的共享 API 入口 cli/只保留命令入口、兼容导出和发布打包职责- 当你需要说明实现边界时,应先从
sdk/开始,再看cli/、mcp/或gui/
最近更新 — 本次重构的主要成果:
- 统一的 NAPI Binding 加载器:将平台映射、候选路径探测、CLI 平台包扫描和错误聚合收敛到
sdk/src/core/native-binding-loader.ts - Logger / Script-Runtime 内联:TypeScript facade 已迁入
sdk/src/libraries/*,公共包@truenine/memory-sync-sdk仅保留 wrapper 入口 - 完整的技术文档体系:新增 4 个文档页面(Logger、MDX-Compiler、Script-Runtime、架构总览),覆盖 API 参考、架构图、使用示例和最佳实践
- 标准化的包配置和构建流程:三个 library 统一收敛到共享加载器 + 包级验证/适配层的职责分工,构建脚本支持增量缓存
推荐阅读
- SDK 架构总览 — 查看完整的系统架构、三库依赖关系 DAG、数据流时序图和构建流程
- Logger 日志库 — 了解 AI 友好的日志系统设计与完整 API
- MDX-Compiler 编译器 — 深入 MDX→Markdown 编译流水线、表达式求值与组件机制
- Script-Runtime 运行时 — 探索代理模块加载、路径验证与 Worker 安全机制
- 技术细节 / 架构边界:查看
sdk/、cli/、mcp/和gui/的完整分层 - CLI:查看公共命令入口、安装路径以及面向兼容性的发布表层
- MCP:查看 stdio server 如何消费
sdk的 prompt service - GUI:查看桌面层如何调用
sdk/中的tnmsdcrate
Last updated on