@zerone-agent/open-agent-sdk 0.5.2 → 0.5.3
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/package.json +1 -1
- package/dist/memory/index.d.ts +0 -3
- package/dist/memory/index.d.ts.map +0 -1
- package/dist/memory/index.js +0 -2
- package/dist/memory/index.js.map +0 -1
- package/dist/memory/memory-tools.d.ts +0 -5
- package/dist/memory/memory-tools.d.ts.map +0 -1
- package/dist/memory/memory-tools.js +0 -130
- package/dist/memory/memory-tools.js.map +0 -1
- package/dist/memory/provider.d.ts +0 -69
- package/dist/memory/provider.d.ts.map +0 -1
- package/dist/memory/provider.js +0 -2
- package/dist/memory/provider.js.map +0 -1
- package/dist/tools/agent-tool.d.ts +0 -18
- package/dist/tools/agent-tool.d.ts.map +0 -1
- package/dist/tools/agent-tool.js +0 -161
- package/dist/tools/agent-tool.js.map +0 -1
- package/dist/tools/task-tools.d.ts +0 -48
- package/dist/tools/task-tools.d.ts.map +0 -1
- package/dist/tools/task-tools.js +0 -242
- package/dist/tools/task-tools.js.map +0 -1
package/package.json
CHANGED
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
"bugs": {
|
|
13
13
|
"url": "https://github.com/Zerone-Agent/open-agent-sdk/issues"
|
|
14
14
|
},
|
|
15
|
-
"version": "0.5.
|
|
15
|
+
"version": "0.5.3",
|
|
16
16
|
"description": "Open-source Agent SDK. Runs the full agent loop in-process — no local CLI required. Deploy anywhere: cloud, serverless, Docker, CI/CD.",
|
|
17
17
|
"type": "module",
|
|
18
18
|
"main": "./dist/index.js",
|
package/dist/memory/index.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/memory/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AAClF,YAAY,EAAE,cAAc,EAAE,WAAW,EAAE,WAAW,EAAE,kBAAkB,EAAE,WAAW,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,eAAe,CAAA"}
|
package/dist/memory/index.js
DELETED
package/dist/memory/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/memory/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA"}
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
import type { MemoryProvider } from './provider.js';
|
|
2
|
-
export declare function initMemoryTools(p: MemoryProvider): void;
|
|
3
|
-
export declare const MemoryTool: import("../types.js").ToolDefinition;
|
|
4
|
-
export declare const SessionSearchTool: import("../types.js").ToolDefinition;
|
|
5
|
-
//# sourceMappingURL=memory-tools.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"memory-tools.d.ts","sourceRoot":"","sources":["../../src/memory/memory-tools.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AAInD,wBAAgB,eAAe,CAAC,CAAC,EAAE,cAAc,GAAG,IAAI,CAEvD;AAKD,eAAO,MAAM,UAAU,sCAwDrB,CAAA;AAEF,eAAO,MAAM,iBAAiB,sCAmE5B,CAAA"}
|
|
@@ -1,130 +0,0 @@
|
|
|
1
|
-
import { defineTool } from '../tools/types.js';
|
|
2
|
-
let provider = null;
|
|
3
|
-
export function initMemoryTools(p) {
|
|
4
|
-
provider = p;
|
|
5
|
-
}
|
|
6
|
-
const MEMORY_LIMIT = 22000;
|
|
7
|
-
const USER_LIMIT = 1375;
|
|
8
|
-
export const MemoryTool = defineTool({
|
|
9
|
-
name: 'Memory',
|
|
10
|
-
description: `管理跨会话的持久记忆。
|
|
11
|
-
|
|
12
|
-
记忆目标:
|
|
13
|
-
memory — Agent 自身笔记:项目约定、环境事实、学到的经验教训。
|
|
14
|
-
上限:${MEMORY_LIMIT} 字符。超过 80% 时请合并条目。
|
|
15
|
-
user — 用户画像:偏好、沟通风格、期望。
|
|
16
|
-
上限:${USER_LIMIT} 字符。
|
|
17
|
-
|
|
18
|
-
操作类型:
|
|
19
|
-
add — 添加条目。添加前必须检查该目标是否已有含义冲突或过时的条目,如有则改用 replace 而非 add。
|
|
20
|
-
XML 快照中:<memory> 标签对应 target:memory,<user_profile> 标签对应 target:user,请根据标签名正确选择 target。
|
|
21
|
-
replace — 替换条目(当新信息覆盖/更新/推翻已有信息时使用,不要用 add 造成冲突重复)。
|
|
22
|
-
old_text 指定要被替换的旧内容(支持模糊匹配),new_text 指定新内容。
|
|
23
|
-
content 字段在 replace 操作中不生效,请填写 new_text 而非 content。
|
|
24
|
-
remove — 删除条目。匹配 content 或 old_text。
|
|
25
|
-
consolidate — 合并条目(请通过 remove + add 手动操作)。
|
|
26
|
-
|
|
27
|
-
变更立即持久化,将在下一次会话的 system prompt 中生效。`,
|
|
28
|
-
inputSchema: {
|
|
29
|
-
type: 'object',
|
|
30
|
-
properties: {
|
|
31
|
-
action: { type: 'string', enum: ['add', 'replace', 'remove', 'consolidate'] },
|
|
32
|
-
target: { type: 'string', enum: ['memory', 'user'] },
|
|
33
|
-
content: { type: 'string' },
|
|
34
|
-
old_text: { type: 'string' },
|
|
35
|
-
new_text: { type: 'string' },
|
|
36
|
-
},
|
|
37
|
-
required: ['action'],
|
|
38
|
-
},
|
|
39
|
-
isReadOnly: false,
|
|
40
|
-
isConcurrencySafe: false,
|
|
41
|
-
async call(input, context) {
|
|
42
|
-
if (!provider)
|
|
43
|
-
return '记忆系统尚未初始化。';
|
|
44
|
-
const { agentId } = context;
|
|
45
|
-
switch (input.action) {
|
|
46
|
-
case 'add':
|
|
47
|
-
return (await provider.add(agentId, input.target, input.content)).message;
|
|
48
|
-
case 'replace': {
|
|
49
|
-
const newText = input.new_text ?? input.content ?? '';
|
|
50
|
-
return (await provider.replace(agentId, input.target, input.old_text, newText)).message;
|
|
51
|
-
}
|
|
52
|
-
case 'remove':
|
|
53
|
-
return (await provider.remove(agentId, input.target, input.old_text || input.content)).message;
|
|
54
|
-
case 'consolidate':
|
|
55
|
-
return '请通过 remove + add 的方式合并相关条目。';
|
|
56
|
-
default:
|
|
57
|
-
return `未知操作:${input.action}`;
|
|
58
|
-
}
|
|
59
|
-
},
|
|
60
|
-
});
|
|
61
|
-
export const SessionSearchTool = defineTool({
|
|
62
|
-
name: 'SessionSearch',
|
|
63
|
-
description: `搜索或浏览历史会话记录。
|
|
64
|
-
操作类型:
|
|
65
|
-
search — 全文搜索消息(BM25 相关性排序),需提供 query。
|
|
66
|
-
list_sessions — 列出最近的会话,按时间倒序。支持 date_from/date_to 按日期范围过滤(格式:YYYY-MM-DD 或 YYYY-MM-DD HH:mm:ss)。
|
|
67
|
-
get_messages — 获取指定会话的消息,可按日期范围过滤。`,
|
|
68
|
-
inputSchema: {
|
|
69
|
-
type: 'object',
|
|
70
|
-
properties: {
|
|
71
|
-
action: { type: 'string', enum: ['search', 'list_sessions', 'get_messages'] },
|
|
72
|
-
query: { type: 'string' },
|
|
73
|
-
session_id: { type: 'string' },
|
|
74
|
-
date_from: { type: 'string' },
|
|
75
|
-
date_to: { type: 'string' },
|
|
76
|
-
limit: { type: 'number', default: 10 },
|
|
77
|
-
offset: { type: 'number', default: 0 },
|
|
78
|
-
},
|
|
79
|
-
required: ['action'],
|
|
80
|
-
},
|
|
81
|
-
isReadOnly: true,
|
|
82
|
-
isConcurrencySafe: true,
|
|
83
|
-
async call(input, _context) {
|
|
84
|
-
if (!provider)
|
|
85
|
-
return '会话搜索不可用。';
|
|
86
|
-
switch (input.action) {
|
|
87
|
-
case 'search': {
|
|
88
|
-
if (!input.query || typeof input.query !== 'string' || !input.query.trim()) {
|
|
89
|
-
return '请提供搜索关键词。';
|
|
90
|
-
}
|
|
91
|
-
const results = await provider.search(input.query, { limit: input.limit, offset: input.offset, dateFrom: input.date_from, dateTo: input.date_to });
|
|
92
|
-
if (results.length === 0)
|
|
93
|
-
return '未找到匹配的消息。';
|
|
94
|
-
return results
|
|
95
|
-
.map(r => `[${r.createdAt}] ${r.role}: ${r.content}`)
|
|
96
|
-
.join('\n---\n');
|
|
97
|
-
}
|
|
98
|
-
case 'list_sessions': {
|
|
99
|
-
const sessions = await provider.listSessions({
|
|
100
|
-
dateFrom: input.date_from,
|
|
101
|
-
dateTo: input.date_to,
|
|
102
|
-
limit: input.limit,
|
|
103
|
-
offset: input.offset,
|
|
104
|
-
});
|
|
105
|
-
if (sessions.length === 0)
|
|
106
|
-
return '暂无会话记录。';
|
|
107
|
-
return sessions
|
|
108
|
-
.map(s => `[${s.createdAt}] ${s.title || '(无标题)'} (${s.messageCount} 条消息) [id: ${s.id}]`)
|
|
109
|
-
.join('\n');
|
|
110
|
-
}
|
|
111
|
-
case 'get_messages': {
|
|
112
|
-
if (!input.session_id)
|
|
113
|
-
return '请提供会话 ID(session_id)。';
|
|
114
|
-
const messages = await provider.getMessages(input.session_id, {
|
|
115
|
-
dateFrom: input.date_from,
|
|
116
|
-
dateTo: input.date_to,
|
|
117
|
-
limit: input.limit,
|
|
118
|
-
});
|
|
119
|
-
if (messages.length === 0)
|
|
120
|
-
return '该会话中未找到消息。';
|
|
121
|
-
return messages
|
|
122
|
-
.map(m => `[${m.createdAt}] ${m.role}: ${m.content}`)
|
|
123
|
-
.join('\n---\n');
|
|
124
|
-
}
|
|
125
|
-
default:
|
|
126
|
-
return `未知操作:${input.action}`;
|
|
127
|
-
}
|
|
128
|
-
},
|
|
129
|
-
});
|
|
130
|
-
//# sourceMappingURL=memory-tools.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"memory-tools.js","sourceRoot":"","sources":["../../src/memory/memory-tools.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,69 +0,0 @@
|
|
|
1
|
-
export type MemoryTarget = 'memory' | 'user';
|
|
2
|
-
export interface MemoryEntry {
|
|
3
|
-
id: string;
|
|
4
|
-
target: MemoryTarget;
|
|
5
|
-
agentName: string;
|
|
6
|
-
content: string;
|
|
7
|
-
createdAt: string;
|
|
8
|
-
updatedAt: string;
|
|
9
|
-
}
|
|
10
|
-
export interface MemoryStats {
|
|
11
|
-
used: number;
|
|
12
|
-
limit: number;
|
|
13
|
-
percentage: number;
|
|
14
|
-
}
|
|
15
|
-
export interface MemorySearchResult {
|
|
16
|
-
messageId: string;
|
|
17
|
-
content: string;
|
|
18
|
-
sessionId: string;
|
|
19
|
-
role: string;
|
|
20
|
-
createdAt: string;
|
|
21
|
-
}
|
|
22
|
-
export interface SessionInfo {
|
|
23
|
-
id: string;
|
|
24
|
-
title: string;
|
|
25
|
-
model?: string;
|
|
26
|
-
createdAt: string;
|
|
27
|
-
messageCount: number;
|
|
28
|
-
}
|
|
29
|
-
export interface MessageInfo {
|
|
30
|
-
id: string;
|
|
31
|
-
role: string;
|
|
32
|
-
content: string;
|
|
33
|
-
createdAt: string;
|
|
34
|
-
}
|
|
35
|
-
export interface MemoryProvider {
|
|
36
|
-
add(agentName: string, target: MemoryTarget, content: string): Promise<{
|
|
37
|
-
ok: boolean;
|
|
38
|
-
message: string;
|
|
39
|
-
}>;
|
|
40
|
-
replace(agentName: string, target: MemoryTarget, oldText: string, newText: string): Promise<{
|
|
41
|
-
ok: boolean;
|
|
42
|
-
message: string;
|
|
43
|
-
}>;
|
|
44
|
-
remove(agentName: string, target: MemoryTarget, text: string): Promise<{
|
|
45
|
-
ok: boolean;
|
|
46
|
-
message: string;
|
|
47
|
-
}>;
|
|
48
|
-
getAll(agentName: string, target: MemoryTarget): Promise<MemoryEntry[]>;
|
|
49
|
-
getStats(agentName: string, target: MemoryTarget): Promise<MemoryStats>;
|
|
50
|
-
renderSnapshot(agentName: string): Promise<string>;
|
|
51
|
-
search(query: string, opts?: {
|
|
52
|
-
limit?: number;
|
|
53
|
-
offset?: number;
|
|
54
|
-
dateFrom?: string;
|
|
55
|
-
dateTo?: string;
|
|
56
|
-
}): Promise<MemorySearchResult[]>;
|
|
57
|
-
listSessions(opts?: {
|
|
58
|
-
dateFrom?: string;
|
|
59
|
-
dateTo?: string;
|
|
60
|
-
limit?: number;
|
|
61
|
-
offset?: number;
|
|
62
|
-
}): Promise<SessionInfo[]>;
|
|
63
|
-
getMessages(sessionId: string, opts?: {
|
|
64
|
-
dateFrom?: string;
|
|
65
|
-
dateTo?: string;
|
|
66
|
-
limit?: number;
|
|
67
|
-
}): Promise<MessageInfo[]>;
|
|
68
|
-
}
|
|
69
|
-
//# sourceMappingURL=provider.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../src/memory/provider.ts"],"names":[],"mappings":"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"}
|
package/dist/memory/provider.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"provider.js","sourceRoot":"","sources":["../../src/memory/provider.ts"],"names":[],"mappings":""}
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* AgentTool - Spawn subagents for parallel/delegated work
|
|
3
|
-
*
|
|
4
|
-
* Supports built-in agents (Explore, Plan) and custom agent definitions.
|
|
5
|
-
* Agents run as nested query loops with their own context and tool sets.
|
|
6
|
-
* Subagent events are propagated to the parent stream via context.emitEvent.
|
|
7
|
-
*/
|
|
8
|
-
import type { ToolDefinition, AgentDefinition } from '../types.js';
|
|
9
|
-
/**
|
|
10
|
-
* Register agent definitions for the AgentTool to use.
|
|
11
|
-
*/
|
|
12
|
-
export declare function registerAgents(agents: Record<string, AgentDefinition>): void;
|
|
13
|
-
/**
|
|
14
|
-
* Clear registered agents.
|
|
15
|
-
*/
|
|
16
|
-
export declare function clearAgents(): void;
|
|
17
|
-
export declare const AgentTool: ToolDefinition;
|
|
18
|
-
//# sourceMappingURL=agent-tool.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"agent-tool.d.ts","sourceRoot":"","sources":["../../src/tools/agent-tool.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,cAAc,EAA2B,eAAe,EAAE,MAAM,aAAa,CAAA;AAQ3F;;GAEG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,GAAG,IAAI,CAE5E;AAED;;GAEG;AACH,wBAAgB,WAAW,IAAI,IAAI,CAElC;AAkBD,eAAO,MAAM,SAAS,EAAE,cAsIvB,CAAA"}
|
package/dist/tools/agent-tool.js
DELETED
|
@@ -1,161 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* AgentTool - Spawn subagents for parallel/delegated work
|
|
3
|
-
*
|
|
4
|
-
* Supports built-in agents (Explore, Plan) and custom agent definitions.
|
|
5
|
-
* Agents run as nested query loops with their own context and tool sets.
|
|
6
|
-
* Subagent events are propagated to the parent stream via context.emitEvent.
|
|
7
|
-
*/
|
|
8
|
-
import { QueryEngine } from '../engine.js';
|
|
9
|
-
import { getAllBaseTools, filterTools } from './index.js';
|
|
10
|
-
import { createProvider } from '../providers/index.js';
|
|
11
|
-
// Store for registered agent definitions
|
|
12
|
-
let registeredAgents = {};
|
|
13
|
-
/**
|
|
14
|
-
* Register agent definitions for the AgentTool to use.
|
|
15
|
-
*/
|
|
16
|
-
export function registerAgents(agents) {
|
|
17
|
-
registeredAgents = { ...registeredAgents, ...agents };
|
|
18
|
-
}
|
|
19
|
-
/**
|
|
20
|
-
* Clear registered agents.
|
|
21
|
-
*/
|
|
22
|
-
export function clearAgents() {
|
|
23
|
-
registeredAgents = {};
|
|
24
|
-
}
|
|
25
|
-
/**
|
|
26
|
-
* Built-in agent definitions.
|
|
27
|
-
*/
|
|
28
|
-
const BUILTIN_AGENTS = {
|
|
29
|
-
Explore: {
|
|
30
|
-
description: 'Fast agent for exploring codebases. Use for finding files, searching code, and answering questions about the codebase.',
|
|
31
|
-
prompt: 'You are a codebase exploration agent. Search through files and code to answer questions. Be thorough but efficient. Use Glob to find files, Grep to search content, and Read to examine files.',
|
|
32
|
-
tools: ['Read', 'Glob', 'Grep', 'Bash'],
|
|
33
|
-
},
|
|
34
|
-
Plan: {
|
|
35
|
-
description: 'Software architect agent for designing implementation plans. Returns step-by-step plans and identifies critical files.',
|
|
36
|
-
prompt: 'You are a software architect. Design implementation plans for the given task. Identify critical files, consider trade-offs, and provide step-by-step plans. Use search tools to understand the codebase before planning.',
|
|
37
|
-
tools: ['Read', 'Glob', 'Grep', 'Bash'],
|
|
38
|
-
},
|
|
39
|
-
};
|
|
40
|
-
export const AgentTool = {
|
|
41
|
-
name: 'Agent',
|
|
42
|
-
description: 'Launch a subagent to handle complex, multi-step tasks autonomously. Subagents have their own context and can run specialized tool sets.',
|
|
43
|
-
inputSchema: {
|
|
44
|
-
type: 'object',
|
|
45
|
-
properties: {
|
|
46
|
-
prompt: {
|
|
47
|
-
type: 'string',
|
|
48
|
-
description: 'The task for the agent to perform',
|
|
49
|
-
},
|
|
50
|
-
description: {
|
|
51
|
-
type: 'string',
|
|
52
|
-
description: 'A short (3-5 word) description of the task',
|
|
53
|
-
},
|
|
54
|
-
subagent_type: {
|
|
55
|
-
type: 'string',
|
|
56
|
-
description: 'The type of agent to use (e.g., "Explore", "Plan", or a custom agent name)',
|
|
57
|
-
},
|
|
58
|
-
model: {
|
|
59
|
-
type: 'string',
|
|
60
|
-
description: 'Optional model override for this agent',
|
|
61
|
-
},
|
|
62
|
-
name: {
|
|
63
|
-
type: 'string',
|
|
64
|
-
description: 'Name for the spawned agent',
|
|
65
|
-
},
|
|
66
|
-
run_in_background: {
|
|
67
|
-
type: 'boolean',
|
|
68
|
-
description: 'Whether to run in background',
|
|
69
|
-
},
|
|
70
|
-
},
|
|
71
|
-
required: ['prompt', 'description'],
|
|
72
|
-
},
|
|
73
|
-
isReadOnly: () => false,
|
|
74
|
-
isConcurrencySafe: () => false,
|
|
75
|
-
isEnabled: () => true,
|
|
76
|
-
async prompt() {
|
|
77
|
-
return 'Launch a subagent to handle complex tasks autonomously.';
|
|
78
|
-
},
|
|
79
|
-
async call(input, context) {
|
|
80
|
-
const agentType = input.subagent_type || 'general-purpose';
|
|
81
|
-
const agentDef = registeredAgents[agentType] || BUILTIN_AGENTS[agentType];
|
|
82
|
-
let tools = getAllBaseTools();
|
|
83
|
-
if (agentDef?.tools) {
|
|
84
|
-
tools = filterTools(tools, agentDef.tools);
|
|
85
|
-
}
|
|
86
|
-
tools = tools.filter(t => t.name !== 'Agent');
|
|
87
|
-
tools = tools.filter(t => t.name !== 'Memory');
|
|
88
|
-
const systemPrompt = agentDef?.prompt ||
|
|
89
|
-
'You are a helpful assistant. Complete the given task using the available tools.';
|
|
90
|
-
const subModel = input.model || context.model || process.env.OPENAGENT_MODEL || 'claude-sonnet-4-6';
|
|
91
|
-
const provider = context.provider ?? createProvider((context.apiType || process.env.OPENAGENT_API_TYPE) || 'anthropic-messages', {
|
|
92
|
-
apiKey: process.env.OPENAGENT_API_KEY,
|
|
93
|
-
baseURL: process.env.OPENAGENT_BASE_URL,
|
|
94
|
-
});
|
|
95
|
-
const subSessionId = crypto.randomUUID();
|
|
96
|
-
const engine = new QueryEngine({
|
|
97
|
-
cwd: context.cwd,
|
|
98
|
-
model: subModel,
|
|
99
|
-
provider,
|
|
100
|
-
tools,
|
|
101
|
-
systemPrompt,
|
|
102
|
-
agentId: agentType,
|
|
103
|
-
maxTurns: agentDef?.maxTurns || 10,
|
|
104
|
-
maxTokens: context.maxTokens ?? 65536,
|
|
105
|
-
canUseTool: async () => ({ behavior: 'allow' }),
|
|
106
|
-
includePartialMessages: true,
|
|
107
|
-
sessionId: subSessionId,
|
|
108
|
-
allowedSkills: agentDef?.skills,
|
|
109
|
-
settingSources: context.settingSources,
|
|
110
|
-
abortSignal: context.abortSignal,
|
|
111
|
-
});
|
|
112
|
-
const emitEvent = context.emitEvent;
|
|
113
|
-
let resultText = '';
|
|
114
|
-
let toolCalls = [];
|
|
115
|
-
try {
|
|
116
|
-
for await (const event of engine.submitMessage(input.prompt)) {
|
|
117
|
-
if (context.abortSignal?.aborted)
|
|
118
|
-
break;
|
|
119
|
-
if (event.type === 'assistant') {
|
|
120
|
-
for (const block of event.message.content) {
|
|
121
|
-
if ('text' in block && block.text) {
|
|
122
|
-
resultText = block.text;
|
|
123
|
-
}
|
|
124
|
-
if ('name' in block) {
|
|
125
|
-
toolCalls.push(block.name);
|
|
126
|
-
}
|
|
127
|
-
}
|
|
128
|
-
}
|
|
129
|
-
if (emitEvent) {
|
|
130
|
-
const propagatedTypes = ['assistant', 'partial_message', 'tool_result', 'system'];
|
|
131
|
-
if (propagatedTypes.includes(event.type)) {
|
|
132
|
-
emitEvent({
|
|
133
|
-
type: 'subagent',
|
|
134
|
-
parent_tool_use_id: '',
|
|
135
|
-
session_id: subSessionId,
|
|
136
|
-
event: event,
|
|
137
|
-
});
|
|
138
|
-
}
|
|
139
|
-
}
|
|
140
|
-
}
|
|
141
|
-
}
|
|
142
|
-
catch (err) {
|
|
143
|
-
return {
|
|
144
|
-
type: 'tool_result',
|
|
145
|
-
tool_use_id: '',
|
|
146
|
-
content: `Subagent error: ${err.message}`,
|
|
147
|
-
is_error: true,
|
|
148
|
-
};
|
|
149
|
-
}
|
|
150
|
-
const output = resultText || '(Subagent completed with no text output)';
|
|
151
|
-
const toolSummary = toolCalls.length > 0
|
|
152
|
-
? `\n[Tools used: ${toolCalls.join(', ')}]`
|
|
153
|
-
: '';
|
|
154
|
-
return {
|
|
155
|
-
type: 'tool_result',
|
|
156
|
-
tool_use_id: '',
|
|
157
|
-
content: output + toolSummary,
|
|
158
|
-
};
|
|
159
|
-
},
|
|
160
|
-
};
|
|
161
|
-
//# sourceMappingURL=agent-tool.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"agent-tool.js","sourceRoot":"","sources":["../../src/tools/agent-tool.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Task Management Tools
|
|
3
|
-
*
|
|
4
|
-
* TaskCreate, TaskList, TaskUpdate, TaskGet, TaskStop, TaskOutput
|
|
5
|
-
*
|
|
6
|
-
* Provides in-memory task tracking for agent coordination.
|
|
7
|
-
* Tasks persist across turns within a session.
|
|
8
|
-
*/
|
|
9
|
-
import type { ToolDefinition } from '../types.js';
|
|
10
|
-
/**
|
|
11
|
-
* Task status.
|
|
12
|
-
*/
|
|
13
|
-
export type TaskStatus = 'pending' | 'in_progress' | 'completed' | 'failed' | 'cancelled';
|
|
14
|
-
/**
|
|
15
|
-
* Task entry.
|
|
16
|
-
*/
|
|
17
|
-
export interface Task {
|
|
18
|
-
id: string;
|
|
19
|
-
subject: string;
|
|
20
|
-
description?: string;
|
|
21
|
-
status: TaskStatus;
|
|
22
|
-
owner?: string;
|
|
23
|
-
createdAt: string;
|
|
24
|
-
updatedAt: string;
|
|
25
|
-
output?: string;
|
|
26
|
-
blockedBy?: string[];
|
|
27
|
-
blocks?: string[];
|
|
28
|
-
metadata?: Record<string, unknown>;
|
|
29
|
-
}
|
|
30
|
-
/**
|
|
31
|
-
* Get all tasks.
|
|
32
|
-
*/
|
|
33
|
-
export declare function getAllTasks(): Task[];
|
|
34
|
-
/**
|
|
35
|
-
* Get a task by ID.
|
|
36
|
-
*/
|
|
37
|
-
export declare function getTask(id: string): Task | undefined;
|
|
38
|
-
/**
|
|
39
|
-
* Clear all tasks (for session reset).
|
|
40
|
-
*/
|
|
41
|
-
export declare function clearTasks(): void;
|
|
42
|
-
export declare const TaskCreateTool: ToolDefinition;
|
|
43
|
-
export declare const TaskListTool: ToolDefinition;
|
|
44
|
-
export declare const TaskUpdateTool: ToolDefinition;
|
|
45
|
-
export declare const TaskGetTool: ToolDefinition;
|
|
46
|
-
export declare const TaskStopTool: ToolDefinition;
|
|
47
|
-
export declare const TaskOutputTool: ToolDefinition;
|
|
48
|
-
//# sourceMappingURL=task-tools.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"task-tools.d.ts","sourceRoot":"","sources":["../../src/tools/task-tools.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAc,MAAM,aAAa,CAAA;AAE7D;;GAEG;AACH,MAAM,MAAM,UAAU,GAAG,SAAS,GAAG,aAAa,GAAG,WAAW,GAAG,QAAQ,GAAG,WAAW,CAAA;AAEzF;;GAEG;AACH,MAAM,WAAW,IAAI;IACnB,EAAE,EAAE,MAAM,CAAA;IACV,OAAO,EAAE,MAAM,CAAA;IACf,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,MAAM,EAAE,UAAU,CAAA;IAClB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,MAAM,CAAA;IACjB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,SAAS,CAAC,EAAE,MAAM,EAAE,CAAA;IACpB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAA;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CACnC;AASD;;GAEG;AACH,wBAAgB,WAAW,IAAI,IAAI,EAAE,CAEpC;AAED;;GAEG;AACH,wBAAgB,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAEpD;AAED;;GAEG;AACH,wBAAgB,UAAU,IAAI,IAAI,CAGjC;AAMD,eAAO,MAAM,cAAc,EAAE,cAoC5B,CAAA;AAMD,eAAO,MAAM,YAAY,EAAE,cAsC1B,CAAA;AAMD,eAAO,MAAM,cAAc,EAAE,cAoC5B,CAAA;AAMD,eAAO,MAAM,WAAW,EAAE,cA0BzB,CAAA;AAMD,eAAO,MAAM,YAAY,EAAE,cA+B1B,CAAA;AAMD,eAAO,MAAM,cAAc,EAAE,cA0B5B,CAAA"}
|
package/dist/tools/task-tools.js
DELETED
|
@@ -1,242 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Task Management Tools
|
|
3
|
-
*
|
|
4
|
-
* TaskCreate, TaskList, TaskUpdate, TaskGet, TaskStop, TaskOutput
|
|
5
|
-
*
|
|
6
|
-
* Provides in-memory task tracking for agent coordination.
|
|
7
|
-
* Tasks persist across turns within a session.
|
|
8
|
-
*/
|
|
9
|
-
/**
|
|
10
|
-
* Global task store (shared across tools in a session).
|
|
11
|
-
*/
|
|
12
|
-
const taskStore = new Map();
|
|
13
|
-
let taskCounter = 0;
|
|
14
|
-
/**
|
|
15
|
-
* Get all tasks.
|
|
16
|
-
*/
|
|
17
|
-
export function getAllTasks() {
|
|
18
|
-
return Array.from(taskStore.values());
|
|
19
|
-
}
|
|
20
|
-
/**
|
|
21
|
-
* Get a task by ID.
|
|
22
|
-
*/
|
|
23
|
-
export function getTask(id) {
|
|
24
|
-
return taskStore.get(id);
|
|
25
|
-
}
|
|
26
|
-
/**
|
|
27
|
-
* Clear all tasks (for session reset).
|
|
28
|
-
*/
|
|
29
|
-
export function clearTasks() {
|
|
30
|
-
taskStore.clear();
|
|
31
|
-
taskCounter = 0;
|
|
32
|
-
}
|
|
33
|
-
// ============================================================================
|
|
34
|
-
// TaskCreateTool
|
|
35
|
-
// ============================================================================
|
|
36
|
-
export const TaskCreateTool = {
|
|
37
|
-
name: 'TaskCreate',
|
|
38
|
-
description: 'Create a new task for tracking work progress. Tasks help organize multi-step operations.',
|
|
39
|
-
inputSchema: {
|
|
40
|
-
type: 'object',
|
|
41
|
-
properties: {
|
|
42
|
-
subject: { type: 'string', description: 'Short task title' },
|
|
43
|
-
description: { type: 'string', description: 'Detailed task description' },
|
|
44
|
-
owner: { type: 'string', description: 'Task owner/assignee' },
|
|
45
|
-
status: { type: 'string', enum: ['pending', 'in_progress'], description: 'Initial status' },
|
|
46
|
-
},
|
|
47
|
-
required: ['subject'],
|
|
48
|
-
},
|
|
49
|
-
isReadOnly: () => false,
|
|
50
|
-
isConcurrencySafe: () => true,
|
|
51
|
-
isEnabled: () => true,
|
|
52
|
-
async prompt() { return 'Create a task for tracking progress.'; },
|
|
53
|
-
async call(input) {
|
|
54
|
-
const id = `task_${++taskCounter}`;
|
|
55
|
-
const task = {
|
|
56
|
-
id,
|
|
57
|
-
subject: input.subject,
|
|
58
|
-
description: input.description,
|
|
59
|
-
status: input.status || 'pending',
|
|
60
|
-
owner: input.owner,
|
|
61
|
-
createdAt: new Date().toISOString(),
|
|
62
|
-
updatedAt: new Date().toISOString(),
|
|
63
|
-
};
|
|
64
|
-
taskStore.set(id, task);
|
|
65
|
-
return {
|
|
66
|
-
type: 'tool_result',
|
|
67
|
-
tool_use_id: '',
|
|
68
|
-
content: `Task created: ${id} - "${task.subject}" (${task.status})`,
|
|
69
|
-
};
|
|
70
|
-
},
|
|
71
|
-
};
|
|
72
|
-
// ============================================================================
|
|
73
|
-
// TaskListTool
|
|
74
|
-
// ============================================================================
|
|
75
|
-
export const TaskListTool = {
|
|
76
|
-
name: 'TaskList',
|
|
77
|
-
description: 'List all tasks with their status, ownership, and dependencies.',
|
|
78
|
-
inputSchema: {
|
|
79
|
-
type: 'object',
|
|
80
|
-
properties: {
|
|
81
|
-
status: { type: 'string', description: 'Filter by status' },
|
|
82
|
-
owner: { type: 'string', description: 'Filter by owner' },
|
|
83
|
-
},
|
|
84
|
-
},
|
|
85
|
-
isReadOnly: () => true,
|
|
86
|
-
isConcurrencySafe: () => true,
|
|
87
|
-
isEnabled: () => true,
|
|
88
|
-
async prompt() { return 'List tasks.'; },
|
|
89
|
-
async call(input) {
|
|
90
|
-
let tasks = getAllTasks();
|
|
91
|
-
if (input.status) {
|
|
92
|
-
tasks = tasks.filter(t => t.status === input.status);
|
|
93
|
-
}
|
|
94
|
-
if (input.owner) {
|
|
95
|
-
tasks = tasks.filter(t => t.owner === input.owner);
|
|
96
|
-
}
|
|
97
|
-
if (tasks.length === 0) {
|
|
98
|
-
return { type: 'tool_result', tool_use_id: '', content: 'No tasks found.' };
|
|
99
|
-
}
|
|
100
|
-
const lines = tasks.map(t => `[${t.id}] ${t.status.toUpperCase()} - ${t.subject}${t.owner ? ` (owner: ${t.owner})` : ''}`);
|
|
101
|
-
return {
|
|
102
|
-
type: 'tool_result',
|
|
103
|
-
tool_use_id: '',
|
|
104
|
-
content: lines.join('\n'),
|
|
105
|
-
};
|
|
106
|
-
},
|
|
107
|
-
};
|
|
108
|
-
// ============================================================================
|
|
109
|
-
// TaskUpdateTool
|
|
110
|
-
// ============================================================================
|
|
111
|
-
export const TaskUpdateTool = {
|
|
112
|
-
name: 'TaskUpdate',
|
|
113
|
-
description: 'Update a task\'s status, description, or other properties.',
|
|
114
|
-
inputSchema: {
|
|
115
|
-
type: 'object',
|
|
116
|
-
properties: {
|
|
117
|
-
id: { type: 'string', description: 'Task ID' },
|
|
118
|
-
status: { type: 'string', enum: ['pending', 'in_progress', 'completed', 'failed', 'cancelled'] },
|
|
119
|
-
description: { type: 'string', description: 'Updated description' },
|
|
120
|
-
owner: { type: 'string', description: 'New owner' },
|
|
121
|
-
output: { type: 'string', description: 'Task output/result' },
|
|
122
|
-
},
|
|
123
|
-
required: ['id'],
|
|
124
|
-
},
|
|
125
|
-
isReadOnly: () => false,
|
|
126
|
-
isConcurrencySafe: () => true,
|
|
127
|
-
isEnabled: () => true,
|
|
128
|
-
async prompt() { return 'Update a task.'; },
|
|
129
|
-
async call(input) {
|
|
130
|
-
const task = taskStore.get(input.id);
|
|
131
|
-
if (!task) {
|
|
132
|
-
return { type: 'tool_result', tool_use_id: '', content: `Task not found: ${input.id}`, is_error: true };
|
|
133
|
-
}
|
|
134
|
-
if (input.status)
|
|
135
|
-
task.status = input.status;
|
|
136
|
-
if (input.description)
|
|
137
|
-
task.description = input.description;
|
|
138
|
-
if (input.owner)
|
|
139
|
-
task.owner = input.owner;
|
|
140
|
-
if (input.output)
|
|
141
|
-
task.output = input.output;
|
|
142
|
-
task.updatedAt = new Date().toISOString();
|
|
143
|
-
return {
|
|
144
|
-
type: 'tool_result',
|
|
145
|
-
tool_use_id: '',
|
|
146
|
-
content: `Task updated: ${task.id} - ${task.status} - "${task.subject}"`,
|
|
147
|
-
};
|
|
148
|
-
},
|
|
149
|
-
};
|
|
150
|
-
// ============================================================================
|
|
151
|
-
// TaskGetTool
|
|
152
|
-
// ============================================================================
|
|
153
|
-
export const TaskGetTool = {
|
|
154
|
-
name: 'TaskGet',
|
|
155
|
-
description: 'Get full details of a specific task.',
|
|
156
|
-
inputSchema: {
|
|
157
|
-
type: 'object',
|
|
158
|
-
properties: {
|
|
159
|
-
id: { type: 'string', description: 'Task ID' },
|
|
160
|
-
},
|
|
161
|
-
required: ['id'],
|
|
162
|
-
},
|
|
163
|
-
isReadOnly: () => true,
|
|
164
|
-
isConcurrencySafe: () => true,
|
|
165
|
-
isEnabled: () => true,
|
|
166
|
-
async prompt() { return 'Get task details.'; },
|
|
167
|
-
async call(input) {
|
|
168
|
-
const task = taskStore.get(input.id);
|
|
169
|
-
if (!task) {
|
|
170
|
-
return { type: 'tool_result', tool_use_id: '', content: `Task not found: ${input.id}`, is_error: true };
|
|
171
|
-
}
|
|
172
|
-
return {
|
|
173
|
-
type: 'tool_result',
|
|
174
|
-
tool_use_id: '',
|
|
175
|
-
content: JSON.stringify(task, null, 2),
|
|
176
|
-
};
|
|
177
|
-
},
|
|
178
|
-
};
|
|
179
|
-
// ============================================================================
|
|
180
|
-
// TaskStopTool
|
|
181
|
-
// ============================================================================
|
|
182
|
-
export const TaskStopTool = {
|
|
183
|
-
name: 'TaskStop',
|
|
184
|
-
description: 'Stop/cancel a running task.',
|
|
185
|
-
inputSchema: {
|
|
186
|
-
type: 'object',
|
|
187
|
-
properties: {
|
|
188
|
-
id: { type: 'string', description: 'Task ID to stop' },
|
|
189
|
-
reason: { type: 'string', description: 'Reason for stopping' },
|
|
190
|
-
},
|
|
191
|
-
required: ['id'],
|
|
192
|
-
},
|
|
193
|
-
isReadOnly: () => false,
|
|
194
|
-
isConcurrencySafe: () => true,
|
|
195
|
-
isEnabled: () => true,
|
|
196
|
-
async prompt() { return 'Stop a task.'; },
|
|
197
|
-
async call(input) {
|
|
198
|
-
const task = taskStore.get(input.id);
|
|
199
|
-
if (!task) {
|
|
200
|
-
return { type: 'tool_result', tool_use_id: '', content: `Task not found: ${input.id}`, is_error: true };
|
|
201
|
-
}
|
|
202
|
-
task.status = 'cancelled';
|
|
203
|
-
task.updatedAt = new Date().toISOString();
|
|
204
|
-
if (input.reason)
|
|
205
|
-
task.output = `Stopped: ${input.reason}`;
|
|
206
|
-
return {
|
|
207
|
-
type: 'tool_result',
|
|
208
|
-
tool_use_id: '',
|
|
209
|
-
content: `Task stopped: ${task.id}`,
|
|
210
|
-
};
|
|
211
|
-
},
|
|
212
|
-
};
|
|
213
|
-
// ============================================================================
|
|
214
|
-
// TaskOutputTool
|
|
215
|
-
// ============================================================================
|
|
216
|
-
export const TaskOutputTool = {
|
|
217
|
-
name: 'TaskOutput',
|
|
218
|
-
description: 'Get the output/result of a task.',
|
|
219
|
-
inputSchema: {
|
|
220
|
-
type: 'object',
|
|
221
|
-
properties: {
|
|
222
|
-
id: { type: 'string', description: 'Task ID' },
|
|
223
|
-
},
|
|
224
|
-
required: ['id'],
|
|
225
|
-
},
|
|
226
|
-
isReadOnly: () => true,
|
|
227
|
-
isConcurrencySafe: () => true,
|
|
228
|
-
isEnabled: () => true,
|
|
229
|
-
async prompt() { return 'Get task output.'; },
|
|
230
|
-
async call(input) {
|
|
231
|
-
const task = taskStore.get(input.id);
|
|
232
|
-
if (!task) {
|
|
233
|
-
return { type: 'tool_result', tool_use_id: '', content: `Task not found: ${input.id}`, is_error: true };
|
|
234
|
-
}
|
|
235
|
-
return {
|
|
236
|
-
type: 'tool_result',
|
|
237
|
-
tool_use_id: '',
|
|
238
|
-
content: task.output || '(no output yet)',
|
|
239
|
-
};
|
|
240
|
-
},
|
|
241
|
-
};
|
|
242
|
-
//# sourceMappingURL=task-tools.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"task-tools.js","sourceRoot":"","sources":["../../src/tools/task-tools.ts"],"names":[],"mappings":"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"}
|