wave-agent-sdk 0.9.2 → 0.9.4
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/core/plugin.d.ts +4 -0
- package/dist/core/plugin.d.ts.map +1 -1
- package/dist/core/plugin.js +6 -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/liveConfigManager.d.ts +1 -5
- package/dist/managers/liveConfigManager.d.ts.map +1 -1
- package/dist/managers/liveConfigManager.js +12 -126
- package/dist/managers/permissionManager.d.ts.map +1 -1
- package/dist/managers/permissionManager.js +27 -2
- package/dist/managers/pluginManager.d.ts.map +1 -1
- package/dist/managers/pluginManager.js +4 -0
- package/dist/managers/skillManager.d.ts.map +1 -1
- package/dist/managers/skillManager.js +3 -1
- package/dist/managers/slashCommandManager.d.ts.map +1 -1
- package/dist/managers/slashCommandManager.js +0 -8
- package/dist/services/GitService.d.ts.map +1 -1
- package/dist/services/GitService.js +6 -0
- package/dist/services/MarketplaceService.d.ts +11 -1
- package/dist/services/MarketplaceService.d.ts.map +1 -1
- package/dist/services/MarketplaceService.js +68 -3
- package/dist/services/configurationService.d.ts +1 -20
- package/dist/services/configurationService.d.ts.map +1 -1
- package/dist/services/configurationService.js +14 -93
- package/dist/services/pluginLoader.d.ts.map +1 -1
- package/dist/services/pluginLoader.js +1 -6
- package/dist/tools/exitPlanMode.d.ts.map +1 -1
- package/dist/tools/exitPlanMode.js +7 -0
- package/dist/types/commands.d.ts +0 -1
- package/dist/types/commands.d.ts.map +1 -1
- package/dist/types/history.d.ts +1 -0
- package/dist/types/history.d.ts.map +1 -1
- package/dist/types/marketplace.d.ts +1 -0
- package/dist/types/marketplace.d.ts.map +1 -1
- package/dist/types/permissions.d.ts +1 -0
- package/dist/types/permissions.d.ts.map +1 -1
- package/dist/types/permissions.js +1 -0
- package/dist/utils/bashParser.d.ts.map +1 -1
- package/dist/utils/bashParser.js +7 -0
- package/dist/utils/configPaths.d.ts +5 -5
- package/dist/utils/configPaths.js +6 -6
- package/dist/utils/promptHistory.d.ts +9 -3
- package/dist/utils/promptHistory.d.ts.map +1 -1
- package/dist/utils/promptHistory.js +16 -7
- package/package.json +1 -1
- package/src/core/plugin.ts +7 -0
- package/src/core/session.ts +1 -0
- package/src/managers/liveConfigManager.ts +20 -163
- package/src/managers/permissionManager.ts +32 -2
- package/src/managers/pluginManager.ts +6 -0
- package/src/managers/skillManager.ts +4 -1
- package/src/managers/slashCommandManager.ts +0 -16
- package/src/services/GitService.ts +10 -0
- package/src/services/MarketplaceService.ts +95 -3
- package/src/services/configurationService.ts +14 -116
- package/src/services/pluginLoader.ts +1 -7
- package/src/tools/exitPlanMode.ts +7 -0
- package/src/types/commands.ts +0 -3
- package/src/types/history.ts +1 -0
- package/src/types/marketplace.ts +1 -0
- package/src/types/permissions.ts +2 -0
- package/src/utils/bashParser.ts +7 -0
- package/src/utils/configPaths.ts +6 -6
- package/src/utils/promptHistory.ts +27 -6
package/dist/core/plugin.d.ts
CHANGED
|
@@ -35,6 +35,10 @@ export declare class PluginCore {
|
|
|
35
35
|
* Updates an installed plugin to the latest version from its marketplace
|
|
36
36
|
*/
|
|
37
37
|
updatePlugin(pluginId: string): Promise<InstalledPlugin>;
|
|
38
|
+
/**
|
|
39
|
+
* Toggles auto-update for a marketplace
|
|
40
|
+
*/
|
|
41
|
+
toggleAutoUpdate(name: string, enabled: boolean): Promise<void>;
|
|
38
42
|
/**
|
|
39
43
|
* Lists all plugins from all registered marketplaces with their installation and enabled status
|
|
40
44
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../../src/core/plugin.ts"],"names":[],"mappings":"AAKA,OAAO,EACL,KAAK,EACL,eAAe,EACf,gBAAgB,EAChB,mBAAmB,EACnB,wBAAwB,EACxB,uBAAuB,EACxB,MAAM,mBAAmB,CAAC;AAE3B;;;;;GAKG;AACH,qBAAa,UAAU;IACrB,OAAO,CAAC,SAAS,CAAY;IAC7B,OAAO,CAAC,aAAa,CAAgB;IACrC,OAAO,CAAC,kBAAkB,CAAqB;IAC/C,OAAO,CAAC,kBAAkB,CAAqB;IAC/C,OAAO,CAAC,oBAAoB,CAAuB;IACnD,OAAO,CAAC,OAAO,CAAS;gBAEZ,OAAO,GAAE,MAAsB;IAoB3C;;OAEG;IACG,aAAa,CACjB,QAAQ,EAAE,MAAM,EAChB,KAAK,CAAC,EAAE,KAAK,GACZ,OAAO,CAAC,eAAe,CAAC;IAS3B;;OAEG;IACG,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAKtD;;;OAGG;IACG,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;IAMnE;;;OAGG;IACG,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;IAMpE;;OAEG;IACG,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC;IAI9D;;OAEG;IACG,WAAW,IAAI,OAAO,CAAC;QAC3B,OAAO,EAAE,uBAAuB,EAAE,CAAC;QACnC,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KACxC,CAAC;IA0CF;;OAEG;IACG,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAI9D;;OAEG;IACG,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIpD;;OAEG;IACG,iBAAiB,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIrD;;OAEG;IACG,gBAAgB,IAAI,OAAO,CAAC,gBAAgB,EAAE,CAAC;IAIrD;;OAEG;IACG,mBAAmB,IAAI,OAAO,CAAC,wBAAwB,CAAC;IAI9D;;OAEG;IACH,uBAAuB,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAIlD;;OAEG;IACG,uBAAuB,CAC3B,eAAe,EAAE,MAAM,GACtB,OAAO,CAAC,mBAAmB,CAAC;IAM/B;;OAEG;IACH,kBAAkB,CAAC,WAAW,EAAE,gBAAgB,GAAG,MAAM;IAIzD;;OAEG;IACH,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,KAAK,GAAG,IAAI;IAI/C;;OAEG;IACG,mBAAmB,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAOzE"}
|
|
1
|
+
{"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../../src/core/plugin.ts"],"names":[],"mappings":"AAKA,OAAO,EACL,KAAK,EACL,eAAe,EACf,gBAAgB,EAChB,mBAAmB,EACnB,wBAAwB,EACxB,uBAAuB,EACxB,MAAM,mBAAmB,CAAC;AAE3B;;;;;GAKG;AACH,qBAAa,UAAU;IACrB,OAAO,CAAC,SAAS,CAAY;IAC7B,OAAO,CAAC,aAAa,CAAgB;IACrC,OAAO,CAAC,kBAAkB,CAAqB;IAC/C,OAAO,CAAC,kBAAkB,CAAqB;IAC/C,OAAO,CAAC,oBAAoB,CAAuB;IACnD,OAAO,CAAC,OAAO,CAAS;gBAEZ,OAAO,GAAE,MAAsB;IAoB3C;;OAEG;IACG,aAAa,CACjB,QAAQ,EAAE,MAAM,EAChB,KAAK,CAAC,EAAE,KAAK,GACZ,OAAO,CAAC,eAAe,CAAC;IAS3B;;OAEG;IACG,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAKtD;;;OAGG;IACG,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;IAMnE;;;OAGG;IACG,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;IAMpE;;OAEG;IACG,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC;IAI9D;;OAEG;IACG,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAIrE;;OAEG;IACG,WAAW,IAAI,OAAO,CAAC;QAC3B,OAAO,EAAE,uBAAuB,EAAE,CAAC;QACnC,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KACxC,CAAC;IA0CF;;OAEG;IACG,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAI9D;;OAEG;IACG,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIpD;;OAEG;IACG,iBAAiB,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIrD;;OAEG;IACG,gBAAgB,IAAI,OAAO,CAAC,gBAAgB,EAAE,CAAC;IAIrD;;OAEG;IACG,mBAAmB,IAAI,OAAO,CAAC,wBAAwB,CAAC;IAI9D;;OAEG;IACH,uBAAuB,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAIlD;;OAEG;IACG,uBAAuB,CAC3B,eAAe,EAAE,MAAM,GACtB,OAAO,CAAC,mBAAmB,CAAC;IAM/B;;OAEG;IACH,kBAAkB,CAAC,WAAW,EAAE,gBAAgB,GAAG,MAAM;IAIzD;;OAEG;IACH,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,KAAK,GAAG,IAAI;IAI/C;;OAEG;IACG,mBAAmB,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAOzE"}
|
package/dist/core/plugin.js
CHANGED
|
@@ -67,6 +67,12 @@ export class PluginCore {
|
|
|
67
67
|
async updatePlugin(pluginId) {
|
|
68
68
|
return await this.marketplaceService.updatePlugin(pluginId);
|
|
69
69
|
}
|
|
70
|
+
/**
|
|
71
|
+
* Toggles auto-update for a marketplace
|
|
72
|
+
*/
|
|
73
|
+
async toggleAutoUpdate(name, enabled) {
|
|
74
|
+
await this.marketplaceService.toggleAutoUpdate(name, enabled);
|
|
75
|
+
}
|
|
70
76
|
/**
|
|
71
77
|
* Lists all plugins from all registered marketplaces with their installation and enabled status
|
|
72
78
|
*/
|
package/dist/core/session.d.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export { listSessions, truncateContent, loadSessionFromJsonl, } from "../services/session.js";
|
|
1
|
+
export { listSessions, truncateContent, loadSessionFromJsonl, loadFullMessageThread, } from "../services/session.js";
|
|
2
2
|
export type { SessionMetadata, SessionData } from "../services/session.js";
|
|
3
3
|
//# sourceMappingURL=session.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../src/core/session.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EACZ,eAAe,EACf,oBAAoB,
|
|
1
|
+
{"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../src/core/session.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EACZ,eAAe,EACf,oBAAoB,EACpB,qBAAqB,GACtB,MAAM,wBAAwB,CAAC;AAChC,YAAY,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC"}
|
package/dist/core/session.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export { listSessions, truncateContent, loadSessionFromJsonl, } from "../services/session.js";
|
|
1
|
+
export { listSessions, truncateContent, loadSessionFromJsonl, loadFullMessageThread, } from "../services/session.js";
|
|
@@ -29,7 +29,7 @@ export declare class LiveConfigManager {
|
|
|
29
29
|
/**
|
|
30
30
|
* Initialize configuration watching
|
|
31
31
|
* Maps to FR-004: System MUST watch settings.json files
|
|
32
|
-
* Supports watching multiple file paths (e.g., settings.local.json and settings.json)
|
|
32
|
+
* Supports watching multiple file paths (e.g., local settings.local.json and settings.json)
|
|
33
33
|
*/
|
|
34
34
|
private initializeWatching;
|
|
35
35
|
/**
|
|
@@ -74,10 +74,6 @@ export declare class LiveConfigManager {
|
|
|
74
74
|
};
|
|
75
75
|
private setupFileWatcherEvents;
|
|
76
76
|
private handleFileChange;
|
|
77
|
-
/**
|
|
78
|
-
* Validate configuration structure and content
|
|
79
|
-
*/
|
|
80
|
-
private validateConfiguration;
|
|
81
77
|
private detectChanges;
|
|
82
78
|
/**
|
|
83
79
|
* Get configuration file paths for user and project settings
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"liveConfigManager.d.ts","sourceRoot":"","sources":["../../src/managers/liveConfigManager.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;
|
|
1
|
+
{"version":3,"file":"liveConfigManager.d.ts","sourceRoot":"","sources":["../../src/managers/liveConfigManager.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAaH,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAElD,OAAO,KAAK,EAEV,iBAAiB,EAClB,MAAM,2BAA2B,CAAC;AAInC,MAAM,WAAW,wBAAwB;IACvC,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,qBAAa,iBAAiB;IAgB1B,OAAO,CAAC,SAAS;IAfnB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,aAAa,CAAkB;IAGvC,OAAO,CAAC,oBAAoB,CAAkC;IAC9D,OAAO,CAAC,sBAAsB,CAAkC;IAGhE,OAAO,CAAC,WAAW,CAAqB;IACxC,OAAO,CAAC,eAAe,CAAC,CAAW;IACnC,OAAO,CAAC,kBAAkB,CAAC,CAAW;IACtC,OAAO,CAAC,UAAU,CAAkB;IACpC,OAAO,CAAC,gBAAgB,CAAkB;gBAGhC,SAAS,EAAE,SAAS,EAC5B,OAAO,EAAE,wBAAwB;IAOnC,OAAO,KAAK,WAAW,GAEtB;IAED,OAAO,KAAK,iBAAiB,GAE5B;IAED,OAAO,KAAK,oBAAoB,GAE/B;IAED;;;;OAIG;YACW,kBAAkB;IA0ChC;;OAEG;IACH,uBAAuB,IAAI,iBAAiB,GAAG,IAAI;IAInD;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAmBjC;;OAEG;IACG,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAsB/B;;;OAGG;YACW,mBAAmB;IAuIjC;;OAEG;IACG,MAAM,IAAI,OAAO,CAAC,iBAAiB,CAAC;IAI1C;;OAEG;IACH,gBAAgB,IAAI,OAAO;IAI3B;;OAEG;IACH,gBAAgB;;;;;;;;;;;;IAgBhB,OAAO,CAAC,sBAAsB;YAMhB,gBAAgB;IAmC9B,OAAO,CAAC,aAAa;IAuDrB;;;OAGG;IACH,OAAO,CAAC,qBAAqB;CAU9B"}
|
|
@@ -8,8 +8,7 @@
|
|
|
8
8
|
*/
|
|
9
9
|
import { existsSync } from "fs";
|
|
10
10
|
import { FileWatcherService, } from "../services/fileWatcher.js";
|
|
11
|
-
import {
|
|
12
|
-
import { isValidHookEvent, isValidHookEventConfig } from "../types/hooks.js";
|
|
11
|
+
import { isValidHookEvent } from "../types/hooks.js";
|
|
13
12
|
import { ensureGlobalGitIgnore } from "../utils/fileUtils.js";
|
|
14
13
|
import { logger } from "../utils/globalLogger.js";
|
|
15
14
|
export class LiveConfigManager {
|
|
@@ -37,7 +36,7 @@ export class LiveConfigManager {
|
|
|
37
36
|
/**
|
|
38
37
|
* Initialize configuration watching
|
|
39
38
|
* Maps to FR-004: System MUST watch settings.json files
|
|
40
|
-
* Supports watching multiple file paths (e.g., settings.local.json and settings.json)
|
|
39
|
+
* Supports watching multiple file paths (e.g., local settings.local.json and settings.json)
|
|
41
40
|
*/
|
|
42
41
|
async initializeWatching(userPaths, projectPaths) {
|
|
43
42
|
try {
|
|
@@ -51,7 +50,7 @@ export class LiveConfigManager {
|
|
|
51
50
|
await this.fileWatcher.watchFile(userPath, (event) => this.handleFileChange(event, "user"));
|
|
52
51
|
}
|
|
53
52
|
}
|
|
54
|
-
// Start watching
|
|
53
|
+
// Start watching local configs that exist
|
|
55
54
|
if (projectPaths) {
|
|
56
55
|
for (const projectPath of projectPaths) {
|
|
57
56
|
if (existsSync(projectPath)) {
|
|
@@ -160,32 +159,6 @@ export class LiveConfigManager {
|
|
|
160
159
|
if (loadResult.warnings && loadResult.warnings.length > 0) {
|
|
161
160
|
logger?.warn(`Live Config: Configuration warnings: ${loadResult.warnings.join("; ")}`);
|
|
162
161
|
}
|
|
163
|
-
// Validate new configuration if it exists
|
|
164
|
-
if (newConfig) {
|
|
165
|
-
const validation = this.validateConfiguration(newConfig);
|
|
166
|
-
if (!validation.valid) {
|
|
167
|
-
const errorMessage = `Configuration validation failed: ${validation.errors.join(", ")}`;
|
|
168
|
-
logger?.error(`Live Config: ${errorMessage}`);
|
|
169
|
-
// Use previous valid configuration for error recovery
|
|
170
|
-
if (this.lastValidConfiguration) {
|
|
171
|
-
this.currentConfiguration = this.lastValidConfiguration;
|
|
172
|
-
// Apply environment variables to configuration service if configured
|
|
173
|
-
if (this.lastValidConfiguration.env) {
|
|
174
|
-
this.configurationService.setEnvironmentVars(this.lastValidConfiguration.env);
|
|
175
|
-
}
|
|
176
|
-
// Update hook manager if available
|
|
177
|
-
if (this.hookManager) {
|
|
178
|
-
this.hookManager.loadConfigurationFromWaveConfig(this.lastValidConfiguration);
|
|
179
|
-
}
|
|
180
|
-
return this.currentConfiguration;
|
|
181
|
-
}
|
|
182
|
-
else {
|
|
183
|
-
logger?.warn("Live Config: No previous valid configuration available, using empty config");
|
|
184
|
-
this.currentConfiguration = {};
|
|
185
|
-
return this.currentConfiguration;
|
|
186
|
-
}
|
|
187
|
-
}
|
|
188
|
-
}
|
|
189
162
|
// Detect changes between old and new configuration
|
|
190
163
|
this.detectChanges(this.currentConfiguration, newConfig);
|
|
191
164
|
// Update current configuration
|
|
@@ -202,18 +175,10 @@ export class LiveConfigManager {
|
|
|
202
175
|
}
|
|
203
176
|
// Update permission manager if available
|
|
204
177
|
if (this.permissionManager) {
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
this.permissionManager.updateAllowedRules(this.currentConfiguration.permissions.allow);
|
|
210
|
-
}
|
|
211
|
-
if (this.currentConfiguration.permissions?.deny) {
|
|
212
|
-
this.permissionManager.updateDeniedRules(this.currentConfiguration.permissions.deny);
|
|
213
|
-
}
|
|
214
|
-
if (this.currentConfiguration.permissions?.additionalDirectories) {
|
|
215
|
-
this.permissionManager.updateAdditionalDirectories(this.currentConfiguration.permissions.additionalDirectories);
|
|
216
|
-
}
|
|
178
|
+
this.permissionManager.updateConfiguredDefaultMode(this.currentConfiguration.permissions?.defaultMode);
|
|
179
|
+
this.permissionManager.updateAllowedRules(this.currentConfiguration.permissions?.allow || []);
|
|
180
|
+
this.permissionManager.updateDeniedRules(this.currentConfiguration.permissions?.deny || []);
|
|
181
|
+
this.permissionManager.updateAdditionalDirectories(this.currentConfiguration.permissions?.additionalDirectories || []);
|
|
217
182
|
}
|
|
218
183
|
return this.currentConfiguration;
|
|
219
184
|
}
|
|
@@ -302,87 +267,6 @@ export class LiveConfigManager {
|
|
|
302
267
|
logger?.error(`Live Config: Error handling file change for ${source} config: ${error.message}`);
|
|
303
268
|
}
|
|
304
269
|
}
|
|
305
|
-
/**
|
|
306
|
-
* Validate configuration structure and content
|
|
307
|
-
*/
|
|
308
|
-
validateConfiguration(config) {
|
|
309
|
-
const errors = [];
|
|
310
|
-
if (!config || typeof config !== "object") {
|
|
311
|
-
return { valid: false, errors: ["Configuration must be an object"] };
|
|
312
|
-
}
|
|
313
|
-
// Validate permissions if present
|
|
314
|
-
if (config.permissions) {
|
|
315
|
-
if (typeof config.permissions !== "object") {
|
|
316
|
-
errors.push("permissions property must be an object");
|
|
317
|
-
}
|
|
318
|
-
else {
|
|
319
|
-
// Validate defaultMode if present
|
|
320
|
-
if (config.permissions.defaultMode !== undefined) {
|
|
321
|
-
const validModes = [
|
|
322
|
-
"default",
|
|
323
|
-
"bypassPermissions",
|
|
324
|
-
"acceptEdits",
|
|
325
|
-
"plan",
|
|
326
|
-
];
|
|
327
|
-
if (!validModes.includes(config.permissions.defaultMode)) {
|
|
328
|
-
errors.push(`Invalid defaultMode: "${config.permissions.defaultMode}". Must be one of: ${validModes.join(", ")}`);
|
|
329
|
-
}
|
|
330
|
-
}
|
|
331
|
-
// Validate allow if present
|
|
332
|
-
if (config.permissions.allow) {
|
|
333
|
-
if (!Array.isArray(config.permissions.allow)) {
|
|
334
|
-
errors.push("permissions.allow must be an array");
|
|
335
|
-
}
|
|
336
|
-
}
|
|
337
|
-
}
|
|
338
|
-
}
|
|
339
|
-
// Validate hooks if present
|
|
340
|
-
if (config.hooks) {
|
|
341
|
-
if (typeof config.hooks !== "object") {
|
|
342
|
-
errors.push("hooks property must be an object");
|
|
343
|
-
}
|
|
344
|
-
else {
|
|
345
|
-
// Validate each hook event
|
|
346
|
-
for (const [eventName, eventConfigs] of Object.entries(config.hooks)) {
|
|
347
|
-
// Validate event name
|
|
348
|
-
if (!isValidHookEvent(eventName)) {
|
|
349
|
-
errors.push(`Invalid hook event: ${eventName}`);
|
|
350
|
-
continue;
|
|
351
|
-
}
|
|
352
|
-
// Validate event configurations
|
|
353
|
-
if (!Array.isArray(eventConfigs)) {
|
|
354
|
-
errors.push(`Hook event ${eventName} must be an array of configurations`);
|
|
355
|
-
continue;
|
|
356
|
-
}
|
|
357
|
-
eventConfigs.forEach((eventConfig, index) => {
|
|
358
|
-
if (!isValidHookEventConfig(eventConfig)) {
|
|
359
|
-
errors.push(`Invalid hook event configuration at ${eventName}[${index}]`);
|
|
360
|
-
}
|
|
361
|
-
});
|
|
362
|
-
}
|
|
363
|
-
}
|
|
364
|
-
}
|
|
365
|
-
// Validate environment variables if present
|
|
366
|
-
if (config.env) {
|
|
367
|
-
if (typeof config.env !== "object" || Array.isArray(config.env)) {
|
|
368
|
-
errors.push("env property must be an object");
|
|
369
|
-
}
|
|
370
|
-
else {
|
|
371
|
-
for (const [key, value] of Object.entries(config.env)) {
|
|
372
|
-
if (typeof key !== "string" || key.trim() === "") {
|
|
373
|
-
errors.push(`Invalid environment variable key: ${key}`);
|
|
374
|
-
}
|
|
375
|
-
if (typeof value !== "string") {
|
|
376
|
-
errors.push(`Environment variable ${key} must have a string value`);
|
|
377
|
-
}
|
|
378
|
-
}
|
|
379
|
-
}
|
|
380
|
-
}
|
|
381
|
-
return {
|
|
382
|
-
valid: errors.length === 0,
|
|
383
|
-
errors,
|
|
384
|
-
};
|
|
385
|
-
}
|
|
386
270
|
detectChanges(oldConfig, newConfig) {
|
|
387
271
|
const added = [];
|
|
388
272
|
const modified = [];
|
|
@@ -428,8 +312,10 @@ export class LiveConfigManager {
|
|
|
428
312
|
* Returns paths in priority order (local.json first, then .json)
|
|
429
313
|
*/
|
|
430
314
|
getConfigurationPaths() {
|
|
431
|
-
const
|
|
432
|
-
|
|
433
|
-
|
|
315
|
+
const paths = this.configurationService.getConfigurationPaths(this.workdir);
|
|
316
|
+
return {
|
|
317
|
+
userPaths: paths.userPaths,
|
|
318
|
+
projectPaths: paths.projectPaths,
|
|
319
|
+
};
|
|
434
320
|
}
|
|
435
321
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"permissionManager.d.ts","sourceRoot":"","sources":["../../src/managers/permissionManager.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,OAAO,KAAK,EACV,kBAAkB,EAClB,qBAAqB,EACrB,kBAAkB,EAClB,cAAc,EACf,MAAM,yBAAyB,CAAC;AAEjC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAgBhD,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"permissionManager.d.ts","sourceRoot":"","sources":["../../src/managers/permissionManager.ts"],"names":[],"mappings":"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"}
|
|
@@ -17,7 +17,18 @@ const DEFAULT_ALLOWED_RULES = [
|
|
|
17
17
|
"Bash(git diff*)",
|
|
18
18
|
"Bash(git log*)",
|
|
19
19
|
"Bash(git show*)",
|
|
20
|
-
"Bash(git branch
|
|
20
|
+
"Bash(git branch)",
|
|
21
|
+
"Bash(git branch --list*)",
|
|
22
|
+
"Bash(git branch -a*)",
|
|
23
|
+
"Bash(git branch -r*)",
|
|
24
|
+
"Bash(git branch --show-current*)",
|
|
25
|
+
"Bash(git branch --merged*)",
|
|
26
|
+
"Bash(git branch --no-merged*)",
|
|
27
|
+
"Bash(git branch --contains*)",
|
|
28
|
+
"Bash(git branch --no-contains*)",
|
|
29
|
+
"Bash(git branch --verbose*)",
|
|
30
|
+
"Bash(git branch -v*)",
|
|
31
|
+
"Bash(git branch -vv*)",
|
|
21
32
|
"Bash(git tag*)",
|
|
22
33
|
"Bash(git remote*)",
|
|
23
34
|
"Bash(git ls-files*)",
|
|
@@ -27,6 +38,7 @@ const DEFAULT_ALLOWED_RULES = [
|
|
|
27
38
|
"Bash(git cat-file*)",
|
|
28
39
|
"Bash(git count-objects*)",
|
|
29
40
|
"Bash(echo*)",
|
|
41
|
+
"Bash(ls*)",
|
|
30
42
|
"Bash(which*)",
|
|
31
43
|
"Bash(type*)",
|
|
32
44
|
"Bash(hostname*)",
|
|
@@ -436,7 +448,20 @@ export class PermissionManager {
|
|
|
436
448
|
const targetPath = (context.toolInput?.file_path ||
|
|
437
449
|
context.toolInput?.path);
|
|
438
450
|
if (targetPath) {
|
|
439
|
-
|
|
451
|
+
if (minimatch(targetPath, pattern, { dot: true })) {
|
|
452
|
+
return true;
|
|
453
|
+
}
|
|
454
|
+
// If direct match fails, try matching relative path if targetPath is absolute and pattern is relative
|
|
455
|
+
if (path.isAbsolute(targetPath) &&
|
|
456
|
+
!path.isAbsolute(pattern) &&
|
|
457
|
+
this.workdir) {
|
|
458
|
+
const relativePath = path.relative(this.workdir, targetPath);
|
|
459
|
+
// Ensure the path is not outside the workdir (doesn't start with ..)
|
|
460
|
+
if (!relativePath.startsWith("..") &&
|
|
461
|
+
!path.isAbsolute(relativePath)) {
|
|
462
|
+
return minimatch(relativePath, pattern, { dot: true });
|
|
463
|
+
}
|
|
464
|
+
}
|
|
440
465
|
}
|
|
441
466
|
}
|
|
442
467
|
return false;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pluginManager.d.ts","sourceRoot":"","sources":["../../src/managers/pluginManager.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAUzD,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAElD,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC1C;AAED,qBAAa,aAAa;IAMtB,OAAO,CAAC,SAAS;IALnB,OAAO,CAAC,OAAO,CAA6B;IAC5C,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,cAAc,CAA0B;gBAGtC,SAAS,EAAE,SAAS,EAC5B,OAAO,EAAE,oBAAoB;IAM/B,OAAO,KAAK,YAAY,GAEvB;IAED,OAAO,KAAK,WAAW,GAEtB;IAED,OAAO,KAAK,UAAU,GAErB;IAED,OAAO,KAAK,UAAU,GAErB;IAED,OAAO,KAAK,mBAAmB,GAE9B;IAED,OAAO,KAAK,oBAAoB,GAE/B;IAED;;OAEG;IACH,oBAAoB,CAAC,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAInE;;OAEG;YACW,oBAAoB;
|
|
1
|
+
{"version":3,"file":"pluginManager.d.ts","sourceRoot":"","sources":["../../src/managers/pluginManager.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAUzD,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAElD,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC1C;AAED,qBAAa,aAAa;IAMtB,OAAO,CAAC,SAAS;IALnB,OAAO,CAAC,OAAO,CAA6B;IAC5C,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,cAAc,CAA0B;gBAGtC,SAAS,EAAE,SAAS,EAC5B,OAAO,EAAE,oBAAoB;IAM/B,OAAO,KAAK,YAAY,GAEvB;IAED,OAAO,KAAK,WAAW,GAEtB;IAED,OAAO,KAAK,UAAU,GAErB;IAED,OAAO,KAAK,UAAU,GAErB;IAED,OAAO,KAAK,mBAAmB,GAE9B;IAED,OAAO,KAAK,oBAAoB,GAE/B;IAED;;OAEG;IACH,oBAAoB,CAAC,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAInE;;OAEG;YACW,oBAAoB;IAqElC;;OAEG;YACW,gBAAgB;IAyD9B;;;OAGG;IACG,WAAW,CAAC,OAAO,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAmBzD;;OAEG;IACH,UAAU,IAAI,MAAM,EAAE;IAItB;;OAEG;IACH,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;CAG5C"}
|
|
@@ -43,6 +43,10 @@ export class PluginManager {
|
|
|
43
43
|
this.enabledPlugins = this.configurationService.getMergedEnabledPlugins(this.workdir);
|
|
44
44
|
}
|
|
45
45
|
const marketplaceService = new MarketplaceService();
|
|
46
|
+
// Trigger auto-update for marketplaces
|
|
47
|
+
if (!process.env.VITEST) {
|
|
48
|
+
await marketplaceService.autoUpdateAll();
|
|
49
|
+
}
|
|
46
50
|
let installedRegistry = await marketplaceService.getInstalledPlugins();
|
|
47
51
|
const knownMarketplaces = await marketplaceService.listMarketplaces();
|
|
48
52
|
// Identify missing enabled plugins and auto-install them if marketplace is known
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skillManager.d.ts","sourceRoot":"","sources":["../../src/managers/skillManager.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,mBAAmB,EACnB,aAAa,EACb,KAAK,EAGL,aAAa,EACb,sBAAsB,EACvB,MAAM,mBAAmB,CAAC;AAS3B,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAGlD;;GAEG;AACH,qBAAa,YAAY;IAUrB,OAAO,CAAC,SAAS;IATnB,OAAO,CAAC,kBAAkB,CAAS;IACnC,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,OAAO,CAAS;IAExB,OAAO,CAAC,aAAa,CAAoC;IACzD,OAAO,CAAC,YAAY,CAA4B;IAChD,OAAO,CAAC,WAAW,CAAS;gBAGlB,SAAS,EAAE,SAAS,EAC5B,OAAO,GAAE,mBAAwB;IAQnC;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAoCjC;;OAEG;IACH,aAAa,IAAI,OAAO;IAIxB;;OAEG;IACH,kBAAkB,IAAI,aAAa,EAAE;IAQrC;;OAEG;IACH,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS;IAQzD;;;OAGG;IACG,SAAS,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC;IAgBzD;;OAEG;YACW,cAAc;IAkB5B;;OAEG;YACW,uBAAuB;IA8ErC;;OAEG;YACW,oBAAoB;IAkBlC;;OAEG;IACG,YAAY,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO,CAAC;QAC/C,OAAO,EAAE,MAAM,CAAC;QAChB,OAAO,CAAC,EAAE,sBAAsB,CAAC;QACjC,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;KACzB,CAAC;IA4CF;;OAEG;YACW,mBAAmB;
|
|
1
|
+
{"version":3,"file":"skillManager.d.ts","sourceRoot":"","sources":["../../src/managers/skillManager.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,mBAAmB,EACnB,aAAa,EACb,KAAK,EAGL,aAAa,EACb,sBAAsB,EACvB,MAAM,mBAAmB,CAAC;AAS3B,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAGlD;;GAEG;AACH,qBAAa,YAAY;IAUrB,OAAO,CAAC,SAAS;IATnB,OAAO,CAAC,kBAAkB,CAAS;IACnC,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,OAAO,CAAS;IAExB,OAAO,CAAC,aAAa,CAAoC;IACzD,OAAO,CAAC,YAAY,CAA4B;IAChD,OAAO,CAAC,WAAW,CAAS;gBAGlB,SAAS,EAAE,SAAS,EAC5B,OAAO,GAAE,mBAAwB;IAQnC;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAoCjC;;OAEG;IACH,aAAa,IAAI,OAAO;IAIxB;;OAEG;IACH,kBAAkB,IAAI,aAAa,EAAE;IAQrC;;OAEG;IACH,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS;IAQzD;;;OAGG;IACG,SAAS,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC;IAgBzD;;OAEG;YACW,cAAc;IAkB5B;;OAEG;YACW,uBAAuB;IA8ErC;;OAEG;YACW,oBAAoB;IAkBlC;;OAEG;IACG,YAAY,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO,CAAC;QAC/C,OAAO,EAAE,MAAM,CAAC;QAChB,OAAO,CAAC,EAAE,sBAAsB,CAAC;QACjC,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;KACzB,CAAC;IA4CF;;OAEG;YACW,mBAAmB;IA4BjC;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAc7B;;OAEG;IACH,oBAAoB,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI;CAqB5C"}
|
|
@@ -239,7 +239,9 @@ export class SkillManager {
|
|
|
239
239
|
let mainContent = contentMatch ? contentMatch[1].trim() : skill.content;
|
|
240
240
|
// 1. Substitute parameters ($1, $ARGUMENTS, etc.)
|
|
241
241
|
mainContent = substituteCommandParameters(mainContent, argsString);
|
|
242
|
-
// 2.
|
|
242
|
+
// 2. Substitute ${WAVE_SKILL_DIR} with the skill's directory path
|
|
243
|
+
mainContent = mainContent.replace(/\$\{WAVE_SKILL_DIR\}/g, skill.skillPath);
|
|
244
|
+
// 3. Parse and execute bash commands (!`command`)
|
|
243
245
|
const { commands } = parseBashCommands(mainContent);
|
|
244
246
|
if (commands.length > 0) {
|
|
245
247
|
const results = await executeBashCommands(commands, this.workdir);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"slashCommandManager.d.ts","sourceRoot":"","sources":["../../src/managers/slashCommandManager.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAQ1E,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAQlD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAIxD,MAAM,WAAW,0BAA0B;IACzC,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,qBAAa,mBAAmB;IAO5B,OAAO,CAAC,SAAS;IANnB,OAAO,CAAC,QAAQ,CAAmC;IACnD,OAAO,CAAC,cAAc,CAAyC;IAC/D,OAAO,CAAC,eAAe,CAAqB;IAC5C,OAAO,CAAC,OAAO,CAAS;gBAGd,SAAS,EAAE,SAAS,EAC5B,OAAO,EAAE,0BAA0B;IAK9B,UAAU,IAAI,IAAI;IAKzB,OAAO,KAAK,cAAc,GAEzB;IAED,OAAO,KAAK,SAAS,GAEpB;IAED,OAAO,KAAK,qBAAqB,GAEhC;IAED,OAAO,KAAK,WAAW,GAEtB;IAED,OAAO,KAAK,YAAY,GAEvB;IAED,OAAO,CAAC,yBAAyB;IAoBjC;;OAEG;IACH,OAAO,CAAC,kBAAkB;
|
|
1
|
+
{"version":3,"file":"slashCommandManager.d.ts","sourceRoot":"","sources":["../../src/managers/slashCommandManager.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAQ1E,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAQlD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAIxD,MAAM,WAAW,0BAA0B;IACzC,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,qBAAa,mBAAmB;IAO5B,OAAO,CAAC,SAAS;IANnB,OAAO,CAAC,QAAQ,CAAmC;IACnD,OAAO,CAAC,cAAc,CAAyC;IAC/D,OAAO,CAAC,eAAe,CAAqB;IAC5C,OAAO,CAAC,OAAO,CAAS;gBAGd,SAAS,EAAE,SAAS,EAC5B,OAAO,EAAE,0BAA0B;IAK9B,UAAU,IAAI,IAAI;IAKzB,OAAO,KAAK,cAAc,GAEzB;IAED,OAAO,KAAK,SAAS,GAEpB;IAED,OAAO,KAAK,qBAAqB,GAEhC;IAED,OAAO,KAAK,WAAW,GAEtB;IAED,OAAO,KAAK,YAAY,GAEvB;IAED,OAAO,CAAC,yBAAyB;IAoBjC;;OAEG;IACH,OAAO,CAAC,kBAAkB;IA4C1B;;OAEG;IACI,qBAAqB,CAAC,MAAM,EAAE,aAAa,EAAE,GAAG,IAAI;IAyD3D;;OAEG;IACI,sBAAsB,CAC3B,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,kBAAkB,EAAE,GAC7B,IAAI;IA2CP;;OAEG;IACI,oBAAoB,IAAI,IAAI;IAWnC;;OAEG;IACI,eAAe,CAAC,OAAO,EAAE,YAAY,GAAG,IAAI;IAKnD;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAIzB;;OAEG;IACI,WAAW,IAAI,YAAY,EAAE;IAIpC;;OAEG;IACI,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS;IAI9D;;OAEG;IACU,cAAc,CACzB,SAAS,EAAE,MAAM,EACjB,IAAI,CAAC,EAAE,MAAM,GACZ,OAAO,CAAC,OAAO,CAAC;IAenB;;;OAGG;IACI,4BAA4B,CAAC,KAAK,EAAE,MAAM,GAAG;QAClD,OAAO,EAAE,OAAO,CAAC;QACjB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,IAAI,CAAC,EAAE,MAAM,CAAC;KACf;IAeD;;OAEG;IACI,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO;IAI7C;;OAEG;IACI,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,kBAAkB,GAAG,SAAS;IAI1E;;OAEG;IACI,iBAAiB,IAAI,kBAAkB,EAAE;IAIhD;;OAEG;YACW,+BAA+B;IAiD7C;;OAEG;IACI,mBAAmB,IAAI,IAAI;CAInC"}
|
|
@@ -66,10 +66,6 @@ export class SlashCommandManager {
|
|
|
66
66
|
handler: async (args) => {
|
|
67
67
|
// Substitute parameters in the command content
|
|
68
68
|
let processedContent = command.content;
|
|
69
|
-
// Substitute $WAVE_PLUGIN_ROOT placeholder for plugin commands
|
|
70
|
-
if (command.pluginPath) {
|
|
71
|
-
processedContent = processedContent.replace(/\$WAVE_PLUGIN_ROOT/g, command.pluginPath);
|
|
72
|
-
}
|
|
73
69
|
if (args) {
|
|
74
70
|
processedContent = substituteCommandParameters(processedContent, args);
|
|
75
71
|
}
|
|
@@ -150,10 +146,6 @@ export class SlashCommandManager {
|
|
|
150
146
|
handler: async (args) => {
|
|
151
147
|
// Substitute parameters in the command content
|
|
152
148
|
let processedContent = command.content;
|
|
153
|
-
// Substitute $WAVE_PLUGIN_ROOT placeholder for plugin commands
|
|
154
|
-
if (command.pluginPath) {
|
|
155
|
-
processedContent = processedContent.replace(/\$WAVE_PLUGIN_ROOT/g, command.pluginPath);
|
|
156
|
-
}
|
|
157
149
|
if (args) {
|
|
158
150
|
processedContent = substituteCommandParameters(processedContent, args);
|
|
159
151
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GitService.d.ts","sourceRoot":"","sources":["../../src/services/GitService.ts"],"names":[],"mappings":"AAKA,qBAAa,UAAU;IACrB;;OAEG;IACG,cAAc,IAAI,OAAO,CAAC,OAAO,CAAC;IASxC;;OAEG;IACG,KAAK,CACT,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,EAClB,GAAG,CAAC,EAAE,MAAM,GACX,OAAO,CAAC,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"GitService.d.ts","sourceRoot":"","sources":["../../src/services/GitService.ts"],"names":[],"mappings":"AAKA,qBAAa,UAAU;IACrB;;OAEG;IACG,cAAc,IAAI,OAAO,CAAC,OAAO,CAAC;IASxC;;OAEG;IACG,KAAK,CACT,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,EAClB,GAAG,CAAC,EAAE,MAAM,GACX,OAAO,CAAC,IAAI,CAAC;IAiChB;;OAEG;IACG,IAAI,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAoB7C,OAAO,CAAC,cAAc;CA6BvB"}
|
|
@@ -18,6 +18,9 @@ export class GitService {
|
|
|
18
18
|
* Clones a Git repository to a local path
|
|
19
19
|
*/
|
|
20
20
|
async clone(urlOrRepo, targetPath, ref) {
|
|
21
|
+
if (process.env.VITEST && !process.env.ALLOW_REAL_GIT) {
|
|
22
|
+
throw new Error(`Real git clone is disabled in tests. URL: ${urlOrRepo}, Path: ${targetPath}`);
|
|
23
|
+
}
|
|
21
24
|
if (!(await this.isGitAvailable())) {
|
|
22
25
|
throw new Error("Git is not installed or not found in PATH. Please install Git to use Git/GitHub marketplaces.");
|
|
23
26
|
}
|
|
@@ -43,6 +46,9 @@ export class GitService {
|
|
|
43
46
|
* Pulls the latest changes in a local repository
|
|
44
47
|
*/
|
|
45
48
|
async pull(targetPath) {
|
|
49
|
+
if (process.env.VITEST && !process.env.ALLOW_REAL_GIT) {
|
|
50
|
+
throw new Error(`Real git pull is disabled in tests. Path: ${targetPath}`);
|
|
51
|
+
}
|
|
46
52
|
if (!(await this.isGitAvailable())) {
|
|
47
53
|
throw new Error("Git is not installed or not found in PATH. Please install Git to use Git/GitHub marketplaces.");
|
|
48
54
|
}
|
|
@@ -58,7 +58,17 @@ export declare class MarketplaceService {
|
|
|
58
58
|
/**
|
|
59
59
|
* Updates a specific marketplace or all marketplaces
|
|
60
60
|
*/
|
|
61
|
-
updateMarketplace(name?: string
|
|
61
|
+
updateMarketplace(name?: string, options?: {
|
|
62
|
+
updatePlugins?: boolean;
|
|
63
|
+
}): Promise<void>;
|
|
64
|
+
/**
|
|
65
|
+
* Automatically updates all marketplaces that have auto-update enabled
|
|
66
|
+
*/
|
|
67
|
+
autoUpdateAll(): Promise<void>;
|
|
68
|
+
/**
|
|
69
|
+
* Toggles auto-update for a marketplace
|
|
70
|
+
*/
|
|
71
|
+
toggleAutoUpdate(name: string, enabled: boolean): Promise<void>;
|
|
62
72
|
/**
|
|
63
73
|
* Installs a plugin from a marketplace
|
|
64
74
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MarketplaceService.d.ts","sourceRoot":"","sources":["../../src/services/MarketplaceService.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,gBAAgB,EAChB,yBAAyB,EACzB,eAAe,EACf,wBAAwB,EACxB,mBAAmB,EACpB,MAAM,yBAAyB,CAAC;AAGjC;;;;;GAKG;AACH,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,qBAAqB,CAAS;IACtC,OAAO,CAAC,oBAAoB,CAAS;IACrC,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,eAAe,CAAS;IAChC,OAAO,CAAC,UAAU,CAAa;IAC/B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,mBAAmB,
|
|
1
|
+
{"version":3,"file":"MarketplaceService.d.ts","sourceRoot":"","sources":["../../src/services/MarketplaceService.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,gBAAgB,EAChB,yBAAyB,EACzB,eAAe,EACf,wBAAwB,EACxB,mBAAmB,EACpB,MAAM,yBAAyB,CAAC;AAGjC;;;;;GAKG;AACH,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,qBAAqB,CAAS;IACtC,OAAO,CAAC,oBAAoB,CAAS;IACrC,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,eAAe,CAAS;IAChC,OAAO,CAAC,UAAU,CAAa;IAC/B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,mBAAmB,CAOzC;;IAoBF;;OAEG;IACH,OAAO,CAAC,wBAAwB;IAUhC;;OAEG;IACG,oBAAoB,IAAI,OAAO,CAAC,yBAAyB,CAAC;IA8BhE;;OAEG;IACG,mBAAmB,IAAI,OAAO,CAAC,wBAAwB,CAAC;IAgB9D;;OAEG;IACG,qBAAqB,CACzB,QAAQ,EAAE,yBAAyB,GAClC,OAAO,CAAC,IAAI,CAAC;IAOhB;;OAEG;IACG,oBAAoB,CACxB,QAAQ,EAAE,wBAAwB,GACjC,OAAO,CAAC,IAAI,CAAC;IAOhB;;OAEG;IACG,uBAAuB,CAC3B,eAAe,EAAE,MAAM,GACtB,OAAO,CAAC,mBAAmB,CAAC;IAwB/B;;OAEG;IACI,kBAAkB,CAAC,WAAW,EAAE,gBAAgB,GAAG,MAAM;IAehE;;OAEG;IACG,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC;IA4F9D;;OAEG;IACG,gBAAgB,IAAI,OAAO,CAAC,gBAAgB,EAAE,CAAC;IAQrD;;OAEG;IACG,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAcpD;;OAEG;IACG,iBAAiB,CACrB,IAAI,CAAC,EAAE,MAAM,EACb,OAAO,CAAC,EAAE;QAAE,aAAa,CAAC,EAAE,OAAO,CAAA;KAAE,GACpC,OAAO,CAAC,IAAI,CAAC;IAmGhB;;OAEG;IACG,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC;IAgBpC;;OAEG;IACG,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAUrE;;OAEG;IACG,aAAa,CACjB,mBAAmB,EAAE,MAAM,EAC3B,WAAW,CAAC,EAAE,MAAM,GACnB,OAAO,CAAC,eAAe,CAAC;IA0H3B;;OAEG;IACG,eAAe,CACnB,mBAAmB,EAAE,MAAM,EAC3B,WAAW,CAAC,EAAE,MAAM,GACnB,OAAO,CAAC,IAAI,CAAC;IAqChB;;OAEG;IACG,YAAY,CAAC,mBAAmB,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC;CAI1E"}
|
|
@@ -172,6 +172,7 @@ export class MarketplaceService {
|
|
|
172
172
|
source: isFullUrl
|
|
173
173
|
? { source: "git", url: urlOrRepo, ref }
|
|
174
174
|
: { source: "github", repo: urlOrRepo, ref },
|
|
175
|
+
autoUpdate: false,
|
|
175
176
|
};
|
|
176
177
|
}
|
|
177
178
|
else {
|
|
@@ -187,6 +188,7 @@ export class MarketplaceService {
|
|
|
187
188
|
marketplace = {
|
|
188
189
|
name: manifest.name,
|
|
189
190
|
source: { source: "directory", path: absolutePath },
|
|
191
|
+
autoUpdate: false,
|
|
190
192
|
};
|
|
191
193
|
}
|
|
192
194
|
const registry = await this.getKnownMarketplaces();
|
|
@@ -229,7 +231,7 @@ export class MarketplaceService {
|
|
|
229
231
|
/**
|
|
230
232
|
* Updates a specific marketplace or all marketplaces
|
|
231
233
|
*/
|
|
232
|
-
async updateMarketplace(name) {
|
|
234
|
+
async updateMarketplace(name, options) {
|
|
233
235
|
const registry = await this.getKnownMarketplaces();
|
|
234
236
|
const toUpdate = name
|
|
235
237
|
? registry.marketplaces.filter((m) => m.name === name)
|
|
@@ -248,10 +250,45 @@ export class MarketplaceService {
|
|
|
248
250
|
continue;
|
|
249
251
|
}
|
|
250
252
|
const targetPath = this.getMarketplacePath(marketplace);
|
|
251
|
-
|
|
253
|
+
if (existsSync(targetPath)) {
|
|
254
|
+
await this.gitService.pull(targetPath);
|
|
255
|
+
}
|
|
256
|
+
else {
|
|
257
|
+
let url;
|
|
258
|
+
if (marketplace.source.source === "github") {
|
|
259
|
+
url = marketplace.source.repo;
|
|
260
|
+
}
|
|
261
|
+
else {
|
|
262
|
+
url = marketplace.source.url;
|
|
263
|
+
}
|
|
264
|
+
await this.gitService.clone(url, targetPath, marketplace.source.ref);
|
|
265
|
+
}
|
|
252
266
|
}
|
|
253
267
|
// For directory source, we just re-validate the manifest
|
|
254
|
-
await this.loadMarketplaceManifest(this.getMarketplacePath(marketplace));
|
|
268
|
+
const manifest = await this.loadMarketplaceManifest(this.getMarketplacePath(marketplace));
|
|
269
|
+
if (options?.updatePlugins) {
|
|
270
|
+
const installedRegistry = await this.getInstalledPlugins();
|
|
271
|
+
const pluginsToUpdate = installedRegistry.plugins.filter((p) => p.marketplace === marketplace.name);
|
|
272
|
+
for (const plugin of pluginsToUpdate) {
|
|
273
|
+
const pluginEntry = manifest.plugins.find((p) => p.name === plugin.name);
|
|
274
|
+
if (!pluginEntry) {
|
|
275
|
+
console.warn(`Plugin "${plugin.name}" no longer found in marketplace "${marketplace.name}". Uninstalling...`);
|
|
276
|
+
try {
|
|
277
|
+
await this.uninstallPlugin(`${plugin.name}@${plugin.marketplace}`, plugin.projectPath);
|
|
278
|
+
}
|
|
279
|
+
catch (error) {
|
|
280
|
+
console.error(`Failed to uninstall orphaned plugin "${plugin.name}" from marketplace "${marketplace.name}":`, error);
|
|
281
|
+
}
|
|
282
|
+
continue;
|
|
283
|
+
}
|
|
284
|
+
try {
|
|
285
|
+
await this.installPlugin(`${plugin.name}@${plugin.marketplace}`, plugin.projectPath);
|
|
286
|
+
}
|
|
287
|
+
catch (error) {
|
|
288
|
+
console.error(`Failed to update plugin "${plugin.name}" from marketplace "${marketplace.name}":`, error);
|
|
289
|
+
}
|
|
290
|
+
}
|
|
291
|
+
}
|
|
255
292
|
}
|
|
256
293
|
catch (error) {
|
|
257
294
|
const msg = `Failed to update marketplace "${marketplace.name}": ${error instanceof Error ? error.message : String(error)}`;
|
|
@@ -263,6 +300,33 @@ export class MarketplaceService {
|
|
|
263
300
|
throw new Error(`Some marketplaces failed to update:\n${errors.join("\n")}`);
|
|
264
301
|
}
|
|
265
302
|
}
|
|
303
|
+
/**
|
|
304
|
+
* Automatically updates all marketplaces that have auto-update enabled
|
|
305
|
+
*/
|
|
306
|
+
async autoUpdateAll() {
|
|
307
|
+
const registry = await this.getKnownMarketplaces();
|
|
308
|
+
const toAutoUpdate = registry.marketplaces.filter((m) => m.autoUpdate);
|
|
309
|
+
for (const marketplace of toAutoUpdate) {
|
|
310
|
+
try {
|
|
311
|
+
await this.updateMarketplace(marketplace.name, { updatePlugins: true });
|
|
312
|
+
}
|
|
313
|
+
catch (error) {
|
|
314
|
+
console.error(`Auto-update failed for marketplace "${marketplace.name}":`, error);
|
|
315
|
+
}
|
|
316
|
+
}
|
|
317
|
+
}
|
|
318
|
+
/**
|
|
319
|
+
* Toggles auto-update for a marketplace
|
|
320
|
+
*/
|
|
321
|
+
async toggleAutoUpdate(name, enabled) {
|
|
322
|
+
const registry = await this.getKnownMarketplaces();
|
|
323
|
+
const marketplace = registry.marketplaces.find((m) => m.name === name);
|
|
324
|
+
if (!marketplace) {
|
|
325
|
+
throw new Error(`Marketplace ${name} not found`);
|
|
326
|
+
}
|
|
327
|
+
marketplace.autoUpdate = enabled;
|
|
328
|
+
await this.saveKnownMarketplaces(registry);
|
|
329
|
+
}
|
|
266
330
|
/**
|
|
267
331
|
* Installs a plugin from a marketplace
|
|
268
332
|
*/
|
|
@@ -398,4 +462,5 @@ MarketplaceService.BUILTIN_MARKETPLACE = {
|
|
|
398
462
|
source: "github",
|
|
399
463
|
repo: "netease-lcap/wave-plugins-official",
|
|
400
464
|
},
|
|
465
|
+
autoUpdate: true,
|
|
401
466
|
};
|
|
@@ -34,10 +34,6 @@ export declare class ConfigurationService {
|
|
|
34
34
|
* Validate configuration file without loading
|
|
35
35
|
*/
|
|
36
36
|
validateConfigurationFile(filePath: string): ValidationResult;
|
|
37
|
-
/**
|
|
38
|
-
* Get currently loaded configuration
|
|
39
|
-
*/
|
|
40
|
-
getCurrentConfiguration(): WaveConfiguration | null;
|
|
41
37
|
/**
|
|
42
38
|
* Set environment variables from configuration
|
|
43
39
|
* This replaces direct process.env modification
|
|
@@ -101,7 +97,7 @@ export declare class ConfigurationService {
|
|
|
101
97
|
*/
|
|
102
98
|
getConfigurationPaths(workdir: string): ConfigurationPaths;
|
|
103
99
|
/**
|
|
104
|
-
* Add a permission rule to the
|
|
100
|
+
* Add a permission rule to the local settings.local.json
|
|
105
101
|
*/
|
|
106
102
|
addAllowedRule(workdir: string, rule: string): Promise<void>;
|
|
107
103
|
/**
|
|
@@ -135,21 +131,6 @@ export declare function mergeEnvironmentConfig(userEnv: Record<string, string> |
|
|
|
135
131
|
* Supports both hooks and environment variables with proper validation
|
|
136
132
|
*/
|
|
137
133
|
export declare function loadWaveConfigFromFile(filePath: string): WaveConfiguration | null;
|
|
138
|
-
/**
|
|
139
|
-
* Load Wave configuration from multiple file paths in priority order
|
|
140
|
-
* Returns the first valid configuration found, or null if none exist
|
|
141
|
-
*/
|
|
142
|
-
export declare function loadWaveConfigFromFiles(filePaths: string[]): WaveConfiguration | null;
|
|
143
|
-
/**
|
|
144
|
-
* Load user-specific Wave configuration
|
|
145
|
-
* Checks .local.json first, then falls back to .json
|
|
146
|
-
*/
|
|
147
|
-
export declare function loadUserWaveConfig(): WaveConfiguration | null;
|
|
148
|
-
/**
|
|
149
|
-
* Load project-specific Wave configuration
|
|
150
|
-
* Checks .local.json first, then falls back to .json
|
|
151
|
-
*/
|
|
152
|
-
export declare function loadProjectWaveConfig(workdir: string): WaveConfiguration | null;
|
|
153
134
|
/**
|
|
154
135
|
* Load and merge Wave configuration from both user and project sources
|
|
155
136
|
* Project configuration takes precedence over user configuration
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"configurationService.d.ts","sourceRoot":"","sources":["../../src/services/configurationService.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,OAAO,KAAK,EACV,uBAAuB,EACvB,gBAAgB,EAChB,kBAAkB,EAClB,iBAAiB,EACjB,KAAK,EACN,MAAM,2BAA2B,CAAC;AAOnC,OAAO,EACL,KAAK,2BAA2B,EAChC,KAAK,wBAAwB,EAC7B,KAAK,uBAAuB,EAE7B,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,aAAa,EACb,WAAW,EAGX,cAAc,EACd,YAAY,EACb,MAAM,mBAAmB,CAAC;AAK3B,OAAO,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AAGvC;;;;;GAKG;AACH,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,oBAAoB,CAAkC;IAC9D,OAAO,CAAC,GAAG,CAA8B;IACzC,OAAO,CAAC,OAAO,CAAoB;IAEnC;;OAEG;IACH,UAAU,CAAC,OAAO,EAAE,YAAY,GAAG,IAAI;IAMvC;;OAEG;IACG,uBAAuB,CAC3B,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"configurationService.d.ts","sourceRoot":"","sources":["../../src/services/configurationService.ts"],"names":[],"mappings":"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"}
|