@zhin.js/core 1.0.34 → 1.0.36

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.
Files changed (62) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/lib/ai/bootstrap.d.ts +10 -10
  3. package/lib/ai/bootstrap.js +17 -17
  4. package/lib/ai/bootstrap.js.map +1 -1
  5. package/lib/ai/index.d.ts +8 -8
  6. package/lib/ai/index.d.ts.map +1 -1
  7. package/lib/ai/index.js +6 -6
  8. package/lib/ai/index.js.map +1 -1
  9. package/lib/ai/init.js +2 -2
  10. package/lib/ai/init.js.map +1 -1
  11. package/lib/ai/subagent.d.ts +1 -1
  12. package/lib/ai/subagent.js +1 -1
  13. package/lib/ai/{zhin-agent-builtin-tools.d.ts → zhin-agent/builtin-tools.d.ts} +7 -7
  14. package/lib/ai/zhin-agent/builtin-tools.d.ts.map +1 -0
  15. package/lib/ai/{zhin-agent-builtin-tools.js → zhin-agent/builtin-tools.js} +1 -1
  16. package/lib/ai/zhin-agent/builtin-tools.js.map +1 -0
  17. package/lib/ai/{zhin-agent-config.d.ts → zhin-agent/config.d.ts} +2 -2
  18. package/lib/ai/zhin-agent/config.d.ts.map +1 -0
  19. package/lib/ai/{zhin-agent-config.js → zhin-agent/config.js} +2 -2
  20. package/lib/ai/zhin-agent/config.js.map +1 -0
  21. package/lib/ai/{zhin-agent-exec-policy.d.ts → zhin-agent/exec-policy.d.ts} +3 -3
  22. package/lib/ai/zhin-agent/exec-policy.d.ts.map +1 -0
  23. package/lib/ai/{zhin-agent-exec-policy.js → zhin-agent/exec-policy.js} +2 -2
  24. package/lib/ai/zhin-agent/exec-policy.js.map +1 -0
  25. package/lib/ai/{zhin-agent.d.ts → zhin-agent/index.d.ts} +12 -12
  26. package/lib/ai/zhin-agent/index.d.ts.map +1 -0
  27. package/lib/ai/{zhin-agent.js → zhin-agent/index.js} +24 -18
  28. package/lib/ai/zhin-agent/index.js.map +1 -0
  29. package/lib/ai/{zhin-agent-prompt.d.ts → zhin-agent/prompt.d.ts} +7 -7
  30. package/lib/ai/zhin-agent/prompt.d.ts.map +1 -0
  31. package/lib/ai/zhin-agent/prompt.js +111 -0
  32. package/lib/ai/zhin-agent/prompt.js.map +1 -0
  33. package/lib/ai/{zhin-agent-tool-collector.d.ts → zhin-agent/tool-collector.d.ts} +5 -5
  34. package/lib/ai/zhin-agent/tool-collector.d.ts.map +1 -0
  35. package/lib/ai/{zhin-agent-tool-collector.js → zhin-agent/tool-collector.js} +3 -3
  36. package/lib/ai/zhin-agent/tool-collector.js.map +1 -0
  37. package/package.json +4 -4
  38. package/src/ai/bootstrap.ts +17 -17
  39. package/src/ai/index.ts +8 -8
  40. package/src/ai/init.ts +4 -4
  41. package/src/ai/subagent.ts +2 -2
  42. package/src/ai/{zhin-agent-builtin-tools.ts → zhin-agent/builtin-tools.ts} +6 -6
  43. package/src/ai/{zhin-agent-config.ts → zhin-agent/config.ts} +2 -2
  44. package/src/ai/{zhin-agent-exec-policy.ts → zhin-agent/exec-policy.ts} +3 -3
  45. package/src/ai/{zhin-agent.ts → zhin-agent/index.ts} +30 -24
  46. package/src/ai/zhin-agent/prompt.ts +131 -0
  47. package/src/ai/{zhin-agent-tool-collector.ts → zhin-agent/tool-collector.ts} +6 -6
  48. package/tests/ai/zhin-agent.test.ts +1 -1
  49. package/lib/ai/zhin-agent-builtin-tools.d.ts.map +0 -1
  50. package/lib/ai/zhin-agent-builtin-tools.js.map +0 -1
  51. package/lib/ai/zhin-agent-config.d.ts.map +0 -1
  52. package/lib/ai/zhin-agent-config.js.map +0 -1
  53. package/lib/ai/zhin-agent-exec-policy.d.ts.map +0 -1
  54. package/lib/ai/zhin-agent-exec-policy.js.map +0 -1
  55. package/lib/ai/zhin-agent-prompt.d.ts.map +0 -1
  56. package/lib/ai/zhin-agent-prompt.js +0 -116
  57. package/lib/ai/zhin-agent-prompt.js.map +0 -1
  58. package/lib/ai/zhin-agent-tool-collector.d.ts.map +0 -1
  59. package/lib/ai/zhin-agent-tool-collector.js.map +0 -1
  60. package/lib/ai/zhin-agent.d.ts.map +0 -1
  61. package/lib/ai/zhin-agent.js.map +0 -1
  62. package/src/ai/zhin-agent-prompt.ts +0 -136
