wave-agent-sdk 1.0.4 → 1.0.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/agent.d.ts +23 -1
- package/dist/agent.js +34 -4
- package/dist/managers/aiManager.d.ts +36 -0
- package/dist/managers/aiManager.js +240 -8
- package/dist/managers/messageManager.d.ts +1 -3
- package/dist/managers/messageManager.js +19 -9
- package/dist/managers/slashCommandManager.js +28 -0
- package/dist/managers/subagentManager.d.ts +0 -2
- package/dist/services/session.js +2 -9
- package/dist/telemetry/instrumentation.d.ts +1 -1
- package/dist/telemetry/instrumentation.js +57 -28
- package/dist/tools/bashTool.js +16 -6
- package/dist/tools/grepTool.js +11 -3
- package/dist/types/index.d.ts +3 -0
- package/dist/types/messaging.d.ts +2 -0
- package/dist/utils/containerSetup.js +0 -3
- package/dist/utils/messageOperations.d.ts +10 -1
- package/dist/utils/messageOperations.js +19 -1
- package/dist/utils/notificationXml.js +5 -0
- package/dist/utils/ripgrep.d.ts +4 -4
- package/dist/utils/ripgrep.js +4 -27
- package/package.json +20 -8
- package/bin/rg +0 -79
- package/dist/managers/forkedAgentManager.d.ts +0 -50
- package/dist/managers/forkedAgentManager.js +0 -130
- package/scripts/install_ripgrep.js +0 -111
- package/scripts/postinstall.js +0 -38
- package/src/agent.ts +0 -1271
- package/src/constants/subagents.ts +0 -4
- package/src/constants/toolLimits.ts +0 -15
- package/src/constants/tools.ts +0 -24
- package/src/core/plugin.ts +0 -237
- package/src/core/session.ts +0 -9
- package/src/index.ts +0 -38
- package/src/managers/MemoryRuleManager.ts +0 -198
- package/src/managers/aiManager.ts +0 -2429
- package/src/managers/backgroundTaskManager.ts +0 -480
- package/src/managers/bangManager.ts +0 -119
- package/src/managers/cronManager.ts +0 -401
- package/src/managers/foregroundTaskManager.ts +0 -30
- package/src/managers/forkedAgentManager.ts +0 -216
- package/src/managers/hookManager.ts +0 -1089
- package/src/managers/liveConfigManager.ts +0 -445
- package/src/managers/lspManager.ts +0 -470
- package/src/managers/mcpManager.ts +0 -1010
- package/src/managers/messageManager.ts +0 -1180
- package/src/managers/messageQueue.ts +0 -157
- package/src/managers/permissionManager.ts +0 -1140
- package/src/managers/planManager.ts +0 -112
- package/src/managers/pluginManager.ts +0 -330
- package/src/managers/pluginScopeManager.ts +0 -124
- package/src/managers/reversionManager.ts +0 -178
- package/src/managers/skillManager.ts +0 -578
- package/src/managers/slashCommandManager.ts +0 -564
- package/src/managers/subagentManager.ts +0 -915
- package/src/managers/toolManager.ts +0 -489
- package/src/managers/workflowManager.ts +0 -493
- package/src/prompts/autoMemory.ts +0 -33
- package/src/prompts/autoMemoryExtraction.ts +0 -146
- package/src/prompts/index.ts +0 -506
- package/src/prompts/planModeReminders.ts +0 -126
- package/src/services/GitService.ts +0 -131
- package/src/services/MarketplaceService.ts +0 -1052
- package/src/services/MemoryRuleService.ts +0 -71
- package/src/services/aiService.ts +0 -919
- package/src/services/authService.ts +0 -565
- package/src/services/autoMemoryService.ts +0 -280
- package/src/services/configurationService.ts +0 -1520
- package/src/services/fileWatcher.ts +0 -319
- package/src/services/hook.ts +0 -348
- package/src/services/initializationService.ts +0 -357
- package/src/services/interactionService.ts +0 -229
- package/src/services/jsonlHandler.ts +0 -295
- package/src/services/memory.ts +0 -234
- package/src/services/pluginLoader.ts +0 -252
- package/src/services/remoteSettingsService.ts +0 -366
- package/src/services/reversionService.ts +0 -122
- package/src/services/session.ts +0 -922
- package/src/services/taskManager.ts +0 -321
- package/src/telemetry/events.ts +0 -65
- package/src/telemetry/instrumentation.ts +0 -499
- package/src/telemetry/sessionTracing.ts +0 -348
- package/src/tools/agentTool.ts +0 -322
- package/src/tools/askUserQuestion.ts +0 -160
- package/src/tools/bashTool.ts +0 -621
- package/src/tools/buildTool.ts +0 -61
- package/src/tools/cronCreateTool.ts +0 -161
- package/src/tools/cronDeleteTool.ts +0 -51
- package/src/tools/cronListTool.ts +0 -47
- package/src/tools/editTool.ts +0 -313
- package/src/tools/enterPlanMode.ts +0 -124
- package/src/tools/enterWorktreeTool.ts +0 -190
- package/src/tools/exitPlanMode.ts +0 -139
- package/src/tools/exitWorktreeTool.ts +0 -236
- package/src/tools/globTool.ts +0 -167
- package/src/tools/grepTool.ts +0 -399
- package/src/tools/lspTool.ts +0 -883
- package/src/tools/readTool.ts +0 -426
- package/src/tools/skillTool.ts +0 -248
- package/src/tools/taskManagementTools.ts +0 -574
- package/src/tools/taskStopTool.ts +0 -78
- package/src/tools/types.ts +0 -137
- package/src/tools/webFetchTool.ts +0 -373
- package/src/tools/workflowTool.ts +0 -205
- package/src/tools/writeTool.ts +0 -267
- package/src/types/agent.ts +0 -128
- package/src/types/auth.ts +0 -19
- package/src/types/commands.ts +0 -30
- package/src/types/config.ts +0 -43
- package/src/types/configuration.ts +0 -168
- package/src/types/core.ts +0 -105
- package/src/types/cron.ts +0 -13
- package/src/types/environment.ts +0 -106
- package/src/types/fileSearch.ts +0 -4
- package/src/types/history.ts +0 -7
- package/src/types/hooks.ts +0 -256
- package/src/types/index.ts +0 -41
- package/src/types/lsp.ts +0 -98
- package/src/types/marketplace.ts +0 -71
- package/src/types/mcp.ts +0 -43
- package/src/types/memoryRule.ts +0 -31
- package/src/types/messaging.ts +0 -114
- package/src/types/permissions.ts +0 -80
- package/src/types/plugins.ts +0 -39
- package/src/types/processes.ts +0 -99
- package/src/types/reversion.ts +0 -29
- package/src/types/session.ts +0 -12
- package/src/types/skills.ts +0 -108
- package/src/types/tasks.ts +0 -13
- package/src/types/telemetry.ts +0 -98
- package/src/types/tools.ts +0 -44
- package/src/types/workflow.ts +0 -6
- package/src/utils/abortUtils.ts +0 -118
- package/src/utils/atomicWrite.ts +0 -61
- package/src/utils/bashParser.ts +0 -899
- package/src/utils/cacheControlUtils.ts +0 -426
- package/src/utils/commandArgumentParser.ts +0 -161
- package/src/utils/commandPathResolver.ts +0 -88
- package/src/utils/configPaths.ts +0 -220
- package/src/utils/configValidator.ts +0 -100
- package/src/utils/constants.ts +0 -39
- package/src/utils/container.ts +0 -92
- package/src/utils/containerSetup.ts +0 -371
- package/src/utils/convertMessagesForAPI.ts +0 -326
- package/src/utils/cronTasks.ts +0 -128
- package/src/utils/cronTasksLock.ts +0 -182
- package/src/utils/cronToHuman.ts +0 -99
- package/src/utils/customCommands.ts +0 -95
- package/src/utils/editUtils.ts +0 -20
- package/src/utils/fileFormat.ts +0 -40
- package/src/utils/fileSearch.ts +0 -151
- package/src/utils/fileUtils.ts +0 -223
- package/src/utils/gitUtils.ts +0 -315
- package/src/utils/globalLogger.ts +0 -128
- package/src/utils/groupMessagesByApiRound.ts +0 -121
- package/src/utils/hookMatcher.ts +0 -176
- package/src/utils/markdownParser.ts +0 -317
- package/src/utils/mcpUtils.ts +0 -138
- package/src/utils/messageOperations.ts +0 -641
- package/src/utils/modelCapabilities.ts +0 -30
- package/src/utils/nameGenerator.ts +0 -99
- package/src/utils/notificationXml.ts +0 -57
- package/src/utils/openaiClient.ts +0 -251
- package/src/utils/parseCronExpression.ts +0 -78
- package/src/utils/path.ts +0 -72
- package/src/utils/pathEncoder.ts +0 -400
- package/src/utils/pathSafety.ts +0 -40
- package/src/utils/promptHistory.ts +0 -168
- package/src/utils/ripgrep.ts +0 -35
- package/src/utils/shellResolver.ts +0 -190
- package/src/utils/skillParser.ts +0 -246
- package/src/utils/stringUtils.ts +0 -156
- package/src/utils/subagentParser.ts +0 -279
- package/src/utils/taskReminder.ts +0 -96
- package/src/utils/tokenCalculation.ts +0 -43
- package/src/utils/tokenEstimate.ts +0 -34
- package/src/utils/toolResultStorage.ts +0 -117
- package/src/utils/worktreeSession.ts +0 -26
- package/src/utils/worktreeUtils.ts +0 -786
- package/src/workflow/budgetTracker.ts +0 -34
- package/src/workflow/concurrencyLimiter.ts +0 -47
- package/src/workflow/journal.ts +0 -95
- package/src/workflow/progressReporter.ts +0 -141
- package/src/workflow/runState.ts +0 -65
- package/src/workflow/scriptRuntime.ts +0 -274
- package/src/workflow/structuredOutput.ts +0 -123
- package/src/workflow/types.ts +0 -101
- package/src/workflow/workflowApis.ts +0 -410
- package/vendor/ripgrep/linux-aarch64/rg +0 -0
- package/vendor/ripgrep/linux-x86_64/rg +0 -0
- package/vendor/ripgrep/macos-aarch64/rg +0 -0
- package/vendor/ripgrep/macos-x86_64/rg +0 -0
- package/vendor/ripgrep/windows-aarch64/rg.exe +0 -0
- package/vendor/ripgrep/windows-x86_64/rg.exe +0 -0
|
@@ -1,122 +0,0 @@
|
|
|
1
|
-
import { readFile, writeFile, mkdir, rm, readdir, stat } from "fs/promises";
|
|
2
|
-
import { join, dirname } from "path";
|
|
3
|
-
import { homedir } from "os";
|
|
4
|
-
import { createHash } from "crypto";
|
|
5
|
-
import { FileSnapshot } from "../types/reversion.js";
|
|
6
|
-
|
|
7
|
-
export class ReversionService {
|
|
8
|
-
private historyBaseDir: string;
|
|
9
|
-
private rootSessionId: string;
|
|
10
|
-
|
|
11
|
-
constructor(rootSessionId: string) {
|
|
12
|
-
this.rootSessionId = rootSessionId || "default";
|
|
13
|
-
this.historyBaseDir = join(
|
|
14
|
-
homedir(),
|
|
15
|
-
".wave",
|
|
16
|
-
"file-history",
|
|
17
|
-
this.rootSessionId,
|
|
18
|
-
);
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
private getFilePathHash(filePath: string): string {
|
|
22
|
-
return createHash("sha256").update(filePath).digest("hex").slice(0, 16);
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
private async getNextVersion(filePath: string): Promise<number> {
|
|
26
|
-
const hash = this.getFilePathHash(filePath);
|
|
27
|
-
const prefix = `${hash}@v`;
|
|
28
|
-
try {
|
|
29
|
-
const files = await readdir(this.historyBaseDir);
|
|
30
|
-
let maxVersion = 0;
|
|
31
|
-
for (const file of files) {
|
|
32
|
-
if (file.startsWith(prefix)) {
|
|
33
|
-
const v = parseInt(file.slice(prefix.length), 10);
|
|
34
|
-
if (!isNaN(v) && v > maxVersion) {
|
|
35
|
-
maxVersion = v;
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
return maxVersion + 1;
|
|
40
|
-
} catch {
|
|
41
|
-
return 1;
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
/**
|
|
46
|
-
* Saves a single snapshot to the file history directory.
|
|
47
|
-
* Returns the snapshot path.
|
|
48
|
-
*/
|
|
49
|
-
async saveSnapshot(snapshot: FileSnapshot): Promise<string> {
|
|
50
|
-
const fileHash = this.getFilePathHash(snapshot.filePath);
|
|
51
|
-
await this.ensureDirectory(this.historyBaseDir);
|
|
52
|
-
|
|
53
|
-
const version = await this.getNextVersion(snapshot.filePath);
|
|
54
|
-
const snapshotPath = join(this.historyBaseDir, `${fileHash}@v${version}`);
|
|
55
|
-
|
|
56
|
-
const snapshotWithContent = snapshot as FileSnapshot & {
|
|
57
|
-
content: string | null;
|
|
58
|
-
};
|
|
59
|
-
if (snapshotWithContent.content !== null) {
|
|
60
|
-
await writeFile(snapshotPath, snapshotWithContent.content, "utf-8");
|
|
61
|
-
} else {
|
|
62
|
-
// For 'create' operation, the file didn't exist, so we don't write a content file.
|
|
63
|
-
// The absence of the file at snapshotPath will indicate it should be deleted on reversion.
|
|
64
|
-
return ""; // Return empty string to indicate no snapshot file
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
return snapshotPath;
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
/**
|
|
71
|
-
* Reads snapshot content from the given path.
|
|
72
|
-
*/
|
|
73
|
-
async readSnapshotContent(snapshotPath: string): Promise<string | null> {
|
|
74
|
-
try {
|
|
75
|
-
return await readFile(snapshotPath, "utf-8");
|
|
76
|
-
} catch (error) {
|
|
77
|
-
if ((error as NodeJS.ErrnoException).code === "ENOENT") {
|
|
78
|
-
return null;
|
|
79
|
-
}
|
|
80
|
-
throw error;
|
|
81
|
-
}
|
|
82
|
-
}
|
|
83
|
-
|
|
84
|
-
/**
|
|
85
|
-
* Deletes all snapshots for this session.
|
|
86
|
-
*/
|
|
87
|
-
async deleteSessionHistory(): Promise<void> {
|
|
88
|
-
await rm(this.historyBaseDir, { recursive: true, force: true });
|
|
89
|
-
}
|
|
90
|
-
|
|
91
|
-
/**
|
|
92
|
-
* Cleans up session directories older than the given number of days.
|
|
93
|
-
* Skips the current session.
|
|
94
|
-
*/
|
|
95
|
-
async cleanupOldSessions(days: number = 30): Promise<void> {
|
|
96
|
-
const threshold = Date.now() - days * 24 * 60 * 60 * 1000;
|
|
97
|
-
const parentDir = dirname(this.historyBaseDir);
|
|
98
|
-
try {
|
|
99
|
-
const entries = await readdir(parentDir);
|
|
100
|
-
await Promise.all(
|
|
101
|
-
entries.map(async (entry) => {
|
|
102
|
-
if (entry === this.rootSessionId) return;
|
|
103
|
-
const dirPath = join(parentDir, entry);
|
|
104
|
-
try {
|
|
105
|
-
const stats = await stat(dirPath);
|
|
106
|
-
if (stats.isDirectory() && stats.mtimeMs < threshold) {
|
|
107
|
-
await rm(dirPath, { recursive: true, force: true });
|
|
108
|
-
}
|
|
109
|
-
} catch {
|
|
110
|
-
// ENOENT — concurrently deleted, skip
|
|
111
|
-
}
|
|
112
|
-
}),
|
|
113
|
-
);
|
|
114
|
-
} catch {
|
|
115
|
-
// parent dir doesn't exist — nothing to clean
|
|
116
|
-
}
|
|
117
|
-
}
|
|
118
|
-
|
|
119
|
-
private async ensureDirectory(dirPath: string): Promise<void> {
|
|
120
|
-
await mkdir(dirPath, { recursive: true });
|
|
121
|
-
}
|
|
122
|
-
}
|