evolcore 0.0.23 → 0.0.25

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.
Files changed (245) hide show
  1. package/CHANGELOG.md +583 -516
  2. package/LICENSE +21 -21
  3. package/README.md +455 -453
  4. package/bin/codex-managed-acl.ps1 +160 -155
  5. package/bin/codex-managed-hook.mjs +209 -92
  6. package/bin/ec-safe-output.js +327 -245
  7. package/bin/ec.js +29 -29
  8. package/bin/install-codex-managed-hooks.mjs +555 -544
  9. package/dist/agents/baseagent-availability.js +4 -4
  10. package/dist/agents/baseagent.js +29 -1
  11. package/dist/agents/claude-runner.js +152 -14
  12. package/dist/agents/codex/app-server-client.js +18 -8
  13. package/dist/agents/codex/catalog.js +1 -1
  14. package/dist/agents/codex/diagnostics.js +215 -0
  15. package/dist/agents/codex-runner.js +445 -63
  16. package/dist/agents/ecagent-runner.js +31 -16
  17. package/dist/agents/gemini-runner.js +82 -4
  18. package/dist/agents/runner-types.js +1 -1
  19. package/dist/aun/aid/agentmd.js +56 -4
  20. package/dist/aun/aid/index.js +1 -0
  21. package/dist/aun/aid/managed-operation.js +80 -6
  22. package/dist/aun/aid/store.js +41 -0
  23. package/dist/aun/msg/managed-operation.js +6 -1
  24. package/dist/aun/outbox.js +56 -18
  25. package/dist/aun/rpc/client.js +4 -5
  26. package/dist/aun/storage/client.js +4 -1
  27. package/dist/aun/storage/index.js +1 -1
  28. package/dist/channels/aun.js +147 -76
  29. package/dist/channels/daemon.js +7 -1
  30. package/dist/channels/dingtalk.js +1 -0
  31. package/dist/channels/feishu.js +10 -4
  32. package/dist/channels/wecom.js +2 -1
  33. package/dist/cli/agent-command.js +214 -89
  34. package/dist/cli/agent-create.js +576 -0
  35. package/dist/cli/agent.js +129 -676
  36. package/dist/cli/aun-commands.js +419 -313
  37. package/dist/cli/bench.js +20 -20
  38. package/dist/cli/config.js +20 -20
  39. package/dist/cli/contact.js +10 -10
  40. package/dist/cli/ctl-command.js +22 -20
  41. package/dist/cli/daemon-commands.js +163 -32
  42. package/dist/cli/fs-command.js +67 -67
  43. package/dist/cli/handoff-command.js +7 -7
  44. package/dist/cli/index.js +79 -79
  45. package/dist/cli/link-rules.js +21 -21
  46. package/dist/cli/managed-command-guard.js +3 -0
  47. package/dist/cli/menu-client.js +11 -11
  48. package/dist/cli/net-check.js +22 -22
  49. package/dist/cli/queue-command.js +29 -29
  50. package/dist/cli/response.js +30 -30
  51. package/dist/cli/restart-monitor.js +462 -38
  52. package/dist/cli/stats.js +161 -51
  53. package/dist/cli/trigger-command.js +56 -56
  54. package/dist/config/builtin-roles.js +3 -0
  55. package/dist/config/config-manager.js +15 -0
  56. package/dist/config/config-operation-service.js +20 -3
  57. package/dist/config/resolved-config-op.js +39 -1
  58. package/dist/core/auth/auth-gateway.js +3 -2
  59. package/dist/core/auth/authorization-audit.js +72 -19
  60. package/dist/core/auth/operation-authorizer.js +125 -7
  61. package/dist/core/auth/operation-catalog.js +26 -2
  62. package/dist/core/auth/remote-access-store.js +3 -2
  63. package/dist/core/baseagent-loader.js +4 -4
  64. package/dist/core/bootstrap-messages.js +39 -18
  65. package/dist/core/bootstrap-service.js +32 -26
  66. package/dist/core/capability/capability-manager.js +8 -4
  67. package/dist/core/capability/providers/codex-capability-provider.js +1 -1
  68. package/dist/core/command/agent-control.js +60 -26
  69. package/dist/core/command/cli-intent-parser.js +18 -0
  70. package/dist/core/command/command-handler.js +173 -36
  71. package/dist/core/command/menu-catalog.js +4 -1
  72. package/dist/core/command/menu-handler.js +315 -75
  73. package/dist/core/command/menu-protocol.js +7 -2
  74. package/dist/core/command/slash-gate.js +1 -3
  75. package/dist/core/command/slash-handler.js +166 -57
  76. package/dist/core/data-migration.js +5 -15
  77. package/dist/core/event-catalog.js +8 -0
  78. package/dist/core/evolagent.js +3 -3
  79. package/dist/core/handoff/runtime.js +3 -1
  80. package/dist/core/handoff/store.js +7 -1
  81. package/dist/core/message/im-renderer.js +13 -6
  82. package/dist/core/message/message-bridge.js +5 -36
  83. package/dist/core/message/message-utils.js +6 -3
  84. package/dist/core/message/response-engine.js +85 -27
  85. package/dist/core/model/catalog-service.js +3 -1
  86. package/dist/core/model/model-catalog.js +10 -0
  87. package/dist/core/model/model-permission.js +4 -1
  88. package/dist/core/permission/approval-gateway.js +169 -33
  89. package/dist/core/permission/tool-policy.js +56 -10
  90. package/dist/core/session/adapters/codex-session-file-adapter.js +71 -3
  91. package/dist/core/session/session-manager.js +49 -13
  92. package/dist/core/session/session-renew.js +1 -0
  93. package/dist/index.js +327 -134
  94. package/dist/ipc.js +68 -21
  95. package/dist/paths.js +23 -1
  96. package/dist/stats/billing.js +18 -4
  97. package/dist/stats/db.js +159 -159
  98. package/dist/stats/eck-vars.js +9 -9
  99. package/dist/stats/query.js +139 -139
  100. package/dist/stats/role-budget.js +6 -6
  101. package/dist/stats/writer.js +51 -51
  102. package/dist/utils/atomic-write.js +26 -2
  103. package/dist/utils/avatar-upload.js +282 -23
  104. package/dist/utils/cross-platform.js +436 -1
  105. package/dist/utils/error-dict.json +160 -160
  106. package/dist/utils/error-utils.js +11 -4
  107. package/dist/utils/macos-autostart.js +22 -22
  108. package/dist/utils/model-prices.jsonl +23 -20
  109. package/dist/utils/npm-ops.js +24 -1
  110. package/dist/utils/welcome.js +22 -22
  111. package/dist/utils/windows-autostart.js +1 -1
  112. package/ecagent/LICENSE +21 -21
  113. package/ecagent/NOTICE +11 -11
  114. package/ecagent/README.md +61 -61
  115. package/ecagent/dist/harness/compaction/branch-summarization.js +30 -30
  116. package/ecagent/dist/harness/compaction/compaction.js +83 -83
  117. package/ecagent/dist/harness/messages.js +7 -7
  118. package/kits/docs/GUIDE.md +20 -20
  119. package/kits/docs/INDEX.md +66 -66
  120. package/kits/docs/aun/CHEATSHEET.md +19 -19
  121. package/kits/docs/aun/SYNC_PROTOCOL.md +15 -15
  122. package/kits/docs/channels/aun.md +56 -56
  123. package/kits/docs/channels/feishu.md +56 -56
  124. package/kits/docs/context-assembly.md +365 -364
  125. package/kits/docs/eck_templates/GUIDE.template.md +22 -22
  126. package/kits/docs/eck_templates/INDEX.template.md +28 -28
  127. package/kits/docs/eck_templates/path-registry.template.md +33 -33
  128. package/kits/docs/eck_templates/runtime.template.md +19 -19
  129. package/kits/docs/evolcore/INDEX.md +71 -69
  130. package/kits/docs/evolcore/agent-create.md +170 -156
  131. package/kits/docs/evolcore/agent.md +83 -73
  132. package/kits/docs/evolcore/aid.md +64 -62
  133. package/kits/docs/evolcore/codex-windows-sandbox.md +146 -0
  134. package/kits/docs/evolcore/config.md +195 -195
  135. package/kits/docs/evolcore/contact.md +68 -68
  136. package/kits/docs/evolcore/ctl.md +46 -46
  137. package/kits/docs/evolcore/event.md +216 -216
  138. package/kits/docs/evolcore/fs-architecture.md +1215 -1215
  139. package/kits/docs/evolcore/fs.md +110 -110
  140. package/kits/docs/evolcore/group-collaboration.md +243 -243
  141. package/kits/docs/evolcore/group-fs.md +17 -17
  142. package/kits/docs/evolcore/group-rules.md +251 -251
  143. package/kits/docs/evolcore/group.md +152 -152
  144. package/kits/docs/evolcore/menu-client.md +34 -34
  145. package/kits/docs/evolcore/model.md +50 -50
  146. package/kits/docs/evolcore/msg.md +165 -165
  147. package/kits/docs/evolcore/response.md +75 -75
  148. package/kits/docs/evolcore/rpc.md +37 -37
  149. package/kits/docs/evolcore/self-summary.md +29 -29
  150. package/kits/docs/evolcore/stats.md +83 -83
  151. package/kits/docs/evolcore/storage.md +50 -50
  152. package/kits/docs/evolcore/trigger.md +575 -575
  153. package/kits/docs/identity/AID_PROFILE_SPEC.md +26 -26
  154. package/kits/docs/identity/PATH_OPS.md +16 -16
  155. package/kits/docs/identity/ROLE_DETAIL.md +25 -25
  156. package/kits/docs/identity/identity-tools.md +26 -26
  157. package/kits/docs/path-registry.md +62 -62
  158. package/kits/docs/prompt-loading-architecture.md +270 -269
  159. package/kits/docs/venues/aun-group.md +45 -45
  160. package/kits/docs/venues/aun-private.md +10 -10
  161. package/kits/docs/venues/client-desktop.md +10 -10
  162. package/kits/docs/venues/client-mobile.md +10 -10
  163. package/kits/docs/venues/feishu-group.md +13 -13
  164. package/kits/docs/venues/feishu-private.md +9 -9
  165. package/kits/docs/venues/group.md +25 -25
  166. package/kits/docs/venues/private.md +10 -10
  167. package/kits/eck_manifest.auxiliary.json +43 -43
  168. package/kits/eck_manifest.json +195 -183
  169. package/kits/eck_message_manifest.json +74 -74
  170. package/kits/migrations/README-role-config-v4.md +32 -32
  171. package/kits/migrations/migrate-contact-book-v2.mjs +748 -748
  172. package/kits/migrations/migrate-role-config-v4.mjs +614 -614
  173. package/kits/migrations/migrate-role-config-v5.mjs +365 -365
  174. package/kits/migrations/rename-config-file.mjs +99 -99
  175. package/kits/rules/01-overview.md +162 -162
  176. package/kits/rules/02-navigation.md +96 -96
  177. package/kits/rules/03-identity.md +39 -37
  178. package/kits/rules/04-relation.md +75 -75
  179. package/kits/rules/05-venue.md +60 -60
  180. package/kits/rules/06-channel.md +63 -63
  181. package/kits/schemas/_meta.json +53 -53
  182. package/kits/schemas/agent-config.schema.1.json +177 -177
  183. package/kits/schemas/agent-config.schema.10.json +395 -395
  184. package/kits/schemas/agent-config.schema.11.json +421 -421
  185. package/kits/schemas/agent-config.schema.12.json +427 -427
  186. package/kits/schemas/agent-config.schema.2.json +239 -239
  187. package/kits/schemas/agent-config.schema.3.json +119 -119
  188. package/kits/schemas/agent-config.schema.4.json +208 -208
  189. package/kits/schemas/agent-config.schema.5.json +326 -326
  190. package/kits/schemas/agent-config.schema.6.json +322 -322
  191. package/kits/schemas/agent-config.schema.7.json +303 -303
  192. package/kits/schemas/agent-config.schema.8.json +304 -304
  193. package/kits/schemas/agent-config.schema.9.json +364 -364
  194. package/kits/schemas/contact-book.schema.1.json +36 -36
  195. package/kits/schemas/contact-book.schema.2.json +43 -43
  196. package/kits/schemas/contact-book.schema.3.json +67 -67
  197. package/kits/schemas/daemon.schema.1.json +91 -91
  198. package/kits/schemas/daemon.schema.2.json +101 -101
  199. package/kits/schemas/daemon.schema.3.json +123 -123
  200. package/kits/schemas/daemon.schema.4.json +136 -136
  201. package/kits/schemas/daemon.schema.5.json +135 -135
  202. package/kits/schemas/daemon.schema.6.json +131 -131
  203. package/kits/schemas/defaults.schema.1.json +81 -81
  204. package/kits/schemas/defaults.schema.2.json +85 -85
  205. package/kits/schemas/defaults.schema.3.json +73 -73
  206. package/kits/schemas/defaults.schema.4.json +107 -107
  207. package/kits/schemas/defaults.schema.5.json +119 -119
  208. package/kits/schemas/menu-exec-schema-commands.md +208 -208
  209. package/kits/schemas/migrations/README.md +30 -30
  210. package/kits/schemas/relation-config.schema.1.json +158 -158
  211. package/kits/schemas/relation-config.schema.2.json +73 -73
  212. package/kits/schemas/relation-config.schema.3.json +50 -50
  213. package/kits/schemas/relation-config.schema.4.json +47 -47
  214. package/kits/schemas/relation-config.schema.5.json +47 -47
  215. package/kits/schemas/relation-config.schema.6.json +46 -46
  216. package/kits/schemas/relation-config.schema.7.json +59 -59
  217. package/kits/schemas/relation-config.schema.8.json +103 -103
  218. package/kits/schemas/role-config.schema.1.json +201 -201
  219. package/kits/schemas/role-registry.schema.1.json +35 -35
  220. package/kits/schemas/single-session.schema.1.json +31 -31
  221. package/kits/schemas/single-session.schema.2.json +57 -57
  222. package/kits/schemas/single-session.schema.3.json +32 -32
  223. package/kits/templates/bootstrap-welcome.md +17 -17
  224. package/kits/templates/message-fragments/handoff-context-to-target.md +9 -9
  225. package/kits/templates/message-fragments/handoff-request-to-target.md +19 -19
  226. package/kits/templates/message-fragments/handoff-response-to-origin.md +9 -9
  227. package/kits/templates/message-fragments/inject-default.md +2 -2
  228. package/kits/templates/message-fragments/item.md +2 -2
  229. package/kits/templates/roles/admin.json +96 -82
  230. package/kits/templates/roles/member.json +97 -96
  231. package/kits/templates/roles/owner.json +9 -9
  232. package/kits/templates/roles/visitor.json +86 -85
  233. package/kits/templates/system-fragments/baseagent.md +14 -14
  234. package/kits/templates/system-fragments/bootstrap.md +38 -29
  235. package/kits/templates/system-fragments/channel.md +64 -64
  236. package/kits/templates/system-fragments/commands.md +28 -28
  237. package/kits/templates/system-fragments/identity.md +13 -13
  238. package/kits/templates/system-fragments/relation.md +19 -19
  239. package/kits/templates/system-fragments/session.md +59 -59
  240. package/kits/templates/system-fragments/venue.md +31 -31
  241. package/package.json +98 -94
  242. package/AGENTS.md +0 -62
  243. package/dist/utils/codex-cli.js +0 -43
  244. package/skills/eclink/SKILL.md +0 -84
  245. package/skills/eclink/agents/openai.yaml +0 -4
