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

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 (99) hide show
  1. package/.env.example +7 -0
  2. package/README.md +94 -27
  3. package/dist/capture/index.js +3 -1
  4. package/dist/capture/index.js.map +1 -1
  5. package/dist/client/connector.d.ts +5 -0
  6. package/dist/client/connector.d.ts.map +1 -1
  7. package/dist/client/connector.js +89 -8
  8. package/dist/client/connector.js.map +1 -1
  9. package/dist/config.d.ts.map +1 -1
  10. package/dist/config.js +2 -1
  11. package/dist/config.js.map +1 -1
  12. package/dist/hub/server.d.ts +2 -0
  13. package/dist/hub/server.d.ts.map +1 -1
  14. package/dist/hub/server.js +240 -35
  15. package/dist/hub/server.js.map +1 -1
  16. package/dist/hub/user-manager.d.ts +9 -0
  17. package/dist/hub/user-manager.d.ts.map +1 -1
  18. package/dist/hub/user-manager.js +26 -2
  19. package/dist/hub/user-manager.js.map +1 -1
  20. package/dist/ingest/chunker.d.ts +2 -1
  21. package/dist/ingest/chunker.d.ts.map +1 -1
  22. package/dist/ingest/chunker.js +14 -10
  23. package/dist/ingest/chunker.js.map +1 -1
  24. package/dist/ingest/providers/index.js +2 -2
  25. package/dist/ingest/providers/index.js.map +1 -1
  26. package/dist/recall/engine.d.ts.map +1 -1
  27. package/dist/recall/engine.js +22 -4
  28. package/dist/recall/engine.js.map +1 -1
  29. package/dist/shared/llm-call.d.ts.map +1 -1
  30. package/dist/shared/llm-call.js +2 -1
  31. package/dist/shared/llm-call.js.map +1 -1
  32. package/dist/sharing/types.d.ts +1 -1
  33. package/dist/sharing/types.d.ts.map +1 -1
  34. package/dist/skill/evolver.d.ts +2 -0
  35. package/dist/skill/evolver.d.ts.map +1 -1
  36. package/dist/skill/evolver.js +56 -5
  37. package/dist/skill/evolver.js.map +1 -1
  38. package/dist/skill/generator.d.ts +2 -0
  39. package/dist/skill/generator.d.ts.map +1 -1
  40. package/dist/skill/generator.js +45 -3
  41. package/dist/skill/generator.js.map +1 -1
  42. package/dist/skill/installer.d.ts +26 -0
  43. package/dist/skill/installer.d.ts.map +1 -1
  44. package/dist/skill/installer.js +80 -4
  45. package/dist/skill/installer.js.map +1 -1
  46. package/dist/skill/upgrader.d.ts +2 -0
  47. package/dist/skill/upgrader.d.ts.map +1 -1
  48. package/dist/skill/upgrader.js +139 -1
  49. package/dist/skill/upgrader.js.map +1 -1
  50. package/dist/skill/validator.d.ts +3 -0
  51. package/dist/skill/validator.d.ts.map +1 -1
  52. package/dist/skill/validator.js +75 -0
  53. package/dist/skill/validator.js.map +1 -1
  54. package/dist/storage/sqlite.d.ts +57 -0
  55. package/dist/storage/sqlite.d.ts.map +1 -1
  56. package/dist/storage/sqlite.js +290 -35
  57. package/dist/storage/sqlite.js.map +1 -1
  58. package/dist/telemetry.d.ts.map +1 -1
  59. package/dist/telemetry.js +27 -8
  60. package/dist/telemetry.js.map +1 -1
  61. package/dist/types.d.ts +10 -0
  62. package/dist/types.d.ts.map +1 -1
  63. package/dist/types.js +4 -0
  64. package/dist/types.js.map +1 -1
  65. package/dist/viewer/html.d.ts.map +1 -1
  66. package/dist/viewer/html.js +564 -225
  67. package/dist/viewer/html.js.map +1 -1
  68. package/dist/viewer/server.d.ts +9 -0
  69. package/dist/viewer/server.d.ts.map +1 -1
  70. package/dist/viewer/server.js +357 -108
  71. package/dist/viewer/server.js.map +1 -1
  72. package/index.ts +411 -52
  73. package/openclaw.plugin.json +1 -1
  74. package/package.json +2 -1
  75. package/prebuilds/darwin-arm64/better_sqlite3.node +0 -0
  76. package/prebuilds/darwin-x64/better_sqlite3.node +0 -0
  77. package/prebuilds/linux-x64/better_sqlite3.node +0 -0
  78. package/prebuilds/win32-x64/better_sqlite3.node +0 -0
  79. package/src/capture/index.ts +4 -1
  80. package/src/client/connector.ts +92 -8
  81. package/src/config.ts +2 -1
  82. package/src/hub/server.ts +235 -35
  83. package/src/hub/user-manager.ts +42 -6
  84. package/src/ingest/chunker.ts +19 -13
  85. package/src/ingest/providers/index.ts +2 -2
  86. package/src/recall/engine.ts +20 -4
  87. package/src/shared/llm-call.ts +2 -1
  88. package/src/sharing/types.ts +1 -1
  89. package/src/skill/evolver.ts +58 -6
  90. package/src/skill/generator.ts +44 -5
  91. package/src/skill/installer.ts +107 -4
  92. package/src/skill/upgrader.ts +139 -1
  93. package/src/skill/validator.ts +79 -0
  94. package/src/storage/sqlite.ts +318 -40
  95. package/src/telemetry.ts +27 -9
  96. package/src/types.ts +11 -0
  97. package/src/viewer/html.ts +564 -225
  98. package/src/viewer/server.ts +333 -105
  99. package/telemetry.credentials.json +5 -0
