wave-agent-sdk 0.0.7 → 0.0.10

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 (240) hide show
  1. package/dist/agent.d.ts +105 -24
  2. package/dist/agent.d.ts.map +1 -1
  3. package/dist/agent.js +438 -53
  4. package/dist/index.d.ts +4 -0
  5. package/dist/index.d.ts.map +1 -1
  6. package/dist/index.js +4 -0
  7. package/dist/managers/aiManager.d.ts +18 -7
  8. package/dist/managers/aiManager.d.ts.map +1 -1
  9. package/dist/managers/aiManager.js +254 -142
  10. package/dist/managers/backgroundBashManager.d.ts.map +1 -1
  11. package/dist/managers/backgroundBashManager.js +11 -9
  12. package/dist/managers/hookManager.d.ts +6 -6
  13. package/dist/managers/hookManager.d.ts.map +1 -1
  14. package/dist/managers/hookManager.js +81 -39
  15. package/dist/managers/liveConfigManager.d.ts +95 -0
  16. package/dist/managers/liveConfigManager.d.ts.map +1 -0
  17. package/dist/managers/liveConfigManager.js +442 -0
  18. package/dist/managers/lspManager.d.ts +43 -0
  19. package/dist/managers/lspManager.d.ts.map +1 -0
  20. package/dist/managers/lspManager.js +326 -0
  21. package/dist/managers/messageManager.d.ts +41 -24
  22. package/dist/managers/messageManager.d.ts.map +1 -1
  23. package/dist/managers/messageManager.js +184 -73
  24. package/dist/managers/permissionManager.d.ts +66 -0
  25. package/dist/managers/permissionManager.d.ts.map +1 -0
  26. package/dist/managers/permissionManager.js +208 -0
  27. package/dist/managers/skillManager.d.ts +1 -0
  28. package/dist/managers/skillManager.d.ts.map +1 -1
  29. package/dist/managers/skillManager.js +2 -1
  30. package/dist/managers/slashCommandManager.d.ts.map +1 -1
  31. package/dist/managers/slashCommandManager.js +4 -2
  32. package/dist/managers/subagentManager.d.ts +42 -6
  33. package/dist/managers/subagentManager.d.ts.map +1 -1
  34. package/dist/managers/subagentManager.js +213 -62
  35. package/dist/managers/toolManager.d.ts +38 -1
  36. package/dist/managers/toolManager.d.ts.map +1 -1
  37. package/dist/managers/toolManager.js +66 -2
  38. package/dist/services/aiService.d.ts +15 -5
  39. package/dist/services/aiService.d.ts.map +1 -1
  40. package/dist/services/aiService.js +446 -77
  41. package/dist/services/configurationService.d.ts +116 -0
  42. package/dist/services/configurationService.d.ts.map +1 -0
  43. package/dist/services/configurationService.js +585 -0
  44. package/dist/services/fileWatcher.d.ts +69 -0
  45. package/dist/services/fileWatcher.d.ts.map +1 -0
  46. package/dist/services/fileWatcher.js +212 -0
  47. package/dist/services/hook.d.ts +5 -40
  48. package/dist/services/hook.d.ts.map +1 -1
  49. package/dist/services/hook.js +47 -109
  50. package/dist/services/jsonlHandler.d.ts +71 -0
  51. package/dist/services/jsonlHandler.d.ts.map +1 -0
  52. package/dist/services/jsonlHandler.js +236 -0
  53. package/dist/services/memory.d.ts.map +1 -1
  54. package/dist/services/memory.js +33 -11
  55. package/dist/services/session.d.ts +116 -52
  56. package/dist/services/session.d.ts.map +1 -1
  57. package/dist/services/session.js +415 -143
  58. package/dist/tools/bashTool.d.ts.map +1 -1
  59. package/dist/tools/bashTool.js +77 -17
  60. package/dist/tools/deleteFileTool.d.ts.map +1 -1
  61. package/dist/tools/deleteFileTool.js +27 -1
  62. package/dist/tools/editTool.d.ts.map +1 -1
  63. package/dist/tools/editTool.js +33 -8
  64. package/dist/tools/lspTool.d.ts +6 -0
  65. package/dist/tools/lspTool.d.ts.map +1 -0
  66. package/dist/tools/lspTool.js +589 -0
  67. package/dist/tools/multiEditTool.d.ts.map +1 -1
  68. package/dist/tools/multiEditTool.js +30 -10
  69. package/dist/tools/readTool.d.ts.map +1 -1
  70. package/dist/tools/readTool.js +113 -3
  71. package/dist/tools/skillTool.js +2 -2
  72. package/dist/tools/todoWriteTool.d.ts.map +1 -1
  73. package/dist/tools/todoWriteTool.js +23 -0
  74. package/dist/tools/types.d.ts +11 -8
  75. package/dist/tools/types.d.ts.map +1 -1
  76. package/dist/tools/writeTool.d.ts.map +1 -1
  77. package/dist/tools/writeTool.js +30 -15
  78. package/dist/types/commands.d.ts +4 -1
  79. package/dist/types/commands.d.ts.map +1 -1
  80. package/dist/types/config.d.ts +4 -0
  81. package/dist/types/config.d.ts.map +1 -1
  82. package/dist/types/configuration.d.ts +69 -0
  83. package/dist/types/configuration.d.ts.map +1 -0
  84. package/dist/types/configuration.js +8 -0
  85. package/dist/types/core.d.ts +45 -0
  86. package/dist/types/core.d.ts.map +1 -1
  87. package/dist/types/environment.d.ts +83 -0
  88. package/dist/types/environment.d.ts.map +1 -0
  89. package/dist/types/environment.js +21 -0
  90. package/dist/types/fileSearch.d.ts +5 -0
  91. package/dist/types/fileSearch.d.ts.map +1 -0
  92. package/dist/types/fileSearch.js +1 -0
  93. package/dist/types/hooks.d.ts +18 -3
  94. package/dist/types/hooks.d.ts.map +1 -1
  95. package/dist/types/hooks.js +8 -8
  96. package/dist/types/index.d.ts +7 -0
  97. package/dist/types/index.d.ts.map +1 -1
  98. package/dist/types/index.js +7 -0
  99. package/dist/types/lsp.d.ts +90 -0
  100. package/dist/types/lsp.d.ts.map +1 -0
  101. package/dist/types/lsp.js +4 -0
  102. package/dist/types/messaging.d.ts +19 -12
  103. package/dist/types/messaging.d.ts.map +1 -1
  104. package/dist/types/permissions.d.ts +35 -0
  105. package/dist/types/permissions.d.ts.map +1 -0
  106. package/dist/types/permissions.js +12 -0
  107. package/dist/types/session.d.ts +15 -0
  108. package/dist/types/session.d.ts.map +1 -0
  109. package/dist/types/session.js +7 -0
  110. package/dist/types/skills.d.ts +1 -0
  111. package/dist/types/skills.d.ts.map +1 -1
  112. package/dist/types/tools.d.ts +35 -0
  113. package/dist/types/tools.d.ts.map +1 -0
  114. package/dist/types/tools.js +4 -0
  115. package/dist/utils/abortUtils.d.ts +34 -0
  116. package/dist/utils/abortUtils.d.ts.map +1 -0
  117. package/dist/utils/abortUtils.js +92 -0
  118. package/dist/utils/bashHistory.d.ts +4 -0
  119. package/dist/utils/bashHistory.d.ts.map +1 -1
  120. package/dist/utils/bashHistory.js +48 -30
  121. package/dist/utils/builtinSubagents.d.ts +7 -0
  122. package/dist/utils/builtinSubagents.d.ts.map +1 -0
  123. package/dist/utils/builtinSubagents.js +65 -0
  124. package/dist/utils/cacheControlUtils.d.ts +96 -0
  125. package/dist/utils/cacheControlUtils.d.ts.map +1 -0
  126. package/dist/utils/cacheControlUtils.js +324 -0
  127. package/dist/utils/commandPathResolver.d.ts +52 -0
  128. package/dist/utils/commandPathResolver.d.ts.map +1 -0
  129. package/dist/utils/commandPathResolver.js +145 -0
  130. package/dist/utils/configPaths.d.ts +85 -0
  131. package/dist/utils/configPaths.d.ts.map +1 -0
  132. package/dist/utils/configPaths.js +121 -0
  133. package/dist/utils/constants.d.ts +1 -13
  134. package/dist/utils/constants.d.ts.map +1 -1
  135. package/dist/utils/constants.js +2 -14
  136. package/dist/utils/convertMessagesForAPI.d.ts +2 -1
  137. package/dist/utils/convertMessagesForAPI.d.ts.map +1 -1
  138. package/dist/utils/convertMessagesForAPI.js +39 -18
  139. package/dist/utils/customCommands.d.ts.map +1 -1
  140. package/dist/utils/customCommands.js +66 -21
  141. package/dist/utils/fileSearch.d.ts +14 -0
  142. package/dist/utils/fileSearch.d.ts.map +1 -0
  143. package/dist/utils/fileSearch.js +88 -0
  144. package/dist/utils/fileUtils.d.ts +27 -0
  145. package/dist/utils/fileUtils.d.ts.map +1 -0
  146. package/dist/utils/fileUtils.js +145 -0
  147. package/dist/utils/globalLogger.d.ts +88 -0
  148. package/dist/utils/globalLogger.d.ts.map +1 -0
  149. package/dist/utils/globalLogger.js +120 -0
  150. package/dist/utils/largeOutputHandler.d.ts +15 -0
  151. package/dist/utils/largeOutputHandler.d.ts.map +1 -0
  152. package/dist/utils/largeOutputHandler.js +40 -0
  153. package/dist/utils/markdownParser.d.ts.map +1 -1
  154. package/dist/utils/markdownParser.js +1 -17
  155. package/dist/utils/mcpUtils.d.ts.map +1 -1
  156. package/dist/utils/mcpUtils.js +25 -3
  157. package/dist/utils/messageOperations.d.ts +20 -18
  158. package/dist/utils/messageOperations.d.ts.map +1 -1
  159. package/dist/utils/messageOperations.js +30 -38
  160. package/dist/utils/pathEncoder.d.ts +108 -0
  161. package/dist/utils/pathEncoder.d.ts.map +1 -0
  162. package/dist/utils/pathEncoder.js +279 -0
  163. package/dist/utils/subagentParser.d.ts +2 -2
  164. package/dist/utils/subagentParser.d.ts.map +1 -1
  165. package/dist/utils/subagentParser.js +12 -8
  166. package/dist/utils/tokenCalculation.d.ts +26 -0
  167. package/dist/utils/tokenCalculation.d.ts.map +1 -0
  168. package/dist/utils/tokenCalculation.js +36 -0
  169. package/dist/utils/tokenEstimator.d.ts +39 -0
  170. package/dist/utils/tokenEstimator.d.ts.map +1 -0
  171. package/dist/utils/tokenEstimator.js +55 -0
  172. package/package.json +6 -6
  173. package/src/agent.ts +586 -78
  174. package/src/index.ts +4 -0
  175. package/src/managers/aiManager.ts +341 -192
  176. package/src/managers/backgroundBashManager.ts +11 -9
  177. package/src/managers/hookManager.ts +102 -54
  178. package/src/managers/liveConfigManager.ts +634 -0
  179. package/src/managers/lspManager.ts +434 -0
  180. package/src/managers/messageManager.ts +258 -121
  181. package/src/managers/permissionManager.ts +276 -0
  182. package/src/managers/skillManager.ts +3 -1
  183. package/src/managers/slashCommandManager.ts +5 -3
  184. package/src/managers/subagentManager.ts +295 -76
  185. package/src/managers/toolManager.ts +95 -3
  186. package/src/services/aiService.ts +656 -84
  187. package/src/services/configurationService.ts +762 -0
  188. package/src/services/fileWatcher.ts +300 -0
  189. package/src/services/hook.ts +54 -144
  190. package/src/services/jsonlHandler.ts +303 -0
  191. package/src/services/memory.ts +34 -11
  192. package/src/services/session.ts +522 -173
  193. package/src/tools/bashTool.ts +94 -20
  194. package/src/tools/deleteFileTool.ts +38 -1
  195. package/src/tools/editTool.ts +44 -9
  196. package/src/tools/lspTool.ts +760 -0
  197. package/src/tools/multiEditTool.ts +41 -11
  198. package/src/tools/readTool.ts +127 -3
  199. package/src/tools/skillTool.ts +2 -2
  200. package/src/tools/todoWriteTool.ts +33 -1
  201. package/src/tools/types.ts +15 -9
  202. package/src/tools/writeTool.ts +43 -16
  203. package/src/types/commands.ts +6 -1
  204. package/src/types/config.ts +5 -0
  205. package/src/types/configuration.ts +73 -0
  206. package/src/types/core.ts +55 -0
  207. package/src/types/environment.ts +104 -0
  208. package/src/types/fileSearch.ts +4 -0
  209. package/src/types/hooks.ts +32 -16
  210. package/src/types/index.ts +7 -0
  211. package/src/types/lsp.ts +96 -0
  212. package/src/types/messaging.ts +21 -14
  213. package/src/types/permissions.ts +48 -0
  214. package/src/types/session.ts +20 -0
  215. package/src/types/skills.ts +1 -0
  216. package/src/types/tools.ts +38 -0
  217. package/src/utils/abortUtils.ts +118 -0
  218. package/src/utils/bashHistory.ts +55 -31
  219. package/src/utils/builtinSubagents.ts +71 -0
  220. package/src/utils/cacheControlUtils.ts +475 -0
  221. package/src/utils/commandPathResolver.ts +189 -0
  222. package/src/utils/configPaths.ts +163 -0
  223. package/src/utils/constants.ts +2 -17
  224. package/src/utils/convertMessagesForAPI.ts +44 -18
  225. package/src/utils/customCommands.ts +90 -22
  226. package/src/utils/fileSearch.ts +107 -0
  227. package/src/utils/fileUtils.ts +160 -0
  228. package/src/utils/globalLogger.ts +128 -0
  229. package/src/utils/largeOutputHandler.ts +55 -0
  230. package/src/utils/markdownParser.ts +1 -19
  231. package/src/utils/mcpUtils.ts +34 -3
  232. package/src/utils/messageOperations.ts +47 -53
  233. package/src/utils/pathEncoder.ts +394 -0
  234. package/src/utils/subagentParser.ts +13 -9
  235. package/src/utils/tokenCalculation.ts +43 -0
  236. package/src/utils/tokenEstimator.ts +68 -0
  237. package/dist/utils/configResolver.d.ts +0 -38
  238. package/dist/utils/configResolver.d.ts.map +0 -1
  239. package/dist/utils/configResolver.js +0 -106
  240. package/src/utils/configResolver.ts +0 -142
