wave-agent-sdk 0.7.2 → 0.8.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.
- package/dist/agent.d.ts +9 -79
- package/dist/agent.d.ts.map +1 -1
- package/dist/agent.js +85 -302
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -1
- package/dist/managers/aiManager.d.ts.map +1 -1
- package/dist/managers/aiManager.js +20 -13
- package/dist/managers/backgroundTaskManager.d.ts +1 -1
- package/dist/managers/backgroundTaskManager.d.ts.map +1 -1
- package/dist/managers/backgroundTaskManager.js +1 -1
- package/dist/managers/{bashManager.d.ts → bangManager.d.ts} +4 -4
- package/dist/managers/{bashManager.d.ts.map → bangManager.d.ts.map} +1 -1
- package/dist/managers/{bashManager.js → bangManager.js} +5 -6
- package/dist/managers/hookManager.d.ts.map +1 -1
- package/dist/managers/hookManager.js +12 -3
- package/dist/managers/messageManager.d.ts +18 -6
- package/dist/managers/messageManager.d.ts.map +1 -1
- package/dist/managers/messageManager.js +42 -20
- package/dist/managers/permissionManager.d.ts +22 -1
- package/dist/managers/permissionManager.d.ts.map +1 -1
- package/dist/managers/permissionManager.js +106 -85
- package/dist/managers/planManager.d.ts +6 -0
- package/dist/managers/planManager.d.ts.map +1 -1
- package/dist/managers/planManager.js +21 -0
- package/dist/managers/skillManager.d.ts +7 -2
- package/dist/managers/skillManager.d.ts.map +1 -1
- package/dist/managers/skillManager.js +30 -10
- package/dist/managers/slashCommandManager.d.ts +7 -0
- package/dist/managers/slashCommandManager.d.ts.map +1 -1
- package/dist/managers/slashCommandManager.js +57 -45
- package/dist/managers/subagentManager.d.ts +4 -0
- package/dist/managers/subagentManager.d.ts.map +1 -1
- package/dist/managers/subagentManager.js +47 -13
- package/dist/managers/toolManager.d.ts +7 -1
- package/dist/managers/toolManager.d.ts.map +1 -1
- package/dist/managers/toolManager.js +15 -2
- package/dist/prompts/index.d.ts +0 -4
- package/dist/prompts/index.d.ts.map +1 -1
- package/dist/prompts/index.js +0 -9
- package/dist/services/aiService.d.ts.map +1 -1
- package/dist/services/aiService.js +6 -6
- package/dist/services/configurationService.d.ts +2 -2
- package/dist/services/configurationService.d.ts.map +1 -1
- package/dist/services/configurationService.js +4 -4
- package/dist/services/hook.d.ts.map +1 -1
- package/dist/services/hook.js +6 -0
- package/dist/services/initializationService.d.ts +44 -0
- package/dist/services/initializationService.d.ts.map +1 -0
- package/dist/services/initializationService.js +170 -0
- package/dist/services/interactionService.d.ts +29 -0
- package/dist/services/interactionService.d.ts.map +1 -0
- package/dist/services/interactionService.js +97 -0
- package/dist/services/session.js +1 -1
- package/dist/services/taskManager.d.ts +5 -0
- package/dist/services/taskManager.d.ts.map +1 -1
- package/dist/services/taskManager.js +16 -2
- package/dist/tools/bashTool.d.ts.map +1 -1
- package/dist/tools/bashTool.js +7 -18
- package/dist/tools/editTool.js +1 -1
- package/dist/tools/exitPlanMode.js +1 -1
- package/dist/tools/lspTool.d.ts +2 -0
- package/dist/tools/lspTool.d.ts.map +1 -1
- package/dist/tools/lspTool.js +144 -52
- package/dist/tools/skillTool.d.ts.map +1 -1
- package/dist/tools/skillTool.js +97 -2
- package/dist/tools/taskManagementTools.d.ts.map +1 -1
- package/dist/tools/taskManagementTools.js +23 -2
- package/dist/tools/taskTool.d.ts.map +1 -1
- package/dist/tools/taskTool.js +9 -15
- package/dist/tools/types.d.ts +1 -2
- package/dist/tools/types.d.ts.map +1 -1
- package/dist/tools/writeTool.js +1 -1
- package/dist/types/agent.d.ts +64 -0
- package/dist/types/agent.d.ts.map +1 -0
- package/dist/types/agent.js +1 -0
- package/dist/types/commands.d.ts +0 -4
- package/dist/types/commands.d.ts.map +1 -1
- package/dist/types/config.d.ts +1 -1
- package/dist/types/config.d.ts.map +1 -1
- package/dist/types/hooks.d.ts +3 -1
- package/dist/types/hooks.d.ts.map +1 -1
- package/dist/types/hooks.js +1 -0
- package/dist/types/index.d.ts +1 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js +1 -0
- package/dist/types/messaging.d.ts +3 -3
- package/dist/types/messaging.d.ts.map +1 -1
- package/dist/types/skills.d.ts +13 -0
- package/dist/types/skills.d.ts.map +1 -1
- package/dist/utils/commandPathResolver.d.ts +3 -36
- package/dist/utils/commandPathResolver.d.ts.map +1 -1
- package/dist/utils/commandPathResolver.js +16 -93
- package/dist/utils/configValidator.d.ts +2 -2
- package/dist/utils/configValidator.d.ts.map +1 -1
- package/dist/utils/configValidator.js +4 -6
- package/dist/utils/containerSetup.d.ts +3 -4
- package/dist/utils/containerSetup.d.ts.map +1 -1
- package/dist/utils/containerSetup.js +14 -9
- package/dist/utils/customCommands.d.ts +2 -3
- package/dist/utils/customCommands.d.ts.map +1 -1
- package/dist/utils/customCommands.js +20 -60
- package/dist/utils/gitUtils.d.ts +25 -0
- package/dist/utils/gitUtils.d.ts.map +1 -1
- package/dist/utils/gitUtils.js +75 -0
- package/dist/utils/markdownParser.d.ts +4 -0
- package/dist/utils/markdownParser.d.ts.map +1 -1
- package/dist/utils/markdownParser.js +33 -0
- package/dist/utils/messageOperations.d.ts +16 -7
- package/dist/utils/messageOperations.d.ts.map +1 -1
- package/dist/utils/messageOperations.js +45 -20
- package/dist/utils/nameGenerator.d.ts +1 -1
- package/dist/utils/nameGenerator.d.ts.map +1 -1
- package/dist/utils/nameGenerator.js +10 -6
- package/dist/utils/skillParser.d.ts.map +1 -1
- package/dist/utils/skillParser.js +48 -0
- package/package.json +1 -1
- package/src/agent.ts +103 -458
- package/src/index.ts +2 -2
- package/src/managers/aiManager.ts +23 -17
- package/src/managers/backgroundTaskManager.ts +2 -2
- package/src/managers/{bashManager.ts → bangManager.ts} +11 -8
- package/src/managers/hookManager.ts +13 -3
- package/src/managers/messageManager.ts +55 -26
- package/src/managers/permissionManager.ts +121 -98
- package/src/managers/planManager.ts +26 -0
- package/src/managers/skillManager.ts +51 -14
- package/src/managers/slashCommandManager.ts +75 -55
- package/src/managers/subagentManager.ts +57 -13
- package/src/managers/toolManager.ts +22 -2
- package/src/prompts/index.ts +0 -15
- package/src/services/aiService.ts +9 -12
- package/src/services/configurationService.ts +4 -4
- package/src/services/hook.ts +7 -0
- package/src/services/initializationService.ts +291 -0
- package/src/services/interactionService.ts +171 -0
- package/src/services/session.ts +1 -1
- package/src/services/taskManager.ts +18 -2
- package/src/tools/bashTool.ts +8 -18
- package/src/tools/editTool.ts +1 -1
- package/src/tools/exitPlanMode.ts +1 -1
- package/src/tools/lsTool.ts +1 -1
- package/src/tools/lspTool.ts +184 -52
- package/src/tools/skillTool.ts +127 -2
- package/src/tools/taskManagementTools.ts +32 -2
- package/src/tools/taskTool.ts +13 -15
- package/src/tools/types.ts +1 -2
- package/src/tools/writeTool.ts +1 -1
- package/src/types/agent.ts +83 -0
- package/src/types/commands.ts +0 -6
- package/src/types/config.ts +1 -1
- package/src/types/hooks.ts +5 -1
- package/src/types/index.ts +1 -0
- package/src/types/messaging.ts +3 -3
- package/src/types/skills.ts +13 -0
- package/src/utils/commandPathResolver.ts +14 -117
- package/src/utils/configValidator.ts +5 -9
- package/src/utils/containerSetup.ts +17 -14
- package/src/utils/customCommands.ts +20 -83
- package/src/utils/gitUtils.ts +75 -0
- package/src/utils/markdownParser.ts +47 -0
- package/src/utils/messageOperations.ts +58 -28
- package/src/utils/nameGenerator.ts +10 -6
- package/src/utils/skillParser.ts +52 -0
- package/dist/managers/backgroundBashManager.d.ts +0 -27
- package/dist/managers/backgroundBashManager.d.ts.map +0 -1
- package/dist/managers/backgroundBashManager.js +0 -169
- package/src/managers/backgroundBashManager.ts +0 -206
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import type { ClientOptions } from "openai";
|
|
2
|
+
import type { Message, Logger, PermissionMode, PermissionCallback, ILspManager, PluginConfig, BackgroundTask } from "./index.js";
|
|
3
|
+
import type { MessageManagerCallbacks } from "../managers/messageManager.js";
|
|
4
|
+
import type { BackgroundTaskManagerCallbacks } from "../managers/backgroundTaskManager.js";
|
|
5
|
+
import type { McpManagerCallbacks } from "../managers/mcpManager.js";
|
|
6
|
+
import type { SubagentManagerCallbacks } from "../managers/subagentManager.js";
|
|
7
|
+
/**
|
|
8
|
+
* Configuration options for Agent instances
|
|
9
|
+
*
|
|
10
|
+
* IMPORTANT: This interface is used by both Agent constructor and Agent.create()
|
|
11
|
+
* Any changes to this interface must be compatible with both methods.
|
|
12
|
+
*/
|
|
13
|
+
export interface AgentOptions {
|
|
14
|
+
apiKey?: string;
|
|
15
|
+
baseURL?: string;
|
|
16
|
+
defaultHeaders?: Record<string, string>;
|
|
17
|
+
fetchOptions?: ClientOptions["fetchOptions"];
|
|
18
|
+
fetch?: ClientOptions["fetch"];
|
|
19
|
+
model?: string;
|
|
20
|
+
fastModel?: string;
|
|
21
|
+
maxInputTokens?: number;
|
|
22
|
+
maxTokens?: number;
|
|
23
|
+
/** Preferred language for agent communication */
|
|
24
|
+
language?: string;
|
|
25
|
+
callbacks?: AgentCallbacks;
|
|
26
|
+
restoreSessionId?: string;
|
|
27
|
+
continueLastSession?: boolean;
|
|
28
|
+
logger?: Logger;
|
|
29
|
+
/**Add optional initial messages parameter for testing convenience */
|
|
30
|
+
messages?: Message[];
|
|
31
|
+
/**Working directory - if not specified, use process.cwd() */
|
|
32
|
+
workdir?: string;
|
|
33
|
+
/**Optional custom system prompt - if provided, replaces default system prompt */
|
|
34
|
+
systemPrompt?: string;
|
|
35
|
+
/**Permission mode - defaults to "default" */
|
|
36
|
+
permissionMode?: PermissionMode;
|
|
37
|
+
/**Custom permission callback */
|
|
38
|
+
canUseTool?: PermissionCallback;
|
|
39
|
+
/**Whether to use streaming mode for AI responses - defaults to true */
|
|
40
|
+
stream?: boolean;
|
|
41
|
+
/**Optional custom LSP manager - if not provided, a standalone one will be created */
|
|
42
|
+
lspManager?: ILspManager;
|
|
43
|
+
/**Optional local plugins to load */
|
|
44
|
+
plugins?: PluginConfig[];
|
|
45
|
+
/**
|
|
46
|
+
* Optional list of tool names to enable.
|
|
47
|
+
* - undefined: Enable all built-in tools and plugins (default).
|
|
48
|
+
* - []: Disable all tools.
|
|
49
|
+
* - string[]: Enable only the tools with the specified names.
|
|
50
|
+
*/
|
|
51
|
+
tools?: string[];
|
|
52
|
+
/**Optional worktree name */
|
|
53
|
+
worktreeName?: string;
|
|
54
|
+
/**Whether this is a newly created worktree */
|
|
55
|
+
isNewWorktree?: boolean;
|
|
56
|
+
}
|
|
57
|
+
export interface AgentCallbacks extends MessageManagerCallbacks, BackgroundTaskManagerCallbacks, McpManagerCallbacks, SubagentManagerCallbacks {
|
|
58
|
+
onBackgroundTasksChange?: (tasks: BackgroundTask[]) => void;
|
|
59
|
+
onTasksChange?: (tasks: import("./tasks.js").Task[]) => void;
|
|
60
|
+
onPermissionModeChange?: (mode: PermissionMode) => void;
|
|
61
|
+
onSubagentLatestTotalTokensChange?: (subagentId: string, tokens: number) => void;
|
|
62
|
+
onBackgroundCurrentTask?: () => void;
|
|
63
|
+
}
|
|
64
|
+
//# sourceMappingURL=agent.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../../src/types/agent.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AAC5C,OAAO,KAAK,EACV,OAAO,EACP,MAAM,EACN,cAAc,EACd,kBAAkB,EAClB,WAAW,EACX,YAAY,EACZ,cAAc,EACf,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,+BAA+B,CAAC;AAC7E,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,sCAAsC,CAAC;AAC3F,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AACrE,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,gCAAgC,CAAC;AAE/E;;;;;GAKG;AACH,MAAM,WAAW,YAAY;IAE3B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACxC,YAAY,CAAC,EAAE,aAAa,CAAC,cAAc,CAAC,CAAC;IAC7C,KAAK,CAAC,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC;IAC/B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,iDAAiD;IACjD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAGlB,SAAS,CAAC,EAAE,cAAc,CAAC;IAC3B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,qEAAqE;IACrE,QAAQ,CAAC,EAAE,OAAO,EAAE,CAAC;IACrB,6DAA6D;IAC7D,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,iFAAiF;IACjF,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,6CAA6C;IAC7C,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,gCAAgC;IAChC,UAAU,CAAC,EAAE,kBAAkB,CAAC;IAChC,uEAAuE;IACvE,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,qFAAqF;IACrF,UAAU,CAAC,EAAE,WAAW,CAAC;IACzB,oCAAoC;IACpC,OAAO,CAAC,EAAE,YAAY,EAAE,CAAC;IACzB;;;;;OAKG;IACH,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,4BAA4B;IAC5B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,8CAA8C;IAC9C,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,MAAM,WAAW,cACf,SAAQ,uBAAuB,EAC7B,8BAA8B,EAC9B,mBAAmB,EACnB,wBAAwB;IAC1B,uBAAuB,CAAC,EAAE,CAAC,KAAK,EAAE,cAAc,EAAE,KAAK,IAAI,CAAC;IAC5D,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,YAAY,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC;IAC7D,sBAAsB,CAAC,EAAE,CAAC,IAAI,EAAE,cAAc,KAAK,IAAI,CAAC;IACxD,iCAAiC,CAAC,EAAE,CAClC,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,KACX,IAAI,CAAC;IACV,uBAAuB,CAAC,EAAE,MAAM,IAAI,CAAC;CACtC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
package/dist/types/commands.d.ts
CHANGED
|
@@ -20,10 +20,6 @@ export interface CustomSlashCommand {
|
|
|
20
20
|
filePath: string;
|
|
21
21
|
content: string;
|
|
22
22
|
config?: CustomSlashCommandConfig;
|
|
23
|
-
namespace?: string;
|
|
24
|
-
isNested: boolean;
|
|
25
|
-
depth: number;
|
|
26
|
-
segments: string[];
|
|
27
23
|
pluginPath?: string;
|
|
28
24
|
}
|
|
29
25
|
//# sourceMappingURL=commands.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"commands.d.ts","sourceRoot":"","sources":["../../src/types/commands.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,CAAC,IAAI,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;CAClD;AAED,MAAM,WAAW,wBAAwB;IACvC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;CACzB;AAED,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,wBAAwB,CAAC;IAGlC,
|
|
1
|
+
{"version":3,"file":"commands.d.ts","sourceRoot":"","sources":["../../src/types/commands.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,CAAC,IAAI,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;CAClD;AAED,MAAM,WAAW,wBAAwB;IACvC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;CACzB;AAED,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,wBAAwB,CAAC;IAGlC,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB"}
|
package/dist/types/config.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/types/config.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD,MAAM,WAAW,aAAa;IAC5B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACxC,YAAY,CAAC,EAAE,MAAM,CAAC,cAAc,CAAC,CAAC;IACtC,KAAK,CAAC,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;CACzB;AAED,MAAM,WAAW,WAAW;IAC1B,
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/types/config.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD,MAAM,WAAW,aAAa;IAC5B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACxC,YAAY,CAAC,EAAE,MAAM,CAAC,cAAc,CAAC,CAAC;IACtC,KAAK,CAAC,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;CACzB;AAED,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,cAAc,CAAC;CACjC"}
|
package/dist/types/hooks.d.ts
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* enabling automated actions at specific workflow points.
|
|
6
6
|
*/
|
|
7
7
|
export type { WaveConfiguration, HookConfiguration, PartialHookConfiguration, HookConfigurationRecord, } from "./configuration.js";
|
|
8
|
-
export type HookEvent = "PreToolUse" | "PostToolUse" | "UserPromptSubmit" | "Stop" | "SubagentStop" | "Notification";
|
|
8
|
+
export type HookEvent = "PreToolUse" | "PostToolUse" | "UserPromptSubmit" | "Stop" | "SubagentStop" | "Notification" | "WorktreeCreate";
|
|
9
9
|
export interface HookCommand {
|
|
10
10
|
type: "command";
|
|
11
11
|
command: string;
|
|
@@ -63,6 +63,7 @@ export interface HookJsonInput {
|
|
|
63
63
|
subagent_type?: string;
|
|
64
64
|
message?: string;
|
|
65
65
|
notification_type?: string;
|
|
66
|
+
name?: string;
|
|
66
67
|
}
|
|
67
68
|
export interface ExtendedHookExecutionContext extends HookExecutionContext {
|
|
68
69
|
sessionId?: string;
|
|
@@ -75,6 +76,7 @@ export interface ExtendedHookExecutionContext extends HookExecutionContext {
|
|
|
75
76
|
subagentType?: string;
|
|
76
77
|
message?: string;
|
|
77
78
|
notificationType?: string;
|
|
79
|
+
worktreeName?: string;
|
|
78
80
|
}
|
|
79
81
|
export interface HookEnvironment {
|
|
80
82
|
WAVE_PROJECT_DIR: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../../src/types/hooks.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,YAAY,EACV,iBAAiB,EACjB,iBAAiB,EACjB,wBAAwB,EACxB,uBAAuB,GACxB,MAAM,oBAAoB,CAAC;AAG5B,MAAM,MAAM,SAAS,GACjB,YAAY,GACZ,aAAa,GACb,kBAAkB,GAClB,MAAM,GACN,cAAc,GACd,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../../src/types/hooks.ts"],"names":[],"mappings":"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"}
|
package/dist/types/hooks.js
CHANGED
package/dist/types/index.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAGH,cAAc,WAAW,CAAC;AAG1B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,UAAU,CAAC;AACzB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,YAAY,CAAC;AAC3B,cAAc,kBAAkB,CAAC;AACjC,cAAc,YAAY,CAAC;AAC3B,cAAc,iBAAiB,CAAC;AAChC,cAAc,UAAU,CAAC;AACzB,cAAc,cAAc,CAAC;AAC7B,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAGH,cAAc,WAAW,CAAC;AAG1B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,UAAU,CAAC;AACzB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,YAAY,CAAC;AAC3B,cAAc,kBAAkB,CAAC;AACjC,cAAc,YAAY,CAAC;AAC3B,cAAc,iBAAiB,CAAC;AAChC,cAAc,UAAU,CAAC;AACzB,cAAc,cAAc,CAAC;AAC7B,cAAc,kBAAkB,CAAC;AACjC,cAAc,iBAAiB,CAAC;AAChC,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC"}
|
package/dist/types/index.js
CHANGED
|
@@ -14,7 +14,7 @@ export interface Message {
|
|
|
14
14
|
usage?: Usage;
|
|
15
15
|
additionalFields?: Record<string, unknown>;
|
|
16
16
|
}
|
|
17
|
-
export type MessageBlock = TextBlock | ErrorBlock | ToolBlock | ImageBlock |
|
|
17
|
+
export type MessageBlock = TextBlock | ErrorBlock | ToolBlock | ImageBlock | BangBlock | CompressBlock | ReasoningBlock | FileHistoryBlock;
|
|
18
18
|
export interface TextBlock {
|
|
19
19
|
type: "text";
|
|
20
20
|
content: string;
|
|
@@ -55,8 +55,8 @@ export interface ImageBlock {
|
|
|
55
55
|
type: "image";
|
|
56
56
|
imageUrls?: string[];
|
|
57
57
|
}
|
|
58
|
-
export interface
|
|
59
|
-
type: "
|
|
58
|
+
export interface BangBlock {
|
|
59
|
+
type: "bang";
|
|
60
60
|
command: string;
|
|
61
61
|
output: string;
|
|
62
62
|
isRunning: boolean;
|
|
@@ -1 +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,oBAAY,aAAa;IACvB,IAAI,SAAS;IACb,IAAI,SAAS;CACd;AAED,MAAM,WAAW,OAAO;IACtB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,GAAG,WAAW,CAAC;IAC3B,MAAM,EAAE,YAAY,EAAE,CAAC;IACvB,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,gBAAgB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC5C;AAED,MAAM,MAAM,YAAY,GACpB,SAAS,GACT,UAAU,GACV,SAAS,GACT,UAAU,GACV,
|
|
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,oBAAY,aAAa;IACvB,IAAI,SAAS;IACb,IAAI,SAAS;CACd;AAED,MAAM,WAAW,OAAO;IACtB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,GAAG,WAAW,CAAC;IAC3B,MAAM,EAAE,YAAY,EAAE,CAAC;IACvB,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,gBAAgB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC5C;AAED,MAAM,MAAM,YAAY,GACpB,SAAS,GACT,UAAU,GACV,SAAS,GACT,UAAU,GACV,SAAS,GACT,aAAa,GACb,cAAc,GACd,gBAAgB,CAAC;AAErB,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,MAAM,CAAC,EAAE,aAAa,CAAC;CACxB;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,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,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;;;;;;OAMG;IACH,KAAK,EAAE,OAAO,GAAG,WAAW,GAAG,SAAS,GAAG,KAAK,CAAC;IACjD,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,sBAAsB,CAAC,EAAE,OAAO,CAAC;CAClC;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,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;IAChB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,WAAW,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,cAAc,CAAC;IACrB,SAAS,EAAE,OAAO,gBAAgB,EAAE,YAAY,EAAE,CAAC;CACpD"}
|
package/dist/types/skills.d.ts
CHANGED
|
@@ -7,6 +7,12 @@ export interface SkillMetadata {
|
|
|
7
7
|
description: string;
|
|
8
8
|
type: "personal" | "project";
|
|
9
9
|
skillPath: string;
|
|
10
|
+
allowedTools?: string[];
|
|
11
|
+
context?: "fork";
|
|
12
|
+
agent?: string;
|
|
13
|
+
model?: string;
|
|
14
|
+
disableModelInvocation?: boolean;
|
|
15
|
+
userInvocable?: boolean;
|
|
10
16
|
}
|
|
11
17
|
export interface Skill extends SkillMetadata {
|
|
12
18
|
content: string;
|
|
@@ -17,6 +23,12 @@ export interface Skill extends SkillMetadata {
|
|
|
17
23
|
export interface SkillFrontmatter {
|
|
18
24
|
name: string;
|
|
19
25
|
description: string;
|
|
26
|
+
"allowed-tools"?: string | string[];
|
|
27
|
+
context?: "fork";
|
|
28
|
+
agent?: string;
|
|
29
|
+
model?: string;
|
|
30
|
+
"disable-model-invocation"?: boolean | string;
|
|
31
|
+
"user-invocable"?: boolean | string;
|
|
20
32
|
[key: string]: unknown;
|
|
21
33
|
}
|
|
22
34
|
export interface SkillCollection {
|
|
@@ -44,6 +56,7 @@ export interface SkillInvocationContext {
|
|
|
44
56
|
}
|
|
45
57
|
export interface SkillToolArgs {
|
|
46
58
|
skill_name: string;
|
|
59
|
+
args?: string;
|
|
47
60
|
}
|
|
48
61
|
export interface SkillManagerOptions {
|
|
49
62
|
personalSkillsPath?: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skills.d.ts","sourceRoot":"","sources":["../../src/types/skills.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,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;
|
|
1
|
+
{"version":3,"file":"skills.d.ts","sourceRoot":"","sources":["../../src/types/skills.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,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;IAClB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;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,eAAe,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IACpC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,0BAA0B,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IAC9C,gBAAgB,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IACpC,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;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,mBAAmB;IAClC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;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"}
|
|
@@ -1,52 +1,19 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Command path resolver utilities for
|
|
3
|
-
* Handles conversion between file paths and command IDs
|
|
2
|
+
* Command path resolver utilities for command discovery
|
|
3
|
+
* Handles conversion between file paths and command IDs
|
|
4
4
|
*/
|
|
5
|
-
export interface CommandIdParts {
|
|
6
|
-
namespace?: string;
|
|
7
|
-
commandName: string;
|
|
8
|
-
isNested: boolean;
|
|
9
|
-
depth: number;
|
|
10
|
-
segments: string[];
|
|
11
|
-
}
|
|
12
5
|
/**
|
|
13
6
|
* Generate command ID from file path
|
|
14
7
|
* @param filePath - Absolute path to markdown file
|
|
15
8
|
* @param rootDir - Root commands directory path
|
|
16
|
-
* @returns Command identifier string
|
|
9
|
+
* @returns Command identifier string
|
|
17
10
|
* @throws Error on invalid path structure
|
|
18
11
|
*/
|
|
19
12
|
export declare function generateCommandId(filePath: string, rootDir: string): string;
|
|
20
|
-
/**
|
|
21
|
-
* Parse command ID into components
|
|
22
|
-
* @param commandId - Command identifier (e.g., "openspec:apply")
|
|
23
|
-
* @returns Object with namespace and command name
|
|
24
|
-
* @throws Error on malformed command ID
|
|
25
|
-
*/
|
|
26
|
-
export declare function parseCommandId(commandId: string): CommandIdParts;
|
|
27
13
|
/**
|
|
28
14
|
* Validate command ID format
|
|
29
15
|
* @param commandId - Command identifier to validate
|
|
30
16
|
* @returns Boolean indicating validity
|
|
31
17
|
*/
|
|
32
18
|
export declare function validateCommandId(commandId: string): boolean;
|
|
33
|
-
/**
|
|
34
|
-
* Convert file path to command segments array
|
|
35
|
-
* @param filePath - Absolute path to markdown file
|
|
36
|
-
* @param rootDir - Root commands directory path
|
|
37
|
-
* @returns Array of path segments
|
|
38
|
-
*/
|
|
39
|
-
export declare function getCommandSegments(filePath: string, rootDir: string): string[];
|
|
40
|
-
/**
|
|
41
|
-
* Get namespace from command segments
|
|
42
|
-
* @param segments - Command path segments
|
|
43
|
-
* @returns Namespace string or undefined for flat commands
|
|
44
|
-
*/
|
|
45
|
-
export declare function getNamespace(segments: string[]): string | undefined;
|
|
46
|
-
/**
|
|
47
|
-
* Get command depth from segments
|
|
48
|
-
* @param segments - Command path segments
|
|
49
|
-
* @returns Depth number (0 for root, 1 for nested)
|
|
50
|
-
*/
|
|
51
|
-
export declare function getDepth(segments: string[]): number;
|
|
52
19
|
//# sourceMappingURL=commandPathResolver.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"commandPathResolver.d.ts","sourceRoot":"","sources":["../../src/utils/commandPathResolver.ts"],"names":[],"mappings":"AAEA;;;GAGG;AAEH
|
|
1
|
+
{"version":3,"file":"commandPathResolver.d.ts","sourceRoot":"","sources":["../../src/utils/commandPathResolver.ts"],"names":[],"mappings":"AAEA;;;GAGG;AAEH;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CA4C3E;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAS5D"}
|
|
@@ -1,9 +1,13 @@
|
|
|
1
1
|
import { relative, basename } from "path";
|
|
2
|
+
/**
|
|
3
|
+
* Command path resolver utilities for command discovery
|
|
4
|
+
* Handles conversion between file paths and command IDs
|
|
5
|
+
*/
|
|
2
6
|
/**
|
|
3
7
|
* Generate command ID from file path
|
|
4
8
|
* @param filePath - Absolute path to markdown file
|
|
5
9
|
* @param rootDir - Root commands directory path
|
|
6
|
-
* @returns Command identifier string
|
|
10
|
+
* @returns Command identifier string
|
|
7
11
|
* @throws Error on invalid path structure
|
|
8
12
|
*/
|
|
9
13
|
export function generateCommandId(filePath, rootDir) {
|
|
@@ -23,70 +27,20 @@ export function generateCommandId(filePath, rootDir) {
|
|
|
23
27
|
if (!lastSegment.endsWith(".md")) {
|
|
24
28
|
throw new Error(`Command files must have .md extension`);
|
|
25
29
|
}
|
|
26
|
-
|
|
30
|
+
const commandName = basename(lastSegment, ".md");
|
|
27
31
|
// Handle empty filename after removing extension
|
|
28
|
-
if (
|
|
32
|
+
if (commandName === "") {
|
|
29
33
|
throw new Error("Command filename cannot be empty");
|
|
30
34
|
}
|
|
31
|
-
// Validate depth (
|
|
32
|
-
if (segments.length >
|
|
33
|
-
throw new Error(`Command nesting
|
|
34
|
-
}
|
|
35
|
-
// Validate segments
|
|
36
|
-
for (const segment of segments) {
|
|
37
|
-
if (!validateSegment(segment)) {
|
|
38
|
-
throw new Error(`Invalid command path segment: "${segment}" in ${relativePath}. Must match pattern /^[a-zA-Z][a-zA-Z0-9_.-]*$/`);
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
// Generate command ID
|
|
42
|
-
if (segments.length === 1) {
|
|
43
|
-
return segments[0]; // Flat command
|
|
44
|
-
}
|
|
45
|
-
else {
|
|
46
|
-
return segments.join(":"); // Nested command with colon syntax
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
/**
|
|
50
|
-
* Parse command ID into components
|
|
51
|
-
* @param commandId - Command identifier (e.g., "openspec:apply")
|
|
52
|
-
* @returns Object with namespace and command name
|
|
53
|
-
* @throws Error on malformed command ID
|
|
54
|
-
*/
|
|
55
|
-
export function parseCommandId(commandId) {
|
|
56
|
-
// Handle null/undefined inputs
|
|
57
|
-
if (commandId == null) {
|
|
58
|
-
throw new Error("Command ID cannot be null or undefined");
|
|
59
|
-
}
|
|
60
|
-
if (commandId === "") {
|
|
61
|
-
throw new Error("Command ID cannot be empty");
|
|
62
|
-
}
|
|
63
|
-
if (!validateCommandId(commandId)) {
|
|
64
|
-
throw new Error(`Invalid command ID format: "${commandId}". Must match pattern /^[a-zA-Z0-9_-]+(?::[a-zA-Z0-9_-]+)?$/`);
|
|
65
|
-
}
|
|
66
|
-
const parts = commandId.split(":");
|
|
67
|
-
if (parts.length === 1) {
|
|
68
|
-
// Flat command
|
|
69
|
-
return {
|
|
70
|
-
namespace: undefined,
|
|
71
|
-
commandName: parts[0],
|
|
72
|
-
isNested: false,
|
|
73
|
-
depth: 0,
|
|
74
|
-
segments: [parts[0]],
|
|
75
|
-
};
|
|
76
|
-
}
|
|
77
|
-
else if (parts.length === 2) {
|
|
78
|
-
// Nested command
|
|
79
|
-
return {
|
|
80
|
-
namespace: parts[0],
|
|
81
|
-
commandName: parts[1],
|
|
82
|
-
isNested: true,
|
|
83
|
-
depth: 1,
|
|
84
|
-
segments: [parts[0], parts[1]],
|
|
85
|
-
};
|
|
35
|
+
// Validate depth (no nesting allowed)
|
|
36
|
+
if (segments.length > 1) {
|
|
37
|
+
throw new Error(`Command nesting not supported: ${relativePath}. Commands must be in the root directory.`);
|
|
86
38
|
}
|
|
87
|
-
|
|
88
|
-
|
|
39
|
+
// Validate command name
|
|
40
|
+
if (!validateSegment(commandName)) {
|
|
41
|
+
throw new Error(`Invalid command name: "${commandName}" in ${relativePath}. Must match pattern /^[a-zA-Z][a-zA-Z0-9_.-]*$/`);
|
|
89
42
|
}
|
|
43
|
+
return commandName;
|
|
90
44
|
}
|
|
91
45
|
/**
|
|
92
46
|
* Validate command ID format
|
|
@@ -98,9 +52,8 @@ export function validateCommandId(commandId) {
|
|
|
98
52
|
if (commandId == null) {
|
|
99
53
|
return false;
|
|
100
54
|
}
|
|
101
|
-
// Command ID
|
|
102
|
-
|
|
103
|
-
const pattern = /^[a-zA-Z][a-zA-Z0-9_-]*(?::[a-zA-Z][a-zA-Z0-9_-]*)*$/;
|
|
55
|
+
// Command ID must be a single segment (no colons)
|
|
56
|
+
const pattern = /^[a-zA-Z][a-zA-Z0-9_-]*$/;
|
|
104
57
|
return pattern.test(commandId);
|
|
105
58
|
}
|
|
106
59
|
/**
|
|
@@ -113,33 +66,3 @@ function validateSegment(segment) {
|
|
|
113
66
|
const pattern = /^[a-zA-Z][a-zA-Z0-9_.-]*$/;
|
|
114
67
|
return pattern.test(segment);
|
|
115
68
|
}
|
|
116
|
-
/**
|
|
117
|
-
* Convert file path to command segments array
|
|
118
|
-
* @param filePath - Absolute path to markdown file
|
|
119
|
-
* @param rootDir - Root commands directory path
|
|
120
|
-
* @returns Array of path segments
|
|
121
|
-
*/
|
|
122
|
-
export function getCommandSegments(filePath, rootDir) {
|
|
123
|
-
const relativePath = relative(rootDir, filePath);
|
|
124
|
-
const segments = relativePath.split("/").filter((segment) => segment !== "");
|
|
125
|
-
// Remove .md extension from the last segment
|
|
126
|
-
const lastSegment = segments[segments.length - 1];
|
|
127
|
-
segments[segments.length - 1] = basename(lastSegment, ".md");
|
|
128
|
-
return segments;
|
|
129
|
-
}
|
|
130
|
-
/**
|
|
131
|
-
* Get namespace from command segments
|
|
132
|
-
* @param segments - Command path segments
|
|
133
|
-
* @returns Namespace string or undefined for flat commands
|
|
134
|
-
*/
|
|
135
|
-
export function getNamespace(segments) {
|
|
136
|
-
return segments.length > 1 ? segments[0] : undefined;
|
|
137
|
-
}
|
|
138
|
-
/**
|
|
139
|
-
* Get command depth from segments
|
|
140
|
-
* @param segments - Command path segments
|
|
141
|
-
* @returns Depth number (0 for root, 1 for nested)
|
|
142
|
-
*/
|
|
143
|
-
export function getDepth(segments) {
|
|
144
|
-
return Math.max(0, segments.length - 1);
|
|
145
|
-
}
|
|
@@ -18,11 +18,11 @@ export declare class ConfigValidator {
|
|
|
18
18
|
static validateMaxInputTokens(maxInputTokens: number): void;
|
|
19
19
|
/**
|
|
20
20
|
* Validates model configuration (basic validation)
|
|
21
|
-
* @param
|
|
21
|
+
* @param model - Agent model string
|
|
22
22
|
* @param fastModel - Fast model string
|
|
23
23
|
* @throws ConfigurationError if invalid
|
|
24
24
|
*/
|
|
25
|
-
static validateModelConfig(
|
|
25
|
+
static validateModelConfig(model: string, fastModel: string): void;
|
|
26
26
|
}
|
|
27
27
|
/**
|
|
28
28
|
* Static configuration validator instance
|
|
@@ -1 +1 @@
|
|
|
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;IAyCzD;;;;OAIG;IACH,MAAM,CAAC,sBAAsB,CAAC,cAAc,EAAE,MAAM,GAAG,IAAI;IA0B3D;;;;;OAKG;IACH,MAAM,CAAC,mBAAmB,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;IAyCzD;;;;OAIG;IACH,MAAM,CAAC,sBAAsB,CAAC,cAAc,EAAE,MAAM,GAAG,IAAI;IA0B3D;;;;;OAKG;IACH,MAAM,CAAC,mBAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI;CAqBnE;AAED;;;GAGG;AACH,eAAO,MAAM,eAAe;;;;CAI3B,CAAC"}
|
|
@@ -49,15 +49,13 @@ export class ConfigValidator {
|
|
|
49
49
|
}
|
|
50
50
|
/**
|
|
51
51
|
* Validates model configuration (basic validation)
|
|
52
|
-
* @param
|
|
52
|
+
* @param model - Agent model string
|
|
53
53
|
* @param fastModel - Fast model string
|
|
54
54
|
* @throws ConfigurationError if invalid
|
|
55
55
|
*/
|
|
56
|
-
static validateModelConfig(
|
|
57
|
-
if (!
|
|
58
|
-
|
|
59
|
-
agentModel.trim() === "") {
|
|
60
|
-
throw new ConfigurationError("Agent model must be a non-empty string.", "agentModel", agentModel);
|
|
56
|
+
static validateModelConfig(model, fastModel) {
|
|
57
|
+
if (!model || typeof model !== "string" || model.trim() === "") {
|
|
58
|
+
throw new ConfigurationError("Agent model must be a non-empty string.", "model", model);
|
|
61
59
|
}
|
|
62
60
|
if (!fastModel ||
|
|
63
61
|
typeof fastModel !== "string" ||
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Container } from "./container.js";
|
|
2
2
|
import { ConfigurationService } from "../services/configurationService.js";
|
|
3
|
-
import type { AgentOptions } from "../
|
|
3
|
+
import type { AgentOptions } from "../types/index.js";
|
|
4
4
|
import type { PermissionMode, Usage, Task, BackgroundTask } from "../types/index.js";
|
|
5
5
|
import type { GatewayConfig, ModelConfig } from "../types/config.js";
|
|
6
6
|
export interface AgentContainerSetupOptions {
|
|
@@ -9,9 +9,8 @@ export interface AgentContainerSetupOptions {
|
|
|
9
9
|
configurationService: ConfigurationService;
|
|
10
10
|
systemPrompt?: string;
|
|
11
11
|
stream: boolean;
|
|
12
|
-
|
|
13
|
-
onTasksChange: (tasks:
|
|
14
|
-
onSessionTasksChange: (tasks: Task[]) => void;
|
|
12
|
+
onBackgroundTasksChange: (tasks: BackgroundTask[]) => void;
|
|
13
|
+
onTasksChange: (tasks: Task[]) => void;
|
|
15
14
|
onPermissionModeChange: (mode: PermissionMode) => void;
|
|
16
15
|
handlePlanModeTransition: (mode: PermissionMode) => void;
|
|
17
16
|
setPermissionMode: (mode: PermissionMode) => void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"containerSetup.d.ts","sourceRoot":"","sources":["../../src/utils/containerSetup.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAoB3C,OAAO,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAE3E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"containerSetup.d.ts","sourceRoot":"","sources":["../../src/utils/containerSetup.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAoB3C,OAAO,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAE3E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,KAAK,EACV,cAAc,EACd,KAAK,EACL,IAAI,EACJ,cAAc,EAEf,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAIrE,MAAM,WAAW,0BAA0B;IACzC,OAAO,EAAE,YAAY,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,oBAAoB,EAAE,oBAAoB,CAAC;IAC3C,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,OAAO,CAAC;IAGhB,uBAAuB,EAAE,CAAC,KAAK,EAAE,cAAc,EAAE,KAAK,IAAI,CAAC;IAC3D,aAAa,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC;IACvC,sBAAsB,EAAE,CAAC,IAAI,EAAE,cAAc,KAAK,IAAI,CAAC;IACvD,wBAAwB,EAAE,CAAC,IAAI,EAAE,cAAc,KAAK,IAAI,CAAC;IACzD,iBAAiB,EAAE,CAAC,IAAI,EAAE,cAAc,KAAK,IAAI,CAAC;IAClD,iBAAiB,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACnD,QAAQ,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IAGjC,gBAAgB,EAAE,MAAM,aAAa,CAAC;IACtC,cAAc,EAAE,MAAM,WAAW,CAAC;IAClC,iBAAiB,EAAE,MAAM,MAAM,CAAC;IAChC,WAAW,EAAE,MAAM,MAAM,GAAG,SAAS,CAAC;CACvC;AAED,wBAAgB,mBAAmB,CACjC,YAAY,EAAE,0BAA0B,GACvC,SAAS,CA6NX"}
|
|
@@ -14,7 +14,7 @@ import { HookManager } from "../managers/hookManager.js";
|
|
|
14
14
|
import { SkillManager } from "../managers/skillManager.js";
|
|
15
15
|
import { SlashCommandManager } from "../managers/slashCommandManager.js";
|
|
16
16
|
import { PluginManager } from "../managers/pluginManager.js";
|
|
17
|
-
import {
|
|
17
|
+
import { BangManager } from "../managers/bangManager.js";
|
|
18
18
|
import { MemoryRuleManager } from "../managers/MemoryRuleManager.js";
|
|
19
19
|
import { ReversionManager } from "../managers/reversionManager.js";
|
|
20
20
|
import { SubagentManager } from "../managers/subagentManager.js";
|
|
@@ -22,7 +22,7 @@ import { LiveConfigManager } from "../managers/liveConfigManager.js";
|
|
|
22
22
|
import { ReversionService } from "../services/reversionService.js";
|
|
23
23
|
import { logger } from "./globalLogger.js";
|
|
24
24
|
export function setupAgentContainer(setupOptions) {
|
|
25
|
-
const { options, workdir, configurationService, systemPrompt, stream,
|
|
25
|
+
const { options, workdir, configurationService, systemPrompt, stream, onBackgroundTasksChange, onTasksChange, onPermissionModeChange, handlePlanModeTransition, setPermissionMode, addPermissionRule, addUsage, getGatewayConfig, getModelConfig, getMaxInputTokens, getLanguage, } = setupOptions;
|
|
26
26
|
const callbacks = options.callbacks || {};
|
|
27
27
|
const container = new Container();
|
|
28
28
|
const foregroundTaskManager = new ForegroundTaskManager(container);
|
|
@@ -34,7 +34,12 @@ export function setupAgentContainer(setupOptions) {
|
|
|
34
34
|
callbacks: {
|
|
35
35
|
...callbacks,
|
|
36
36
|
onSessionIdChange: (sessionId) => {
|
|
37
|
-
|
|
37
|
+
const taskManager = container.get("TaskManager");
|
|
38
|
+
if (taskManager) {
|
|
39
|
+
taskManager.syncWithSession().catch((error) => {
|
|
40
|
+
logger.error("Failed to sync task list with session:", error);
|
|
41
|
+
});
|
|
42
|
+
}
|
|
38
43
|
callbacks.onSessionIdChange?.(sessionId);
|
|
39
44
|
},
|
|
40
45
|
},
|
|
@@ -48,14 +53,14 @@ export function setupAgentContainer(setupOptions) {
|
|
|
48
53
|
container.register("TaskManager", taskManager);
|
|
49
54
|
taskManager.on("tasksChange", async () => {
|
|
50
55
|
const tasks = await taskManager.listTasks();
|
|
51
|
-
|
|
56
|
+
onTasksChange(tasks);
|
|
52
57
|
});
|
|
53
58
|
const backgroundTaskManager = new BackgroundTaskManager(container, {
|
|
54
59
|
callbacks: {
|
|
55
60
|
...callbacks,
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
callbacks.
|
|
61
|
+
onBackgroundTasksChange: (tasks) => {
|
|
62
|
+
onBackgroundTasksChange(tasks);
|
|
63
|
+
callbacks.onBackgroundTasksChange?.(tasks);
|
|
59
64
|
},
|
|
60
65
|
},
|
|
61
66
|
workdir,
|
|
@@ -181,7 +186,7 @@ export function setupAgentContainer(setupOptions) {
|
|
|
181
186
|
slashCommandManager.initialize();
|
|
182
187
|
const pluginManager = new PluginManager(container, { workdir });
|
|
183
188
|
container.register("PluginManager", pluginManager);
|
|
184
|
-
const
|
|
185
|
-
container.register("
|
|
189
|
+
const bangManager = new BangManager(container, { workdir });
|
|
190
|
+
container.register("BangManager", bangManager);
|
|
186
191
|
return container;
|
|
187
192
|
}
|
|
@@ -8,11 +8,10 @@ export declare function getProjectCommandsDir(workdir: string): string;
|
|
|
8
8
|
*/
|
|
9
9
|
export declare function getUserCommandsDir(): string;
|
|
10
10
|
/**
|
|
11
|
-
* Scan a directory for markdown command files
|
|
11
|
+
* Scan a directory for markdown command files (flat structure only)
|
|
12
12
|
* @param dirPath - Root commands directory path
|
|
13
|
-
* @param maxDepth - Maximum nesting depth to scan (default: 1)
|
|
14
13
|
*/
|
|
15
|
-
export declare function scanCommandsDirectory(dirPath: string
|
|
14
|
+
export declare function scanCommandsDirectory(dirPath: string): CustomSlashCommand[];
|
|
16
15
|
/**
|
|
17
16
|
* Load all custom slash commands from both project and user directories
|
|
18
17
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"customCommands.d.ts","sourceRoot":"","sources":["../../src/utils/customCommands.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"customCommands.d.ts","sourceRoot":"","sources":["../../src/utils/customCommands.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAK5D;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAE7D;AAED;;GAEG;AACH,wBAAgB,kBAAkB,IAAI,MAAM,CAE3C;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,kBAAkB,EAAE,CAwC3E;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,MAAM,GAAG,kBAAkB,EAAE,CAkB7E"}
|