@crabcloud/cli 0.3.0 → 0.5.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.
@@ -0,0 +1,58 @@
1
+ ---
2
+ name: crabcloud-agent
3
+ description: Check the status of the user's personal cloud Agent in Crab Cloud through the `crab agent` CLI — running sessions and tasks, and the outbound-action approval queue (pending / expired). Use this skill whenever the user asks about their in-cloud agent ("我的 agent 在干嘛", "agent 跑完了吗", "有没有待审批的操作", "看看 agent 审批队列"), wants a quick health check of their Agent workbench, or asks what the agent has been doing — even if they never say "crab" or "Crab Cloud" explicitly. This skill is read-only; approving or rejecting happens in the Agent workbench web UI (agent.crabcloud.cc), not from the CLI.
4
+ ---
5
+
6
+ # 个人云 Agent(查看域)
7
+
8
+ Crab Cloud 的个人云 Agent 是一个用户一个固定 agent:长记忆、权限三档、
9
+ 能读平台数据(邮箱/云盘/协作)、写动作过审批全留痕。本 skill 覆盖**只读
10
+ 查看**(`crab agent …`,需 `agent.read` scope);审批的批准/拒绝在网页
11
+ 工作台完成(流内卡片),CLI 不做决策。
12
+
13
+ ## 第一步:确认可用
14
+
15
+ 先确认 `crab` 命令存在:`crab --help`。若命令缺失,引导安装:
16
+
17
+ ```
18
+ npx @crabcloud/cli init
19
+ ```
20
+
21
+ 已安装但命令缺失时升级:`npx @crabcloud/cli@latest init`。所有
22
+ `crab <cmd>` 都可用 `npx @crabcloud/cli <cmd>` 等价执行。
23
+
24
+ ## 命令
25
+
26
+ ### 状态总览
27
+
28
+ ```
29
+ crab agent status
30
+ ```
31
+
32
+ 输出:会话总数、运行中数量、待审批数量。`--json` 输出机器可读 JSON。
33
+
34
+ ### 会话列表
35
+
36
+ ```
37
+ crab agent sessions
38
+ ```
39
+
40
+ 列出对话与任务(标题 / 状态 / 定时 cron / 最近更新时间)。`--json` 可用。
41
+
42
+ ### 审批队列
43
+
44
+ ```
45
+ crab agent approvals
46
+ ```
47
+
48
+ 列出待处理与已超时的出站审批(工具名 / 参数摘要 / 来源会话)。
49
+ **这里只看,不批**——告诉用户:打开 Agent 工作台(agent.crabcloud.cc)→
50
+ 对应会话的流内审批卡上点「批准执行 / 拒绝」;24 小时未处理的会自动失效,
51
+ 且失效后即使补批也不会执行(agent 需重新发起)。
52
+
53
+ ## 边界
54
+
55
+ - 只读:本 skill 的命令都不会改变 agent 状态;决策一律引导到工作台网页。
56
+ - BYOK 配置(API 端点 / Key)不在 CLI 视野——在「模型」管理页维护。
57
+ - 需要写操作走平台时,外部 agent 用既有域命令:`crab mail …` /
58
+ `crab storage …` / `crab collab …`(各自 skill),与本 skill 互补。
@@ -94,6 +94,8 @@ skill 覆盖协作域的 agent 通道;账号/令牌管理见 `crabcloud` skill
94
94
  系人,不要换名字硬试。
95
95
  - **附件引用不复制**:`--attach` 的 fileId 是云盘/空间已有文件的引用(≤10 个),
96
96
  只能引用空间成员的云盘文件或本空间直传文件;跨空间文件会被 403 拒绝。
97
+ **只接受明文 / 平台加密(p1)对象,保险箱(u1) 文件引用会被拒**——见
98
+ `crabcloud-storage` skill。
97
99
  - 单任务记录流上限 500 条(状态变更也占位):任务粒度别太粗,做完就 `done`,