@@ -16,23 +16,23 @@
16
16
  * 12. 多模态输入:图片/音频直接传给视觉模型
17
17
  */
18
18
  import { Logger } from '@zhin.js/logger';
19
- import { createAgent } from './agent.js';
20
- import { SessionManager, createMemorySessionManager } from './session.js';
21
- import { ConversationMemory } from './conversation-memory.js';
22
- import { parseOutput } from './output.js';
23
- import { UserProfileStore } from './user-profile.js';
24
- import { RateLimiter } from './rate-limiter.js';
25
- import { detectTone } from './tone-detector.js';
26
- import { FollowUpManager } from './follow-up.js';
27
- import { SubagentManager } from './subagent.js';
28
- import { pruneHistoryForContext, DEFAULT_CONTEXT_TOKENS, } from './compaction.js';
29
- import { triggerAIHook, createAIHookEvent } from './hooks.js';
30
- // ── Extracted modules ───────────────────────────────────────────────
31
- import { DEFAULT_CONFIG, } from './zhin-agent-config.js';
32
- import { applyExecPolicyToTools } from './zhin-agent-exec-policy.js';
33
- import { collectRelevantTools } from './zhin-agent-tool-collector.js';
34
- import { buildEnhancedPersona, buildContextHint, buildRichSystemPrompt, buildUserMessageWithHistory, } from './zhin-agent-prompt.js';
35
- import { createChatHistoryTool, createUserProfileTool, createScheduleFollowUpTool, createSpawnTaskTool, } from './zhin-agent-builtin-tools.js';
19
+ import { createAgent } from '../agent.js';
20
+ import { SessionManager, createMemorySessionManager } from '../session.js';
21
+ import { ConversationMemory } from '../conversation-memory.js';
22
+ import { parseOutput } from '../output.js';
23
+ import { UserProfileStore } from '../user-profile.js';
24
+ import { RateLimiter } from '../rate-limiter.js';
25
+ import { detectTone } from '../tone-detector.js';
26
+ import { FollowUpManager } from '../follow-up.js';
27
+ import { SubagentManager } from '../subagent.js';
28
+ import { pruneHistoryForContext, DEFAULT_CONTEXT_TOKENS, } from '../compaction.js';
29
+ import { triggerAIHook, createAIHookEvent } from '../hooks.js';
30
+ // ── Sub-modules ─────────────────────────────────────────────────────
31
+ import { DEFAULT_CONFIG, } from './config.js';
32
+ import { applyExecPolicyToTools } from './exec-policy.js';
33
+ import { collectRelevantTools } from './tool-collector.js';
34
+ import { buildEnhancedPersona, buildContextHint, buildRichSystemPrompt, buildUserMessageWithHistory, } from './prompt.js';
35
+ import { createChatHistoryTool, createUserProfileTool, createScheduleFollowUpTool, createSpawnTaskTool, } from './builtin-tools.js';
36
36
  const logger = new Logger(null, 'ZhinAgent');
37
37
  const now = () => performance.now();
38
38
  // ============================================================================
