lokuma-cli 1.3.0 → 1.3.2

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 (3) hide show
  1. package/README.md +6 -0
  2. package/dist/index.js +29 -19
  3. package/package.json +1 -1
package/README.md CHANGED
@@ -14,6 +14,12 @@ Already installed and just want the latest CLI?
14
14
  lokuma update
15
15
  ```
16
16
 
17
+ Update the CLI and refresh an installed skill in one step:
18
+
19
+ ```bash
20
+ lokuma update --ai openclaw
21
+ ```
22
+
17
23
  ## Supported AI Assistants
18
24
 
19
25
  | Flag | Assistant |
package/dist/index.js CHANGED
@@ -54,22 +54,22 @@ var AI_DISPLAY_NAMES = {
54
54
  all: "All assistants"
55
55
  };
56
56
  var AI_SKILL_PATHS = {
57
- claude: { root: ".claude", skillMd: ".claude/skills/lokuma/SKILL.md", scriptPy: ".claude/skills/lokuma/scripts/search.py" },
58
- cursor: { root: ".cursor", skillMd: ".cursor/rules/lokuma.mdc", scriptPy: ".cursor/rules/lokuma/scripts/search.py" },
59
- windsurf: { root: ".windsurf", skillMd: ".windsurf/rules/lokuma.md", scriptPy: ".windsurf/rules/lokuma/scripts/search.py" },
60
- copilot: { root: ".github", skillMd: ".github/instructions/lokuma.instructions.md", scriptPy: ".github/instructions/lokuma/scripts/search.py" },
61
- kiro: { root: ".kiro", skillMd: ".kiro/steering/lokuma.md", scriptPy: ".kiro/steering/lokuma/scripts/search.py" },
62
- roocode: { root: ".roo", skillMd: ".roo/rules/lokuma.md", scriptPy: ".roo/rules/lokuma/scripts/search.py" },
63
- codex: { root: ".codex", skillMd: ".codex/instructions.md", scriptPy: ".codex/lokuma/scripts/search.py" },
64
- qoder: { root: ".qoder", skillMd: ".qoder/rules/lokuma.md", scriptPy: ".qoder/rules/lokuma/scripts/search.py" },
65
- gemini: { root: ".gemini", skillMd: ".gemini/GEMINI.md", scriptPy: ".gemini/lokuma/scripts/search.py" },
66
- trae: { root: ".trae", skillMd: ".trae/rules/lokuma.md", scriptPy: ".trae/rules/lokuma/scripts/search.py" },
67
- opencode: { root: ".opencode", skillMd: ".opencode/OPENCODE.md", scriptPy: ".opencode/lokuma/scripts/search.py" },
68
- continue: { root: ".continue", skillMd: ".continue/lokuma/SKILL.md", scriptPy: ".continue/lokuma/scripts/search.py" },
69
- codebuddy: { root: ".codebuddy", skillMd: ".codebuddy/lokuma/SKILL.md", scriptPy: ".codebuddy/lokuma/scripts/search.py" },
70
- droid: { root: ".factory", skillMd: ".factory/skills/lokuma/SKILL.md", scriptPy: ".factory/skills/lokuma/scripts/search.py" },
57
+ claude: { root: ".claude", skillMd: ".claude/skills/frontend-designer/SKILL.md", scriptPy: ".claude/skills/frontend-designer/scripts/search.py" },
58
+ cursor: { root: ".cursor", skillMd: ".cursor/rules/frontend-designer.mdc", scriptPy: ".cursor/rules/frontend-designer/scripts/search.py" },
59
+ windsurf: { root: ".windsurf", skillMd: ".windsurf/rules/frontend-designer.md", scriptPy: ".windsurf/rules/frontend-designer/scripts/search.py" },
60
+ copilot: { root: ".github", skillMd: ".github/instructions/frontend-designer.instructions.md", scriptPy: ".github/instructions/frontend-designer/scripts/search.py" },
61
+ kiro: { root: ".kiro", skillMd: ".kiro/steering/frontend-designer.md", scriptPy: ".kiro/steering/frontend-designer/scripts/search.py" },
62
+ roocode: { root: ".roo", skillMd: ".roo/rules/frontend-designer.md", scriptPy: ".roo/rules/frontend-designer/scripts/search.py" },
63
+ codex: { root: ".codex", skillMd: ".codex/instructions.md", scriptPy: ".codex/frontend-designer/scripts/search.py" },
64
+ qoder: { root: ".qoder", skillMd: ".qoder/rules/frontend-designer.md", scriptPy: ".qoder/rules/frontend-designer/scripts/search.py" },
65
+ gemini: { root: ".gemini", skillMd: ".gemini/GEMINI.md", scriptPy: ".gemini/frontend-designer/scripts/search.py" },
66
+ trae: { root: ".trae", skillMd: ".trae/rules/frontend-designer.md", scriptPy: ".trae/rules/frontend-designer/scripts/search.py" },
67
+ opencode: { root: ".opencode", skillMd: ".opencode/OPENCODE.md", scriptPy: ".opencode/frontend-designer/scripts/search.py" },
68
+ continue: { root: ".continue", skillMd: ".continue/frontend-designer/SKILL.md", scriptPy: ".continue/frontend-designer/scripts/search.py" },
69
+ codebuddy: { root: ".codebuddy", skillMd: ".codebuddy/frontend-designer/SKILL.md", scriptPy: ".codebuddy/frontend-designer/scripts/search.py" },
70
+ droid: { root: ".factory", skillMd: ".factory/skills/frontend-designer/SKILL.md", scriptPy: ".factory/skills/frontend-designer/scripts/search.py" },
71
71
  // OpenClaw installs to a fixed absolute path (not relative to cwd)
72
- openclaw: { root: "~/.openclaw/workspace/skills/lokuma", skillMd: "~/.openclaw/workspace/skills/lokuma/SKILL.md", scriptPy: "~/.openclaw/workspace/skills/lokuma/scripts/search.py" }
72
+ openclaw: { root: "~/.openclaw/workspace/skills/frontend-designer", skillMd: "~/.openclaw/workspace/skills/frontend-designer/SKILL.md", scriptPy: "~/.openclaw/workspace/skills/frontend-designer/scripts/search.py" }
73
73
  };
74
74
 
75
75
  // src/commands/init.ts
@@ -83,7 +83,7 @@ function resolvePath(p) {
83
83
  }
84
84
  function buildSkillMd(scriptPath) {
85
85
  return `---