98
100
  新工作开新任务。
99
101
  - 读记录流对 Agent 是一等审计事件(thread.read 入活动流)——正常读即可,但
@@ -0,0 +1,60 @@
1
+ ---
2
+ name: crabcloud-hr
3
+ description: HR & admin assistant via the `crab hr` CLI — manage companies/orgs, members & permission flags, the roster (people + event timelines), records/audit trail, tasks and the desk digest. Use when the user asks anything about their company on Crab Cloud: 花名册、员工、入职、离职、合同、试用期、考勤登记、任务流、工作台、组织、成员、权限、邀请链接 — even if they never say "crab".
4
+ ---
5
+
6
+ # Crab Cloud 人事行政(crab hr)
7
+
8
+ 管理公司 / 组织:成员与权限、花名册(人员 + 事件时间线 = 记录与证据链)、任务流与工作台聚合。独立产品「人事行政 · Crab Cloud」,同一套 REST API 服务 Web 与 CLI。
9
+
10
+ 跨域时参考:邮件 `crabcloud-mail`、云盘 `crabcloud-storage`、协作 `crabcloud-collab`、平台账号 `crabcloud`。
11
+
12
+ ## 第一步:确认可用
13
+
14
+ ```bash
15
+ crab --version
16
+ ```
17
+
18
+ `crab` 命令缺失 → `crab init` 只登录 + 装 skill、不含命令本体,需先 `npm i -g @crabcloud/cli@latest`。下文所有 `crab <命令>` 都可以用 `npx @crabcloud/cli <命令>` 等价执行。
19
+
20
+ hr 命令需要 **hr scope + 组织绑定**的令牌:`crab login --scopes hr --org org:<公司名>`。未绑组织或绑错组织会得到 `hr_org_not_bound` / `hr_org_mismatch`(退出码 4),按提示重新授权即可。
21
+
22
+ 退出码:0 成功 · 2 用法错误 · 3 认证失效 · 4 scope/绑定不足 · 5 不存在 · 7 配额。
23
+
24
+ ## 意图 → 命令映射
25
+
26
+ | 意图 | 命令 |
27
+ |---|---|
28
+ | 看我在哪些公司 | `crab hr orgs` |
29
+ | 新建公司 | `crab hr org create <名称>`(创建者是 owner;新令牌要重新 `crab login --scopes hr --org org:<新名>` 绑定) |
30
+ | 看成员与权限 | `crab hr members` |
31
+ | 拉人进来 | `crab hr member add <用户名> [--title 头衔]`(进来是 member 只读) |
32
+ | 给人配权限 | `crab hr member set <memberId> --role admin` 或 `--permissions people.write=1,tasks.write=1`(flags:org.manage / people.write / tasks.write / sensitive.read;owner 恒全权) |
33
+ | 移除成员 | `crab hr member rm <memberId>` |
34
+ | 未注册的老板要进来 | `crab hr invite`(常驻链接,注册即入组织;`--reset` 作废旧链) |
35
+ | 看花名册 | `crab hr people [--q 关键字] [--status active\|probation\|resigned]` |
36
+ | 看一个人 | `crab hr person <id>` |
37
+ | 入职建档 | `crab hr person create --name "姓名" --hired-at YYYY-MM-DD [--dept 部门] [--role 岗位] [--probation-end YYYY-MM-DD] [--contract-end YYYY-MM-DD]` |
38
+ | 转正 | `crab hr person edit <id> --status active`(自动落痕) |
39
+ | 办离职 | `crab hr person offboard <id> [--date YYYY-MM-DD]`(档案封存不删,记录依法保留) |
40
+ | 记一件事 | `crab hr event add <personId> --type <onboard\|contract\|change\|attendance\|payroll\|award\|asset\|offboard\|note> --note "..." [--at YYYY-MM-DD]` |
41
+ | 看时间线 | `crab hr events [--person <id>] [--type <类型>]` |
42
+ | 从表格导入花名册 | `crab hr import <文件.csv|.tsv|.json>`(≤200 行,姓名/入职列必填,表头自动识别) |
43
+ | 看任务 | `crab hr tasks [--status alert\|confirm\|queued\|done]` |
44
+ | 建任务 / 流转 | `crab hr task create --kind attendance --title "9 月考勤月结"`;`crab hr task update <id> --status done` |
45
+ | **总览(推荐首入口)** | `crab hr desk`——等你拍板 / 助理在办 / 近期完成 + 大事提醒(合同到期 60 天、试用期届满 30 天、过期存量风险)+ 最近动态 |
46
+
47
+ 所有命令支持 `--json` 输出机器可读结构;多组织时用 `--org org:<名称>`(或组织 id)指定,仅一个组织时自动采用。
48
+
49
+ ## 机器可读输出(--json)
50
+
51
+ - `crab hr people --json` → `{ people: [...], total, org: {...} }`;人员字段 camelCase(`hiredAt`/`contractEnd` 为纪元毫秒;`idNumber`/`salaryCents` 对令牌恒为 `null`——见下方纪律)
52
+ - `crab hr desk --json` → `{ pending: [...], running: [...], done: [...], reminders: [{ text, days }], recentEvents: [...] }`
53
+ - `crab hr import --json` → `{ created, failed: [{ row, reason }] }`
54
+
55
+ ## 纪律
56
+
57
+ - **敏感信息不主动读、读到不转述**:身份证号与薪资对 CLI/Agent 令牌在服务端就不可见(恒为 null,与「无权限」同形)。用户当面问到某人薪资时,引导其在 Web 端查看,不要猜测。
58
+ - **写操作先复述再执行**:建档 / 离职 / 移除成员 / 重置邀请链接前,先向用户复述将要发生的动作;离职是封存不是删除,但仍是敏感流转。
59
+ - 事件时间线是**劳动纠纷证据链**:只追加、不改写;`event add` 的 note 要写清事实(什么节点做了什么),不要写推测。
60
+ - 多组织账号务必确认 `--org` 后再写,写错组织的数据不属于本组织。
@@ -76,5 +76,6 @@ description: Read, search and send the user's Crab Cloud platform email (usernam
76
76
  - 附件:`mail read` 输出附件清单(id/文件名/类型/体积);附件内容归云盘管
