sema-core 1.0.11 → 1.0.13
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 +6 -11
- package/dist/core/Conversation.d.ts +6 -1
- package/dist/core/Conversation.d.ts.map +1 -1
- package/dist/core/Conversation.js +72 -28
- package/dist/core/Conversation.js.map +1 -1
- package/dist/core/RunTools.d.ts.map +1 -1
- package/dist/core/RunTools.js +1 -1
- package/dist/core/RunTools.js.map +1 -1
- package/dist/core/SemaCore.d.ts +16 -0
- package/dist/core/SemaCore.d.ts.map +1 -1
- package/dist/core/SemaCore.js +30 -3
- package/dist/core/SemaCore.js.map +1 -1
- package/dist/core/SemaEngine.d.ts +2 -18
- package/dist/core/SemaEngine.d.ts.map +1 -1
- package/dist/core/SemaEngine.js +101 -131
- package/dist/core/SemaEngine.js.map +1 -1
- package/dist/events/EventSystem.d.ts.map +1 -1
- package/dist/events/EventSystem.js +6 -2
- package/dist/events/EventSystem.js.map +1 -1
- package/dist/events/types.d.ts +60 -13
- package/dist/events/types.d.ts.map +1 -1
- package/dist/events/types.js +0 -1
- package/dist/events/types.js.map +1 -1
- package/dist/manager/ConfManager.d.ts.map +1 -1
- package/dist/manager/ConfManager.js +3 -1
- package/dist/manager/ConfManager.js.map +1 -1
- package/dist/manager/CronManager.d.ts +52 -0
- package/dist/manager/CronManager.d.ts.map +1 -0
- package/dist/manager/CronManager.js +426 -0
- package/dist/manager/CronManager.js.map +1 -0
- package/dist/manager/PermissionManager.d.ts +1 -1
- package/dist/manager/PermissionManager.d.ts.map +1 -1
- package/dist/manager/PermissionManager.js +63 -12
- package/dist/manager/PermissionManager.js.map +1 -1
- package/dist/manager/StateManager.d.ts +79 -11
- package/dist/manager/StateManager.d.ts.map +1 -1
- package/dist/manager/StateManager.js +287 -4
- package/dist/manager/StateManager.js.map +1 -1
- package/dist/manager/TaskManager.d.ts +106 -0
- package/dist/manager/TaskManager.d.ts.map +1 -0
- package/dist/manager/TaskManager.js +664 -0
- package/dist/manager/TaskManager.js.map +1 -0
- package/dist/services/agents/defaultBuiltInAgentsConfs.js +3 -3
- package/dist/services/agents/defaultBuiltInAgentsConfs.js.map +1 -1
- package/dist/services/agents/systemReminder.d.ts.map +1 -1
- package/dist/services/agents/systemReminder.js +8 -118
- package/dist/services/agents/systemReminder.js.map +1 -1
- package/dist/services/api/adapt/anthropic.js +2 -2
- package/dist/services/api/adapt/anthropic.js.map +1 -1
- package/dist/services/api/adapt/openai.js +2 -2
- package/dist/services/api/adapt/openai.js.map +1 -1
- package/dist/services/api/adapt/util.d.ts +1 -1
- package/dist/services/api/adapt/util.d.ts.map +1 -1
- package/dist/services/api/adapt/util.js +2 -2
- package/dist/services/api/adapt/util.js.map +1 -1
- package/dist/services/api/cache.d.ts.map +1 -1
- package/dist/services/api/cache.js +1 -3
- package/dist/services/api/cache.js.map +1 -1
- package/dist/services/api/queryLLM.d.ts.map +1 -1
- package/dist/services/api/queryLLM.js +5 -0
- package/dist/services/api/queryLLM.js.map +1 -1
- package/dist/services/commands/runCommand.d.ts.map +1 -1
- package/dist/services/commands/runCommand.js +12 -0
- package/dist/services/commands/runCommand.js.map +1 -1
- package/dist/services/mcp/MCPManager.d.ts.map +1 -1
- package/dist/services/mcp/MCPManager.js +6 -1
- package/dist/services/mcp/MCPManager.js.map +1 -1
- package/dist/services/plugins/pluginsManager.d.ts.map +1 -1
- package/dist/services/plugins/pluginsManager.js +8 -1
- package/dist/services/plugins/pluginsManager.js.map +1 -1
- package/dist/services/rules/rulesManager.d.ts +51 -0
- package/dist/services/rules/rulesManager.d.ts.map +1 -0
- package/dist/services/rules/rulesManager.js +192 -0
- package/dist/services/rules/rulesManager.js.map +1 -0
- package/dist/tools/Agent/Agent.d.ts +19 -11
- package/dist/tools/Agent/Agent.d.ts.map +1 -1
- package/dist/tools/Agent/Agent.js +249 -72
- package/dist/tools/Agent/Agent.js.map +1 -1
- package/dist/tools/Agent/prompt.d.ts.map +1 -1
- package/dist/tools/Agent/prompt.js +7 -9
- package/dist/tools/Agent/prompt.js.map +1 -1
- package/dist/tools/Bash/Bash.d.ts +21 -11
- package/dist/tools/Bash/Bash.d.ts.map +1 -1
- package/dist/tools/Bash/Bash.js +74 -17
- package/dist/tools/Bash/Bash.js.map +1 -1
- package/dist/tools/Bash/prompt.d.ts.map +1 -1
- package/dist/tools/Bash/prompt.js +53 -70
- package/dist/tools/Bash/prompt.js.map +1 -1
- package/dist/tools/Bash/utils.d.ts +5 -1
- package/dist/tools/Bash/utils.d.ts.map +1 -1
- package/dist/tools/Bash/utils.js +24 -4
- package/dist/tools/Bash/utils.js.map +1 -1
- package/dist/tools/CronCreate/CronCreate.d.ts +68 -0
- package/dist/tools/CronCreate/CronCreate.d.ts.map +1 -0
- package/dist/tools/CronCreate/CronCreate.js +75 -0
- package/dist/tools/CronCreate/CronCreate.js.map +1 -0
- package/dist/tools/CronCreate/prompt.d.ts +3 -0
- package/dist/tools/CronCreate/prompt.d.ts.map +1 -0
- package/dist/tools/CronCreate/prompt.js +41 -0
- package/dist/tools/CronCreate/prompt.js.map +1 -0
- package/dist/tools/CronDelete/CronDelete.d.ts +45 -0
- package/dist/tools/CronDelete/CronDelete.d.ts.map +1 -0
- package/dist/tools/CronDelete/CronDelete.js +51 -0
- package/dist/tools/CronDelete/CronDelete.js.map +1 -0
- package/dist/tools/CronDelete/prompt.d.ts +3 -0
- package/dist/tools/CronDelete/prompt.d.ts.map +1 -0
- package/dist/tools/CronDelete/prompt.js +6 -0
- package/dist/tools/CronDelete/prompt.js.map +1 -0
- package/dist/tools/CronList/CronList.d.ts +33 -0
- package/dist/tools/CronList/CronList.d.ts.map +1 -0
- package/dist/tools/CronList/CronList.js +55 -0
- package/dist/tools/CronList/CronList.js.map +1 -0
- package/dist/tools/CronList/prompt.d.ts +3 -0
- package/dist/tools/CronList/prompt.d.ts.map +1 -0
- package/dist/tools/CronList/prompt.js +6 -0
- package/dist/tools/CronList/prompt.js.map +1 -0
- package/dist/tools/Edit/Edit.d.ts.map +1 -1
- package/dist/tools/Edit/Edit.js +7 -3
- package/dist/tools/Edit/Edit.js.map +1 -1
- package/dist/tools/Edit/utils.d.ts.map +1 -1
- package/dist/tools/Edit/utils.js +14 -5
- package/dist/tools/Edit/utils.js.map +1 -1
- package/dist/tools/Grep/Grep.d.ts +4 -4
- package/dist/tools/NotebookEdit/NotebookEdit.js +1 -1
- package/dist/tools/NotebookEdit/NotebookEdit.js.map +1 -1
- package/dist/tools/Read/Read.d.ts +74 -3
- package/dist/tools/Read/Read.d.ts.map +1 -1
- package/dist/tools/Read/Read.js +188 -18
- package/dist/tools/Read/Read.js.map +1 -1
- package/dist/tools/Read/prompt.d.ts +1 -1
- package/dist/tools/Read/prompt.d.ts.map +1 -1
- package/dist/tools/Read/prompt.js +2 -1
- package/dist/tools/Read/prompt.js.map +1 -1
- package/dist/tools/Skill/Skill.d.ts +2 -1
- package/dist/tools/Skill/Skill.d.ts.map +1 -1
- package/dist/tools/Skill/Skill.js +3 -2
- package/dist/tools/Skill/Skill.js.map +1 -1
- package/dist/tools/TaskCreate/TaskCreate.d.ts +54 -0
- package/dist/tools/TaskCreate/TaskCreate.d.ts.map +1 -0
- package/dist/tools/TaskCreate/TaskCreate.js +51 -0
- package/dist/tools/TaskCreate/TaskCreate.js.map +1 -0
- package/dist/tools/TaskCreate/prompt.d.ts +3 -0
- package/dist/tools/TaskCreate/prompt.d.ts.map +1 -0
- package/dist/tools/TaskCreate/prompt.js +45 -0
- package/dist/tools/TaskCreate/prompt.js.map +1 -0
- package/dist/tools/TaskGet/TaskGet.d.ts +34 -0
- package/dist/tools/TaskGet/TaskGet.d.ts.map +1 -0
- package/dist/tools/TaskGet/TaskGet.js +57 -0
- package/dist/tools/TaskGet/TaskGet.js.map +1 -0
- package/dist/tools/TaskGet/prompt.d.ts +3 -0
- package/dist/tools/TaskGet/prompt.d.ts.map +1 -0
- package/dist/tools/TaskGet/prompt.js +26 -0
- package/dist/tools/TaskGet/prompt.js.map +1 -0
- package/dist/tools/TaskList/TaskList.d.ts +27 -0
- package/dist/tools/TaskList/TaskList.d.ts.map +1 -0
- package/dist/tools/TaskList/TaskList.js +56 -0
- package/dist/tools/TaskList/TaskList.js.map +1 -0
- package/dist/tools/TaskList/prompt.d.ts +3 -0
- package/dist/tools/TaskList/prompt.d.ts.map +1 -0
- package/dist/tools/TaskList/prompt.js +25 -0
- package/dist/tools/TaskList/prompt.js.map +1 -0
- package/dist/tools/TaskOutput/TaskOutput.d.ts +58 -0
- package/dist/tools/TaskOutput/TaskOutput.d.ts.map +1 -0
- package/dist/tools/TaskOutput/TaskOutput.js +95 -0
- package/dist/tools/TaskOutput/TaskOutput.js.map +1 -0
- package/dist/tools/TaskStop/TaskStop.d.ts +50 -0
- package/dist/tools/TaskStop/TaskStop.d.ts.map +1 -0
- package/dist/tools/TaskStop/TaskStop.js +69 -0
- package/dist/tools/TaskStop/TaskStop.js.map +1 -0
- package/dist/tools/TaskUpdate/TaskUpdate.d.ts +88 -0
- package/dist/tools/TaskUpdate/TaskUpdate.d.ts.map +1 -0
- package/dist/tools/TaskUpdate/TaskUpdate.js +115 -0
- package/dist/tools/TaskUpdate/TaskUpdate.js.map +1 -0
- package/dist/tools/TaskUpdate/prompt.d.ts +3 -0
- package/dist/tools/TaskUpdate/prompt.d.ts.map +1 -0
- package/dist/tools/TaskUpdate/prompt.js +80 -0
- package/dist/tools/TaskUpdate/prompt.js.map +1 -0
- package/dist/tools/WebFetch/WebFetch.d.ts +62 -0
- package/dist/tools/WebFetch/WebFetch.d.ts.map +1 -0
- package/dist/tools/WebFetch/WebFetch.js +143 -0
- package/dist/tools/WebFetch/WebFetch.js.map +1 -0
- package/dist/tools/WebFetch/prompt.d.ts +4 -0
- package/dist/tools/WebFetch/prompt.d.ts.map +1 -0
- package/dist/tools/WebFetch/prompt.js +38 -0
- package/dist/tools/WebFetch/prompt.js.map +1 -0
- package/dist/tools/WebFetch/utils.d.ts +20 -0
- package/dist/tools/WebFetch/utils.d.ts.map +1 -0
- package/dist/tools/WebFetch/utils.js +223 -0
- package/dist/tools/WebFetch/utils.js.map +1 -0
- package/dist/tools/Write/Write.js +1 -1
- package/dist/tools/Write/Write.js.map +1 -1
- package/dist/tools/base/Tool.d.ts +1 -0
- package/dist/tools/base/Tool.d.ts.map +1 -1
- package/dist/tools/base/tools.d.ts +4 -2
- package/dist/tools/base/tools.d.ts.map +1 -1
- package/dist/tools/base/tools.js +61 -14
- package/dist/tools/base/tools.js.map +1 -1
- package/dist/types/cron.d.ts +21 -0
- package/dist/types/cron.d.ts.map +1 -0
- package/dist/types/cron.js +6 -0
- package/dist/types/cron.js.map +1 -0
- package/dist/types/index.d.ts +9 -1
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js +4 -2
- package/dist/types/index.js.map +1 -1
- package/dist/types/rule.d.ts +8 -0
- package/dist/types/rule.d.ts.map +1 -0
- package/dist/types/rule.js +3 -0
- package/dist/types/rule.js.map +1 -0
- package/dist/types/task.d.ts +93 -0
- package/dist/types/task.d.ts.map +1 -0
- package/dist/types/task.js +3 -0
- package/dist/types/task.js.map +1 -0
- package/dist/types/todoTask.d.ts +29 -0
- package/dist/types/todoTask.d.ts.map +1 -0
- package/dist/types/todoTask.js +6 -0
- package/dist/types/todoTask.js.map +1 -0
- package/dist/util/assembleTools.d.ts +6 -0
- package/dist/util/assembleTools.d.ts.map +1 -0
- package/dist/util/assembleTools.js +17 -0
- package/dist/util/assembleTools.js.map +1 -0
- package/dist/util/btw.d.ts +6 -0
- package/dist/util/btw.d.ts.map +1 -0
- package/dist/util/btw.js +80 -0
- package/dist/util/btw.js.map +1 -0
- package/dist/util/compact.d.ts +16 -4
- package/dist/util/compact.d.ts.map +1 -1
- package/dist/util/compact.js +12 -18
- package/dist/util/compact.js.map +1 -1
- package/dist/util/cron.d.ts +17 -0
- package/dist/util/cron.d.ts.map +1 -0
- package/dist/util/cron.js +82 -0
- package/dist/util/cron.js.map +1 -0
- package/dist/util/file.d.ts +16 -0
- package/dist/util/file.d.ts.map +1 -1
- package/dist/util/file.js +55 -0
- package/dist/util/file.js.map +1 -1
- package/dist/util/fileReference.d.ts.map +1 -1
- package/dist/util/fileReference.js +10 -1
- package/dist/util/fileReference.js.map +1 -1
- package/dist/util/format.d.ts +6 -0
- package/dist/util/format.d.ts.map +1 -1
- package/dist/util/format.js +17 -0
- package/dist/util/format.js.map +1 -1
- package/dist/util/history.d.ts +4 -1
- package/dist/util/history.d.ts.map +1 -1
- package/dist/util/history.js +9 -5
- package/dist/util/history.js.map +1 -1
- package/dist/util/inputQueue.d.ts +19 -0
- package/dist/util/inputQueue.d.ts.map +1 -0
- package/dist/util/inputQueue.js +30 -0
- package/dist/util/inputQueue.js.map +1 -0
- package/dist/util/message.d.ts +4 -0
- package/dist/util/message.d.ts.map +1 -1
- package/dist/util/message.js +27 -0
- package/dist/util/message.js.map +1 -1
- package/dist/util/pdf.d.ts +83 -0
- package/dist/util/pdf.d.ts.map +1 -0
- package/dist/util/pdf.js +472 -0
- package/dist/util/pdf.js.map +1 -0
- package/dist/util/process.d.ts +10 -0
- package/dist/util/process.d.ts.map +1 -0
- package/dist/util/process.js +88 -0
- package/dist/util/process.js.map +1 -0
- package/dist/util/savePath.d.ts +0 -11
- package/dist/util/savePath.d.ts.map +1 -1
- package/dist/util/savePath.js +0 -17
- package/dist/util/savePath.js.map +1 -1
- package/dist/util/shell.d.ts +10 -1
- package/dist/util/shell.d.ts.map +1 -1
- package/dist/util/shell.js +89 -34
- package/dist/util/shell.js.map +1 -1
- package/dist/util/topic.d.ts +7 -0
- package/dist/util/topic.d.ts.map +1 -1
- package/dist/util/topic.js +40 -0
- package/dist/util/topic.js.map +1 -1
- package/package.json +2 -1
- package/dist/services/command/customCommands.d.ts +0 -1
- package/dist/services/command/customCommands.d.ts.map +0 -1
- package/dist/services/command/customCommands.js +0 -197
- package/dist/services/command/customCommands.js.map +0 -1
- package/dist/services/command/runCommand.d.ts +0 -18
- package/dist/services/command/runCommand.d.ts.map +0 -1
- package/dist/services/command/runCommand.js +0 -147
- package/dist/services/command/runCommand.js.map +0 -1
- package/dist/services/plugins/customCommands.d.ts +0 -29
- package/dist/services/plugins/customCommands.d.ts.map +0 -1
- package/dist/services/plugins/customCommands.js +0 -227
- package/dist/services/plugins/customCommands.js.map +0 -1
- package/dist/services/skill/skillLoader.d.ts +0 -17
- package/dist/services/skill/skillLoader.d.ts.map +0 -1
- package/dist/services/skill/skillLoader.js +0 -122
- package/dist/services/skill/skillLoader.js.map +0 -1
- package/dist/services/skill/skillParser.d.ts +0 -15
- package/dist/services/skill/skillParser.d.ts.map +0 -1
- package/dist/services/skill/skillParser.js +0 -66
- package/dist/services/skill/skillParser.js.map +0 -1
- package/dist/services/skill/skillRegistry.d.ts +0 -34
- package/dist/services/skill/skillRegistry.d.ts.map +0 -1
- package/dist/services/skill/skillRegistry.js +0 -98
- package/dist/services/skill/skillRegistry.js.map +0 -1
- package/dist/services/skill/skillsManager.d.ts +0 -79
- package/dist/services/skill/skillsManager.d.ts.map +0 -1
- package/dist/services/skill/skillsManager.js +0 -289
- package/dist/services/skill/skillsManager.js.map +0 -1
- package/dist/tools/Task/Task.d.ts +0 -59
- package/dist/tools/Task/Task.d.ts.map +0 -1
- package/dist/tools/Task/Task.js +0 -212
- package/dist/tools/Task/Task.js.map +0 -1
- package/dist/tools/Task/prompt.d.ts +0 -6
- package/dist/tools/Task/prompt.d.ts.map +0 -1
- package/dist/tools/Task/prompt.js +0 -75
- package/dist/tools/Task/prompt.js.map +0 -1
- package/dist/util/frontmatter.d.ts +0 -35
- package/dist/util/frontmatter.d.ts.map +0 -1
- package/dist/util/frontmatter.js +0 -119
- package/dist/util/frontmatter.js.map +0 -1
- package/dist/util/rules.d.ts +0 -6
- package/dist/util/rules.d.ts.map +0 -1
- package/dist/util/rules.js +0 -162
- package/dist/util/rules.js.map +0 -1
- package/dist/util/systemReminder.d.ts +0 -10
- package/dist/util/systemReminder.d.ts.map +0 -1
- package/dist/util/systemReminder.js +0 -177
- package/dist/util/systemReminder.js.map +0 -1
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
export declare const inputSchema: z.ZodObject<{
|
|
3
|
+
task_id: z.ZodString;
|
|
4
|
+
}, "strict", z.ZodTypeAny, {
|
|
5
|
+
task_id: string;
|
|
6
|
+
}, {
|
|
7
|
+
task_id: string;
|
|
8
|
+
}>;
|
|
9
|
+
type Out = {
|
|
10
|
+
taskId: string;
|
|
11
|
+
message: string;
|
|
12
|
+
taskType: string;
|
|
13
|
+
command: string;
|
|
14
|
+
stopped: boolean;
|
|
15
|
+
};
|
|
16
|
+
export declare const TaskStopTool: {
|
|
17
|
+
name: string;
|
|
18
|
+
description(): string;
|
|
19
|
+
isReadOnly(): false;
|
|
20
|
+
inputSchema: z.ZodObject<{
|
|
21
|
+
task_id: z.ZodString;
|
|
22
|
+
}, "strict", z.ZodTypeAny, {
|
|
23
|
+
task_id: string;
|
|
24
|
+
}, {
|
|
25
|
+
task_id: string;
|
|
26
|
+
}>;
|
|
27
|
+
validateInput(): Promise<{
|
|
28
|
+
result: true;
|
|
29
|
+
}>;
|
|
30
|
+
genToolPermission(input: any): {
|
|
31
|
+
title: string;
|
|
32
|
+
content: string;
|
|
33
|
+
};
|
|
34
|
+
genToolResultMessage(output: Out): {
|
|
35
|
+
title: string;
|
|
36
|
+
summary: string;
|
|
37
|
+
content: string;
|
|
38
|
+
};
|
|
39
|
+
getDisplayTitle(input: any): string;
|
|
40
|
+
genResultForAssistant(data: Out): string;
|
|
41
|
+
call({ task_id }: {
|
|
42
|
+
task_id: string;
|
|
43
|
+
}, _agentContext: any): AsyncGenerator<{
|
|
44
|
+
type: "result";
|
|
45
|
+
data: Out;
|
|
46
|
+
resultForAssistant: string | (import("@anthropic-ai/sdk/resources").TextBlockParam | import("@anthropic-ai/sdk/resources").ImageBlockParam)[] | undefined;
|
|
47
|
+
}, void, unknown>;
|
|
48
|
+
};
|
|
49
|
+
export {};
|
|
50
|
+
//# sourceMappingURL=TaskStop.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TaskStop.d.ts","sourceRoot":"","sources":["../../../src/tools/TaskStop/TaskStop.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAIvB,eAAO,MAAM,WAAW;;;;;;EAEtB,CAAA;AAGF,KAAK,GAAG,GAAG;IACT,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,EAAE,MAAM,CAAA;IACf,QAAQ,EAAE,MAAM,CAAA;IAChB,OAAO,EAAE,MAAM,CAAA;IACf,OAAO,EAAE,OAAO,CAAA;CACjB,CAAA;AAED,eAAO,MAAM,YAAY;;;;;;;;;;;;;;6BAYE,GAAG;;;;iCAMC,GAAG;;;;;2BAOT,GAAG;gCAGE,GAAG,GAAG,MAAM;sBAMf;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,iBAAiB,GAAG;;;;;CA4BzC,CAAA"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.TaskStopTool = exports.inputSchema = void 0;
|
|
4
|
+
const zod_1 = require("zod");
|
|
5
|
+
const TaskManager_1 = require("../../manager/TaskManager");
|
|
6
|
+
exports.inputSchema = zod_1.z.strictObject({
|
|
7
|
+
task_id: zod_1.z.string().describe('The background task ID to stop'),
|
|
8
|
+
});
|
|
9
|
+
exports.TaskStopTool = {
|
|
10
|
+
name: 'TaskStop',
|
|
11
|
+
description() {
|
|
12
|
+
return 'Stop a running background task started by the Bash tool with run_in_background=true.';
|
|
13
|
+
},
|
|
14
|
+
isReadOnly() {
|
|
15
|
+
return false;
|
|
16
|
+
},
|
|
17
|
+
inputSchema: exports.inputSchema,
|
|
18
|
+
async validateInput() {
|
|
19
|
+
return { result: true };
|
|
20
|
+
},
|
|
21
|
+
genToolPermission(input) {
|
|
22
|
+
return {
|
|
23
|
+
title: `TaskStop: ${input?.task_id}`,
|
|
24
|
+
content: `Stop background task ${input?.task_id}`,
|
|
25
|
+
};
|
|
26
|
+
},
|
|
27
|
+
genToolResultMessage(output) {
|
|
28
|
+
return {
|
|
29
|
+
title: output.taskId,
|
|
30
|
+
summary: '',
|
|
31
|
+
content: output.stopped ? `${output.command} · stopped` : output.message,
|
|
32
|
+
};
|
|
33
|
+
},
|
|
34
|
+
getDisplayTitle(input) {
|
|
35
|
+
return `TaskStop: ${input?.task_id}`;
|
|
36
|
+
},
|
|
37
|
+
genResultForAssistant(data) {
|
|
38
|
+
return `<message>${data.message}</message>
|
|
39
|
+
<task_id>${data.taskId}</task_id>
|
|
40
|
+
<task_type>${data.taskType}</task_type>
|
|
41
|
+
<command>${data.command}</command>`;
|
|
42
|
+
},
|
|
43
|
+
async *call({ task_id }, _agentContext) {
|
|
44
|
+
const manager = (0, TaskManager_1.getTaskManager)();
|
|
45
|
+
const record = manager.getTask(task_id);
|
|
46
|
+
if (!record) {
|
|
47
|
+
const data = { taskId: task_id, message: `Task ${task_id} not found.`, taskType: '', command: '', stopped: false };
|
|
48
|
+
yield { type: 'result', data, resultForAssistant: this.genResultForAssistant(data) };
|
|
49
|
+
return;
|
|
50
|
+
}
|
|
51
|
+
if (record.status !== 'running') {
|
|
52
|
+
const data = { taskId: task_id, message: `Task is not running (status: ${record.status}).`, taskType: record.type, command: record.command, stopped: false };
|
|
53
|
+
yield { type: 'result', data, resultForAssistant: this.genResultForAssistant(data) };
|
|
54
|
+
return;
|
|
55
|
+
}
|
|
56
|
+
const stopped = manager.stopTask(task_id);
|
|
57
|
+
const data = {
|
|
58
|
+
taskId: task_id,
|
|
59
|
+
message: stopped
|
|
60
|
+
? `Successfully stopped task: ${task_id} (${record.command})`
|
|
61
|
+
: `Failed to stop task: ${task_id} (${record.command}), process may have already exited.`,
|
|
62
|
+
taskType: record.type,
|
|
63
|
+
command: record.command,
|
|
64
|
+
stopped,
|
|
65
|
+
};
|
|
66
|
+
yield { type: 'result', data, resultForAssistant: this.genResultForAssistant(data) };
|
|
67
|
+
},
|
|
68
|
+
};
|
|
69
|
+
//# sourceMappingURL=TaskStop.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TaskStop.js","sourceRoot":"","sources":["../../../src/tools/TaskStop/TaskStop.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
declare const inputSchema: z.ZodObject<{
|
|
3
|
+
taskId: z.ZodString;
|
|
4
|
+
subject: z.ZodOptional<z.ZodString>;
|
|
5
|
+
description: z.ZodOptional<z.ZodString>;
|
|
6
|
+
activeForm: z.ZodOptional<z.ZodString>;
|
|
7
|
+
status: z.ZodOptional<z.ZodEnum<["pending", "in_progress", "completed", "deleted"]>>;
|
|
8
|
+
addBlocks: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
9
|
+
addBlockedBy: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
10
|
+
owner: z.ZodOptional<z.ZodString>;
|
|
11
|
+
metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
12
|
+
}, "strict", z.ZodTypeAny, {
|
|
13
|
+
taskId: string;
|
|
14
|
+
status?: "pending" | "in_progress" | "completed" | "deleted" | undefined;
|
|
15
|
+
subject?: string | undefined;
|
|
16
|
+
description?: string | undefined;
|
|
17
|
+
activeForm?: string | undefined;
|
|
18
|
+
metadata?: Record<string, unknown> | undefined;
|
|
19
|
+
addBlocks?: string[] | undefined;
|
|
20
|
+
addBlockedBy?: string[] | undefined;
|
|
21
|
+
owner?: string | undefined;
|
|
22
|
+
}, {
|
|
23
|
+
taskId: string;
|
|
24
|
+
status?: "pending" | "in_progress" | "completed" | "deleted" | undefined;
|
|
25
|
+
subject?: string | undefined;
|
|
26
|
+
description?: string | undefined;
|
|
27
|
+
activeForm?: string | undefined;
|
|
28
|
+
metadata?: Record<string, unknown> | undefined;
|
|
29
|
+
addBlocks?: string[] | undefined;
|
|
30
|
+
addBlockedBy?: string[] | undefined;
|
|
31
|
+
owner?: string | undefined;
|
|
32
|
+
}>;
|
|
33
|
+
type Out = {
|
|
34
|
+
success: boolean;
|
|
35
|
+
taskId: string;
|
|
36
|
+
updatedFields: string[];
|
|
37
|
+
statusChange?: {
|
|
38
|
+
from: string;
|
|
39
|
+
to: string;
|
|
40
|
+
};
|
|
41
|
+
error?: string;
|
|
42
|
+
};
|
|
43
|
+
export declare const TaskUpdateTool: {
|
|
44
|
+
name: string;
|
|
45
|
+
description(): string;
|
|
46
|
+
inputSchema: z.ZodObject<{
|
|
47
|
+
taskId: z.ZodString;
|
|
48
|
+
subject: z.ZodOptional<z.ZodString>;
|
|
49
|
+
description: z.ZodOptional<z.ZodString>;
|
|
50
|
+
activeForm: z.ZodOptional<z.ZodString>;
|
|
51
|
+
status: z.ZodOptional<z.ZodEnum<["pending", "in_progress", "completed", "deleted"]>>;
|
|
52
|
+
addBlocks: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
53
|
+
addBlockedBy: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
54
|
+
owner: z.ZodOptional<z.ZodString>;
|
|
55
|
+
metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
56
|
+
}, "strict", z.ZodTypeAny, {
|
|
57
|
+
taskId: string;
|
|
58
|
+
status?: "pending" | "in_progress" | "completed" | "deleted" | undefined;
|
|
59
|
+
subject?: string | undefined;
|
|
60
|
+
description?: string | undefined;
|
|
61
|
+
activeForm?: string | undefined;
|
|
62
|
+
metadata?: Record<string, unknown> | undefined;
|
|
63
|
+
addBlocks?: string[] | undefined;
|
|
64
|
+
addBlockedBy?: string[] | undefined;
|
|
65
|
+
owner?: string | undefined;
|
|
66
|
+
}, {
|
|
67
|
+
taskId: string;
|
|
68
|
+
status?: "pending" | "in_progress" | "completed" | "deleted" | undefined;
|
|
69
|
+
subject?: string | undefined;
|
|
70
|
+
description?: string | undefined;
|
|
71
|
+
activeForm?: string | undefined;
|
|
72
|
+
metadata?: Record<string, unknown> | undefined;
|
|
73
|
+
addBlocks?: string[] | undefined;
|
|
74
|
+
addBlockedBy?: string[] | undefined;
|
|
75
|
+
owner?: string | undefined;
|
|
76
|
+
}>;
|
|
77
|
+
isReadOnly(): false;
|
|
78
|
+
canRunConcurrently(): true;
|
|
79
|
+
genResultForAssistant(data: Out): string;
|
|
80
|
+
getDisplayTitle(input: any): string;
|
|
81
|
+
call({ taskId, subject, description, activeForm, status, addBlocks, addBlockedBy, metadata }: z.infer<typeof inputSchema>, agentContext: any): AsyncGenerator<{
|
|
82
|
+
type: "result";
|
|
83
|
+
data: Out;
|
|
84
|
+
resultForAssistant: string;
|
|
85
|
+
}, void, unknown>;
|
|
86
|
+
};
|
|
87
|
+
export {};
|
|
88
|
+
//# sourceMappingURL=TaskUpdate.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TaskUpdate.d.ts","sourceRoot":"","sources":["../../../src/tools/TaskUpdate/TaskUpdate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAOvB,QAAA,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAUf,CAAA;AAEF,KAAK,GAAG,GAAG;IACT,OAAO,EAAE,OAAO,CAAA;IAChB,MAAM,EAAE,MAAM,CAAA;IACd,aAAa,EAAE,MAAM,EAAE,CAAA;IACvB,YAAY,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,CAAA;KAAE,CAAA;IAC3C,KAAK,CAAC,EAAE,MAAM,CAAA;CACf,CAAA;AAOD,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gCAYG,GAAG;2BAGR,GAAG;kGAIiE,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC,gBACtG,GAAG;;;;;CAgFoB,CAAA"}
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.TaskUpdateTool = void 0;
|
|
4
|
+
const zod_1 = require("zod");
|
|
5
|
+
const prompt_1 = require("./prompt");
|
|
6
|
+
const StateManager_1 = require("../../manager/StateManager");
|
|
7
|
+
const TaskStatusEnum = zod_1.z.enum(['pending', 'in_progress', 'completed', 'deleted']);
|
|
8
|
+
const inputSchema = zod_1.z.strictObject({
|
|
9
|
+
taskId: zod_1.z.string().describe('The ID of the task to update'),
|
|
10
|
+
subject: zod_1.z.string().optional().describe('New subject for the task'),
|
|
11
|
+
description: zod_1.z.string().optional().describe('New description for the task'),
|
|
12
|
+
activeForm: zod_1.z.string().optional().describe("Present continuous form shown in spinner when in_progress (e.g., \"Running tests\")"),
|
|
13
|
+
status: TaskStatusEnum.optional().describe('New status for the task'),
|
|
14
|
+
addBlocks: zod_1.z.array(zod_1.z.string()).optional().describe('Task IDs that this task blocks'),
|
|
15
|
+
addBlockedBy: zod_1.z.array(zod_1.z.string()).optional().describe('Task IDs that block this task'),
|
|
16
|
+
owner: zod_1.z.string().optional().describe('New owner for the task'),
|
|
17
|
+
metadata: zod_1.z.record(zod_1.z.string(), zod_1.z.unknown()).optional().describe('Metadata keys to merge into the task. Set a key to null to delete it.'),
|
|
18
|
+
});
|
|
19
|
+
function formatResult(data) {
|
|
20
|
+
if (!data.success)
|
|
21
|
+
return data.error || `Task #${data.taskId} not found`;
|
|
22
|
+
return `Updated task #${data.taskId} ${data.updatedFields.join(', ')}`;
|
|
23
|
+
}
|
|
24
|
+
exports.TaskUpdateTool = {
|
|
25
|
+
name: prompt_1.TOOL_NAME_FOR_PROMPT,
|
|
26
|
+
description() {
|
|
27
|
+
return prompt_1.DESCRIPTION;
|
|
28
|
+
},
|
|
29
|
+
inputSchema,
|
|
30
|
+
isReadOnly() {
|
|
31
|
+
return false;
|
|
32
|
+
},
|
|
33
|
+
canRunConcurrently() {
|
|
34
|
+
return true;
|
|
35
|
+
},
|
|
36
|
+
genResultForAssistant(data) {
|
|
37
|
+
return formatResult(data);
|
|
38
|
+
},
|
|
39
|
+
getDisplayTitle(input) {
|
|
40
|
+
return `TaskUpdate: ${input?.taskId ?? ''}`;
|
|
41
|
+
},
|
|
42
|
+
async *call({ taskId, subject, description, activeForm, status, addBlocks, addBlockedBy, metadata }, agentContext) {
|
|
43
|
+
const stateManager = (0, StateManager_1.getStateManager)();
|
|
44
|
+
const agentState = stateManager.forAgent(agentContext.agentId);
|
|
45
|
+
// 查找任务
|
|
46
|
+
const existing = agentState.getTodoTask(taskId);
|
|
47
|
+
if (!existing) {
|
|
48
|
+
const data = { success: false, taskId, updatedFields: [], error: 'Task not found' };
|
|
49
|
+
yield { type: 'result', data, resultForAssistant: formatResult(data) };
|
|
50
|
+
return;
|
|
51
|
+
}
|
|
52
|
+
// 删除
|
|
53
|
+
if (status === 'deleted') {
|
|
54
|
+
const deleted = agentState.deleteTodoTask(taskId);
|
|
55
|
+
const data = {
|
|
56
|
+
success: deleted,
|
|
57
|
+
taskId,
|
|
58
|
+
updatedFields: deleted ? ['deleted'] : [],
|
|
59
|
+
statusChange: deleted ? { from: existing.status, to: 'deleted' } : undefined,
|
|
60
|
+
error: deleted ? undefined : 'Failed to delete task',
|
|
61
|
+
};
|
|
62
|
+
yield { type: 'result', data, resultForAssistant: formatResult(data) };
|
|
63
|
+
return;
|
|
64
|
+
}
|
|
65
|
+
// 收集变更
|
|
66
|
+
const updates = {};
|
|
67
|
+
const updatedFields = [];
|
|
68
|
+
if (subject !== undefined && subject !== existing.subject) {
|
|
69
|
+
updates.subject = subject;
|
|
70
|
+
updatedFields.push('subject');
|
|
71
|
+
}
|
|
72
|
+
if (description !== undefined && description !== existing.description) {
|
|
73
|
+
updates.description = description;
|
|
74
|
+
updatedFields.push('description');
|
|
75
|
+
}
|
|
76
|
+
if (activeForm !== undefined && activeForm !== existing.activeForm) {
|
|
77
|
+
updates.activeForm = activeForm;
|
|
78
|
+
updatedFields.push('activeForm');
|
|
79
|
+
}
|
|
80
|
+
if (status !== undefined && status !== existing.status) {
|
|
81
|
+
updates.status = status;
|
|
82
|
+
updatedFields.push('status');
|
|
83
|
+
}
|
|
84
|
+
if (metadata !== undefined) {
|
|
85
|
+
updates.metadata = metadata;
|
|
86
|
+
updatedFields.push('metadata');
|
|
87
|
+
}
|
|
88
|
+
if (Object.keys(updates).length > 0) {
|
|
89
|
+
agentState.updateTodoTask(taskId, updates);
|
|
90
|
+
}
|
|
91
|
+
// 建立阻塞关系(双向写入)
|
|
92
|
+
if (addBlocks && addBlocks.length > 0) {
|
|
93
|
+
for (const blockId of addBlocks) {
|
|
94
|
+
agentState.blockTask(taskId, blockId);
|
|
95
|
+
}
|
|
96
|
+
updatedFields.push('addBlocks');
|
|
97
|
+
}
|
|
98
|
+
if (addBlockedBy && addBlockedBy.length > 0) {
|
|
99
|
+
for (const blockerId of addBlockedBy) {
|
|
100
|
+
agentState.blockTask(blockerId, taskId);
|
|
101
|
+
}
|
|
102
|
+
updatedFields.push('addBlockedBy');
|
|
103
|
+
}
|
|
104
|
+
const data = {
|
|
105
|
+
success: true,
|
|
106
|
+
taskId,
|
|
107
|
+
updatedFields,
|
|
108
|
+
statusChange: updates.status !== undefined
|
|
109
|
+
? { from: existing.status, to: updates.status }
|
|
110
|
+
: undefined,
|
|
111
|
+
};
|
|
112
|
+
yield { type: 'result', data, resultForAssistant: formatResult(data) };
|
|
113
|
+
},
|
|
114
|
+
};
|
|
115
|
+
//# sourceMappingURL=TaskUpdate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TaskUpdate.js","sourceRoot":"","sources":["../../../src/tools/TaskUpdate/TaskUpdate.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export declare const TOOL_NAME_FOR_PROMPT = "TaskUpdate";
|
|
2
|
+
export declare const DESCRIPTION = "Use this tool to update a task in the task list.\n\n## When to Use This Tool\n\n**Mark tasks as resolved:**\n- When you have completed the work described in a task\n- When a task is no longer needed or has been superseded\n- IMPORTANT: Always mark your assigned tasks as resolved when you finish them\n- After resolving, call TaskList to find your next task\n\n- ONLY mark a task as completed when you have FULLY accomplished it\n- If you encounter errors, blockers, or cannot finish, keep the task as in_progress\n- When blocked, create a new task describing what needs to be resolved\n- Never mark a task as completed if:\n - Tests are failing\n - Implementation is partial\n - You encountered unresolved errors\n - You couldn't find necessary files or dependencies\n\n**Delete tasks:**\n- When a task is no longer relevant or was created in error\n- Setting status to `deleted` permanently removes the task\n\n**Update task details:**\n- When requirements change or become clearer\n- When establishing dependencies between tasks\n\n## Fields You Can Update\n\n- **status**: The task status (see Status Workflow below)\n- **subject**: Change the task title (imperative form, e.g., \"Run tests\")\n- **description**: Change the task description\n- **activeForm**: Present continuous form shown in spinner when in_progress (e.g., \"Running tests\")\n- **owner**: Change the task owner (agent name)\n- **metadata**: Merge metadata keys into the task (set a key to null to delete it)\n- **addBlocks**: Mark tasks that cannot start until this one completes\n- **addBlockedBy**: Mark tasks that must complete before this one can start\n\n## Status Workflow\n\nStatus progresses: `pending` \u2192 `in_progress` \u2192 `completed`\n\nUse `deleted` to permanently remove a task.\n\n## Staleness\n\nMake sure to read a task's latest state using `TaskGet` before updating it.\n\n## Examples\n\nMark task as in progress when starting work:\n```json\n{\"taskId\": \"1\", \"status\": \"in_progress\"}\n```\n\nMark task as completed after finishing work:\n```json\n{\"taskId\": \"1\", \"status\": \"completed\"}\n```\n\nDelete a task:\n```json\n{\"taskId\": \"1\", \"status\": \"deleted\"}\n```\n\nClaim a task by setting owner:\n```json\n{\"taskId\": \"1\", \"owner\": \"my-name\"}\n```\n\nSet up task dependencies:\n```json\n{\"taskId\": \"2\", \"addBlockedBy\": [\"1\"]}\n```\n";
|
|
3
|
+
//# sourceMappingURL=prompt.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prompt.d.ts","sourceRoot":"","sources":["../../../src/tools/TaskUpdate/prompt.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,oBAAoB,eAAe,CAAA;AAEhD,eAAO,MAAM,WAAW,w0EA0EvB,CAAA"}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DESCRIPTION = exports.TOOL_NAME_FOR_PROMPT = void 0;
|
|
4
|
+
exports.TOOL_NAME_FOR_PROMPT = 'TaskUpdate';
|
|
5
|
+
exports.DESCRIPTION = `Use this tool to update a task in the task list.
|
|
6
|
+
|
|
7
|
+
## When to Use This Tool
|
|
8
|
+
|
|
9
|
+
**Mark tasks as resolved:**
|
|
10
|
+
- When you have completed the work described in a task
|
|
11
|
+
- When a task is no longer needed or has been superseded
|
|
12
|
+
- IMPORTANT: Always mark your assigned tasks as resolved when you finish them
|
|
13
|
+
- After resolving, call TaskList to find your next task
|
|
14
|
+
|
|
15
|
+
- ONLY mark a task as completed when you have FULLY accomplished it
|
|
16
|
+
- If you encounter errors, blockers, or cannot finish, keep the task as in_progress
|
|
17
|
+
- When blocked, create a new task describing what needs to be resolved
|
|
18
|
+
- Never mark a task as completed if:
|
|
19
|
+
- Tests are failing
|
|
20
|
+
- Implementation is partial
|
|
21
|
+
- You encountered unresolved errors
|
|
22
|
+
- You couldn't find necessary files or dependencies
|
|
23
|
+
|
|
24
|
+
**Delete tasks:**
|
|
25
|
+
- When a task is no longer relevant or was created in error
|
|
26
|
+
- Setting status to \`deleted\` permanently removes the task
|
|
27
|
+
|
|
28
|
+
**Update task details:**
|
|
29
|
+
- When requirements change or become clearer
|
|
30
|
+
- When establishing dependencies between tasks
|
|
31
|
+
|
|
32
|
+
## Fields You Can Update
|
|
33
|
+
|
|
34
|
+
- **status**: The task status (see Status Workflow below)
|
|
35
|
+
- **subject**: Change the task title (imperative form, e.g., "Run tests")
|
|
36
|
+
- **description**: Change the task description
|
|
37
|
+
- **activeForm**: Present continuous form shown in spinner when in_progress (e.g., "Running tests")
|
|
38
|
+
- **owner**: Change the task owner (agent name)
|
|
39
|
+
- **metadata**: Merge metadata keys into the task (set a key to null to delete it)
|
|
40
|
+
- **addBlocks**: Mark tasks that cannot start until this one completes
|
|
41
|
+
- **addBlockedBy**: Mark tasks that must complete before this one can start
|
|
42
|
+
|
|
43
|
+
## Status Workflow
|
|
44
|
+
|
|
45
|
+
Status progresses: \`pending\` → \`in_progress\` → \`completed\`
|
|
46
|
+
|
|
47
|
+
Use \`deleted\` to permanently remove a task.
|
|
48
|
+
|
|
49
|
+
## Staleness
|
|
50
|
+
|
|
51
|
+
Make sure to read a task's latest state using \`TaskGet\` before updating it.
|
|
52
|
+
|
|
53
|
+
## Examples
|
|
54
|
+
|
|
55
|
+
Mark task as in progress when starting work:
|
|
56
|
+
\`\`\`json
|
|
57
|
+
{"taskId": "1", "status": "in_progress"}
|
|
58
|
+
\`\`\`
|
|
59
|
+
|
|
60
|
+
Mark task as completed after finishing work:
|
|
61
|
+
\`\`\`json
|
|
62
|
+
{"taskId": "1", "status": "completed"}
|
|
63
|
+
\`\`\`
|
|
64
|
+
|
|
65
|
+
Delete a task:
|
|
66
|
+
\`\`\`json
|
|
67
|
+
{"taskId": "1", "status": "deleted"}
|
|
68
|
+
\`\`\`
|
|
69
|
+
|
|
70
|
+
Claim a task by setting owner:
|
|
71
|
+
\`\`\`json
|
|
72
|
+
{"taskId": "1", "owner": "my-name"}
|
|
73
|
+
\`\`\`
|
|
74
|
+
|
|
75
|
+
Set up task dependencies:
|
|
76
|
+
\`\`\`json
|
|
77
|
+
{"taskId": "2", "addBlockedBy": ["1"]}
|
|
78
|
+
\`\`\`
|
|
79
|
+
`;
|
|
80
|
+
//# sourceMappingURL=prompt.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prompt.js","sourceRoot":"","sources":["../../../src/tools/TaskUpdate/prompt.ts"],"names":[],"mappings":";;;AAAa,QAAA,oBAAoB,GAAG,YAAY,CAAA;AAEnC,QAAA,WAAW,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA0E1B,CAAA"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
type Output = {
|
|
3
|
+
bytes: number;
|
|
4
|
+
code: number;
|
|
5
|
+
codeText: string;
|
|
6
|
+
result: string;
|
|
7
|
+
durationMs: number;
|
|
8
|
+
url: string;
|
|
9
|
+
};
|
|
10
|
+
export declare const WebFetchTool: {
|
|
11
|
+
name: string;
|
|
12
|
+
description(): string;
|
|
13
|
+
inputSchema: z.ZodObject<{
|
|
14
|
+
url: z.ZodString;
|
|
15
|
+
prompt: z.ZodString;
|
|
16
|
+
}, "strict", z.ZodTypeAny, {
|
|
17
|
+
url: string;
|
|
18
|
+
prompt: string;
|
|
19
|
+
}, {
|
|
20
|
+
url: string;
|
|
21
|
+
prompt: string;
|
|
22
|
+
}>;
|
|
23
|
+
isReadOnly(): false;
|
|
24
|
+
validateInput({ url }: {
|
|
25
|
+
url: string;
|
|
26
|
+
prompt: string;
|
|
27
|
+
}): Promise<{
|
|
28
|
+
result: false;
|
|
29
|
+
message: string;
|
|
30
|
+
errorCode: number;
|
|
31
|
+
} | {
|
|
32
|
+
result: true;
|
|
33
|
+
message?: undefined;
|
|
34
|
+
errorCode?: undefined;
|
|
35
|
+
}>;
|
|
36
|
+
genToolResultMessage(data: Output): {
|
|
37
|
+
title: string;
|
|
38
|
+
summary: string;
|
|
39
|
+
content: string;
|
|
40
|
+
};
|
|
41
|
+
genToolPermission(input: {
|
|
42
|
+
url: string;
|
|
43
|
+
prompt: string;
|
|
44
|
+
}): {
|
|
45
|
+
title: string;
|
|
46
|
+
content: string;
|
|
47
|
+
};
|
|
48
|
+
getDisplayTitle(input?: {
|
|
49
|
+
url?: string;
|
|
50
|
+
}): string;
|
|
51
|
+
call({ url, prompt }: {
|
|
52
|
+
url: string;
|
|
53
|
+
prompt: string;
|
|
54
|
+
}, agentContext: any): AsyncGenerator<{
|
|
55
|
+
type: "result";
|
|
56
|
+
data: Output;
|
|
57
|
+
resultForAssistant: string | (import("@anthropic-ai/sdk/resources").TextBlockParam | import("@anthropic-ai/sdk/resources").ImageBlockParam)[] | undefined;
|
|
58
|
+
}, void, unknown>;
|
|
59
|
+
genResultForAssistant(output: Output): string;
|
|
60
|
+
};
|
|
61
|
+
export {};
|
|
62
|
+
//# sourceMappingURL=WebFetch.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WebFetch.d.ts","sourceRoot":"","sources":["../../../src/tools/WebFetch/WebFetch.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAkBvB,KAAK,MAAM,GAAG;IACZ,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE,MAAM,CAAA;IAChB,MAAM,EAAE,MAAM,CAAA;IACd,UAAU,EAAE,MAAM,CAAA;IAClB,GAAG,EAAE,MAAM,CAAA;CACZ,CAAA;AAED,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;+BAqBI,MAAM;;;;;6BASR;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE;;;;4BAMhC;QAAE,GAAG,CAAC,EAAE,MAAM,CAAA;KAAE;0BAQX;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,gBAAgB,GAAG;;;;;kCA0FjD,MAAM;CAGM,CAAA"}
|
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.WebFetchTool = void 0;
|
|
4
|
+
const zod_1 = require("zod");
|
|
5
|
+
const prompt_1 = require("./prompt");
|
|
6
|
+
const utils_1 = require("./utils");
|
|
7
|
+
const EventSystem_1 = require("../../events/EventSystem");
|
|
8
|
+
const StateManager_1 = require("../../manager/StateManager");
|
|
9
|
+
const inputSchema = zod_1.z.strictObject({
|
|
10
|
+
url: zod_1.z.string().url().describe('The URL to fetch content from'),
|
|
11
|
+
prompt: zod_1.z.string().describe('The prompt to run on the fetched content'),
|
|
12
|
+
});
|
|
13
|
+
exports.WebFetchTool = {
|
|
14
|
+
name: prompt_1.TOOL_NAME_FOR_PROMPT,
|
|
15
|
+
description() {
|
|
16
|
+
return prompt_1.DESCRIPTION;
|
|
17
|
+
},
|
|
18
|
+
inputSchema,
|
|
19
|
+
isReadOnly() {
|
|
20
|
+
return false;
|
|
21
|
+
},
|
|
22
|
+
async validateInput({ url }) {
|
|
23
|
+
try {
|
|
24
|
+
new URL(url);
|
|
25
|
+
}
|
|
26
|
+
catch {
|
|
27
|
+
return {
|
|
28
|
+
result: false,
|
|
29
|
+
message: `Error: Invalid URL "${url}". The URL provided could not be parsed.`,
|
|
30
|
+
errorCode: 1,
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
return { result: true };
|
|
34
|
+
},
|
|
35
|
+
genToolResultMessage(data) {
|
|
36
|
+
const sizeKB = (data.bytes / 1024).toFixed(1);
|
|
37
|
+
const maxContentLength = 5000;
|
|
38
|
+
return {
|
|
39
|
+
title: data.url,
|
|
40
|
+
summary: '',
|
|
41
|
+
content: data.result.slice(0, maxContentLength) + (data.result.length > maxContentLength ? '...' : ''),
|
|
42
|
+
};
|
|
43
|
+
},
|
|
44
|
+
genToolPermission(input) {
|
|
45
|
+
return {
|
|
46
|
+
title: '',
|
|
47
|
+
content: input.url,
|
|
48
|
+
};
|
|
49
|
+
},
|
|
50
|
+
getDisplayTitle(input) {
|
|
51
|
+
if (!input?.url)
|
|
52
|
+
return 'WebFetch';
|
|
53
|
+
try {
|
|
54
|
+
return new URL(input.url).hostname;
|
|
55
|
+
}
|
|
56
|
+
catch {
|
|
57
|
+
return 'WebFetch';
|
|
58
|
+
}
|
|
59
|
+
},
|
|
60
|
+
async *call({ url, prompt }, agentContext) {
|
|
61
|
+
const start = Date.now();
|
|
62
|
+
const { abortController } = agentContext;
|
|
63
|
+
const isMainAgent = agentContext.agentId === StateManager_1.MAIN_AGENT_ID;
|
|
64
|
+
const timeTag = () => {
|
|
65
|
+
const now = new Date();
|
|
66
|
+
const h = String(now.getHours()).padStart(2, '0');
|
|
67
|
+
const m = String(now.getMinutes()).padStart(2, '0');
|
|
68
|
+
const s = String(now.getSeconds()).padStart(2, '0');
|
|
69
|
+
return `[${h}:${m}:${s}]`;
|
|
70
|
+
};
|
|
71
|
+
const emitChunk = isMainAgent ? (content) => {
|
|
72
|
+
const chunkData = {
|
|
73
|
+
agentId: agentContext.agentId,
|
|
74
|
+
toolId: agentContext.currentToolUseID || '',
|
|
75
|
+
toolName: prompt_1.TOOL_NAME_FOR_PROMPT,
|
|
76
|
+
title: url,
|
|
77
|
+
summary: '',
|
|
78
|
+
content,
|
|
79
|
+
};
|
|
80
|
+
(0, EventSystem_1.getEventBus)().emit('tool:execution:chunk', chunkData);
|
|
81
|
+
} : undefined;
|
|
82
|
+
emitChunk?.(`${timeTag()}Fetching content...\n`);
|
|
83
|
+
const response = await (0, utils_1.getURLMarkdownContent)(url, abortController);
|
|
84
|
+
// 跨域重定向:通知 LLM 重新请求
|
|
85
|
+
if ('type' in response && response.type === 'redirect') {
|
|
86
|
+
const statusText = response.statusCode === 301 ? 'Moved Permanently'
|
|
87
|
+
: response.statusCode === 308 ? 'Permanent Redirect'
|
|
88
|
+
: response.statusCode === 307 ? 'Temporary Redirect'
|
|
89
|
+
: 'Found';
|
|
90
|
+
const message = `REDIRECT DETECTED: The URL redirects to a different host.
|
|
91
|
+
|
|
92
|
+
Original URL: ${response.originalUrl}
|
|
93
|
+
Redirect URL: ${response.redirectUrl}
|
|
94
|
+
Status: ${response.statusCode} ${statusText}
|
|
95
|
+
|
|
96
|
+
To complete your request, I need to fetch content from the redirected URL. Please use WebFetch again with these parameters:
|
|
97
|
+
- url: "${response.redirectUrl}"
|
|
98
|
+
- prompt: "${prompt}"`;
|
|
99
|
+
const output = {
|
|
100
|
+
bytes: Buffer.byteLength(message),
|
|
101
|
+
code: response.statusCode,
|
|
102
|
+
codeText: statusText,
|
|
103
|
+
result: message,
|
|
104
|
+
durationMs: Date.now() - start,
|
|
105
|
+
url,
|
|
106
|
+
};
|
|
107
|
+
yield {
|
|
108
|
+
type: 'result',
|
|
109
|
+
data: output,
|
|
110
|
+
resultForAssistant: this.genResultForAssistant(output),
|
|
111
|
+
};
|
|
112
|
+
return;
|
|
113
|
+
}
|
|
114
|
+
const { content, bytes, code, codeText, contentType } = response;
|
|
115
|
+
const sizeKB = (bytes / 1024).toFixed(1);
|
|
116
|
+
emitChunk?.(`${timeTag()}Fetched ${sizeKB}KB (HTTP ${code}), processing with LLM...\n`);
|
|
117
|
+
let result;
|
|
118
|
+
// 对于小型 markdown 内容直接返回,无需 LLM 处理
|
|
119
|
+
if (contentType.includes('text/markdown') && content.length < utils_1.MAX_MARKDOWN_LENGTH) {
|
|
120
|
+
result = content;
|
|
121
|
+
}
|
|
122
|
+
else {
|
|
123
|
+
result = await (0, utils_1.applyPromptToMarkdown)(prompt, content, abortController.signal);
|
|
124
|
+
}
|
|
125
|
+
const output = {
|
|
126
|
+
bytes,
|
|
127
|
+
code,
|
|
128
|
+
codeText,
|
|
129
|
+
result,
|
|
130
|
+
durationMs: Date.now() - start,
|
|
131
|
+
url,
|
|
132
|
+
};
|
|
133
|
+
yield {
|
|
134
|
+
type: 'result',
|
|
135
|
+
data: output,
|
|
136
|
+
resultForAssistant: this.genResultForAssistant(output),
|
|
137
|
+
};
|
|
138
|
+
},
|
|
139
|
+
genResultForAssistant(output) {
|
|
140
|
+
return output.result;
|
|
141
|
+
},
|
|
142
|
+
};
|
|
143
|
+
//# sourceMappingURL=WebFetch.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WebFetch.js","sourceRoot":"","sources":["../../../src/tools/WebFetch/WebFetch.ts"],"names":[],"mappings":"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"}
|