open-index/open-npm huggingface dataset:
npm package: @lz-ui/cdn-plugin
Description: @lz-ui/cdn-plugin 基于webpack build完成后钩子函数出发cdn上传文件，傻瓜式部署
Author: lz-ui@jczxw.cn
Latest version: 0.1.0

# @lz-ui/cdn-plugin 适用于node服务端 适用webpack build 自动部署脚步


## 使用： 

    const LzCdnPlugin = require('@lz-ui/cdn-plugin')

    new LzCdnPlugin({
        filePath: '../dist', // 本地需要上传的文件
        remoteFile: 'test/v1', //    https://cdn.jczxw.cn/lz-ui/cos/ ...remoteFile(远程资源路径).../filePath(本地需要上传的文件),
        flag: false // 默认false 
    })

    filePath是相对路径

## 更新日志：

    2019/10/19   v 0.1.0

        @lz-ui/cdn-plugin 基于webpack build完成后钩子函数出发cdn上传文件，傻瓜式部署
npm package: @lz-ui/cli-code
Description: 基于多智能体协作的智能需求文档生成 CLI 工具
Latest version: 1.0.0

# @lz-ui/cli-code

<p align="center">
  <b>基于多智能体协作的智能需求文档生成 CLI 工具</b>
</p>

<p align="center">
  <a href="https://www.npmjs.com/package/@lz-ui/cli-code"><img src="https://img.shields.io/npm/v/@lz-ui/cli-code.svg" alt="npm version"></a>
  <a href="https://www.npmjs.com/package/@lz-ui/cli-code"><img src="https://img.shields.io/npm/dm/@lz-ui/cli-code.svg" alt="npm downloads"></a>
  <a href="#"><img src="https://img.shields.io/badge/license-MIT-blue.svg" alt="license"></a>
</p>

***

### 📖 项目简介

`@lz-ui/cli-code` 是一个运行在命令行中的 AI 智能体编排工具。它模拟了真实软件开发团队的工作流程，通过 **"产品经理"** 和 **"评审专家"** 两个智能体角色的博弈与协作，自动生成高质量的需求文档。

**核心理念：**

- **角色扮演**：模拟 PM 写文档、Reviewer 挑毛病的真实场景。
- **博弈闭环**：通过批评与自我批评，确保逻辑闭环，减少 AI 幻觉。
- **人机协同**：在关键决策点引入人工干预，确保结果符合预期。
- **视觉友好**：内置 Markdown 终端渲染与文档 Diff 差异对比功能。

***

### ✨ 核心功能

- 🤝 **双智能体协作**：PM Agent 负责生成，Reviewer Agent 负责逻辑校验。
- 💻 **交互式控制台**：支持 REPL 模式，内置闪烁光标，提供沉浸式终端体验。
- ⚙️ **可视化配置**：支持 `/config` 命令交互式配置模型，自动管理 API Key，无需手动编辑环境变量。
- 🛑 **人工干预机制**：当智能体间存在争议或生成结果不满意时，支持人工介入指导。
- 🎨 **终端 Markdown 渲染**：在命令行中优雅地展示格式化文档。
- 📝 **智能 Diff 对比**：文档修改时，仅显示新增与删除部分，告别刷屏。
- 📦 **零配置发布**：开箱即用，一键发布至 NPM。

***

### 项目架构设计

```text
@lz-ui/cli-code/
├── bin/                  # CLI 入口
│   └── index.js
├── src/
│   ├── commands/         # CLI 命令层
│   │   └── generate.ts   # 核心生成命令
│   ├── agents/           # 智能体定义
│   │   ├── base.ts       # 基类
│   │   ├── pm.ts         # 产品经理 Agent
│   │   └── reviewer.ts   # 评审专家 Agent
│   ├── core/
│   │   ├── orchestrator.ts # 编排器（博弈闭环核心）
│   │   └── context.ts      # 上下文管理
│   ├── services/
│   │   ├── llm.ts        # AI 模型服务（支持流式输出）
│   │   └── diff.ts       # Diff 算法封装
│   ├── utils/
│   │   ├── ui.ts         # 终端渲染
│   │   └── config.ts     # 配置文件加载器
│   └── index.ts
├── prompts/              # 提示词模板（配置化）
│   ├── pm.yaml
│   └── reviewer.yaml
├── package.json
└── tsconfig.json
```

***

###  关键设计思想解析

