@memtensor/memos-local-openclaw-plugin 1.0.3 → 1.0.4-beta.0

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.
Files changed (138) hide show
  1. package/README.md +38 -21
  2. package/dist/client/connector.d.ts +26 -0
  3. package/dist/client/connector.d.ts.map +1 -0
  4. package/dist/client/connector.js +127 -0
  5. package/dist/client/connector.js.map +1 -0
  6. package/dist/client/hub.d.ts +61 -0
  7. package/dist/client/hub.d.ts.map +1 -0
  8. package/dist/client/hub.js +148 -0
  9. package/dist/client/hub.js.map +1 -0
  10. package/dist/client/skill-sync.d.ts +29 -0
  11. package/dist/client/skill-sync.d.ts.map +1 -0
  12. package/dist/client/skill-sync.js +216 -0
  13. package/dist/client/skill-sync.js.map +1 -0
  14. package/dist/config.d.ts +2 -1
  15. package/dist/config.d.ts.map +1 -1
  16. package/dist/config.js +70 -3
  17. package/dist/config.js.map +1 -1
  18. package/dist/embedding/index.d.ts +4 -2
  19. package/dist/embedding/index.d.ts.map +1 -1
  20. package/dist/embedding/index.js +17 -1
  21. package/dist/embedding/index.js.map +1 -1
  22. package/dist/hub/auth.d.ts +19 -0
  23. package/dist/hub/auth.d.ts.map +1 -0
  24. package/dist/hub/auth.js +70 -0
  25. package/dist/hub/auth.js.map +1 -0
  26. package/dist/hub/server.d.ts +41 -0
  27. package/dist/hub/server.d.ts.map +1 -0
  28. package/dist/hub/server.js +742 -0
  29. package/dist/hub/server.js.map +1 -0
  30. package/dist/hub/user-manager.d.ts +28 -0
  31. package/dist/hub/user-manager.d.ts.map +1 -0
  32. package/dist/hub/user-manager.js +112 -0
  33. package/dist/hub/user-manager.js.map +1 -0
  34. package/dist/index.d.ts +2 -0
  35. package/dist/index.d.ts.map +1 -1
  36. package/dist/index.js +4 -3
  37. package/dist/index.js.map +1 -1
  38. package/dist/ingest/providers/index.d.ts +10 -2
  39. package/dist/ingest/providers/index.d.ts.map +1 -1
  40. package/dist/ingest/providers/index.js +203 -6
  41. package/dist/ingest/providers/index.js.map +1 -1
  42. package/dist/ingest/providers/openai.d.ts +1 -0
  43. package/dist/ingest/providers/openai.d.ts.map +1 -1
  44. package/dist/ingest/providers/openai.js +1 -0
  45. package/dist/ingest/providers/openai.js.map +1 -1
  46. package/dist/ingest/task-processor.js +1 -1
  47. package/dist/ingest/task-processor.js.map +1 -1
  48. package/dist/openclaw-api.d.ts +53 -0
  49. package/dist/openclaw-api.d.ts.map +1 -0
  50. package/dist/openclaw-api.js +189 -0
  51. package/dist/openclaw-api.js.map +1 -0
  52. package/dist/recall/engine.js +1 -1
  53. package/dist/recall/engine.js.map +1 -1
  54. package/dist/shared/llm-call.d.ts +4 -1
  55. package/dist/shared/llm-call.d.ts.map +1 -1
  56. package/dist/shared/llm-call.js +15 -0
  57. package/dist/shared/llm-call.js.map +1 -1
  58. package/dist/sharing/types.contract.d.ts +2 -0
  59. package/dist/sharing/types.contract.d.ts.map +1 -0
  60. package/dist/sharing/types.contract.js +3 -0
  61. package/dist/sharing/types.contract.js.map +1 -0
  62. package/dist/sharing/types.d.ts +80 -0
  63. package/dist/sharing/types.d.ts.map +1 -0
  64. package/dist/sharing/types.js +3 -0
  65. package/dist/sharing/types.js.map +1 -0
  66. package/dist/skill/evaluator.d.ts.map +1 -1
  67. package/dist/skill/evaluator.js +2 -2
  68. package/dist/skill/evaluator.js.map +1 -1
  69. package/dist/skill/generator.d.ts.map +1 -1
  70. package/dist/skill/generator.js +4 -4
  71. package/dist/skill/generator.js.map +1 -1
  72. package/dist/skill/upgrader.js +1 -1
  73. package/dist/skill/upgrader.js.map +1 -1
  74. package/dist/skill/validator.js +1 -1
  75. package/dist/skill/validator.js.map +1 -1
  76. package/dist/storage/sqlite.d.ts +294 -0
  77. package/dist/storage/sqlite.d.ts.map +1 -1
  78. package/dist/storage/sqlite.js +902 -8
  79. package/dist/storage/sqlite.js.map +1 -1
  80. package/dist/tools/index.d.ts +1 -0
  81. package/dist/tools/index.d.ts.map +1 -1
  82. package/dist/tools/index.js +3 -1
  83. package/dist/tools/index.js.map +1 -1
  84. package/dist/tools/memory-search.d.ts +3 -2
  85. package/dist/tools/memory-search.d.ts.map +1 -1
  86. package/dist/tools/memory-search.js +48 -7
  87. package/dist/tools/memory-search.js.map +1 -1
  88. package/dist/tools/network-memory-detail.d.ts +4 -0
  89. package/dist/tools/network-memory-detail.d.ts.map +1 -0
  90. package/dist/tools/network-memory-detail.js +34 -0
  91. package/dist/tools/network-memory-detail.js.map +1 -0
  92. package/dist/types.d.ts +47 -2
  93. package/dist/types.d.ts.map +1 -1
  94. package/dist/types.js.map +1 -1
  95. package/dist/viewer/html.d.ts.map +1 -1
  96. package/dist/viewer/html.js +2323 -252
  97. package/dist/viewer/html.js.map +1 -1
  98. package/dist/viewer/server.d.ts +43 -0
  99. package/dist/viewer/server.d.ts.map +1 -1
  100. package/dist/viewer/server.js +1064 -15
  101. package/dist/viewer/server.js.map +1 -1
  102. package/index.ts +428 -16
  103. package/openclaw.plugin.json +2 -1
  104. package/package.json +3 -3
  105. package/scripts/postinstall.cjs +282 -45
  106. package/skill/memos-memory-guide/SKILL.md +26 -2
  107. package/src/client/connector.ts +124 -0
  108. package/src/client/hub.ts +189 -0
  109. package/src/client/skill-sync.ts +202 -0
  110. package/src/config.ts +92 -3
  111. package/src/embedding/index.ts +21 -1
  112. package/src/hub/auth.ts +78 -0
  113. package/src/hub/server.ts +734 -0
  114. package/src/hub/user-manager.ts +126 -0
  115. package/src/index.ts +7 -4
  116. package/src/ingest/providers/index.ts +240 -6
  117. package/src/ingest/providers/openai.ts +1 -1
  118. package/src/ingest/task-processor.ts +1 -1
  119. package/src/openclaw-api.ts +287 -0
  120. package/src/recall/engine.ts +1 -1
  121. package/src/shared/llm-call.ts +19 -1
  122. package/src/sharing/types.contract.ts +40 -0
  123. package/src/sharing/types.ts +102 -0
  124. package/src/skill/evaluator.ts +3 -2
  125. package/src/skill/generator.ts +6 -4
  126. package/src/skill/upgrader.ts +1 -1
  127. package/src/skill/validator.ts +1 -1
  128. package/src/storage/sqlite.ts +1167 -7
  129. package/src/tools/index.ts +1 -0
  130. package/src/tools/memory-search.ts +57 -8
  131. package/src/tools/network-memory-detail.ts +34 -0
  132. package/src/types.ts +42 -2
  133. package/src/viewer/html.ts +2323 -252
  134. package/src/viewer/server.ts +985 -18
  135. package/dist/ingest/extra-paths.d.ts +0 -13
  136. package/dist/ingest/extra-paths.d.ts.map +0 -1
  137. package/dist/ingest/extra-paths.js +0 -173
  138. package/dist/ingest/extra-paths.js.map +0 -1
