wave-agent-sdk 0.4.0 → 0.6.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (190) hide show
  1. package/dist/agent.d.ts +42 -11
  2. package/dist/agent.d.ts.map +1 -1
  3. package/dist/agent.js +114 -115
  4. package/dist/constants/prompts.d.ts +18 -14
  5. package/dist/constants/prompts.d.ts.map +1 -1
  6. package/dist/constants/prompts.js +130 -54
  7. package/dist/constants/tools.d.ts +6 -3
  8. package/dist/constants/tools.d.ts.map +1 -1
  9. package/dist/constants/tools.js +6 -3
  10. package/dist/index.d.ts +1 -0
  11. package/dist/index.d.ts.map +1 -1
  12. package/dist/index.js +1 -0
  13. package/dist/managers/MemoryRuleManager.js +1 -1
  14. package/dist/managers/aiManager.d.ts +5 -3
  15. package/dist/managers/aiManager.d.ts.map +1 -1
  16. package/dist/managers/aiManager.js +57 -20
  17. package/dist/managers/backgroundBashManager.d.ts.map +1 -1
  18. package/dist/managers/backgroundBashManager.js +1 -0
  19. package/dist/managers/backgroundTaskManager.d.ts +35 -0
  20. package/dist/managers/backgroundTaskManager.d.ts.map +1 -0
  21. package/dist/managers/backgroundTaskManager.js +255 -0
  22. package/dist/managers/foregroundTaskManager.d.ts +9 -0
  23. package/dist/managers/foregroundTaskManager.d.ts.map +1 -0
  24. package/dist/managers/foregroundTaskManager.js +21 -0
  25. package/dist/managers/liveConfigManager.d.ts +1 -1
  26. package/dist/managers/lspManager.d.ts.map +1 -1
  27. package/dist/managers/lspManager.js +3 -1
  28. package/dist/managers/mcpManager.d.ts.map +1 -1
  29. package/dist/managers/messageManager.d.ts +26 -12
  30. package/dist/managers/messageManager.d.ts.map +1 -1
  31. package/dist/managers/messageManager.js +138 -64
  32. package/dist/managers/permissionManager.d.ts.map +1 -1
  33. package/dist/managers/permissionManager.js +26 -22
  34. package/dist/managers/planManager.d.ts +1 -1
  35. package/dist/managers/planManager.d.ts.map +1 -1
  36. package/dist/managers/planManager.js +2 -2
  37. package/dist/managers/pluginManager.d.ts.map +1 -1
  38. package/dist/managers/pluginManager.js +3 -2
  39. package/dist/managers/slashCommandManager.d.ts +6 -0
  40. package/dist/managers/slashCommandManager.d.ts.map +1 -1
  41. package/dist/managers/slashCommandManager.js +8 -2
  42. package/dist/managers/subagentManager.d.ts +15 -2
  43. package/dist/managers/subagentManager.d.ts.map +1 -1
  44. package/dist/managers/subagentManager.js +153 -39
  45. package/dist/managers/toolManager.d.ts +18 -1
  46. package/dist/managers/toolManager.d.ts.map +1 -1
  47. package/dist/managers/toolManager.js +29 -5
  48. package/dist/services/GitService.d.ts.map +1 -1
  49. package/dist/services/GitService.js +6 -2
  50. package/dist/services/MarketplaceService.d.ts +2 -2
  51. package/dist/services/MarketplaceService.d.ts.map +1 -1
  52. package/dist/services/MarketplaceService.js +18 -11
  53. package/dist/services/MemoryRuleService.d.ts +1 -1
  54. package/dist/services/MemoryRuleService.d.ts.map +1 -1
  55. package/dist/services/MemoryRuleService.js +13 -2
  56. package/dist/services/aiService.d.ts +0 -1
  57. package/dist/services/aiService.d.ts.map +1 -1
  58. package/dist/services/aiService.js +4 -140
  59. package/dist/services/memory.d.ts +0 -3
  60. package/dist/services/memory.d.ts.map +1 -1
  61. package/dist/services/memory.js +1 -60
  62. package/dist/services/session.d.ts +15 -1
  63. package/dist/services/session.d.ts.map +1 -1
  64. package/dist/services/session.js +57 -1
  65. package/dist/services/taskManager.d.ts +21 -0
  66. package/dist/services/taskManager.d.ts.map +1 -0
  67. package/dist/services/taskManager.js +158 -0
  68. package/dist/tools/askUserQuestion.d.ts.map +1 -1
  69. package/dist/tools/askUserQuestion.js +39 -25
  70. package/dist/tools/bashTool.d.ts +0 -8
  71. package/dist/tools/bashTool.d.ts.map +1 -1
  72. package/dist/tools/bashTool.js +48 -172
  73. package/dist/tools/editTool.d.ts.map +1 -1
  74. package/dist/tools/editTool.js +8 -6
  75. package/dist/tools/exitPlanMode.d.ts.map +1 -1
  76. package/dist/tools/exitPlanMode.js +25 -1
  77. package/dist/tools/globTool.d.ts.map +1 -1
  78. package/dist/tools/globTool.js +8 -2
  79. package/dist/tools/grepTool.d.ts.map +1 -1
  80. package/dist/tools/grepTool.js +17 -6
  81. package/dist/tools/lsTool.d.ts.map +1 -1
  82. package/dist/tools/lsTool.js +3 -1
  83. package/dist/tools/multiEditTool.d.ts.map +1 -1
  84. package/dist/tools/multiEditTool.js +7 -6
  85. package/dist/tools/readTool.d.ts.map +1 -1
  86. package/dist/tools/readTool.js +16 -1
  87. package/dist/tools/taskManagementTools.d.ts +6 -0
  88. package/dist/tools/taskManagementTools.d.ts.map +1 -0
  89. package/dist/tools/taskManagementTools.js +453 -0
  90. package/dist/tools/taskOutputTool.d.ts +3 -0
  91. package/dist/tools/taskOutputTool.d.ts.map +1 -0
  92. package/dist/tools/taskOutputTool.js +173 -0
  93. package/dist/tools/taskStopTool.d.ts +3 -0
  94. package/dist/tools/taskStopTool.d.ts.map +1 -0
  95. package/dist/tools/taskStopTool.js +71 -0
  96. package/dist/tools/taskTool.d.ts.map +1 -1
  97. package/dist/tools/taskTool.js +110 -63
  98. package/dist/tools/types.d.ts +12 -0
  99. package/dist/tools/types.d.ts.map +1 -1
  100. package/dist/tools/writeTool.d.ts.map +1 -1
  101. package/dist/tools/writeTool.js +9 -1
  102. package/dist/types/index.d.ts +1 -0
  103. package/dist/types/index.d.ts.map +1 -1
  104. package/dist/types/index.js +1 -0
  105. package/dist/types/marketplace.d.ts +1 -0
  106. package/dist/types/marketplace.d.ts.map +1 -1
  107. package/dist/types/messaging.d.ts +3 -8
  108. package/dist/types/messaging.d.ts.map +1 -1
  109. package/dist/types/processes.d.ts +29 -4
  110. package/dist/types/processes.d.ts.map +1 -1
  111. package/dist/types/tasks.d.ts +13 -0
  112. package/dist/types/tasks.d.ts.map +1 -0
  113. package/dist/types/tasks.js +1 -0
  114. package/dist/types/tools.d.ts +4 -1
  115. package/dist/types/tools.d.ts.map +1 -1
  116. package/dist/utils/builtinSubagents.d.ts.map +1 -1
  117. package/dist/utils/builtinSubagents.js +38 -1
  118. package/dist/utils/cacheControlUtils.d.ts.map +1 -1
  119. package/dist/utils/cacheControlUtils.js +18 -12
  120. package/dist/utils/constants.d.ts +0 -4
  121. package/dist/utils/constants.d.ts.map +1 -1
  122. package/dist/utils/constants.js +0 -4
  123. package/dist/utils/convertMessagesForAPI.js +2 -2
  124. package/dist/utils/editUtils.d.ts +2 -11
  125. package/dist/utils/editUtils.d.ts.map +1 -1
  126. package/dist/utils/editUtils.js +52 -79
  127. package/dist/utils/messageOperations.d.ts +5 -36
  128. package/dist/utils/messageOperations.d.ts.map +1 -1
  129. package/dist/utils/messageOperations.js +9 -98
  130. package/dist/utils/nameGenerator.d.ts +1 -1
  131. package/dist/utils/nameGenerator.d.ts.map +1 -1
  132. package/dist/utils/nameGenerator.js +19 -3
  133. package/package.json +5 -5
  134. package/src/agent.ts +157 -134
  135. package/src/constants/prompts.ts +156 -65
  136. package/src/constants/tools.ts +6 -3
  137. package/src/index.ts +1 -0
  138. package/src/managers/MemoryRuleManager.ts +1 -1
  139. package/src/managers/aiManager.ts +77 -35
  140. package/src/managers/backgroundBashManager.ts +1 -0
  141. package/src/managers/backgroundTaskManager.ts +305 -0
  142. package/src/managers/foregroundTaskManager.ts +27 -0
  143. package/src/managers/lspManager.ts +3 -1
  144. package/src/managers/mcpManager.ts +6 -3
  145. package/src/managers/messageManager.ts +185 -75
  146. package/src/managers/permissionManager.ts +33 -28
  147. package/src/managers/planManager.ts +2 -2
  148. package/src/managers/pluginManager.ts +4 -3
  149. package/src/managers/slashCommandManager.ts +15 -2
  150. package/src/managers/subagentManager.ts +194 -35
  151. package/src/managers/toolManager.ts +48 -6
  152. package/src/services/GitService.ts +6 -2
  153. package/src/services/MarketplaceService.ts +30 -12
  154. package/src/services/MemoryRuleService.ts +18 -6
  155. package/src/services/aiService.ts +3 -145
  156. package/src/services/memory.ts +1 -73
  157. package/src/services/session.ts +73 -0
  158. package/src/services/taskManager.ts +188 -0
  159. package/src/tools/askUserQuestion.ts +51 -29
  160. package/src/tools/bashTool.ts +63 -196
  161. package/src/tools/editTool.ts +9 -18
  162. package/src/tools/exitPlanMode.ts +26 -2
  163. package/src/tools/globTool.ts +10 -2
  164. package/src/tools/grepTool.ts +17 -6
  165. package/src/tools/lsTool.ts +3 -1
  166. package/src/tools/multiEditTool.ts +7 -18
  167. package/src/tools/readTool.ts +17 -1
  168. package/src/tools/taskManagementTools.ts +498 -0
  169. package/src/tools/taskOutputTool.ts +196 -0
  170. package/src/tools/taskStopTool.ts +78 -0
  171. package/src/tools/taskTool.ts +136 -74
  172. package/src/tools/types.ts +13 -0
  173. package/src/tools/writeTool.ts +9 -2
  174. package/src/types/index.ts +1 -0
  175. package/src/types/marketplace.ts +1 -0
  176. package/src/types/messaging.ts +2 -9
  177. package/src/types/processes.ts +39 -4
  178. package/src/types/tasks.ts +13 -0
  179. package/src/types/tools.ts +4 -1
  180. package/src/utils/builtinSubagents.ts +47 -1
  181. package/src/utils/cacheControlUtils.ts +26 -18
  182. package/src/utils/constants.ts +0 -5
  183. package/src/utils/convertMessagesForAPI.ts +2 -2
  184. package/src/utils/editUtils.ts +65 -103
  185. package/src/utils/messageOperations.ts +12 -136
  186. package/src/utils/nameGenerator.ts +20 -3
  187. package/dist/tools/todoWriteTool.d.ts +0 -6
  188. package/dist/tools/todoWriteTool.d.ts.map +0 -1
  189. package/dist/tools/todoWriteTool.js +0 -220
  190. package/src/tools/todoWriteTool.ts +0 -257
