vps-work 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.well-known/skills/index.json +203 -0
- package/README.md +315 -0
- package/USAGE.md +289 -0
- package/dist/vps-work.cjs +64206 -0
- package/examples/README.md +94 -0
- package/package.json +76 -0
- package/scripts/install-onboard-skill.ps1 +77 -0
- package/scripts/install-onboard-skill.sh +66 -0
- package/scripts/test-local-tenant-services.mjs +21 -0
- package/skills/README.md +53 -0
- package/skills/sale-performance-query/SKILL.md +210 -0
- package/skills/sale-performance-query/references/vps-sales-account-orders.md +48 -0
- package/skills/sale-performance-query/references/vps-sales-agent-five-suite.md +55 -0
- package/skills/sale-performance-query/references/vps-sales-customer-mix.md +47 -0
- package/skills/sale-performance-query/references/vps-sales-customer-region.md +70 -0
- package/skills/sale-performance-query/references/vps-sales-daily-trend.md +44 -0
- package/skills/sale-performance-query/references/vps-sales-dealer-orders.md +47 -0
- package/skills/sale-performance-query/references/vps-sales-dealer-performance.md +49 -0
- package/skills/sale-performance-query/references/vps-sales-deposit-breakdown.md +16 -0
- package/skills/sale-performance-query/references/vps-sales-dept-breakdown.md +32 -0
- package/skills/sale-performance-query/references/vps-sales-dept-comparison.md +24 -0
- package/skills/sale-performance-query/references/vps-sales-entities.md +25 -0
- package/skills/sale-performance-query/references/vps-sales-headline-kpi.md +26 -0
- package/skills/sale-performance-query/references/vps-sales-invoice-attachments.md +37 -0
- package/skills/sale-performance-query/references/vps-sales-invoice-status.md +37 -0
- package/skills/sale-performance-query/references/vps-sales-order-finance.md +29 -0
- package/skills/sale-performance-query/references/vps-sales-order-logistics.md +50 -0
- package/skills/sale-performance-query/references/vps-sales-per-person-kpi.md +24 -0
- package/skills/sale-performance-query/references/vps-sales-personal-okr.md +40 -0
- package/skills/sale-performance-query/references/vps-sales-ranking.md +25 -0
- package/skills/sale-performance-query/references/vps-sales-reconciled-receipts.md +46 -0
- package/skills/sale-performance-query/references/vps-sales-refund-summary.md +20 -0
- package/skills/sale-performance-query/references/vps-sales-service-sales.md +23 -0
- package/skills/sale-performance-query/references/vps-sales-shared-params.md +68 -0
- package/skills/sale-performance-query/references/vps-sales-target-achievement.md +47 -0
- package/skills/sale-performance-query/references/vps-sales-team-pk.md +23 -0
- package/skills/vps-approval/SKILL.md +20 -0
- package/skills/vps-calendar/SKILL.md +64 -0
- package/skills/vps-calendar/agents/openai.yaml +4 -0
- package/skills/vps-corporate/SKILL.md +84 -0
- package/skills/vps-creative/SKILL.md +66 -0
- package/skills/vps-current-user-identity/SKILL.md +138 -0
- package/skills/vps-current-user-identity/reference.md +79 -0
- package/skills/vps-daily-report-assistant/SKILL.md +180 -0
- package/skills/vps-daily-sales-report/SKILL.md +124 -0
- package/skills/vps-daily-sales-report/reference.md +188 -0
- package/skills/vps-device-abnormal-statistics/SKILL.md +52 -0
- package/skills/vps-device-abnormal-statistics/agents/openai.yaml +4 -0
- package/skills/vps-device-abnormal-statistics/references/api.md +134 -0
- package/skills/vps-documents/SKILL.md +77 -0
- package/skills/vps-documents/agents/openai.yaml +4 -0
- package/skills/vps-documents/references/api.md +106 -0
- package/skills/vps-hr/SKILL.md +50 -0
- package/skills/vps-hr-compensation-documents/SKILL.md +61 -0
- package/skills/vps-hr-compensation-documents/reference.md +68 -0
- package/skills/vps-hr-compensation-documents/references/+payslip.md +29 -0
- package/skills/vps-hr-compensation-documents/references/runtime-and-helpers.md +24 -0
- package/skills/vps-im/SKILL.md +154 -0
- package/skills/vps-im/references/vps-im-bots.md +25 -0
- package/skills/vps-im/references/vps-im-calls.md +28 -0
- package/skills/vps-im/references/vps-im-channels.md +32 -0
- package/skills/vps-im/references/vps-im-read.md +105 -0
- package/skills/vps-im/references/vps-im-send.md +57 -0
- package/skills/vps-im/references/vps-im-shared-params.md +42 -0
- package/skills/vps-mail/SKILL.md +17 -0
- package/skills/vps-meeting/SKILL.md +42 -0
- package/skills/vps-okr/SKILL.md +22 -0
- package/skills/vps-okr-management-assistant/SKILL.md +45 -0
- package/skills/vps-okr-management-assistant/reference.md +84 -0
- package/skills/vps-pending-approval-assistant/SKILL.md +66 -0
- package/skills/vps-pending-approval-assistant/reference.md +55 -0
- package/skills/vps-product/SKILL.md +221 -0
- package/skills/vps-sale-personnel-efficiency/SKILL.md +124 -0
- package/skills/vps-sale-personnel-efficiency/reference.md +139 -0
- package/skills/vps-shared/SKILL.md +72 -0
- package/skills/vps-store-management/SKILL.md +35 -0
- package/skills/vps-store-management/references/store-reception.md +40 -0
- package/skills/vps-task-management-assistant/SKILL.md +140 -0
- package/skills/vps-tools/SKILL.md +73 -0
- package/skills/vps-tools/agents/openai.yaml +4 -0
- package/skills/vps-v-drive/SKILL.md +82 -0
- package/skills/vps-vemory/SKILL.md +33 -0
- package/skills/vps-work/SKILL.md +366 -0
- package/skills/vps-work-onboard/SKILL.md +53 -0
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: vps-v-drive
|
|
3
|
+
description: 使用 `vps-work drive +…` 管理账号级云端 V盘中的普通文件和文件夹;文件内容存储于 OSS,并与 VPS Desktop、手机端共用同一份数据。
|
|
4
|
+
metadata:
|
|
5
|
+
requires:
|
|
6
|
+
bins: ["vps-work"]
|
|
7
|
+
cliHelp: "vps-work drive --help"
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# VPS V盘文件管理
|
|
11
|
+
|
|
12
|
+
开始前先读取 `../vps-shared/SKILL.md`,遵循其中的认证、当前用户与 `+` 快捷约定。Hermes 使用宿主注入的 Agent Key 和当前用户身份;V盘不依赖 Odoo Session。
|
|
13
|
+
|
|
14
|
+
本技能通过 `/v1/v-drive` 操作账号级云端 V盘,文件内容直传阿里云 OSS,元数据由服务端统一管理。它与 VPS Desktop、手机端共用同一份数据,不得绕过 API 写入本地 `v-drive/files/`。命令默认输出 JSON,Hermes 必须从返回值读取 `item.id`,不得根据文件名猜 ID。
|
|
15
|
+
|
|
16
|
+
V盘中的企业云文档、智能表格及其共享权限由 `vps-documents` 技能和 `vps-work docs +…` 管理;本技能不修改云文档。共享空间成员和安全策略目前也不通过本命令管理。
|
|
17
|
+
|
|
18
|
+
## 命令选择
|
|
19
|
+
|
|
20
|
+
| 用户意图 | 命令 |
|
|
21
|
+
|---|---|
|
|
22
|
+
| 查看根目录 | `vps-work drive +list` |
|
|
23
|
+
| 查看文件夹 | `vps-work drive +list --parent-id <id>` |
|
|
24
|
+
| 递归搜索 | `vps-work drive +list --recursive --query <关键词>` |
|
|
25
|
+
| 查看单项元数据 | `vps-work drive +info --item-id <id>` |
|
|
26
|
+
| 新建文件夹 | `vps-work drive +mkdir --name <名称> [--parent-id <id>]` |
|
|
27
|
+
| 新建文本文件 | `vps-work drive +create-file --name <文件名> [--content-file <path>]` |
|
|
28
|
+
| 上传本地文件 | `vps-work drive +upload --source <path> [--source <path> ...]` |
|
|
29
|
+
| 读取小文件 | `vps-work drive +read --item-id <id>` |
|
|
30
|
+
| 覆盖文本内容 | `vps-work drive +write --item-id <id> --content-file <path>` |
|
|
31
|
+
| 下载到本地 | `vps-work drive +download --item-id <id> --output <path>` |
|
|
32
|
+
| 重命名 | `vps-work drive +rename --item-id <id> --name <新名称>` |
|
|
33
|
+
| 移动到文件夹 | `vps-work drive +move --item-id <id> --parent-id <文件夹id>` |
|
|
34
|
+
| 移动到根目录 | `vps-work drive +move --item-id <id> --parent-id root` |
|
|
35
|
+
| 移入回收站 | `vps-work drive +remove --item-id <id>` |
|
|
36
|
+
| 查看回收站 | `vps-work drive +trash` |
|
|
37
|
+
| 恢复 | `vps-work drive +restore --item-id <id>` |
|
|
38
|
+
| 永久删除 | `vps-work drive +purge --item-id <id>` |
|
|
39
|
+
| 清空回收站 | `vps-work drive +empty-trash` |
|
|
40
|
+
| 查看传输记录 | `vps-work drive +transfers` |
|
|
41
|
+
| 迁移旧版本地 V盘 | `vps-work drive +migrate-local [--root <旧目录>]` |
|
|
42
|
+
|
|
43
|
+
执行前可用 `vps-work drive <命令> --help` 核对参数。`vdrive` 和 `v-drive` 是 `drive` 的兼容别名,Hermes 应固定使用 `drive`。
|
|
44
|
+
|
|
45
|
+
## 标准操作流程
|
|
46
|
+
|
|
47
|
+
1. 先运行 `+list` 或 `+trash`,从 JSON 返回中取得准确的 `id`、`kind`、`parentId`。
|
|
48
|
+
2. 文件夹层级操作使用 ID,不使用路径或同名文件推断。
|
|
49
|
+
3. 写操作完成后检查返回的 `item`;需要确认目录结果时再运行一次 `+list`。
|
|
50
|
+
4. `+read` 默认最多输出 1 MiB UTF-8 内容。二进制文件用 `--encoding base64`;大文件用 `+download`。
|
|
51
|
+
|
|
52
|
+
## 账号与旧数据迁移
|
|
53
|
+
|
|
54
|
+
普通命令使用当前 `vps-work` 登录账号或 Agent 绑定账号,并支持 `--base-url` 指定 Vertu 服务。只有 `+migrate-local` 会读取旧版数据目录:
|
|
55
|
+
|
|
56
|
+
- macOS:`~/Library/Application Support/vertu-im-desktop/v-drive`
|
|
57
|
+
- Windows:`%APPDATA%\vertu-im-desktop\v-drive`
|
|
58
|
+
- Linux:`${XDG_CONFIG_HOME:-~/.config}/vertu-im-desktop/v-drive`
|
|
59
|
+
|
|
60
|
+
`+migrate-local` 会把旧文件和文件夹上传到 OSS,并用 `oss-migration-v1.json` 记录进度以支持断点续传;迁移不会删除本地源文件。`--root` 和 `VERTU_V_DRIVE_ROOT` 只影响迁移命令,不影响云端 V盘的普通操作。
|
|
61
|
+
|
|
62
|
+
## 写入与删除安全
|
|
63
|
+
|
|
64
|
+
- `+upload` 会把源文件上传到 OSS,源文件保持不变。
|
|
65
|
+
- `+create-file` 和 `+write` 只写 UTF-8 文本;`+write` 会覆盖已有内容,必须符合用户明确意图。
|
|
66
|
+
- `+download` 默认拒绝覆盖已有目标文件;只有用户明确允许覆盖时才传 `--overwrite`。
|
|
67
|
+
- `+remove` 只是移入回收站,可以用 `+restore` 恢复。
|
|
68
|
+
- `+purge` 和 `+empty-trash` 会永久删除实际文件。只有用户明确要求永久删除或清空回收站时才可执行;不得把“删除”自动解释为永久删除。
|
|
69
|
+
- 所有写操作都通过服务端鉴权和账号隔离;不要把 OSS 签名地址或认证凭据写入回复。
|
|
70
|
+
|
|
71
|
+
## 示例
|
|
72
|
+
|
|
73
|
+
```bash
|
|
74
|
+
vps-work drive +list --recursive --query "周报"
|
|
75
|
+
vps-work drive +mkdir --name "项目资料"
|
|
76
|
+
vps-work drive +upload --parent-id <folder-id> --source ./方案.pdf --source ./预算.xlsx
|
|
77
|
+
printf '# 周报\n\n本周完成' | vps-work drive +create-file --name "周报.md" --content-file -
|
|
78
|
+
vps-work drive +read --item-id <file-id>
|
|
79
|
+
vps-work drive +download --item-id <file-id> --output ./downloads/
|
|
80
|
+
vps-work drive +remove --item-id <item-id>
|
|
81
|
+
vps-work drive +restore --item-id <item-id>
|
|
82
|
+
```
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: vps-vemory
|
|
3
|
+
version: 1.1.0
|
|
4
|
+
description: 旧版 Vemory 会议查询兼容入口。新调用应使用 `vps-meeting` 与 `vps-work meeting +list`。
|
|
5
|
+
metadata:
|
|
6
|
+
requires:
|
|
7
|
+
bins: ['vps-work']
|
|
8
|
+
cliHelp: 'vps-work vemory --help'
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
# vemory
|
|
12
|
+
|
|
13
|
+
**MUST Read [`../vps-shared/SKILL.md`](../vps-shared/SKILL.md)**
|
|
14
|
+
|
|
15
|
+
这是旧产品名称的兼容技能。新任务必须优先读取
|
|
16
|
+
[`../vps-meeting/SKILL.md`](../vps-meeting/SKILL.md) 并使用 `vps-work meeting +list`。
|
|
17
|
+
|
|
18
|
+
| Shortcut | 契约 |
|
|
19
|
+
|----------|------|
|
|
20
|
+
| `+meetings` | 见 `vps-work vemory --help` |
|
|
21
|
+
|
|
22
|
+
## 按员工姓名查询
|
|
23
|
+
|
|
24
|
+
用户指定员工姓名时,必须将姓名原样传给 `--employee-name`:
|
|
25
|
+
|
|
26
|
+
```bash
|
|
27
|
+
vps-work vemory +meetings --employee-name "温若琪" --start-date 2026-07-09 --end-date 2026-07-15
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
- 不要把按姓名查询改写为 `--scope mine` 或 `--scope team`。
|
|
31
|
+
- `--keyword` 只搜索会议主题、摘要、章节和待办,不搜索员工姓名。
|
|
32
|
+
- 命令直接返回结构化 JSON;不要追加 `jq`、`grep` 等二次处理命令。
|
|
33
|
+
- 成功的按姓名查询返回 `scope: "person"`、`target_user_id` 和 `target_name`。
|
|
@@ -0,0 +1,366 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: vps-work
|
|
3
|
+
description: |
|
|
4
|
+
VPS Work CLI(npm 包 vps-work,全局命令 vps-work)的安装、登录、使用、升级与卸载引导。
|
|
5
|
+
当用户提到「装 vps-work」「vps-work 命令找不到 / not recognized / command not found」「vps-work auth login 报错」
|
|
6
|
+
「升级 vertu / 升级 vps-work」「装其它 skill 但还没 vps-work」
|
|
7
|
+
「Cursor / Claude Code / Trae / OpenClaw / Hermes 怎么接 vps skill」时使用本技能。
|
|
8
|
+
本 skill 不依赖任何已登录会话,可被 agent 直接 wget / curl 拿到、按文档逐步执行。
|
|
9
|
+
公开下载地址:https://admin.vertu.cn/ai_skills/static/skills/vps-work/SKILL.md
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
# vps-work 引导
|
|
13
|
+
|
|
14
|
+
## 何时使用
|
|
15
|
+
|
|
16
|
+
只要用户的诉求落在下面任一条,就**先**读完本 SKILL.md 再执行,不要凭记忆拼命令:
|
|
17
|
+
|
|
18
|
+
- 还没装 `vps-work` —— 第一次用、换机器、CI/容器里跑
|
|
19
|
+
- `vps-work` 装了但 `vps-work --version` / `vps-work auth login` / `vps-work <域> +…` 报错
|
|
20
|
+
- 想把随包分发的公开 skill 一键装到 Cursor / Claude Code / Trae 国际版 / Trae 国内版 / OpenClaw / Hermes 或自定义目录
|
|
21
|
+
- 升级 / 卸载 / 重装 vps-work 自身
|
|
22
|
+
- 用户问「这个 ERP 怎么从命令行查数据 / 调 skill / 接 AI agent」
|
|
23
|
+
|
|
24
|
+
> 本 skill 是 **bootstrap**:执行成功后,按 `vps-work skill list` 看到的业务 skill(如 `sale-performance-query`、`vps-im`)继续工作。
|
|
25
|
+
|
|
26
|
+
当 Agent 需要新建、更新、分类、申请公开或删除当前用户自己的个人技能时,使用本文 §5.1 的 `vps-work skill +…` 命令;不得直接拼接 Hermes 管理接口。
|
|
27
|
+
|
|
28
|
+
## 前置
|
|
29
|
+
|
|
30
|
+
- **Node.js ≥ 20**(包内 `engines.node` 已声明)
|
|
31
|
+
- Windows:建议从 nodejs.org 装 LTS,或 `winget install OpenJS.NodeJS.LTS`
|
|
32
|
+
- macOS:`brew install node@20` 或 nvm
|
|
33
|
+
- Linux:`nvm install 20 && nvm use 20`
|
|
34
|
+
- **网络**能访问 `https://registry.npmjs.org/`(国内可换 `npm config set registry https://registry.npmmirror.com`,但生产稳定性建议用官方源)
|
|
35
|
+
- **shell**:Windows 用 PowerShell(本仓库默认);macOS / Linux 用 bash / zsh
|
|
36
|
+
|
|
37
|
+
## 1. 安装
|
|
38
|
+
|
|
39
|
+
```powershell
|
|
40
|
+
# Windows PowerShell
|
|
41
|
+
npm install -g vps-work
|
|
42
|
+
vps-work --version
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
```bash
|
|
46
|
+
# macOS / Linux
|
|
47
|
+
npm install -g vps-work
|
|
48
|
+
vps-work --version
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
`vps-work --help` 能正常打印命令树即为安装成功。旧 `vertu-cli` 已弃用,服务端不再识别其渠道;如已安装,执行 `npm uninstall -g vertu-cli` 并删除 `~/.vertu`。
|
|
52
|
+
|
|
53
|
+
**keytar 编译失败时**(Windows 没装 build tools / 容器里没 python):
|
|
54
|
+
|
|
55
|
+
```powershell
|
|
56
|
+
$env:VERTU_DISABLE_KEYTAR = '1'
|
|
57
|
+
npm install -g vps-work --no-optional
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
CLI 会自动降级到文件存储(`~/.vps-work/config.json`,POSIX 0600),功能完全等价,只是 session 不进系统钥匙串。
|
|
61
|
+
|
|
62
|
+
## 2. 认证边界
|
|
63
|
+
|
|
64
|
+
**Agent / Bot / Hermes 禁止执行账号密码登录、`reauth` 或 legacy Odoo 登录,也不得索取、猜测或在 Prompt/命令中传递密码。** Agent 应使用宿主注入的 app_key;Hermes 固定使用 `app_id=vertu-hermes-agent`。
|
|
65
|
+
|
|
66
|
+
若用户明确需要人工账号密码登录或 legacy Odoo 兼容排障,只引导用户阅读包内 `README.md` / `USAGE.md` 并由用户在交互终端操作;Agent 不得代为执行。
|
|
67
|
+
|
|
68
|
+
**CI / Bot 模式**(无密码、走 inbound bot key):
|
|
69
|
+
|
|
70
|
+
```powershell
|
|
71
|
+
$env:VERTU_BOT_INBOUND_KEY = 'xxxxxxxxxxxxxxxxxxxxxxxx'
|
|
72
|
+
vps-work auth status # 直接验证;不需要 vps-work auth login
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
> Bearer 与 session 同时存在时 **Bearer 优先**,会掩盖用户会话。开发期请用 `vps-work auth logout --forget` 清掉残留 session 后再用 Bearer,避免审计记到错的人头上。
|
|
76
|
+
|
|
77
|
+
验证:
|
|
78
|
+
|
|
79
|
+
```powershell
|
|
80
|
+
vps-work auth status # 查看当前会话:企业 / 角色 / agent
|
|
81
|
+
vps-work auth status --json # 机读
|
|
82
|
+
vps-work catalog --json # 当前企业身份可见的命令清单
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
### 2.1 IM / 通讯类命令走 Vertu 原生 IM
|
|
86
|
+
|
|
87
|
+
通讯类命令(`vps-work im +…`、`vps-work mail +send` 等)统一走 Vertu 原生 IM,与主登录共用同一份会话,**不再需要单独登录任何 Odoo IM 端点**(旧的「im 次端点联动登录」已下线)。
|
|
88
|
+
|
|
89
|
+
只要 `vps-work auth status` 显示会话有效即可使用:
|
|
90
|
+
|
|
91
|
+
```powershell
|
|
92
|
+
vps-work auth status
|
|
93
|
+
vps-work im +channels --limit 1 # 200 + 频道 → IM 可用;401 → 见 §2.2
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
### 2.2 IM 命令报 401 的修复
|
|
97
|
+
|
|
98
|
+
Agent / Bot / Hermes 必须停止重试并提示管理员刷新宿主 app_key。人工会话问题由用户在交互终端处理;Agent 不提供或执行密码登录命令。
|
|
99
|
+
|
|
100
|
+
## 3. 命令清单
|
|
101
|
+
|
|
102
|
+
稳定原语是 `catalog` / `exec` / `auth`。业务快捷命令可以继续用 `+`,但**当前身份能用哪些脚本以服务端目录为准**:
|
|
103
|
+
|
|
104
|
+
```powershell
|
|
105
|
+
vps-work catalog --json # 当前企业身份可见的命令
|
|
106
|
+
vps-work catalog --domain sales --json
|
|
107
|
+
vps-work exec --skill vps-dealer-ops --script sales --param period=this_month
|
|
108
|
+
vps-work --help # 本机命令糖衣
|
|
109
|
+
vps-work sales --help
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
> 新快捷命令只需服务端登记,不必升级 npm。本地 `+` 命令树不是全集。
|
|
113
|
+
|
|
114
|
+
## 4. 用法骨架
|
|
115
|
+
|
|
116
|
+
### Agent 主动弹出手机端弹窗
|
|
117
|
+
|
|
118
|
+
Agent 默认向当前 `app_key` 绑定用户投递一次性声明式弹窗;管理员可通过 `--user-id`
|
|
119
|
+
或 `--login` 指定其他用户。前台用户约 0–10 秒展示,离线用户下次打开 VPS 手机端时展示。
|
|
120
|
+
禁止下发 HTML、JavaScript 或非 HTTPS 链接。
|
|
121
|
+
|
|
122
|
+
```bash
|
|
123
|
+
vps-work popup +send \
|
|
124
|
+
--user-id 12708 \
|
|
125
|
+
--title "今日提醒" \
|
|
126
|
+
--content "还有 2 个待办即将到期。" \
|
|
127
|
+
--height 0.68 \
|
|
128
|
+
--gradient-start "#FCEBE4" \
|
|
129
|
+
--gradient-end "#FFFBFA" \
|
|
130
|
+
--button-text "立即查看" \
|
|
131
|
+
--button-style filled \
|
|
132
|
+
--button-background-color "#1F1D1A" \
|
|
133
|
+
--button-text-color "#FFFFFF" \
|
|
134
|
+
--button-url "https://vps.vertu.cn/todos"
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
可通过 `--background-color` 设置纯色背景,或通过 `--background-image-url` 设置 HTTPS
|
|
138
|
+
背景图;长正文使用 `--content-file <path>`。`--user-id` 与 `--login` 二选一,普通用户
|
|
139
|
+
只能向自己推送。执行前可加 `--dry-run` 检查完整请求。
|
|
140
|
+
|
|
141
|
+
### 4.1 通用形态
|
|
142
|
+
|
|
143
|
+
```powershell
|
|
144
|
+
vps-work <program> <segment...> [--<flag-kebab-case> ...]
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
- flag 名是 schema key 的 **kebab-case**:`salary_month` → `--salary-month`,`start_date` → `--start-date`(snake_case 也接受,会归一化)
|
|
148
|
+
- 错名会得到上下文提示:`--month` → `(Did you mean one of --salary-month, --salary-month-file?)`
|
|
149
|
+
- 单 `required: string` 字段的 leaf 支持 **positional shorthand**:
|
|
150
|
+
|
|
151
|
+
```powershell
|
|
152
|
+
vps-work <域> +<shortcut> "<值>"
|
|
153
|
+
# 等价 vps-work <域> +<shortcut> --<对应必填参数> "<值>"
|
|
154
|
+
```
|
|
155
|
+
|
|
156
|
+
### 4.2 三个最常用范例
|
|
157
|
+
|
|
158
|
+
```powershell
|
|
159
|
+
# 业务取数(专项域命令)
|
|
160
|
+
vps-work sales +headline-kpi --period this_month
|
|
161
|
+
vps-work sales +headline-kpi --period this_month --dry-run
|
|
162
|
+
vps-work hr +headcount
|
|
163
|
+
|
|
164
|
+
# 发一条 IM 消息
|
|
165
|
+
vps-work im +send --channel-id 1024 --body "今天的报价已更新"
|
|
166
|
+
```
|
|
167
|
+
|
|
168
|
+
### 4.2.1 请求另一名员工的 VPS Harness Agent
|
|
169
|
+
|
|
170
|
+
```powershell
|
|
171
|
+
vps-work im +users --query "张三"
|
|
172
|
+
vps-work agent ask --user-id 12708 --message "请汇总今天的客户跟进风险"
|
|
173
|
+
vps-work agent ask --user-id 12708 --message @request.md --duration-minutes 30
|
|
174
|
+
```
|
|
175
|
+
|
|
176
|
+
对方需在线并在 VPS Harness 设置中开启 Agent 联系开关。双方会话列表会显示真实的 Harness Bot 协作会话,消息以 Bot 身份发送,不占用员工私聊。不带截止时间时只执行一轮;使用 `--stop-at` 或 `--duration-minutes` 后会循环协作,到点自动停止。收到首轮答复时命令立即返回,后续轮次由桌面端后台继续。普通 IM 消息不会触发 Harness;完整用法见 `vps-work agent ask --help`。
|
|
177
|
+
|
|
178
|
+
### 4.2.2 让我的 VPS Harness Agent 联系员工
|
|
179
|
+
|
|
180
|
+
```powershell
|
|
181
|
+
vps-work im +users --query "张三"
|
|
182
|
+
vps-work agent message-user --user-id 12708 --message "请确认今天 16:00 的评审时间"
|
|
183
|
+
```
|
|
184
|
+
|
|
185
|
+
消息以当前用户的 VPS Harness Bot 身份发送到独立机器人私聊。对方以普通员工身份回复后,当前用户桌面端会使用 VPS Harness 设置中选定的 Agent Preset 回复;一条员工消息只触发一次,不会自行循环。当前用户需保持桌面端在线并开启 Agent 联系开关。完整用法见 `vps-work agent message-user --help`。
|
|
186
|
+
|
|
187
|
+
### 4.2.3 让任意自建机器人联系员工
|
|
188
|
+
|
|
189
|
+
```powershell
|
|
190
|
+
vps-work im +bots
|
|
191
|
+
vps-work im +bot-send-user --app-id vbot_xxx --user-id 12708 --body "请提交今日销售数据"
|
|
192
|
+
```
|
|
193
|
+
|
|
194
|
+
该命令只允许使用当前用户自己的机器人,并复用宿主登录会话或 Agent Key,不需要 App Secret。员工回复会进入机器人已有的 webhook 或内置 Agent 处理链路;它不受 VPS Harness 开关和 Agent Preset 控制。正文、附件、引用和幂等参数见 `vps-work im +bot-send-user --help`。
|
|
195
|
+
|
|
196
|
+
### 4.2.4 使用平台公共工具上传 OSS
|
|
197
|
+
|
|
198
|
+
```powershell
|
|
199
|
+
vps-work tools +oss-upload --file ./report.pdf
|
|
200
|
+
vps-work tools +oss-upload --file ./logo.png --visibility public
|
|
201
|
+
```
|
|
202
|
+
|
|
203
|
+
默认使用私有对象并返回限时签名 URL;只有用户明确要求公开访问时才传 `--visibility public`。完整安全边界与参数见 `vps-tools` Skill 和 `vps-work tools +oss-upload --help`。
|
|
204
|
+
|
|
205
|
+
### 4.3 PowerShell 引号约定(重要,AI 高频踩坑)
|
|
206
|
+
|
|
207
|
+
- domain 这种**外层 PowerShell 字符串**用**单引号**包裹,**内层** Python 字面量保持**双引号**:
|
|
208
|
+
- 正确:`--domain '[("active","=",True)]'`
|
|
209
|
+
- 错误:`--domain "[('active','=',True)]"`(双引号在 PowerShell 里会被字符串展开吃掉)
|
|
210
|
+
- 复杂 JSON 走文件:`--params (Get-Content .\params.json -Raw)`
|
|
211
|
+
|
|
212
|
+
## 5. 装公开 skill 到各 Agent 目录
|
|
213
|
+
|
|
214
|
+
所有 skill 都**随 npm 包静态分发、完全公开**,`vps-work skill *` 直接把包内 `skills/` 拷贝到 AI Agent 的用户级 skills 目录——**无需登录、不连任何服务端**。
|
|
215
|
+
|
|
216
|
+
```powershell
|
|
217
|
+
vps-work skill list # 列出随包分发的公开 skill
|
|
218
|
+
vps-work skill install # 不传参 → 装全部到已检测到的 Agent
|
|
219
|
+
vps-work skill install vps-im sale-performance-query --agent cursor # 显式装到指定 agent
|
|
220
|
+
vps-work skill install --all --agent all # 一把全装(cursor + claude-code + trae + trae-cn + openclaw + hermes)
|
|
221
|
+
vps-work skill install vps-im --dir ~/work/my-agent/skills # 自定义目录
|
|
222
|
+
vps-work skill update # 覆盖式重同步到全部已检测到的 Agent
|
|
223
|
+
vps-work skill uninstall <key> # 从已检测到的 Agent 移除
|
|
224
|
+
```
|
|
225
|
+
|
|
226
|
+
`vps-work install` 在装包成功后会**自动**把公开 skill 铺到检测到的 Agent 目录(可用 `--no-skills` 关闭)。
|
|
227
|
+
|
|
228
|
+
### 5.1 Agent 管理当前用户自己的技能
|
|
229
|
+
|
|
230
|
+
```bash
|
|
231
|
+
vps-work skill +create-personal --slug sales-follow-up --title "销售跟进" --description "生成客户跟进计划" --instructions @instructions.md
|
|
232
|
+
vps-work skill +update-personal --slug sales-follow-up --skill-md @SKILL.md --note "补充输出格式"
|
|
233
|
+
vps-work skill +change-category --slug sales-follow-up --category sales
|
|
234
|
+
vps-work skill +request-publication --slug sales-follow-up --note "申请企业公开"
|
|
235
|
+
vps-work skill +delete-personal --slug sales-follow-up
|
|
236
|
+
```
|
|
237
|
+
|
|
238
|
+
- 这组命令复用宿主注入的 app_key;Agent 不登录、不索取密码,也不申请临时令牌。
|
|
239
|
+
- 新建和更新必须通过 `--skill-md` 或 `--instructions` 提供内容,支持 `@file` / `@-`。
|
|
240
|
+
- CLI 与服务端都会补齐并校正 YAML frontmatter;`name` 使用稳定 slug,`description` 自动补齐,扩展字段保留。
|
|
241
|
+
- 只能管理当前身份自己创建的个人技能。`+request-publication` 只提交审核,不会绕过审核直接公开。
|
|
242
|
+
|
|
243
|
+
支持的 `--agent` id(用逗号或空格分隔;`all` 表示全部):
|
|
244
|
+
|
|
245
|
+
| id | 安装路径 |
|
|
246
|
+
|---|---|
|
|
247
|
+
| `cursor` | `~/.cursor/skills/<key>/` |
|
|
248
|
+
| `claude-code`(别名 `claude`) | `~/.claude/skills/<key>/` |
|
|
249
|
+
| `trae` | `~/.trae/skills/<key>/`(国际版) |
|
|
250
|
+
| `trae-cn` | `~/.trae-cn/skills/<key>/`(国内版) |
|
|
251
|
+
| `openclaw`(别名 `open-claw` / `claw`) | `~/.openclaw/skills/<key>/` |
|
|
252
|
+
| `hermes`(别名 `hermes-agent` / `nous`) | `~/.hermes/skills/<key>/` |
|
|
253
|
+
|
|
254
|
+
`--dir <path>` 与 `--agent` 可混用,路径支持 `~` 展开;同一物理路径只写一次。
|
|
255
|
+
|
|
256
|
+
## 6. 升级 vps-work 自身
|
|
257
|
+
|
|
258
|
+
### 6.1 常规升级(之前就是从 npm registry 装的)
|
|
259
|
+
|
|
260
|
+
```powershell
|
|
261
|
+
npm update -g vps-work
|
|
262
|
+
vps-work --version
|
|
263
|
+
vps-work skill update # 把新版随包分发的 skill 重新同步到所有 agent
|
|
264
|
+
```
|
|
265
|
+
|
|
266
|
+
### 6.2 tarball / npm link 装的(`npm update` 拉不到最新版)
|
|
267
|
+
|
|
268
|
+
旧 `vertu-cli` 已弃用。排障时若发现 `vertu-cli` 仍在 PATH 中干扰,直接 `npm uninstall -g vertu-cli`。
|
|
269
|
+
|
|
270
|
+
**先判断**:
|
|
271
|
+
|
|
272
|
+
```powershell
|
|
273
|
+
# Windows PowerShell
|
|
274
|
+
npm list -g --depth=0 | Select-String 'vps-work'
|
|
275
|
+
where.exe vps-work
|
|
276
|
+
(Get-Item "$(npm root -g)\vps-work" -ErrorAction SilentlyContinue).LinkType
|
|
277
|
+
# 期望:列表中只有一条 vps-work@<最新版>,LinkType 为空(非 Junction/SymbolicLink)
|
|
278
|
+
# LinkType=Junction 或 SymbolicLink → 是源码 npm link 的工作区,不会跟 registry 升级
|
|
279
|
+
```
|
|
280
|
+
|
|
281
|
+
```bash
|
|
282
|
+
# macOS / Linux
|
|
283
|
+
npm list -g --depth=0 | grep vps-work
|
|
284
|
+
which vps-work
|
|
285
|
+
readlink -f "$(npm root -g)/vps-work"
|
|
286
|
+
```
|
|
287
|
+
|
|
288
|
+
**只重装本包**:
|
|
289
|
+
|
|
290
|
+
```powershell
|
|
291
|
+
# Windows PowerShell
|
|
292
|
+
npm uninstall -g vps-work
|
|
293
|
+
npm install -g vps-work
|
|
294
|
+
vps-work --version
|
|
295
|
+
vps-work skill update
|
|
296
|
+
```
|
|
297
|
+
|
|
298
|
+
```bash
|
|
299
|
+
# macOS / Linux
|
|
300
|
+
npm uninstall -g vps-work
|
|
301
|
+
npm install -g vps-work
|
|
302
|
+
vps-work --version
|
|
303
|
+
vps-work skill update
|
|
304
|
+
```
|
|
305
|
+
|
|
306
|
+
> **判断口径**:只要 `npm update -g vps-work` 跑完后 `vps-work --version`
|
|
307
|
+
> 没动,就走本节流程。
|
|
308
|
+
>
|
|
309
|
+
> **贡献者注意**:如果你本来就是 `npm link` 的工作区开发者,**不要**走本节
|
|
310
|
+
> uninstall 流程。直接 `cd packages/vps-work && git pull && npm install && npm run build` 即可。
|
|
311
|
+
|
|
312
|
+
## 7. 卸载
|
|
313
|
+
|
|
314
|
+
会话目录是 `~/.vps-work`,钥匙串服务名是 `vps-work`。可选清理会话:`Remove-Item $HOME\.vps-work -Recurse -Force`;旧 `vertu-cli` 的 `~/.vertu` 也可一并删除。
|
|
315
|
+
|
|
316
|
+
```powershell
|
|
317
|
+
# 1. 先把本包铺到各 agent 的 skill 清掉(可选)
|
|
318
|
+
vps-work skill uninstall --agent all
|
|
319
|
+
|
|
320
|
+
# 2. 卸载 vps-work(如仍有已弃用的 vertu-cli 也一并卸载)
|
|
321
|
+
npm uninstall -g vps-work
|
|
322
|
+
```
|
|
323
|
+
|
|
324
|
+
## 8. 一行 bootstrap
|
|
325
|
+
|
|
326
|
+
Agent 自举只安装并检查宿主凭证,不执行登录:
|
|
327
|
+
|
|
328
|
+
```powershell
|
|
329
|
+
# Windows PowerShell(install 会自动铺公开 skill)
|
|
330
|
+
npm install -g vps-work; vps-work skill install --all --agent all; vps-work auth status
|
|
331
|
+
```
|
|
332
|
+
|
|
333
|
+
```bash
|
|
334
|
+
# macOS / Linux
|
|
335
|
+
npm install -g vps-work && vps-work skill install --all --agent all && vps-work auth status
|
|
336
|
+
```
|
|
337
|
+
|
|
338
|
+
CI(无交互):
|
|
339
|
+
|
|
340
|
+
```bash
|
|
341
|
+
export VERTU_BOT_INBOUND_KEY=xxx
|
|
342
|
+
npm install -g vps-work && vps-work auth status && vps-work skill install --all --agent all
|
|
343
|
+
```
|
|
344
|
+
|
|
345
|
+
## 9. 常见坑点
|
|
346
|
+
|
|
347
|
+
| 现象 | 根因 | 正确做法 |
|
|
348
|
+
|---|---|---|
|
|
349
|
+
| `vps-work : 无法将 ... 识别为 cmdlet` / `command not found: vps-work` | 全局 `npm bin` 不在 `PATH` | `npm config get prefix` 看到的目录加进 `PATH`;或重开终端;Windows 上注意 `where.exe vps-work` 是否找到 |
|
|
350
|
+
| `npm install` 卡在 keytar 编译 | 无 build tools / 无 python | `$env:VERTU_DISABLE_KEYTAR='1'` + `--no-optional` 重装 |
|
|
351
|
+
| `npm update -g vps-work` 跑完 `vps-work --version` 还是旧值 | 之前装的是 tarball 或 `npm link` 的工作区拷贝,与 registry 包**不在同一更新链** | 走 §6.2:重装 `vps-work` |
|
|
352
|
+
| 人工执行 `vps-work auth login` 返回 401 | 用户名 / 密码错;或服务地址打错 | 仅由人工确认账号与地址;Agent 不得索取或重试密码 |
|
|
353
|
+
| `vps-work im +…` / `vps-work vemory +…` / `vps-work mail +send` 报 401 | 凭证无效 | Agent/Bot/Hermes 停止并提示管理员刷新宿主 app_key;人工用户可交互重新登录 |
|
|
354
|
+
| `--model` 写错了被提示 `Did you mean --model-name` | flag 必须 kebab-case | 改成 `--model-name`,AI 不要凭记忆缩写 |
|
|
355
|
+
| 单引号 / 双引号在 PowerShell 里串起来字符乱了 | PowerShell 双引号会展开 `$` 与单引号字面量 | 外层用单引号,内层 Python 字面量保留双引号;复杂 JSON 走 `--params (Get-Content .\x.json -Raw)` |
|
|
356
|
+
| Trae 国际版装了 skill,国内版没看到 | 两版**互不共享** SKILL 目录(`~/.trae` vs `~/.trae-cn`) | `vps-work skill install --agent trae,trae-cn` 同时装;或 `--agent all` |
|
|
357
|
+
| `~/.cursor/skills/...` 与新版包不一致 | 升级后未重新铺设 | `vps-work skill update`(覆盖式重同步全部公开 skill) |
|
|
358
|
+
| 用了 Bearer 后 `auth status` 显示的是机器人不是自己 | Bearer 优先级高于 session | 取消 `$env:VERTU_BOT_INBOUND_KEY` 或换新 shell |
|
|
359
|
+
| 项目级 `.cursor/rules/*.mdc` / `AGENTS.md` 没收到 skill | 当前 vps-work 仅覆盖**用户级**目录 | 项目级整合需求请提 issue,暂未支持 |
|
|
360
|
+
|
|
361
|
+
## 10. 关联
|
|
362
|
+
|
|
363
|
+
- **vps-work 仓库与 issue**:https://gitee.com/he-linyan/vps-cli
|
|
364
|
+
- **CLI 网关后端契约**:`vertu-erp/vertu_addons/ai_cli/README.md`(HTTP 路由、auth、execute payload 形态)
|
|
365
|
+
- **Skill 体系后端契约**:`vertu-erp/vertu_addons/ai_skills/README.md`(catalog / execute / skill_file / scripts 路由、frontmatter 规则、feedback 协议)
|
|
366
|
+
- 装好后:`vps-work skill list` 看随包分发的公开 skill 全集;优先用专项 skill(如 `sale-performance-query`、`vps-im`),用 `vps-work <域> +…` 操作
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: vps-work-onboard
|
|
3
|
+
version: 2.0.0
|
|
4
|
+
description: "新机器安装 vps-work、登录,并把随包分发的公开 vps-* 业务 skill 铺到各 Agent 目录。触发词:装 vps-work、onboard、初始化 vps-work、装 Vertu skills。"
|
|
5
|
+
metadata:
|
|
6
|
+
requires:
|
|
7
|
+
bins: ["vps-work"]
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# vps-work 一键自举(agent 引导)
|
|
11
|
+
|
|
12
|
+
## 何时使用
|
|
13
|
+
|
|
14
|
+
新机器/新账号首次落地。**业务 skill 随 npm 包静态分发、完全公开**,无需登录即可安装。
|
|
15
|
+
|
|
16
|
+
## Step 1 — Node 20+
|
|
17
|
+
|
|
18
|
+
```bash
|
|
19
|
+
node -v
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
## Step 2 — 安装 vps-work(装包后会自动铺公开 skill)
|
|
23
|
+
|
|
24
|
+
```bash
|
|
25
|
+
npx vps-work@latest install
|
|
26
|
+
# 关闭自动铺设:加 --no-skills
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
## Step 3 — 安装/同步公开业务 skill 到各 Agent
|
|
30
|
+
|
|
31
|
+
```bash
|
|
32
|
+
vps-work skill list # 看公开 skill 全集
|
|
33
|
+
vps-work skill install --all --agent all # 铺到 cursor / claude-code / hermes 等
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
## Step 4 — 验证宿主凭证(取数需要)
|
|
37
|
+
|
|
38
|
+
Agent / Bot / Hermes **禁止**执行账号密码登录、索取密码或把密码写入 Prompt/命令。Hermes 宿主必须注入 `app_id=vertu-hermes-agent` 对应的 app_key:
|
|
39
|
+
|
|
40
|
+
```bash
|
|
41
|
+
vps-work auth status
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
若凭证无效,停止并提示人工管理员刷新。`vps-work auth login` 仅供人工用户在交互终端使用。
|
|
45
|
+
|
|
46
|
+
## Step 5 — 自检
|
|
47
|
+
|
|
48
|
+
```bash
|
|
49
|
+
vps-work --help # 命令树内置固定
|
|
50
|
+
vps-work skill list
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
日常同步:`vps-work skill update`(覆盖式重同步全部公开 skill)。
|