# NanoPencil Monorepo

> AI 编程助手 + 持久记忆引擎 - Monorepo 架构

## 📦 包列表

| 包 | 版本 | 描述 |
|---|---|---|
| [`@nanopencil/nanomem`](./packages/nanomem) | ![npm](https://img.shields.io/npm/v/@nanopencil/nanomem) | 持久记忆引擎，支持巩固、评分、洞察 |
| [`@pencil-agent/nano-pencil`](./packages/nanopencil) | ![npm](https://img.shields.io/npm/v/@pencil-agent/nano-pencil) | AI 编程助手 CLI 工具 |
| [`@nanopencil/simplify`](./packages/simplify) | ![npm](https://img.shields.io/npm/v/@nanopencil/simplify) | 代码简化扩展 |

## 🚀 快速开始

### 安装

```bash
# 克隆仓库
git clone https://codeup.aliyun.com/67d1a8677564dc59f36547a9/nanoPencil.git
cd nanoPencil

# 安装 pnpm (如果还没安装)
npm install -g pnpm

# 安装依赖
pnpm install
```

### 开发

```bash
# 构建所有包
pnpm build

# 启动 nanopencil 开发模式
pnpm dev

# 监听模式开发 nanomem
pnpm dev:nanomem

# 运行测试
pnpm test

# 清理构建产物
pnpm clean
```

## 📐 架构

```
┌─────────────────────────────────────────────────────────┐
│                    User / CLI Input                      │
└─────────────────────┬───────────────────────────────────┘
                      │
                      ▼
┌─────────────────────────────────────────────────────────┐
│           @pencil-agent/nano-pencil                      │
│  ┌──────────────────────────────────────────────────┐   │
│  │  • CLI & TUI Interface                           │   │
│  │  • Multi-Model Support (DashScope, OpenAI, etc.) │   │
│  │  • Tool System (read, bash, edit, write, grep)   │   │
│  │  • Extension System                              │   │
│  └────────────────────┬─────────────────────────────┘   │
└───────────────────────┼─────────────────────────────────┘
                        │
                        ▼
┌─────────────────────────────────────────────────────────┐
│              Extensions (Workspace)                      │
│  ┌──────────────────┐      ┌──────────────────────┐     │
│  │ @nanopencil/    │      │ @nanopencil/         │     │
│  │ nanomem         │      │ simplify             │     │
│  │                 │      │                      │     │
│  │ • Memory Engine │      │ • Code Refactoring   │     │
│  │ • Consolidation │      │ • Pattern Matching   │     │
│  │ • Scoring       │      │ • Test Validation    │     │
│  │ • Insights      │      │                      │     │
│  └──────────────────┘      └──────────────────────┘     │
└─────────────────────────────────────────────────────────┘
```

## 🔗 依赖关系

```
nanopencil
    ↓ depends on
nanomem (workspace: *)

simplify
    ↓
nanopencil (peer dependency)
```

## 🛠️ 技术栈

- **Runtime**: Node.js >= 20
- **Package Manager**: pnpm (workspace)
- **Language**: TypeScript 5.3
- **Build**: tsc (TypeScript Compiler)
- **Version Management**: Changesets

## 📚 各包使用

### @nanopencil/nanomem

独立的记忆引擎，可用于任何 AI agent 项目：

```bash
npm install @nanopencil/nanomem
```

```typescript
import { NanoMemEngine } from '@nanopencil/nanomem';

const engine = new NanoMemEngine();
await engine.extractAndStore(
  "User prefers TypeScript over JavaScript",
  "my-project"
);
```

详见 [packages/nanomem/README.md](./packages/nanomem/README.md)

### @pencil-agent/nano-pencil

AI 编程助手 CLI 工具：

```bash
npm install -g @pencil-agent/nano-pencil
nanopencil
```

详见 [packages/nanopencil/README.md](./packages/nanopencil/README.md)

### @nanopencil/simplify

代码简化扩展（可选）：

```bash
npm install @nanopencil/simplify
```

详见 [packages/simplify/README.md](./packages/simplify/README.md)

## 🧑‍💻 开发指南

### 添加新包

```bash
# 在 packages/ 下创建新包
mkdir packages/new-package
cd packages/new-package

# 初始化 package.json
pnpm init

# 在根 package.json 的 workspace 中自动被发现
```

### Workspace 协议

```json
{
  "dependencies": {
    "@nanopencil/nanomem": "workspace:*"
  }
}
```

开发时自动链接本地包，发布时替换为实际版本号。

### 构建顺序

```bash
# 确保依赖包先构建
pnpm -r --filter './packages/**' build
```

## 📝 许可证

MIT License - 详见各包的 LICENSE 文件

## 🤝 贡献

欢迎贡献！请查看各包的贡献指南。

## 📞 联系

- Issues: [GitHub Issues](https://github.com/your-repo/issues)
- Discussions: [GitHub Discussions](https://github.com/your-repo/discussions)