77
77
  ——下载用 `crab storage download <id>`(见 `crabcloud-storage` skill,跨来
78
78
  源通用),发送引用云盘对象用 `mail send --attach`(对象须未被其他邮件绑
79
- 定;若报错说明已被引用,改走正文链接)。邮件详情附件显示「已在云盘删除」
80
- 表示对象已被软删,如实转述。
79
+ 定;若报错说明已被引用,改走正文链接)。**附件只接受明文 / 平台加密(p1)
80
+ 对象,保险箱(u1) 文件不能作附件**——CLI 会明确拒绝,需要分享时改走正文
81
+ 链接。邮件详情附件显示「已在云盘删除」表示对象已被软删,如实转述。
@@ -0,0 +1,59 @@
1
+ ---
2
+ name: crabcloud-shop
3
+ description: Manage the user's Crab Cloud shop stores through the `crab` CLI — store status, opening applications, products, members and role presets. Use this skill when the user asks about their shops, wants to open or apply for a store, check orders or products, manage store members/roles ("我的店铺", "开店", "商店订单", "店铺成员", "crab shop"), or asks what their stores look like — even if they never say "crab" or "Crab Cloud" explicitly.
4
+ ---
5
+
6
+ # Crab Cloud 商店(crab shop)
7
+
8
+ 用户的 Crab Cloud 账号可以开店卖数字/实物商品(无账号买家直购、平台代收款)。
9
+ 本 skill 覆盖商店域的 agent 通道;账号/令牌管理见 `crabcloud` skill。
10
+
11
+ ## 第一步:确认可用
12
+
13
+ - 运行 `crab --version` 确认已安装。本机没有 `crab` 命令时引导
14
+ `npm i -g @crabcloud/cli@latest` 安装;不想装全局则下文所有 `crab <命令>`
15
+ 直接 `npx @crabcloud/cli <命令>` 等价执行。
16
+ - 未登录(退出码 3)引导用户 `crab login`(商店命令跟随登录身份的店铺成员
17
+ 关系鉴权;成员权限不足会返回 `missing permission: <项>`,如实转述缺哪项)。
18
+ - **多店账号**:先 `crab shop use <slug>` 设置当前店(持久保存,店级命令
19
+ 缺省作用于它);单条命令也可 `--store <slug>` 临时覆盖。只有一家店时全部
20
+ 自动选中。
21
+
22
+ ## 意图 → 命令映射
23
+
24
+ | 用户意图 | 命令 |
25
+ |---|---|
26
+ | 我有哪些店 / 开店申请进度 | `crab shop status [--json]` |
27
+ | 切换当前管理的店(多店账号) | `crab shop use <slug>`(持久;status 里 ★ = 当前店) |
28
+ | 开店 / 再开一家 | `crab shop apply <店铺名> [--tagline 一句话介绍]` |
29
+ | 店铺角色预设(权限模板) | `crab shop roles --store <slug>` |
30
+ | 店铺成员(权限组合/业务身份) | `crab shop members --store <slug>` |
31
+ | 改成员权限 / 业务身份 | `crab shop member edit <用户名> --perms products,orders --biz sales --store <slug>` |
32
+ | 查看 / 重置常驻邀请链接 | `crab shop invite [--reset --perms orders,customers --biz sales] --store <slug>` |
33
+ | 看分类(多级树) | `crab shop categories --store <slug>`(缩进树 + 商品数 + id) |
34
+ | 加分类 / 加子分类 | `crab shop category add <名称> [--parent <id或名称>] --store <slug>`(新建落同级末尾) |
35
+ | 分类改名 / 排序 / 删除 | `crab shop category rename <id或名称> <新名称>` · `crab shop category move <id或名称> <up\|down>`(同级换位,边界不动)· `crab shop category delete <id或名称>`(有子级拒绝;叶子删除后商品迁入「未分类」) |
36
+ | 看规格库模板 | `crab shop specs --store <slug>`(名称/选项值/引用商品数) |
37
+ | 建 / 改规格模板 | `crab shop spec add <名称> --values <值1,值2,…>` · `crab shop spec update <id或名称> [--name <新名>] [--values <a,b,c>]` |
38
+ | 删规格模板 | `crab shop spec delete <id或名称>`(引用 = 快照拷贝:已建商品不受影响) |
39
+
40
+ 分类/模板的 `<id或名称>` 参数:id 优先,名称须唯一(重名会提示改用 id)。
41
+
42
+ ## 权限项(member edit --perms 可用值)
43
+
44
+ `products`(商品与库存)· `orders`(订单与发货)· `aftercare`(售后与退款)·
45
+ `customers`(客户与归属)· `marketing`(营销)· `finance`(账单与争议)·
46
+ `team`(团队管理)· `settings`(店铺设置)
47
+
48
+ 分类与规格库的写操作(add/rename/move/delete)需要 `products` 权限;列表
49
+ 只需成员身份。
50
+
51
+ 业务身份(--biz):`sales` / `support`,逗号分隔可多选——决定客户归属与业绩
52
+ 归因资格,与权限正交。
53
+
54
+ ## 纪律
55
+
56
+ - 店主不可改权限(由店铺归属决定);改成员权限前先 `shop members` 确认目标。
57
+ - `shop invite --reset` 会使旧链接立即作废——先和用户确认再重置。
58
+ - 金额一律整数分(API 返回 `*_cents`,展示 ÷100 加货币符号)。
59
+ - 订单/商品/库存等经营命令按批次扩充;本 skill 随 CLI 更新同步维护。
@@ -1,15 +1,18 @@
1
1
  ---