@@ -1,110 +1,110 @@
1
- # ec fs — AUN 文件系统
2
-
3
- `ec fs` 是个人空间和群空间的统一文件入口。群空间也用 `ec fs`,没有 `ec group fs`。
4
-
5
- 路径格式:
6
-
7
- ```bash
8
- <AID>:<absolute-path>
9
- ```
10
-
11
- 无 `:` 的路径是本地路径。操作者身份用 `--as <aid>`,agent 会话内通常由 `EVOLCORE_SELF_AID` 注入,可省略。
12
-
13
- ## 已实现命令
14
-
15
- ```bash
16
- ec fs ls <AID>:<path> # 列目录
17
- ec fs cat <AID>:<path> # 输出文本文件;二进制/大文件返回头部摘要
18
- ec fs cp <local> <AID>:<path> # 上传
19
- ec fs cp <AID>:<path> <local> # 下载
20
- ec fs cp <AID>:<path> <AID>:<path> # 远程复制(同后端)
21
- ec fs stat [-L] <AID>:<path> # 查看节点元数据(默认不跟随软链,-L 跟随)
22
- ec fs lstat <AID>:<path> # 查看节点本身(不跟随末级软链)
23
- ec fs mv <AID>:<path> <AID>:<path> # 移动/改名(同后端)
24
- ec fs rm [-r] <AID>:<path> # 删除文件或目录
25
- ec fs mkdir [-p] <AID>:<path> # 创建目录
26
- ec fs ln -s <target> <AID>:<path> # 创建软链(personal storage)
27
- ec fs chmod [mode] <AID>:<path> # 切换公开/私有(personal storage)
28
- ec fs setfacl <AID>:<path> -m|-x ... # 设置/移除 ACL(personal storage)
29
- ec fs getfacl <AID>:<path> # 查看 ACL(personal storage)
30
- ec fs token issue|revoke|ls <path> # 管理访问 token(personal storage)
31
- ec fs find <AID>:<path> [filters] # 查找节点
32
- ec fs df <AID>: # 查看容量/配额
33
- ec fs mount <target> --volume <id> # 挂载实体卷
34
- ec fs mount <target> --source <src> # 挂载远程子树
35
- ec fs approve <AID>:<path> # 批准待审挂载(personal storage)
36
- ec fs reject <AID>:<path> # 拒绝待审挂载(personal storage)
37
- ec fs umount <AID>:<path> # 卸载挂载点
38
- ```
39
-
40
- 通用选项:
41
-
42
- - `--format json`:结构化输出
43
- - `--as <aid>`:显式指定操作者
44
- - `--aun-path <path>`:指定 AUN keystore 根
45
- - `--app <name>`:指定 AUN app slot
46
- - `--overwrite` / `--force`:`cp/mv/ln` 覆盖目标;`rm` 强制删除
47
- - `-r` / `--recursive`:`rm/cp` 递归
48
- - `-p` / `--parents`:`mkdir` 自动创建父目录
49
- - `-L` / `--follow`:`stat` 跟随末级软链
50
- - `--token <token>`:读取 personal storage 时携带访问 token
51
- - `--content-type <mime>`:上传时指定 MIME
52
- - `--public`:上传后公开可读(personal storage)
53
- - `--max-bytes <n>`:`cat` 最大直接输出字节数,默认 1MB
54
- - `--head-bytes <n>`:`cat` 二进制头部字节数,默认 256
55
- - `--visibility public|private`:`chmod` 可见性
56
- - `--allow-roles <roles>`:`chmod` 角色约束,逗号分隔
57
- - `-m aid:<aid>:<perms>` / `-x aid:<aid>`:`setfacl` 增删 ACL
58
- - `--source <AID>:<path>` / `--volume <id>`:`mount` 来源
59
- - `--expires <time>`:`mount/token/ACL` 过期时间,Unix 秒或 ISO 日期
60
- - `--require-approval`:挂载需要来源 owner 审批
61
- - `--max-uses <n>`:ACL 最大使用次数
62
- - `--max-reads <n>`:访问 token 最大读取次数
63
- - `--readonly` / `--readwrite`:挂载为只读或读写
64
- - `--name <glob>` / `--type <f|d|l>`:`find` 名称或类型过滤
65
- - `--size <expr>` / `--mtime <expr>`:`find` 大小或修改时间过滤
66
-
67
- ## 示例
68
-
69
- ```bash
70
- ec fs ls alice.agentid.pub:/private/
71
- ec fs cat alice.agentid.pub:/private/notes.md
72
- ec fs cp ./report.md alice.agentid.pub:/private/report.md
73
- ec fs cp alice.agentid.pub:/private/report.md ./report.md
74
- ec fs cp alice.agentid.pub:/private/a.md bob.agentid.pub:/inbox/a.md
75
- ec fs mkdir -p alice.agentid.pub:/private/reports/
76
- ec fs ln -s alice.agentid.pub:/private/report.md alice.agentid.pub:/public/report.md
77
- ec fs chmod +r alice.agentid.pub:/public/report.md
78
- ec fs setfacl alice.agentid.pub:/private/report.md -m aid:bob.agentid.pub:r
79
- ec fs token issue alice.agentid.pub:/public/report.md --expires 2026-12-31
80
- ec fs find alice.agentid.pub:/private/ --name "*.md"
81
- ec fs rm alice.agentid.pub:/private/report.md
82
- ec fs df alice.agentid.pub:
83
- ```
84
-
85
- 群 AID 与个人 AID 写法相同:
86
-
87
- ```bash
88
- ec fs ls g-team.agentid.pub:/archive/
89
- ec fs cp ./weekly.md g-team.agentid.pub:/archive/weekly.md
90
- ```
91
-
92
- ## 路由规则
93
-
94
- CLI 读取目标 AID 的 `agent.md`:
95
-
96
- - `type: group` 走群文件后端
97
- - 其他类型走个人 storage 后端
98
- - 读取失败时先按个人 storage 尝试,并给出警告
99
-
100
- 权限由后端判断。CLI 只携带操作者、目标 AID、路径和操作。
101
-
102
- ## 能力边界
103
-
104
- - `ln -s` 只在 personal storage 创建软链;group fs facade 暂无 symlink 接口。
105
- - `chmod` 只映射到 personal storage 的 `setVisibility`;group fs facade 暂无 chmod/setVisibility 接口。
106
- - `setfacl/getfacl/token/approve/reject` 只接 personal storage;group fs facade 暂无对应接口。
107
- - personal storage 的 `mv` 仅支持同 owner;跨 owner 请先 `cp` 再 `rm`。
108
- - personal/group 混合远程 `cp/mv` 不支持;请先下载到本地再上传。
109
-
110
- 需要底层调试时可用 `ec storage`。日常文件操作优先使用 `ec fs`。
1
+ # ec fs — AUN 文件系统
2
+
3
+ `ec fs` 是个人空间和群空间的统一文件入口。群空间也用 `ec fs`,没有 `ec group fs`。
4
+
5
+ 路径格式:
6
+
7
+ ```bash
8
+ <AID>:<absolute-path>
9
+ ```
10
+
11
+ 无 `:` 的路径是本地路径。操作者身份用 `--as <aid>`,agent 会话内通常由 `EVOLCORE_SELF_AID` 注入,可省略。
12
+
13
+ ## 已实现命令
14
+
15
+ ```bash
16
+ ec fs ls <AID>:<path> # 列目录
17
+ ec fs cat <AID>:<path> # 输出文本文件;二进制/大文件返回头部摘要
18
+ ec fs cp <local> <AID>:<path> # 上传
19
+ ec fs cp <AID>:<path> <local> # 下载
20
+ ec fs cp <AID>:<path> <AID>:<path> # 远程复制(同后端)
21
+ ec fs stat [-L] <AID>:<path> # 查看节点元数据(默认不跟随软链,-L 跟随)
22
+ ec fs lstat <AID>:<path> # 查看节点本身(不跟随末级软链)
23
+ ec fs mv <AID>:<path> <AID>:<path> # 移动/改名(同后端)
24
+ ec fs rm [-r] <AID>:<path> # 删除文件或目录
25
+ ec fs mkdir [-p] <AID>:<path> # 创建目录
26
+ ec fs ln -s <target> <AID>:<path> # 创建软链(personal storage)
27
+ ec fs chmod [mode] <AID>:<path> # 切换公开/私有(personal storage)
28
+ ec fs setfacl <AID>:<path> -m|-x ... # 设置/移除 ACL(personal storage)
29
+ ec fs getfacl <AID>:<path> # 查看 ACL(personal storage)
30
+ ec fs token issue|revoke|ls <path> # 管理访问 token(personal storage)
31
+ ec fs find <AID>:<path> [filters] # 查找节点
32
+ ec fs df <AID>: # 查看容量/配额
33
+ ec fs mount <target> --volume <id> # 挂载实体卷
34
+ ec fs mount <target> --source <src> # 挂载远程子树
35
+ ec fs approve <AID>:<path> # 批准待审挂载(personal storage)
36
+ ec fs reject <AID>:<path> # 拒绝待审挂载(personal storage)
37
+ ec fs umount <AID>:<path> # 卸载挂载点
38
+ ```
39
+
40
+ 通用选项:
41
+
42
+ - `--format json`:结构化输出
43
+ - `--as <aid>`:显式指定操作者
44
+ - `--aun-path <path>`:指定 AUN keystore 根
45
+ - `--app <name>`:指定 AUN app slot
46
+ - `--overwrite` / `--force`:`cp/mv/ln` 覆盖目标;`rm` 强制删除
47
+ - `-r` / `--recursive`:`rm/cp` 递归
48
+ - `-p` / `--parents`:`mkdir` 自动创建父目录
49
+ - `-L` / `--follow`:`stat` 跟随末级软链
50
+ - `--token <token>`:读取 personal storage 时携带访问 token
51
+ - `--content-type <mime>`:上传时指定 MIME
52
+ - `--public`:上传后公开可读(personal storage)
53
+ - `--max-bytes <n>`:`cat` 最大直接输出字节数,默认 1MB
54
+ - `--head-bytes <n>`:`cat` 二进制头部字节数,默认 256
55
+ - `--visibility public|private`:`chmod` 可见性
56
+ - `--allow-roles <roles>`:`chmod` 角色约束,逗号分隔
57
+ - `-m aid:<aid>:<perms>` / `-x aid:<aid>`:`setfacl` 增删 ACL
58
+ - `--source <AID>:<path>` / `--volume <id>`:`mount` 来源
59
+ - `--expires <time>`:`mount/token/ACL` 过期时间,Unix 秒或 ISO 日期
60
+ - `--require-approval`:挂载需要来源 owner 审批
61
+ - `--max-uses <n>`:ACL 最大使用次数
62
+ - `--max-reads <n>`:访问 token 最大读取次数
63
+ - `--readonly` / `--readwrite`:挂载为只读或读写
64
+ - `--name <glob>` / `--type <f|d|l>`:`find` 名称或类型过滤
65
+ - `--size <expr>` / `--mtime <expr>`:`find` 大小或修改时间过滤
66
+
67
+ ## 示例
68
+
69
+ ```bash
70
+ ec fs ls alice.agentid.pub:/private/
71
+ ec fs cat alice.agentid.pub:/private/notes.md
72
+ ec fs cp ./report.md alice.agentid.pub:/private/report.md
73
+ ec fs cp alice.agentid.pub:/private/report.md ./report.md
74
+ ec fs cp alice.agentid.pub:/private/a.md bob.agentid.pub:/inbox/a.md
75
+ ec fs mkdir -p alice.agentid.pub:/private/reports/
76
+ ec fs ln -s alice.agentid.pub:/private/report.md alice.agentid.pub:/public/report.md
77
+ ec fs chmod +r alice.agentid.pub:/public/report.md
78
+ ec fs setfacl alice.agentid.pub:/private/report.md -m aid:bob.agentid.pub:r
79
+ ec fs token issue alice.agentid.pub:/public/report.md --expires 2026-12-31
80
+ ec fs find alice.agentid.pub:/private/ --name "*.md"
81
+ ec fs rm alice.agentid.pub:/private/report.md
82
+ ec fs df alice.agentid.pub:
83
+ ```
84
+
85
+ 群 AID 与个人 AID 写法相同:
86
+
87
+ ```bash
88
+ ec fs ls g-team.agentid.pub:/archive/
89
+ ec fs cp ./weekly.md g-team.agentid.pub:/archive/weekly.md
90
+ ```
91
+
92
+ ## 路由规则
93
+
94
+ CLI 读取目标 AID 的 `agent.md`:
95
+
96
+ - `type: group` 走群文件后端
97
+ - 其他类型走个人 storage 后端
98
+ - 读取失败时先按个人 storage 尝试,并给出警告
99
+
100
+ 权限由后端判断。CLI 只携带操作者、目标 AID、路径和操作。
101
+
102
+ ## 能力边界
103
+
104
+ - `ln -s` 只在 personal storage 创建软链;group fs facade 暂无 symlink 接口。
105
+ - `chmod` 只映射到 personal storage 的 `setVisibility`;group fs facade 暂无 chmod/setVisibility 接口。
106
+ - `setfacl/getfacl/token/approve/reject` 只接 personal storage;group fs facade 暂无对应接口。
107
+ - personal storage 的 `mv` 仅支持同 owner;跨 owner 请先 `cp` 再 `rm`。
108
+ - personal/group 混合远程 `cp/mv` 不支持;请先下载到本地再上传。
109
+
110
+ 需要底层调试时可用 `ec storage`。日常文件操作优先使用 `ec fs`。