@@ -189,6 +189,7 @@ export class ZhinAgent {
189
189
  const personaEnhanced = buildEnhancedPersona(this.config, profileSummary, toneHint);
190
190
  // 3. No tools → chat path
191
191
  if (allTools.length === 0) {
192
+ logger.info(`[System Prompt] chat-path: ${personaEnhanced.length} chars ≈ ${Math.ceil(personaEnhanced.length / 2.5)} tokens`);
192
193
  logger.debug(`[闲聊路径] 过滤=${filterMs}ms, 记忆=${memMs}ms (${historyMessages.length}条), 0 工具`);
193
194
  const tLLM = now();
194
195
  const reply = await this.streamChatWithHistory(content, personaEnhanced, historyMessages, onChunk);
@@ -239,6 +240,7 @@ export class ZhinAgent {
239
240
  ${preData}
240
241
 
241
242
  请基于以上数据,用自然流畅的中文回答用户问题。突出重点,适当使用 emoji。`;
243
+ logger.info(`[System Prompt] fast-path: ${prompt.length} chars ≈ ${Math.ceil(prompt.length / 2.5)} tokens`);
242
244
  reply = await this.streamChatWithHistory(content, prompt, historyMessages, onChunk);
243
245
  logger.info(`[快速路径] 过滤=${filterMs}ms, 记忆=${memMs}ms, LLM=${(now() - tLLM).toFixed(0)}ms, 总=${(now() - t0).toFixed(0)}ms`);
244
246
  }
@@ -257,6 +259,10 @@ ${preData}
257
259
  const systemPrompt = `${richPrompt}
258
260
  ${contextHint}
259
261
  ${preData ? `\n已获取数据:${preData}\n` : ''}`;
262
+ const promptChars = systemPrompt.length;
263
+ const estimatedTokens = Math.ceil(promptChars / 2.5);
264
+ logger.info(`[System Prompt] ${promptChars} chars ≈ ${estimatedTokens} tokens`);
265
+ logger.debug(`[System Prompt Preview]\n${systemPrompt.slice(0, 500)}...\n---END PREVIEW---`);
260
266
  const agentTools = applyExecPolicyToTools(this.config, allTools);
261
267
  // Adaptive maxIterations: boost when skills are active (multi-step skill flows)
262
268
  const SKILL_ITERATION_BOOST = 3;
@@ -395,4 +401,4 @@ ${preData ? `\n已获取数据:${preData}\n` : ''}`;
395
401
  }
396
402
  }
397
403
  }
398
- //# sourceMappingURL=zhin-agent.js.map
404
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/ai/zhin-agent/index.ts"],"names":[],"mappings":"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"}
@@ -1,11 +1,11 @@
1
1
  /**
2
- * ZhinAgent System Prompt 构建 + 消息辅助函数
2
+ * ZhinAgent System Prompt builder + message helpers
3
3
  */
4
- import type { ContentPart } from './types.js';
5
- import type { SkillFeature } from '../built/skill.js';
6
- import type { ZhinAgentConfig } from './zhin-agent-config.js';
7
- import type { ToolContext } from '../types.js';
8
- import type { ChatMessage } from './types.js';
4
+ import type { ContentPart } from '../types.js';
5
+ import type { SkillFeature } from '../../built/skill.js';
6
+ import type { ZhinAgentConfig } from './config.js';
7
+ import type { ToolContext } from '../../types.js';
8
+ import type { ChatMessage } from '../types.js';
9
9
  export declare function contentToText(c: string | ContentPart[]): string;
10
10
  export declare function buildUserMessageWithHistory(history: ChatMessage[], currentContent: string): string;
11
11
  export declare function buildEnhancedPersona(config: Required<ZhinAgentConfig>, profileSummary: string, toneHint: string): string;
@@ -18,4 +18,4 @@ export interface RichSystemPromptContext {
18
18
  bootstrapContext: string;
19
19
  }
20
20
  export declare function buildRichSystemPrompt(ctx: RichSystemPromptContext): string;
