@memclaw/plugin 0.9.0 → 0.9.2

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.
package/README.md CHANGED
@@ -76,23 +76,37 @@ bun install
76
76
 
77
77
  # Build the plugin
78
78
  bun run build
79
+ ```
80
+
81
+ **Option A: Use plugins.load.paths**
82
+
83
+ ```json
84
+ {
85
+ "plugins": {
86
+ "load": {
87
+ "paths": ["/path/to/cortex-mem/examples/@memclaw/plugin"]
88
+ },
89
+ "entries": {
90
+ "memclaw": { "enabled": true }
91
+ }
92
+ }
93
+ }
94
+ ```
95
+
96
+ **Option B: Symlink to extensions directory**
79
97
 
80
- # Create a symlink to the plugin directory
81
- # This makes OpenClaw use your local version
82
- mkdir -p ~/.openclaw/plugins
83
- ln -sf "$(pwd)" ~/.openclaw/plugins/memclaw
98
+ ```bash
99
+ mkdir -p ~/.openclaw/extensions
100
+ ln -sf "$(pwd)" ~/.openclaw/extensions/memclaw
84
101
  ```
85
102
 
86
- Then configure in `openclaw.json` with the local plugin path:
103
+ Then enable in `openclaw.json`:
87
104
 
88
105
  ```json
89
106
  {
90
107
  "plugins": {
91
108
  "entries": {
92
- "memclaw": {
93
- "enabled": true,
94
- "path": "./plugins/memclaw"
95
- }
109
+ "memclaw": { "enabled": true }
96
110
  }
97
111
  }
98
112
  }