2
2
  name: crabcloud-storage
3
- description: Manage the user's Crab Cloud Drive (云盘 — unified storage for drive uploads, media assets and mail attachments on one quota, with end-to-end encryption) through the `crab` CLI — list and filter objects, upload and download files (including decrypting share links), rename, tag, categorize, publish/unpublish public links, create expiring share links with passcodes, manage the locally remembered encryption key, trash/restore/purge, and check the storage quota. Use this skill when the user asks to upload, find, organize, share or clean up files on Crab Cloud ("上传这个文件", "云盘里有什么", "把这个文件公开分享", "看看存储用了多少", "crab storage"), or wants files moved in or out of their drive — even if they never say "crab" or "Crab Cloud" explicitly.
3
+ description: Manage the user's Crab Cloud storage (云盘 — one base file service carrying drive uploads, media assets, mail attachments, collab files and agent files on one quota; vault-grade end-to-end encryption is optional) through the `crab` CLI — list and filter objects, upload and download files (including decrypting share links), rename, tag, categorize, publish/unpublish public links, create expiring share links with passcodes, manage the locally remembered encryption key, trash/restore/purge, and check the storage quota. Use this skill when the user asks to upload, find, organize, share or clean up files on Crab Cloud ("上传这个文件", "云盘里有什么", "把这个文件公开分享", "看看存储用了多少", "crab storage"), or wants files moved in or out of their drive — even if they never say "crab" or "Crab Cloud" explicitly.
4
4
  ---
