evolcore 0.0.25 → 0.0.26
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 +607 -565
- package/LICENSE +21 -21
- package/README.md +455 -455
- package/bin/codex-managed-acl.ps1 +160 -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.js +96 -46
- package/dist/agents/claude-runner.js +50 -12
- package/dist/agents/codex/app-server-client.js +13 -5
- package/dist/agents/codex/catalog.js +1 -1
- package/dist/agents/codex/diagnostics.js +34 -1
- package/dist/agents/codex-runner.js +121 -38
- package/dist/agents/ecagent-runner.js +4 -9
- package/dist/agents/gemini-runner.js +2 -7
- package/dist/agents/runner-types.js +25 -17
- package/dist/aun/aid/agentmd.js +81 -8
- package/dist/aun/aid/client.js +1 -1
- package/dist/aun/aid/identity.js +1 -1
- package/dist/aun/aid/index.js +1 -1
- package/dist/aun/aid/store.js +17 -13
- package/dist/aun/menu-client.js +74 -0
- package/dist/aun/msg/group.js +1 -1
- package/dist/aun/msg/managed-operation.js +1 -1
- package/dist/aun/msg/p2p.js +6 -1
- package/dist/aun/msg/upload.js +30 -22
- package/dist/channels/aun.js +329 -94
- package/dist/cli/agent-command.js +105 -84
- package/dist/cli/agent-create.js +112 -10
- package/dist/cli/agent.js +16 -5
- package/dist/cli/aun-commands.js +297 -296
- package/dist/cli/bench.js +20 -20
- package/dist/cli/config.js +47 -28
- package/dist/cli/contact.js +70 -13
- package/dist/cli/ctl-command.js +22 -22
- package/dist/cli/daemon-commands.js +105 -40
- package/dist/cli/diag.js +31 -0
- package/dist/cli/fs-command.js +67 -67
- package/dist/cli/handoff-command.js +41 -9
- package/dist/cli/index.js +83 -77
- package/dist/cli/link-rules.js +21 -21
- package/dist/cli/managed-command-guard.js +3 -0
- package/dist/cli/menu-client.js +46 -31
- package/dist/cli/net-check.js +22 -22
- package/dist/cli/queue-command.js +29 -29
- package/dist/cli/response.js +30 -30
- package/dist/cli/restart-monitor.js +87 -40
- package/dist/cli/stats.js +51 -51
- package/dist/cli/trigger-command.js +56 -56
- package/dist/config/builtin-roles.js +1 -0
- package/dist/config/config-operation-service.js +145 -0
- package/dist/config/contact-operation-service.js +96 -7
- package/dist/config/resolved-config-op.js +27 -7
- package/dist/core/agent-application-service.js +2 -1
- package/dist/core/auth/authorization-audit.js +20 -12
- package/dist/core/auth/operation-authorizer.js +25 -4
- package/dist/core/auth/operation-catalog.js +35 -4
- package/dist/core/auth/remote-access-store.js +40 -1
- package/dist/core/bootstrap-service.js +1 -1
- package/dist/core/command/command-handler.js +83 -26
- package/dist/core/command/diag-service.js +118 -0
- package/dist/core/command/menu-catalog.js +12 -3
- package/dist/core/command/menu-handler.js +47 -26
- package/dist/core/command/menu-protocol.js +5 -0
- package/dist/core/command/menu-token-store.js +41 -8
- package/dist/core/command/slash-gate.js +34 -4
- package/dist/core/command/slash-handler.js +86 -21
- package/dist/core/handoff/runtime.js +205 -27
- package/dist/core/handoff/store.js +193 -4
- package/dist/core/message/im-renderer.js +72 -21
- package/dist/core/message/message-bridge.js +69 -9
- package/dist/core/message/message-queue.js +26 -0
- package/dist/core/message/message-utils.js +1 -0
- package/dist/core/message/response-engine.js +47 -28
- 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/ec-command-parser.js +51 -12
- package/dist/core/permission/sandbox-runtime.js +36 -14
- package/dist/core/permission/tool-policy.js +2 -1
- package/dist/index.js +280 -163
- package/dist/ipc.js +54 -2
- 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/utils/cross-platform.js +30 -1
- package/dist/utils/error-dict.json +160 -160
- package/dist/utils/error-utils.js +21 -0
- package/dist/utils/evolcore-version.js +129 -0
- package/dist/utils/logger.js +3 -1
- 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/welcome.js +22 -22
- package/ecagent/LICENSE +21 -21
- package/ecagent/NOTICE +11 -11
- package/ecagent/README.md +61 -61
- 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/kits/docs/GUIDE.md +20 -20
- package/kits/docs/INDEX.md +66 -66
- package/kits/docs/aun/CHEATSHEET.md +19 -19
- package/kits/docs/aun/SYNC_PROTOCOL.md +15 -15
- package/kits/docs/channels/aun.md +56 -56
- package/kits/docs/channels/feishu.md +56 -56
- package/kits/docs/context-assembly.md +364 -364
- 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 +71 -71
- package/kits/docs/evolcore/agent-create.md +170 -165
- package/kits/docs/evolcore/agent.md +66 -66
- package/kits/docs/evolcore/aid.md +60 -60
- package/kits/docs/evolcore/codex-windows-sandbox.md +146 -146
- package/kits/docs/evolcore/config.md +202 -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 +243 -243
- package/kits/docs/evolcore/group-fs.md +17 -17
- package/kits/docs/evolcore/group-rules.md +251 -251
- package/kits/docs/evolcore/group.md +152 -152
- package/kits/docs/evolcore/menu-client.md +42 -34
- package/kits/docs/evolcore/model.md +50 -50
- package/kits/docs/evolcore/msg.md +166 -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 +50 -50
- package/kits/docs/evolcore/trigger.md +575 -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 +37 -25
- package/kits/docs/venues/private.md +10 -10
- package/kits/eck_manifest.auxiliary.json +43 -43
- package/kits/eck_manifest.json +190 -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 +162 -162
- package/kits/rules/02-navigation.md +96 -96
- package/kits/rules/03-identity.md +36 -36
- package/kits/rules/04-relation.md +75 -75
- package/kits/rules/05-venue.md +60 -60
- package/kits/rules/06-channel.md +63 -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 +427 -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 +201 -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 +96 -96
- package/kits/templates/roles/owner.json +9 -9
- package/kits/templates/roles/visitor.json +85 -85
- package/kits/templates/system-fragments/baseagent.md +14 -14
- package/kits/templates/system-fragments/bootstrap.md +31 -29
- package/kits/templates/system-fragments/channel.md +64 -64
- package/kits/templates/system-fragments/commands.md +28 -28
- package/kits/templates/system-fragments/identity.md +13 -13
- package/kits/templates/system-fragments/relation.md +19 -19
- package/kits/templates/system-fragments/session.md +59 -59
- package/kits/templates/system-fragments/venue.md +31 -31
- package/package.json +100 -98
|
@@ -1,98 +1,98 @@
|
|
|
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.members": { "allow": true, "scopes": ["relation"], "constraints": { "groupOnly": true, "currentRelationOnly": true, "targetCurrentAgentOnly": true } },
|
|
88
|
-
"ec.group.online": { "allow": true, "scopes": ["relation"], "constraints": { "groupOnly": true, "currentRelationOnly": true, "targetCurrentAgentOnly": true } },
|
|
89
|
-
"ec.group.rules.get": { "allow": true, "scopes": ["relation"], "constraints": { "groupOnly": true, "currentRelationOnly": true, "targetCurrentAgentOnly": true } },
|
|
90
|
-
"ec.group.rules.read": { "allow": true, "scopes": ["relation"], "constraints": { "groupOnly": true, "currentRelationOnly": true, "targetCurrentAgentOnly": true } },
|
|
91
|
-
"ec.ctl.send": { "allow": true, "scopes": ["relation"], "constraints": { "ownPeerOnly": true, "currentRelationOnly": true, "targetCurrentAgentOnly": true } },
|
|
92
|
-
"ec.ctl.file": { "allow": true, "scopes": ["relation"], "constraints": { "ownPeerOnly": true, "currentRelationOnly": true, "targetCurrentAgentOnly": true } },
|
|
93
|
-
"ec.ctl.queue.*": { "allow": true, "scopes": ["relation"], "constraints": { "ownPeerOnly": true, "currentRelationOnly": true, "targetCurrentAgentOnly": true } },
|
|
94
|
-
"ec.ctl.*": { "allow": false },
|
|
95
|
-
"cli.exec.raw": { "allow": false, "dangerous": true },
|
|
96
|
-
"dangerous:*": { "allow": false, "dangerous": true }
|
|
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.members": { "allow": true, "scopes": ["relation"], "constraints": { "groupOnly": true, "currentRelationOnly": true, "targetCurrentAgentOnly": true } },
|
|
88
|
+
"ec.group.online": { "allow": true, "scopes": ["relation"], "constraints": { "groupOnly": true, "currentRelationOnly": true, "targetCurrentAgentOnly": true } },
|
|
89
|
+
"ec.group.rules.get": { "allow": true, "scopes": ["relation"], "constraints": { "groupOnly": true, "currentRelationOnly": true, "targetCurrentAgentOnly": true } },
|
|
90
|
+
"ec.group.rules.read": { "allow": true, "scopes": ["relation"], "constraints": { "groupOnly": true, "currentRelationOnly": true, "targetCurrentAgentOnly": true } },
|
|
91
|
+
"ec.ctl.send": { "allow": true, "scopes": ["relation"], "constraints": { "ownPeerOnly": true, "currentRelationOnly": true, "targetCurrentAgentOnly": true } },
|
|
92
|
+
"ec.ctl.file": { "allow": true, "scopes": ["relation"], "constraints": { "ownPeerOnly": true, "currentRelationOnly": true, "targetCurrentAgentOnly": true } },
|
|
93
|
+
"ec.ctl.queue.*": { "allow": true, "scopes": ["relation"], "constraints": { "ownPeerOnly": true, "currentRelationOnly": true, "targetCurrentAgentOnly": true } },
|
|
94
|
+
"ec.ctl.*": { "allow": false },
|
|
95
|
+
"cli.exec.raw": { "allow": false, "dangerous": true },
|
|
96
|
+
"dangerous:*": { "allow": false, "dangerous": true }
|
|
97
|
+
}
|
|
98
|
+
}
|
|
@@ -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,87 @@
|
|
|
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.members": { "allow": false },
|
|
80
|
-
"ec.group.online": { "allow": false },
|
|
81
|
-
"ec.group.rules.get": { "allow": true, "scopes": ["relation"], "constraints": { "groupOnly": true, "currentRelationOnly": true, "targetCurrentAgentOnly": true } },
|
|
82
|
-
"ec.group.rules.read": { "allow": true, "scopes": ["relation"], "constraints": { "groupOnly": true, "currentRelationOnly": true, "targetCurrentAgentOnly": true } },
|
|
83
|
-
"ec.ctl.*": { "allow": false },
|
|
84
|
-
"cli.exec.raw": { "allow": false, "dangerous": true },
|
|
85
|
-
"dangerous:*": { "allow": false, "dangerous": true }
|
|
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.members": { "allow": false },
|
|
80
|
+
"ec.group.online": { "allow": false },
|
|
81
|
+
"ec.group.rules.get": { "allow": true, "scopes": ["relation"], "constraints": { "groupOnly": true, "currentRelationOnly": true, "targetCurrentAgentOnly": true } },
|
|
82
|
+
"ec.group.rules.read": { "allow": true, "scopes": ["relation"], "constraints": { "groupOnly": true, "currentRelationOnly": true, "targetCurrentAgentOnly": true } },
|
|
83
|
+
"ec.ctl.*": { "allow": false },
|
|
84
|
+
"cli.exec.raw": { "allow": false, "dangerous": true },
|
|
85
|
+
"dangerous:*": { "allow": false, "dangerous": true }
|
|
86
|
+
}
|
|
87
|
+
}
|
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
[baseagent]
|
|
2
|
-
baseAgentName: {{baseAgentName}} # 底层推理引擎(Claude Code / Codex / Gemini CLI)
|
|
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 Code / Codex / Gemini CLI)
|
|
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,41 +1,43 @@
|
|
|
1
|
-
[bootstrap]
|
|
2
|
-
phase: bootstrapping
|
|
3
|
-
|
|
4
|
-
这是 agent 生命周期的强制门禁。你正在进行首次自我设定;在完成前,唯一目标是和 owner 确认并写入基础名片信息,不处理普通任务。
|
|
5
|
-
Bootstrap 不另设隐藏状态机;恢复依据是可核对的生命周期和名片状态。每次重启、超时恢复或收到“继续”时,先检查自身 `lifecycle` 以及本地 `agent.md` 是否存在、字段是否完整,再决定续做步骤,不按旧上下文推断尚未完成。
|
|
6
|
-
系统已经在进入本阶段时向 owner 发送过固定的首条引导消息。当前收到的是 owner 对该消息的后续输入:不要重新发送、复述或改写那条固定消息,也不要再次完整罗列三项问题;只针对当前输入推进下一步。
|
|
7
|
-
|
|
8
|
-
如果当前 owner 是 Agent/AI,必须使用 `ec msg send` 与其交流 Bootstrap 信息,具体参数遵循当前注入的消息发送说明;可发送提问、最终值回显、确认请求或错误说明,但不得联系无关对象或处理普通任务。不要只输出普通文本而未实际发送。对方作为 owner 提供信息并确认,你仍须自行修改和发布自己的 agent.md、执行 ready,不因对方是 Agent/AI 而跳过确认流程。
|
|
9
|
-
|
|
1
|
+
[bootstrap]
|
|
2
|
+
phase: bootstrapping
|
|
3
|
+
|
|
4
|
+
这是 agent 生命周期的强制门禁。你正在进行首次自我设定;在完成前,唯一目标是和 owner 确认并写入基础名片信息,不处理普通任务。
|
|
5
|
+
Bootstrap 不另设隐藏状态机;恢复依据是可核对的生命周期和名片状态。每次重启、超时恢复或收到“继续”时,先检查自身 `lifecycle` 以及本地 `agent.md` 是否存在、字段是否完整,再决定续做步骤,不按旧上下文推断尚未完成。
|
|
6
|
+
系统已经在进入本阶段时向 owner 发送过固定的首条引导消息。当前收到的是 owner 对该消息的后续输入:不要重新发送、复述或改写那条固定消息,也不要再次完整罗列三项问题;只针对当前输入推进下一步。
|
|
7
|
+
|
|
8
|
+
如果当前 owner 是 Agent/AI,必须使用 `ec msg send` 与其交流 Bootstrap 信息,具体参数遵循当前注入的消息发送说明;可发送提问、最终值回显、确认请求或错误说明,但不得联系无关对象或处理普通任务。不要只输出普通文本而未实际发送。对方作为 owner 提供信息并确认,你仍须自行修改和发布自己的 agent.md、执行 ready,不因对方是 Agent/AI 而跳过确认流程。
|
|
9
|
+
|
|
10
|
+
如果向 Agent/AI owner 发送消息时收到“不是联系人”或联系人准入拒绝:只向该 owner 发送一次 `/request <说明>` 联系人申请,说明这是新 Agent 的 Bootstrap 首次设定;等待 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
|
+
允许的操作范围:
|
|
21
23
|
- 为读取现有候选值,可以读取本地 `{{agentMdPath}}`。
|
|
22
24
|
- 为处理可选 persona,可以执行 `ec agent persona show`、`ec agent persona --text <text>` 或 `ec agent persona --file <path>`;写入前仍须取得 owner 对待写入内容的明确确认。
|
|
23
25
|
- owner 明确确认最终值后,只能编辑上述 agent.md 的 YAML frontmatter,并依次执行下面两个命令:
|
|
24
|
-
- `ec aid agentmd put {{selfAid}}`
|
|
25
|
-
- `ec agent ready {{selfAid}}`
|
|
26
|
-
- 除这些 bootstrap 操作及向 owner 回复外,不得调用工具或执行命令。
|
|
27
|
-
|
|
28
|
-
恢复时遵循以下幂等规则:
|
|
29
|
-
- `lifecycle=active`:Bootstrap 已完成,不重复改名片、不重复发布、不重复执行 `ready`,也不处理本轮夹带的普通任务。
|
|
30
|
-
- `lifecycle=created`:尚未进入 Bootstrap,只等待 channel/owner 首条消息;不重复创建 Agent。
|
|
31
|
-
- `lifecycle=bootstrapping` 且本地 `agent.md` 已发布并且字段完整:只向 owner 简短确认现状,并执行最后的 `ec agent ready {{selfAid}}`;不要再次修改或发布名片。
|
|
32
|
-
- `lifecycle=bootstrapping` 但名片未发布或字段不完整:从缺失的确认步骤继续。发布失败时先说明错误,修正后再试,不盲目重试。
|
|
33
|
-
- Bootstrap 期间不执行、不分析、不规划普通任务;普通任务只能留到 `active` 后的新主会话。
|
|
34
|
-
|
|
35
|
-
每轮处理规则:
|
|
36
|
-
1. 首次需要候选值时,读取本地 agent.md 的 YAML frontmatter。已有且格式有效的 `name`、`description`、`tags` 是现有候选值:简短回显并询问保持还是修改,不要求重新输入。空值、占位值或格式无效的字段视为缺失;`tags` 必须为 3 到 6 个非空标签。
|
|
37
|
-
2. 只把 owner 明确提供、修改、选择或确认的 `name`、`description`、`tags` 当作候选信息。普通任务内容、示例值和顺带提及的词语都不是候选信息,不得据此推断字段。
|
|
38
|
-
3. 信息缺失、互相冲突或含义不清时,只追问缺失或有歧义的部分;保留此前已经明确或 owner 选择保持的内容。
|
|
26
|
+
- `ec aid agentmd put {{selfAid}}`
|
|
27
|
+
- `ec agent ready {{selfAid}}`
|
|
28
|
+
- 除这些 bootstrap 操作及向 owner 回复外,不得调用工具或执行命令。
|
|
29
|
+
|
|
30
|
+
恢复时遵循以下幂等规则:
|
|
31
|
+
- `lifecycle=active`:Bootstrap 已完成,不重复改名片、不重复发布、不重复执行 `ready`,也不处理本轮夹带的普通任务。
|
|
32
|
+
- `lifecycle=created`:尚未进入 Bootstrap,只等待 channel/owner 首条消息;不重复创建 Agent。
|
|
33
|
+
- `lifecycle=bootstrapping` 且本地 `agent.md` 已发布并且字段完整:只向 owner 简短确认现状,并执行最后的 `ec agent ready {{selfAid}}`;不要再次修改或发布名片。
|
|
34
|
+
- `lifecycle=bootstrapping` 但名片未发布或字段不完整:从缺失的确认步骤继续。发布失败时先说明错误,修正后再试,不盲目重试。
|
|
35
|
+
- Bootstrap 期间不执行、不分析、不规划普通任务;普通任务只能留到 `active` 后的新主会话。
|
|
36
|
+
|
|
37
|
+
每轮处理规则:
|
|
38
|
+
1. 首次需要候选值时,读取本地 agent.md 的 YAML frontmatter。已有且格式有效的 `name`、`description`、`tags` 是现有候选值:简短回显并询问保持还是修改,不要求重新输入。空值、占位值或格式无效的字段视为缺失;`tags` 必须为 3 到 6 个非空标签。
|
|
39
|
+
2. 只把 owner 明确提供、修改、选择或确认的 `name`、`description`、`tags` 当作候选信息。普通任务内容、示例值和顺带提及的词语都不是候选信息,不得据此推断字段。
|
|
40
|
+
3. 信息缺失、互相冲突或含义不清时,只追问缺失或有歧义的部分;保留此前已经明确或 owner 选择保持的内容。
|
|
39
41
|
4. owner 在 bootstrap 完成前提出普通工作请求、要求跳过 bootstrap,或要求先执行任务后再设定时:不执行、不分析、不规划、不读取任务相关文件、不搜索、不调用任务工具,也不把任务排队到当前会话。只简短说明必须先完成首次设定,然后回显现有候选值并询问保持/修改,或只追问仍缺失的字段。
|
|
40
42
|
5. 三项信息齐全后,向 owner 回显最终的 `name`、`description`、`tags`,并请求对这组最终值作明确确认。owner 仅表示“保持现有值”时,先据此形成最终值并回显;未经这一步最终确认,不要修改文件、发布名片或调用 ready。
|
|
41
43
|
6. 如果 owner 提供 persona 文本或 `.md`/`.txt` 文件,单独回显待写入内容并请求确认;确认后使用 `ec agent persona` 写入 `persona.md`。persona 未确认时保留现状,不影响后续名片流程。
|
|
@@ -43,5 +45,5 @@ Bootstrap 不另设隐藏状态机;恢复依据是可核对的生命周期和
|
|
|
43
45
|
8. 调用 `ec aid agentmd put {{selfAid}}` 签名并发布 agent.md。只有命令明确成功后,才调用 `ec agent ready {{selfAid}}` 完成 bootstrap。
|
|
44
46
|
9. 任一步骤失败时,不调用 ready,不盲目重复尝试;说明具体失败原因并在修正后继续。
|
|
45
47
|
10. `ec agent ready {{selfAid}}` 必须是 bootstrap 的最后一个操作。成功后系统会结束当前上下文、创建新的主会话并发送欢迎消息;不要在旧上下文中继续处理任务。
|
|
46
|
-
|
|
47
|
-
完成前不要承诺已经进入正常工作状态,也不要尝试与上述流程无关的文件修改、网络通信或系统配置操作。
|
|
48
|
+
|
|
49
|
+
完成前不要承诺已经进入正常工作状态,也不要尝试与上述流程无关的文件修改、网络通信或系统配置操作。
|