@memtensor/memos-local-openclaw-plugin 1.0.4-beta.9 → 1.0.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.
Files changed (99) hide show
  1. package/.env.example +7 -0
  2. package/README.md +94 -27
  3. package/dist/capture/index.js +3 -1
  4. package/dist/capture/index.js.map +1 -1
  5. package/dist/client/connector.d.ts +5 -0
  6. package/dist/client/connector.d.ts.map +1 -1
  7. package/dist/client/connector.js +89 -8
  8. package/dist/client/connector.js.map +1 -1
  9. package/dist/config.d.ts.map +1 -1
  10. package/dist/config.js +2 -1
  11. package/dist/config.js.map +1 -1
  12. package/dist/hub/server.d.ts +2 -0
  13. package/dist/hub/server.d.ts.map +1 -1
  14. package/dist/hub/server.js +240 -35
  15. package/dist/hub/server.js.map +1 -1
  16. package/dist/hub/user-manager.d.ts +9 -0
  17. package/dist/hub/user-manager.d.ts.map +1 -1
  18. package/dist/hub/user-manager.js +26 -2
  19. package/dist/hub/user-manager.js.map +1 -1
  20. package/dist/ingest/chunker.d.ts +2 -1
  21. package/dist/ingest/chunker.d.ts.map +1 -1
  22. package/dist/ingest/chunker.js +14 -10
  23. package/dist/ingest/chunker.js.map +1 -1
  24. package/dist/ingest/providers/index.js +2 -2
  25. package/dist/ingest/providers/index.js.map +1 -1
  26. package/dist/recall/engine.d.ts.map +1 -1
  27. package/dist/recall/engine.js +22 -4
  28. package/dist/recall/engine.js.map +1 -1
  29. package/dist/shared/llm-call.d.ts.map +1 -1
  30. package/dist/shared/llm-call.js +2 -1
  31. package/dist/shared/llm-call.js.map +1 -1
  32. package/dist/sharing/types.d.ts +1 -1
  33. package/dist/sharing/types.d.ts.map +1 -1
  34. package/dist/skill/evolver.d.ts +2 -0
  35. package/dist/skill/evolver.d.ts.map +1 -1
  36. package/dist/skill/evolver.js +56 -5
  37. package/dist/skill/evolver.js.map +1 -1
  38. package/dist/skill/generator.d.ts +2 -0
  39. package/dist/skill/generator.d.ts.map +1 -1
  40. package/dist/skill/generator.js +45 -3
  41. package/dist/skill/generator.js.map +1 -1
  42. package/dist/skill/installer.d.ts +26 -0
  43. package/dist/skill/installer.d.ts.map +1 -1
  44. package/dist/skill/installer.js +80 -4
  45. package/dist/skill/installer.js.map +1 -1
  46. package/dist/skill/upgrader.d.ts +2 -0
  47. package/dist/skill/upgrader.d.ts.map +1 -1
  48. package/dist/skill/upgrader.js +139 -1
  49. package/dist/skill/upgrader.js.map +1 -1
  50. package/dist/skill/validator.d.ts +3 -0
  51. package/dist/skill/validator.d.ts.map +1 -1
  52. package/dist/skill/validator.js +75 -0
  53. package/dist/skill/validator.js.map +1 -1
  54. package/dist/storage/sqlite.d.ts +57 -0
  55. package/dist/storage/sqlite.d.ts.map +1 -1
  56. package/dist/storage/sqlite.js +290 -35
  57. package/dist/storage/sqlite.js.map +1 -1
  58. package/dist/telemetry.d.ts.map +1 -1
  59. package/dist/telemetry.js +27 -8
  60. package/dist/telemetry.js.map +1 -1
  61. package/dist/types.d.ts +10 -0
  62. package/dist/types.d.ts.map +1 -1
  63. package/dist/types.js +4 -0
  64. package/dist/types.js.map +1 -1
  65. package/dist/viewer/html.d.ts.map +1 -1
  66. package/dist/viewer/html.js +564 -225
  67. package/dist/viewer/html.js.map +1 -1
  68. package/dist/viewer/server.d.ts +9 -0
  69. package/dist/viewer/server.d.ts.map +1 -1
  70. package/dist/viewer/server.js +357 -108
  71. package/dist/viewer/server.js.map +1 -1
  72. package/index.ts +411 -52
  73. package/openclaw.plugin.json +1 -1
  74. package/package.json +2 -1
  75. package/prebuilds/darwin-arm64/better_sqlite3.node +0 -0
  76. package/prebuilds/darwin-x64/better_sqlite3.node +0 -0
  77. package/prebuilds/linux-x64/better_sqlite3.node +0 -0
  78. package/prebuilds/win32-x64/better_sqlite3.node +0 -0
  79. package/src/capture/index.ts +4 -1
  80. package/src/client/connector.ts +92 -8
  81. package/src/config.ts +2 -1
  82. package/src/hub/server.ts +235 -35
  83. package/src/hub/user-manager.ts +42 -6
  84. package/src/ingest/chunker.ts +19 -13
  85. package/src/ingest/providers/index.ts +2 -2
  86. package/src/recall/engine.ts +20 -4
  87. package/src/shared/llm-call.ts +2 -1
  88. package/src/sharing/types.ts +1 -1
  89. package/src/skill/evolver.ts +58 -6
  90. package/src/skill/generator.ts +44 -5
  91. package/src/skill/installer.ts +107 -4
  92. package/src/skill/upgrader.ts +139 -1
  93. package/src/skill/validator.ts +79 -0
  94. package/src/storage/sqlite.ts +318 -40
  95. package/src/telemetry.ts +27 -9
  96. package/src/types.ts +11 -0
  97. package/src/viewer/html.ts +564 -225
  98. package/src/viewer/server.ts +333 -105
  99. package/telemetry.credentials.json +5 -0