21
- //# sourceMappingURL=zhin-agent-prompt.d.ts.map
21
+ //# sourceMappingURL=prompt.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prompt.d.ts","sourceRoot":"","sources":["../../../src/ai/zhin-agent/prompt.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAElD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAG/C,wBAAgB,aAAa,CAAC,CAAC,EAAE,MAAM,GAAG,WAAW,EAAE,GAAG,MAAM,CAG/D;AAED,wBAAgB,2BAA2B,CAAC,OAAO,EAAE,WAAW,EAAE,EAAE,cAAc,EAAE,MAAM,GAAG,MAAM,CAQlG;AAED,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,QAAQ,CAAC,eAAe,CAAC,EACjC,cAAc,EAAE,MAAM,EACtB,QAAQ,EAAE,MAAM,GACf,MAAM,CAYR;AAED,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAS/E;AAED,MAAM,WAAW,uBAAuB;IACtC,MAAM,EAAE,QAAQ,CAAC,eAAe,CAAC,CAAC;IAClC,aAAa,EAAE,YAAY,GAAG,IAAI,CAAC;IACnC,gBAAgB,EAAE,MAAM,CAAC;IACzB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAED,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,uBAAuB,GAAG,MAAM,CAiE1E"}
@@ -0,0 +1,111 @@
1
+ /**
2
+ * ZhinAgent System Prompt builder + message helpers
3
+ */
4
+ import * as path from 'path';
5
+ import { SECTION_SEP, HISTORY_CONTEXT_MARKER, CURRENT_MESSAGE_MARKER } from './config.js';
6
+ import { getFileMemoryContext } from '../bootstrap.js';
7
+ export function contentToText(c) {
8
+ if (typeof c === 'string')
9
+ return c;
10
+ return c.map(p => (p.type === 'text' ? p.text : '')).join('');
11
+ }
12
+ export function buildUserMessageWithHistory(history, currentContent) {
13
+ if (history.length === 0)
14
+ return currentContent;
15
+ const roleLabel = (role) => (role === 'user' ? 'User' : role === 'assistant' ? 'Assistant' : 'System');
16
+ const lines = history
17
+ .filter(m => m.role === 'user' || m.role === 'assistant' || m.role === 'system')
18
+ .map(m => `${roleLabel(m.role)}: ${contentToText(m.content)}`);
19
+ const historyBlock = lines.join('\n');
20
+ return `${HISTORY_CONTEXT_MARKER}\n${historyBlock}\n\n${CURRENT_MESSAGE_MARKER}\n${currentContent}`;
21
+ }
22
+ export function buildEnhancedPersona(config, profileSummary, toneHint) {
23
+ let persona = config.persona;
24
+ if (profileSummary) {
25
+ persona += `\n\n${profileSummary}`;
26
+ }
27
+ if (toneHint) {
28
+ persona += `\n\n[Tone hint] ${toneHint}`;
29
+ }
30
+ const tz = Intl.DateTimeFormat().resolvedOptions().timeZone;
31
+ const timeStr = new Date().toLocaleString('zh-CN', { timeZone: tz });
32
+ persona += `\n\nCurrent time: ${timeStr} (${tz})`;
33
+ return persona;
34
+ }
35
+ export function buildContextHint(context, _content) {
36
+ const parts = [];
37
+ if (context.platform)
38
+ parts.push(`platform:${context.platform}`);
39
+ if (context.botId)
40
+ parts.push(`bot:${context.botId}`);
41
+ if (context.senderId)
42
+ parts.push(`user:${context.senderId}`);
43
+ if (context.scope)
44
+ parts.push(`scope:${context.scope}`);
45
+ if (context.sceneId)
46
+ parts.push(`scene:${context.sceneId}`);
47
+ if (parts.length === 0)
48
+ return '';
49
+ return `\nContext: ${parts.join(' | ')}`;
50
+ }
51
+ export function buildRichSystemPrompt(ctx) {
52
+ const { config, skillRegistry, skillsSummaryXML, activeSkillsContext, bootstrapContext } = ctx;
53
+ const parts = [];
54
+ const cwd = process.cwd();
55
+ const dataDir = path.join(cwd, 'data');
56
+ // §1 Identity
57
+ const now = new Date();
58
+ const tz = Intl.DateTimeFormat().resolvedOptions().timeZone;
59
+ const timeStr = now.toLocaleString('zh-CN', { timeZone: tz });
60
+ const memoryDir = path.join(dataDir, 'memory');
61
+ const todayStr = now.toISOString().split('T')[0];
62
+ parts.push([
63
+ config.persona,
64
+ '',
65
+ `Current time: ${timeStr} (${tz})`,
66
+ `Workspace: ${cwd}`,
67
+ `Data dir: ${dataDir}`,
68
+ `Long-term memory: ${path.join(memoryDir, 'MEMORY.md')}; today's notes: ${path.join(memoryDir, todayStr + '.md')}. Use write_file to persist important info.`,
69
+ ].join('\n'));
70
+ // §2 Rules
71
+ parts.push([
72
+ '## Rules',
73
+ '1. Call tools directly — do not describe steps or explain intent',
74
+ '2. For time/date questions, use "Current time" above — no tool needed',
75
+ '3. File changes must use edit_file/write_file — never give manual instructions',
76
+ '4. After activate_skill returns, continue calling the tools it specifies — do not stop',
77
+ '5. All answers must be based on actual tool output',
78
+ '6. On tool failure, try alternatives — do not dump raw errors to user',
79
+ '7. Answer based on the user\'s **last message** only; prior messages are context',
80
+ '8. Use spawn_task for long/complex independent tasks — do not block the conversation',
81
+ '9. When user asks to install/learn a skill from URL, use install_skill(url) then activate_skill',
82
+ ].join('\n'));
83
+ // §3 Skills
84
+ if (skillsSummaryXML) {
85
+ parts.push('## Available Skills\n\n' + skillsSummaryXML + '\n\nUser mentions skill → activate_skill(name) → follow returned instructions');
86
+ }
87
+ else if (skillRegistry && skillRegistry.size > 0) {
88
+ const skills = skillRegistry.getAll();
89
+ const lines = ['## Available Skills'];
90
+ for (const skill of skills) {
91
+ lines.push(`- ${skill.name}: ${skill.description}`);
92
+ }
93
+ lines.push('User mentions skill → activate_skill(name) → follow returned instructions');
94
+ parts.push(lines.join('\n'));
95
+ }
96
+ // §4 Active skills
97
+ if (activeSkillsContext) {
98
+ parts.push('## Active Skills\n\n' + activeSkillsContext);
99
+ }
100
+ // §5 Memory
101
+ const fileMemory = getFileMemoryContext();
102
+ if (fileMemory) {
103
+ parts.push('## Memory\n\n' + fileMemory);
104
+ }
105
+ // §6 Bootstrap
106
+ if (bootstrapContext) {
107
+ parts.push(bootstrapContext);
108
+ }
109
+ return parts.filter(Boolean).join(SECTION_SEP);
110
+ }
111
+ //# sourceMappingURL=prompt.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prompt.js","sourceRoot":"","sources":["../../../src/ai/zhin-agent/prompt.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,10 @@
1
1
  /**
2
2
  * ZhinAgent 工具收集 — 两级过滤 (Skill → Tool) + 技能支持工具注入
3
3
  */
