@basicmemory/openclaw-basic-memory 0.1.0-alpha.11 → 0.1.0-alpha.12

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 (2) hide show
  1. package/index.ts +35 -0
  2. package/package.json +1 -1
package/index.ts CHANGED
@@ -1,3 +1,4 @@
1
+ import { execSync } from "node:child_process"
1
2
  import type { Server } from "node:http"
2
3
  import type { OpenClawPluginApi } from "openclaw/plugin-sdk"
3
4
  import { BmClient } from "./bm-client.ts"
@@ -89,6 +90,40 @@ export default {
89
90
  start: async (ctx: { config?: unknown; workspaceDir?: string }) => {
90
91
  log.info("starting...")
91
92
 
93
+ // Auto-install bm CLI if not found
94
+ const bmBin = cfg.bmPath || "bm"
95
+ try {
96
+ execSync(`command -v ${bmBin}`, { stdio: "ignore" })
97
+ } catch {
98
+ log.info("bm CLI not found on PATH — attempting auto-install...")
99
+ try {
100
+ execSync("command -v uv", { stdio: "ignore" })
101
+ log.info(
102
+ "installing basic-memory via uv (this may take a minute)...",
103
+ )
104
+ const result = execSync(
105
+ 'uv tool install "basic-memory @ git+https://github.com/basicmachines-co/basic-memory.git@main" --force',
106
+ { encoding: "utf-8", timeout: 120_000, stdio: "pipe" },
107
+ )
108
+ log.info(`basic-memory installed: ${result.trim().split("\n").pop()}`)
109
+ // Verify it worked
110
+ try {
111
+ execSync(`command -v ${bmBin}`, { stdio: "ignore" })
112
+ log.info("bm CLI now available on PATH")
113
+ } catch {
114
+ log.error(
115
+ "bm installed but not found on PATH. You may need to add uv's bin directory to your PATH (typically ~/.local/bin).",
116
+ )
117
+ }
118
+ } catch (uvErr) {
119
+ log.error(
120
+ "Cannot auto-install basic-memory: uv not found. " +
121
+ "Install uv first (brew install uv, or curl -LsSf https://astral.sh/uv/install.sh | sh), " +
122
+ "then restart the gateway.",
123
+ )
124
+ }
125
+ }
126
+
92
127
  const workspace = ctx.workspaceDir ?? process.cwd()
93
128
  const projectPath = resolveProjectPath(cfg.projectPath, workspace)
94
129
  cfg.projectPath = projectPath
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@basicmemory/openclaw-basic-memory",
3
- "version": "0.1.0-alpha.11",
3
+ "version": "0.1.0-alpha.12",
4
4
  "type": "module",
5
5
  "description": "Basic Memory plugin for OpenClaw — local-first knowledge graph for agent memory",
6
6
  "license": "MIT",