@@ -1,106 +0,0 @@
1
- /**
2
- * Configuration resolver utilities for Agent Constructor Configuration
3
- * Resolves configuration from constructor arguments with environment fallbacks
4
- */
5
- import { ConfigurationError, CONFIG_ERRORS, } from "../types/index.js";
6
- export class ConfigResolver {
7
- /**
8
- * Resolves gateway configuration from constructor args and environment
9
- * @param apiKey - API key from constructor (optional)
10
- * @param baseURL - Base URL from constructor (optional)
11
- * @returns Resolved gateway configuration
12
- * @throws ConfigurationError if required configuration is missing after fallbacks
13
- */
14
- static resolveGatewayConfig(apiKey, baseURL) {
15
- // Resolve API key: constructor > environment variable
16
- // Note: Explicitly provided empty strings should be treated as invalid, not fall back to env
17
- let resolvedApiKey;
18
- if (apiKey !== undefined) {
19
- resolvedApiKey = apiKey;
20
- }
21
- else {
22
- resolvedApiKey = process.env.AIGW_TOKEN || "";
23
- }
24
- if (!resolvedApiKey && apiKey === undefined) {
25
- throw new ConfigurationError(CONFIG_ERRORS.MISSING_API_KEY, "apiKey", {
26
- constructor: apiKey,
27
- environment: process.env.AIGW_TOKEN,
28
- });
29
- }
30
- if (resolvedApiKey.trim() === "") {
31
- throw new ConfigurationError(CONFIG_ERRORS.EMPTY_API_KEY, "apiKey", resolvedApiKey);
32
- }
33
- // Resolve base URL: constructor > environment variable
34
- // Note: Explicitly provided empty strings should be treated as invalid, not fall back to env
35
- let resolvedBaseURL;
36
- if (baseURL !== undefined) {
37
- resolvedBaseURL = baseURL;
38
- }
39
- else {
40
- resolvedBaseURL = process.env.AIGW_URL || "";
41
- }
42
- if (!resolvedBaseURL && baseURL === undefined) {
43
- throw new ConfigurationError(CONFIG_ERRORS.MISSING_BASE_URL, "baseURL", {
44
- constructor: baseURL,
45
- environment: process.env.AIGW_URL,
46
- });
47
- }
48
- if (resolvedBaseURL.trim() === "") {
49
- throw new ConfigurationError(CONFIG_ERRORS.EMPTY_BASE_URL, "baseURL", resolvedBaseURL);
50
- }
51
- return {
52
- apiKey: resolvedApiKey,
53
- baseURL: resolvedBaseURL,
54
- };
55
- }
56
- /**
57
- * Resolves model configuration with fallbacks
58
- * @param agentModel - Agent model from constructor (optional)
59
- * @param fastModel - Fast model from constructor (optional)
60
- * @returns Resolved model configuration with defaults
61
- */
62
- static resolveModelConfig(agentModel, fastModel) {
63
- // Default values as per data-model.md
64
- const DEFAULT_AGENT_MODEL = "claude-sonnet-4-20250514";
65
- const DEFAULT_FAST_MODEL = "gemini-2.5-flash";
66
- // Resolve agent model: constructor > environment > default
67
- const resolvedAgentModel = agentModel || process.env.AIGW_MODEL || DEFAULT_AGENT_MODEL;
68
- // Resolve fast model: constructor > environment > default
69
- const resolvedFastModel = fastModel || process.env.AIGW_FAST_MODEL || DEFAULT_FAST_MODEL;
70
- return {
71
- agentModel: resolvedAgentModel,
72
- fastModel: resolvedFastModel,
73
- };
74
- }
75
- /**
76
- * Resolves token limit with fallbacks
77
- * @param constructorLimit - Token limit from constructor (optional)
78
- * @returns Resolved token limit
79
- */
80
- static resolveTokenLimit(constructorLimit) {
81
- const DEFAULT_TOKEN_LIMIT = 64000;
82
- // If constructor value provided, use it
83
- if (constructorLimit !== undefined) {
84
- return constructorLimit;
85
- }
86
- // Try environment variable
87
- const envTokenLimit = process.env.TOKEN_LIMIT;
88
- if (envTokenLimit) {
89
- const parsed = parseInt(envTokenLimit, 10);
90
- if (!isNaN(parsed)) {
91
- return parsed;
92
- }
93
- }
94
- // Use default
95
- return DEFAULT_TOKEN_LIMIT;
96
- }
97
- }
98
- /**
99
- * Static configuration resolver instance
100
- * Implements ConfigurationResolver interface from types.ts
101
- */
102
- export const configResolver = {
103
- resolveGatewayConfig: ConfigResolver.resolveGatewayConfig,
104
- resolveModelConfig: ConfigResolver.resolveModelConfig,
105
- resolveTokenLimit: ConfigResolver.resolveTokenLimit,
106
- };
@@ -1,142 +0,0 @@
1
- /**
2
- * Configuration resolver utilities for Agent Constructor Configuration
3
- * Resolves configuration from constructor arguments with environment fallbacks
4
- */
5
-
6
- import {
7
- GatewayConfig,
8
- ModelConfig,
9
- ConfigurationError,
10
- CONFIG_ERRORS,
11
- } from "../types/index.js";
12
-
13
- export class ConfigResolver {
14
- /**
15
- * Resolves gateway configuration from constructor args and environment
16
- * @param apiKey - API key from constructor (optional)
17
- * @param baseURL - Base URL from constructor (optional)
18
- * @returns Resolved gateway configuration
19
- * @throws ConfigurationError if required configuration is missing after fallbacks
20
- */
21
- static resolveGatewayConfig(
22
- apiKey?: string,
23
- baseURL?: string,
24
- ): GatewayConfig {
25
- // Resolve API key: constructor > environment variable
26
- // Note: Explicitly provided empty strings should be treated as invalid, not fall back to env
27
- let resolvedApiKey: string;
28
- if (apiKey !== undefined) {
29
- resolvedApiKey = apiKey;
30
- } else {
31
- resolvedApiKey = process.env.AIGW_TOKEN || "";
32
- }
33
-
34
- if (!resolvedApiKey && apiKey === undefined) {
35
- throw new ConfigurationError(CONFIG_ERRORS.MISSING_API_KEY, "apiKey", {
36
- constructor: apiKey,
37
- environment: process.env.AIGW_TOKEN,
38
- });
39
- }
40
-
41
- if (resolvedApiKey.trim() === "") {
42
- throw new ConfigurationError(
43
- CONFIG_ERRORS.EMPTY_API_KEY,
44
- "apiKey",
45
- resolvedApiKey,
46
- );
47
- }
48
-
49
- // Resolve base URL: constructor > environment variable
50
- // Note: Explicitly provided empty strings should be treated as invalid, not fall back to env
51
- let resolvedBaseURL: string;
52
- if (baseURL !== undefined) {
53
- resolvedBaseURL = baseURL;
54
- } else {
55
- resolvedBaseURL = process.env.AIGW_URL || "";
56
- }
57
-
58
- if (!resolvedBaseURL && baseURL === undefined) {
59
- throw new ConfigurationError(CONFIG_ERRORS.MISSING_BASE_URL, "baseURL", {
60
- constructor: baseURL,
61
- environment: process.env.AIGW_URL,
62
- });
63
- }
64
-
65
- if (resolvedBaseURL.trim() === "") {
66
- throw new ConfigurationError(
67
- CONFIG_ERRORS.EMPTY_BASE_URL,
68
- "baseURL",
69
- resolvedBaseURL,
70
- );
71
- }
72
-
73
- return {
74
- apiKey: resolvedApiKey,
75
- baseURL: resolvedBaseURL,
76
- };
77
- }
78
-
79
- /**
80
- * Resolves model configuration with fallbacks
81
- * @param agentModel - Agent model from constructor (optional)
82
- * @param fastModel - Fast model from constructor (optional)
83
- * @returns Resolved model configuration with defaults
84
- */
85
- static resolveModelConfig(
86
- agentModel?: string,
87
- fastModel?: string,
88
- ): ModelConfig {
89
- // Default values as per data-model.md
90
- const DEFAULT_AGENT_MODEL = "claude-sonnet-4-20250514";
91
- const DEFAULT_FAST_MODEL = "gemini-2.5-flash";
92
-
93
- // Resolve agent model: constructor > environment > default
94
- const resolvedAgentModel =
95
- agentModel || process.env.AIGW_MODEL || DEFAULT_AGENT_MODEL;
96
-
97
- // Resolve fast model: constructor > environment > default
98
- const resolvedFastModel =
99
- fastModel || process.env.AIGW_FAST_MODEL || DEFAULT_FAST_MODEL;
100
-
101
- return {
102
- agentModel: resolvedAgentModel,
103
- fastModel: resolvedFastModel,
104
- };
105
- }
106
-
107
- /**
108
- * Resolves token limit with fallbacks
109
- * @param constructorLimit - Token limit from constructor (optional)
110
- * @returns Resolved token limit
111
- */
112
- static resolveTokenLimit(constructorLimit?: number): number {
113
- const DEFAULT_TOKEN_LIMIT = 64000;
114
-
115
- // If constructor value provided, use it
116
- if (constructorLimit !== undefined) {
117
- return constructorLimit;
118
- }
119
-
120
- // Try environment variable
121
- const envTokenLimit = process.env.TOKEN_LIMIT;
122
- if (envTokenLimit) {
123
- const parsed = parseInt(envTokenLimit, 10);
124
- if (!isNaN(parsed)) {
125
- return parsed;
126
- }
127
- }
128
-
129
- // Use default
130
- return DEFAULT_TOKEN_LIMIT;
131
- }
132
- }
133
-
134
- /**
135
- * Static configuration resolver instance
136
- * Implements ConfigurationResolver interface from types.ts
137
- */
138
- export const configResolver = {
139
- resolveGatewayConfig: ConfigResolver.resolveGatewayConfig,
140
- resolveModelConfig: ConfigResolver.resolveModelConfig,
141
- resolveTokenLimit: ConfigResolver.resolveTokenLimit,
142
- };