@memtensor/memos-local-openclaw-plugin 1.0.6-beta.9 → 1.0.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/openclaw.plugin.json +1 -1
- package/package.json +3 -5
- package/prebuilds/darwin-arm64/better_sqlite3.node +0 -0
- package/prebuilds/darwin-x64/better_sqlite3.node +0 -0
- package/prebuilds/linux-x64/better_sqlite3.node +0 -0
- package/prebuilds/win32-x64/better_sqlite3.node +0 -0
- package/scripts/postinstall.cjs +44 -44
- package/skill/memos-memory-guide/SKILL.md +20 -0
- package/src/update-check.ts +2 -7
- package/src/viewer/html.ts +4 -4
- package/src/viewer/server.ts +12 -2
- package/telemetry.credentials.json +5 -0
- package/dist/capture/index.d.ts +0 -26
- package/dist/capture/index.d.ts.map +0 -1
- package/dist/capture/index.js +0 -283
- package/dist/capture/index.js.map +0 -1
- package/dist/client/connector.d.ts +0 -34
- package/dist/client/connector.d.ts.map +0 -1
- package/dist/client/connector.js +0 -381
- package/dist/client/connector.js.map +0 -1
- package/dist/client/hub.d.ts +0 -61
- package/dist/client/hub.d.ts.map +0 -1
- package/dist/client/hub.js +0 -174
- package/dist/client/hub.js.map +0 -1
- package/dist/client/skill-sync.d.ts +0 -36
- package/dist/client/skill-sync.d.ts.map +0 -1
- package/dist/client/skill-sync.js +0 -226
- package/dist/client/skill-sync.js.map +0 -1
- package/dist/config.d.ts +0 -5
- package/dist/config.d.ts.map +0 -1
- package/dist/config.js +0 -171
- package/dist/config.js.map +0 -1
- package/dist/embedding/index.d.ts +0 -14
- package/dist/embedding/index.d.ts.map +0 -1
- package/dist/embedding/index.js +0 -105
- package/dist/embedding/index.js.map +0 -1
- package/dist/embedding/local.d.ts +0 -3
- package/dist/embedding/local.d.ts.map +0 -1
- package/dist/embedding/local.js +0 -66
- package/dist/embedding/local.js.map +0 -1
- package/dist/embedding/providers/cohere.d.ts +0 -4
- package/dist/embedding/providers/cohere.d.ts.map +0 -1
- package/dist/embedding/providers/cohere.js +0 -57
- package/dist/embedding/providers/cohere.js.map +0 -1
- package/dist/embedding/providers/gemini.d.ts +0 -3
- package/dist/embedding/providers/gemini.d.ts.map +0 -1
- package/dist/embedding/providers/gemini.js +0 -31
- package/dist/embedding/providers/gemini.js.map +0 -1
- package/dist/embedding/providers/mistral.d.ts +0 -3
- package/dist/embedding/providers/mistral.d.ts.map +0 -1
- package/dist/embedding/providers/mistral.js +0 -25
- package/dist/embedding/providers/mistral.js.map +0 -1
- package/dist/embedding/providers/openai.d.ts +0 -3
- package/dist/embedding/providers/openai.d.ts.map +0 -1
- package/dist/embedding/providers/openai.js +0 -35
- package/dist/embedding/providers/openai.js.map +0 -1
- package/dist/embedding/providers/voyage.d.ts +0 -3
- package/dist/embedding/providers/voyage.d.ts.map +0 -1
- package/dist/embedding/providers/voyage.js +0 -25
- package/dist/embedding/providers/voyage.js.map +0 -1
- package/dist/hub/auth.d.ts +0 -19
- package/dist/hub/auth.d.ts.map +0 -1
- package/dist/hub/auth.js +0 -70
- package/dist/hub/auth.js.map +0 -1
- package/dist/hub/server.d.ts +0 -52
- package/dist/hub/server.d.ts.map +0 -1
- package/dist/hub/server.js +0 -1197
- package/dist/hub/server.js.map +0 -1
- package/dist/hub/user-manager.d.ts +0 -40
- package/dist/hub/user-manager.d.ts.map +0 -1
- package/dist/hub/user-manager.js +0 -153
- package/dist/hub/user-manager.js.map +0 -1
- package/dist/index.d.ts +0 -46
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js +0 -82
- package/dist/index.js.map +0 -1
- package/dist/ingest/chunker.d.ts +0 -15
- package/dist/ingest/chunker.d.ts.map +0 -1
- package/dist/ingest/chunker.js +0 -192
- package/dist/ingest/chunker.js.map +0 -1
- package/dist/ingest/dedup.d.ts +0 -19
- package/dist/ingest/dedup.d.ts.map +0 -1
- package/dist/ingest/dedup.js +0 -50
- package/dist/ingest/dedup.js.map +0 -1
- package/dist/ingest/providers/anthropic.d.ts +0 -21
- package/dist/ingest/providers/anthropic.d.ts.map +0 -1
- package/dist/ingest/providers/anthropic.js +0 -314
- package/dist/ingest/providers/anthropic.js.map +0 -1
- package/dist/ingest/providers/bedrock.d.ts +0 -21
- package/dist/ingest/providers/bedrock.d.ts.map +0 -1
- package/dist/ingest/providers/bedrock.js +0 -313
- package/dist/ingest/providers/bedrock.js.map +0 -1
- package/dist/ingest/providers/gemini.d.ts +0 -21
- package/dist/ingest/providers/gemini.d.ts.map +0 -1
- package/dist/ingest/providers/gemini.js +0 -298
- package/dist/ingest/providers/gemini.js.map +0 -1
- package/dist/ingest/providers/index.d.ts +0 -68
- package/dist/ingest/providers/index.d.ts.map +0 -1
- package/dist/ingest/providers/index.js +0 -611
- package/dist/ingest/providers/index.js.map +0 -1
- package/dist/ingest/providers/openai.d.ts +0 -30
- package/dist/ingest/providers/openai.d.ts.map +0 -1
- package/dist/ingest/providers/openai.js +0 -387
- package/dist/ingest/providers/openai.js.map +0 -1
- package/dist/ingest/task-processor.d.ts +0 -91
- package/dist/ingest/task-processor.d.ts.map +0 -1
- package/dist/ingest/task-processor.js +0 -478
- package/dist/ingest/task-processor.js.map +0 -1
- package/dist/ingest/worker.d.ts +0 -23
- package/dist/ingest/worker.d.ts.map +0 -1
- package/dist/ingest/worker.js +0 -255
- package/dist/ingest/worker.js.map +0 -1
- package/dist/openclaw-api.d.ts +0 -53
- package/dist/openclaw-api.d.ts.map +0 -1
- package/dist/openclaw-api.js +0 -189
- package/dist/openclaw-api.js.map +0 -1
- package/dist/recall/engine.d.ts +0 -28
- package/dist/recall/engine.d.ts.map +0 -1
- package/dist/recall/engine.js +0 -343
- package/dist/recall/engine.js.map +0 -1
- package/dist/recall/mmr.d.ts +0 -17
- package/dist/recall/mmr.d.ts.map +0 -1
- package/dist/recall/mmr.js +0 -53
- package/dist/recall/mmr.js.map +0 -1
- package/dist/recall/recency.d.ts +0 -20
- package/dist/recall/recency.d.ts.map +0 -1
- package/dist/recall/recency.js +0 -26
- package/dist/recall/recency.js.map +0 -1
- package/dist/recall/rrf.d.ts +0 -16
- package/dist/recall/rrf.d.ts.map +0 -1
- package/dist/recall/rrf.js +0 -15
- package/dist/recall/rrf.js.map +0 -1
- package/dist/shared/llm-call.d.ts +0 -30
- package/dist/shared/llm-call.d.ts.map +0 -1
- package/dist/shared/llm-call.js +0 -253
- package/dist/shared/llm-call.js.map +0 -1
- package/dist/sharing/types.contract.d.ts +0 -2
- package/dist/sharing/types.contract.d.ts.map +0 -1
- package/dist/sharing/types.contract.js +0 -3
- package/dist/sharing/types.contract.js.map +0 -1
- package/dist/sharing/types.d.ts +0 -80
- package/dist/sharing/types.d.ts.map +0 -1
- package/dist/sharing/types.js +0 -3
- package/dist/sharing/types.js.map +0 -1
- package/dist/skill/bundled-memory-guide.d.ts +0 -2
- package/dist/skill/bundled-memory-guide.d.ts.map +0 -1
- package/dist/skill/bundled-memory-guide.js +0 -45
- package/dist/skill/bundled-memory-guide.js.map +0 -1
- package/dist/skill/evaluator.d.ts +0 -28
- package/dist/skill/evaluator.d.ts.map +0 -1
- package/dist/skill/evaluator.js +0 -169
- package/dist/skill/evaluator.js.map +0 -1
- package/dist/skill/evolver.d.ts +0 -48
- package/dist/skill/evolver.d.ts.map +0 -1
- package/dist/skill/evolver.js +0 -406
- package/dist/skill/evolver.js.map +0 -1
- package/dist/skill/generator.d.ts +0 -26
- package/dist/skill/generator.d.ts.map +0 -1
- package/dist/skill/generator.js +0 -521
- package/dist/skill/generator.js.map +0 -1
- package/dist/skill/installer.d.ts +0 -42
- package/dist/skill/installer.d.ts.map +0 -1
- package/dist/skill/installer.js +0 -165
- package/dist/skill/installer.js.map +0 -1
- package/dist/skill/upgrader.d.ts +0 -19
- package/dist/skill/upgrader.d.ts.map +0 -1
- package/dist/skill/upgrader.js +0 -366
- package/dist/skill/upgrader.js.map +0 -1
- package/dist/skill/validator.d.ts +0 -30
- package/dist/skill/validator.d.ts.map +0 -1
- package/dist/skill/validator.js +0 -272
- package/dist/skill/validator.js.map +0 -1
- package/dist/storage/ensure-binding.d.ts +0 -12
- package/dist/storage/ensure-binding.d.ts.map +0 -1
- package/dist/storage/ensure-binding.js +0 -53
- package/dist/storage/ensure-binding.js.map +0 -1
- package/dist/storage/sqlite.d.ts +0 -649
- package/dist/storage/sqlite.d.ts.map +0 -1
- package/dist/storage/sqlite.js +0 -2657
- package/dist/storage/sqlite.js.map +0 -1
- package/dist/storage/vector.d.ts +0 -12
- package/dist/storage/vector.d.ts.map +0 -1
- package/dist/storage/vector.js +0 -34
- package/dist/storage/vector.js.map +0 -1
- package/dist/telemetry.d.ts +0 -47
- package/dist/telemetry.d.ts.map +0 -1
- package/dist/telemetry.js +0 -312
- package/dist/telemetry.js.map +0 -1
- package/dist/tools/index.d.ts +0 -5
- package/dist/tools/index.d.ts.map +0 -1
- package/dist/tools/index.js +0 -12
- package/dist/tools/index.js.map +0 -1
- package/dist/tools/memory-get.d.ts +0 -4
- package/dist/tools/memory-get.d.ts.map +0 -1
- package/dist/tools/memory-get.js +0 -64
- package/dist/tools/memory-get.js.map +0 -1
- package/dist/tools/memory-search.d.ts +0 -7
- package/dist/tools/memory-search.d.ts.map +0 -1
- package/dist/tools/memory-search.js +0 -84
- package/dist/tools/memory-search.js.map +0 -1
- package/dist/tools/memory-timeline.d.ts +0 -4
- package/dist/tools/memory-timeline.d.ts.map +0 -1
- package/dist/tools/memory-timeline.js +0 -73
- package/dist/tools/memory-timeline.js.map +0 -1
- package/dist/tools/network-memory-detail.d.ts +0 -4
- package/dist/tools/network-memory-detail.d.ts.map +0 -1
- package/dist/tools/network-memory-detail.js +0 -34
- package/dist/tools/network-memory-detail.js.map +0 -1
- package/dist/types.d.ts +0 -330
- package/dist/types.d.ts.map +0 -1
- package/dist/types.js +0 -38
- package/dist/types.js.map +0 -1
- package/dist/update-check.d.ts +0 -21
- package/dist/update-check.d.ts.map +0 -1
- package/dist/update-check.js +0 -110
- package/dist/update-check.js.map +0 -1
- package/dist/viewer/html.d.ts +0 -2
- package/dist/viewer/html.d.ts.map +0 -1
- package/dist/viewer/html.js +0 -9168
- package/dist/viewer/html.js.map +0 -1
- package/dist/viewer/server.d.ts +0 -205
- package/dist/viewer/server.d.ts.map +0 -1
- package/dist/viewer/server.js +0 -4876
- package/dist/viewer/server.js.map +0 -1
package/dist/shared/llm-call.js
DELETED
|
@@ -1,253 +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.loadOpenClawFallbackConfig = loadOpenClawFallbackConfig;
|
|
37
|
-
exports.buildSkillConfigChain = buildSkillConfigChain;
|
|
38
|
-
exports.callLLMOnce = callLLMOnce;
|
|
39
|
-
exports.callLLMWithFallback = callLLMWithFallback;
|
|
40
|
-
const fs = __importStar(require("fs"));
|
|
41
|
-
const path = __importStar(require("path"));
|
|
42
|
-
/**
|
|
43
|
-
* Detect provider type from provider key name or base URL.
|
|
44
|
-
*/
|
|
45
|
-
function detectProvider(providerKey, baseUrl) {
|
|
46
|
-
const key = providerKey?.toLowerCase() ?? "";
|
|
47
|
-
const url = baseUrl.toLowerCase();
|
|
48
|
-
if (key.includes("anthropic") || url.includes("anthropic"))
|
|
49
|
-
return "anthropic";
|
|
50
|
-
if (key.includes("gemini") || url.includes("generativelanguage.googleapis.com")) {
|
|
51
|
-
return "gemini";
|
|
52
|
-
}
|
|
53
|
-
if (key.includes("bedrock") || url.includes("bedrock"))
|
|
54
|
-
return "bedrock";
|
|
55
|
-
return "openai_compatible";
|
|
56
|
-
}
|
|
57
|
-
/**
|
|
58
|
-
* Return the correct default endpoint for a given provider.
|
|
59
|
-
*/
|
|
60
|
-
function defaultEndpointForProvider(provider, baseUrl) {
|
|
61
|
-
const stripped = baseUrl.replace(/\/+$/, "");
|
|
62
|
-
if (provider === "anthropic") {
|
|
63
|
-
if (stripped.endsWith("/v1/messages"))
|
|
64
|
-
return stripped;
|
|
65
|
-
return `${stripped}/v1/messages`;
|
|
66
|
-
}
|
|
67
|
-
if (stripped.endsWith("/chat/completions"))
|
|
68
|
-
return stripped;
|
|
69
|
-
if (stripped.endsWith("/completions"))
|
|
70
|
-
return stripped;
|
|
71
|
-
return `${stripped}/chat/completions`;
|
|
72
|
-
}
|
|
73
|
-
/**
|
|
74
|
-
* Build a SummarizerConfig from OpenClaw's native model configuration (openclaw.json).
|
|
75
|
-
* Final fallback when both strongCfg and plugin summarizer fail or are absent.
|
|
76
|
-
*/
|
|
77
|
-
function loadOpenClawFallbackConfig(log) {
|
|
78
|
-
try {
|
|
79
|
-
const home = process.env.HOME ?? process.env.USERPROFILE ?? "";
|
|
80
|
-
const cfgPath = process.env.OPENCLAW_CONFIG_PATH
|
|
81
|
-
|| path.join(process.env.OPENCLAW_STATE_DIR || path.join(home, ".openclaw"), "openclaw.json");
|
|
82
|
-
if (!fs.existsSync(cfgPath))
|
|
83
|
-
return undefined;
|
|
84
|
-
const raw = JSON.parse(fs.readFileSync(cfgPath, "utf-8"));
|
|
85
|
-
const agentModel = raw?.agents?.defaults?.model?.primary;
|
|
86
|
-
if (!agentModel)
|
|
87
|
-
return undefined;
|
|
88
|
-
const [providerKey, modelId] = agentModel.includes("/")
|
|
89
|
-
? agentModel.split("/", 2)
|
|
90
|
-
: [undefined, agentModel];
|
|
91
|
-
const providerCfg = providerKey
|
|
92
|
-
? raw?.models?.providers?.[providerKey]
|
|
93
|
-
: Object.values(raw?.models?.providers ?? {})[0];
|
|
94
|
-
if (!providerCfg)
|
|
95
|
-
return undefined;
|
|
96
|
-
const baseUrl = providerCfg.baseUrl;
|
|
97
|
-
const apiKey = providerCfg.apiKey;
|
|
98
|
-
if (!baseUrl || !apiKey)
|
|
99
|
-
return undefined;
|
|
100
|
-
const provider = detectProvider(providerKey, baseUrl);
|
|
101
|
-
const endpoint = defaultEndpointForProvider(provider, baseUrl);
|
|
102
|
-
log.debug(`OpenClaw fallback model: ${modelId} via ${baseUrl} (${provider})`);
|
|
103
|
-
return {
|
|
104
|
-
provider,
|
|
105
|
-
endpoint,
|
|
106
|
-
apiKey,
|
|
107
|
-
model: modelId,
|
|
108
|
-
};
|
|
109
|
-
}
|
|
110
|
-
catch (err) {
|
|
111
|
-
log.debug(`Failed to load OpenClaw fallback config: ${err}`);
|
|
112
|
-
return undefined;
|
|
113
|
-
}
|
|
114
|
-
}
|
|
115
|
-
/**
|
|
116
|
-
* Build the ordered fallback chain for skill-related LLM calls:
|
|
117
|
-
* skillEvolution.summarizer → plugin summarizer → OpenClaw native model
|
|
118
|
-
*/
|
|
119
|
-
function buildSkillConfigChain(ctx) {
|
|
120
|
-
const chain = [];
|
|
121
|
-
const skillCfg = ctx.config.skillEvolution?.summarizer;
|
|
122
|
-
const pluginCfg = ctx.config.summarizer;
|
|
123
|
-
const fallbackCfg = loadOpenClawFallbackConfig(ctx.log);
|
|
124
|
-
if (skillCfg)
|
|
125
|
-
chain.push(skillCfg);
|
|
126
|
-
if (pluginCfg && pluginCfg !== skillCfg)
|
|
127
|
-
chain.push(pluginCfg);
|
|
128
|
-
if (fallbackCfg)
|
|
129
|
-
chain.push(fallbackCfg);
|
|
130
|
-
return chain;
|
|
131
|
-
}
|
|
132
|
-
function normalizeOpenAIEndpoint(url) {
|
|
133
|
-
const stripped = url.replace(/\/+$/, "");
|
|
134
|
-
if (stripped.endsWith("/chat/completions"))
|
|
135
|
-
return stripped;
|
|
136
|
-
if (stripped.endsWith("/completions"))
|
|
137
|
-
return stripped;
|
|
138
|
-
return `${stripped}/chat/completions`;
|
|
139
|
-
}
|
|
140
|
-
function normalizeAnthropicEndpoint(url) {
|
|
141
|
-
const stripped = url.replace(/\/+$/, "");
|
|
142
|
-
if (stripped.endsWith("/v1/messages"))
|
|
143
|
-
return stripped;
|
|
144
|
-
if (stripped.endsWith("/messages"))
|
|
145
|
-
return stripped;
|
|
146
|
-
return `${stripped}/v1/messages`;
|
|
147
|
-
}
|
|
148
|
-
function isAnthropicProvider(cfg) {
|
|
149
|
-
return cfg.provider === "anthropic";
|
|
150
|
-
}
|
|
151
|
-
/**
|
|
152
|
-
* Make a single LLM call with the given config. Throws on failure.
|
|
153
|
-
* When cfg.provider === "openclaw", delegates to the OpenClaw host completion API.
|
|
154
|
-
* Dispatches to Anthropic or OpenAI-compatible format based on provider.
|
|
155
|
-
*/
|
|
156
|
-
async function callLLMOnce(cfg, prompt, opts = {}) {
|
|
157
|
-
if (cfg.provider === "openclaw") {
|
|
158
|
-
const api = opts.openclawAPI;
|
|
159
|
-
if (!api) {
|
|
160
|
-
throw new Error("OpenClaw API not available. Ensure sharing.capabilities.hostCompletion is enabled.");
|
|
161
|
-
}
|
|
162
|
-
const response = await api.complete({
|
|
163
|
-
prompt,
|
|
164
|
-
maxTokens: opts.maxTokens ?? 1024,
|
|
165
|
-
temperature: opts.temperature ?? 0.1,
|
|
166
|
-
model: cfg.model,
|
|
167
|
-
});
|
|
168
|
-
return response.text.trim();
|
|
169
|
-
}
|
|
170
|
-
if (isAnthropicProvider(cfg)) {
|
|
171
|
-
return callLLMOnceAnthropic(cfg, prompt, opts);
|
|
172
|
-
}
|
|
173
|
-
return callLLMOnceOpenAI(cfg, prompt, opts);
|
|
174
|
-
}
|
|
175
|
-
async function callLLMOnceAnthropic(cfg, prompt, opts = {}) {
|
|
176
|
-
const endpoint = normalizeAnthropicEndpoint(cfg.endpoint ?? "https://api.anthropic.com/v1/messages");
|
|
177
|
-
const model = cfg.model ?? "claude-3-haiku-20240307";
|
|
178
|
-
const headers = {
|
|
179
|
-
"Content-Type": "application/json",
|
|
180
|
-
"x-api-key": cfg.apiKey ?? "",
|
|
181
|
-
"anthropic-version": "2023-06-01",
|
|
182
|
-
...cfg.headers,
|
|
183
|
-
};
|
|
184
|
-
const resp = await fetch(endpoint, {
|
|
185
|
-
method: "POST",
|
|
186
|
-
headers,
|
|
187
|
-
body: JSON.stringify({
|
|
188
|
-
model,
|
|
189
|
-
temperature: opts.temperature ?? 0.1,
|
|
190
|
-
max_tokens: opts.maxTokens ?? 1024,
|
|
191
|
-
messages: [{ role: "user", content: prompt }],
|
|
192
|
-
}),
|
|
193
|
-
signal: AbortSignal.timeout(opts.timeoutMs ?? 30_000),
|
|
194
|
-
});
|
|
195
|
-
if (!resp.ok) {
|
|
196
|
-
const body = await resp.text();
|
|
197
|
-
throw new Error(`LLM call failed (${resp.status}): ${body}`);
|
|
198
|
-
}
|
|
199
|
-
const json = (await resp.json());
|
|
200
|
-
return json.content.find((c) => c.type === "text")?.text?.trim() ?? "";
|
|
201
|
-
}
|
|
202
|
-
async function callLLMOnceOpenAI(cfg, prompt, opts = {}) {
|
|
203
|
-
const endpoint = normalizeOpenAIEndpoint(cfg.endpoint ?? "https://api.openai.com/v1/chat/completions");
|
|
204
|
-
const model = cfg.model ?? "gpt-4o-mini";
|
|
205
|
-
const headers = {
|
|
206
|
-
"Content-Type": "application/json",
|
|
207
|
-
Authorization: `Bearer ${cfg.apiKey}`,
|
|
208
|
-
...cfg.headers,
|
|
209
|
-
};
|
|
210
|
-
const resp = await fetch(endpoint, {
|
|
211
|
-
method: "POST",
|
|
212
|
-
headers,
|
|
213
|
-
body: JSON.stringify({
|
|
214
|
-
model,
|
|
215
|
-
temperature: opts.temperature ?? 0.1,
|
|
216
|
-
max_tokens: opts.maxTokens ?? 1024,
|
|
217
|
-
messages: [{ role: "user", content: prompt }],
|
|
218
|
-
}),
|
|
219
|
-
signal: AbortSignal.timeout(opts.timeoutMs ?? 30_000),
|
|
220
|
-
});
|
|
221
|
-
if (!resp.ok) {
|
|
222
|
-
const body = await resp.text();
|
|
223
|
-
throw new Error(`LLM call failed (${resp.status}): ${body}`);
|
|
224
|
-
}
|
|
225
|
-
const json = (await resp.json());
|
|
226
|
-
return json.choices[0]?.message?.content?.trim() ?? "";
|
|
227
|
-
}
|
|
228
|
-
/**
|
|
229
|
-
* Call LLM with fallback chain: tries each config in order until one succeeds.
|
|
230
|
-
* Returns the result string, or throws if ALL configs fail.
|
|
231
|
-
*/
|
|
232
|
-
async function callLLMWithFallback(chain, prompt, log, label, opts = {}) {
|
|
233
|
-
if (chain.length === 0) {
|
|
234
|
-
throw new Error(`${label}: no LLM config available`);
|
|
235
|
-
}
|
|
236
|
-
for (let i = 0; i < chain.length; i++) {
|
|
237
|
-
try {
|
|
238
|
-
return await callLLMOnce(chain[i], prompt, opts);
|
|
239
|
-
}
|
|
240
|
-
catch (err) {
|
|
241
|
-
const modelInfo = `${chain[i].provider ?? "?"}/${chain[i].model ?? "?"}`;
|
|
242
|
-
if (i < chain.length - 1) {
|
|
243
|
-
log.warn(`${label} failed (${modelInfo}), trying next fallback: ${err}`);
|
|
244
|
-
}
|
|
245
|
-
else {
|
|
246
|
-
log.error(`${label} failed (${modelInfo}), no more fallbacks: ${err}`);
|
|
247
|
-
throw err;
|
|
248
|
-
}
|
|
249
|
-
}
|
|
250
|
-
}
|
|
251
|
-
throw new Error(`${label}: all models failed`);
|
|
252
|
-
}
|
|
253
|
-
//# sourceMappingURL=llm-call.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"llm-call.js","sourceRoot":"","sources":["../../src/shared/llm-call.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.contract.d.ts","sourceRoot":"","sources":["../../src/sharing/types.contract.ts"],"names":[],"mappings":"AAuCA,OAAO,EAAE,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.contract.js","sourceRoot":"","sources":["../../src/sharing/types.contract.ts"],"names":[],"mappings":""}
|
package/dist/sharing/types.d.ts
DELETED
|
@@ -1,80 +0,0 @@
|
|
|
1
|
-
import type { ClientModeConfig, HubModeConfig, Role, SearchResult, SharingCapabilities, SharingConfig, SharingRole, SkillGenerateOutput } from "../types";
|
|
2
|
-
export type HubScope = "local" | "group" | "all";
|
|
3
|
-
export type SharedVisibility = "group" | "public";
|
|
4
|
-
export type UserRole = "admin" | "member";
|
|
5
|
-
export type UserStatus = "pending" | "active" | "blocked" | "rejected" | "removed" | "left";
|
|
6
|
-
export type { ClientModeConfig, HubModeConfig, SharingCapabilities, SharingConfig, SharingRole };
|
|
7
|
-
export interface GroupInfo {
|
|
8
|
-
id: string;
|
|
9
|
-
name: string;
|
|
10
|
-
description?: string;
|
|
11
|
-
}
|
|
12
|
-
export interface UserInfo {
|
|
13
|
-
id: string;
|
|
14
|
-
username: string;
|
|
15
|
-
deviceName?: string;
|
|
16
|
-
role: UserRole;
|
|
17
|
-
status: UserStatus;
|
|
18
|
-
groups: GroupInfo[];
|
|
19
|
-
}
|
|
20
|
-
export interface HubSearchHit {
|
|
21
|
-
remoteHitId: string;
|
|
22
|
-
summary: string;
|
|
23
|
-
excerpt: string;
|
|
24
|
-
hubRank: number;
|
|
25
|
-
taskTitle: string | null;
|
|
26
|
-
ownerName: string;
|
|
27
|
-
groupName: string | null;
|
|
28
|
-
visibility: SharedVisibility;
|
|
29
|
-
source: {
|
|
30
|
-
ts: number;
|
|
31
|
-
role: Role;
|
|
32
|
-
};
|
|
33
|
-
}
|
|
34
|
-
export interface HubSearchMeta {
|
|
35
|
-
totalCandidates: number;
|
|
36
|
-
searchedGroups: string[];
|
|
37
|
-
includedPublic: boolean;
|
|
38
|
-
}
|
|
39
|
-
export interface HubSearchResult {
|
|
40
|
-
hits: HubSearchHit[];
|
|
41
|
-
meta: HubSearchMeta;
|
|
42
|
-
}
|
|
43
|
-
export interface HubMemoryDetail {
|
|
44
|
-
remoteHitId: string;
|
|
45
|
-
content: string;
|
|
46
|
-
summary: string;
|
|
47
|
-
source: {
|
|
48
|
-
ts: number;
|
|
49
|
-
role: Role;
|
|
50
|
-
};
|
|
51
|
-
}
|
|
52
|
-
export interface HubSkillHit {
|
|
53
|
-
skillId: string;
|
|
54
|
-
name: string;
|
|
55
|
-
description: string;
|
|
56
|
-
version: number;
|
|
57
|
-
visibility: SharedVisibility;
|
|
58
|
-
groupName: string | null;
|
|
59
|
-
ownerName: string;
|
|
60
|
-
qualityScore: number | null;
|
|
61
|
-
}
|
|
62
|
-
export interface HubSkillSearchResult {
|
|
63
|
-
hits: HubSkillHit[];
|
|
64
|
-
}
|
|
65
|
-
export interface NetworkSearchResult {
|
|
66
|
-
local: SearchResult;
|
|
67
|
-
hub: HubSearchResult;
|
|
68
|
-
}
|
|
69
|
-
export interface SkillBundleMetadata {
|
|
70
|
-
id: string;
|
|
71
|
-
name: string;
|
|
72
|
-
description: string;
|
|
73
|
-
version: number;
|
|
74
|
-
qualityScore: number | null;
|
|
75
|
-
}
|
|
76
|
-
export interface SkillBundle {
|
|
77
|
-
metadata: SkillBundleMetadata;
|
|
78
|
-
bundle: SkillGenerateOutput;
|
|
79
|
-
}
|
|
80
|
-
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/sharing/types.ts"],"names":[],"mappings":"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"}
|
package/dist/sharing/types.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/sharing/types.ts"],"names":[],"mappings":""}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"bundled-memory-guide.d.ts","sourceRoot":"","sources":["../../src/skill/bundled-memory-guide.ts"],"names":[],"mappings":"AAQA,eAAO,MAAM,qBAAqB,EAAE,MAA4C,CAAC"}
|
|
@@ -1,45 +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.MEMORY_GUIDE_SKILL_MD = void 0;
|
|
37
|
-
/**
|
|
38
|
-
* Bundled MemOS memory-guide skill content.
|
|
39
|
-
* Reads from skill/memos-memory-guide/SKILL.md at runtime (single source of truth).
|
|
40
|
-
*/
|
|
41
|
-
const fs = __importStar(require("fs"));
|
|
42
|
-
const path = __importStar(require("path"));
|
|
43
|
-
const skillPath = path.join(__dirname, "..", "..", "skill", "memos-memory-guide", "SKILL.md");
|
|
44
|
-
exports.MEMORY_GUIDE_SKILL_MD = fs.readFileSync(skillPath, "utf-8");
|
|
45
|
-
//# sourceMappingURL=bundled-memory-guide.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"bundled-memory-guide.js","sourceRoot":"","sources":["../../src/skill/bundled-memory-guide.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;;GAGG;AACH,uCAAyB;AACzB,2CAA6B;AAE7B,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,oBAAoB,EAAE,UAAU,CAAC,CAAC;AACjF,QAAA,qBAAqB,GAAW,EAAE,CAAC,YAAY,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC"}
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
import type { Chunk, Task, Skill, PluginContext } from "../types";
|
|
2
|
-
export interface CreateEvalResult {
|
|
3
|
-
shouldGenerate: boolean;
|
|
4
|
-
reason: string;
|
|
5
|
-
suggestedName: string;
|
|
6
|
-
suggestedTags: string[];
|
|
7
|
-
confidence: number;
|
|
8
|
-
}
|
|
9
|
-
export interface UpgradeEvalResult {
|
|
10
|
-
shouldUpgrade: boolean;
|
|
11
|
-
upgradeType: "refine" | "extend" | "fix";
|
|
12
|
-
dimensions: string[];
|
|
13
|
-
reason: string;
|
|
14
|
-
mergeStrategy: string;
|
|
15
|
-
confidence: number;
|
|
16
|
-
}
|
|
17
|
-
export declare class SkillEvaluator {
|
|
18
|
-
private ctx;
|
|
19
|
-
constructor(ctx: PluginContext);
|
|
20
|
-
passesRuleFilter(chunks: Chunk[], task: Task): {
|
|
21
|
-
pass: boolean;
|
|
22
|
-
skipReason: string;
|
|
23
|
-
};
|
|
24
|
-
evaluateCreate(task: Task): Promise<CreateEvalResult>;
|
|
25
|
-
evaluateUpgrade(task: Task, skill: Skill, skillContent: string): Promise<UpgradeEvalResult>;
|
|
26
|
-
private parseJSON;
|
|
27
|
-
}
|
|
28
|
-
//# sourceMappingURL=evaluator.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"evaluator.d.ts","sourceRoot":"","sources":["../../src/skill/evaluator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAIlE,MAAM,WAAW,gBAAgB;IAC/B,cAAc,EAAE,OAAO,CAAC;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,iBAAiB;IAChC,aAAa,EAAE,OAAO,CAAC;IACvB,WAAW,EAAE,QAAQ,GAAG,QAAQ,GAAG,KAAK,CAAC;IACzC,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;CACpB;AAuFD,qBAAa,cAAc;IACb,OAAO,CAAC,GAAG;gBAAH,GAAG,EAAE,aAAa;IAEtC,gBAAgB,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,IAAI,GAAG;QAAE,IAAI,EAAE,OAAO,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE;IA2B9E,cAAc,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAqBrD,eAAe,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAyBjG,OAAO,CAAC,SAAS;CASlB"}
|
package/dist/skill/evaluator.js
DELETED
|
@@ -1,169 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.SkillEvaluator = void 0;
|
|
4
|
-
const types_1 = require("../types");
|
|
5
|
-
const llm_call_1 = require("../shared/llm-call");
|
|
6
|
-
const CREATE_EVAL_PROMPT = `You are a strict experience evaluation expert. Based on the completed task record below, decide whether this task contains **reusable, transferable** experience worth distilling into a "skill".
|
|
7
|
-
|
|
8
|
-
A skill is a reusable guide that helps an AI agent handle **the same type of task** better in the future. The key question is: "Will someone likely need to do this exact type of thing again?"
|
|
9
|
-
|
|
10
|
-
STRICT criteria — must meet ALL of:
|
|
11
|
-
1. **Repeatable**: The task type is likely to recur (not a one-off personal conversation)
|
|
12
|
-
2. **Transferable**: The approach/solution would help others facing the same problem
|
|
13
|
-
3. **Technical depth**: Contains non-trivial steps, commands, code, configs, or diagnostic reasoning
|
|
14
|
-
|
|
15
|
-
Worth distilling (must meet criteria above AND at least ONE below):
|
|
16
|
-
- Solves a recurring technical problem with a specific approach/workflow
|
|
17
|
-
- Went through trial-and-error (wrong approach then corrected) — the learning is valuable
|
|
18
|
-
- Involves non-obvious usage of specific tools, APIs, or frameworks
|
|
19
|
-
- Contains debugging/troubleshooting with diagnostic reasoning
|
|
20
|
-
- Shows how to combine multiple tools/services to accomplish a technical goal
|
|
21
|
-
- Contains deployment, configuration, or infrastructure setup steps
|
|
22
|
-
- Demonstrates a reusable data processing or automation pipeline
|
|
23
|
-
|
|
24
|
-
NOT worth distilling (if ANY matches, return shouldGenerate=false):
|
|
25
|
-
- Pure factual Q&A with no process ("what is TCP", "what's the capital of France")
|
|
26
|
-
- Single-turn simple answers with no workflow
|
|
27
|
-
- Conversation too fragmented or incoherent to extract a clear process
|
|
28
|
-
- One-off personal tasks: identity confirmation, preference setting, self-introduction
|
|
29
|
-
- Casual chat, opinion discussion, news commentary, brainstorming without actionable output
|
|
30
|
-
- Simple information lookup or summarization (e.g. "summarize this article", "explain X concept")
|
|
31
|
-
- Organizing/listing personal information (work history, resume, contacts)
|
|
32
|
-
- Generic product/system overviews without specific operational steps
|
|
33
|
-
- Tasks where the "steps" are just the AI answering questions (no real workflow)
|
|
34
|
-
|
|
35
|
-
Task title: {TITLE}
|
|
36
|
-
Task summary:
|
|
37
|
-
{SUMMARY}
|
|
38
|
-
|
|
39
|
-
LANGUAGE RULE (MUST FOLLOW): Detect the language of the task title/summary. If it is Chinese, the "reason" field MUST be in Chinese. If English, reason in English. Only "suggestedName" stays in English kebab-case. 如果任务标题/摘要是中文,reason 必须用中文。
|
|
40
|
-
|
|
41
|
-
Reply in JSON only, no extra text:
|
|
42
|
-
{
|
|
43
|
-
"shouldGenerate": boolean,
|
|
44
|
-
"reason": "brief explanation (same language as input)",
|
|
45
|
-
"suggestedName": "kebab-case-name",
|
|
46
|
-
"suggestedTags": ["tag1", "tag2"],
|
|
47
|
-
"confidence": 0.0-1.0
|
|
48
|
-
}`;
|
|
49
|
-
const UPGRADE_EVAL_PROMPT = `You are a skill upgrade evaluation expert.
|
|
50
|
-
|
|
51
|
-
Existing skill (v{VERSION}):
|
|
52
|
-
Name: {SKILL_NAME}
|
|
53
|
-
Content:
|
|
54
|
-
{SKILL_CONTENT}
|
|
55
|
-
|
|
56
|
-
Newly completed task:
|
|
57
|
-
Title: {TITLE}
|
|
58
|
-
Summary:
|
|
59
|
-
{SUMMARY}
|
|
60
|
-
|
|
61
|
-
Does the new task bring substantive improvements to the existing skill?
|
|
62
|
-
|
|
63
|
-
Worth upgrading (any one qualifies):
|
|
64
|
-
1. Faster — shorter path discovered
|
|
65
|
-
2. More elegant — cleaner, follows best practices better
|
|
66
|
-
3. More convenient — fewer dependencies or complexity
|
|
67
|
-
4. Fewer tokens — less exploration/trial-and-error needed
|
|
68
|
-
5. More accurate — corrects wrong parameters/steps in old skill
|
|
69
|
-
6. More robust — adds edge cases, error handling
|
|
70
|
-
7. New scenario — covers a variant the old skill didn't
|
|
71
|
-
8. Fixes outdated info — old skill has stale information
|
|
72
|
-
|
|
73
|
-
NOT worth upgrading:
|
|
74
|
-
- New task is identical to existing skill
|
|
75
|
-
- New task's approach is worse than existing skill
|
|
76
|
-
- Differences are trivial
|
|
77
|
-
|
|
78
|
-
LANGUAGE RULE: "reason" and "mergeStrategy" MUST use the SAME language as the task title/summary. Chinese input → Chinese output. English input → English output.
|
|
79
|
-
|
|
80
|
-
Reply in JSON only, no extra text:
|
|
81
|
-
{
|
|
82
|
-
"shouldUpgrade": boolean,
|
|
83
|
-
"upgradeType": "refine" | "extend" | "fix",
|
|
84
|
-
"dimensions": ["faster", "more_elegant", "more_convenient", "fewer_tokens", "more_accurate", "more_robust", "new_scenario", "fix_outdated"],
|
|
85
|
-
"reason": "what new value the task brings (same language as input)",
|
|
86
|
-
"mergeStrategy": "which specific parts need updating (same language as input)",
|
|
87
|
-
"confidence": 0.0-1.0
|
|
88
|
-
}`;
|
|
89
|
-
class SkillEvaluator {
|
|
90
|
-
ctx;
|
|
91
|
-
constructor(ctx) {
|
|
92
|
-
this.ctx = ctx;
|
|
93
|
-
}
|
|
94
|
-
passesRuleFilter(chunks, task) {
|
|
95
|
-
const minChunks = this.ctx.config.skillEvolution?.minChunksForEval ?? types_1.DEFAULTS.skillMinChunksForEval;
|
|
96
|
-
if (chunks.length < minChunks) {
|
|
97
|
-
return { pass: false, skipReason: `chunks不足 (${chunks.length} < ${minChunks})` };
|
|
98
|
-
}
|
|
99
|
-
if (task.status === "skipped") {
|
|
100
|
-
return { pass: false, skipReason: "task状态为skipped" };
|
|
101
|
-
}
|
|
102
|
-
if (task.summary.length < 100) {
|
|
103
|
-
return { pass: false, skipReason: `summary过短 (${task.summary.length} < 100)` };
|
|
104
|
-
}
|
|
105
|
-
const userChunks = chunks.filter(c => c.role === "user");
|
|
106
|
-
if (userChunks.length === 0) {
|
|
107
|
-
return { pass: false, skipReason: "无用户消息" };
|
|
108
|
-
}
|
|
109
|
-
const assistantChunks = chunks.filter(c => c.role === "assistant");
|
|
110
|
-
if (assistantChunks.length === 0) {
|
|
111
|
-
return { pass: false, skipReason: "无助手回复" };
|
|
112
|
-
}
|
|
113
|
-
return { pass: true, skipReason: "" };
|
|
114
|
-
}
|
|
115
|
-
async evaluateCreate(task) {
|
|
116
|
-
const chain = (0, llm_call_1.buildSkillConfigChain)(this.ctx);
|
|
117
|
-
if (chain.length === 0) {
|
|
118
|
-
return { shouldGenerate: false, reason: "no LLM configured", suggestedName: "", suggestedTags: [], confidence: 0 };
|
|
119
|
-
}
|
|
120
|
-
const prompt = CREATE_EVAL_PROMPT
|
|
121
|
-
.replace("{TITLE}", task.title)
|
|
122
|
-
.replace("{SUMMARY}", task.summary.slice(0, 3000));
|
|
123
|
-
try {
|
|
124
|
-
const raw = await (0, llm_call_1.callLLMWithFallback)(chain, prompt, this.ctx.log, "SkillEvaluator.create", { openclawAPI: this.ctx.openclawAPI });
|
|
125
|
-
return this.parseJSON(raw, {
|
|
126
|
-
shouldGenerate: false, reason: "parse failed", suggestedName: "", suggestedTags: [], confidence: 0,
|
|
127
|
-
});
|
|
128
|
-
}
|
|
129
|
-
catch (err) {
|
|
130
|
-
this.ctx.log.warn(`SkillEvaluator.evaluateCreate failed: ${err}`);
|
|
131
|
-
return { shouldGenerate: false, reason: `error: ${err}`, suggestedName: "", suggestedTags: [], confidence: 0 };
|
|
132
|
-
}
|
|
133
|
-
}
|
|
134
|
-
async evaluateUpgrade(task, skill, skillContent) {
|
|
135
|
-
const chain = (0, llm_call_1.buildSkillConfigChain)(this.ctx);
|
|
136
|
-
if (chain.length === 0) {
|
|
137
|
-
return { shouldUpgrade: false, upgradeType: "refine", dimensions: [], reason: "no LLM configured", mergeStrategy: "", confidence: 0 };
|
|
138
|
-
}
|
|
139
|
-
const prompt = UPGRADE_EVAL_PROMPT
|
|
140
|
-
.replace("{VERSION}", String(skill.version))
|
|
141
|
-
.replace("{SKILL_NAME}", skill.name)
|
|
142
|
-
.replace("{SKILL_CONTENT}", skillContent.slice(0, 4000))
|
|
143
|
-
.replace("{TITLE}", task.title)
|
|
144
|
-
.replace("{SUMMARY}", task.summary.slice(0, 3000));
|
|
145
|
-
try {
|
|
146
|
-
const raw = await (0, llm_call_1.callLLMWithFallback)(chain, prompt, this.ctx.log, "SkillEvaluator.upgrade", { openclawAPI: this.ctx.openclawAPI });
|
|
147
|
-
return this.parseJSON(raw, {
|
|
148
|
-
shouldUpgrade: false, upgradeType: "refine", dimensions: [], reason: "parse failed", mergeStrategy: "", confidence: 0,
|
|
149
|
-
});
|
|
150
|
-
}
|
|
151
|
-
catch (err) {
|
|
152
|
-
this.ctx.log.warn(`SkillEvaluator.evaluateUpgrade failed: ${err}`);
|
|
153
|
-
return { shouldUpgrade: false, upgradeType: "refine", dimensions: [], reason: `error: ${err}`, mergeStrategy: "", confidence: 0 };
|
|
154
|
-
}
|
|
155
|
-
}
|
|
156
|
-
parseJSON(raw, fallback) {
|
|
157
|
-
const jsonMatch = raw.match(/\{[\s\S]*\}/);
|
|
158
|
-
if (!jsonMatch)
|
|
159
|
-
return fallback;
|
|
160
|
-
try {
|
|
161
|
-
return JSON.parse(jsonMatch[0]);
|
|
162
|
-
}
|
|
163
|
-
catch {
|
|
164
|
-
return fallback;
|
|
165
|
-
}
|
|
166
|
-
}
|
|
167
|
-
}
|
|
168
|
-
exports.SkillEvaluator = SkillEvaluator;
|
|
169
|
-
//# sourceMappingURL=evaluator.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"evaluator.js","sourceRoot":"","sources":["../../src/skill/evaluator.ts"],"names":[],"mappings":"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"}
|