wave-agent-sdk 0.6.5 → 0.7.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 (174) hide show
  1. package/dist/agent.d.ts +8 -0
  2. package/dist/agent.d.ts.map +1 -1
  3. package/dist/agent.js +49 -240
  4. package/dist/constants/tools.d.ts +0 -2
  5. package/dist/constants/tools.d.ts.map +1 -1
  6. package/dist/constants/tools.js +0 -2
  7. package/dist/core/plugin.d.ts +86 -0
  8. package/dist/core/plugin.d.ts.map +1 -0
  9. package/dist/core/plugin.js +164 -0
  10. package/dist/index.d.ts +1 -4
  11. package/dist/index.d.ts.map +1 -1
  12. package/dist/index.js +1 -5
  13. package/dist/managers/MemoryRuleManager.d.ts +3 -1
  14. package/dist/managers/MemoryRuleManager.d.ts.map +1 -1
  15. package/dist/managers/MemoryRuleManager.js +2 -1
  16. package/dist/managers/aiManager.d.ts +13 -23
  17. package/dist/managers/aiManager.d.ts.map +1 -1
  18. package/dist/managers/aiManager.js +59 -32
  19. package/dist/managers/backgroundTaskManager.d.ts +3 -1
  20. package/dist/managers/backgroundTaskManager.d.ts.map +1 -1
  21. package/dist/managers/backgroundTaskManager.js +2 -1
  22. package/dist/managers/bashManager.d.ts +4 -4
  23. package/dist/managers/bashManager.d.ts.map +1 -1
  24. package/dist/managers/bashManager.js +5 -2
  25. package/dist/managers/foregroundTaskManager.d.ts +3 -0
  26. package/dist/managers/foregroundTaskManager.d.ts.map +1 -1
  27. package/dist/managers/foregroundTaskManager.js +2 -1
  28. package/dist/managers/hookManager.d.ts +3 -3
  29. package/dist/managers/hookManager.d.ts.map +1 -1
  30. package/dist/managers/hookManager.js +20 -19
  31. package/dist/managers/liveConfigManager.d.ts +6 -13
  32. package/dist/managers/liveConfigManager.d.ts.map +1 -1
  33. package/dist/managers/liveConfigManager.js +50 -45
  34. package/dist/managers/lspManager.d.ts +4 -5
  35. package/dist/managers/lspManager.d.ts.map +1 -1
  36. package/dist/managers/lspManager.js +13 -12
  37. package/dist/managers/mcpManager.d.ts +3 -2
  38. package/dist/managers/mcpManager.d.ts.map +1 -1
  39. package/dist/managers/mcpManager.js +16 -15
  40. package/dist/managers/messageManager.d.ts +5 -7
  41. package/dist/managers/messageManager.d.ts.map +1 -1
  42. package/dist/managers/messageManager.js +12 -7
  43. package/dist/managers/permissionManager.d.ts +6 -4
  44. package/dist/managers/permissionManager.d.ts.map +1 -1
  45. package/dist/managers/permissionManager.js +39 -63
  46. package/dist/managers/planManager.d.ts +4 -6
  47. package/dist/managers/planManager.d.ts.map +1 -1
  48. package/dist/managers/planManager.js +18 -4
  49. package/dist/managers/pluginManager.d.ts +10 -22
  50. package/dist/managers/pluginManager.d.ts.map +1 -1
  51. package/dist/managers/pluginManager.js +27 -14
  52. package/dist/managers/reversionManager.d.ts +4 -3
  53. package/dist/managers/reversionManager.d.ts.map +1 -1
  54. package/dist/managers/reversionManager.js +5 -2
  55. package/dist/managers/skillManager.d.ts +3 -2
  56. package/dist/managers/skillManager.d.ts.map +1 -1
  57. package/dist/managers/skillManager.js +15 -14
  58. package/dist/managers/slashCommandManager.d.ts +9 -16
  59. package/dist/managers/slashCommandManager.d.ts.map +1 -1
  60. package/dist/managers/slashCommandManager.js +21 -10
  61. package/dist/managers/subagentManager.d.ts +7 -17
  62. package/dist/managers/subagentManager.d.ts.map +1 -1
  63. package/dist/managers/subagentManager.js +41 -34
  64. package/dist/managers/toolManager.d.ts +15 -38
  65. package/dist/managers/toolManager.d.ts.map +1 -1
  66. package/dist/managers/toolManager.js +66 -56
  67. package/dist/prompts/index.d.ts +6 -2
  68. package/dist/prompts/index.d.ts.map +1 -1
  69. package/dist/prompts/index.js +8 -4
  70. package/dist/services/MarketplaceService.d.ts.map +1 -1
  71. package/dist/services/MarketplaceService.js +13 -0
  72. package/dist/services/aiService.d.ts +4 -0
  73. package/dist/services/aiService.d.ts.map +1 -1
  74. package/dist/services/aiService.js +47 -7
  75. package/dist/services/configurationService.d.ts.map +1 -1
  76. package/dist/services/configurationService.js +30 -11
  77. package/dist/services/taskManager.d.ts +3 -1
  78. package/dist/services/taskManager.d.ts.map +1 -1
  79. package/dist/services/taskManager.js +2 -1
  80. package/dist/tools/bashTool.js +2 -2
  81. package/dist/tools/editTool.d.ts.map +1 -1
  82. package/dist/tools/editTool.js +9 -1
  83. package/dist/tools/readTool.d.ts.map +1 -1
  84. package/dist/tools/readTool.js +2 -2
  85. package/dist/tools/skillTool.d.ts +2 -4
  86. package/dist/tools/skillTool.d.ts.map +1 -1
  87. package/dist/tools/skillTool.js +61 -61
  88. package/dist/tools/taskOutputTool.js +1 -1
  89. package/dist/tools/taskTool.d.ts +2 -4
  90. package/dist/tools/taskTool.d.ts.map +1 -1
  91. package/dist/tools/taskTool.js +192 -187
  92. package/dist/tools/types.d.ts +11 -1
  93. package/dist/tools/types.d.ts.map +1 -1
  94. package/dist/tools/writeTool.d.ts.map +1 -1
  95. package/dist/tools/writeTool.js +4 -2
  96. package/dist/types/marketplace.d.ts +8 -0
  97. package/dist/types/marketplace.d.ts.map +1 -1
  98. package/dist/types/permissions.d.ts +1 -1
  99. package/dist/types/permissions.d.ts.map +1 -1
  100. package/dist/types/permissions.js +1 -3
  101. package/dist/types/skills.d.ts +0 -2
  102. package/dist/types/skills.d.ts.map +1 -1
  103. package/dist/types/tools.d.ts +0 -15
  104. package/dist/types/tools.d.ts.map +1 -1
  105. package/dist/utils/container.d.ts +31 -0
  106. package/dist/utils/container.d.ts.map +1 -0
  107. package/dist/utils/container.js +79 -0
  108. package/dist/utils/containerSetup.d.ts +26 -0
  109. package/dist/utils/containerSetup.d.ts.map +1 -0
  110. package/dist/utils/containerSetup.js +165 -0
  111. package/dist/utils/editUtils.d.ts +0 -3
  112. package/dist/utils/editUtils.d.ts.map +1 -1
  113. package/dist/utils/editUtils.js +4 -3
  114. package/dist/utils/hookMatcher.d.ts +1 -1
  115. package/dist/utils/hookMatcher.d.ts.map +1 -1
  116. package/dist/utils/hookMatcher.js +2 -2
  117. package/dist/utils/openaiClient.js +2 -2
  118. package/dist/utils/stringUtils.d.ts +6 -0
  119. package/dist/utils/stringUtils.d.ts.map +1 -1
  120. package/dist/utils/stringUtils.js +8 -0
  121. package/package.json +1 -1
  122. package/src/agent.ts +60 -282
  123. package/src/constants/tools.ts +0 -2
  124. package/src/core/plugin.ts +224 -0
  125. package/src/index.ts +1 -6
  126. package/src/managers/MemoryRuleManager.ts +6 -1
  127. package/src/managers/aiManager.ts +83 -58
  128. package/src/managers/backgroundTaskManager.ts +5 -1
  129. package/src/managers/bashManager.ts +9 -4
  130. package/src/managers/foregroundTaskManager.ts +3 -0
  131. package/src/managers/hookManager.ts +21 -23
  132. package/src/managers/liveConfigManager.ts +57 -53
  133. package/src/managers/lspManager.ts +14 -19
  134. package/src/managers/mcpManager.ts +20 -20
  135. package/src/managers/messageManager.ts +19 -12
  136. package/src/managers/permissionManager.ts +45 -70
  137. package/src/managers/planManager.ts +26 -7
  138. package/src/managers/pluginManager.ts +37 -33
  139. package/src/managers/reversionManager.ts +5 -3
  140. package/src/managers/skillManager.ts +19 -20
  141. package/src/managers/slashCommandManager.ts +30 -25
  142. package/src/managers/subagentManager.ts +53 -53
  143. package/src/managers/toolManager.ts +91 -90
  144. package/src/prompts/index.ts +13 -5
  145. package/src/services/MarketplaceService.ts +13 -0
  146. package/src/services/aiService.ts +61 -15
  147. package/src/services/configurationService.ts +34 -13
  148. package/src/services/taskManager.ts +5 -1
  149. package/src/tools/bashTool.ts +2 -2
  150. package/src/tools/editTool.ts +9 -1
  151. package/src/tools/readTool.ts +2 -2
  152. package/src/tools/skillTool.ts +75 -71
  153. package/src/tools/taskOutputTool.ts +1 -1
  154. package/src/tools/taskTool.ts +224 -225
  155. package/src/tools/types.ts +12 -1
  156. package/src/tools/writeTool.ts +4 -2
  157. package/src/types/marketplace.ts +9 -0
  158. package/src/types/permissions.ts +0 -4
  159. package/src/types/skills.ts +0 -3
  160. package/src/types/tools.ts +0 -17
  161. package/src/utils/container.ts +92 -0
  162. package/src/utils/containerSetup.ts +256 -0
  163. package/src/utils/editUtils.ts +4 -3
  164. package/src/utils/hookMatcher.ts +2 -2
  165. package/src/utils/openaiClient.ts +2 -2
  166. package/src/utils/stringUtils.ts +9 -0
  167. package/dist/tools/deleteFileTool.d.ts +0 -6
  168. package/dist/tools/deleteFileTool.d.ts.map +0 -1
  169. package/dist/tools/deleteFileTool.js +0 -100
  170. package/dist/tools/multiEditTool.d.ts +0 -6
  171. package/dist/tools/multiEditTool.d.ts.map +0 -1
  172. package/dist/tools/multiEditTool.js +0 -246
  173. package/src/tools/deleteFileTool.ts +0 -127
  174. package/src/tools/multiEditTool.ts +0 -306
