@memtensor/memos-local-openclaw-plugin 1.0.6-beta.9 → 1.0.7-beta.1

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 (228) hide show
  1. package/index.ts +266 -273
  2. package/openclaw.plugin.json +1 -1
  3. package/package.json +3 -5
  4. package/prebuilds/darwin-arm64/better_sqlite3.node +0 -0
  5. package/prebuilds/darwin-x64/better_sqlite3.node +0 -0
  6. package/prebuilds/linux-x64/better_sqlite3.node +0 -0
  7. package/prebuilds/win32-x64/better_sqlite3.node +0 -0
  8. package/scripts/postinstall.cjs +44 -44
  9. package/skill/memos-memory-guide/SKILL.md +25 -2
  10. package/src/context-engine/index.ts +321 -0
  11. package/src/ingest/providers/index.ts +14 -1
  12. package/src/shared/llm-call.ts +14 -1
  13. package/src/update-check.ts +2 -7
  14. package/src/viewer/html.ts +4 -4
  15. package/src/viewer/server.ts +25 -3
  16. package/telemetry.credentials.json +5 -0
  17. package/dist/capture/index.d.ts +0 -26
  18. package/dist/capture/index.d.ts.map +0 -1
  19. package/dist/capture/index.js +0 -283
  20. package/dist/capture/index.js.map +0 -1
  21. package/dist/client/connector.d.ts +0 -34
  22. package/dist/client/connector.d.ts.map +0 -1
  23. package/dist/client/connector.js +0 -381
  24. package/dist/client/connector.js.map +0 -1
  25. package/dist/client/hub.d.ts +0 -61
  26. package/dist/client/hub.d.ts.map +0 -1
  27. package/dist/client/hub.js +0 -174
  28. package/dist/client/hub.js.map +0 -1
  29. package/dist/client/skill-sync.d.ts +0 -36
  30. package/dist/client/skill-sync.d.ts.map +0 -1
  31. package/dist/client/skill-sync.js +0 -226
  32. package/dist/client/skill-sync.js.map +0 -1
  33. package/dist/config.d.ts +0 -5
  34. package/dist/config.d.ts.map +0 -1
  35. package/dist/config.js +0 -171
  36. package/dist/config.js.map +0 -1
  37. package/dist/embedding/index.d.ts +0 -14
  38. package/dist/embedding/index.d.ts.map +0 -1
  39. package/dist/embedding/index.js +0 -105
  40. package/dist/embedding/index.js.map +0 -1
  41. package/dist/embedding/local.d.ts +0 -3
  42. package/dist/embedding/local.d.ts.map +0 -1
  43. package/dist/embedding/local.js +0 -66
  44. package/dist/embedding/local.js.map +0 -1
  45. package/dist/embedding/providers/cohere.d.ts +0 -4
  46. package/dist/embedding/providers/cohere.d.ts.map +0 -1
  47. package/dist/embedding/providers/cohere.js +0 -57
  48. package/dist/embedding/providers/cohere.js.map +0 -1
  49. package/dist/embedding/providers/gemini.d.ts +0 -3
  50. package/dist/embedding/providers/gemini.d.ts.map +0 -1
  51. package/dist/embedding/providers/gemini.js +0 -31
  52. package/dist/embedding/providers/gemini.js.map +0 -1
  53. package/dist/embedding/providers/mistral.d.ts +0 -3
  54. package/dist/embedding/providers/mistral.d.ts.map +0 -1
  55. package/dist/embedding/providers/mistral.js +0 -25
  56. package/dist/embedding/providers/mistral.js.map +0 -1
  57. package/dist/embedding/providers/openai.d.ts +0 -3
  58. package/dist/embedding/providers/openai.d.ts.map +0 -1
  59. package/dist/embedding/providers/openai.js +0 -35
  60. package/dist/embedding/providers/openai.js.map +0 -1
  61. package/dist/embedding/providers/voyage.d.ts +0 -3
  62. package/dist/embedding/providers/voyage.d.ts.map +0 -1
  63. package/dist/embedding/providers/voyage.js +0 -25
  64. package/dist/embedding/providers/voyage.js.map +0 -1
  65. package/dist/hub/auth.d.ts +0 -19
  66. package/dist/hub/auth.d.ts.map +0 -1
  67. package/dist/hub/auth.js +0 -70
  68. package/dist/hub/auth.js.map +0 -1
  69. package/dist/hub/server.d.ts +0 -52
  70. package/dist/hub/server.d.ts.map +0 -1
  71. package/dist/hub/server.js +0 -1197
  72. package/dist/hub/server.js.map +0 -1
  73. package/dist/hub/user-manager.d.ts +0 -40
  74. package/dist/hub/user-manager.d.ts.map +0 -1
  75. package/dist/hub/user-manager.js +0 -153
  76. package/dist/hub/user-manager.js.map +0 -1
  77. package/dist/index.d.ts +0 -46
  78. package/dist/index.d.ts.map +0 -1
  79. package/dist/index.js +0 -82
  80. package/dist/index.js.map +0 -1
  81. package/dist/ingest/chunker.d.ts +0 -15
  82. package/dist/ingest/chunker.d.ts.map +0 -1
  83. package/dist/ingest/chunker.js +0 -192
  84. package/dist/ingest/chunker.js.map +0 -1
  85. package/dist/ingest/dedup.d.ts +0 -19
  86. package/dist/ingest/dedup.d.ts.map +0 -1
  87. package/dist/ingest/dedup.js +0 -50
  88. package/dist/ingest/dedup.js.map +0 -1
  89. package/dist/ingest/providers/anthropic.d.ts +0 -21
  90. package/dist/ingest/providers/anthropic.d.ts.map +0 -1
  91. package/dist/ingest/providers/anthropic.js +0 -314
  92. package/dist/ingest/providers/anthropic.js.map +0 -1
  93. package/dist/ingest/providers/bedrock.d.ts +0 -21
  94. package/dist/ingest/providers/bedrock.d.ts.map +0 -1
  95. package/dist/ingest/providers/bedrock.js +0 -313
  96. package/dist/ingest/providers/bedrock.js.map +0 -1
  97. package/dist/ingest/providers/gemini.d.ts +0 -21
  98. package/dist/ingest/providers/gemini.d.ts.map +0 -1
  99. package/dist/ingest/providers/gemini.js +0 -298
  100. package/dist/ingest/providers/gemini.js.map +0 -1
  101. package/dist/ingest/providers/index.d.ts +0 -68
  102. package/dist/ingest/providers/index.d.ts.map +0 -1
  103. package/dist/ingest/providers/index.js +0 -611
  104. package/dist/ingest/providers/index.js.map +0 -1
  105. package/dist/ingest/providers/openai.d.ts +0 -30
  106. package/dist/ingest/providers/openai.d.ts.map +0 -1
  107. package/dist/ingest/providers/openai.js +0 -387
  108. package/dist/ingest/providers/openai.js.map +0 -1
  109. package/dist/ingest/task-processor.d.ts +0 -91
  110. package/dist/ingest/task-processor.d.ts.map +0 -1
  111. package/dist/ingest/task-processor.js +0 -478
  112. package/dist/ingest/task-processor.js.map +0 -1
  113. package/dist/ingest/worker.d.ts +0 -23
  114. package/dist/ingest/worker.d.ts.map +0 -1
  115. package/dist/ingest/worker.js +0 -255
  116. package/dist/ingest/worker.js.map +0 -1
  117. package/dist/openclaw-api.d.ts +0 -53
  118. package/dist/openclaw-api.d.ts.map +0 -1
  119. package/dist/openclaw-api.js +0 -189
  120. package/dist/openclaw-api.js.map +0 -1
  121. package/dist/recall/engine.d.ts +0 -28
  122. package/dist/recall/engine.d.ts.map +0 -1
  123. package/dist/recall/engine.js +0 -343
  124. package/dist/recall/engine.js.map +0 -1
  125. package/dist/recall/mmr.d.ts +0 -17
  126. package/dist/recall/mmr.d.ts.map +0 -1
  127. package/dist/recall/mmr.js +0 -53
  128. package/dist/recall/mmr.js.map +0 -1
  129. package/dist/recall/recency.d.ts +0 -20
  130. package/dist/recall/recency.d.ts.map +0 -1
  131. package/dist/recall/recency.js +0 -26
  132. package/dist/recall/recency.js.map +0 -1
  133. package/dist/recall/rrf.d.ts +0 -16
  134. package/dist/recall/rrf.d.ts.map +0 -1
  135. package/dist/recall/rrf.js +0 -15
  136. package/dist/recall/rrf.js.map +0 -1
  137. package/dist/shared/llm-call.d.ts +0 -30
  138. package/dist/shared/llm-call.d.ts.map +0 -1
  139. package/dist/shared/llm-call.js +0 -253
  140. package/dist/shared/llm-call.js.map +0 -1
  141. package/dist/sharing/types.contract.d.ts +0 -2
  142. package/dist/sharing/types.contract.d.ts.map +0 -1
  143. package/dist/sharing/types.contract.js +0 -3
  144. package/dist/sharing/types.contract.js.map +0 -1
  145. package/dist/sharing/types.d.ts +0 -80
  146. package/dist/sharing/types.d.ts.map +0 -1
  147. package/dist/sharing/types.js +0 -3
  148. package/dist/sharing/types.js.map +0 -1
  149. package/dist/skill/bundled-memory-guide.d.ts +0 -2
  150. package/dist/skill/bundled-memory-guide.d.ts.map +0 -1
  151. package/dist/skill/bundled-memory-guide.js +0 -45
  152. package/dist/skill/bundled-memory-guide.js.map +0 -1
  153. package/dist/skill/evaluator.d.ts +0 -28
  154. package/dist/skill/evaluator.d.ts.map +0 -1
  155. package/dist/skill/evaluator.js +0 -169
  156. package/dist/skill/evaluator.js.map +0 -1
  157. package/dist/skill/evolver.d.ts +0 -48
  158. package/dist/skill/evolver.d.ts.map +0 -1
  159. package/dist/skill/evolver.js +0 -406
  160. package/dist/skill/evolver.js.map +0 -1
  161. package/dist/skill/generator.d.ts +0 -26
  162. package/dist/skill/generator.d.ts.map +0 -1
  163. package/dist/skill/generator.js +0 -521
  164. package/dist/skill/generator.js.map +0 -1
  165. package/dist/skill/installer.d.ts +0 -42
  166. package/dist/skill/installer.d.ts.map +0 -1
  167. package/dist/skill/installer.js +0 -165
  168. package/dist/skill/installer.js.map +0 -1
  169. package/dist/skill/upgrader.d.ts +0 -19
  170. package/dist/skill/upgrader.d.ts.map +0 -1
  171. package/dist/skill/upgrader.js +0 -366
  172. package/dist/skill/upgrader.js.map +0 -1
  173. package/dist/skill/validator.d.ts +0 -30
  174. package/dist/skill/validator.d.ts.map +0 -1
  175. package/dist/skill/validator.js +0 -272
  176. package/dist/skill/validator.js.map +0 -1
  177. package/dist/storage/ensure-binding.d.ts +0 -12
  178. package/dist/storage/ensure-binding.d.ts.map +0 -1
  179. package/dist/storage/ensure-binding.js +0 -53
  180. package/dist/storage/ensure-binding.js.map +0 -1
  181. package/dist/storage/sqlite.d.ts +0 -649
  182. package/dist/storage/sqlite.d.ts.map +0 -1
  183. package/dist/storage/sqlite.js +0 -2657
  184. package/dist/storage/sqlite.js.map +0 -1
  185. package/dist/storage/vector.d.ts +0 -12
  186. package/dist/storage/vector.d.ts.map +0 -1
  187. package/dist/storage/vector.js +0 -34
  188. package/dist/storage/vector.js.map +0 -1
  189. package/dist/telemetry.d.ts +0 -47
  190. package/dist/telemetry.d.ts.map +0 -1
  191. package/dist/telemetry.js +0 -312
  192. package/dist/telemetry.js.map +0 -1
  193. package/dist/tools/index.d.ts +0 -5
  194. package/dist/tools/index.d.ts.map +0 -1
  195. package/dist/tools/index.js +0 -12
  196. package/dist/tools/index.js.map +0 -1
  197. package/dist/tools/memory-get.d.ts +0 -4
  198. package/dist/tools/memory-get.d.ts.map +0 -1
  199. package/dist/tools/memory-get.js +0 -64
  200. package/dist/tools/memory-get.js.map +0 -1
  201. package/dist/tools/memory-search.d.ts +0 -7
  202. package/dist/tools/memory-search.d.ts.map +0 -1
  203. package/dist/tools/memory-search.js +0 -84
  204. package/dist/tools/memory-search.js.map +0 -1
  205. package/dist/tools/memory-timeline.d.ts +0 -4
  206. package/dist/tools/memory-timeline.d.ts.map +0 -1
  207. package/dist/tools/memory-timeline.js +0 -73
  208. package/dist/tools/memory-timeline.js.map +0 -1
  209. package/dist/tools/network-memory-detail.d.ts +0 -4
  210. package/dist/tools/network-memory-detail.d.ts.map +0 -1
  211. package/dist/tools/network-memory-detail.js +0 -34
  212. package/dist/tools/network-memory-detail.js.map +0 -1
  213. package/dist/types.d.ts +0 -330
  214. package/dist/types.d.ts.map +0 -1
  215. package/dist/types.js +0 -38
  216. package/dist/types.js.map +0 -1
  217. package/dist/update-check.d.ts +0 -21
  218. package/dist/update-check.d.ts.map +0 -1
  219. package/dist/update-check.js +0 -110
  220. package/dist/update-check.js.map +0 -1
  221. package/dist/viewer/html.d.ts +0 -2
  222. package/dist/viewer/html.d.ts.map +0 -1
  223. package/dist/viewer/html.js +0 -9168
  224. package/dist/viewer/html.js.map +0 -1
  225. package/dist/viewer/server.d.ts +0 -205
  226. package/dist/viewer/server.d.ts.map +0 -1
  227. package/dist/viewer/server.js +0 -4876
  228. package/dist/viewer/server.js.map +0 -1
