@otto-assistant/otto 0.1.0 → 0.1.1

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 (72) hide show
  1. package/dist/cli.js +406 -12
  2. package/dist/cli.js.map +1 -1
  3. package/dist/config.test.js +9 -9
  4. package/dist/config.test.js.map +1 -1
  5. package/dist/detect.test.js +4 -3
  6. package/dist/detect.test.js.map +1 -1
  7. package/dist/docker.d.ts +7 -0
  8. package/dist/docker.d.ts.map +1 -0
  9. package/dist/docker.js +17 -0
  10. package/dist/docker.js.map +1 -0
  11. package/dist/docker.test.d.ts +2 -0
  12. package/dist/docker.test.d.ts.map +1 -0
  13. package/dist/docker.test.js +12 -0
  14. package/dist/docker.test.js.map +1 -0
  15. package/dist/health.d.ts +4 -0
  16. package/dist/health.d.ts.map +1 -1
  17. package/dist/health.js +40 -1
  18. package/dist/health.js.map +1 -1
  19. package/dist/health.test.js +21 -2
  20. package/dist/health.test.js.map +1 -1
  21. package/dist/index.d.ts +11 -3
  22. package/dist/index.d.ts.map +1 -1
  23. package/dist/index.js +6 -2
  24. package/dist/index.js.map +1 -1
  25. package/dist/installer.test.js +2 -2
  26. package/dist/installer.test.js.map +1 -1
  27. package/dist/lifecycle.d.ts +6 -0
  28. package/dist/lifecycle.d.ts.map +1 -1
  29. package/dist/lifecycle.js +26 -11
  30. package/dist/lifecycle.js.map +1 -1
  31. package/dist/lifecycle.test.js +5 -4
  32. package/dist/lifecycle.test.js.map +1 -1
  33. package/dist/manifest.js +4 -4
  34. package/dist/manifest.js.map +1 -1
  35. package/dist/skills-baseline.d.ts +7 -0
  36. package/dist/skills-baseline.d.ts.map +1 -0
  37. package/dist/skills-baseline.js +9 -0
  38. package/dist/skills-baseline.js.map +1 -0
  39. package/dist/skills.d.ts +110 -0
  40. package/dist/skills.d.ts.map +1 -0
  41. package/dist/skills.js +429 -0
  42. package/dist/skills.js.map +1 -0
  43. package/dist/skills.test.d.ts +2 -0
  44. package/dist/skills.test.d.ts.map +1 -0
  45. package/dist/skills.test.js +416 -0
  46. package/dist/skills.test.js.map +1 -0
  47. package/dist/tenant.d.ts +13 -0
  48. package/dist/tenant.d.ts.map +1 -0
  49. package/dist/tenant.js +105 -0
  50. package/dist/tenant.js.map +1 -0
  51. package/dist/tenant.test.d.ts +2 -0
  52. package/dist/tenant.test.d.ts.map +1 -0
  53. package/dist/tenant.test.js +37 -0
  54. package/dist/tenant.test.js.map +1 -0
  55. package/package.json +15 -5
  56. package/src/cli.ts +457 -12
  57. package/src/config.test.ts +9 -9
  58. package/src/detect.test.ts +4 -3
  59. package/src/docker.test.ts +12 -0
  60. package/src/docker.ts +23 -0
  61. package/src/health.test.ts +23 -1
  62. package/src/health.ts +45 -1
  63. package/src/index.ts +37 -3
  64. package/src/installer.test.ts +2 -2
  65. package/src/lifecycle.test.ts +6 -5
  66. package/src/lifecycle.ts +29 -10
  67. package/src/manifest.ts +4 -4
  68. package/src/skills-baseline.ts +14 -0
  69. package/src/skills.test.ts +503 -0
  70. package/src/skills.ts +512 -0
  71. package/src/tenant.test.ts +49 -0
  72. package/src/tenant.ts +120 -0
package/dist/cli.js CHANGED
@@ -3,9 +3,15 @@ import { MANIFEST } from "./manifest.js";
3
3
  import { getInstalledVersion } from "./detect.js";