86
- name: lokuma
86
+ name: frontend-designer
87
87
  description: >
88
88
  Lokuma design intelligence. Use this skill whenever building or modifying UI:
89
89
  landing pages, dashboards, SaaS products, mobile apps, e-commerce, portfolios,
@@ -456,7 +456,7 @@ async function authLoginCommand() {
456
456
  // src/commands/update.ts
457
457
  import { execSync } from "node:child_process";
458
458
  import chalk3 from "chalk";
459
- async function updateCommand() {
459
+ async function updateCommand(options = {}) {
460
460
  console.log();
461
461
  console.log(chalk3.bold(" Lokuma \u2014 CLI Update"));
462
462
  console.log(chalk3.dim(" Updating lokuma-cli to the latest npm release..."));
@@ -466,6 +466,11 @@ async function updateCommand() {
466
466
  const version = execSync("lokuma --version", { encoding: "utf-8" }).trim();
467
467
  console.log();
468
468
  console.log(chalk3.green(` \u2713 Updated successfully to ${version}`));
469
+ if (options.ai && options.ai !== "all") {
470
+ console.log();
471
+ console.log(chalk3.dim(` Refreshing installed skill for ${options.ai}...`));
472
+ await initCommand({ ai: options.ai, force: true });
473
+ }
469
474
  console.log();
470
475
  } catch (error) {
471
476
  console.log();
@@ -497,7 +502,12 @@ var auth = program.command("auth").description("Manage authentication");
497
502
  auth.command("login").description("Set or update your Lokuma API key").action(async () => {
498
503
  await authLoginCommand();
499
504
  });
500
- program.command("update").description("Update lokuma-cli to the latest version from npm").action(async () => {
501
- await updateCommand();
505
+ program.command("update").description("Update lokuma-cli to the latest version from npm").option("-a, --ai <type>", `Reinstall skill for a specific AI assistant after updating (${AI_TYPES.join(", ")})`).action(async (options) => {
506
+ if (options.ai && !AI_TYPES.includes(options.ai)) {
507
+ console.error(`Invalid AI type: ${options.ai}`);
508
+ console.error(`Valid types: ${AI_TYPES.join(", ")}`);
509
+ process.exit(1);
510
+ }
511
+ await updateCommand({ ai: options.ai });
502
512
  });
503
513
  program.parse();
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lokuma-cli",
3
- "version": "1.3.0",
3
+ "version": "1.3.2",
4
4
  "description": "CLI to install Lokuma design intelligence skill for AI coding assistants",
5
5
  "type": "module",
6
6
  "bin": {