1. **配置化与解耦**：
   - 我们没有把 PM 和 Reviewer 的提示词写死在代码里，而是通过 `loadPrompt` 从 `prompts/*.yaml` 加载。这样用户可以通过修改配置文件微调 Agent 行为。
   - AI 接口通过 `dotenv` 配置，兼容 OpenAI 格式的接口（如智谱 AI GLM-4），方便切换模型。
2. **博弈闭环机制**：
   - `Orchestrator` 是核心。它不只是简单的调用，而是维护了一个 `state` (currentDoc)。
   - **PM -> Doc -> Reviewer -> Feedback -> PM (修改)** 的循环构成了"自我反思"机制，这比单次生成效果好很多，能有效减少 AI 幻觉。
3. **人机协同**：
   - 在每一轮 Reviewer 提出建议后，代码插入了 `inquirer` 交互。
   - 用户可以选择"让 AI 改"、“自己改"或者"忽略”。这保证了人在回路中的决策权，避免了 AI 跑偏。
4. **视觉体验**：
   - 使用 `marked-terminal` 直接在终端渲染 Markdown 表格、标题，体验接近 Notion。
   - 使用 `diff` 库进行增量对比，避免了刷屏，让用户一眼看到修改重点。

<br />

### 🚀 快速开始

#### 1. 安装

全局安装 CLI 工具：

```bash
npm install -g @lz-ui/cli-code
```

#### 2. 初始化配置

首次运行时，CLI 会检测环境变量。最简单的方式是运行配置命令：

```bash
lz-cli /config
```

#### 3. 开始使用

**交互式模式 (推荐):**

直接运行命令进入交互式控制台：

```bash
lz-cli
```

启动后，你会看到欢迎界面：

```text
 |     |__  /         | | | | |_ _|    / ___| | |     |_ _|
 | |       / /   _____  | | | |  | |    | |     | |      | |
 | |___   / /_  |_____| | |_| |  | |    | |___  | |___   | |
 |_____| /____|          \___/  |___|    \____| |_____| |___|

 > Multi-Agent Document Generator
 > 输入 /help 查看命令，或直接输入需求开始...

⚠️ 检测到尚未配置 AI 模型，请先运行 /config 进行初始化。
```
npm package: @lz-ui/cos-tx
Description: @lz-ui/cos-tx 基于腾讯cos封装上传方法
Author: lz-ui@jczxw.cn
Latest version: 0.1.23

# @lz-ui/cos-tx 适用于node服务端


## 使用： 

    const LzCos = require('@lz-ui/cos-tx')

    new LzCos({filePath: './dist/', publicPath: '/'})

    filePath是相对路径
    publicPath webpack打包路径

## 更新日志：
    2019/10/18   v 0.1.1
        1. 添加参数publicPath webpack打包路径 http://cos-1251140835.cos.ap-shanghai.myqcloud.com/lz-ui/cos/{publicPath}/1.js

    2019/10/18   v 0.1.0

        @lz-ui/cos-tx 基于腾讯cos封装上传方法
npm package: @lz-ui/egg-router
Description: @lz-ui/egg-router 核心基础包
Author: lz-ui
Latest version: 1.0.3

# egg-router

#### Description
@lz-ui/egg-router

#### Software Architecture
Software architecture description

#### Installation

1.  xxxx
2.  xxxx
3.  xxxx

#### Instructions

1.  xxxx
2.  xxxx
3.  xxxx

#### Contribution

1.  Fork the repository
2.  Create Feat_xxx branch
3.  Commit your code
4.  Create Pull Request


#### Gitee Feature

