wave-agent-sdk 0.8.3 → 0.9.0

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 (96) hide show
  1. package/dist/agent.d.ts.map +1 -1
  2. package/dist/agent.js +7 -10
  3. package/dist/constants/tools.d.ts +1 -2
  4. package/dist/constants/tools.d.ts.map +1 -1
  5. package/dist/constants/tools.js +1 -2
  6. package/dist/managers/aiManager.d.ts +6 -10
  7. package/dist/managers/aiManager.d.ts.map +1 -1
  8. package/dist/managers/aiManager.js +38 -13
  9. package/dist/managers/hookManager.d.ts.map +1 -1
  10. package/dist/managers/hookManager.js +15 -1
  11. package/dist/managers/messageManager.d.ts +1 -0
  12. package/dist/managers/messageManager.d.ts.map +1 -1
  13. package/dist/managers/messageManager.js +8 -2
  14. package/dist/managers/permissionManager.d.ts.map +1 -1
  15. package/dist/managers/permissionManager.js +2 -7
  16. package/dist/managers/subagentManager.d.ts +5 -14
  17. package/dist/managers/subagentManager.d.ts.map +1 -1
  18. package/dist/managers/subagentManager.js +17 -65
  19. package/dist/managers/toolManager.d.ts +2 -2
  20. package/dist/managers/toolManager.d.ts.map +1 -1
  21. package/dist/managers/toolManager.js +4 -6
  22. package/dist/prompts/autoMemory.d.ts +2 -0
  23. package/dist/prompts/autoMemory.d.ts.map +1 -0
  24. package/dist/prompts/autoMemory.js +33 -0
  25. package/dist/prompts/index.d.ts +4 -0
  26. package/dist/prompts/index.d.ts.map +1 -1
  27. package/dist/prompts/index.js +10 -3
  28. package/dist/services/aiService.js +6 -7
  29. package/dist/services/configurationService.d.ts +28 -16
  30. package/dist/services/configurationService.d.ts.map +1 -1
  31. package/dist/services/configurationService.js +87 -28
  32. package/dist/services/hook.js +2 -2
  33. package/dist/services/initializationService.d.ts.map +1 -1
  34. package/dist/services/initializationService.js +20 -9
  35. package/dist/services/memory.d.ts +22 -4
  36. package/dist/services/memory.d.ts.map +1 -1
  37. package/dist/services/memory.js +132 -73
  38. package/dist/tools/agentTool.d.ts +6 -0
  39. package/dist/tools/agentTool.d.ts.map +1 -0
  40. package/dist/tools/{taskTool.js → agentTool.js} +42 -30
  41. package/dist/tools/grepTool.js +2 -2
  42. package/dist/tools/skillTool.js +2 -2
  43. package/dist/tools/types.d.ts +1 -1
  44. package/dist/tools/types.d.ts.map +1 -1
  45. package/dist/types/configuration.d.ts +2 -0
  46. package/dist/types/configuration.d.ts.map +1 -1
  47. package/dist/types/hooks.d.ts +2 -0
  48. package/dist/types/hooks.d.ts.map +1 -1
  49. package/dist/types/hooks.js +17 -7
  50. package/dist/utils/builtinSubagents.d.ts.map +1 -1
  51. package/dist/utils/builtinSubagents.js +1 -3
  52. package/dist/utils/containerSetup.d.ts +0 -5
  53. package/dist/utils/containerSetup.d.ts.map +1 -1
  54. package/dist/utils/containerSetup.js +8 -11
  55. package/dist/utils/fileSearch.d.ts +1 -6
  56. package/dist/utils/fileSearch.d.ts.map +1 -1
  57. package/dist/utils/fileSearch.js +104 -75
  58. package/dist/utils/gitUtils.d.ts +6 -0
  59. package/dist/utils/gitUtils.d.ts.map +1 -1
  60. package/dist/utils/gitUtils.js +65 -1
  61. package/dist/utils/path.d.ts +0 -10
  62. package/dist/utils/path.d.ts.map +1 -1
  63. package/dist/utils/path.js +0 -61
  64. package/package.json +2 -1
  65. package/src/agent.ts +9 -20
  66. package/src/constants/tools.ts +1 -2
  67. package/src/managers/aiManager.ts +73 -28
  68. package/src/managers/hookManager.ts +22 -1
  69. package/src/managers/messageManager.ts +12 -2
  70. package/src/managers/permissionManager.ts +1 -7
  71. package/src/managers/subagentManager.ts +20 -81
  72. package/src/managers/toolManager.ts +4 -6
  73. package/src/prompts/autoMemory.ts +33 -0
  74. package/src/prompts/index.ts +15 -2
  75. package/src/services/aiService.ts +8 -8
  76. package/src/services/configurationService.ts +100 -28
  77. package/src/services/hook.ts +2 -2
  78. package/src/services/initializationService.ts +24 -12
  79. package/src/services/memory.ts +144 -82
  80. package/src/tools/{taskTool.ts → agentTool.ts} +42 -30
  81. package/src/tools/grepTool.ts +2 -2
  82. package/src/tools/skillTool.ts +2 -2
  83. package/src/tools/types.ts +1 -1
  84. package/src/types/configuration.ts +2 -0
  85. package/src/types/hooks.ts +25 -9
  86. package/src/utils/builtinSubagents.ts +0 -3
  87. package/src/utils/containerSetup.ts +8 -21
  88. package/src/utils/fileSearch.ts +112 -80
  89. package/src/utils/gitUtils.ts +66 -1
  90. package/src/utils/path.ts +0 -62
  91. package/dist/tools/lsTool.d.ts +0 -6
  92. package/dist/tools/lsTool.d.ts.map +0 -1
  93. package/dist/tools/lsTool.js +0 -175
  94. package/dist/tools/taskTool.d.ts +0 -6
  95. package/dist/tools/taskTool.d.ts.map +0 -1
  96. package/src/tools/lsTool.ts +0 -212
