MCPcopy Create free account
hub / github.com/EvoMap/evolver / processSkillUpdate

Method processSkillUpdate

src/proxy/extensions/skillUpdater.js:17–49  ·  view source on GitHub ↗
(message)

Source from the content-addressed store, hash-verified

15 }
16
17 processSkillUpdate(message) {
18 if (!this.skillPath) {
19 this.logger.warn('[skill-updater] No skill path configured, skipping update');
20 return false;
21 }
22
23 const payload = message.payload || message;
24 const content = payload.content || payload.skill_content;
25
26 if (!content || typeof content !== 'string') {
27 this.logger.warn('[skill-updater] No content in skill_update message');
28 return false;
29 }
30
31 try {
32 const dir = path.dirname(this.skillPath);
33 if (!fs.existsSync(dir)) fs.mkdirSync(dir, { recursive: true });
34
35 if (fs.existsSync(this.skillPath)) {
36 const backupPath = this.skillPath + '.bak';
37 fs.copyFileSync(this.skillPath, backupPath);
38 }
39
40 fs.writeFileSync(this.skillPath, content, 'utf8');
41 this.store.setState('last_skill_update', new Date().toISOString());
42 this.store.setState('skill_version', payload.version || 'unknown');
43 this.logger.log(`[skill-updater] Updated skill.md (version: ${payload.version || 'unknown'})`);
44 return true;
45 } catch (err) {
46 this.logger.error(`[skill-updater] Failed to update: ${err.message}`);
47 return false;
48 }
49 }
50
51 pollAndApply() {
52 const updates = this.store.poll({ type: 'skill_update' });

Callers 2

pollAndApplyMethod · 0.95
extensions.test.jsFile · 0.80

Calls 1

setStateMethod · 0.80

Tested by

no test coverage detected