@keyoku/openclaw 1.1.0 → 1.2.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.
package/dist/init.d.ts CHANGED
@@ -7,7 +7,7 @@
7
7
  * 2. Downloads keyoku-engine binary if missing
8
8
  * 3. Registers plugin in openclaw.json (with full config defaults)
9
9
  * 4. Configures DB path (~/.keyoku/data/keyoku.db)
10
- * 5. Sets up LLM provider + API key (OpenAI required for embeddings)
10
+ * 5. Sets up LLM provider + API key (embeddings auto-match extraction provider)
11
11
  * 6. Sets autonomy level (observe/suggest/act)
12
12
  * 7. Auto-detects timezone, configures quiet hours
13
13
  * 8. Installs SKILL.md (LLM guidebook) to workspace
@@ -1 +1 @@
1
- {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../src/init.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AA+aH;;GAEG;AACH,wBAAsB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAoJ1C"}
1
+ {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../src/init.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AA0hBH;;GAEG;AACH,wBAAsB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAiL1C"}
package/dist/init.js CHANGED
@@ -7,7 +7,7 @@
7
7
  * 2. Downloads keyoku-engine binary if missing
8
8
  * 3. Registers plugin in openclaw.json (with full config defaults)
9
9
  * 4. Configures DB path (~/.keyoku/data/keyoku.db)
10
- * 5. Sets up LLM provider + API key (OpenAI required for embeddings)
10
+ * 5. Sets up LLM provider + API key (embeddings auto-match extraction provider)
11
11
  * 6. Sets autonomy level (observe/suggest/act)
12
12
  * 7. Auto-detects timezone, configures quiet hours
13
13
  * 8. Installs SKILL.md (LLM guidebook) to workspace
@@ -28,15 +28,47 @@ const OPENCLAW_CONFIG_PATH = join(HOME, '.openclaw', 'openclaw.json');
28
28
  const KEYOKU_BIN_DIR = join(HOME, '.keyoku', 'bin');
29
29
  const KEYOKU_BIN_PATH = join(KEYOKU_BIN_DIR, 'keyoku');
30
30
  const OPENCLAW_MEMORY_DIR = join(HOME, '.openclaw', 'memory');
31
+ // ── ANSI Colors ──────────────────────────────────────────────────────────
32
+ const c = {
33
+ reset: '\x1b[0m',
34
+ bold: '\x1b[1m',
35
+ dim: '\x1b[2m',
36
+ // Indigo/purple brand palette
37
+ indigo: '\x1b[38;2;99;102;241m', // #6366f1
38
+ purple: '\x1b[38;2;167;139;250m', // #a78bfa
39
+ lilac: '\x1b[38;2;196;181;253m', // #c4b5fd
40
+ green: '\x1b[38;2;34;197;94m', // #22c55e
41
+ yellow: '\x1b[38;2;250;204;21m', // #facc15
42
+ red: '\x1b[38;2;239;68;68m', // #ef4444
43
+ gray: '\x1b[38;2;148;163;184m', // #94a3b8
44
+ white: '\x1b[38;2;241;245;249m', // #f1f5f9
45
+ cyan: '\x1b[38;2;34;211;238m', // #22d3ee
46
+ };
47
+ // ── Output Helpers ───────────────────────────────────────────────────────
48
+ let currentStep = 0;
49
+ const totalSteps = 10;
50
+ function stepHeader(label) {
51
+ currentStep++;
52
+ console.log('');
53
+ console.log(` ${c.indigo}${c.bold}[${currentStep}/${totalSteps}]${c.reset} ${c.white}${c.bold}${label}${c.reset}`);
54
+ console.log(` ${c.dim}${'─'.repeat(50)}${c.reset}`);
55
+ }
31
56
  function log(msg) {
32
- console.log(` ${msg}`);
57
+ console.log(` ${c.gray}${msg}${c.reset}`);
33
58
  }
34
59
  function success(msg) {
35
- console.log(` [OK] ${msg}`);
60
+ console.log(` ${c.green}✔${c.reset} ${msg}`);
36
61
  }
37
62
  function warn(msg) {
38
- console.log(` [!] ${msg}`);
63
+ console.log(` ${c.yellow}⚠${c.reset} ${msg}`);
64
+ }
65
+ function info(msg) {
66
+ console.log(` ${c.indigo}▸${c.reset} ${msg}`);
67
+ }
68
+ function fail(msg) {
69
+ console.log(` ${c.red}✖${c.reset} ${msg}`);
39
70
  }
71
+ // ── Stdin Buffering ──────────────────────────────────────────────────────
40
72
  // Pre-buffered stdin lines for piped (non-TTY) input.
41
73
  // When stdin is a pipe, readline only delivers the first line via question().
42
74
  // We read all lines upfront and serve them from the buffer.
@@ -72,7 +104,7 @@ async function prompt(question) {
72
104
  await ensureStdinBuffer();
73
105
  // Piped mode — read from pre-buffered lines
74
106
  if (stdinLines !== null) {
75
- process.stdout.write(` ${question} `);
107
+ process.stdout.write(` ${c.purple}?${c.reset} ${question} `);
76
108
  const answer = stdinLines.shift() ?? '';
77
109
  console.log(answer);
78
110
  return answer.trim();
@@ -82,7 +114,7 @@ async function prompt(question) {
82
114
  ttyRl = createInterface({ input: process.stdin, output: process.stdout });
83
115
  }
84
116
  return new Promise((resolve) => {
85
- ttyRl.question(` ${question} `, (answer) => {
117
+ ttyRl.question(` ${c.purple}?${c.reset} ${question} `, (answer) => {
86
118
  resolve(answer.trim());
87
119
  });
88
120
  });
@@ -91,6 +123,27 @@ async function prompt(question) {
91
123
  async function promptLower(question) {
92
124
  return (await prompt(question)).toLowerCase();
93
125
  }
126
+ /**
127
+ * Show numbered choices and return the selected option.
128
+ * Returns the value string (not the number).
129
+ */
130
+ async function choose(question, options, defaultIndex = 0) {
131
+ console.log('');
132
+ for (let i = 0; i < options.length; i++) {
133
+ const marker = i === defaultIndex ? `${c.indigo}${c.bold}` : c.gray;
134
+ const tag = i === defaultIndex ? ` ${c.dim}(default)${c.reset}` : '';
135
+ const desc = options[i].desc ? ` ${c.dim}${options[i].desc}${c.reset}` : '';
136
+ console.log(` ${marker} ${i + 1}) ${options[i].label}${c.reset}${tag}${desc}`);
137
+ }
138
+ console.log('');
139
+ const answer = await prompt(`${question} [${options.map((_, i) => i + 1).join('/')}]:`);
140
+ const idx = parseInt(answer, 10) - 1;
141
+ if (idx >= 0 && idx < options.length) {
142
+ return options[idx].value;
143
+ }
144
+ return options[defaultIndex].value;
145
+ }
146
+ // ── Platform Detection ───────────────────────────────────────────────────
94
147
  /**
95
148
  * Detect platform and architecture for binary download.
96
149
  */
@@ -111,33 +164,33 @@ function getPlatformInfo() {
111
164
  arch: archMap[arch] ?? arch,
112
165
  };
113
166
  }
167
+ // ── Binary Download ──────────────────────────────────────────────────────
114
168
  /**
115
169
  * Download the keyoku-engine binary from GitHub releases.
116
170
  */
117
171
  async function downloadBinary() {
118
172
  const { os, arch } = getPlatformInfo();
119
- const binaryName = os === 'windows' ? 'keyoku-server.exe' : 'keyoku-server';
120
173
  const assetName = `keyoku-server-${os}-${arch}${os === 'windows' ? '.exe' : ''}`;
121
- log(`Downloading keyoku-engine for ${os}/${arch}...`);
174
+ info(`Downloading keyoku-engine for ${c.bold}${os}/${arch}${c.reset}...`);
122
175
  try {
123
176
  // Get latest release info from GitHub API
124
177
  const releaseRes = await fetch('https://api.github.com/repos/keyoku-ai/keyoku-engine/releases/latest', { headers: { Accept: 'application/vnd.github.v3+json' } });
125
178
  if (!releaseRes.ok) {
126
- warn(`Could not fetch latest release: ${releaseRes.status} ${releaseRes.statusText}`);
179
+ fail(`Could not fetch latest release: ${releaseRes.status} ${releaseRes.statusText}`);
127
180
  return false;
128
181
  }
129
182
  const release = await releaseRes.json();
130
183
  const asset = release.assets.find((a) => a.name === assetName);
131
184
  if (!asset) {
132
- warn(`No binary found for ${os}/${arch} in release ${release.tag_name}`);
133
- warn(`Available assets: ${release.assets.map((a) => a.name).join(', ')}`);
185
+ fail(`No binary found for ${os}/${arch} in release ${release.tag_name}`);
186
+ log(`Available: ${release.assets.map((a) => a.name).join(', ')}`);
134
187
  return false;
135
188
  }
136
- log(`Downloading ${asset.name} from release ${release.tag_name}...`);
189
+ info(`Fetching ${c.bold}${asset.name}${c.reset} from ${c.dim}${release.tag_name}${c.reset}...`);
137
190
  // Download the binary
138
191
  const downloadRes = await fetch(asset.browser_download_url);
139
192
  if (!downloadRes.ok || !downloadRes.body) {
140
- warn(`Download failed: ${downloadRes.status}`);
193
+ fail(`Download failed: ${downloadRes.status}`);
141
194
  return false;
142
195
  }
143
196
  // Ensure directory exists
@@ -151,14 +204,15 @@ async function downloadBinary() {
151
204
  if (os !== 'windows') {
152
205
  chmodSync(destPath, 0o755);
153
206
  }
154
- success(`Binary installed at ${destPath}`);
207
+ success(`Binary installed ${c.dim}${destPath}${c.reset}`);
155
208
  return true;
156
209
  }
157
210
  catch (err) {
158
- warn(`Failed to download binary: ${String(err)}`);
211
+ fail(`Failed to download binary: ${String(err)}`);
159
212
  return false;
160
213
  }
161
214
  }
215
+ // ── Config Management ────────────────────────────────────────────────────
162
216
  /**
163
217
  * Read and parse the OpenClaw config file.
164
218
  */
@@ -178,6 +232,7 @@ function readOpenClawConfig() {
178
232
  function writeOpenClawConfig(config) {
179
233
  writeFileSync(OPENCLAW_CONFIG_PATH, JSON.stringify(config, null, 2) + '\n', 'utf-8');
180
234
  }
235
+ // ── Skill Installation ───────────────────────────────────────────────────
181
236
  /**
182
237
  * Install the SKILL.md guidebook to the workspace skills directory.
183
238
  * This teaches the LLM how to interpret heartbeat signals, use memory naturally, etc.
@@ -189,7 +244,7 @@ function installSkill() {
189
244
  // Install to workspace skills (highest precedence)
190
245
  const workspaceSkillDir = join(HOME, '.openclaw', 'skills', 'keyoku-memory');
191
246
  if (existsSync(join(workspaceSkillDir, 'SKILL.md'))) {
192
- success('SKILL.md already installed in workspace');
247
+ success('SKILL.md already installed');
193
248
  return;
194
249
  }
195
250
  if (!existsSync(bundledSkillPath)) {
@@ -198,70 +253,108 @@ function installSkill() {
198
253
  }
199
254
  mkdirSync(workspaceSkillDir, { recursive: true });
200
255
  cpSync(bundledSkillPath, join(workspaceSkillDir, 'SKILL.md'));
201
- success('SKILL.md installed to ~/.openclaw/skills/keyoku-memory/');
256
+ success(`SKILL.md installed ${c.dim}~/.openclaw/skills/keyoku-memory/${c.reset}`);
202
257
  }
258
+ // ── LLM Provider Setup ──────────────────────────────────────────────────
203
259
  /**
204
260
  * Set up LLM provider and API keys.
205
- * OpenAI is required for embeddings. Extraction provider is configurable.
261
+ * Embeddings auto-match the extraction provider (no separate key needed for Gemini).
206
262
  */
207
263
  async function setupLlmProvider() {
208
- console.log('');
209
- log('LLM Provider Setup');
210
- log('Keyoku needs an OpenAI API key for embeddings (text-embedding-3-small).');
211
- log('It also needs an LLM for memory extraction (can be OpenAI, Anthropic, or Gemini).');
212
- console.log('');
213
264
  // Check existing env vars
214
265
  const hasOpenAI = !!process.env.OPENAI_API_KEY;
215
266
  const hasAnthropic = !!process.env.ANTHROPIC_API_KEY;
216
267
  const hasGemini = !!process.env.GEMINI_API_KEY;
217
- if (hasOpenAI) {
218
- success('OPENAI_API_KEY found in environment');
268
+ // Extraction provider
269
+ const currentProvider = process.env.KEYOKU_EXTRACTION_PROVIDER;
270
+ if (currentProvider) {
271
+ success(`Extraction: ${c.bold}${currentProvider}${c.reset} (${process.env.KEYOKU_EXTRACTION_MODEL || 'default model'})`);
219
272
  }
220
273
  else {
221
- warn('OPENAI_API_KEY not found required for memory embeddings');
222
- log('Set it in your shell profile or .env file:');
223
- log(' export OPENAI_API_KEY=sk-...');
224
- console.log('');
225
- const key = await prompt('Enter your OpenAI API key (or press Enter to skip):');
226
- if (key && key.startsWith('sk-')) {
227
- appendToEnvFile('OPENAI_API_KEY', key);
228
- process.env.OPENAI_API_KEY = key;
229
- success('OPENAI_API_KEY saved to ~/.keyoku/.env');
274
+ // Auto-detect best available provider
275
+ if (hasGemini) {
276
+ appendToEnvFile('KEYOKU_EXTRACTION_PROVIDER', 'gemini');
277
+ appendToEnvFile('KEYOKU_EXTRACTION_MODEL', 'gemini-2.5-flash');
278
+ appendToEnvFile('KEYOKU_EMBEDDING_PROVIDER', 'gemini');
279
+ appendToEnvFile('KEYOKU_EMBEDDING_MODEL', 'gemini-embedding-001');
280
+ success(`Auto-configured: ${c.bold}Gemini${c.reset} for extraction + embeddings`);
230
281
  }
231
- else if (key) {
232
- warn('That doesn\'t look like an OpenAI key (should start with sk-). Skipping.');
282
+ else if (hasOpenAI) {
283
+ appendToEnvFile('KEYOKU_EXTRACTION_PROVIDER', 'openai');
284
+ appendToEnvFile('KEYOKU_EXTRACTION_MODEL', 'gpt-5-mini');
285
+ appendToEnvFile('KEYOKU_EMBEDDING_PROVIDER', 'openai');
286
+ appendToEnvFile('KEYOKU_EMBEDDING_MODEL', 'text-embedding-3-small');
287
+ success(`Auto-configured: ${c.bold}OpenAI${c.reset} for extraction + embeddings`);
288
+ }
289
+ else if (hasAnthropic) {
290
+ appendToEnvFile('KEYOKU_EXTRACTION_PROVIDER', 'anthropic');
291
+ appendToEnvFile('KEYOKU_EXTRACTION_MODEL', 'claude-haiku-4-5-20251001');
292
+ success(`Auto-configured: ${c.bold}Anthropic${c.reset} for extraction`);
293
+ warn('Anthropic does not provide embeddings — add an OpenAI or Gemini key for embeddings');
233
294
  }
234
295
  else {
235
- warn('Skipped you\'ll need to set OPENAI_API_KEY before using memory features');
296
+ // No API key detected prompt for provider
297
+ const provider = await choose('Which LLM provider?', [
298
+ { label: 'OpenAI', value: 'openai', desc: 'extraction + embeddings' },
299
+ { label: 'Gemini', value: 'gemini', desc: 'extraction + embeddings' },
300
+ { label: 'Anthropic', value: 'anthropic', desc: 'extraction only' },
301
+ ]);
302
+ if (provider === 'gemini') {
303
+ const key = await prompt('Gemini API key:');
304
+ if (key) {
305
+ appendToEnvFile('GEMINI_API_KEY', key);
306
+ appendToEnvFile('KEYOKU_EXTRACTION_PROVIDER', 'gemini');
307
+ appendToEnvFile('KEYOKU_EXTRACTION_MODEL', 'gemini-2.5-flash');
308
+ appendToEnvFile('KEYOKU_EMBEDDING_PROVIDER', 'gemini');
309
+ appendToEnvFile('KEYOKU_EMBEDDING_MODEL', 'gemini-embedding-001');
310
+ success('Gemini configured');
311
+ }
312
+ else {
313
+ warn('No key provided — set GEMINI_API_KEY manually');
314
+ }
315
+ }
316
+ else if (provider === 'anthropic') {
317
+ const key = await prompt('Anthropic API key (sk-ant-...):');
318
+ if (key) {
319
+ appendToEnvFile('ANTHROPIC_API_KEY', key);
320
+ appendToEnvFile('KEYOKU_EXTRACTION_PROVIDER', 'anthropic');
321
+ appendToEnvFile('KEYOKU_EXTRACTION_MODEL', 'claude-haiku-4-5-20251001');
322
+ warn('Add an OpenAI or Gemini key for embeddings');
323
+ }
324
+ else {
325
+ warn('No key provided — set ANTHROPIC_API_KEY manually');
326
+ }
327
+ }
328
+ else {
329
+ // Default: OpenAI
330
+ const key = await prompt('OpenAI API key (sk-...):');
331
+ if (key && key.startsWith('sk-')) {
332
+ appendToEnvFile('OPENAI_API_KEY', key);
333
+ appendToEnvFile('KEYOKU_EXTRACTION_PROVIDER', 'openai');
334
+ appendToEnvFile('KEYOKU_EXTRACTION_MODEL', 'gpt-5-mini');
335
+ appendToEnvFile('KEYOKU_EMBEDDING_PROVIDER', 'openai');
336
+ appendToEnvFile('KEYOKU_EMBEDDING_MODEL', 'text-embedding-3-small');
337
+ success('OpenAI configured');
338
+ }
339
+ else {
340
+ warn('Invalid key — set OPENAI_API_KEY manually');
341
+ }
342
+ }
236
343
  }
237
344
  }
238
- // Extraction provider
239
- const currentProvider = process.env.KEYOKU_EXTRACTION_PROVIDER;
240
- if (currentProvider) {
241
- success(`Extraction provider: ${currentProvider} (${process.env.KEYOKU_EXTRACTION_MODEL || 'default model'})`);
242
- return;
243
- }
244
- // Auto-detect best available provider
245
- if (hasOpenAI || process.env.OPENAI_API_KEY) {
246
- log('Using OpenAI for memory extraction (detected OPENAI_API_KEY)');
247
- appendToEnvFile('KEYOKU_EXTRACTION_PROVIDER', 'openai');
248
- appendToEnvFile('KEYOKU_EXTRACTION_MODEL', 'gpt-4.1-mini');
249
- }
250
- else if (hasGemini) {
251
- log('Using Gemini for memory extraction (detected GEMINI_API_KEY)');
252
- appendToEnvFile('KEYOKU_EXTRACTION_PROVIDER', 'gemini');
253
- appendToEnvFile('KEYOKU_EXTRACTION_MODEL', 'gemini-3.1-flash-lite-preview');
254
- }
255
- else if (hasAnthropic) {
256
- log('Using Anthropic for memory extraction (detected ANTHROPIC_API_KEY)');
257
- appendToEnvFile('KEYOKU_EXTRACTION_PROVIDER', 'anthropic');
258
- appendToEnvFile('KEYOKU_EXTRACTION_MODEL', 'claude-haiku-4-5-20251001');
259
- }
260
- else {
261
- warn('No LLM API key detected. Memory extraction will not work.');
262
- warn('Set at least one: OPENAI_API_KEY, ANTHROPIC_API_KEY, or GEMINI_API_KEY');
345
+ // Show detected API keys
346
+ const detected = [];
347
+ if (hasOpenAI)
348
+ detected.push('OpenAI');
349
+ if (hasGemini)
350
+ detected.push('Gemini');
351
+ if (hasAnthropic)
352
+ detected.push('Anthropic');
353
+ if (detected.length > 0) {
354
+ success(`API keys detected: ${c.bold}${detected.join(', ')}${c.reset}`);
263
355
  }
264
356
  }
357
+ // ── Environment File Management ──────────────────────────────────────────
265
358
  /**
266
359
  * Append a key=value to ~/.keyoku/.env (creates if needed).
267
360
  * This file is sourced by the service when starting keyoku-engine.
@@ -285,6 +378,7 @@ function appendToEnvFile(key, value) {
285
378
  const line = `${key}=${value}\n`;
286
379
  writeFileSync(envPath, content + line, 'utf-8');
287
380
  }
381
+ // ── System Configuration ─────────────────────────────────────────────────
288
382
  /**
289
383
  * Detect the system timezone (IANA format).
290
384
  */
@@ -300,16 +394,11 @@ function detectTimezone() {
300
394
  * Set up autonomy level — controls how aggressively heartbeat acts on signals.
301
395
  */
302
396
  async function setupAutonomy(config) {
303
- console.log('');
304
- log('Autonomy Level');
305
- log('Controls how the agent acts on heartbeat signals (deadlines, reminders, etc.).');
306
- console.log('');
307
- log(' observe — Note signals silently, only act when the user asks');
308
- log(' suggest — Mention important signals naturally in conversation (recommended)');
309
- log(' act — Proactively execute actions (create reminders, follow up, etc.)');
310
- console.log('');
311
- const answer = await promptLower('Autonomy level [observe/suggest/act] (default: suggest):');
312
- const level = ['observe', 'suggest', 'act'].includes(answer) ? answer : 'suggest';
397
+ const level = await choose('Autonomy level?', [
398
+ { label: 'observe', value: 'observe', desc: 'note signals silently, only act when asked' },
399
+ { label: 'suggest', value: 'suggest', desc: 'mention important signals in conversation' },
400
+ { label: 'act', value: 'act', desc: 'proactively execute actions (reminders, follow-ups)' },
401
+ ], 1);
313
402
  // Save to plugin config in openclaw.json
314
403
  const entry = config.plugins?.entries?.['keyoku-memory'];
315
404
  if (entry) {
@@ -318,27 +407,28 @@ async function setupAutonomy(config) {
318
407
  entry.config.autonomy = level;
319
408
  writeOpenClawConfig(config);
320
409
  }
321
- success(`Autonomy set to: ${level}`);
410
+ success(`Autonomy ${c.bold}${level}${c.reset}`);
322
411
  }
323
412
  /**
324
413
  * Set up timezone and quiet hours — controls when heartbeats are suppressed.
325
414
  */
326
415
  async function setupTimezoneAndQuietHours() {
327
- console.log('');
328
- log('Timezone & Quiet Hours');
329
416
  // Auto-detect timezone
330
417
  const detected = detectTimezone();
331
- const tzAnswer = await prompt(`Timezone? (detected: ${detected}, press Enter to accept):`);
418
+ const tzAnswer = await prompt(`Timezone? (detected: ${c.bold}${detected}${c.reset}, Enter to accept):`);
332
419
  const timezone = tzAnswer || detected;
333
420
  appendToEnvFile('KEYOKU_QUIET_HOURS_TIMEZONE', timezone);
334
- success(`Timezone: ${timezone}`);
421
+ success(`Timezone ${c.bold}${timezone}${c.reset}`);
335
422
  // Quiet hours
336
423
  console.log('');
337
424
  log('Quiet hours suppress non-urgent heartbeat signals (e.g., 11pm–7am).');
338
- const enableQuiet = await promptLower('Enable quiet hours? (y/n, default: y):');
339
- if (enableQuiet === 'n') {
425
+ const enableQuiet = await choose('Enable quiet hours?', [
426
+ { label: 'Yes', value: 'yes', desc: '11pm–7am by default' },
427
+ { label: 'No', value: 'no', desc: 'heartbeats can fire anytime' },
428
+ ]);
429
+ if (enableQuiet === 'no') {
340
430
  appendToEnvFile('KEYOKU_QUIET_HOURS_ENABLED', 'false');
341
- log('Quiet hours disabled — heartbeats can fire anytime');
431
+ success('Quiet hours disabled');
342
432
  return;
343
433
  }
344
434
  appendToEnvFile('KEYOKU_QUIET_HOURS_ENABLED', 'true');
@@ -352,14 +442,15 @@ async function setupTimezoneAndQuietHours() {
352
442
  if (!isNaN(end) && end >= 0 && end <= 23) {
353
443
  appendToEnvFile('KEYOKU_QUIET_HOUR_END', String(end));
354
444
  }
355
- success(`Quiet hours: ${isNaN(start) ? 23 : start}:00 – ${isNaN(end) ? 7 : end}:00 (${timezone})`);
445
+ success(`Quiet hours ${c.bold}${isNaN(start) ? 23 : start}:00 – ${isNaN(end) ? 7 : end}:00${c.reset} (${timezone})`);
356
446
  }
447
+ // ── Health Check ─────────────────────────────────────────────────────────
357
448
  /**
358
449
  * Run a health check against keyoku-engine to verify the install works.
359
450
  */
360
451
  async function healthCheck() {
361
452
  const url = 'http://localhost:18900';
362
- log('Running health check...');
453
+ info('Running health check...');
363
454
  try {
364
455
  const controller = new AbortController();
365
456
  const timer = setTimeout(() => controller.abort(), 3000);
@@ -374,20 +465,28 @@ async function healthCheck() {
374
465
  }
375
466
  catch {
376
467
  // Engine isn't running yet — that's fine, it auto-starts with OpenClaw
377
- log('Keyoku engine not running (it will auto-start when OpenClaw loads the plugin)');
468
+ log('Engine not running yet — it will auto-start when OpenClaw loads the plugin');
378
469
  return false;
379
470
  }
380
471
  }
472
+ // ── Main ─────────────────────────────────────────────────────────────────
381
473
  /**
382
474
  * Main init function — orchestrates the full setup.
383
475
  */
384
476
  export async function init() {
385
- console.log('\n Keyoku OpenClaw Plugin — Setup\n');
477
+ console.log('');
478
+ console.log(` ${c.indigo}${c.bold} █ █ █▀▀ █ █ █▀▀█ █ █ █ █${c.reset}`);
479
+ console.log(` ${c.indigo}${c.bold} █▄▀ █▀▀ █ █ █ █ █▀▄ █ █${c.reset}`);
480
+ console.log(` ${c.indigo}${c.bold} █ █ █▄▄ █ █▄▄█ █ █ █▄▄█${c.reset}`);
481
+ console.log('');
482
+ console.log(` ${c.gray}Memory engine for OpenClaw${c.reset} ${c.dim}v${getVersion()}${c.reset}`);
483
+ console.log(` ${c.indigo}${'━'.repeat(52)}${c.reset}`);
386
484
  // Step 1: Detect OpenClaw
485
+ stepHeader('Detect OpenClaw');
387
486
  const config = readOpenClawConfig();
388
487
  if (!config) {
389
- warn(`OpenClaw config not found at ${OPENCLAW_CONFIG_PATH}`);
390
- warn('Make sure OpenClaw is installed first: https://openclaw.dev');
488
+ fail(`Config not found at ${OPENCLAW_CONFIG_PATH}`);
489
+ fail('Make sure OpenClaw is installed first: https://openclaw.dev');
391
490
  process.exit(1);
392
491
  }
393
492
  success('OpenClaw config detected');
@@ -395,27 +494,30 @@ export async function init() {
395
494
  const entries = config.plugins?.entries ?? {};
396
495
  const alreadyRegistered = !!entries['keyoku-memory']?.enabled;
397
496
  if (alreadyRegistered) {
398
- success('Keyoku plugin already registered in OpenClaw config');
497
+ stepHeader('Plugin Registration');
498
+ success('Keyoku plugin already registered');
399
499
  }
400
500
  else {
401
- // Step 3: Ensure binary exists
501
+ // Step 2: Binary
502
+ stepHeader('Install Engine Binary');
402
503
  if (existsSync(KEYOKU_BIN_PATH)) {
403
- success(`Keyoku binary found at ${KEYOKU_BIN_PATH}`);
504
+ success(`Binary found ${c.dim}${KEYOKU_BIN_PATH}${c.reset}`);
404
505
  }
405
506
  else {
406
- log('Keyoku binary not found — downloading...');
507
+ info('Binary not found — downloading...');
407
508
  const downloaded = await downloadBinary();
408
509
  if (!downloaded) {
409
- warn('Could not download binary. You can install it manually:');
410
- warn(' Visit: https://github.com/keyoku-ai/keyoku-engine/releases');
411
- warn(` Place the binary at: ${KEYOKU_BIN_PATH}`);
510
+ warn('Could not download binary. Install manually:');
511
+ log(` https://github.com/keyoku-ai/keyoku-engine/releases`);
512
+ log(` Place binary at: ${KEYOKU_BIN_PATH}`);
412
513
  const proceed = await promptLower('Continue without binary? (y/n)');
413
514
  if (proceed !== 'y') {
414
515
  process.exit(1);
415
516
  }
416
517
  }
417
518
  }
418
- // Step 4: Register plugin in config
519
+ // Step 3: Register plugin
520
+ stepHeader('Register Plugin');
419
521
  if (!config.plugins)
420
522
  config.plugins = {};
421
523
  if (!config.plugins.entries)
@@ -436,33 +538,40 @@ export async function init() {
436
538
  writeOpenClawConfig(config);
437
539
  success('Plugin registered in openclaw.json');
438
540
  }
439
- // Step 5: Ensure DB path is configured
541
+ // Step 4: DB path
542
+ stepHeader('Configure Storage');
440
543
  const dbPath = join(HOME, '.keyoku', 'data', 'keyoku.db');
441
544
  appendToEnvFile('KEYOKU_DB_PATH', dbPath);
442
- // Step 6: Set up LLM provider + API keys
545
+ success(`Database ${c.dim}${dbPath}${c.reset}`);
546
+ // Step 5: LLM provider
547
+ stepHeader('LLM Provider');
443
548
  await setupLlmProvider();
444
- // Step 7: Autonomy level
549
+ // Step 6: Autonomy level
550
+ stepHeader('Autonomy');
445
551
  await setupAutonomy(config);
446
- // Step 8: Timezone & quiet hours
552
+ // Step 7: Timezone & quiet hours
553
+ stepHeader('Timezone & Quiet Hours');
447
554
  await setupTimezoneAndQuietHours();
448
- // Step 9: Install SKILL.md guidebook
449
- console.log('');
555
+ // Step 8: SKILL.md
556
+ stepHeader('Install Skill Guide');
450
557
  installSkill();
451
- // Step 10: Check for existing memories to migrate
558
+ // Step 9: Migration
452
559
  const memoryMdPath = join(HOME, '.openclaw', 'MEMORY.md');
453
560
  const hasMemoryMd = existsSync(memoryMdPath);
454
561
  const vectorDbs = discoverVectorDbs(OPENCLAW_MEMORY_DIR);
455
562
  const hasVectorStores = vectorDbs.length > 0;
456
563
  if (hasMemoryMd || hasVectorStores) {
457
- console.log('');
458
- log('Found existing OpenClaw memories:');
564
+ stepHeader('Migrate Memories');
459
565
  if (hasMemoryMd)
460
- log(` - MEMORY.md`);
566
+ info('Found MEMORY.md');
461
567
  if (hasVectorStores)
462
- log(` - ${vectorDbs.length} vector store(s) in ~/.openclaw/memory/`);
463
- const migrate = await promptLower('Migrate existing memories into Keyoku? (y/n)');
464
- if (migrate === 'y') {
465
- log('Starting migration...');
568
+ info(`Found ${vectorDbs.length} vector store(s)`);
569
+ const migrate = await choose('Migrate existing memories into Keyoku?', [
570
+ { label: 'Yes', value: 'yes', desc: 'import everything now' },
571
+ { label: 'No', value: 'no', desc: 'skip, migrate later with openclaw memory migrate' },
572
+ ]);
573
+ if (migrate === 'yes') {
574
+ info('Starting migration...');
466
575
  const client = new KeyokuClient({
467
576
  baseUrl: 'http://localhost:18900',
468
577
  token: process.env.KEYOKU_SESSION_TOKEN,
@@ -482,7 +591,7 @@ export async function init() {
482
591
  }
483
592
  catch (err) {
484
593
  warn(`Markdown migration failed: ${String(err)}`);
485
- warn('Make sure Keyoku is running (it will auto-start when OpenClaw loads the plugin)');
594
+ log('Make sure Keyoku is running (it auto-starts when OpenClaw loads the plugin)');
486
595
  }
487
596
  }
488
597
  // Migrate vector stores
@@ -494,7 +603,7 @@ export async function init() {
494
603
  memoryDir: OPENCLAW_MEMORY_DIR,
495
604
  logger: console,
496
605
  });
497
- success(`Vector store: ${vsResult.imported} imported, ${vsResult.skipped} skipped`);
606
+ success(`Vector stores: ${vsResult.imported} imported, ${vsResult.skipped} skipped`);
498
607
  }
499
608
  catch (err) {
500
609
  warn(`Vector store migration failed: ${String(err)}`);
@@ -502,21 +611,43 @@ export async function init() {
502
611
  }
503
612
  }
504
613
  else {
505
- log('Skipping migration. You can run it later with: openclaw memory migrate');
614
+ log('Skipping run later with: openclaw memory migrate');
506
615
  }
507
616
  }
508
- // Step 11: Health check
509
- console.log('');
617
+ else {
618
+ stepHeader('Migrate Memories');
619
+ log('No existing memories found — nothing to migrate');
620
+ }
621
+ // Step 10: Health check
622
+ stepHeader('Health Check');
510
623
  await healthCheck();
511
- // Done — close readline before exiting
624
+ // Close readline before exiting
512
625
  closeTtyReadline();
513
- console.log('\n Setup complete!\n');
514
- log('Restart OpenClaw to load the plugin:');
515
- log(' openclaw restart (or close and reopen your editor)');
626
+ // ── Done ─────────────────────────────────────────────────────────────
627
+ console.log('');
628
+ console.log(` ${c.indigo}${'━'.repeat(52)}${c.reset}`);
629
+ console.log('');
630
+ console.log(` ${c.green}${c.bold} Setup complete!${c.reset}`);
631
+ console.log('');
632
+ console.log(` ${c.white}Next steps:${c.reset}`);
633
+ console.log(` ${c.gray}1.${c.reset} Restart OpenClaw to load the plugin`);
634
+ console.log(` ${c.dim}openclaw restart${c.reset} ${c.dim}(or close and reopen your editor)${c.reset}`);
635
+ console.log('');
636
+ console.log(` ${c.gray}2.${c.reset} Your agent now has persistent memory + heartbeat awareness`);
637
+ console.log(` ${c.dim}openclaw memory stats${c.reset} ${c.dim}check memory status${c.reset}`);
638
+ console.log(` ${c.dim}openclaw memory migrate${c.reset} ${c.dim}migrate data later${c.reset}`);
516
639
  console.log('');
517
- log('The plugin will auto-start Keyoku when OpenClaw loads.');
518
- log('Your agent now has persistent memory and heartbeat awareness.');
519
- log('Run `openclaw memory stats` to check your memory status.');
520
- log('Run `openclaw memory migrate` to migrate data later.\n');
640
+ console.log(` ${c.indigo}${'━'.repeat(52)}${c.reset}`);
641
+ console.log('');
642
+ }
643
+ // ── Helpers ──────────────────────────────────────────────────────────────
644
+ function getVersion() {
645
+ try {
646
+ const pkg = JSON.parse(readFileSync(join(__dirname, '..', 'package.json'), 'utf-8'));
647
+ return pkg.version ?? 'dev';
648
+ }
649
+ catch {
650
+ return 'dev';
651
+ }
521
652
  }
522
653
  //# sourceMappingURL=init.js.map
package/dist/init.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"init.js","sourceRoot":"","sources":["../src/init.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"init.js","sourceRoot":"","sources":["../src/init.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@keyoku/openclaw",
3
- "version": "1.1.0",
3
+ "version": "1.2.0",
4
4
  "description": "Keyoku memory plugin for OpenClaw — persistent memory, heartbeat enhancement, and scheduling",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -12,8 +12,8 @@
12
12
  "build": "tsc"
13
13
  },
14
14
  "dependencies": {
15
- "@keyoku/memory": "1.1.0",
16
- "@keyoku/types": "1.1.0",
15
+ "@keyoku/memory": "1.2.0",
16
+ "@keyoku/types": "1.2.0",
17
17
  "@sinclair/typebox": "^0.34.0"
18
18
  },
19
19
  "peerDependencies": {