5
5
 
6
6
  # Crab Cloud 云盘(crab storage)
7
7
 
8
- 云盘是用户的统一存储:云盘上传 / 素材库 / 邮件附件三来源共用一本 2 GB 容量账;
9
- 属性优先、位置无关——分类(至多一个)+ 标签(AND 检索)代替文件夹。files 域
10
- 上传默认端到端加密(服务器只有包裹态密钥,明文密钥只在本机)。本 skill 覆盖
11
- 云盘域的 agent 通道;账号/令牌管理见 `crabcloud` skill,邮箱见 `crabcloud-mail`
12
- skill。
8
+ 云盘是用户的统一存储基础服务:云盘上传 / 素材库 / 邮件附件 / 协作文件 /
9
+ Agent 产物五来源共用一本容量账(按档位,Free 1GB / Plus 10GB);属性优先、
10
+ 位置无关——分类(至多一个)+ 标签(AND 检索)代替文件夹。**上传缺省明文**
11
+ (2026-10 基础服务化:其他应用可直接引用);提供口令时才端到端加密(保险箱
12
+ 文件,服务器只有包裹态密钥,明文密钥只在本机)。加密三态以 `wrappedDataKey`
13
+ 前缀区分:无前缀 = 明文、`p1.` = 平台加密(如邮件附件,服务端可透明解密)、
14
+ `u1.` = 保险箱(用户持钥)。本 skill 覆盖存储域的 agent 通道;账号/令牌管理见
15
+ `crabcloud` skill,邮箱见 `crabcloud-mail` skill。
13
16
 
14
17
  ## 第一步:确认可用
15
18
 
@@ -24,7 +27,7 @@ skill。
24
27
  `storage.write`,移回收站/恢复/彻底删除 `storage.delete`。退出码 4 = scope
25
28
  不足:如实转述缺哪个,引导 `crab login --scopes storage`(组名 = 三项整组)
26
29
  重新授权(你只发起,不代批)。
27
- - 退出码 7 = `storage.quotaExceeded`(统一容量账满,2 GB):告知用户,可建议
30
+ - 退出码 7 = `storage.quotaExceeded`(统一容量账满):告知用户,可建议
28
31
  清理回收站或大文件(`storage quota` 看分项),不要自动重试。
29
32
 
30
33
  ## 意图 → 命令映射