@@ -3,6 +3,8 @@
3
3
  */
4
4
  import { ChatCompletionFunctionTool } from "openai/resources.js";
5
5
  import type { PermissionMode, PermissionCallback } from "../types/permissions.js";
6
+ import type { SubagentConfiguration } from "../utils/subagentParser.js";
7
+ import type { SkillMetadata } from "../types/skills.js";
6
8
  export interface ToolPlugin {
7
9
  name: string;
8
10
  config: ChatCompletionFunctionTool;
@@ -11,7 +13,11 @@ export interface ToolPlugin {
11
13
  /**
12
14
  * Optional function to provide a prompt to be added to the system prompt
13
15
  */
14
- prompt?: () => string;
16
+ prompt?: (args?: {
17
+ availableSubagents?: SubagentConfiguration[];
18
+ availableSkills?: SkillMetadata[];
19
+ workdir?: string;
20
+ }) => string;
15
21
  }
16
22
  export interface ToolResult {
17
23
  success: boolean;
@@ -48,6 +54,10 @@ export interface ToolContext {
48
54
  foregroundTaskManager?: import("../types/processes.js").IForegroundTaskManager;
49
55
  /** Task manager instance for task management */
50
56
  taskManager: import("../services/taskManager.js").TaskManager;
57
+ /** Subagent manager instance for task delegation */
58
+ subagentManager?: import("../managers/subagentManager.js").SubagentManager;
59
+ /** Skill manager instance for skill invocation */
60
+ skillManager?: import("../managers/skillManager.js").SkillManager;
51
61
  /** Current session ID */
52
62
  sessionId?: string;
53
63
  /** Callback to update the short result of the current tool block */
@@ -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;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;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,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,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 +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,UAiMvB,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;AAItE;;GAEG;AACH,eAAO,MAAM,SAAS,EAAE,UAkMvB,CAAC"}
@@ -2,6 +2,7 @@ import { readFile, writeFile, mkdir } from "fs/promises";
2
2
  import { dirname } from "path";
3
3
  import { logger } from "../utils/globalLogger.js";
4
4
  import { resolvePath, getDisplayPath } from "../utils/path.js";
5
+ import { READ_TOOL_NAME } from "../constants/tools.js";
5
6
  /**
6
7
  * File Write Tool Plugin
7
8
  */
@@ -29,10 +30,11 @@ export const writeTool = {
29
30
  },
30
31
  },
31
32
  },
32
- prompt: () => `
33
+ prompt: () => `Writes a file to the local filesystem.
34
+
33
35
  Usage:
34
36
  - 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.
37
+ - If this is an existing file, you MUST use the \`${READ_TOOL_NAME}\` tool first to read the file's contents. This tool will fail if you did not read the file first.
36
38
  - ALWAYS prefer editing existing files in the codebase. NEVER write new files unless explicitly required.
37
39
  - NEVER proactively create documentation files (*.md) or README files. Only create documentation files if explicitly requested by the User.
38
40
  - Only use emojis if the user explicitly requests it. Avoid writing emojis to files unless asked.
@@ -8,6 +8,14 @@ export interface MarketplacePluginEntry {
8
8
  source: string;
9
9
  description: string;
10
10
  }
11
+ export interface MarketplacePluginStatus extends MarketplacePluginEntry {
12
+ marketplace: string;
13
+ installed: boolean;
14
+ version?: string;
15
+ cachePath?: string;
16
+ projectPath?: string;
17
+ scope?: Scope;
18
+ }
11
19
  export interface MarketplaceManifest {
12
20
  name: string;
13
21
  owner: MarketplaceOwner;
@@ -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;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;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,uBAAwB,SAAQ,sBAAsB;IACrE,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,KAAK,CAAC;CACf;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"}
@@ -34,7 +34,7 @@ export interface ToolPermissionContext {
34
34
  hidePersistentOption?: boolean;
35
35
  }
36
36
  /** List of tools that require permission checks in default mode */
37
- export declare const RESTRICTED_TOOLS: readonly ["Edit", "MultiEdit", "Delete", "Bash", "Write", "ExitPlanMode", "AskUserQuestion"];
37
+ export declare const RESTRICTED_TOOLS: readonly ["Edit", "Bash", "Write", "ExitPlanMode", "AskUserQuestion"];
38
38
  /** Type for restricted tool names */
39
39
  export type RestrictedTool = (typeof RESTRICTED_TOOLS)[number];
40
40
  export type { AskUserQuestion, AskUserQuestionInput, AskUserQuestionOption };
@@ -1 +1 @@
1
- {"version":3,"file":"permissions.d.ts","sourceRoot":"","sources":["../../src/types/permissions.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EACL,eAAe,EACf,oBAAoB,EACpB,qBAAqB,EACtB,MAAM,YAAY,CAAC;AAWpB,oCAAoC;AACpC,MAAM,MAAM,cAAc,GACtB,SAAS,GACT,mBAAmB,GACnB,aAAa,GACb,MAAM,CAAC;AAEX,mCAAmC;AACnC,MAAM,WAAW,kBAAkB;IACjC,6CAA6C;IAC7C,QAAQ,EAAE,OAAO,GAAG,MAAM,CAAC;IAC3B,mEAAmE;IACnE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,qDAAqD;IACrD,iBAAiB,CAAC,EAAE,cAAc,CAAC;IACnC,2CAA2C;IAC3C,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,oDAAoD;AACpD,MAAM,MAAM,kBAAkB,GAAG,CAC/B,OAAO,EAAE,qBAAqB,KAC3B,OAAO,CAAC,kBAAkB,CAAC,CAAC;AAEjC,mDAAmD;AACnD,MAAM,WAAW,qBAAqB;IACpC,sCAAsC;IACtC,QAAQ,EAAE,MAAM,CAAC;IACjB,8BAA8B;IAC9B,cAAc,EAAE,cAAc,CAAC;IAC/B,6CAA6C;IAC7C,kBAAkB,CAAC,EAAE,kBAAkB,CAAC;IACxC,+CAA+C;IAC/C,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACpC,yCAAyC;IACzC,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,2FAA2F;IAC3F,oBAAoB,CAAC,EAAE,OAAO,CAAC;CAChC;AAED,mEAAmE;AACnE,eAAO,MAAM,gBAAgB,8FAQnB,CAAC;AAEX,qCAAqC;AACrC,MAAM,MAAM,cAAc,GAAG,CAAC,OAAO,gBAAgB,CAAC,CAAC,MAAM,CAAC,CAAC;AAE/D,YAAY,EAAE,eAAe,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,CAAC"}
1
+ {"version":3,"file":"permissions.d.ts","sourceRoot":"","sources":["../../src/types/permissions.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EACL,eAAe,EACf,oBAAoB,EACpB,qBAAqB,EACtB,MAAM,YAAY,CAAC;AASpB,oCAAoC;AACpC,MAAM,MAAM,cAAc,GACtB,SAAS,GACT,mBAAmB,GACnB,aAAa,GACb,MAAM,CAAC;AAEX,mCAAmC;AACnC,MAAM,WAAW,kBAAkB;IACjC,6CAA6C;IAC7C,QAAQ,EAAE,OAAO,GAAG,MAAM,CAAC;IAC3B,mEAAmE;IACnE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,qDAAqD;IACrD,iBAAiB,CAAC,EAAE,cAAc,CAAC;IACnC,2CAA2C;IAC3C,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,oDAAoD;AACpD,MAAM,MAAM,kBAAkB,GAAG,CAC/B,OAAO,EAAE,qBAAqB,KAC3B,OAAO,CAAC,kBAAkB,CAAC,CAAC;AAEjC,mDAAmD;AACnD,MAAM,WAAW,qBAAqB;IACpC,sCAAsC;IACtC,QAAQ,EAAE,MAAM,CAAC;IACjB,8BAA8B;IAC9B,cAAc,EAAE,cAAc,CAAC;IAC/B,6CAA6C;IAC7C,kBAAkB,CAAC,EAAE,kBAAkB,CAAC;IACxC,+CAA+C;IAC/C,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACpC,yCAAyC;IACzC,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,2FAA2F;IAC3F,oBAAoB,CAAC,EAAE,OAAO,CAAC;CAChC;AAED,mEAAmE;AACnE,eAAO,MAAM,gBAAgB,uEAMnB,CAAC;AAEX,qCAAqC;AACrC,MAAM,MAAM,cAAc,GAAG,CAAC,OAAO,gBAAgB,CAAC,CAAC,MAAM,CAAC,CAAC;AAE/D,YAAY,EAAE,eAAe,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,CAAC"}
@@ -2,12 +2,10 @@
2
2
  * Permission system types for Wave Agent SDK
3
3
  * Dependencies: None
4
4
  */
5
- import { EDIT_TOOL_NAME, MULTI_EDIT_TOOL_NAME, DELETE_FILE_TOOL_NAME, BASH_TOOL_NAME, WRITE_TOOL_NAME, EXIT_PLAN_MODE_TOOL_NAME, ASK_USER_QUESTION_TOOL_NAME, } from "../constants/tools.js";
5
+ import { EDIT_TOOL_NAME, BASH_TOOL_NAME, WRITE_TOOL_NAME, EXIT_PLAN_MODE_TOOL_NAME, ASK_USER_QUESTION_TOOL_NAME, } from "../constants/tools.js";
6
6
  /** List of tools that require permission checks in default mode */
7
7
  export const RESTRICTED_TOOLS = [
8
8
  EDIT_TOOL_NAME,
9
- MULTI_EDIT_TOOL_NAME,
10
- DELETE_FILE_TOOL_NAME,
11
9
  BASH_TOOL_NAME,
12
10
  WRITE_TOOL_NAME,
13
11
  EXIT_PLAN_MODE_TOOL_NAME,
@@ -2,7 +2,6 @@
2
2
  * Skill system types and constants
3
3
  * Dependencies: Core (Logger)
4
4
  */
5
- import type { Logger } from "./core.js";
6
5
  export interface SkillMetadata {
7
6
  name: string;
8
7
  description: string;
@@ -49,7 +48,6 @@ export interface SkillToolArgs {
49
48
  export interface SkillManagerOptions {
50
49
  personalSkillsPath?: string;
51
50
  scanTimeout?: number;
52
- logger?: Logger;
53
51
  workdir?: string;
54
52
  }
55
53
  export interface ParsedSkillFile {
@@ -1 +1 @@
1
- {"version":3,"file":"skills.d.ts","sourceRoot":"","sources":["../../src/types/skills.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAExC,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,UAAU,GAAG,SAAS,CAAC;IAC7B,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,KAAM,SAAQ,aAAa;IAC1C,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,gBAAgB,CAAC;IAC9B,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,UAAU,GAAG,SAAS,CAAC;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;IACnC,MAAM,EAAE,UAAU,EAAE,CAAC;CACtB;AAED,MAAM,WAAW,UAAU;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAED,MAAM,WAAW,oBAAoB;IACnC,cAAc,EAAE,GAAG,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;IAC3C,aAAa,EAAE,GAAG,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;IAC1C,MAAM,EAAE,UAAU,EAAE,CAAC;CACtB;AAED,MAAM,WAAW,sBAAsB;IACrC,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,aAAa;IAC5B,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,mBAAmB;IAClC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,eAAe;IAC9B,WAAW,EAAE,gBAAgB,CAAC;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,aAAa,CAAC;IAC7B,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,iBAAiB;IAChC,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,eAAO,MAAM,cAAc;;;;;;;;;;;;CAYjB,CAAC"}
1
+ {"version":3,"file":"skills.d.ts","sourceRoot":"","sources":["../../src/types/skills.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,UAAU,GAAG,SAAS,CAAC;IAC7B,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,KAAM,SAAQ,aAAa;IAC1C,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,gBAAgB,CAAC;IAC9B,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,UAAU,GAAG,SAAS,CAAC;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;IACnC,MAAM,EAAE,UAAU,EAAE,CAAC;CACtB;AAED,MAAM,WAAW,UAAU;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAED,MAAM,WAAW,oBAAoB;IACnC,cAAc,EAAE,GAAG,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;IAC3C,aAAa,EAAE,GAAG,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;IAC1C,MAAM,EAAE,UAAU,EAAE,CAAC;CACtB;AAED,MAAM,WAAW,sBAAsB;IACrC,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,aAAa;IAC5B,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,mBAAmB;IAClC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,eAAe;IAC9B,WAAW,EAAE,gBAAgB,CAAC;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,aAAa,CAAC;IAC7B,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,iBAAiB;IAChC,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,eAAO,MAAM,cAAc;;;;;;;;;;;;CAYjB,CAAC"}
@@ -28,14 +28,6 @@ export interface WriteToolParameters {
28
28
  file_path: string;
29
29
  content: string;
30
30
  }
31
- /**
32
- * Parameters for a single edit operation in the Edit tool
33
- */
34
- export interface EditOperation {
35
- old_string: string;
36
- new_string: string;
37
- replace_all?: boolean;
38
- }
39
31
  /**
40
32
  * Parameters for the Edit tool
41
33
  */
@@ -45,11 +37,4 @@ export interface EditToolParameters {
45
37
  new_string: string;
46
38
  replace_all?: boolean;
47
39
  }
48
- /**
49
- * Parameters for the MultiEdit tool
50
- */
51
- export interface MultiEditToolParameters {
52
- file_path: string;
53
- edits: EditOperation[];
54
- }
55
40
  //# sourceMappingURL=tools.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../src/types/tools.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,qBAAqB,EAAE,CAAC;IACjC,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,MAAM,WAAW,oBAAoB;IACnC,SAAS,EAAE,eAAe,EAAE,CAAC;IAC7B,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,QAAQ,CAAC,EAAE;QACT,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,CAAC;CACH;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,aAAa,EAAE,CAAC;CACxB"}
1
+ {"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../src/types/tools.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,qBAAqB,EAAE,CAAC;IACjC,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,MAAM,WAAW,oBAAoB;IACnC,SAAS,EAAE,eAAe,EAAE,CAAC;IAC7B,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,QAAQ,CAAC,EAAE;QACT,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,CAAC;CACH;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB"}
@@ -0,0 +1,31 @@
1
+ /**
2
+ * A simple Dependency Injection container to manage late-binding dependencies
3
+ * and resolve circular references.
4
+ */
5
+ export declare class Container {
6
+ private services;
7
+ private factories;
8
+ private parent?;
9
+ constructor(parent?: Container);
10
+ /**
11
+ * Create a child container that inherits from this container
12
+ */
13
+ createChild(): Container;
14
+ /**
15
+ * Register a singleton instance
16
+ */
17
+ register<T>(token: string, instance: T): void;
18
+ /**
19
+ * Register a factory function for lazy resolution
20
+ */
21
+ provide<T>(token: string, factory: () => T): void;
22
+ /**
23
+ * Resolve a service by token
24
+ */
25
+ get<T>(token: string): T | undefined;
26
+ /**
27
+ * Check if a service exists
28
+ */
29
+ has(token: string): boolean;
30
+ }
31
+ //# sourceMappingURL=container.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"container.d.ts","sourceRoot":"","sources":["../../src/utils/container.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,qBAAa,SAAS;IACpB,OAAO,CAAC,QAAQ,CAA8B;IAC9C,OAAO,CAAC,SAAS,CAAoC;IACrD,OAAO,CAAC,MAAM,CAAC,CAAY;gBAEf,MAAM,CAAC,EAAE,SAAS;IAI9B;;OAEG;IACH,WAAW,IAAI,SAAS;IAIxB;;OAEG;IACH,QAAQ,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,GAAG,IAAI;IAI7C;;OAEG;IACH,OAAO,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,GAAG,IAAI;IAIjD;;OAEG;IACH,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,GAAG,CAAC,GAAG,SAAS;IAmBpC;;OAEG;IACH,GAAG,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;CAO5B"}
@@ -0,0 +1,79 @@
1
+ /**
2
+ * A simple Dependency Injection container to manage late-binding dependencies
3
+ * and resolve circular references.
4
+ */
5
+ export class Container {
6
+ constructor(parent) {
7
+ this.services = new Map();
8
+ this.factories = new Map();
9
+ this.parent = parent;
10
+ }
11
+ /**
12
+ * Create a child container that inherits from this container
13
+ */
14
+ createChild() {
15
+ return new Container(this);
16
+ }
17
+ /**
18
+ * Register a singleton instance
19
+ */
20
+ register(token, instance) {
21
+ this.services.set(token, instance);
22
+ }
23
+ /**
24
+ * Register a factory function for lazy resolution
25
+ */
26
+ provide(token, factory) {
27
+ this.factories.set(token, factory);
28
+ }
29
+ /**
30
+ * Resolve a service by token
31
+ */
32
+ get(token) {
33
+ if (this.services.has(token)) {
34
+ return this.services.get(token);
35
+ }
36
+ const factory = this.factories.get(token);
37
+ if (factory) {
38
+ const instance = factory();
39
+ this.services.set(token, instance);
40
+ return instance;
41
+ }
42
+ if (this.parent) {
43
+ return this.parent.get(token);
44
+ }
45
+ return undefined;
46
+ }
47
+ /**
48
+ * Check if a service exists
49
+ */
50
+ has(token) {
51
+ return (this.services.has(token) ||
52
+ this.factories.has(token) ||
53
+ (this.parent ? this.parent.has(token) : false));
54
+ }
55
+ }
56
+ // Example usage for ToolManager:
57
+ /*
58
+ const container = new Container();
59
+
60
+ // 1. Provide managers lazily
61
+ container.provide('SubagentManager', () => new SubagentManager(...));
62
+ container.provide('SkillManager', () => new SkillManager(...));
63
+
64
+ // 2. ToolManager can now resolve them only when needed (e.g., in execute)
65
+ class ToolManager {
66
+ constructor(private container: Container) {}
67
+
68
+ async execute(name: string, args: any, context: any) {
69
+ const enhancedContext = {
70
+ ...context,
71
+ subagentManager: this.container.has('SubagentManager')
72
+ ? this.container.get('SubagentManager')
73
+ : undefined,
74
+ // ...
75
+ };
76
+ // ...
77
+ }
78
+ }
79
+ */
@@ -0,0 +1,26 @@
1
+ import { Container } from "./container.js";
2
+ import { ConfigurationService } from "../services/configurationService.js";
3
+ import type { AgentOptions } from "../agent.js";
4
+ import type { PermissionMode, Usage, Task, BackgroundTask } from "../types/index.js";
5
+ import type { GatewayConfig, ModelConfig } from "../types/config.js";
6
+ export interface AgentContainerSetupOptions {
7
+ options: AgentOptions;
8
+ workdir: string;
9
+ configurationService: ConfigurationService;
10
+ systemPrompt?: string;
11
+ stream: boolean;
12
+ onSessionIdChange: (sessionId: string) => void;
13
+ onTasksChange: (tasks: BackgroundTask[]) => void;
14
+ onSessionTasksChange: (tasks: Task[]) => void;
15
+ onPermissionModeChange: (mode: PermissionMode) => void;
16
+ handlePlanModeTransition: (mode: PermissionMode) => void;
17
+ setPermissionMode: (mode: PermissionMode) => void;
18
+ addPermissionRule: (rule: string) => Promise<void>;
19
+ addUsage: (usage: Usage) => void;
20
+ getGatewayConfig: () => GatewayConfig;
21
+ getModelConfig: () => ModelConfig;
22
+ getMaxInputTokens: () => number;
23
+ getLanguage: () => string | undefined;
24
+ }
25
+ export declare function setupAgentContainer(setupOptions: AgentContainerSetupOptions): Container;
26
+ //# sourceMappingURL=containerSetup.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"containerSetup.d.ts","sourceRoot":"","sources":["../../src/utils/containerSetup.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAoB3C,OAAO,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAE3E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAChD,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,iBAAiB,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/C,aAAa,EAAE,CAAC,KAAK,EAAE,cAAc,EAAE,KAAK,IAAI,CAAC;IACjD,oBAAoB,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC;IAC9C,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,CAmMX"}
@@ -0,0 +1,165 @@
1
+ import { Container } from "./container.js";
2
+ import { ForegroundTaskManager } from "../managers/foregroundTaskManager.js";
3
+ import { BackgroundTaskManager } from "../managers/backgroundTaskManager.js";
4
+ import { TaskManager } from "../services/taskManager.js";
5
+ import { MessageManager } from "../managers/messageManager.js";
6
+ import { AIManager } from "../managers/aiManager.js";
7
+ import { ToolManager } from "../managers/toolManager.js";
8
+ import { McpManager } from "../managers/mcpManager.js";
9
+ import { LspManager } from "../managers/lspManager.js";
10
+ import { PermissionManager } from "../managers/permissionManager.js";
11
+ import { PlanManager } from "../managers/planManager.js";
12
+ import { HookManager } from "../managers/hookManager.js";
13
+ import { SkillManager } from "../managers/skillManager.js";
14
+ import { SlashCommandManager } from "../managers/slashCommandManager.js";
15
+ import { PluginManager } from "../managers/pluginManager.js";
16
+ import { BashManager } from "../managers/bashManager.js";
17
+ import { MemoryRuleManager } from "../managers/MemoryRuleManager.js";
18
+ import { ReversionManager } from "../managers/reversionManager.js";
19
+ import { SubagentManager } from "../managers/subagentManager.js";
20
+ import { LiveConfigManager } from "../managers/liveConfigManager.js";
21
+ import { ReversionService } from "../services/reversionService.js";
22
+ import { logger } from "./globalLogger.js";
23
+ export function setupAgentContainer(setupOptions) {
24
+ const { options, workdir, configurationService, systemPrompt, stream, onSessionIdChange, onTasksChange, onSessionTasksChange, onPermissionModeChange, handlePlanModeTransition, setPermissionMode, addPermissionRule, addUsage, getGatewayConfig, getModelConfig, getMaxInputTokens, getLanguage, } = setupOptions;
25
+ const callbacks = options.callbacks || {};
26
+ const container = new Container();
27
+ const foregroundTaskManager = new ForegroundTaskManager(container);
28
+ container.register("ForegroundTaskManager", foregroundTaskManager);
29
+ container.register("ConfigurationService", configurationService);
30
+ const memoryRuleManager = new MemoryRuleManager(container, { workdir });
31
+ container.register("MemoryRuleManager", memoryRuleManager);
32
+ const messageManager = new MessageManager(container, {
33
+ callbacks: {
34
+ ...callbacks,
35
+ onSessionIdChange: (sessionId) => {
36
+ onSessionIdChange(sessionId);
37
+ callbacks.onSessionIdChange?.(sessionId);
38
+ },
39
+ },
40
+ workdir,
41
+ });
42
+ container.register("MessageManager", messageManager);
43
+ const resolvedTaskListId = configurationService.getEnvironmentVars().WAVE_TASK_LIST_ID ||
44
+ process.env.WAVE_TASK_LIST_ID ||
45
+ messageManager.getRootSessionId();
46
+ const taskManager = new TaskManager(container, resolvedTaskListId);
47
+ container.register("TaskManager", taskManager);
48
+ taskManager.on("tasksChange", async () => {
49
+ const tasks = await taskManager.listTasks();
50
+ onSessionTasksChange(tasks);
51
+ });
52
+ const backgroundTaskManager = new BackgroundTaskManager(container, {
53
+ callbacks: {
54
+ ...callbacks,
55
+ onTasksChange: (tasks) => {
56
+ onTasksChange(tasks);
57
+ callbacks.onTasksChange?.(tasks);
58
+ },
59
+ },
60
+ workdir,
61
+ });
62
+ container.register("BackgroundTaskManager", backgroundTaskManager);
63
+ const mcpManager = new McpManager(container, { callbacks });
64
+ container.register("McpManager", mcpManager);
65
+ const lspManager = options.lspManager || new LspManager(container);
66
+ container.register("LspManager", lspManager);
67
+ const permissionManager = new PermissionManager(container, { workdir });
68
+ container.register("PermissionManager", permissionManager);
69
+ permissionManager.setOnConfiguredDefaultModeChange((mode) => {
70
+ handlePlanModeTransition(mode);
71
+ onPermissionModeChange(mode);
72
+ });
73
+ const planManager = new PlanManager(container);
74
+ container.register("PlanManager", planManager);
75
+ const hookManager = new HookManager(container, workdir);
76
+ container.register("HookManager", hookManager);
77
+ const skillManager = new SkillManager(container, { workdir });
78
+ container.register("SkillManager", skillManager);
79
+ container.register("ReversionService", new ReversionService(messageManager.getTranscriptPath()));
80
+ const reversionManager = new ReversionManager(container);
81
+ container.register("ReversionManager", reversionManager);
82
+ const canUseToolWithNotification = options.canUseTool
83
+ ? async (context) => {
84
+ try {
85
+ const notificationMessage = `Claude needs your permission to use ${context.toolName}`;
86
+ await hookManager.executeHooks("Notification", {
87
+ event: "Notification",
88
+ projectDir: workdir,
89
+ timestamp: new Date(),
90
+ sessionId: messageManager.getSessionId(),
91
+ transcriptPath: messageManager.getTranscriptPath(),
92
+ cwd: workdir,
93
+ message: notificationMessage,
94
+ notificationType: "permission_prompt",
95
+ env: configurationService.getEnvironmentVars(),
96
+ });
97
+ }
98
+ catch (error) {
99
+ logger.warn("Failed to execute notification hooks", {
100
+ toolName: context.toolName,
101
+ error: error instanceof Error ? error.message : String(error),
102
+ });
103
+ }
104
+ const decision = await options.canUseTool(context);
105
+ if (decision.newPermissionMode) {
106
+ setPermissionMode(decision.newPermissionMode);
107
+ }
108
+ if (decision.newPermissionRule) {
109
+ await addPermissionRule(decision.newPermissionRule);
110
+ }
111
+ return decision;
112
+ }
113
+ : undefined;
114
+ const toolManager = new ToolManager({
115
+ container,
116
+ tools: options.tools,
117
+ });
118
+ container.register("ToolManager", toolManager);
119
+ container.register("PermissionMode", options.permissionMode);
120
+ container.register("CanUseToolCallback", canUseToolWithNotification);
121
+ const liveConfigManager = new LiveConfigManager(container, { workdir });
122
+ container.register("LiveConfigManager", liveConfigManager);
123
+ const subagentManager = new SubagentManager(container, {
124
+ workdir,
125
+ callbacks: {
126
+ onSubagentUserMessageAdded: callbacks.onSubagentUserMessageAdded,
127
+ onSubagentAssistantMessageAdded: callbacks.onSubagentAssistantMessageAdded,
128
+ onSubagentAssistantContentUpdated: callbacks.onSubagentAssistantContentUpdated,
129
+ onSubagentAssistantReasoningUpdated: callbacks.onSubagentAssistantReasoningUpdated,
130
+ onSubagentToolBlockUpdated: callbacks.onSubagentToolBlockUpdated,
131
+ onSubagentMessagesChange: callbacks.onSubagentMessagesChange,
132
+ onSubagentLatestTotalTokensChange: callbacks.onSubagentLatestTotalTokensChange,
133
+ },
134
+ getGatewayConfig,
135
+ getModelConfig,
136
+ getMaxInputTokens,
137
+ getLanguage,
138
+ getEnvironmentVars: () => configurationService.getEnvironmentVars(),
139
+ onUsageAdded: (usage) => addUsage(usage),
140
+ });
141
+ container.register("SubagentManager", subagentManager);
142
+ const aiManager = new AIManager(container, {
143
+ callbacks: {
144
+ ...callbacks,
145
+ onUsageAdded: (usage) => addUsage(usage),
146
+ },
147
+ workdir,
148
+ systemPrompt,
149
+ stream,
150
+ getGatewayConfig,
151
+ getModelConfig,
152
+ getMaxInputTokens,
153
+ getLanguage,
154
+ getEnvironmentVars: () => configurationService.getEnvironmentVars(),
155
+ });
156
+ container.register("AIManager", aiManager);
157
+ const slashCommandManager = new SlashCommandManager(container, { workdir });
158
+ container.register("SlashCommandManager", slashCommandManager);
159
+ slashCommandManager.initialize();
160
+ const pluginManager = new PluginManager(container, { workdir });
161
+ container.register("PluginManager", pluginManager);
162
+ const bashManager = new BashManager(container, { workdir });
163
+ container.register("BashManager", bashManager);
164
+ return container;
165
+ }
@@ -1,6 +1,3 @@
1
- /**
2
- * Utility functions for file editing tools
3
- */
4
1
  /**
5
2
  * Escape regular expression special characters
6
3
  */
@@ -1 +1 @@
1
- {"version":3,"file":"editUtils.d.ts","sourceRoot":"","sources":["../../src/utils/editUtils.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAEnD;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,MAAM,EACf,YAAY,EAAE,MAAM,GACnB,MAAM,CAoER"}
1
+ {"version":3,"file":"editUtils.d.ts","sourceRoot":"","sources":["../../src/utils/editUtils.ts"],"names":[],"mappings":"AAKA;;GAEG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAEnD;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,MAAM,EACf,YAAY,EAAE,MAAM,GACnB,MAAM,CAoER"}
@@ -1,6 +1,7 @@
1
1
  /**
2
2
  * Utility functions for file editing tools
3
3
  */
4
+ import { formatLineNumberPrefix } from "./stringUtils.js";
4
5
  /**
5
6
  * Escape regular expression special characters
6
7
  */
@@ -57,11 +58,11 @@ export function analyzeEditMismatch(content, searchString) {
57
58
  const actualLine = contentLines[bestMatchIndex + j];
58
59
  const expectedLine = searchLines[j];
59
60
  if (actualLine === expectedLine) {
60
- reportLines.push(`${lineNum.toString().padStart(4)} | ${actualLine}`);
61
+ reportLines.push(`${formatLineNumberPrefix(lineNum)}${actualLine}`);
61
62
  }
62
63
  else {
63
- reportLines.push(`${lineNum.toString().padStart(4)} | - ${expectedLine}`);
64
- reportLines.push(`${lineNum.toString().padStart(4)} | + ${actualLine}`);
64
+ reportLines.push(`${formatLineNumberPrefix(lineNum)}- ${expectedLine}`);
65
+ reportLines.push(`${formatLineNumberPrefix(lineNum)}+ ${actualLine}`);
65
66
  }
66
67
  }
67
68
  return reportLines.join("\n");
@@ -34,7 +34,7 @@ export declare class HookMatcher {
34
34
  * Get all tool names that would match this pattern from a given list
35
35
  * Useful for testing and validation
36
36
  */
37
- getMatches(pattern: string, toolNames: string[]): string[];
37
+ getMatches(pattern: string, tools: string[]): string[];
38
38
  /**
39
39
  * Optimize pattern for repeated matching
40
40
  * Returns a compiled matcher function for performance
@@ -1 +1 @@
1
- {"version":3,"file":"hookMatcher.d.ts","sourceRoot":"","sources":["../../src/utils/hookMatcher.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,qBAAa,WAAW;IACtB;;;;;;;OAOG;IACH,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO;IAYnD;;OAEG;IACH,OAAO,CAAC,aAAa;IAmBrB;;OAEG;IACH,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAoBxC;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAmB5B;;OAEG;IACH,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,GAAG,MAAM,GAAG,OAAO,GAAG,cAAc;IA6B5E;;;OAGG;IACH,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE;IAI1D;;;OAGG;IACH,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO;CAkCxD"}
1
+ {"version":3,"file":"hookMatcher.d.ts","sourceRoot":"","sources":["../../src/utils/hookMatcher.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,qBAAa,WAAW;IACtB;;;;;;;OAOG;IACH,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO;IAYnD;;OAEG;IACH,OAAO,CAAC,aAAa;IAmBrB;;OAEG;IACH,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAoBxC;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAmB5B;;OAEG;IACH,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,GAAG,MAAM,GAAG,OAAO,GAAG,cAAc;IA6B5E;;;OAGG;IACH,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE;IAItD;;;OAGG;IACH,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO;CAkCxD"}
@@ -112,8 +112,8 @@ export class HookMatcher {
112
112
  * Get all tool names that would match this pattern from a given list
113
113
  * Useful for testing and validation
114
114
  */
115
- getMatches(pattern, toolNames) {
116
- return toolNames.filter((toolName) => this.matches(pattern, toolName));
115
+ getMatches(pattern, tools) {
116
+ return tools.filter((toolName) => this.matches(pattern, toolName));
117
117
  }
118
118
  /**
119
119
  * Optimize pattern for repeated matching
@@ -29,8 +29,8 @@ export class OpenAIClient {
29
29
  };
30
30
  const fetchFn = customFetch || fetch;
31
31
  let lastError;
32
- const maxRetries = 3;
33
- const initialDelay = 1000;
32
+ const maxRetries = 5;
33
+ const initialDelay = 2000;
34
34
  for (let attempt = 0; attempt <= maxRetries; attempt++) {
35
35
  if (attempt > 0) {
36
36
  const delay = initialDelay * Math.pow(2, attempt - 1);
@@ -17,4 +17,10 @@ export declare function parseCustomHeaders(headersString: string): Record<string
17
17
  * @returns Plain text with color codes removed
18
18
  */
19
19
  export declare const stripAnsiColors: (text: string) => string;
20
+ /**
21
+ * Format a line number prefix in cat -n style (padStart(6) + tab)
22
+ * @param lineNumber The line number
23
+ * @returns Formatted line number prefix
24
+ */
25
+ export declare function formatLineNumberPrefix(lineNumber: number): string;
20
26
  //# sourceMappingURL=stringUtils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"stringUtils.d.ts","sourceRoot":"","sources":["../../src/utils/stringUtils.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAgC/D;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAChC,aAAa,EAAE,MAAM,GACpB,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAwBxB;AAED;;;;GAIG;AACH,eAAO,MAAM,eAAe,GAAI,MAAM,MAAM,KAAG,MAK9C,CAAC"}
1
+ {"version":3,"file":"stringUtils.d.ts","sourceRoot":"","sources":["../../src/utils/stringUtils.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAgC/D;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAChC,aAAa,EAAE,MAAM,GACpB,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAwBxB;AAED;;;;GAIG;AACH,eAAO,MAAM,eAAe,GAAI,MAAM,MAAM,KAAG,MAK9C,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAEjE"}
@@ -69,3 +69,11 @@ export const stripAnsiColors = (text) => {
69
69
  const ansiEscapeRegex = new RegExp(`${escapeChar}\\[[0-9;]*[a-zA-Z]`, "g");
70
70
  return text.replace(ansiEscapeRegex, "");
71
71
  };
72
+ /**
73
+ * Format a line number prefix in cat -n style (padStart(6) + tab)
74
+ * @param lineNumber The line number
75
+ * @returns Formatted line number prefix
76
+ */
77
+ export function formatLineNumberPrefix(lineNumber) {
78
+ return `${lineNumber.toString().padStart(6)}\t`;
79
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "wave-agent-sdk",
3
- "version": "0.6.5",
3
+ "version": "0.7.0",
4
4
  "description": "SDK for building AI-powered development tools and agents",
5
5
  "keywords": [
6
6
  "ai",