vps-work 1.0.0 → 1.1.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.
|
@@ -2,53 +2,60 @@
|
|
|
2
2
|
"skills": [
|
|
3
3
|
{
|
|
4
4
|
"name": "vps-shared",
|
|
5
|
-
"description": "
|
|
5
|
+
"description": "vps-work 共用约定:登录、当前用户身份、活目录 catalog / exec、数据查询与反馈。业务域技能开始前应先读本文件。",
|
|
6
6
|
"files": [
|
|
7
7
|
"skills/vps-shared/SKILL.md"
|
|
8
8
|
]
|
|
9
9
|
},
|
|
10
10
|
{
|
|
11
11
|
"name": "vps-meeting",
|
|
12
|
-
"description": "
|
|
12
|
+
"description": "查询会议录音、逐字稿、纪要、总结、章节、问答、待办和部门/模版统计。按本人、递归下属、全域或已授权的指定部门/人员控制访问。入口 `vps-work meeting +…`。触发词:会议、录音、逐字稿、会议纪要、会议总结、会议待办、会议统计、会议模版、谁说了什么。",
|
|
13
13
|
"files": [
|
|
14
14
|
"skills/vps-meeting/SKILL.md"
|
|
15
15
|
]
|
|
16
16
|
},
|
|
17
|
+
{
|
|
18
|
+
"name": "vps-vemory",
|
|
19
|
+
"description": "旧版 Vemory 会议查询兼容入口。新调用应使用 `vps-meeting` 与 `vps-work meeting +list`。",
|
|
20
|
+
"files": [
|
|
21
|
+
"skills/vps-vemory/SKILL.md"
|
|
22
|
+
]
|
|
23
|
+
},
|
|
17
24
|
{
|
|
18
25
|
"name": "sale-performance-query",
|
|
19
|
-
"description": "使用 `vps-work sales +…` 查询 Vertu
|
|
26
|
+
"description": "使用 `vps-work sales +…` 查询 Vertu 销售业绩和订单。用于公司、部门、销售员的销售额、销量、普通销售订单、订单关联的开票申请、正式发票、会计凭证与付款状态、已对账销售收款、JXSD 经销商订单、代理商 Sell-in/Sell-out、代理商五件套来源和 Walk-in、经销商库存与终销、客户画像、新老客占比、环比同比、部门下钻、目标达成、定金退款、人效、个人 OKR、团队 PK,以及按商品系列、款式或 IOT 分析销量销额。除经销商默认仓库库存外,通用商品库存、价格、发货与商品主数据改用 vps-product。",
|
|
20
27
|
"files": [
|
|
21
28
|
"skills/sale-performance-query/SKILL.md",
|
|
29
|
+
"skills/sale-performance-query/references/vps-sales-account-orders.md",
|
|
30
|
+
"skills/sale-performance-query/references/vps-sales-agent-five-suite.md",
|
|
31
|
+
"skills/sale-performance-query/references/vps-sales-customer-mix.md",
|
|
32
|
+
"skills/sale-performance-query/references/vps-sales-customer-region.md",
|
|
33
|
+
"skills/sale-performance-query/references/vps-sales-daily-trend.md",
|
|
34
|
+
"skills/sale-performance-query/references/vps-sales-dealer-orders.md",
|
|
35
|
+
"skills/sale-performance-query/references/vps-sales-dealer-performance.md",
|
|
36
|
+
"skills/sale-performance-query/references/vps-sales-deposit-breakdown.md",
|
|
37
|
+
"skills/sale-performance-query/references/vps-sales-dept-breakdown.md",
|
|
38
|
+
"skills/sale-performance-query/references/vps-sales-dept-comparison.md",
|
|
22
39
|
"skills/sale-performance-query/references/vps-sales-entities.md",
|
|
23
|
-
"skills/sale-performance-query/references/vps-sales-shared-params.md",
|
|
24
40
|
"skills/sale-performance-query/references/vps-sales-headline-kpi.md",
|
|
25
|
-
"skills/sale-performance-query/references/vps-sales-account-orders.md",
|
|
26
41
|
"skills/sale-performance-query/references/vps-sales-invoice-attachments.md",
|
|
27
42
|
"skills/sale-performance-query/references/vps-sales-invoice-status.md",
|
|
28
43
|
"skills/sale-performance-query/references/vps-sales-order-finance.md",
|
|
29
44
|
"skills/sale-performance-query/references/vps-sales-order-logistics.md",
|
|
45
|
+
"skills/sale-performance-query/references/vps-sales-per-person-kpi.md",
|
|
46
|
+
"skills/sale-performance-query/references/vps-sales-personal-okr.md",
|
|
47
|
+
"skills/sale-performance-query/references/vps-sales-ranking.md",
|
|
30
48
|
"skills/sale-performance-query/references/vps-sales-reconciled-receipts.md",
|
|
31
|
-
"skills/sale-performance-query/references/vps-sales-dealer-orders.md",
|
|
32
|
-
"skills/sale-performance-query/references/vps-sales-dealer-performance.md",
|
|
33
|
-
"skills/sale-performance-query/references/vps-sales-agent-five-suite.md",
|
|
34
|
-
"skills/sale-performance-query/references/vps-sales-dept-breakdown.md",
|
|
35
|
-
"skills/sale-performance-query/references/vps-sales-customer-mix.md",
|
|
36
|
-
"skills/sale-performance-query/references/vps-sales-customer-region.md",
|
|
37
|
-
"skills/sale-performance-query/references/vps-sales-dept-comparison.md",
|
|
38
|
-
"skills/sale-performance-query/references/vps-sales-target-achievement.md",
|
|
39
|
-
"skills/sale-performance-query/references/vps-sales-deposit-breakdown.md",
|
|
40
49
|
"skills/sale-performance-query/references/vps-sales-refund-summary.md",
|
|
41
50
|
"skills/sale-performance-query/references/vps-sales-service-sales.md",
|
|
42
|
-
"skills/sale-performance-query/references/vps-sales-
|
|
43
|
-
"skills/sale-performance-query/references/vps-sales-
|
|
44
|
-
"skills/sale-performance-query/references/vps-sales-per-person-kpi.md",
|
|
45
|
-
"skills/sale-performance-query/references/vps-sales-personal-okr.md",
|
|
51
|
+
"skills/sale-performance-query/references/vps-sales-shared-params.md",
|
|
52
|
+
"skills/sale-performance-query/references/vps-sales-target-achievement.md",
|
|
46
53
|
"skills/sale-performance-query/references/vps-sales-team-pk.md"
|
|
47
54
|
]
|
|
48
55
|
},
|
|
49
56
|
{
|
|
50
57
|
"name": "vps-store-management",
|
|
51
|
-
"description": "
|
|
58
|
+
"description": "门店管理:查询国内渠道门店接待、进店客流、客户画像、意向商品、加微信、有效客户、产品触摸/试用和现场成交过程数据。用户问门店接待情况、进店组数、进店人数、客户画像、意向商品、加微率、有效客户、触摸率、使用率、现场成交率、门店客流排行时使用 `vps-work store +reception`。",
|
|
52
59
|
"files": [
|
|
53
60
|
"skills/vps-store-management/SKILL.md",
|
|
54
61
|
"skills/vps-store-management/references/store-reception.md"
|
|
@@ -63,36 +70,57 @@
|
|
|
63
70
|
},
|
|
64
71
|
{
|
|
65
72
|
"name": "vps-product",
|
|
66
|
-
"description": "VPS 商品与供应链:商品销量、销额、订单数、IOT
|
|
73
|
+
"description": "VPS 商品与供应链:商品销量、销额、订单数、IOT、商品折扣、日/周/月趋势、款式环比,以及库存、价格、发货、齐套物料、机头库存、在库激活和异常 IMEI。用户问某商品/系列/款式卖了多少时使用 `vps-work sales +trend` 等销售聚合;用户问普通库存、价格、发货或设备异常时使用 `vps-work product +…`。触发词:商品销量、商品销额、IOT、折扣、款式、库存、价格、发货、齐套、BOM、机头、在库激活、仓位异常、异常设备、异常 IMEI。",
|
|
67
74
|
"files": [
|
|
68
75
|
"skills/vps-product/SKILL.md"
|
|
69
76
|
]
|
|
70
77
|
},
|
|
71
78
|
{
|
|
72
79
|
"name": "vps-device-abnormal-statistics",
|
|
73
|
-
"description": "
|
|
80
|
+
"description": "查询 Vertu 设备在库激活与异常统计:按仓位查看总库存、实物库存、在途、门店库存和异常 IMEI,查询仓位选项,以及按 IMEI 下钻未处理异常原因、销售、激活、出库和维修信息。用户提到在库激活、仓位异常、异常设备、异常 IMEI、激活异常或设备异常明细时使用 `vps-work product +abnormal-…`。",
|
|
74
81
|
"files": [
|
|
75
82
|
"skills/vps-device-abnormal-statistics/SKILL.md",
|
|
76
|
-
"skills/vps-device-abnormal-statistics/
|
|
77
|
-
"skills/vps-device-abnormal-statistics/
|
|
83
|
+
"skills/vps-device-abnormal-statistics/agents/openai.yaml",
|
|
84
|
+
"skills/vps-device-abnormal-statistics/references/api.md"
|
|
78
85
|
]
|
|
79
86
|
},
|
|
80
87
|
{
|
|
81
88
|
"name": "vps-im",
|
|
82
|
-
"description": "Vertu IM
|
|
89
|
+
"description": "Vertu IM:读取与发送消息、下载会话图片/附件原文件、私聊/群聊/组织群、员工 VPS Harness Agent 互相请求或以机器人身份联系人、群发、撤回、互动卡片、群成员管理、机器人、语音视频通话。当用户需要查看会话列表、读历史消息、获取或下载聊天图片/附件、监听新消息、让另一名员工的 Harness Agent 协作、让自己的 Harness Agent 联系员工、给某人或某群发消息、群发通知、发审批卡片、撤回、建群拉人、管理机器人或发起通话时使用。入口 `vps-work im +…`、`vps-work agent ask` 与 `vps-work agent message-user`。触发词:聊天图片、聊天附件、附件下载、Agent 协作、员工 Agent、机器人私聊、发消息、私聊、群聊、群发、通知、撤回、会话、历史消息、监听、机器人、语音通话、视频通话、IM。",
|
|
83
90
|
"files": [
|
|
84
91
|
"skills/vps-im/SKILL.md",
|
|
85
|
-
"skills/vps-im/references/vps-im-
|
|
92
|
+
"skills/vps-im/references/vps-im-bots.md",
|
|
93
|
+
"skills/vps-im/references/vps-im-calls.md",
|
|
94
|
+
"skills/vps-im/references/vps-im-channels.md",
|
|
86
95
|
"skills/vps-im/references/vps-im-read.md",
|
|
87
96
|
"skills/vps-im/references/vps-im-send.md",
|
|
88
|
-
"skills/vps-im/references/vps-im-
|
|
89
|
-
|
|
90
|
-
|
|
97
|
+
"skills/vps-im/references/vps-im-shared-params.md"
|
|
98
|
+
]
|
|
99
|
+
},
|
|
100
|
+
{
|
|
101
|
+
"name": "vps-mail",
|
|
102
|
+
"description": "站内信发送。`vps-work mail +…`。",
|
|
103
|
+
"files": [
|
|
104
|
+
"skills/vps-mail/SKILL.md"
|
|
105
|
+
]
|
|
106
|
+
},
|
|
107
|
+
{
|
|
108
|
+
"name": "vps-approval",
|
|
109
|
+
"description": "审批队列与通过/拒绝。`vps-work approval +…`。",
|
|
110
|
+
"files": [
|
|
111
|
+
"skills/vps-approval/SKILL.md"
|
|
112
|
+
]
|
|
113
|
+
},
|
|
114
|
+
{
|
|
115
|
+
"name": "vps-corporate",
|
|
116
|
+
"description": "VPS 企业综合管理只读查询:合作企业档案、合同及非合同文件用印、印章证照外借、人资用印、业务管理审批、规章制度和对应附件。用户询问合作方资料、营业执照、合同盖章件、制度文件、业务政策等内容时使用 `vps-work corporate +…`。",
|
|
117
|
+
"files": [
|
|
118
|
+
"skills/vps-corporate/SKILL.md"
|
|
91
119
|
]
|
|
92
120
|
},
|
|
93
121
|
{
|
|
94
122
|
"name": "vps-calendar",
|
|
95
|
-
"description": "查询、创建和修改 Vertu
|
|
123
|
+
"description": "查询、创建和修改 Vertu 日程,并管理日历与多人忙闲。用户要查看某段日期内我的日程、点名查看某个人的忙碌日程、查看指定日历、创建或调整日程、列出可访问日历,或为会议查多人空闲时间时使用。入口为 `vps-work calendar +…`。触发词:日程、日历、行程、安排、创建日程、修改日程、忙闲、空闲时间、agenda、calendar、schedule。",
|
|
96
124
|
"files": [
|
|
97
125
|
"skills/vps-calendar/SKILL.md",
|
|
98
126
|
"skills/vps-calendar/agents/openai.yaml"
|
|
@@ -100,11 +128,11 @@
|
|
|
100
128
|
},
|
|
101
129
|
{
|
|
102
130
|
"name": "vps-documents",
|
|
103
|
-
"description": "查询、读取、新建、重命名、复制、导出和共享 Vertu
|
|
131
|
+
"description": "查询、读取、新建、重命名、复制、导出和共享 Vertu 企业云文档、智能表格、多维表与文件夹,读取智能表格工作簿并批量更新单元格,操作多维表记录/字段/视图,以及将文档卡片发送到当前 VPS IM 会话。用户提到云文档、V盘文档、企业文档、智能表格、多维表、创建文档、读取或更新表格单元格、修改标题、复制文档、导出 Markdown、设置文档权限或把文档发到当前会话时使用。入口为 `vps-work docs +…`。",
|
|
104
132
|
"files": [
|
|
105
133
|
"skills/vps-documents/SKILL.md",
|
|
106
|
-
"skills/vps-documents/
|
|
107
|
-
"skills/vps-documents/
|
|
134
|
+
"skills/vps-documents/agents/openai.yaml",
|
|
135
|
+
"skills/vps-documents/references/api.md"
|
|
108
136
|
]
|
|
109
137
|
},
|
|
110
138
|
{
|
|
@@ -123,7 +151,7 @@
|
|
|
123
151
|
},
|
|
124
152
|
{
|
|
125
153
|
"name": "vps-tools",
|
|
126
|
-
"description": "VPS 平台公共工具:按需解析用户附件,以及把本地文件上传到统一 OSS
|
|
154
|
+
"description": "VPS 平台公共工具:按需解析用户附件,以及把本地文件上传到统一 OSS。附件默认读取原文件;只有复杂 PDF、Office、扫描件等确有需要时才调用 `vps-work tools +attachment-parse` 启动 MinerU。",
|
|
127
155
|
"files": [
|
|
128
156
|
"skills/vps-tools/SKILL.md",
|
|
129
157
|
"skills/vps-tools/agents/openai.yaml"
|
|
@@ -131,23 +159,25 @@
|
|
|
131
159
|
},
|
|
132
160
|
{
|
|
133
161
|
"name": "vps-current-user-identity",
|
|
134
|
-
"description": "适用场景:用户提到「我」「我的」「本人」「我自己」「我们部门」「本部门」「我的上级」「我的领导」「汇报对象」「我的销售订单 / 采购 / 审批 / 任务」「我创建的」「我负责的」「以我的名义」等任何一人称指代时使用。提供 3 条等价路径取当前身份:(1) CLI vps-work hr +me 一次性返回 user_id /
|
|
162
|
+
"description": "适用场景:用户提到「我」「我的」「本人」「我自己」「我们部门」「本部门」「我的上级」「我的领导」「汇报对象」「我的销售订单 / 采购 / 审批 / 任务」「我创建的」「我负责的」「以我的名义」等任何一人称指代时使用。提供 3 条等价路径取当前身份:(1) CLI vps-work hr +me 一次性返回 user_id / employee_id / department_id / department_chain / manager_user_id;(2) Domain DSL 宏 @me / @my_partner / @my_employee / @my_department / @company / @companies 可在各域命令的 domain 参数中直接用,无需先取身份;(3) vps-work auth status --json 极简身份(uid / login)。常见误区:禁止把 partner_id 当 user_id、禁止扫 res.users 找自己、禁止重复取身份。触发词:我、我的、本人、我自己、我们部门、本部门、我上级、我领导、汇报对象、当前用户、current user、@me、auth status、self identity、me。",
|
|
135
163
|
"files": [
|
|
136
|
-
"skills/vps-current-user-identity/SKILL.md"
|
|
164
|
+
"skills/vps-current-user-identity/SKILL.md",
|
|
165
|
+
"skills/vps-current-user-identity/reference.md"
|
|
137
166
|
]
|
|
138
167
|
},
|
|
139
168
|
{
|
|
140
169
|
"name": "vps-daily-report-assistant",
|
|
141
|
-
"description": "面向 Vertu
|
|
170
|
+
"description": "面向 Vertu 日报系统的查询与提交。用户要查每日应填未交或打卡未交日报名单、本部门日报、员工日报、自己的日报、可汇报任务、提交今日日报、管理员删除当日日报测试数据、同步日报助手卡片时使用。入口 CLI 为 `vps-work report +…`,当前提供 `+missing-daily-reports`、`+checkin-missing`、`+mine`、`+department`、`+tasks`、`+submit`、`+delete-today`、`+sync`。触发词:日报、部门日报、应填未交、未交日报、打卡未交、员工日报、我的日报、日报任务、提交日报、删除今日日报、同步日报助手、daily report。",
|
|
142
171
|
"files": [
|
|
143
172
|
"skills/vps-daily-report-assistant/SKILL.md"
|
|
144
173
|
]
|
|
145
174
|
},
|
|
146
175
|
{
|
|
147
176
|
"name": "vps-daily-sales-report",
|
|
148
|
-
"description": "
|
|
177
|
+
"description": "公司级全部门销售总览,含销售额/销量、新老客销售占比、环比/同比、商品系列周月趋势、IOT 商品页订单数、已对账销售收款明细、销售单开票申请状态、正式发票、会计凭证与付款状态、含/不含代理折扣、最新组织渠道、高定销售、智能穿戴、大折叠黄金3/黄金4/金钻、部门目标达成率。支持任意时间窗口(CLI: period 枚举或 YYYY-MM-DD、--start-date/--end-date;execute/API: start_date/end_date),数据基于代码化销售行口径 + 管理端同源的部门目标,通过 `vps-work sales +…` 取数。本技能面向公司全部门汇总,并有新客/老客结构、环比/同比/目标达成。触发词:总销日报、公司日销、日报、今日销售、本月销售、已对账收款、销售收款明细、申请开票、开票状态、开票审批、正式发票、会计凭证、付款状态、商品趋势、IOT、商品订单数、商品折扣、含代理、不含代理、高定、智能穿戴、大折叠、黄金3、黄金4、金钻、新客销售、上月、上周、环比、同比、部门达成率、全部门销售。",
|
|
149
178
|
"files": [
|
|
150
|
-
"skills/vps-daily-sales-report/SKILL.md"
|
|
179
|
+
"skills/vps-daily-sales-report/SKILL.md",
|
|
180
|
+
"skills/vps-daily-sales-report/reference.md"
|
|
151
181
|
]
|
|
152
182
|
},
|
|
153
183
|
{
|
|
@@ -161,40 +191,53 @@
|
|
|
161
191
|
"name": "vps-hr-compensation-documents",
|
|
162
192
|
"description": "员工月度工资条只读查询(VPS 原生 HR,vps_tenant_payslips)。本人可查本人已发放工资条,企业管理员可查本企业成员。取数通过 `vps-work hr +payslip`。",
|
|
163
193
|
"files": [
|
|
164
|
-
"skills/vps-hr-compensation-documents/SKILL.md"
|
|
194
|
+
"skills/vps-hr-compensation-documents/SKILL.md",
|
|
195
|
+
"skills/vps-hr-compensation-documents/reference.md",
|
|
196
|
+
"skills/vps-hr-compensation-documents/references/+payslip.md",
|
|
197
|
+
"skills/vps-hr-compensation-documents/references/runtime-and-helpers.md"
|
|
165
198
|
]
|
|
166
199
|
},
|
|
167
200
|
{
|
|
168
201
|
"name": "vps-okr-management-assistant",
|
|
169
|
-
"description": "面向 Vertu OKR
|
|
202
|
+
"description": "面向 Vertu 部门和员工 OKR 的结构化取数与分析。用户询问某月部门 OKR、员工个人 OKR、绩效与管理目标、低分目标、目标金额和实际金额时使用。真实入口只有 `vps-work okr +dept-okr`、`+employee-okr` 及其两个别名;周期必须为 YYYY-MM,可按部门或员工名称、ID 过滤。",
|
|
203
|
+
"files": [
|
|
204
|
+
"skills/vps-okr-management-assistant/SKILL.md",
|
|
205
|
+
"skills/vps-okr-management-assistant/reference.md"
|
|
206
|
+
]
|
|
207
|
+
},
|
|
208
|
+
{
|
|
209
|
+
"name": "vps-okr",
|
|
210
|
+
"description": "部门与员工 OKR。`vps-work okr +…`。",
|
|
170
211
|
"files": [
|
|
171
|
-
"skills/vps-okr
|
|
212
|
+
"skills/vps-okr/SKILL.md"
|
|
172
213
|
]
|
|
173
214
|
},
|
|
174
215
|
{
|
|
175
216
|
"name": "vps-pending-approval-assistant",
|
|
176
|
-
"description": "提供 VPS 审批相关能力:`vps-work approval +wait` / `+my-submitted` / `+my-approved`
|
|
217
|
+
"description": "提供 VPS 审批相关能力:`vps-work approval +wait` / `+pending` / `+my-submitted` / `+my-approved` 拉取本人、部门或全员待办与历史视图,`+logs` 看单证轨迹,`+pass` / `+refuse` 在明确意图下操作当前步骤。在用户查看待我审批、审批流、签核历史、我提交的审批、我已批过的单子、同意或驳回、统计待办类型或整理审批队列时使用。业务单据金额/明细等结构化取数由对应业务域 skill 负责,本技能不下钻业务表。",
|
|
177
218
|
"files": [
|
|
178
|
-
"skills/vps-pending-approval-assistant/SKILL.md"
|
|
219
|
+
"skills/vps-pending-approval-assistant/SKILL.md",
|
|
220
|
+
"skills/vps-pending-approval-assistant/reference.md"
|
|
179
221
|
]
|
|
180
222
|
},
|
|
181
223
|
{
|
|
182
224
|
"name": "vps-sale-personnel-efficiency",
|
|
183
|
-
"description": "
|
|
225
|
+
"description": "面向销售人效(人产、人均产出)、开单率、个人销售业绩查询、个人月度/季度/年度 OKR 达成、团队/个人 PK 排名等场景。查某人销售额/业绩/卖了多少钱直接用 personal_okr_achievement 脚本 + salesperson_like 参数。支持任意时间窗口(CLI: period 枚举或 YYYY-MM-DD、--start-date/--end-date;execute/API: start_date/end_date)。数据基于销售行口径 + Postgres/PMS 个人目标 + 人员信息,通过 `vps-work sales +per-person-kpi` 等命令取数。部门汇总走 vps-daily-sales-report。触发词:人效、人产、人均产出、开单率、开单人数、个人业绩、销售员业绩、个人 OKR、销售员目标、PK、销售榜单、销售员排名、谁卖最多、谁卖了、卖了多少、个人达成率、上月人效、季度达成。",
|
|
184
226
|
"files": [
|
|
185
|
-
"skills/vps-sale-personnel-efficiency/SKILL.md"
|
|
227
|
+
"skills/vps-sale-personnel-efficiency/SKILL.md",
|
|
228
|
+
"skills/vps-sale-personnel-efficiency/reference.md"
|
|
186
229
|
]
|
|
187
230
|
},
|
|
188
231
|
{
|
|
189
232
|
"name": "vps-work-onboard",
|
|
190
|
-
"description": "新机器安装 vps-work
|
|
233
|
+
"description": "新机器安装 vps-work、登录,并把随包分发的公开 vps-* 业务 skill 铺到各 Agent 目录。触发词:装 vps-work、onboard、初始化 vps-work、装 Vertu skills。",
|
|
191
234
|
"files": [
|
|
192
235
|
"skills/vps-work-onboard/SKILL.md"
|
|
193
236
|
]
|
|
194
237
|
},
|
|
195
238
|
{
|
|
196
239
|
"name": "vps-work",
|
|
197
|
-
"description": "VPS Work CLI(npm 包 vps-work,全局命令 vps-work
|
|
240
|
+
"description": "VPS Work CLI(npm 包 vps-work,全局命令 vps-work)的安装、登录、使用、升级与卸载引导。",
|
|
198
241
|
"files": [
|
|
199
242
|
"skills/vps-work/SKILL.md"
|
|
200
243
|
]
|
package/USAGE.md
CHANGED
|
@@ -145,7 +145,7 @@ vps-work attendance +schedules --rule-id <rule-id> --from-date 2026-08-26 --to-d
|
|
|
145
145
|
vps-work attendance +schedule-preview --rule-id <rule-id> --employee-ids 123,456 --from-date 2026-08-26 --to-date 2026-08-31 --shift-template-id <shift-id>
|
|
146
146
|
vps-work attendance +schedule-apply --rule-id <rule-id> --items-file ./schedule-plan.json --mode fill_missing --preview-token <token> --client-request-id <uuid>
|
|
147
147
|
vps-work creative +models --type image
|
|
148
|
-
vps-work creative +image --model
|
|
148
|
+
vps-work creative +image --model openai/gpt-image-2.5-sunburst --prompt "一只金丝猴在雪山上" --aspect-ratio 16:9
|
|
149
149
|
vps-work creative +video --model <id> --prompt "..." --ratio 16:9 --duration 5 --wait
|
|
150
150
|
vps-work creative +video-status --model <id> --task-id <task_id>
|
|
151
151
|
vps-work creative +tts --model <id> --text "你好,欢迎使用"
|
package/dist/vps-work.cjs
CHANGED
|
@@ -61467,7 +61467,7 @@ function attachCreativeShortcuts(parent) {
|
|
|
61467
61467
|
printResult5(opts, await vpsServiceGet("/v1/creative/models", query2, baseUrl4, "\u521B\u610F\u5DE5\u574A\u6A21\u578B"));
|
|
61468
61468
|
});
|
|
61469
61469
|
attachSharedShortcutOptions(
|
|
61470
|
-
parent.command("+image").description("AI \u751F\u56FE / \u6539\u56FE\uFF0C\u8FD4\u56DE image_url \u4E0E\u8BA1\u8D39\uFF08POST /api/aigc/image-edit\uFF09").option("--model <id>", "\u6A21\u578B id \u6216 model_id\uFF08\u5FC5\u586B\uFF09").option("--prompt <text>", "\u753B\u9762\u63D0\u793A\u8BCD\uFF08\u5FC5\u586B\uFF09").option("--source-image-url <url>", "\u53C2\u8003/\u5E95\u56FE URL").option("--reference-images <urls>", "\u53C2\u8003\u56FE URL \u5217\u8868\uFF08\u9017\u53F7\u5206\u9694\uFF09").option("--size <size>", "\u8F93\u51FA\u5C3A\u5BF8\uFF0C\u5982 1024x1024 / auto").option("--quality <q>", "\u8D28\u91CF\
|
|
61470
|
+
parent.command("+image").description("AI \u751F\u56FE / \u6539\u56FE\uFF0C\u8FD4\u56DE image_url \u4E0E\u8BA1\u8D39\uFF08POST /api/aigc/image-edit\uFF09").option("--model <id>", "\u6A21\u578B id \u6216 model_id\uFF08\u5FC5\u586B\uFF09").option("--prompt <text>", "\u753B\u9762\u63D0\u793A\u8BCD\uFF08\u5FC5\u586B\uFF09").option("--source-image-url <url>", "\u53C2\u8003/\u5E95\u56FE URL").option("--reference-images <urls>", "\u53C2\u8003\u56FE URL \u5217\u8868\uFF08\u9017\u53F7\u5206\u9694\uFF09").option("--size <size>", "\u8F93\u51FA\u5C3A\u5BF8\uFF0C\u5982 1024x1024 / auto").option("--quality <q>", "\u8D28\u91CF\uFF1Aauto|low|medium|high|xhigh|max\uFF08\u540E\u4E24\u6863\u4EC5 gpt-image-2.5-sunburst\uFF09").option("--resolution <r>", "\u5206\u8FA8\u7387\u6863\uFF1A512|1K|2K|4K").option("--aspect-ratio <ratio>", "\u5BBD\u9AD8\u6BD4\uFF0C\u5982 1:1 / 16:9").option("--background <text>", "\u80CC\u666F\uFF1Aauto|opaque|transparent\uFF08transparent \u4EC5 gpt-image-2.5-sunburst\uFF09").option("--output-compression <n>", "\u8F93\u51FA\u538B\u7F29\u7EA7\u522B\uFF08\u6574\u6570\uFF09").option("--n <n>", "\u751F\u6210\u5F20\u6570\uFF08\u5F53\u524D\u63A5\u53E3\u56FA\u5B9A\u5355\u56FE\uFF09")
|
|
61471
61471
|
).action(async (opts, cmd) => {
|
|
61472
61472
|
if (!opts.model || !opts.prompt) {
|
|
61473
61473
|
throw new VertuError("\u751F\u56FE\u9700\u8981 --model \u4E0E --prompt");
|
|
@@ -61988,10 +61988,10 @@ async function resolveBlockPatch(opts) {
|
|
|
61988
61988
|
}
|
|
61989
61989
|
function parseDocType(value) {
|
|
61990
61990
|
const normalized = value?.trim() || "block";
|
|
61991
|
-
if (normalized === "block" || normalized === "sheet" || normalized === "folder") {
|
|
61991
|
+
if (normalized === "block" || normalized === "sheet" || normalized === "folder" || normalized === "base") {
|
|
61992
61992
|
return normalized;
|
|
61993
61993
|
}
|
|
61994
|
-
throw new VertuError("--type \u9700\u4E3A block\u3001sheet \u6216
|
|
61994
|
+
throw new VertuError("--type \u9700\u4E3A block\u3001sheet\u3001folder \u6216 base\u3002");
|
|
61995
61995
|
}
|
|
61996
61996
|
function parseScope(value) {
|
|
61997
61997
|
const normalized = value?.trim() || "mine";
|
|
@@ -62032,7 +62032,7 @@ function text2(recordValue, ...keys) {
|
|
|
62032
62032
|
return "";
|
|
62033
62033
|
}
|
|
62034
62034
|
function documentType(value) {
|
|
62035
|
-
return value === "sheet" || value === "folder" || value === "html" ? value : "block";
|
|
62035
|
+
return value === "sheet" || value === "folder" || value === "html" || value === "base" ? value : "block";
|
|
62036
62036
|
}
|
|
62037
62037
|
function documentExcerpt(value) {
|
|
62038
62038
|
return typeof value === "string" ? value.replace(/\s+/g, " ").trim().slice(0, 800) : "";
|
|
@@ -62059,6 +62059,20 @@ async function resolveSheetUpdates(opts) {
|
|
|
62059
62059
|
}
|
|
62060
62060
|
return parsed;
|
|
62061
62061
|
}
|
|
62062
|
+
async function resolveJsonRecords(opts) {
|
|
62063
|
+
if (opts.records !== void 0 && opts.recordsFile !== void 0) {
|
|
62064
|
+
throw new VertuError("--records \u548C --records-file \u4E0D\u80FD\u540C\u65F6\u4F7F\u7528\u3002");
|
|
62065
|
+
}
|
|
62066
|
+
const raw = await resolveContent({ content: opts.records, contentFile: opts.recordsFile });
|
|
62067
|
+
if (raw === void 0) {
|
|
62068
|
+
throw new VertuError("\u8BF7\u63D0\u4F9B --records \u6216 --records-file\u3002");
|
|
62069
|
+
}
|
|
62070
|
+
const parsed = parseJsonArg(raw, "--records", { fileFlagSuggestion: "--records-file" });
|
|
62071
|
+
if (!Array.isArray(parsed) || parsed.length === 0) {
|
|
62072
|
+
throw new VertuError("\u8BB0\u5F55\u5FC5\u987B\u662F\u975E\u7A7A JSON \u6570\u7EC4\u3002");
|
|
62073
|
+
}
|
|
62074
|
+
return parsed;
|
|
62075
|
+
}
|
|
62062
62076
|
function positiveIntegerEnv(...keys) {
|
|
62063
62077
|
for (const key of keys) {
|
|
62064
62078
|
const raw = process.env[key]?.trim();
|
|
@@ -62109,7 +62123,7 @@ function buildDocumentsCommand() {
|
|
|
62109
62123
|
printDocumentsResult(opts.json, payload);
|
|
62110
62124
|
});
|
|
62111
62125
|
attachBaseOptions(
|
|
62112
|
-
documents.command("+create").description("\u65B0\u5EFA\u6587\u6863\u3001\u667A\u80FD\u8868\u683C\u6216\u6587\u4EF6\u5939").requiredOption("--title <title>", "\u6807\u9898").option("--type <type>", "block / sheet / folder", "block").option("--content <text>", "\u65B0\u5EFA\u6587\u6863\u7684 Markdown \u521D\u59CB\u6B63\u6587").option("--content-file <path>", "\u4ECE UTF-8 \u6587\u4EF6\u8BFB\u53D6\u521D\u59CB\u6B63\u6587\uFF1B- \u8868\u793A stdin").option("--parent-id <id>", "\u7236\u6587\u4EF6\u5939 ID")
|
|
62126
|
+
documents.command("+create").description("\u65B0\u5EFA\u6587\u6863\u3001\u667A\u80FD\u8868\u683C\u3001\u591A\u7EF4\u8868\u6216\u6587\u4EF6\u5939").requiredOption("--title <title>", "\u6807\u9898").option("--type <type>", "block / sheet / folder / base", "block").option("--content <text>", "\u65B0\u5EFA\u6587\u6863\u7684 Markdown \u521D\u59CB\u6B63\u6587").option("--content-file <path>", "\u4ECE UTF-8 \u6587\u4EF6\u8BFB\u53D6\u521D\u59CB\u6B63\u6587\uFF1B- \u8868\u793A stdin").option("--parent-id <id>", "\u7236\u6587\u4EF6\u5939 ID")
|
|
62113
62127
|
).action(async (opts) => {
|
|
62114
62128
|
const type = parseDocType(opts.type);
|
|
62115
62129
|
const content = await resolveContent(opts);
|
|
@@ -62231,6 +62245,160 @@ Notes:
|
|
|
62231
62245
|
);
|
|
62232
62246
|
printDocumentsResult(opts.json, payload);
|
|
62233
62247
|
});
|
|
62248
|
+
attachBaseOptions(
|
|
62249
|
+
documents.command("+base-schema").description("\u8BFB\u53D6\u591A\u7EF4\u8868\u7684\u8868\u3001\u5B57\u6BB5\u548C\u89C6\u56FE").requiredOption("--doc-id <id>", "\u591A\u7EF4\u8868\u6587\u6863 ID")
|
|
62250
|
+
).action(async (opts) => {
|
|
62251
|
+
printDocumentsResult(
|
|
62252
|
+
opts.json,
|
|
62253
|
+
await documentsRequest("GET", documentPath(required(opts.docId, "--doc-id"), "/base"), {
|
|
62254
|
+
baseUrl: opts.baseUrl
|
|
62255
|
+
})
|
|
62256
|
+
);
|
|
62257
|
+
});
|
|
62258
|
+
attachBaseOptions(
|
|
62259
|
+
documents.command("+base-tables").description("\u5217\u51FA\u591A\u7EF4\u8868\u4E2D\u7684\u6570\u636E\u8868").requiredOption("--doc-id <id>", "\u591A\u7EF4\u8868\u6587\u6863 ID")
|
|
62260
|
+
).action(async (opts) => {
|
|
62261
|
+
const payload = await documentsRequest(
|
|
62262
|
+
"GET",
|
|
62263
|
+
documentPath(required(opts.docId, "--doc-id"), "/base"),
|
|
62264
|
+
{ baseUrl: opts.baseUrl }
|
|
62265
|
+
);
|
|
62266
|
+
printDocumentsResult(opts.json, { tables: payload.base?.tables ?? [] });
|
|
62267
|
+
});
|
|
62268
|
+
attachBaseOptions(
|
|
62269
|
+
documents.command("+base-create-table").description("\u65B0\u5EFA\u4E00\u5F20\u6570\u636E\u8868").requiredOption("--doc-id <id>", "\u591A\u7EF4\u8868\u6587\u6863 ID").requiredOption("--name <name>", "\u6570\u636E\u8868\u540D\u79F0")
|
|
62270
|
+
).action(async (opts) => {
|
|
62271
|
+
printDocumentsResult(
|
|
62272
|
+
opts.json,
|
|
62273
|
+
await documentsRequest("POST", documentPath(required(opts.docId, "--doc-id"), "/base/tables"), {
|
|
62274
|
+
baseUrl: opts.baseUrl,
|
|
62275
|
+
body: { name: required(opts.name, "--name") }
|
|
62276
|
+
})
|
|
62277
|
+
);
|
|
62278
|
+
});
|
|
62279
|
+
attachBaseOptions(
|
|
62280
|
+
documents.command("+base-records").description("\u8BFB\u53D6\u591A\u7EF4\u8868\u8BB0\u5F55").requiredOption("--doc-id <id>", "\u591A\u7EF4\u8868\u6587\u6863 ID").requiredOption("--table <id>", "\u6570\u636E\u8868 ID").option("--view-id <id>", "\u6309\u89C6\u56FE\u8FC7\u6EE4").option("--query <text>", "\u5173\u952E\u5B57\u641C\u7D22").option("--limit <n>", "\u8FD4\u56DE\u6761\u6570")
|
|
62281
|
+
).action(async (opts) => {
|
|
62282
|
+
printDocumentsResult(
|
|
62283
|
+
opts.json,
|
|
62284
|
+
await documentsRequest(
|
|
62285
|
+
"GET",
|
|
62286
|
+
documentPath(required(opts.docId, "--doc-id"), `/base/tables/${encodeURIComponent(required(opts.table, "--table"))}/records`),
|
|
62287
|
+
{
|
|
62288
|
+
baseUrl: opts.baseUrl,
|
|
62289
|
+
query: {
|
|
62290
|
+
limit: opts.limit,
|
|
62291
|
+
q: opts.query,
|
|
62292
|
+
viewId: opts.viewId
|
|
62293
|
+
}
|
|
62294
|
+
}
|
|
62295
|
+
)
|
|
62296
|
+
);
|
|
62297
|
+
});
|
|
62298
|
+
attachBaseOptions(
|
|
62299
|
+
documents.command("+base-create-records").description("\u6279\u91CF\u65B0\u589E\u8BB0\u5F55\uFF0Cfields \u4F7F\u7528\u5B57\u6BB5 ID").requiredOption("--doc-id <id>", "\u591A\u7EF4\u8868\u6587\u6863 ID").requiredOption("--table <id>", "\u6570\u636E\u8868 ID").option("--records <json>", "\u8BB0\u5F55 JSON \u6570\u7EC4").option("--records-file <path>", "\u4ECE UTF-8 JSON \u6587\u4EF6\u8BFB\u53D6\u8BB0\u5F55\uFF1B- \u8868\u793A stdin")
|
|
62300
|
+
).action(async (opts) => {
|
|
62301
|
+
printDocumentsResult(
|
|
62302
|
+
opts.json,
|
|
62303
|
+
await documentsRequest(
|
|
62304
|
+
"POST",
|
|
62305
|
+
documentPath(required(opts.docId, "--doc-id"), `/base/tables/${encodeURIComponent(required(opts.table, "--table"))}/records`),
|
|
62306
|
+
{
|
|
62307
|
+
baseUrl: opts.baseUrl,
|
|
62308
|
+
body: { records: await resolveJsonRecords(opts) }
|
|
62309
|
+
}
|
|
62310
|
+
)
|
|
62311
|
+
);
|
|
62312
|
+
});
|
|
62313
|
+
attachBaseOptions(
|
|
62314
|
+
documents.command("+base-update-records").description("\u6279\u91CF\u66F4\u65B0\u8BB0\u5F55\uFF0C\u6BCF\u9879\u9700\u542B id \u548C fields").requiredOption("--doc-id <id>", "\u591A\u7EF4\u8868\u6587\u6863 ID").requiredOption("--table <id>", "\u6570\u636E\u8868 ID").option("--records <json>", "\u66F4\u65B0 JSON \u6570\u7EC4").option("--records-file <path>", "\u4ECE UTF-8 JSON \u6587\u4EF6\u8BFB\u53D6\u66F4\u65B0\uFF1B- \u8868\u793A stdin")
|
|
62315
|
+
).action(async (opts) => {
|
|
62316
|
+
printDocumentsResult(
|
|
62317
|
+
opts.json,
|
|
62318
|
+
await documentsRequest(
|
|
62319
|
+
"PATCH",
|
|
62320
|
+
documentPath(required(opts.docId, "--doc-id"), `/base/tables/${encodeURIComponent(required(opts.table, "--table"))}/records`),
|
|
62321
|
+
{
|
|
62322
|
+
baseUrl: opts.baseUrl,
|
|
62323
|
+
body: { records: await resolveJsonRecords(opts) }
|
|
62324
|
+
}
|
|
62325
|
+
)
|
|
62326
|
+
);
|
|
62327
|
+
});
|
|
62328
|
+
attachBaseOptions(
|
|
62329
|
+
documents.command("+base-create-field").description("\u65B0\u589E\u5B57\u6BB5").requiredOption("--doc-id <id>", "\u591A\u7EF4\u8868\u6587\u6863 ID").requiredOption("--table <id>", "\u6570\u636E\u8868 ID").requiredOption("--name <name>", "\u5B57\u6BB5\u540D\u79F0").requiredOption("--type <type>", "singleLineText / longText / number / singleSelect / multipleSelect / checkbox / date / attachment").option("--choices <json>", "\u5355\u9009/\u591A\u9009\u9009\u9879 JSON \u6570\u7EC4")
|
|
62330
|
+
).action(async (opts) => {
|
|
62331
|
+
printDocumentsResult(
|
|
62332
|
+
opts.json,
|
|
62333
|
+
await documentsRequest(
|
|
62334
|
+
"POST",
|
|
62335
|
+
documentPath(required(opts.docId, "--doc-id"), `/base/tables/${encodeURIComponent(required(opts.table, "--table"))}/fields`),
|
|
62336
|
+
{
|
|
62337
|
+
baseUrl: opts.baseUrl,
|
|
62338
|
+
body: {
|
|
62339
|
+
name: required(opts.name, "--name"),
|
|
62340
|
+
options: opts.choices ? { choices: parseJsonArg(opts.choices, "--choices") } : void 0,
|
|
62341
|
+
type: required(opts.type, "--type")
|
|
62342
|
+
}
|
|
62343
|
+
}
|
|
62344
|
+
)
|
|
62345
|
+
);
|
|
62346
|
+
});
|
|
62347
|
+
attachBaseOptions(
|
|
62348
|
+
documents.command("+base-views").description("\u5217\u51FA\u6570\u636E\u8868\u89C6\u56FE").requiredOption("--doc-id <id>", "\u591A\u7EF4\u8868\u6587\u6863 ID").requiredOption("--table <id>", "\u6570\u636E\u8868 ID")
|
|
62349
|
+
).action(async (opts) => {
|
|
62350
|
+
printDocumentsResult(
|
|
62351
|
+
opts.json,
|
|
62352
|
+
await documentsRequest(
|
|
62353
|
+
"GET",
|
|
62354
|
+
documentPath(required(opts.docId, "--doc-id"), `/base/tables/${encodeURIComponent(required(opts.table, "--table"))}/views`),
|
|
62355
|
+
{ baseUrl: opts.baseUrl }
|
|
62356
|
+
)
|
|
62357
|
+
);
|
|
62358
|
+
});
|
|
62359
|
+
attachBaseOptions(
|
|
62360
|
+
documents.command("+base-create-view").description("\u65B0\u5EFA\u53EA\u8BFB\u89C6\u56FE\u5B9A\u4E49").requiredOption("--doc-id <id>", "\u591A\u7EF4\u8868\u6587\u6863 ID").requiredOption("--table <id>", "\u6570\u636E\u8868 ID").requiredOption("--name <name>", "\u89C6\u56FE\u540D\u79F0").option("--type <type>", "grid / kanban / form", "grid")
|
|
62361
|
+
).action(async (opts) => {
|
|
62362
|
+
printDocumentsResult(
|
|
62363
|
+
opts.json,
|
|
62364
|
+
await documentsRequest(
|
|
62365
|
+
"POST",
|
|
62366
|
+
documentPath(required(opts.docId, "--doc-id"), `/base/tables/${encodeURIComponent(required(opts.table, "--table"))}/views`),
|
|
62367
|
+
{
|
|
62368
|
+
baseUrl: opts.baseUrl,
|
|
62369
|
+
body: { name: required(opts.name, "--name"), type: opts.type ?? "grid" }
|
|
62370
|
+
}
|
|
62371
|
+
)
|
|
62372
|
+
);
|
|
62373
|
+
});
|
|
62374
|
+
attachBaseOptions(
|
|
62375
|
+
documents.command("+base-import").description("\u4ECE CSV \u5BFC\u5165\u8BB0\u5F55").requiredOption("--doc-id <id>", "\u591A\u7EF4\u8868\u6587\u6863 ID").requiredOption("--table <id>", "\u6570\u636E\u8868 ID").option("--csv <text>", "CSV \u6587\u672C").option("--csv-file <path>", "\u4ECE UTF-8 \u6587\u4EF6\u8BFB\u53D6 CSV\uFF1B- \u8868\u793A stdin")
|
|
62376
|
+
).action(async (opts) => {
|
|
62377
|
+
const csv = await resolveContent({ content: opts.csv, contentFile: opts.csvFile });
|
|
62378
|
+
if (csv === void 0) {
|
|
62379
|
+
throw new VertuError("\u8BF7\u63D0\u4F9B --csv \u6216 --csv-file\u3002");
|
|
62380
|
+
}
|
|
62381
|
+
printDocumentsResult(
|
|
62382
|
+
opts.json,
|
|
62383
|
+
await documentsRequest(
|
|
62384
|
+
"POST",
|
|
62385
|
+
documentPath(required(opts.docId, "--doc-id"), `/base/tables/${encodeURIComponent(required(opts.table, "--table"))}/import`),
|
|
62386
|
+
{ baseUrl: opts.baseUrl, body: { csv, hasHeader: true } }
|
|
62387
|
+
)
|
|
62388
|
+
);
|
|
62389
|
+
});
|
|
62390
|
+
attachBaseOptions(
|
|
62391
|
+
documents.command("+base-export").description("\u5BFC\u51FA\u5F53\u524D\u89C6\u56FE\u6216\u5168\u8868\u4E3A CSV").requiredOption("--doc-id <id>", "\u591A\u7EF4\u8868\u6587\u6863 ID").requiredOption("--table <id>", "\u6570\u636E\u8868 ID").option("--view-id <id>", "\u6309\u89C6\u56FE\u5BFC\u51FA")
|
|
62392
|
+
).action(async (opts) => {
|
|
62393
|
+
printDocumentsResult(
|
|
62394
|
+
opts.json,
|
|
62395
|
+
await documentsRequest(
|
|
62396
|
+
"GET",
|
|
62397
|
+
documentPath(required(opts.docId, "--doc-id"), `/base/tables/${encodeURIComponent(required(opts.table, "--table"))}/export`),
|
|
62398
|
+
{ baseUrl: opts.baseUrl, query: { viewId: opts.viewId } }
|
|
62399
|
+
)
|
|
62400
|
+
);
|
|
62401
|
+
});
|
|
62234
62402
|
attachBaseOptions(
|
|
62235
62403
|
documents.command("+share").description("\u8BBE\u7F6E\u94FE\u63A5\u6216\u4F01\u4E1A\u5185\u90E8\u5171\u4EAB\u6743\u9650").requiredOption("--doc-id <id>", "\u6587\u6863 ID").requiredOption("--mode <mode>", "private / public-view / public-edit / login-view / login-edit / team-view / team-edit")
|
|
62236
62404
|
).action(async (opts) => {
|
|
@@ -63948,7 +64116,7 @@ function buildCliRootHelpAfter() {
|
|
|
63948
64116
|
"",
|
|
63949
64117
|
" # Content creation (AI image / video / audio)",
|
|
63950
64118
|
` ${b} creative +models --type image`,
|
|
63951
|
-
` ${b} creative +image --model
|
|
64119
|
+
` ${b} creative +image --model openai/gpt-image-2.5-sunburst --prompt "\u4E00\u53EA\u91D1\u4E1D\u7334\u5728\u96EA\u5C71\u4E0A" --aspect-ratio 16:9`,
|
|
63952
64120
|
` ${b} creative +video --model <id> --prompt "..." --ratio 16:9 --duration 5 --wait`,
|
|
63953
64121
|
` ${b} creative +video-status --model <id> --task-id <task_id>`,
|
|
63954
64122
|
` ${b} creative +tts --model <id> --text "\u4F60\u597D\uFF0C\u6B22\u8FCE\u4F7F\u7528" --voice-id <voice_id>`,
|
|
@@ -64041,7 +64209,7 @@ function rewriteLongFlag(tok) {
|
|
|
64041
64209
|
}
|
|
64042
64210
|
|
|
64043
64211
|
// src/bin/vps-work.ts
|
|
64044
|
-
var PKG_VERSION = "1.
|
|
64212
|
+
var PKG_VERSION = "1.1.0" ? "1.1.0" : "0.0.0-dev";
|
|
64045
64213
|
function smartFlagSuggest(flag, candidates) {
|
|
64046
64214
|
if (!flag.startsWith("--") || flag.length < 4) return "";
|
|
64047
64215
|
const word = flag.slice(2);
|
package/package.json
CHANGED
|
@@ -27,13 +27,13 @@ description: "内容创作画布(创意工坊)AI 生成:生图/改图、
|
|
|
27
27
|
| Shortcut | flags |
|
|
28
28
|
|----------|-------|
|
|
29
29
|
| `+models` | `--type`(image / video / audio / tts / text) |
|
|
30
|
-
| `+image` | `--model`(必填)`--prompt`(必填)`--source-image-url` `--reference-images`(逗号分隔)`--size` `--quality`
|
|
30
|
+
| `+image` | `--model`(必填)`--prompt`(必填)`--source-image-url` `--reference-images`(逗号分隔)`--size` `--quality`(`auto\|low\|medium\|high`,Sunburst 另有 `xhigh\|max`)`--resolution` `--aspect-ratio` `--background`(`auto\|opaque`,Sunburst 另有 `transparent`)`--output-compression` `--n` |
|
|
31
31
|
| `+video` | `--model`(必填)`--prompt` `--reference-images` `--reference-videos` `--reference-audios` `--reference-audio-durations-sec` `--first-frame-image` `--last-frame-image` `--ratio` `--resolution` `--duration` `--generate-audio` `--watermark` `--wait` `--wait-timeout` `--poll-interval` |
|
|
32
32
|
| `+video-status` | `--model`(必填)`--task-id`(必填) |
|
|
33
33
|
| `+tts` | `--model`(必填)`--text`(必填)`--voice-id` `--speed` `--vol` `--pitch` `--emotion` `--format` `--sample-rate` `--bitrate` |
|
|
34
34
|
| `+music` | `--model`(必填)`--prompt`(必填)`--lyrics` `--instrumental` `--lyrics-optimizer` `--format` `--sample-rate` `--bitrate` |
|
|
35
35
|
|
|
36
|
-
`model` 可填 `model_id`(如 `gpt-image-
|
|
36
|
+
`model` 可填 `model_id`(如 `openai/gpt-image-2.5-sunburst`、`openai/gpt-image-2`、`google/gemini-3.1-flash-image`、`doubao-seedance-2-0-*`)或模型行 UUID;不确定时先 `creative +models --type <image|video|tts|audio>` 查。
|
|
37
37
|
|
|
38
38
|
## 生视频(异步)流程
|
|
39
39
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: vps-documents
|
|
3
|
-
description: 查询、读取、新建、重命名、复制、导出和共享 Vertu
|
|
3
|
+
description: 查询、读取、新建、重命名、复制、导出和共享 Vertu 企业云文档、智能表格、多维表与文件夹,读取智能表格工作簿并批量更新单元格,操作多维表记录/字段/视图,以及将文档卡片发送到当前 VPS IM 会话。用户提到云文档、V盘文档、企业文档、智能表格、多维表、创建文档、读取或更新表格单元格、修改标题、复制文档、导出 Markdown、设置文档权限或把文档发到当前会话时使用。入口为 `vps-work docs +…`。
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# Vertu 企业云文档
|
|
@@ -20,6 +20,14 @@ description: 查询、读取、新建、重命名、复制、导出和共享 Ver
|
|
|
20
20
|
| 精确修改段落格式 | `vps-work docs +update-block --doc-id <uuid> --block-id <id> --patch <json>` |
|
|
21
21
|
| 新建文档 | `vps-work docs +create --title <标题> [--content-file <md>]` |
|
|
22
22
|
| 新建智能表格 | `vps-work docs +create --title <标题> --type sheet` |
|
|
23
|
+
| 新增多维表 | `vps-work docs +create --title <标题> --type base` |
|
|
24
|
+
| 读取多维表结构 | `vps-work docs +base-schema --doc-id <uuid>` |
|
|
25
|
+
| 读取多维表记录 | `vps-work docs +base-records --doc-id <uuid> --table <id>` |
|
|
26
|
+
| 新增多维表记录 | `vps-work docs +base-create-records --doc-id <uuid> --table <id> --records-file <json>` |
|
|
27
|
+
| 更新多维表记录 | `vps-work docs +base-update-records --doc-id <uuid> --table <id> --records-file <json>` |
|
|
28
|
+
| 新增多维表字段 | `vps-work docs +base-create-field --doc-id <uuid> --table <id> --name <名称> --type <类型>` |
|
|
29
|
+
| 导入 CSV | `vps-work docs +base-import --doc-id <uuid> --table <id> --csv-file <csv>` |
|
|
30
|
+
| 导出 CSV | `vps-work docs +base-export --doc-id <uuid> --table <id>` |
|
|
23
31
|
| 读取智能表格 | `vps-work docs +sheet-get --doc-id <uuid>` |
|
|
24
32
|
| 更新智能表格单元格 | `vps-work docs +sheet-set-cells --doc-id <uuid> --updates-file <json>` |
|
|
25
33
|
| 新建文件夹 | `vps-work docs +create --title <标题> --type folder` |
|
|
@@ -53,6 +61,7 @@ description: 查询、读取、新建、重命名、复制、导出和共享 Ver
|
|
|
53
61
|
- `public-edit` 会允许持链接编辑,风险较高;用户没有明确要求时不得启用。
|
|
54
62
|
- 复制、创建、重命名和共享是写操作;根据用户意图执行。删除能力目前不向 Agent CLI 开放。
|
|
55
63
|
- 命令默认输出 JSON,优先读取 `id`、`title`、`type`、`role`、`shareMode`、`content`。
|
|
64
|
+
- 多维表字段 `--type`:`singleLineText`、`longText`、`number`、`singleSelect`、`multipleSelect`、`checkbox`、`date`、`attachment`。附件字段值为 `{ name, url, mimeType?, sizeBytes? }` 数组。
|
|
56
65
|
|
|
57
66
|
## 示例
|
|
58
67
|
|
|
@@ -14,6 +14,17 @@ CLI 统一请求 `vps-service`,由服务端校验 Hermes Agent Key、解析当
|
|
|
14
14
|
| `docs +update-block` | `PATCH /v1/documents/:id/blocks/:blockId` | 在协作事务内精确修改一个块的白名单格式 |
|
|
15
15
|
| `docs +sheet-get` | `GET /v1/documents/:id/sheet` | 返回智能表格当前工作簿 JSON |
|
|
16
16
|
| `docs +sheet-set-cells` | `PUT /v1/documents/:id/sheet` | 通过实时协作工作簿批量更新 A1 单元格 |
|
|
17
|
+
| `docs +base-schema` | `GET /v1/documents/:id/base` | 多维表结构 |
|
|
18
|
+
| `docs +base-tables` | `GET /v1/documents/:id/base` | 从 schema 取出 tables |
|
|
19
|
+
| `docs +base-create-table` | `POST /v1/documents/:id/base/tables` | 新建数据表 |
|
|
20
|
+
| `docs +base-records` | `GET /v1/documents/:id/base/tables/:tableId/records` | 记录列表 |
|
|
21
|
+
| `docs +base-create-records` | `POST /v1/documents/:id/base/tables/:tableId/records` | 批量新增记录 |
|
|
22
|
+
| `docs +base-update-records` | `PATCH /v1/documents/:id/base/tables/:tableId/records` | 批量更新记录 |
|
|
23
|
+
| `docs +base-create-field` | `POST /v1/documents/:id/base/tables/:tableId/fields` | 新增字段 |
|
|
24
|
+
| `docs +base-views` | `GET /v1/documents/:id/base/tables/:tableId/views` | 视图列表 |
|
|
25
|
+
| `docs +base-create-view` | `POST /v1/documents/:id/base/tables/:tableId/views` | 新建视图 |
|
|
26
|
+
| `docs +base-import` | `POST /v1/documents/:id/base/tables/:tableId/import` | CSV 导入 |
|
|
27
|
+
| `docs +base-export` | `GET /v1/documents/:id/base/tables/:tableId/export` | CSV 导出 |
|
|
17
28
|
| `docs +share` | `POST /v1/documents/:id/share` | 修改共享模式 |
|
|
18
29
|
| `docs +send` | `GET /v1/documents/:id` + 可选 `POST /share` + IM 消息接口 | 生成 `document_share` 卡片并发送到当前 Hermes/VPS IM 会话 |
|
|
19
30
|
| `docs +duplicate` | `POST /v1/documents/:id/duplicate` | 复制文档 |
|
|
@@ -36,6 +47,7 @@ API 调用方若不是 `vps-work`,也应调用公开的 `/v1/documents` 接口
|
|
|
36
47
|
|
|
37
48
|
- `block`:块文档,创建时支持 Markdown 初始正文。
|
|
38
49
|
- `sheet`:智能表格,支持创建、查询、读取工作簿、批量更新单元格、重命名、复制、共享和导出。
|
|
50
|
+
- `base`:多维表,独立服务保存表/字段/记录/视图;权限继承云文档 ACL。
|
|
39
51
|
- `folder`:文件夹,用 `parentId` 组织层级。
|
|
40
52
|
|
|
41
53
|
## 共享模式
|