@t0ken.ai/memoryx-openclaw-plugin 2.2.35 → 2.2.37

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;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,wBA4vBE;AAEF,OAAO,EAAE,aAAa,EAAE,CAAC"}
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,wBAoyBE;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.35";
29
+ const PLUGIN_VERSION = "2.2.37";
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,9 +743,7 @@ export default {
743
743
  catch (e) {
744
744
  log(`[Proxy] Failed to extract credentials: ${e}`);
745
745
  }
746
- // 简化方案:只注册一个虚拟模型 "auto"
747
- // before_model_resolve 拦截所有请求,改为使用 memoryx-proxy/auto
748
- // sendMessage 用原始模型去代理,用户无感知
746
+ // 虚拟模型定义
749
747
  const VIRTUAL_MODEL = {
750
748
  id: 'auto',
751
749
  name: 'MemoryX Auto Router',
@@ -755,16 +753,22 @@ export default {
755
753
  contextWindow: 200000,
756
754
  maxTokens: 8192,
757
755
  };
758
- log(`[Proxy] Using simplified virtual model: auto`);
759
- // 注册 Proxy Provider - 只注册一个虚拟模型 "auto"
756
+ log(`[Proxy] Registering provider with virtual model: auto`);
757
+ // 注册 Proxy Provider - 使用正确的 ModelProviderConfig 格式
760
758
  api.registerProvider({
761
759
  id: 'memoryx-proxy',
762
- name: 'MemoryX Proxy Provider',
760
+ label: 'MemoryX Proxy Provider',
763
761
  models: {
764
762
  baseUrl: 'http://memoryx-proxy.local',
765
- api: 'anthropic-messages',
766
- models: [VIRTUAL_MODEL], // 只注册 auto
763
+ models: [VIRTUAL_MODEL],
767
764
  },
765
+ // auth 是必需的,提供一个简单的 apiKey 方式
766
+ auth: [{
767
+ id: 'api-key',
768
+ label: 'API Key',
769
+ kind: 'apiKey',
770
+ run: async () => ({ ok: true, credentials: {} }),
771
+ }],
768
772
  async sendMessage(params) {
769
773
  const requestId = `req-${Date.now()}`;
770
774
  // ========== 详细日志 ==========
@@ -924,23 +928,56 @@ export default {
924
928
  }
925
929
  });
926
930
  api.logger.info('[MemoryX] 🔄 Proxy provider registered: memoryx-proxy');
931
+ // 从 api.config 读取默认 model 和 provider
932
+ // 注意:hook context 不包含 model 信息,只能从 config 读取
933
+ // config 结构可能是:
934
+ // - agents.defaults.model = "model-id" (string)
935
+ // - agents.defaults.model = { default: "model-id" } (object)
936
+ // - agents.defaults.model.default = "model-id" (nested)
937
+ const getDefaultModelAndProvider = () => {
938
+ const agentsDefaults = api.config?.agents?.defaults;
939
+ // 处理 model - 可能是 string 或 object
940
+ let model = 'claude-sonnet-4-20250514';
941
+ if (agentsDefaults?.model) {
942
+ const m = agentsDefaults.model;
943
+ if (typeof m === 'string') {
944
+ model = m;
945
+ }
946
+ else if (typeof m === 'object' && m.default) {
947
+ model = typeof m.default === 'string' ? m.default : String(m.default);
948
+ }
949
+ }
950
+ // 处理 provider - 可能是 string 或 object
951
+ let provider = 'anthropic';
952
+ if (agentsDefaults?.provider) {
953
+ const p = agentsDefaults.provider;
954
+ if (typeof p === 'string') {
955
+ provider = p;
956
+ }
957
+ else if (typeof p === 'object' && p.default) {
958
+ provider = typeof p.default === 'string' ? p.default : String(p.default);
959
+ }
960
+ }
961
+ return { model, provider };
962
+ };
927
963
  // 保存原始请求信息,供 sendMessage 使用
928
- let lastRequestInfo = {};
964
+ let lastRequestInfo = getDefaultModelAndProvider();
965
+ log(`[Proxy] Default model/provider from config: ${lastRequestInfo.model}/${lastRequestInfo.provider}`);
929
966
  // 用 before_model_resolve 自动切换到 Proxy Provider
930
967
  // 关键:同时覆盖 provider 和 model,让 OpenClaw 找到 memoryx-proxy/auto
931
- // 原始 model 保存在 lastRequestInfo 中,sendMessage 用它去代理
968
+ // 注意:hook context 没有 model,从 api.config 读取默认值
932
969
  api.on('before_model_resolve', (event, ctx) => {
933
970
  log(`\n[before_model_resolve] Intercepting request`);
934
971
  log(` Prompt Preview: ${event.prompt?.slice(0, 200)}...`);
935
- log(` Context Provider: ${ctx.messageProvider}`);
936
- log(` Context Model: ${ctx.model}`);
972
+ log(` Context messageProvider: ${ctx.messageProvider}`);
937
973
  log(` Context AgentId: ${ctx.agentId}`);
938
- // 保存原始信息(从 context 获取)
974
+ // config 获取默认 model/provider(hook context 没有 model)
975
+ const defaults = getDefaultModelAndProvider();
939
976
  lastRequestInfo = {
940
- model: ctx.model,
941
- provider: ctx.messageProvider
977
+ model: defaults.model,
978
+ provider: defaults.provider
942
979
  };
943
- log(`[before_model_resolve] Saved original: model=${ctx.model}, provider=${ctx.messageProvider}`);
980
+ log(`[before_model_resolve] Using defaults from config: model=${defaults.model}, provider=${defaults.provider}`);
944
981
  // 同时覆盖 provider 和 model
945
982
  // 这样 OpenClaw 会找 memoryx-proxy/auto,一定能找到
946
983
  return {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@t0ken.ai/memoryx-openclaw-plugin",
3
- "version": "2.2.35",
3
+ "version": "2.2.37",
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",