@@ -0,0 +1,173 @@
1
+ import { TASK_OUTPUT_TOOL_NAME } from "../constants/tools.js";
2
+ import { stripAnsiColors } from "../utils/stringUtils.js";
3
+ const MAX_OUTPUT_LENGTH = 30000;
4
+ export const taskOutputTool = {
5
+ name: TASK_OUTPUT_TOOL_NAME,
6
+ config: {
7
+ type: "function",
8
+ function: {
9
+ name: TASK_OUTPUT_TOOL_NAME,
10
+ description: "Retrieves output from a running or completed task",
11
+ parameters: {
12
+ type: "object",
13
+ properties: {
14
+ task_id: {
15
+ type: "string",
16
+ description: "The task ID to get output from",
17
+ },
18
+ block: {
19
+ type: "boolean",
20
+ default: true,
21
+ description: "Whether to wait for completion",
22
+ },
23
+ timeout: {
24
+ type: "number",
25
+ minimum: 0,
26
+ maximum: 600000,
27
+ default: 30000,
28
+ description: "Max wait time in ms",
29
+ },
30
+ },
31
+ required: ["task_id"],
32
+ },
33
+ },
34
+ },
35
+ prompt: () => `- Retrieves output from a running or completed task (background shell, agent, or remote session)
36
+ - Takes a task_id parameter identifying the task
37
+ - Returns the task output along with status information
38
+ - Use block=true (default) to wait for task completion
39
+ - Use block=false for non-blocking check of current status
40
+ - Task IDs can be found using the /tasks command
41
+ - Works with all task types: background shells, async agents, and remote sessions`,
42
+ execute: async (args, context) => {
43
+ const taskId = args.task_id;
44
+ const filter = args.filter;
45
+ const block = args.block ?? true;
46
+ const timeout = args.timeout ?? 30000;
47
+ if (!taskId || typeof taskId !== "string") {
48
+ return {
49
+ success: false,
50
+ content: "",
51
+ error: "task_id parameter is required and must be a string",
52
+ };
53
+ }
54
+ const backgroundTaskManager = context?.backgroundTaskManager;
55
+ if (!backgroundTaskManager) {
56
+ return {
57
+ success: false,
58
+ content: "",
59
+ error: "Background task manager not available",
60
+ };
61
+ }
62
+ const getResult = () => {
63
+ const output = backgroundTaskManager.getOutput(taskId, filter);
64
+ if (!output)
65
+ return null;
66
+ let content = "";
67
+ if (output.stdout) {
68
+ content += stripAnsiColors(output.stdout);
69
+ }
70
+ if (output.stderr) {
71
+ content += (content ? "\n" : "") + stripAnsiColors(output.stderr);
72
+ }
73
+ const finalContent = content || "No output available";
74
+ const processedContent = finalContent.length > MAX_OUTPUT_LENGTH
75
+ ? finalContent.substring(0, MAX_OUTPUT_LENGTH) +
76
+ "\n\n... (output truncated)"
77
+ : finalContent;
78
+ return {
79
+ success: true,
80
+ content: processedContent,
81
+ shortResult: `${taskId}: ${output.status}`,
82
+ };
83
+ };
84
+ if (block) {
85
+ // Polling for completion
86
+ return new Promise((resolve) => {
87
+ let timeoutHandle = null;
88
+ let isAborted = false;
89
+ const startTime = Date.now();
90
+ const cleanup = () => {
91
+ if (timeoutHandle) {
92
+ clearTimeout(timeoutHandle);
93
+ timeoutHandle = null;
94
+ }
95
+ };
96
+ const onAbort = () => {
97
+ isAborted = true;
98
+ cleanup();
99
+ resolve({
100
+ success: false,
101
+ content: "",
102
+ error: "Task output retrieval was aborted",
103
+ });
104
+ };
105
+ if (context.abortSignal) {
106
+ if (context.abortSignal.aborted) {
107
+ onAbort();
108
+ return;
109
+ }
110
+ context.abortSignal.addEventListener("abort", onAbort, {
111
+ once: true,
112
+ });
113
+ }
114
+ const check = () => {
115
+ if (isAborted)
116
+ return;
117
+ if (Date.now() - startTime > timeout) {
118
+ if (context.abortSignal) {
119
+ context.abortSignal.removeEventListener("abort", onAbort);
120
+ }
121
+ resolve({
122
+ success: true,
123
+ content: "Retrieval timed out",
124
+ shortResult: `${taskId}: timeout`,
125
+ });
126
+ return;
127
+ }
128
+ const task = backgroundTaskManager.getTask(taskId);
129
+ if (!task) {
130
+ if (context.abortSignal) {
131
+ context.abortSignal.removeEventListener("abort", onAbort);
132
+ }
133
+ resolve({
134
+ success: false,
135
+ content: "",
136
+ error: `Task with ID ${taskId} not found`,
137
+ });
138
+ return;
139
+ }
140
+ if (task.status !== "running") {
141
+ if (context.abortSignal) {
142
+ context.abortSignal.removeEventListener("abort", onAbort);
143
+ }
144
+ const result = getResult();
145
+ resolve(result || {
146
+ success: false,
147
+ content: "",
148
+ error: "Task not found",
149
+ });
150
+ }
151
+ else {
152
+ timeoutHandle = setTimeout(check, 500);
153
+ }
154
+ };
155
+ check();
156
+ });
157
+ }
158
+ const result = getResult();
159
+ if (!result) {
160
+ return {
161
+ success: false,
162
+ content: "",
163
+ error: `Task with ID ${taskId} not found`,
164
+ };
165
+ }
166
+ return result;
167
+ },
168
+ formatCompactParams: (params) => {
169
+ const taskId = params.task_id;
170
+ const block = params.block;
171
+ return `${taskId}${block ? " (blocking)" : ""}`;
172
+ },
173
+ };
@@ -0,0 +1,3 @@
1
+ import { ToolPlugin } from "./types.js";
2
+ export declare const taskStopTool: ToolPlugin;
3
+ //# sourceMappingURL=taskStopTool.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"taskStopTool.d.ts","sourceRoot":"","sources":["../../src/tools/taskStopTool.ts"],"names":[],"mappings":"AACA,OAAO,EAAe,UAAU,EAAc,MAAM,YAAY,CAAC;AAEjE,eAAO,MAAM,YAAY,EAAE,UA0E1B,CAAC"}
@@ -0,0 +1,71 @@
1
+ import { TASK_STOP_TOOL_NAME } from "../constants/tools.js";
2
+ export const taskStopTool = {
3
+ name: TASK_STOP_TOOL_NAME,
4
+ config: {
5
+ type: "function",
6
+ function: {
7
+ name: TASK_STOP_TOOL_NAME,
8
+ description: "Stop a running background task by ID",
9
+ parameters: {
10
+ type: "object",
11
+ properties: {
12
+ task_id: {
13
+ type: "string",
14
+ description: "The ID of the background task to stop",
15
+ },
16
+ },
17
+ required: ["task_id"],
18
+ },
19
+ },
20
+ },
21
+ prompt: () => `
22
+ - Stops a running background task by its ID
23
+ - Takes a task_id parameter identifying the task to stop
24
+ - Returns a success or failure status
25
+ - Use this tool when you need to terminate a long-running task
26
+ `,
27
+ execute: async (args, context) => {
28
+ const taskId = args.task_id;
29
+ if (!taskId || typeof taskId !== "string") {
30
+ return {
31
+ success: false,
32
+ content: "",
33
+ error: "task_id parameter is required and must be a string",
34
+ };
35
+ }
36
+ const backgroundTaskManager = context?.backgroundTaskManager;
37
+ if (!backgroundTaskManager) {
38
+ return {
39
+ success: false,
40
+ content: "",
41
+ error: "Background task manager not available",
42
+ };
43
+ }
44
+ const stopped = backgroundTaskManager.stopTask(taskId);
45
+ if (stopped) {
46
+ return {
47
+ success: true,
48
+ content: `Task ${taskId} has been stopped`,
49
+ shortResult: `Stopped ${taskId}`,
50
+ };
51
+ }
52
+ else {
53
+ const task = backgroundTaskManager.getTask(taskId);
54
+ if (!task) {
55
+ return {
56
+ success: false,
57
+ content: "",
58
+ error: `Task with ID ${taskId} not found`,
59
+ };
60
+ }
61
+ return {
62
+ success: false,
63
+ content: "",
64
+ error: `Failed to stop task ${taskId} (status: ${task.status})`,
65
+ };
66
+ }
67
+ },
68
+ formatCompactParams: (params) => {
69
+ return params.task_id;
70
+ },
71
+ };
@@ -1 +1 @@
1
- {"version":3,"file":"taskTool.d.ts","sourceRoot":"","sources":["../../src/tools/taskTool.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAA2B,MAAM,YAAY,CAAC;AACtE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AAGtE;;;GAGG;AACH,wBAAgB,cAAc,CAAC,eAAe,EAAE,eAAe,GAAG,UAAU,CAqI3E"}
1
+ {"version":3,"file":"taskTool.d.ts","sourceRoot":"","sources":["../../src/tools/taskTool.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAA2B,MAAM,YAAY,CAAC;AACtE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AAGtE;;;GAGG;AACH,wBAAgB,cAAc,CAAC,eAAe,EAAE,eAAe,GAAG,UAAU,CAmM3E"}
@@ -38,76 +38,123 @@ export function createTaskTool(subagentManager) {
38
38
  type: "string",
39
39
  description: `The type or name of subagent to use. Available options: ${availableSubagents.map((c) => c.name).join(", ") || "none"}`,
40
40
  },
41
+ run_in_background: {
42
+ type: "boolean",
43
+ description: "Set to true to run this command in the background. Use TaskOutput to read the output later.",
44
+ },
41
45
  },
42
46
  required: ["description", "prompt", "subagent_type"],
43
47
  },
