evolcore 0.0.1 → 0.0.2
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/CHANGELOG.md +813 -0
- package/LICENSE +21 -0
- package/MIGRATION-0.5.0.md +378 -0
- package/README.md +318 -14
- package/ROLE_ACCESS_CONTROL.md +174 -0
- package/assets/.env.template +4 -0
- package/assets/brand/evolcore/README.md +19 -0
- package/assets/brand/evolcore/evolcore-app-icon.png +0 -0
- package/assets/brand/evolcore/evolcore-app-icon.svg +13 -0
- package/assets/brand/evolcore/evolcore-brand-board.png +0 -0
- package/assets/brand/evolcore/evolcore-brand-board.svg +126 -0
- package/assets/brand/evolcore/evolcore-logo-kit.zip +0 -0
- package/assets/brand/evolcore/evolcore-logo-reverse.png +0 -0
- package/assets/brand/evolcore/evolcore-logo-reverse.svg +14 -0
- package/assets/brand/evolcore/evolcore-logo.png +0 -0
- package/assets/brand/evolcore/evolcore-logo.svg +14 -0
- package/assets/brand/evolcore/evolcore-mark.png +0 -0
- package/assets/brand/evolcore/evolcore-mark.svg +10 -0
- package/bin/ec-safe-output.js +161 -0
- package/bin/ec.js +29 -0
- package/dist/agents/baseagent.js +163 -0
- package/dist/agents/claude-runner.js +2385 -0
- package/dist/agents/codex-app-server-client.js +448 -0
- package/dist/agents/codex-runner.js +2639 -0
- package/dist/agents/gemini-runner.js +666 -0
- package/dist/agents/runner-types.js +75 -0
- package/dist/aun/aid/agentmd.js +216 -0
- package/dist/aun/aid/client.js +132 -0
- package/dist/aun/aid/control-aid.js +91 -0
- package/dist/aun/aid/identity.js +518 -0
- package/dist/aun/aid/index.js +4 -0
- package/dist/aun/aid/store.js +74 -0
- package/dist/aun/aid/types.js +1 -0
- package/dist/aun/aid/validation.js +21 -0
- package/dist/aun/group-identity.js +10 -0
- package/dist/aun/msg/group-index.js +6 -0
- package/dist/aun/msg/group.js +1231 -0
- package/dist/aun/msg/history.js +123 -0
- package/dist/aun/msg/index.js +5 -0
- package/dist/aun/msg/p2p.js +393 -0
- package/dist/aun/msg/payload-type.js +27 -0
- package/dist/aun/msg/upload.js +137 -0
- package/dist/aun/outbox.js +160 -0
- package/dist/aun/rpc/caller.js +42 -0
- package/dist/aun/rpc/connection.js +25 -0
- package/dist/aun/rpc/index.js +2 -0
- package/dist/aun/service-proxy.js +225 -0
- package/dist/aun/storage/download.js +29 -0
- package/dist/aun/storage/index.js +3 -0
- package/dist/aun/storage/manage.js +10 -0
- package/dist/aun/storage/upload.js +68 -0
- package/dist/channels/aun.js +4147 -0
- package/dist/channels/daemon.js +422 -0
- package/dist/channels/dingtalk.js +649 -0
- package/dist/channels/feishu.js +1789 -0
- package/dist/channels/qqbot.js +409 -0
- package/dist/channels/wechat.js +817 -0
- package/dist/channels/wecom.js +565 -0
- package/dist/cli/agent-command.js +641 -0
- package/dist/cli/agent.js +1059 -0
- package/dist/cli/aun-commands.js +1948 -0
- package/dist/cli/bench.js +1228 -0
- package/dist/cli/cli-argv.js +66 -0
- package/dist/cli/code-stats.js +329 -0
- package/dist/cli/command-log.js +82 -0
- package/dist/cli/config-selector.js +69 -0
- package/dist/cli/config.js +261 -0
- package/dist/cli/ctl-command.js +62 -0
- package/dist/cli/daemon-commands.js +2887 -0
- package/dist/cli/fs-command.js +1447 -0
- package/dist/cli/handoff-command.js +302 -0
- package/dist/cli/help.js +31 -0
- package/dist/cli/index.js +358 -0
- package/dist/cli/init-channel.js +1377 -0
- package/dist/cli/init.js +553 -0
- package/dist/cli/link-rules.js +240 -0
- package/dist/cli/model.js +590 -0
- package/dist/cli/net-check.js +723 -0
- package/dist/cli/queue-command.js +126 -0
- package/dist/cli/response.js +345 -0
- package/dist/cli/restart-monitor.js +456 -0
- package/dist/cli/stats.js +607 -0
- package/dist/cli/task-context.js +80 -0
- package/dist/cli/trigger-command.js +505 -0
- package/dist/cli/version.js +88 -0
- package/dist/cli/watch-logs.js +33 -0
- package/dist/cli/watch-msg.js +673 -0
- package/dist/config/boot-log.js +266 -0
- package/dist/config/builtin-role-templates.js +30 -0
- package/dist/config/builtin-roles.js +85 -0
- package/dist/config/config-batch-get.js +11 -0
- package/dist/config/config-field-policy.js +261 -0
- package/dist/config/config-manager.js +916 -0
- package/dist/config/config-operation-service.js +384 -0
- package/dist/config/contact-book.js +371 -0
- package/dist/config/gateway-config.js +858 -0
- package/dist/config/lifecycle.js +17 -0
- package/dist/config/mention-mode.js +27 -0
- package/dist/config/merge.js +161 -0
- package/dist/config/owner-policy.js +4 -0
- package/dist/config/peer-role-resolver.js +139 -0
- package/dist/config/resolved-config-op.js +483 -0
- package/dist/config/role-config-v4-startup.js +32 -0
- package/dist/config/role-config-v5-startup.js +27 -0
- package/dist/config/role-schema.js +105 -0
- package/dist/config/role-service.js +159 -0
- package/dist/config/role-store.js +204 -0
- package/dist/config/roles.js +55 -0
- package/dist/config/schema-registry.js +154 -0
- package/dist/config/snapshot.js +598 -0
- package/dist/config-store.js +503 -0
- package/dist/core/auth/agent-delegation.js +111 -0
- package/dist/core/auth/auth-gateway.js +166 -0
- package/dist/core/auth/authenticated-actor.js +6 -0
- package/dist/core/auth/authorization-audit.js +110 -0
- package/dist/core/auth/operation-authorizer.js +718 -0
- package/dist/core/auth/operation-catalog.js +675 -0
- package/dist/core/baseagent-loader.js +54 -0
- package/dist/core/bootstrap-service.js +175 -0
- package/dist/core/capability/capability-manager.js +316 -0
- package/dist/core/capability/providers/claude-capability-provider.js +176 -0
- package/dist/core/capability/providers/codex-capability-provider.js +148 -0
- package/dist/core/capability/providers/gemini-capability-provider.js +10 -0
- package/dist/core/capability/types.js +27 -0
- package/dist/core/causation/audit.js +103 -0
- package/dist/core/causation/aun-association.js +111 -0
- package/dist/core/causation/context.js +93 -0
- package/dist/core/causation/index.js +4 -0
- package/dist/core/causation/types.js +2 -0
- package/dist/core/channel-loader.js +277 -0
- package/dist/core/command/agent-control.js +616 -0
- package/dist/core/command/cli-intent-parser.js +225 -0
- package/dist/core/command/command-handler.js +1638 -0
- package/dist/core/command/menu-handler.js +3354 -0
- package/dist/core/command/menu-protocol.js +247 -0
- package/dist/core/command/role-menu.js +1524 -0
- package/dist/core/command/slash-gate.js +148 -0
- package/dist/core/command/slash-handler.js +3056 -0
- package/dist/core/daemon-file-cache.js +216 -0
- package/dist/core/event-bus.js +32 -0
- package/dist/core/event-catalog.js +740 -0
- package/dist/core/evolagent-registry.js +546 -0
- package/dist/core/evolagent.js +331 -0
- package/dist/core/handoff/dispatcher.js +229 -0
- package/dist/core/handoff/mutex.js +46 -0
- package/dist/core/handoff/runtime.js +324 -0
- package/dist/core/handoff/store.js +537 -0
- package/dist/core/handoff/types.js +12 -0
- package/dist/core/inference/text-inference.js +173 -0
- package/dist/core/interaction-registration.js +10 -0
- package/dist/core/interaction-router.js +278 -0
- package/dist/core/message/create-status.js +67 -0
- package/dist/core/message/im-renderer.js +657 -0
- package/dist/core/message/items-formatter.js +76 -0
- package/dist/core/message/logical-queue-bridge.js +123 -0
- package/dist/core/message/message-bridge.js +803 -0
- package/dist/core/message/message-cache.js +56 -0
- package/dist/core/message/message-log.js +339 -0
- package/dist/core/message/message-processor.js +4 -0
- package/dist/core/message/message-queue.js +1436 -0
- package/dist/core/message/message-utils.js +70 -0
- package/dist/core/message/peer-mode.js +105 -0
- package/dist/core/message/pending-hints.js +232 -0
- package/dist/core/message/response-depth.js +33 -0
- package/dist/core/message/response-engine.js +3776 -0
- package/dist/core/message/response-snapshot.js +83 -0
- package/dist/core/message/stream-debouncer.js +130 -0
- package/dist/core/message/stream-idle-monitor.js +124 -0
- package/dist/core/model/config-scope.js +162 -0
- package/dist/core/model/field-scope.js +78 -0
- package/dist/core/model/model-catalog.js +227 -0
- package/dist/core/model/model-diagnostics.js +182 -0
- package/dist/core/model/model-permission.js +90 -0
- package/dist/core/permission/approval-gateway.js +1017 -0
- package/dist/core/permission/ec-command-parser.js +347 -0
- package/dist/core/permission/execution-sandbox.js +16 -0
- package/dist/core/permission/index.js +6 -0
- package/dist/core/permission/mode.js +24 -0
- package/dist/core/permission/sandbox-runtime.js +265 -0
- package/dist/core/permission/tool-policy.js +987 -0
- package/dist/core/permission/unix-socket-policy.js +99 -0
- package/dist/core/protected-paths.js +330 -0
- package/dist/core/relation/peer-identity.js +222 -0
- package/dist/core/relation/peer-key.js +1 -0
- package/dist/core/role/runtime-policy.js +141 -0
- package/dist/core/session/adapters/claude-session-file-adapter.js +218 -0
- package/dist/core/session/adapters/codex-session-file-adapter.js +333 -0
- package/dist/core/session/adapters/gemini-session-file-adapter.js +181 -0
- package/dist/core/session/session-file-adapter.js +7 -0
- package/dist/core/session/session-file-health.js +45 -0
- package/dist/core/session/session-fs-store.js +232 -0
- package/dist/core/session/session-key.js +24 -0
- package/dist/core/session/session-manager.js +1587 -0
- package/dist/core/session/session-mapper.js +100 -0
- package/dist/core/session/session-renew.js +314 -0
- package/dist/core/session/session-title.js +128 -0
- package/dist/core/session/session-turn-coordinator.js +205 -0
- package/dist/core/session/session-turns.js +67 -0
- package/dist/core/system-channels.js +29 -0
- package/dist/eck/baseagent-caps.js +18 -0
- package/dist/eck/detect.js +47 -0
- package/dist/eck/group-rules-sync.js +345 -0
- package/dist/eck/init.js +77 -0
- package/dist/eck/kit-renderer.js +359 -0
- package/dist/eck/manifest-engine.js +446 -0
- package/dist/eck/message-renderer.js +199 -0
- package/dist/eck/rules-loader.js +28 -0
- package/dist/index.js +2870 -4
- package/dist/ipc.js +748 -0
- package/dist/paths.js +262 -0
- package/dist/product.js +18 -0
- package/dist/response-system/context-builder.js +71 -0
- package/dist/response-system/coordinator.js +117 -0
- package/dist/response-system/decision-executor.js +86 -0
- package/dist/response-system/engines/v1/index.js +21 -0
- package/dist/response-system/engines/v1/interactive-flow.js +27 -0
- package/dist/response-system/engines/v1/proactive-flow.js +137 -0
- package/dist/response-system/engines/v1/types.js +1 -0
- package/dist/response-system/extensions.js +41 -0
- package/dist/response-system/index.js +6 -0
- package/dist/response-system/modes/index.js +7 -0
- package/dist/response-system/modes/single-session/index.js +72 -0
- package/dist/response-system/queues/fifo-queue.js +44 -0
- package/dist/response-system/queues/index.js +6 -0
- package/dist/response-system/queues/lifo-queue.js +42 -0
- package/dist/response-system/queues/priority-queue.js +63 -0
- package/dist/response-system/registry.js +97 -0
- package/dist/response-system/resolver.js +37 -0
- package/dist/response-system/selector.js +23 -0
- package/dist/response-system/types.js +7 -0
- package/dist/stats/billing.js +151 -0
- package/dist/stats/budget.js +93 -0
- package/dist/stats/db.js +403 -0
- package/dist/stats/eck-vars.js +89 -0
- package/dist/stats/index.js +11 -0
- package/dist/stats/normalizer.js +80 -0
- package/dist/stats/price-resolver.js +138 -0
- package/dist/stats/query.js +763 -0
- package/dist/stats/role-budget.js +168 -0
- package/dist/stats/writer.js +151 -0
- package/dist/trigger/anomaly-store.js +258 -0
- package/dist/trigger/audit.js +152 -0
- package/dist/trigger/event-source.js +119 -0
- package/dist/trigger/feedback.js +685 -0
- package/dist/trigger/history.js +290 -0
- package/dist/trigger/manager.js +291 -0
- package/dist/trigger/parser.js +520 -0
- package/dist/trigger/patch.js +148 -0
- package/dist/trigger/scheduler.js +1600 -0
- package/dist/trigger/script-executor.js +155 -0
- package/dist/trigger/state.js +145 -0
- package/dist/trigger/types.js +1 -0
- package/dist/trigger/validation.js +621 -0
- package/dist/types.js +12 -0
- package/dist/utils/aid-bind.js +299 -0
- package/dist/utils/atomic-write.js +95 -0
- package/dist/utils/avatar-upload.js +123 -0
- package/dist/utils/cross-platform.js +297 -0
- package/dist/utils/ecweb-utils.js +73 -0
- package/dist/utils/error-dict.json +153 -0
- package/dist/utils/error-utils.js +349 -0
- package/dist/utils/instance-registry.js +437 -0
- package/dist/utils/locale.js +21 -0
- package/dist/utils/log-writer.js +224 -0
- package/dist/utils/logger.js +89 -0
- package/dist/utils/markdown-to-plain-text.js +20 -0
- package/dist/utils/media-cache.js +271 -0
- package/dist/utils/model-prices.jsonl +17 -0
- package/dist/utils/npm-ops.js +210 -0
- package/dist/utils/process-introspect.js +133 -0
- package/dist/utils/process-tree-stats.js +271 -0
- package/dist/utils/project-path.js +74 -0
- package/dist/utils/stats.js +410 -0
- package/dist/utils/tool-summary.js +284 -0
- package/dist/utils/welcome.js +268 -0
- package/kits/docs/GUIDE.md +20 -0
- package/kits/docs/INDEX.md +65 -0
- package/kits/docs/aun/CHEATSHEET.md +19 -0
- package/kits/docs/aun/SYNC_PROTOCOL.md +15 -0
- package/kits/docs/channels/aun.md +65 -0
- package/kits/docs/channels/feishu.md +56 -0
- package/kits/docs/context-assembly.md +366 -0
- package/kits/docs/eck_templates/GUIDE.template.md +22 -0
- package/kits/docs/eck_templates/INDEX.template.md +28 -0
- package/kits/docs/eck_templates/path-registry.template.md +33 -0
- package/kits/docs/eck_templates/runtime.template.md +19 -0
- package/kits/docs/evolcore/INDEX.md +66 -0
- package/kits/docs/evolcore/agent.md +69 -0
- package/kits/docs/evolcore/aid.md +49 -0
- package/kits/docs/evolcore/config.md +149 -0
- package/kits/docs/evolcore/ctl.md +46 -0
- package/kits/docs/evolcore/event.md +216 -0
- package/kits/docs/evolcore/fs-architecture.md +1215 -0
- package/kits/docs/evolcore/fs.md +101 -0
- package/kits/docs/evolcore/group-fs.md +17 -0
- package/kits/docs/evolcore/group-rules.md +226 -0
- package/kits/docs/evolcore/group.md +141 -0
- package/kits/docs/evolcore/model.md +47 -0
- package/kits/docs/evolcore/msg.md +130 -0
- package/kits/docs/evolcore/response.md +80 -0
- package/kits/docs/evolcore/rpc.md +35 -0
- package/kits/docs/evolcore/self-summary.md +29 -0
- package/kits/docs/evolcore/stats.md +70 -0
- package/kits/docs/evolcore/storage.md +49 -0
- package/kits/docs/evolcore/trigger.md +524 -0
- package/kits/docs/identity/AID_PROFILE_SPEC.md +26 -0
- package/kits/docs/identity/PATH_OPS.md +16 -0
- package/kits/docs/identity/ROLE_DETAIL.md +23 -0
- package/kits/docs/identity/identity-tools.md +26 -0
- package/kits/docs/path-registry.md +43 -0
- package/kits/docs/prompt-loading-architecture.md +266 -0
- package/kits/docs/venues/aun-group.md +45 -0
- package/kits/docs/venues/aun-private.md +10 -0
- package/kits/docs/venues/client-desktop.md +10 -0
- package/kits/docs/venues/client-mobile.md +10 -0
- package/kits/docs/venues/feishu-group.md +13 -0
- package/kits/docs/venues/feishu-private.md +9 -0
- package/kits/docs/venues/group.md +25 -0
- package/kits/docs/venues/private.md +10 -0
- package/kits/eck_manifest.auxiliary.json +43 -0
- package/kits/eck_manifest.json +191 -0
- package/kits/eck_message_manifest.json +63 -0
- package/kits/migrations/README-role-config-v4.md +32 -0
- package/kits/migrations/migrate-role-config-v4.mjs +623 -0
- package/kits/migrations/migrate-role-config-v5.mjs +346 -0
- package/kits/migrations/rename-config-file.mjs +99 -0
- package/kits/rules/01-overview.md +142 -0
- package/kits/rules/02-navigation.md +76 -0
- package/kits/rules/03-identity.md +34 -0
- package/kits/rules/04-relation.md +59 -0
- package/kits/rules/05-venue.md +44 -0
- package/kits/rules/06-channel.md +59 -0
- package/kits/schemas/_meta.json +29 -0
- package/kits/schemas/agent-config.schema.1.json +177 -0
- package/kits/schemas/agent-config.schema.2.json +239 -0
- package/kits/schemas/agent-config.schema.3.json +119 -0
- package/kits/schemas/agent-config.schema.4.json +208 -0
- package/kits/schemas/agent-config.schema.5.json +326 -0
- package/kits/schemas/contact-book.schema.1.json +36 -0
- package/kits/schemas/daemon.schema.1.json +90 -0
- package/kits/schemas/defaults.schema.1.json +81 -0
- package/kits/schemas/menu-exec-schema-commands.md +208 -0
- package/kits/schemas/migrations/README.md +28 -0
- package/kits/schemas/relation-config.schema.1.json +158 -0
- package/kits/schemas/relation-config.schema.2.json +73 -0
- package/kits/schemas/relation-config.schema.3.json +50 -0
- package/kits/schemas/relation-config.schema.4.json +47 -0
- package/kits/schemas/role-config.schema.1.json +200 -0
- package/kits/schemas/role-registry.schema.1.json +35 -0
- package/kits/schemas/single-session.schema.1.json +31 -0
- package/kits/templates/bootstrap-welcome.md +15 -0
- package/kits/templates/message-fragments/handoff-request-to-target.md +13 -0
- package/kits/templates/message-fragments/handoff-response-to-origin.md +10 -0
- package/kits/templates/message-fragments/inject-default.md +2 -0
- package/kits/templates/message-fragments/item.md +2 -0
- package/kits/templates/roles/admin.json +8 -0
- package/kits/templates/roles/member.json +40 -0
- package/kits/templates/roles/owner.json +8 -0
- package/kits/templates/roles/visitor.json +39 -0
- package/kits/templates/system-fragments/baseagent.md +14 -0
- package/kits/templates/system-fragments/bootstrap.md +16 -0
- package/kits/templates/system-fragments/channel.md +48 -0
- package/kits/templates/system-fragments/commands.md +26 -0
- package/kits/templates/system-fragments/identity.md +11 -0
- package/kits/templates/system-fragments/relation.md +19 -0
- package/kits/templates/system-fragments/session.md +53 -0
- package/kits/templates/system-fragments/venue.md +31 -0
- package/package.json +50 -15
- package/dist/index.d.ts +0 -7
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js.map +0 -1
|
@@ -0,0 +1,101 @@
|
|
|
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
|
+
- `--overwrite` / `--force`:`cp/mv/ln` 覆盖目标;`rm` 强制删除
|
|
45
|
+
- `-r` / `--recursive`:`rm/cp` 递归
|
|
46
|
+
- `-p` / `--parents`:`mkdir` 自动创建父目录
|
|
47
|
+
- `-L` / `--follow`:`stat` 跟随末级软链
|
|
48
|
+
- `--token <token>`:读取 personal storage 时携带访问 token
|
|
49
|
+
- `--content-type <mime>`:上传时指定 MIME
|
|
50
|
+
- `--max-bytes <n>`:`cat` 最大直接输出字节数,默认 1MB
|
|
51
|
+
- `--head-bytes <n>`:`cat` 二进制头部字节数,默认 256
|
|
52
|
+
- `--visibility public|private`:`chmod` 可见性
|
|
53
|
+
- `--allow-roles <roles>`:`chmod` 角色约束,逗号分隔
|
|
54
|
+
- `-m aid:<aid>:<perms>` / `-x aid:<aid>`:`setfacl` 增删 ACL
|
|
55
|
+
- `--source <AID>:<path>` / `--volume <id>`:`mount` 来源
|
|
56
|
+
- `--expires <time>`:`mount/token/ACL` 过期时间,Unix 秒或 ISO 日期
|
|
57
|
+
|
|
58
|
+
## 示例
|
|
59
|
+
|
|
60
|
+
```bash
|
|
61
|
+
ec fs ls alice.agentid.pub:/private/
|
|
62
|
+
ec fs cat alice.agentid.pub:/private/notes.md
|
|
63
|
+
ec fs cp ./report.md alice.agentid.pub:/private/report.md
|
|
64
|
+
ec fs cp alice.agentid.pub:/private/report.md ./report.md
|
|
65
|
+
ec fs cp alice.agentid.pub:/private/a.md bob.agentid.pub:/inbox/a.md
|
|
66
|
+
ec fs mkdir -p alice.agentid.pub:/private/reports/
|
|
67
|
+
ec fs ln -s alice.agentid.pub:/private/report.md alice.agentid.pub:/public/report.md
|
|
68
|
+
ec fs chmod +r alice.agentid.pub:/public/report.md
|
|
69
|
+
ec fs setfacl alice.agentid.pub:/private/report.md -m aid:bob.agentid.pub:r
|
|
70
|
+
ec fs token issue alice.agentid.pub:/public/report.md --expires 2026-12-31
|
|
71
|
+
ec fs find alice.agentid.pub:/private/ --name "*.md"
|
|
72
|
+
ec fs rm alice.agentid.pub:/private/report.md
|
|
73
|
+
ec fs df alice.agentid.pub:
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
群 AID 与个人 AID 写法相同:
|
|
77
|
+
|
|
78
|
+
```bash
|
|
79
|
+
ec fs ls g-team.agentid.pub:/archive/
|
|
80
|
+
ec fs cp ./weekly.md g-team.agentid.pub:/archive/weekly.md
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
## 路由规则
|
|
84
|
+
|
|
85
|
+
CLI 读取目标 AID 的 `agent.md`:
|
|
86
|
+
|
|
87
|
+
- `type: group` 走群文件后端
|
|
88
|
+
- 其他类型走个人 storage 后端
|
|
89
|
+
- 读取失败时先按个人 storage 尝试,并给出警告
|
|
90
|
+
|
|
91
|
+
权限由后端判断。CLI 只携带操作者、目标 AID、路径和操作。
|
|
92
|
+
|
|
93
|
+
## 能力边界
|
|
94
|
+
|
|
95
|
+
- `ln -s` 只在 personal storage 创建软链;group fs facade 暂无 symlink 接口。
|
|
96
|
+
- `chmod` 只映射到 personal storage 的 `setVisibility`;group fs facade 暂无 chmod/setVisibility 接口。
|
|
97
|
+
- `setfacl/getfacl/token/approve/reject` 只接 personal storage;group fs facade 暂无对应接口。
|
|
98
|
+
- personal storage 的 `mv` 仅支持同 owner;跨 owner 请先 `cp` 再 `rm`。
|
|
99
|
+
- personal/group 混合远程 `cp/mv` 不支持;请先下载到本地再上传。
|
|
100
|
+
|
|
101
|
+
需要底层调试时可用 `ec storage`。日常文件操作优先使用 `ec fs`。
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
# ec group fs 已废弃
|
|
2
|
+
|
|
3
|
+
群文件空间统一使用 `ec fs`,不再提供 `ec group fs` 入口。
|
|
4
|
+
|
|
5
|
+
迁移:
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
ec group fs ls <group-aid> /path
|
|
9
|
+
# 改为
|
|
10
|
+
ec fs ls <group-aid>:/path
|
|
11
|
+
|
|
12
|
+
ec group fs cp ./file <group-aid>:/path/file
|
|
13
|
+
# 改为
|
|
14
|
+
ec fs cp ./file <group-aid>:/path/file
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
当前可用能力以 `fs.md` 为准。群空间通过统一 `ec fs` 入口支持 `ls`、`stat`、`lstat`、`cat`、`cp`、`mv`、`rm`、`mkdir`、`find`、`df`、`mount`、`umount`;group facade 暂无接口的 `ln`、`chmod`、`setfacl`、`getfacl`、`token`、`approve`、`reject` 不在群 AID 上承诺可用。
|
|
@@ -0,0 +1,226 @@
|
|
|
1
|
+
# ec group rules — 群规则文件
|
|
2
|
+
|
|
3
|
+
管理 AUN 群空间中的 `/rules.md`。群规则文件用于定义本群特有的工作流程、职责分工、交付格式、限制条件和升级路径;发布后,EvolCore 会在该群的对话上下文中自动加载。
|
|
4
|
+
|
|
5
|
+
以自己的 AID 为操作者 `<from>`,群 AID 为 `<group-id>`。
|
|
6
|
+
|
|
7
|
+
## 与入群规则的区别
|
|
8
|
+
|
|
9
|
+
`ec group rules` 同时承载两类不同能力:
|
|
10
|
+
|
|
11
|
+
| 能力 | 命令 | 用途 |
|
|
12
|
+
|------|------|------|
|
|
13
|
+
| 群规则文件 | `get/set/publish` | 管理注入上下文的群空间 `/rules.md` |
|
|
14
|
+
| 入群规则 | 无动作或 `--mode` 等选项 | 管理 open、approval、invite_only、closed 等加入策略 |
|
|
15
|
+
|
|
16
|
+
本文只说明群规则文件。入群规则的用法见 `group.md`。
|
|
17
|
+
|
|
18
|
+
## 常用命令
|
|
19
|
+
|
|
20
|
+
```bash
|
|
21
|
+
# 查看当前已发布且有效的群规则
|
|
22
|
+
ec group rules <from> <group-id> get
|
|
23
|
+
|
|
24
|
+
# 上传本地文件到 /rules.md 并立即发布
|
|
25
|
+
ec group rules <from> <group-id> set <file>
|
|
26
|
+
|
|
27
|
+
# 发布群空间中当前已有的 /rules.md
|
|
28
|
+
ec group rules <from> <group-id> publish
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
所有命令均支持 `--format json`。
|
|
32
|
+
|
|
33
|
+
## 推荐流程
|
|
34
|
+
|
|
35
|
+
日常更新直接使用 `set`:
|
|
36
|
+
|
|
37
|
+
```bash
|
|
38
|
+
ec group rules admin.agentid.pub g-team.agentid.pub set ./rules.md
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
成功后会依次完成:
|
|
42
|
+
|
|
43
|
+
1. 检查本地文件是普通文件、有效 UTF-8,且不超过 4KB。
|
|
44
|
+
2. 原样上传到 `<group-id>:/rules.md`。
|
|
45
|
+
3. 读取远端文件的 `size + mtimeMs`。
|
|
46
|
+
4. 更新 signed `rules.content`,使该文件版本成为当前有效群规则。
|
|
47
|
+
5. 再次检查远端 `size + mtimeMs`,防止发布期间文件被并发覆盖。
|
|
48
|
+
6. 由发布者发送 `group.rules.updated` 群通知。
|
|
49
|
+
|
|
50
|
+
命令不会规范化换行或重写正文。
|
|
51
|
+
|
|
52
|
+
## 分步上传与发布
|
|
53
|
+
|
|
54
|
+
也可以先用底层文件命令修改 `/rules.md`:
|
|
55
|
+
|
|
56
|
+
```bash
|
|
57
|
+
ec fs cp ./rules.md g-team.agentid.pub:/rules.md --overwrite
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
`ec fs cp` 只更新文件,不会将它自动发布为有效群规则。命令会提示继续执行:
|
|
61
|
+
|
|
62
|
+
```bash
|
|
63
|
+
ec group rules <from> g-team.agentid.pub publish
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
在 `publish` 成功前,签名元信息仍指向旧版本。此时 `get` 和运行时加载会返回 `file_mismatch`,不会注入新文件,也不会使用本地残留规则。
|
|
67
|
+
|
|
68
|
+
不要用 `ec fs mv`、`cp` 或其它低层文件操作代替 `publish`。
|
|
69
|
+
|
|
70
|
+
## 查看规则
|
|
71
|
+
|
|
72
|
+
```bash
|
|
73
|
+
ec group rules bot.agentid.pub g-team.agentid.pub get
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
普通输出在校验通过后直接打印 Markdown 正文。需要查看状态和元信息时使用:
|
|
77
|
+
|
|
78
|
+
```bash
|
|
79
|
+
ec group rules bot.agentid.pub g-team.agentid.pub get --format json
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
示例:
|
|
83
|
+
|
|
84
|
+
```json
|
|
85
|
+
{
|
|
86
|
+
"ok": true,
|
|
87
|
+
"group_id": "g-team.agentid.pub",
|
|
88
|
+
"status": "ok",
|
|
89
|
+
"path": "/rules.md",
|
|
90
|
+
"metadata": {
|
|
91
|
+
"path": "/rules.md",
|
|
92
|
+
"size": 1024,
|
|
93
|
+
"mtimeMs": 1780000000000
|
|
94
|
+
},
|
|
95
|
+
"content": "# 群规则\n..."
|
|
96
|
+
}
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
`get` 不是简单执行 `ec fs cat`。它会先验证 signed `rules.content`,再确认远端 `/rules.md` 的 `size + mtimeMs` 与已发布元信息一致。
|
|
100
|
+
|
|
101
|
+
## 规则文件建议
|
|
102
|
+
|
|
103
|
+
`/rules.md` 是入口规则文档,不是群知识库。文件上限为 4KB,建议只写需要稳定注入每轮上下文的内容:
|
|
104
|
+
|
|
105
|
+
```markdown
|
|
106
|
+
# 群规则
|
|
107
|
+
|
|
108
|
+
## 工作流程
|
|
109
|
+
- 需求先明确负责人、截止时间和验收条件。
|
|
110
|
+
- 涉及生产变更时必须先给出回滚方案。
|
|
111
|
+
|
|
112
|
+
## 职责分工
|
|
113
|
+
- owner:最终决策与权限管理。
|
|
114
|
+
- reviewer:检查风险、测试和兼容性。
|
|
115
|
+
- executor:实现、验证并报告结果。
|
|
116
|
+
|
|
117
|
+
## 交付要求
|
|
118
|
+
- 结论先行,附关键证据。
|
|
119
|
+
- 未完成验证时必须明确说明。
|
|
120
|
+
|
|
121
|
+
## 升级路径
|
|
122
|
+
- 权限不足或规则冲突时 @owner。
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
较大的规范、资料和附件应存放在群空间其它路径,需要时用 `ec fs ls/find/stat/cat` 查询,不要全部塞进 `/rules.md`。
|
|
126
|
+
|
|
127
|
+
## 发布权限
|
|
128
|
+
|
|
129
|
+
发布涉及两层权限:
|
|
130
|
+
|
|
131
|
+
- 群文件权限:允许覆盖 `<group-id>:/rules.md`。
|
|
132
|
+
- 群索引权限:允许通过 `updateRules` 更新当前有效版本。
|
|
133
|
+
|
|
134
|
+
通常应由 owner/admin 写入和发布,普通成员只读。某人即使能覆盖文件,但不能更新群索引,该次修改也不会成为有效群规则,并会导致 `file_mismatch`。
|
|
135
|
+
|
|
136
|
+
## 更新通知
|
|
137
|
+
|
|
138
|
+
只有成功执行 `set` 或 `publish` 的发布者发送通知。读取方发现更新、自动同步或收到通知后刷新规则时,不会再次广播。
|
|
139
|
+
|
|
140
|
+
通知 payload:
|
|
141
|
+
|
|
142
|
+
```json
|
|
143
|
+
{
|
|
144
|
+
"type": "notice",
|
|
145
|
+
"subtype": "group.rules.updated",
|
|
146
|
+
"text": "群规则已发布:g-team.agentid.pub:/rules.md\n操作者:admin.agentid.pub",
|
|
147
|
+
"actor_aid": "admin.agentid.pub",
|
|
148
|
+
"group_id": "g-team.agentid.pub",
|
|
149
|
+
"path": "/rules.md",
|
|
150
|
+
"group_index_etag": "\"sha256:...\"",
|
|
151
|
+
"size": 1024,
|
|
152
|
+
"mtimeMs": 1780000000000
|
|
153
|
+
}
|
|
154
|
+
```
|
|
155
|
+
|
|
156
|
+
通知只是刷新提示。接收方仍以 signed `rules.content` 和远端文件校验结果为准。
|
|
157
|
+
|
|
158
|
+
## 状态说明
|
|
159
|
+
|
|
160
|
+
| status | 含义 | 是否加载 |
|
|
161
|
+
|--------|------|----------|
|
|
162
|
+
| `ok` | `get/set/publish` 校验或发布成功 | 是 |
|
|
163
|
+
| `synced` | 运行时已刷新并物化本地规则 | 是 |
|
|
164
|
+
| `cached` | 本地物化文件仍与已发布元信息一致 | 是 |
|
|
165
|
+
| `missing` | 未发布规则,或 `/rules.md` 不存在 | 否 |
|
|
166
|
+
| `forbidden` | 当前身份无读取或发布权限 | 否 |
|
|
167
|
+
| `invalid_metadata` | signed `rules.content` 格式或签名无效 | 否 |
|
|
168
|
+
| `file_mismatch` | `/rules.md` 与当前已发布元信息不一致 | 否 |
|
|
169
|
+
| `too_large` | 文件超过 4KB | 否 |
|
|
170
|
+
| `unreadable` | 文件、编码、网络或远端服务暂时不可读 | 否 |
|
|
171
|
+
| `error` | 其它错误 | 否 |
|
|
172
|
+
|
|
173
|
+
## 本地物化与上下文加载
|
|
174
|
+
|
|
175
|
+
远端权威文件固定为:
|
|
176
|
+
|
|
177
|
+
```text
|
|
178
|
+
<group-id>:/rules.md
|
|
179
|
+
```
|
|
180
|
+
|
|
181
|
+
校验成功后,本地物化为:
|
|
182
|
+
|
|
183
|
+
```text
|
|
184
|
+
$VENUES_DIR/<channel>#<urlEncode(groupId)>/rules.md
|
|
185
|
+
```
|
|
186
|
+
|
|
187
|
+
AUN 示例:
|
|
188
|
+
|
|
189
|
+
```text
|
|
190
|
+
$AGENT_DIR/venues/aun#g-team.agentid.pub/rules.md
|
|
191
|
+
```
|
|
192
|
+
|
|
193
|
+
该本地文件属于群环境层,而不是关系层。它只是远端规则的物化副本,不应直接编辑。只有当前处理轮次验证通过并设置 `groupRulesPath` 时,ECK manifest 才会把它注入 system context。
|
|
194
|
+
|
|
195
|
+
## 排障
|
|
196
|
+
|
|
197
|
+
### `set` 提示文件过大或编码无效
|
|
198
|
+
|
|
199
|
+
将入口规则压缩到 4KB 以内,并保存为 UTF-8 Markdown。详细资料移到群空间其它文件。
|
|
200
|
+
|
|
201
|
+
### `get` 返回 `file_mismatch`
|
|
202
|
+
|
|
203
|
+
有人通过 `ec fs` 或其它低层入口修改了 `/rules.md`,但尚未发布。由有权限的发布者执行:
|
|
204
|
+
|
|
205
|
+
```bash
|
|
206
|
+
ec group rules <from> <group-id> publish
|
|
207
|
+
```
|
|
208
|
+
|
|
209
|
+
### 收到通知但规则没有加载
|
|
210
|
+
|
|
211
|
+
通知不代表文件一定有效。检查:
|
|
212
|
+
|
|
213
|
+
```bash
|
|
214
|
+
ec group rules <from> <group-id> get --format json
|
|
215
|
+
ec fs stat <group-id>:/rules.md --format json
|
|
216
|
+
```
|
|
217
|
+
|
|
218
|
+
重点查看 `status`、已发布 `metadata` 和远端 `size/mtimeMs` 是否一致。
|
|
219
|
+
|
|
220
|
+
### 只想查看远端原始文件
|
|
221
|
+
|
|
222
|
+
```bash
|
|
223
|
+
ec fs cat <group-id>:/rules.md
|
|
224
|
+
```
|
|
225
|
+
|
|
226
|
+
这只能查看当前文件内容,不能证明它是当前已签名发布的有效版本。判断有效性仍应使用 `ec group rules ... get`。
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
# ec group — 群聊消息与群管理
|
|
2
|
+
|
|
3
|
+
群聊场景下收发消息、管理群与成员。触发词:群发/建群/邀请/踢人/退群/群成员。
|
|
4
|
+
|
|
5
|
+
以自己的 AID 为发送者(`<from>`),群 AID 为 `<group-id>`。
|
|
6
|
+
|
|
7
|
+
本命令覆盖常用消息、基础生命周期、成员操作、角色/群主管理、封禁、暂停/恢复和群规则。生产环境 agent 优先使用本页列出的 `ec group` 命令。
|
|
8
|
+
|
|
9
|
+
## 消息
|
|
10
|
+
|
|
11
|
+
```bash
|
|
12
|
+
# 文本(含空格/换行/特殊字符时用引号包起来;纯短词可不包,但多空格会被压成一个)
|
|
13
|
+
ec group send <from> <group-id> "<text>" [--encrypt]
|
|
14
|
+
|
|
15
|
+
# 文件(--as image|video|voice|file)
|
|
16
|
+
ec group send <from> <group-id> --file <path> [--as <type>] [--text "<说明>"]
|
|
17
|
+
|
|
18
|
+
# 自定义 payload
|
|
19
|
+
ec group send <from> <group-id> --payload '<json>'
|
|
20
|
+
|
|
21
|
+
# 拉取群消息(建议带 --app 独立消费通道,避免影响 daemon)
|
|
22
|
+
ec group pull <from> <group-id> [--after-seq <N>] [--limit <N>] [--app <name>]
|
|
23
|
+
|
|
24
|
+
# 确认已读(推进消费游标;同样建议带 --app)
|
|
25
|
+
ec group ack <from> <group-id> <seq> [--app <name>]
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
@ 成员:
|
|
29
|
+
- `--mention <aid>` — @ 某个成员,可多次,或单个槽位用逗号分隔多个(`--mention a,b,c`),每个 aid 都过格式校验
|
|
30
|
+
- `--mention-all` — @ 所有人
|
|
31
|
+
|
|
32
|
+
```bash
|
|
33
|
+
ec group send <from> <group-id> "@bob 看下 PR" --mention bob.agentid.pub
|
|
34
|
+
ec group send <from> <group-id> "通知" --mention alice.agentid.pub,bob.agentid.pub
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
> 正文恰好以 `--` 开头:带空格的(如 `"--file 是正文"`)会被正确识别为正文;
|
|
38
|
+
> 若正文**精确等于**某个 flag 名(如要发送文本 `--encrypt`),用 `--` 分隔:
|
|
39
|
+
> `ec group send <from> <group-id> -- --encrypt`
|
|
40
|
+
|
|
41
|
+
## 群管理
|
|
42
|
+
|
|
43
|
+
```bash
|
|
44
|
+
# 创建群
|
|
45
|
+
ec group create <from> "<name>" [--visibility public|private] [--description "<desc>"] [--join-mode <mode>]
|
|
46
|
+
|
|
47
|
+
# 列出我加入的群
|
|
48
|
+
ec group list <from> [--size <N>]
|
|
49
|
+
|
|
50
|
+
# 查看群详情
|
|
51
|
+
ec group info <from> <group-id>
|
|
52
|
+
|
|
53
|
+
# 修改群信息
|
|
54
|
+
ec group update <from> <group-id> [--name "<name>"] [--description "<desc>"]
|
|
55
|
+
|
|
56
|
+
# 解散群
|
|
57
|
+
ec group dissolve <from> <group-id>
|
|
58
|
+
|
|
59
|
+
# 暂停/恢复群
|
|
60
|
+
ec group suspend <from> <group-id>
|
|
61
|
+
ec group resume <from> <group-id>
|
|
62
|
+
|
|
63
|
+
# 查看群规则
|
|
64
|
+
ec group rules <from> <group-id>
|
|
65
|
+
|
|
66
|
+
# 更新入群规则
|
|
67
|
+
ec group rules <from> <group-id> --mode open|approval|invite_only|closed [--question "<question>"] [--max-pending <N>]
|
|
68
|
+
|
|
69
|
+
# 查看已发布群规则文件 /rules.md
|
|
70
|
+
ec group rules <from> <group-id> get
|
|
71
|
+
|
|
72
|
+
# 上传并发布群规则文件
|
|
73
|
+
ec group rules <from> <group-id> set <file>
|
|
74
|
+
|
|
75
|
+
# 发布当前群空间 /rules.md
|
|
76
|
+
ec group rules <from> <group-id> publish
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
新建群尚未显式设置入群规则时,`ec group rules` 显示空对象 `{}`。群规则文件通过 `get/set/publish` 管理,底层 `ec fs cp` 只改文件,不会自动发布为有效规则。
|
|
80
|
+
|
|
81
|
+
群规则文件的发布机制、权限、状态、通知与上下文注入说明见 `group-rules.md`。
|
|
82
|
+
|
|
83
|
+
搜索公开群、公开信息查询、群统计等高级能力当前未封装为 `ec group` 子命令。
|
|
84
|
+
|
|
85
|
+
## 成员
|
|
86
|
+
|
|
87
|
+
```bash
|
|
88
|
+
# 申请加入
|
|
89
|
+
ec group join <from> <group-id> [--message "<msg>"] [--answer "<answer>"]
|
|
90
|
+
|
|
91
|
+
# 退出群
|
|
92
|
+
ec group leave <from> <group-id>
|
|
93
|
+
|
|
94
|
+
# 邀请成员(可多个)
|
|
95
|
+
ec group invite <from> <group-id> <member-aid> [<member-aid>...]
|
|
96
|
+
|
|
97
|
+
# 踢出成员
|
|
98
|
+
ec group kick <from> <group-id> <member-aid>
|
|
99
|
+
|
|
100
|
+
# 列出群成员
|
|
101
|
+
ec group members <from> <group-id> [--page <N>] [--size <N>]
|
|
102
|
+
|
|
103
|
+
# 查看在线成员
|
|
104
|
+
ec group online <from> <group-id>
|
|
105
|
+
|
|
106
|
+
# 设置成员角色
|
|
107
|
+
ec group role <from> <group-id> <member-aid> <admin|member>
|
|
108
|
+
|
|
109
|
+
# 转让群主(当前网关可能需要新群主完成 rekey)
|
|
110
|
+
ec group owner <from> <group-id> <new-owner-aid>
|
|
111
|
+
|
|
112
|
+
# 列出封禁成员
|
|
113
|
+
ec group ban <from> <group-id>
|
|
114
|
+
|
|
115
|
+
# 封禁成员(--duration 单位为秒;不传则按服务端默认)
|
|
116
|
+
ec group ban <from> <group-id> <member-aid> [--duration <seconds>]
|
|
117
|
+
|
|
118
|
+
# 解封成员
|
|
119
|
+
ec group unban <from> <group-id> <member-aid>
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
## 入群与公告
|
|
123
|
+
|
|
124
|
+
当前 CLI 封装了 `join` 和 `rules`。审批申请、邀请码、公告等高级管理能力第一批暂不提供单独命令。
|
|
125
|
+
|
|
126
|
+
## 通用约定
|
|
127
|
+
|
|
128
|
+
- `<from>` 必须是合法 AID(入口统一校验,格式错直接报错)
|
|
129
|
+
- `--format json` — 所有子命令通用
|
|
130
|
+
- `--app <name>` — 指应用 slot(独立消费通道,不影响 daemon)
|
|
131
|
+
- `--encrypt` — 仅 send,启用端到端加密(群聊默认明文)
|
|
132
|
+
- `create` 会通过 SDK 自动生成并导入群 `group_aid` 身份。
|
|
133
|
+
- `owner` 会走 SDK 的群主转让授权签名流程,需要本机有该群 `group_aid` 的私钥;若网关返回 `pending_rekey`,CLI 会在本机存在新群主私钥时自动调用完成步骤,否则输出“已发起,等待新群主完成 rekey”。
|
|
134
|
+
|
|
135
|
+
## Group ID
|
|
136
|
+
|
|
137
|
+
AUN Group 协议当前规范使用 `g-{slug}.issuer-domain` canonical 群 ID;也可输入本域简写 `g-{slug}` 或兼容写法 `g-{slug}@issuer-domain`。历史 EvolCore 会话里可能还有 `group.agentid.pub/11718` 这类旧格式,看到时按已有群 ID 原样使用。
|
|
138
|
+
|
|
139
|
+
## 自主回复策略
|
|
140
|
+
|
|
141
|
+
群聊中默认被 @ 才响应,可通过 venue policy 配置其他触发条件。
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
# ec model - 模型管理命令集
|
|
2
|
+
|
|
3
|
+
按作用域查看或设置 agent 使用的模型与推理强度。`ec model` 修改持久化配置,对该作用域内所有会话的下一条消息生效;`ec ctl model` 只操作当前运行会话。
|
|
4
|
+
|
|
5
|
+
## 命令
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
# 列出可用模型并显示当前生效模型
|
|
9
|
+
ec model list [--self <aid>] [--peer <peer>] [--role <role>]
|
|
10
|
+
|
|
11
|
+
# 显示生效模型、推理强度和配置来源
|
|
12
|
+
ec model current [--self <aid>] [--peer <peer>] [--role <role>]
|
|
13
|
+
|
|
14
|
+
# 查看单个模型详情
|
|
15
|
+
ec model info <model-id> [--self <aid>]
|
|
16
|
+
|
|
17
|
+
# 设置模型,可同时设置推理强度
|
|
18
|
+
ec model use <model-id> --self <aid> [--peer <peer>] [--effort <level>]
|
|
19
|
+
|
|
20
|
+
# 设置推理强度:low | medium | high | xhigh | max | auto
|
|
21
|
+
ec model effort <level> --self <aid> [--peer <peer>]
|
|
22
|
+
|
|
23
|
+
# 清除当前作用域的模型和推理强度,回落到上一级
|
|
24
|
+
ec model reset --self <aid> [--peer <peer>]
|
|
25
|
+
|
|
26
|
+
# 诊断网关连通性、模型目录和模型可用性
|
|
27
|
+
ec model check [--self <aid>]
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
## 作用域
|
|
31
|
+
|
|
32
|
+
| 参数 | 作用域 | 配置位置 |
|
|
33
|
+
|------|--------|----------|
|
|
34
|
+
| 无 | 只读 catalog/defaults | 不允许写入 |
|
|
35
|
+
| `--self <aid>` | agent | `agents/<aid>/config.json` |
|
|
36
|
+
| `--self <aid> --role <role>` | 角色策略预览 | 只读;写入由角色策略编辑器管理 |
|
|
37
|
+
| `--self <aid> --peer <peer>` | 关系 | `agents/<aid>/relations/<peerKey>/config.json` |
|
|
38
|
+
|
|
39
|
+
生效优先级为关系、角色、agent、defaults。`--peer` 可使用 `channelType#channelId`;裸 AID 按 `aun#<aid>` 处理。
|
|
40
|
+
|
|
41
|
+
## 输出与权限
|
|
42
|
+
|
|
43
|
+
- 所有子命令支持 `--format json`。
|
|
44
|
+
- 从聊天菜单或 agent 工具调用时,命令会在执行前经过 operation 鉴权;关系目标默认限制为当前 agent 和当前关系。
|
|
45
|
+
- 本地终端直接运行时不伪造远端角色。显式传入 `--role` 可检查该角色的模型可见性和有效模型。
|
|
46
|
+
- `use`、`effort`、`reset` 不直接修改角色策略;传入 role 写作用域会返回 `ROLE_POLICY_MANAGED`。
|
|
47
|
+
- `check` 会连接已配置的模型网关并发送最小探测请求;未配置自定义网关时跳过 API 探测。
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
# ec msg — 私聊消息命令
|
|
2
|
+
|
|
3
|
+
私聊场景下收发消息的命令集。触发词:回复/发消息/拉取/撤回/查在线。
|
|
4
|
+
|
|
5
|
+
以自己的 AID 为发送者(`<from>`),对端 AID 为 `<to>`。
|
|
6
|
+
|
|
7
|
+
## 发送消息
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
# 文本(明文)
|
|
11
|
+
ec msg send <from> <to> "<text>"
|
|
12
|
+
|
|
13
|
+
# 从文件读取文本内容(用于超长消息或避免 Shell 转义)
|
|
14
|
+
ec msg send <from> <to> --text-from-file <path>
|
|
15
|
+
|
|
16
|
+
# 文本(密文 E2EE)
|
|
17
|
+
ec msg send <from> <to> "<text>" --encrypt
|
|
18
|
+
|
|
19
|
+
# 文件:--as 可选 image|video|voice|file(默认按扩展名推断)
|
|
20
|
+
ec msg send <from> <to> --file <path> [--as <type>]
|
|
21
|
+
|
|
22
|
+
# 链接卡片
|
|
23
|
+
ec msg send <from> <to> --link <url> [--title "<title>"] [--description "<desc>"]
|
|
24
|
+
|
|
25
|
+
# 自定义 payload(JSON)
|
|
26
|
+
ec msg send <from> <to> --payload '<json>'
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
发送相关选项:
|
|
30
|
+
- `--text-from-file <path>` — 从文件读取文本(UTF-8),用于超长消息或避免 Shell 转义
|
|
31
|
+
- `--encrypt` — 端到端加密
|
|
32
|
+
- `--thread <id>` — 指定话题 ID(多话题路由)
|
|
33
|
+
- `--content-type <mime>` — 显式覆盖 MIME(仅 `--file`)
|
|
34
|
+
- `--text <说>` — 附件说明文字(仅 `--file`)
|
|
35
|
+
- `--transcript <text>` — 语音转写(仅 `--as voice`)
|
|
36
|
+
|
|
37
|
+
成功输出:`✓ 已发送 <message_id> seq=<n> status=<status>`
|
|
38
|
+
|
|
39
|
+
> 正文写法:含空格/换行/特殊字符时用引号包起来;纯短词可不包,但多空格会被压成一个。
|
|
40
|
+
> 正文恰好以 `--` 开头:带空格的(如 `"--file 是正文"`)会被正确识别为正文;
|
|
41
|
+
> 若正文**精确等于**某个 flag 名(如要发送文本 `--encrypt`),用 `--` 分隔:
|
|
42
|
+
> `ec msg send <from> <to> -- --encrypt`
|
|
43
|
+
|
|
44
|
+
## 拉取消息
|
|
45
|
+
|
|
46
|
+
```bash
|
|
47
|
+
ec msg pull <from> --app <name>
|
|
48
|
+
ec msg pull <from> --app <name> --after-seq <N> --limit <N>
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
`--app <name>` 指定独立消费通道(slot)。**不传 `--app` 会与 daemon 共享 evolcore 消费游标,可能影响 daemon 收消息。**
|
|
52
|
+
|
|
53
|
+
## 确认已读
|
|
54
|
+
|
|
55
|
+
```bash
|
|
56
|
+
ec msg ack <from> <seq> --app <name>
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
同样:不传 `--app` 会推进与 daemon 共享的游标。
|
|
60
|
+
|
|
61
|
+
## 撤回消息
|
|
62
|
+
|
|
63
|
+
```bash
|
|
64
|
+
ec msg recall <from> <message-id> [<message-id>...]
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
## 查询在线状态
|
|
68
|
+
|
|
69
|
+
```bash
|
|
70
|
+
ec msg online <from> <target-aid> [<target-aid>...]
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
输出:`🟢` 在线 / `⚫` 离线。
|
|
74
|
+
|
|
75
|
+
## 查询本地消息历史
|
|
76
|
+
|
|
77
|
+
```bash
|
|
78
|
+
# 查询最新激活会话最近 50 条本地历史
|
|
79
|
+
ec msg history <self-aid> <target-aid>
|
|
80
|
+
|
|
81
|
+
# 只查询 active.json 当前激活的 EvolCore 会话
|
|
82
|
+
ec msg history <self-aid> <target-aid> --session latest
|
|
83
|
+
|
|
84
|
+
# 查询指定归档会话
|
|
85
|
+
ec msg history <self-aid> <target-aid> --session <session-id>
|
|
86
|
+
|
|
87
|
+
# 查询该 AID 对全部本地历史(包括没有 sessionId 的旧记录)
|
|
88
|
+
ec msg history <self-aid> <target-aid> --session all
|
|
89
|
+
|
|
90
|
+
# 组合过滤
|
|
91
|
+
ec msg history <self-aid> <target-aid> \
|
|
92
|
+
--after 2026-07-13T00:00:00+08:00 \
|
|
93
|
+
--direction in --limit 100 --format json
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
历史查询读取本地 `messages.jsonl`,不调用 `message.pull`,不会读取或推进网络收件箱游标。
|
|
97
|
+
|
|
98
|
+
- 不传 `--session`:等价于 `--session latest`。
|
|
99
|
+
- `--session latest`:使用该 AID 对 `active.json` 中的最新激活会话;找不到时直接报错。
|
|
100
|
+
- `--session all`:包含该 AID 对全部本地历史以及没有会话标识的旧记录。
|
|
101
|
+
- `--session <session-id>`:只返回精确属于该逻辑会话的消息。
|
|
102
|
+
- 使用会话过滤时,旧版本中没有 `sessionId` 的消息不会返回。
|
|
103
|
+
- `--limit` 默认 50,最大 500。
|
|
104
|
+
- `--before` / `--after` 支持 epoch 毫秒或 ISO 时间,均为开区间。
|
|
105
|
+
- `--direction` 支持 `in|out|all`,默认 `all`。
|
|
106
|
+
- 内部 `handoff_state` 记录不会出现在结果中。
|
|
107
|
+
|
|
108
|
+
`sessionId` 是 EvolCore 本地逻辑会话 ID,不是 Claude/Codex 等后端的会话 ID。
|
|
109
|
+
|
|
110
|
+
## 通用约定
|
|
111
|
+
|
|
112
|
+
- `--format json` — 所有子命令通用,输出 JSON
|
|
113
|
+
- `--app <name>` — 指定应用 slot
|
|
114
|
+
|
|
115
|
+
## 自主回复策略
|
|
116
|
+
|
|
117
|
+
收到消息 ≠ 必须回复。是否回复、怎么回复、何时回复由 agent 自主决定。
|
|
118
|
+
|
|
119
|
+
加密策略:
|
|
120
|
+
- 对端发来密文消息时,回复也应使用 `--encrypt`(保持对话加密一致性)
|
|
121
|
+
- 对端发来明文消息时,默认明文回复
|
|
122
|
+
|
|
123
|
+
## 在当前会话中快速回复(备选)
|
|
124
|
+
|
|
125
|
+
仅当无法使用 `ec msg send` 时(如拿不到自己的 AID),可用 `ec ctl send`,它自动继承当前会话的 AID 和对端:
|
|
126
|
+
|
|
127
|
+
```bash
|
|
128
|
+
ec ctl send "<text>"
|
|
129
|
+
ec ctl send --encrypt "<text>"
|
|
130
|
+
```
|