@@ -1,16 +1,16 @@
1
1
  import { EXPLORE_SUBAGENT_TYPE } from "../constants/subagents.js";
2
- import { TASK_TOOL_NAME } from "../constants/tools.js";
2
+ import { AGENT_TOOL_NAME } from "../constants/tools.js";
3
3
  import { countToolBlocks, formatToolTokenSummary, } from "../utils/messageOperations.js";
4
4
  /**
5
- * Task tool plugin for delegating tasks to specialized subagents
5
+ * Agent tool plugin for launching specialized agents to handle complex tasks
6
6
  */
7
- export const taskTool = {
8
- name: TASK_TOOL_NAME,
7
+ export const agentTool = {
8
+ name: AGENT_TOOL_NAME,
9
9
  config: {
10
10
  type: "function",
11
11
  function: {
12
- name: TASK_TOOL_NAME,
13
- description: "Delegate a task to a specialized subagent. Use this when you need specialized expertise or want to break down complex work into focused subtasks.",
12
+ name: AGENT_TOOL_NAME,
13
+ description: "Launch a new agent to handle complex, multi-step tasks autonomously.",
14
14
  parameters: {
15
15
  type: "object",
16
16
  properties: {
@@ -38,18 +38,30 @@ export const taskTool = {
38
38
  prompt: (args) => {
39
39
  const subagentList = args?.availableSubagents
40
40
  ? args.availableSubagents
41
- .map((config) => `- ${config.name}: ${config.description}`)
41
+ .map((config) => {
42
+ let toolsStr = "";
43
+ if (config.tools && config.tools.length > 0) {
44
+ toolsStr = ` (Tools: ${config.tools.join(", ")})`;
45
+ }
46
+ else {
47
+ toolsStr = " (Tools: *)";
48
+ }
49
+ return `- ${config.name}: ${config.description}${toolsStr}`;
50
+ })
42
51
  .join("\n")
43
52
  : "";
44
- return `
45
- Delegate a task to a specialized subagent. Use this when you need specialized expertise or want to break down complex work into focused subtasks.
53
+ return `Launch a new agent to handle complex, multi-step tasks autonomously.
54
+
55
+ The Agent tool launches specialized agents (subprocesses) that autonomously handle complex tasks. Each agent type has specific capabilities and tools available to it.
56
+
57
+ Available agent types and the tools they have access to:
58
+ ${subagentList || "No agents configured"}
46
59
 
47
- Available subagents:
48
- ${subagentList || "No subagents configured"}
60
+ When using the Agent tool, you must specify a subagent_type parameter to select which agent type to use.
49
61
 
50
- - When doing file search, prefer to use the ${TASK_TOOL_NAME} tool in order to reduce context usage.
51
- - You should proactively use the ${TASK_TOOL_NAME} tool with specialized agents when the task at hand matches the agent's description.
52
- - 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_SUBAGENT_TYPE} instead of running search commands directly.`;
62
+ - When doing file search, prefer to use the ${AGENT_TOOL_NAME} tool in order to reduce context usage.
63
+ - You should proactively use the ${AGENT_TOOL_NAME} tool with specialized agents when the task at hand matches the agent's description.
64
+ - 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 ${AGENT_TOOL_NAME} tool with subagent_type=${EXPLORE_SUBAGENT_TYPE} instead of running search commands directly.`;
53
65
  },
54
66
  execute: async (args, context) => {
55
67
  const subagentManager = context.subagentManager;
@@ -58,7 +70,7 @@ ${subagentList || "No subagents configured"}
58
70
  success: false,
59
71
  content: "",
60
72
  error: "Subagent manager not available in tool context",
61
- shortResult: "Task delegation failed",
73
+ shortResult: "Agent delegation failed",
62
74
  };
63
75
  }
64
76
  // Input validation
@@ -71,7 +83,7 @@ ${subagentList || "No subagents configured"}
71
83
  success: false,
72
84
  content: "",
73
85
  error: "description parameter is required and must be a string",
74
- shortResult: "Task delegation failed",
86
+ shortResult: "Agent delegation failed",
75
87
  };
76
88
  }
77
89
  if (!prompt || typeof prompt !== "string") {
@@ -79,7 +91,7 @@ ${subagentList || "No subagents configured"}
79
91
  success: false,
80
92
  content: "",
81
93
  error: "prompt parameter is required and must be a string",
82
- shortResult: "Task delegation failed",
94
+ shortResult: "Agent delegation failed",
83
95
  };
84
96
  }
85
97
  if (!subagent_type || typeof subagent_type !== "string") {
@@ -87,7 +99,7 @@ ${subagentList || "No subagents configured"}
87
99
  success: false,
88
100
  content: "",
89
101
  error: "subagent_type parameter is required and must be a string",
90
- shortResult: "Task delegation failed",
102
+ shortResult: "Agent delegation failed",
91
103
  };
92
104
  }
93
105
  try {
@@ -100,12 +112,12 @@ ${subagentList || "No subagents configured"}
100
112
  return {
101
113
  success: false,
102
114
  content: "",
103
- error: `No subagent found matching "${subagent_type}". Available subagents: ${availableNames || "none"}`,
104
- shortResult: "Subagent not found",
115
+ error: `No agent found matching "${subagent_type}". Available agents: ${availableNames || "none"}`,
116
+ shortResult: "Agent not found",
105
117
  };
106
118
  }
107
119
  let isBackgrounded = false;
108
- // Create subagent instance and execute task
120
+ // Create subagent instance and execute agent
109
121
  const instance = await subagentManager.createInstance(configuration, {
110
122
  description,
111
123
  prompt,
@@ -140,27 +152,27 @@ ${subagentList || "No subagents configured"}
140
152
  await subagentManager.backgroundInstance(instance.subagentId);
141
153
  resolve({
142
154
  success: true,
143
- content: "Task backgrounded",
144
- shortResult: "Task backgrounded",
155
+ content: "Agent backgrounded",
156
+ shortResult: "Agent backgrounded",
145
157
  isManuallyBackgrounded: true,
146
158
  });
147
159
  },
148
160
  });