@@ -0,0 +1,216 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.buildSkillBundleForHub = buildSkillBundleForHub;
37
+ exports.publishSkillBundleToHub = publishSkillBundleToHub;
38
+ exports.fetchHubSkillBundle = fetchHubSkillBundle;
39
+ exports.restoreSkillBundleFromHub = restoreSkillBundleFromHub;
40
+ const fs = __importStar(require("fs"));
41
+ const path = __importStar(require("path"));
42
+ const crypto_1 = require("crypto");
43
+ const hub_1 = require("./hub");
44
+ function buildSkillBundleForHub(store, skillId) {
45
+ const skill = store.getSkill(skillId);
46
+ if (!skill) {
47
+ throw new Error(`Skill not found: ${skillId}`);
48
+ }
49
+ const latestVersion = store.getLatestSkillVersion(skillId);
50
+ const skillMd = readSkillMarkdown(skill.dirPath, latestVersion?.content ?? "");
51
+ return {
52
+ metadata: {
53
+ id: skill.id,
54
+ name: skill.name,
55
+ description: skill.description,
56
+ version: skill.version,
57
+ qualityScore: skill.qualityScore,
58
+ },
59
+ bundle: {
60
+ skill_md: skillMd,
61
+ scripts: readCompanionFiles(path.join(skill.dirPath, "scripts")),
62
+ references: readCompanionFiles(path.join(skill.dirPath, "references")),
63
+ evals: readEvals(path.join(skill.dirPath, "evals", "evals.json")),
64
+ },
65
+ };
66
+ }
67
+ function readSkillMarkdown(dirPath, fallback) {
68
+ const skillMdPath = path.join(dirPath, "SKILL.md");
69
+ if (fs.existsSync(skillMdPath)) {
70
+ return fs.readFileSync(skillMdPath, "utf8");
71
+ }
72
+ return fallback;
73
+ }
74
+ function readCompanionFiles(dirPath) {
75
+ if (!fs.existsSync(dirPath))
76
+ return [];
77
+ const out = [];
78
+ walkFiles(dirPath, dirPath, out);
79
+ return out.sort((left, right) => left.filename.localeCompare(right.filename));
80
+ }
81
+ function walkFiles(rootDir, currentDir, out) {
82
+ for (const entry of fs.readdirSync(currentDir, { withFileTypes: true })) {
83
+ const fullPath = path.join(currentDir, entry.name);
84
+ if (entry.isDirectory()) {
85
+ walkFiles(rootDir, fullPath, out);
86
+ continue;
87
+ }
88
+ if (!entry.isFile())
89
+ continue;
90
+ out.push({
91
+ filename: path.relative(rootDir, fullPath).replace(/\\/g, "/"),
92
+ content: fs.readFileSync(fullPath, "utf8"),
93
+ });
94
+ }
95
+ }
96
+ function readEvals(evalsPath) {
97
+ if (!fs.existsSync(evalsPath))
98
+ return [];
99
+ const raw = JSON.parse(fs.readFileSync(evalsPath, "utf8"));
100
+ return Array.isArray(raw.evals) ? raw.evals : [];
101
+ }
102
+ async function publishSkillBundleToHub(store, ctx, input) {
103
+ const bundle = buildSkillBundleForHub(store, input.skillId);
104
+ const client = await (0, hub_1.resolveHubClient)(store, ctx, { hubAddress: input.hubAddress, userToken: input.userToken });
105
+ return (0, hub_1.hubRequestJson)(client.hubUrl, client.userToken, "/api/v1/hub/skills/publish", {
106
+ method: "POST",
107
+ body: JSON.stringify({
108
+ visibility: input.visibility,
109
+ groupId: input.groupId,
110
+ metadata: bundle.metadata,
111
+ bundle: bundle.bundle,
112
+ }),
113
+ });
114
+ }
115
+ async function fetchHubSkillBundle(store, ctx, input) {
116
+ const client = await (0, hub_1.resolveHubClient)(store, ctx, { hubAddress: input.hubAddress, userToken: input.userToken });
117
+ return (0, hub_1.hubRequestJson)(client.hubUrl, client.userToken, `/api/v1/hub/skills/${encodeURIComponent(input.skillId)}/bundle`, {
118
+ method: "GET",
119
+ });
120
+ }
121
+ function restoreSkillBundleFromHub(store, ctx, payload) {
122
+ validateBundle(payload.bundle);
123
+ const skillsStoreDir = path.join(ctx.stateDir, "skills-store");
124
+ fs.mkdirSync(skillsStoreDir, { recursive: true });
125
+ const baseName = sanitizeName(payload.metadata.name) || `hub-skill-${(payload.skillId ?? payload.metadata.id).slice(0, 8)}`;
126
+ const resolvedName = resolveLocalSkillName(store, baseName, payload.skillId ?? payload.metadata.id);
127
+ const dirPath = path.join(skillsStoreDir, resolvedName);
128
+ fs.mkdirSync(dirPath, { recursive: true });
129
+ fs.writeFileSync(path.join(dirPath, "SKILL.md"), payload.bundle.skill_md, "utf8");
130
+ writeCompanionFiles(dirPath, "scripts", payload.bundle.scripts);
131
+ writeCompanionFiles(dirPath, "references", payload.bundle.references);
132
+ if (payload.bundle.evals.length > 0) {
133
+ const evalDir = path.join(dirPath, "evals");
134
+ fs.mkdirSync(evalDir, { recursive: true });
135
+ fs.writeFileSync(path.join(evalDir, "evals.json"), JSON.stringify({ skill_name: payload.metadata.name, evals: payload.bundle.evals }, null, 2), "utf8");
136
+ }
137
+ const now = Date.now();
138
+ const localSkillId = (0, crypto_1.randomUUID)();
139
+ const skill = {
140
+ id: localSkillId,
141
+ name: resolvedName,
142
+ description: payload.metadata.description,
143
+ version: payload.metadata.version,
144
+ status: "active",
145
+ tags: JSON.stringify(["hub-import"]),
146
+ sourceType: "manual",
147
+ dirPath,
148
+ installed: 0,
149
+ owner: "agent:main",
150
+ visibility: "private",
151
+ qualityScore: payload.metadata.qualityScore,
152
+ createdAt: now,
153
+ updatedAt: now,
154
+ };
155
+ const version = {
156
+ id: (0, crypto_1.randomUUID)(),
157
+ skillId: localSkillId,
158
+ version: payload.metadata.version,
159
+ content: payload.bundle.skill_md,
160
+ changelog: "Imported from hub",
161
+ changeSummary: "Imported from hub",
162
+ upgradeType: "create",
163
+ sourceTaskId: null,
164
+ metrics: "{}",
165
+ qualityScore: payload.metadata.qualityScore,
166
+ createdAt: now,
167
+ };
168
+ store.insertSkill(skill);
169
+ store.insertSkillVersion(version);
170
+ return { localSkillId, localName: resolvedName, dirPath };
171
+ }
172
+ function validateBundle(bundle) {
173
+ const allowedExtensions = new Set([".md", ".ts", ".js", ".sh", ".json", ".yaml", ".yml", ".txt"]);
174
+ const files = [...bundle.scripts, ...bundle.references];
175
+ if (Buffer.byteLength(bundle.skill_md, "utf8") > 100 * 1024)
176
+ throw new Error("SKILL.md exceeds size limit");
177
+ if (files.length > 50)
178
+ throw new Error("bundle contains too many files");
179
+ let totalBytes = Buffer.byteLength(bundle.skill_md, "utf8");
180
+ for (const file of files) {
181
+ const name = file.filename;
182
+ if (!name || path.isAbsolute(name) || name.startsWith("/") || name.includes(".."))
183
+ throw new Error(`unsafe filename: ${name}`);
184
+ if (!/^[A-Za-z0-9._/-]+$/.test(name))
185
+ throw new Error(`invalid filename: ${name}`);
186
+ const ext = path.extname(name).toLowerCase();
187
+ if (!allowedExtensions.has(ext))
188
+ throw new Error(`unsupported file type: ${name}`);
189
+ const fileSize = Buffer.byteLength(file.content, "utf8");
190
+ if (fileSize > 512 * 1024)
191
+ throw new Error(`file exceeds size limit: ${name}`);
192
+ totalBytes += fileSize;
193
+ }
194
+ if (totalBytes > 5 * 1024 * 1024)
195
+ throw new Error("bundle exceeds size limit");
196
+ }
197
+ function writeCompanionFiles(dirPath, root, files) {
198
+ if (files.length === 0)
199
+ return;
200
+ const rootDir = path.join(dirPath, root);
201
+ fs.mkdirSync(rootDir, { recursive: true });
202
+ for (const file of files) {
203
+ const target = path.join(rootDir, file.filename);
204
+ fs.mkdirSync(path.dirname(target), { recursive: true });
205
+ fs.writeFileSync(target, file.content, "utf8");
206
+ }
207
+ }
208
+ function sanitizeName(input) {
209
+ return input.trim().replace(/[^A-Za-z0-9._-]+/g, "-").replace(/^-+|-+$/g, "");
210
+ }
211
+ function resolveLocalSkillName(store, baseName, sourceId) {
212
+ if (!store.getSkillByName(baseName))
213
+ return baseName;
214
+ return `${baseName}-hub-${sourceId.slice(0, 8)}`;
215
+ }
216
+ //# sourceMappingURL=skill-sync.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skill-sync.js","sourceRoot":"","sources":["../../src/client/skill-sync.ts"],"names":[],"mappings":"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"}
package/dist/config.d.ts CHANGED
@@ -1,4 +1,5 @@
1
1
  import { type MemosLocalConfig, type PluginContext, type Logger } from "./types";