1.  You can use Readme\_XXX.md to support different languages, such as Readme\_en.md, Readme\_zh.md
2.  Gitee blog [blog.gitee.com](https://blog.gitee.com)
3.  Explore open source project [https://gitee.com/explore](https://gitee.com/explore)
4.  The most valuable open source project [GVP](https://gitee.com/gvp)
5.  The manual of Gitee [https://gitee.com/help](https://gitee.com/help)
6.  The most popular members  [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/)
npm package: @lz-ui/openapi
Description: 根据 [OpenApi3](https://swagger.io/blog/news/whats-new-in-openapi-3-0/) 文档生成 request 请求代码。
Author: lz-ui
Latest version: 0.0.1

## 介绍

根据 [OpenApi3](https://swagger.io/blog/news/whats-new-in-openapi-3-0/) 文档生成 request 请求代码。

## 使用
```bash
npm i --save-dev @lz-ui/openapi
```
在项目根目录新建 ```openapi2ts.config.ts``` 或者 ```.openapi2tsrc.ts```
> 配置文件还支持 ***openapi2ts.config.ts***, ***.openapi2tsrc.json*** 等格式，参考 [cosmiconfig](https://github.com/cosmiconfig/cosmiconfig?tab=readme-ov-file#cosmiconfig)
```ts
export default {
  schemaPath: 'http://petstore.swagger.io/v2/swagger.json',
  serversPath: './servers',
}
```
如果单个项目有多个生成需求，支持传入数组配置
```ts
export default [
  {
    schemaPath: 'http://app.swagger.io/v2/swagger.json',
    serversPath: './servers/app',
  },
  {
    schemaPath: 'http://auth.swagger.io/v2/swagger.json',
    serversPath: './servers/auth',
  }
]
```

在 ```package.json``` 的 ```script``` 中添加 api: ```"openapi2ts": "openapi2ts",```

生成api
```bash
npm run openapi2ts
```
## 参数
|  属性   | 必填  | 备注 | 类型 | 默认值 |
|  ----  | ----  |  ----  |  ----  | - |
| requestLibPath  | 否 | 自定义请求方法路径 | string | - |
| requestOptionsType  | 否 | 自定义请求方法 options 参数类型 | string | {[key: string]: any} |
| requestImportStatement  | 否 | 自定义请求方法表达式 | string | - |
| apiPrefix  | 否 | api 的前缀 | string | - |
| serversPath  | 否 | 生成的文件夹的路径 | string | - |
| schemaPath  | 否 | Swagger 2.0 或 OpenAPI 3.0 的地址 | string | - |
| projectName  | 否 | 项目名称 | string | - |
| authorization | 否 | 文档登录凭证 | string | - |
| namespace  | 否 | 命名空间名称 | string | API |
| mockFolder  | 否 | mock目录 | string | - |
| enumStyle  | 否 | 枚举样式 | string-literal \| enum | string-literal |
| nullable | 否 | 使用null代替可选 | boolean | false |
| dataFields | 否 | response中数据字段 | string[] | - |
| isCamelCase | 否 | 小驼峰命名文件和请求函数 | boolean | true |
| hook | 否 | 自定义 hook | [Custom Hook](#Custom-Hook) | - |

## Custom Hook

| 属性           | 类型 | 说明               |
| -------------- | ---- | ------------------ |
| afterOpenApiDataInited | (openAPIData: OpenAPIObject) => OpenAPIObject  | - |
| customFunctionName | (data: APIDataType) => string   | 自定义请求方法函数名称 |
| customTypeName | (data: APIDataType) => string | 自定义类型名称 |
| customClassName | (tagName: string) => string  | 自定义类名 |
| customType | (<br>schemaObject: SchemaObject \| undefined,<br>namespace: string,<br>originGetType:(schemaObject: SchemaObject \| undefined, namespace: string) => string,<br>) => string  | 自定义获取类型 <br> *返回非字符串将使用默认方法获取type* |
| customFileNames |  (<br>operationObject: OperationObject,<br>apiPath: string,<br>_apiMethod: string,<br>) => string[]   | 自定义生成文件名，可返回多个，表示生成多个文件. <br> *返回为空，则使用默认的获取方法获取* |
npm package: @lz-ui/oss-aliyun
Description: @lz-ui/oss-aliyun 基于阿里云oss封装上传方法
Author: lz-ui@jczxw.cn
Latest version: 0.1.4


# @lz-ui/oss-aliyun 适用于node服务端


## 使用： 

    const { LzOss, client, getFile }  = require('@lz-ui/oss-aliyun')

    new LzOss({filePath: './dist/', projectName: 'bbs'})

    filePath 是相对路径
    projectName 项目名称

## 更新日志：

    2020/02/21   v 0.1.1
    
        @lz-ui/oss-aliyun 基于阿里云Oss封装上传方法
        
    2020/02/24 v 0.1.2
         添加getFile方法，获取路径, 一个参数path参数 默认：/lz-ui/oss/${date}/${uId}/ 
         
    2020/02/25 v 0.1.3
         添加getFile方法，获取路径, 一个参数path参数
         默认：/lz-ui/oss/${date}/${uId}/ , 修改date为路径格式2020/02/25

    2021/11/10 v 0.1.4
        getFile方法添加 projectName作为路径  /lz-ui/oss/bbs/${date}/${uId}/