musonda 1.0.18 → 1.0.19

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,3 +1,15 @@
1
1
  import { MusondaConfig } from '../config/types.js';
2
2
  export declare const BANNER = "\n\u001B[36m\n\u2588\u2588\u2588\u2557 \u2588\u2588\u2588\u2557\u2588\u2588\u2557 \u2588\u2588\u2557\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2588\u2557 \u2588\u2588\u2557\u2588\u2588\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2588\u2588\u2588\u2557 \n\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2588\u2588\u2551\u2588\u2588\u2551 \u2588\u2588\u2551\u2588\u2588\u2554\u2550\u2550\u2550\u2550\u255D\u2588\u2588\u2554\u2550\u2550\u2550\u2588\u2588\u2557\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2551\u2588\u2588\u2554\u2550\u2550\u2588\u2588\u2557\u2588\u2588\u2554\u2550\u2550\u2588\u2588\u2557\n\u2588\u2588\u2554\u2588\u2588\u2588\u2588\u2554\u2588\u2588\u2551\u2588\u2588\u2551 \u2588\u2588\u2551\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2557\u2588\u2588\u2551 \u2588\u2588\u2551\u2588\u2588\u2554\u2588\u2588\u2557 \u2588\u2588\u2551\u2588\u2588\u2551 \u2588\u2588\u2551\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2551\n\u2588\u2588\u2551\u255A\u2588\u2588\u2554\u255D\u2588\u2588\u2551\u2588\u2588\u2551 \u2588\u2588\u2551\u255A\u2550\u2550\u2550\u2550\u2588\u2588\u2551\u2588\u2588\u2551 \u2588\u2588\u2551\u2588\u2588\u2551\u255A\u2588\u2588\u2557\u2588\u2588\u2551\u2588\u2588\u2551 \u2588\u2588\u2551\u2588\u2588\u2554\u2550\u2550\u2588\u2588\u2551\n\u2588\u2588\u2551 \u255A\u2550\u255D \u2588\u2588\u2551\u255A\u2588\u2588\u2588\u2588\u2588\u2588\u2554\u255D\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2551\u255A\u2588\u2588\u2588\u2588\u2588\u2588\u2554\u255D\u2588\u2588\u2551 \u255A\u2588\u2588\u2588\u2588\u2551\u2588\u2588\u2588\u2588\u2588\u2588\u2554\u255D\u2588\u2588\u2551 \u2588\u2588\u2551\n\u255A\u2550\u255D \u255A\u2550\u255D \u255A\u2550\u2550\u2550\u2550\u2550\u255D \u255A\u2550\u2550\u2550\u2550\u2550\u2550\u255D \u255A\u2550\u2550\u2550\u2550\u2550\u255D \u255A\u2550\u255D \u255A\u2550\u2550\u2550\u255D\u255A\u2550\u2550\u2550\u2550\u2550\u255D \u255A\u2550\u255D \u255A\u2550\u255D\n\u001B[0m\n\u001B[1m\u001B[35m=== Musonda Personal AI Assistant & Gateway Harness ===\u001B[0m\n\u001B[2mBring your own model \u2014 OpenAI, Anthropic, Gemini, Ollama, LM Studio, OpenRouter & more\u001B[0m\n";
3
+ /** Minimum accepted gateway API key length (matches production readiness check). */
4
+ export declare const GATEWAY_API_KEY_MIN_LENGTH = 24;
5
+ /**
6
+ * Validate a gateway API key the same way production readiness does:
7
+ * empty = no auth (valid for local dev), otherwise >= 24 chars and not a placeholder.
8
+ */
9
+ export declare function validateGatewayApiKey(raw: string): {
10
+ valid: boolean;
11
+ reason?: string;
12
+ };
13
+ /** Generate a strong random gateway API key (64 hex chars, 256 bits). */
14
+ export declare function generateGatewayApiKey(): string;
3
15
  export declare function runOnboardingWizard(): Promise<MusondaConfig>;
@@ -1,5 +1,6 @@
1
1
  import readline from 'node:readline/promises';
2
2
  import { stdin as input, stdout as output } from 'node:process';
