@keyoku/openclaw 1.1.1 → 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.
@@ -1 +1 @@
1
- {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../src/init.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAgdH;;GAEG;AACH,wBAAsB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAgK1C"}
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
@@ -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,18 +253,14 @@ 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
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 LLM for memory extraction and embeddings.');
211
- log('Supported providers: OpenAI, Gemini, Anthropic (embeddings via OpenAI 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;
@@ -217,90 +268,93 @@ async function setupLlmProvider() {
217
268
  // Extraction provider
218
269
  const currentProvider = process.env.KEYOKU_EXTRACTION_PROVIDER;
219
270
  if (currentProvider) {
220
- success(`Extraction provider: ${currentProvider} (${process.env.KEYOKU_EXTRACTION_MODEL || 'default model'})`);
271
+ success(`Extraction: ${c.bold}${currentProvider}${c.reset} (${process.env.KEYOKU_EXTRACTION_MODEL || 'default model'})`);
221
272
  }
222
273
  else {
223
274
  // Auto-detect best available provider
224
275
  if (hasGemini) {
225
- log('Using Gemini for extraction + embeddings (detected GEMINI_API_KEY)');
226
276
  appendToEnvFile('KEYOKU_EXTRACTION_PROVIDER', 'gemini');
227
277
  appendToEnvFile('KEYOKU_EXTRACTION_MODEL', 'gemini-2.5-flash');
228
278
  appendToEnvFile('KEYOKU_EMBEDDING_PROVIDER', 'gemini');
229
279
  appendToEnvFile('KEYOKU_EMBEDDING_MODEL', 'gemini-embedding-001');
280
+ success(`Auto-configured: ${c.bold}Gemini${c.reset} for extraction + embeddings`);
230
281
  }
231
282
  else if (hasOpenAI) {
232
- log('Using OpenAI for extraction + embeddings (detected OPENAI_API_KEY)');
233
283
  appendToEnvFile('KEYOKU_EXTRACTION_PROVIDER', 'openai');
234
284
  appendToEnvFile('KEYOKU_EXTRACTION_MODEL', 'gpt-5-mini');
235
285
  appendToEnvFile('KEYOKU_EMBEDDING_PROVIDER', 'openai');
236
286
  appendToEnvFile('KEYOKU_EMBEDDING_MODEL', 'text-embedding-3-small');
287
+ success(`Auto-configured: ${c.bold}OpenAI${c.reset} for extraction + embeddings`);
237
288
  }
238
289
  else if (hasAnthropic) {
239
- log('Using Anthropic for extraction (detected ANTHROPIC_API_KEY)');
240
290
  appendToEnvFile('KEYOKU_EXTRACTION_PROVIDER', 'anthropic');
241
291
  appendToEnvFile('KEYOKU_EXTRACTION_MODEL', 'claude-haiku-4-5-20251001');
242
- warn('Anthropic does not provide embeddings — you\'ll need an OpenAI or Gemini key for embeddings');
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');
243
294
  }
244
295
  else {
245
- // No API key detected — prompt for one
246
- console.log('');
247
- log('No API key detected. Which provider would you like to use?');
248
- log(' 1) Gemini (recommended free tier, handles extraction + embeddings)');
249
- log(' 2) OpenAI (handles extraction + embeddings)');
250
- log(' 3) Anthropic (extraction only — needs OpenAI or Gemini for embeddings)');
251
- console.log('');
252
- const choice = await prompt('Provider [1/2/3] (default: 1):');
253
- if (choice === '2') {
254
- const key = await prompt('Enter your OpenAI API key (sk-...):');
255
- if (key && key.startsWith('sk-')) {
256
- appendToEnvFile('OPENAI_API_KEY', key);
257
- appendToEnvFile('KEYOKU_EXTRACTION_PROVIDER', 'openai');
258
- appendToEnvFile('KEYOKU_EXTRACTION_MODEL', 'gpt-5-mini');
259
- appendToEnvFile('KEYOKU_EMBEDDING_PROVIDER', 'openai');
260
- appendToEnvFile('KEYOKU_EMBEDDING_MODEL', 'text-embedding-3-small');
261
- success('OpenAI configured for extraction + embeddings');
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');
262
311
  }
263
312
  else {
264
- warn('Invalid key. You\'ll need to set OPENAI_API_KEY manually.');
313
+ warn('No key provided set GEMINI_API_KEY manually');
265
314
  }
266
315
  }
267
- else if (choice === '3') {
268
- const key = await prompt('Enter your Anthropic API key (sk-ant-...):');
316
+ else if (provider === 'anthropic') {
317
+ const key = await prompt('Anthropic API key (sk-ant-...):');
269
318
  if (key) {
270
319
  appendToEnvFile('ANTHROPIC_API_KEY', key);
271
320
  appendToEnvFile('KEYOKU_EXTRACTION_PROVIDER', 'anthropic');
272
321
  appendToEnvFile('KEYOKU_EXTRACTION_MODEL', 'claude-haiku-4-5-20251001');
273
- warn('You\'ll also need an OpenAI or Gemini key for embeddings.');
322
+ warn('Add an OpenAI or Gemini key for embeddings');
274
323
  }
275
324
  else {
276
- warn('No key provided. Set ANTHROPIC_API_KEY manually.');
325
+ warn('No key provided set ANTHROPIC_API_KEY manually');
277
326
  }
278
327
  }
279
328
  else {
280
- // Default: Gemini
281
- const key = await prompt('Enter your Gemini API key:');
282
- if (key) {
283
- appendToEnvFile('GEMINI_API_KEY', key);
284
- appendToEnvFile('KEYOKU_EXTRACTION_PROVIDER', 'gemini');
285
- appendToEnvFile('KEYOKU_EXTRACTION_MODEL', 'gemini-2.5-flash');
286
- appendToEnvFile('KEYOKU_EMBEDDING_PROVIDER', 'gemini');
287
- appendToEnvFile('KEYOKU_EMBEDDING_MODEL', 'gemini-embedding-001');
288
- success('Gemini configured for extraction + embeddings');
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');
289
338
  }
290
339
  else {
291
- warn('No key provided. Set GEMINI_API_KEY manually.');
340
+ warn('Invalid key set OPENAI_API_KEY manually');
292
341
  }
293
342
  }
294
343
  }
295
344
  }
296
345
  // Show detected API keys
346
+ const detected = [];
297
347
  if (hasOpenAI)
298
- success('OPENAI_API_KEY detected');
348
+ detected.push('OpenAI');
299
349
  if (hasGemini)
300
- success('GEMINI_API_KEY detected');
350
+ detected.push('Gemini');
301
351
  if (hasAnthropic)
302
- success('ANTHROPIC_API_KEY detected');
352
+ detected.push('Anthropic');
353
+ if (detected.length > 0) {
354
+ success(`API keys detected: ${c.bold}${detected.join(', ')}${c.reset}`);
355
+ }
303
356
  }
357
+ // ── Environment File Management ──────────────────────────────────────────
304
358
  /**
305
359
  * Append a key=value to ~/.keyoku/.env (creates if needed).
306
360
  * This file is sourced by the service when starting keyoku-engine.
@@ -324,6 +378,7 @@ function appendToEnvFile(key, value) {
324
378
  const line = `${key}=${value}\n`;
325
379
  writeFileSync(envPath, content + line, 'utf-8');
326
380
  }
381
+ // ── System Configuration ─────────────────────────────────────────────────
327
382
  /**
328
383
  * Detect the system timezone (IANA format).
329
384
  */
@@ -339,16 +394,11 @@ function detectTimezone() {
339
394
  * Set up autonomy level — controls how aggressively heartbeat acts on signals.
340
395
  */
341
396
  async function setupAutonomy(config) {
342
- console.log('');
343
- log('Autonomy Level');
344
- log('Controls how the agent acts on heartbeat signals (deadlines, reminders, etc.).');
345
- console.log('');
346
- log(' observe — Note signals silently, only act when the user asks');
347
- log(' suggest — Mention important signals naturally in conversation (recommended)');
348
- log(' act — Proactively execute actions (create reminders, follow up, etc.)');
349
- console.log('');
350
- const answer = await promptLower('Autonomy level [observe/suggest/act] (default: suggest):');
351
- 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);
352
402
  // Save to plugin config in openclaw.json
353
403
  const entry = config.plugins?.entries?.['keyoku-memory'];
354
404
  if (entry) {
@@ -357,27 +407,28 @@ async function setupAutonomy(config) {
357
407
  entry.config.autonomy = level;
358
408
  writeOpenClawConfig(config);
359
409
  }
360
- success(`Autonomy set to: ${level}`);
410
+ success(`Autonomy ${c.bold}${level}${c.reset}`);
361
411
  }
362
412
  /**
363
413
  * Set up timezone and quiet hours — controls when heartbeats are suppressed.
364
414
  */
365
415
  async function setupTimezoneAndQuietHours() {
366
- console.log('');
367
- log('Timezone & Quiet Hours');
368
416
  // Auto-detect timezone
369
417
  const detected = detectTimezone();
370
- 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):`);
371
419
  const timezone = tzAnswer || detected;
372
420
  appendToEnvFile('KEYOKU_QUIET_HOURS_TIMEZONE', timezone);
373
- success(`Timezone: ${timezone}`);
421
+ success(`Timezone ${c.bold}${timezone}${c.reset}`);
374
422
  // Quiet hours
375
423
  console.log('');
376
424
  log('Quiet hours suppress non-urgent heartbeat signals (e.g., 11pm–7am).');
377
- const enableQuiet = await promptLower('Enable quiet hours? (y/n, default: y):');
378
- 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') {
379
430
  appendToEnvFile('KEYOKU_QUIET_HOURS_ENABLED', 'false');
380
- log('Quiet hours disabled — heartbeats can fire anytime');
431
+ success('Quiet hours disabled');
381
432
  return;
382
433
  }
383
434
  appendToEnvFile('KEYOKU_QUIET_HOURS_ENABLED', 'true');
@@ -391,14 +442,15 @@ async function setupTimezoneAndQuietHours() {
391
442
  if (!isNaN(end) && end >= 0 && end <= 23) {
392
443
  appendToEnvFile('KEYOKU_QUIET_HOUR_END', String(end));
393
444
  }
394
- 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})`);
395
446
  }
447
+ // ── Health Check ─────────────────────────────────────────────────────────
396
448
  /**
397
449
  * Run a health check against keyoku-engine to verify the install works.
398
450
  */
399
451
  async function healthCheck() {
400
452
  const url = 'http://localhost:18900';
401
- log('Running health check...');
453
+ info('Running health check...');
402
454
  try {
403
455
  const controller = new AbortController();
404
456
  const timer = setTimeout(() => controller.abort(), 3000);
@@ -413,28 +465,28 @@ async function healthCheck() {
413
465
  }
414
466
  catch {
415
467
  // Engine isn't running yet — that's fine, it auto-starts with OpenClaw
416
- 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');
417
469
  return false;
418
470
  }
419
471
  }
472
+ // ── Main ─────────────────────────────────────────────────────────────────
420
473
  /**
421
474
  * Main init function — orchestrates the full setup.
422
475
  */
423
476
  export async function init() {
424
- console.log(`
425
- ╔══════════════════════════════════════════╗
426
- ║ ║
427
- ║ ▄█▀▀▀▄ Keyoku ║
428
- ║ ██▄▄▄▀ Memory Engine for OpenClaw ║
429
- ║ ▀▀▀▀▀ ║
430
- ║ ║
431
- ╚══════════════════════════════════════════╝
432
- `);
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}`);
433
484
  // Step 1: Detect OpenClaw
485
+ stepHeader('Detect OpenClaw');
434
486
  const config = readOpenClawConfig();
435
487
  if (!config) {
436
- warn(`OpenClaw config not found at ${OPENCLAW_CONFIG_PATH}`);
437
- 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');
438
490
  process.exit(1);
439
491
  }
440
492
  success('OpenClaw config detected');
@@ -442,27 +494,30 @@ export async function init() {
442
494
  const entries = config.plugins?.entries ?? {};
443
495
  const alreadyRegistered = !!entries['keyoku-memory']?.enabled;
444
496
  if (alreadyRegistered) {
445
- success('Keyoku plugin already registered in OpenClaw config');
497
+ stepHeader('Plugin Registration');
498
+ success('Keyoku plugin already registered');
446
499
  }
447
500
  else {
448
- // Step 3: Ensure binary exists
501
+ // Step 2: Binary
502
+ stepHeader('Install Engine Binary');
449
503
  if (existsSync(KEYOKU_BIN_PATH)) {
450
- success(`Keyoku binary found at ${KEYOKU_BIN_PATH}`);
504
+ success(`Binary found ${c.dim}${KEYOKU_BIN_PATH}${c.reset}`);
451
505
  }
452
506
  else {
453
- log('Keyoku binary not found — downloading...');
507
+ info('Binary not found — downloading...');
454
508
  const downloaded = await downloadBinary();
455
509
  if (!downloaded) {
456
- warn('Could not download binary. You can install it manually:');
457
- warn(' Visit: https://github.com/keyoku-ai/keyoku-engine/releases');
458
- 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}`);
459
513
  const proceed = await promptLower('Continue without binary? (y/n)');
460
514
  if (proceed !== 'y') {
461
515
  process.exit(1);
462
516
  }
463
517
  }
464
518
  }
