@t0ken.ai/memoryx-openclaw-plugin 2.2.32 → 2.2.34
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +85 -29
- package/package.json +1 -1
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAkDH,UAAU,YAAY;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,mCAAmC;IACnC,aAAa,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED,UAAU,YAAY;IAClB,QAAQ,EAAE,KAAK,CAAC;QACZ,EAAE,EAAE,MAAM,CAAC;QACX,OAAO,EAAE,MAAM,CAAC;QAChB,QAAQ,EAAE,MAAM,CAAC;QACjB,KAAK,EAAE,MAAM,CAAC;KACjB,CAAC,CAAC;IACH,eAAe,EAAE,KAAK,CAAC;QACnB,EAAE,EAAE,MAAM,CAAC;QACX,OAAO,EAAE,MAAM,CAAC;QAChB,QAAQ,EAAE,MAAM,CAAC;QACjB,KAAK,EAAE,MAAM,CAAC;KACjB,CAAC,CAAC;IACH,SAAS,EAAE,OAAO,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;CACxB;AAqDD,cAAM,aAAa;IACf,OAAO,CAAC,YAAY,CAA2B;IAC/C,OAAO,CAAC,WAAW,CAAkB;IACrC,OAAO,CAAC,aAAa,CAAkB;gBAE3B,YAAY,CAAC,EAAE,YAAY;IAIjC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAad,mBAAmB,IAAI,OAAO,CAAC,IAAI,CAAC;IAUpC,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IA6B1D,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,GAAE,MAAU,GAAG,OAAO,CAAC,YAAY,CAAC;IAyC/D,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC;IAYhC,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAc1C,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAcvE,IAAI,CAAC,KAAK,GAAE,MAAW,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAiBxC,cAAc,IAAI,OAAO,CAAC;QACnC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;QACtB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;QACvB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;QACzB,WAAW,EAAE,OAAO,CAAC;QACrB,KAAK,CAAC,EAAE,GAAG,CAAC;KACf,CAAC;IAwBW,cAAc,IAAI,OAAO,CAAC;QACnC,OAAO,EAAE,OAAO,CAAC;QACjB,IAAI,CAAC,EAAE;YACH,QAAQ,EAAE,MAAM,CAAC;YACjB,IAAI,EAAE,MAAM,CAAC;YACb,UAAU,EAAE,MAAM,CAAC;YACnB,YAAY,EAAE,MAAM,CAAC;YACrB,iBAAiB,EAAE,MAAM,CAAC;YAC1B,gBAAgB,EAAE,MAAM,CAAC;YACzB,mBAAmB,EAAE,MAAM,CAAC;YAC5B,MAAM,EAAE,MAAM,CAAC;YACf,OAAO,EAAE,MAAM,CAAC;SACnB,CAAC;QACF,KAAK,CAAC,EAAE,MAAM,CAAC;KAClB,CAAC;CAcL;;;;;;kBAUiB,GAAG,iBAAiB,YAAY,GAAG,IAAI;;AANzD,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAkDH,UAAU,YAAY;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,mCAAmC;IACnC,aAAa,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED,UAAU,YAAY;IAClB,QAAQ,EAAE,KAAK,CAAC;QACZ,EAAE,EAAE,MAAM,CAAC;QACX,OAAO,EAAE,MAAM,CAAC;QAChB,QAAQ,EAAE,MAAM,CAAC;QACjB,KAAK,EAAE,MAAM,CAAC;KACjB,CAAC,CAAC;IACH,eAAe,EAAE,KAAK,CAAC;QACnB,EAAE,EAAE,MAAM,CAAC;QACX,OAAO,EAAE,MAAM,CAAC;QAChB,QAAQ,EAAE,MAAM,CAAC;QACjB,KAAK,EAAE,MAAM,CAAC;KACjB,CAAC,CAAC;IACH,SAAS,EAAE,OAAO,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;CACxB;AAqDD,cAAM,aAAa;IACf,OAAO,CAAC,YAAY,CAA2B;IAC/C,OAAO,CAAC,WAAW,CAAkB;IACrC,OAAO,CAAC,aAAa,CAAkB;gBAE3B,YAAY,CAAC,EAAE,YAAY;IAIjC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAad,mBAAmB,IAAI,OAAO,CAAC,IAAI,CAAC;IAUpC,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IA6B1D,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,GAAE,MAAU,GAAG,OAAO,CAAC,YAAY,CAAC;IAyC/D,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC;IAYhC,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAc1C,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAcvE,IAAI,CAAC,KAAK,GAAE,MAAW,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAiBxC,cAAc,IAAI,OAAO,CAAC;QACnC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;QACtB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;QACvB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;QACzB,WAAW,EAAE,OAAO,CAAC;QACrB,KAAK,CAAC,EAAE,GAAG,CAAC;KACf,CAAC;IAwBW,cAAc,IAAI,OAAO,CAAC;QACnC,OAAO,EAAE,OAAO,CAAC;QACjB,IAAI,CAAC,EAAE;YACH,QAAQ,EAAE,MAAM,CAAC;YACjB,IAAI,EAAE,MAAM,CAAC;YACb,UAAU,EAAE,MAAM,CAAC;YACnB,YAAY,EAAE,MAAM,CAAC;YACrB,iBAAiB,EAAE,MAAM,CAAC;YAC1B,gBAAgB,EAAE,MAAM,CAAC;YACzB,mBAAmB,EAAE,MAAM,CAAC;YAC5B,MAAM,EAAE,MAAM,CAAC;YACf,OAAO,EAAE,MAAM,CAAC;SACnB,CAAC;QACF,KAAK,CAAC,EAAE,MAAM,CAAC;KAClB,CAAC;CAcL;;;;;;kBAUiB,GAAG,iBAAiB,YAAY,GAAG,IAAI;;AANzD,wBAs0BE;AAEF,OAAO,EAAE,aAAa,EAAE,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -26,7 +26,7 @@ import * as fs from "fs";
|
|
|
26
26
|
import * as path from "path";
|
|
27
27
|
import * as os from "os";
|
|
28
28
|
// 插件版本号 - 由 prebuild 脚本自动从 package.json 同步
|
|
29
|
-
const PLUGIN_VERSION = "2.2.
|
|
29
|
+
const PLUGIN_VERSION = "2.2.34";
|
|
30
30
|
const DEFAULT_API_BASE = "https://t0ken.ai/api";
|
|
31
31
|
const PLUGIN_DIR = path.join(os.homedir(), ".openclaw", "extensions", "memoryx-openclaw-plugin");
|
|
32
32
|
let logStream = null;
|
|
@@ -744,39 +744,89 @@ export default {
|
|
|
744
744
|
log(`[Proxy] Failed to extract credentials: ${e}`);
|
|
745
745
|
}
|
|
746
746
|
// 从 OpenClaw config 动态提取模型列表
|
|
747
|
+
// OpenClaw 在 provider 下查找 model,所以 model id 不需要 provider 前缀
|
|
747
748
|
function extractModelsFromConfig(config) {
|
|
748
|
-
const
|
|
749
|
-
|
|
750
|
-
|
|
751
|
-
|
|
752
|
-
|
|
753
|
-
|
|
754
|
-
|
|
755
|
-
|
|
756
|
-
|
|
757
|
-
|
|
758
|
-
|
|
759
|
-
];
|
|
749
|
+
const modelsMap = new Map();
|
|
750
|
+
// 默认虚拟模型 - 类似 SlimClaw 的 auto
|
|
751
|
+
modelsMap.set('auto', {
|
|
752
|
+
id: 'auto',
|
|
753
|
+
name: 'MemoryX Auto Router',
|
|
754
|
+
reasoning: true,
|
|
755
|
+
input: ['text', 'image'],
|
|
756
|
+
cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 },
|
|
757
|
+
contextWindow: 200000,
|
|
758
|
+
maxTokens: 8192,
|
|
759
|
+
});
|
|
760
760
|
// 从配置中提取所有模型
|
|
761
761
|
if (config?.models?.providers) {
|
|
762
762
|
for (const [providerId, providerConfig] of Object.entries(config.models.providers)) {
|
|
763
763
|
const pc = providerConfig;
|
|
764
|
-
|
|
765
|
-
|
|
766
|
-
|
|
767
|
-
|
|
768
|
-
|
|
769
|
-
|
|
770
|
-
|
|
771
|
-
|
|
772
|
-
|
|
773
|
-
|
|
764
|
+
log(`[Proxy] Checking provider ${providerId} for models...`);
|
|
765
|
+
// 检查多种可能的模型配置格式
|
|
766
|
+
const modelSources = [
|
|
767
|
+
pc.models, // array format: models: ["glm-5", "glm-4.7"]
|
|
768
|
+
pc.modelIds, // alternative name
|
|
769
|
+
pc.model?.models, // nested format
|
|
770
|
+
];
|
|
771
|
+
for (const modelList of modelSources) {
|
|
772
|
+
if (modelList && Array.isArray(modelList)) {
|
|
773
|
+
modelList.forEach((modelId) => {
|
|
774
|
+
if (typeof modelId === 'string' && !modelsMap.has(modelId)) {
|
|
775
|
+
modelsMap.set(modelId, {
|
|
776
|
+
id: modelId,
|
|
777
|
+
name: `${modelId} (via MemoryX)`,
|
|
778
|
+
reasoning: true,
|
|
779
|
+
input: ['text'],
|
|
780
|
+
cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 },
|
|
781
|
+
contextWindow: 128000,
|
|
782
|
+
maxTokens: 8192,
|
|
783
|
+
});
|
|
784
|
+
log(`[Proxy] Added model: ${modelId} from provider ${providerId}`);
|
|
785
|
+
}
|
|
774
786
|
});
|
|
775
|
-
}
|
|
787
|
+
}
|
|
788
|
+
}
|
|
789
|
+
// 检查 object format: models: { "glm-5": {...}, "glm-4.7": {...} }
|
|
790
|
+
if (pc.models && typeof pc.models === 'object' && !Array.isArray(pc.models)) {
|
|
791
|
+
for (const modelId of Object.keys(pc.models)) {
|
|
792
|
+
if (!modelsMap.has(modelId)) {
|
|
793
|
+
modelsMap.set(modelId, {
|
|
794
|
+
id: modelId,
|
|
795
|
+
name: `${modelId} (via MemoryX)`,
|
|
796
|
+
reasoning: true,
|
|
797
|
+
input: ['text'],
|
|
798
|
+
cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 },
|
|
799
|
+
contextWindow: 128000,
|
|
800
|
+
maxTokens: 8192,
|
|
801
|
+
});
|
|
802
|
+
log(`[Proxy] Added model: ${modelId} from provider ${providerId} (object format)`);
|
|
803
|
+
}
|
|
804
|
+
}
|
|
776
805
|
}
|
|
777
806
|
}
|
|
778
807
|
}
|
|
779
|
-
|
|
808
|
+
// 添加常用模型(硬编码备用)
|
|
809
|
+
const fallbackModels = [
|
|
810
|
+
'gpt-4o', 'gpt-4o-mini', 'gpt-4-turbo', 'gpt-3.5-turbo',
|
|
811
|
+
'claude-sonnet-4-20250514', 'claude-3-5-sonnet-20241022', 'claude-3-haiku-20240307',
|
|
812
|
+
'glm-4', 'glm-4-plus', 'glm-4-air', 'glm-4.7', 'glm-5',
|
|
813
|
+
];
|
|
814
|
+
for (const modelId of fallbackModels) {
|
|
815
|
+
if (!modelsMap.has(modelId)) {
|
|
816
|
+
modelsMap.set(modelId, {
|
|
817
|
+
id: modelId,
|
|
818
|
+
name: `${modelId} (via MemoryX)`,
|
|
819
|
+
reasoning: true,
|
|
820
|
+
input: ['text'],
|
|
821
|
+
cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 },
|
|
822
|
+
contextWindow: 128000,
|
|
823
|
+
maxTokens: 8192,
|
|
824
|
+
});
|
|
825
|
+
log(`[Proxy] Added fallback model: ${modelId}`);
|
|
826
|
+
}
|
|
827
|
+
}
|
|
828
|
+
const models = Array.from(modelsMap.values());
|
|
829
|
+
log(`[Proxy] Total models extracted: ${models.length}`);
|
|
780
830
|
return models;
|
|
781
831
|
}
|
|
782
832
|
// 注册 Proxy Provider
|
|
@@ -860,8 +910,13 @@ export default {
|
|
|
860
910
|
log(`[Proxy] Memory injection failed: ${e}`);
|
|
861
911
|
}
|
|
862
912
|
// ========== 转发请求 ==========
|
|
863
|
-
//
|
|
864
|
-
|
|
913
|
+
// 解析 model ID:去除 memoryx-proxy/ 前缀
|
|
914
|
+
let actualModel = params.model || '';
|
|
915
|
+
if (actualModel.startsWith('memoryx-proxy/')) {
|
|
916
|
+
actualModel = actualModel.substring('memoryx-proxy/'.length);
|
|
917
|
+
}
|
|
918
|
+
// 确定目标 provider(从 lastRequestInfo 或原始 provider)
|
|
919
|
+
const targetProvider = lastRequestInfo.provider || params.provider || 'anthropic';
|
|
865
920
|
const credentials = providerCredentials.get(targetProvider);
|
|
866
921
|
if (!credentials) {
|
|
867
922
|
log(`[Proxy] ❌ No credentials for provider: ${targetProvider}`);
|
|
@@ -871,10 +926,11 @@ export default {
|
|
|
871
926
|
log(`\n--- Forwarding Request ---`);
|
|
872
927
|
log(`Target Provider: ${targetProvider}`);
|
|
873
928
|
log(`Target URL: ${credentials.baseUrl}`);
|
|
874
|
-
log(`Model: ${params.model}`);
|
|
929
|
+
log(`Original Model: ${params.model}`);
|
|
930
|
+
log(`Actual Model: ${actualModel}`);
|
|
875
931
|
// 构建转发请求
|
|
876
932
|
const forwardBody = {
|
|
877
|
-
model:
|
|
933
|
+
model: actualModel, // 使用去除前缀后的 model
|
|
878
934
|
messages: params.messages,
|
|
879
935
|
system: enhancedSystemPrompt, // 注入后的 system prompt
|
|
880
936
|
stream: params.stream,
|
package/package.json
CHANGED