@@ -1,272 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || (function () {
19
- var ownKeys = function(o) {
20
- ownKeys = Object.getOwnPropertyNames || function (o) {
21
- var ar = [];
22
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
- return ar;
24
- };
25
- return ownKeys(o);
26
- };
27
- return function (mod) {
28
- if (mod && mod.__esModule) return mod;
29
- var result = {};
30
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
- __setModuleDefault(result, mod);
32
- return result;
33
- };
34
- })();
35
- Object.defineProperty(exports, "__esModule", { value: true });
36
- exports.SkillValidator = void 0;
37
- const fs = __importStar(require("fs"));
38
- const path = __importStar(require("path"));
39
- const types_1 = require("../types");
40
- const llm_call_1 = require("../shared/llm-call");
41
- class SkillValidator {
42
- ctx;
43
- constructor(ctx) {
44
- this.ctx = ctx;
45
- }
46
- /**
47
- * Format validation (no LLM needed) + optional LLM quality assessment.
48
- * Returns combined result with score 0-10.
49
- */
50
- async validate(dirPath, opts) {
51
- const result = {
52
- valid: true,
53
- qualityScore: null,
54
- errors: [],
55
- warnings: [],
56
- suggestions: [],
57
- };
58
- this.validateFormat(dirPath, result);
59
- if (!result.valid)
60
- return result;
61
- this.checkCompanionConsistency(dirPath, result);
62
- this.scanSecrets(dirPath, result);
63
- if (opts?.previousContent) {
64
- this.regressionCheck(dirPath, opts.previousContent, result);
65
- }
66
- if (!opts?.skipLLM) {
67
- try {
68
- await this.assessQuality(dirPath, result);
69
- }
70
- catch (err) {
71
- this.ctx.log.warn(`SkillValidator: LLM quality assessment failed: ${err}`);
72
- result.warnings.push(`Quality assessment skipped: ${err}`);
73
- }
74
- }
75
- return result;
76
- }
77
- validateFormat(dirPath, result) {
78
- const skillMdPath = path.join(dirPath, "SKILL.md");
79
- if (!fs.existsSync(skillMdPath)) {
80
- result.valid = false;
81
- result.errors.push("SKILL.md not found");
82
- return;
83
- }
84
- const content = fs.readFileSync(skillMdPath, "utf-8");
85
- if (!content.trim()) {
86
- result.valid = false;
87
- result.errors.push("SKILL.md is empty");
88
- return;
89
- }
90
- const fmMatch = content.match(/^---\s*\n([\s\S]*?)\n---/);
91
- if (!fmMatch) {
92
- result.valid = false;
93
- result.errors.push("YAML frontmatter missing (expected --- ... ---)");
94
- return;
95
- }
96
- const frontmatter = fmMatch[1];
97
- const nameMatch = frontmatter.match(/^name:\s*["']?(.+?)["']?\s*$/m);
98
- if (!nameMatch || !nameMatch[1].trim()) {
99
- result.valid = false;
100
- result.errors.push("Frontmatter missing 'name' field");
101
- return;
102
- }
103
- const name = nameMatch[1].trim();
104
- if (name.length > 64) {
105
- result.errors.push(`Name too long (${name.length} chars, max 64)`);
106
- result.valid = false;
107
- }
108
- if (!/^[a-z0-9][a-z0-9-]*[a-z0-9]$/.test(name) && name.length > 1) {
109
- result.warnings.push(`Name "${name}" is not strict kebab-case`);
110
- }
111
- const descMatch = frontmatter.match(/^description:\s*["']?([\s\S]*?)["']?\s*$/m);
112
- if (!descMatch || !descMatch[1].trim()) {
113
- result.valid = false;
114
- result.errors.push("Frontmatter missing 'description' field");
115
- return;
116
- }
117
- const desc = descMatch[1].trim();
118
- if (desc.length > 1024) {
119
- result.warnings.push(`Description too long (${desc.length} chars, max 1024)`);
120
- }
121
- const maxLines = this.ctx.config.skillEvolution?.maxSkillLines ?? types_1.DEFAULTS.skillMaxLines;
122
- const lineCount = content.split("\n").length;
123
- if (lineCount > maxLines) {
124
- result.warnings.push(`Content exceeds ${maxLines} lines (has ${lineCount})`);
125
- }
126
- if (content.length < 200) {
127
- result.warnings.push("Content seems very short (< 200 chars)");
128
- }
129
- }
130
- /**
131
- * Check that an upgrade doesn't lose significant content from the previous version.
132
- */
133
- regressionCheck(dirPath, previousContent, result) {
134
- const skillMdPath = path.join(dirPath, "SKILL.md");
135
- const newContent = fs.readFileSync(skillMdPath, "utf-8");
136
- const prevLines = previousContent.split("\n").length;
137
- const newLines = newContent.split("\n").length;
138
- if (newLines < prevLines * 0.7 && prevLines > 20) {
139
- result.warnings.push(`Content shrank significantly: ${prevLines} → ${newLines} lines (${Math.round((1 - newLines / prevLines) * 100)}% reduction)`);
140
- }
141
- const prevSections = (previousContent.match(/^##\s+.+$/gm) || []).map(s => s.replace(/^##\s+/, "").trim().toLowerCase());
142
- const newSections = (newContent.match(/^##\s+.+$/gm) || []).map(s => s.replace(/^##\s+/, "").trim().toLowerCase());
143
- const missingSections = prevSections.filter(s => !newSections.some(ns => ns.includes(s) || s.includes(ns)));
144
- if (missingSections.length > 0) {
145
- result.warnings.push(`Sections may have been lost: ${missingSections.join(", ")}`);
146
- }
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
- }
221
- async assessQuality(dirPath, result) {
222
- const chain = (0, llm_call_1.buildSkillConfigChain)(this.ctx);
223
- if (chain.length === 0)
224
- return;
225
- const skillMdPath = path.join(dirPath, "SKILL.md");
226
- const content = fs.readFileSync(skillMdPath, "utf-8");
227
- const prompt = QUALITY_PROMPT.replace("{SKILL_CONTENT}", content.slice(0, 6000));
228
- try {
229
- const raw = await (0, llm_call_1.callLLMWithFallback)(chain, prompt, this.ctx.log, "SkillValidator.quality", { openclawAPI: this.ctx.openclawAPI });
230
- const jsonMatch = raw.match(/\{[\s\S]*\}/);
231
- if (!jsonMatch)
232
- return;
233
- const assessment = JSON.parse(jsonMatch[0]);
234
- result.qualityScore = Math.max(0, Math.min(10, assessment.score));
235
- if (assessment.suggestions) {
236
- result.suggestions.push(...assessment.suggestions);
237
- }
238
- if (assessment.weaknesses) {
239
- result.warnings.push(...assessment.weaknesses);
240
- }
241
- if (result.qualityScore < 6) {
242
- result.warnings.push(`Quality score ${result.qualityScore}/10 is below threshold, marked as draft`);
243
- }
244
- }
245
- catch (err) {
246
- this.ctx.log.warn(`SkillValidator: quality assessment failed: ${err}`);
247
- }
248
- }
249
- }
250
- exports.SkillValidator = SkillValidator;
251
- const QUALITY_PROMPT = `You are a skill quality reviewer. Evaluate the following SKILL.md and give a score from 0 to 10.
252
-
253
- Criteria:
254
- 1. Clarity: Are the steps clear and actionable? (0-2 pts)
255
- 2. Completeness: Does it cover scenarios, pitfalls, and key code? (0-2 pts)
256
- 3. Reusability: Can this skill be applied to similar future tasks? (0-2 pts)
257
- 4. Accuracy: Are commands, code, and configurations correct? (0-2 pts)
258
- 5. Structure: Is the format well-organized with proper sections? (0-2 pts)
259
-
260
- SKILL.md:
261
- {SKILL_CONTENT}
262
-
263
- LANGUAGE RULE: "strengths", "weaknesses", and "suggestions" MUST use the SAME language as the SKILL.md content. Chinese skill → Chinese feedback. English skill → English feedback.
264
-
265
- Reply in JSON only:
266
- {
267
- "score": 0-10,
268
- "strengths": ["what's good (same language as skill)"],
269
- "weaknesses": ["what's lacking (same language as skill)"],
270
- "suggestions": ["how to improve (same language as skill)"]
271
- }`;
272
- //# sourceMappingURL=validator.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"validator.js","sourceRoot":"","sources":["../../src/skill/validator.ts"],"names":[],"mappings":"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"}
@@ -1,12 +0,0 @@
1
- /**
2
- * Ensure the better-sqlite3 native binary is available.
3
- *
4
- * OpenClaw installs plugins with `--ignore-scripts`, which skips
5
- * the native compilation step. This function checks for the binary
6
- * and restores it from bundled prebuilds if missing.
7
- */
8
- export declare function ensureSqliteBinding(log?: {
9
- info: (msg: string) => void;
10
- warn: (msg: string) => void;
11
- }): void;
12
- //# sourceMappingURL=ensure-binding.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ensure-binding.d.ts","sourceRoot":"","sources":["../../src/storage/ensure-binding.ts"],"names":[],"mappings":"AAKA;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,CAAC,EAAE;IAAE,IAAI,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IAAC,IAAI,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAA;CAAE,GAAG,IAAI,CAuC5G"}
@@ -1,53 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.ensureSqliteBinding = ensureSqliteBinding;
7
- const fs_1 = require("fs");
8
- const child_process_1 = require("child_process");
9
- const path_1 = __importDefault(require("path"));
10
- const module_1 = require("module");
11
- /**
12
- * Ensure the better-sqlite3 native binary is available.
13
- *
14
- * OpenClaw installs plugins with `--ignore-scripts`, which skips
15
- * the native compilation step. This function checks for the binary
16
- * and restores it from bundled prebuilds if missing.
17
- */
18
- function ensureSqliteBinding(log) {
19
- const _req = typeof require !== "undefined" ? require : (0, module_1.createRequire)(__filename);
20
- const bsqlPkg = _req.resolve("better-sqlite3/package.json");
21
- const bsqlDir = path_1.default.dirname(bsqlPkg);
22
- const bindingPath = path_1.default.join(bsqlDir, "build", "Release", "better_sqlite3.node");
23
- if ((0, fs_1.existsSync)(bindingPath))
24
- return;
25
- const platform = `${process.platform}-${process.arch}`;
26
- const pluginRoot = path_1.default.resolve(__dirname, "..", "..");
27
- const prebuildSrc = path_1.default.join(pluginRoot, "prebuilds", platform, "better_sqlite3.node");
28
- if ((0, fs_1.existsSync)(prebuildSrc)) {
29
- log?.info(`[ensure-binding] Copying prebuild for ${platform}...`);
30
- (0, fs_1.mkdirSync)(path_1.default.dirname(bindingPath), { recursive: true });
31
- (0, fs_1.copyFileSync)(prebuildSrc, bindingPath);
32
- log?.info(`[ensure-binding] Prebuild installed successfully.`);
33
- return;
34
- }
35
- log?.warn(`[ensure-binding] No prebuild for ${platform}, attempting npm rebuild...`);
36
- try {
37
- const installDir = path_1.default.resolve(bsqlDir, "..", "..");
38
- (0, child_process_1.execSync)("npm rebuild better-sqlite3", {
39
- cwd: installDir,
40
- stdio: "pipe",
41
- timeout: 180_000,
42
- });
43
- if ((0, fs_1.existsSync)(bindingPath)) {
44
- log?.info(`[ensure-binding] Rebuilt better-sqlite3 successfully.`);
45
- return;
46
- }
47
- }
48
- catch { /* fall through */ }
49
- throw new Error(`better-sqlite3 native binary not found for ${platform}.\n` +
50
- `Prebuild not bundled and npm rebuild failed.\n` +
51
- `Fix: cd ${path_1.default.resolve(bsqlDir, "..", "..")} && npm rebuild better-sqlite3`);
52
- }
53
- //# sourceMappingURL=ensure-binding.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ensure-binding.js","sourceRoot":"","sources":["../../src/storage/ensure-binding.ts"],"names":[],"mappings":";;;;;AAYA,kDAuCC;AAnDD,2BAAyD;AACzD,iDAAyC;AACzC,gDAAwB;AACxB,mCAAuC;AAEvC;;;;;;GAMG;AACH,SAAgB,mBAAmB,CAAC,GAAkE;IACpG,MAAM,IAAI,GAAG,OAAO,OAAO,KAAK,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAA,sBAAa,EAAC,UAAU,CAAC,CAAC;IAClF,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,6BAA6B,CAAC,CAAC;IAC5D,MAAM,OAAO,GAAG,cAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IACtC,MAAM,WAAW,GAAG,cAAI,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,qBAAqB,CAAC,CAAC;IAElF,IAAI,IAAA,eAAU,EAAC,WAAW,CAAC;QAAE,OAAO;IAEpC,MAAM,QAAQ,GAAG,GAAG,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;IACvD,MAAM,UAAU,GAAG,cAAI,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IACvD,MAAM,WAAW,GAAG,cAAI,CAAC,IAAI,CAAC,UAAU,EAAE,WAAW,EAAE,QAAQ,EAAE,qBAAqB,CAAC,CAAC;IAExF,IAAI,IAAA,eAAU,EAAC,WAAW,CAAC,EAAE,CAAC;QAC5B,GAAG,EAAE,IAAI,CAAC,yCAAyC,QAAQ,KAAK,CAAC,CAAC;QAClE,IAAA,cAAS,EAAC,cAAI,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC1D,IAAA,iBAAY,EAAC,WAAW,EAAE,WAAW,CAAC,CAAC;QACvC,GAAG,EAAE,IAAI,CAAC,mDAAmD,CAAC,CAAC;QAC/D,OAAO;IACT,CAAC;IAED,GAAG,EAAE,IAAI,CAAC,oCAAoC,QAAQ,6BAA6B,CAAC,CAAC;IACrF,IAAI,CAAC;QACH,MAAM,UAAU,GAAG,cAAI,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QACrD,IAAA,wBAAQ,EAAC,4BAA4B,EAAE;YACrC,GAAG,EAAE,UAAU;YACf,KAAK,EAAE,MAAM;YACb,OAAO,EAAE,OAAO;SACjB,CAAC,CAAC;QACH,IAAI,IAAA,eAAU,EAAC,WAAW,CAAC,EAAE,CAAC;YAC5B,GAAG,EAAE,IAAI,CAAC,uDAAuD,CAAC,CAAC;YACnE,OAAO;QACT,CAAC;IACH,CAAC;IAAC,MAAM,CAAC,CAAC,kBAAkB,CAAC,CAAC;IAE9B,MAAM,IAAI,KAAK,CACb,8CAA8C,QAAQ,KAAK;QAC3D,gDAAgD;QAChD,WAAW,cAAI,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,gCAAgC,CAC7E,CAAC;AACJ,CAAC"}