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.
Files changed (140) hide show
  1. package/dist/agent.d.ts +3 -6
  2. package/dist/agent.d.ts.map +1 -1
  3. package/dist/agent.js +21 -21
  4. package/dist/index.d.ts +3 -2
  5. package/dist/index.d.ts.map +1 -1
  6. package/dist/index.js +3 -3
  7. package/dist/managers/aiManager.d.ts +4 -2
  8. package/dist/managers/aiManager.d.ts.map +1 -1
  9. package/dist/managers/aiManager.js +84 -47
  10. package/dist/managers/backgroundBashManager.d.ts +1 -1
  11. package/dist/managers/backgroundBashManager.d.ts.map +1 -1
  12. package/dist/{hooks/manager.d.ts → managers/hookManager.d.ts} +26 -7
  13. package/dist/managers/hookManager.d.ts.map +1 -0
  14. package/dist/{hooks/manager.js → managers/hookManager.js} +107 -17
  15. package/dist/managers/mcpManager.d.ts +1 -1
  16. package/dist/managers/mcpManager.d.ts.map +1 -1
  17. package/dist/managers/messageManager.d.ts +17 -4
  18. package/dist/managers/messageManager.d.ts.map +1 -1
  19. package/dist/managers/messageManager.js +13 -5
  20. package/dist/managers/skillManager.d.ts +1 -1
  21. package/dist/managers/skillManager.d.ts.map +1 -1
  22. package/dist/managers/slashCommandManager.d.ts +1 -1
  23. package/dist/managers/slashCommandManager.d.ts.map +1 -1
  24. package/dist/managers/subagentManager.d.ts +7 -12
  25. package/dist/managers/subagentManager.d.ts.map +1 -1
  26. package/dist/managers/subagentManager.js +39 -45
  27. package/dist/managers/toolManager.d.ts +1 -1
  28. package/dist/managers/toolManager.d.ts.map +1 -1
  29. package/dist/services/aiService.d.ts +1 -1
  30. package/dist/services/aiService.d.ts.map +1 -1
  31. package/dist/services/aiService.js +8 -1
  32. package/dist/services/hook.d.ts +56 -0
  33. package/dist/services/hook.d.ts.map +1 -0
  34. package/dist/services/hook.js +276 -0
  35. package/dist/services/session.d.ts +1 -1
  36. package/dist/services/session.d.ts.map +1 -1
  37. package/dist/services/session.js +5 -4
  38. package/dist/tools/taskTool.d.ts.map +1 -1
  39. package/dist/tools/taskTool.js +7 -3
  40. package/dist/types/commands.d.ts +24 -0
  41. package/dist/types/commands.d.ts.map +1 -0
  42. package/dist/types/commands.js +5 -0
  43. package/dist/types/config.d.ts +13 -0
  44. package/dist/types/config.d.ts.map +1 -0
  45. package/dist/types/config.js +5 -0
  46. package/dist/types/core.d.ts +38 -0
  47. package/dist/types/core.d.ts.map +1 -0
  48. package/dist/{types.js → types/core.js} +4 -13
  49. package/dist/{hooks/types.d.ts → types/hooks.d.ts} +2 -1
  50. package/dist/types/hooks.d.ts.map +1 -0
  51. package/dist/types/index.d.ts +20 -0
  52. package/dist/types/index.d.ts.map +1 -0
  53. package/dist/types/index.js +21 -0
  54. package/dist/types/mcp.d.ts +28 -0
  55. package/dist/types/mcp.d.ts.map +1 -0
  56. package/dist/types/mcp.js +5 -0
  57. package/dist/types/messaging.d.ts +80 -0
  58. package/dist/types/messaging.d.ts.map +1 -0
  59. package/dist/types/messaging.js +5 -0
  60. package/dist/types/processes.d.ts +17 -0
  61. package/dist/types/processes.d.ts.map +1 -0
  62. package/dist/types/processes.js +5 -0
  63. package/dist/types/skills.d.ts +78 -0
  64. package/dist/types/skills.d.ts.map +1 -0
  65. package/dist/types/skills.js +17 -0
  66. package/dist/utils/configResolver.d.ts +1 -1
  67. package/dist/utils/configResolver.d.ts.map +1 -1
  68. package/dist/utils/configResolver.js +1 -1
  69. package/dist/utils/configValidator.d.ts +1 -1
  70. package/dist/utils/configValidator.d.ts.map +1 -1
  71. package/dist/utils/configValidator.js +1 -1
  72. package/dist/utils/convertMessagesForAPI.d.ts +1 -1
  73. package/dist/utils/convertMessagesForAPI.d.ts.map +1 -1
  74. package/dist/utils/customCommands.d.ts +1 -1
  75. package/dist/utils/customCommands.d.ts.map +1 -1
  76. package/dist/{hooks/matcher.d.ts → utils/hookMatcher.d.ts} +1 -1
  77. package/dist/utils/hookMatcher.d.ts.map +1 -0
  78. package/dist/utils/markdownParser.d.ts +1 -1
  79. package/dist/utils/markdownParser.d.ts.map +1 -1
  80. package/dist/utils/mcpUtils.d.ts +1 -1
  81. package/dist/utils/mcpUtils.d.ts.map +1 -1
  82. package/dist/utils/messageOperations.d.ts +6 -1
  83. package/dist/utils/messageOperations.d.ts.map +1 -1
  84. package/dist/utils/messageOperations.js +16 -0
  85. package/dist/utils/skillParser.d.ts +1 -1
  86. package/dist/utils/skillParser.d.ts.map +1 -1
  87. package/package.json +1 -1
  88. package/src/agent.ts +49 -43
  89. package/src/index.ts +3 -4
  90. package/src/managers/aiManager.ts +240 -158
  91. package/src/managers/backgroundBashManager.ts +1 -1
  92. package/src/{hooks/manager.ts → managers/hookManager.ts} +159 -26
  93. package/src/managers/mcpManager.ts +1 -1
  94. package/src/managers/messageManager.ts +36 -6
  95. package/src/managers/skillManager.ts +1 -1
  96. package/src/managers/slashCommandManager.ts +5 -1
  97. package/src/managers/subagentManager.ts +46 -53
  98. package/src/managers/toolManager.ts +1 -1
  99. package/src/services/aiService.ts +9 -2
  100. package/src/services/hook.ts +360 -0
  101. package/src/services/session.ts +6 -7
  102. package/src/tools/taskTool.ts +13 -5
  103. package/src/types/commands.ts +26 -0
  104. package/src/types/config.ts +14 -0
  105. package/src/types/core.ts +49 -0
  106. package/src/{hooks/types.ts → types/hooks.ts} +1 -0
  107. package/src/types/index.ts +23 -0
  108. package/src/types/mcp.ts +31 -0
  109. package/src/types/messaging.ts +103 -0
  110. package/src/types/processes.ts +18 -0
  111. package/src/types/skills.ts +91 -0
  112. package/src/utils/configResolver.ts +1 -1
  113. package/src/utils/configValidator.ts +5 -1
  114. package/src/utils/convertMessagesForAPI.ts +1 -1
  115. package/src/utils/customCommands.ts +1 -1
  116. package/src/utils/markdownParser.ts +1 -1
  117. package/src/utils/mcpUtils.ts +1 -1
  118. package/src/utils/messageOperations.ts +20 -1
  119. package/src/utils/skillParser.ts +1 -1
  120. package/dist/hooks/executor.d.ts +0 -56
  121. package/dist/hooks/executor.d.ts.map +0 -1
  122. package/dist/hooks/executor.js +0 -312
  123. package/dist/hooks/index.d.ts +0 -17
  124. package/dist/hooks/index.d.ts.map +0 -1
  125. package/dist/hooks/index.js +0 -14
  126. package/dist/hooks/manager.d.ts.map +0 -1
  127. package/dist/hooks/matcher.d.ts.map +0 -1
  128. package/dist/hooks/settings.d.ts +0 -46
  129. package/dist/hooks/settings.d.ts.map +0 -1
  130. package/dist/hooks/settings.js +0 -100
  131. package/dist/hooks/types.d.ts.map +0 -1
  132. package/dist/types.d.ts +0 -288
  133. package/dist/types.d.ts.map +0 -1
  134. package/src/hooks/executor.ts +0 -440
  135. package/src/hooks/index.ts +0 -52
  136. package/src/hooks/settings.ts +0 -129
  137. /package/dist/{hooks/types.js → types/hooks.js} +0 -0
  138. /package/dist/{hooks/matcher.js → utils/hookMatcher.js} +0 -0
  139. /package/src/{types.ts → types/index.ts.backup} +0 -0
  140. /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,5 @@
