evolcore 0.0.32 → 0.0.33
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 +24 -0
- package/bin/install-codex-managed-hooks.mjs +124 -37
- package/dist/agents/claude-runner.js +29 -2
- package/dist/agents/codex/app-server-client.js +3 -0
- package/dist/agents/codex/diagnostics.js +76 -44
- package/dist/agents/codex-runner.js +23 -19
- package/dist/agents/ecagent-runner.js +5 -13
- package/dist/aun/group/operations.js +0 -1
- package/dist/aun/msg/history.js +1 -0
- package/dist/aun/msg/p2p.js +0 -1
- package/dist/aun/outbox.js +50 -1
- package/dist/channels/aun.js +28 -2
- package/dist/channels/daemon.js +257 -2
- package/dist/cli/agent-command.js +58 -24
- package/dist/cli/agent.js +1 -1
- package/dist/cli/aun-commands.js +365 -29
- package/dist/cli/contact.js +8 -2
- package/dist/cli/daemon-commands.js +81 -12
- package/dist/cli/debug-mode.js +154 -0
- package/dist/cli/handoff-command.js +3 -0
- package/dist/cli/index.js +81 -64
- package/dist/cli/init.js +2 -2
- package/dist/cli/managed-command-guard.js +5 -0
- package/dist/cli/memory-command.js +8 -1
- package/dist/cli/queue-command.js +9 -4
- package/dist/cli/session-command.js +194 -0
- package/dist/cli/skill-command.js +78 -2
- package/dist/cli/task-context.js +1 -0
- package/dist/cli/thread-command.js +620 -0
- package/dist/cli/trigger-command.js +4 -2
- package/dist/config/builtin-roles.js +1 -0
- package/dist/config/config-field-policy.js +2 -3
- package/dist/config/config-manager.js +7 -2
- package/dist/config/resolved-config-op.js +3 -0
- package/dist/config-store.js +15 -0
- package/dist/core/auth/agent-delegation.js +25 -1
- package/dist/core/auth/debug-context.js +139 -0
- package/dist/core/auth/operation-authorizer.js +24 -1
- package/dist/core/auth/operation-catalog.js +33 -0
- package/dist/core/background-session/session-cleanup.js +212 -0
- package/dist/core/background-session/types.js +10 -0
- package/dist/core/bootstrap-messages.js +1 -1
- package/dist/core/bootstrap-service.js +6 -3
- package/dist/core/command/command-handler.js +60 -24
- package/dist/core/command/memory-slash.js +6 -2
- package/dist/core/command/menu-catalog.js +48 -1
- package/dist/core/command/menu-handler.js +92 -16
- package/dist/core/command/menu-protocol.js +24 -1
- package/dist/core/command/skill-slash.js +322 -0
- package/dist/core/command/slash-gate.js +6 -4
- package/dist/core/command/slash-handler.js +193 -13
- package/dist/core/command/topic-slash.js +528 -0
- package/dist/core/evolagent-registry.js +20 -5
- package/dist/core/handoff/runtime.js +5 -11
- package/dist/core/handoff/store.js +5 -0
- package/dist/core/ipc-registration.js +139 -2
- package/dist/core/memory/consolidation-context.js +49 -16
- package/dist/core/memory/consolidation-ops-records.js +35 -0
- package/dist/core/memory/consolidation-queue-format.js +21 -0
- package/dist/core/memory/consolidation.js +174 -180
- package/dist/core/message/aun-ipc-sender.js +161 -6
- package/dist/core/message/im-renderer.js +149 -6
- package/dist/core/message/message-bridge.js +13 -3
- package/dist/core/message/message-log.js +1 -0
- package/dist/core/message/peer-mode.js +6 -1
- package/dist/core/message/response-engine.js +349 -67
- package/dist/core/message/subtask-tool-projection.js +140 -0
- package/dist/core/model/catalog-service.js +17 -12
- package/dist/core/permission/ec-command-parser.js +126 -7
- package/dist/core/session/session-idle-monitor.js +249 -22
- package/dist/core/session/session-manager.js +54 -9
- package/dist/core/skill/command-parser.js +13 -0
- package/dist/core/skill/index-generator.js +4 -1
- package/dist/core/skill/startup.js +41 -0
- package/dist/core/skill/switch-resolver.js +55 -29
- package/dist/core/thread/command-parser.js +125 -0
- package/dist/core/thread/index.js +1 -0
- package/dist/core/thread/ipc-operation.js +95 -0
- package/dist/core/thread/thread-context-storage.js +131 -0
- package/dist/core/thread/thread-operation.js +258 -0
- package/dist/core/thread/thread-route.js +33 -0
- package/dist/core/thread/thread-service.js +777 -0
- package/dist/core/thread/types.js +1 -0
- package/dist/eck/message-renderer.js +35 -0
- package/dist/index.js +8 -5
- package/dist/ipc.js +89 -10
- package/dist/paths.js +23 -0
- package/dist/response-system/engines/v1/proactive-flow.js +169 -80
- package/dist/trigger/authorization.js +57 -28
- package/dist/trigger/feedback.js +7 -1
- package/dist/trigger/parser.js +63 -1
- package/dist/trigger/validation.js +14 -0
- package/dist/utils/error-utils.js +22 -1
- package/kits/docs/context-assembly.md +1 -0
- package/kits/docs/evolcore/INDEX.md +1 -0
- package/kits/docs/evolcore/agent-create.md +39 -28
- package/kits/docs/evolcore/agent.md +19 -4
- package/kits/docs/evolcore/ec-capabilities.md +4 -0
- package/kits/docs/evolcore/group-collaboration.md +3 -5
- package/kits/docs/evolcore/group.md +3 -4
- package/kits/docs/evolcore/memory-consolidation.md +1 -1
- package/kits/docs/evolcore/menu-exec-schema-commands.md +2 -2
- package/kits/docs/evolcore/menu-protocol.md +7 -0
- package/kits/docs/evolcore/msg.md +5 -8
- package/kits/docs/evolcore/thread-chain.md +267 -0
- package/kits/docs/prompt-loading-architecture.md +1 -0
- package/kits/eck_manifest.json +61 -26
- package/kits/eck_message_manifest.json +169 -10
- package/kits/rules/05-venue.md +1 -1
- package/kits/rules/07-memory-and-thread.md +202 -0
- package/kits/schemas/relation-config.schema.9.json +18 -3
- package/kits/schemas/role-config.schema.1.json +6 -6
- package/kits/schemas/single-session.schema.1.json +6 -6
- package/kits/schemas/single-session.schema.2.json +6 -6
- package/kits/schemas/single-session.schema.3.json +6 -6
- package/kits/skills/.switches.json +12 -1
- package/kits/skills/ec-group/SKILL.md +234 -0
- package/kits/skills/ec-skill/SKILL.md +10 -1
- package/kits/skills/ec-skill/scripts/cli.mjs +15 -1
- package/kits/skills/scrapling-article-fetch/SKILL.md +128 -0
- package/kits/skills/scrapling-article-fetch/scripts/check_python_env.py +54 -0
- package/kits/skills/scrapling-article-fetch/scripts/render_markdown_reply.py +35 -0
- package/kits/skills/scrapling-article-fetch/scripts/run_pipeline.sh +16 -0
- package/kits/skills/scrapling-article-fetch/scripts/scrapling_fetch.py +344 -0
- package/kits/skills/thread-ops/SKILL.md +492 -0
- package/kits/skills/wechat-article-media-download/SKILL.md +65 -0
- package/kits/skills/wechat-article-media-download/scripts/download.py +163 -0
- package/kits/skills/wechat-article-reader/SKILL.md +97 -0
- package/kits/skills/wechat-article-reader/scripts/fetch.mjs +256 -0
- package/kits/templates/bootstrap-welcome.md +7 -7
- package/kits/templates/memory-consolidation/forget.md +5 -0
- package/kits/templates/memory-consolidation/generalize.md +5 -0
- package/kits/templates/memory-consolidation/profile.md +5 -0
- package/kits/templates/memory-consolidation/promote.md +5 -0
- package/kits/templates/message-fragments/item.md +2 -1
- package/kits/templates/message-fragments/thread-context.md +6 -0
- package/kits/templates/message-fragments/trigger-session.md +2 -0
- package/kits/templates/message-fragments/trigger-thread-check.md +2 -0
- package/kits/templates/roles/member.json +2 -0
- package/kits/templates/roles/visitor.json +2 -0
- package/kits/templates/system-fragments/bootstrap.md +66 -72
- package/kits/templates/system-fragments/channel.md +3 -6
- package/kits/templates/system-fragments/commands.md +1 -0
- package/kits/templates/system-fragments/managed-runtime.md +15 -0
- package/kits/templates/system-fragments/reply.md +3 -2
- package/kits/templates/system-fragments/session.md +5 -14
- package/package.json +3 -1
- package/kits/docs/evolcore/group-fs.md +0 -17
- package/kits/docs/venues/aun-group.md +0 -45
- package/kits/docs/venues/group.md +0 -43
|
@@ -41,6 +41,30 @@ function formatBytes(bytes) {
|
|
|
41
41
|
return `${(bytes / 1024).toFixed(1)}KB`;
|
|
42
42
|
return `${(bytes / 1024 / 1024).toFixed(1)}MB`;
|
|
43
43
|
}
|
|
44
|
+
/** 终端显示宽度:CJK 及全角字符占 2 列,ASCII/拉丁占 1 列 */
|
|
45
|
+
function displayWidth(s) {
|
|
46
|
+
let w = 0;
|
|
47
|
+
for (const ch of s) {
|
|
48
|
+
const cp = ch.codePointAt(0);
|
|
49
|
+
if ((cp >= 0x1100 && cp <= 0x115F) ||
|
|
50
|
+
(cp >= 0x2E80 && cp <= 0x303E) ||
|
|
51
|
+
(cp >= 0x3040 && cp <= 0x33FF) ||
|
|
52
|
+
(cp >= 0x3400 && cp <= 0x9FFF) ||
|
|
53
|
+
(cp >= 0xAC00 && cp <= 0xD7AF) ||
|
|
54
|
+
(cp >= 0xF900 && cp <= 0xFAFF) ||
|
|
55
|
+
(cp >= 0xFF01 && cp <= 0xFF60) ||
|
|
56
|
+
(cp >= 0xFFE0 && cp <= 0xFFE6)) {
|
|
57
|
+
w += 2;
|
|
58
|
+
}
|
|
59
|
+
else {
|
|
60
|
+
w += 1;
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
return w;
|
|
64
|
+
}
|
|
65
|
+
function padEndDisplay(s, targetWidth) {
|
|
66
|
+
return s + ' '.repeat(Math.max(0, targetWidth - displayWidth(s)));
|
|
67
|
+
}
|
|
44
68
|
// ==================== Agent ====================
|
|
45
69
|
export async function cmdAgent(args) {
|
|
46
70
|
args = canonicalizeEvolcoreCommandArgv(['ec', 'agent', ...args]).slice(2);
|
|
@@ -78,8 +102,8 @@ Commands:
|
|
|
78
102
|
persona show 查看当前 Agent 的 persona.md
|
|
79
103
|
persona --text <text> 用文本设置当前 Agent 的 persona.md
|
|
80
104
|
persona --file <path> 用 .md/.txt 文件设置当前 Agent 的 persona.md
|
|
81
|
-
welcome show
|
|
82
|
-
welcome --text <text> 保存
|
|
105
|
+
welcome show 查看 Agent 自主准备的 Bootstrap welcome 文案
|
|
106
|
+
welcome --text <text> 保存 Agent 自主准备的 Bootstrap welcome 文案
|
|
83
107
|
rename <aid> <name> 修改 agent.md 中的显示名称
|
|
84
108
|
ready <aid> 标记 bootstrap 完成,进入 active 状态
|
|
85
109
|
reload [aid] 热重载配置(无参数=全量 resync)
|
|
@@ -220,25 +244,28 @@ Options:
|
|
|
220
244
|
// 表头跟随系统语言
|
|
221
245
|
const isChinese = isHostChinese();
|
|
222
246
|
const headers = isChinese
|
|
223
|
-
? { name: '名称', personal: 'Personal名', status: '状态', channels: '渠道', project: '项目', baseagent: '基座', lastActive: '最后活跃' }
|
|
224
|
-
: { name: 'NAME', personal: 'PERSONAL', status: 'STATUS', channels: 'CHANNELS', project: 'PROJECT', baseagent: 'BASEAGENT', lastActive: 'LAST ACTIVE' };
|
|
225
|
-
//
|
|
226
|
-
let maxNameLen = headers.name
|
|
227
|
-
let maxPersonalLen = headers.personal
|
|
228
|
-
let maxStatusLen = headers.status
|
|
229
|
-
let maxChannelsLen = headers.channels
|
|
230
|
-
let maxProjectLen = headers.project
|
|
231
|
-
let maxBaseagentLen = headers.baseagent
|
|
247
|
+
? { name: '名称', personal: 'Personal名', status: '状态', channels: '渠道', project: '项目', baseagent: '基座', model: '模型', lastActive: '最后活跃' }
|
|
248
|
+
: { name: 'NAME', personal: 'PERSONAL', status: 'STATUS', channels: 'CHANNELS', project: 'PROJECT', baseagent: 'BASEAGENT', model: 'MODEL', lastActive: 'LAST ACTIVE' };
|
|
249
|
+
// 计算各列实际需要的显示宽度(CJK 字符占 2 列)
|
|
250
|
+
let maxNameLen = displayWidth(headers.name);
|
|
251
|
+
let maxPersonalLen = displayWidth(headers.personal);
|
|
252
|
+
let maxStatusLen = displayWidth(headers.status);
|
|
253
|
+
let maxChannelsLen = displayWidth(headers.channels);
|
|
254
|
+
let maxProjectLen = displayWidth(headers.project);
|
|
255
|
+
let maxBaseagentLen = displayWidth(headers.baseagent);
|
|
256
|
+
let maxModelLen = displayWidth(headers.model);
|
|
232
257
|
for (const info of result.agents) {
|
|
233
|
-
maxNameLen = Math.max(maxNameLen, info.name
|
|
234
|
-
maxPersonalLen = Math.max(maxPersonalLen, (info.personalName || '—')
|
|
235
|
-
const
|
|
236
|
-
|
|
258
|
+
maxNameLen = Math.max(maxNameLen, displayWidth(info.name));
|
|
259
|
+
maxPersonalLen = Math.max(maxPersonalLen, displayWidth(info.personalName || '—'));
|
|
260
|
+
const lcSuffix = info.lifecycle && info.lifecycle !== 'active' ? ` (${info.lifecycle})` : '';
|
|
261
|
+
const displayedStatus = `${info.status || 'unknown'}${info.stale ? ' (stale)' : ''}${lcSuffix}`;
|
|
262
|
+
maxStatusLen = Math.max(maxStatusLen, displayWidth(displayedStatus));
|
|
237
263
|
const channelsStr = info.channels?.length > 0 ? info.channels.join(', ') : '—';
|
|
238
|
-
maxChannelsLen = Math.max(maxChannelsLen, channelsStr
|
|
264
|
+
maxChannelsLen = Math.max(maxChannelsLen, displayWidth(channelsStr));
|
|
239
265
|
const projectStr = info.projectPath ? path.basename(info.projectPath) : '—';
|
|
240
|
-
maxProjectLen = Math.max(maxProjectLen, projectStr
|
|
241
|
-
maxBaseagentLen = Math.max(maxBaseagentLen, (info.baseagent || '—')
|
|
266
|
+
maxProjectLen = Math.max(maxProjectLen, displayWidth(projectStr));
|
|
267
|
+
maxBaseagentLen = Math.max(maxBaseagentLen, displayWidth(info.baseagent || '—'));
|
|
268
|
+
maxModelLen = Math.max(maxModelLen, displayWidth(info.model || '—'));
|
|
242
269
|
}
|
|
243
270
|
// 加 2 作为列间距
|
|
244
271
|
const colName = maxNameLen + 2;
|
|
@@ -247,18 +274,25 @@ Options:
|
|
|
247
274
|
const colChannels = maxChannelsLen + 1;
|
|
248
275
|
const colProject = maxProjectLen + 2;
|
|
249
276
|
const colBaseagent = maxBaseagentLen + 2;
|
|
250
|
-
|
|
251
|
-
|
|
277
|
+
const colModel = maxModelLen + 2;
|
|
278
|
+
console.log(padEndDisplay(headers.name, colName) + padEndDisplay(headers.personal, colPersonal) +
|
|
279
|
+
padEndDisplay(headers.status, colStatus) + padEndDisplay(headers.channels, colChannels) +
|
|
280
|
+
padEndDisplay(headers.project, colProject) + padEndDisplay(headers.baseagent, colBaseagent) +
|
|
281
|
+
padEndDisplay(headers.model, colModel) + headers.lastActive);
|
|
252
282
|
for (const info of result.agents) {
|
|
253
283
|
const name = info.name;
|
|
254
284
|
const personal = info.personalName || '—';
|
|
255
|
-
const
|
|
285
|
+
const lcSuffix = info.lifecycle && info.lifecycle !== 'active' ? ` (${info.lifecycle})` : '';
|
|
286
|
+
const status = `${info.status || 'unknown'}${info.stale ? ' (stale)' : ''}${lcSuffix}`;
|
|
256
287
|
const channels = info.channels?.length > 0 ? info.channels.join(', ') : '—';
|
|
257
288
|
const project = info.projectPath ? path.basename(info.projectPath) : '—';
|
|
258
289
|
const baseagent = info.baseagent || '—';
|
|
290
|
+
const model = info.model || '—';
|
|
259
291
|
const lastActive = info.lastActivity ? formatTimeAgo(Date.now() - info.lastActivity) : '—';
|
|
260
|
-
console.log(name
|
|
261
|
-
|
|
292
|
+
console.log(padEndDisplay(name, colName) + padEndDisplay(personal, colPersonal) +
|
|
293
|
+
padEndDisplay(status, colStatus) + padEndDisplay(channels, colChannels) +
|
|
294
|
+
padEndDisplay(project, colProject) + padEndDisplay(baseagent, colBaseagent) +
|
|
295
|
+
padEndDisplay(model, colModel) + lastActive);
|
|
262
296
|
}
|
|
263
297
|
return;
|
|
264
298
|
}
|
|
@@ -697,7 +731,7 @@ Options:
|
|
|
697
731
|
console.log(`用法: ${MAIN_CLI_BIN} agent welcome show [--format json]
|
|
698
732
|
${MAIN_CLI_BIN} agent welcome --text <text> [--format json]
|
|
699
733
|
|
|
700
|
-
读取或保存当前 Agent 在 Bootstrap
|
|
734
|
+
读取或保存当前 Agent 在 Bootstrap 中自主准备的 welcome 文案。文案固定保存到 personal/welcome.md。`);
|
|
701
735
|
return;
|
|
702
736
|
}
|
|
703
737
|
const result = { ok: false, code: 'INVALID_ARGS', error: error.message };
|
package/dist/cli/agent.js
CHANGED
|
@@ -553,7 +553,7 @@ export async function agentPersona(aid, options = {}) {
|
|
|
553
553
|
return { ok: false, code: 'WRITE_FAILED', error: e?.message || String(e) };
|
|
554
554
|
}
|
|
555
555
|
}
|
|
556
|
-
/** Read or replace the current Agent's
|
|
556
|
+
/** Read or replace the current Agent's self-prepared Bootstrap welcome template. */
|
|
557
557
|
export async function agentWelcome(aid, options = {}) {
|
|
558
558
|
if (!isValidAid(aid))
|
|
559
559
|
return { ok: false, code: 'INVALID_ARGS', error: 'Invalid Agent AID' };
|