44
48
  },
45
49
  };
46
50
  },
51
+ prompt: () => `
52
+ - When doing file search, prefer to use the ${TASK_TOOL_NAME} tool in order to reduce context usage.
53
+ - You should proactively use the ${TASK_TOOL_NAME} tool with specialized agents when the task at hand matches the agent's description.
54
+ - VERY IMPORTANT: When exploring the codebase to gather context or to answer a question that is not a needle query for a specific file/class/function, it is CRITICAL that you use the ${TASK_TOOL_NAME} tool with subagent_type=Explore instead of running search commands directly.`,
47
55
  execute: async (args, context) => {
48
- // Input validation
49
- const description = args.description;
50
- const prompt = args.prompt;
51
- const subagent_type = args.subagent_type;
52
- if (!description || typeof description !== "string") {
53
- return {
54
- success: false,
55
- content: "",
56
- error: "description parameter is required and must be a string",
57
- shortResult: "Task delegation failed",
58
- };
59
- }
60
- if (!prompt || typeof prompt !== "string") {
61
- return {
62
- success: false,
63
- content: "",
64
- error: "prompt parameter is required and must be a string",
65
- shortResult: "Task delegation failed",
66
- };
67
- }
68
- if (!subagent_type || typeof subagent_type !== "string") {
69
- return {
70
- success: false,
71
- content: "",
72
- error: "subagent_type parameter is required and must be a string",
73
- shortResult: "Task delegation failed",
74
- };
75
- }
76
- try {
77
- // Subagent selection logic with explicit name matching only
78
- const configuration = await subagentManager.findSubagent(subagent_type);
79
- if (!configuration) {
80
- // Error handling for nonexistent subagents with available subagents listing
81
- const allConfigs = subagentManager.getConfigurations();
82
- const availableNames = allConfigs.map((c) => c.name).join(", ");
83
- return {
84
- success: false,
85
- content: "",
86
- error: `No subagent found matching "${subagent_type}". Available subagents: ${availableNames || "none"}`,
87
- shortResult: "Subagent not found",
88
- };
89
- }
90
- // Create subagent instance and execute task
91
- const instance = await subagentManager.createInstance(configuration, {
92
- description,
93
- prompt,
94
- subagent_type,
95
- });
96
- const response = await subagentManager.executeTask(instance, prompt, context.abortSignal);
97
- return {
98
- success: true,
99
- content: response,
100
- shortResult: `Task completed by ${configuration.name}`,
101
- };
102
- }
103
- catch (error) {
104
- return {
105
- success: false,
106
- content: "",
107
- error: `Task delegation failed: ${error instanceof Error ? error.message : String(error)}`,
108
- shortResult: "Delegation error",
109
- };
110
- }
56
+ return new Promise((resolve) => {
57
+ (async () => {
58
+ // Input validation
59
+ const description = args.description;
60
+ const prompt = args.prompt;
61
+ const subagent_type = args.subagent_type;
62
+ const run_in_background = args.run_in_background;
63
+ if (!description || typeof description !== "string") {
64
+ return resolve({
65
+ success: false,
66
+ content: "",
67
+ error: "description parameter is required and must be a string",
68
+ shortResult: "Task delegation failed",
69
+ });
70
+ }
71
+ if (!prompt || typeof prompt !== "string") {
72
+ return resolve({
73
+ success: false,
74
+ content: "",
75
+ error: "prompt parameter is required and must be a string",
76
+ shortResult: "Task delegation failed",
77
+ });
78
+ }
79
+ if (!subagent_type || typeof subagent_type !== "string") {
80
+ return resolve({
81
+ success: false,
82
+ content: "",
83
+ error: "subagent_type parameter is required and must be a string",
84
+ shortResult: "Task delegation failed",
85
+ });
86
+ }
87
+ try {
88
+ // Subagent selection logic with explicit name matching only
89
+ const configuration = await subagentManager.findSubagent(subagent_type);
90
+ if (!configuration) {
91
+ // Error handling for nonexistent subagents with available subagents listing
92
+ const allConfigs = subagentManager.getConfigurations();
93
+ const availableNames = allConfigs.map((c) => c.name).join(", ");
94
+ return resolve({
95
+ success: false,
96
+ content: "",
97
+ error: `No subagent found matching "${subagent_type}". Available subagents: ${availableNames || "none"}`,
98
+ shortResult: "Subagent not found",
99
+ });
100
+ }
101
+ // Create subagent instance and execute task
102
+ const instance = await subagentManager.createInstance(configuration, {
103
+ description,
104
+ prompt,
105
+ subagent_type,
106
+ }, run_in_background);
107
+ let isBackgrounded = false;
108
+ // Register for backgrounding if not already in background
109
+ if (!run_in_background && context.foregroundTaskManager) {
110
+ context.foregroundTaskManager.registerForegroundTask({
111
+ id: instance.subagentId,
112
+ backgroundHandler: async () => {
113
+ isBackgrounded = true;
114
+ const taskId = await subagentManager.backgroundInstance(instance.subagentId);
115
+ // Resolve the tool execution early so the main agent can continue
116
+ resolve({
117
+ success: true,
118
+ content: `Task moved to background with ID: ${taskId}.`,
119
+ shortResult: "Task backgrounded",
120
+ isManuallyBackgrounded: true,
121
+ });
122
+ },
123
+ });
124
+ }
125
+ try {
126
+ const result = await subagentManager.executeTask(instance, prompt, context.abortSignal, run_in_background);
127
+ if (isBackgrounded)
128
+ return;
129
+ if (run_in_background) {
130
+ return resolve({
131
+ success: true,
132
+ content: `Task started in background with ID: ${result}`,
133
+ shortResult: `Task started in background: ${result}`,
134
+ });
135
+ }
136
+ return resolve({
137
+ success: true,
138
+ content: result,
139
+ shortResult: `Task completed by ${configuration.name}`,
140
+ });
141
+ }
142
+ finally {
143
+ if (!run_in_background && context.foregroundTaskManager) {
144
+ context.foregroundTaskManager.unregisterForegroundTask(instance.subagentId);
145
+ }
146
+ }
147
+ }
148
+ catch (error) {
149
+ return resolve({
150
+ success: false,
151
+ content: "",
152
+ error: `Task delegation failed: ${error instanceof Error ? error.message : String(error)}`,
153
+ shortResult: "Delegation error",
154
+ });
155
+ }
156
+ })();
157
+ });
111
158
  },
