wave-agent-sdk 0.11.7 → 0.12.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 (63) hide show
  1. package/builtin/skills/settings/MODELS.md +67 -0
  2. package/builtin/skills/settings/SKILL.md +13 -7
  3. package/dist/agent.d.ts +10 -0
  4. package/dist/agent.d.ts.map +1 -1
  5. package/dist/agent.js +16 -1
  6. package/dist/managers/aiManager.d.ts.map +1 -1
  7. package/dist/managers/aiManager.js +1 -0
  8. package/dist/managers/liveConfigManager.d.ts +2 -0
  9. package/dist/managers/liveConfigManager.d.ts.map +1 -1
  10. package/dist/managers/liveConfigManager.js +3 -0
  11. package/dist/managers/messageManager.d.ts +5 -1
  12. package/dist/managers/messageManager.d.ts.map +1 -1
  13. package/dist/managers/messageManager.js +28 -1
  14. package/dist/managers/slashCommandManager.d.ts.map +1 -1
  15. package/dist/managers/slashCommandManager.js +38 -41
  16. package/dist/managers/toolManager.d.ts +1 -0
  17. package/dist/managers/toolManager.d.ts.map +1 -1
  18. package/dist/services/aiService.d.ts.map +1 -1
  19. package/dist/services/aiService.js +30 -5
  20. package/dist/services/configurationService.d.ts +8 -0
  21. package/dist/services/configurationService.d.ts.map +1 -1
  22. package/dist/services/configurationService.js +67 -1
  23. package/dist/tools/skillTool.d.ts.map +1 -1
  24. package/dist/tools/skillTool.js +4 -1
  25. package/dist/tools/types.d.ts +1 -0
  26. package/dist/tools/types.d.ts.map +1 -1
  27. package/dist/types/agent.d.ts +3 -0
  28. package/dist/types/agent.d.ts.map +1 -1
  29. package/dist/types/config.d.ts +1 -0
  30. package/dist/types/config.d.ts.map +1 -1
  31. package/dist/types/configuration.d.ts +3 -0
  32. package/dist/types/configuration.d.ts.map +1 -1
  33. package/dist/types/messaging.d.ts +11 -2
  34. package/dist/types/messaging.d.ts.map +1 -1
  35. package/dist/utils/configValidator.d.ts +4 -5
  36. package/dist/utils/configValidator.d.ts.map +1 -1
  37. package/dist/utils/configValidator.js +4 -4
  38. package/dist/utils/containerSetup.d.ts.map +1 -1
  39. package/dist/utils/containerSetup.js +7 -1
  40. package/dist/utils/convertMessagesForAPI.d.ts.map +1 -1
  41. package/dist/utils/convertMessagesForAPI.js +16 -1
  42. package/dist/utils/messageOperations.d.ts +28 -3
  43. package/dist/utils/messageOperations.d.ts.map +1 -1
  44. package/dist/utils/messageOperations.js +79 -7
  45. package/package.json +1 -1
  46. package/src/agent.ts +18 -4
  47. package/src/managers/aiManager.ts +1 -0
  48. package/src/managers/liveConfigManager.ts +5 -1
  49. package/src/managers/messageManager.ts +40 -0
  50. package/src/managers/slashCommandManager.ts +39 -46
  51. package/src/managers/toolManager.ts +1 -0
  52. package/src/services/aiService.ts +58 -5
  53. package/src/services/configurationService.ts +81 -1
  54. package/src/tools/skillTool.ts +12 -2
  55. package/src/tools/types.ts +1 -0
  56. package/src/types/agent.ts +3 -0
  57. package/src/types/config.ts +1 -0
  58. package/src/types/configuration.ts +3 -0
  59. package/src/types/messaging.ts +12 -1
  60. package/src/utils/configValidator.ts +6 -4
  61. package/src/utils/containerSetup.ts +7 -1
  62. package/src/utils/convertMessagesForAPI.ts +17 -1
  63. package/src/utils/messageOperations.ts +111 -8
@@ -10,7 +10,6 @@ import { logger } from "./globalLogger.js";
10
10
  export interface UserMessageParams {
11
11
  content: string;
12
12
  images?: Array<{ path: string; mimeType: string }>;
13
- customCommandContent?: string;
14
13
  source?: MessageSource;
15
14
  isMeta?: boolean;
16
15
  }
@@ -21,6 +20,26 @@ export interface AddUserMessageParams extends UserMessageParams {
21
20
  id?: string;
22
21
  }
23
22
 
