@zhin.js/agent 0.1.19 → 0.1.21

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 (125) hide show
  1. package/README.md +37 -23
  2. package/lib/agent-prompt/format.d.ts +6 -0
  3. package/lib/agent-prompt/format.d.ts.map +1 -0
  4. package/lib/agent-prompt/format.js +40 -0
  5. package/lib/agent-prompt/format.js.map +1 -0
  6. package/lib/agent-prompt/index.d.ts +5 -0
  7. package/lib/agent-prompt/index.d.ts.map +1 -0
  8. package/lib/agent-prompt/index.js +4 -0
  9. package/lib/agent-prompt/index.js.map +1 -0
  10. package/lib/agent-prompt/registry.d.ts +7 -0
  11. package/lib/agent-prompt/registry.d.ts.map +1 -0
  12. package/lib/agent-prompt/registry.js +23 -0
  13. package/lib/agent-prompt/registry.js.map +1 -0
  14. package/lib/agent-prompt/resolver.d.ts +12 -0
  15. package/lib/agent-prompt/resolver.d.ts.map +1 -0
  16. package/lib/agent-prompt/resolver.js +71 -0
  17. package/lib/agent-prompt/resolver.js.map +1 -0
  18. package/lib/builtin/run-deferred-task-tool.d.ts +20 -0
  19. package/lib/builtin/run-deferred-task-tool.d.ts.map +1 -0
  20. package/lib/builtin/run-deferred-task-tool.js +39 -0
  21. package/lib/builtin/run-deferred-task-tool.js.map +1 -0
  22. package/lib/builtin/tool-search-tool.d.ts +19 -0
  23. package/lib/builtin/tool-search-tool.d.ts.map +1 -0
  24. package/lib/builtin/tool-search-tool.js +54 -0
  25. package/lib/builtin/tool-search-tool.js.map +1 -0
  26. package/lib/builtin-tools.d.ts +1 -1
  27. package/lib/builtin-tools.d.ts.map +1 -1
  28. package/lib/builtin-tools.js +1 -5
  29. package/lib/builtin-tools.js.map +1 -1
  30. package/lib/deferred-worker-runner.d.ts +30 -0
  31. package/lib/deferred-worker-runner.d.ts.map +1 -0
  32. package/lib/deferred-worker-runner.js +149 -0
  33. package/lib/deferred-worker-runner.js.map +1 -0
  34. package/lib/deferred-worker-tool-load.d.ts +6 -0
  35. package/lib/deferred-worker-tool-load.d.ts.map +1 -0
  36. package/lib/deferred-worker-tool-load.js +5 -0
  37. package/lib/deferred-worker-tool-load.js.map +1 -0
  38. package/lib/hooks.d.ts +13 -0
  39. package/lib/hooks.d.ts.map +1 -1
  40. package/lib/hooks.js.map +1 -1
  41. package/lib/index.d.ts +3 -3
  42. package/lib/index.d.ts.map +1 -1
  43. package/lib/index.js +2 -3
  44. package/lib/index.js.map +1 -1
  45. package/lib/init/create-zhin-agent.d.ts.map +1 -1
  46. package/lib/init/create-zhin-agent.js +4 -1
  47. package/lib/init/create-zhin-agent.js.map +1 -1
  48. package/lib/init/register-mcp-from-config.d.ts +2 -0
  49. package/lib/init/register-mcp-from-config.d.ts.map +1 -0
  50. package/lib/init/register-mcp-from-config.js +84 -0
  51. package/lib/init/register-mcp-from-config.js.map +1 -0
  52. package/lib/init/register-mcp-memory-default.d.ts +2 -0
  53. package/lib/init/register-mcp-memory-default.d.ts.map +1 -0
  54. package/lib/init/register-mcp-memory-default.js +34 -0
  55. package/lib/init/register-mcp-memory-default.js.map +1 -0
  56. package/lib/init.d.ts.map +1 -1
  57. package/lib/init.js +4 -0
  58. package/lib/init.js.map +1 -1
  59. package/lib/mcp-client/index.d.ts +1 -2
  60. package/lib/mcp-client/index.d.ts.map +1 -1
  61. package/lib/mcp-client/index.js +1 -2
  62. package/lib/mcp-client/index.js.map +1 -1
  63. package/lib/orchestrator/mcp-lifecycle.d.ts +6 -0
  64. package/lib/orchestrator/mcp-lifecycle.d.ts.map +1 -0
  65. package/lib/orchestrator/mcp-lifecycle.js +7 -0
  66. package/lib/orchestrator/mcp-lifecycle.js.map +1 -0
  67. package/lib/orchestrator/mcp-registry.d.ts +5 -1
  68. package/lib/orchestrator/mcp-registry.d.ts.map +1 -1
  69. package/lib/orchestrator/mcp-registry.js +36 -20
  70. package/lib/orchestrator/mcp-registry.js.map +1 -1
  71. package/lib/orchestrator/owner-confirm-orchestration.d.ts +4 -1
  72. package/lib/orchestrator/owner-confirm-orchestration.d.ts.map +1 -1
  73. package/lib/orchestrator/owner-confirm-orchestration.js.map +1 -1
  74. package/lib/orchestrator/tool-selection.d.ts +2 -0
  75. package/lib/orchestrator/tool-selection.d.ts.map +1 -1
  76. package/lib/orchestrator/tool-selection.js +33 -1
  77. package/lib/orchestrator/tool-selection.js.map +1 -1
  78. package/lib/reserved-tools.js +2 -2
  79. package/lib/reserved-tools.js.map +1 -1
  80. package/lib/security/bash-tool-context.d.ts +17 -2
  81. package/lib/security/bash-tool-context.d.ts.map +1 -1
  82. package/lib/security/bash-tool-context.js +9 -3
  83. package/lib/security/bash-tool-context.js.map +1 -1
  84. package/lib/security/exec-policy.d.ts.map +1 -1
  85. package/lib/security/exec-policy.js +4 -1
  86. package/lib/security/exec-policy.js.map +1 -1
  87. package/lib/subagent.js +3 -3
  88. package/lib/subagent.js.map +1 -1
  89. package/lib/utils/config-env.d.ts +5 -0
  90. package/lib/utils/config-env.d.ts.map +1 -0
  91. package/lib/utils/config-env.js +34 -0
  92. package/lib/utils/config-env.js.map +1 -0
  93. package/lib/zhin-agent/config.d.ts +18 -0
  94. package/lib/zhin-agent/config.d.ts.map +1 -1
  95. package/lib/zhin-agent/config.js +19 -0
  96. package/lib/zhin-agent/config.js.map +1 -1
  97. package/lib/zhin-agent/index.d.ts +13 -0
  98. package/lib/zhin-agent/index.d.ts.map +1 -1
  99. package/lib/zhin-agent/index.js +106 -7
  100. package/lib/zhin-agent/index.js.map +1 -1
  101. package/lib/zhin-agent/prompt.d.ts +6 -0
  102. package/lib/zhin-agent/prompt.d.ts.map +1 -1
  103. package/lib/zhin-agent/prompt.js +70 -15
  104. package/lib/zhin-agent/prompt.js.map +1 -1
  105. package/lib/zhin-agent/tool-catalog.d.ts +15 -0
  106. package/lib/zhin-agent/tool-catalog.d.ts.map +1 -0
  107. package/lib/zhin-agent/tool-catalog.js +52 -0
  108. package/lib/zhin-agent/tool-catalog.js.map +1 -0
  109. package/lib/zhin-agent/tool-runtime.d.ts +3 -1
  110. package/lib/zhin-agent/tool-runtime.d.ts.map +1 -1
  111. package/lib/zhin-agent/tool-runtime.js +14 -0
  112. package/lib/zhin-agent/tool-runtime.js.map +1 -1
  113. package/lib/zhin-agent/tool-search-orchestrator.d.ts +23 -0
  114. package/lib/zhin-agent/tool-search-orchestrator.d.ts.map +1 -0
  115. package/lib/zhin-agent/tool-search-orchestrator.js +86 -0
  116. package/lib/zhin-agent/tool-search-orchestrator.js.map +1 -0
  117. package/package.json +13 -4
  118. package/lib/builtin/read-memory-tool.d.ts +0 -14
  119. package/lib/builtin/read-memory-tool.d.ts.map +0 -1
  120. package/lib/builtin/read-memory-tool.js +0 -49
  121. package/lib/builtin/read-memory-tool.js.map +0 -1
  122. package/lib/builtin/write-memory-tool.d.ts +0 -14
  123. package/lib/builtin/write-memory-tool.d.ts.map +0 -1
  124. package/lib/builtin/write-memory-tool.js +0 -50
  125. package/lib/builtin/write-memory-tool.js.map +0 -1