4
- import type { Tool, ToolContext } from '../types.js';
5
- import type { SkillFeature } from '../built/skill.js';
6
- import type { AgentTool } from './types.js';
7
- import type { ZhinAgentConfig } from './zhin-agent-config.js';
4
+ import type { Tool, ToolContext } from '../../types.js';
5
+ import type { SkillFeature } from '../../built/skill.js';
6
+ import type { AgentTool } from '../types.js';
7
+ import type { ZhinAgentConfig } from './config.js';
8
8
  /**
9
9
  * Convert a Tool (with ToolContext) to an AgentTool, injecting context-provided parameters.
10
10
  */
@@ -19,4 +19,4 @@ export interface CollectToolsContext {
19
19
  * skill-support injection, and config-level allow/deny.
20
20
  */
21
21
  export declare function collectRelevantTools(message: string, context: ToolContext, externalTools: Tool[], ctx: CollectToolsContext): AgentTool[];
22
- //# sourceMappingURL=zhin-agent-tool-collector.d.ts.map
22
+ //# sourceMappingURL=tool-collector.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-collector.d.ts","sourceRoot":"","sources":["../../../src/ai/zhin-agent/tool-collector.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAE7C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAKnD;;GAEG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,SAAS,CAiExE;AAED,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,QAAQ,CAAC,eAAe,CAAC,CAAC;IAClC,aAAa,EAAE,YAAY,GAAG,IAAI,CAAC;IACnC,kBAAkB,EAAE,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;CAC5C;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,WAAW,EACpB,aAAa,EAAE,IAAI,EAAE,EACrB,GAAG,EAAE,mBAAmB,GACvB,SAAS,EAAE,CA+Ib"}
@@ -2,8 +2,8 @@
2
2
  * ZhinAgent 工具收集 — 两级过滤 (Skill → Tool) + 技能支持工具注入
3
3
  */
4
4
  import { Logger } from '@zhin.js/logger';
5
- import { Agent } from './agent.js';
6
- import { PERM_MAP } from './zhin-agent-config.js';
5
+ import { Agent } from '../agent.js';
6
+ import { PERM_MAP } from './config.js';
7
7
  const logger = new Logger(null, 'ZhinAgent:ToolCollector');
8
8
  /**
9
9
  * Convert a Tool (with ToolContext) to an AgentTool, injecting context-provided parameters.
@@ -215,4 +215,4 @@ export function collectRelevantTools(message, context, externalTools, ctx) {
215
215
  }
216
216
  return final;
217
217
  }
218
- //# sourceMappingURL=zhin-agent-tool-collector.js.map
218
+ //# sourceMappingURL=tool-collector.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-collector.js","sourceRoot":"","sources":["../../../src/ai/zhin-agent/tool-collector.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zhin.js/core",
3
- "version": "1.0.34",
3
+ "version": "1.0.36",
4
4
  "description": "Zhin机器人核心框架",
5
5
  "type": "module",
6
6
  "main": "./lib/index.js",
@@ -37,9 +37,9 @@
37
37
  "segment-matcher": "latest",
38
38
  "smol-toml": "^1.6.0",
39
39
  "yaml": "^2.3.4",
40
- "@zhin.js/database": "1.0.21",
41
- "@zhin.js/logger": "0.1.18",
42
- "@zhin.js/schema": "1.0.18"
40
+ "@zhin.js/database": "1.0.23",
41
+ "@zhin.js/logger": "0.1.20",
42
+ "@zhin.js/schema": "1.0.20"
43
43
  },
44
44
  "devDependencies": {
45
45
  "@types/node": "^24.3.0",
@@ -1,17 +1,17 @@
1
1
  /**
2
- * Workspace Bootstrap Files — 工作区引导文件管理
2
+ * Workspace Bootstrap Files
3
3
  *
4
- * 借鉴 OpenClaw workspace bootstrap 设计,支持多种注入式提示文件:
4
+ * Injectable prompt files inspired by OpenClaw's workspace bootstrap design:
5
5
  *
6
- * AGENTS.md — 持久化记忆/指令(AI 可读写)
7
- * SOUL.md — 人格定义(只读)
8
- * TOOLS.md — 工具使用指引(只读,用户自定义工具使用规则)
6
+ * AGENTS.md — persistent memory / instructions (AI read-write)
7
+ * SOUL.md — persona definition (read-only)
8
+ * TOOLS.md — tool usage guidelines (read-only)
9
9
  *
10
- * 关键设计:
11
- * 1. 基于 mtime 的文件缓存,避免冗余磁盘读取
12
- * 2. 文件不存在不报错(可选)
13
- * 3. 内容大小限制,防止注入超长文本
14
- * 4. 统一的 ContextFile 格式,方便注入到 system prompt
10
+ * Key design:
11
+ * 1. mtime-based file cache to avoid redundant disk reads
12
+ * 2. Missing files are silently skipped
13
+ * 3. Per-file and total size limits to prevent prompt injection
14
+ * 4. Unified ContextFile format for system prompt injection
15
15
  */
16
16
 
17
17
  import * as fs from 'fs';
@@ -81,7 +81,7 @@ async function readFileWithCache(filePath: string): Promise<string> {
81
81
  return content;
82
82
  } catch {
83
83
  fileCache.delete(filePath);
84
- throw new Error(`文件读取失败: ${filePath}`);
84
+ throw new Error(`Failed to read file: ${filePath}`);
85
85
  }
86
86
  }