4
4
  import { readOpenCodeConfigState, writeOpenCodeConfig, ensureAgentMemoryConfig, ensureSubagentThreadSkill, mergePlugins, readOttoConfig, writeOttoConfig, buildSubagentThreadPolicy, mergeAgentPrompts, } from "./config.js";
5
5
  import { installMissingPackages, upgradePackage, planStableUpgrades } from "./installer.js";
6
+ import fs from "node:fs";
7
+ import path from "node:path";
6
8
  import { hasKimakiBinary, restartKimaki } from "./lifecycle.js";
7
- import { checkPackagePresence, checkConfigHealth, checkDirectoryHealth } from "./health.js";
9
+ import { checkPackagePresence, checkConfigHealth, checkDirectoryHealth, checkTenantHealth } from "./health.js";
8
10
  import { syncUpstreams } from "./sync.js";
11
+ import { runCompose } from "./docker.js";
12
+ import { ensureTenantScaffold, resolveTenantMode } from "./tenant.js";
13
+ import { searchSkills, getAllIndexedSkills, listInstalledSkills, installSkillFromIndex, installSkillsBaseline, removeSkill, ensureSkillsIndex, getConfiguredRepos, loadSkillsIndex, } from "./skills.js";
14
+ import { GENTLEMAN_SKILLS_BASELINE } from "./skills-baseline.js";
9
15
  const args = process.argv.slice(2);
10
16
  const command = args[0] ?? "";
11
17
  const subCommand = args[1] ?? "";
