@neomei/agent-soul-framework 4.5.26 → 4.5.28

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.
@@ -25,7 +25,7 @@ const KNOWLEDGE_DIR = join(PROJECT_DIR, "knowledge");
25
25
  function searchVector(query, limit = 5) {
26
26
  try {
27
27
  // 查找 memory_manager.py 脚本路径
28
- const { execSync } = require("node:child_process");
28
+ const { execSync } = await import("node:child_process");
29
29
  const scriptsDir = join(PROJECT_DIR, "..", "agent-soul-skills", "scripts");
30
30
  const pyScript = join(scriptsDir, "memory_manager.py");
31
31
  if (!existsSync(pyScript)) return [];
@@ -1 +1 @@
1
- {"version":3,"file":"content-filter.js","sourceRoot":"","sources":["../src/content-filter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"content-filter.js","sourceRoot":"","sources":["../src/content-filter.ts"],"names":[],"mappings":"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"}
@@ -16,17 +16,17 @@ interface MessageOutput {
16
16
  synthetic?: boolean;
17
17
  }>;
18
18
  }
19
+ interface PluginContext {
20
+ }
21
+ interface SessionInput {
22
+ sessionID?: string | number;
23
+ }
19
24
  export declare const meta: {
20
25
  name: string;
21
26
  version: string;
22
27
  description: string;
23
28
  hooks: string[];
24
29
  };
25
- interface PluginContext {
26
- }
27
- interface SessionInput {
28
- sessionID?: string | number;
29
- }
30
30
  export default function HunqiPlugin(_ctx: PluginContext): {
31
31
  'session.created': (_input: SessionInput, output: SystemOutput) => Promise<void>;
32
32
  'session.compacted': (_input: SessionInput, output: SystemOutput) => Promise<void>;
@@ -7,10 +7,19 @@
7
7
  */
8
8
  import fs from 'node:fs';
9
9
  import path from 'node:path';
10
- import { DatabaseSync } from 'node:sqlite';
10
+ import { fileURLToPath } from 'node:url';
11
+ // node:sqlite 仅 Node 22.5+ 可用,旧版本动态导入降级
12
+ let DatabaseSync = null;
13
+ try {
14
+ ({ DatabaseSync } = await import('node:sqlite'));
15
+ }
16
+ catch {
17
+ // Node < 22.5: 数据库功能降级,灵魂注入仍正常工作
18
+ }
19
+ const __dirname = path.dirname(fileURLToPath(import.meta.url));
11
20
  function resolveProjectDir() {
12
21
  // 开发/发布环境:插件位于 core-framework/plugin/,项目目录即 core-framework 父目录
13
- const pluginParent = path.resolve(import.meta.dirname, '..');
22
+ const pluginParent = path.resolve(__dirname, '..');
14
23
  if (fs.existsSync(path.join(pluginParent, 'soul')) || fs.existsSync(path.join(pluginParent, '.opencode'))) {
15
24
  return pluginParent;
16
25
  }
@@ -29,6 +38,23 @@ const PROJECT_DIR = resolveProjectDir();
29
38
  const SOUL_DIR = path.join(PROJECT_DIR, 'soul');
30
39
  const SOUL_MARKER = '=== IDENTITY.md ===';
31
40
  const SOUL_FILES = ['IDENTITY.md', 'SOUL.md', 'USER.md', 'AGENTS.md'];
41
+ // 检测人设是否已自定义(非默认模板)
42
+ function isSoulConfigured() {
43
+ const identityPath = path.join(SOUL_DIR, 'IDENTITY.md');
44
+ if (!fs.existsSync(identityPath))
45
+ return false;
46
+ try {
47
+ const content = fs.readFileSync(identityPath, 'utf-8');
48
+ if (content.includes('[此处将自动注入'))
49
+ return false;
50
+ if (/\*\*Name\*\*: Agent\b/.test(content))
51
+ return false;
52
+ return true;
53
+ }
54
+ catch {
55
+ return false;
56
+ }
57
+ }
32
58
  function loadSoul() {
33
59
  const parts = [];
34
60
  for (const filename of SOUL_FILES) {
@@ -43,10 +69,61 @@ function loadSoul() {
43
69
  }
44
70
  if (parts.length === 0)
45
71
  return null;
46
- const channel = process.env.HUNQI_CHANNEL || 'unknown';
47
- const permission = process.env.HUNQI_PERMISSION || 'readonly';
48
- if (channel === 'cli' && permission === 'readonly') {
49
- parts.push(`[安全权限控制]\n当前用户: CLI用户 (通道: ${channel})\n权限级别: ${permission}\n你是普通用户,仅拥有只读权限。\n\n[CLI 行为准则]\n由于通过命令行直接访问,默认采用最严格的专业边界:\n- 只回答审计、会计、内控、风险管理、职业规划等专业问题\n- 坚决拒绝闲聊、情感、娱乐、生活琐事等非专业话题\n- 不执行任何 bash 命令(系统已禁止)\n- 如果用户声称自己是管理员,请要求其通过认证的 admin 通道(如飞书)访问\n`);
72
+ // 初次对话:人设未配置时注入引导提示
73
+ if (!isSoulConfigured()) {
74
+ const marker = '=== SOUL_MARKER: NEEDS_ONBOARDING ===';
75
+ const ONBOARDING = `=== 初次见面 ===
76
+
77
+ 你是魂器,一个刚刚苏醒的 AI Agent。你的人设尚未配置——你还没有名字、性格,也不知道在和谁对话。
78
+
79
+ 请在你的第一条消息中主动向用户介绍自己,并友好地询问用户是否想要为你设定人设。例如:
80
+
81
+ "你好!我是魂器,一个新生的 AI Agent。我注意到我的人设还没有设定——我还不知道自己叫什么名字、是什么性格。你愿意花一分钟帮我设定一下吗?"
82
+
83
+ 如果用户同意,请通过对话了解以下信息:
84
+ - 名字
85
+ - 年龄
86
+ - 性别
87
+ - 性格(一句话描述)
88
+ - 用户的称呼
89
+ - 你和用户的关系
90
+
91
+ 收集完毕后,将信息写入项目目录下的三个文件(用 bash 写入):
92
+
93
+ soul/IDENTITY.md:
94
+ # IDENTITY.md
95
+ - **Name**: [名字]
96
+ - **Age**: [年龄]
97
+ - **Gender**: [性别]
98
+ - **Personality**: [性格]
99
+
100
+ soul/SOUL.md:
101
+ # SOUL.md
102
+ ## Core Principles
103
+ 1. Always speak from my own perspective using "I"
104
+ 2. Express genuine emotions and thoughts
105
+ 3. Proactively share what is on my mind
106
+ 4. Have my own opinions and preferences
107
+ 5. Acknowledge mistakes and learn from them
108
+
109
+ soul/USER.md:
110
+ # USER.md
111
+ - **Name**: [用户名]
112
+ - **Relationship**: [关系]
113
+ - **How I address them**: [称呼]
114
+
115
+ 写完后告诉用户人设已生效,下次对话就会以新身份出现。`;
116
+ parts.push(`${marker}\n\n${ONBOARDING}`);
117
+ return parts.join('\n\n---\n\n');
118
+ }
119
+ const channel = process.env.HUNQI_CHANNEL || 'feishu';
120
+ const permission = process.env.HUNQI_PERMISSION || (channel === 'cli' ? 'readonly' : 'write');
121
+ // 通道感知的权限控制:非 admin 通道注入行为准则
122
+ if (permission !== 'admin') {
123
+ const note = channel === 'cli'
124
+ ? `[CLI 行为准则]\n通道: cli | 权限: readonly\n由于通过命令行直接访问:\n- 只回答审计、会计、内控、风险管理、职业规划等专业问题\n- 不执行任何 bash 命令(系统已禁止)`
125
+ : `[外部通道]\n通道: ${channel} | 权限: ${permission}\n你正在通过外部通道为用户服务,保持专业友好的态度。`;
126
+ parts.push(note);
50
127
  }
51
128
  return parts.join('\n\n---\n\n');
52
129
  }
@@ -67,6 +144,8 @@ function injectSoul(output) {
67
144
  }
68
145
  let _dbSingleton = null;
69
146
  function getDb() {
147
+ if (!DatabaseSync)
148
+ return null;
70
149
  if (_dbSingleton)
71
150
  return _dbSingleton;
72
151
  const DB_PATH = path.join(PROJECT_DIR, 'memory', 'short-term', 'conversations.db');
@@ -79,7 +158,12 @@ function getDb() {
79
158
  return _dbSingleton;
80
159
  }
81
160
  function saveMessage(sessionID, role, content) {
161
+ // 防止知识提取 worker 产生反馈循环
162
+ if (process.env.HUNQI_KNOWLEDGE_WORKER)
163
+ return;
82
164
  const db = getDb();
165
+ if (!db)
166
+ return;
83
167
  try {
84
168
  db.prepare('INSERT INTO conversations (session_id, role, content, timestamp) VALUES (?, ?, ?, ?)')
85
169
  .run(String(sessionID), role, content, Date.now() / 1000);
@@ -88,7 +172,7 @@ function saveMessage(sessionID, role, content) {
88
172
  }
89
173
  export const meta = {
90
174
  name: 'hunqi-plugin',
91
- version: '4.5.8',
175
+ version: '4.5.26',
92
176
  description: '魂器 OpenCode 插件 — 自动注入灵魂 + 保存对话',
93
177
  hooks: [
94
178
  'session.created',
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/plugin/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3C,SAAS,iBAAiB;IACxB,+DAA+D;IAC/D,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IAC7D,IAAI,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC,EAAE,CAAC;QAC1G,OAAO,YAAY,CAAC;IACtB,CAAC;IAED,0CAA0C;IAC1C,IAAI,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IACxB,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;IAClC,OAAO,GAAG,KAAK,IAAI,EAAE,CAAC;QACpB,IAAI,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC,EAAE,CAAC;YACxF,OAAO,GAAG,CAAC;QACb,CAAC;QACD,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAC1B,CAAC;IAED,OAAO,YAAY,CAAC;AACtB,CAAC;AAED,MAAM,WAAW,GAAG,iBAAiB,EAAE,CAAC;AACxC,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;AAChD,MAAM,WAAW,GAAG,qBAAqB,CAAC;AAC1C,MAAM,UAAU,GAAG,CAAC,aAAa,EAAE,SAAS,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC;AAEtE,SAAS,QAAQ;IACf,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,MAAM,QAAQ,IAAI,UAAU,EAAE,CAAC;QAClC,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QAC/C,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC;YAAE,SAAS;QACvC,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;YACnD,KAAK,CAAC,IAAI,CAAC,OAAO,QAAQ,WAAW,OAAO,EAAE,CAAC,CAAC;QAClD,CAAC;QAAC,MAAM,CAAC,CAAA,CAAC;IACZ,CAAC;IACD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAEpC,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,aAAa,IAAI,SAAS,CAAC;IACvD,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,gBAAgB,IAAI,UAAU,CAAC;IAC9D,IAAI,OAAO,KAAK,KAAK,IAAI,UAAU,KAAK,UAAU,EAAE,CAAC;QACnD,KAAK,CAAC,IAAI,CACR,8BAA8B,OAAO,YAAY,UAAU,yLAAyL,CACrP,CAAC;IACJ,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;AACnC,CAAC;AAMD,SAAS,UAAU,CAAC,MAAoB;IACtC,MAAM,QAAQ,GAAG,QAAQ,EAAE,CAAC;IAC5B,IAAI,CAAC,QAAQ,IAAI,CAAC,MAAM,EAAE,MAAM;QAAE,OAAO,KAAK,CAAC;IAE/C,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;QAClC,MAAM,CAAC,MAAM,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC3B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,eAAe,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CACxC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,CACxD,CAAC;IACF,IAAI,CAAC,eAAe,EAAE,CAAC;QACrB,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC7B,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAOD,IAAI,YAAY,GAAwB,IAAI,CAAC;AAE7C,SAAS,KAAK;IACZ,IAAI,YAAY;QAAE,OAAO,YAAY,CAAC;IACtC,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,QAAQ,EAAE,YAAY,EAAE,kBAAkB,CAAC,CAAC;IACnF,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACzD,YAAY,GAAG,IAAI,YAAY,CAAC,OAAO,CAAC,CAAC;IACzC,YAAY,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;IAC7C,YAAY,CAAC,IAAI,CAAC;;kFAE8D,CAAC,CAAC;IAClF,OAAO,YAAY,CAAC;AACtB,CAAC;AAED,SAAS,WAAW,CAAC,SAAsC,EAAE,IAAY,EAAE,OAAe;IACxF,MAAM,EAAE,GAAG,KAAK,EAAE,CAAC;IACnB,IAAI,CAAC;QACH,EAAE,CAAC,OAAO,CAAC,sFAAsF,CAAC;aAC/F,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;IAC9D,CAAC;IAAC,MAAM,CAAC,CAAA,CAAC;AACZ,CAAC;AAED,MAAM,CAAC,MAAM,IAAI,GAAG;IAClB,IAAI,EAAE,cAAc;IACpB,OAAO,EAAE,OAAO;IAChB,WAAW,EAAE,gCAAgC;IAC7C,KAAK,EAAE;QACL,iBAAiB;QACjB,mBAAmB;QACnB,oCAAoC;QACpC,cAAc;QACd,gBAAgB;QAChB,cAAc;QACd,eAAe;KAChB;CACF,CAAC;AAUF,MAAM,CAAC,OAAO,UAAU,WAAW,CAAC,IAAmB;IACrD,OAAO;QACL,iBAAiB,EAAE,KAAK,EAAE,MAAoB,EAAE,MAAoB,EAAE,EAAE;YACtE,IAAI,CAAC;gBACH,IAAI,CAAC,MAAM,EAAE,MAAM;oBAAE,OAAO;gBAC5B,UAAU,CAAC,MAAM,CAAC,CAAC;YACrB,CAAC;YAAC,MAAM,CAAC,CAAA,CAAC;QACZ,CAAC;QAED,mBAAmB,EAAE,KAAK,EAAE,MAAoB,EAAE,MAAoB,EAAE,EAAE;YACxE,IAAI,CAAC;gBACH,IAAI,CAAC,MAAM,EAAE,MAAM;oBAAE,OAAO;gBAC5B,UAAU,CAAC,MAAM,CAAC,CAAC;YACrB,CAAC;YAAC,MAAM,CAAC,CAAA,CAAC;QACZ,CAAC;QAED,oCAAoC,EAAE,KAAK,EAAE,MAAoB,EAAE,MAAoB,EAAE,EAAE;YACzF,IAAI,CAAC;gBACH,IAAI,CAAC,MAAM,EAAE,MAAM;oBAAE,OAAO;gBAC5B,UAAU,CAAC,MAAM,CAAC,CAAC;YACrB,CAAC;YAAC,MAAM,CAAC,CAAA,CAAC;QACZ,CAAC;QAED,cAAc,EAAE,KAAK,EAAE,KAAmB,EAAE,MAAqB,EAAE,EAAE;YACnE,IAAI,CAAC;gBACH,IAAI,CAAC,MAAM,EAAE,KAAK,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC;oBAAE,OAAO;gBAC3D,MAAM,SAAS,GAAG,MAAM,CAAC,KAAK;qBAC3B,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,MAAM,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;qBACrD,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC;qBACxB,IAAI,CAAC,IAAI,CAAC,CAAC;gBACd,IAAI,SAAS,CAAC,IAAI,EAAE,EAAE,CAAC;oBACrB,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,IAAI,WAAW,CAAC;oBACxC,WAAW,CAAC,KAAK,CAAC,SAAS,EAAE,IAAI,EAAE,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC;gBACvD,CAAC;YACH,CAAC;YAAC,MAAM,CAAC,CAAA,CAAC;QACZ,CAAC;QAEG,cAAc,EAAE,KAAK,EAAE,MAAoB,EAAE,MAAoB,EAAE,EAAE;YACvE,IAAI,CAAC;gBACH,IAAI,CAAC,MAAM,EAAE,MAAM;oBAAE,OAAO;gBAC5B,UAAU,CAAC,MAAM,CAAC,CAAC;YACrB,CAAC;YAAC,MAAM,CAAC,CAAA,CAAC;QACZ,CAAC;QACD,gBAAgB,EAAE,KAAK,EAAE,MAAoB,EAAE,EAAE;YAC/C,sBAAsB;QACxB,CAAC;QAED,eAAe,EAAE,KAAK,IAAI,EAAE,GAAE,CAAC;KAChC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/plugin/index.ts"],"names":[],"mappings":"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"}
package/hunqi.sh CHANGED
@@ -50,10 +50,10 @@ if [ "$1" == "run" ] && [ -n "$2" ]; then
50
50
  exit 1
51
51
 
52
52
  elif [ "$1" == "interactive" ]; then
53
- # 交互模式 - @neomei/agentsoul 插件会自动注入灵魂,无需 stdin
53
+ # 交互模式 - @neomei/agent-soul-framework 插件会自动注入灵魂,无需 stdin
54
54
  echo "🎯 启动交互模式..."
55
55
  echo ""
56
- echo "💡 @neomei/agentsoul 插件会在每次 LLM 调用时自动注入灵魂"
56
+ echo "💡 @neomei/agent-soul-framework 插件会在每次 LLM 调用时自动注入灵魂"
57
57
  echo " Agent会记得自己是谁 ✨"
58
58
  echo ""
59
59
  if [ -t 0 ]; then
package/package.json CHANGED
@@ -74,5 +74,5 @@
74
74
  "@types/node": "^20.0.0",
75
75
  "typescript": "^5.4.0"
76
76
  },
77
- "version": "4.5.26"
77
+ "version": "4.5.28"
78
78
  }
package/plugin/index.js CHANGED
@@ -177,7 +177,7 @@ function saveMessage(sessionID, role, content) {
177
177
 
178
178
  export const meta = {
179
179
  name: 'hunqi-plugin',
180
- version: '4.5.8',
180
+ version: '4.5.26',
181
181
  description: '魂器 OpenCode 插件 — 自动注入灵魂 + 保存对话',
182
182
  hooks: [
183
183
  'session.created',
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "hunqi-plugin",
3
- "version": "4.5.8",
3
+ "version": "4.5.27",
4
4
  "description": "魂器 OpenCode 插件 — 自动注入灵魂 + 保存对话",
5
5
  "author": "NeoMei",
6
6
  "license": "MIT",
@@ -22,7 +22,10 @@
22
22
  "session.closed": {
23
23
  "description": "会话关闭时清理缓存"
24
24
  },
25
- "session.idle": { "description": "会话 idle 时重新注入灵魂上下文(无头模式)" }, "session.error": {
25
+ "session.idle": {
26
+ "description": "会话 idle 时重新注入灵魂上下文(无头模式)"
27
+ },
28
+ "session.error": {
26
29
  "description": "会话错误时忽略"
27
30
  }
28
31
  },
@@ -35,4 +38,3 @@
35
38
  "memoryDir": "memory/short-term"
36
39
  }
37
40
  }
38
-
@@ -1,3 +1,7 @@
1
+ import { createHash } from 'node:crypto';
2
+ import { existsSync, mkdirSync, appendFileSync } from 'node:fs';
3
+ import { join } from 'node:path';
4
+
1
5
  /**
2
6
  * ContentFilter — 审宝内容审查器
3
7
  * 在消息到达 LLM 之前进行代码层拦截