evolclaw 2.8.3 → 3.1.0
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/README.md +21 -12
- package/bin/ec.js +29 -0
- package/dist/agents/baseagent-normalize.js +19 -0
- package/dist/agents/claude-runner.js +108 -46
- package/dist/agents/codex-runner.js +13 -14
- package/dist/agents/gemini-runner.js +15 -17
- package/dist/agents/kit-renderer.js +281 -0
- package/dist/agents/resolve.js +134 -0
- package/dist/aun/aid/agentmd.js +186 -0
- package/dist/aun/aid/client.js +134 -0
- package/dist/aun/aid/identity.js +159 -0
- package/dist/aun/aid/index.js +3 -0
- package/dist/aun/aid/lifecycle-log.js +33 -0
- package/dist/aun/aid/types.js +1 -0
- package/dist/aun/aid/validation.js +21 -0
- package/dist/aun/msg/group.js +293 -0
- package/dist/aun/msg/index.js +4 -0
- package/dist/aun/msg/p2p.js +147 -0
- package/dist/aun/msg/payload-type.js +27 -0
- package/dist/aun/msg/upload.js +98 -0
- package/dist/aun/outbox.js +138 -0
- package/dist/aun/rpc/caller.js +42 -0
- package/dist/aun/rpc/connection.js +34 -0
- package/dist/aun/rpc/index.js +2 -0
- package/dist/aun/storage/download.js +29 -0
- package/dist/aun/storage/index.js +3 -0
- package/dist/aun/storage/manage.js +10 -0
- package/dist/aun/storage/upload.js +35 -0
- package/dist/channels/aun.js +1340 -349
- package/dist/channels/dingtalk.js +59 -5
- package/dist/channels/feishu.js +381 -32
- package/dist/channels/qqbot.js +68 -12
- package/dist/channels/wechat.js +63 -4
- package/dist/channels/wecom.js +59 -5
- package/dist/cli/agent.js +800 -0
- package/dist/cli/bench.js +1219 -0
- package/dist/cli/index.js +4513 -0
- package/dist/{utils → cli}/init-channel.js +211 -621
- package/dist/cli/init.js +178 -0
- package/dist/cli/link-rules.js +245 -0
- package/dist/cli/net-check.js +640 -0
- package/dist/cli/watch-msg.js +589 -0
- package/dist/config-store.js +645 -0
- package/dist/core/{agent-loader.js → baseagent-loader.js} +6 -12
- package/dist/core/channel-loader.js +176 -12
- package/dist/core/command-handler.js +883 -848
- package/dist/core/evolagent-registry.js +191 -371
- package/dist/core/evolagent.js +202 -238
- package/dist/core/interaction-router.js +52 -5
- package/dist/core/message/im-renderer.js +486 -0
- package/dist/core/message/items-formatter.js +68 -0
- package/dist/core/message/message-bridge.js +109 -56
- package/dist/core/message/message-log.js +93 -0
- package/dist/core/message/message-processor.js +430 -212
- package/dist/core/message/message-queue.js +13 -6
- package/dist/core/permission.js +116 -11
- package/dist/core/session/adapters/codex-session-file-adapter.js +24 -2
- package/dist/core/session/session-fs-store.js +230 -0
- package/dist/core/session/session-manager.js +740 -777
- package/dist/core/session/session-mapper.js +87 -0
- package/dist/core/trigger/manager.js +122 -0
- package/dist/core/trigger/parser.js +128 -0
- package/dist/core/trigger/scheduler.js +224 -0
- package/dist/data/error-dict.json +118 -0
- package/dist/eck/baseagent-caps.js +18 -0
- package/dist/eck/detect.js +47 -0
- package/dist/eck/init.js +77 -0
- package/dist/eck/rules-loader.js +28 -0
- package/dist/index.js +560 -283
- package/dist/ipc.js +49 -0
- package/dist/net-check.js +640 -0
- package/dist/paths.js +73 -9
- package/dist/types.js +8 -2
- package/dist/utils/aid-lifecycle-log.js +33 -0
- package/dist/utils/atomic-write.js +89 -0
- package/dist/utils/channel-helpers.js +46 -0
- package/dist/utils/cross-platform.js +17 -26
- package/dist/utils/error-utils.js +10 -2
- package/dist/utils/instance-registry.js +434 -0
- package/dist/utils/log-writer.js +217 -0
- package/dist/utils/logger.js +34 -77
- package/dist/utils/media-cache.js +23 -0
- package/dist/utils/npm-ops.js +163 -0
- package/dist/utils/process-introspect.js +122 -0
- package/dist/utils/stats.js +192 -0
- package/dist/watch-msg.js +544 -0
- package/evolclaw-install-aun.md +127 -47
- package/kits/docs/GUIDE.md +20 -0
- package/kits/docs/INDEX.md +52 -0
- package/kits/docs/aun/CHEATSHEET.md +17 -0
- package/kits/docs/aun/SYNC_PROTOCOL.md +15 -0
- package/kits/docs/channels/aun.md +25 -0
- package/kits/docs/channels/feishu.md +27 -0
- package/kits/docs/eck_templates/GUIDE.template.md +22 -0
- package/kits/docs/eck_templates/INDEX.template.md +28 -0
- package/kits/docs/eck_templates/path-registry.template.md +33 -0
- package/kits/docs/eck_templates/runtime.template.md +19 -0
- package/kits/docs/evolclaw/AGENT_CMD.md +31 -0
- package/kits/docs/evolclaw/MSG_GROUP.md +30 -0
- package/kits/docs/evolclaw/MSG_PRIVATE.md +25 -0
- package/kits/docs/evolclaw/self-summary.md +29 -0
- package/kits/docs/evolclaw/tools.md +25 -0
- package/kits/docs/identity/AID_PROFILE_SPEC.md +27 -0
- package/kits/docs/identity/PATH_OPS.md +16 -0
- package/kits/docs/identity/ROLE_DETAIL.md +20 -0
- package/kits/docs/identity/identity-tools.md +26 -0
- package/kits/docs/path-registry.md +43 -0
- package/kits/eck_manifest.json +95 -0
- package/kits/rules/01-overview.md +120 -0
- package/kits/rules/02-navigation.md +75 -0
- package/kits/rules/03-identity.md +34 -0
- package/kits/rules/04-relation.md +49 -0
- package/kits/rules/05-venue.md +45 -0
- package/kits/rules/06-channel.md +43 -0
- package/kits/templates/system-fragments/baseagent.md +2 -0
- package/kits/templates/system-fragments/channel.md +10 -0
- package/kits/templates/system-fragments/identity.md +12 -0
- package/kits/templates/system-fragments/relation.md +9 -0
- package/kits/templates/system-fragments/runtime.md +19 -0
- package/kits/templates/system-fragments/venue.md +5 -0
- package/package.json +10 -6
- package/data/evolclaw.sample.json +0 -60
- package/dist/agents/templates.js +0 -122
- package/dist/channels/aun-ops.js +0 -275
- package/dist/cli.js +0 -2178
- package/dist/config.js +0 -591
- package/dist/core/agent-registry.js +0 -450
- package/dist/core/evolagent-schema.js +0 -72
- package/dist/core/message/stream-flusher.js +0 -238
- package/dist/core/message/thought-emitter.js +0 -162
- package/dist/core/reload-hooks.js +0 -87
- package/dist/prompts/templates.js +0 -122
- package/dist/templates/prompts.md +0 -104
- package/dist/templates/skills.md +0 -66
- package/dist/utils/channel-fingerprint.js +0 -59
- package/dist/utils/error-dict.js +0 -63
- package/dist/utils/format.js +0 -32
- package/dist/utils/init.js +0 -645
- package/dist/utils/migrate-project.js +0 -122
- package/dist/utils/reload-hooks.js +0 -87
- package/dist/utils/stats-collector.js +0 -99
- package/dist/utils/upgrade.js +0 -100
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { logger } from '../utils/logger.js';
|
|
2
|
-
import { requireOptional } from '../utils/
|
|
3
|
-
import { normalizeChannelInstances, getChannelShowActivities } from '../
|
|
2
|
+
import { requireOptional } from '../utils/npm-ops.js';
|
|
3
|
+
import { normalizeChannelInstances, getChannelShowActivities } from '../utils/channel-helpers.js';
|
|
4
|
+
import { formatItemsAsText } from '../core/message/items-formatter.js';
|
|
4
5
|
// ── Webhook SSRF validation ────────────────────────────────────────────────────
|
|
5
6
|
const WEBHOOK_RE = /^https:\/\/(api|oapi)\.dingtalk\.com\//;
|
|
6
7
|
// ── DingtalkChannel ────────────────────────────────────────────────────────────
|
|
@@ -446,9 +447,47 @@ export class DingtalkChannelPlugin {
|
|
|
446
447
|
});
|
|
447
448
|
const adapter = {
|
|
448
449
|
channelName: inst.name,
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
450
|
+
capabilities: { file: true, image: true, interaction: false, markdown: true, thought: false, status: false },
|
|
451
|
+
send: async (envelope, payload) => {
|
|
452
|
+
const ctx = envelope.replyContext;
|
|
453
|
+
const channelId = envelope.channelId;
|
|
454
|
+
switch (payload.kind) {
|
|
455
|
+
case 'result.text':
|
|
456
|
+
case 'command.result':
|
|
457
|
+
case 'command.error':
|
|
458
|
+
case 'system.notice':
|
|
459
|
+
case 'system.error':
|
|
460
|
+
case 'result.error':
|
|
461
|
+
await channel.sendMessage(channelId, payload.text);
|
|
462
|
+
return;
|
|
463
|
+
case 'result.file':
|
|
464
|
+
await channel.sendFile(channelId, payload.filePath);
|
|
465
|
+
return;
|
|
466
|
+
case 'result.image':
|
|
467
|
+
await channel.sendImage(channelId, payload.data);
|
|
468
|
+
return;
|
|
469
|
+
case 'activity.batch': {
|
|
470
|
+
const filtered = payload.items.filter((i) => !(i.kind === 'tool_result' && i.ok));
|
|
471
|
+
const text = formatItemsAsText(filtered);
|
|
472
|
+
if (text)
|
|
473
|
+
await channel.sendMessage(channelId, text);
|
|
474
|
+
return;
|
|
475
|
+
}
|
|
476
|
+
case 'interaction':
|
|
477
|
+
if (payload.fallbackText)
|
|
478
|
+
await channel.sendMessage(channelId, payload.fallbackText);
|
|
479
|
+
return;
|
|
480
|
+
case 'status.started':
|
|
481
|
+
case 'status.completed':
|
|
482
|
+
case 'status.interrupted':
|
|
483
|
+
case 'status.error':
|
|
484
|
+
case 'status.timeout':
|
|
485
|
+
case 'custom':
|
|
486
|
+
return;
|
|
487
|
+
default:
|
|
488
|
+
logger.warn(`[DingTalk] Unhandled payload kind: ${payload.kind}`);
|
|
489
|
+
}
|
|
490
|
+
},
|
|
452
491
|
};
|
|
453
492
|
const policy = {
|
|
454
493
|
canSwitchProject: (_chatType, identity) => identity === 'owner' || identity === 'admin',
|
|
@@ -493,6 +532,21 @@ export class DingtalkChannelPlugin {
|
|
|
493
532
|
connect: () => channel.connect(),
|
|
494
533
|
disconnect: () => channel.disconnect(),
|
|
495
534
|
onProjectPathRequest: () => Promise.resolve(config.projects?.defaultPath || process.cwd()),
|
|
535
|
+
registerBridge(bridge, channelType) {
|
|
536
|
+
bridge.register(adapter.channelName, (handler) => channel.onMessage(async (event) => {
|
|
537
|
+
await handler({
|
|
538
|
+
channel: adapter.channelName,
|
|
539
|
+
channelType,
|
|
540
|
+
channelId: event.channelId,
|
|
541
|
+
content: event.content,
|
|
542
|
+
images: event.images,
|
|
543
|
+
chatType: event.chatType || 'private',
|
|
544
|
+
peerId: event.peerId || '',
|
|
545
|
+
peerName: event.peerName,
|
|
546
|
+
messageId: event.messageId,
|
|
547
|
+
});
|
|
548
|
+
}), (channelId, text) => channel.sendMessage(channelId, text), adapter, channelType);
|
|
549
|
+
},
|
|
496
550
|
});
|
|
497
551
|
}
|
|
498
552
|
return result;
|