package/src/telemetry.ts CHANGED
@@ -18,14 +18,27 @@ export interface TelemetryConfig {
18
18
  enabled?: boolean;
19
19
  }
20
20
 
21
- const ARMS_ENDPOINT =
22
- "https://proj-xtrace-e218d9316b328f196a3c640cc7ca84-cn-hangzhou.cn-hangzhou.log.aliyuncs.com" +
23
- "/rum/web/v2" +
24
- "?workspace=default-cms-1026429231103299-cn-hangzhou" +
25
- "&service_id=a3u72ukxmr@066657d42a13a9a9f337f";
21
+ function loadTelemetryCredentials(): { endpoint: string; pid: string; env: string } {
22
+ if (process.env.MEMOS_ARMS_ENDPOINT) {
23
+ return {
24
+ endpoint: process.env.MEMOS_ARMS_ENDPOINT,
25
+ pid: process.env.MEMOS_ARMS_PID ?? "",
26
+ env: process.env.MEMOS_ARMS_ENV ?? "prod",
27
+ };
28
+ }
29
+ try {
30
+ const credPath = path.resolve(__dirname, "..", "telemetry.credentials.json");
31
+ const raw = fs.readFileSync(credPath, "utf-8");
32
+ const creds = JSON.parse(raw);
33
+ if (creds.endpoint) return { endpoint: creds.endpoint, pid: creds.pid ?? "", env: creds.env ?? "prod" };
34
+ } catch {}
35
+ return { endpoint: "", pid: "", env: "prod" };
36
+ }
26
37
 
27
- const ARMS_PID = "a3u72ukxmr@066657d42a13a9a9f337f";
28
- const ARMS_ENV = "prod";
38
+ const _creds = loadTelemetryCredentials();
39
+ const ARMS_ENDPOINT = _creds.endpoint;
40
+ const ARMS_PID = _creds.pid;
41
+ const ARMS_ENV = _creds.env;
29
42
 
30
43
  const FLUSH_AT = 10;
31
44
  const FLUSH_INTERVAL_MS = 30_000;
@@ -63,8 +76,13 @@ export class Telemetry {
63
76
  this.firstSeenDate = this.loadOrCreateFirstSeen(stateDir);
64
77
  this.sessionId = this.loadOrCreateSessionId(stateDir);
65
78
 
66
- if (!this.enabled) {
67
- this.log.debug("Telemetry disabled (opt-out via TELEMETRY_ENABLED=false)");
79
+ if (!this.enabled || !ARMS_ENDPOINT) {
80
+ this.enabled = false;
81
+ this.log.debug(
82
+ !ARMS_ENDPOINT
83
+ ? "Telemetry disabled (no credentials configured)"
84
+ : "Telemetry disabled (opt-out)",
85
+ );
68
86
  return;
69
87
  }
70
88
 
package/src/types.ts CHANGED
@@ -66,6 +66,8 @@ export interface ChunkRef {
66
66
 
67
67
  // ─── Search / Recall ───
68
68
 
69
+ export type SearchHitOrigin = "local" | "local-shared" | "hub-memory" | "hub-remote";
70
+
69
71
  export interface SearchHit {
70
72
  summary: string;
71
73
  original_excerpt: string;
@@ -74,6 +76,7 @@ export interface SearchHit {
74
76
  taskId: string | null;
75
77
  skillId: string | null;
76
78
  owner?: string;
79
+ origin?: SearchHitOrigin;
77
80
  source: {
78
81
  ts: number;
79
82
  role: Role;
@@ -249,6 +252,10 @@ export interface SkillEvolutionConfig {
249
252
  minConfidence?: number;
250
253
  maxSkillLines?: number;
251
254
  autoInstall?: boolean;
255
+ autoRecallSkills?: boolean;
256
+ autoRecallSkillLimit?: number;
257
+ preferUpgradeExisting?: boolean;
258
+ redactSensitiveInSkill?: boolean;
252
259
  /** Optional independent LLM config for skill evaluation/validation. Falls back to main summarizer if not set. */
253
260
  summarizer?: SummarizerConfig;
254
261
  }
@@ -344,6 +351,10 @@ export const DEFAULTS = {
344
351
  skillMinConfidence: 0.7,
345
352
  skillMaxLines: 400,
346
353
  skillAutoInstall: false,
354
+ skillAutoRecall: true,
355
+ skillAutoRecallLimit: 2,
356
+ skillPreferUpgrade: true,
357
+ skillRedactSensitive: true,
347
358
  } as const;
348
359
 
349
360
  // ─── Plugin Hooks (OpenClaw integration) ───