465
- // Step 4: Register plugin in config
519
+ // Step 3: Register plugin
520
+ stepHeader('Register Plugin');
466
521
  if (!config.plugins)
467
522
  config.plugins = {};
468
523
  if (!config.plugins.entries)
@@ -483,33 +538,40 @@ export async function init() {
483
538
  writeOpenClawConfig(config);
484
539
  success('Plugin registered in openclaw.json');
485
540
  }
486
- // Step 5: Ensure DB path is configured
541
+ // Step 4: DB path
542
+ stepHeader('Configure Storage');
487
543
  const dbPath = join(HOME, '.keyoku', 'data', 'keyoku.db');
488
544
  appendToEnvFile('KEYOKU_DB_PATH', dbPath);
489
- // 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');
490
548
  await setupLlmProvider();
491
- // Step 7: Autonomy level
549
+ // Step 6: Autonomy level
550
+ stepHeader('Autonomy');
492
551
  await setupAutonomy(config);
493
- // Step 8: Timezone & quiet hours
552
+ // Step 7: Timezone & quiet hours
553
+ stepHeader('Timezone & Quiet Hours');
494
554
  await setupTimezoneAndQuietHours();
495
- // Step 9: Install SKILL.md guidebook
496
- console.log('');
555
+ // Step 8: SKILL.md
556
+ stepHeader('Install Skill Guide');
497
557
  installSkill();