1
+ /**
2
+ * Message and communication block types
3
+ * Dependencies: Core (Usage)
4
+ */
5
+ export {};
@@ -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,5 @@
1
+ /**
2
+ * Background process and shell management types
3
+ * Dependencies: None
4
+ */
5
+ export {};
@@ -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,aAAa,CAAC;AAErB,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"}
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,EAAE,aAAa,EAAqC,MAAM,aAAa,CAAC;AAE/E,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"}
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,4 +1,4 @@
1
- import type { Message } from "../types.js";
1
+ import type { Message } from "../types/index.js";
2
2
  import { ChatCompletionMessageParam } from "openai/resources.js";
3
3
  /**
4
4
  * Convert message format to API call format, stopping when a compressed message is encountered
@@ -1 +1 @@
1
- {"version":3,"file":"convertMessagesForAPI.d.ts","sourceRoot":"","sources":["../../src/utils/convertMessagesForAPI.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAI3C,OAAO,EAEL,0BAA0B,EAC3B,MAAM,qBAAqB,CAAC;AAuB7B;;;;GAIG;AACH,wBAAgB,qBAAqB,CACnC,QAAQ,EAAE,OAAO,EAAE,GAClB,0BAA0B,EAAE,CAsM9B"}
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,4 +1,4 @@
1
- import type { CustomSlashCommand } from "../types.js";
1
+ import type { CustomSlashCommand } from "../types/index.js";
2
2
  /**
3
3
  * Get the project-specific commands directory
4
4
  */
