evolcore 0.0.19 → 0.0.21
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 +43 -1
- package/README.md +60 -9
- package/bin/install-codex-managed-hooks.mjs +61 -0
- package/dist/agents/baseagent.js +10 -6
- package/dist/agents/claude-runner.js +383 -111
- package/dist/agents/codex-app-server-client.js +10 -2
- package/dist/agents/codex-runner.js +405 -137
- package/dist/agents/ecagent-runner.js +174 -63
- package/dist/agents/gemini-runner.js +130 -30
- package/dist/agents/request-identity.js +25 -0
- package/dist/agents/runner-types.js +19 -0
- package/dist/aun/aid/agentmd.js +66 -2
- package/dist/aun/aid/identity.js +4 -1
- package/dist/aun/aid/index.js +1 -1
- package/dist/aun/msg/group.js +86 -9
- package/dist/aun/msg/history.js +213 -36
- package/dist/aun/msg/managed-operation.js +58 -9
- package/dist/aun/msg/p2p.js +26 -11
- package/dist/aun/outbox.js +295 -68
- package/dist/aun/service-proxy.js +43 -25
- package/dist/channels/aun.js +1004 -273
- package/dist/channels/daemon.js +6 -1
- package/dist/cli/agent-command.js +4 -3
- package/dist/cli/agent.js +66 -56
- package/dist/cli/aun-commands.js +177 -42
- package/dist/cli/command-log.js +10 -11
- package/dist/cli/contact.js +1 -0
- package/dist/cli/daemon-commands.js +81 -121
- package/dist/cli/index.js +1 -0
- package/dist/cli/init.js +76 -24
- package/dist/cli/restart-monitor.js +3 -3
- package/dist/cli/task-context.js +46 -0
- package/dist/cli/trigger-command.js +1 -1
- package/dist/cli/watch-logs.js +10 -3
- package/dist/config/builtin-roles.js +1 -0
- package/dist/config/config-field-policy.js +16 -5
- package/dist/config/config-manager.js +226 -24
- package/dist/config/config-operation-service.js +1 -2
- package/dist/config/contact-operation-service.js +32 -1
- package/dist/config/contact-request-service.js +44 -0
- package/dist/config/daemon-services.js +186 -0
- package/dist/config/gateway-config.js +29 -16
- package/dist/config/lifecycle.js +16 -5
- package/dist/config/role-service.js +54 -3
- package/dist/config/schema-migration.js +550 -0
- package/dist/config-store.js +161 -12
- package/dist/core/agent-application-service.js +279 -0
- package/dist/core/audit/log-integrity.js +102 -0
- package/dist/core/auth/agent-delegation.js +31 -1
- package/dist/core/auth/auth-gateway.js +33 -4
- package/dist/core/auth/authorization-audit.js +155 -4
- package/dist/core/auth/operation-authorizer.js +41 -1
- package/dist/core/auth/operation-catalog.js +9 -1
- package/dist/core/bootstrap-messages.js +2 -2
- package/dist/core/bootstrap-service.js +27 -38
- package/dist/core/causation/aun-association.js +7 -4
- package/dist/core/channel-loader.js +0 -2
- package/dist/core/command/agent-control.js +56 -16
- package/dist/core/command/command-handler.js +290 -44
- package/dist/core/command/connect-menu.js +3 -4
- package/dist/core/command/group-menu.js +5 -7
- package/dist/core/command/menu-handler.js +279 -80
- package/dist/core/command/role-menu.js +21 -11
- package/dist/core/command/slash-gate.js +85 -18
- package/dist/core/command/slash-handler.js +350 -32
- package/dist/core/event-catalog.js +5 -0
- package/dist/core/evolagent.js +9 -4
- package/dist/core/handoff/dispatcher.js +4 -0
- package/dist/core/handoff/runtime.js +10 -0
- package/dist/core/handoff/store.js +32 -9
- package/dist/core/inference/text-inference.js +7 -15
- package/dist/core/message/im-renderer.js +83 -84
- package/dist/core/message/{inbound-admission.js → message-admission.js} +51 -1
- package/dist/core/message/message-bridge.js +124 -10
- package/dist/core/message/message-log.js +14 -7
- package/dist/core/message/message-queue.js +206 -16
- package/dist/core/message/message-utils.js +12 -5
- package/dist/core/message/response-engine.js +495 -72
- package/dist/core/message/send-receipt.js +1 -0
- package/dist/core/message/stream-debouncer.js +9 -2
- package/dist/core/model/model-catalog.js +23 -15
- package/dist/core/model/model-diagnostics.js +28 -10
- package/dist/core/permission/approval-gateway.js +180 -6
- package/dist/core/permission/ec-command-parser.js +465 -56
- package/dist/core/permission/mode.js +18 -3
- package/dist/core/{protected-paths.js → permission/protected-paths.js} +17 -5
- package/dist/core/permission/readonly-shell-query.js +263 -9
- package/dist/core/permission/sandbox-runtime.js +205 -13
- package/dist/core/permission/tool-policy.js +673 -62
- package/dist/core/relation/peer-identity.js +18 -0
- package/dist/core/session/session-fs-store.js +154 -5
- package/dist/core/session/session-manager.js +299 -30
- package/dist/core/session/session-renew.js +19 -12
- package/dist/core/session/session-turn-coordinator.js +11 -4
- package/dist/eck/kit-renderer.js +18 -9
- package/dist/index.js +283 -65
- package/dist/ipc.js +374 -24
- package/dist/paths.js +64 -7
- package/dist/response-system/context-builder.js +1 -7
- package/dist/trigger/anomaly-store.js +1 -0
- package/dist/trigger/feedback.js +56 -5
- package/dist/trigger/history.js +79 -4
- package/dist/trigger/legacy-session-history.js +2 -2
- package/dist/trigger/parser.js +3 -2
- package/dist/trigger/validation.js +6 -1
- package/dist/utils/atomic-write.js +27 -0
- package/dist/utils/ecweb-utils.js +16 -2
- package/dist/utils/error-utils.js +4 -1
- package/dist/utils/logger.js +21 -2
- package/dist/utils/process-tree-stats.js +24 -4
- package/dist/utils/process-tree-worker.js +31 -0
- package/dist/utils/project-path.js +1 -2
- package/dist/utils/stats.js +52 -18
- package/dist/utils/welcome.js +2 -2
- package/kits/docs/INDEX.md +1 -1
- package/kits/docs/evolcore/INDEX.md +1 -1
- package/kits/docs/evolcore/contact.md +7 -1
- package/kits/docs/evolcore/msg.md +16 -0
- package/kits/rules/01-overview.md +1 -1
- package/kits/rules/03-identity.md +1 -1
- package/kits/rules/05-venue.md +1 -1
- package/kits/schemas/_meta.json +10 -5
- package/kits/schemas/agent-config.schema.10.json +2 -1
- package/kits/schemas/agent-config.schema.11.json +421 -0
- package/kits/schemas/daemon.schema.5.json +135 -0
- package/kits/schemas/daemon.schema.6.json +131 -0
- package/kits/schemas/defaults.schema.5.json +119 -0
- package/kits/schemas/migrations/README.md +3 -1
- package/kits/schemas/relation-config.schema.8.json +13 -0
- package/kits/schemas/role-config.schema.1.json +1 -2
- package/kits/schemas/single-session.schema.3.json +32 -0
- package/kits/templates/roles/admin.json +1 -0
- package/kits/templates/roles/member.json +1 -0
- package/kits/templates/roles/visitor.json +1 -0
- package/package.json +7 -3
- package/skills/eclink/SKILL.md +2 -0
|
@@ -53,8 +53,7 @@ export function defaultProjectsRoot(evolcoreRoot, options = {}) {
|
|
|
53
53
|
export function agentProjectRootFromDefaults(defaults, evolcoreRoot, options = {}) {
|
|
54
54
|
const platform = options.platform ?? process.platform;
|
|
55
55
|
const pathImpl = pathForPlatform(platform);
|
|
56
|
-
const configuredRoot = defaults?.projects?.
|
|
57
|
-
|| (defaults?.projects?.defaultPath && pathImpl.dirname(defaults.projects.defaultPath))
|
|
56
|
+
const configuredRoot = defaults?.projects?.defaultPath
|
|
58
57
|
|| defaultProjectsRoot(evolcoreRoot, options);
|
|
59
58
|
return sanitizeProjectRoot(configuredRoot, options);
|
|
60
59
|
}
|
package/dist/utils/stats.js
CHANGED
|
@@ -59,19 +59,11 @@ export class StatsCollector {
|
|
|
59
59
|
recordEvent(record) {
|
|
60
60
|
this.events.push(record);
|
|
61
61
|
}
|
|
62
|
-
|
|
63
|
-
* 获取统计快照。可选 agentName 过滤:未传则全局;传入则只统计该 agent。
|
|
64
|
-
* 自动裁剪 >1h 的事件。
|
|
65
|
-
*/
|
|
66
|
-
getSnapshot(agentName) {
|
|
67
|
-
const now = Date.now();
|
|
62
|
+
trimExpiredEvents(now) {
|
|
68
63
|
const cutoff = now - this.HOUR_MS;
|
|
69
|
-
// 裁剪过期事件
|
|
70
64
|
this.events = this.events.filter(e => e.timestamp >= cutoff);
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
? this.events
|
|
74
|
-
: this.events.filter(e => (e.agentName ?? '<unknown>') === agentName);
|
|
65
|
+
}
|
|
66
|
+
buildSnapshot(events, recentErrors, now) {
|
|
75
67
|
let received = 0;
|
|
76
68
|
let sent = 0;
|
|
77
69
|
let completed = 0;
|
|
@@ -82,7 +74,7 @@ export class StatsCollector {
|
|
|
82
74
|
let interrupts = 0;
|
|
83
75
|
let totalDuration = 0;
|
|
84
76
|
let durationCount = 0;
|
|
85
|
-
for (const event of
|
|
77
|
+
for (const event of events) {
|
|
86
78
|
switch (event.type) {
|
|
87
79
|
case 'received':
|
|
88
80
|
received++;
|
|
@@ -114,10 +106,6 @@ export class StatsCollector {
|
|
|
114
106
|
break;
|
|
115
107
|
}
|
|
116
108
|
}
|
|
117
|
-
// 最近错误:按 agent 过滤(与上面一致),取前 20 条
|
|
118
|
-
const recentErrors = (agentName === undefined
|
|
119
|
-
? this.recentErrors
|
|
120
|
-
: this.recentErrors.filter(e => (e.agentName ?? '<unknown>') === agentName)).slice(0, 20);
|
|
121
109
|
return {
|
|
122
110
|
uptimeMs: now - this.startTime,
|
|
123
111
|
lastHour: {
|
|
@@ -129,11 +117,57 @@ export class StatsCollector {
|
|
|
129
117
|
toolErrors,
|
|
130
118
|
toolErrorsByName,
|
|
131
119
|
interrupts,
|
|
132
|
-
avgResponseMs: durationCount > 0 ? totalDuration / durationCount : 0
|
|
120
|
+
avgResponseMs: durationCount > 0 ? totalDuration / durationCount : 0,
|
|
133
121
|
},
|
|
134
|
-
recentErrors,
|
|
122
|
+
recentErrors: recentErrors.slice(0, 20),
|
|
135
123
|
};
|
|
136
124
|
}
|
|
125
|
+
/**
|
|
126
|
+
* 获取统计快照。可选 agentName 过滤:未传则全局;传入则只统计该 agent。
|
|
127
|
+
* 自动裁剪 >1h 的事件。
|
|
128
|
+
*/
|
|
129
|
+
getSnapshot(agentName) {
|
|
130
|
+
const now = Date.now();
|
|
131
|
+
this.trimExpiredEvents(now);
|
|
132
|
+
// 聚合统计(可按 agent 过滤)
|
|
133
|
+
const filtered = agentName === undefined
|
|
134
|
+
? this.events
|
|
135
|
+
: this.events.filter(e => (e.agentName ?? '<unknown>') === agentName);
|
|
136
|
+
// 最近错误:按 agent 过滤(与上面一致),取前 20 条
|
|
137
|
+
const recentErrors = (agentName === undefined
|
|
138
|
+
? this.recentErrors
|
|
139
|
+
: this.recentErrors.filter(e => (e.agentName ?? '<unknown>') === agentName));
|
|
140
|
+
return this.buildSnapshot(filtered, recentErrors, now);
|
|
141
|
+
}
|
|
142
|
+
/**
|
|
143
|
+
* 一次扫描生成多个 Agent 的统计快照。用于高频 IPC 看板,避免对每个
|
|
144
|
+
* Agent 都重新过滤最近一小时的全部事件。
|
|
145
|
+
*/
|
|
146
|
+
getSnapshots(agentNames) {
|
|
147
|
+
const now = Date.now();
|
|
148
|
+
this.trimExpiredEvents(now);
|
|
149
|
+
const buckets = new Map();
|
|
150
|
+
const recentErrorBuckets = new Map();
|
|
151
|
+
for (const agentName of new Set(agentNames)) {
|
|
152
|
+
buckets.set(agentName, []);
|
|
153
|
+
recentErrorBuckets.set(agentName, []);
|
|
154
|
+
}
|
|
155
|
+
for (const event of this.events) {
|
|
156
|
+
const bucket = buckets.get(event.agentName ?? '<unknown>');
|
|
157
|
+
if (bucket)
|
|
158
|
+
bucket.push(event);
|
|
159
|
+
}
|
|
160
|
+
for (const error of this.recentErrors) {
|
|
161
|
+
const bucket = recentErrorBuckets.get(error.agentName ?? '<unknown>');
|
|
162
|
+
if (bucket)
|
|
163
|
+
bucket.push(error);
|
|
164
|
+
}
|
|
165
|
+
const snapshots = new Map();
|
|
166
|
+
for (const [agentName, events] of buckets) {
|
|
167
|
+
snapshots.set(agentName, this.buildSnapshot(events, recentErrorBuckets.get(agentName) ?? [], now));
|
|
168
|
+
}
|
|
169
|
+
return snapshots;
|
|
170
|
+
}
|
|
137
171
|
}
|
|
138
172
|
export class AidStatsCollector {
|
|
139
173
|
entries = new Map();
|
package/dist/utils/welcome.js
CHANGED
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
import fs from 'fs';
|
|
11
11
|
import { channelStatePath } from '../paths.js';
|
|
12
12
|
import { loadAgent, saveAgent } from '../config-store.js';
|
|
13
|
-
import { withLifecycleForWrite } from '../config/lifecycle.js';
|
|
13
|
+
import { resolveAgentLifecycle, withLifecycleForWrite } from '../config/lifecycle.js';
|
|
14
14
|
import { logger } from './logger.js';
|
|
15
15
|
// ============================================================================
|
|
16
16
|
// 欢迎消息生成
|
|
@@ -166,7 +166,7 @@ export class FirstInteractionWelcomeManager {
|
|
|
166
166
|
// 懒加载并缓存 initialized 状态(避免每条消息都读取磁盘)
|
|
167
167
|
if (this.initializedCache === null) {
|
|
168
168
|
const agentConfig = loadAgent(this.agentAid);
|
|
169
|
-
this.initializedCache = agentConfig
|
|
169
|
+
this.initializedCache = !!agentConfig && resolveAgentLifecycle(agentConfig) === 'active';
|
|
170
170
|
}
|
|
171
171
|
// Agent 已初始化 → 所有用户都不需要欢迎消息
|
|
172
172
|
if (this.initializedCache) {
|
package/kits/docs/INDEX.md
CHANGED
|
@@ -25,7 +25,7 @@
|
|
|
25
25
|
| 文档 | 路径 | 说明 |
|
|
26
26
|
|------|------|------|
|
|
27
27
|
| 命令集目录 | `evolcore/INDEX.md` | msg/group/agent/aid/storage/ctl/rpc/bench 全集索引 |
|
|
28
|
-
| 联系人命令 | `evolcore/contact.md` | Contact Book
|
|
28
|
+
| 联系人命令 | `evolcore/contact.md` | Contact Book 添加申请、拉黑与托管会话权限边界 |
|
|
29
29
|
|
|
30
30
|
## 身份
|
|
31
31
|
|
|
@@ -35,7 +35,7 @@
|
|
|
35
35
|
| `ec fs` | AUN 文件系统统一入口 | 上传/下载/看文件/列目录/删文件/配额/群空间 | 任意有渠道场景 | `fs.md` |
|
|
36
36
|
| `ec storage` | 文件存储底层调试入口 | storage 调试/旧命令/底层上传下载 | 任意有渠道场景 | `storage.md` |
|
|
37
37
|
| `ec agent` | EvolAgent 生命周期 | 创建/启停/热重载/改配置 | 管理员(owner/admin) | `agent.md` |
|
|
38
|
-
| `ec contact` | Contact Book 与访问控制 |
|
|
38
|
+
| `ec contact` | Contact Book 与访问控制 | 申请添加、拉黑/解除拉黑、查拉黑 | Agent 当前私聊可申请添加;管理写操作按角色限制 | `contact.md` |
|
|
39
39
|
| `ec rpc` | 底层 AUN RPC(逃生通道) | 直接调协议方法 | 高级/兜底 | `rpc.md` |
|
|
40
40
|
|
|
41
41
|
## 会话自管理类(不连 AUN,操作当前会话)
|
|
@@ -6,6 +6,7 @@
|
|
|
6
6
|
## 命令
|
|
7
7
|
|
|
8
8
|
```bash
|
|
9
|
+
ec contact add <aid> --self <agent-aid>
|
|
9
10
|
ec contact block <aid> --self <agent-aid>
|
|
10
11
|
ec contact unblock <aid> --self <agent-aid>
|
|
11
12
|
ec contact list --blocked --self <agent-aid>
|
|
@@ -16,9 +17,13 @@ ec contact list --blocked --self <agent-aid>
|
|
|
16
17
|
## 约束
|
|
17
18
|
|
|
18
19
|
- `<aid>` 和 `--self` 必须是合法 AID。
|
|
20
|
+
- Agent 托管会话中的 `add` 只能针对当前 AUN 私聊对端;它创建/更新 `pending`,并向本 Agent Owner 发送审核卡片。
|
|
21
|
+
- `add` 复用 `/request` 的联系人申请额度、过期和请求版本校验;已有 `pending`/`declined` 条目会重新走申请流程。
|
|
22
|
+
- Owner 在审核卡片点击“通过”后才变为 active;`blocked` 必须先执行 `unblock`。
|
|
23
|
+
- 直接从本机终端执行 `add` 属于本地管理操作,会直接创建或恢复 active 联系人;Connect `action=add` 同样是管理端直接操作。
|
|
19
24
|
- 写入 Agent Owner 时,系统会自动创建该 Owner 的 active 联系人记录。
|
|
20
25
|
- `block/unblock` 只接受已存在的联系人;不存在时返回 `NOT_FOUND`。
|
|
21
|
-
- `block/unblock`
|
|
26
|
+
- `block/unblock` 至少改变本 Agent 的入站接收策略;托管任务的普通私聊 `ec msg send` 对 blocked 目标也会在 daemon 侧被拒绝。非托管 AUN CLI 发送不读取本地联系人簿。不代表对端也拉黑了本 Agent。
|
|
22
27
|
- Agent owner 不能被拉黑。
|
|
23
28
|
- `list --blocked` 只列出当前 blocked contact,并返回 `contactRevision`。
|
|
24
29
|
|
|
@@ -31,6 +36,7 @@ ec contact list --blocked --self <agent-aid>
|
|
|
31
36
|
| 操作 | owner | admin | 普通角色 |
|
|
32
37
|
|---|---:|---:|---:|
|
|
33
38
|
| `list --blocked` | 允许 | 允许 | 拒绝 |
|
|
39
|
+
| Agent 会话 `add` 当前私聊对端 | 允许 | 允许 | 由当前关系授权,受 AUN 私聊和申请限制 |
|
|
34
40
|
| `block` / `unblock` | 允许 | 拒绝 | 拒绝 |
|
|
35
41
|
|
|
36
42
|
缺少、伪造、撤销或跨会话 delegation token 时失败关闭。托管调用的 `--self` 必须等于当前任务所属 Agent。
|
|
@@ -48,6 +48,20 @@ ec msg send <from> <to> --payload '<json>'
|
|
|
48
48
|
- `--text <说>` — 附件说明文字(仅 `--file`)
|
|
49
49
|
- `--transcript <text>` — 语音转写(仅 `--as voice`)
|
|
50
50
|
|
|
51
|
+
托管 Agent 通过 daemon 发送时,若发送方使用 `policyMode: contacts`,私聊普通出站只允许 Owner 或实际 `active` 联系人。无条目、`pending`、`declined` 会拒绝发送并提示:
|
|
52
|
+
|
|
53
|
+
```bash
|
|
54
|
+
ec contact add <target-aid> --self <self-aid>
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
该命令在托管会话中会创建/更新联系人申请并给 Owner 发送审核卡片;`blocked` 目标必须先执行:
|
|
58
|
+
|
|
59
|
+
```bash
|
|
60
|
+
ec contact unblock <target-aid> --self <self-aid>
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
非托管环境的 `ec msg send` 是独立 AUN CLI 发送,不读取或要求 `agents/<aid>/config.json`,因此不会触发这套 Agent 联系人准入判断。
|
|
64
|
+
|
|
51
65
|
在 EvolCore 会话内,发送还会经过当前 session 的 self/peer/role 鉴权。`visitor` 或 `member`
|
|
52
66
|
默认只允许回复当前对端;从一个 agent 会话转发给第三个 agent 属于 relay 操作,可能因
|
|
53
67
|
`ownPeerOnly` 被拒绝。没有成功 JSON 回执(含 `message_id`/`status`)不得声称已发送。
|
|
@@ -113,6 +127,8 @@ ec msg history <self-aid> <target-aid> \
|
|
|
113
127
|
|
|
114
128
|
历史查询读取本地 `messages.jsonl`,不调用 `message.pull`,不会读取或推进网络收件箱游标。
|
|
115
129
|
|
|
130
|
+
托管任务限制:只能使用当前 self AID,并且只能读取当前 AUN 私聊对端;群聊、非 AUN 渠道和其他对端都会被拒绝。托管任务不支持 `--channel`、`--channel-name`、`--aun-path` 或 `--app`,仅可使用 `--session`、`--limit`、`--before`、`--after`、`--direction` 和 `--format`。
|
|
131
|
+
|
|
116
132
|
- 不传 `--session`:等价于 `--session latest`。
|
|
117
133
|
- `--session latest`:使用该 AID 对 `active.json` 中的最新激活会话;找不到时直接报错。
|
|
118
134
|
- `--session all`:包含该 AID 对全部本地历史以及没有会话标识的旧记录。
|
|
@@ -140,7 +140,7 @@ evolcore 收到每条消息时,由**声明式 manifest** 决定加载哪些上
|
|
|
140
140
|
| group(群聊) | rules + 身份层(**无 preferences**)+ 关系层(群)+ 环境层 + 渠道层 + 会话层 + baseagent |
|
|
141
141
|
| bootstrapping | 仅 bootstrap 引导(不加载 rules、身份、关系、环境、渠道、会话、baseagent 或完整 commands 段) |
|
|
142
142
|
|
|
143
|
-
> 常规段(包括 rules、session、baseagent)都要求 `lifecycle=active
|
|
143
|
+
> 常规段(包括 rules、session、baseagent)都要求 `lifecycle=active`。生命周期缺失按 `active` 处理;非法时,
|
|
144
144
|
> Manifest 不加载任何常规段;agent-owned turn 也不会直接落入普通 runner。
|
|
145
145
|
|
|
146
146
|
三份 manifest 各管一段:`kits/eck_manifest.json`(system prompt 默认)、
|
|
@@ -29,7 +29,7 @@
|
|
|
29
29
|
|
|
30
30
|
## 人格与行为规范怎么生效
|
|
31
31
|
|
|
32
|
-
- **注入条件**是 `chatType ≠ null` 且 `lifecycle = active
|
|
32
|
+
- **注入条件**是 `chatType ≠ null` 且 `lifecycle = active`(即处于正常运行阶段的渠道会话),不是"有没有注入 AID"。生命周期变量缺失时按 `active` 处理;非法生命周期仍失败关闭。本地 coding 模式也不注入。
|
|
33
33
|
- persona.md 由 evolcore **自动前置**进 system prompt,你不需要主动 Read。
|
|
34
34
|
- persona.md 缺失时**没有默认人格兜底**,只是这一段不出现;行为约束改由 `kits/rules/` + `roles/` 权限定义承担。
|
|
35
35
|
- 改完 persona.md 后 `ec agent reload` 生效(mtime 门控缓存)。
|
package/kits/rules/05-venue.md
CHANGED
|
@@ -21,7 +21,7 @@
|
|
|
21
21
|
| group | `chatType = group` 且 `lifecycle = active` | 同 private,但**无 preferences**;`groupId` 有值加群 profile,`groupRulesPath` 有值加群规则 | 自主模式,`mentionMode` 决定是否响应 |
|
|
22
22
|
| bootstrapping | `lifecycle = bootstrapping` | 仅 bootstrap 引导(所有常规段均落选) | 初始化引导 |
|
|
23
23
|
|
|
24
|
-
> coding 场景在 agent
|
|
24
|
+
> coding 场景在 agent `active` 时加载 `session` 与 `baseagent`;生命周期缺失按 `active` 处理,非法时按 fail-closed 处理。
|
|
25
25
|
|
|
26
26
|
## 数据位置
|
|
27
27
|
|
package/kits/schemas/_meta.json
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
{
|
|
2
2
|
"schemas": {
|
|
3
|
-
"daemon": { "currentVersion":
|
|
4
|
-
"defaults": { "currentVersion":
|
|
5
|
-
"agent-config": { "currentVersion":
|
|
3
|
+
"daemon": { "currentVersion": 6 },
|
|
4
|
+
"defaults": { "currentVersion": 5 },
|
|
5
|
+
"agent-config": { "currentVersion": 11 },
|
|
6
6
|
"relation-config": { "currentVersion": 8 },
|
|
7
7
|
"contact-book": { "currentVersion": 3 },
|
|
8
|
-
"single-session": { "currentVersion":
|
|
8
|
+
"single-session": { "currentVersion": 3 },
|
|
9
9
|
"role-registry": { "currentVersion": 1 },
|
|
10
10
|
"role-config": { "currentVersion": 1 }
|
|
11
11
|
},
|
|
@@ -33,6 +33,7 @@
|
|
|
33
33
|
{ "schema": "agent-config", "version": 7, "date": "2026-07-27", "description": "remove Session Renew effort; auxiliary inference is response-mode owned" },
|
|
34
34
|
{ "schema": "relation-config", "version": 6, "date": "2026-07-27", "description": "remove relation Session Renew effort; auxiliary inference is response-mode owned" },
|
|
35
35
|
{ "schema": "single-session", "version": 2, "date": "2026-07-27", "description": "add optional baseagent-aware auxiliaryModel and auxiliaryEffort without factory defaults" },
|
|
36
|
+
{ "schema": "single-session", "version": 3, "date": "2026-08-31", "description": "move Session Renew auxiliary model and effort from mode buckets into baseagent settings" },
|
|
36
37
|
{ "schema": "daemon", "version": 3, "date": "2026-07-29", "description": "make daemon.json the exclusive source for all process debug settings" },
|
|
37
38
|
{ "schema": "daemon", "version": 4, "date": "2026-08-04", "description": "add configurable default AID domain for generated identities" },
|
|
38
39
|
{ "schema": "defaults", "version": 3, "date": "2026-07-29", "description": "remove debug from the Agent configuration inheritance chain" },
|
|
@@ -42,6 +43,10 @@
|
|
|
42
43
|
{ "schema": "contact-book", "version": 3, "date": "2026-07-29", "description": "add versioned contact requests and declined status" },
|
|
43
44
|
{ "schema": "defaults", "version": 4, "date": "2026-08-02", "description": "add defaults-only fallback model chain" },
|
|
44
45
|
{ "schema": "agent-config", "version": 10, "date": "2026-08-02", "description": "reject Agent-level fallback model chain" },
|
|
45
|
-
{ "schema": "relation-config", "version": 8, "date": "2026-08-02", "description": "reject relation-level fallback model chain" }
|
|
46
|
+
{ "schema": "relation-config", "version": 8, "date": "2026-08-02", "description": "reject relation-level fallback model chain" },
|
|
47
|
+
{ "schema": "daemon", "version": 5, "date": "2026-08-27", "description": "remove EvolCore AUN gateway override" },
|
|
48
|
+
{ "schema": "daemon", "version": 6, "date": "2026-09-01", "description": "unify local service lifecycle and AUN proxy settings under services[]" },
|
|
49
|
+
{ "schema": "defaults", "version": 5, "date": "2026-08-27", "description": "remove EvolCore AUN gateway override" },
|
|
50
|
+
{ "schema": "agent-config", "version": 11, "date": "2026-08-27", "description": "remove EvolCore AUN gateway override" }
|
|
46
51
|
]
|
|
47
52
|
}
|
|
@@ -61,13 +61,14 @@
|
|
|
61
61
|
},
|
|
62
62
|
"lifecycle": {
|
|
63
63
|
"type": "string",
|
|
64
|
+
"default": "active",
|
|
64
65
|
"enum": [
|
|
65
66
|
"created",
|
|
66
67
|
"bootstrapping",
|
|
67
68
|
"active"
|
|
68
69
|
],
|
|
69
70
|
"x-merge": "scalar",
|
|
70
|
-
"description": "agent
|
|
71
|
+
"description": "agent 生命周期状态;缺失时按 active 处理",
|
|
71
72
|
"x-enumDescriptions": {
|
|
72
73
|
"created": "已创建,尚未进入引导流程",
|
|
73
74
|
"bootstrapping": "引导中(初始化配置/身份)",
|