wave-agent-sdk 0.0.5 → 0.0.6
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 +21 -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 +84 -47
- 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} +26 -7
- package/dist/managers/hookManager.d.ts.map +1 -0
- package/dist/{hooks/manager.js → managers/hookManager.js} +107 -17
- package/dist/managers/mcpManager.d.ts +1 -1
- package/dist/managers/mcpManager.d.ts.map +1 -1
- package/dist/managers/messageManager.d.ts +17 -4
- package/dist/managers/messageManager.d.ts.map +1 -1
- package/dist/managers/messageManager.js +13 -5
- 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/subagentManager.d.ts +7 -12
- package/dist/managers/subagentManager.d.ts.map +1 -1
- package/dist/managers/subagentManager.js +39 -45
- 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/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 +5 -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/customCommands.d.ts +1 -1
- package/dist/utils/customCommands.d.ts.map +1 -1
- package/dist/{hooks/matcher.d.ts → utils/hookMatcher.d.ts} +1 -1
- 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 +6 -1
- package/dist/utils/messageOperations.d.ts.map +1 -1
- package/dist/utils/messageOperations.js +16 -0
- 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 +240 -158
- package/src/managers/backgroundBashManager.ts +1 -1
- package/src/{hooks/manager.ts → managers/hookManager.ts} +159 -26
- package/src/managers/mcpManager.ts +1 -1
- package/src/managers/messageManager.ts +36 -6
- package/src/managers/skillManager.ts +1 -1
- package/src/managers/slashCommandManager.ts +5 -1
- package/src/managers/subagentManager.ts +46 -53
- 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/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 +103 -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 +1 -1
- package/src/utils/customCommands.ts +1 -1
- package/src/utils/markdownParser.ts +1 -1
- package/src/utils/mcpUtils.ts +1 -1
- package/src/utils/messageOperations.ts +20 -1
- 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/dist/{hooks/types.js → types/hooks.js} +0 -0
- /package/dist/{hooks/matcher.js → utils/hookMatcher.js} +0 -0
- /package/src/{types.ts → types/index.ts.backup} +0 -0
- /package/src/{hooks/matcher.ts → utils/hookMatcher.ts} +0 -0
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Message and communication block types
|
|
3
|
+
* Dependencies: Core (Usage)
|
|
4
|
+
*/
|
|
5
|
+
import type { Usage } from "./core.js";
|
|
6
|
+
export interface Message {
|
|
7
|
+
role: "user" | "assistant";
|
|
8
|
+
blocks: MessageBlock[];
|
|
9
|
+
usage?: Usage;
|
|
10
|
+
}
|
|
11
|
+
export type MessageBlock = TextBlock | ErrorBlock | ToolBlock | ImageBlock | DiffBlock | CommandOutputBlock | CompressBlock | MemoryBlock | CustomCommandBlock | SubagentBlock;
|
|
12
|
+
export interface TextBlock {
|
|
13
|
+
type: "text";
|
|
14
|
+
content: string;
|
|
15
|
+
}
|
|
16
|
+
export interface ErrorBlock {
|
|
17
|
+
type: "error";
|
|
18
|
+
content: string;
|
|
19
|
+
}
|
|
20
|
+
export interface ToolBlock {
|
|
21
|
+
type: "tool";
|
|
22
|
+
parameters?: string;
|
|
23
|
+
result?: string;
|
|
24
|
+
shortResult?: string;
|
|
25
|
+
images?: Array<{
|
|
26
|
+
data: string;
|
|
27
|
+
mediaType?: string;
|
|
28
|
+
}>;
|
|
29
|
+
id?: string;
|
|
30
|
+
name?: string;
|
|
31
|
+
isRunning?: boolean;
|
|
32
|
+
success?: boolean;
|
|
33
|
+
error?: string | Error;
|
|
34
|
+
compactParams?: string;
|
|
35
|
+
}
|
|
36
|
+
export interface ImageBlock {
|
|
37
|
+
type: "image";
|
|
38
|
+
imageUrls?: string[];
|
|
39
|
+
}
|
|
40
|
+
export interface DiffBlock {
|
|
41
|
+
type: "diff";
|
|
42
|
+
path: string;
|
|
43
|
+
diffResult: Array<{
|
|
44
|
+
value: string;
|
|
45
|
+
added?: boolean;
|
|
46
|
+
removed?: boolean;
|
|
47
|
+
}>;
|
|
48
|
+
}
|
|
49
|
+
export interface CommandOutputBlock {
|
|
50
|
+
type: "command_output";
|
|
51
|
+
command: string;
|
|
52
|
+
output: string;
|
|
53
|
+
isRunning: boolean;
|
|
54
|
+
exitCode: number | null;
|
|
55
|
+
}
|
|
56
|
+
export interface CompressBlock {
|
|
57
|
+
type: "compress";
|
|
58
|
+
content: string;
|
|
59
|
+
}
|
|
60
|
+
export interface MemoryBlock {
|
|
61
|
+
type: "memory";
|
|
62
|
+
content: string;
|
|
63
|
+
isSuccess: boolean;
|
|
64
|
+
memoryType?: "project" | "user";
|
|
65
|
+
storagePath?: string;
|
|
66
|
+
}
|
|
67
|
+
export interface CustomCommandBlock {
|
|
68
|
+
type: "custom_command";
|
|
69
|
+
commandName: string;
|
|
70
|
+
content: string;
|
|
71
|
+
originalInput?: string;
|
|
72
|
+
}
|
|
73
|
+
export interface SubagentBlock {
|
|
74
|
+
type: "subagent";
|
|
75
|
+
subagentId: string;
|
|
76
|
+
subagentName: string;
|
|
77
|
+
status: "active" | "completed" | "error" | "aborted";
|
|
78
|
+
messages: Message[];
|
|
79
|
+
}
|
|
80
|
+
//# sourceMappingURL=messaging.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"messaging.d.ts","sourceRoot":"","sources":["../../src/types/messaging.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,WAAW,CAAC;AAEvC,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,MAAM,GAAG,WAAW,CAAC;IAC3B,MAAM,EAAE,YAAY,EAAE,CAAC;IACvB,KAAK,CAAC,EAAE,KAAK,CAAC;CACf;AAED,MAAM,MAAM,YAAY,GACpB,SAAS,GACT,UAAU,GACV,SAAS,GACT,UAAU,GACV,SAAS,GACT,kBAAkB,GAClB,aAAa,GACb,WAAW,GACX,kBAAkB,GAClB,aAAa,CAAC;AAElB,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,KAAK,CAAC;QAEb,IAAI,EAAE,MAAM,CAAC;QACb,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC,CAAC;IACH,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,OAAO,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;CACtB;AAED,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,KAAK,CAAC;QAChB,KAAK,EAAE,MAAM,CAAC;QACd,KAAK,CAAC,EAAE,OAAO,CAAC;QAChB,OAAO,CAAC,EAAE,OAAO,CAAC;KACnB,CAAC,CAAC;CACJ;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,gBAAgB,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,OAAO,CAAC;IACnB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;CACzB;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,UAAU,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,QAAQ,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,OAAO,CAAC;IACnB,UAAU,CAAC,EAAE,SAAS,GAAG,MAAM,CAAC;IAChC,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,gBAAgB,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,UAAU,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,QAAQ,GAAG,WAAW,GAAG,OAAO,GAAG,SAAS,CAAC;IACrD,QAAQ,EAAE,OAAO,EAAE,CAAC;CACrB"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Background process and shell management types
|
|
3
|
+
* Dependencies: None
|
|
4
|
+
*/
|
|
5
|
+
import type { ChildProcess } from "child_process";
|
|
6
|
+
export interface BackgroundShell {
|
|
7
|
+
id: string;
|
|
8
|
+
process: ChildProcess;
|
|
9
|
+
command: string;
|
|
10
|
+
startTime: number;
|
|
11
|
+
status: "running" | "completed" | "killed";
|
|
12
|
+
stdout: string;
|
|
13
|
+
stderr: string;
|
|
14
|
+
exitCode?: number;
|
|
15
|
+
runtime?: number;
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=processes.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"processes.d.ts","sourceRoot":"","sources":["../../src/types/processes.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAElD,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,YAAY,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,SAAS,GAAG,WAAW,GAAG,QAAQ,CAAC;IAC3C,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB"}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Skill system types and constants
|
|
3
|
+
* Dependencies: Core (Logger)
|
|
4
|
+
*/
|
|
5
|
+
import type { Logger } from "./core.js";
|
|
6
|
+
export interface SkillMetadata {
|
|
7
|
+
name: string;
|
|
8
|
+
description: string;
|
|
9
|
+
type: "personal" | "project";
|
|
10
|
+
skillPath: string;
|
|
11
|
+
}
|
|
12
|
+
export interface Skill extends SkillMetadata {
|
|
13
|
+
content: string;
|
|
14
|
+
frontmatter: SkillFrontmatter;
|
|
15
|
+
isValid: boolean;
|
|
16
|
+
errors: string[];
|
|
17
|
+
}
|
|
18
|
+
export interface SkillFrontmatter {
|
|
19
|
+
name: string;
|
|
20
|
+
description: string;
|
|
21
|
+
[key: string]: unknown;
|
|
22
|
+
}
|
|
23
|
+
export interface SkillCollection {
|
|
24
|
+
type: "personal" | "project";
|
|
25
|
+
basePath: string;
|
|
26
|
+
skills: Map<string, SkillMetadata>;
|
|
27
|
+
errors: SkillError[];
|
|
28
|
+
}
|
|
29
|
+
export interface SkillError {
|
|
30
|
+
skillPath: string;
|
|
31
|
+
message: string;
|
|
32
|
+
}
|
|
33
|
+
export interface SkillValidationResult {
|
|
34
|
+
isValid: boolean;
|
|
35
|
+
skill?: Skill;
|
|
36
|
+
errors: string[];
|
|
37
|
+
}
|
|
38
|
+
export interface SkillDiscoveryResult {
|
|
39
|
+
personalSkills: Map<string, SkillMetadata>;
|
|
40
|
+
projectSkills: Map<string, SkillMetadata>;
|
|
41
|
+
errors: SkillError[];
|
|
42
|
+
}
|
|
43
|
+
export interface SkillInvocationContext {
|
|
44
|
+
skillName: string;
|
|
45
|
+
}
|
|
46
|
+
export interface SkillToolArgs {
|
|
47
|
+
skill_name: string;
|
|
48
|
+
}
|
|
49
|
+
export interface SkillManagerOptions {
|
|
50
|
+
personalSkillsPath?: string;
|
|
51
|
+
scanTimeout?: number;
|
|
52
|
+
logger?: Logger;
|
|
53
|
+
}
|
|
54
|
+
export interface ParsedSkillFile {
|
|
55
|
+
frontmatter: SkillFrontmatter;
|
|
56
|
+
content: string;
|
|
57
|
+
skillMetadata: SkillMetadata;
|
|
58
|
+
validationErrors: string[];
|
|
59
|
+
isValid: boolean;
|
|
60
|
+
}
|
|
61
|
+
export interface SkillParseOptions {
|
|
62
|
+
validateMetadata?: boolean;
|
|
63
|
+
basePath?: string;
|
|
64
|
+
}
|
|
65
|
+
export declare const SKILL_DEFAULTS: {
|
|
66
|
+
readonly PERSONAL_SKILLS_DIR: ".wave/skills";
|
|
67
|
+
readonly PROJECT_SKILLS_DIR: ".wave/skills";
|
|
68
|
+
readonly SKILL_FILE_NAME: "SKILL.md";
|
|
69
|
+
readonly MAX_NAME_LENGTH: 64;
|
|
70
|
+
readonly MAX_DESCRIPTION_LENGTH: 1024;
|
|
71
|
+
readonly MIN_DESCRIPTION_LENGTH: 1;
|
|
72
|
+
readonly NAME_PATTERN: RegExp;
|
|
73
|
+
readonly MAX_METADATA_CACHE: 1000;
|
|
74
|
+
readonly MAX_CONTENT_CACHE: 100;
|
|
75
|
+
readonly SCAN_TIMEOUT: 5000;
|
|
76
|
+
readonly LOAD_TIMEOUT: 2000;
|
|
77
|
+
};
|
|
78
|
+
//# sourceMappingURL=skills.d.ts.map
|
|
@@ -0,0 +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;CACjB;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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Skill system types and constants
|
|
3
|
+
* Dependencies: Core (Logger)
|
|
4
|
+
*/
|
|
5
|
+
export const SKILL_DEFAULTS = {
|
|
6
|
+
PERSONAL_SKILLS_DIR: ".wave/skills",
|
|
7
|
+
PROJECT_SKILLS_DIR: ".wave/skills",
|
|
8
|
+
SKILL_FILE_NAME: "SKILL.md",
|
|
9
|
+
MAX_NAME_LENGTH: 64,
|
|
10
|
+
MAX_DESCRIPTION_LENGTH: 1024,
|
|
11
|
+
MIN_DESCRIPTION_LENGTH: 1,
|
|
12
|
+
NAME_PATTERN: /^[a-z0-9-]+$/,
|
|
13
|
+
MAX_METADATA_CACHE: 1000,
|
|
14
|
+
MAX_CONTENT_CACHE: 100,
|
|
15
|
+
SCAN_TIMEOUT: 5000,
|
|
16
|
+
LOAD_TIMEOUT: 2000,
|
|
17
|
+
};
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* Configuration resolver utilities for Agent Constructor Configuration
|
|
3
3
|
* Resolves configuration from constructor arguments with environment fallbacks
|
|
4
4
|
*/
|
|
5
|
-
import { GatewayConfig, ModelConfig } from "../types.js";
|
|
5
|
+
import { GatewayConfig, ModelConfig } from "../types/index.js";
|
|
6
6
|
export declare class ConfigResolver {
|
|
7
7
|
/**
|
|
8
8
|
* Resolves gateway configuration from constructor args and environment
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"configResolver.d.ts","sourceRoot":"","sources":["../../src/utils/configResolver.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EACL,aAAa,EACb,WAAW,EAGZ,MAAM,
|
|
1
|
+
{"version":3,"file":"configResolver.d.ts","sourceRoot":"","sources":["../../src/utils/configResolver.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EACL,aAAa,EACb,WAAW,EAGZ,MAAM,mBAAmB,CAAC;AAE3B,qBAAa,cAAc;IACzB;;;;;;OAMG;IACH,MAAM,CAAC,oBAAoB,CACzB,MAAM,CAAC,EAAE,MAAM,EACf,OAAO,CAAC,EAAE,MAAM,GACf,aAAa;IAuDhB;;;;;OAKG;IACH,MAAM,CAAC,kBAAkB,CACvB,UAAU,CAAC,EAAE,MAAM,EACnB,SAAS,CAAC,EAAE,MAAM,GACjB,WAAW;IAmBd;;;;OAIG;IACH,MAAM,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,EAAE,MAAM,GAAG,MAAM;CAoB5D;AAED;;;GAGG;AACH,eAAO,MAAM,cAAc;;;;CAI1B,CAAC"}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* Configuration resolver utilities for Agent Constructor Configuration
|
|
3
3
|
* Resolves configuration from constructor arguments with environment fallbacks
|
|
4
4
|
*/
|
|
5
|
-
import { ConfigurationError, CONFIG_ERRORS, } from "../types.js";
|
|
5
|
+
import { ConfigurationError, CONFIG_ERRORS, } from "../types/index.js";
|
|
6
6
|
export class ConfigResolver {
|
|
7
7
|
/**
|
|
8
8
|
* Resolves gateway configuration from constructor args and environment
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* Configuration validator utilities for Agent Constructor Configuration
|
|
3
3
|
* Validates configuration values for correctness and security
|
|
4
4
|
*/
|
|
5
|
-
import { GatewayConfig } from "../types.js";
|
|
5
|
+
import { GatewayConfig } from "../types/index.js";
|
|
6
6
|
export declare class ConfigValidator {
|
|
7
7
|
/**
|
|
8
8
|
* Validates gateway configuration
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"configValidator.d.ts","sourceRoot":"","sources":["../../src/utils/configValidator.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,
|
|
1
|
+
{"version":3,"file":"configValidator.d.ts","sourceRoot":"","sources":["../../src/utils/configValidator.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EACL,aAAa,EAGd,MAAM,mBAAmB,CAAC;AAE3B,qBAAa,eAAe;IAC1B;;;;OAIG;IACH,MAAM,CAAC,qBAAqB,CAAC,MAAM,EAAE,aAAa,GAAG,IAAI;IA+CzD;;;;OAIG;IACH,MAAM,CAAC,kBAAkB,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IA0BnD;;;;;OAKG;IACH,MAAM,CAAC,mBAAmB,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI;CAyBxE;AAED;;;GAGG;AACH,eAAO,MAAM,eAAe;;;;CAI3B,CAAC"}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* Configuration validator utilities for Agent Constructor Configuration
|
|
3
3
|
* Validates configuration values for correctness and security
|
|
4
4
|
*/
|
|
5
|
-
import { ConfigurationError, CONFIG_ERRORS } from "../types.js";
|
|
5
|
+
import { ConfigurationError, CONFIG_ERRORS, } from "../types/index.js";
|
|
6
6
|
export class ConfigValidator {
|
|
7
7
|
/**
|
|
8
8
|
* Validates gateway configuration
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"convertMessagesForAPI.d.ts","sourceRoot":"","sources":["../../src/utils/convertMessagesForAPI.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"convertMessagesForAPI.d.ts","sourceRoot":"","sources":["../../src/utils/convertMessagesForAPI.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAIjD,OAAO,EAEL,0BAA0B,EAC3B,MAAM,qBAAqB,CAAC;AAuB7B;;;;GAIG;AACH,wBAAgB,qBAAqB,CACnC,QAAQ,EAAE,OAAO,EAAE,GAClB,0BAA0B,EAAE,CAsM9B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"customCommands.d.ts","sourceRoot":"","sources":["../../src/utils/customCommands.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"customCommands.d.ts","sourceRoot":"","sources":["../../src/utils/customCommands.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAG5D;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAE7D;AAED;;GAEG;AACH,wBAAgB,kBAAkB,IAAI,MAAM,CAE3C;AA6CD;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,MAAM,GAAG,kBAAkB,EAAE,CAkB7E"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hookMatcher.d.ts","sourceRoot":"","sources":["../../src/utils/hookMatcher.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,MAAM,WAAW,YAAY;IAE3B,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC;IAGpD,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC;IAGzC,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,GAAG,MAAM,GAAG,OAAO,GAAG,cAAc,CAAC;CAC9E;AAED,qBAAa,WAAY,YAAW,YAAY;IAC9C;;;;;;;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 +1 @@
|
|
|
1
|
-
{"version":3,"file":"markdownParser.d.ts","sourceRoot":"","sources":["../../src/utils/markdownParser.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"markdownParser.d.ts","sourceRoot":"","sources":["../../src/utils/markdownParser.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAC;AAElE,UAAU,kBAAkB;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,wBAAwB,CAAC;CACnC;AAwDD;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,kBAAkB,CAsCtE;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG;IAClD,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,gBAAgB,EAAE,MAAM,CAAC;CAC1B,CAgBA;AAED;;GAEG;AACH,wBAAgB,6BAA6B,CAC3C,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,iBAAiB,EAAE,GAC3B,MAAM,CAcR"}
|
package/dist/utils/mcpUtils.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { ChatCompletionFunctionTool } from "openai/resources.js";
|
|
2
2
|
import type { ToolPlugin } from "../tools/types.js";
|
|
3
|
-
import type { McpTool, McpServerStatus } from "../types.js";
|
|
3
|
+
import type { McpTool, McpServerStatus } from "../types/index.js";
|
|
4
4
|
/**
|
|
5
5
|
* Convert MCP tool to OpenAI function tool format
|
|
6
6
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcpUtils.d.ts","sourceRoot":"","sources":["../../src/utils/mcpUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,0BAA0B,EAAE,MAAM,qBAAqB,CAAC;AACjE,OAAO,KAAK,EAAE,UAAU,EAA2B,MAAM,mBAAmB,CAAC;AAC7E,OAAO,KAAK,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"mcpUtils.d.ts","sourceRoot":"","sources":["../../src/utils/mcpUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,0BAA0B,EAAE,MAAM,qBAAqB,CAAC;AACjE,OAAO,KAAK,EAAE,UAAU,EAA2B,MAAM,mBAAmB,CAAC;AAC7E,OAAO,KAAK,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAElE;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,OAAO,EAChB,UAAU,EAAE,MAAM,GACjB,0BAA0B,CAa5B;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,OAAO,EAChB,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,CACX,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAC1B,OAAO,CAAC;IACX,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACtD,CAAC,GACD,UAAU,CA2BZ;AAED;;GAEG;AACH,wBAAgB,cAAc,CAC5B,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,eAAe,EAAE,GACzB,eAAe,GAAG,SAAS,CAK7B"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { Message, Usage } from "../types.js";
|
|
1
|
+
import type { Message, Usage } from "../types/index.js";
|
|
2
2
|
import { ChatCompletionMessageFunctionToolCall } from "openai/resources.js";
|
|
3
3
|
export interface AddUserMessageParams {
|
|
4
4
|
messages: Message[];
|
|
@@ -133,4 +133,9 @@ export declare const updateSubagentBlockInMessage: (messages: Message[], subagen
|
|
|
133
133
|
status: "active" | "completed" | "error" | "aborted";
|
|
134
134
|
messages: Message[];
|
|
135
135
|
}>) => Message[];
|
|
136
|
+
/**
|
|
137
|
+
* Removes the last user message from the messages array
|
|
138
|
+
* Used for hook error handling when the user prompt needs to be erased
|
|
139
|
+
*/
|
|
140
|
+
export declare const removeLastUserMessage: (messages: Message[]) => Message[];
|
|
136
141
|
//# sourceMappingURL=messageOperations.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"messageOperations.d.ts","sourceRoot":"","sources":["../../src/utils/messageOperations.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"messageOperations.d.ts","sourceRoot":"","sources":["../../src/utils/messageOperations.ts"],"names":[],"mappings":"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"}
|
|
@@ -376,3 +376,19 @@ export const updateSubagentBlockInMessage = (messages, subagentId, updates) => {
|
|
|
376
376
|
}
|
|
377
377
|
return newMessages;
|
|
378
378
|
};
|
|
379
|
+
/**
|
|
380
|
+
* Removes the last user message from the messages array
|
|
381
|
+
* Used for hook error handling when the user prompt needs to be erased
|
|
382
|
+
*/
|
|
383
|
+
export const removeLastUserMessage = (messages) => {
|
|
384
|
+
const newMessages = [...messages];
|
|
385
|
+
// Find the index of the last user message
|
|
386
|
+
for (let i = newMessages.length - 1; i >= 0; i--) {
|
|
387
|
+
if (newMessages[i].role === "user") {
|
|
388
|
+
// Remove the user message at index i
|
|
389
|
+
newMessages.splice(i, 1);
|
|
390
|
+
break;
|
|
391
|
+
}
|
|
392
|
+
}
|
|
393
|
+
return newMessages;
|
|
394
|
+
};
|
|
@@ -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,26 +486,7 @@ export class Agent {
|
|
|
499
486
|
// Add user message to history
|
|
500
487
|
this.addToInputHistory(content);
|
|
501
488
|
|
|
502
|
-
//
|
|
503
|
-
if (this.hookManager) {
|
|
504
|
-
try {
|
|
505
|
-
await this.hookManager.executeHooks("UserPromptSubmit", {
|
|
506
|
-
event: "UserPromptSubmit",
|
|
507
|
-
projectDir: this.workdir,
|
|
508
|
-
timestamp: new Date(),
|
|
509
|
-
// UserPromptSubmit doesn't need toolName
|
|
510
|
-
sessionId: this.sessionId,
|
|
511
|
-
transcriptPath: this.messageManager.getTranscriptPath(),
|
|
512
|
-
cwd: this.workdir,
|
|
513
|
-
userPrompt: content,
|
|
514
|
-
});
|
|
515
|
-
} catch (error) {
|
|
516
|
-
this.logger?.warn("UserPromptSubmit hooks execution failed:", error);
|
|
517
|
-
// Continue processing even if hooks fail
|
|
518
|
-
}
|
|
519
|
-
}
|
|
520
|
-
|
|
521
|
-
// Add user message, will automatically sync to UI
|
|
489
|
+
// Add user message first, will automatically sync to UI
|
|
522
490
|
this.messageManager.addUserMessage(
|
|
523
491
|
content,
|
|
524
492
|
images?.map((img) => ({
|
|
@@ -527,6 +495,44 @@ export class Agent {
|
|
|
527
495
|
})),
|
|
528
496
|
);
|
|
529
497
|
|
|
498
|
+
// Execute UserPromptSubmit hooks after adding the user message
|
|
499
|
+
if (this.hookManager) {
|
|
500
|
+
try {
|
|
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
|
+
}
|
|
530
|
+
} catch (error) {
|
|
531
|
+
this.logger?.warn("UserPromptSubmit hooks execution failed:", error);
|
|
532
|
+
// Continue processing even if hooks fail
|
|
533
|
+
}
|
|
534
|
+
}
|
|
535
|
+
|
|
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";
|