@@ -0,0 +1,100 @@
1
+ /**
2
+ * MemClaw - Layered Semantic Memory for OpenClaw
3
+ *
4
+ * Provides:
5
+ * - L0/L1/L2 tiered memory retrieval
6
+ * - Automatic service startup (Qdrant + cortex-mem-service)
7
+ * - Migration from OpenClaw native memory
8
+ *
9
+ * Installation:
10
+ * openclaw plugins install memclaw
11
+ *
12
+ * Configuration (in openclaw.json):
13
+ * {
14
+ * "plugins": {
15
+ * "entries": {
16
+ * "memclaw": {
17
+ * "enabled": true,
18
+ * "config": {
19
+ * "serviceUrl": "http://127.0.0.1:8085",
20
+ * "tenantId": "tenant_claw",
21
+ * "autoStartServices": true
22
+ * }
23
+ * }
24
+ * }
25
+ * }
26
+ * }
27
+ */
28
+ export type { CortexMemClient } from './src/client.js';
29
+ export type { MemClawConfig } from './src/config.js';
30
+ interface PluginLogger {
31
+ debug?: (msg: string, ...args: unknown[]) => void;
32
+ info: (msg: string, ...args: unknown[]) => void;
33
+ warn: (msg: string, ...args: unknown[]) => void;
34
+ error: (msg: string, ...args: unknown[]) => void;
35
+ }
36
+ interface ToolDefinition {
37
+ name: string;
38
+ description: string;
39
+ parameters: object;
40
+ execute: (_id: string, params: Record<string, unknown>) => Promise<unknown>;
41
+ optional?: boolean;
42
+ }
43
+ interface PluginAPI {
44
+ pluginConfig?: Record<string, unknown>;
45
+ registerTool(tool: ToolDefinition, opts?: {
46
+ optional?: boolean;
47
+ }): void;
48
+ registerService(service: {
49
+ id: string;
50
+ start: () => Promise<void>;
51
+ stop: () => Promise<void>;
52
+ }): void;
53
+ logger: PluginLogger;
54
+ }
55
+ export default function memclawPlugin(api: PluginAPI): {
56
+ id: string;
57
+ name: string;
58
+ version: string;
59
+ };
60
+ export declare const plugin: {
61
+ id: string;
62
+ name: string;
63
+ version: string;
64
+ configSchema: {
65
+ type: string;
66
+ properties: {
67
+ serviceUrl: {
68
+ type: string;
69
+ default: string;
70
+ };
71
+ defaultSessionId: {
72
+ type: string;
73
+ default: string;
74
+ };
75
+ searchLimit: {
76
+ type: string;
77
+ default: number;
78
+ };
79
+ minScore: {
80
+ type: string;
81
+ default: number;
82
+ };
83
+ tenantId: {
84
+ type: string;
85
+ default: string;
86
+ };
87
+ autoStartServices: {
88
+ type: string;
89
+ default: boolean;
90
+ };
91
+ };
92
+ required: never[];
93
+ };
94
+ register(api: PluginAPI): {
95
+ id: string;
96
+ name: string;
97
+ version: string;
98
+ };
99
+ };
100
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAKH,YAAY,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AACvD,YAAY,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAGrD,UAAU,YAAY;IACrB,KAAK,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC;IAClD,IAAI,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC;IAChD,IAAI,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC;IAChD,KAAK,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC;CACjD;AAED,UAAU,cAAc;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IAC5E,QAAQ,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,UAAU,SAAS;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACvC,YAAY,CAAC,IAAI,EAAE,cAAc,EAAE,IAAI,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,IAAI,CAAC;IACxE,eAAe,CAAC,OAAO,EAAE;QACxB,EAAE,EAAE,MAAM,CAAC;QACX,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;QAC3B,IAAI,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;KAC1B,GAAG,IAAI,CAAC;IACT,MAAM,EAAE,YAAY,CAAC;CACrB;AAGD,MAAM,CAAC,OAAO,UAAU,aAAa,CAAC,GAAG,EAAE,SAAS;;;;EAEnD;AAGD,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kBAgBJ,SAAS;;;;;CAGvB,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,58 @@
1
+ "use strict";
2
+ /**
3
+ * MemClaw - Layered Semantic Memory for OpenClaw
4
+ *
5
+ * Provides:
6
+ * - L0/L1/L2 tiered memory retrieval
7
+ * - Automatic service startup (Qdrant + cortex-mem-service)
8
+ * - Migration from OpenClaw native memory
9
+ *
10
+ * Installation:
11
+ * openclaw plugins install memclaw
12
+ *
13
+ * Configuration (in openclaw.json):
14
+ * {
15
+ * "plugins": {
16
+ * "entries": {
17
+ * "memclaw": {
18
+ * "enabled": true,
19
+ * "config": {
20
+ * "serviceUrl": "http://127.0.0.1:8085",
21
+ * "tenantId": "tenant_claw",
22
+ * "autoStartServices": true
23
+ * }
24
+ * }
25
+ * }
26
+ * }
27
+ * }
28
+ */
29
+ Object.defineProperty(exports, "__esModule", { value: true });
30
+ exports.plugin = void 0;
31
+ exports.default = memclawPlugin;
32
+ const plugin_impl_js_1 = require("./plugin-impl.js");
33
+ // Default export - main plugin function
34
+ function memclawPlugin(api) {
35
+ return (0, plugin_impl_js_1.createPlugin)(api);
36
+ }
37
+ // Named export - object style registration
38
+ exports.plugin = {
39
+ id: 'memclaw',
40
+ name: 'MemClaw',
41
+ version: '0.9.2',
42
+ configSchema: {
43
+ type: 'object',
44
+ properties: {
45
+ serviceUrl: { type: 'string', default: 'http://localhost:8085' },
46
+ defaultSessionId: { type: 'string', default: 'default' },
47
+ searchLimit: { type: 'integer', default: 10 },
48
+ minScore: { type: 'number', default: 0.6 },
49
+ tenantId: { type: 'string', default: 'tenant_claw' },
50
+ autoStartServices: { type: 'boolean', default: true }
51
+ },
52
+ required: []
53
+ },
54
+ register(api) {
55
+ return (0, plugin_impl_js_1.createPlugin)(api);
56
+ }
57
+ };
58
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;;;AAoCH,gCAEC;AApCD,qDAAgD;AAiChD,wCAAwC;AACxC,SAAwB,aAAa,CAAC,GAAc;IACnD,OAAO,IAAA,6BAAY,EAAC,GAAG,CAAC,CAAC;AAC1B,CAAC;AAED,2CAA2C;AAC9B,QAAA,MAAM,GAAG;IACrB,EAAE,EAAE,SAAS;IACb,IAAI,EAAE,SAAS;IACf,OAAO,EAAE,OAAO;IAChB,YAAY,EAAE;QACb,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACX,UAAU,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,uBAAuB,EAAE;YAChE,gBAAgB,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE;YACxD,WAAW,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE,EAAE;YAC7C,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,EAAE;YAC1C,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,aAAa,EAAE;YACpD,iBAAiB,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE;SACrD;QACD,QAAQ,EAAE,EAAE;KACZ;IACD,QAAQ,CAAC,GAAc;QACtB,OAAO,IAAA,6BAAY,EAAC,GAAG,CAAC,CAAC;IAC1B,CAAC;CACD,CAAC"}
@@ -0,0 +1,40 @@
1
+ /**
2
+ * MemClaw Plugin Implementation
3
+ *
4
+ * Provides layered semantic memory for OpenClaw with:
5
+ * - Automatic service startup
6
+ * - Memory tools (search, recall, add, list, close)
7
+ * - Migration from OpenClaw native memory
8
+ */
9
+ interface PluginLogger {
10
+ debug?: (msg: string, ...args: unknown[]) => void;
11
+ info: (msg: string, ...args: unknown[]) => void;
12
+ warn: (msg: string, ...args: unknown[]) => void;
13
+ error: (msg: string, ...args: unknown[]) => void;
14
+ }
15
+ interface ToolDefinition {
16
+ name: string;
17
+ description: string;
18
+ parameters: object;
19
+ execute: (_id: string, params: Record<string, unknown>) => Promise<unknown>;
20
+ optional?: boolean;
21
+ }
22
+ interface PluginAPI {
23
+ pluginConfig?: Record<string, unknown>;
24
+ registerTool(tool: ToolDefinition, opts?: {
25
+ optional?: boolean;
26
+ }): void;
27
+ registerService(service: {
28
+ id: string;
29
+ start: () => Promise<void>;
30
+ stop: () => Promise<void>;
31
+ }): void;
32
+ logger: PluginLogger;
33
+ }
34
+ export declare function createPlugin(api: PluginAPI): {
35
+ id: string;
36
+ name: string;
37
+ version: string;
38
+ };
39
+ export {};
40
+ //# sourceMappingURL=plugin-impl.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugin-impl.d.ts","sourceRoot":"","sources":["../plugin-impl.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AA8BH,UAAU,YAAY;IACpB,KAAK,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC;IAClD,IAAI,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC;IAChD,IAAI,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC;IAChD,KAAK,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC;CAClD;AAED,UAAU,cAAc;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IAC5E,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,UAAU,SAAS;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACvC,YAAY,CAAC,IAAI,EAAE,cAAc,EAAE,IAAI,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,IAAI,CAAC;IACxE,eAAe,CAAC,OAAO,EAAE;QACvB,EAAE,EAAE,MAAM,CAAC;QACX,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;QAC3B,IAAI,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;KAC3B,GAAG,IAAI,CAAC;IACT,MAAM,EAAE,YAAY,CAAC;CACtB;AAuJD,wBAAgB,YAAY,CAAC,GAAG,EAAE,SAAS;;;;EAiW1C"}