498
- // Step 10: Check for existing memories to migrate
558
+ // Step 9: Migration
499
559
  const memoryMdPath = join(HOME, '.openclaw', 'MEMORY.md');
500
560
  const hasMemoryMd = existsSync(memoryMdPath);
501
561
  const vectorDbs = discoverVectorDbs(OPENCLAW_MEMORY_DIR);
502
562
  const hasVectorStores = vectorDbs.length > 0;
503
563
  if (hasMemoryMd || hasVectorStores) {
504
- console.log('');
505
- log('Found existing OpenClaw memories:');
564
+ stepHeader('Migrate Memories');
506
565
  if (hasMemoryMd)
507
- log(` - MEMORY.md`);
566
+ info('Found MEMORY.md');
508
567
  if (hasVectorStores)
509
- log(` - ${vectorDbs.length} vector store(s) in ~/.openclaw/memory/`);
510
- const migrate = await promptLower('Migrate existing memories into Keyoku? (y/n)');
511
- if (migrate === 'y') {
512
- 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...');
513
575
  const client = new KeyokuClient({
514
576
  baseUrl: 'http://localhost:18900',
515
577
  token: process.env.KEYOKU_SESSION_TOKEN,
@@ -529,7 +591,7 @@ export async function init() {
529
591
  }
530
592
  catch (err) {
531
593
  warn(`Markdown migration failed: ${String(err)}`);
532
- 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)');
533
595
  }
534
596
  }
535
597
  // Migrate vector stores
@@ -541,7 +603,7 @@ export async function init() {
541
603
  memoryDir: OPENCLAW_MEMORY_DIR,
542
604
  logger: console,
543
605
  });
544
- success(`Vector store: ${vsResult.imported} imported, ${vsResult.skipped} skipped`);
606
+ success(`Vector stores: ${vsResult.imported} imported, ${vsResult.skipped} skipped`);
545
607
  }
