wave-agent-sdk 0.0.5 → 0.0.7
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.
- package/dist/agent.d.ts +3 -6
- package/dist/agent.d.ts.map +1 -1
- package/dist/agent.js +24 -21
- package/dist/index.d.ts +3 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -3
- package/dist/managers/aiManager.d.ts +4 -2
- package/dist/managers/aiManager.d.ts.map +1 -1
- package/dist/managers/aiManager.js +91 -53
- package/dist/managers/backgroundBashManager.d.ts +1 -1
- package/dist/managers/backgroundBashManager.d.ts.map +1 -1
- package/dist/{hooks/manager.d.ts → managers/hookManager.d.ts} +27 -16
- package/dist/managers/hookManager.d.ts.map +1 -0
- package/dist/{hooks/manager.js → managers/hookManager.js} +112 -17
- package/dist/managers/mcpManager.d.ts +1 -1
- package/dist/managers/mcpManager.d.ts.map +1 -1
- package/dist/managers/messageManager.d.ts +20 -15
- package/dist/managers/messageManager.d.ts.map +1 -1
- package/dist/managers/messageManager.js +19 -25
- package/dist/managers/skillManager.d.ts +1 -1
- package/dist/managers/skillManager.d.ts.map +1 -1
- package/dist/managers/slashCommandManager.d.ts +1 -1
- package/dist/managers/slashCommandManager.d.ts.map +1 -1
- package/dist/managers/slashCommandManager.js +5 -2
- package/dist/managers/subagentManager.d.ts +7 -12
- package/dist/managers/subagentManager.d.ts.map +1 -1
- package/dist/managers/subagentManager.js +40 -46
- package/dist/managers/toolManager.d.ts +1 -1
- package/dist/managers/toolManager.d.ts.map +1 -1
- package/dist/services/aiService.d.ts +1 -1
- package/dist/services/aiService.d.ts.map +1 -1
- package/dist/services/aiService.js +8 -1
- package/dist/services/hook.d.ts +56 -0
- package/dist/services/hook.d.ts.map +1 -0
- package/dist/services/hook.js +276 -0
- package/dist/services/session.d.ts +1 -1
- package/dist/services/session.d.ts.map +1 -1
- package/dist/services/session.js +5 -4
- package/dist/tools/taskTool.d.ts.map +1 -1
- package/dist/tools/taskTool.js +7 -3
- package/dist/tools/todoWriteTool.d.ts.map +1 -1
- package/dist/tools/todoWriteTool.js +3 -10
- package/dist/types/commands.d.ts +24 -0
- package/dist/types/commands.d.ts.map +1 -0
- package/dist/types/commands.js +5 -0
- package/dist/types/config.d.ts +13 -0
- package/dist/types/config.d.ts.map +1 -0
- package/dist/types/config.js +5 -0
- package/dist/types/core.d.ts +38 -0
- package/dist/types/core.d.ts.map +1 -0
- package/dist/{types.js → types/core.js} +4 -13
- package/dist/{hooks/types.d.ts → types/hooks.d.ts} +2 -1
- package/dist/types/hooks.d.ts.map +1 -0
- package/dist/types/index.d.ts +20 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +21 -0
- package/dist/types/mcp.d.ts +28 -0
- package/dist/types/mcp.d.ts.map +1 -0
- package/dist/types/mcp.js +5 -0
- package/dist/types/messaging.d.ts +80 -0
- package/dist/types/messaging.d.ts.map +1 -0
- package/dist/types/messaging.js +9 -0
- package/dist/types/processes.d.ts +17 -0
- package/dist/types/processes.d.ts.map +1 -0
- package/dist/types/processes.js +5 -0
- package/dist/types/skills.d.ts +78 -0
- package/dist/types/skills.d.ts.map +1 -0
- package/dist/types/skills.js +17 -0
- package/dist/utils/configResolver.d.ts +1 -1
- package/dist/utils/configResolver.d.ts.map +1 -1
- package/dist/utils/configResolver.js +1 -1
- package/dist/utils/configValidator.d.ts +1 -1
- package/dist/utils/configValidator.d.ts.map +1 -1
- package/dist/utils/configValidator.js +1 -1
- package/dist/utils/convertMessagesForAPI.d.ts +1 -1
- package/dist/utils/convertMessagesForAPI.d.ts.map +1 -1
- package/dist/utils/convertMessagesForAPI.js +1 -8
- package/dist/utils/customCommands.d.ts +1 -1
- package/dist/utils/customCommands.d.ts.map +1 -1
- package/dist/{hooks/matcher.d.ts → utils/hookMatcher.d.ts} +2 -7
- package/dist/utils/hookMatcher.d.ts.map +1 -0
- package/dist/utils/markdownParser.d.ts +1 -1
- package/dist/utils/markdownParser.d.ts.map +1 -1
- package/dist/utils/mcpUtils.d.ts +1 -1
- package/dist/utils/mcpUtils.d.ts.map +1 -1
- package/dist/utils/messageOperations.d.ts +14 -21
- package/dist/utils/messageOperations.d.ts.map +1 -1
- package/dist/utils/messageOperations.js +37 -20
- package/dist/utils/skillParser.d.ts +1 -1
- package/dist/utils/skillParser.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/agent.ts +49 -43
- package/src/index.ts +3 -4
- package/src/managers/aiManager.ts +241 -160
- package/src/managers/backgroundBashManager.ts +1 -1
- package/src/{hooks/manager.ts → managers/hookManager.ts} +168 -56
- package/src/managers/mcpManager.ts +1 -1
- package/src/managers/messageManager.ts +44 -44
- package/src/managers/skillManager.ts +1 -1
- package/src/managers/slashCommandManager.ts +10 -7
- package/src/managers/subagentManager.ts +47 -54
- package/src/managers/toolManager.ts +1 -1
- package/src/services/aiService.ts +9 -2
- package/src/services/hook.ts +360 -0
- package/src/services/session.ts +6 -7
- package/src/tools/taskTool.ts +13 -5
- package/src/tools/todoWriteTool.ts +3 -11
- package/src/types/commands.ts +26 -0
- package/src/types/config.ts +14 -0
- package/src/types/core.ts +49 -0
- package/src/{hooks/types.ts → types/hooks.ts} +1 -0
- package/src/types/index.ts +23 -0
- package/src/types/mcp.ts +31 -0
- package/src/types/messaging.ts +102 -0
- package/src/types/processes.ts +18 -0
- package/src/types/skills.ts +91 -0
- package/src/utils/configResolver.ts +1 -1
- package/src/utils/configValidator.ts +5 -1
- package/src/utils/convertMessagesForAPI.ts +2 -10
- package/src/utils/customCommands.ts +1 -1
- package/src/{hooks/matcher.ts → utils/hookMatcher.ts} +1 -12
- package/src/utils/markdownParser.ts +1 -1
- package/src/utils/mcpUtils.ts +1 -1
- package/src/utils/messageOperations.ts +56 -42
- package/src/utils/skillParser.ts +1 -1
- package/dist/hooks/executor.d.ts +0 -56
- package/dist/hooks/executor.d.ts.map +0 -1
- package/dist/hooks/executor.js +0 -312
- package/dist/hooks/index.d.ts +0 -17
- package/dist/hooks/index.d.ts.map +0 -1
- package/dist/hooks/index.js +0 -14
- package/dist/hooks/manager.d.ts.map +0 -1
- package/dist/hooks/matcher.d.ts.map +0 -1
- package/dist/hooks/settings.d.ts +0 -46
- package/dist/hooks/settings.d.ts.map +0 -1
- package/dist/hooks/settings.js +0 -100
- package/dist/hooks/types.d.ts.map +0 -1
- package/dist/types.d.ts +0 -288
- package/dist/types.d.ts.map +0 -1
- package/src/hooks/executor.ts +0 -440
- package/src/hooks/index.ts +0 -52
- package/src/hooks/settings.ts +0 -129
- package/src/types.ts +0 -357
- /package/dist/{hooks/types.js → types/hooks.js} +0 -0
- /package/dist/{hooks/matcher.js → utils/hookMatcher.js} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skillParser.d.ts","sourceRoot":"","sources":["../../src/utils/skillParser.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,eAAe,EACf,iBAAiB,EAEjB,aAAa,EACd,MAAM,
|
|
1
|
+
{"version":3,"file":"skillParser.d.ts","sourceRoot":"","sources":["../../src/utils/skillParser.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,eAAe,EACf,iBAAiB,EAEjB,aAAa,EACd,MAAM,mBAAmB,CAAC;AAE3B;;GAEG;AACH,wBAAgB,cAAc,CAC5B,QAAQ,EAAE,MAAM,EAChB,OAAO,GAAE,iBAAsB,GAC9B,eAAe,CAiEjB;AAkCD;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,aAAa,GAAG,MAAM,EAAE,CAwCvE;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAOtD;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,CAa5E"}
|
package/package.json
CHANGED
package/src/agent.ts
CHANGED
|
@@ -13,7 +13,7 @@ import {
|
|
|
13
13
|
type BackgroundBashManagerCallbacks,
|
|
14
14
|
} from "./managers/backgroundBashManager.js";
|
|
15
15
|
import { SlashCommandManager } from "./managers/slashCommandManager.js";
|
|
16
|
-
import type { SlashCommand, CustomSlashCommand } from "./types.js";
|
|
16
|
+
import type { SlashCommand, CustomSlashCommand } from "./types/index.js";
|
|
17
17
|
import type {
|
|
18
18
|
Message,
|
|
19
19
|
Logger,
|
|
@@ -21,8 +21,8 @@ import type {
|
|
|
21
21
|
GatewayConfig,
|
|
22
22
|
ModelConfig,
|
|
23
23
|
Usage,
|
|
24
|
-
} from "./types.js";
|
|
25
|
-
import { HookManager } from "./
|
|
24
|
+
} from "./types/index.js";
|
|
25
|
+
import { HookManager } from "./managers/hookManager.js";
|
|
26
26
|
import { configResolver } from "./utils/configResolver.js";
|
|
27
27
|
import { configValidator } from "./utils/configValidator.js";
|
|
28
28
|
import { SkillManager } from "./managers/skillManager.js";
|
|
@@ -145,12 +145,7 @@ export class Agent {
|
|
|
145
145
|
logger: this.logger,
|
|
146
146
|
}); // Initialize tool registry, pass MCP manager
|
|
147
147
|
|
|
148
|
-
this.hookManager = new HookManager(
|
|
149
|
-
this.workdir,
|
|
150
|
-
undefined,
|
|
151
|
-
undefined,
|
|
152
|
-
this.logger,
|
|
153
|
-
); // Initialize hooks manager
|
|
148
|
+
this.hookManager = new HookManager(this.workdir, undefined, this.logger); // Initialize hooks manager
|
|
154
149
|
|
|
155
150
|
// Initialize MessageManager
|
|
156
151
|
this.messageManager = new MessageManager({
|
|
@@ -221,6 +216,10 @@ export class Agent {
|
|
|
221
216
|
return [...this._usages]; // Return copy to prevent external modification
|
|
222
217
|
}
|
|
223
218
|
|
|
219
|
+
public get sessionFilePath(): string {
|
|
220
|
+
return this.messageManager.getTranscriptPath();
|
|
221
|
+
}
|
|
222
|
+
|
|
224
223
|
/**
|
|
225
224
|
* Rebuild usage array from messages containing usage metadata
|
|
226
225
|
* Called during session restoration to reconstruct usage tracking
|
|
@@ -422,10 +421,9 @@ export class Agent {
|
|
|
422
421
|
|
|
423
422
|
/** Unified interrupt method, interrupts both AI messages and command execution */
|
|
424
423
|
public abortMessage(): void {
|
|
425
|
-
this.abortAIMessage();
|
|
424
|
+
this.abortAIMessage(); // This will abort tools including Task tool (subagents)
|
|
426
425
|
this.abortBashCommand();
|
|
427
426
|
this.abortSlashCommand();
|
|
428
|
-
this.abortSubagents();
|
|
429
427
|
}
|
|
430
428
|
|
|
431
429
|
/** Add to input history */
|
|
@@ -443,23 +441,12 @@ export class Agent {
|
|
|
443
441
|
this.slashCommandManager.abortCurrentCommand();
|
|
444
442
|
}
|
|
445
443
|
|
|
446
|
-
/** Interrupt all subagent execution */
|
|
447
|
-
public abortSubagents(): void {
|
|
448
|
-
this.subagentManager.abortAllInstances();
|
|
449
|
-
}
|
|
450
|
-
|
|
451
|
-
/** Interrupt specific subagent execution */
|
|
452
|
-
public abortSubagent(subagentId: string): boolean {
|
|
453
|
-
return this.subagentManager.abortInstance(subagentId);
|
|
454
|
-
}
|
|
455
|
-
|
|
456
444
|
/** Destroy managers, clean up resources */
|
|
457
445
|
public async destroy(): Promise<void> {
|
|
458
446
|
await this.messageManager.saveSession();
|
|
459
|
-
this.abortAIMessage();
|
|
447
|
+
this.abortAIMessage(); // This will abort tools including Task tool (subagents)
|
|
460
448
|
this.abortBashCommand();
|
|
461
449
|
this.abortSlashCommand();
|
|
462
|
-
this.abortSubagents();
|
|
463
450
|
// Cleanup background bash manager
|
|
464
451
|
this.backgroundBashManager.cleanup();
|
|
465
452
|
// Cleanup MCP connections
|
|
@@ -499,34 +486,53 @@ export class Agent {
|
|
|
499
486
|
// Add user message to history
|
|
500
487
|
this.addToInputHistory(content);
|
|
501
488
|
|
|
502
|
-
//
|
|
489
|
+
// Add user message first, will automatically sync to UI
|
|
490
|
+
this.messageManager.addUserMessage({
|
|
491
|
+
content,
|
|
492
|
+
images: images?.map((img) => ({
|
|
493
|
+
path: img.path,
|
|
494
|
+
mimeType: img.mimeType,
|
|
495
|
+
})),
|
|
496
|
+
});
|
|
497
|
+
|
|
498
|
+
// Execute UserPromptSubmit hooks after adding the user message
|
|
503
499
|
if (this.hookManager) {
|
|
504
500
|
try {
|
|
505
|
-
await this.hookManager.executeHooks(
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
|
|
512
|
-
|
|
513
|
-
|
|
514
|
-
|
|
501
|
+
const hookResults = await this.hookManager.executeHooks(
|
|
502
|
+
"UserPromptSubmit",
|
|
503
|
+
{
|
|
504
|
+
event: "UserPromptSubmit",
|
|
505
|
+
projectDir: this.workdir,
|
|
506
|
+
timestamp: new Date(),
|
|
507
|
+
// UserPromptSubmit doesn't need toolName
|
|
508
|
+
sessionId: this.sessionId,
|
|
509
|
+
transcriptPath: this.messageManager.getTranscriptPath(),
|
|
510
|
+
cwd: this.workdir,
|
|
511
|
+
userPrompt: content,
|
|
512
|
+
},
|
|
513
|
+
);
|
|
514
|
+
|
|
515
|
+
// Process hook results and determine if we should continue
|
|
516
|
+
const processResult = this.hookManager.processHookResults(
|
|
517
|
+
"UserPromptSubmit",
|
|
518
|
+
hookResults,
|
|
519
|
+
this.messageManager,
|
|
520
|
+
);
|
|
521
|
+
|
|
522
|
+
// If hook processing indicates we should block (exit code 2), stop here
|
|
523
|
+
if (processResult.shouldBlock) {
|
|
524
|
+
this.logger?.info(
|
|
525
|
+
"UserPromptSubmit hook blocked prompt processing with error:",
|
|
526
|
+
processResult.errorMessage,
|
|
527
|
+
);
|
|
528
|
+
return; // Don't send to AI
|
|
529
|
+
}
|
|
515
530
|
} catch (error) {
|
|
516
531
|
this.logger?.warn("UserPromptSubmit hooks execution failed:", error);
|
|
517
532
|
// Continue processing even if hooks fail
|
|
518
533
|
}
|
|
519
534
|
}
|
|
520
535
|
|
|
521
|
-
// Add user message, will automatically sync to UI
|
|
522
|
-
this.messageManager.addUserMessage(
|
|
523
|
-
content,
|
|
524
|
-
images?.map((img) => ({
|
|
525
|
-
path: img.path,
|
|
526
|
-
mimeType: img.mimeType,
|
|
527
|
-
})),
|
|
528
|
-
);
|
|
529
|
-
|
|
530
536
|
// Send AI message
|
|
531
537
|
await this.aiManager.sendAIMessage();
|
|
532
538
|
} catch (error) {
|
package/src/index.ts
CHANGED
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
export * from "./services/aiService.js";
|
|
3
3
|
export * from "./services/memory.js";
|
|
4
4
|
export * from "./services/session.js";
|
|
5
|
+
export * from "./services/hook.js";
|
|
5
6
|
|
|
6
7
|
// Export main agent
|
|
7
8
|
export * from "./agent.js";
|
|
@@ -15,9 +16,7 @@ export * from "./utils/messageOperations.js";
|
|
|
15
16
|
export * from "./utils/path.js";
|
|
16
17
|
export * from "./utils/stringUtils.js";
|
|
17
18
|
export * from "./utils/customCommands.js";
|
|
18
|
-
|
|
19
|
-
// Export hooks system
|
|
20
|
-
export * from "./hooks/index.js";
|
|
19
|
+
export * from "./utils/hookMatcher.js";
|
|
21
20
|
|
|
22
21
|
// Export types
|
|
23
|
-
export * from "./types.js";
|
|
22
|
+
export * from "./types/index.js";
|