wave-agent-sdk 0.10.1 → 0.10.2
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 +6 -0
- package/dist/agent.d.ts.map +1 -1
- package/dist/agent.js +2 -0
- package/dist/core/session.d.ts +1 -1
- package/dist/core/session.d.ts.map +1 -1
- package/dist/core/session.js +1 -1
- package/dist/managers/backgroundTaskManager.d.ts +3 -0
- package/dist/managers/backgroundTaskManager.d.ts.map +1 -1
- package/dist/managers/backgroundTaskManager.js +3 -0
- package/dist/managers/permissionManager.d.ts.map +1 -1
- package/dist/managers/permissionManager.js +33 -4
- package/dist/managers/skillManager.d.ts +17 -2
- package/dist/managers/skillManager.d.ts.map +1 -1
- package/dist/managers/skillManager.js +93 -21
- package/dist/managers/slashCommandManager.d.ts.map +1 -1
- package/dist/managers/slashCommandManager.js +7 -0
- package/dist/prompts/index.d.ts +1 -1
- package/dist/prompts/index.d.ts.map +1 -1
- package/dist/prompts/index.js +1 -0
- package/dist/services/configurationService.d.ts.map +1 -1
- package/dist/services/configurationService.js +1 -0
- package/dist/services/fileWatcher.d.ts.map +1 -1
- package/dist/services/fileWatcher.js +27 -15
- package/dist/services/session.d.ts +9 -2
- package/dist/services/session.d.ts.map +1 -1
- package/dist/services/session.js +77 -7
- package/dist/tools/bashTool.js +3 -3
- package/dist/tools/exitPlanMode.d.ts.map +1 -1
- package/dist/tools/exitPlanMode.js +3 -1
- package/dist/tools/grepTool.d.ts.map +1 -1
- package/dist/tools/grepTool.js +1 -1
- package/dist/tools/lspTool.d.ts.map +1 -1
- package/dist/tools/lspTool.js +47 -15
- package/dist/tools/taskOutputTool.d.ts.map +1 -1
- package/dist/tools/taskOutputTool.js +22 -5
- package/dist/tools/types.d.ts +1 -0
- package/dist/tools/types.d.ts.map +1 -1
- package/dist/types/agent.d.ts +2 -0
- package/dist/types/agent.d.ts.map +1 -1
- package/dist/types/configuration.d.ts +2 -0
- package/dist/types/configuration.d.ts.map +1 -1
- package/dist/types/skills.d.ts +4 -2
- package/dist/types/skills.d.ts.map +1 -1
- package/dist/utils/configPaths.d.ts +6 -0
- package/dist/utils/configPaths.d.ts.map +1 -1
- package/dist/utils/configPaths.js +23 -2
- package/dist/utils/containerSetup.d.ts.map +1 -1
- package/dist/utils/containerSetup.js +4 -1
- package/dist/utils/gitUtils.d.ts +6 -0
- package/dist/utils/gitUtils.d.ts.map +1 -1
- package/dist/utils/gitUtils.js +22 -0
- package/package.json +1 -1
- package/src/agent.ts +18 -2
- package/src/builtin-skills/settings/HOOKS.md +95 -0
- package/src/builtin-skills/settings/SKILL.md +86 -0
- package/src/core/session.ts +1 -0
- package/src/managers/backgroundTaskManager.ts +11 -1
- package/src/managers/permissionManager.ts +33 -4
- package/src/managers/skillManager.ts +111 -25
- package/src/managers/slashCommandManager.ts +8 -0
- package/src/prompts/index.ts +1 -0
- package/src/services/configurationService.ts +1 -0
- package/src/services/fileWatcher.ts +33 -17
- package/src/services/session.ts +83 -7
- package/src/tools/bashTool.ts +3 -3
- package/src/tools/exitPlanMode.ts +3 -1
- package/src/tools/grepTool.ts +2 -1
- package/src/tools/lspTool.ts +99 -9
- package/src/tools/taskOutputTool.ts +25 -6
- package/src/tools/types.ts +2 -0
- package/src/types/agent.ts +2 -0
- package/src/types/configuration.ts +2 -0
- package/src/types/skills.ts +4 -2
- package/src/utils/configPaths.ts +28 -2
- package/src/utils/containerSetup.ts +4 -1
- package/src/utils/gitUtils.ts +22 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../src/services/session.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../src/services/session.ts"],"names":[],"mappings":"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"}
|
package/dist/services/session.js
CHANGED
|
@@ -302,11 +302,16 @@ export async function listSessionsFromJsonl(workdir) {
|
|
|
302
302
|
const projectDir = await encoder.getProjectDirectory(workdir, baseDir);
|
|
303
303
|
// Try to read from index first
|
|
304
304
|
const indexPath = join(projectDir.encodedPath, SESSION_INDEX_FILENAME);
|
|
305
|
+
const sevenDaysAgo = new Date();
|
|
306
|
+
sevenDaysAgo.setDate(sevenDaysAgo.getDate() - 7);
|
|
305
307
|
try {
|
|
306
308
|
const indexContent = await fs.readFile(indexPath, "utf8");
|
|
307
309
|
const index = JSON.parse(indexContent);
|
|
308
310
|
const sessions = Object.entries(index.sessions)
|
|
309
|
-
.filter(([, meta]) =>
|
|
311
|
+
.filter(([, meta]) => {
|
|
312
|
+
const lastActiveAt = new Date(meta.lastActiveAt);
|
|
313
|
+
return meta.sessionType === "main" && lastActiveAt >= sevenDaysAgo;
|
|
314
|
+
})
|
|
310
315
|
.map(([id, meta]) => ({
|
|
311
316
|
id,
|
|
312
317
|
...meta,
|
|
@@ -358,6 +363,9 @@ export async function listSessionsFromJsonl(workdir) {
|
|
|
358
363
|
const stats = await fs.stat(filePath);
|
|
359
364
|
lastActiveAt = stats.mtime;
|
|
360
365
|
}
|
|
366
|
+
if (lastActiveAt < sevenDaysAgo) {
|
|
367
|
+
continue;
|
|
368
|
+
}
|
|
361
369
|
// Return inline object for performance (no interface instantiation overhead)
|
|
362
370
|
const sessionMeta = {
|
|
363
371
|
id: sessionId,
|
|
@@ -412,6 +420,65 @@ export async function listSessionsFromJsonl(workdir) {
|
|
|
412
420
|
throw new Error(`Failed to list sessions: ${error}`);
|
|
413
421
|
}
|
|
414
422
|
}
|
|
423
|
+
/**
|
|
424
|
+
* List all sessions across all project directories
|
|
425
|
+
*
|
|
426
|
+
* @returns Promise that resolves to array of session metadata objects
|
|
427
|
+
*/
|
|
428
|
+
export async function listAllSessions() {
|
|
429
|
+
try {
|
|
430
|
+
const baseDir = SESSION_DIR;
|
|
431
|
+
let projectDirs;
|
|
432
|
+
try {
|
|
433
|
+
projectDirs = await fs.readdir(baseDir);
|
|
434
|
+
}
|
|
435
|
+
catch (error) {
|
|
436
|
+
if (error.code === "ENOENT") {
|
|
437
|
+
return [];
|
|
438
|
+
}
|
|
439
|
+
throw error;
|
|
440
|
+
}
|
|
441
|
+
const allSessions = [];
|
|
442
|
+
const sevenDaysAgo = new Date();
|
|
443
|
+
sevenDaysAgo.setDate(sevenDaysAgo.getDate() - 7);
|
|
444
|
+
for (const projectDirName of projectDirs) {
|
|
445
|
+
const projectPath = join(baseDir, projectDirName);
|
|
446
|
+
try {
|
|
447
|
+
const stat = await fs.stat(projectPath);
|
|
448
|
+
if (!stat.isDirectory()) {
|
|
449
|
+
continue;
|
|
450
|
+
}
|
|
451
|
+
// Try to read from index first
|
|
452
|
+
const indexPath = join(projectPath, SESSION_INDEX_FILENAME);
|
|
453
|
+
try {
|
|
454
|
+
const indexContent = await fs.readFile(indexPath, "utf8");
|
|
455
|
+
const index = JSON.parse(indexContent);
|
|
456
|
+
for (const [id, meta] of Object.entries(index.sessions)) {
|
|
457
|
+
const lastActiveAt = new Date(meta.lastActiveAt);
|
|
458
|
+
if (meta.sessionType === "main" && lastActiveAt >= sevenDaysAgo) {
|
|
459
|
+
allSessions.push({
|
|
460
|
+
id,
|
|
461
|
+
...meta,
|
|
462
|
+
lastActiveAt,
|
|
463
|
+
});
|
|
464
|
+
}
|
|
465
|
+
}
|
|
466
|
+
}
|
|
467
|
+
catch {
|
|
468
|
+
// If index fails, we skip this project directory
|
|
469
|
+
// In the future, we could scan for .jsonl files here
|
|
470
|
+
}
|
|
471
|
+
}
|
|
472
|
+
catch {
|
|
473
|
+
// Skip if stat fails
|
|
474
|
+
}
|
|
475
|
+
}
|
|
476
|
+
return allSessions.sort((a, b) => b.lastActiveAt.getTime() - a.lastActiveAt.getTime());
|
|
477
|
+
}
|
|
478
|
+
catch (error) {
|
|
479
|
+
throw new Error(`Failed to list all sessions: ${error}`);
|
|
480
|
+
}
|
|
481
|
+
}
|
|
415
482
|
/**
|
|
416
483
|
* Clean up expired sessions older than 14 days based on file modification time
|
|
417
484
|
*
|
|
@@ -638,16 +705,19 @@ export async function deleteSession(sessionId, workdir, sessionType = "main") {
|
|
|
638
705
|
}
|
|
639
706
|
}
|
|
640
707
|
/**
|
|
641
|
-
* Truncate content to a maximum length, adding ellipsis if truncated
|
|
708
|
+
* Truncate content to a maximum length, adding ellipsis if truncated.
|
|
709
|
+
* Also replaces real newlines with the literal string "\n".
|
|
642
710
|
* @param content - The content to truncate
|
|
643
|
-
* @param maxLength - Maximum length before truncation (default:
|
|
711
|
+
* @param maxLength - Maximum length before truncation (default: 100)
|
|
644
712
|
* @returns Truncated content with ellipsis if needed
|
|
645
713
|
*/
|
|
646
|
-
export function truncateContent(content, maxLength =
|
|
647
|
-
|
|
648
|
-
|
|
714
|
+
export function truncateContent(content, maxLength = 100) {
|
|
715
|
+
// Replace real newlines with literal "\n"
|
|
716
|
+
const singleLineContent = content.replace(/\n/g, "\\n");
|
|
717
|
+
if (singleLineContent.length <= maxLength) {
|
|
718
|
+
return singleLineContent;
|
|
649
719
|
}
|
|
650
|
-
return
|
|
720
|
+
return singleLineContent.substring(0, maxLength) + "...";
|
|
651
721
|
}
|
|
652
722
|
/**
|
|
653
723
|
* Handle session restoration logic
|
package/dist/tools/bashTool.js
CHANGED
|
@@ -65,10 +65,10 @@ Usage notes:
|
|
|
65
65
|
- It is very helpful if you write a clear, concise description of what this command does in 5-10 words.
|
|
66
66
|
- If the output exceeds ${MAX_OUTPUT_LENGTH} characters, output will be truncated before being returned to you.
|
|
67
67
|
- You can use the \`run_in_background\` parameter to run the command in the background, which allows you to continue working while the command runs. You can monitor the output using the ${BASH_TOOL_NAME} tool as it becomes available. You do not need to use '&' at the end of the command when using this parameter.
|
|
68
|
-
- Avoid using ${BASH_TOOL_NAME} with the \`find\`, \`
|
|
68
|
+
- Avoid using ${BASH_TOOL_NAME} with the \`find\`, \`sed\`, \`awk\`, or \`echo\` commands, unless explicitly instructed or when these commands are truly necessary for the task. Instead, always prefer using the dedicated tools for these commands:
|
|
69
69
|
- File search: Use ${GLOB_TOOL_NAME} (NOT find or ls)
|
|
70
|
-
- Content search: Use ${GREP_TOOL_NAME}
|
|
71
|
-
- Read files: Use ${READ_TOOL_NAME}
|
|
70
|
+
- Content search: Use ${GREP_TOOL_NAME}
|
|
71
|
+
- Read files: Use ${READ_TOOL_NAME}
|
|
72
72
|
- Edit files: Use ${EDIT_TOOL_NAME} (NOT sed/awk)
|
|
73
73
|
- Write files: Use ${WRITE_TOOL_NAME} (NOT echo >/cat <<EOF)
|
|
74
74
|
- Communication: Output text directly (NOT echo/printf)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"exitPlanMode.d.ts","sourceRoot":"","sources":["../../src/tools/exitPlanMode.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAA2B,MAAM,YAAY,CAAC;AAItE;;GAEG;AACH,eAAO,MAAM,gBAAgB,EAAE,
|
|
1
|
+
{"version":3,"file":"exitPlanMode.d.ts","sourceRoot":"","sources":["../../src/tools/exitPlanMode.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAA2B,MAAM,YAAY,CAAC;AAItE;;GAEG;AACH,eAAO,MAAM,gBAAgB,EAAE,UAqH9B,CAAC"}
|
|
@@ -73,7 +73,9 @@ Ensure your plan is complete and unambiguous:
|
|
|
73
73
|
};
|
|
74
74
|
}
|
|
75
75
|
// Permission check triggers the 3-option UI
|
|
76
|
-
const permissionContext = context.permissionManager.createContext(EXIT_PLAN_MODE_TOOL_NAME, context.permissionMode || "plan", context.canUseToolCallback, {
|
|
76
|
+
const permissionContext = context.permissionManager.createContext(EXIT_PLAN_MODE_TOOL_NAME, context.permissionMode || "plan", context.canUseToolCallback, {
|
|
77
|
+
plan_content: planContent,
|
|
78
|
+
}, context.toolCallId);
|
|
77
79
|
const permissionResult = await context.permissionManager.checkPermission(permissionContext);
|
|
78
80
|
if (permissionResult.behavior === "deny") {
|
|
79
81
|
if (permissionResult.message === OPERATION_CANCELLED_BY_USER) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"grepTool.d.ts","sourceRoot":"","sources":["../../src/tools/grepTool.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAA2B,MAAM,YAAY,CAAC;AAUtE;;GAEG;AACH,eAAO,MAAM,QAAQ,EAAE,
|
|
1
|
+
{"version":3,"file":"grepTool.d.ts","sourceRoot":"","sources":["../../src/tools/grepTool.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAA2B,MAAM,YAAY,CAAC;AAUtE;;GAEG;AACH,eAAO,MAAM,QAAQ,EAAE,UAkRtB,CAAC"}
|
package/dist/tools/grepTool.js
CHANGED
|
@@ -178,7 +178,7 @@ export const grepTool = {
|
|
|
178
178
|
if (!output) {
|
|
179
179
|
return {
|
|
180
180
|
success: true,
|
|
181
|
-
content: "No matches found",
|
|
181
|
+
content: "No matches found. Suggestion: specify the 'path' field to search in ignored or other directories (e.g., 'node_modules'), as the default search path is the current working directory and respects .gitignore.",
|
|
182
182
|
shortResult: "No matches found",
|
|
183
183
|
};
|
|
184
184
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lspTool.d.ts","sourceRoot":"","sources":["../../src/tools/lspTool.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAA2B,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"lspTool.d.ts","sourceRoot":"","sources":["../../src/tools/lspTool.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAA2B,MAAM,YAAY,CAAC;AAiBtE,eAAO,MAAM,WAAW,OAAO,CAAC;AAChC,eAAO,MAAM,SAAS,MAAM,CAAC;AAypB7B;;GAEG;AACH,eAAO,MAAM,OAAO,EAAE,UAoMrB,CAAC"}
|
package/dist/tools/lspTool.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import { relative } from "path";
|
|
1
|
+
import { relative, join, isAbsolute } from "path";
|
|
2
|
+
import * as fs from "fs";
|
|
2
3
|
import { logger } from "../utils/globalLogger.js";
|
|
3
4
|
import { getDisplayPath } from "../utils/path.js";
|
|
4
5
|
import { LSP_TOOL_NAME } from "../constants/tools.js";
|
|
@@ -29,6 +30,33 @@ function formatUri(uri, workdir) {
|
|
|
29
30
|
}
|
|
30
31
|
return path;
|
|
31
32
|
}
|
|
33
|
+
/**
|
|
34
|
+
* Formats an error message when no results are found, including context from the file
|
|
35
|
+
*/
|
|
36
|
+
function formatNoResultError(message, filePath, line, character, workdir) {
|
|
37
|
+
let absolutePath = filePath;
|
|
38
|
+
if (!isAbsolute(filePath) && workdir) {
|
|
39
|
+
absolutePath = join(workdir, filePath);
|
|
40
|
+
}
|
|
41
|
+
let lineContent = "";
|
|
42
|
+
try {
|
|
43
|
+
const content = fs.readFileSync(absolutePath, "utf-8");
|
|
44
|
+
const lines = content.split("\n");
|
|
45
|
+
if (line > 0 && line <= lines.length) {
|
|
46
|
+
lineContent = lines[line - 1];
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
catch {
|
|
50
|
+
// Ignore file read errors
|
|
51
|
+
}
|
|
52
|
+
const displayPath = getDisplayPath(filePath, workdir || "");
|
|
53
|
+
const baseMessage = `${message}\n\nPlease check if the character offset is correct and points to a valid symbol.`;
|
|
54
|
+
if (lineContent) {
|
|
55
|
+
const pointer = " ".repeat(Math.max(0, character - 1)) + "^";
|
|
56
|
+
return `${message}\n\nContext at ${displayPath}:${line}:${character}:\n${lineContent}\n${pointer}\n\nPlease check if the character offset is correct and points to a valid symbol.`;
|
|
57
|
+
}
|
|
58
|
+
return baseMessage;
|
|
59
|
+
}
|
|
32
60
|
/**
|
|
33
61
|
* Groups items by their URI
|
|
34
62
|
*/
|
|
@@ -83,15 +111,18 @@ function isLocationLink(loc) {
|
|
|
83
111
|
/**
|
|
84
112
|
* Formats the result of a goToDefinition operation
|
|
85
113
|
*/
|
|
86
|
-
function formatGoToDefinitionResult(result, workdir) {
|
|
114
|
+
function formatGoToDefinitionResult(result, filePath, line, character, operation, workdir) {
|
|
115
|
+
const message = operation === "goToImplementation"
|
|
116
|
+
? "No implementation found. This may occur if the cursor is not on a symbol, or if the implementation is in an external library not indexed by the LSP server."
|
|
117
|
+
: "No definition found. This may occur if the cursor is not on a symbol, or if the definition is in an external library not indexed by the LSP server.";
|
|
87
118
|
if (!result) {
|
|
88
|
-
return
|
|
119
|
+
return formatNoResultError(message, filePath, line, character, workdir);
|
|
89
120
|
}
|
|
90
121
|
if (Array.isArray(result)) {
|
|
91
122
|
const locations = result.map((loc) => isLocationLink(loc) ? locationLinkToLocation(loc) : loc);
|
|
92
123
|
const validLocations = locations.filter((loc) => loc && loc.uri);
|
|
93
124
|
if (validLocations.length === 0) {
|
|
94
|
-
return
|
|
125
|
+
return formatNoResultError(message, filePath, line, character, workdir);
|
|
95
126
|
}
|
|
96
127
|
if (validLocations.length === 1) {
|
|
97
128
|
return `Defined in ${formatLocation(validLocations[0], workdir)}`;
|
|
@@ -112,13 +143,14 @@ function formatGoToDefinitionResult(result, workdir) {
|
|
|
112
143
|
/**
|
|
113
144
|
* Formats the result of a findReferences operation
|
|
114
145
|
*/
|
|
115
|
-
function formatFindReferencesResult(result, workdir) {
|
|
146
|
+
function formatFindReferencesResult(result, filePath, line, character, workdir) {
|
|
147
|
+
const message = "No references found. This may occur if the symbol has no usages, or if the LSP server has not fully indexed the workspace.";
|
|
116
148
|
if (!result || result.length === 0) {
|
|
117
|
-
return
|
|
149
|
+
return formatNoResultError(message, filePath, line, character, workdir);
|
|
118
150
|
}
|
|
119
151
|
const validLocations = result.filter((loc) => loc && loc.uri);
|
|
120
152
|
if (validLocations.length === 0) {
|
|
121
|
-
return
|
|
153
|
+
return formatNoResultError(message, filePath, line, character, workdir);
|
|
122
154
|
}
|
|
123
155
|
if (validLocations.length === 1) {
|
|
124
156
|
return `Found 1 reference:\n ${formatLocation(validLocations[0], workdir)}`;
|
|
@@ -171,9 +203,9 @@ function formatHoverContents(contents) {
|
|
|
171
203
|
/**
|
|
172
204
|
* Formats the result of a hover operation
|
|
173
205
|
*/
|
|
174
|
-
function formatHoverResult(result) {
|
|
206
|
+
function formatHoverResult(result, filePath, line, character, workdir) {
|
|
175
207
|
if (!result) {
|
|
176
|
-
return "No hover information available. This may occur if the cursor is not on a symbol, or if the LSP server has not fully indexed the file.";
|
|
208
|
+
return formatNoResultError("No hover information available. This may occur if the cursor is not on a symbol, or if the LSP server has not fully indexed the file.", filePath, line, character, workdir);
|
|
177
209
|
}
|
|
178
210
|
const contents = formatHoverContents(result.contents);
|
|
179
211
|
if (result.range) {
|
|
@@ -331,9 +363,9 @@ function formatCallHierarchyItem(item, workdir) {
|
|
|
331
363
|
/**
|
|
332
364
|
* Formats the result of a prepareCallHierarchy operation
|
|
333
365
|
*/
|
|
334
|
-
function formatPrepareCallHierarchyResult(result, workdir) {
|
|
366
|
+
function formatPrepareCallHierarchyResult(result, filePath, line, character, workdir) {
|
|
335
367
|
if (!result || result.length === 0) {
|
|
336
|
-
return "No call hierarchy item found at this position";
|
|
368
|
+
return formatNoResultError("No call hierarchy item found at this position", filePath, line, character, workdir);
|
|
337
369
|
}
|
|
338
370
|
if (result.length === 1) {
|
|
339
371
|
return `Call hierarchy item: ${formatCallHierarchyItem(result[0], workdir)}`;
|
|
@@ -564,13 +596,13 @@ Note: LSP servers must be configured for the file type. If no server is availabl
|
|
|
564
596
|
switch (operation) {
|
|
565
597
|
case "goToDefinition":
|
|
566
598
|
case "goToImplementation":
|
|
567
|
-
formattedContent = formatGoToDefinitionResult(rawResult, context.workdir);
|
|
599
|
+
formattedContent = formatGoToDefinitionResult(rawResult, filePath, line, character, operation, context.workdir);
|
|
568
600
|
break;
|
|
569
601
|
case "findReferences":
|
|
570
|
-
formattedContent = formatFindReferencesResult(rawResult, context.workdir);
|
|
602
|
+
formattedContent = formatFindReferencesResult(rawResult, filePath, line, character, context.workdir);
|
|
571
603
|
break;
|
|
572
604
|
case "hover":
|
|
573
|
-
formattedContent = formatHoverResult(rawResult);
|
|
605
|
+
formattedContent = formatHoverResult(rawResult, filePath, line, character, context.workdir);
|
|
574
606
|
break;
|
|
575
607
|
case "documentSymbol":
|
|
576
608
|
formattedContent = formatDocumentSymbolResult(rawResult, context.workdir);
|
|
@@ -579,7 +611,7 @@ Note: LSP servers must be configured for the file type. If no server is availabl
|
|
|
579
611
|
formattedContent = formatWorkspaceSymbolResult(rawResult, context.workdir);
|
|
580
612
|
break;
|
|
581
613
|
case "prepareCallHierarchy":
|
|
582
|
-
formattedContent = formatPrepareCallHierarchyResult(rawResult, context.workdir);
|
|
614
|
+
formattedContent = formatPrepareCallHierarchyResult(rawResult, filePath, line, character, context.workdir);
|
|
583
615
|
break;
|
|
584
616
|
case "incomingCalls":
|
|
585
617
|
formattedContent = formatIncomingCallsResult(rawResult, context.workdir);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"taskOutputTool.d.ts","sourceRoot":"","sources":["../../src/tools/taskOutputTool.ts"],"names":[],"mappings":"AACA,OAAO,EAAe,UAAU,EAAc,MAAM,YAAY,CAAC;AAKjE,eAAO,MAAM,cAAc,EAAE,
|
|
1
|
+
{"version":3,"file":"taskOutputTool.d.ts","sourceRoot":"","sources":["../../src/tools/taskOutputTool.ts"],"names":[],"mappings":"AACA,OAAO,EAAe,UAAU,EAAc,MAAM,YAAY,CAAC;AAKjE,eAAO,MAAM,cAAc,EAAE,UAiN5B,CAAC"}
|
|
@@ -71,14 +71,31 @@ export const taskOutputTool = {
|
|
|
71
71
|
content += (content ? "\n" : "") + stripAnsiColors(output.stderr);
|
|
72
72
|
}
|
|
73
73
|
const finalContent = content || "No output available";
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
74
|
+
let processedContent = finalContent;
|
|
75
|
+
let isTruncated = false;
|
|
76
|
+
if (finalContent.length > MAX_OUTPUT_LENGTH) {
|
|
77
|
+
processedContent =
|
|
78
|
+
finalContent.substring(0, MAX_OUTPUT_LENGTH) +
|
|
79
|
+
"\n\n... (output truncated)";
|
|
80
|
+
isTruncated = true;
|
|
81
|
+
}
|
|
82
|
+
if (isTruncated && output.outputPath) {
|
|
83
|
+
processedContent += `\n\nFull output available at: ${output.outputPath}`;
|
|
84
|
+
}
|
|
85
|
+
let shortResult = `${taskId}: ${output.status}`;
|
|
86
|
+
if (output.status === "failed" && output.exitCode !== undefined) {
|
|
87
|
+
shortResult += ` (exit code: ${output.exitCode})`;
|
|
88
|
+
}
|
|
78
89
|
return {
|
|
79
90
|
success: true,
|
|
80
91
|
content: processedContent,
|
|
81
|
-
shortResult
|
|
92
|
+
shortResult,
|
|
93
|
+
metadata: {
|
|
94
|
+
outputPath: output.outputPath,
|
|
95
|
+
status: output.status,
|
|
96
|
+
type: output.type,
|
|
97
|
+
exitCode: output.exitCode,
|
|
98
|
+
},
|
|
82
99
|
};
|
|
83
100
|
};
|
|
84
101
|
if (block) {
|
package/dist/tools/types.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/tools/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,0BAA0B,EAAE,MAAM,qBAAqB,CAAC;AACjE,OAAO,KAAK,EACV,cAAc,EACd,kBAAkB,EACnB,MAAM,yBAAyB,CAAC;AAEjC,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACxE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAExD,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,0BAA0B,CAAC;IACnC,OAAO,EAAE,CACP,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,OAAO,EAAE,WAAW,KACjB,OAAO,CAAC,UAAU,CAAC,CAAC;IACzB,mBAAmB,CAAC,EAAE,CACpB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,OAAO,EAAE,WAAW,KACjB,MAAM,CAAC;IACZ;;OAEG;IACH,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE;QACf,kBAAkB,CAAC,EAAE,qBAAqB,EAAE,CAAC;QAC7C,eAAe,CAAC,EAAE,aAAa,EAAE,CAAC;QAClC,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,KAAK,MAAM,CAAC;CACd;AAED,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,eAAe,CAAC,EAAE,MAAM,CAAC;IAEzB,MAAM,CAAC,EAAE,KAAK,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC,CAAC;IAEH,sBAAsB,CAAC,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/tools/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,0BAA0B,EAAE,MAAM,qBAAqB,CAAC;AACjE,OAAO,KAAK,EACV,cAAc,EACd,kBAAkB,EACnB,MAAM,yBAAyB,CAAC;AAEjC,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACxE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAExD,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,0BAA0B,CAAC;IACnC,OAAO,EAAE,CACP,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,OAAO,EAAE,WAAW,KACjB,OAAO,CAAC,UAAU,CAAC,CAAC;IACzB,mBAAmB,CAAC,EAAE,CACpB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,OAAO,EAAE,WAAW,KACjB,MAAM,CAAC;IACZ;;OAEG;IACH,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE;QACf,kBAAkB,CAAC,EAAE,qBAAqB,EAAE,CAAC;QAC7C,eAAe,CAAC,EAAE,aAAa,EAAE,CAAC;QAClC,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,KAAK,MAAM,CAAC;CACd;AAED,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,eAAe,CAAC,EAAE,MAAM,CAAC;IAEzB,MAAM,CAAC,EAAE,KAAK,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC,CAAC;IAEH,sBAAsB,CAAC,EAAE,OAAO,CAAC;IAEjC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED,MAAM,WAAW,WAAW;IAC1B,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,qBAAqB,CAAC,EAAE,OAAO,sCAAsC,EAAE,qBAAqB,CAAC;IAC7F,OAAO,EAAE,MAAM,CAAC;IAChB,8CAA8C;IAC9C,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,iCAAiC;IACjC,kBAAkB,CAAC,EAAE,kBAAkB,CAAC;IACxC,wDAAwD;IACxD,iBAAiB,CAAC,EAAE,OAAO,kCAAkC,EAAE,iBAAiB,CAAC;IACjF,iDAAiD;IACjD,UAAU,CAAC,EAAE,OAAO,2BAA2B,EAAE,UAAU,CAAC;IAC5D,iDAAiD;IACjD,UAAU,CAAC,EAAE,OAAO,iBAAiB,EAAE,WAAW,CAAC;IACnD,oDAAoD;IACpD,gBAAgB,CAAC,EAAE,OAAO,iCAAiC,EAAE,gBAAgB,CAAC;IAC9E,mDAAmD;IACnD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,sDAAsD;IACtD,qBAAqB,CAAC,EAAE,OAAO,uBAAuB,EAAE,sBAAsB,CAAC;IAC/E,gDAAgD;IAChD,WAAW,EAAE,OAAO,4BAA4B,EAAE,WAAW,CAAC;IAC9D,qDAAqD;IACrD,eAAe,CAAC,EAAE,OAAO,gCAAgC,EAAE,eAAe,CAAC;IAC3E,kDAAkD;IAClD,YAAY,CAAC,EAAE,OAAO,6BAA6B,EAAE,YAAY,CAAC;IAClE,yBAAyB;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,sCAAsC;IACtC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,oEAAoE;IACpE,mBAAmB,CAAC,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,IAAI,CAAC;CACrD"}
|
package/dist/types/agent.d.ts
CHANGED
|
@@ -53,6 +53,8 @@ export interface AgentOptions {
|
|
|
53
53
|
worktreeName?: string;
|
|
54
54
|
/**Whether this is a newly created worktree */
|
|
55
55
|
isNewWorktree?: boolean;
|
|
56
|
+
/**Whether to watch for skill changes - defaults to true */
|
|
57
|
+
watchSkills?: boolean;
|
|
56
58
|
}
|
|
57
59
|
export interface AgentCallbacks extends MessageManagerCallbacks, BackgroundTaskManagerCallbacks, McpManagerCallbacks, SubagentManagerCallbacks {
|
|
58
60
|
onBackgroundTasksChange?: (tasks: BackgroundTask[]) => void;
|
|
@@ -1 +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;
|
|
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;IACxB,2DAA2D;IAC3D,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;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"}
|
|
@@ -80,6 +80,8 @@ export interface ConfigurationPaths {
|
|
|
80
80
|
userPaths: string[];
|
|
81
81
|
/** Project-specific configuration file paths in priority order */
|
|
82
82
|
projectPaths: string[];
|
|
83
|
+
/** Builtin configuration file paths */
|
|
84
|
+
builtinPaths: string[];
|
|
83
85
|
/** All configuration paths combined */
|
|
84
86
|
allPaths: string[];
|
|
85
87
|
/** Only the paths that actually exist on the filesystem */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"configuration.d.ts","sourceRoot":"","sources":["../../src/types/configuration.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"configuration.d.ts","sourceRoot":"","sources":["../../src/types/configuration.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC7D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAEvD,MAAM,MAAM,KAAK,GAAG,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC;AAEjD;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,KAAK,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,SAAS,EAAE,eAAe,EAAE,CAAC,CAAC,CAAC;IACtD,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,2CAA2C;IAC3C,WAAW,CAAC,EAAE;QACZ,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;QACjB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;QAChB,WAAW,CAAC,EAAE,cAAc,CAAC;QAC7B;;;WAGG;QACH,qBAAqB,CAAC,EAAE,MAAM,EAAE,CAAC;KAClC,CAAC;IACF,6CAA6C;IAC7C,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACzC,iDAAiD;IACjD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,qCAAqC;IACrC,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B;AAED;;GAEG;AACH,MAAM,WAAW,iBAAkB,SAAQ,iBAAiB;IAC1D,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,SAAS,EAAE,eAAe,EAAE,CAAC,CAAC,CAAC;CACtD;AAED;;GAEG;AACH,MAAM,MAAM,wBAAwB,GAAG,OAAO,CAC5C,MAAM,CAAC,SAAS,EAAE,eAAe,EAAE,CAAC,CACrC,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,uBAAuB,GAAG,MAAM,CAAC,SAAS,EAAE,eAAe,EAAE,CAAC,CAAC;AAE3E;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,0DAA0D;IAC1D,aAAa,EAAE,iBAAiB,GAAG,IAAI,CAAC;IACxC,mDAAmD;IACnD,OAAO,EAAE,OAAO,CAAC;IACjB,sCAAsC;IACtC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,2CAA2C;IAC3C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,2CAA2C;IAC3C,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,yCAAyC;IACzC,OAAO,EAAE,OAAO,CAAC;IACjB,qDAAqD;IACrD,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,oDAAoD;IACpD,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,+DAA+D;IAC/D,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,kEAAkE;IAClE,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,uCAAuC;IACvC,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,uCAAuC;IACvC,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,2DAA2D;IAC3D,aAAa,EAAE,MAAM,EAAE,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,2BAA2B;IAC1C,6DAA6D;IAC7D,OAAO,EAAE,MAAM,CAAC;IAChB,mDAAmD;IACnD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,kEAAkE;IAClE,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED;;GAEG;AACH,UAAU,MAAM;IACd,KAAK,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC;IACpC,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC;IACnC,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC;IACnC,KAAK,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC;CACrC"}
|
package/dist/types/skills.d.ts
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
export interface SkillMetadata {
|
|
6
6
|
name: string;
|
|
7
7
|
description: string;
|
|
8
|
-
type: "personal" | "project";
|
|
8
|
+
type: "personal" | "project" | "builtin";
|
|
9
9
|
skillPath: string;
|
|
10
10
|
allowedTools?: string[];
|
|
11
11
|
context?: "fork";
|
|
@@ -33,7 +33,7 @@ export interface SkillFrontmatter {
|
|
|
33
33
|
[key: string]: unknown;
|
|
34
34
|
}
|
|
35
35
|
export interface SkillCollection {
|
|
36
|
-
type: "personal" | "project";
|
|
36
|
+
type: "personal" | "project" | "builtin";
|
|
37
37
|
basePath: string;
|
|
38
38
|
skills: Map<string, SkillMetadata>;
|
|
39
39
|
errors: SkillError[];
|
|
@@ -50,6 +50,7 @@ export interface SkillValidationResult {
|
|
|
50
50
|
export interface SkillDiscoveryResult {
|
|
51
51
|
personalSkills: Map<string, SkillMetadata>;
|
|
52
52
|
projectSkills: Map<string, SkillMetadata>;
|
|
53
|
+
builtinSkills: Map<string, SkillMetadata>;
|
|
53
54
|
errors: SkillError[];
|
|
54
55
|
}
|
|
55
56
|
export interface SkillInvocationContext {
|
|
@@ -63,6 +64,7 @@ export interface SkillManagerOptions {
|
|
|
63
64
|
personalSkillsPath?: string;
|
|
64
65
|
scanTimeout?: number;
|
|
65
66
|
workdir?: string;
|
|
67
|
+
watch?: boolean;
|
|
66
68
|
}
|
|
67
69
|
export interface ParsedSkillFile {
|
|
68
70
|
frontmatter: SkillFrontmatter;
|
|
@@ -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;
|
|
1
|
+
{"version":3,"file":"skills.d.ts","sourceRoot":"","sources":["../../src/types/skills.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,6 +9,10 @@
|
|
|
9
9
|
* - Local configs: {workdir}/.wave/settings.local.json > {workdir}/.wave/settings.json
|
|
10
10
|
* - Project configs override user configs (existing behavior)
|
|
11
11
|
*/
|
|
12
|
+
/**
|
|
13
|
+
* Get the builtin skills directory path
|
|
14
|
+
*/
|
|
15
|
+
export declare function getBuiltinSkillsDir(): string;
|
|
12
16
|
/**
|
|
13
17
|
* Get the user-specific configuration file path (legacy function)
|
|
14
18
|
* @deprecated Use getUserConfigPaths() for better priority support
|
|
@@ -40,6 +44,7 @@ export declare function getProjectConfigPaths(workdir: string): string[];
|
|
|
40
44
|
export declare function getAllConfigPaths(workdir: string): {
|
|
41
45
|
userPaths: string[];
|
|
42
46
|
projectPaths: string[];
|
|
47
|
+
builtinPaths: string[];
|
|
43
48
|
allPaths: string[];
|
|
44
49
|
};
|
|
45
50
|
/**
|
|
@@ -49,6 +54,7 @@ export declare function getAllConfigPaths(workdir: string): {
|
|
|
49
54
|
export declare function getExistingConfigPaths(workdir: string): {
|
|
50
55
|
userPaths: string[];
|
|
51
56
|
projectPaths: string[];
|
|
57
|
+
builtinPaths: string[];
|
|
52
58
|
existingPaths: string[];
|
|
53
59
|
};
|
|
54
60
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"configPaths.d.ts","sourceRoot":"","sources":["../../src/utils/configPaths.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;
|
|
1
|
+
{"version":3,"file":"configPaths.d.ts","sourceRoot":"","sources":["../../src/utils/configPaths.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAUH;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,MAAM,CAW5C;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,IAAI,MAAM,CAE1C;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAE5D;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,IAAI,MAAM,EAAE,CAG7C;AAED;;GAEG;AACH,wBAAgB,aAAa,IAAI,MAAM,CAEtC;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,CAG/D;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG;IAClD,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB,CAWA;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,MAAM,GAAG;IACvD,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,aAAa,EAAE,MAAM,EAAE,CAAC;CACzB,CAcA;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,GAAG,SAAS,CAExE;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,MAAM,GAAG;IACxD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,CAeA;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAGrD;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG;IACrD,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,OAAO,CAAC;IACpB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,cAAc,EAAE;QACd,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,aAAa,CAAC,EAAE,MAAM,CAAC;KACxB,CAAC;CACH,CAcA"}
|
|
@@ -9,9 +9,26 @@
|
|
|
9
9
|
* - Local configs: {workdir}/.wave/settings.local.json > {workdir}/.wave/settings.json
|
|
10
10
|
* - Project configs override user configs (existing behavior)
|
|
11
11
|
*/
|
|
12
|
-
import { join } from "path";
|
|
12
|
+
import { join, dirname } from "path";
|
|
13
13
|
import { homedir } from "os";
|
|
14
14
|
import { existsSync } from "fs";
|
|
15
|
+
import { fileURLToPath } from "url";
|
|
16
|
+
const __filename = fileURLToPath(import.meta.url);
|
|
17
|
+
const __dirname = dirname(__filename);
|
|
18
|
+
/**
|
|
19
|
+
* Get the builtin skills directory path
|
|
20
|
+
*/
|
|
21
|
+
export function getBuiltinSkillsDir() {
|
|
22
|
+
// In development, it's in src/builtin-skills
|
|
23
|
+
// In production (dist), it should be in dist/builtin-skills
|
|
24
|
+
// We'll look for it relative to this file
|
|
25
|
+
const devPath = join(__dirname, "..", "builtin-skills");
|
|
26
|
+
const prodPath = join(__dirname, "builtin-skills");
|
|
27
|
+
if (existsSync(devPath)) {
|
|
28
|
+
return devPath;
|
|
29
|
+
}
|
|
30
|
+
return prodPath;
|
|
31
|
+
}
|
|
15
32
|
/**
|
|
16
33
|
* Get the user-specific configuration file path (legacy function)
|
|
17
34
|
* @deprecated Use getUserConfigPaths() for better priority support
|
|
@@ -55,10 +72,12 @@ export function getProjectConfigPaths(workdir) {
|
|
|
55
72
|
export function getAllConfigPaths(workdir) {
|
|
56
73
|
const userPaths = getUserConfigPaths();
|
|
57
74
|
const projectPaths = getProjectConfigPaths(workdir);
|
|
75
|
+
const builtinPaths = [join(getBuiltinSkillsDir(), "settings", "SKILL.md")];
|
|
58
76
|
return {
|
|
59
77
|
userPaths,
|
|
60
78
|
projectPaths,
|
|
61
|
-
|
|
79
|
+
builtinPaths,
|
|
80
|
+
allPaths: [...userPaths, ...projectPaths, ...builtinPaths],
|
|
62
81
|
};
|
|
63
82
|
}
|
|
64
83
|
/**
|
|
@@ -69,10 +88,12 @@ export function getExistingConfigPaths(workdir) {
|
|
|
69
88
|
const allPaths = getAllConfigPaths(workdir);
|
|
70
89
|
const existingUserPaths = allPaths.userPaths.filter(existsSync);
|
|
71
90
|
const existingProjectPaths = allPaths.projectPaths.filter(existsSync);
|
|
91
|
+
const existingBuiltinPaths = allPaths.builtinPaths.filter(existsSync);
|
|
72
92
|
const allExistingPaths = allPaths.allPaths.filter(existsSync);
|
|
73
93
|
return {
|
|
74
94
|
userPaths: existingUserPaths,
|
|
75
95
|
projectPaths: existingProjectPaths,
|
|
96
|
+
builtinPaths: existingBuiltinPaths,
|
|
76
97
|
existingPaths: allExistingPaths,
|
|
77
98
|
};
|
|
78
99
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"containerSetup.d.ts","sourceRoot":"","sources":["../../src/utils/containerSetup.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAoB3C,OAAO,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAG3E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,KAAK,EACV,cAAc,EACd,KAAK,EACL,IAAI,EACJ,cAAc,EAEf,MAAM,mBAAmB,CAAC;AAI3B,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;CAClC;AAED,wBAAgB,mBAAmB,CACjC,YAAY,EAAE,0BAA0B,GACvC,SAAS,
|
|
1
|
+
{"version":3,"file":"containerSetup.d.ts","sourceRoot":"","sources":["../../src/utils/containerSetup.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAoB3C,OAAO,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAG3E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,KAAK,EACV,cAAc,EACd,KAAK,EACL,IAAI,EACJ,cAAc,EAEf,MAAM,mBAAmB,CAAC;AAI3B,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;CAClC;AAED,wBAAgB,mBAAmB,CACjC,YAAY,EAAE,0BAA0B,GACvC,SAAS,CAoNX"}
|
|
@@ -89,7 +89,10 @@ export function setupAgentContainer(setupOptions) {
|
|
|
89
89
|
container.register("PlanManager", planManager);
|
|
90
90
|
const hookManager = new HookManager(container, workdir);
|
|
91
91
|
container.register("HookManager", hookManager);
|
|
92
|
-
const skillManager = new SkillManager(container, {
|
|
92
|
+
const skillManager = new SkillManager(container, {
|
|
93
|
+
workdir,
|
|
94
|
+
watch: options.watchSkills ?? true,
|
|
95
|
+
});
|
|
93
96
|
container.register("SkillManager", skillManager);
|
|
94
97
|
container.register("ReversionService", new ReversionService(messageManager.getTranscriptPath()));
|
|
95
98
|
const reversionManager = new ReversionManager(container);
|
package/dist/utils/gitUtils.d.ts
CHANGED
|
@@ -16,6 +16,12 @@ export declare function getGitRepoRoot(cwd: string): string;
|
|
|
16
16
|
* @returns Repository common directory path
|
|
17
17
|
*/
|
|
18
18
|
export declare function getGitCommonDir(cwd: string): string;
|
|
19
|
+
/**
|
|
20
|
+
* Get the main repository root directory (the first worktree in the list)
|
|
21
|
+
* @param cwd Working directory
|
|
22
|
+
* @returns Main repository root path
|
|
23
|
+
*/
|
|
24
|
+
export declare function getGitMainRepoRoot(cwd: string): string;
|
|
19
25
|
/**
|
|
20
26
|
* Get the default remote branch (e.g., origin/main)
|
|
21
27
|
* @param cwd Working directory
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gitUtils.d.ts","sourceRoot":"","sources":["../../src/utils/gitUtils.ts"],"names":[],"mappings":"AAIA;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAevD;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAUlD;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAWnD;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CA2D1D;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAW1D;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAYvE"}
|
|
1
|
+
{"version":3,"file":"gitUtils.d.ts","sourceRoot":"","sources":["../../src/utils/gitUtils.ts"],"names":[],"mappings":"AAIA;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAevD;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAUlD;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAWnD;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAetD;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CA2D1D;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAW1D;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAYvE"}
|