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
|
@@ -3,8 +3,42 @@
|
|
|
3
3
|
* 子代理不触发 conversation:usage、message:chunk、tool:execution:chunk、state:update、todos:update、topic:update
|
|
4
4
|
* 子代理相关事件 message:complete、tool:execution:complete、tool:execution:error、session:interrupted、tool:permission:request 有agentId字段
|
|
5
5
|
*/
|
|
6
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
7
|
+
if (k2 === undefined) k2 = k;
|
|
8
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
9
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
10
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
11
|
+
}
|
|
12
|
+
Object.defineProperty(o, k2, desc);
|
|
13
|
+
}) : (function(o, m, k, k2) {
|
|
14
|
+
if (k2 === undefined) k2 = k;
|
|
15
|
+
o[k2] = m[k];
|
|
16
|
+
}));
|
|
17
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
18
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
19
|
+
}) : function(o, v) {
|
|
20
|
+
o["default"] = v;
|
|
21
|
+
});
|
|
22
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
23
|
+
var ownKeys = function(o) {
|
|
24
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
25
|
+
var ar = [];
|
|
26
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
27
|
+
return ar;
|
|
28
|
+
};
|
|
29
|
+
return ownKeys(o);
|
|
30
|
+
};
|
|
31
|
+
return function (mod) {
|
|
32
|
+
if (mod && mod.__esModule) return mod;
|
|
33
|
+
var result = {};
|
|
34
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
35
|
+
__setModuleDefault(result, mod);
|
|
36
|
+
return result;
|
|
37
|
+
};
|
|
38
|
+
})();
|
|
6
39
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
40
|
exports.getStateManager = exports.StateManager = exports.MAIN_AGENT_ID = void 0;
|
|
41
|
+
const crypto = __importStar(require("crypto"));
|
|
8
42
|
const EventSystem_1 = require("../events/EventSystem");
|
|
9
43
|
const log_1 = require("../util/log");
|
|
10
44
|
const history_1 = require("../util/history");
|
|
@@ -33,11 +67,16 @@ class StateManager {
|
|
|
33
67
|
this.messageHistoryMap = new Map();
|
|
34
68
|
this.readFileTimestampsMap = new Map();
|
|
35
69
|
this.todosMap = new Map();
|
|
70
|
+
this.todoTasksMap = new Map();
|
|
36
71
|
// === 共享状态 ===
|
|
37
72
|
this.sessionId = null;
|
|
38
73
|
this.globalEditPermissionGranted = false;
|
|
39
74
|
this.planModeInfoSent = false;
|
|
40
75
|
this.currentAbortController = null;
|
|
76
|
+
// 当前正在运行的前台 agent taskId 集合
|
|
77
|
+
this.foregroundAgents = new Set();
|
|
78
|
+
// 待处理用户输入队列(共享状态)
|
|
79
|
+
this.pendingUserInputs = [];
|
|
41
80
|
// 私有构造函数,确保单例模式
|
|
42
81
|
}
|
|
43
82
|
/**
|
|
@@ -70,10 +109,10 @@ class StateManager {
|
|
|
70
109
|
/**
|
|
71
110
|
* 设置消息历史
|
|
72
111
|
*/
|
|
73
|
-
setMessageHistory(messages, agentId = exports.MAIN_AGENT_ID) {
|
|
112
|
+
setMessageHistory(messages, agentId = exports.MAIN_AGENT_ID, skipAutoSave = false) {
|
|
74
113
|
this.messageHistoryMap.set(agentId, messages);
|
|
75
114
|
// 主代理设置消息历史时自动保存
|
|
76
|
-
if (agentId === exports.MAIN_AGENT_ID && this.sessionId && messages.length > 0) {
|
|
115
|
+
if (!skipAutoSave && agentId === exports.MAIN_AGENT_ID && this.sessionId && messages.length > 0) {
|
|
77
116
|
this.saveSessionHistory();
|
|
78
117
|
}
|
|
79
118
|
}
|
|
@@ -104,6 +143,12 @@ class StateManager {
|
|
|
104
143
|
const timestamps = this.getReadFileTimestamps(agentId);
|
|
105
144
|
timestamps[filePath] = timestamp;
|
|
106
145
|
}
|
|
146
|
+
/**
|
|
147
|
+
* 批量设置文件读取时间戳(覆盖)
|
|
148
|
+
*/
|
|
149
|
+
setReadFileTimestamps(timestamps, agentId = exports.MAIN_AGENT_ID) {
|
|
150
|
+
this.readFileTimestampsMap.set(agentId, { ...timestamps });
|
|
151
|
+
}
|
|
107
152
|
/**
|
|
108
153
|
* 获取单个文件的读取时间戳
|
|
109
154
|
*/
|
|
@@ -183,6 +228,175 @@ class StateManager {
|
|
|
183
228
|
eventBus.emit('todos:update', todos);
|
|
184
229
|
}
|
|
185
230
|
// ============================================================
|
|
231
|
+
// TodoTask CRUD(按代理隔离)
|
|
232
|
+
// ============================================================
|
|
233
|
+
getTodoTasks(agentId) {
|
|
234
|
+
let tasks = this.todoTasksMap.get(agentId);
|
|
235
|
+
if (!tasks) {
|
|
236
|
+
tasks = [];
|
|
237
|
+
this.todoTasksMap.set(agentId, tasks);
|
|
238
|
+
}
|
|
239
|
+
return tasks;
|
|
240
|
+
}
|
|
241
|
+
createTodoTask(agentId, task) {
|
|
242
|
+
const tasks = this.getTodoTasks(agentId);
|
|
243
|
+
// 递增数字编号:取当前最大 id + 1
|
|
244
|
+
const maxId = tasks.reduce((max, t) => Math.max(max, parseInt(t.id, 10) || 0), 0);
|
|
245
|
+
const id = String(maxId + 1);
|
|
246
|
+
const now = Date.now();
|
|
247
|
+
const newTask = {
|
|
248
|
+
...task,
|
|
249
|
+
blocks: task.blocks ?? [],
|
|
250
|
+
blockedBy: task.blockedBy ?? [],
|
|
251
|
+
id,
|
|
252
|
+
createdAt: now,
|
|
253
|
+
updatedAt: now,
|
|
254
|
+
};
|
|
255
|
+
tasks.push(newTask);
|
|
256
|
+
(0, log_1.logInfo)(`[${agentId}] TodoTask created: ${id} "${task.subject}"`);
|
|
257
|
+
this.syncTodoTasksToTodos(agentId);
|
|
258
|
+
return id;
|
|
259
|
+
}
|
|
260
|
+
getTodoTask(agentId, taskId) {
|
|
261
|
+
return this.getTodoTasks(agentId).find(t => t.id === taskId);
|
|
262
|
+
}
|
|
263
|
+
listTodoTasks(agentId) {
|
|
264
|
+
return this.getTodoTasks(agentId);
|
|
265
|
+
}
|
|
266
|
+
updateTodoTask(agentId, taskId, updates) {
|
|
267
|
+
const tasks = this.getTodoTasks(agentId);
|
|
268
|
+
const task = tasks.find(t => t.id === taskId);
|
|
269
|
+
if (!task)
|
|
270
|
+
return undefined;
|
|
271
|
+
if (updates.subject !== undefined)
|
|
272
|
+
task.subject = updates.subject;
|
|
273
|
+
if (updates.description !== undefined)
|
|
274
|
+
task.description = updates.description;
|
|
275
|
+
if (updates.status !== undefined)
|
|
276
|
+
task.status = updates.status;
|
|
277
|
+
if (updates.activeForm !== undefined)
|
|
278
|
+
task.activeForm = updates.activeForm;
|
|
279
|
+
if (updates.metadata !== undefined) {
|
|
280
|
+
const merged = { ...(task.metadata ?? {}) };
|
|
281
|
+
for (const [key, value] of Object.entries(updates.metadata)) {
|
|
282
|
+
if (value === null) {
|
|
283
|
+
delete merged[key];
|
|
284
|
+
}
|
|
285
|
+
else {
|
|
286
|
+
merged[key] = value;
|
|
287
|
+
}
|
|
288
|
+
}
|
|
289
|
+
task.metadata = merged;
|
|
290
|
+
}
|
|
291
|
+
task.updatedAt = Date.now();
|
|
292
|
+
(0, log_1.logInfo)(`[${agentId}] TodoTask updated: ${taskId} fields=[${Object.keys(updates).join(',')}]`);
|
|
293
|
+
this.syncTodoTasksToTodos(agentId);
|
|
294
|
+
return task;
|
|
295
|
+
}
|
|
296
|
+
deleteTodoTask(agentId, taskId) {
|
|
297
|
+
const tasks = this.getTodoTasks(agentId);
|
|
298
|
+
const idx = tasks.findIndex(t => t.id === taskId);
|
|
299
|
+
if (idx === -1)
|
|
300
|
+
return false;
|
|
301
|
+
tasks.splice(idx, 1);
|
|
302
|
+
// 清理其他任务中对被删任务的引用
|
|
303
|
+
for (const t of tasks) {
|
|
304
|
+
t.blocks = t.blocks.filter(id => id !== taskId);
|
|
305
|
+
t.blockedBy = t.blockedBy.filter(id => id !== taskId);
|
|
306
|
+
}
|
|
307
|
+
(0, log_1.logInfo)(`[${agentId}] TodoTask deleted: ${taskId}`);
|
|
308
|
+
this.syncTodoTasksToTodos(agentId);
|
|
309
|
+
return true;
|
|
310
|
+
}
|
|
311
|
+
/**
|
|
312
|
+
* 建立阻塞关系:fromId 阻塞 toId(toId 需等待 fromId 完成)
|
|
313
|
+
* 双向写入保持一致性
|
|
314
|
+
*/
|
|
315
|
+
blockTask(agentId, fromId, toId) {
|
|
316
|
+
const tasks = this.getTodoTasks(agentId);
|
|
317
|
+
const fromTask = tasks.find(t => t.id === fromId);
|
|
318
|
+
const toTask = tasks.find(t => t.id === toId);
|
|
319
|
+
if (!fromTask || !toTask)
|
|
320
|
+
return false;
|
|
321
|
+
// 去重追加
|
|
322
|
+
if (!fromTask.blocks.includes(toId)) {
|
|
323
|
+
fromTask.blocks.push(toId);
|
|
324
|
+
fromTask.updatedAt = Date.now();
|
|
325
|
+
}
|
|
326
|
+
if (!toTask.blockedBy.includes(fromId)) {
|
|
327
|
+
toTask.blockedBy.push(fromId);
|
|
328
|
+
toTask.updatedAt = Date.now();
|
|
329
|
+
}
|
|
330
|
+
(0, log_1.logInfo)(`[${agentId}] TodoTask block: #${fromId} blocks #${toId}`);
|
|
331
|
+
this.syncTodoTasksToTodos(agentId);
|
|
332
|
+
return true;
|
|
333
|
+
}
|
|
334
|
+
/**
|
|
335
|
+
* 从持久化数据恢复 TodoTask 列表(主代理)
|
|
336
|
+
*/
|
|
337
|
+
restoreTodoTasks(tasks) {
|
|
338
|
+
// 兼容旧数据:补充 blocks/blockedBy 默认值
|
|
339
|
+
const normalized = tasks.map(t => ({
|
|
340
|
+
...t,
|
|
341
|
+
blocks: t.blocks ?? [],
|
|
342
|
+
blockedBy: t.blockedBy ?? [],
|
|
343
|
+
}));
|
|
344
|
+
this.todoTasksMap.set(exports.MAIN_AGENT_ID, normalized);
|
|
345
|
+
(0, log_1.logInfo)(`TodoTasks restored: ${tasks.length} 项`);
|
|
346
|
+
}
|
|
347
|
+
/**
|
|
348
|
+
* 从旧版 TodoItem 格式恢复为 TodoTask(兼容旧历史数据)
|
|
349
|
+
*/
|
|
350
|
+
restoreTodoTasksFromLegacy(todos) {
|
|
351
|
+
const now = Date.now();
|
|
352
|
+
const tasks = todos.map((todo, index) => ({
|
|
353
|
+
id: todo.id || crypto.randomBytes(4).toString('hex'),
|
|
354
|
+
subject: todo.content,
|
|
355
|
+
description: todo.content,
|
|
356
|
+
status: todo.status,
|
|
357
|
+
activeForm: todo.activeForm || todo.content,
|
|
358
|
+
blocks: [],
|
|
359
|
+
blockedBy: [],
|
|
360
|
+
createdAt: now,
|
|
361
|
+
updatedAt: now,
|
|
362
|
+
}));
|
|
363
|
+
this.todoTasksMap.set(exports.MAIN_AGENT_ID, tasks);
|
|
364
|
+
(0, log_1.logInfo)(`TodoTasks restored from legacy todos: ${tasks.length} 项`);
|
|
365
|
+
}
|
|
366
|
+
/**
|
|
367
|
+
* 将 TodoTask 列表同步到 todosMap 并触发 UI 更新事件
|
|
368
|
+
*/
|
|
369
|
+
syncTodoTasksToTodos(agentId) {
|
|
370
|
+
const tasks = this.getTodoTasks(agentId);
|
|
371
|
+
// 排序:completed > in_progress > pending;pending 中被阻塞的排最后
|
|
372
|
+
const statusOrder = { completed: 0, in_progress: 1, pending: 2 };
|
|
373
|
+
const completedIds = new Set(tasks.filter(t => t.status === 'completed').map(t => t.id));
|
|
374
|
+
const sorted = [...tasks].sort((a, b) => {
|
|
375
|
+
const oa = statusOrder[a.status] ?? 3;
|
|
376
|
+
const ob = statusOrder[b.status] ?? 3;
|
|
377
|
+
if (oa !== ob)
|
|
378
|
+
return oa - ob;
|
|
379
|
+
// 同为 pending 时,被阻塞(且阻塞者未完成)的排后面
|
|
380
|
+
if (a.status === 'pending' && b.status === 'pending') {
|
|
381
|
+
const aBlocked = a.blockedBy.some(id => !completedIds.has(id));
|
|
382
|
+
const bBlocked = b.blockedBy.some(id => !completedIds.has(id));
|
|
383
|
+
if (aBlocked !== bBlocked)
|
|
384
|
+
return aBlocked ? 1 : -1;
|
|
385
|
+
}
|
|
386
|
+
return 0;
|
|
387
|
+
});
|
|
388
|
+
const todos = sorted.map(t => ({
|
|
389
|
+
id: t.id,
|
|
390
|
+
content: t.subject,
|
|
391
|
+
status: t.status,
|
|
392
|
+
activeForm: t.activeForm || t.subject,
|
|
393
|
+
}));
|
|
394
|
+
this.todosMap.set(agentId, todos);
|
|
395
|
+
if (agentId === exports.MAIN_AGENT_ID) {
|
|
396
|
+
this.emitTodosUpdateEvent(todos);
|
|
397
|
+
}
|
|
398
|
+
}
|
|
399
|
+
// ============================================================
|
|
186
400
|
// 代理状态管理(按代理隔离)
|
|
187
401
|
// ============================================================
|
|
188
402
|
/**
|
|
@@ -230,6 +444,60 @@ class StateManager {
|
|
|
230
444
|
getCurrentState(agentId = exports.MAIN_AGENT_ID) {
|
|
231
445
|
return this.getAgentState(agentId).currentState;
|
|
232
446
|
}
|
|
447
|
+
// ============================================================
|
|
448
|
+
// 前台 Agent 管理(共享状态)
|
|
449
|
+
// ============================================================
|
|
450
|
+
addForegroundAgent(taskId) {
|
|
451
|
+
this.foregroundAgents.add(taskId);
|
|
452
|
+
}
|
|
453
|
+
removeForegroundAgent(taskId) {
|
|
454
|
+
this.foregroundAgents.delete(taskId);
|
|
455
|
+
}
|
|
456
|
+
getForegroundAgentIds() {
|
|
457
|
+
return Array.from(this.foregroundAgents);
|
|
458
|
+
}
|
|
459
|
+
clearForegroundAgents() {
|
|
460
|
+
this.foregroundAgents.clear();
|
|
461
|
+
}
|
|
462
|
+
// ============================================================
|
|
463
|
+
// 待处理用户输入队列管理(共享状态)
|
|
464
|
+
// ============================================================
|
|
465
|
+
/**
|
|
466
|
+
* 添加待处理输入到队列末尾
|
|
467
|
+
*/
|
|
468
|
+
addPendingUserInput(item) {
|
|
469
|
+
this.pendingUserInputs.push(item);
|
|
470
|
+
}
|
|
471
|
+
/**
|
|
472
|
+
* 获取待处理输入队列长度
|
|
473
|
+
*/
|
|
474
|
+
getPendingUserInputsLength() {
|
|
475
|
+
return this.pendingUserInputs.length;
|
|
476
|
+
}
|
|
477
|
+
/**
|
|
478
|
+
* 从队头连续取 inject 类型,遇到 command 停止
|
|
479
|
+
* 取出的从队列移除,command 及之后保留
|
|
480
|
+
*/
|
|
481
|
+
consumeInjectInputsBeforeNextCommand() {
|
|
482
|
+
const result = [];
|
|
483
|
+
while (this.pendingUserInputs.length > 0 &&
|
|
484
|
+
this.pendingUserInputs[0].type === 'inject') {
|
|
485
|
+
result.push(this.pendingUserInputs.shift());
|
|
486
|
+
}
|
|
487
|
+
return result;
|
|
488
|
+
}
|
|
489
|
+
/**
|
|
490
|
+
* 消费全部剩余输入并清空队列
|
|
491
|
+
*/
|
|
492
|
+
consumeAllPendingInputs() {
|
|
493
|
+
return this.pendingUserInputs.splice(0);
|
|
494
|
+
}
|
|
495
|
+
/**
|
|
496
|
+
* 清空待处理输入队列
|
|
497
|
+
*/
|
|
498
|
+
clearPendingUserInputs() {
|
|
499
|
+
this.pendingUserInputs = [];
|
|
500
|
+
}
|
|
233
501
|
/**
|
|
234
502
|
* 清空所有状态数据
|
|
235
503
|
*/
|
|
@@ -239,10 +507,13 @@ class StateManager {
|
|
|
239
507
|
this.messageHistoryMap.clear();
|
|
240
508
|
this.readFileTimestampsMap.clear();
|
|
241
509
|
this.todosMap.clear();
|
|
510
|
+
this.todoTasksMap.clear();
|
|
242
511
|
// 重置共享状态
|
|
243
512
|
this.currentAbortController = null;
|
|
244
513
|
this.globalEditPermissionGranted = false;
|
|
245
514
|
this.planModeInfoSent = false;
|
|
515
|
+
this.foregroundAgents.clear();
|
|
516
|
+
this.clearPendingUserInputs();
|
|
246
517
|
(0, log_1.logInfo)(`所有状态数据已清空`);
|
|
247
518
|
}
|
|
248
519
|
/**
|
|
@@ -254,6 +525,7 @@ class StateManager {
|
|
|
254
525
|
this.messageHistoryMap.delete(agentId);
|
|
255
526
|
this.readFileTimestampsMap.delete(agentId);
|
|
256
527
|
this.todosMap.delete(agentId);
|
|
528
|
+
this.todoTasksMap.delete(agentId);
|
|
257
529
|
(0, log_1.logInfo)(`[${agentId}] 所有隔离状态已清理`);
|
|
258
530
|
}
|
|
259
531
|
}
|
|
@@ -264,9 +536,11 @@ class StateManager {
|
|
|
264
536
|
try {
|
|
265
537
|
const messageHistory = this.getMessageHistory();
|
|
266
538
|
const todos = this.getTodos();
|
|
539
|
+
const todoTasks = this.listTodoTasks(exports.MAIN_AGENT_ID);
|
|
540
|
+
const readFileTimestamps = this.getReadFileTimestamps(exports.MAIN_AGENT_ID);
|
|
267
541
|
const workingDir = (0, ConfManager_1.getConfManager)().getCoreConfig()?.workingDir;
|
|
268
542
|
if (this.sessionId && messageHistory.length > 0) {
|
|
269
|
-
await (0, history_1.saveHistory)(this.sessionId, messageHistory, todos, workingDir);
|
|
543
|
+
await (0, history_1.saveHistory)(this.sessionId, messageHistory, todos, workingDir, readFileTimestamps, todoTasks);
|
|
270
544
|
// logInfo(`saveHistory: ${JSON.stringify(messageHistory, null, 2)}`)
|
|
271
545
|
(0, log_1.logInfo)(`会话历史已保存: ${this.sessionId}`);
|
|
272
546
|
}
|
|
@@ -326,18 +600,27 @@ class StateManager {
|
|
|
326
600
|
},
|
|
327
601
|
// 消息历史管理
|
|
328
602
|
getMessageHistory: () => this.getMessageHistory(agentId),
|
|
329
|
-
setMessageHistory: (messages) => this.setMessageHistory(messages, agentId),
|
|
603
|
+
setMessageHistory: (messages, skipAutoSave) => this.setMessageHistory(messages, agentId, skipAutoSave),
|
|
330
604
|
finalizeMessages: (messages) => {
|
|
331
605
|
this.setMessageHistory(messages, agentId);
|
|
332
606
|
this.updateState('idle', agentId);
|
|
333
607
|
},
|
|
608
|
+
flushHistory: () => this.saveSessionHistory(),
|
|
334
609
|
// 文件读取时间戳管理
|
|
335
610
|
getReadFileTimestamps: () => this.getReadFileTimestamps(agentId),
|
|
336
611
|
getReadFileTimestamp: (filePath) => this.getReadFileTimestamp(filePath, agentId),
|
|
337
612
|
setReadFileTimestamp: (filePath, timestamp) => this.setReadFileTimestamp(filePath, timestamp, agentId),
|
|
613
|
+
setReadFileTimestamps: (timestamps) => this.setReadFileTimestamps(timestamps, agentId),
|
|
338
614
|
// 状态管理
|
|
339
615
|
getCurrentState: () => this.getCurrentState(agentId),
|
|
340
616
|
updateState: (state) => this.updateState(state, agentId),
|
|
617
|
+
// TodoTask CRUD
|
|
618
|
+
createTodoTask: (task) => this.createTodoTask(agentId, task),
|
|
619
|
+
getTodoTask: (taskId) => this.getTodoTask(agentId, taskId),
|
|
620
|
+
listTodoTasks: () => this.listTodoTasks(agentId),
|
|
621
|
+
updateTodoTask: (taskId, updates) => this.updateTodoTask(agentId, taskId, updates),
|
|
622
|
+
deleteTodoTask: (taskId) => this.deleteTodoTask(agentId, taskId),
|
|
623
|
+
blockTask: (fromId, toId) => this.blockTask(agentId, fromId, toId),
|
|
341
624
|
// 清理
|
|
342
625
|
clearAllState: () => {
|
|
343
626
|
if (isSubagent) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StateManager.js","sourceRoot":"","sources":["../../src/manager/StateManager.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"StateManager.js","sourceRoot":"","sources":["../../src/manager/StateManager.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
import { TaskRecord, TaskListItem, TimeoutTransferContext } from '../types/task';
|
|
2
|
+
export declare class TaskManager {
|
|
3
|
+
private static MAX_FINISHED_TASKS;
|
|
4
|
+
private static MAX_RUNNING_TASKS;
|
|
5
|
+
private tasks;
|
|
6
|
+
private watchers;
|
|
7
|
+
private notifyCallback;
|
|
8
|
+
setNotifyCallback(cb: (msg: string) => void): void;
|
|
9
|
+
getTask(taskId: string): TaskRecord | undefined;
|
|
10
|
+
getTasks(): TaskRecord[];
|
|
11
|
+
getTaskList(): TaskListItem[];
|
|
12
|
+
getRunningTasks(): TaskRecord[];
|
|
13
|
+
/**
|
|
14
|
+
* 订阅任务的流式输出(UI 打开任务详情面板时调用)
|
|
15
|
+
* 立即补发已有输出,后续增量实时推送
|
|
16
|
+
* @returns unwatch 函数,UI 关闭面板时调用
|
|
17
|
+
*/
|
|
18
|
+
watchTask(taskId: string, onDelta: (delta: string) => void): () => void;
|
|
19
|
+
/**
|
|
20
|
+
* 为 run_in_background=true 的命令 spawn 独立进程
|
|
21
|
+
*/
|
|
22
|
+
spawnBashTask(command: string, toolUseId: string, agentContext: any): {
|
|
23
|
+
taskId: string;
|
|
24
|
+
filepath: string;
|
|
25
|
+
};
|
|
26
|
+
/**
|
|
27
|
+
* 接管超时的持久 shell 进程
|
|
28
|
+
*/
|
|
29
|
+
takeoverTask(ctx: TimeoutTransferContext, command: string, toolUseId: string, agentContext: any): {
|
|
30
|
+
taskId: string;
|
|
31
|
+
filepath: string;
|
|
32
|
+
};
|
|
33
|
+
/**
|
|
34
|
+
* 注册前台 Agent 任务(不启动独立执行,仅创建 record 用于转后台)
|
|
35
|
+
*/
|
|
36
|
+
registerForegroundAgent(taskId: string, description: string, toolUseId: string, abortController: AbortController, unlinkAbort: () => void, agentType?: string): void;
|
|
37
|
+
/**
|
|
38
|
+
* 设置前台 agent 的转后台 resolve 回调
|
|
39
|
+
*/
|
|
40
|
+
setTransferResolve(taskId: string, resolve: () => void): void;
|
|
41
|
+
/**
|
|
42
|
+
* 将指定前台 agent 转为后台运行
|
|
43
|
+
* 1. 解除子AC与主AC的联动
|
|
44
|
+
* 2. resolve transferSignal,让 Agent.ts 的 Promise.race 立刻返回
|
|
45
|
+
* 3. 标记 foreground=false
|
|
46
|
+
*/
|
|
47
|
+
transferToBackground(taskId: string): boolean;
|
|
48
|
+
/**
|
|
49
|
+
* 将所有前台 agent 转为后台
|
|
50
|
+
* @returns 被转的 taskId 列表
|
|
51
|
+
*/
|
|
52
|
+
transferAllForeground(): string[];
|
|
53
|
+
/**
|
|
54
|
+
* 完结 Agent 任务记录(供 Agent.ts 在前台/转后台完成时调用)
|
|
55
|
+
*/
|
|
56
|
+
finalizeTask(taskId: string, exitCode: number, output?: string, usage?: {
|
|
57
|
+
totalTokens: number;
|
|
58
|
+
toolUses: number;
|
|
59
|
+
durationMs: number;
|
|
60
|
+
}): void;
|
|
61
|
+
/**
|
|
62
|
+
* 为后台 Agent 创建任务记录并异步执行
|
|
63
|
+
* @param taskId 复用 Agent.ts 已生成的 taskId
|
|
64
|
+
* @param description 任务描述(用于通知摘要)
|
|
65
|
+
* @param toolUseId 触发该任务的 tool_use_id
|
|
66
|
+
* @param executeFn 实际执行函数,接收独立 AbortController,返回结果文本和可选的 usage 统计
|
|
67
|
+
*/
|
|
68
|
+
spawnAgentTask(taskId: string, description: string, toolUseId: string, executeFn: (abortController: AbortController) => Promise<string | {
|
|
69
|
+
result: string;
|
|
70
|
+
usage?: {
|
|
71
|
+
totalTokens: number;
|
|
72
|
+
toolUses: number;
|
|
73
|
+
durationMs: number;
|
|
74
|
+
};
|
|
75
|
+
}>, agentType?: string): {
|
|
76
|
+
taskId: string;
|
|
77
|
+
filepath: string;
|
|
78
|
+
};
|
|
79
|
+
/**
|
|
80
|
+
* 停止所有正在运行的任务
|
|
81
|
+
*/
|
|
82
|
+
stopAllTasks(): number;
|
|
83
|
+
/**
|
|
84
|
+
* 停止指定任务
|
|
85
|
+
*/
|
|
86
|
+
stopTask(taskId: string): boolean;
|
|
87
|
+
/**
|
|
88
|
+
* 等待任务完成(Promise)
|
|
89
|
+
* @param onChunk 每次有新增输出时回调,参数为 delta(增量内容)
|
|
90
|
+
*/
|
|
91
|
+
waitForTask(taskId: string, timeout?: number, onChunk?: (delta: string) => void, abortSignal?: AbortSignal): Promise<TaskRecord>;
|
|
92
|
+
/**
|
|
93
|
+
* 清理所有资源
|
|
94
|
+
*/
|
|
95
|
+
dispose(): void;
|
|
96
|
+
private _notifyWatchers;
|
|
97
|
+
private _formatTaskSummary;
|
|
98
|
+
private _finishTask;
|
|
99
|
+
/**
|
|
100
|
+
* 清理已结束的任务,只保留最新的 MAX_FINISHED_TASKS 个
|
|
101
|
+
*/
|
|
102
|
+
private _pruneFinishedTasks;
|
|
103
|
+
private _notify;
|
|
104
|
+
}
|
|
105
|
+
export declare function getTaskManager(): TaskManager;
|
|
106
|
+
//# sourceMappingURL=TaskManager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TaskManager.d.ts","sourceRoot":"","sources":["../../src/manager/TaskManager.ts"],"names":[],"mappings":"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"}
|