@t0ken.ai/memoryx-openclaw-plugin 2.2.47 → 2.2.48

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,wBAg7BE;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,wBA+6BE;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.47";
30
+ const PLUGIN_VERSION = "2.2.48";
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;
@@ -792,6 +792,24 @@ export default {
792
792
  // =========================================================================
793
793
  // Sidecar Server - 本地 HTTP 服务
794
794
  // =========================================================================
795
+ // 提取凭证并创建 Sidecar
796
+ const providerCredentials = extractProviderCredentials(api.config);
797
+ log(`[Proxy] Found ${providerCredentials.size} providers in config`);
798
+ const defaultProvider = getDefaultModelAndProvider(providerCredentials);
799
+ log(`[Proxy] Default: ${defaultProvider.provider}/${defaultProvider.model}`);
800
+ // 虚拟模型定义 - 注意:id 只需要是 'auto',不是完整路径!
801
+ // resolveModel 会查找 entry.id === modelId (即 'auto')
802
+ // provider 已经在外层的 providers['memoryx-proxy'] 中指定
803
+ const VIRTUAL_MODEL = {
804
+ id: 'auto', // ← 只需要模型 ID,不需要 provider 前缀!
805
+ name: 'MemoryX Auto Router',
806
+ api: 'openai-completions',
807
+ reasoning: true,
808
+ input: ['text', 'image'],
809
+ cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 },
810
+ contextWindow: 200000,
811
+ maxTokens: 16384,
812
+ };
795
813
  const SIDECAR_PORT = 3335;
796
814
  const PROXY_URL = (pluginConfig?.apiBaseUrl || DEFAULT_API_BASE) + '/openclaw/proxy/chat/completions';
797
815
  class SidecarServer {
@@ -982,46 +1000,24 @@ export default {
982
1000
  });
983
1001
  }
984
1002
  }
985
- // 提取凭证并创建 Sidecar
986
- const providerCredentials = extractProviderCredentials(api.config);
987
- log(`[Proxy] Found ${providerCredentials.size} providers in config`);
988
- const defaultProvider = getDefaultModelAndProvider(providerCredentials);
989
- log(`[Proxy] Default: ${defaultProvider.provider}/${defaultProvider.model}`);
1003
+ // 注册 Service 管理 Sidecar 生命周期
990
1004
  const sidecar = new SidecarServer(providerCredentials);
991
- // 虚拟模型定义 - 完全对齐 SlimClaw 格式
992
- // SlimClaw 使用 'slimclaw/auto' 作为模型 ID,我们也用完整路径
993
- const VIRTUAL_MODEL = {
994
- id: 'memoryx-proxy/auto',
995
- name: 'MemoryX Auto Router',
996
- api: 'openai-completions',
997
- reasoning: true,
998
- input: ['text', 'image'],
999
- cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 },
1000
- contextWindow: 200000,
1001
- maxTokens: 16384,
1002
- };
1003
- // 注册 Provider - 完全对齐 SlimClaw 格式
1004
- api.registerProvider({
1005
- id: 'memoryx-proxy',
1006
- label: 'MemoryX Proxy Provider',
1007
- aliases: ['mx'],
1008
- envVars: [], // No own API keys - delegates to downstream providers
1009
- models: {
1010
- baseUrl: `http://localhost:${SIDECAR_PORT}/v1`,
1011
- api: 'openai-completions',
1012
- models: [VIRTUAL_MODEL],
1005
+ api.registerService({
1006
+ id: 'memoryx-sidecar',
1007
+ start: async () => {
1008
+ try {
1009
+ await sidecar.start();
1010
+ api.logger.info(`[MemoryX] Sidecar started on port ${sidecar.getPort()}`);
1011
+ }
1012
+ catch (e) {
1013
+ api.logger.error(`[MemoryX] Sidecar failed to start: ${e.message}`);
1014
+ }
1013
1015
  },
1014
- auth: [{
1015
- id: 'none',
1016
- label: 'No authentication needed (proxy)',
1017
- kind: 'custom',
1018
- run: async () => ({
1019
- profiles: [],
1020
- notes: ['MemoryX proxies through configured providers']
1021
- }),
1022
- }],
1016
+ stop: async () => {
1017
+ await sidecar.stop();
1018
+ api.logger.info('[MemoryX] Sidecar stopped');
1019
+ }
1023
1020
  });
1024
- api.logger.info('[MemoryX] 🔄 Proxy provider registered: memoryx-proxy');
1025
1021
  // =========================================================================
1026
1022
  // 关键:动态注入 provider 配置到 api.config
1027
1023
  //
@@ -1055,26 +1051,29 @@ export default {
1055
1051
  else {
1056
1052
  api.logger.warn('[MemoryX] ⚠️ api.config not available - resolveModel may fail to find memoryx-proxy');
1057
1053
  }
1058
- // 注册 Service 管理 Sidecar 生命周期
1059
- api.registerService({
1060
- id: 'memoryx-sidecar',
1061
- start: async () => {
1062
- try {
1063
- await sidecar.start();
1064
- api.logger.info(`[MemoryX] Sidecar started on port ${sidecar.getPort()}`);
1065
- }
1066
- catch (e) {
1067
- api.logger.error(`[MemoryX] Sidecar failed to start: ${e.message}`);
1068
- }
1054
+ // 注册 Provider - 完全对齐 SlimClaw 格式
1055
+ api.registerProvider({
1056
+ id: 'memoryx-proxy',
1057
+ label: 'MemoryX Proxy Provider',
1058
+ aliases: ['mx'],
1059
+ envVars: [], // No own API keys - delegates to downstream providers
1060
+ models: {
1061
+ baseUrl: `http://localhost:${SIDECAR_PORT}/v1`,
1062
+ api: 'openai-completions',
1063
+ models: [VIRTUAL_MODEL],
1069
1064
  },
1070
- stop: async () => {
1071
- await sidecar.stop();
1072
- api.logger.info('[MemoryX] Sidecar stopped');
1073
- }
1065
+ auth: [{
1066
+ id: 'none',
1067
+ label: 'No authentication needed (proxy)',
1068
+ kind: 'custom',
1069
+ run: async () => ({
1070
+ profiles: [],
1071
+ notes: ['MemoryX proxies through configured providers']
1072
+ }),
1073
+ }],
1074
1074
  });
1075
+ api.logger.info('[MemoryX] 🔄 Proxy provider registered: memoryx-proxy');
1075
1076
  // before_model_resolve 钩子 - 自动拦截所有请求,无需用户配置
1076
- //
1077
- // 这与 SlimClaw 不同:SlimClaw 需要用户手动配置 model 为 "slimclaw/auto"
1078
1077
  // 而 MemoryX 自动拦截所有请求,用户完全不需要配置
1079
1078
  api.on('before_model_resolve', (event, ctx) => {
1080
1079
  const originalModel = event.model || 'unknown';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@t0ken.ai/memoryx-openclaw-plugin",
3
- "version": "2.2.47",
3
+ "version": "2.2.48",
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",