23
+ export interface AddSlashParams {
24
+ messages: Message[];
25
+ command: string;
26
+ args?: string;
27
+ content?: string;
28
+ id?: string;
29
+ }
30
+
31
+ export interface UpdateSlashParams {
32
+ messages: Message[];
33
+ command: string;
34
+ messageId?: string;
35
+ args?: string;
36
+ content?: string;
37
+ result?: string;
38
+ stage?: "running" | "success" | "error" | "aborted";
39
+ error?: string;
40
+ shortResult?: string;
41
+ }
42
+
24
43
  export interface UpdateToolBlockParams {
25
44
  messages: Message[];
26
45
  id: string;
@@ -124,18 +143,16 @@ export const addUserMessageToMessages = ({
124
143
  messages,
125
144
  content,
126
145
  images,
127
- customCommandContent,
128
146
  source,
129
147
  id,
130
148
  isMeta,
131
149
  }: AddUserMessageParams): Message[] => {
132
150
  const blocks: Message["blocks"] = [];
133
151
 
134
- // Create text block with optional customCommandContent and source
152
+ // Create text block with optional source
135
153
  const textBlock = {
136
154
  type: "text" as const,
137
155
  content,
138
- ...(customCommandContent && { customCommandContent }),
139
156
  ...(source && { source }),
140
157
  };
141
158
  blocks.push(textBlock);
@@ -159,7 +176,96 @@ export const addUserMessageToMessages = ({
159
176
  };
160
177
 
161
178
  /**
162
- * Update a user message's content or customCommandContent by its ID.
179
+ * Add a slash command message to the conversation.
180
+ */
181
+ export const addSlashMessageToMessages = ({
182
+ messages,
183
+ command,
184
+ args,
185
+ content,
186
+ id,
187
+ }: AddSlashParams): Message[] => {
188
+ const slashMessage: Message = {
189
+ id: id || generateMessageId(),
190
+ role: "user",
191
+ blocks: [
192
+ {
193
+ type: "slash",
194
+ command,
195
+ args,
196
+ content,
197
+ stage: "running",
198
+ },
199
+ ],
200
+ };
201
+ return [...messages, slashMessage];
202
+ };
203
+
204
+ /**
205
+ * Update a slash block in a message.
206
+ */
207
+ export const updateSlashBlockInMessage = ({
208
+ messages,
209
+ command,
210
+ messageId,
211
+ args,
212
+ content,
213
+ result,
214
+ stage,
215
+ error,
216
+ shortResult,
217
+ }: UpdateSlashParams): Message[] => {
218
+ const newMessages = [...messages];
219
+
220
+ // If messageId is provided, target that specific message
221
+ if (messageId) {
222
+ const messageIndex = newMessages.findIndex((msg) => msg.id === messageId);
223
+ if (messageIndex !== -1) {
224
+ const slashBlockIndex = newMessages[messageIndex].blocks.findIndex(
225
+ (block) => block.type === "slash" && block.command === command,
226
+ );
227
+
228
+ if (slashBlockIndex !== -1) {
229
+ const slashBlock = newMessages[messageIndex].blocks[slashBlockIndex];
230
+ if (slashBlock.type === "slash") {
231
+ if (args !== undefined) slashBlock.args = args;
232
+ if (content !== undefined) slashBlock.content = content;
233
+ if (result !== undefined) slashBlock.result = result;
234
+ if (stage !== undefined) slashBlock.stage = stage;
235
+ if (error !== undefined) slashBlock.error = error;
236
+ if (shortResult !== undefined) slashBlock.shortResult = shortResult;
237
+ }
238
+ }
239
+ }
240
+ return newMessages;
241
+ }
242
+
243
+ // Find the last user message with a slash block for this command
244
+ for (let i = newMessages.length - 1; i >= 0; i--) {
245
+ const msg = newMessages[i];
246
+ if (msg.role === "user") {
247
+ const slashBlockIndex = msg.blocks.findIndex(
248
+ (block) => block.type === "slash" && block.command === command,
249
+ );
250
+ if (slashBlockIndex !== -1) {
251
+ const slashBlock = msg.blocks[slashBlockIndex];
252
+ if (slashBlock.type === "slash") {
253
+ if (args !== undefined) slashBlock.args = args;
254
+ if (content !== undefined) slashBlock.content = content;
255
+ if (result !== undefined) slashBlock.result = result;
256
+ if (stage !== undefined) slashBlock.stage = stage;
257
+ if (error !== undefined) slashBlock.error = error;
258
+ if (shortResult !== undefined) slashBlock.shortResult = shortResult;
259
+ }
260
+ break;
261
+ }
262
+ }
263
+ }
264
+ return newMessages;
265
+ };
266
+
267
+ /**
268
+ * Update a user message's content by its ID.
163
269
  */
164
270
  export const updateUserMessageInMessages = (
165
271
  messages: Message[],
@@ -173,9 +279,6 @@ export const updateUserMessageInMessages = (
173
279
  return {
174
280
  ...block,
175
281
  ...(params.content !== undefined && { content: params.content }),
176
- ...(params.customCommandContent !== undefined && {
177
- customCommandContent: params.customCommandContent,
178
- }),
179
282
  ...(params.source !== undefined && { source: params.source }),
180
283
  };
181
284
  }