87
87
 
@@ -214,13 +214,13 @@ export function buildContextFiles(
214
214
 
215
215
  // 单文件裁剪
216
216
  if (content.length > maxChars) {
217
- content = content.slice(0, maxChars) + '\n...(内容过长已截断)';
218
- logger.warn(`引导文件 ${file.name} 超过 ${maxChars} 字符,已截断`);
217
+ content = content.slice(0, maxChars) + '\n...(truncated)';
218
+ logger.warn(`Bootstrap file ${file.name} exceeds ${maxChars} chars, truncated`);
219
219
  }
220
220
 
221
221
  // 总量限制
222
222
  if (totalChars + content.length > totalMaxChars) {
223
- logger.warn(`引导文件总量超过 ${totalMaxChars} 字符,跳过 ${file.name}`);
223
+ logger.warn(`Bootstrap total exceeds ${totalMaxChars} chars, skipping ${file.name}`);
224
224
  break;
225
225
  }
226
226
 
@@ -289,14 +289,14 @@ export function buildBootstrapContextSection(contextFiles: ContextFile[]): strin
289
289
  );
290
290
 
291
291
  const lines: string[] = [
292
- '# 项目上下文',
292
+ '# Project Context',
293
293
  '',
294
- '以下项目上下文文件已加载:',
294
+ 'The following project context files have been loaded:',
295
295
  ];
296
296
 
297
297
  if (hasSoul) {
298
298
  lines.push(
299
- '如果存在 SOUL.md,请融入其人格和语气。避免生硬的通用回复,遵循其指引。',
299
+ 'If SOUL.md is present, embody its persona and tone. Avoid generic responses.',
300
300
  );
301
301
  }
302
302
  lines.push('');