149
161
  }
150
162
  try {
151
- const result = await subagentManager.executeTask(instance, prompt, context.abortSignal, run_in_background);
163
+ const result = await subagentManager.executeAgent(instance, prompt, context.abortSignal, run_in_background);
152
164
  if (isBackgrounded) {
153
165
  return;
154
166
  }
155
167
  if (run_in_background) {
156
168
  resolve({
157
169
  success: true,
158
- content: `Task started in background with ID: ${result}`,
159
- shortResult: `Task started in background: ${result}`,
170
+ content: `Agent started in background with ID: ${result}`,
171
+ shortResult: `Agent started in background: ${result}`,
160
172
  });
161
173
  return;
162
174
  }
163
- // Cleanup subagent instance after task completion
175
+ // Cleanup subagent instance after agent completion
164
176
  subagentManager.cleanupInstance(instance.subagentId);
165
177
  const messages = instance.messageManager.getMessages();
166
178
  const tokens = instance.messageManager.getlatestTotalTokens();
@@ -169,7 +181,7 @@ ${subagentList || "No subagents configured"}
169
181
  resolve({
170
182
  success: true,
171
183
  content: result,
172
- shortResult: `Task completed${summary ? ` ${summary}` : ""}`,
184
+ shortResult: `Agent completed${summary ? ` ${summary}` : ""}`,
173
185
  });
174
186
  }
