@zhin.js/agent 0.1.20 → 0.1.22
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +37 -23
- package/lib/agent-prompt/format.d.ts +6 -0
- package/lib/agent-prompt/format.d.ts.map +1 -0
- package/lib/agent-prompt/format.js +40 -0
- package/lib/agent-prompt/format.js.map +1 -0
- package/lib/agent-prompt/index.d.ts +5 -0
- package/lib/agent-prompt/index.d.ts.map +1 -0
- package/lib/agent-prompt/index.js +4 -0
- package/lib/agent-prompt/index.js.map +1 -0
- package/lib/agent-prompt/registry.d.ts +7 -0
- package/lib/agent-prompt/registry.d.ts.map +1 -0
- package/lib/agent-prompt/registry.js +23 -0
- package/lib/agent-prompt/registry.js.map +1 -0
- package/lib/agent-prompt/resolver.d.ts +12 -0
- package/lib/agent-prompt/resolver.d.ts.map +1 -0
- package/lib/agent-prompt/resolver.js +71 -0
- package/lib/agent-prompt/resolver.js.map +1 -0
- package/lib/builtin/run-deferred-task-tool.d.ts +20 -0
- package/lib/builtin/run-deferred-task-tool.d.ts.map +1 -0
- package/lib/builtin/run-deferred-task-tool.js +39 -0
- package/lib/builtin/run-deferred-task-tool.js.map +1 -0
- package/lib/builtin/tool-search-tool.d.ts +19 -0
- package/lib/builtin/tool-search-tool.d.ts.map +1 -0
- package/lib/builtin/tool-search-tool.js +54 -0
- package/lib/builtin/tool-search-tool.js.map +1 -0
- package/lib/builtin-tools.d.ts +1 -1
- package/lib/builtin-tools.d.ts.map +1 -1
- package/lib/builtin-tools.js +1 -5
- package/lib/builtin-tools.js.map +1 -1
- package/lib/cron-engine.d.ts.map +1 -1
- package/lib/cron-engine.js +3 -3
- package/lib/cron-engine.js.map +1 -1
- package/lib/deferred-worker-runner.d.ts +30 -0
- package/lib/deferred-worker-runner.d.ts.map +1 -0
- package/lib/deferred-worker-runner.js +159 -0
- package/lib/deferred-worker-runner.js.map +1 -0
- package/lib/deferred-worker-tool-load.d.ts +6 -0
- package/lib/deferred-worker-tool-load.d.ts.map +1 -0
- package/lib/deferred-worker-tool-load.js +5 -0
- package/lib/deferred-worker-tool-load.js.map +1 -0
- package/lib/hooks.d.ts +13 -0
- package/lib/hooks.d.ts.map +1 -1
- package/lib/hooks.js.map +1 -1
- package/lib/index.d.ts +3 -3
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +2 -3
- package/lib/index.js.map +1 -1
- package/lib/init/create-zhin-agent.d.ts.map +1 -1
- package/lib/init/create-zhin-agent.js +9 -7
- package/lib/init/create-zhin-agent.js.map +1 -1
- package/lib/init/register-ai-service.d.ts.map +1 -1
- package/lib/init/register-ai-service.js +5 -5
- package/lib/init/register-ai-service.js.map +1 -1
- package/lib/init/register-ai-trigger.d.ts.map +1 -1
- package/lib/init/register-ai-trigger.js +25 -9
- package/lib/init/register-ai-trigger.js.map +1 -1
- package/lib/init/register-builtin-tools.d.ts.map +1 -1
- package/lib/init/register-builtin-tools.js +33 -29
- package/lib/init/register-builtin-tools.js.map +1 -1
- package/lib/init/register-mcp-from-config.d.ts +2 -0
- package/lib/init/register-mcp-from-config.d.ts.map +1 -0
- package/lib/init/register-mcp-from-config.js +85 -0
- package/lib/init/register-mcp-from-config.js.map +1 -0
- package/lib/init/register-mcp-memory-default.d.ts +2 -0
- package/lib/init/register-mcp-memory-default.d.ts.map +1 -0
- package/lib/init/register-mcp-memory-default.js +34 -0
- package/lib/init/register-mcp-memory-default.js.map +1 -0
- package/lib/init.d.ts.map +1 -1
- package/lib/init.js +4 -0
- package/lib/init.js.map +1 -1
- package/lib/mcp-client/index.d.ts +1 -2
- package/lib/mcp-client/index.d.ts.map +1 -1
- package/lib/mcp-client/index.js +1 -2
- package/lib/mcp-client/index.js.map +1 -1
- package/lib/orchestrator/mcp-lifecycle.d.ts +6 -0
- package/lib/orchestrator/mcp-lifecycle.d.ts.map +1 -0
- package/lib/orchestrator/mcp-lifecycle.js +7 -0
- package/lib/orchestrator/mcp-lifecycle.js.map +1 -0
- package/lib/orchestrator/mcp-registry.d.ts +5 -1
- package/lib/orchestrator/mcp-registry.d.ts.map +1 -1
- package/lib/orchestrator/mcp-registry.js +36 -20
- package/lib/orchestrator/mcp-registry.js.map +1 -1
- package/lib/orchestrator/owner-confirm-orchestration.d.ts +4 -1
- package/lib/orchestrator/owner-confirm-orchestration.d.ts.map +1 -1
- package/lib/orchestrator/owner-confirm-orchestration.js.map +1 -1
- package/lib/orchestrator/tool-selection.d.ts +2 -0
- package/lib/orchestrator/tool-selection.d.ts.map +1 -1
- package/lib/orchestrator/tool-selection.js +40 -4
- package/lib/orchestrator/tool-selection.js.map +1 -1
- package/lib/reserved-tools.js +2 -2
- package/lib/reserved-tools.js.map +1 -1
- package/lib/security/bash-tool-context.d.ts +17 -2
- package/lib/security/bash-tool-context.d.ts.map +1 -1
- package/lib/security/bash-tool-context.js +9 -3
- package/lib/security/bash-tool-context.js.map +1 -1
- package/lib/security/exec-policy.d.ts.map +1 -1
- package/lib/security/exec-policy.js +4 -1
- package/lib/security/exec-policy.js.map +1 -1
- package/lib/subagent.d.ts +7 -1
- package/lib/subagent.d.ts.map +1 -1
- package/lib/subagent.js +22 -8
- package/lib/subagent.js.map +1 -1
- package/lib/utils/config-env.d.ts +5 -0
- package/lib/utils/config-env.d.ts.map +1 -0
- package/lib/utils/config-env.js +34 -0
- package/lib/utils/config-env.js.map +1 -0
- package/lib/zhin-agent/config.d.ts +23 -0
- package/lib/zhin-agent/config.d.ts.map +1 -1
- package/lib/zhin-agent/config.js +20 -0
- package/lib/zhin-agent/config.js.map +1 -1
- package/lib/zhin-agent/index.d.ts +21 -0
- package/lib/zhin-agent/index.d.ts.map +1 -1
- package/lib/zhin-agent/index.js +257 -35
- package/lib/zhin-agent/index.js.map +1 -1
- package/lib/zhin-agent/prompt.d.ts +6 -0
- package/lib/zhin-agent/prompt.d.ts.map +1 -1
- package/lib/zhin-agent/prompt.js +70 -15
- package/lib/zhin-agent/prompt.js.map +1 -1
- package/lib/zhin-agent/tool-catalog.d.ts +15 -0
- package/lib/zhin-agent/tool-catalog.d.ts.map +1 -0
- package/lib/zhin-agent/tool-catalog.js +52 -0
- package/lib/zhin-agent/tool-catalog.js.map +1 -0
- package/lib/zhin-agent/tool-runtime.d.ts +3 -1
- package/lib/zhin-agent/tool-runtime.d.ts.map +1 -1
- package/lib/zhin-agent/tool-runtime.js +14 -0
- package/lib/zhin-agent/tool-runtime.js.map +1 -1
- package/lib/zhin-agent/tool-search-orchestrator.d.ts +23 -0
- package/lib/zhin-agent/tool-search-orchestrator.d.ts.map +1 -0
- package/lib/zhin-agent/tool-search-orchestrator.js +86 -0
- package/lib/zhin-agent/tool-search-orchestrator.js.map +1 -0
- package/lib/zhin-agent/turn-metrics.d.ts +20 -0
- package/lib/zhin-agent/turn-metrics.d.ts.map +1 -0
- package/lib/zhin-agent/turn-metrics.js +28 -0
- package/lib/zhin-agent/turn-metrics.js.map +1 -0
- package/package.json +14 -4
- package/lib/builtin/read-memory-tool.d.ts +0 -14
- package/lib/builtin/read-memory-tool.d.ts.map +0 -1
- package/lib/builtin/read-memory-tool.js +0 -49
- package/lib/builtin/read-memory-tool.js.map +0 -1
- package/lib/builtin/write-memory-tool.d.ts +0 -14
- package/lib/builtin/write-memory-tool.d.ts.map +0 -1
- package/lib/builtin/write-memory-tool.js +0 -50
- package/lib/builtin/write-memory-tool.js.map +0 -1
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { Usage } from '@zhin.js/ai';
|
|
2
|
+
export type ZhinAgentTurnPath = 'chat' | 'fast' | 'agent' | 'multimodal' | 'rate_limited';
|
|
3
|
+
export interface ZhinAgentTurnMetrics {
|
|
4
|
+
/** 主 agent + 本轮 spawn 的子 agent 合计 */
|
|
5
|
+
usage: Usage;
|
|
6
|
+
/** 仅主 agent(无子 agent 时与 usage 相同) */
|
|
7
|
+
mainUsage?: Usage;
|
|
8
|
+
/** 本轮 spawn 的子 agent 合计 */
|
|
9
|
+
subagentUsage?: Usage;
|
|
10
|
+
path: ZhinAgentTurnPath;
|
|
11
|
+
iterations?: number;
|
|
12
|
+
model?: string;
|
|
13
|
+
}
|
|
14
|
+
export declare function addUsage(target: Usage, source?: Usage): void;
|
|
15
|
+
export declare const EMPTY_USAGE: Usage;
|
|
16
|
+
/** AI Handler 层统一汇总日志(紧凑 key-value) */
|
|
17
|
+
export declare function formatAiHandlerCompleteLog(metrics: ZhinAgentTurnMetrics, totalMs: number): string;
|
|
18
|
+
/** @deprecated 使用 formatCompactUsage from @zhin.js/logger */
|
|
19
|
+
export declare function formatZhinAgentTurnUsage(usage: Usage, subagentUsage?: Usage): string;
|
|
20
|
+
//# sourceMappingURL=turn-metrics.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"turn-metrics.d.ts","sourceRoot":"","sources":["../../src/zhin-agent/turn-metrics.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAGzC,MAAM,MAAM,iBAAiB,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,YAAY,GAAG,cAAc,CAAC;AAE1F,MAAM,WAAW,oBAAoB;IACnC,qCAAqC;IACrC,KAAK,EAAE,KAAK,CAAC;IACb,qCAAqC;IACrC,SAAS,CAAC,EAAE,KAAK,CAAC;IAClB,2BAA2B;IAC3B,aAAa,CAAC,EAAE,KAAK,CAAC;IACtB,IAAI,EAAE,iBAAiB,CAAC;IACxB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,wBAAgB,QAAQ,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,EAAE,KAAK,GAAG,IAAI,CAK5D;AAED,eAAO,MAAM,WAAW,EAAE,KAIzB,CAAC;AAEF,uCAAuC;AACvC,wBAAgB,0BAA0B,CAAC,OAAO,EAAE,oBAAoB,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAQjG;AAED,6DAA6D;AAC7D,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,KAAK,EAAE,aAAa,CAAC,EAAE,KAAK,GAAG,MAAM,CAEpF"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { formatCompactLog, formatCompactUsage } from '@zhin.js/logger';
|
|
2
|
+
export function addUsage(target, source) {
|
|
3
|
+
if (!source)
|
|
4
|
+
return;
|
|
5
|
+
target.prompt_tokens += source.prompt_tokens;
|
|
6
|
+
target.completion_tokens += source.completion_tokens;
|
|
7
|
+
target.total_tokens += source.total_tokens;
|
|
8
|
+
}
|
|
9
|
+
export const EMPTY_USAGE = {
|
|
10
|
+
prompt_tokens: 0,
|
|
11
|
+
completion_tokens: 0,
|
|
12
|
+
total_tokens: 0,
|
|
13
|
+
};
|
|
14
|
+
/** AI Handler 层统一汇总日志(紧凑 key-value) */
|
|
15
|
+
export function formatAiHandlerCompleteLog(metrics, totalMs) {
|
|
16
|
+
return formatCompactLog('AI Handler', {
|
|
17
|
+
total_ms: Math.round(totalMs),
|
|
18
|
+
usage: formatCompactUsage(metrics.usage, metrics.subagentUsage),
|
|
19
|
+
mode: metrics.path,
|
|
20
|
+
iter: metrics.iterations,
|
|
21
|
+
model: metrics.model,
|
|
22
|
+
});
|
|
23
|
+
}
|
|
24
|
+
/** @deprecated 使用 formatCompactUsage from @zhin.js/logger */
|
|
25
|
+
export function formatZhinAgentTurnUsage(usage, subagentUsage) {
|
|
26
|
+
return formatCompactUsage(usage, subagentUsage);
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=turn-metrics.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"turn-metrics.js","sourceRoot":"","sources":["../../src/zhin-agent/turn-metrics.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAgBvE,MAAM,UAAU,QAAQ,CAAC,MAAa,EAAE,MAAc;IACpD,IAAI,CAAC,MAAM;QAAE,OAAO;IACpB,MAAM,CAAC,aAAa,IAAI,MAAM,CAAC,aAAa,CAAC;IAC7C,MAAM,CAAC,iBAAiB,IAAI,MAAM,CAAC,iBAAiB,CAAC;IACrD,MAAM,CAAC,YAAY,IAAI,MAAM,CAAC,YAAY,CAAC;AAC7C,CAAC;AAED,MAAM,CAAC,MAAM,WAAW,GAAU;IAChC,aAAa,EAAE,CAAC;IAChB,iBAAiB,EAAE,CAAC;IACpB,YAAY,EAAE,CAAC;CAChB,CAAC;AAEF,uCAAuC;AACvC,MAAM,UAAU,0BAA0B,CAAC,OAA6B,EAAE,OAAe;IACvF,OAAO,gBAAgB,CAAC,YAAY,EAAE;QACpC,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;QAC7B,KAAK,EAAE,kBAAkB,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,aAAa,CAAC;QAC/D,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,IAAI,EAAE,OAAO,CAAC,UAAU;QACxB,KAAK,EAAE,OAAO,CAAC,KAAK;KACrB,CAAC,CAAC;AACL,CAAC;AAED,6DAA6D;AAC7D,MAAM,UAAU,wBAAwB,CAAC,KAAY,EAAE,aAAqB;IAC1E,OAAO,kBAAkB,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC;AAClD,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@zhin.js/agent",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.22",
|
|
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,23 @@
|
|
|
18
18
|
"dependencies": {
|
|
19
19
|
"he": "^1.2.0",
|
|
20
20
|
"js-yaml": "^4.1.0",
|
|
21
|
-
"@zhin.js/ai": "1.1.
|
|
22
|
-
"@zhin.js/core": "1.1.
|
|
21
|
+
"@zhin.js/ai": "1.1.22",
|
|
22
|
+
"@zhin.js/core": "1.1.24",
|
|
23
|
+
"@zhin.js/logger": "0.1.64"
|
|
24
|
+
},
|
|
25
|
+
"peerDependencies": {
|
|
26
|
+
"@modelcontextprotocol/sdk": "^1.29.0"
|
|
27
|
+
},
|
|
28
|
+
"peerDependenciesMeta": {
|
|
29
|
+
"@modelcontextprotocol/sdk": {
|
|
30
|
+
"optional": true
|
|
31
|
+
}
|
|
23
32
|
},
|
|
24
33
|
"devDependencies": {
|
|
34
|
+
"@modelcontextprotocol/sdk": "^1.29.0",
|
|
25
35
|
"@types/he": "^1.2.3",
|
|
26
36
|
"@types/js-yaml": "^4.0.9",
|
|
27
|
-
"@types/node": "^25.
|
|
37
|
+
"@types/node": "^25.8.0",
|
|
28
38
|
"rimraf": "^6.0.0",
|
|
29
39
|
"typescript": "^6.0.3"
|
|
30
40
|
},
|
|
@@ -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"}
|
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* write_memory — 写入持久化记忆(AGENTS.md)
|
|
3
|
-
*/
|
|
4
|
-
import * as fs from 'node:fs/promises';
|
|
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 WRITE_MEMORY_PARAMETERS = {
|
|
9
|
-
type: 'object',
|
|
10
|
-
properties: {
|
|
11
|
-
content: { type: 'string', description: '要保存的记忆内容(Markdown)' },
|
|
12
|
-
scope: {
|
|
13
|
-
type: 'string',
|
|
14
|
-
description: "'global' 或 'chat'(默认 chat)",
|
|
15
|
-
enum: ['global', 'chat'],
|
|
16
|
-
},
|
|
17
|
-
chat_id: { type: 'string', description: '聊天 ID' },
|
|
18
|
-
},
|
|
19
|
-
required: ['content'],
|
|
20
|
-
};
|
|
21
|
-
export class WriteMemoryBuiltinTool extends BuiltinBaseTool {
|
|
22
|
-
dataDir;
|
|
23
|
-
name = 'write_memory';
|
|
24
|
-
description = '写入持久化记忆。当用户说"记住…"、"记录…"时使用此工具';
|
|
25
|
-
parameters = WRITE_MEMORY_PARAMETERS;
|
|
26
|
-
kind = 'memory';
|
|
27
|
-
constructor(dataDir) {
|
|
28
|
-
super();
|
|
29
|
-
this.dataDir = dataDir;
|
|
30
|
-
this.tags.push('memory', 'agents');
|
|
31
|
-
this.keywords.push('记住', '保存', 'remember', '记录');
|
|
32
|
-
}
|
|
33
|
-
async run(args, _context) {
|
|
34
|
-
try {
|
|
35
|
-
const memPath = args.scope === 'global'
|
|
36
|
-
? path.join(this.dataDir, 'AGENTS.md')
|
|
37
|
-
: path.join(this.dataDir, 'groups', args.chat_id || 'default', 'AGENTS.md');
|
|
38
|
-
await fs.mkdir(path.dirname(memPath), { recursive: true });
|
|
39
|
-
await fs.writeFile(memPath, String(args.content), 'utf-8');
|
|
40
|
-
return `✅ Memory saved (${args.scope || 'chat'} scope)`;
|
|
41
|
-
}
|
|
42
|
-
catch (e) {
|
|
43
|
-
return `Error: ${errMsg(e)}`;
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
export function createWriteMemoryTool(dataDir) {
|
|
48
|
-
return new WriteMemoryBuiltinTool(dataDir).toTool();
|
|
49
|
-
}
|
|
50
|
-
//# sourceMappingURL=write-memory-tool.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"write-memory-tool.js","sourceRoot":"","sources":["../../src/builtin/write-memory-tool.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACvC,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,uBAAuB,GAAyB;IAC3D,IAAI,EAAE,QAAQ;IACd,UAAU,EAAE;QACV,OAAO,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,oBAAoB,EAAE;QAC9D,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,OAAO,EAAE;KAClD;IACD,QAAQ,EAAE,CAAC,SAAS,CAAC;CACtB,CAAC;AAEF,MAAM,OAAO,sBAAuB,SAAQ,eAAe;IAM5B;IALpB,IAAI,GAAG,cAAc,CAAC;IACtB,WAAW,GAAG,+BAA+B,CAAC;IAC9C,UAAU,GAAG,uBAAuB,CAAC;IACrC,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,UAAU,EAAE,IAAI,CAAC,CAAC;IACnD,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,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YAC3D,MAAM,EAAE,CAAC,SAAS,CAAC,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,CAAC;YAC3D,OAAO,mBAAoB,IAAI,CAAC,KAAgB,IAAI,MAAM,SAAS,CAAC;QACtE,CAAC;QAAC,OAAO,CAAU,EAAE,CAAC;YACpB,OAAO,UAAU,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/B,CAAC;IACH,CAAC;CACF;AAED,MAAM,UAAU,qBAAqB,CAAC,OAAe;IACnD,OAAO,IAAI,sBAAsB,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,CAAC;AACtD,CAAC"}
|