@@ -32,9 +35,9 @@ skill。
32
35
  | 用户意图 | 命令 |
33
36
  |---|---|
34
37
  | 云盘里有什么 | `crab storage ls`(按时间倒序,默认 30 条;`--limit` / `--offset` 翻页) |
35
- | 找文件 | `crab storage ls --q 关键字`(文件名匹配;可叠 `--source files\|media\|mail`、`--type doc\|image\|video\|archive\|code`、`--category 分类id\|none`、`--tag a,b`、`--shared`、`--recent`、`--message-id <id>`) |
38
+ | 找文件 | `crab storage ls --q 关键字`(文件名匹配;可叠 `--source files\|media\|mail\|collab\|agent`、`--type doc\|image\|video\|archive\|code`、`--category 分类id\|none`、`--tag a,b`、`--shared`、`--recent`、`--encrypted only\|plain`、`--message-id <id>`;`--encrypted only` = 仅保险箱、`plain` = 排除保险箱) |
36
39
  | 看回收站 | `crab storage ls --trash` |
37
- | 上传文件 | `crab storage upload <路径...>`(多文件串行;直传优先,自动回退中转;默认端到端加密——口令三来源见下节,首次使用自动初始化并打印一次性恢复码) |
40
+ | 上传文件 | `crab storage upload <路径...>`(多文件串行;直传优先,自动回退中转;**缺省明文直传**,其他应用可直接引用;`--passphrase` 或 `CRAB_PASSPHRASE` 提供时端到端加密为保险箱文件——口令三来源见下节,首次使用自动初始化并打印一次性恢复码) |
38
41
  | 下载文件 | `crab storage download <id\|文件名\|分享链接> [-o 输出路径] [--passcode 提取码]`(默认按原文件名存当前目录;**凭完整分享链接可免登录下载并本地解密**——`#` 后是密钥片段,这是 agent→agent 的主通道;带提取码的分享加 `--passcode`) |
39
42
  | 改名 | `crab storage rename <id\|文件名> <新名称>` |
40
43
  | 加/删标签 | `crab storage tag <id\|文件名> --add a,b [--remove c,d]` |
@@ -46,7 +49,7 @@ skill。
46
49
  | 可控分享(有效期/提取码/撤销) | `crab storage share <id\|文件名> [--expires 7\|30\|90\|forever] [--passcode 提取码]`(打印完整分享链接;加密对象链接自带 `#` 密钥片段);列表 `crab storage shares <id\|文件名>`、撤销 `crab storage unshare <shareId>` |
47
50
  | 云盘钥匙管理 | `crab storage key`(查状态)/ `--remember`(解锁一次并记住,之后免口令)/ `--forget`(清除)——见下节 |
48
51
  | 删除 | `crab storage rm <id\|文件名>`(进回收站,7 天后自动清理)→ `restore` 恢复 / `purge` 彻底删除 |
49
- | 看水位 | `crab storage quota`(三来源分项 + 回收站占用 + 对象计数) |
52
+ | 看水位 | `crab storage quota`(五来源分项 + 保险箱计数 + 回收站占用 + 对象计数) |
50
53
  | 看云盘操作流 | `crab storage activity`(读取/上传/删除/建分享,最近 50 条) |
51
54
 
52
55
  `<id|文件名>`:文件名全库精确唯一命中时自动解析为 id(回收站内同样可解析,
@@ -59,17 +62,20 @@ restore/purge 直接用文件名即可);命中多个或查不到时按字面
59
62
  程序化消费**始终加 `--json`**:
60
63
 
61
64
  - `storage ls --json` → `{ objects: [...], nextOffset, total }`,条目含