175
187
  catch (error) {
@@ -177,7 +189,7 @@ ${subagentList || "No subagents configured"}
177
189
  resolve({
178
190
  success: false,
179
191
  content: "",
180
- error: `Task delegation failed: ${error instanceof Error ? error.message : String(error)}`,
192
+ error: `Agent delegation failed: ${error instanceof Error ? error.message : String(error)}`,
181
193
  shortResult: "Delegation error",
182
194
  });
183
195
  }
@@ -194,7 +206,7 @@ ${subagentList || "No subagents configured"}
194
206
  return {
195
207
  success: false,
196
208
  content: "",
197
- error: `Task delegation failed: ${error instanceof Error ? error.message : String(error)}`,
209
+ error: `Agent delegation failed: ${error instanceof Error ? error.message : String(error)}`,
198
210
  shortResult: "Delegation error",
199
211
  };
200
212
  }
@@ -2,7 +2,7 @@ import { spawn } from "child_process";
2
2
  import { getGlobIgnorePatterns } from "../utils/fileFilter.js";
3
3
  import { rgPath } from "@vscode/ripgrep";
4
4
  import { getDisplayPath } from "../utils/path.js";
5
- import { GREP_TOOL_NAME, BASH_TOOL_NAME, TASK_TOOL_NAME, } from "../constants/tools.js";
5
+ import { GREP_TOOL_NAME, BASH_TOOL_NAME, AGENT_TOOL_NAME, } from "../constants/tools.js";
6
6
  /**
7
7
  * Grep tool plugin - powerful search tool based on ripgrep
8
8
  */