2
+ import { type HostModelsConfig } from "./openclaw-api";
2
3
  export declare function resolveConfig(raw: Partial<MemosLocalConfig> | undefined, stateDir: string): MemosLocalConfig;
3
- export declare function buildContext(stateDir: string, workspaceDir: string, rawConfig: Partial<MemosLocalConfig> | undefined, log?: Logger): PluginContext;
4
+ export declare function buildContext(stateDir: string, workspaceDir: string, rawConfig: Partial<MemosLocalConfig> | undefined, log?: Logger, hostModels?: HostModelsConfig): PluginContext;
4
5
  //# sourceMappingURL=config.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AACA,OAAO,EAAY,KAAK,gBAAgB,EAAE,KAAK,aAAa,EAAE,KAAK,MAAM,EAAE,MAAM,SAAS,CAAC;AAqB3F,wBAAgB,aAAa,CAAC,GAAG,EAAE,OAAO,CAAC,gBAAgB,CAAC,GAAG,SAAS,EAAE,QAAQ,EAAE,MAAM,GAAG,gBAAgB,CAmC5G;AAED,wBAAgB,YAAY,CAC1B,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,MAAM,EACpB,SAAS,EAAE,OAAO,CAAC,gBAAgB,CAAC,GAAG,SAAS,EAChD,GAAG,CAAC,EAAE,MAAM,GACX,aAAa,CAcf"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AACA,OAAO,EAAY,KAAK,gBAAgB,EAAE,KAAK,aAAa,EAAE,KAAK,MAAM,EAA+C,MAAM,SAAS,CAAC;AACxI,OAAO,EAAqB,KAAK,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAuC1E,wBAAgB,aAAa,CAAC,GAAG,EAAE,OAAO,CAAC,gBAAgB,CAAC,GAAG,SAAS,EAAE,QAAQ,EAAE,MAAM,GAAG,gBAAgB,CA+F5G;AAED,wBAAgB,YAAY,CAC1B,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,MAAM,EACpB,SAAS,EAAE,OAAO,CAAC,gBAAgB,CAAC,GAAG,SAAS,EAChD,GAAG,CAAC,EAAE,MAAM,EACZ,UAAU,CAAC,EAAE,gBAAgB,GAC5B,aAAa,CAuBf"}