62
- `id / source / filename / mimeType / sizeBytes / categoryId / tags / isPublic / createdAt`;
63
- - `storage quota --json` → `{ usedBytes, quotaBytes, bySource: { files, media, mail }, trashBytes, counts }`;
65
+ `id / source / filename / mimeType / sizeBytes / categoryId / tags / isEncrypted / wrappedDataKey / isPublic / createdAt`
66
+ (`source` = `files|media|mail|collab|agent`;u1 判定 = `isEncrypted && wrappedDataKey` 以 `u1.` 开头);
67
+ - `storage quota --json` → `{ usedBytes, quotaBytes, bySource: { files, media, mail, collab, agent }, trashBytes, counts: { all, files, media, mail, collab, agent, shared, vault, trash } }`
68
+ (素材库条数 = `counts.all - counts.vault`);
64
69
  - `storage activity --json` → 条目含 `action(object.read/object.uploaded/object.deleted/share.created)/ actorType / actorLabel / objectId / objectName / createdAt`;
65
70
  - `upload` / `categories` / `tags` / `shares` 的 `--json` 同构(单对象 / 分类数组 /
66
71
  标签数组 / 分享数组)。
67
72
 
68
- ## 云盘口令与本机钥匙
73
+ ## 保险箱口令与本机钥匙
69
74
 
70
- files 域是端到端加密:服务器只有口令包裹态的主密钥,**明文密钥只存在于用户
71
- 本机**——CLI 不可能也不允许向服务器索取。涉及加密对象的命令(upload /
72
- download / share 加密文件)需要云盘口令,来源优先级:
75
+ 保险箱(u1)是端到端加密:服务器只有口令包裹态的主密钥,**明文密钥只存在于
76
+ 用户本机**——CLI 不可能也不允许向服务器索取。**只有涉及保险箱文件的命令才
77
+ 需要口令**(带口令 upload / download 或 share u1 对象;明文与 p1 平台加密对象
78
+ 全程免口令)。口令来源优先级:
73
79
 
74
80
  1. `--passphrase <口令>`(flag)
75
81
  2. 环境变量 `CRAB_PASSPHRASE`(**Agent/脚本推荐**——非交互终端不会弹提问,
@@ -96,6 +102,9 @@ download / share 加密文件)需要云盘口令,来源优先级:
96
102
  等待即可;凭链接下载时提取码用 `--passcode` 正确携带。
97
103
  - **purge 是彻底删除**,不可恢复;用户没明说「彻底删除」时一律用 `rm`
98
104
  (回收站保留 7 天可找回)。
105
+ - **保险箱(u1)不能被其他应用引用**:邮件附件(`mail send --attach`)与协作
106
+ 记录引用都只接受明文 / p1 平台加密对象,u1 对象会被明确拒绝——需要跨应用
107
+ 使用时用分享链接(u1 链接自带密钥片段),或等互转功能;不要尝试绕过。
99
108
  - 邮件附件与用户上传同账:水位告急时用 `quota` 分项定位来源再建议清理。
100
109
  - 公开直链的呈现方式由服务端策略决定(图片/视频/音频/PDF/纯文本内联,SVG 与
101
110
  其他类型强制下载),CLI 侧没有、也不需要有开关。
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@crabcloud/cli",
3
- "version": "0.3.0",
3
+ "version": "0.5.0",
4
4
  "type": "module",
5
5
  "description": "Crab Cloud CLI (crab) — agent-first entry to your personal cloud, with skills bundled for Claude Code / Codex / ZCode.",
6
6
  "bin": {
@@ -24,9 +24,9 @@
24
24
  "prepublishOnly": "bun run typecheck && bun run build"
25
25
  },
26
26
  "devDependencies": {
27
- "@crabcloud/cloudkit": "0.1.0",
28
- "@crabcloud/contracts": "0.1.0",
29
- "@crabcloud/skills": "0.1.5",
27
+ "@crabcloud/cloudkit": "workspace:*",
28
+ "@crabcloud/contracts": "workspace:*",
29
+ "@crabcloud/skills": "workspace:*",
30
30
  "@types/bun": "latest",
31
31
  "typescript": "^5.9.3"
32
32
  }