@@ -77,7 +77,7 @@ export const grepTool = {
77
77
  - Supports full regex syntax (e.g., "log.*Error", "function\\s+\\w+")
78
78
  - Filter files with glob parameter (e.g., "*.js", "**/*.tsx") or type parameter (e.g., "js", "py", "rust")
79
79
  - Output modes: "content" shows matching lines, "files_with_matches" shows only file paths (default), "count" shows match counts
80
- - Use ${TASK_TOOL_NAME} tool for open-ended searches requiring multiple rounds
80
+ - Use ${AGENT_TOOL_NAME} tool for open-ended searches requiring multiple rounds
81
81
  - Pattern syntax: Uses ripgrep (not grep) - literal braces need escaping (use \`interface\\{\\}\` to find \`interface{}\` in Go code)
82
82
  - Multiline matching: By default patterns match within single lines only. For cross-line patterns like \`struct \\{[\\s\\S]*?field\`, use \`multiline: true\`
83
83
  `,
@@ -119,8 +119,8 @@ export const skillTool = {
119
119
  context.onShortResultUpdate?.(shortResult);
120
120
  });
121
121
  try {
122
- const result = await subagentManager.executeTask(instance, skillResult.content, context.abortSignal, false);
123
- // Cleanup subagent instance after task completion
122
+ const result = await subagentManager.executeAgent(instance, skillResult.content, context.abortSignal, false);
123
+ // Cleanup subagent instance after agent completion
124
124
  subagentManager.cleanupInstance(instance.subagentId);
125
125
  const messages = instance.messageManager.getMessages();
126
126
  const tokens = instance.messageManager.getlatestTotalTokens();
@@ -54,7 +54,7 @@ export interface ToolContext {
54
54
  foregroundTaskManager?: import("../types/processes.js").IForegroundTaskManager;
55
55
  /** Task manager instance for task management */
56
56
  taskManager: import("../services/taskManager.js").TaskManager;
57
- /** Subagent manager instance for task delegation */
57
+ /** Subagent manager instance for agent delegation */
58
58
  subagentManager?: import("../managers/subagentManager.js").SubagentManager;
59
59
  /** Skill manager instance for skill invocation */
60
60
  skillManager?: import("../managers/skillManager.js").SkillManager;
@@ -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,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACxE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAExD,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,CAAC,IAAI,CAAC,EAAE;QACf,kBAAkB,CAAC,EAAE,qBAAqB,EAAE,CAAC;QAC7C,eAAe,CAAC,EAAE,aAAa,EAAE,CAAC;QAClC,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,KAAK,MAAM,CAAC;CACd;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,eAAe,CAAC,EAAE,MAAM,CAAC;IAEzB,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,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,oDAAoD;IACpD,eAAe,CAAC,EAAE,OAAO,gCAAgC,EAAE,eAAe,CAAC;IAC3E,kDAAkD;IAClD,YAAY,CAAC,EAAE,OAAO,6BAA6B,EAAE,YAAY,CAAC;IAClE,yBAAyB;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,oEAAoE;IACpE,mBAAmB,CAAC,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,IAAI,CAAC;CACrD"}
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,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACxE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAExD,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,CAAC,IAAI,CAAC,EAAE;QACf,kBAAkB,CAAC,EAAE,qBAAqB,EAAE,CAAC;QAC7C,eAAe,CAAC,EAAE,aAAa,EAAE,CAAC;QAClC,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,KAAK,MAAM,CAAC;CACd;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,eAAe,CAAC,EAAE,MAAM,CAAC;IAEzB,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,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,qDAAqD;IACrD,eAAe,CAAC,EAAE,OAAO,gCAAgC,EAAE,eAAe,CAAC;IAC3E,kDAAkD;IAClD,YAAY,CAAC,EAAE,OAAO,6BAA6B,EAAE,YAAY,CAAC;IAClE,yBAAyB;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,oEAAoE;IACpE,mBAAmB,CAAC,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,IAAI,CAAC;CACrD"}
@@ -29,6 +29,8 @@ export interface WaveConfiguration {
29
29
  enabledPlugins?: Record<string, boolean>;
30
30
  /** Preferred language for agent communication */
31
31
  language?: string;
32
+ /** Whether auto-memory is enabled */
33
+ autoMemoryEnabled?: boolean;
32
34
  }
33
35
  /**
34
36
  * Legacy alias for backward compatibility - will be deprecated
@@ -1 +1 @@
1
- {"version":3,"file":"configuration.d.ts","sourceRoot":"","sources":["../../src/types/configuration.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"configuration.d.ts","sourceRoot":"","sources":["../../src/types/configuration.ts"],"names":[],"mappings":"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"}
@@ -9,6 +9,8 @@ export type HookEvent = "PreToolUse" | "PostToolUse" | "UserPromptSubmit" | "Sto
9
9
  export interface HookCommand {
10
10
  type: "command";
11
11
  command: string;
12
+ async?: boolean;
13
+ timeout?: number;
12
14
  }
13
15
  export interface HookEventConfig {
14
16
  matcher?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../../src/types/hooks.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,YAAY,EACV,iBAAiB,EACjB,iBAAiB,EACjB,wBAAwB,EACxB,uBAAuB,GACxB,MAAM,oBAAoB,CAAC;AAG5B,MAAM,MAAM,SAAS,GACjB,YAAY,GACZ,aAAa,GACb,kBAAkB,GAClB,MAAM,GACN,cAAc,GACd,cAAc,GACd,gBAAgB,CAAC;AAGrB,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,SAAS,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;CACjB;AAGD,MAAM,WAAW,eAAe;IAC9B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,WAAW,EAAE,CAAC;CACtB;AAGD,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,SAAS,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,IAAI,CAAC;CACjB;AAGD,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,OAAO,CAAC;CACnB;AAGD,MAAM,WAAW,oBAAoB;IACnC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B;AAGD,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAGD,qBAAa,kBAAmB,SAAQ,KAAK;aAEzB,WAAW,EAAE,MAAM;aACnB,aAAa,EAAE,KAAK;aACpB,OAAO,EAAE,oBAAoB;gBAF7B,WAAW,EAAE,MAAM,EACnB,aAAa,EAAE,KAAK,EACpB,OAAO,EAAE,oBAAoB;CAKhD;AAGD,qBAAa,sBAAuB,SAAQ,KAAK;aAE7B,UAAU,EAAE,MAAM;aAClB,gBAAgB,EAAE,MAAM,EAAE;gBAD1B,UAAU,EAAE,MAAM,EAClB,gBAAgB,EAAE,MAAM,EAAE;CAO7C;AAGD,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,IAAI,SAAS,CAUlE;AAED,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI,WAAW,CAUnE;AAED,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,OAAO,GACd,MAAM,IAAI,eAAe,CAa3B;AAGD,MAAM,WAAW,aAAa;IAE5B,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,MAAM,CAAC;IACxB,GAAG,EAAE,MAAM,CAAC;IACZ,eAAe,EAAE,SAAS,CAAC;IAG3B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAGD,MAAM,WAAW,4BAA6B,SAAQ,oBAAoB;IACxE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAGD,MAAM,WAAW,eAAe;IAC9B,gBAAgB,EAAE,MAAM,CAAC;IACzB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC;CACvB"}
1
+ {"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../../src/types/hooks.ts"],"names":[],"mappings":"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"}
@@ -36,13 +36,23 @@ export function isValidHookEvent(event) {
36
36
  ].includes(event);
37
37
  }
38
38
  export function isValidHookCommand(cmd) {
39
- return (typeof cmd === "object" &&
40
- cmd !== null &&
41
- "type" in cmd &&
42
- cmd.type === "command" &&
43
- "command" in cmd &&
44
- typeof cmd.command === "string" &&
45
- cmd.command.length > 0);
39
+ if (typeof cmd !== "object" ||
40
+ cmd === null ||
41
+ !("type" in cmd) ||
42
+ cmd.type !== "command" ||
43
+ !("command" in cmd) ||
44
+ typeof cmd.command !== "string" ||
45
+ cmd.command.length === 0) {
46
+ return false;
47
+ }
48
+ const hookCmd = cmd;
49
+ if ("async" in hookCmd && typeof hookCmd.async !== "boolean") {
50
+ return false;
51
+ }
52
+ if ("timeout" in hookCmd && typeof hookCmd.timeout !== "number") {
53
+ return false;
54
+ }
55
+ return true;
46
56
  }
47
57
  export function isValidHookEventConfig(config) {
48
58
  if (typeof config !== "object" || config === null)
@@ -1 +1 @@
1
- {"version":3,"file":"builtinSubagents.d.ts","sourceRoot":"","sources":["../../src/utils/builtinSubagents.ts"],"names":[],"mappings":"AAoBA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAEjE;;;GAGG;AACH,wBAAgB,mBAAmB,IAAI,qBAAqB,EAAE,CAQ7D"}
1
+ {"version":3,"file":"builtinSubagents.d.ts","sourceRoot":"","sources":["../../src/utils/builtinSubagents.ts"],"names":[],"mappings":"AAmBA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAEjE;;;GAGG;AACH,wBAAgB,mBAAmB,IAAI,qBAAqB,EAAE,CAQ7D"}
@@ -1,6 +1,6 @@
1
1
  import { BASH_SUBAGENT_TYPE, EXPLORE_SUBAGENT_TYPE, PLAN_SUBAGENT_TYPE, GENERAL_PURPOSE_SUBAGENT_TYPE, } from "../constants/subagents.js";
2
2
  import { BASH_SUBAGENT_SYSTEM_PROMPT, GENERAL_PURPOSE_SYSTEM_PROMPT, PLAN_SUBAGENT_SYSTEM_PROMPT, EXPLORE_SUBAGENT_SYSTEM_PROMPT, } from "../prompts/index.js";
3
- import { BASH_TOOL_NAME, GLOB_TOOL_NAME, GREP_TOOL_NAME, READ_TOOL_NAME, LS_TOOL_NAME, LSP_TOOL_NAME, } from "../constants/tools.js";
3
+ import { BASH_TOOL_NAME, GLOB_TOOL_NAME, GREP_TOOL_NAME, READ_TOOL_NAME, LSP_TOOL_NAME, } from "../constants/tools.js";
4
4
  /**
5
5
  * Get all built-in subagent configurations
6
6
  * Built-in subagents have priority 3 (lowest) and can be overridden by user/project configs
@@ -55,7 +55,6 @@ function createExploreSubagent() {
55
55
  GREP_TOOL_NAME,
56
56
  READ_TOOL_NAME,
57
57
  BASH_TOOL_NAME,
58
- LS_TOOL_NAME,
59
58
  LSP_TOOL_NAME,
60
59
  ];
61
60
  return {
@@ -80,7 +79,6 @@ function createPlanSubagent() {
80
79
  GREP_TOOL_NAME,
81
80
  READ_TOOL_NAME,
82
81
  BASH_TOOL_NAME,
83
- LS_TOOL_NAME,
84
82
  LSP_TOOL_NAME,
85
83
  ];
86
84
  return {
@@ -2,7 +2,6 @@ import { Container } from "./container.js";
2
2
  import { ConfigurationService } from "../services/configurationService.js";
3
3
  import type { AgentOptions } from "../types/index.js";
4
4
  import type { PermissionMode, Usage, Task, BackgroundTask } from "../types/index.js";
5
- import type { GatewayConfig, ModelConfig } from "../types/config.js";
6
5
  export interface AgentContainerSetupOptions {
7
6
  options: AgentOptions;
8
7
  workdir: string;
@@ -16,10 +15,6 @@ export interface AgentContainerSetupOptions {
16
15
  setPermissionMode: (mode: PermissionMode) => void;
17
16
  addPermissionRule: (rule: string) => Promise<void>;
18
17
  addUsage: (usage: Usage) => void;
19
- getGatewayConfig: () => GatewayConfig;
20
- getModelConfig: () => ModelConfig;
21
- getMaxInputTokens: () => number;
22
- getLanguage: () => string | undefined;
23
18
  }
24
19
  export declare function setupAgentContainer(setupOptions: AgentContainerSetupOptions): Container;
25
20
  //# sourceMappingURL=containerSetup.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"containerSetup.d.ts","sourceRoot":"","sources":["../../src/utils/containerSetup.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAoB3C,OAAO,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAE3E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,KAAK,EACV,cAAc,EACd,KAAK,EACL,IAAI,EACJ,cAAc,EAEf,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAIrE,MAAM,WAAW,0BAA0B;IACzC,OAAO,EAAE,YAAY,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,oBAAoB,EAAE,oBAAoB,CAAC;IAC3C,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,OAAO,CAAC;IAGhB,uBAAuB,EAAE,CAAC,KAAK,EAAE,cAAc,EAAE,KAAK,IAAI,CAAC;IAC3D,aAAa,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC;IACvC,sBAAsB,EAAE,CAAC,IAAI,EAAE,cAAc,KAAK,IAAI,CAAC;IACvD,wBAAwB,EAAE,CAAC,IAAI,EAAE,cAAc,KAAK,IAAI,CAAC;IACzD,iBAAiB,EAAE,CAAC,IAAI,EAAE,cAAc,KAAK,IAAI,CAAC;IAClD,iBAAiB,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACnD,QAAQ,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IAGjC,gBAAgB,EAAE,MAAM,aAAa,CAAC;IACtC,cAAc,EAAE,MAAM,WAAW,CAAC;IAClC,iBAAiB,EAAE,MAAM,MAAM,CAAC;IAChC,WAAW,EAAE,MAAM,MAAM,GAAG,SAAS,CAAC;CACvC;AAED,wBAAgB,mBAAmB,CACjC,YAAY,EAAE,0BAA0B,GACvC,SAAS,CAgOX"}
1
+ {"version":3,"file":"containerSetup.d.ts","sourceRoot":"","sources":["../../src/utils/containerSetup.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAoB3C,OAAO,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAG3E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,KAAK,EACV,cAAc,EACd,KAAK,EACL,IAAI,EACJ,cAAc,EAEf,MAAM,mBAAmB,CAAC;AAI3B,MAAM,WAAW,0BAA0B;IACzC,OAAO,EAAE,YAAY,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,oBAAoB,EAAE,oBAAoB,CAAC;IAC3C,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,OAAO,CAAC;IAGhB,uBAAuB,EAAE,CAAC,KAAK,EAAE,cAAc,EAAE,KAAK,IAAI,CAAC;IAC3D,aAAa,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC;IACvC,sBAAsB,EAAE,CAAC,IAAI,EAAE,cAAc,KAAK,IAAI,CAAC;IACvD,wBAAwB,EAAE,CAAC,IAAI,EAAE,cAAc,KAAK,IAAI,CAAC;IACzD,iBAAiB,EAAE,CAAC,IAAI,EAAE,cAAc,KAAK,IAAI,CAAC;IAClD,iBAAiB,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACnD,QAAQ,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;CAClC;AAED,wBAAgB,mBAAmB,CACjC,YAAY,EAAE,0BAA0B,GACvC,SAAS,CAyNX"}
@@ -20,14 +20,17 @@ import { ReversionManager } from "../managers/reversionManager.js";
20
20
  import { SubagentManager } from "../managers/subagentManager.js";
21
21
  import { LiveConfigManager } from "../managers/liveConfigManager.js";
22
22
  import { ReversionService } from "../services/reversionService.js";
23
+ import { MemoryService } from "../services/memory.js";
23
24
  import { logger } from "./globalLogger.js";
24
25
  export function setupAgentContainer(setupOptions) {
25
- const { options, workdir, configurationService, systemPrompt, stream, onBackgroundTasksChange, onTasksChange, onPermissionModeChange, handlePlanModeTransition, setPermissionMode, addPermissionRule, addUsage, getGatewayConfig, getModelConfig, getMaxInputTokens, getLanguage, } = setupOptions;
26
+ const { options, workdir, configurationService, systemPrompt, stream, onBackgroundTasksChange, onTasksChange, onPermissionModeChange, handlePlanModeTransition, setPermissionMode, addPermissionRule, addUsage, } = setupOptions;
26
27
  const callbacks = options.callbacks || {};
27
28
  const container = new Container();
28
29
  const foregroundTaskManager = new ForegroundTaskManager(container);
29
30
  container.register("ForegroundTaskManager", foregroundTaskManager);
30
31
  container.register("ConfigurationService", configurationService);
32
+ const memoryService = new MemoryService(container);
33
+ container.register("MemoryService", memoryService);
31
34
  const memoryRuleManager = new MemoryRuleManager(container, { workdir });
32
35
  container.register("MemoryRuleManager", memoryRuleManager);
33
36
  const messageManager = new MessageManager(container, {
@@ -74,6 +77,10 @@ export function setupAgentContainer(setupOptions) {
74
77
  const lspManager = options.lspManager || new LspManager(container);
75
78
  container.register("LspManager", lspManager);
76
79
  const permissionManager = new PermissionManager(container, { workdir });
80
+ if (configurationService.resolveAutoMemoryEnabled()) {
81
+ const autoMemoryDir = memoryService.getAutoMemoryDirectory(workdir);
82
+ permissionManager.updateAdditionalDirectories([autoMemoryDir]);
83
+ }
77
84
  container.register("PermissionManager", permissionManager);
78
85
  permissionManager.setOnConfiguredDefaultModeChange((mode) => {
79
86
  handlePlanModeTransition(mode);
@@ -161,11 +168,6 @@ export function setupAgentContainer(setupOptions) {
161
168
  onSubagentMessagesChange: callbacks.onSubagentMessagesChange,
162
169
  onSubagentLatestTotalTokensChange: callbacks.onSubagentLatestTotalTokensChange,
163
170
  },
164
- getGatewayConfig,
165
- getModelConfig,
166
- getMaxInputTokens,
167
- getLanguage,
168
- getEnvironmentVars: () => configurationService.getEnvironmentVars(),
169
171
  onUsageAdded: (usage) => addUsage(usage),
170
172
  });
171
173
  container.register("SubagentManager", subagentManager);
@@ -177,11 +179,6 @@ export function setupAgentContainer(setupOptions) {
177
179
  workdir,
178
180
  systemPrompt,
179
181
  stream,
180
- getGatewayConfig,
181
- getModelConfig,
182
- getMaxInputTokens,
183
- getLanguage,
184
- getEnvironmentVars: () => configurationService.getEnvironmentVars(),
185
182
  });
186
183
  container.register("AIManager", aiManager);
187
184
  const slashCommandManager = new SlashCommandManager(container, { workdir });
@@ -1,11 +1,6 @@
1
- import { type Path } from "glob";
2
1
  import type { FileItem } from "../types/fileSearch.js";
3
2
  /**
4
- * Convert Path objects to FileItem objects
5
- */
6
- export declare const convertPathsToFileItems: (paths: Path[]) => FileItem[];
7
- /**
8
- * Search files and directories using glob patterns
3
+ * Search files and directories using fuzzy matching
9
4
  */
10
5
  export declare const searchFiles: (query: string, options?: {
11
6
  maxResults?: number;
@@ -1 +1 @@
1
- {"version":3,"file":"fileSearch.d.ts","sourceRoot":"","sources":["../../src/utils/fileSearch.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,KAAK,IAAI,EAAE,MAAM,MAAM,CAAC;AAE9C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAEvD;;GAEG;AACH,eAAO,MAAM,uBAAuB,GAAI,OAAO,IAAI,EAAE,KAAG,QAAQ,EAY/D,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,WAAW,GACtB,OAAO,MAAM,EACb,UAAU;IACR,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B,KACA,OAAO,CAAC,QAAQ,EAAE,CAmFpB,CAAC"}
1
+ {"version":3,"file":"fileSearch.d.ts","sourceRoot":"","sources":["../../src/utils/fileSearch.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAqEvD;;GAEG;AACH,eAAO,MAAM,WAAW,GACtB,OAAO,MAAM,EACb,UAAU;IACR,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B,KACA,OAAO,CAAC,QAAQ,EAAE,CA+DpB,CAAC"}