@@ -58,7 +64,22 @@ async function cmdInstall() {
58
64
  if (skillCreated) {
59
65
  console.log("Created otto-subagent-threads skill");
60
66
  }
61
- // 5. Restart kimaki if needed but NOT if running inside kimaki
67
+ // 5. Install Otto-core skills from skills repo (best-effort)
68
+ try {
69
+ ensureSkillsIndex();
70
+ const allSkills = getAllIndexedSkills();
71
+ const installedSkillNames = new Set(listInstalledSkills().map((s) => s.name));
72
+ const coreSkills = allSkills.filter((s) => s.source === "otto-assistant/skills" && !installedSkillNames.has(s.name));
73
+ for (const skill of coreSkills) {
74
+ const ok = installSkillFromIndex(skill.name);
75
+ if (ok)
76
+ console.log(`Installed skill: ${skill.name}`);
77
+ }
78
+ }
79
+ catch {
80
+ console.log("⚠ Could not fetch skills from GitHub (offline?). Skipping.");
81
+ }
82
+ // 6. Restart kimaki if needed — but NOT if running inside kimaki
62
83
  // (kimaki restart kills the current opencode session)
63
84
  const runningInsideKimaki = !!process.env.KIMAKI;
64
85
  if (configChanged || installed.length > 0) {
@@ -166,6 +187,18 @@ async function cmdStatus() {
166
187
  console.log(` ask before thread delete: ${configHealth.subagentThreadsAskBeforeDelete ? "yes" : "no"}`);
167
188
  console.log(` auto delete thread on complete: ${configHealth.subagentThreadsAutoDelete ? "yes" : "no"}`);
168
189
  console.log(` kimaki process: ${configHealth.kimakiRunning ? "running" : "not running"}`);
190
+ console.log("\nSkills:");
191
+ const skillsInstalled = listInstalledSkills();
192
+ console.log(` installed: ${skillsInstalled.length > 0 ? skillsInstalled.map((s) => s.name).join(", ") : "(none)"}`);
193
+ try {
194
+ const index = loadSkillsIndex();
195
+ const repoCount = Object.keys(index.repos).length;
196
+ const totalIndexed = getAllIndexedSkills().length;
197
+ console.log(` indexed: ${totalIndexed} skills from ${repoCount} repos`);
198
+ }
199
+ catch {
200
+ console.log(" indexed: (unavailable)");
201
+ }
169
202
  }
170
203
  async function cmdDoctor() {
171
204
  console.log("Otto doctor\n");
@@ -188,10 +221,10 @@ async function cmdDoctor() {
188
221
  hasErrors = true;
189
222
  }
190
223
  if (configHealth.memoryPluginEnabled) {
191
- console.log(" ✓ opencode-agent-memory plugin enabled");
224
+ console.log(" ✓ mempalace plugin enabled");
192
225
  }
193
226
  else {
194
- console.log(" ✗ opencode-agent-memory plugin NOT enabled — run `otto install`");
227
+ console.log(" ✗ mempalace plugin NOT enabled — run `otto install`");
195
228
  hasErrors = true;
196
229
  }
197
230
  if (configHealth.subagentPolicyInjected) {
@@ -215,8 +248,348 @@ async function cmdDoctor() {
215
248
  if (d.status === "error")
216
249
  hasErrors = true;
217
250
  }
251
+ console.log("\nChecking skills...");
252
+ const skillsInstalled = listInstalledSkills();
253
+ if (skillsInstalled.length > 0) {
254
+ console.log(` ✓ ${skillsInstalled.length} skill(s) installed`);
255
+ }
256
+ else {
257
+ console.log(" ⚠ No skills installed — run `otto skills add --all`");
258
+ }
259
+ try {
260
+ const totalIndexed = getAllIndexedSkills().length;
261
+ if (totalIndexed > 0) {
262
+ console.log(` ✓ Skills index available (${totalIndexed} skills)`);
263
+ }
264
+ else {
265
+ console.log(" ⚠ Skills index empty — run `otto skills update`");
266
+ }
267
+ }
268
+ catch {
269
+ console.log(" ⚠ Skills index unavailable");
270
+ }
218
271
  console.log(hasErrors ? "\n✗ Issues found. Run `otto install` to fix." : "\n✓ All checks passed!");
219
272
  }
273
+ // ---------------------------------------------------------------------------
274
+ // otto skills sub-commands
275
+ // ---------------------------------------------------------------------------
276
+ async function cmdSkills(subArgs) {
277
+ const skillCommand = subArgs[0] ?? "";
278
+ switch (skillCommand) {
279
+ case "list":
280
+ cmdSkillsList();
281
+ break;
282
+ case "search": {
283
+ const query = subArgs.slice(1).join(" ");
284
+ if (!query) {
285
+ console.log("Usage: otto skills search <query>");
286
+ process.exit(1);
287
+ }
288
+ cmdSkillsSearch(query);
289
+ break;
290
+ }
291
+ case "browse":
292
+ cmdSkillsBrowse();
293
+ break;
294
+ case "add": {
295
+ const arg = subArgs[1];
296
+ if (!arg || arg === "--all") {
297
+ await cmdSkillsAddAll();
298
+ }
299
+ else {
300
+ await cmdSkillsAddOne(arg);
301
+ }
302
+ break;
303
+ }
304
+ case "remove": {
305
+ const name = subArgs[1];
306
+ if (!name) {
307
+ console.log("Usage: otto skills remove <name>");
308
+ process.exit(1);
309
+ }
310
+ cmdSkillsRemove(name);
311
+ break;
312
+ }
313
+ case "update":
314
+ cmdSkillsUpdate();
315
+ break;
316
+ case "repos":
317
+ cmdSkillsRepos();
318
+ break;
319
+ default:
320
+ console.log(`Otto skills — discover and install agent skills from public repos
321
+
322
+ Usage:
323
+ otto skills search <query> Search skills by name/description
324
+ otto skills browse Browse all available skills
325
+ otto skills list List installed skills
326
+ otto skills add <name> Install a skill
327
+ otto skills add --all Install all skills from otto-assistant/skills
328
+ otto skills update Refresh skills index from GitHub
329
+ otto skills remove <name> Remove an installed skill
330
+ otto skills repos Show configured skill repositories
331
+ `);
332
+ break;
333
+ }
334
+ }
335
+ function cmdSkillsSearch(query) {
336
+ console.log(`Searching: "${query}"\n`);
337
+ const { refreshed } = ensureSkillsIndex();
338
+ if (refreshed > 0) {
339
+ console.log(`Updated index (${refreshed} repo(s) refreshed).\n`);
340
+ }
341
+ const results = searchSkills(query);
342
+ if (results.length === 0) {
343
+ console.log("No skills found.");
344
+ return;
345
+ }
346
+ for (const skill of results) {
347
+ console.log(` ${skill.name} — ${skill.description}`);
348
+ console.log(` source: ${skill.source}`);
349
+ }
350
+ console.log(`\n${results.length} skill(s) found. Install with: otto skills add <name>`);
351
+ }
352
+ function cmdSkillsBrowse() {
353
+ console.log("Otto skills — browsing all available\n");
354
+ const { refreshed } = ensureSkillsIndex();
355
+ if (refreshed > 0) {
356
+ console.log(`Updated index (${refreshed} repo(s) refreshed).\n`);
357
+ }
358
+ const allSkills = getAllIndexedSkills();
359
+ const installed = new Set(listInstalledSkills().map((s) => s.name));
360
+ // Group by source repo
361
+ const byRepo = {};
362
+ for (const skill of allSkills) {
363
+ if (!byRepo[skill.source])
364
+ byRepo[skill.source] = [];
365
+ byRepo[skill.source].push(skill);
366
+ }
367
+ for (const [repo, skills] of Object.entries(byRepo)) {
368
+ console.log(`${repo} (${skills.length} skills):`);
369
+ for (const skill of skills) {
370
+ const icon = installed.has(skill.name) ? "✓" : "•";
371
+ console.log(` ${icon} ${skill.name} — ${skill.description}`);
372
+ }
373
+ console.log();
374
+ }
375
+ const totalAvailable = allSkills.filter((s) => !installed.has(s.name)).length;
376
+ console.log(`${allSkills.length} total, ${totalAvailable} available to install.`);
377
+ }
378
+ function cmdSkillsList() {
379
+ console.log("Otto skills\n");
380
+ const installed = listInstalledSkills();
381
+ if (installed.length > 0) {
382
+ console.log("Installed:");
383
+ for (const s of installed) {
384
+ console.log(` ✓ ${s.name} — ${s.description}`);
385
+ }
386
+ }
387
+ else {
388
+ console.log("Installed: (none)");
389
+ }
390
+ console.log(`\nUse "otto skills browse" to see all available skills.`);
391
+ console.log(`Use "otto skills search <query>" to search.`);
392
+ }
393
+ async function cmdSkillsAddOne(name) {
394
+ console.log(`Installing skill: ${name}\n`);
395
+ ensureSkillsIndex();
396
+ const success = installSkillFromIndex(name);
397
+ if (!success) {
398
+ console.error(`Error: skill "${name}" not found. Run "otto skills search <query>" to find skills.`);
399
+ process.exit(1);
400
+ }
401
+ console.log(`Installed ${name} → ~/.config/opencode/skills/${name}/`);
402
+ console.log("Done!");
403
+ }
404
+ async function cmdSkillsAddAll() {
405
+ console.log("Installing all skills from otto-assistant/skills...\n");
406
+ ensureSkillsIndex();
407
+ const allSkills = getAllIndexedSkills();
408
+ const ottoSkills = allSkills.filter((s) => s.source === "otto-assistant/skills");
409
+ if (ottoSkills.length === 0) {
410
+ console.log("No skills found in otto-assistant/skills. Check your connection.");
411
+ return;
412
+ }
413
+ const installed = new Set(listInstalledSkills().map((s) => s.name));
414
+ let added = 0;
415
+ for (const skill of ottoSkills) {
416
+ if (installed.has(skill.name)) {
417
+ console.log(` ✓ ${skill.name} (already installed)`);
418
+ continue;
419
+ }
420
+ const success = installSkillFromIndex(skill.name);
421
+ if (success) {
422
+ console.log(` + ${skill.name}`);
423
+ added++;
424
+ }
425
+ else {
426
+ console.log(` ✗ ${skill.name} (failed)`);
427
+ }
428
+ }
429
+ if (added === 0) {
430
+ console.log("\nAll skills already installed.");
431
+ }
432
+ else {
433
+ console.log(`\nInstalled ${added} skill(s).`);
434
+ }
435
+ console.log("Done!");
436
+ }
437
+ function cmdSkillsUpdate() {
438
+ console.log("Refreshing skills index from GitHub...\n");
439
+ const { refreshed, total } = ensureSkillsIndex(0); // force refresh all
440
+ if (refreshed === 0 && total === 0) {
441
+ console.log("No repos configured.");
442
+ return;
443
+ }
444
+ console.log(`Refreshed ${refreshed}/${total} repo(s).`);
445
+ const allSkills = getAllIndexedSkills();
446
+ console.log(`Index now has ${allSkills.length} skills.`);
447
+ console.log("Done!");
448
+ }
449
+ function cmdSkillsRemove(name) {
450
+ console.log(`Removing skill: ${name}\n`);
451
+ const success = removeSkill(name);
452
+ if (!success) {
453
+ console.error(`Error: skill "${name}" is not installed.`);
454
+ process.exit(1);
455
+ }
456
+ console.log(`Removed ${name}.`);
457
+ console.log("Done!");
458
+ }
459
+ function cmdSkillsRepos() {
460
+ console.log("Configured skill repositories:\n");
461
+ const repos = getConfiguredRepos();
462
+ for (const repo of repos) {
463
+ console.log(` ${repo}`);
464
+ }
465
+ console.log(`\n${repos.length} repo(s) configured.`);
466
+ }
467
+ async function cmdTenant(subArgs) {
468
+ const tenantCommand = subArgs[0] ?? "";
469
+ const tenantPathArg = subArgs[1];
470
+ if (tenantCommand === "skills") {
471
+ const action = subArgs[1] ?? "";
472
+ const pathArg = subArgs[2];
473
+ if (action !== "bootstrap" || !pathArg) {
474
+ console.log("Usage: otto tenant skills bootstrap <path>");
475
+ process.exit(1);
476
+ }
477
+ const tenantPath = path.resolve(pathArg);
478
+ const skillsDir = path.join(tenantPath, "memory", "opencode", "skills");
479
+ ensureSkillsIndex();
480
+ const report = installSkillsBaseline(GENTLEMAN_SKILLS_BASELINE, skillsDir);
481
+ console.log(`Skills baseline bootstrap: ${tenantPath}`);
482
+ console.log(` Installed: ${report.installed.length > 0 ? report.installed.join(", ") : "(none)"}`);
483
+ console.log(` Already present: ${report.alreadyPresent.length > 0 ? report.alreadyPresent.join(", ") : "(none)"}`);
484
+ if (report.failed.length > 0) {
485
+ console.log(` Failed: ${report.failed.join(", ")}`);
486
+ process.exitCode = 2;
487
+ }
488
+ else {
489
+ console.log(" Failed: (none)");
490
+ }
491
+ return;
492
+ }
493
+ if (!tenantPathArg) {
494
+ console.log("Usage: otto tenant <init|up|down|status|logs> <path>");
495
+ process.exit(1);
496
+ }
497
+ const tenantPath = path.resolve(tenantPathArg);
498
+ switch (tenantCommand) {
499
+ case "init": {
500
+ const result = ensureTenantScaffold(tenantPath);
501
+ if (result.created.length === 0) {
502
+ console.log(`Tenant scaffold already exists: ${tenantPath}`);
503
+ }
504
+ else {
505
+ console.log(`Tenant scaffold ready: ${tenantPath}`);
506
+ console.log(`Created: ${result.created.join(", ")}`);
507
+ }
508
+ console.log(`
509
+ Next steps — get your tenant running in 3 steps:
510
+
511
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
512
+ Step 1: Create a Discord Bot
513
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
514
+
515
+ 1. Open https://discord.com/developers/applications
516
+ 2. Click "New Application" → give it a name → Create
517
+ 3. Go to "Bot" tab → Click "Reset Token" → Copy the token
518
+ 4. Under "Privileged Gateway Intents" enable:
519
+ ✅ Message Content Intent
520
+ ✅ Server Members Intent (optional)
521
+ 5. Go to "OAuth2" tab → "URL Generator"
522
+ Scopes: bot
523
+ Permissions: Send Messages, Read Message History, Add Reactions
524
+ 6. Open the generated URL → add bot to your Discord server
525
+
526
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
527
+ Step 2: Configure your tenant
528
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
529
+
530
+ Edit ${tenantPath}/.env with your bot token:
531
+
532
+ KIMAKI_BOT_TOKEN=your-bot-token-here
533
+
534
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
535
+ Step 3: Start your tenant
536
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
537
+
538
+ docker compose -f ${tenantPath}/compose.yml up -d
539
+
540
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
541
+
542
+ Useful commands:
543
+ otto tenant status ${tenantPathArg} — check health
544
+ otto tenant logs ${tenantPathArg} — view logs
545
+ otto tenant down ${tenantPathArg} — stop tenant
546
+ otto tenant skills bootstrap ${tenantPathArg} — install baseline skills
547
+ `);
548
+ return;
549
+ }
550
+ case "up": {
551
+ const mode = resolveTenantMode(process.env.OTTO_MODE);
552
+ if (mode === "admin") {
553
+ console.log("⚠ OTTO_MODE=admin enabled: tenant has elevated runtime profile.");
554
+ }
555
+ runCompose(tenantPath, ["up", "-d"]);
556
+ return;
557
+ }
558
+ case "down":
559
+ runCompose(tenantPath, ["down"]);
560
+ return;
561
+ case "logs": {
562
+ const follow = subArgs.includes("--follow") ? ["--follow"] : [];
563
+ runCompose(tenantPath, ["logs", ...follow]);
564
+ return;
565
+ }
566
+ case "status": {
567
+ const health = checkTenantHealth({ tenantPath });
568
+ console.log(`Tenant status: ${tenantPath}`);
569
+ for (const item of health) {
570
+ const icon = item.status === "ok" ? "✓" : item.status === "warn" ? "⚠" : "✗";
571
+ console.log(` ${icon} ${item.name}: ${item.message}`);
572
+ }
573
+ const composeExists = fs.existsSync(path.join(tenantPath, "compose.yml"));
574
+ const skipComposePs = process.env.OTTO_SKIP_COMPOSE_PS === "1";
575
+ if (composeExists && !skipComposePs) {
576
+ try {
577
+ runCompose(tenantPath, ["ps"]);
578
+ }
579
+ catch {
580
+ console.log(" ⚠ docker compose ps failed");
581
+ }
582
+ }
583
+ return;
584
+ }
585
+ default:
586
+ console.log("Usage: otto tenant <init|up|down|status|logs> <path> | otto tenant skills bootstrap <path>");
587
+ process.exit(1);
588
+ }
589
+ }
590
+ // ---------------------------------------------------------------------------
591
+ // Main router
592
+ // ---------------------------------------------------------------------------
220
593
  async function main() {
221
594
  switch (command) {
222
595
  case "install":
@@ -234,17 +607,38 @@ async function main() {
234
607
  case "sync":
235
608
  await syncUpstreams();
236
609
  break;
610
+ case "skills":
611
+ await cmdSkills(args.slice(1));
612
+ break;
613
+ case "tenant":
614
+ await cmdTenant(args.slice(1));
615
+ break;
237
616
  default:
238
- console.log(`Otto — terminal UI distribution for opencode + kimaki + opencode-agent-memory
617
+ console.log(`Otto — terminal UI distribution for opencode + kimaki + mempalace
239
618
 
240
619
  Usage:
241
- otto install Install missing packages + configure
242
- otto upgrade Upgrade to stable (manifest-pinned) versions
243
- otto upgrade stable Upgrade to manifest-pinned versions
244
- otto upgrade latest Upgrade to npm latest versions
245
- otto status Show installed versions + config health
246
- otto doctor Validate all integration points
247
- otto sync Trigger upstream sync for all forked repos
620
+ otto tenant init <path> Create compose-first tenant scaffold
621
+ otto tenant up <path> Start tenant with docker compose
622
+ otto tenant down <path> Stop tenant with docker compose
623
+ otto tenant status <path> Show tenant preflight + compose status
624
+ otto tenant logs <path> Show tenant logs (add --follow)
625
+ otto tenant skills bootstrap <path> Install baseline skills for tenant
626
+
627
+ otto install Legacy: install missing npm packages + configure
628
+ otto upgrade Legacy: upgrade to stable (manifest-pinned) versions
629
+ otto upgrade stable Legacy: upgrade to manifest-pinned versions
630
+ otto upgrade latest Legacy: upgrade to npm latest versions
631
+ otto status Show installed versions + config health
632
+ otto doctor Validate all integration points
633
+ otto sync Trigger upstream sync for all forked repos
634
+ otto skills search <q> Search skills across public repos
635
+ otto skills browse Browse all available skills
636
+ otto skills list List installed skills
637
+ otto skills add <name> Install a skill
638
+ otto skills add --all Install all skills from otto-assistant/skills
639
+ otto skills update Refresh skills index
640
+ otto skills remove <name> Remove an installed skill
641
+ otto skills repos Show configured skill repositories
248
642
  `);
249
643
  break;
250
644
  }
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
@@ -6,18 +6,18 @@ import os from "node:os";
6
6
  describe("config", () => {
7
7
  it("adds plugin to empty config", () => {
8
8
  const config = {};
9
- const result = mergePlugins(config, "opencode-agent-memory");
10
- expect(result.plugin).toEqual(["opencode-agent-memory"]);
9
+ const result = mergePlugins(config, "mempalace");
10
+ expect(result.plugin).toEqual(["mempalace"]);
11
11
  });
12
12
  it("appends plugin to existing array", () => {
13
13
  const config = { plugin: ["existing-plugin"] };
14
- const result = mergePlugins(config, "opencode-agent-memory");
15
- expect(result.plugin).toEqual(["existing-plugin", "opencode-agent-memory"]);
14
+ const result = mergePlugins(config, "mempalace");
15
+ expect(result.plugin).toEqual(["existing-plugin", "mempalace"]);
16
16
  });
17
17
  it("does not duplicate existing plugin", () => {
18
- const config = { plugin: ["opencode-agent-memory"] };
19
- const result = mergePlugins(config, "opencode-agent-memory");
20
- expect(result.plugin).toEqual(["opencode-agent-memory"]);
18
+ const config = { plugin: ["mempalace"] };
19
+ const result = mergePlugins(config, "mempalace");
20
+ expect(result.plugin).toEqual(["mempalace"]);
21
21
  });
22
22
  it("preserves other config fields", () => {
23
23
  const config = {
@@ -25,10 +25,10 @@ describe("config", () => {
25
25
  plugin: ["existing"],
26
26
  provider: { cursor: { name: "Cursor" } },
27
27
  };
28
- const result = mergePlugins(config, "opencode-agent-memory");
28
+ const result = mergePlugins(config, "mempalace");
29
29
  expect(result.model).toBe("gpt-4");
30
30
  expect(result.provider).toEqual({ cursor: { name: "Cursor" } });
31
- expect(result.plugin).toEqual(["existing", "opencode-agent-memory"]);
31
+ expect(result.plugin).toEqual(["existing", "mempalace"]);
32
32
  });
33
33
  it("readOttoConfig returns defaults when otto.json missing", () => {
34
34
  const tmpDir = fs.mkdtempSync(path.join(os.tmpdir(), "otto-test-"));
@@ -1 +1 @@
1
- {"version":3,"file":"config.test.js","sourceRoot":"","sources":["../src/config.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.test.js","sourceRoot":"","sources":["../src/config.test.ts"],"names":[],"mappings":"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"}
@@ -1,12 +1,13 @@
1
1
  import { describe, expect, it } from "vitest";
2
2
  import { getInstalledVersion, detectPackage } from "./detect.js";
3
3
  describe("detect", () => {
4
- it("returns null for non-existent package", () => {
4
+ it("returns null for non-existent package", { timeout: 30_000 }, () => {
5
5
  const result = getInstalledVersion("nonexistent-package-xyz-123");
6
6
  expect(result).toBeNull();
7
7
  });
8
- // These tests require kimaki to be globally installed (skipped on CI)
9
- const describeIfInstalled = process.env.CI ? describe.skip : describe;
8
+ // These tests require kimaki to be globally installed
9
+ const hasKimakiInstalled = getInstalledVersion("kimaki") !== null;
10
+ const describeIfInstalled = hasKimakiInstalled ? describe : describe.skip;
10
11
  describeIfInstalled("with kimaki installed", () => {
11
12
  it("detects an existing global package", () => {
12
13
  const result = getInstalledVersion("kimaki");
@@ -1 +1 @@
1
- {"version":3,"file":"detect.test.js","sourceRoot":"","sources":["../src/detect.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAA;AAC7C,OAAO,EAAE,mBAAmB,EAAE,aAAa,EAAyB,MAAM,aAAa,CAAA;AAEvF,QAAQ,CAAC,QAAQ,EAAE,GAAG,EAAE;IACtB,EAAE,CAAC,uCAAuC,EAAE,GAAG,EAAE;QAC/C,MAAM,MAAM,GAAG,mBAAmB,CAAC,6BAA6B,CAAC,CAAA;QACjE,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,CAAA;IAC3B,CAAC,CAAC,CAAA;IAEF,sEAAsE;IACtE,MAAM,mBAAmB,GAAG,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAA;IAErE,mBAAmB,CAAC,uBAAuB,EAAE,GAAG,EAAE;QAChD,EAAE,CAAC,oCAAoC,EAAE,GAAG,EAAE;YAC5C,MAAM,MAAM,GAAG,mBAAmB,CAAC,QAAQ,CAAC,CAAA;YAC5C,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAA;YAC7B,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAA;QAC1C,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,iCAAiC,EAAE,KAAK,IAAI,EAAE;YAC/C,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,QAAQ,CAAC,CAAA;YAC5C,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC;gBACrB,IAAI,EAAE,QAAQ;gBACd,SAAS,EAAE,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC;aAC9B,CAAC,CAAA;QACJ,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}
1
+ {"version":3,"file":"detect.test.js","sourceRoot":"","sources":["../src/detect.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAA;AAC7C,OAAO,EAAE,mBAAmB,EAAE,aAAa,EAAyB,MAAM,aAAa,CAAA;AAEvF,QAAQ,CAAC,QAAQ,EAAE,GAAG,EAAE;IACtB,EAAE,CAAC,uCAAuC,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE;QACpE,MAAM,MAAM,GAAG,mBAAmB,CAAC,6BAA6B,CAAC,CAAA;QACjE,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,CAAA;IAC3B,CAAC,CAAC,CAAA;IAEF,sDAAsD;IACtD,MAAM,kBAAkB,GAAG,mBAAmB,CAAC,QAAQ,CAAC,KAAK,IAAI,CAAA;IACjE,MAAM,mBAAmB,GAAG,kBAAkB,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAA;IAEzE,mBAAmB,CAAC,uBAAuB,EAAE,GAAG,EAAE;QAChD,EAAE,CAAC,oCAAoC,EAAE,GAAG,EAAE;YAC5C,MAAM,MAAM,GAAG,mBAAmB,CAAC,QAAQ,CAAC,CAAA;YAC5C,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAA;YAC7B,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAA;QAC1C,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,iCAAiC,EAAE,KAAK,IAAI,EAAE;YAC/C,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,QAAQ,CAAC,CAAA;YAC5C,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC;gBACrB,IAAI,EAAE,QAAQ;gBACd,SAAS,EAAE,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC;aAC9B,CAAC,CAAA;QACJ,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}