npm package: @pai-fe/pai-skills-cli
Description: Shared CLI utilities for Alibaba Cloud PAI Skills
Author: Alibaba Cloud PAI Team
Latest version: 0.1.8

# @pai-fe/pai-skills-cli

Shared CLI utilities for Alibaba Cloud PAI Skills.

命名约定：本文档中的 `pai-skills-cli` 指 `@pai-fe/pai-skills-cli`；`aliyun-cli` 指阿里云官方 CLI（`aliyun` 命令）。

## 设计思想

本 `pai-skills-cli` 工具采用**内容与代码分离**的设计原则：

- **代码只负责加载**：`pai-skills-cli` 代码仅处理命令解析和文件读取，不硬编码业务内容
- **内容放在独立文件**：使用说明、脚本、参考文档等均放置在独立目录中，便于维护和扩展
- **统一目录结构**：所有产品模块遵循相同的目录规范，降低学习成本

## 目录结构

```
src/
├── cli.ts                      # pai-skills-cli 核心代码
├── index.ts                    # 入口文件
├── general/                    # 通用功能模块
│   ├── scripts/                # 可执行代码（Python/Bash/JS 等）
│   ├── references/             # 按需加载的参考文档
│   ├── assets/                 # 输出用资源（模板、图标、字体等）
│   └── skills-extension.md     # 使用说明文档
└── products/                   # 产品功能模块
    ├── dsw/                    # PAI DSW 实例管理
    │   ├── scripts/
    │   ├── references/
    │   ├── assets/
    │   └── skills-extension.md
    ├── dlc/                    # PAI DLC 训练作业管理
    │   ├── scripts/
    │   ├── references/
    │   ├── assets/
    │   └── skills-extension.md
    └── eas/                    # PAI EAS 模型服务管理
        ├── scripts/
        ├── references/
        ├── assets/
        └── skills-extension.md
```

## 目录用途说明

| 目录 | 用途 |
|------|------|
| `scripts/` | 可执行代码（Python/Bash/JS 等），Agent 可调用执行具体任务 |
| `references/` | 按需加载的参考文档，包含 API 说明、最佳实践等详细内容 |
| `assets/` | 输出用资源，包含模板、图标、字体等脚本执行所需的资源文件 |
| `skills-extension.md` | 使用说明文档，pai-skills-cli `usage` 命令输出的内容 |

## Installation

```bash
npm install -g @pai-fe/pai-skills-cli --registry https://registry.npmmirror.com
```

Or use with npx:

```bash
npx --registry https://registry.npmmirror.com @pai-fe/pai-skills-cli --help
```

## Usage

### Check Version

```bash
pai-skills version
```

### Check for Updates

```bash
pai-skills check-update
```

### Upgrade

```bash
pai-skills upgrade
```

### Show Usage

查看使用说明文档：

```bash
# 查看通用使用说明
pai-skills usage
pai-skills usage general

# 查看产品使用说明
pai-skills usage dsw      # DSW 实例管理
pai-skills usage dlc      # DLC 训练作业管理
pai-skills usage eas      # EAS 模型服务管理
```

## 扩展新产品

添加新产品（如 `new-product`）只需：

1. 创建目录结构：
   ```bash
   mkdir -p src/products/new-product/{scripts,references,assets}
   touch src/products/new-product/skills-extension.md
   ```

2. 编辑 `src/cli.ts`，在 `PRODUCTS` 数组中添加新产品名称：
   ```typescript
   const PRODUCTS = ['dsw', 'dlc', 'eas', 'new-product'] as const;
   ```

3. 编写 `skills-extension.md` 内容

4. 重新构建：
   ```bash
   npm run build
   ```

## Build

```bash
npm run build
```

构建过程会：
1. 编译 TypeScript 到 `dist/`
2. 复制 `general/` 和 `products/` 目录到 `dist/`

## Local Development

本地开发时，可以使用 `npm link` 将包链接到全局，模拟真实发布后的使用方式。

### 首次设置

```bash
# 1. 进入包目录
cd packages/pai-skills-cli

# 2. 构建项目
npm run build

# 3. 创建全局符号链接
npm link
```

### 运行测试

链接成功后，可以在任意目录使用以下方式运行：

```bash
# 使用命令名（推荐，最简洁）
pai-skills --help
pai-skills usage dsw

# 使用 npm exec（会识别本地 link）
npm exec @pai-fe/pai-skills-cli -- --help
npm exec @pai-fe/pai-skills-cli -- usage dsw
```

### 修改代码后

修改代码后只需重新构建，无需重新链接：

```bash
npm run build
```

构建后立即可用新代码。

### 取消链接

开发完成后，可以取消全局链接：

```bash
npm unlink -g @pai-fe/pai-skills-cli
```

### 验证链接状态

```bash
# 查看全局链接的包
npm list -g --depth=0 | grep pai-skills-cli

# 或查看链接指向
ls -la $(npm root -g)/@pai-fe/pai-skills-cli
```

## License

Apache-2.0