claude-ws 0.4.9-beta.6 → 0.4.9-beta.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "claude-ws",
3
- "version": "0.4.9-beta.6",
3
+ "version": "0.4.9-beta.7",
4
4
  "private": false,
5
5
  "description": "AI-powered workspace for solo CEOs and indie builders — manage your entire business with AI agents, not just code. Kanban board, code editor, Git integration, claw agent hub, local-first SQLite.",
6
6
  "keywords": [
@@ -63,13 +63,15 @@ const BUILTIN_COMMANDS: CommandInfo[] = [
63
63
  { name: 'vim', description: 'Enter vim mode for multi-line input', isBuiltIn: true },
64
64
  ];
65
65
 
66
- function parseFrontmatter(content: string): { description?: string; argumentHint?: string } {
66
+ function parseFrontmatter(content: string): { name?: string; description?: string; argumentHint?: string } {
67
67
  const match = content.match(/^---\n([\s\S]*?)\n---/);
68
68
  if (!match) return {};
69
69
  const fm = match[1];
70
+ const nameMatch = fm.match(/name:\s*(.+)/);
70
71
  const desc = fm.match(/description:\s*(.+)/);
71
72
  const arg = fm.match(/argument-hint:\s*(.+)/);
72
73
  return {
74
+ name: nameMatch ? nameMatch[1].trim().replace(/^["']|["']$/g, '') : undefined,
73
75
  description: desc ? desc[1].trim().replace(/^["']|["']$/g, '') : undefined,
74
76
  argumentHint: arg ? arg[1].trim().replace(/^["']|["']$/g, '') : undefined,
75
77
  };
@@ -106,9 +108,7 @@ function scanSkillsDir(dir: string): CommandInfo[] {
106
108
  if (existsSync(skillFile)) {
107
109
  const content = readFileSync(skillFile, 'utf-8');
108
110
  const fm = parseFrontmatter(content);
109
- // parseFrontmatter needs to also extract 'name' field
110
- const nameMatch = content.match(/^---\n[\s\S]*?name:\s*(.+?)[\s\S]*?\n---/);
111
- const name = nameMatch ? nameMatch[1].trim().replace(/^["']|["']$/g, '') : item;
111
+ const name = fm.name || item;
112
112
  skills.push({ name, description: fm.description || `Run /${item} skill`, argumentHint: fm.argumentHint });
113
113
  } else {
114
114
  skills.push(...scanSkillsDir(itemPath));