112
159
  formatCompactParams: (params) => {
113
160
  const subagent_type = params.subagent_type;
@@ -8,6 +8,10 @@ export interface ToolPlugin {
8
8
  config: ChatCompletionFunctionTool;
9
9
  execute: (args: Record<string, unknown>, context: ToolContext) => Promise<ToolResult>;
10
10
  formatCompactParams?: (params: Record<string, unknown>, context: ToolContext) => string;
11
+ /**
12
+ * Optional function to provide a prompt to be added to the system prompt
13
+ */
14
+ prompt?: () => string;
11
15
  }
12
16
  export interface ToolResult {
13
17
  success: boolean;
@@ -19,10 +23,12 @@ export interface ToolResult {
19
23
  data: string;
20
24
  mediaType?: string;
21
25
  }>;
26
+ isManuallyBackgrounded?: boolean;
22
27
  }
23
28
  export interface ToolContext {
24
29
  abortSignal?: AbortSignal;
25
30
  backgroundBashManager?: import("../managers/backgroundBashManager.js").BackgroundBashManager;
31
+ backgroundTaskManager?: import("../managers/backgroundTaskManager.js").BackgroundTaskManager;
26
32
  workdir: string;
27
33
  /** Permission mode for this tool execution */
28
34
  permissionMode?: PermissionMode;
@@ -38,5 +44,11 @@ export interface ToolContext {
38
44
  reversionManager?: import("../managers/reversionManager.js").ReversionManager;
39
45
  /** Current message ID for associating snapshots */
40
46
  messageId?: string;
47
+ /** Foreground task manager for backgrounding tasks */
48
+ foregroundTaskManager?: import("../types/processes.js").IForegroundTaskManager;
49
+ /** Task manager instance for task management */
50
+ taskManager: import("../services/taskManager.js").TaskManager;
51
+ /** Current session ID */
52
+ sessionId?: string;
41
53
  }
42
54
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/tools/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,0BAA0B,EAAE,MAAM,qBAAqB,CAAC;AACjE,OAAO,KAAK,EACV,cAAc,EACd,kBAAkB,EACnB,MAAM,yBAAyB,CAAC;AAEjC,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,0BAA0B,CAAC;IACnC,OAAO,EAAE,CACP,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,OAAO,EAAE,WAAW,KACjB,OAAO,CAAC,UAAU,CAAC,CAAC;IACzB,mBAAmB,CAAC,EAAE,CACpB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,OAAO,EAAE,WAAW,KACjB,MAAM,CAAC;CACb;AAED,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,MAAM,CAAC,EAAE,KAAK,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC,CAAC;CACJ;AAED,MAAM,WAAW,WAAW;IAC1B,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,qBAAqB,CAAC,EAAE,OAAO,sCAAsC,EAAE,qBAAqB,CAAC;IAC7F,OAAO,EAAE,MAAM,CAAC;IAChB,8CAA8C;IAC9C,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,iCAAiC;IACjC,kBAAkB,CAAC,EAAE,kBAAkB,CAAC;IACxC,wDAAwD;IACxD,iBAAiB,CAAC,EAAE,OAAO,kCAAkC,EAAE,iBAAiB,CAAC;IACjF,iDAAiD;IACjD,UAAU,CAAC,EAAE,OAAO,2BAA2B,EAAE,UAAU,CAAC;IAC5D,iDAAiD;IACjD,UAAU,CAAC,EAAE,OAAO,iBAAiB,EAAE,WAAW,CAAC;IACnD,oDAAoD;IACpD,gBAAgB,CAAC,EAAE,OAAO,iCAAiC,EAAE,gBAAgB,CAAC;IAC9E,mDAAmD;IACnD,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/tools/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,0BAA0B,EAAE,MAAM,qBAAqB,CAAC;AACjE,OAAO,KAAK,EACV,cAAc,EACd,kBAAkB,EACnB,MAAM,yBAAyB,CAAC;AAEjC,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,0BAA0B,CAAC;IACnC,OAAO,EAAE,CACP,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,OAAO,EAAE,WAAW,KACjB,OAAO,CAAC,UAAU,CAAC,CAAC;IACzB,mBAAmB,CAAC,EAAE,CACpB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,OAAO,EAAE,WAAW,KACjB,MAAM,CAAC;IACZ;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,MAAM,CAAC,EAAE,KAAK,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC,CAAC;IAEH,sBAAsB,CAAC,EAAE,OAAO,CAAC;CAClC;AAED,MAAM,WAAW,WAAW;IAC1B,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,qBAAqB,CAAC,EAAE,OAAO,sCAAsC,EAAE,qBAAqB,CAAC;IAC7F,qBAAqB,CAAC,EAAE,OAAO,sCAAsC,EAAE,qBAAqB,CAAC;IAC7F,OAAO,EAAE,MAAM,CAAC;IAChB,8CAA8C;IAC9C,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,iCAAiC;IACjC,kBAAkB,CAAC,EAAE,kBAAkB,CAAC;IACxC,wDAAwD;IACxD,iBAAiB,CAAC,EAAE,OAAO,kCAAkC,EAAE,iBAAiB,CAAC;IACjF,iDAAiD;IACjD,UAAU,CAAC,EAAE,OAAO,2BAA2B,EAAE,UAAU,CAAC;IAC5D,iDAAiD;IACjD,UAAU,CAAC,EAAE,OAAO,iBAAiB,EAAE,WAAW,CAAC;IACnD,oDAAoD;IACpD,gBAAgB,CAAC,EAAE,OAAO,iCAAiC,EAAE,gBAAgB,CAAC;IAC9E,mDAAmD;IACnD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,sDAAsD;IACtD,qBAAqB,CAAC,EAAE,OAAO,uBAAuB,EAAE,sBAAsB,CAAC;IAC/E,gDAAgD;IAChD,WAAW,EAAE,OAAO,4BAA4B,EAAE,WAAW,CAAC;IAC9D,yBAAyB;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB"}
@@ -1 +1 @@
1
- {"version":3,"file":"writeTool.d.ts","sourceRoot":"","sources":["../../src/tools/writeTool.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAA2B,MAAM,YAAY,CAAC;AAGtE;;GAEG;AACH,eAAO,MAAM,SAAS,EAAE,UA0LvB,CAAC"}
1
+ {"version":3,"file":"writeTool.d.ts","sourceRoot":"","sources":["../../src/tools/writeTool.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAA2B,MAAM,YAAY,CAAC;AAGtE;;GAEG;AACH,eAAO,MAAM,SAAS,EAAE,UAiMvB,CAAC"}
@@ -11,7 +11,7 @@ export const writeTool = {
11
11
  type: "function",
12
12
  function: {
13
13
  name: "Write",
14
- description: "Writes a file to the local filesystem.\n\nUsage:\n- This tool will overwrite the existing file if there is one at the provided path.\n- If this is an existing file, you MUST use the Read tool first to read the file's contents. This tool will fail if you did not read the file first.\n- ALWAYS prefer editing existing files in the codebase. NEVER write new files unless explicitly required.\n- NEVER proactively create documentation files (*.md) or README files. Only create documentation files if explicitly requested by the User.\n- Only use emojis if the user explicitly requests it. Avoid writing emojis to files unless asked.\n- IMPORTANT: Always provide file_path parameter before content parameter when calling this tool.",
14
+ description: "Writes a file to the local filesystem.",
15
15
  parameters: {
16
16
  type: "object",
17
17
  properties: {
@@ -29,6 +29,14 @@ export const writeTool = {
29
29
  },
30
30
  },
31
31
  },
32
+ prompt: () => `
33
+ Usage:
34
+ - This tool will overwrite the existing file if there is one at the provided path.
35
+ - If this is an existing file, you MUST use the Read tool first to read the file's contents. This tool will fail if you did not read the file first.
36
+ - ALWAYS prefer editing existing files in the codebase. NEVER write new files unless explicitly required.
37
+ - NEVER proactively create documentation files (*.md) or README files. Only create documentation files if explicitly requested by the User.
38
+ - Only use emojis if the user explicitly requests it. Avoid writing emojis to files unless asked.
39
+ - IMPORTANT: Always provide file_path parameter before content parameter when calling this tool.`,
32
40
  execute: async (args, context) => {
33
41
  const filePath = args.file_path;
34
42
  const content = args.content;
@@ -29,4 +29,5 @@ export * from "./plugins.js";
29
29
  export * from "./marketplace.js";
30
30
  export * from "./memoryRule.js";
31
31
  export * from "./history.js";
32
+ export * from "./tasks.js";
32
33
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAGH,cAAc,WAAW,CAAC;AAG1B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,UAAU,CAAC;AACzB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,YAAY,CAAC;AAC3B,cAAc,kBAAkB,CAAC;AACjC,cAAc,YAAY,CAAC;AAC3B,cAAc,iBAAiB,CAAC;AAChC,cAAc,UAAU,CAAC;AACzB,cAAc,cAAc,CAAC;AAC7B,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,cAAc,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAGH,cAAc,WAAW,CAAC;AAG1B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,UAAU,CAAC;AACzB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,YAAY,CAAC;AAC3B,cAAc,kBAAkB,CAAC;AACjC,cAAc,YAAY,CAAC;AAC3B,cAAc,iBAAiB,CAAC;AAChC,cAAc,UAAU,CAAC;AACzB,cAAc,cAAc,CAAC;AAC7B,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC"}
@@ -31,3 +31,4 @@ export * from "./plugins.js";
31
31
  export * from "./marketplace.js";
32
32
  export * from "./memoryRule.js";
33
33
  export * from "./history.js";
34
+ export * from "./tasks.js";
@@ -39,6 +39,7 @@ export interface InstalledPlugin {
39
39
  version: string;
40
40
  cachePath: string;
41
41
  scope?: Scope;
42
+ projectPath?: string;
42
43
  }
43
44
  export interface InstalledPluginsRegistry {
44
45
  plugins: InstalledPlugin[];
@@ -1 +1 @@
1
- {"version":3,"file":"marketplace.d.ts","sourceRoot":"","sources":["../../src/types/marketplace.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAE3C,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,gBAAgB,CAAC;IACxB,OAAO,EAAE,sBAAsB,EAAE,CAAC;CACnC;AAED,MAAM,MAAM,iBAAiB,GACzB;IACE,MAAM,EAAE,WAAW,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;CACd,GACD;IACE,MAAM,EAAE,QAAQ,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;CACd,GACD;IACE,MAAM,EAAE,KAAK,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,CAAC,EAAE,MAAM,CAAC;CACd,CAAC;AAEN,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,iBAAiB,CAAC;IAC1B,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,MAAM,WAAW,yBAAyB;IACxC,YAAY,EAAE,gBAAgB,EAAE,CAAC;CAClC;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,KAAK,CAAC;CACf;AAED,MAAM,WAAW,wBAAwB;IACvC,OAAO,EAAE,eAAe,EAAE,CAAC;CAC5B"}
1
+ {"version":3,"file":"marketplace.d.ts","sourceRoot":"","sources":["../../src/types/marketplace.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAE3C,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,gBAAgB,CAAC;IACxB,OAAO,EAAE,sBAAsB,EAAE,CAAC;CACnC;AAED,MAAM,MAAM,iBAAiB,GACzB;IACE,MAAM,EAAE,WAAW,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;CACd,GACD;IACE,MAAM,EAAE,QAAQ,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;CACd,GACD;IACE,MAAM,EAAE,KAAK,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,CAAC,EAAE,MAAM,CAAC;CACd,CAAC;AAEN,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,iBAAiB,CAAC;IAC1B,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,MAAM,WAAW,yBAAyB;IACxC,YAAY,EAAE,gBAAgB,EAAE,CAAC;CAClC;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,wBAAwB;IACvC,OAAO,EAAE,eAAe,EAAE,CAAC;CAC5B"}
@@ -15,7 +15,7 @@ export interface Message {
15
15
  usage?: Usage;
16
16
  additionalFields?: Record<string, unknown>;
17
17
  }
18
- export type MessageBlock = TextBlock | ErrorBlock | ToolBlock | ImageBlock | CommandOutputBlock | CompressBlock | MemoryBlock | SubagentBlock | ReasoningBlock | FileHistoryBlock;
18
+ export type MessageBlock = TextBlock | ErrorBlock | ToolBlock | ImageBlock | CommandOutputBlock | CompressBlock | SubagentBlock | ReasoningBlock | FileHistoryBlock;
19
19
  export interface TextBlock {
20
20
  type: "text";
21
21
  content: string;
@@ -49,6 +49,7 @@ export interface ToolBlock {
49
49
  error?: string | Error;
50
50
  compactParams?: string;
51
51
  parametersChunk?: string;
52
+ isManuallyBackgrounded?: boolean;
52
53
  }
53
54
  export interface ImageBlock {
54
55
  type: "image";
@@ -66,13 +67,6 @@ export interface CompressBlock {
66
67
  content: string;
67
68
  sessionId: string;
68
69
  }
69
- export interface MemoryBlock {
70
- type: "memory";
71
- content: string;
72
- isSuccess: boolean;
73
- memoryType?: "project" | "user";
74
- storagePath?: string;
75
- }
76
70
  export interface SubagentBlock {
77
71
  type: "subagent";
78
72
  subagentId: string;
@@ -80,6 +74,7 @@ export interface SubagentBlock {
80
74
  status: "active" | "completed" | "error" | "aborted";
81
75
  sessionId: string;
82
76
  configuration: SubagentConfiguration;
77
+ runInBackground?: boolean;
83
78
  }
84
79
  export interface ReasoningBlock {
85
80
  type: "reasoning";
@@ -1 +1 @@
1
- {"version":3,"file":"messaging.d.ts","sourceRoot":"","sources":["../../src/types/messaging.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"messaging.d.ts","sourceRoot":"","sources":["../../src/types/messaging.ts"],"names":[],"mappings":"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"}