From 8933343433bea8861b67441304e17b949bd5f671 Mon Sep 17 00:00:00 2001 From: Alex Newman Date: Sat, 7 Feb 2026 18:36:20 -0500 Subject: [PATCH] MAESTRO: Add OpenClaw plugin scaffold with configuration files Create openclaw/ directory with plugin manifest (openclaw.plugin.json), package.json, tsconfig.json, and .gitignore. Plugin manifest includes full configSchema with observationFeed settings for live streaming observations to messaging channels. Co-Authored-By: Claude Opus 4.6 --- openclaw/.gitignore | 2 ++ openclaw/openclaw.plugin.json | 48 +++++++++++++++++++++++++++++++++++ openclaw/package.json | 13 ++++++++++ openclaw/tsconfig.json | 26 +++++++++++++++++++ 4 files changed, 89 insertions(+) create mode 100644 openclaw/.gitignore create mode 100644 openclaw/openclaw.plugin.json create mode 100644 openclaw/package.json create mode 100644 openclaw/tsconfig.json diff --git a/openclaw/.gitignore b/openclaw/.gitignore new file mode 100644 index 00000000..b9470778 --- /dev/null +++ b/openclaw/.gitignore @@ -0,0 +1,2 @@ +node_modules/ +dist/ diff --git a/openclaw/openclaw.plugin.json b/openclaw/openclaw.plugin.json new file mode 100644 index 00000000..a80ee362 --- /dev/null +++ b/openclaw/openclaw.plugin.json @@ -0,0 +1,48 @@ +{ + "id": "claude-mem", + "name": "Claude-Mem (Persistent Memory)", + "description": "Official OpenClaw plugin for Claude-Mem. Persistent memory across sessions with live observation feed.", + "kind": "memory", + "version": "1.0.0", + "author": "thedotmack", + "homepage": "https://claude-mem.com", + "configSchema": { + "type": "object", + "additionalProperties": false, + "properties": { + "syncMemoryFile": { + "type": "boolean", + "default": true, + "description": "Automatically sync MEMORY.md on session start" + }, + "workerPort": { + "type": "number", + "default": 37777, + "description": "Port for Claude-Mem worker service" + }, + "workerPath": { + "type": "string", + "description": "Custom path to worker-service.cjs (auto-detected if not set)" + }, + "observationFeed": { + "type": "object", + "description": "Live observation feed — streams observations to any OpenClaw channel in real-time", + "properties": { + "enabled": { + "type": "boolean", + "default": false, + "description": "Enable live observation feed to messaging channels" + }, + "channel": { + "type": "string", + "description": "Channel type: telegram, discord, signal, slack, whatsapp, line" + }, + "to": { + "type": "string", + "description": "Target chat/user ID to send observations to" + } + } + } + } + } +} diff --git a/openclaw/package.json b/openclaw/package.json new file mode 100644 index 00000000..16360ed5 --- /dev/null +++ b/openclaw/package.json @@ -0,0 +1,13 @@ +{ + "name": "@claude-mem/openclaw-plugin", + "version": "1.0.0", + "private": true, + "type": "module", + "main": "dist/index.js", + "scripts": { + "build": "tsc" + }, + "devDependencies": { + "typescript": "^5.3.0" + } +} diff --git a/openclaw/tsconfig.json b/openclaw/tsconfig.json new file mode 100644 index 00000000..129f41be --- /dev/null +++ b/openclaw/tsconfig.json @@ -0,0 +1,26 @@ +{ + "compilerOptions": { + "target": "ES2022", + "module": "ESNext", + "moduleResolution": "node", + "lib": ["ES2022"], + "outDir": "./dist", + "rootDir": "./src", + "strict": true, + "esModuleInterop": true, + "skipLibCheck": true, + "forceConsistentCasingInFileNames": true, + "resolveJsonModule": true, + "declaration": true, + "declarationMap": true, + "sourceMap": true, + "allowSyntheticDefaultImports": true + }, + "include": [ + "src/**/*" + ], + "exclude": [ + "node_modules", + "dist" + ] +}