546
608
  catch (err) {
547
609
  warn(`Vector store migration failed: ${String(err)}`);
@@ -549,25 +611,43 @@ export async function init() {
549
611
  }
550
612
  }
551
613
  else {
552
- log('Skipping migration. You can run it later with: openclaw memory migrate');
614
+ log('Skipping run later with: openclaw memory migrate');
553
615
  }
554
616
  }
555
- // Step 11: Health check
556
- 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');
557
623
  await healthCheck();
558
- // Done — close readline before exiting
624
+ // Close readline before exiting
559
625
  closeTtyReadline();
626
+ // ── Done ─────────────────────────────────────────────────────────────
627
+ console.log('');
628
+ console.log(` ${c.indigo}${'━'.repeat(52)}${c.reset}`);
560
629
  console.log('');
561
- console.log(' ╔══════════════════════════════════════════╗');
562
- console.log(' ║ Setup complete! ║');
563
- console.log(' ╚══════════════════════════════════════════╝');
630
+ console.log(` ${c.green}${c.bold} Setup complete!${c.reset}`);
564
631
  console.log('');
565
- log('Restart OpenClaw to load the plugin:');
566
- log(' openclaw restart (or close and reopen your editor)');
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}`);
567
635
  console.log('');
568
- log('The plugin will auto-start Keyoku when OpenClaw loads.');
569
- log('Your agent now has persistent memory and heartbeat awareness.');
570
- log('Run `openclaw memory stats` to check your memory status.');
571
- log('Run `openclaw memory migrate` to migrate data later.\n');
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}`);
639
+ console.log('');
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
+ }
572
652
  }
573
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.1",
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.1",
16
- "@keyoku/types": "1.1.1",
15
+ "@keyoku/memory": "1.2.0",
16
+ "@keyoku/types": "1.2.0",
17
17
  "@sinclair/typebox": "^0.34.0"
18
18
  },
19
19
  "peerDependencies": {