package/dist/config.js CHANGED
@@ -37,6 +37,7 @@ exports.resolveConfig = resolveConfig;
37
37
  exports.buildContext = buildContext;
38
38
  const path = __importStar(require("path"));
39
39
  const types_1 = require("./types");
40
+ const openclaw_api_1 = require("./openclaw-api");
40
41
  const ENV_RE = /\$\{([A-Z_][A-Z0-9_]*)\}/g;
41
42
  function resolveEnvVars(value) {
42
43
  return value.replace(ENV_RE, (_, name) => process.env[name] ?? "");
@@ -55,11 +56,27 @@ function deepResolveEnv(obj) {
55
56
  }
56
57
  return obj;
57
58
  }
59
+ function resolveProviderFallback(config, fallbackProvider, enabled) {
60
+ if (!config) {
61
+ return enabled
62
+ ? { provider: fallbackProvider }
63
+ : undefined;
64
+ }
65
+ if (config.provider == null && enabled) {
66
+ return { ...config, provider: fallbackProvider };
67
+ }
68
+ return config;
69
+ }
58
70
  function resolveConfig(raw, stateDir) {
59
71
  const cfg = deepResolveEnv(raw ?? {});
60
72
  const telemetryEnvVar = process.env.TELEMETRY_ENABLED;
61
73
  const telemetryEnabled = cfg.telemetry?.enabled ??
62
74
  (telemetryEnvVar === "false" || telemetryEnvVar === "0" ? false : true);
75
+ const sharingCapabilities = {
76
+ hostEmbedding: cfg.sharing?.capabilities?.hostEmbedding ?? false,
77
+ hostCompletion: cfg.sharing?.capabilities?.hostCompletion ?? false,
78
+ hostSkill: cfg.sharing?.capabilities?.hostSkill ?? false,
79
+ };
63
80
  return {
64
81
  ...cfg,
65
82
  storage: {
@@ -86,20 +103,70 @@ function resolveConfig(raw, stateDir) {
86
103
  posthogApiKey: cfg.telemetry?.posthogApiKey ?? process.env.POSTHOG_API_KEY ?? "",
87
104
  posthogHost: cfg.telemetry?.posthogHost ?? process.env.POSTHOG_HOST ?? "",
88
105
  },
106
+ summarizer: (() => {
107
+ const summarizerConfig = resolveProviderFallback(cfg.summarizer, "openclaw", sharingCapabilities.hostCompletion);
108
+ return summarizerConfig
109
+ ? {
110
+ ...summarizerConfig,
111
+ capabilities: sharingCapabilities,
112
+ }
113
+ : undefined;
114
+ })(),
115
+ embedding: (() => {
116
+ const embeddingConfig = resolveProviderFallback(cfg.embedding, "openclaw", sharingCapabilities.hostEmbedding);
117
+ return embeddingConfig
118
+ ? {
119
+ ...embeddingConfig,
120
+ capabilities: sharingCapabilities,
121
+ }
122
+ : undefined;
123
+ })(),
124
+ skillEvolution: cfg.skillEvolution ? {
125
+ ...cfg.skillEvolution,
126
+ summarizer: (() => {
127
+ const skSumCfg = resolveProviderFallback(cfg.skillEvolution.summarizer, "openclaw", sharingCapabilities.hostSkill);
128
+ return skSumCfg
129
+ ? { ...skSumCfg, capabilities: sharingCapabilities }
130
+ : undefined;
131
+ })(),
132
+ } : undefined,
133
+ sharing: {
134
+ enabled: cfg.sharing?.enabled ?? false,
135
+ role: cfg.sharing?.role ?? "client",
136
+ hub: {
137
+ port: cfg.sharing?.hub?.port ?? 18800,
138
+ teamName: cfg.sharing?.hub?.teamName ?? "",
139
+ teamToken: cfg.sharing?.hub?.teamToken ?? "",
140
+ },
141
+ client: {
142
+ hubAddress: cfg.sharing?.client?.hubAddress ?? "",
143
+ userToken: cfg.sharing?.client?.userToken ?? "",
144
+ teamToken: cfg.sharing?.client?.teamToken ?? "",
145
+ pendingUserId: cfg.sharing?.client?.pendingUserId ?? "",
146
+ },
147
+ capabilities: sharingCapabilities,
148
+ },
89
149
  };
90
150
  }
91
- function buildContext(stateDir, workspaceDir, rawConfig, log) {
151
+ function buildContext(stateDir, workspaceDir, rawConfig, log, hostModels) {
92
152
  const defaultLog = {
93
153
  debug: (...args) => console.debug("[memos-local]", ...args),
94
154
  info: (...args) => console.info("[memos-local]", ...args),
95
155
  warn: (...args) => console.warn("[memos-local]", ...args),
96
156
  error: (...args) => console.error("[memos-local]", ...args),
97
157
  };
158
+ const logger = log ?? defaultLog;
159
+ const config = resolveConfig(rawConfig, stateDir);
160
+ // Create OpenClawAPI instance if host capabilities are enabled
161
+ const openclawAPI = (config.sharing?.capabilities?.hostEmbedding || config.sharing?.capabilities?.hostCompletion || config.sharing?.capabilities?.hostSkill)
162
+ ? new openclaw_api_1.OpenClawAPIClient(logger, hostModels)
163
+ : undefined;
98
164
  return {
99
165
  stateDir,
100
166
  workspaceDir,
101
- config: resolveConfig(rawConfig, stateDir),
102
- log: log ?? defaultLog,
167
+ config,
168
+ log: logger,
169
+ openclawAPI,
103
170
  };
104
171
  }
105
172
  //# sourceMappingURL=config.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
@@ -1,12 +1,14 @@
1
- import type { EmbeddingConfig, Logger } from "../types";
1
+ import type { EmbeddingConfig, Logger, OpenClawAPI } from "../types";
2
2
  export declare class Embedder {
3
3
  private cfg;
4
4
  private log;
5
- constructor(cfg: EmbeddingConfig | undefined, log: Logger);
5
+ private openclawAPI?;
6
+ constructor(cfg: EmbeddingConfig | undefined, log: Logger, openclawAPI?: OpenClawAPI | undefined);
6
7
  get provider(): string;
7
8
  get dimensions(): number;
8
9
  embed(texts: string[]): Promise<number[][]>;
9
10
  embedQuery(text: string): Promise<number[]>;
10
11
  private embedBatch;
12
+ private embedOpenClaw;
11
13
  }
12
14
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/embedding/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AASxD,qBAAa,QAAQ;IAEjB,OAAO,CAAC,GAAG;IACX,OAAO,CAAC,GAAG;gBADH,GAAG,EAAE,eAAe,GAAG,SAAS,EAChC,GAAG,EAAE,MAAM;IAGrB,IAAI,QAAQ,IAAI,MAAM,CAErB;IAED,IAAI,UAAU,IAAI,MAAM,CAGvB;IAEK,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;IAa3C,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;YAQnC,UAAU;CAsCzB"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/embedding/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AASrE,qBAAa,QAAQ;IAEjB,OAAO,CAAC,GAAG;IACX,OAAO,CAAC,GAAG;IACX,OAAO,CAAC,WAAW,CAAC;gBAFZ,GAAG,EAAE,eAAe,GAAG,SAAS,EAChC,GAAG,EAAE,MAAM,EACX,WAAW,CAAC,EAAE,WAAW,YAAA;IAGnC,IAAI,QAAQ,IAAI,MAAM,CAKrB;IAED,IAAI,UAAU,IAAI,MAAM,CAGvB;IAEK,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;IAa3C,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;YAQnC,UAAU;YAuCV,aAAa;CAe5B"}
@@ -11,11 +11,16 @@ const providers_1 = require("../ingest/providers");
11
11
  class Embedder {
12
12
  cfg;
13
13
  log;
14
- constructor(cfg, log) {
14
+ openclawAPI;
15
+ constructor(cfg, log, openclawAPI) {
15
16
  this.cfg = cfg;
16
17
  this.log = log;
18
+ this.openclawAPI = openclawAPI;
17
19
  }
18
20
  get provider() {
21
+ if (this.cfg?.provider === "openclaw" && this.cfg.capabilities?.hostEmbedding !== true) {
22
+ return "local";
23
+ }
19
24
  return this.cfg?.provider ?? "local";
20
25
  }
21
26
  get dimensions() {
@@ -84,6 +89,17 @@ class Embedder {
84
89
  throw err;
85
90
  }
86
91
  }
92
+ async embedOpenClaw(texts) {
93
+ if (!this.openclawAPI) {
94
+ throw new Error("OpenClaw API not available. Ensure sharing.capabilities.hostEmbedding is enabled in config.");
95
+ }
96
+ this.log.debug(`Calling OpenClaw embed API for ${texts.length} texts`);
97
+ const response = await this.openclawAPI.embed({
98
+ texts,
99
+ model: this.cfg?.model,
100
+ });
101
+ return response.embeddings;
102
+ }
87
103
  }
88
104
  exports.Embedder = Embedder;
89
105
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/embedding/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/embedding/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ import type { UserRole, UserStatus } from "../sharing/types";
2
+ type UserTokenPayload = {
3
+ userId: string;
4
+ username: string;
5
+ role: UserRole;
6
+ status: UserStatus;
7
+ exp: number;
8
+ };
9
+ export declare function createTeamToken(secret: string): string;
10
+ export declare function verifyTeamToken(token: string, secret: string): boolean;
11
+ export declare function issueUserToken(payload: {
12
+ userId: string;
13
+ username: string;
14
+ role: UserRole;
15
+ status: UserStatus;
16
+ }, secret: string, ttlMs?: number): string;
17
+ export declare function verifyUserToken(token: string, secret: string): Omit<UserTokenPayload, "exp"> | null;
18
+ export {};
19
+ //# sourceMappingURL=auth.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../src/hub/auth.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE7D,KAAK,gBAAgB,GAAG;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,QAAQ,CAAC;IACf,MAAM,EAAE,UAAU,CAAC;IACnB,GAAG,EAAE,MAAM,CAAC;CACb,CAAC;AAmBF,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAItD;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAWtE;AAED,wBAAgB,cAAc,CAC5B,OAAO,EAAE;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,QAAQ,CAAC;IAAC,MAAM,EAAE,UAAU,CAAA;CAAE,EACjF,MAAM,EAAE,MAAM,EACd,KAAK,SAAsB,GAC1B,MAAM,CAIR;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC,gBAAgB,EAAE,KAAK,CAAC,GAAG,IAAI,CAoBnG"}
@@ -0,0 +1,70 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createTeamToken = createTeamToken;
4
+ exports.verifyTeamToken = verifyTeamToken;
5
+ exports.issueUserToken = issueUserToken;
6
+ exports.verifyUserToken = verifyUserToken;
7
+ const crypto_1 = require("crypto");
8
+ function base64url(input) {
9
+ return Buffer.from(input)
10
+ .toString("base64")
11
+ .replace(/\+/g, "-")
12
+ .replace(/\//g, "_")
13
+ .replace(/=+$/g, "");
14
+ }
15
+ function unbase64url(input) {
16
+ const padded = input.replace(/-/g, "+").replace(/_/g, "/") + "===".slice((input.length + 3) % 4);
17
+ return Buffer.from(padded, "base64");
18
+ }
19
+ function sign(value, secret) {
20
+ return base64url((0, crypto_1.createHmac)("sha256", secret).update(value).digest());
21
+ }
22
+ function createTeamToken(secret) {
23
+ const nonce = base64url((0, crypto_1.randomBytes)(12));
24
+ const body = `team.${nonce}`;
25
+ return `${body}.${sign(body, secret)}`;
26
+ }
27
+ function verifyTeamToken(token, secret) {
28
+ const idx = token.lastIndexOf(".");
29
+ if (idx <= 0)
30
+ return false;
31
+ const body = token.slice(0, idx);
32
+ const sig = token.slice(idx + 1);
33
+ const expected = sign(body, secret);
34
+ try {
35
+ return (0, crypto_1.timingSafeEqual)(Buffer.from(sig), Buffer.from(expected));
36
+ }
37
+ catch {
38
+ return false;
39
+ }
40
+ }
41
+ function issueUserToken(payload, secret, ttlMs = 24 * 60 * 60 * 1000) {
42
+ const full = { ...payload, exp: Date.now() + ttlMs };
43
+ const body = base64url(JSON.stringify(full));
44
+ return `${body}.${sign(body, secret)}`;
45
+ }
46
+ function verifyUserToken(token, secret) {
47
+ const idx = token.lastIndexOf(".");
48
+ if (idx <= 0)
49
+ return null;
50
+ const body = token.slice(0, idx);
51
+ const sig = token.slice(idx + 1);
52
+ const expected = sign(body, secret);
53
+ try {
54
+ if (!(0, crypto_1.timingSafeEqual)(Buffer.from(sig), Buffer.from(expected)))
55
+ return null;
56
+ const parsed = JSON.parse(unbase64url(body).toString("utf8"));
57
+ if (parsed.exp < Date.now())
58
+ return null;
59
+ return {
60
+ userId: parsed.userId,
61
+ username: parsed.username,
62
+ role: parsed.role,
63
+ status: parsed.status,
64
+ };
65
+ }
66
+ catch {
67
+ return null;
68
+ }
69
+ }
70
+ //# sourceMappingURL=auth.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/hub/auth.ts"],"names":[],"mappings":";;AA4BA,0CAIC;AAED,0CAWC;AAED,wCAQC;AAED,0CAoBC;AA7ED,mCAAkE;AAWlE,SAAS,SAAS,CAAC,KAAsB;IACvC,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;SACtB,QAAQ,CAAC,QAAQ,CAAC;SAClB,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC;SACnB,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC;SACnB,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;AACzB,CAAC;AAED,SAAS,WAAW,CAAC,KAAa;IAChC,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IACjG,OAAO,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;AACvC,CAAC;AAED,SAAS,IAAI,CAAC,KAAa,EAAE,MAAc;IACzC,OAAO,SAAS,CAAC,IAAA,mBAAU,EAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;AACxE,CAAC;AAED,SAAgB,eAAe,CAAC,MAAc;IAC5C,MAAM,KAAK,GAAG,SAAS,CAAC,IAAA,oBAAW,EAAC,EAAE,CAAC,CAAC,CAAC;IACzC,MAAM,IAAI,GAAG,QAAQ,KAAK,EAAE,CAAC;IAC7B,OAAO,GAAG,IAAI,IAAI,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,CAAC;AACzC,CAAC;AAED,SAAgB,eAAe,CAAC,KAAa,EAAE,MAAc;IAC3D,MAAM,GAAG,GAAG,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IACnC,IAAI,GAAG,IAAI,CAAC;QAAE,OAAO,KAAK,CAAC;IAC3B,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IACjC,MAAM,GAAG,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;IACjC,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACpC,IAAI,CAAC;QACH,OAAO,IAAA,wBAAe,EAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;IAClE,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,SAAgB,cAAc,CAC5B,OAAiF,EACjF,MAAc,EACd,KAAK,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI;IAE3B,MAAM,IAAI,GAAqB,EAAE,GAAG,OAAO,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,EAAE,CAAC;IACvE,MAAM,IAAI,GAAG,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;IAC7C,OAAO,GAAG,IAAI,IAAI,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,CAAC;AACzC,CAAC;AAED,SAAgB,eAAe,CAAC,KAAa,EAAE,MAAc;IAC3D,MAAM,GAAG,GAAG,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IACnC,IAAI,GAAG,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IAC1B,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IACjC,MAAM,GAAG,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;IACjC,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAEpC,IAAI,CAAC;QACH,IAAI,CAAC,IAAA,wBAAe,EAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAAE,OAAO,IAAI,CAAC;QAC3E,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAqB,CAAC;QAClF,IAAI,MAAM,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE;YAAE,OAAO,IAAI,CAAC;QACzC,OAAO;YACL,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,MAAM,EAAE,MAAM,CAAC,MAAM;SACtB,CAAC;IACJ,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC"}
@@ -0,0 +1,41 @@
1
+ import type { SqliteStore } from "../storage/sqlite";
2
+ import type { Embedder } from "../embedding";
3
+ import type { Logger, MemosLocalConfig } from "../types";
4
+ type HubServerOptions = {
5
+ store: SqliteStore;
6
+ log: Logger;
7
+ config: MemosLocalConfig;
8
+ dataDir: string;
9
+ embedder?: Embedder;
10
+ };
11
+ export declare class HubServer {
12
+ private opts;
13
+ private server?;
14
+ private remoteHitMap;
15
+ private readonly userManager;
16
+ private readonly authStatePath;
17
+ private authState;
18
+ private static readonly RATE_WINDOW_MS;
19
+ private static readonly RATE_LIMIT_DEFAULT;
20
+ private static readonly RATE_LIMIT_SEARCH;
21
+ private rateBuckets;
22
+ constructor(opts: HubServerOptions);
23
+ private checkRateLimit;
24
+ start(): Promise<string>;
25
+ stop(): Promise<void>;
26
+ private get port();
27
+ private get teamName();
28
+ private get teamToken();
29
+ private get authSecret();
30
+ private loadAuthState;
31
+ private saveAuthState;
32
+ private embedChunksAsync;
33
+ private embedMemoryAsync;
34
+ private handle;
35
+ private authenticate;
36
+ private static readonly MAX_BODY_BYTES;
37
+ private readJson;
38
+ private json;
39
+ }
40
+ export {};
41
+ //# sourceMappingURL=server.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/hub/server.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,KAAK,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAIzD,KAAK,gBAAgB,GAAG;IACtB,KAAK,EAAE,WAAW,CAAC;IACnB,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,gBAAgB,CAAC;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,QAAQ,CAAC;CACrB,CAAC;AAQF,qBAAa,SAAS;IAYR,OAAO,CAAC,IAAI;IAXxB,OAAO,CAAC,MAAM,CAAC,CAAc;IAC7B,OAAO,CAAC,YAAY,CAAgH;IACpI,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAiB;IAC7C,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAS;IACvC,OAAO,CAAC,SAAS,CAAe;IAEhC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAU;IAChD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,kBAAkB,CAAM;IAChD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,iBAAiB,CAAM;IAC/C,OAAO,CAAC,WAAW,CAA6D;gBAE5D,IAAI,EAAE,gBAAgB;IAM1C,OAAO,CAAC,cAAc;IAahB,KAAK,IAAI,OAAO,CAAC,MAAM,CAAC;IAmDxB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAO3B,OAAO,KAAK,IAAI,GAEf;IAED,OAAO,KAAK,QAAQ,GAEnB;IAED,OAAO,KAAK,SAAS,GAEpB;IAED,OAAO,KAAK,UAAU,GAErB;IAED,OAAO,CAAC,aAAa;IAYrB,OAAO,CAAC,aAAa;IAKrB,OAAO,CAAC,gBAAgB;IAgBxB,OAAO,CAAC,gBAAgB;YAcV,MAAM;IAogBpB,OAAO,CAAC,YAAY;IAkBpB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAoB;YAE5C,QAAQ;IAgBtB,OAAO,CAAC,IAAI;CAKb"}