@@ -1 +1 @@
1
- {"version":3,"file":"customCommands.d.ts","sourceRoot":"","sources":["../../src/utils/customCommands.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAGtD;;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"}
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"}
@@ -46,4 +46,4 @@ export declare class HookMatcher implements IHookMatcher {
46
46
  */
47
47
  compile(pattern: string): (toolName: string) => boolean;
48
48
  }
49
- //# sourceMappingURL=matcher.d.ts.map
49
+ //# sourceMappingURL=hookMatcher.d.ts.map
@@ -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,4 +1,4 @@
1
- import type { CustomSlashCommandConfig } from "../types.js";
1
+ import type { CustomSlashCommandConfig } from "../types/index.js";
2
2
  interface ParsedMarkdownFile {
3
3
  content: string;
4
4
  config?: CustomSlashCommandConfig;
@@ -1 +1 @@
1
- {"version":3,"file":"markdownParser.d.ts","sourceRoot":"","sources":["../../src/utils/markdownParser.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAC;AAE5D,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"}
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"}
@@ -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,aAAa,CAAC;AAE5D;;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
+ {"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":"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"}
1
+ {"version":3,"file":"messageOperations.d.ts","sourceRoot":"","sources":["../../src/utils/messageOperations.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAGxD,OAAO,EAAE,qCAAqC,EAAE,MAAM,qBAAqB,CAAC;AAG5E,MAAM,WAAW,oBAAoB;IACnC,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACnD,kBAAkB,CAAC,EAAE;QACnB,IAAI,EAAE,gBAAgB,CAAC;QACvB,WAAW,EAAE,MAAM,CAAC;QACpB,OAAO,EAAE,MAAM,CAAC;QAChB,aAAa,CAAC,EAAE,MAAM,CAAC;KACxB,CAAC;CACH;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,EAAE,EAAE,MAAM,CAAC;IACX,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACrD,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAGD,MAAM,WAAW,0BAA0B;IACzC,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,OAAO,CAAC;QAAC,OAAO,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;CAC1E;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,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,sBAAsB;IACrC,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,yBAAyB;IACxC,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,eAAO,MAAM,uBAAuB,GAAI,UAAU,OAAO,EAAE,KAAG,MAAM,EAcnE,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,oBAAoB,GAAI,WAAW,MAAM,KAAG,MAmCxD,CAAC;AAGF,eAAO,MAAM,wBAAwB,GAAI,oDAKtC,oBAAoB,KAAG,OAAO,EAwBhC,CAAC;AAGF,eAAO,MAAM,6BAA6B,GACxC,UAAU,OAAO,EAAE,EACnB,UAAU,MAAM,EAChB,YAAY,qCAAqC,EAAE,EACnD,QAAQ,KAAK,KACZ,OAAO,EA6BT,CAAC;AAGF,eAAO,MAAM,qBAAqB,GAAI,iCAInC,kBAAkB,KAAG,OAAO,EAe9B,CAAC;AAGF,eAAO,MAAM,wBAAwB,GAAI,4GAYtC,qBAAqB,KAAG,OAAO,EA0CjC,CAAC;AAGF,eAAO,MAAM,sBAAsB,GAAI,sBAGpC,mBAAmB,KAAG,OAAO,EAgC/B,CAAC;AAGF,eAAO,MAAM,uBAAuB,GAAI,4DAMrC,oBAAoB,KAAG,OAAO,EAoBhC,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,uBAAuB,GAClC,UAAU,OAAO,EAAE,EACnB,aAAa,MAAM,KAClB;IAAE,YAAY,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CA2B5C,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,qBAAqB,GAChC,UAAU,OAAO,EAAE,EACnB,gBAAe,MAAU,KACxB;IAAE,kBAAkB,EAAE,OAAO,EAAE,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CA4BtD,CAAC;AAGF,eAAO,MAAM,uBAAuB,GAAI,wBAGrC,sBAAsB,KAAG,OAAO,EAelC,CAAC;AAGF,eAAO,MAAM,4BAA4B,GAAI,gCAI1C,yBAAyB,KAAG,OAAO,EAmBrC,CAAC;AAGF,eAAO,MAAM,wBAAwB,GAAI,kCAItC,qBAAqB,KAAG,OAAO,EAoBjC,CAAC;AAGF,MAAM,WAAW,sBAAsB;IACrC,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,QAAQ,GAAG,WAAW,GAAG,OAAO,GAAG,SAAS,CAAC;IACrD,gBAAgB,CAAC,EAAE,OAAO,EAAE,CAAC;CAC9B;AAED,MAAM,WAAW,yBAAyB;IACxC,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,QAAQ,GAAG,WAAW,GAAG,OAAO,GAAG,SAAS,CAAC;IACrD,gBAAgB,EAAE,OAAO,EAAE,CAAC;CAC7B;AAED,eAAO,MAAM,yBAAyB,GAAI,mEAMvC,sBAAsB,KAAG,OAAO,EAyBlC,CAAC;AAEF,eAAO,MAAM,4BAA4B,GACvC,UAAU,OAAO,EAAE,EACnB,YAAY,MAAM,EAClB,SAAS,OAAO,CAAC;IACf,MAAM,EAAE,QAAQ,GAAG,WAAW,GAAG,OAAO,GAAG,SAAS,CAAC;IACrD,QAAQ,EAAE,OAAO,EAAE,CAAC;CACrB,CAAC,KACD,OAAO,EAsBT,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,qBAAqB,GAAI,UAAU,OAAO,EAAE,KAAG,OAAO,EAalE,CAAC"}
@@ -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,4 +1,4 @@
1
- import type { ParsedSkillFile, SkillParseOptions, SkillMetadata } from "../types.js";
1
+ import type { ParsedSkillFile, SkillParseOptions, SkillMetadata } from "../types/index.js";
2
2
  /**
3
3
  * Parse a SKILL.md file and validate its contents
4
4
  */
@@ -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,aAAa,CAAC;AAErB;;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"}
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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "wave-agent-sdk",
3
- "version": "0.0.5",
3
+ "version": "0.0.6",
4
4
  "description": "SDK for building AI-powered development tools and agents",
5
5
  "keywords": [
6
6
  "ai",
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 "./hooks/index.js";
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
- // Execute UserPromptSubmit hooks before processing the prompt
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";