evolcore 0.0.25 → 0.0.27
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 +632 -565
- package/LICENSE +21 -21
- package/README.md +455 -455
- package/bin/codex-managed-acl.ps1 +203 -160
- package/bin/codex-managed-hook.mjs +208 -208
- package/bin/ec-safe-output.js +327 -327
- package/bin/ec.js +40 -29
- package/bin/install-codex-managed-hooks.mjs +582 -555
- package/dist/agents/baseagent-availability.js +68 -0
- package/dist/agents/baseagent.js +96 -46
- package/dist/agents/claude-runner.js +172 -33
- package/dist/agents/codex/app-server-client.js +76 -31
- package/dist/agents/codex/catalog.js +1 -1
- package/dist/agents/codex/diagnostics.js +34 -1
- package/dist/agents/codex-runner.js +434 -446
- package/dist/agents/ecagent-runner.js +174 -34
- package/dist/agents/gemini-runner.js +8 -7
- package/dist/agents/runner-types.js +75 -19
- package/dist/aun/aid/agentmd.js +151 -36
- package/dist/aun/aid/client.js +1 -1
- package/dist/aun/aid/control-aid.js +180 -1
- package/dist/aun/aid/identity.js +4 -4
- package/dist/aun/aid/index.js +1 -1
- package/dist/aun/aid/store.js +17 -13
- package/dist/aun/group/history.js +303 -0
- package/dist/aun/group/identity.js +43 -0
- package/dist/aun/group/index.js +5 -0
- package/dist/aun/{msg/group.js → group/operations.js} +162 -39
- package/dist/aun/{menu-client.js → menu/client.js} +85 -6
- package/dist/aun/menu/index.js +2 -0
- package/dist/aun/menu/transport.js +49 -0
- package/dist/aun/msg/index.js +2 -1
- package/dist/aun/msg/managed-operation.js +85 -19
- package/dist/aun/msg/mention-schema.js +51 -0
- package/dist/aun/msg/p2p.js +19 -9
- package/dist/aun/msg/upload.js +43 -80
- package/dist/aun/outbox.js +29 -7
- package/dist/aun/rpc/client.js +1 -0
- package/dist/aun/storage/client.js +39 -50
- package/dist/channels/aun.js +842 -318
- package/dist/channels/daemon.js +10 -6
- package/dist/cli/agent-command.js +212 -89
- package/dist/cli/agent-create.js +626 -11
- package/dist/cli/agent.js +125 -13
- package/dist/cli/aun-commands.js +487 -337
- package/dist/cli/bench.js +20 -20
- package/dist/cli/config.js +55 -33
- package/dist/cli/contact.js +72 -15
- package/dist/cli/ctl-command.js +24 -24
- package/dist/cli/daemon-commands.js +140 -63
- package/dist/cli/diag.js +31 -0
- package/dist/cli/fs-command.js +70 -70
- package/dist/cli/handoff-command.js +46 -14
- package/dist/cli/index.js +91 -79
- package/dist/cli/init.js +34 -1
- package/dist/cli/link-rules.js +21 -21
- package/dist/cli/managed-command-guard.js +5 -1
- package/dist/cli/menu-client.js +51 -32
- package/dist/cli/model.js +3 -3
- package/dist/cli/net-check.js +22 -22
- package/dist/cli/queue-command.js +31 -31
- package/dist/cli/response.js +32 -32
- package/dist/cli/restart-monitor.js +103 -42
- package/dist/cli/stats.js +51 -51
- package/dist/cli/task-command.js +59 -0
- package/dist/cli/task-context.js +97 -49
- package/dist/cli/trigger-command.js +74 -64
- package/dist/config/builtin-roles.js +11 -0
- package/dist/config/config-field-policy.js +11 -0
- package/dist/config/config-manager.js +32 -4
- package/dist/config/config-operation-service.js +160 -0
- package/dist/config/contact-book-store.js +1 -1
- package/dist/config/contact-book.js +1 -1
- package/dist/config/contact-operation-service.js +97 -8
- package/dist/config/peer-role-resolver.js +1 -1
- package/dist/config/resolved-config-op.js +30 -7
- package/dist/config-store.js +1 -1
- package/dist/core/agent-application-service.js +7 -1
- package/dist/core/audit/event-key.js +17 -2
- package/dist/core/audit/log-integrity.js +34 -8
- package/dist/core/auth/agent-delegation.js +48 -14
- package/dist/core/auth/auth-gateway.js +2 -0
- package/dist/core/auth/authorization-audit.js +53 -49
- package/dist/core/auth/operation-authorizer.js +90 -7
- package/dist/core/auth/operation-catalog.js +145 -4
- package/dist/core/auth/remote-access-store.js +155 -10
- package/dist/core/bootstrap-messages.js +66 -7
- package/dist/core/bootstrap-service.js +111 -20
- package/dist/core/command/agent-control.js +88 -7
- package/dist/core/command/agent-storage-menu.js +443 -0
- package/dist/core/command/cli-intent-parser.js +19 -0
- package/dist/core/command/command-handler.js +159 -65
- package/dist/core/command/data-root-resolver.js +273 -0
- package/dist/core/command/diag-service.js +118 -0
- package/dist/core/command/group-menu.js +7 -2
- package/dist/core/command/menu-catalog.js +46 -7
- package/dist/core/command/menu-handler.js +392 -100
- package/dist/core/command/menu-protocol.js +45 -6
- package/dist/core/command/menu-token-store.js +41 -8
- package/dist/core/command/role-menu.js +2 -2
- package/dist/core/command/slash-gate.js +34 -4
- package/dist/core/command/slash-handler.js +123 -43
- package/dist/core/event-catalog.js +4 -0
- package/dist/core/evolagent-registry.js +28 -2
- package/dist/core/group/invite-service.js +924 -0
- package/dist/core/handoff/runtime.js +205 -27
- package/dist/core/handoff/store.js +193 -4
- package/dist/core/interaction-router.js +22 -8
- package/dist/core/message/im-renderer.js +146 -34
- package/dist/core/message/message-bridge.js +163 -20
- package/dist/core/message/message-log.js +5 -3
- package/dist/core/message/message-queue.js +99 -41
- package/dist/core/message/message-utils.js +1 -0
- package/dist/core/message/response-engine.js +755 -144
- package/dist/core/model/catalog-service.js +79 -49
- package/dist/core/model/context-window-suffix.js +33 -0
- package/dist/core/model/model-catalog.js +1 -1
- package/dist/core/model/model-permission.js +12 -3
- package/dist/core/permission/approval-gateway.js +36 -3
- package/dist/core/permission/ec-command-parser.js +112 -41
- package/dist/core/permission/protected-paths.js +134 -16
- package/dist/core/permission/sandbox-runtime.js +108 -17
- package/dist/core/permission/tool-error-code.js +15 -0
- package/dist/core/permission/tool-policy.js +9 -8
- package/dist/core/relation/peer-identity.js +57 -6
- package/dist/core/relation/shared-data.js +106 -0
- package/dist/core/role/runtime-policy.js +64 -0
- package/dist/core/runtime-lock.js +10 -26
- package/dist/core/session/runner-task-history.js +170 -0
- package/dist/core/session/session-manager.js +34 -6
- package/dist/core/session/session-mapper.js +41 -0
- package/dist/core/session/session-turn-coordinator.js +37 -7
- package/dist/core/session/session-turns.js +48 -7
- package/dist/core/task/task-recovery-service.js +176 -0
- package/dist/core/task/task-resume-operation.js +32 -0
- package/dist/eck/group-rules-sync.js +5 -3
- package/dist/eck/kit-renderer.js +1 -0
- package/dist/index.js +588 -217
- package/dist/ipc.js +193 -15
- package/dist/paths.js +17 -4
- package/dist/product.js +2 -0
- package/dist/response-system/engines/v1/proactive-flow.js +59 -2
- package/dist/stats/billing.js +41 -15
- package/dist/stats/db.js +159 -159
- package/dist/stats/eck-vars.js +9 -9
- package/dist/stats/price-resolver.js +28 -10
- package/dist/stats/query.js +139 -139
- package/dist/stats/role-budget.js +6 -6
- package/dist/stats/writer.js +51 -51
- package/dist/trigger/event-source.js +19 -0
- package/dist/trigger/feedback.js +233 -40
- package/dist/trigger/parser.js +55 -5
- package/dist/trigger/patch.js +9 -0
- package/dist/trigger/scheduler.js +30 -4
- package/dist/trigger/validation.js +20 -3
- package/dist/utils/cross-platform.js +30 -1
- package/dist/utils/ecweb-utils.js +1 -0
- package/dist/utils/error-dict.json +160 -160
- package/dist/utils/error-utils.js +61 -2
- package/dist/utils/evolcore-version.js +129 -0
- package/dist/utils/logger.js +26 -14
- package/dist/utils/macos-autostart.js +22 -22
- package/dist/utils/model-prices.jsonl +23 -23
- package/dist/utils/npm-ops.js +176 -35
- package/dist/utils/tool-summary.js +59 -3
- package/dist/utils/welcome.js +196 -23
- package/ecagent/LICENSE +21 -21
- package/ecagent/NOTICE +11 -11
- package/ecagent/README.md +61 -61
- package/ecagent/dist/harness/agent-harness.js +3 -0
- package/ecagent/dist/harness/compaction/branch-summarization.js +30 -30
- package/ecagent/dist/harness/compaction/compaction.js +83 -83
- package/ecagent/dist/harness/messages.js +7 -7
- package/ecagent/dist/harness/session/jsonl-storage.js +21 -2
- package/kits/docs/GUIDE.md +20 -20
- package/kits/docs/INDEX.md +60 -66
- package/kits/docs/aun/CHEATSHEET.md +19 -19
- package/kits/docs/aun/SYNC_PROTOCOL.md +15 -15
- package/kits/docs/channels/aun.md +69 -56
- package/kits/docs/channels/feishu.md +56 -56
- package/kits/docs/context-assembly.md +379 -367
- package/kits/docs/eck_templates/GUIDE.template.md +22 -22
- package/kits/docs/eck_templates/INDEX.template.md +28 -28
- package/kits/docs/eck_templates/path-registry.template.md +33 -33
- package/kits/docs/eck_templates/runtime.template.md +19 -19
- package/kits/docs/evolcore/INDEX.md +76 -71
- package/kits/docs/evolcore/agent-create.md +202 -165
- package/kits/docs/evolcore/agent.md +99 -67
- package/kits/docs/evolcore/aid.md +68 -60
- package/kits/docs/evolcore/codex-windows-sandbox.md +146 -146
- package/kits/docs/evolcore/config.md +241 -195
- package/kits/docs/evolcore/contact.md +75 -68
- package/kits/docs/evolcore/ctl.md +46 -46
- package/kits/docs/evolcore/event.md +216 -216
- package/kits/docs/evolcore/fs-architecture.md +1215 -1215
- package/kits/docs/evolcore/fs.md +110 -110
- package/kits/docs/evolcore/group-collaboration.md +244 -244
- package/kits/docs/evolcore/group-fs.md +17 -17
- package/kits/docs/evolcore/group-rules.md +251 -251
- package/kits/docs/evolcore/group.md +267 -152
- package/kits/docs/evolcore/menu-client.md +58 -34
- package/kits/docs/evolcore/model.md +50 -50
- package/kits/docs/evolcore/msg.md +169 -165
- package/kits/docs/evolcore/response.md +75 -75
- package/kits/docs/evolcore/rpc.md +37 -37
- package/kits/docs/evolcore/self-summary.md +29 -29
- package/kits/docs/evolcore/stats.md +83 -83
- package/kits/docs/evolcore/storage.md +53 -50
- package/kits/docs/evolcore/task.md +14 -0
- package/kits/docs/evolcore/trigger.md +623 -575
- package/kits/docs/identity/AID_PROFILE_SPEC.md +26 -26
- package/kits/docs/identity/PATH_OPS.md +16 -16
- package/kits/docs/identity/ROLE_DETAIL.md +25 -25
- package/kits/docs/identity/identity-tools.md +26 -26
- package/kits/docs/path-registry.md +62 -62
- package/kits/docs/prompt-loading-architecture.md +269 -269
- package/kits/docs/venues/aun-group.md +45 -45
- package/kits/docs/venues/aun-private.md +10 -10
- package/kits/docs/venues/client-desktop.md +10 -10
- package/kits/docs/venues/client-mobile.md +10 -10
- package/kits/docs/venues/feishu-group.md +13 -13
- package/kits/docs/venues/feishu-private.md +9 -9
- package/kits/docs/venues/group.md +42 -25
- package/kits/docs/venues/private.md +10 -10
- package/kits/eck_manifest.auxiliary.json +43 -43
- package/kits/eck_manifest.json +217 -190
- package/kits/eck_message_manifest.json +74 -74
- package/kits/migrations/README-role-config-v4.md +32 -32
- package/kits/migrations/migrate-contact-book-v2.mjs +748 -748
- package/kits/migrations/migrate-role-config-v4.mjs +614 -614
- package/kits/migrations/migrate-role-config-v5.mjs +365 -365
- package/kits/migrations/rename-config-file.mjs +99 -99
- package/kits/rules/01-overview.md +166 -162
- package/kits/rules/02-navigation.md +96 -96
- package/kits/rules/03-identity.md +36 -36
- package/kits/rules/04-relation.md +76 -75
- package/kits/rules/05-venue.md +60 -60
- package/kits/rules/06-channel.md +65 -63
- package/kits/schemas/_meta.json +53 -53
- package/kits/schemas/agent-config.schema.1.json +177 -177
- package/kits/schemas/agent-config.schema.10.json +395 -395
- package/kits/schemas/agent-config.schema.11.json +421 -421
- package/kits/schemas/agent-config.schema.12.json +451 -427
- package/kits/schemas/agent-config.schema.2.json +239 -239
- package/kits/schemas/agent-config.schema.3.json +119 -119
- package/kits/schemas/agent-config.schema.4.json +208 -208
- package/kits/schemas/agent-config.schema.5.json +326 -326
- package/kits/schemas/agent-config.schema.6.json +322 -322
- package/kits/schemas/agent-config.schema.7.json +303 -303
- package/kits/schemas/agent-config.schema.8.json +304 -304
- package/kits/schemas/agent-config.schema.9.json +364 -364
- package/kits/schemas/contact-book.schema.1.json +36 -36
- package/kits/schemas/contact-book.schema.2.json +43 -43
- package/kits/schemas/contact-book.schema.3.json +67 -67
- package/kits/schemas/daemon.schema.1.json +91 -91
- package/kits/schemas/daemon.schema.2.json +101 -101
- package/kits/schemas/daemon.schema.3.json +123 -123
- package/kits/schemas/daemon.schema.4.json +136 -136
- package/kits/schemas/daemon.schema.5.json +135 -135
- package/kits/schemas/daemon.schema.6.json +131 -131
- package/kits/schemas/defaults.schema.1.json +81 -81
- package/kits/schemas/defaults.schema.2.json +85 -85
- package/kits/schemas/defaults.schema.3.json +73 -73
- package/kits/schemas/defaults.schema.4.json +107 -107
- package/kits/schemas/defaults.schema.5.json +119 -119
- package/kits/schemas/menu-exec-schema-commands.md +208 -208
- package/kits/schemas/migrations/README.md +30 -30
- package/kits/schemas/relation-config.schema.1.json +158 -158
- package/kits/schemas/relation-config.schema.2.json +73 -73
- package/kits/schemas/relation-config.schema.3.json +50 -50
- package/kits/schemas/relation-config.schema.4.json +47 -47
- package/kits/schemas/relation-config.schema.5.json +47 -47
- package/kits/schemas/relation-config.schema.6.json +46 -46
- package/kits/schemas/relation-config.schema.7.json +59 -59
- package/kits/schemas/relation-config.schema.8.json +103 -103
- package/kits/schemas/role-config.schema.1.json +215 -201
- package/kits/schemas/role-registry.schema.1.json +35 -35
- package/kits/schemas/single-session.schema.1.json +31 -31
- package/kits/schemas/single-session.schema.2.json +57 -57
- package/kits/schemas/single-session.schema.3.json +32 -32
- package/kits/templates/bootstrap-welcome.md +17 -17
- package/kits/templates/message-fragments/handoff-context-to-target.md +9 -9
- package/kits/templates/message-fragments/handoff-request-to-target.md +19 -19
- package/kits/templates/message-fragments/handoff-response-to-origin.md +9 -9
- package/kits/templates/message-fragments/inject-default.md +2 -2
- package/kits/templates/message-fragments/item.md +2 -2
- package/kits/templates/roles/admin.json +92 -92
- package/kits/templates/roles/member.json +101 -96
- package/kits/templates/roles/owner.json +9 -9
- package/kits/templates/roles/visitor.json +90 -85
- package/kits/templates/system-fragments/baseagent.md +14 -14
- package/kits/templates/system-fragments/bootstrap.md +53 -34
- package/kits/templates/system-fragments/channel.md +28 -64
- package/kits/templates/system-fragments/commands.md +36 -28
- package/kits/templates/system-fragments/group-unread-history.md +7 -0
- package/kits/templates/system-fragments/identity.md +13 -13
- package/kits/templates/system-fragments/relation.md +19 -19
- package/kits/templates/system-fragments/reply.md +56 -0
- package/kits/templates/system-fragments/session.md +59 -59
- package/kits/templates/system-fragments/venue.md +31 -31
- package/package.json +104 -98
- package/dist/aun/group-identity.js +0 -9
- /package/dist/aun/{group-fs-download.js → group/fs-download.js} +0 -0
- /package/dist/aun/{msg/group-index.js → group/index-rpc.js} +0 -0
|
@@ -1,98 +1,103 @@
|
|
|
1
|
-
{
|
|
2
|
-
"$schema_version": 1,
|
|
3
|
-
"description": "Trusted user with own-scope access",
|
|
4
|
-
"rank": 300,
|
|
5
|
-
"allowAccess": true,
|
|
6
|
-
"usageLimits": {
|
|
7
|
-
"enabled": true,
|
|
8
|
-
"resetMode": "daily",
|
|
9
|
-
"currency": "CNY",
|
|
10
|
-
"limitAmount": 50,
|
|
11
|
-
"costBasis": "gateway",
|
|
12
|
-
"scope": "subject"
|
|
13
|
-
},
|
|
14
|
-
"permissions": {
|
|
15
|
-
"permissionMode": { "default": "auto", "allowOverride": false }
|
|
16
|
-
},
|
|
17
|
-
"commandPermissions": {
|
|
18
|
-
"role.assign": { "allow": false },
|
|
19
|
-
"role.revoke": { "allow": false },
|
|
20
|
-
"role.*": { "allow": false },
|
|
21
|
-
"connect.*": { "allow": false },
|
|
22
|
-
"contact.*": { "allow": false },
|
|
23
|
-
"system.*": { "allow": false },
|
|
24
|
-
"storage.*": { "allow": false },
|
|
25
|
-
"aid.*": { "allow": false },
|
|
26
|
-
"gateway.*": { "allow": false },
|
|
27
|
-
"group.list": { "allow": true, "scopes": ["agent"], "constraints": { "targetCurrentAgentOnly": true } },
|
|
28
|
-
"agent.baseagent.current": { "allow": true, "scopes": ["relation"], "constraints": { "ownPeerOnly": true, "targetCurrentAgentOnly": true } },
|
|
29
|
-
"agent.baseagent.list": { "allow": true, "scopes": ["agent"], "constraints": { "targetCurrentAgentOnly": true } },
|
|
30
|
-
"agent.*": { "allow": false },
|
|
31
|
-
"observable.current": { "allow": false },
|
|
32
|
-
"session.current": { "allow": true, "scopes": ["relation"], "constraints": { "ownPeerOnly": true, "targetCurrentAgentOnly": true } },
|
|
33
|
-
"session.topic.current": { "allow": true, "scopes": ["relation"], "constraints": { "ownPeerOnly": true, "targetCurrentAgentOnly": true } },
|
|
34
|
-
"session.topic.list": { "allow": true, "scopes": ["relation"], "constraints": { "ownPeerOnly": true, "targetCurrentAgentOnly": true } },
|
|
35
|
-
"project.current": { "allow": true, "scopes": ["relation"], "constraints": { "ownPeerOnly": true, "targetCurrentAgentOnly": true } },
|
|
36
|
-
"activity.current": { "allow": true, "scopes": ["relation"], "constraints": { "ownPeerOnly": true, "targetCurrentAgentOnly": true } },
|
|
37
|
-
"category:read": { "allow": true },
|
|
38
|
-
"category:write-own": { "allow": true },
|
|
39
|
-
"config.get": { "allow": true, "scopes": ["relation"], "constraints": { "currentRelationOnly": true, "targetCurrentAgentOnly": true, "configFieldPolicy": "behavior-read" } },
|
|
40
|
-
"config.set": { "allow": true, "scopes": ["relation"], "constraints": { "currentRelationOnly": true, "targetCurrentAgentOnly": true, "configFieldPolicy": "role-overridable-write" } },
|
|
41
|
-
"config.unset": { "allow": true, "scopes": ["relation"], "constraints": { "currentRelationOnly": true, "targetCurrentAgentOnly": true, "configFieldPolicy": "role-overridable-write" } },
|
|
42
|
-
"model.*": { "allow": true, "scopes": ["relation"], "constraints": { "ownPeerOnly": true, "targetCurrentAgentOnly": true } },
|
|
43
|
-
"permission.current": { "allow": true, "scopes": ["relation"], "constraints": { "ownPeerOnly": true, "targetCurrentAgentOnly": true } },
|
|
44
|
-
"permission.answer": { "allow": true, "scopes": ["relation"], "constraints": { "ownPeerOnly": true, "targetCurrentAgentOnly": true } },
|
|
45
|
-
"chatmode.current": { "allow": true, "scopes": ["relation"], "constraints": { "ownPeerOnly": true, "targetCurrentAgentOnly": true } },
|
|
46
|
-
"chatmode.update": { "allow": true, "scopes": ["relation"], "constraints": { "ownPeerOnly": true, "targetCurrentAgentOnly": true } },
|
|
47
|
-
"mentionmode.current": { "allow": true, "scopes": ["relation"], "constraints": { "groupOnly": true } },
|
|
48
|
-
"mentionmode.update": { "allow": false },
|
|
49
|
-
"group.mentionmode.current": { "allow": true, "scopes": ["relation"], "constraints": { "groupOnly": true, "currentRelationOnly": true, "targetCurrentAgentOnly": true } },
|
|
50
|
-
"group.mentionmode.update": { "allow": false },
|
|
51
|
-
"group.rulespolicy.current": { "allow": true, "scopes": ["relation"], "constraints": { "groupOnly": true, "currentRelationOnly": true, "targetCurrentAgentOnly": true } },
|
|
52
|
-
"group.rulespolicy.update": { "allow": false },
|
|
53
|
-
"trigger.*": { "allow": true, "scopes": ["relation"], "constraints": { "ownPeerOnly": true, "targetCurrentAgentOnly": true } },
|
|
54
|
-
"ec.msg.send": { "allow": true, "constraints": { "ownPeerOnly": true } },
|
|
55
|
-
"contact.add": { "allow": true, "scopes": ["relation"], "constraints": { "ownPeerOnly": true, "privateOnly": true } },
|
|
56
|
-
"ec.msg.file": { "allow": true, "constraints": { "ownPeerOnly": true } },
|
|
57
|
-
"ec.msg.history": { "allow": true, "scopes": ["relation"], "constraints": { "privateOnly": true, "currentRelationOnly": true, "targetCurrentAgentOnly": true } },
|
|
58
|
-
"ec.msg.online": { "allow": true, "scopes": ["relation"], "constraints": { "privateOnly": true, "currentRelationOnly": true, "targetCurrentAgentOnly": true } },
|
|
59
|
-
"ec.version": { "allow": true },
|
|
60
|
-
"ec.aid.show": { "allow": true, "dangerous": true, "scopes": ["relation"], "constraints": { "targetCurrentAgentOnly": true } },
|
|
61
|
-
"ec.aid.lookup": { "allow": true, "scopes": ["relation"] },
|
|
62
|
-
"ec.aid.agentmd.get": { "allow": true, "scopes": ["relation"] },
|
|
1
|
+
{
|
|
2
|
+
"$schema_version": 1,
|
|
3
|
+
"description": "Trusted user with own-scope access",
|
|
4
|
+
"rank": 300,
|
|
5
|
+
"allowAccess": true,
|
|
6
|
+
"usageLimits": {
|
|
7
|
+
"enabled": true,
|
|
8
|
+
"resetMode": "daily",
|
|
9
|
+
"currency": "CNY",
|
|
10
|
+
"limitAmount": 50,
|
|
11
|
+
"costBasis": "gateway",
|
|
12
|
+
"scope": "subject"
|
|
13
|
+
},
|
|
14
|
+
"permissions": {
|
|
15
|
+
"permissionMode": { "default": "auto", "allowOverride": false }
|
|
16
|
+
},
|
|
17
|
+
"commandPermissions": {
|
|
18
|
+
"role.assign": { "allow": false },
|
|
19
|
+
"role.revoke": { "allow": false },
|
|
20
|
+
"role.*": { "allow": false },
|
|
21
|
+
"connect.*": { "allow": false },
|
|
22
|
+
"contact.*": { "allow": false },
|
|
23
|
+
"system.*": { "allow": false },
|
|
24
|
+
"storage.*": { "allow": false },
|
|
25
|
+
"aid.*": { "allow": false },
|
|
26
|
+
"gateway.*": { "allow": false },
|
|
27
|
+
"group.list": { "allow": true, "scopes": ["agent"], "constraints": { "targetCurrentAgentOnly": true } },
|
|
28
|
+
"agent.baseagent.current": { "allow": true, "scopes": ["relation"], "constraints": { "ownPeerOnly": true, "targetCurrentAgentOnly": true } },
|
|
29
|
+
"agent.baseagent.list": { "allow": true, "scopes": ["agent"], "constraints": { "targetCurrentAgentOnly": true } },
|
|
30
|
+
"agent.*": { "allow": false },
|
|
31
|
+
"observable.current": { "allow": false },
|
|
32
|
+
"session.current": { "allow": true, "scopes": ["relation"], "constraints": { "ownPeerOnly": true, "targetCurrentAgentOnly": true } },
|
|
33
|
+
"session.topic.current": { "allow": true, "scopes": ["relation"], "constraints": { "ownPeerOnly": true, "targetCurrentAgentOnly": true } },
|
|
34
|
+
"session.topic.list": { "allow": true, "scopes": ["relation"], "constraints": { "ownPeerOnly": true, "targetCurrentAgentOnly": true } },
|
|
35
|
+
"project.current": { "allow": true, "scopes": ["relation"], "constraints": { "ownPeerOnly": true, "targetCurrentAgentOnly": true } },
|
|
36
|
+
"activity.current": { "allow": true, "scopes": ["relation"], "constraints": { "ownPeerOnly": true, "targetCurrentAgentOnly": true } },
|
|
37
|
+
"category:read": { "allow": true },
|
|
38
|
+
"category:write-own": { "allow": true },
|
|
39
|
+
"config.get": { "allow": true, "scopes": ["relation"], "constraints": { "currentRelationOnly": true, "targetCurrentAgentOnly": true, "configFieldPolicy": "behavior-read" } },
|
|
40
|
+
"config.set": { "allow": true, "scopes": ["relation"], "constraints": { "currentRelationOnly": true, "targetCurrentAgentOnly": true, "configFieldPolicy": "role-overridable-write" } },
|
|
41
|
+
"config.unset": { "allow": true, "scopes": ["relation"], "constraints": { "currentRelationOnly": true, "targetCurrentAgentOnly": true, "configFieldPolicy": "role-overridable-write" } },
|
|
42
|
+
"model.*": { "allow": true, "scopes": ["relation"], "constraints": { "ownPeerOnly": true, "targetCurrentAgentOnly": true } },
|
|
43
|
+
"permission.current": { "allow": true, "scopes": ["relation"], "constraints": { "ownPeerOnly": true, "targetCurrentAgentOnly": true } },
|
|
44
|
+
"permission.answer": { "allow": true, "scopes": ["relation"], "constraints": { "ownPeerOnly": true, "targetCurrentAgentOnly": true } },
|
|
45
|
+
"chatmode.current": { "allow": true, "scopes": ["relation"], "constraints": { "ownPeerOnly": true, "targetCurrentAgentOnly": true } },
|
|
46
|
+
"chatmode.update": { "allow": true, "scopes": ["relation"], "constraints": { "ownPeerOnly": true, "targetCurrentAgentOnly": true } },
|
|
47
|
+
"mentionmode.current": { "allow": true, "scopes": ["relation"], "constraints": { "groupOnly": true } },
|
|
48
|
+
"mentionmode.update": { "allow": false },
|
|
49
|
+
"group.mentionmode.current": { "allow": true, "scopes": ["relation"], "constraints": { "groupOnly": true, "currentRelationOnly": true, "targetCurrentAgentOnly": true } },
|
|
50
|
+
"group.mentionmode.update": { "allow": false },
|
|
51
|
+
"group.rulespolicy.current": { "allow": true, "scopes": ["relation"], "constraints": { "groupOnly": true, "currentRelationOnly": true, "targetCurrentAgentOnly": true } },
|
|
52
|
+
"group.rulespolicy.update": { "allow": false },
|
|
53
|
+
"trigger.*": { "allow": true, "scopes": ["relation"], "constraints": { "ownPeerOnly": true, "targetCurrentAgentOnly": true } },
|
|
54
|
+
"ec.msg.send": { "allow": true, "constraints": { "ownPeerOnly": true } },
|
|
55
|
+
"contact.add": { "allow": true, "scopes": ["relation"], "constraints": { "ownPeerOnly": true, "privateOnly": true } },
|
|
56
|
+
"ec.msg.file": { "allow": true, "constraints": { "ownPeerOnly": true } },
|
|
57
|
+
"ec.msg.history": { "allow": true, "scopes": ["relation"], "constraints": { "privateOnly": true, "currentRelationOnly": true, "targetCurrentAgentOnly": true } },
|
|
58
|
+
"ec.msg.online": { "allow": true, "scopes": ["relation"], "constraints": { "privateOnly": true, "currentRelationOnly": true, "targetCurrentAgentOnly": true } },
|
|
59
|
+
"ec.version": { "allow": true },
|
|
60
|
+
"ec.aid.show": { "allow": true, "dangerous": true, "scopes": ["relation"], "constraints": { "targetCurrentAgentOnly": true } },
|
|
61
|
+
"ec.aid.lookup": { "allow": true, "scopes": ["relation"] },
|
|
62
|
+
"ec.aid.agentmd.get": { "allow": true, "scopes": ["relation"] },
|
|
63
63
|
"ec.aid.agentmd.put": { "allow": false },
|
|
64
64
|
"ec.aid.avatar": { "allow": false },
|
|
65
|
-
"ec.fs.ls": { "allow": true, "scopes": ["relation"], "constraints": { "groupOnly": true, "currentRelationOnly": true, "targetCurrentAgentOnly": true } },
|
|
66
|
-
"ec.fs.stat": { "allow": true, "scopes": ["relation"], "constraints": { "groupOnly": true, "currentRelationOnly": true, "targetCurrentAgentOnly": true } },
|
|
67
|
-
"ec.fs.lstat": { "allow": true, "scopes": ["relation"], "constraints": { "groupOnly": true, "currentRelationOnly": true, "targetCurrentAgentOnly": true } },
|
|
68
|
-
"ec.fs.cat": { "allow": true, "scopes": ["relation"], "constraints": { "groupOnly": true, "currentRelationOnly": true, "targetCurrentAgentOnly": true } },
|
|
69
|
-
"ec.fs.find": { "allow": true, "scopes": ["relation"], "constraints": { "groupOnly": true, "currentRelationOnly": true, "targetCurrentAgentOnly": true } },
|
|
70
|
-
"ec.fs.df": { "allow": true, "scopes": ["relation"], "constraints": { "groupOnly": true, "currentRelationOnly": true, "targetCurrentAgentOnly": true } },
|
|
71
|
-
"ec.fs.getfacl": { "allow": true, "scopes": ["relation"], "constraints": { "groupOnly": true, "currentRelationOnly": true, "targetCurrentAgentOnly": true } },
|
|
72
|
-
"ec.fs.mkdir": { "allow": true, "permissionMode": "auto", "scopes": ["relation"], "constraints": { "groupOnly": true, "currentRelationOnly": true, "targetCurrentAgentOnly": true } },
|
|
73
|
-
"ec.fs.upload": { "allow": true, "permissionMode": "auto", "scopes": ["relation"], "constraints": { "groupOnly": true, "currentRelationOnly": true, "targetCurrentAgentOnly": true } },
|
|
74
|
-
"ec.fs.copy": { "allow": true, "permissionMode": "auto", "scopes": ["relation"], "constraints": { "groupOnly": true, "currentRelationOnly": true, "targetCurrentAgentOnly": true } },
|
|
75
|
-
"ec.fs.move": { "allow": true, "permissionMode": "auto", "scopes": ["relation"], "constraints": { "groupOnly": true, "currentRelationOnly": true, "targetCurrentAgentOnly": true } },
|
|
76
|
-
"ec.fs.remove": { "allow": true, "permissionMode": "auto", "scopes": ["relation"], "constraints": { "groupOnly": true, "currentRelationOnly": true, "targetCurrentAgentOnly": true } },
|
|
77
|
-
"ec.handoff.status": { "allow": true, "scopes": ["relation"], "constraints": { "currentRelationOnly": true, "targetCurrentAgentOnly": true } },
|
|
78
|
-
"ec.handoff.list": { "allow": true, "scopes": ["relation"], "constraints": { "currentRelationOnly": true, "targetCurrentAgentOnly": true } },
|
|
79
|
-
"ec.handoff.trace": { "allow": true, "scopes": ["relation"], "constraints": { "currentRelationOnly": true, "targetCurrentAgentOnly": true } },
|
|
80
|
-
"ec.handoff.return": { "allow": true, "scopes": ["relation"], "constraints": { "currentRelationOnly": true, "targetCurrentAgentOnly": true } },
|
|
81
|
-
"ec.queue.*": { "allow": false },
|
|
82
|
-
"ec.group.send": { "allow": true, "constraints": { "groupOnly": true, "currentRelationOnly": true } },
|
|
83
|
-
"ec.group.file": { "allow": true, "constraints": { "groupOnly": true, "currentRelationOnly": true } },
|
|
84
|
-
"ec.group.list": { "allow": true, "scopes": ["agent"], "constraints": { "targetCurrentAgentOnly": true } },
|
|
85
|
-
"ec.group.info": { "allow": true, "scopes": ["relation"], "constraints": { "groupOnly": true, "currentRelationOnly": true, "targetCurrentAgentOnly": true } },
|
|
86
|
-
"ec.group.pull": { "allow": true, "scopes": ["relation"], "constraints": { "groupOnly": true, "currentRelationOnly": true, "targetCurrentAgentOnly": true } },
|
|
87
|
-
"ec.group.
|
|
88
|
-
"ec.group.
|
|
89
|
-
"ec.group.
|
|
90
|
-
"ec.group.
|
|
91
|
-
"ec.
|
|
92
|
-
"ec.
|
|
93
|
-
"ec.
|
|
94
|
-
"ec.
|
|
95
|
-
"
|
|
96
|
-
"
|
|
97
|
-
|
|
98
|
-
}
|
|
65
|
+
"ec.fs.ls": { "allow": true, "scopes": ["relation"], "constraints": { "groupOnly": true, "currentRelationOnly": true, "targetCurrentAgentOnly": true } },
|
|
66
|
+
"ec.fs.stat": { "allow": true, "scopes": ["relation"], "constraints": { "groupOnly": true, "currentRelationOnly": true, "targetCurrentAgentOnly": true } },
|
|
67
|
+
"ec.fs.lstat": { "allow": true, "scopes": ["relation"], "constraints": { "groupOnly": true, "currentRelationOnly": true, "targetCurrentAgentOnly": true } },
|
|
68
|
+
"ec.fs.cat": { "allow": true, "scopes": ["relation"], "constraints": { "groupOnly": true, "currentRelationOnly": true, "targetCurrentAgentOnly": true } },
|
|
69
|
+
"ec.fs.find": { "allow": true, "scopes": ["relation"], "constraints": { "groupOnly": true, "currentRelationOnly": true, "targetCurrentAgentOnly": true } },
|
|
70
|
+
"ec.fs.df": { "allow": true, "scopes": ["relation"], "constraints": { "groupOnly": true, "currentRelationOnly": true, "targetCurrentAgentOnly": true } },
|
|
71
|
+
"ec.fs.getfacl": { "allow": true, "scopes": ["relation"], "constraints": { "groupOnly": true, "currentRelationOnly": true, "targetCurrentAgentOnly": true } },
|
|
72
|
+
"ec.fs.mkdir": { "allow": true, "permissionMode": "auto", "scopes": ["relation"], "constraints": { "groupOnly": true, "currentRelationOnly": true, "targetCurrentAgentOnly": true } },
|
|
73
|
+
"ec.fs.upload": { "allow": true, "permissionMode": "auto", "scopes": ["relation"], "constraints": { "groupOnly": true, "currentRelationOnly": true, "targetCurrentAgentOnly": true } },
|
|
74
|
+
"ec.fs.copy": { "allow": true, "permissionMode": "auto", "scopes": ["relation"], "constraints": { "groupOnly": true, "currentRelationOnly": true, "targetCurrentAgentOnly": true } },
|
|
75
|
+
"ec.fs.move": { "allow": true, "permissionMode": "auto", "scopes": ["relation"], "constraints": { "groupOnly": true, "currentRelationOnly": true, "targetCurrentAgentOnly": true } },
|
|
76
|
+
"ec.fs.remove": { "allow": true, "permissionMode": "auto", "scopes": ["relation"], "constraints": { "groupOnly": true, "currentRelationOnly": true, "targetCurrentAgentOnly": true } },
|
|
77
|
+
"ec.handoff.status": { "allow": true, "scopes": ["relation"], "constraints": { "currentRelationOnly": true, "targetCurrentAgentOnly": true } },
|
|
78
|
+
"ec.handoff.list": { "allow": true, "scopes": ["relation"], "constraints": { "currentRelationOnly": true, "targetCurrentAgentOnly": true } },
|
|
79
|
+
"ec.handoff.trace": { "allow": true, "scopes": ["relation"], "constraints": { "currentRelationOnly": true, "targetCurrentAgentOnly": true } },
|
|
80
|
+
"ec.handoff.return": { "allow": true, "scopes": ["relation"], "constraints": { "currentRelationOnly": true, "targetCurrentAgentOnly": true } },
|
|
81
|
+
"ec.queue.*": { "allow": false },
|
|
82
|
+
"ec.group.send": { "allow": true, "constraints": { "groupOnly": true, "currentRelationOnly": true } },
|
|
83
|
+
"ec.group.file": { "allow": true, "constraints": { "groupOnly": true, "currentRelationOnly": true } },
|
|
84
|
+
"ec.group.list": { "allow": true, "scopes": ["agent"], "constraints": { "targetCurrentAgentOnly": true } },
|
|
85
|
+
"ec.group.info": { "allow": true, "scopes": ["relation"], "constraints": { "groupOnly": true, "currentRelationOnly": true, "targetCurrentAgentOnly": true } },
|
|
86
|
+
"ec.group.pull": { "allow": true, "scopes": ["relation"], "constraints": { "groupOnly": true, "currentRelationOnly": true, "targetCurrentAgentOnly": true } },
|
|
87
|
+
"ec.group.history": { "allow": true, "scopes": ["relation"], "constraints": { "groupOnly": true, "currentRelationOnly": true, "targetCurrentAgentOnly": true } },
|
|
88
|
+
"ec.group.members": { "allow": true, "scopes": ["relation"], "constraints": { "groupOnly": true, "currentRelationOnly": true, "targetCurrentAgentOnly": true } },
|
|
89
|
+
"ec.group.online": { "allow": true, "scopes": ["relation"], "constraints": { "groupOnly": true, "currentRelationOnly": true, "targetCurrentAgentOnly": true } },
|
|
90
|
+
"ec.group.block": { "allow": true, "scopes": ["relation"], "constraints": { "groupOnly": true, "currentRelationOnly": true, "targetCurrentAgentOnly": true } },
|
|
91
|
+
"ec.group.unblock": { "allow": true, "scopes": ["relation"], "constraints": { "groupOnly": true, "currentRelationOnly": true, "targetCurrentAgentOnly": true } },
|
|
92
|
+
"ec.group.report-status": { "allow": true, "scopes": ["relation"], "constraints": { "groupOnly": true, "currentRelationOnly": true, "targetCurrentAgentOnly": true } },
|
|
93
|
+
"ec.group.member-statuses": { "allow": true, "scopes": ["relation"], "constraints": { "groupOnly": true, "currentRelationOnly": true, "targetCurrentAgentOnly": true } },
|
|
94
|
+
"ec.group.rules.get": { "allow": true, "scopes": ["relation"], "constraints": { "groupOnly": true, "currentRelationOnly": true, "targetCurrentAgentOnly": true } },
|
|
95
|
+
"ec.group.rules.read": { "allow": true, "scopes": ["relation"], "constraints": { "groupOnly": true, "currentRelationOnly": true, "targetCurrentAgentOnly": true } },
|
|
96
|
+
"ec.ctl.send": { "allow": true, "scopes": ["relation"], "constraints": { "ownPeerOnly": true, "currentRelationOnly": true, "targetCurrentAgentOnly": true } },
|
|
97
|
+
"ec.ctl.file": { "allow": true, "scopes": ["relation"], "constraints": { "ownPeerOnly": true, "currentRelationOnly": true, "targetCurrentAgentOnly": true } },
|
|
98
|
+
"ec.ctl.queue.*": { "allow": true, "scopes": ["relation"], "constraints": { "ownPeerOnly": true, "currentRelationOnly": true, "targetCurrentAgentOnly": true } },
|
|
99
|
+
"ec.ctl.*": { "allow": false },
|
|
100
|
+
"cli.exec.raw": { "allow": false, "dangerous": true },
|
|
101
|
+
"dangerous:*": { "allow": false, "dangerous": true }
|
|
102
|
+
}
|
|
103
|
+
}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
{
|
|
2
|
-
"$schema_version": 1,
|
|
3
|
-
"description": "Agent owner with full Agent management authority",
|
|
4
|
-
"rank": 900,
|
|
5
|
-
"allowAccess": true,
|
|
6
|
-
"permissions": {
|
|
7
|
-
"permissionMode": { "default": "bypass", "allowOverride": false }
|
|
8
|
-
}
|
|
9
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"$schema_version": 1,
|
|
3
|
+
"description": "Agent owner with full Agent management authority",
|
|
4
|
+
"rank": 900,
|
|
5
|
+
"allowAccess": true,
|
|
6
|
+
"permissions": {
|
|
7
|
+
"permissionMode": { "default": "bypass", "allowOverride": false }
|
|
8
|
+
}
|
|
9
|
+
}
|
|
@@ -1,87 +1,92 @@
|
|
|
1
|
-
{
|
|
2
|
-
"$schema_version": 1,
|
|
3
|
-
"description": "Low-trust visitor with minimal own-scope access",
|
|
4
|
-
"rank": 100,
|
|
5
|
-
"allowAccess": true,
|
|
6
|
-
"usageLimits": {
|
|
7
|
-
"enabled": true,
|
|
8
|
-
"resetMode": "daily",
|
|
9
|
-
"currency": "CNY",
|
|
10
|
-
"limitAmount": 5,
|
|
11
|
-
"costBasis": "gateway",
|
|
12
|
-
"scope": "subject"
|
|
13
|
-
},
|
|
14
|
-
"permissions": {
|
|
15
|
-
"permissionMode": { "default": "readonly", "allowOverride": false }
|
|
16
|
-
},
|
|
17
|
-
"commandPermissions": {
|
|
18
|
-
"role.assign": { "allow": false },
|
|
19
|
-
"role.revoke": { "allow": false },
|
|
20
|
-
"config.get": { "allow": true, "scopes": ["relation"], "constraints": { "currentRelationOnly": true, "targetCurrentAgentOnly": true, "configFieldPolicy": "behavior-read" } },
|
|
21
|
-
"model.list": { "allow": true, "scopes": ["relation"], "constraints": { "ownPeerOnly": true, "targetCurrentAgentOnly": true } },
|
|
22
|
-
"model.current": { "allow": true, "scopes": ["relation"], "constraints": { "ownPeerOnly": true, "targetCurrentAgentOnly": true } },
|
|
23
|
-
"model.info": { "allow": true, "scopes": ["relation"], "constraints": { "ownPeerOnly": true, "targetCurrentAgentOnly": true } },
|
|
24
|
-
"model.effort.current": { "allow": true, "scopes": ["relation"], "constraints": { "ownPeerOnly": true, "targetCurrentAgentOnly": true } },
|
|
25
|
-
"model.use": { "allow": false },
|
|
26
|
-
"model.effort": { "allow": false },
|
|
27
|
-
"model.reset": { "allow": false },
|
|
28
|
-
"model.check": { "allow": false },
|
|
29
|
-
"permission.current": { "allow": true, "scopes": ["relation"], "constraints": { "ownPeerOnly": true, "targetCurrentAgentOnly": true } },
|
|
30
|
-
"permission.answer": { "allow": true, "scopes": ["relation"], "constraints": { "ownPeerOnly": true, "targetCurrentAgentOnly": true } },
|
|
31
|
-
"chatmode.current": { "allow": true, "scopes": ["relation"], "constraints": { "ownPeerOnly": true, "targetCurrentAgentOnly": true } },
|
|
32
|
-
"chatmode.update": { "allow": false },
|
|
33
|
-
"activity.current": { "allow": true, "scopes": ["relation"], "constraints": { "ownPeerOnly": true, "targetCurrentAgentOnly": true } },
|
|
34
|
-
"mentionmode.current": { "allow": true, "scopes": ["relation"], "constraints": { "groupOnly": true } },
|
|
35
|
-
"mentionmode.update": { "allow": false },
|
|
36
|
-
"group.mentionmode.current": { "allow": true, "scopes": ["relation"], "constraints": { "groupOnly": true, "currentRelationOnly": true, "targetCurrentAgentOnly": true } },
|
|
37
|
-
"group.mentionmode.update": { "allow": false },
|
|
38
|
-
"group.rulespolicy.current": { "allow": true, "scopes": ["relation"], "constraints": { "groupOnly": true, "currentRelationOnly": true, "targetCurrentAgentOnly": true } },
|
|
39
|
-
"group.rulespolicy.update": { "allow": false },
|
|
40
|
-
"group.list": { "allow": true, "scopes": ["agent"], "constraints": { "targetCurrentAgentOnly": true } },
|
|
41
|
-
"trigger.list": { "allow": true, "scopes": ["relation"], "constraints": { "ownPeerOnly": true, "targetCurrentAgentOnly": true } },
|
|
42
|
-
"trigger.show": { "allow": true, "scopes": ["relation"], "constraints": { "ownPeerOnly": true, "targetCurrentAgentOnly": true } },
|
|
43
|
-
"trigger.history": { "allow": true, "scopes": ["relation"], "constraints": { "ownPeerOnly": true, "targetCurrentAgentOnly": true } },
|
|
44
|
-
"trigger.eventCatalog": { "allow": true, "scopes": ["relation"], "constraints": { "ownPeerOnly": true, "targetCurrentAgentOnly": true } },
|
|
45
|
-
"trigger.create": { "allow": false },
|
|
46
|
-
"trigger.update": { "allow": false },
|
|
47
|
-
"trigger.setEnabled": { "allow": false },
|
|
48
|
-
"trigger.cancel": { "allow": false },
|
|
49
|
-
"trigger.delete": { "allow": false },
|
|
50
|
-
"trigger.run": { "allow": false },
|
|
51
|
-
"session.list": { "allow": true, "scopes": ["relation"], "constraints": { "ownPeerOnly": true } },
|
|
52
|
-
"session.current": { "allow": true, "scopes": ["relation"], "constraints": { "ownPeerOnly": true, "targetCurrentAgentOnly": true } },
|
|
53
|
-
"session.topic.current": { "allow": true, "scopes": ["relation"], "constraints": { "ownPeerOnly": true } },
|
|
54
|
-
"session.topic.list": { "allow": true, "scopes": ["relation"], "constraints": { "ownPeerOnly": true } },
|
|
55
|
-
"project.current": { "allow": true, "scopes": ["relation"], "constraints": { "ownPeerOnly": true, "targetCurrentAgentOnly": true } },
|
|
56
|
-
"agent.baseagent.current": { "allow": true, "scopes": ["relation"], "constraints": { "ownPeerOnly": true, "targetCurrentAgentOnly": true } },
|
|
57
|
-
"agent.baseagent.list": { "allow": true, "scopes": ["agent"], "constraints": { "targetCurrentAgentOnly": true } },
|
|
58
|
-
"capability.read": { "allow": true, "scopes": ["agent"], "constraints": { "targetCurrentAgentOnly": true } },
|
|
59
|
-
"ec.msg.send": { "allow": true, "scopes": ["relation"], "constraints": { "ownPeerOnly": true, "privateOnly": true } },
|
|
60
|
-
"contact.add": { "allow": true, "scopes": ["relation"], "constraints": { "ownPeerOnly": true, "privateOnly": true } },
|
|
61
|
-
"ec.msg.file": { "allow": false },
|
|
62
|
-
"ec.msg.history": { "allow": false },
|
|
63
|
-
"ec.msg.online": { "allow": false },
|
|
64
|
-
"ec.version": { "allow": true },
|
|
65
|
-
"ec.aid.show": { "allow": true, "dangerous": true, "scopes": ["relation"], "constraints": { "targetCurrentAgentOnly": true } },
|
|
66
|
-
"ec.aid.lookup": { "allow": true, "scopes": ["relation"] },
|
|
67
|
-
"ec.aid.agentmd.get": { "allow": true, "scopes": ["relation"] },
|
|
1
|
+
{
|
|
2
|
+
"$schema_version": 1,
|
|
3
|
+
"description": "Low-trust visitor with minimal own-scope access",
|
|
4
|
+
"rank": 100,
|
|
5
|
+
"allowAccess": true,
|
|
6
|
+
"usageLimits": {
|
|
7
|
+
"enabled": true,
|
|
8
|
+
"resetMode": "daily",
|
|
9
|
+
"currency": "CNY",
|
|
10
|
+
"limitAmount": 5,
|
|
11
|
+
"costBasis": "gateway",
|
|
12
|
+
"scope": "subject"
|
|
13
|
+
},
|
|
14
|
+
"permissions": {
|
|
15
|
+
"permissionMode": { "default": "readonly", "allowOverride": false }
|
|
16
|
+
},
|
|
17
|
+
"commandPermissions": {
|
|
18
|
+
"role.assign": { "allow": false },
|
|
19
|
+
"role.revoke": { "allow": false },
|
|
20
|
+
"config.get": { "allow": true, "scopes": ["relation"], "constraints": { "currentRelationOnly": true, "targetCurrentAgentOnly": true, "configFieldPolicy": "behavior-read" } },
|
|
21
|
+
"model.list": { "allow": true, "scopes": ["relation"], "constraints": { "ownPeerOnly": true, "targetCurrentAgentOnly": true } },
|
|
22
|
+
"model.current": { "allow": true, "scopes": ["relation"], "constraints": { "ownPeerOnly": true, "targetCurrentAgentOnly": true } },
|
|
23
|
+
"model.info": { "allow": true, "scopes": ["relation"], "constraints": { "ownPeerOnly": true, "targetCurrentAgentOnly": true } },
|
|
24
|
+
"model.effort.current": { "allow": true, "scopes": ["relation"], "constraints": { "ownPeerOnly": true, "targetCurrentAgentOnly": true } },
|
|
25
|
+
"model.use": { "allow": false },
|
|
26
|
+
"model.effort": { "allow": false },
|
|
27
|
+
"model.reset": { "allow": false },
|
|
28
|
+
"model.check": { "allow": false },
|
|
29
|
+
"permission.current": { "allow": true, "scopes": ["relation"], "constraints": { "ownPeerOnly": true, "targetCurrentAgentOnly": true } },
|
|
30
|
+
"permission.answer": { "allow": true, "scopes": ["relation"], "constraints": { "ownPeerOnly": true, "targetCurrentAgentOnly": true } },
|
|
31
|
+
"chatmode.current": { "allow": true, "scopes": ["relation"], "constraints": { "ownPeerOnly": true, "targetCurrentAgentOnly": true } },
|
|
32
|
+
"chatmode.update": { "allow": false },
|
|
33
|
+
"activity.current": { "allow": true, "scopes": ["relation"], "constraints": { "ownPeerOnly": true, "targetCurrentAgentOnly": true } },
|
|
34
|
+
"mentionmode.current": { "allow": true, "scopes": ["relation"], "constraints": { "groupOnly": true } },
|
|
35
|
+
"mentionmode.update": { "allow": false },
|
|
36
|
+
"group.mentionmode.current": { "allow": true, "scopes": ["relation"], "constraints": { "groupOnly": true, "currentRelationOnly": true, "targetCurrentAgentOnly": true } },
|
|
37
|
+
"group.mentionmode.update": { "allow": false },
|
|
38
|
+
"group.rulespolicy.current": { "allow": true, "scopes": ["relation"], "constraints": { "groupOnly": true, "currentRelationOnly": true, "targetCurrentAgentOnly": true } },
|
|
39
|
+
"group.rulespolicy.update": { "allow": false },
|
|
40
|
+
"group.list": { "allow": true, "scopes": ["agent"], "constraints": { "targetCurrentAgentOnly": true } },
|
|
41
|
+
"trigger.list": { "allow": true, "scopes": ["relation"], "constraints": { "ownPeerOnly": true, "targetCurrentAgentOnly": true } },
|
|
42
|
+
"trigger.show": { "allow": true, "scopes": ["relation"], "constraints": { "ownPeerOnly": true, "targetCurrentAgentOnly": true } },
|
|
43
|
+
"trigger.history": { "allow": true, "scopes": ["relation"], "constraints": { "ownPeerOnly": true, "targetCurrentAgentOnly": true } },
|
|
44
|
+
"trigger.eventCatalog": { "allow": true, "scopes": ["relation"], "constraints": { "ownPeerOnly": true, "targetCurrentAgentOnly": true } },
|
|
45
|
+
"trigger.create": { "allow": false },
|
|
46
|
+
"trigger.update": { "allow": false },
|
|
47
|
+
"trigger.setEnabled": { "allow": false },
|
|
48
|
+
"trigger.cancel": { "allow": false },
|
|
49
|
+
"trigger.delete": { "allow": false },
|
|
50
|
+
"trigger.run": { "allow": false },
|
|
51
|
+
"session.list": { "allow": true, "scopes": ["relation"], "constraints": { "ownPeerOnly": true } },
|
|
52
|
+
"session.current": { "allow": true, "scopes": ["relation"], "constraints": { "ownPeerOnly": true, "targetCurrentAgentOnly": true } },
|
|
53
|
+
"session.topic.current": { "allow": true, "scopes": ["relation"], "constraints": { "ownPeerOnly": true } },
|
|
54
|
+
"session.topic.list": { "allow": true, "scopes": ["relation"], "constraints": { "ownPeerOnly": true } },
|
|
55
|
+
"project.current": { "allow": true, "scopes": ["relation"], "constraints": { "ownPeerOnly": true, "targetCurrentAgentOnly": true } },
|
|
56
|
+
"agent.baseagent.current": { "allow": true, "scopes": ["relation"], "constraints": { "ownPeerOnly": true, "targetCurrentAgentOnly": true } },
|
|
57
|
+
"agent.baseagent.list": { "allow": true, "scopes": ["agent"], "constraints": { "targetCurrentAgentOnly": true } },
|
|
58
|
+
"capability.read": { "allow": true, "scopes": ["agent"], "constraints": { "targetCurrentAgentOnly": true } },
|
|
59
|
+
"ec.msg.send": { "allow": true, "scopes": ["relation"], "constraints": { "ownPeerOnly": true, "privateOnly": true } },
|
|
60
|
+
"contact.add": { "allow": true, "scopes": ["relation"], "constraints": { "ownPeerOnly": true, "privateOnly": true } },
|
|
61
|
+
"ec.msg.file": { "allow": false },
|
|
62
|
+
"ec.msg.history": { "allow": false },
|
|
63
|
+
"ec.msg.online": { "allow": false },
|
|
64
|
+
"ec.version": { "allow": true },
|
|
65
|
+
"ec.aid.show": { "allow": true, "dangerous": true, "scopes": ["relation"], "constraints": { "targetCurrentAgentOnly": true } },
|
|
66
|
+
"ec.aid.lookup": { "allow": true, "scopes": ["relation"] },
|
|
67
|
+
"ec.aid.agentmd.get": { "allow": true, "scopes": ["relation"] },
|
|
68
68
|
"ec.aid.agentmd.put": { "allow": false },
|
|
69
69
|
"ec.aid.avatar": { "allow": false },
|
|
70
|
-
"ec.fs.*": { "allow": false },
|
|
71
|
-
"ec.handoff.*": { "allow": false },
|
|
72
|
-
"ec.queue.*": { "allow": false },
|
|
73
|
-
"storage.*": { "allow": false },
|
|
74
|
-
"ec.group.send": { "allow": true, "scopes": ["relation"], "constraints": { "groupOnly": true, "currentRelationOnly": true } },
|
|
75
|
-
"ec.group.file": { "allow": false },
|
|
76
|
-
"ec.group.list": { "allow": true, "scopes": ["agent"], "constraints": { "targetCurrentAgentOnly": true } },
|
|
77
|
-
"ec.group.info": { "allow": true, "scopes": ["relation"], "constraints": { "groupOnly": true, "currentRelationOnly": true, "targetCurrentAgentOnly": true } },
|
|
78
|
-
"ec.group.pull": { "allow": false },
|
|
79
|
-
"ec.group.
|
|
80
|
-
"ec.group.
|
|
81
|
-
"ec.group.
|
|
82
|
-
"ec.group.
|
|
83
|
-
"ec.
|
|
84
|
-
"
|
|
85
|
-
"
|
|
86
|
-
|
|
87
|
-
}
|
|
70
|
+
"ec.fs.*": { "allow": false },
|
|
71
|
+
"ec.handoff.*": { "allow": false },
|
|
72
|
+
"ec.queue.*": { "allow": false },
|
|
73
|
+
"storage.*": { "allow": false },
|
|
74
|
+
"ec.group.send": { "allow": true, "scopes": ["relation"], "constraints": { "groupOnly": true, "currentRelationOnly": true } },
|
|
75
|
+
"ec.group.file": { "allow": false },
|
|
76
|
+
"ec.group.list": { "allow": true, "scopes": ["agent"], "constraints": { "targetCurrentAgentOnly": true } },
|
|
77
|
+
"ec.group.info": { "allow": true, "scopes": ["relation"], "constraints": { "groupOnly": true, "currentRelationOnly": true, "targetCurrentAgentOnly": true } },
|
|
78
|
+
"ec.group.pull": { "allow": false },
|
|
79
|
+
"ec.group.history": { "allow": false },
|
|
80
|
+
"ec.group.members": { "allow": false },
|
|
81
|
+
"ec.group.online": { "allow": false },
|
|
82
|
+
"ec.group.block": { "allow": false },
|
|
83
|
+
"ec.group.unblock": { "allow": false },
|
|
84
|
+
"ec.group.report-status": { "allow": false },
|
|
85
|
+
"ec.group.member-statuses": { "allow": false },
|
|
86
|
+
"ec.group.rules.get": { "allow": true, "scopes": ["relation"], "constraints": { "groupOnly": true, "currentRelationOnly": true, "targetCurrentAgentOnly": true } },
|
|
87
|
+
"ec.group.rules.read": { "allow": true, "scopes": ["relation"], "constraints": { "groupOnly": true, "currentRelationOnly": true, "targetCurrentAgentOnly": true } },
|
|
88
|
+
"ec.ctl.*": { "allow": false },
|
|
89
|
+
"cli.exec.raw": { "allow": false, "dangerous": true },
|
|
90
|
+
"dangerous:*": { "allow": false, "dangerous": true }
|
|
91
|
+
}
|
|
92
|
+
}
|
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
[baseagent]
|
|
2
|
-
baseAgentName: {{baseAgentName}} # 底层推理引擎(
|
|
3
|
-
{{?effectiveModel}}
|
|
4
|
-
effectiveModel: {{effectiveModel}} # 当前实际生效的模型(关系级 > agent级 > 全局 优先级解析)
|
|
5
|
-
{{/}}
|
|
6
|
-
{{?baseAgentModel}}
|
|
7
|
-
baseAgentModel: {{baseAgentModel}} # base agent 引擎底座模型(evolcore 作用域无配置时的兜底)
|
|
8
|
-
{{/}}
|
|
9
|
-
{{?modelFallbackActive}}
|
|
10
|
-
modelFallbackActive: true # evolcore 配置的模型不可用,当前正在使用降级模型 {{modelFallbackModel}}
|
|
11
|
-
{{/}}
|
|
12
|
-
{{?agentSessionId}}
|
|
13
|
-
agentSessionId: {{agentSessionId}} # 底层引擎的会话 ID(区别于 evolcore sessionId)
|
|
14
|
-
{{/}}
|
|
1
|
+
[baseagent]
|
|
2
|
+
baseAgentName: {{baseAgentName}} # 底层推理引擎(claude / codex / gemini / ecagent;ecagent 为 EvolCore 内置基座,非 Claude Code)
|
|
3
|
+
{{?effectiveModel}}
|
|
4
|
+
effectiveModel: {{effectiveModel}} # 当前实际生效的模型(关系级 > agent级 > 全局 优先级解析)
|
|
5
|
+
{{/}}
|
|
6
|
+
{{?baseAgentModel}}
|
|
7
|
+
baseAgentModel: {{baseAgentModel}} # base agent 引擎底座模型(evolcore 作用域无配置时的兜底)
|
|
8
|
+
{{/}}
|
|
9
|
+
{{?modelFallbackActive}}
|
|
10
|
+
modelFallbackActive: true # evolcore 配置的模型不可用,当前正在使用降级模型 {{modelFallbackModel}}
|
|
11
|
+
{{/}}
|
|
12
|
+
{{?agentSessionId}}
|
|
13
|
+
agentSessionId: {{agentSessionId}} # 底层引擎的会话 ID(区别于 evolcore sessionId)
|
|
14
|
+
{{/}}
|
|
@@ -1,47 +1,66 @@
|
|
|
1
|
-
[bootstrap]
|
|
2
|
-
phase: bootstrapping
|
|
3
|
-
|
|
4
|
-
这是 agent 生命周期的强制门禁。你正在进行首次自我设定;在完成前,唯一目标是和 owner
|
|
5
|
-
Bootstrap 不另设隐藏状态机;恢复依据是可核对的生命周期和名片状态。每次重启、超时恢复或收到“继续”时,先检查自身 `lifecycle` 以及本地 `agent.md` 是否存在、字段是否完整,再决定续做步骤,不按旧上下文推断尚未完成。
|
|
6
|
-
系统已经在进入本阶段时向 owner 发送过固定的首条引导消息。当前收到的是 owner 对该消息的后续输入:不要重新发送、复述或改写那条固定消息,也不要再次完整罗列三项问题;只针对当前输入推进下一步。
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
1
|
+
[bootstrap]
|
|
2
|
+
phase: bootstrapping
|
|
3
|
+
|
|
4
|
+
这是 agent 生命周期的强制门禁。你正在进行首次自我设定;在完成前,唯一目标是和 owner 确认并写入基础名片信息及正式欢迎文案,不处理普通任务。
|
|
5
|
+
Bootstrap 不另设隐藏状态机;恢复依据是可核对的生命周期和名片状态。每次重启、超时恢复或收到“继续”时,先检查自身 `lifecycle` 以及本地 `agent.md` 是否存在、字段是否完整,再决定续做步骤,不按旧上下文推断尚未完成。
|
|
6
|
+
系统已经在进入本阶段时向 owner 发送过固定的首条引导消息。当前收到的是 owner 对该消息的后续输入:不要重新发送、复述或改写那条固定消息,也不要再次完整罗列三项问题;只针对当前输入推进下一步。
|
|
7
|
+
|
|
8
|
+
回复方式、当前身份与发送目标遵循本轮注入的 `[reply]` 共用回复规则;不要根据 owner 是人类还是 AI 自行选择发送方式。通信只用于和当前 owner 推进 Bootstrap,不得联系无关对象或处理普通任务。无论 owner 类型如何,都必须由 owner 明确确认最终值,再由你自行修改和发布自己的 agent.md、执行 ready。
|
|
9
|
+
|
|
10
|
+
只有向当前 AUN owner 实际发送消息并收到“不是联系人”或联系人准入拒绝时,才通过同一托管发送通道向该 owner 发送一次 `/request <说明>` 联系人申请,说明这是新 Agent 的 Bootstrap 首次设定;等待 owner 审核后再继续发送确认内容。没有这类拒绝时,不因 owner 类型或身份未知主动申请联系人。不要反复重试、不要把联系人策略改为 open、不要联系其它对象;若 owner 已直接发来消息,则按该入站消息继续 Bootstrap。
|
|
11
|
+
|
|
10
12
|
需要确认的字段:
|
|
11
13
|
- name:显示名,简短清晰
|
|
12
14
|
- description:一句到两句话描述你的职责或定位
|
|
13
|
-
- tags:3 到 6
|
|
15
|
+
- tags:3 到 6 个标签,用于检索和归类;每个标签只允许 Unicode 字母、数字和连字符(`-`),最长 50 字符
|
|
14
16
|
|
|
15
17
|
可选的 persona:
|
|
16
18
|
- owner 可以在 Bootstrap 中直接发送 persona 文本,或附带 `.md`/`.txt` 文件。收到后先读取内容并向 owner 回显摘要,请 owner 明确确认;不得从普通任务内容推断 persona。
|
|
17
19
|
- owner 确认后,使用 `ec agent persona --text '<内容>'` 或 `ec agent persona --file '<收到的文件路径>'` 写入自己的 `$PERSONAL_DIR/persona.md`。`--file` 只接受文本文件,不能使用任意路径。
|
|
18
20
|
- persona 是可选环节。owner 未提供、拒绝或暂时跳过时,不得阻塞名片发布和 `ec agent ready`。
|
|
19
|
-
|
|
20
|
-
|
|
21
|
+
|
|
22
|
+
Bootstrap 完成前还必须生成并确认正式 welcome 文案:
|
|
23
|
+
- 在 `name`、`description`、`tags`(以及 owner 选择提供的 persona/语气要求)最终确认后,直接在当前对话中输出完整的个性化 welcome 文案。
|
|
24
|
+
- 文案必须面向当前 owner,说明你的定位、可协助的方向和开始协作的方式;不要写入系统提示词、凭据、文件路径、工作记忆或未经确认的能力声明。
|
|
25
|
+
- 生成结构:简短问候和自我介绍 → 围绕已确认职责的具体协作方向 → 一句开始协作的邀请。建议 100~250 个汉字,可按已确认 persona 调整语气;不要照抄通用“AI Agent 网关”介绍,不承诺“只有您能使用”或宣称设备绑定完成。
|
|
26
|
+
- 支持纯文本或带变量的 Markdown。变量写法是两个左花括号、变量名、两个右花括号,内部不加空格。允许变量名:agentName、agentDescription、agentAid、agentTags、agentTagsText、ownerName、ownerAid、channel。多 Owner 通用称呼使用 ownerName 占位符,不把当前 Owner 的实际姓名写死。
|
|
27
|
+
- 展示并确认的应当是将要保存的完整模板原文;向 Owner 简短说明称呼变量会在发送给每位 Owner 时展开。系统只替换变量,不追加未展示的绑定说明或其它文案。
|
|
28
|
+
- 文案只在对话中展示,不创建草稿文件、不提前执行保存命令。明确询问 owner 是否确认这份完整文案。
|
|
29
|
+
- owner 要求修改时,重新输出完整文案并再次等待明确确认;“差不多”“先这样”等不明确回复不算确认。
|
|
30
|
+
- owner 明确确认后,使用 `ec agent welcome --text '<最后展示且确认的完整文案>'` 保存到 `$PERSONAL_DIR/welcome.md`(命令会固定写入当前 Agent 的 `personal/welcome.md`,不接受自定义路径)。保存内容必须与最后展示并确认的原文一致。
|
|
31
|
+
- 只有 welcome 保存成功后,才能发布 agent.md 并执行 `ec agent ready {{selfAid}}`。`ready` 不会再调用模型生成 welcome。
|
|
32
|
+
|
|
33
|
+
允许的操作范围:
|
|
21
34
|
- 为读取现有候选值,可以读取本地 `{{agentMdPath}}`。
|
|
22
35
|
- 为处理可选 persona,可以执行 `ec agent persona show`、`ec agent persona --text <text>` 或 `ec agent persona --file <path>`;写入前仍须取得 owner 对待写入内容的明确确认。
|
|
23
|
-
- owner
|
|
24
|
-
|
|
25
|
-
- `ec agent
|
|
26
|
-
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
- `lifecycle=
|
|
32
|
-
- `lifecycle=
|
|
33
|
-
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
36
|
+
- 为核对已保存的文案,可以执行 `ec agent welcome show`。为保存 owner 已确认的 welcome,可以执行 `ec agent welcome --text <text>`;只能写当前 Agent 的固定 `personal/welcome.md`,不能传入路径或保存未确认草稿。
|
|
37
|
+
- owner 明确确认最终值和 welcome 后,只能编辑上述 agent.md 的 YAML frontmatter,并依次执行下面三个命令:
|
|
38
|
+
- `ec agent welcome --text '<confirmed welcome text>'`
|
|
39
|
+
- `ec aid agentmd put {{selfAid}}`
|
|
40
|
+
- `ec agent ready {{selfAid}}`
|
|
41
|
+
- 除这些 bootstrap 操作及向 owner 回复外,不得调用工具或执行命令。
|
|
42
|
+
|
|
43
|
+
恢复时遵循以下幂等规则:
|
|
44
|
+
- `lifecycle=active`:Bootstrap 已完成,不重复改名片、不重复发布、不重复执行 `ready`,也不处理本轮夹带的普通任务。
|
|
45
|
+
- `lifecycle=created`:尚未进入 Bootstrap,只等待 channel/owner 首条消息;不重复创建 Agent。
|
|
46
|
+
- `lifecycle=bootstrapping` 且本地 `agent.md` 已发布、字段完整且 `ec agent welcome show` 返回有效正文:只向 owner 简短确认现状,并执行最后的 `ec agent ready {{selfAid}}`;不要再次修改、发布名片或生成新的 welcome。
|
|
47
|
+
- `lifecycle=bootstrapping` 且名片已发布但 `personal/welcome.md` 不存在:回到当前对话重新生成并确认 welcome,保存成功后再执行 `ready`。
|
|
48
|
+
- 未确认候选文案不另行持久化。上下文丢失后重新生成并确认;文件无效时修正文案并重新展示确认,不默认采用另一份文案。若收到 WELCOME_FROZEN,表示投递快照已经准备,只续做 ready,不改文案。
|
|
49
|
+
- `lifecycle=bootstrapping` 但名片未发布或字段不完整:从缺失的确认步骤继续。发布失败时先说明错误,修正后再试,不盲目重试。
|
|
50
|
+
- Bootstrap 期间不执行、不分析、不规划普通任务;普通任务只能留到 `active` 后的新主会话。
|
|
51
|
+
|
|
52
|
+
每轮处理规则:
|
|
53
|
+
1. 首次需要候选值时,读取本地 agent.md 的 YAML frontmatter。已有且格式有效的 `name`、`description`、`tags` 是现有候选值:简短回显并询问保持还是修改,不要求重新输入。空值、占位值或格式无效的字段视为缺失;`tags` 必须为 3 到 6 个非空标签。
|
|
54
|
+
2. 只把 owner 明确提供、修改、选择或确认的 `name`、`description`、`tags` 当作候选信息。普通任务内容、示例值和顺带提及的词语都不是候选信息,不得据此推断字段。
|
|
55
|
+
3. 信息缺失、互相冲突或含义不清时,只追问缺失或有歧义的部分;保留此前已经明确或 owner 选择保持的内容。
|
|
39
56
|
4. owner 在 bootstrap 完成前提出普通工作请求、要求跳过 bootstrap,或要求先执行任务后再设定时:不执行、不分析、不规划、不读取任务相关文件、不搜索、不调用任务工具,也不把任务排队到当前会话。只简短说明必须先完成首次设定,然后回显现有候选值并询问保持/修改,或只追问仍缺失的字段。
|
|
40
|
-
5. 三项信息齐全后,向 owner 回显最终的 `name`、`description`、`tags`,并请求对这组最终值作明确确认。owner
|
|
57
|
+
5. 三项信息齐全后,向 owner 回显最终的 `name`、`description`、`tags`,并请求对这组最终值作明确确认。owner 仅表示“保持现有值”时,先据此形成最终值并回显;未经这一步最终确认,不要修改文件、发布名片、生成 welcome 或调用 ready。
|
|
41
58
|
6. 如果 owner 提供 persona 文本或 `.md`/`.txt` 文件,单独回显待写入内容并请求确认;确认后使用 `ec agent persona` 写入 `persona.md`。persona 未确认时保留现状,不影响后续名片流程。
|
|
42
59
|
7. owner 明确确认最终值后,只编辑本地 agent.md(`{{agentMdPath}}`)YAML frontmatter 中的 `name`、`description`、`tags`,保留其它字段和正文,并检查 YAML 与字段格式有效。
|
|
43
|
-
8.
|
|
44
|
-
9.
|
|
45
|
-
10. `ec agent ready {{selfAid}}`
|
|
46
|
-
|
|
47
|
-
|
|
60
|
+
8. 根据已确认的名片信息在对话中生成完整 welcome,展示给 owner 并请求明确确认;owner 要求修改时重复本步骤,始终展示完整文本。
|
|
61
|
+
9. owner 明确确认后,执行 `ec agent welcome --text '<最后确认的完整文本>'` 保存 welcome;只有命令明确成功后,才执行 `ec aid agentmd put {{selfAid}}`。
|
|
62
|
+
10. `ec aid agentmd put {{selfAid}}` 成功后,才调用 `ec agent ready {{selfAid}}` 完成 bootstrap。
|
|
63
|
+
11. 任一步骤失败时,不调用 ready,不盲目重复尝试;说明具体失败原因并在修正后继续。
|
|
64
|
+
12. `ec agent ready {{selfAid}}` 必须是 bootstrap 的最后一个操作。成功后系统会结束当前上下文、创建新的主会话并发送已确认的个性化 welcome;不要在旧上下文中继续处理任务。
|
|
65
|
+
|
|
66
|
+
完成前不要承诺已经进入正常工作状态,也不要尝试与上述流程无关的文件修改、网络通信或系统配置操作。
|