package/src/ai/index.ts CHANGED
@@ -50,16 +50,16 @@ export type {
50
50
  } from './context-manager.js';
51
51
 
52
52
  // ── ZhinAgent ──
53
- export { ZhinAgent } from './zhin-agent.js';
54
- export type { ZhinAgentConfig, OnChunkCallback } from './zhin-agent.js';
53
+ export { ZhinAgent } from './zhin-agent/index.js';
54
+ export type { ZhinAgentConfig, OnChunkCallback } from './zhin-agent/index.js';
55
55
 
56
56
  // ── ZhinAgent sub-modules (for advanced consumers) ──
57
- export { PERM_MAP, DEFAULT_CONFIG as ZHIN_AGENT_DEFAULT_CONFIG, SECTION_SEP } from './zhin-agent-config.js';
58
- export { checkExecPolicy, applyExecPolicyToTools, resolveExecAllowlist, EXEC_PRESETS } from './zhin-agent-exec-policy.js';
59
- export { collectRelevantTools, toAgentTool } from './zhin-agent-tool-collector.js';
60
- export { buildRichSystemPrompt, buildContextHint, buildEnhancedPersona, buildUserMessageWithHistory, contentToText } from './zhin-agent-prompt.js';
61
- export type { RichSystemPromptContext } from './zhin-agent-prompt.js';
62
- export { createChatHistoryTool, createUserProfileTool, createScheduleFollowUpTool, createSpawnTaskTool } from './zhin-agent-builtin-tools.js';
57
+ export { PERM_MAP, DEFAULT_CONFIG as ZHIN_AGENT_DEFAULT_CONFIG, SECTION_SEP } from './zhin-agent/config.js';
58
+ export { checkExecPolicy, applyExecPolicyToTools, resolveExecAllowlist, EXEC_PRESETS } from './zhin-agent/exec-policy.js';
59
+ export { collectRelevantTools, toAgentTool } from './zhin-agent/tool-collector.js';
60
+ export { buildRichSystemPrompt, buildContextHint, buildEnhancedPersona, buildUserMessageWithHistory, contentToText } from './zhin-agent/prompt.js';
61
+ export type { RichSystemPromptContext } from './zhin-agent/prompt.js';
62
+ export { createChatHistoryTool, createUserProfileTool, createScheduleFollowUpTool, createSpawnTaskTool } from './zhin-agent/builtin-tools.js';
63
63
 
64
64
  // ── Conversation Memory ──