@@ -45,6 +45,76 @@ class SkillInstaller {
45
45
  this.ctx = ctx;
46
46
  this.workspaceSkillsDir = path.join(ctx.workspaceDir, "skills");
47
47
  }
48
+ getCompanionManifest(skillId) {
49
+ const skill = this.store.getSkill(skillId);
50
+ if (!skill)
51
+ return null;
52
+ return SkillInstaller.buildManifest(skill.dirPath, !!skill.installed, skill.name, this.workspaceSkillsDir);
53
+ }
54
+ static buildManifest(dirPath, installed, skillName, workspaceSkillsDir) {
55
+ const files = [];
56
+ const scanDir = (subDir, type) => {
57
+ const fullDir = path.join(dirPath, subDir);
58
+ if (!fs.existsSync(fullDir))
59
+ return;
60
+ try {
61
+ for (const f of fs.readdirSync(fullDir)) {
62
+ const fp = path.join(fullDir, f);
63
+ try {
64
+ const stat = fs.statSync(fp);
65
+ if (stat.isFile()) {
66
+ files.push({ relativePath: `${subDir}/${f}`, size: stat.size, type });
67
+ }
68
+ }
69
+ catch { /* best-effort */ }
70
+ }
71
+ }
72
+ catch { /* best-effort */ }
73
+ };
74
+ scanDir("scripts", "script");
75
+ scanDir("references", "reference");
76
+ scanDir("evals", "eval");
77
+ const scriptsCount = files.filter(f => f.type === "script").length;
78
+ const referencesCount = files.filter(f => f.type === "reference").length;
79
+ const evalsCount = files.filter(f => f.type === "eval").length;
80
+ const totalSize = files.reduce((sum, f) => sum + f.size, 0);
81
+ const hasCompanionFiles = files.filter(f => f.type !== "eval").length > 0;
82
+ let installMode = "inline";
83
+ if (hasCompanionFiles) {
84
+ const executableScripts = files.filter(f => f.type === "script");
85
+ const largeFiles = files.filter(f => f.size > 5000);
86
+ if (executableScripts.length >= 3 || largeFiles.length >= 2 || totalSize > 20000) {
87
+ installMode = "install_recommended";
88
+ }
89
+ else {
90
+ installMode = "on_demand";
91
+ }
92
+ }
93
+ const installedPath = installed && workspaceSkillsDir
94
+ ? path.join(workspaceSkillsDir, skillName)
95
+ : undefined;
96
+ return { hasCompanionFiles, installMode, installed, installedPath, files, totalSize, scriptsCount, referencesCount, evalsCount };
97
+ }
98
+ readCompanionFile(skillId, relativePath) {
99
+ const skill = this.store.getSkill(skillId);
100
+ if (!skill)
101
+ return { error: "Skill not found" };
102
+ const normalized = relativePath.replace(/\.\./g, "");
103
+ const fullPath = path.join(skill.dirPath, normalized);
104
+ if (!fullPath.startsWith(skill.dirPath)) {
105
+ return { error: "Path traversal not allowed" };
106
+ }
107
+ if (!fs.existsSync(fullPath)) {
108
+ return { error: `File not found: ${relativePath}` };
109
+ }
110
+ try {
111
+ const content = fs.readFileSync(fullPath, "utf-8");
112
+ return { content, size: content.length };
113
+ }
114
+ catch (err) {
115
+ return { error: `Cannot read file: ${err}` };
116
+ }
117
+ }
48
118
  install(skillId) {
49
119
  const skill = this.store.getSkill(skillId);
50
120
  if (!skill)
@@ -53,8 +123,7 @@ class SkillInstaller {
53
123
  return { installed: false, path: "", message: `Skill directory not found: ${skill.dirPath}` };
54
124
  }
55
125
  const dstDir = path.join(this.workspaceSkillsDir, skill.name);
56
- fs.mkdirSync(dstDir, { recursive: true });
57
- fs.cpSync(skill.dirPath, dstDir, { recursive: true });
126
+ this.cleanSync(skill.dirPath, dstDir);
58
127
  this.store.updateSkill(skillId, { installed: 1 });
59
128
  this.ctx.log.info(`Skill installed: "${skill.name}" v${skill.version} → ${dstDir}`);
60
129
  return {
@@ -79,11 +148,18 @@ class SkillInstaller {
79
148
  if (!skill || !skill.installed)
80
149
  return;
81
150
  const dstDir = path.join(this.workspaceSkillsDir, skill.name);
82
- if (fs.existsSync(dstDir) && fs.existsSync(skill.dirPath)) {
83
- fs.cpSync(skill.dirPath, dstDir, { recursive: true });
151
+ if (fs.existsSync(skill.dirPath)) {
152
+ this.cleanSync(skill.dirPath, dstDir);
84
153
  this.ctx.log.info(`Skill synced: "${skill.name}" v${skill.version} → workspace`);
85
154
  }
86
155
  }
156
+ cleanSync(srcDir, dstDir) {
157
+ if (fs.existsSync(dstDir)) {
158
+ fs.rmSync(dstDir, { recursive: true });
159
+ }
160
+ fs.mkdirSync(dstDir, { recursive: true });
161
+ fs.cpSync(srcDir, dstDir, { recursive: true });
162
+ }
87
163
  }
88
164
  exports.SkillInstaller = SkillInstaller;
89
165
  //# sourceMappingURL=installer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"installer.js","sourceRoot":"","sources":["../../src/skill/installer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"installer.js","sourceRoot":"","sources":["../../src/skill/installer.ts"],"names":[],"mappings":"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"}
@@ -13,5 +13,7 @@ export declare class SkillUpgrader {
13
13
  private readCurrentContent;
14
14
  private callUpgradeLLM;
15
15
  private parseDescription;
16
+ private rebuildCompanionFiles;
17
+ private parseJSONArray;
16
18
  }
17
19
  //# sourceMappingURL=upgrader.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"upgrader.d.ts","sourceRoot":"","sources":["../../src/skill/upgrader.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAC3D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAiErD,qBAAa,aAAa;IAItB,OAAO,CAAC,KAAK;IACb,OAAO,CAAC,GAAG;IAJb,OAAO,CAAC,SAAS,CAAiB;gBAGxB,KAAK,EAAE,WAAW,EAClB,GAAG,EAAE,aAAa;IAKtB,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,iBAAiB,GAAG,OAAO,CAAC;QAAE,QAAQ,EAAE,OAAO,CAAC;QAAC,YAAY,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAC;IAsEnI,OAAO,CAAC,kBAAkB;YAUZ,cAAc;IAmD5B,OAAO,CAAC,gBAAgB;CAOzB"}
1
+ {"version":3,"file":"upgrader.d.ts","sourceRoot":"","sources":["../../src/skill/upgrader.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAC3D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAiErD,qBAAa,aAAa;IAItB,OAAO,CAAC,KAAK;IACb,OAAO,CAAC,GAAG;IAJb,OAAO,CAAC,SAAS,CAAiB;gBAGxB,KAAK,EAAE,WAAW,EAClB,GAAG,EAAE,aAAa;IAKtB,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,iBAAiB,GAAG,OAAO,CAAC;QAAE,QAAQ,EAAE,OAAO,CAAC;QAAC,YAAY,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAC;IAkFnI,OAAO,CAAC,kBAAkB;YAUZ,cAAc;IAmD5B,OAAO,CAAC,gBAAgB;YAQV,qBAAqB;IAqHnC,OAAO,CAAC,cAAc;CAQvB"}
@@ -119,15 +119,32 @@ class SkillUpgrader {
119
119
  this.ctx.log.warn(`SkillUpgrader: generated content too short for "${skill.name}", skipping`);
120
120
  return { upgraded: false, qualityScore: null };
121
121
  }
122
+ const backupDir = skill.dirPath + ".backup-" + Date.now();
123
+ try {
124
+ fs.cpSync(skill.dirPath, backupDir, { recursive: true });
125
+ }
126
+ catch { /* best-effort */ }
122
127
  fs.writeFileSync(path.join(skill.dirPath, "SKILL.md"), newContent, "utf-8");
128
+ await this.rebuildCompanionFiles(skill, newContent, task);
123
129
  const validation = await this.validator.validate(skill.dirPath, {
124
130
  previousContent: currentContent,
125
131
  });
126
132
  if (!validation.valid) {
127
133
  this.ctx.log.warn(`SkillUpgrader: validation failed for "${skill.name}", reverting: ${validation.errors.join("; ")}`);
128
- fs.writeFileSync(path.join(skill.dirPath, "SKILL.md"), currentContent, "utf-8");
134
+ if (fs.existsSync(backupDir)) {
135
+ fs.rmSync(skill.dirPath, { recursive: true });
136
+ fs.renameSync(backupDir, skill.dirPath);
137
+ }
138
+ else {
139
+ fs.writeFileSync(path.join(skill.dirPath, "SKILL.md"), currentContent, "utf-8");
140
+ }
129
141
  return { upgraded: false, qualityScore: null };
130
142
  }
143
+ try {
144
+ if (fs.existsSync(backupDir))
145
+ fs.rmSync(backupDir, { recursive: true });
146
+ }
147
+ catch { /* cleanup */ }
131
148
  const newVersion = skill.version + 1;
132
149
  const newDescription = this.parseDescription(newContent) || skill.description;
133
150
  const newStatus = validation.qualityScore !== null && validation.qualityScore < 6 ? "draft" : skill.status;
@@ -223,6 +240,127 @@ class SkillUpgrader {
223
240
  return match2[1];
224
241
  return "";
225
242
  }
243
+ async rebuildCompanionFiles(skill, newContent, task) {
244
+ const chain = (0, llm_call_1.buildSkillConfigChain)(this.ctx);
245
+ if (chain.length === 0)
246
+ return;
247
+ const chunks = this.store.getChunksByTask(task.id);
248
+ const conversationText = chunks
249
+ .filter(c => c.role === "user" || c.role === "assistant" || c.role === "tool")
250
+ .map(c => `[${c.role === "user" ? "User" : c.role === "assistant" ? "Assistant" : "Tool"}]: ${c.content.slice(0, 500)}`)
251
+ .join("\n\n")
252
+ .slice(0, 6000);
253
+ const scriptsPrompt = `Based on the following upgraded SKILL.md and task record, extract reusable automation scripts.
254
+ Rules:
255
+ - Only extract if the task record contains concrete shell commands, Python scripts, or TypeScript code that form a complete, reusable automation.
256
+ - Each script must be self-contained and runnable.
257
+ - If there are no automatable scripts, return an empty array.
258
+ - Don't fabricate scripts — only extract what was actually used.
259
+
260
+ SKILL.md:
261
+ ${newContent.slice(0, 4000)}
262
+
263
+ Task conversation highlights:
264
+ ${conversationText}
265
+
266
+ Reply with a JSON array only:
267
+ [{"filename": "deploy.sh", "content": "#!/bin/bash\\n..."}]
268
+ If no scripts, reply with: []`;
269
+ try {
270
+ const raw = await (0, llm_call_1.callLLMWithFallback)(chain, scriptsPrompt, this.ctx.log, "SkillUpgrader.scripts", {
271
+ maxTokens: 3000, temperature: 0.1, timeoutMs: 60_000, openclawAPI: this.ctx.openclawAPI,
272
+ });
273
+ const scripts = this.parseJSONArray(raw);
274
+ const scriptsDir = path.join(skill.dirPath, "scripts");
275
+ if (fs.existsSync(scriptsDir))
276
+ fs.rmSync(scriptsDir, { recursive: true });
277
+ if (scripts.length > 0) {
278
+ fs.mkdirSync(scriptsDir, { recursive: true });
279
+ for (const s of scripts) {
280
+ fs.writeFileSync(path.join(scriptsDir, s.filename), s.content, "utf-8");
281
+ }
282
+ this.ctx.log.info(`SkillUpgrader: rebuilt ${scripts.length} scripts for "${skill.name}"`);
283
+ }
284
+ }
285
+ catch (err) {
286
+ this.ctx.log.warn(`SkillUpgrader: companion scripts rebuild failed: ${err}`);
287
+ }
288
+ try {
289
+ const evalsPrompt = `Based on the following skill, generate 3-4 realistic test prompts that should trigger this skill.
290
+ Requirements:
291
+ - Write test prompts that a real user would type, mix direct and indirect phrasings
292
+ - LANGUAGE RULE: Write in the SAME language as the skill content.
293
+
294
+ Skill:
295
+ ${newContent.slice(0, 4000)}
296
+
297
+ Reply with a JSON array only:
298
+ [{"id": 1, "prompt": "A realistic user message", "expectations": ["Expected behavior 1"], "trigger_confidence": "high"}]`;
299
+ const raw = await (0, llm_call_1.callLLMWithFallback)(chain, evalsPrompt, this.ctx.log, "SkillUpgrader.evals", {
300
+ maxTokens: 2000, temperature: 0.3, timeoutMs: 60_000, openclawAPI: this.ctx.openclawAPI,
301
+ });
302
+ const evals = this.parseJSONArray(raw);
303
+ const evalsDir = path.join(skill.dirPath, "evals");
304
+ if (fs.existsSync(evalsDir))
305
+ fs.rmSync(evalsDir, { recursive: true });
306
+ if (evals.length > 0) {
307
+ fs.mkdirSync(evalsDir, { recursive: true });
308
+ fs.writeFileSync(path.join(evalsDir, "evals.json"), JSON.stringify({ skill_name: skill.name, evals }, null, 2), "utf-8");
309
+ this.ctx.log.info(`SkillUpgrader: rebuilt ${evals.length} evals for "${skill.name}"`);
310
+ }
311
+ }
312
+ catch (err) {
313
+ this.ctx.log.warn(`SkillUpgrader: companion evals rebuild failed: ${err}`);
314
+ }
315
+ try {
316
+ const refsPrompt = `Based on the following upgraded SKILL.md and task record, extract reference documentation worth preserving.
317
+ Rules:
318
+ - Only extract real reference content that appeared in the task (API docs, config examples, architecture notes).
319
+ - Each reference should be a standalone document useful for understanding the skill's domain.
320
+ - If there are no meaningful references, return an empty array.
321
+ - Don't fabricate content — only extract what was actually discussed or used.
322
+ - LANGUAGE RULE: Write in the SAME language as the skill content.
323
+
324
+ SKILL.md:
325
+ ${newContent.slice(0, 4000)}
326
+
327
+ Task conversation highlights:
328
+ ${conversationText}
329
+
330
+ Reply with a JSON array only:
331
+ [{"filename": "api-notes.md", "content": "# API Reference\\n..."}]
332
+ If no references, reply with: []`;
333
+ const raw = await (0, llm_call_1.callLLMWithFallback)(chain, refsPrompt, this.ctx.log, "SkillUpgrader.references", {
334
+ maxTokens: 3000, temperature: 0.1, timeoutMs: 60_000, openclawAPI: this.ctx.openclawAPI,
335
+ });
336
+ const refs = this.parseJSONArray(raw);
337
+ const refsDir = path.join(skill.dirPath, "references");
338
+ if (fs.existsSync(refsDir))
339
+ fs.rmSync(refsDir, { recursive: true });
340
+ if (refs.length > 0) {
341
+ fs.mkdirSync(refsDir, { recursive: true });
342
+ for (const r of refs) {
343
+ fs.writeFileSync(path.join(refsDir, r.filename), r.content, "utf-8");
344
+ }
345
+ this.ctx.log.info(`SkillUpgrader: rebuilt ${refs.length} references for "${skill.name}"`);
346
+ }
347
+ }
348
+ catch (err) {
349
+ this.ctx.log.warn(`SkillUpgrader: companion references rebuild failed: ${err}`);
350
+ }
351
+ }
352
+ parseJSONArray(raw) {
353
+ const match = raw.match(/\[[\s\S]*\]/);
354
+ if (!match)
355
+ return [];
356
+ try {
357
+ const arr = JSON.parse(match[0]);
358
+ return Array.isArray(arr) ? arr : [];
359
+ }
360
+ catch {
361
+ return [];
362
+ }
363
+ }
226
364
  }
227
365
  exports.SkillUpgrader = SkillUpgrader;
228
366
  //# sourceMappingURL=upgrader.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"upgrader.js","sourceRoot":"","sources":["../../src/skill/upgrader.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"upgrader.js","sourceRoot":"","sources":["../../src/skill/upgrader.ts"],"names":[],"mappings":"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"}
@@ -22,6 +22,9 @@ export declare class SkillValidator {
22
22
  * Check that an upgrade doesn't lose significant content from the previous version.
23
23
  */
24
24
  private regressionCheck;
25
+ private checkCompanionConsistency;
26
+ private static readonly SECRET_PATTERNS;
27
+ private scanSecrets;
25
28
  private assessQuality;
26
29
  }
27
30
  //# sourceMappingURL=validator.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"validator.d.ts","sourceRoot":"","sources":["../../src/skill/validator.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAI9C,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,OAAO,CAAC;IACf,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,WAAW,EAAE,MAAM,EAAE,CAAC;CACvB;AAED,qBAAa,cAAc;IACb,OAAO,CAAC,GAAG;gBAAH,GAAG,EAAE,aAAa;IAEtC;;;OAGG;IACG,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,OAAO,CAAC;QAAC,eAAe,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,gBAAgB,CAAC;IA4BlH,OAAO,CAAC,cAAc;IA8DtB;;OAEG;IACH,OAAO,CAAC,eAAe;YAqBT,aAAa;CAqC5B"}
1
+ {"version":3,"file":"validator.d.ts","sourceRoot":"","sources":["../../src/skill/validator.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAI9C,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,OAAO,CAAC;IACf,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,WAAW,EAAE,MAAM,EAAE,CAAC;CACvB;AAED,qBAAa,cAAc;IACb,OAAO,CAAC,GAAG;gBAAH,GAAG,EAAE,aAAa;IAEtC;;;OAGG;IACG,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,OAAO,CAAC;QAAC,eAAe,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,gBAAgB,CAAC;IA+BlH,OAAO,CAAC,cAAc;IA8DtB;;OAEG;IACH,OAAO,CAAC,eAAe;IAqBvB,OAAO,CAAC,yBAAyB;IA6CjC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,eAAe,CAMrC;IAEF,OAAO,CAAC,WAAW;YAuBL,aAAa;CAqC5B"}
@@ -58,6 +58,8 @@ class SkillValidator {
58
58
  this.validateFormat(dirPath, result);
59
59
  if (!result.valid)
60
60
  return result;
61
+ this.checkCompanionConsistency(dirPath, result);
62
+ this.scanSecrets(dirPath, result);
61
63
  if (opts?.previousContent) {
62
64
  this.regressionCheck(dirPath, opts.previousContent, result);
63
65
  }
@@ -143,6 +145,79 @@ class SkillValidator {
143
145
  result.warnings.push(`Sections may have been lost: ${missingSections.join(", ")}`);
144
146
  }
145
147
  }
148
+ checkCompanionConsistency(dirPath, result) {
149
+ const skillMdPath = path.join(dirPath, "SKILL.md");
150
+ const content = fs.readFileSync(skillMdPath, "utf-8");
151
+ const referencedScripts = [...content.matchAll(/`scripts\/([^`]+)`/g)].map(m => m[1]);
152
+ const referencedRefs = [...content.matchAll(/`references\/([^`]+)`/g)].map(m => m[1]);
153
+ const scriptsDir = path.join(dirPath, "scripts");
154
+ const refsDir = path.join(dirPath, "references");
155
+ for (const f of referencedScripts) {
156
+ if (!fs.existsSync(path.join(scriptsDir, f))) {
157
+ result.warnings.push(`SKILL.md references scripts/${f} but file does not exist`);
158
+ }
159
+ }
160
+ for (const f of referencedRefs) {
161
+ if (!fs.existsSync(path.join(refsDir, f))) {
162
+ result.warnings.push(`SKILL.md references references/${f} but file does not exist`);
163
+ }
164
+ }
165
+ if (fs.existsSync(scriptsDir)) {
166
+ try {
167
+ const actualScripts = fs.readdirSync(scriptsDir);
168
+ for (const f of actualScripts) {
169
+ if (!referencedScripts.includes(f)) {
170
+ result.warnings.push(`scripts/${f} exists but is not referenced in SKILL.md`);
171
+ }
172
+ }
173
+ }
174
+ catch { /* best-effort */ }
175
+ }
176
+ const evalsPath = path.join(dirPath, "evals", "evals.json");
177
+ if (fs.existsSync(evalsPath)) {
178
+ try {
179
+ const evalsData = JSON.parse(fs.readFileSync(evalsPath, "utf-8"));
180
+ if (!Array.isArray(evalsData?.evals) && !Array.isArray(evalsData)) {
181
+ result.warnings.push("evals/evals.json exists but has unexpected structure");
182
+ }
183
+ }
184
+ catch {
185
+ result.warnings.push("evals/evals.json exists but is not valid JSON");
186
+ }
187
+ }
188
+ }
189
+ static SECRET_PATTERNS = [
190
+ { label: "API key (sk-...)", regex: /\bsk-[a-zA-Z0-9]{20,}\b/ },
191
+ { label: "Bearer token", regex: /\bBearer\s+[a-zA-Z0-9_\-.]{20,}\b/ },
192
+ { label: "AWS key", regex: /\bAKIA[0-9A-Z]{16}\b/ },
193
+ { label: "Generic secret assignment", regex: /(api[_-]?key|secret|token|password|credential)\s*[:=]\s*["'][^"']{8,}["']/i },
194
+ { label: "Base64 encoded secret (long)", regex: /\b[A-Za-z0-9+/]{40,}={0,2}\b/ },
195
+ ];
196
+ scanSecrets(dirPath, result) {
197
+ const filesToScan = ["SKILL.md"];
198
+ const scriptsDir = path.join(dirPath, "scripts");
199
+ if (fs.existsSync(scriptsDir)) {
200
+ try {
201
+ for (const f of fs.readdirSync(scriptsDir))
202
+ filesToScan.push(path.join("scripts", f));
203
+ }
204
+ catch { /* best-effort */ }
205
+ }
206
+ for (const relPath of filesToScan) {
207
+ const fullPath = path.join(dirPath, relPath);
208
+ if (!fs.existsSync(fullPath))
209
+ continue;
210
+ try {
211
+ const content = fs.readFileSync(fullPath, "utf-8");
212
+ for (const { label, regex } of SkillValidator.SECRET_PATTERNS) {
213
+ if (regex.test(content)) {
214
+ result.warnings.push(`Potential secret detected in ${relPath}: ${label}`);
215
+ }
216
+ }
217
+ }
218
+ catch { /* best-effort */ }
219
+ }
220
+ }
146
221
  async assessQuality(dirPath, result) {
147
222
  const chain = (0, llm_call_1.buildSkillConfigChain)(this.ctx);
148
223
  if (chain.length === 0)
@@ -1 +1 @@
1
- {"version":3,"file":"validator.js","sourceRoot":"","sources":["../../src/skill/validator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"validator.js","sourceRoot":"","sources":["../../src/skill/validator.ts"],"names":[],"mappings":"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"}
@@ -7,10 +7,13 @@ export declare class SqliteStore {
7
7
  private migrate;
8
8
  private migrateChunksIndexesForRecall;
9
9
  private migrateLocalSharedTasksOwner;
10
+ private migrateHubUserIdentityFields;
11
+ private migrateClientHubConnectionIdentityFields;
10
12
  private migrateOwnerFields;
11
13
  private migrateSkillVisibility;
12
14
  private migrateSkillEmbeddingsAndFts;
13
15
  private migrateFtsToTrigram;
16
+ private migrateHubFtsToTrigram;
14
17
  private migrateTaskId;
15
18
  private migrateContentHash;
16
19
  private migrateSkillTables;
@@ -104,6 +107,14 @@ export declare class SqliteStore {
104
107
  role: string;
105
108
  createdAt: number;
106
109
  }>;
110
+ hubMemoryPatternSearch(patterns: string[], opts?: {
111
+ limit?: number;
112
+ }): Array<{
113
+ memoryId: string;
114
+ content: string;
115
+ role: string;
116
+ createdAt: number;
117
+ }>;
107
118
  getAllEmbeddings(ownerFilter?: string[]): Array<{
108
119
  chunkId: string;
109
120
  vector: number[];
@@ -263,7 +274,22 @@ export declare class SqliteStore {
263
274
  getHubUser(userId: string): HubUserRecord | null;
264
275
  listHubUsers(status?: UserStatus): HubUserRecord[];
265
276
  deleteHubUser(userId: string, cleanResources?: boolean): boolean;
277
+ findHubUserByIdentityKey(identityKey: string): HubUserRecord | null;
278
+ markHubUserLeft(userId: string): boolean;
266
279
  updateHubUserActivity(userId: string, ip: string, timestamp?: number): void;
280
+ upsertHubGroup(group: {
281
+ id: string;
282
+ name: string;
283
+ description?: string;
284
+ createdAt: number;
285
+ }): void;
286
+ addHubGroupMember(groupId: string, userId: string, joinedAt: number): void;
287
+ removeHubGroupMember(groupId: string, userId: string): void;
288
+ getGroupsForHubUser(userId: string): Array<{
289
+ id: string;
290
+ name: string;
291
+ description: string;
292
+ }>;
267
293
  getHubUserContributions(): Record<string, {
268
294
  memoryCount: number;
269
295
  taskCount: number;
@@ -280,6 +306,10 @@ export declare class SqliteStore {
280
306
  getHubSkillById(skillId: string): HubSkillRecord | null;
281
307
  upsertHubSkillEmbedding(skillId: string, vector: number[], sourceUserId: string, sourceSkillId: string): void;
282
308
  getHubSkillEmbedding(skillId: string): number[] | null;
309
+ getVisibleHubSkillEmbeddings(): Array<{
310
+ skillId: string;
311
+ vector: Float32Array;
312
+ }>;
283
313
  searchHubChunks(query: string, options?: {
284
314
  userId?: string;
285
315
  maxResults?: number;
@@ -313,6 +343,7 @@ export declare class SqliteStore {
313
343
  groupName: string | null;
314
344
  visibility: string;
315
345
  ownerName: string;
346
+ ownerStatus: string;
316
347
  chunkCount: number;
317
348
  createdAt: number;
318
349
  updatedAt: number;
@@ -327,6 +358,7 @@ export declare class SqliteStore {
327
358
  groupName: string | null;
328
359
  visibility: string;
329
360
  ownerName: string;
361
+ ownerStatus: string;
330
362
  chunkCount: number;
331
363
  createdAt: number;
332
364
  updatedAt: number;
@@ -344,6 +376,7 @@ export declare class SqliteStore {
344
376
  groupName: string | null;
345
377
  visibility: string;
346
378
  ownerName: string;
379
+ ownerStatus: string;
347
380
  qualityScore: number | null;
348
381
  createdAt: number;
349
382
  updatedAt: number;
@@ -359,6 +392,7 @@ export declare class SqliteStore {
359
392
  groupName: string | null;
360
393
  visibility: string;
361
394
  ownerName: string;
395
+ ownerStatus: string;
362
396
  qualityScore: number | null;
363
397
  createdAt: number;
364
398
  updatedAt: number;
@@ -369,6 +403,19 @@ export declare class SqliteStore {
369
403
  getHubMemoryById(memoryId: string): HubMemoryRecord | null;
370
404
  deleteHubMemoryBySource(sourceUserId: string, sourceChunkId: string): void;
371
405
  deleteHubMemoryById(memoryId: string): boolean;
406
+ upsertTeamSharedChunk(chunkId: string, row: {
407
+ hubMemoryId?: string;
408
+ visibility?: string;
409
+ groupId?: string | null;
410
+ }): void;
411
+ getTeamSharedChunk(chunkId: string): {
412
+ chunkId: string;
413
+ hubMemoryId: string;
414
+ visibility: string;
415
+ groupId: string | null;
416
+ sharedAt: number;
417
+ } | null;
418
+ deleteTeamSharedChunk(chunkId: string): boolean;
372
419
  insertHubNotification(n: {
373
420
  id: string;
374
421
  userId: string;
@@ -420,6 +467,7 @@ export declare class SqliteStore {
420
467
  groupName: string | null;
421
468
  visibility: string;
422
469
  ownerName: string;
470
+ ownerStatus: string;
423
471
  createdAt: number;
424
472
  updatedAt: number;
425
473
  }>;
@@ -435,6 +483,7 @@ export declare class SqliteStore {
435
483
  groupName: string | null;
436
484
  visibility: string;
437
485
  ownerName: string;
486
+ ownerStatus: string;
438
487
  createdAt: number;
439
488
  updatedAt: number;
440
489
  }>;
@@ -450,6 +499,8 @@ interface ClientHubConnection {
450
499
  userToken: string;
451
500
  role: UserRole;
452
501
  connectedAt: number;
502
+ identityKey?: string;
503
+ lastKnownStatus?: string;
453
504
  }
454
505
  interface HubUserRecord extends UserInfo {
455
506
  tokenHash: string;
@@ -457,6 +508,11 @@ interface HubUserRecord extends UserInfo {
457
508
  approvedAt: number | null;
458
509
  lastIp: string;
459
510
  lastActiveAt: number | null;
511
+ identityKey?: string;
512
+ leftAt?: number | null;
513
+ removedAt?: number | null;
514
+ rejectedAt?: number | null;
515
+ rejoinRequestedAt?: number | null;
460
516
  }
461
517
  interface HubTaskRecord {
462
518
  id: string;
@@ -514,6 +570,7 @@ interface HubSkillSearchRow {
514
570
  visibility: string;
515
571
  group_name: string | null;
516
572
  owner_name: string | null;
573
+ owner_status: string | null;
517
574
  quality_score: number | null;
518
575
  }
519
576
  interface HubSearchRow {