@t0ken.ai/memoryx-openclaw-plugin 2.2.31 → 2.2.33
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 +65 -6
- 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,wBAgxBE;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.33";
|
|
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;
|
|
@@ -743,10 +743,54 @@ export default {
|
|
|
743
743
|
catch (e) {
|
|
744
744
|
log(`[Proxy] Failed to extract credentials: ${e}`);
|
|
745
745
|
}
|
|
746
|
+
// 从 OpenClaw config 动态提取模型列表
|
|
747
|
+
// Model id 不需要 provider 前缀,因为 OpenClaw 会先设置 provider,
|
|
748
|
+
// 然后在那个 provider 下查找 model
|
|
749
|
+
function extractModelsFromConfig(config) {
|
|
750
|
+
const models = [
|
|
751
|
+
// 默认虚拟模型 - 类似 SlimClaw 的 auto
|
|
752
|
+
{
|
|
753
|
+
id: 'auto',
|
|
754
|
+
name: 'MemoryX Auto Router',
|
|
755
|
+
reasoning: true,
|
|
756
|
+
input: ['text', 'image'],
|
|
757
|
+
cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 },
|
|
758
|
+
contextWindow: 200000,
|
|
759
|
+
maxTokens: 8192,
|
|
760
|
+
},
|
|
761
|
+
];
|
|
762
|
+
// 从配置中提取所有模型(不加前缀)
|
|
763
|
+
if (config?.models?.providers) {
|
|
764
|
+
for (const [providerId, providerConfig] of Object.entries(config.models.providers)) {
|
|
765
|
+
const pc = providerConfig;
|
|
766
|
+
if (pc.models && Array.isArray(pc.models)) {
|
|
767
|
+
pc.models.forEach((modelId) => {
|
|
768
|
+
models.push({
|
|
769
|
+
id: modelId, // 不加前缀,直接用原始 model id
|
|
770
|
+
name: `${modelId} (via MemoryX)`,
|
|
771
|
+
reasoning: true,
|
|
772
|
+
input: ['text'],
|
|
773
|
+
cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 },
|
|
774
|
+
contextWindow: 128000,
|
|
775
|
+
maxTokens: 8192,
|
|
776
|
+
});
|
|
777
|
+
});
|
|
778
|
+
}
|
|
779
|
+
}
|
|
780
|
+
}
|
|
781
|
+
log(`[Proxy] Extracted ${models.length} models from config`);
|
|
782
|
+
return models;
|
|
783
|
+
}
|
|
746
784
|
// 注册 Proxy Provider
|
|
747
785
|
api.registerProvider({
|
|
748
786
|
id: 'memoryx-proxy',
|
|
749
787
|
name: 'MemoryX Proxy Provider',
|
|
788
|
+
// 声明支持的模型 - 从配置动态提取
|
|
789
|
+
models: {
|
|
790
|
+
baseUrl: 'http://memoryx-proxy.local',
|
|
791
|
+
api: 'anthropic-messages',
|
|
792
|
+
models: extractModelsFromConfig(api.config),
|
|
793
|
+
},
|
|
750
794
|
async sendMessage(params) {
|
|
751
795
|
const requestId = `req-${Date.now()}`;
|
|
752
796
|
// ========== 详细日志 ==========
|
|
@@ -818,8 +862,13 @@ export default {
|
|
|
818
862
|
log(`[Proxy] Memory injection failed: ${e}`);
|
|
819
863
|
}
|
|
820
864
|
// ========== 转发请求 ==========
|
|
821
|
-
//
|
|
822
|
-
|
|
865
|
+
// 解析 model ID:去除 memoryx-proxy/ 前缀
|
|
866
|
+
let actualModel = params.model || '';
|
|
867
|
+
if (actualModel.startsWith('memoryx-proxy/')) {
|
|
868
|
+
actualModel = actualModel.substring('memoryx-proxy/'.length);
|
|
869
|
+
}
|
|
870
|
+
// 确定目标 provider(从 lastRequestInfo 或原始 provider)
|
|
871
|
+
const targetProvider = lastRequestInfo.provider || params.provider || 'anthropic';
|
|
823
872
|
const credentials = providerCredentials.get(targetProvider);
|
|
824
873
|
if (!credentials) {
|
|
825
874
|
log(`[Proxy] ❌ No credentials for provider: ${targetProvider}`);
|
|
@@ -829,10 +878,11 @@ export default {
|
|
|
829
878
|
log(`\n--- Forwarding Request ---`);
|
|
830
879
|
log(`Target Provider: ${targetProvider}`);
|
|
831
880
|
log(`Target URL: ${credentials.baseUrl}`);
|
|
832
|
-
log(`Model: ${params.model}`);
|
|
881
|
+
log(`Original Model: ${params.model}`);
|
|
882
|
+
log(`Actual Model: ${actualModel}`);
|
|
833
883
|
// 构建转发请求
|
|
834
884
|
const forwardBody = {
|
|
835
|
-
model:
|
|
885
|
+
model: actualModel, // 使用去除前缀后的 model
|
|
836
886
|
messages: params.messages,
|
|
837
887
|
system: enhancedSystemPrompt, // 注入后的 system prompt
|
|
838
888
|
stream: params.stream,
|
|
@@ -901,11 +951,20 @@ export default {
|
|
|
901
951
|
}
|
|
902
952
|
});
|
|
903
953
|
api.logger.info('[MemoryX] 🔄 Proxy provider registered: memoryx-proxy');
|
|
954
|
+
// 保存原始请求信息,供 sendMessage 使用
|
|
955
|
+
let lastRequestInfo = {};
|
|
904
956
|
// 用 before_model_resolve 自动切换到 Proxy Provider
|
|
957
|
+
// 注意:event 只有 prompt 字段,provider 信息在 ctx.messageProvider
|
|
905
958
|
api.on('before_model_resolve', (event, ctx) => {
|
|
906
959
|
log(`\n[before_model_resolve] Intercepting request`);
|
|
907
|
-
log(` Original Model: ${event.model}`);
|
|
908
960
|
log(` Prompt Preview: ${event.prompt?.slice(0, 200)}...`);
|
|
961
|
+
log(` Context Provider: ${ctx.messageProvider}`);
|
|
962
|
+
log(` Context AgentId: ${ctx.agentId}`);
|
|
963
|
+
// 保存原始信息(从 context 获取)
|
|
964
|
+
lastRequestInfo = {
|
|
965
|
+
provider: ctx.messageProvider
|
|
966
|
+
};
|
|
967
|
+
// 只覆盖 provider,让 OpenClaw 使用原始 model
|
|
909
968
|
return {
|
|
910
969
|
providerOverride: 'memoryx-proxy'
|
|
911
970
|
};
|
package/package.json
CHANGED