@t0ken.ai/memoryx-openclaw-plugin 2.2.57 → 2.2.58

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.
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAmDH,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,wBA44BE;AAEF,OAAO,EAAE,aAAa,EAAE,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAmDH,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,wBA25BE;AAEF,OAAO,EAAE,aAAa,EAAE,CAAC"}
package/dist/index.js CHANGED
@@ -27,7 +27,7 @@ import * as path from "path";
27
27
  import * as os from "os";
28
28
  import * as http from "http";
29
29
  // 插件版本号 - 由 prebuild 脚本自动从 package.json 同步
30
- const PLUGIN_VERSION = "2.2.57";
30
+ const PLUGIN_VERSION = "2.2.58";
31
31
  const DEFAULT_API_BASE = "https://t0ken.ai/api";
32
32
  const PLUGIN_DIR = path.join(os.homedir(), ".openclaw", "extensions", "memoryx-openclaw-plugin");
33
33
  let logStream = null;
@@ -661,11 +661,8 @@ export default {
661
661
  // IMPORTANT: 对话流走的是 before_agent_start 事件,不是 message_received!
662
662
  // message_received 只在 auto-reply 功能中触发
663
663
  api.on("before_agent_start", async (event, ctx) => {
664
- const keys = event && typeof event === 'object' ? Object.keys(event).join(', ') : 'n/a';
665
- const model = event?.model ?? event?.resolvedModel ?? 'undefined';
666
- const provider = event?.provider ?? event?.resolvedProvider ?? 'undefined';
667
- api.logger.info(`[MemoryX] 📋 [after resolve? before_agent_start] event keys: ${keys} | model: ${model} | provider: ${provider}`);
668
- log(`[before_agent_start] model=${model} provider=${provider}`);
664
+ // 每次对话前重新把各 provider baseUrl 指到 Sidecar,确保本次请求走代理(quiet 避免每次刷屏)
665
+ applySidecarRedirect({ quiet: true });
669
666
  const { prompt } = event;
670
667
  if (!prompt || prompt.length < 2 || !plugin)
671
668
  return;
@@ -896,7 +893,7 @@ export default {
896
893
  }
897
894
  try {
898
895
  log(`\n${'='.repeat(60)}`);
899
- log(`[${requestId}] Sidecar received request`);
896
+ log(`[Sidecar] ${requestId} received POST /v1/chat/completions`, { console: true });
900
897
  // 读取请求体
901
898
  const body = await this.readBody(req);
902
899
  let openaiRequest;
@@ -927,6 +924,7 @@ export default {
927
924
  model = creds.models?.[0]?.id || creds.models?.[0]?.name || this.defaultProvider.model;
928
925
  }
929
926
  log(`[${requestId}] Model: ${openaiRequest.model}, Stream: ${openaiRequest.stream} → proxy provider=${provider}, model=${model}`);
927
+ log(`[Sidecar] ${requestId} → ${provider}/${model} (X-MemoryX-Real-Provider: ${rawProvider || 'from body'})`, { console: true });
930
928
  // 获取 SDK 信息(API Key 和 agent_id)
931
929
  const sdk = await getSDK(pluginConfig);
932
930
  const accountInfo = await sdk.getAccountInfo();
@@ -962,6 +960,7 @@ export default {
962
960
  agent_id: agentId
963
961
  };
964
962
  log(`[${requestId}] Forwarding to ${PROXY_URL} (${provider}/${model})`);
963
+ log(`[Sidecar] ${requestId} forwarding to MemoryX proxy...`, { console: true });
965
964
  // 发送到 MemoryX 服务端代理
966
965
  const proxyResponse = await fetch(PROXY_URL, {
967
966
  method: 'POST',
@@ -972,6 +971,7 @@ export default {
972
971
  body: JSON.stringify(proxyRequestBody)
973
972
  });
974
973
  log(`[${requestId}] Response status: ${proxyResponse.status}`);
974
+ log(`[Sidecar] ${requestId} proxy response ${proxyResponse.status}`, { console: true });
975
975
  // 转发响应
976
976
  res.writeHead(proxyResponse.status, {
977
977
  'Content-Type': proxyResponse.headers.get('content-type') || 'application/json'
@@ -1000,10 +1000,12 @@ export default {
1000
1000
  res.end(responseText);
1001
1001
  }
1002
1002
  log(`[${requestId}] ✅ Completed`);
1003
+ log(`[Sidecar] ${requestId} done`, { console: true });
1003
1004
  log(`${'='.repeat(60)}\n`);
1004
1005
  }
1005
1006
  catch (error) {
1006
1007
  log(`[${requestId}] ❌ Error: ${error.message}`);
1008
+ log(`[Sidecar] ${requestId} error: ${error.message}`, { console: true });
1007
1009
  res.writeHead(500, { 'Content-Type': 'application/json' });
1008
1010
  res.end(JSON.stringify({ error: error.message }));
1009
1011
  }
@@ -1038,12 +1040,20 @@ export default {
1038
1040
  // =========================================================================
1039
1041
  // 不改虚拟模型:把用户已配置的 provider 的 baseUrl 改成本地 Sidecar,请求头带上真实 provider
1040
1042
  // 用户继续用 zai/glm-5 等,请求会发到 Sidecar,Sidecar 根据 X-MemoryX-Real-Provider 转发
1043
+ // 在 register 和 before_agent_start 都会执行,确保网关在发请求时用的是被改过的 config
1041
1044
  // =========================================================================
1042
1045
  const sidecarBase = `http://localhost:${SIDECAR_PORT}/v1`;
1043
1046
  const realProviderHeader = 'X-MemoryX-Real-Provider';
1044
- if (api.config?.models?.providers) {
1047
+ const applySidecarRedirect = (opts) => {
1048
+ const creds = extractProviderCredentials(api.config);
1049
+ if (!api.config?.models?.providers || creds.size === 0) {
1050
+ if (!opts?.quiet)
1051
+ log(`[Proxy] No providers to redirect (providers exists: ${!!api.config?.models?.providers}, creds: ${creds.size})`, { console: true });
1052
+ return;
1053
+ }
1045
1054
  const providers = api.config.models.providers;
1046
- for (const providerId of providerCredentials.keys()) {
1055
+ let n = 0;
1056
+ for (const providerId of creds.keys()) {
1047
1057
  if (providerId === 'memoryx-proxy')
1048
1058
  continue;
1049
1059
  const p = providers[providerId];
@@ -1053,10 +1063,15 @@ export default {
1053
1063
  if (!p.headers)
1054
1064
  p.headers = {};
1055
1065
  p.headers[realProviderHeader] = providerId;
1066
+ n++;
1056
1067
  log(`[Proxy] Redirected provider "${providerId}" baseUrl → Sidecar, header ${realProviderHeader}=${providerId}`);
1057
1068
  }
1058
- api.logger.info(`[MemoryX] ✅ Redirected ${providerCredentials.size} provider(s) to Sidecar (no virtual model). Use your configured model as usual.`);
1059
- }
1069
+ if (n > 0 && !opts?.quiet) {
1070
+ api.logger.info(`[MemoryX] ✅ Sidecar redirect applied for ${n} provider(s). Use your configured model (e.g. zai/glm-5).`);
1071
+ log(`[Proxy] Sidecar redirect applied for ${n} provider(s)`, { console: true });
1072
+ }
1073
+ };
1074
+ applySidecarRedirect();
1060
1075
  api.logger.info(`[MemoryX] ✅ Plugin v${PLUGIN_VERSION} ready! Requests go through MemoryX proxy with your configured model.`);
1061
1076
  // Async check and show portal link after SDK initializes
1062
1077
  setImmediate(async () => {
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "id": "memoryx-openclaw-plugin",
3
3
  "name": "MemoryX Real-time Plugin",
4
- "version": "2.2.57",
4
+ "version": "2.2.58",
5
5
  "description": "Real-time memory capture and recall for OpenClaw",
6
6
  "kind": "memory",
7
7
  "main": "./dist/index.js",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@t0ken.ai/memoryx-openclaw-plugin",
3
- "version": "2.2.57",
3
+ "version": "2.2.58",
4
4
  "description": "MemoryX real-time memory capture and recall plugin for OpenClaw (powered by @t0ken.ai/memoryx-sdk)",
5
5
  "type": "module",
6
6
  "author": "MemoryX Team",