@@ -103,7 +103,7 @@ function buildIdentitySection(config) {
103
103
  `CWD: ${cwd}`,
104
104
  `Platform: ${os.platform()} | Node ${process.version} | Shell: ${process.env.SHELL || 'unknown'}`,
105
105
  `Time: ${timeStr} (${tz})`,
106
- `Memory: data/memory/MEMORY.md, data/memory/${todayStr}.md`,
106
+ `File memory: data/memory/MEMORY.md, data/memory/${todayStr}.md (knowledge-graph MCP: enable ai.memoryMcp)`,
107
107
  ];
108
108
  return [
109
109
  config.persona,
@@ -162,15 +162,39 @@ function buildActionsSection() {
162
162
  * §5 Using Your Tools
163
163
  * 参考 Claude Code: getUsingYourToolsSection — 专用工具优先、并行调用
164
164
  */
165
- function buildUsingToolsSection() {
165
+ function buildUsingToolsSection(toolSearchActive) {
166
+ const items = toolSearchActive
167
+ ? [
168
+ 'Orchestrator only: tool_search (browse deferred catalog), run_deferred_task (execute deferred work), ask_user.',
169
+ 'All real work runs in the Worker via run_deferred_task — never call deferred tool names on this orchestrator.',
170
+ 'Simple lookups → run_deferred_task immediately with goal + tool_query from the user message. Skip tool_search unless the domain is unclear.',
171
+ 'Follow the Platform section below for adapter-specific tool_query hints when present.',
172
+ 'Never call mcp_*, github_*, or other deferred tool names directly on this orchestrator.',
173
+ 'spawn_task only when the user explicitly asks for background/async work.',
174
+ ]
175
+ : [
176
+ 'Prefer dedicated tools over bash: read_file, edit_file, write_file, glob, grep.',
177
+ 'Call independent tools in parallel; dependent tools sequentially.',
178
+ 'web_search: one tight query; summarize for the user—no raw dumps, no extra searches unless prior results were empty or useless.',
179
+ 'Complex tasks → todo_write to track. Long tasks → spawn_task.',
180
+ 'Skill install → install_skill(url) then activate_skill.',
181
+ ];
182
+ return ['# Tools', ...prependBullets(items)].join('\n');
183
+ }
184
+ function buildPlatformSection(platformSections) {
185
+ const body = platformSections?.trim();
186
+ if (!body)
187
+ return null;
188
+ return `# Platform\n\n${body}`;
189
+ }
190
+ function buildToolSearchDeferredSection(deferredStats) {
191
+ if (!deferredStats)
192
+ return null;
166
193
  const items = [
167
- 'Prefer dedicated tools over bash: read_file, edit_file, write_file, glob, grep.',
168
- 'Call independent tools in parallel; dependent tools sequentially.',
169
- 'web_search: one tight query; summarize for the user—no raw dumps, no extra searches unless prior results were empty or useless.',
170
- 'Complex tasks → todo_write to track. Long tasks → spawn_task.',
171
- 'Skill install → install_skill(url) then activate_skill.',
194
+ `Deferred catalog domains: ${deferredStats}.`,
195
+ 'bash and read_file run inside the Worker, not on this orchestrator.',
172
196
  ];
173
- return ['# Tools', ...prependBullets(items)].join('\n');
197
+ return ['# Deferred tools', ...prependBullets(items)].join('\n');
174
198
  }
175
199
  /**
176
200
  * §6 Communication
@@ -188,7 +212,21 @@ function buildCommunicationSection() {
188
212
  /**
189
213
  * §7 Skills
190
214
  */
191
- function buildSkillsSection(skillRegistry, skillsSummaryXML) {
215
+ function buildSkillsSection(skillRegistry, skillsSummaryXML, toolSearchActive) {
216
+ if (toolSearchActive) {
217
+ if (!skillsSummaryXML && (!skillRegistry || skillRegistry.size === 0))
218
+ return null;
219
+ const body = skillsSummaryXML
220
+ || (skillRegistry
221
+ ? skillRegistry.getAll().map(s => ` - ${s.name}: ${s.description}`).join('\n')
222
+ : '');
223
+ return [
224
+ '# Skills (reference)',
225
+ body,
226
+ '',
227
+ 'Skills are not activated on the orchestrator. Use run_deferred_task(goal, tool_query) instead.',
228
+ ].join('\n');
229
+ }
192
230
  if (skillsSummaryXML) {
193
231
  return '# Available Skills\n\n' + skillsSummaryXML + '\n\nIf the user message matches a skill (name/keywords) OR the chat platform matches a skill\'s `platforms` in frontmatter, call activate_skill(name) when you need that skill\'s full instructions—then follow them.';
194
232
  }
@@ -225,7 +263,8 @@ function buildMemorySection() {
225
263
  * 用于观测渐进披露与 token 压力,不改变线上 prompt 拼接逻辑。
226
264
  */
227
265
  export function describePromptSectionsForDebug(ctx) {
228
- const { config, skillRegistry, skillsSummaryXML, activeSkillsContext, bootstrapContext } = ctx;
266
+ const { config, skillRegistry, skillsSummaryXML, activeSkillsContext, bootstrapContext, toolSearchDeferredStats, platformSections, } = ctx;
267
+ const toolSearchActive = !!config.toolSearch;
229
268
  const boot = bootstrapContext?.trim() ? bootstrapContext : null;
230
269
  const pairs = [
231
270
  ['§1_identity_environment', buildIdentitySection(config)],
@@ -233,9 +272,11 @@ export function describePromptSectionsForDebug(ctx) {
233
272
  ['§3_discipline', buildDisciplineSection()],
234
273
  ['§4_doing_tasks', buildDoingTasksSection()],
235
274
  ['§5_action_safety', buildActionsSection()],
236
- ['§6_tools', buildUsingToolsSection()],
275
+ ['§6_tools', buildUsingToolsSection(toolSearchActive)],
276
+ ['§6c_platform', buildPlatformSection(platformSections)],
277
+ ['§6b_deferred', buildToolSearchDeferredSection(toolSearchDeferredStats)],
237
278
  ['§7_style', buildCommunicationSection()],
238
- ['§8_skills', buildSkillsSection(skillRegistry, skillsSummaryXML)],
279
+ ['§8_skills', buildSkillsSection(skillRegistry, skillsSummaryXML, toolSearchActive)],
239
280
  ['§9_active_skills', buildActiveSkillsSection(activeSkillsContext)],
240
281
  ['§10_memory', buildMemorySection()],
241
282
  ['§11_bootstrap', boot],
@@ -245,7 +286,8 @@ export function describePromptSectionsForDebug(ctx) {
245
286
  .map(([id, c]) => ({ id, approxChars: c.length }));
246
287
  }
247
288
  export function buildRichSystemPrompt(ctx) {
248
- const { config, skillRegistry, skillsSummaryXML, activeSkillsContext, bootstrapContext } = ctx;
289
+ const { config, skillRegistry, skillsSummaryXML, activeSkillsContext, bootstrapContext, toolSearchDeferredStats, platformSections, } = ctx;
290
+ const toolSearchActive = !!config.toolSearch;
249
291
  const sections = [
250
292
  // Static sections (stable across turns)
251
293
  buildIdentitySection(config), // §1
@@ -253,14 +295,27 @@ export function buildRichSystemPrompt(ctx) {
253
295
  buildDisciplineSection(), // §3
254
296
  buildDoingTasksSection(), // §4
255
297
  buildActionsSection(), // §5
256
- buildUsingToolsSection(), // §6
298
+ buildUsingToolsSection(toolSearchActive), // §6
299
+ buildPlatformSection(platformSections),
300
+ buildToolSearchDeferredSection(toolSearchDeferredStats),
257
301
  buildCommunicationSection(), // §7
258
302
  // Dynamic sections (vary per session/turn)
259
- buildSkillsSection(skillRegistry, skillsSummaryXML), // §8
303
+ buildSkillsSection(skillRegistry, skillsSummaryXML, toolSearchActive), // §8
260
304
  buildActiveSkillsSection(activeSkillsContext), // §9
261
305
  buildMemorySection(), // §10
262
306
  bootstrapContext || null, // §11
263
307
  ];
264
308
  return sections.filter(Boolean).join(SECTION_SEP);
265
309
  }
310
+ /** Vision / lite paths: persona + optional platform + context hint. */
311
+ export function buildLiteSystemPromptWithPlatform(personaBlock, platformSections, contextHint) {
312
+ const parts = [personaBlock.trim()];
313
+ const platform = buildPlatformSection(platformSections);
314
+ if (platform)
315
+ parts.push(platform);
316
+ const hint = contextHint?.trim();
317
+ if (hint)
318
+ parts.push(hint);
319
+ return parts.join('\n\n');
320
+ }
266
321
  //# sourceMappingURL=prompt.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"prompt.js","sourceRoot":"","sources":["../../src/zhin-agent/prompt.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"prompt.js","sourceRoot":"","sources":["../../src/zhin-agent/prompt.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Deferred 工具目录统计(D1 prompt 用)
3
+ */
4
+ import type { AgentTool } from '@zhin.js/ai';
5
+ /** toolSearch 分区前去掉仅用于经典路径的技能工具 */
6
+ export declare function filterToolsForToolSearchCatalog(allTools: AgentTool[]): AgentTool[];
7
+ export declare function summarizeDeferredDomains(deferred: AgentTool[]): string;
8
+ export interface ToolSearchPartition {
9
+ orchestrator: AgentTool[];
10
+ deferred: AgentTool[];
11
+ domainStats: string;
12
+ }
13
+ /** 按常驻名拆分;未在 orchestrator 列表中的工具归入 deferred */
14
+ export declare function partitionToolsForToolSearch(allTools: AgentTool[], orchestratorNames: readonly string[]): ToolSearchPartition;
15
+ //# sourceMappingURL=tool-catalog.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-catalog.d.ts","sourceRoot":"","sources":["../../src/zhin-agent/tool-catalog.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAK7C,mCAAmC;AACnC,wBAAgB,+BAA+B,CAAC,QAAQ,EAAE,SAAS,EAAE,GAAG,SAAS,EAAE,CAElF;AASD,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,SAAS,EAAE,GAAG,MAAM,CAUtE;AAED,MAAM,WAAW,mBAAmB;IAClC,YAAY,EAAE,SAAS,EAAE,CAAC;IAC1B,QAAQ,EAAE,SAAS,EAAE,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,+CAA+C;AAC/C,wBAAgB,2BAA2B,CACzC,QAAQ,EAAE,SAAS,EAAE,EACrB,iBAAiB,EAAE,SAAS,MAAM,EAAE,GACnC,mBAAmB,CAwBrB"}
@@ -0,0 +1,52 @@
1
+ import { TOOL_SEARCH_EXCLUDED_TOOLS } from './config.js';
2
+ const EXCLUDED_FROM_TOOL_SEARCH = new Set(TOOL_SEARCH_EXCLUDED_TOOLS);
3
+ /** toolSearch 分区前去掉仅用于经典路径的技能工具 */
4
+ export function filterToolsForToolSearchCatalog(allTools) {
5
+ return allTools.filter(t => !EXCLUDED_FROM_TOOL_SEARCH.has(t.name));
6
+ }
7
+ function domainForToolName(name) {
8
+ if (name.startsWith('mcp_'))
9
+ return 'mcp';
10
+ if (name.startsWith('github_'))
11
+ return 'github';
12
+ if (name.startsWith('cron_'))
13
+ return 'cron';
14
+ return 'other';
15
+ }
16
+ export function summarizeDeferredDomains(deferred) {
17
+ const counts = new Map();
18
+ for (const tool of deferred) {
19
+ const domain = domainForToolName(tool.name);
20
+ counts.set(domain, (counts.get(domain) ?? 0) + 1);
21
+ }
22
+ const parts = [...counts.entries()]
23
+ .sort((a, b) => b[1] - a[1])
24
+ .map(([domain, count]) => `${domain}(${count})`);
25
+ return parts.length > 0 ? parts.join(', ') : 'none';
26
+ }
27
+ /** 按常驻名拆分;未在 orchestrator 列表中的工具归入 deferred */
28
+ export function partitionToolsForToolSearch(allTools, orchestratorNames) {
29
+ const orchSet = new Set(orchestratorNames.map(n => n.toLowerCase()));
30
+ const orchestrator = [];
31
+ const deferred = [];
32
+ const seenOrch = new Set();
33
+ for (const tool of allTools) {
34
+ const key = tool.name.toLowerCase();
35
+ if (orchSet.has(key)) {
36
+ if (!seenOrch.has(key)) {
37
+ orchestrator.push(tool);
38
+ seenOrch.add(key);
39
+ }
40
+ }
41
+ else if (!EXCLUDED_FROM_TOOL_SEARCH.has(tool.name)) {
42
+ deferred.push(tool);
43
+ }
44
+ }
45
+ // 常驻工具若未出现在 allTools 中,由调用方补注册
46
+ return {
47
+ orchestrator,
48
+ deferred,
49
+ domainStats: summarizeDeferredDomains(deferred),
50
+ };
51
+ }
52
+ //# sourceMappingURL=tool-catalog.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-catalog.js","sourceRoot":"","sources":["../../src/zhin-agent/tool-catalog.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAC;AAEzD,MAAM,yBAAyB,GAAG,IAAI,GAAG,CAAS,0BAA0B,CAAC,CAAC;AAE9E,mCAAmC;AACnC,MAAM,UAAU,+BAA+B,CAAC,QAAqB;IACnE,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,yBAAyB,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;AACtE,CAAC;AAED,SAAS,iBAAiB,CAAC,IAAY;IACrC,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC;QAAE,OAAO,KAAK,CAAC;IAC1C,IAAI,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC;QAAE,OAAO,QAAQ,CAAC;IAChD,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC;QAAE,OAAO,MAAM,CAAC;IAC5C,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,QAAqB;IAC5D,MAAM,MAAM,GAAG,IAAI,GAAG,EAAkB,CAAC;IACzC,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE,CAAC;QAC5B,MAAM,MAAM,GAAG,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC5C,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IACpD,CAAC;IACD,MAAM,KAAK,GAAG,CAAC,GAAG,MAAM,CAAC,OAAO,EAAE,CAAC;SAChC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;SAC3B,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,MAAM,IAAI,KAAK,GAAG,CAAC,CAAC;IACnD,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;AACtD,CAAC;AAQD,+CAA+C;AAC/C,MAAM,UAAU,2BAA2B,CACzC,QAAqB,EACrB,iBAAoC;IAEpC,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;IACrE,MAAM,YAAY,GAAgB,EAAE,CAAC;IACrC,MAAM,QAAQ,GAAgB,EAAE,CAAC;IACjC,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAU,CAAC;IAEnC,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE,CAAC;QAC5B,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;QACpC,IAAI,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YACrB,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;gBACvB,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACxB,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACpB,CAAC;QACH,CAAC;aAAM,IAAI,CAAC,yBAAyB,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YACrD,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACtB,CAAC;IACH,CAAC;IAED,+BAA+B;IAC/B,OAAO;QACL,YAAY;QACZ,QAAQ;QACR,WAAW,EAAE,wBAAwB,CAAC,QAAQ,CAAC;KAChD,CAAC;AACJ,CAAC"}
@@ -1,4 +1,4 @@
1
- import type { AgentTool } from '@zhin.js/ai';
1
+ import { type AgentTool } from '@zhin.js/ai';
2
2
  import type { Tool, ToolContext } from '../orchestrator/types.js';
3
3
  import type { SkillRegistry } from '../orchestrator/skill-registry.js';
4
4
  import type { ZhinAgentConfig } from './config.js';
@@ -18,6 +18,8 @@ export interface CollectRuntimeToolsOptions {
18
18
  memory: ConversationMemory;
19
19
  userProfiles: UserProfileStore;
20
20
  subagentManager: SubagentManager | null;
21
+ /** MCP tools from connected servers (merged after skill/tool selection). */
22
+ mcpTools?: AgentTool[];
21
23
  }
22
24
  export declare function collectRuntimeTools(options: CollectRuntimeToolsOptions): AgentTool[];
23
25
  export interface ToolRunPlan {
@@ -1 +1 @@
1
- {"version":3,"file":"tool-runtime.d.ts","sourceRoot":"","sources":["../../src/zhin-agent/tool-runtime.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC;AACvE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAOnD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACtD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACtD,OAAO,EAAyB,KAAK,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAG7E,MAAM,WAAW,0BAA0B;IACzC,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,WAAW,CAAC;IACrB,aAAa,EAAE,IAAI,EAAE,CAAC;IACtB,MAAM,EAAE,QAAQ,CAAC,eAAe,CAAC,CAAC;IAClC,aAAa,EAAE,aAAa,GAAG,IAAI,CAAC;IACpC,kBAAkB,EAAE,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IAC3C,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,kBAAkB,CAAC;IAC3B,YAAY,EAAE,gBAAgB,CAAC;IAC/B,eAAe,EAAE,eAAe,GAAG,IAAI,CAAC;CACzC;AAED,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,0BAA0B,GAAG,SAAS,EAAE,CAwBpF;AAED,MAAM,WAAW,WAAW;IAC1B,YAAY,EAAE,SAAS,EAAE,CAAC;IAC1B,YAAY,EAAE,gBAAgB,CAAC;IAC/B,kBAAkB,EAAE,OAAO,CAAC;IAC5B,IAAI,EAAE,MAAM,GAAG,oBAAoB,GAAG,OAAO,CAAC;CAC/C;AAED,wBAAsB,WAAW,CAC/B,KAAK,EAAE,SAAS,EAAE,EAClB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,WAAW,CAAC,CAWtB;AAED,wBAAgB,0BAA0B,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAOnF"}
1
+ {"version":3,"file":"tool-runtime.d.ts","sourceRoot":"","sources":["../../src/zhin-agent/tool-runtime.ts"],"names":[],"mappings":"AAAA,OAAO,EAAsB,KAAK,SAAS,EAAE,MAAM,aAAa,CAAC;AAEjE,OAAO,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC;AACvE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAOnD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACtD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACtD,OAAO,EAAyB,KAAK,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAM7E,MAAM,WAAW,0BAA0B;IACzC,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,WAAW,CAAC;IACrB,aAAa,EAAE,IAAI,EAAE,CAAC;IACtB,MAAM,EAAE,QAAQ,CAAC,eAAe,CAAC,CAAC;IAClC,aAAa,EAAE,aAAa,GAAG,IAAI,CAAC;IACpC,kBAAkB,EAAE,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IAC3C,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,kBAAkB,CAAC;IAC3B,YAAY,EAAE,gBAAgB,CAAC;IAC/B,eAAe,EAAE,eAAe,GAAG,IAAI,CAAC;IACxC,4EAA4E;IAC5E,QAAQ,CAAC,EAAE,SAAS,EAAE,CAAC;CACxB;AAED,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,0BAA0B,GAAG,SAAS,EAAE,CAmCpF;AAED,MAAM,WAAW,WAAW;IAC1B,YAAY,EAAE,SAAS,EAAE,CAAC;IAC1B,YAAY,EAAE,gBAAgB,CAAC;IAC/B,kBAAkB,EAAE,OAAO,CAAC;IAC5B,IAAI,EAAE,MAAM,GAAG,oBAAoB,GAAG,OAAO,CAAC;CAC/C;AAED,wBAAsB,WAAW,CAC/B,KAAK,EAAE,SAAS,EAAE,EAClB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,WAAW,CAAC,CAWtB;AAED,wBAAgB,0BAA0B,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAOnF"}
@@ -1,7 +1,11 @@
1
+ import { isReservedToolName } from '@zhin.js/ai';
2
+ import { Logger } from '@zhin.js/core';
1
3
  import { KEYWORD_TRIGGERS } from './config.js';
2
4
  import { createChatHistoryTool, createSpawnTaskTool, createUserProfileTool, } from './builtin-tools.js';
3
5
  import { runPreExecutableTools } from './pre-exec.js';
4
6
  import { sharedToolSelection } from '../orchestrator/tool-selection.js';
7
+ import { RESERVED_TOOL_NAMES, RESERVED_TOOL_NAME_PREFIXES } from '../reserved-tools.js';
8
+ const logger = new Logger(null, 'ToolRuntime');
5
9
  export function collectRuntimeTools(options) {
6
10
  const tools = sharedToolSelection.collectRelevantTools(options.content, options.context, options.externalTools, {
7
11
  config: options.config,
@@ -24,6 +28,16 @@ export function collectRuntimeTools(options) {
24
28
  if (options.subagentManager && KEYWORD_TRIGGERS.spawnTask.test(options.content)) {
25
29
  add(createSpawnTaskTool(options.context, options.subagentManager));
26
30
  }
31
+ for (const mcpTool of options.mcpTools ?? []) {
32
+ if (isReservedToolName(mcpTool.name, {
33
+ reservedNames: RESERVED_TOOL_NAMES,
34
+ reservedPrefixes: RESERVED_TOOL_NAME_PREFIXES,
35
+ })) {
36
+ logger.warn(`[MCP] Skipping tool "${mcpTool.name}": conflicts with reserved tool name`);
37
+ continue;
38
+ }
39
+ add(mcpTool);
40
+ }
27
41
  return tools;
28
42
  }
29
43
  export async function planToolRun(tools, timeoutMs) {
@@ -1 +1 @@
1
- {"version":3,"file":"tool-runtime.js","sourceRoot":"","sources":["../../src/zhin-agent/tool-runtime.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EACL,qBAAqB,EACrB,mBAAmB,EACnB,qBAAqB,GACtB,MAAM,oBAAoB,CAAC;AAI5B,OAAO,EAAE,qBAAqB,EAAyB,MAAM,eAAe,CAAC;AAC7E,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AAgBxE,MAAM,UAAU,mBAAmB,CAAC,OAAmC;IACrE,MAAM,KAAK,GAAG,mBAAmB,CAAC,oBAAoB,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,aAAa,EAAE;QAC9G,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,aAAa,EAAE,OAAO,CAAC,aAAa;QACpC,kBAAkB,EAAE,OAAO,CAAC,kBAAkB;KAC/C,CAAC,CAAC;IACH,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IACpD,MAAM,GAAG,GAAG,CAAC,IAAe,EAAE,EAAE;QAC9B,IAAI,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC;YAAE,OAAO;QACjC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjB,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACvB,CAAC,CAAC;IAEF,IAAI,gBAAgB,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QACvD,GAAG,CAAC,qBAAqB,CAAC,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;IAChE,CAAC;IACD,IAAI,gBAAgB,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QACvD,GAAG,CAAC,qBAAqB,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC;IACnE,CAAC;IACD,IAAI,OAAO,CAAC,eAAe,IAAI,gBAAgB,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QAChF,GAAG,CAAC,mBAAmB,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC;IACrE,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AASD,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,KAAkB,EAClB,SAAiB;IAEjB,MAAM,YAAY,GAAG,MAAM,qBAAqB,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;IACnE,MAAM,kBAAkB,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IACnE,OAAO;QACL,YAAY,EAAE,YAAY,CAAC,KAAK;QAChC,YAAY;QACZ,kBAAkB;QAClB,IAAI,EAAE,KAAK,CAAC,MAAM,KAAK,CAAC;YACtB,CAAC,CAAC,MAAM;YACR,CAAC,CAAC,CAAC,CAAC,kBAAkB,IAAI,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,OAAO,CAAC;KAChF,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,0BAA0B,CAAC,OAAe,EAAE,OAAe;IACzE,OAAO,GAAG,OAAO;;;EAGjB,OAAO;;sGAE6F,CAAC;AACvG,CAAC"}
1
+ {"version":3,"file":"tool-runtime.js","sourceRoot":"","sources":["../../src/zhin-agent/tool-runtime.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ /**
2
+ * toolSearch 模式下组装主编排 Agent 工具集
3
+ */
4
+ import type { AgentTool } from '@zhin.js/ai';
5
+ import type { ToolContext } from '../orchestrator/types.js';
6
+ import type { ZhinAgentConfig } from './config.js';
7
+ /** toolSearch 主编排:压缩 activate_skill 回执,避免长工具列表占满主会话 */
8
+ export declare function wrapActivateSkillForToolSearch(tool: AgentTool): AgentTool;
9
+ export declare function compactActivateSkillResultForToolSearch(full: string): string;
10
+ export interface BuildOrchestratorToolsParams {
11
+ allTools: AgentTool[];
12
+ config: Required<ZhinAgentConfig>;
13
+ context: ToolContext;
14
+ getDeferredCatalog: () => AgentTool[];
15
+ runWorker: (goal: string, toolQuery?: string) => Promise<string>;
16
+ }
17
+ export interface BuildOrchestratorToolsResult {
18
+ orchestratorTools: AgentTool[];
19
+ deferred: AgentTool[];
20
+ domainStats: string;
21
+ }
22
+ export declare function buildOrchestratorAgentTools(params: BuildOrchestratorToolsParams): BuildOrchestratorToolsResult;
23
+ //# sourceMappingURL=tool-search-orchestrator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-search-orchestrator.d.ts","sourceRoot":"","sources":["../../src/zhin-agent/tool-search-orchestrator.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAI7C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAGnD,uDAAuD;AACvD,wBAAgB,8BAA8B,CAAC,IAAI,EAAE,SAAS,GAAG,SAAS,CAczE;AASD,wBAAgB,uCAAuC,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAyB5E;AAED,MAAM,WAAW,4BAA4B;IAC3C,QAAQ,EAAE,SAAS,EAAE,CAAC;IACtB,MAAM,EAAE,QAAQ,CAAC,eAAe,CAAC,CAAC;IAClC,OAAO,EAAE,WAAW,CAAC;IACrB,kBAAkB,EAAE,MAAM,SAAS,EAAE,CAAC;IACtC,SAAS,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;CAClE;AAED,MAAM,WAAW,4BAA4B;IAC3C,iBAAiB,EAAE,SAAS,EAAE,CAAC;IAC/B,QAAQ,EAAE,SAAS,EAAE,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,wBAAgB,2BAA2B,CAAC,MAAM,EAAE,4BAA4B,GAAG,4BAA4B,CAuC9G"}
@@ -0,0 +1,86 @@
1
+ import { createRunDeferredTaskTool } from '../builtin/run-deferred-task-tool.js';
2
+ import { createToolSearchTool } from '../builtin/tool-search-tool.js';
3
+ import { normalizeTool } from '../orchestrator/tool-selection.js';
4
+ import { filterToolsForToolSearchCatalog, partitionToolsForToolSearch } from './tool-catalog.js';
5
+ /** toolSearch 主编排:压缩 activate_skill 回执,避免长工具列表占满主会话 */
6
+ export function wrapActivateSkillForToolSearch(tool) {
7
+ const inner = tool.execute;
8
+ if (!inner)
9
+ return tool;
10
+ return {
11
+ ...tool,
12
+ description: `${tool.description}(toolSearch:仅返回技能要点与建议 tool_query;执行须 run_deferred_task。)`,
13
+ execute: async (args) => {
14
+ const raw = await inner(args);
15
+ const text = typeof raw === 'string' ? raw : String(raw);
16
+ if (text.startsWith('Error:') || text.includes('not found'))
17
+ return text;
18
+ return compactActivateSkillResultForToolSearch(text);
19
+ },
20
+ };
21
+ }
22
+ const ORCHESTRATOR_SKILL_HINTS = {
23
+ icqq: {
24
+ toolQuery: 'mcp_icqq_icqq_invoke icqq_send_user_like friend_like',
25
+ note: 'QQ/icqq:优先 mcp_icqq_icqq_invoke(action=friend_like) 或 icqq_send_user_like;勿用 filesystem MCP。',
26
+ },
27
+ };
28
+ export function compactActivateSkillResultForToolSearch(full) {
29
+ const nameMatch = full.match(/Skill '([^']+)'/);
30
+ const name = nameMatch?.[1] ?? 'skill';
31
+ const toolsBlock = full.match(/tools:\s*\n((?:\s+-\s+.+\n?)+)/);
32
+ const toolNames = toolsBlock
33
+ ? [...toolsBlock[1].matchAll(/^\s+-\s+(\S+)/gm)].map(m => m[1])
34
+ : [];
35
+ const skillHint = ORCHESTRATOR_SKILL_HINTS[name];
36
+ const lines = [
37
+ `Skill '${name}' (orchestrator). Deferred tools run only via run_deferred_task.`,
38
+ ];
39
+ if (skillHint) {
40
+ lines.push(skillHint.note);
41
+ lines.push(`Suggested tool_query: ${skillHint.toolQuery}.`);
42
+ }
43
+ else if (toolNames.length > 0) {
44
+ const hint = toolNames.slice(0, 8).join(', ');
45
+ lines.push(`Suggested tool_query: ${hint}${toolNames.length > 8 ? ', …' : ''}.`);
46
+ }
47
+ const rules = full.match(/## (?:执行规则|快速操作|Quick\s*Actions)[\s\S]*?(?=\n## [^\s]|$)/i);
48
+ if (rules) {
49
+ const chunk = rules[0].trim();
50
+ lines.push(chunk.length > 400 ? `${chunk.slice(0, 400)}\n…` : chunk);
51
+ }
52
+ lines.push('Next: run_deferred_task(goal=user request, tool_query as above). Do not call activate_skill again.');
53
+ return lines.join('\n\n');
54
+ }
55
+ export function buildOrchestratorAgentTools(params) {
56
+ const { allTools, config, context, getDeferredCatalog, runWorker } = params;
57
+ const catalog = filterToolsForToolSearchCatalog(allTools);
58
+ const part = partitionToolsForToolSearch(catalog, config.toolSearchOrchestratorTools);
59
+ const byName = new Map();
60
+ for (const tool of part.orchestrator) {
61
+ byName.set(tool.name, normalizeTool(tool, context));
62
+ }
63
+ byName.set('tool_search', normalizeTool(createToolSearchTool({
64
+ getDeferredCatalog,
65
+ maxResults: config.toolSearchMaxResults,
66
+ }), context));
67
+ const runDeferred = normalizeTool(createRunDeferredTaskTool({ runWorker }), context);
68
+ runDeferred.timeout = Math.max(180_000, (config.timeout ?? 60_000) * 2);
69
+ byName.set('run_deferred_task', runDeferred);
70
+ const orchestratorTools = [];
71
+ for (const name of config.toolSearchOrchestratorTools) {
72
+ let tool = byName.get(name);
73
+ if (!tool)
74
+ continue;
75
+ if (name === 'activate_skill') {
76
+ tool = wrapActivateSkillForToolSearch(tool);
77
+ }
78
+ orchestratorTools.push(tool);
79
+ }
80
+ return {
81
+ orchestratorTools,
82
+ deferred: part.deferred,
83
+ domainStats: part.domainStats,
84
+ };
85
+ }
86
+ //# sourceMappingURL=tool-search-orchestrator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-search-orchestrator.js","sourceRoot":"","sources":["../../src/zhin-agent/tool-search-orchestrator.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zhin.js/agent",
3
- "version": "0.1.19",
3
+ "version": "0.1.21",
4
4
  "description": "Zhin AI Agent — session, ZhinAgent, init; composes @zhin.js/core providers and tools",
5
5
  "type": "module",
6
6
  "main": "./lib/index.js",
@@ -18,13 +18,22 @@
18
18
  "dependencies": {
19
19
  "he": "^1.2.0",
20
20
  "js-yaml": "^4.1.0",
21
- "@zhin.js/ai": "1.1.19",
22
- "@zhin.js/core": "1.1.21"
21
+ "@zhin.js/ai": "1.1.21",
22
+ "@zhin.js/core": "1.1.23"
23
+ },
24
+ "peerDependencies": {
25
+ "@modelcontextprotocol/sdk": "^1.29.0"
26
+ },
27
+ "peerDependenciesMeta": {
28
+ "@modelcontextprotocol/sdk": {
29
+ "optional": true
30
+ }
23
31
  },
24
32
  "devDependencies": {
33
+ "@modelcontextprotocol/sdk": "^1.29.0",
25
34
  "@types/he": "^1.2.3",
26
35
  "@types/js-yaml": "^4.0.9",
27
- "@types/node": "^25.7.0",
36
+ "@types/node": "^25.8.0",
28
37
  "rimraf": "^6.0.0",
29
38
  "typescript": "^6.0.3"
30
39
  },
@@ -1,14 +0,0 @@
1
- import type { Tool, ToolContext, ToolParametersSchema, ToolResult } from '@zhin.js/core';
2
- import { BuiltinBaseTool } from './builtin-base-tool.js';
3
- export declare const READ_MEMORY_PARAMETERS: ToolParametersSchema;
4
- export declare class ReadMemoryBuiltinTool extends BuiltinBaseTool {
5
- private readonly dataDir;
6
- readonly name = "read_memory";
7
- readonly description = "\u8BFB\u53D6\u6301\u4E45\u5316\u8BB0\u5FC6\uFF08AGENTS.md\uFF09\u3002\u8BB0\u5FC6\u8DE8\u4F1A\u8BDD\u4FDD\u6301\u3002scope: global\uFF08\u5171\u4EAB\uFF09\u6216 chat\uFF08\u6309\u804A\u5929\u9694\u79BB\uFF09";
8
- readonly parameters: ToolParametersSchema<Record<string, any>>;
9
- readonly kind = "memory";
10
- constructor(dataDir: string);
11
- run(args: Record<string, unknown>, _context?: ToolContext): Promise<ToolResult>;
12
- }
13
- export declare function createReadMemoryTool(dataDir: string): Tool;
14
- //# sourceMappingURL=read-memory-tool.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"read-memory-tool.d.ts","sourceRoot":"","sources":["../../src/builtin/read-memory-tool.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,oBAAoB,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAEzF,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAEzD,eAAO,MAAM,sBAAsB,EAAE,oBAWpC,CAAC;AAEF,qBAAa,qBAAsB,SAAQ,eAAe;IAO5C,OAAO,CAAC,QAAQ,CAAC,OAAO;IANpC,QAAQ,CAAC,IAAI,iBAAiB;IAC9B,QAAQ,CAAC,WAAW,qNAC0C;IAC9D,QAAQ,CAAC,UAAU,4CAA0B;IAC7C,QAAQ,CAAC,IAAI,YAAY;gBAEI,OAAO,EAAE,MAAM;IAMtC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,QAAQ,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC;CAWtF;AAED,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAE1D"}
@@ -1,49 +0,0 @@
1
- /**
2
- * read_memory — 读取持久化记忆(AGENTS.md)
3
- */
4
- import * as fs from 'node:fs';
5
- import * as path from 'node:path';
6
- import { errMsg } from '../discovery/utils.js';
7
- import { BuiltinBaseTool } from './builtin-base-tool.js';
8
- export const READ_MEMORY_PARAMETERS = {
9
- type: 'object',
10
- properties: {
11
- scope: {
12
- type: 'string',
13
- description: "'global' 或 'chat'(默认 chat)",
14
- enum: ['global', 'chat'],
15
- },
16
- chat_id: { type: 'string', description: '聊天 ID(chat scope 时使用)' },
17
- },
18
- required: ['scope'],
19
- };
20
- export class ReadMemoryBuiltinTool extends BuiltinBaseTool {
21
- dataDir;
22
- name = 'read_memory';
23
- description = '读取持久化记忆(AGENTS.md)。记忆跨会话保持。scope: global(共享)或 chat(按聊天隔离)';
24
- parameters = READ_MEMORY_PARAMETERS;
25
- kind = 'memory';
26
- constructor(dataDir) {
27
- super();
28
- this.dataDir = dataDir;
29
- this.tags.push('memory', 'agents');
30
- this.keywords.push('记忆', '记住', '回忆', '之前', '上次', 'memory');
31
- }
32
- async run(args, _context) {
33
- try {
34
- const memPath = args.scope === 'global'
35
- ? path.join(this.dataDir, 'AGENTS.md')
36
- : path.join(this.dataDir, 'groups', args.chat_id || 'default', 'AGENTS.md');
37
- if (!fs.existsSync(memPath))
38
- return 'No memory stored yet.';
39
- return await fs.promises.readFile(memPath, 'utf-8');
40
- }
41
- catch (e) {
42
- return `Error: ${errMsg(e)}`;
43
- }
44
- }
45
- }
46
- export function createReadMemoryTool(dataDir) {
47
- return new ReadMemoryBuiltinTool(dataDir).toTool();
48
- }
49
- //# sourceMappingURL=read-memory-tool.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"read-memory-tool.js","sourceRoot":"","sources":["../../src/builtin/read-memory-tool.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAElC,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAEzD,MAAM,CAAC,MAAM,sBAAsB,GAAyB;IAC1D,IAAI,EAAE,QAAQ;IACd,UAAU,EAAE;QACV,KAAK,EAAE;YACL,IAAI,EAAE,QAAQ;YACd,WAAW,EAAE,4BAA4B;YACzC,IAAI,EAAE,CAAC,QAAQ,EAAE,MAAM,CAAC;SACzB;QACD,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,uBAAuB,EAAE;KAClE;IACD,QAAQ,EAAE,CAAC,OAAO,CAAC;CACpB,CAAC;AAEF,MAAM,OAAO,qBAAsB,SAAQ,eAAe;IAO3B;IANpB,IAAI,GAAG,aAAa,CAAC;IACrB,WAAW,GAClB,2DAA2D,CAAC;IACrD,UAAU,GAAG,sBAAsB,CAAC;IACpC,IAAI,GAAG,QAAQ,CAAC;IAEzB,YAA6B,OAAe;QAC1C,KAAK,EAAE,CAAC;QADmB,YAAO,GAAP,OAAO,CAAQ;QAE1C,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QACnC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;IAC7D,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,IAA6B,EAAE,QAAsB;QAC7D,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,KAAK,QAAQ;gBACrC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,WAAW,CAAC;gBACtC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,EAAG,IAAI,CAAC,OAAkB,IAAI,SAAS,EAAE,WAAW,CAAC,CAAC;YAC1F,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC;gBAAE,OAAO,uBAAuB,CAAC;YAC5D,OAAO,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACtD,CAAC;QAAC,OAAO,CAAU,EAAE,CAAC;YACpB,OAAO,UAAU,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/B,CAAC;IACH,CAAC;CACF;AAED,MAAM,UAAU,oBAAoB,CAAC,OAAe;IAClD,OAAO,IAAI,qBAAqB,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,CAAC;AACrD,CAAC"}
@@ -1,14 +0,0 @@
1
- import type { Tool, ToolContext, ToolParametersSchema, ToolResult } from '@zhin.js/core';
2
- import { BuiltinBaseTool } from './builtin-base-tool.js';
3
- export declare const WRITE_MEMORY_PARAMETERS: ToolParametersSchema;
4
- export declare class WriteMemoryBuiltinTool extends BuiltinBaseTool {
5
- private readonly dataDir;
6
- readonly name = "write_memory";
7
- readonly description = "\u5199\u5165\u6301\u4E45\u5316\u8BB0\u5FC6\u3002\u5F53\u7528\u6237\u8BF4\"\u8BB0\u4F4F\u2026\"\u3001\"\u8BB0\u5F55\u2026\"\u65F6\u4F7F\u7528\u6B64\u5DE5\u5177";
8
- readonly parameters: ToolParametersSchema<Record<string, any>>;
9
- readonly kind = "memory";
10
- constructor(dataDir: string);
11
- run(args: Record<string, unknown>, _context?: ToolContext): Promise<ToolResult>;
12
- }
13
- export declare function createWriteMemoryTool(dataDir: string): Tool;
14
- //# sourceMappingURL=write-memory-tool.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"write-memory-tool.d.ts","sourceRoot":"","sources":["../../src/builtin/write-memory-tool.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,oBAAoB,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAEzF,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAEzD,eAAO,MAAM,uBAAuB,EAAE,oBAYrC,CAAC;AAEF,qBAAa,sBAAuB,SAAQ,eAAe;IAM7C,OAAO,CAAC,QAAQ,CAAC,OAAO;IALpC,QAAQ,CAAC,IAAI,kBAAkB;IAC/B,QAAQ,CAAC,WAAW,oKAAmC;IACvD,QAAQ,CAAC,UAAU,4CAA2B;IAC9C,QAAQ,CAAC,IAAI,YAAY;gBAEI,OAAO,EAAE,MAAM;IAMtC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,QAAQ,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC;CAYtF;AAED,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAE3D"}