3
+ import crypto from 'node:crypto';
3
4
  import { configLoader } from '../config/loader.js';
4
5
  import { defaultMedia } from '../config/types.js';
5
6
  import { MemoryManager } from '../memory/memoryManager.js';
@@ -19,6 +20,44 @@ export const BANNER = `
19
20
  \x1b[1m\x1b[35m=== Musonda Personal AI Assistant & Gateway Harness ===\x1b[0m
20
21
  \x1b[2mBring your own model — OpenAI, Anthropic, Gemini, Ollama, LM Studio, OpenRouter & more\x1b[0m
21
22
  `;
23
+ /** Minimum accepted gateway API key length (matches production readiness check). */
24
+ export const GATEWAY_API_KEY_MIN_LENGTH = 24;
25
+ /**
26
+ * Validate a gateway API key the same way production readiness does:
27
+ * empty = no auth (valid for local dev), otherwise >= 24 chars and not a placeholder.
28
+ */
29
+ export function validateGatewayApiKey(raw) {
30
+ const key = (raw || '').trim();
31
+ if (!key)
32
+ return { valid: true };
33
+ if (key !== raw.trim() || /\s/.test(key)) {
34
+ // inner whitespace or leading/trailing whitespace pasted in
35
+ if (/\s/.test(key))
36
+ return { valid: false, reason: 'Key must not contain spaces or whitespace.' };
37
+ }
38
+ if (key.length < GATEWAY_API_KEY_MIN_LENGTH) {
39
+ return { valid: false, reason: `Key is too short (${key.length} chars). Use at least ${GATEWAY_API_KEY_MIN_LENGTH} characters.` };
40
+ }
41
+ const lower = key.toLowerCase();
42
+ if (lower === 'your_secret_gateway_api_key_here' || lower.startsWith('your_')) {
43
+ return { valid: false, reason: 'Key looks like a placeholder. Generate a random secret instead.' };
44
+ }
45
+ if (lower === 'placeholder-key' || lower === 'changeme' || lower === 'password' || lower === 'test') {
46
+ return { valid: false, reason: 'Key looks like a placeholder. Generate a random secret instead.' };
47
+ }
48
+ return { valid: true };
49
+ }
50
+ /** Generate a strong random gateway API key (64 hex chars, 256 bits). */
51
+ export function generateGatewayApiKey() {
52
+ return crypto.randomBytes(32).toString('hex');
53
+ }
54
+ function maskKey(key) {
55
+ if (!key)
56
+ return '';
57
+ if (key.length <= 8)
58
+ return '****';
59
+ return `****...${key.slice(-4)}`;
60
+ }
22
61
  export async function runOnboardingWizard() {
23
62
  console.log(BANNER);
24
63
  console.log(`Welcome! This onboarding wizard will configure your personal AI assistant,
@@ -29,45 +68,61 @@ set up persistent memory, customize its name, and connect your channels (like Di
29
68
  // ----------------------------------------------------
30
69
  // Step 1: Assistant Identity & Custom Name
31
70
  // ----------------------------------------------------
32
- console.log(`\x1b[33m[Step 1/5] Assistant Persona & Identity\x1b[0m`);
33
- const customNameInput = await rl.question(`Give a custom name to your assistant [default: Musonda]: `);
34
- const assistantName = customNameInput.trim() || 'Musonda';
35
- const titleInput = await rl.question(`What role or title should ${assistantName} have? [default: Personal Autonomous AI Companion]: `);
36
- const assistantTitle = titleInput.trim() || 'Personal Autonomous AI Companion';
37
- const toneInput = await rl.question(`What personality tone should ${assistantName} express? [default: Empathetic, intelligent, proactive, practical]: `);
38
- const assistantTone = toneInput.trim() || 'Empathetic, intelligent, proactive, practical';
71
+ // Re-running onboarding must not wipe previous answers: empty input keeps
72
+ // the existing value so a second wizard run preserves prior entries.
73
+ console.log(`\x1b[33m[Step 1/6] Assistant Persona & Identity\x1b[0m`);
74
+ const prevAssistantName = existingConfig.assistant.customName || existingConfig.assistant.name || 'Musonda';
75
+ const customNameInput = await rl.question(`Give a custom name to your assistant [default: ${prevAssistantName}]: `);
76
+ const assistantName = customNameInput.trim() || prevAssistantName;
77
+ const prevAssistantTitle = existingConfig.assistant.title || 'Personal Autonomous AI Companion';
78
+ const titleInput = await rl.question(`What role or title should ${assistantName} have? [default: ${prevAssistantTitle}]: `);
79
+ const assistantTitle = titleInput.trim() || prevAssistantTitle;
80
+ const prevAssistantTone = existingConfig.assistant.tone || 'Empathetic, intelligent, proactive, practical';
81
+ const toneInput = await rl.question(`What personality tone should ${assistantName} express? [default: ${prevAssistantTone}]: `);
82
+ const assistantTone = toneInput.trim() || prevAssistantTone;
39
83
  console.log(`\x1b[32mConfigured assistant: ${assistantName} (${assistantTitle})\x1b[0m\n`);
40
84
  // ----------------------------------------------------
41
85
  // Step 2: About the User
42
86
  // ----------------------------------------------------
43
- console.log(`\x1b[33m[Step 2/5] Tell ${assistantName} About Yourself\x1b[0m`);
44
- const userNameInput = await rl.question(`What is your name / how should ${assistantName} address you? [default: Friend]: `);
45
- const userName = userNameInput.trim() || 'Friend';
46
- const userBioInput = await rl.question(`Tell ${assistantName} about yourself (profession, interests, projects, goals):\n> `);
47
- const userBio = userBioInput.trim();
87
+ console.log(`\x1b[33m[Step 2/6] Tell ${assistantName} About Yourself\x1b[0m`);
88
+ const prevUserName = existingConfig.user.name || 'Friend';
89
+ const userNameInput = await rl.question(`What is your name / how should ${assistantName} address you? [default: ${prevUserName}]: `);
90
+ const userName = userNameInput.trim() || prevUserName;
91
+ const prevUserBio = existingConfig.user.bio || '';
92
+ const userBioInput = await rl.question(`Tell ${assistantName} about yourself (profession, interests, projects, goals):\n${prevUserBio ? `[press Enter to keep existing: "${prevUserBio.slice(0, 80)}${prevUserBio.length > 80 ? '...' : ''}"]\n` : ''}> `);
93
+ // Empty input keeps the previous bio so re-running the wizard is non-destructive.
94
+ // (Type "clear" to explicitly wipe the stored bio.)
95
+ const rawBio = userBioInput.trim();
96
+ const userBio = rawBio.toLowerCase() === 'clear' ? '' : (rawBio || prevUserBio);
48
97
  const detectedTz = Intl.DateTimeFormat().resolvedOptions().timeZone || 'UTC';
49
- const userTzInput = await rl.question(`What is your timezone? [default: ${detectedTz}]: `);
50
- const userTimezone = userTzInput.trim() || detectedTz;
51
- console.log(`Choose communication style:
98
+ const prevTimezone = existingConfig.user.timezone || detectedTz;
99
+ const userTzInput = await rl.question(`What is your timezone? [default: ${prevTimezone}]: `);
100
+ const userTimezone = userTzInput.trim() || prevTimezone;
101
+ const prevStyle = existingConfig.user.communicationStyle || 'friendly';
102
+ console.log(`Choose communication style (current: ${prevStyle}):
52
103
  1) Friendly & conversational (Default)
53
104
  2) Concise & direct
54
105
  3) In-depth & detailed
55
106
  4) Highly technical`);
56
- const styleChoice = await rl.question(`Select style (1-4) [default: 1]: `);
57
- let communicationStyle = 'friendly';
58
- if (styleChoice.trim() === '2')
107
+ const styleChoice = await rl.question(`Select style (1-4) [press Enter to keep "${prevStyle}"]: `);
108
+ let communicationStyle = prevStyle;
109
+ if (styleChoice.trim() === '1')
110
+ communicationStyle = 'friendly';
111
+ else if (styleChoice.trim() === '2')
59
112
  communicationStyle = 'concise';
60
113
  else if (styleChoice.trim() === '3')
61
114
  communicationStyle = 'detailed';
62
115
  else if (styleChoice.trim() === '4')
63
116
  communicationStyle = 'technical';
64
- const userNotesInput = await rl.question(`Any special instructions or preferences ${assistantName} should always keep in mind? (optional): `);
65
- const userNotes = userNotesInput.trim();
117
+ const prevNotes = existingConfig.user.notes || '';
118
+ const userNotesInput = await rl.question(`Any special instructions or preferences ${assistantName} should always keep in mind?${prevNotes ? ` [press Enter to keep existing]` : ' (optional)'}: `);
119
+ const rawNotes = userNotesInput.trim();
120
+ const userNotes = rawNotes.toLowerCase() === 'clear' ? '' : (rawNotes || prevNotes);
66
121
  console.log(`\x1b[32mUser profile set for: ${userName} (${userTimezone}, ${communicationStyle})\x1b[0m\n`);
67
122
  // ----------------------------------------------------
68
123
  // Step 3: Model Configuration (provider-agnostic)
69
124
  // ----------------------------------------------------
70
- console.log(`\x1b[33m[Step 3/5] AI Model Provider\x1b[0m`);
125
+ console.log(`\x1b[33m[Step 3/6] AI Model Provider\x1b[0m`);
71
126
  console.log(`Musonda works with any OpenAI-compatible model (Chat Completions), plus OpenAI Responses API.`);
72
127
  console.log(`Choose a provider:
73
128
  1) OpenAI (default, Responses API)
@@ -86,9 +141,11 @@ set up persistent memory, customize its name, and connect your channels (like Di
86
141
  let modelDefault = existingConfig.model.model || 'gpt-5.6-luna';
87
142
  let baseUrlDefault = existingConfig.model.baseUrl;
88
143
  const trimmedChoice = providerChoice.trim();
89
- if (trimmedChoice === '' || trimmedChoice === '1') {
90
- if (!existingConfig.model.provider)
91
- provider = 'openai';
144
+ if (trimmedChoice === '') {
145
+ // Empty keeps the existing provider so a second run is non-destructive.
146
+ }
147
+ else if (trimmedChoice === '1') {
148
+ provider = 'openai';
92
149
  }
93
150
  else if (providerDefaults[trimmedChoice]) {
94
151
  provider = providerDefaults[trimmedChoice].provider;
@@ -138,7 +195,7 @@ set up persistent memory, customize its name, and connect your channels (like Di
138
195
  // ----------------------------------------------------
139
196
  // Step 4: Channels (Discord & Slack Integrations)
140
197
  // ----------------------------------------------------
141
- console.log(`\x1b[33m[Step 4/5] Gateway Channels (Discord & Slack Integrations)\x1b[0m`);
198
+ console.log(`\x1b[33m[Step 4/6] Gateway Channels (Discord & Slack Integrations)\x1b[0m`);
142
199
  // Discord Configuration
143
200
  const enableDiscordInput = await rl.question(`Enable Discord channel integration? (y/N) [default: ${existingConfig.channels.discord.enabled ? 'Y' : 'N'}]: `);
144
201
  const enableDiscord = enableDiscordInput.trim().toLowerCase() === 'y' ||
@@ -222,7 +279,7 @@ set up persistent memory, customize its name, and connect your channels (like Di
222
279
  // ----------------------------------------------------
223
280
  // Step 5: Gateway Persistence & Background Service (.service)
224
281
  // ----------------------------------------------------
225
- console.log(`\x1b[33m[Step 5/5] Gateway Persistence & Background Service (.service)\x1b[0m`);
282
+ console.log(`\x1b[33m[Step 5/6] Gateway Persistence & Background Service (.service)\x1b[0m`);
226
283
  console.log(`Configure Musonda Gateway as an auto-restarting background service so it stays alive 24/7.\n`);
227
284
  let serviceInstalled = false;
228
285
  let servicePathInstalled = '';
@@ -321,21 +378,89 @@ set up persistent memory, customize its name, and connect your channels (like Di
321
378
  }
322
379
  }
323
380
  // ----------------------------------------------------
381
+ // Step 6: Gateway API Key (auto-generated, protects HTTP API)
382
+ // ----------------------------------------------------
383
+ // Auto-generated at the end of onboarding and shown once so the user can
384
+ // copy it and keep it safe. Re-running the wizard keeps the previous key
385
+ // (non-destructive) unless the user explicitly chooses to regenerate it.
386
+ // The key is validated before save.
387
+ console.log(`\x1b[33m[Step 6/6] Gateway API Key (secures your HTTP API)\x1b[0m`);
388
+ console.log(`The gateway API key protects your HTTP endpoints (Authorization: Bearer <key> / X-API-Key). ` +
389
+ `It is required in production mode.\n`);
390
+ const prevGatewayKey = existingConfig.gateway?.apiKey || process.env.GATEWAY_API_KEY || process.env.GATEWAY_AUTH_TOKEN || '';
391
+ if (process.env.GATEWAY_API_KEY || process.env.GATEWAY_AUTH_TOKEN) {
392
+ console.log(`\x1b[2mNote: GATEWAY_API_KEY is currently set via environment and takes precedence over the saved config.\x1b[0m`);
393
+ }
394
+ let gatewayApiKey = prevGatewayKey;
395
+ let gatewayKeyIsNew = false;
396
+ const prevKeyCheck = prevGatewayKey ? validateGatewayApiKey(prevGatewayKey) : { valid: false, reason: 'none yet' };
397
+ if (!prevGatewayKey || !prevKeyCheck.valid) {
398
+ // Fresh onboard (or weak placeholder key): auto-generate a strong key.
399
+ if (prevGatewayKey && !prevKeyCheck.valid) {
400
+ console.log(`\x1b[33mExisting gateway key is missing or weak (${prevKeyCheck.reason}). Generating a fresh secure key...\x1b[0m`);
401
+ }
402
+ else {
403
+ console.log(`Generating a secure gateway API key for you...`);
404
+ }
405
+ gatewayApiKey = generateGatewayApiKey();
406
+ gatewayKeyIsNew = true;
407
+ }
408
+ else {
409
+ // Second run: keep the previous key so re-onboarding never wipes it.
410
+ console.log(`\x1b[32mKeeping existing gateway API key (${maskKey(prevGatewayKey)}).\x1b[0m`);
411
+ const regenInput = await rl.question(`Press Enter to keep it, or type "regenerate" for a new key: `);
412
+ if (regenInput.trim().toLowerCase() === 'regenerate') {
413
+ gatewayApiKey = generateGatewayApiKey();
414
+ gatewayKeyIsNew = true;
415
+ }
416
+ }
417
+ // Final validation (generated keys always pass; kept keys were checked above).
418
+ const finalCheck = validateGatewayApiKey(gatewayApiKey);
419
+ if (!finalCheck.valid) {
420
+ console.log(`\x1b[31mWarning: gateway key did not pass validation (${finalCheck.reason}). Generating a fallback key...\x1b[0m`);
421
+ gatewayApiKey = generateGatewayApiKey();
422
+ gatewayKeyIsNew = true;
423
+ }
424
+ if (gatewayKeyIsNew) {
425
+ console.log(`\n\x1b[1m\x1b[32m=======================================================\x1b[0m`);
426
+ console.log(`\x1b[1m\x1b[32m YOUR GATEWAY API KEY — COPY IT NOW AND KEEP IT SAFE \x1b[0m`);
427
+ console.log(`\x1b[1m\x1b[32m=======================================================\x1b[0m`);
428
+ console.log(`\n \x1b[1m\x1b[36m${gatewayApiKey}\x1b[0m\n`);
429
+ console.log(` - This key is saved in your config and required to call the gateway API.`);
430
+ console.log(` - Send it as "\x1b[1mAuthorization: Bearer <key>\x1b[0m" or "\x1b[1mX-API-Key: <key>\x1b[0m" header.`);
431
+ console.log(` - Store it in a password manager. It will not be shown again in full.`);
432
+ console.log(` - If you lose it, re-run onboarding and choose "regenerate".\n`);
433
+ }
434
+ else {
435
+ console.log(`\x1b[2mGateway API key unchanged (${maskKey(gatewayApiKey)}). Use "regenerate" on a future run to rotate it.\x1b[0m\n`);
436
+ }
437
+ // ----------------------------------------------------
324
438
  // Save Configuration & Initialize Memory
325
439
  // ----------------------------------------------------
440
+ // Second runs must merge, not overwrite: preserve every section the wizard
441
+ // did not explicitly change so previous entries survive re-onboarding.
442
+ const prevInterests = existingConfig.user.interests || [];
443
+ const mergedInterests = [...prevInterests];
444
+ if (userBio && !mergedInterests.includes(userBio)) {
445
+ mergedInterests.push(userBio);
446
+ }
447
+ const prevProviderEntry = (existingConfig?.modelProviders || {})[provider] || {};
326
448
  const newConfig = {
327
- version: '1.0.0',
449
+ version: existingConfig.version || '1.0.0',
328
450
  isOnboarded: true,
329
451
  assistant: {
330
- name: 'Musonda',
452
+ name: existingConfig.assistant.name || 'Musonda',
331
453
  customName: assistantName,
332
454
  title: assistantTitle,
333
455
  tone: assistantTone,
456
+ ...(existingConfig.assistant.systemInstructions
457
+ ? { systemInstructions: existingConfig.assistant.systemInstructions }
458
+ : {}),
334
459
  },
335
460
  user: {
336
461
  name: userName,
337
462
  bio: userBio,
338
- interests: userBio ? [userBio] : [],
463
+ interests: mergedInterests,
339
464
  timezone: userTimezone,
340
465
  communicationStyle,
341
466
  notes: userNotes,
@@ -345,8 +470,14 @@ set up persistent memory, customize its name, and connect your channels (like Di
345
470
  model: modelName,
346
471
  apiKey: apiKey || '',
347
472
  baseUrl,
348
- api: 'auto',
349
- maxOutputTokens: 4096,
473
+ api: existingConfig.model?.api || 'auto',
474
+ maxOutputTokens: existingConfig.model.maxOutputTokens || 4096,
475
+ ...((existingConfig.model?.temperature !== undefined)
476
+ ? { temperature: existingConfig.model.temperature }
477
+ : {}),
478
+ ...((existingConfig.model?.reasoningEffort !== undefined)
479
+ ? { reasoningEffort: existingConfig.model.reasoningEffort }
480
+ : {}),
350
481
  },
351
482
  // Seed the per-provider registry so `change model` can switch back later.
352
483
  modelProviders: {
@@ -354,40 +485,39 @@ set up persistent memory, customize its name, and connect your channels (like Di
354
485
  [provider]: {
355
486
  apiKey: apiKey || '',
356
487
  model: modelName,
357
- ...(baseUrl ? { baseUrl } : {}),
358
- api: 'auto',
488
+ ...(baseUrl ? { baseUrl } : (prevProviderEntry.baseUrl ? { baseUrl: prevProviderEntry.baseUrl } : {})),
489
+ api: prevProviderEntry.api || 'auto',
359
490
  },
360
491
  },
361
492
  gateway: {
362
- host: '127.0.0.1',
363
- port: 4141,
364
- enableHttp: true,
365
- corsAllowedOrigins: [],
366
- rateLimitPerMinute: 120,
367
- trustProxy: false,
368
- rateLimitMaxClients: 10000,
493
+ ...(existingConfig.gateway || {}),
494
+ host: existingConfig.gateway?.host || '127.0.0.1',
495
+ port: existingConfig.gateway?.port || 4141,
496
+ enableHttp: existingConfig.gateway?.enableHttp ?? true,
497
+ ...(gatewayApiKey ? { apiKey: gatewayApiKey } : { apiKey: undefined }),
369
498
  },
370
499
  channels: {
371
500
  discord: {
372
501
  enabled: enableDiscord,
373
502
  token: discordToken,
374
- allowedGuilds: [],
503
+ clientId: existingConfig.channels.discord?.clientId,
504
+ allowedGuilds: existingConfig.channels.discord.allowedGuilds || [],
375
505
  allowedUsers: allowedDiscordUsers,
376
506
  allowedChannels: allowedDiscordChannels,
377
- allowPublic: false,
507
+ allowPublic: existingConfig.channels.discord.allowPublic ?? false,
378
508
  requireMentionInGuild: requireDiscordMention,
379
- statusMessage: `${assistantName} | ${modelName}`,
509
+ statusMessage: existingConfig.channels.discord.statusMessage || `${assistantName} | ${modelName}`,
380
510
  },
381
511
  slack: {
382
512
  enabled: enableSlack,
383
513
  botToken: slackBotToken,
384
- userToken: '',
514
+ userToken: existingConfig.channels.slack?.userToken || '',
385
515
  appToken: slackAppToken,
386
- signingSecret: '',
387
- socketMode: true,
388
- allowedChannels: [],
389
- allowedUsers: [],
390
- allowPublic: false,
516
+ signingSecret: existingConfig.channels.slack?.signingSecret || '',
517
+ socketMode: existingConfig.channels.slack?.socketMode ?? true,
518
+ allowedChannels: existingConfig.channels.slack?.allowedChannels || [],
519
+ allowedUsers: existingConfig.channels.slack?.allowedUsers || [],
520
+ allowPublic: existingConfig.channels.slack?.allowPublic ?? false,
391
521
  replyInThread: slackReplyInThread,
392
522
  },
393
523
  telegram: {
@@ -395,8 +525,8 @@ set up persistent memory, customize its name, and connect your channels (like Di
395
525
  botToken: telegramBotToken,
396
526
  allowedUsers: allowedTelegramUsers,
397
527
  allowedChats: allowedTelegramChats,
398
- allowPublic: false,
399
- requireMentionInGroup: true,
528
+ allowPublic: existingConfig.channels.telegram?.allowPublic ?? false,
529
+ requireMentionInGroup: existingConfig.channels.telegram?.requireMentionInGroup ?? true,
400
530
  },
401
531
  cli: existingConfig.channels?.cli || {
402
532
  enabled: false,
@@ -407,13 +537,9 @@ set up persistent memory, customize its name, and connect your channels (like Di
407
537
  },
408
538
  },
409
539
  memory: {
410
- storageDir: './data/memory',
411
- sessionsDir: './data/sessions',
412
- maxShortTermHistory: 30,
413
- autoRecallTopK: 6,
414
- compactionThreshold: 20,
415
- enableAutoCompaction: true,
416
- preservedRecentMessages: 10,
540
+ ...(existingConfig.memory || {}),
541
+ storageDir: existingConfig.memory?.storageDir || './data/memory',
542
+ sessionsDir: existingConfig.memory?.sessionsDir || './data/sessions',
417
543
  },
418
544
  media: existingConfig.media || { ...defaultMedia },
419
545
  fileSandbox: existingConfig.fileSandbox || {
@@ -467,30 +593,59 @@ set up persistent memory, customize its name, and connect your channels (like Di
467
593
  installedPath: servicePathInstalled,
468
594
  }
469
595
  : existingConfig.service,
596
+ // Preserve advanced sections the wizard does not manage so a second
597
+ // run never drops them.
598
+ ...((existingConfig.identity !== undefined)
599
+ ? { identity: existingConfig.identity }
600
+ : {}),
601
+ ...((existingConfig.context !== undefined)
602
+ ? { context: existingConfig.context }
603
+ : {}),
604
+ ...((existingConfig.capabilities !== undefined)
605
+ ? { capabilities: existingConfig.capabilities }
606
+ : {}),
607
+ ...((existingConfig.learning !== undefined)
608
+ ? { learning: existingConfig.learning }
609
+ : {}),
470
610
  };
471
611
  configLoader.save(newConfig);
472
- // Initialize Memory Profile
612
+ // Initialize Memory Profile (merge: keep existing interests, avoid wiping
613
+ // profile fields the user kept by pressing Enter).
473
614
  const memory = new MemoryManager(newConfig);
615
+ const prevProfile = memory.getProfile();
474
616
  memory.updateProfile({
475
617
  name: userName,
476
618
  assistantCustomName: assistantName,
477
619
  bio: userBio,
620
+ interests: mergedInterests.length ? mergedInterests : (prevProfile.interests || []),
478
621
  timezone: userTimezone,
479
622
  communicationStyle,
480
623
  notes: userNotes,
481
624
  });
482
- // Save an initial memory fact from onboarding
625
+ // Save an initial memory fact from onboarding (deduplicated so running the
626
+ // wizard twice does not create duplicate entries nor delete old ones).
627
+ const memoryAlreadyHas = (needle) => {
628
+ const hay = needle.toLowerCase();
629
+ return memory.getAllMemories().some((m) => (m.content || '').toLowerCase().includes(hay));
630
+ };
483
631
  if (userBio) {
484
- memory.addMemory(`User ${userName} provided background: ${userBio}`, 'fact', ['onboarding', 'profile', 'bio']);
632
+ const bioContent = `User ${userName} provided background: ${userBio}`;
633
+ if (!memoryAlreadyHas(userBio.toLowerCase().slice(0, 40)) && !memoryAlreadyHas(bioContent.toLowerCase().slice(0, 40))) {
634
+ memory.addMemory(bioContent, 'fact', ['onboarding', 'profile', 'bio']);
635
+ }
485
636
  }
486
637
  if (userNotes) {
487
- memory.addMemory(`User preference: ${userNotes}`, 'preference', ['preference', 'instruction']);
638
+ const notesContent = `User preference: ${userNotes}`;
639
+ if (!memoryAlreadyHas(userNotes.toLowerCase().slice(0, 40))) {
640
+ memory.addMemory(notesContent, 'preference', ['preference', 'instruction']);
641
+ }
488
642
  }
489
643
  console.log(`\x1b[1m\x1b[32mOnboarding Complete!\x1b[0m`);
490
644
  console.log(`=======================================================`);
491
645
  console.log(`Assistant Name: \x1b[35m${assistantName}\x1b[0m`);
492
646
  console.log(`Model: \x1b[36m${provider}/${modelName}\x1b[0m${baseUrl ? ` @ ${baseUrl}` : ''}`);
493
- console.log(`Gateway: \x1b[33mhttp://127.0.0.1:4141\x1b[0m`);
647
+ console.log(`Gateway: \x1b[33mhttp://${newConfig.gateway.host}:${newConfig.gateway.port}\x1b[0m`);
648
+ console.log(`Gateway API Key:${gatewayKeyIsNew ? ` \x1b[32mNew key generated — copied above, keep it safe (${maskKey(gatewayApiKey)})\x1b[0m` : (gatewayApiKey ? ` \x1b[32mConfigured (${maskKey(gatewayApiKey)})\x1b[0m` : ' \x1b[2mNot set\x1b[0m')}`);
494
649
  console.log(`Discord: ${enableDiscord ? '\x1b[32mEnabled\x1b[0m' : '\x1b[2mDisabled\x1b[0m'}`);
495
650
  console.log(`Slack: ${enableSlack ? '\x1b[32mEnabled\x1b[0m' : '\x1b[2mDisabled\x1b[0m'}`);
496
651
  console.log(`Telegram: ${enableTelegram ? '\x1b[32mEnabled\x1b[0m' : '\x1b[2mDisabled\x1b[0m'}`);
@@ -1 +1 @@
1
- {"version":3,"file":"onboarding.js","sourceRoot":"","sources":["../../src/wizard/onboarding.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"onboarding.js","sourceRoot":"","sources":["../../src/wizard/onboarding.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "musonda",
3
- "version": "1.0.18",
3
+ "version": "1.0.19",
4
4
  "description": "Musonda - Personal AI Assistant & Agent Harness running on an extensible Gateway with Discord channels, memory, tools, and any OpenAI-compatible model (OpenAI, Ollama, LM Studio, OpenRouter & more)",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",