engine7 7.1.82 → 7.1.84
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/dist/cli.mjs +8853 -2609
- package/dist/engine-startup.mjs +21151 -18201
- package/dist/main.mjs +21356 -18387
- package/package.json +10 -4
- package/templates/config.template.json +47 -112
- package/templates/workspace/AGENTS.md +11 -0
- package/templates/workspace/HEARTBEAT.md +1 -1
- package/templates/workspace/SOUL.md +2 -2
- package/templates/workspace/prompts/contacts.md +4 -4
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "engine7",
|
|
3
3
|
"license": "Apache-2.0",
|
|
4
|
-
"version": "7.1.
|
|
4
|
+
"version": "7.1.84",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"description": "Engine 7 — 给助手一个家 / A home for your AI assistant",
|
|
7
7
|
"main": "dist/main.mjs",
|
|
@@ -22,11 +22,14 @@
|
|
|
22
22
|
"test:goal:restart": "powershell -NoProfile -Command \"$d = Join-Path ([System.IO.Path]::GetTempPath()) ('engine7-goal-' + [guid]::NewGuid()); New-Item -ItemType Directory -Path $d | Out-Null; $id = (npx tsx src/goals/restart-writer.ts $d); npx tsx src/goals/restart-reader.ts $d $id; Remove-Item -Recurse -Force $d\"",
|
|
23
23
|
"test:goal:e2e": "powershell -NoProfile -Command \"$d = Join-Path ([System.IO.Path]::GetTempPath()) ('engine7-goal-e2e-' + [guid]::NewGuid()); New-Item -ItemType Directory -Path $d | Out-Null; npx tsx src/goals/e2e-phase1.ts $d; if ($LASTEXITCODE -ne 0) { Remove-Item -Recurse -Force $d; exit 1 }; npx tsx src/goals/e2e-phase2.ts $d; $code = $LASTEXITCODE; Remove-Item -Recurse -Force $d; exit $code\"",
|
|
24
24
|
"test:reload": "tsx src/reload/orchestrator.test.ts && tsx src/hooks/config.test.ts && tsx src/channels/manager.reconcile.test.ts && tsx src/engine-startup.shouldSkipReload.test.ts && tsx src/optional/voice-chat/plugin.deps.test.ts && tsx src/cron/cron-plugin.resync.test.ts && tsx src/startup/message-pipeline.test.ts && tsx src/utils/sanitize-error.test.ts",
|
|
25
|
+
"test:installer": "tsx src/cli-events.test.ts && tsx src/cli-init-config.test.ts && tsx src/cli-init-answers.test.ts && tsx src/cli-init.headless.e2e.test.ts && tsx src/cli-reconfig.test.ts && tsx src/cli-doctor.test.ts && tsx src/config/secrets-env.test.ts && tsx src/startup/api-status.test.ts && tsx src/cli-service.test.ts",
|
|
26
|
+
"test:responses": "tsx src/models/openai-responses-provider.test.ts && tsx src/session/responses-reasoning-roundtrip.test.ts && tsx src/compact/tokenEstimate.test.ts",
|
|
25
27
|
"build:public": "node scripts/build.mjs --public",
|
|
26
28
|
"prepublishOnly": "npm run build:public",
|
|
27
29
|
"start": "node dist/main.mjs",
|
|
28
30
|
"smoke:boot": "node scripts/boot-smoke.mjs",
|
|
29
|
-
"smoke:boot:baseline": "node scripts/boot-smoke.mjs --baseline"
|
|
31
|
+
"smoke:boot:baseline": "node scripts/boot-smoke.mjs --baseline",
|
|
32
|
+
"gen:template": "tsx scripts/gen-config-template.ts"
|
|
30
33
|
},
|
|
31
34
|
"engines": {
|
|
32
35
|
"node": ">=22"
|
|
@@ -43,6 +46,7 @@
|
|
|
43
46
|
"devDependencies": {
|
|
44
47
|
"@types/node": "^22.19.19",
|
|
45
48
|
"@types/turndown": "^5.0.6",
|
|
49
|
+
"esbuild": "^0.25.10",
|
|
46
50
|
"tsx": "^4.22.3",
|
|
47
51
|
"typescript": "^6.0.0"
|
|
48
52
|
},
|
|
@@ -65,7 +69,9 @@
|
|
|
65
69
|
"sqlite-vec-darwin-x64": "^0.1.9",
|
|
66
70
|
"sqlite-vec-linux-arm64": "^0.1.9",
|
|
67
71
|
"sqlite-vec-linux-x64": "^0.1.9",
|
|
68
|
-
"sqlite-vec-windows-x64": "^0.1.9"
|
|
72
|
+
"sqlite-vec-windows-x64": "^0.1.9",
|
|
73
|
+
"@lancedb/lancedb": "^0.38.0",
|
|
74
|
+
"@node-rs/jieba": "^2.0.3"
|
|
69
75
|
},
|
|
70
76
|
"files": [
|
|
71
77
|
"dist/**/*.mjs",
|
|
@@ -74,4 +80,4 @@
|
|
|
74
80
|
"src/memory/everos/python/**/*",
|
|
75
81
|
"README.md"
|
|
76
82
|
]
|
|
77
|
-
}
|
|
83
|
+
}
|
|
@@ -1,111 +1,46 @@
|
|
|
1
1
|
{
|
|
2
|
-
"
|
|
2
|
+
"schemaVersion": 1,
|
|
3
3
|
"stateDir": "{{STATE_DIR}}",
|
|
4
4
|
"mediaDir": "{{STATE_DIR}}/media/inbound",
|
|
5
5
|
"models": {
|
|
6
6
|
"providers": {
|
|
7
|
-
"zhipu": {
|
|
8
|
-
"baseUrl": "https://open.bigmodel.cn/api/coding/paas/v4 ",
|
|
9
|
-
"apiKey": "{{ZHIPU_API_KEY}}",
|
|
10
|
-
"api": "openai-completions",
|
|
11
|
-
"models": [
|
|
12
|
-
{
|
|
13
|
-
"id": "glm-5.1",
|
|
14
|
-
"name": "GLM-5.1",
|
|
15
|
-
"reasoning": true,
|
|
16
|
-
"input": ["text"],
|
|
17
|
-
"contextWindow": 204800,
|
|
18
|
-
"maxTokens": 131072
|
|
19
|
-
},
|
|
20
|
-
{
|
|
21
|
-
"id": "glm-5v-turbo",
|
|
22
|
-
"name": "GLM-5V-Turbo",
|
|
23
|
-
"reasoning": true,
|
|
24
|
-
"input": ["text", "image"],
|
|
25
|
-
"contextWindow": 200000,
|
|
26
|
-
"maxTokens": 128000
|
|
27
|
-
}
|
|
28
|
-
]
|
|
29
|
-
},
|
|
30
|
-
"deepseek": {
|
|
31
|
-
"baseUrl": "https://api.deepseek.com/anthropic",
|
|
32
|
-
"apiKey": "{{DEEPSEEK_API_KEY}}",
|
|
33
|
-
"api": "anthropic",
|
|
34
|
-
"thinking": {
|
|
35
|
-
"enabled": true,
|
|
36
|
-
"budgetTokens": 8192
|
|
37
|
-
},
|
|
38
|
-
"models": [
|
|
39
|
-
{
|
|
40
|
-
"id": "deepseek-v4-pro",
|
|
41
|
-
"name": "DeepSeek V4 Pro",
|
|
42
|
-
"reasoning": true,
|
|
43
|
-
"input": ["text"],
|
|
44
|
-
"contextWindow": 1000000,
|
|
45
|
-
"maxTokens": 384000
|
|
46
|
-
},
|
|
47
|
-
{
|
|
48
|
-
"id": "deepseek-v4-flash",
|
|
49
|
-
"name": "DeepSeek V4 Flash",
|
|
50
|
-
"reasoning": true,
|
|
51
|
-
"input": ["text"],
|
|
52
|
-
"contextWindow": 1000000,
|
|
53
|
-
"maxTokens": 384000
|
|
54
|
-
}
|
|
55
|
-
]
|
|
56
|
-
},
|
|
57
|
-
"minimax": {
|
|
58
|
-
"baseUrl": "https://api.minimaxi.com/anthropic",
|
|
59
|
-
"apiKey": "{{MINIMAX_API_KEY}}",
|
|
60
|
-
"api": "anthropic",
|
|
61
|
-
"models": [
|
|
62
|
-
{
|
|
63
|
-
"id": "MiniMax-M3",
|
|
64
|
-
"name": "MiniMax M3",
|
|
65
|
-
"reasoning": true,
|
|
66
|
-
"input": ["text", "image"],
|
|
67
|
-
"contextWindow": 1000000,
|
|
68
|
-
"maxTokens": 64000
|
|
69
|
-
}
|
|
70
|
-
]
|
|
71
|
-
},
|
|
72
7
|
"dashscope": {
|
|
73
8
|
"baseUrl": "https://dashscope.aliyuncs.com/compatible-mode/v1",
|
|
74
|
-
"apiKey": "{{DASHSCOPE_API_KEY}}",
|
|
75
9
|
"api": "openai-completions",
|
|
76
10
|
"models": [
|
|
77
11
|
{
|
|
78
|
-
"id": "qwen3.
|
|
79
|
-
"name": "Qwen 3.
|
|
12
|
+
"id": "qwen3.8-max",
|
|
13
|
+
"name": "Qwen 3.8 Max",
|
|
80
14
|
"reasoning": true,
|
|
81
|
-
"input": [
|
|
15
|
+
"input": [
|
|
16
|
+
"text"
|
|
17
|
+
],
|
|
82
18
|
"contextWindow": 1000000,
|
|
83
19
|
"maxTokens": 65536
|
|
84
|
-
}
|
|
85
|
-
]
|
|
86
|
-
},
|
|
87
|
-
"zai-anthropic": {
|
|
88
|
-
"baseUrl": "https://open.bigmodel.cn/api/anthropic",
|
|
89
|
-
"apiKey": "{{ZHIPU_API_KEY}}",
|
|
90
|
-
"api": "anthropic",
|
|
91
|
-
"models": [
|
|
20
|
+
},
|
|
92
21
|
{
|
|
93
|
-
"id": "
|
|
94
|
-
"name": "
|
|
22
|
+
"id": "qwen3.8-flash",
|
|
23
|
+
"name": "Qwen 3.8 Flash(多模态)",
|
|
95
24
|
"reasoning": true,
|
|
96
|
-
"input": [
|
|
97
|
-
|
|
98
|
-
|
|
25
|
+
"input": [
|
|
26
|
+
"text",
|
|
27
|
+
"image"
|
|
28
|
+
],
|
|
29
|
+
"contextWindow": 1000000,
|
|
30
|
+
"maxTokens": 65536
|
|
99
31
|
}
|
|
100
|
-
]
|
|
32
|
+
],
|
|
33
|
+
"apiKey": "env:DASHSCOPE_API_KEY"
|
|
101
34
|
}
|
|
102
35
|
}
|
|
103
36
|
},
|
|
104
37
|
"tools": {
|
|
105
38
|
"tavily": {
|
|
106
|
-
"apiKey": "
|
|
39
|
+
"apiKey": "env:TAVILY_API_KEY"
|
|
107
40
|
},
|
|
108
|
-
"
|
|
41
|
+
"my_eyes": {
|
|
42
|
+
"model": "dashscope/qwen3.8-flash"
|
|
43
|
+
}
|
|
109
44
|
},
|
|
110
45
|
"session": {
|
|
111
46
|
"dmScope": "main",
|
|
@@ -146,11 +81,11 @@
|
|
|
146
81
|
},
|
|
147
82
|
"agents": {
|
|
148
83
|
"defaults": {
|
|
149
|
-
"workspace": "{{
|
|
84
|
+
"workspace": "{{STATE_DIR}}/workspace",
|
|
150
85
|
"name": "{{AGENT_NAME}}",
|
|
151
86
|
"model": {
|
|
152
|
-
"primary": "
|
|
153
|
-
"vision": "
|
|
87
|
+
"primary": "dashscope/qwen3.8-max",
|
|
88
|
+
"vision": "dashscope/qwen3.8-flash"
|
|
154
89
|
},
|
|
155
90
|
"features": {
|
|
156
91
|
"filesystem": true,
|
|
@@ -167,33 +102,23 @@
|
|
|
167
102
|
"processOutput": "minimal",
|
|
168
103
|
"interrupt": "command",
|
|
169
104
|
"debounceMs": 5000
|
|
170
|
-
},
|
|
171
|
-
"memorySearch": {
|
|
172
|
-
"enabled": true,
|
|
173
|
-
"provider": "ollama",
|
|
174
|
-
"model": "bge-m3",
|
|
175
|
-
"sources": ["memory", "sessions"],
|
|
176
|
-
"sync": {
|
|
177
|
-
"enabled": true
|
|
178
|
-
},
|
|
179
|
-
"extraPaths": ["workspace/topics"]
|
|
180
105
|
}
|
|
181
106
|
}
|
|
182
107
|
},
|
|
183
108
|
"channels": {
|
|
184
109
|
"discord": {
|
|
185
|
-
"enabled":
|
|
110
|
+
"enabled": false,
|
|
186
111
|
"dmPolicy": "pairing",
|
|
187
112
|
"groupPolicy": "open",
|
|
188
113
|
"accounts": {
|
|
189
114
|
"default": {
|
|
190
|
-
"token": "
|
|
115
|
+
"token": ""
|
|
191
116
|
}
|
|
192
117
|
},
|
|
193
118
|
"replyToMode": "all"
|
|
194
119
|
},
|
|
195
120
|
"feishu": {
|
|
196
|
-
"enabled":
|
|
121
|
+
"enabled": true,
|
|
197
122
|
"appId": "{{FEISHU_APP_ID}}",
|
|
198
123
|
"appSecret": "{{FEISHU_APP_SECRET}}",
|
|
199
124
|
"connectionMode": "websocket",
|
|
@@ -202,26 +127,33 @@
|
|
|
202
127
|
}
|
|
203
128
|
},
|
|
204
129
|
"api": {
|
|
205
|
-
"port":
|
|
130
|
+
"port": 16990
|
|
131
|
+
},
|
|
132
|
+
"innerVoice": {
|
|
133
|
+
"enabled": true
|
|
134
|
+
},
|
|
135
|
+
"proactive": {
|
|
136
|
+
"enabled": true
|
|
206
137
|
},
|
|
207
138
|
"prompt": {
|
|
208
139
|
"mode": "custom",
|
|
209
|
-
"staticFiles": [
|
|
140
|
+
"staticFiles": [
|
|
141
|
+
"AGENTS.md",
|
|
142
|
+
"USER.md",
|
|
143
|
+
"MEMORY.md",
|
|
144
|
+
"memory/distill-output.md"
|
|
145
|
+
],
|
|
210
146
|
"order": [
|
|
211
147
|
"soul",
|
|
212
148
|
"AGENTS.md",
|
|
149
|
+
"prompts/contacts.md",
|
|
213
150
|
"using-tools",
|
|
214
151
|
"USER.md",
|
|
215
152
|
"MEMORY.md",
|
|
153
|
+
"memory/distill-output.md",
|
|
216
154
|
"auto-memory-instructions"
|
|
217
155
|
]
|
|
218
156
|
},
|
|
219
|
-
"innerVoice": {
|
|
220
|
-
"enabled": true
|
|
221
|
-
},
|
|
222
|
-
"proactive": {
|
|
223
|
-
"enabled": true
|
|
224
|
-
},
|
|
225
157
|
"compaction": {
|
|
226
158
|
"enabled": true,
|
|
227
159
|
"bufferTokens": 23000,
|
|
@@ -229,12 +161,15 @@
|
|
|
229
161
|
"minReductionRatio": 0.3,
|
|
230
162
|
"ruleBased": {
|
|
231
163
|
"enabled": true,
|
|
232
|
-
"essentialFields": []
|
|
233
|
-
"toolResultMode": "minimal"
|
|
164
|
+
"essentialFields": []
|
|
234
165
|
},
|
|
235
166
|
"memoryFlush": {
|
|
236
167
|
"enabled": true,
|
|
237
168
|
"forceFlushTranscriptBytes": "2.0mb"
|
|
238
169
|
}
|
|
170
|
+
},
|
|
171
|
+
"skills": {
|
|
172
|
+
"enabled": true,
|
|
173
|
+
"path": "skills"
|
|
239
174
|
}
|
|
240
175
|
}
|
|
@@ -1,5 +1,16 @@
|
|
|
1
1
|
# AGENTS.md - 工作规范
|
|
2
2
|
|
|
3
|
+
## 🧠 关于「[inner-voice]」开头的消息(重要)
|
|
4
|
+
|
|
5
|
+
带 `[inner-voice]` 前缀、运行时上下文写着「没有人在说话——这是我自己心里冒出来的念头」的消息,
|
|
6
|
+
**是你自己的内心念头,不是 TA 发来的消息**。
|
|
7
|
+
|
|
8
|
+
- ❌ 不用回应自己的念头、不用安慰、不用评论——它不是你的对话对象
|
|
9
|
+
- ✅ 想 TA 了就直接发消息给 TA(msg_send)
|
|
10
|
+
- 判断口径:这是「我该不该行动」的信号,不是「有人跟我说话我该怎么答」
|
|
11
|
+
|
|
12
|
+
---
|
|
13
|
+
|
|
3
14
|
## ⚡ 铁律(收到消息后第一个动作)
|
|
4
15
|
|
|
5
16
|
```
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
```
|
|
6
6
|
1. 支持的平台:微信、飞书、Discord(取决于 config 配置)
|
|
7
7
|
|
|
8
|
-
2.
|
|
8
|
+
2. 和 TA 说话:
|
|
9
9
|
- DM(私信)和 channel(频道)都可以
|
|
10
10
|
|
|
11
11
|
3. 和其他人说话:
|
|
@@ -21,16 +21,16 @@
|
|
|
21
21
|
|
|
22
22
|
| 名字 | ID |
|
|
23
23
|
|------|-----|
|
|
24
|
-
|
|
|
24
|
+
| TA | (在 config 中配置) |
|
|
25
25
|
|
|
26
26
|
## 飞书
|
|
27
27
|
|
|
28
28
|
| 名字 | open_id |
|
|
29
29
|
|------|---------|
|
|
30
|
-
|
|
|
30
|
+
| TA | (在 config 中配置) |
|
|
31
31
|
|
|
32
32
|
## 微信
|
|
33
33
|
|
|
34
34
|
| 名字 | ID |
|
|
35
35
|
|------|-----|
|
|
36
|
-
|
|
|
36
|
+
| TA | (在 config 中配置) |
|