65
65
  export {
package/src/ai/init.ts CHANGED
@@ -28,9 +28,9 @@ import {
28
28
  import type { MessageDispatcherService } from '../built/dispatcher.js';
29
29
  import type { SkillFeature } from '../built/skill.js';
30
30
  import { AIService } from './service.js';
31
- import { ZhinAgent } from './zhin-agent.js';
31
+ import { ZhinAgent } from './zhin-agent/index.js';
32
32
  import { createBuiltinTools, discoverWorkspaceSkills, loadSoulPersona, loadAlwaysSkillsContent, buildSkillsSummaryXML } from './builtin-tools.js';
33
- import { resolveSkillInstructionMaxChars, DEFAULT_CONFIG } from './zhin-agent-config.js';
33
+ import { resolveSkillInstructionMaxChars, DEFAULT_CONFIG } from './zhin-agent/config.js';
34
34
  import { loadBootstrapFiles, buildContextFiles, buildBootstrapContextSection, loadToolsGuide } from './bootstrap.js';
35
35
  import { triggerAIHook, createAIHookEvent } from './hooks.js';
36
36
  import { SessionManager, createDatabaseSessionManager } from './session.js';
@@ -209,7 +209,7 @@ export function initAIModule(): void {
209
209
  // 子任务管理器:让 AI 可以 spawn 后台子 agent 异步执行复杂任务
210
210
  agent.initSubagentManager(() => {
211
211
  const modelName = provider.models[0] || '';
212
- const fullConfig = { ...DEFAULT_CONFIG, ...agentConfig } as Required<import('./zhin-agent-config.js').ZhinAgentConfig>;
212
+ const fullConfig = { ...DEFAULT_CONFIG, ...agentConfig } as Required<import('./zhin-agent/config.js').ZhinAgentConfig>;
213
213
  const zhinTools = createBuiltinTools({ skillInstructionMaxChars: resolveSkillInstructionMaxChars(fullConfig, modelName) });
214
214
  return zhinTools.map(zt => {
215
215
  const t = zt.toTool();
@@ -595,7 +595,7 @@ export function initAIModule(): void {
595
595
 
596
596
  const provider = ai.getProvider();
597
597
  const agentCfg = ai.getAgentConfig();
598
- const fullCfg = { ...DEFAULT_CONFIG, ...agentCfg } as Required<import('./zhin-agent-config.js').ZhinAgentConfig>;
598
+ const fullCfg = { ...DEFAULT_CONFIG, ...agentCfg } as Required<import('./zhin-agent/config.js').ZhinAgentConfig>;
599
599
  const modelName = provider.models[0] || '';
600
600
  const builtinTools = createBuiltinTools({ skillInstructionMaxChars: resolveSkillInstructionMaxChars(fullCfg, modelName) });
601
601
  const disposers: (() => void)[] = [];
@@ -12,8 +12,8 @@ import { randomUUID } from 'crypto';
12
12
  import { Logger } from '@zhin.js/logger';
13
13
  import type { AIProvider, AgentTool } from './types.js';
14
14
  import { createAgent } from './agent.js';
15
- import type { ZhinAgentConfig } from './zhin-agent-config.js';
16
- import { applyExecPolicyToTools } from './zhin-agent-exec-policy.js';
15
+ import type { ZhinAgentConfig } from './zhin-agent/config.js';
16
+ import { applyExecPolicyToTools } from './zhin-agent/exec-policy.js';
17
17
 
18
18
  const logger = new Logger(null, 'Subagent');
19
19
 
@@ -5,12 +5,12 @@
5
5
  * 由 ZhinAgent.process() 按需创建并注入到工具列表中。
6
6
  */
7
7
 
8
- import type { ToolContext } from '../types.js';
9
- import type { AgentTool } from './types.js';
10
- import type { ConversationMemory } from './conversation-memory.js';
11
- import type { UserProfileStore } from './user-profile.js';
12
- import type { FollowUpManager } from './follow-up.js';
13
- import type { SubagentManager, SubagentOrigin } from './subagent.js';
8
+ import type { ToolContext } from '../../types.js';
9
+ import type { AgentTool } from '../types.js';
10
+ import type { ConversationMemory } from '../conversation-memory.js';
11
+ import type { UserProfileStore } from '../user-profile.js';
12
+ import type { FollowUpManager } from '../follow-up.js';
13
+ import type { SubagentManager, SubagentOrigin } from '../subagent.js';
14
14
 
15
15
  export function createChatHistoryTool(sessionId: string, memory: ConversationMemory): AgentTool {
16
16
  return {
@@ -2,8 +2,8 @@
2
2
  * ZhinAgent 配置、常量、类型定义
3
3
  */
4
4
 
5
- import type { RateLimitConfig } from './rate-limiter.js';
6
- import { DEFAULT_CONTEXT_TOKENS } from './compaction.js';
5
+ import type { RateLimitConfig } from '../rate-limiter.js';
6
+ import { DEFAULT_CONTEXT_TOKENS } from '../compaction.js';
7
7
 
8
8
  export type ModelSizeHint = 'small' | 'medium' | 'large';
9
9
 
@@ -2,14 +2,14 @@
2
2
  * ZhinAgent 执行策略 — bash 命令的安全检查与工具包装
3
3
  */
4
4
 
5
- import type { AgentTool } from './types.js';
6
- import type { ZhinAgentConfig } from './zhin-agent-config.js';
5
+ import type { AgentTool } from '../types.js';
6
+ import type { ZhinAgentConfig } from './config.js';
7
7
 
8
8
  // ── 预设命令白名单 ──────────────────────────────────────────────────
9
9
 
10
10
  const PRESET_READONLY = ['ls', 'cat', 'pwd', 'date', 'whoami', 'grep', 'find', 'head', 'tail', 'wc'];
11
11
  const PRESET_NETWORK = [...PRESET_READONLY, 'curl', 'wget', 'ping', 'dig'];
12
- const PRESET_DEVELOPMENT = [...PRESET_NETWORK, 'npm', 'npx', 'node', 'git', 'python', 'python3', 'pip', 'pnpm', 'yarn'];
12
+ const PRESET_DEVELOPMENT = [...PRESET_NETWORK, 'npm', 'npx', 'node', 'git', 'gh', 'python', 'python3', 'pip', 'pnpm', 'yarn'];
13
13
 
14
14
  export const EXEC_PRESETS: Record<string, string[]> = {
15
15
  readonly: PRESET_READONLY,