@squadbase/vantage 0.3.0 → 0.4.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.
Files changed (59) hide show
  1. package/README.md +1 -1
  2. package/dist/add-GQEXRQSI.js +6 -0
  3. package/dist/add-GQEXRQSI.js.map +1 -0
  4. package/dist/build-77KHIRWR.js +108 -0
  5. package/dist/build-77KHIRWR.js.map +1 -0
  6. package/dist/check-26U4O5UW.js +38 -0
  7. package/dist/check-26U4O5UW.js.map +1 -0
  8. package/dist/chunk-2KRCGXBY.js +56 -0
  9. package/dist/chunk-2KRCGXBY.js.map +1 -0
  10. package/dist/chunk-BAM33YZ6.js +202 -0
  11. package/dist/chunk-BAM33YZ6.js.map +1 -0
  12. package/dist/chunk-C4MQRWXS.js +81 -0
  13. package/dist/chunk-C4MQRWXS.js.map +1 -0
  14. package/dist/chunk-D4Y5RWJA.js +189 -0
  15. package/dist/chunk-D4Y5RWJA.js.map +1 -0
  16. package/dist/chunk-N6HAGEUA.js +136 -0
  17. package/dist/chunk-N6HAGEUA.js.map +1 -0
  18. package/dist/chunk-PSEYFYAP.js +276 -0
  19. package/dist/chunk-PSEYFYAP.js.map +1 -0
  20. package/dist/chunk-R2YYVCGS.js +345 -0
  21. package/dist/chunk-R2YYVCGS.js.map +1 -0
  22. package/dist/chunk-RA6Z3OX3.js +199 -0
  23. package/dist/chunk-RA6Z3OX3.js.map +1 -0
  24. package/dist/chunk-VXAV2435.js +142 -0
  25. package/dist/chunk-VXAV2435.js.map +1 -0
  26. package/dist/chunk-ZIM745WE.js +267 -0
  27. package/dist/chunk-ZIM745WE.js.map +1 -0
  28. package/dist/cli.js +27 -1677
  29. package/dist/cli.js.map +1 -1
  30. package/dist/dev-5K2PNSXT.js +67 -0
  31. package/dist/dev-5K2PNSXT.js.map +1 -0
  32. package/dist/docs-XEPM66VI.js +114 -0
  33. package/dist/docs-XEPM66VI.js.map +1 -0
  34. package/dist/doctor-6UMWKG6L.js +58 -0
  35. package/dist/doctor-6UMWKG6L.js.map +1 -0
  36. package/dist/index.d.ts +1 -1
  37. package/dist/index.js +1 -1
  38. package/dist/index.js.map +1 -1
  39. package/dist/preview-VXERMTHP.js +61 -0
  40. package/dist/preview-VXERMTHP.js.map +1 -0
  41. package/dist/routes-3JUXAYQJ.js +119 -0
  42. package/dist/routes-3JUXAYQJ.js.map +1 -0
  43. package/dist/search-NJJW4PXG.js +325 -0
  44. package/dist/search-NJJW4PXG.js.map +1 -0
  45. package/dist/server/node.d.ts +1 -12
  46. package/dist/types-De3mo_hv.d.ts +59 -0
  47. package/dist/upgrade-4XAY447F.js +29 -0
  48. package/dist/upgrade-4XAY447F.js.map +1 -0
  49. package/dist/vite/index.d.ts +13 -0
  50. package/dist/vite/index.js +5 -1
  51. package/docs/en/changelog.md +71 -0
  52. package/docs/en/cli-reference.md +60 -0
  53. package/docs/ja/changelog.md +65 -0
  54. package/docs/ja/cli-reference.md +60 -0
  55. package/package.json +7 -4
  56. package/skills/vantage-app/SKILL.md +1 -1
  57. package/templates/AGENTS.md +1 -1
  58. package/dist/chunk-5UGRNXHC.js +0 -802
  59. package/dist/chunk-5UGRNXHC.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/cli/add.ts"],"names":["require"],"mappings":"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","file":"chunk-ZIM745WE.js","sourcesContent":["import fs from \"node:fs\"\nimport path from \"node:path\"\nimport { createRequire } from \"node:module\"\nimport { resolvePageRoot } from \"../core/scan\"\nimport { log, type ParsedArgs } from \"./util\"\n\nconst PKG = \"@squadbase/vantage\"\n\nfunction toPascalCase(segment: string): string {\n const cleaned = segment.replace(/\\[|\\]|\\./g, \"\").replace(/\\.\\.\\./g, \"\")\n const words = cleaned.split(/[^a-zA-Z0-9]+/).filter(Boolean)\n const pascal = words.map((w) => w.charAt(0).toUpperCase() + w.slice(1)).join(\"\")\n return /^[A-Za-z]/.test(pascal) ? pascal : \"Page\"\n}\n\nfunction pageTemplate(name: string): string {\n const last = name.split(\"/\").pop() ?? name\n const component = last === \"index\" ? toPascalCase(name.split(\"/\").slice(-2)[0] ?? \"Home\") : toPascalCase(last)\n const title = last.replace(/-/g, \" \").replace(/\\b\\w/g, (c) => c.toUpperCase())\n return `import { definePage } from \"${PKG}\"\n\nexport const page = definePage({ title: ${JSON.stringify(title)} })\n\nexport default function ${component}() {\n return (\n <main className=\"p-6\">\n <h1 className=\"text-2xl font-semibold\">${title}</h1>\n </main>\n )\n}\n`\n}\n\nfunction apiTemplate(): string {\n return `import type { ApiContext } from \"${PKG}/server\"\n\nexport async function GET({ request, params }: ApiContext) {\n return Response.json({ ok: true, params })\n}\n`\n}\n\nfunction resolvePackageDir(root: string, sub: string): string | null {\n try {\n const require = createRequire(path.join(root, \"noop.js\"))\n const pkgJson = require.resolve(`${PKG}/package.json`)\n return path.join(path.dirname(pkgJson), sub)\n } catch {\n return null\n }\n}\n\nfunction resolveRegistryDir(root: string): string | null {\n return resolvePackageDir(root, \"registry\")\n}\n\nconst SKILL_FILE = \"SKILL.md\"\n\n/** Directories a placed skill never lives in — skipped while scanning. */\nconst SKILL_SCAN_SKIP = new Set([\n \"node_modules\",\n \".git\",\n \".vantage\",\n \"dist\",\n \"build\",\n \"out\",\n \"coverage\",\n \".next\",\n \".turbo\",\n \".cache\",\n \".vercel\",\n])\n\n/** How deep below the root the scan goes (`.claude/skills/<name>` is depth 3). */\nconst SKILL_SCAN_DEPTH = 4\n\n/** List the skill directories bundled with the installed framework. */\nfunction listBundledSkills(skillsDir: string): string[] {\n try {\n return fs\n .readdirSync(skillsDir, { withFileTypes: true })\n .filter((e) => e.isDirectory() && fs.existsSync(path.join(skillsDir, e.name, SKILL_FILE)))\n .map((e) => e.name)\n .sort()\n } catch {\n return []\n }\n}\n\n/** Paths outside the project read better absolute than as a pile of `../`. */\nfunction displayPath(root: string, target: string): string {\n const rel = path.relative(root, target)\n return !rel ? \".\" : rel.startsWith(\"..\") ? target : rel\n}\n\n/**\n * Find where the bundled skills already live in this project.\n *\n * Placement is a convention, not a fixed path: apps keep them under the root,\n * under `.claude/skills/`, under `.squadbase/skills/`, … so `add skill` looks\n * for the skill *directories* rather than guessing one destination and adding a\n * second copy next to the one that is already there.\n */\nfunction findPlacedSkills(\n root: string,\n names: readonly string[],\n skillsDir: string,\n): Map<string, string[]> {\n const wanted = new Set(names)\n const found = new Map<string, string[]>()\n // A workspace that links the framework by path (not through node_modules)\n // would otherwise report the framework's own `skills/` as a placement.\n const isSource = (p: string) => !path.relative(skillsDir, p).startsWith(\"..\")\n const walk = (dir: string, depth: number): void => {\n let entries: fs.Dirent[]\n try {\n entries = fs.readdirSync(dir, { withFileTypes: true })\n } catch {\n return\n }\n for (const entry of entries) {\n if (!entry.isDirectory() || SKILL_SCAN_SKIP.has(entry.name)) continue\n const abs = path.join(dir, entry.name)\n if (wanted.has(entry.name) && fs.existsSync(path.join(abs, SKILL_FILE))) {\n if (!isSource(abs)) found.set(entry.name, [...(found.get(entry.name) ?? []), abs])\n continue // skills never nest inside one another\n }\n if (depth < SKILL_SCAN_DEPTH) walk(abs, depth + 1)\n }\n }\n walk(root, 1)\n for (const list of found.values()) list.sort()\n return found\n}\n\n/** Copy one bundled skill directory to `dest`, creating parents as needed. */\nfunction writeSkill(root: string, skillsDir: string, name: string, dest: string, verb: string): void {\n fs.mkdirSync(path.dirname(dest), { recursive: true })\n fs.cpSync(path.join(skillsDir, name), dest, { recursive: true, force: true })\n log.ok(`${verb} skill ${displayPath(root, dest)}/`)\n}\n\n/** `vantage add skill` with no name — the bundled list plus where each one sits. */\nfunction printSkillList(root: string, available: string[], placed: Map<string, string[]>): number {\n const width = Math.max(...available.map((n) => n.length))\n log.info(\"Bundled skills:\")\n for (const name of available) {\n const where = placed.get(name)\n const status = where?.length\n ? where.map((p) => displayPath(root, p) + \"/\").join(\", \")\n : \"not placed\"\n log.info(` ${name.padEnd(width)} ${status}`)\n }\n const missing = available.filter((n) => !placed.get(n)?.length)\n if (missing.length) {\n log.info(\"\")\n log.info(\"Place the missing ones with: vantage add skill --all [--dir <path>]\")\n }\n return 0\n}\n\n/**\n * `vantage add skill [<name>|--all] [--dir <path>]` — copy Claude Code skills\n * out of the package.\n *\n * The command scans the project first: a skill that is already placed anywhere\n * (root, `.claude/skills/`, `.squadbase/skills/`, …) is a no-op and its location\n * is reported, so re-running never produces a second copy. `--force` refreshes\n * the placements that were found, in place. Only when nothing is found does the\n * destination matter — the project root, or `--dir` when given (an explicit\n * `--dir` also wins over refreshing somewhere else).\n */\nfunction addSkill(\n root: string,\n name: string | undefined,\n all: boolean,\n force: boolean,\n dir: string | undefined,\n): number {\n const skillsDir = resolvePackageDir(root, \"skills\")\n if (!skillsDir) {\n log.error(\"Could not resolve the Vantage skills directory.\")\n return 1\n }\n const available = listBundledSkills(skillsDir)\n if (available.length === 0) {\n log.error(\"No skills are bundled with this version of Vantage.\")\n return 1\n }\n const placed = findPlacedSkills(root, available, skillsDir)\n if (!all && !name) return printSkillList(root, available, placed)\n\n const destDir = path.resolve(root, dir ?? \".\")\n const targets = all ? available : [name as string]\n let failed = 0\n for (const target of targets) {\n if (!available.includes(target)) {\n log.error(`Unknown skill \"${target}\". Available: ${available.join(\", \")}`)\n failed++\n continue\n }\n const existing = placed.get(target) ?? []\n if (existing.length > 0 && !force) {\n const where = existing.map((p) => displayPath(root, p) + \"/\").join(\", \")\n log.info(`Skill ${target} is already placed at ${where} — skipped (--force to refresh).`)\n continue\n }\n // `--dir` names a destination explicitly, so it wins over refreshing copies\n // that live somewhere else; without it, `--force` updates them where they are.\n const inDestDir = existing.filter((p) => path.dirname(p) === destDir)\n const refresh = dir === undefined ? existing : inDestDir\n if (refresh.length > 0) {\n for (const dest of refresh) writeSkill(root, skillsDir, target, dest, \"Updated\")\n continue\n }\n if (existing.length > 0) {\n const where = existing.map((p) => displayPath(root, p) + \"/\").join(\", \")\n log.warn(`Skill ${target} is also placed at ${where} — left untouched.`)\n }\n writeSkill(root, skillsDir, target, path.join(destDir, target), \"Added\")\n }\n return failed === 0 ? 0 : 1\n}\n\nconst AGENTS_FILE = \"AGENTS.md\"\n\n/** Path to the framework's canonical AGENTS.md, or null if unresolved/absent. */\nfunction bundledAgentsPath(root: string): string | null {\n const dir = resolvePackageDir(root, \"templates\")\n if (!dir) return null\n const src = path.join(dir, AGENTS_FILE)\n return fs.existsSync(src) ? src : null\n}\n\n/** `vantage add agents` — copy the app-author AGENTS.md map into the app root. */\nfunction addAgents(root: string, force: boolean): number {\n const src = bundledAgentsPath(root)\n if (!src) {\n log.error(\"AGENTS.md is not bundled with this version of Vantage.\")\n return 1\n }\n const dest = path.join(root, AGENTS_FILE)\n if (fs.existsSync(dest) && !force) {\n log.error(`${AGENTS_FILE} already exists. Use --force to overwrite.`)\n return 1\n }\n fs.copyFileSync(src, dest)\n log.ok(`Added ${path.relative(root, dest) || AGENTS_FILE}`)\n return 0\n}\n\n/**\n * Re-sync a managed AGENTS.md from the framework's canonical copy. Only touches\n * the app when AGENTS.md is already present (opt-in via `vantage add agents`),\n * and only rewrites when the content actually changed. Used by `vantage upgrade`\n * so a single source-of-truth update reflects into apps that adopted the guide.\n */\nexport function syncAgentsFile(root: string): \"updated\" | \"unchanged\" | \"absent\" {\n const dest = path.join(root, AGENTS_FILE)\n if (!fs.existsSync(dest)) return \"absent\"\n const src = bundledAgentsPath(root)\n if (!src) return \"unchanged\"\n const next = fs.readFileSync(src, \"utf8\")\n if (fs.readFileSync(dest, \"utf8\") === next) return \"unchanged\"\n fs.writeFileSync(dest, next)\n return \"updated\"\n}\n\nfunction copyFromRegistry(root: string, kind: \"ui\" | \"block\", name: string, force: boolean): number {\n const registry = resolveRegistryDir(root)\n if (!registry) {\n log.error(\"Could not resolve the Vantage registry.\")\n return 1\n }\n const sub = kind === \"ui\" ? \"ui\" : \"blocks\"\n const src = path.join(registry, sub, `${name}.tsx`)\n if (!fs.existsSync(src)) {\n const available = fs.existsSync(path.join(registry, sub))\n ? fs.readdirSync(path.join(registry, sub)).map((f) => f.replace(/\\.tsx$/, \"\"))\n : []\n log.error(`Unknown ${kind} \"${name}\". Available: ${available.join(\", \") || \"(none)\"}`)\n return 1\n }\n // Copies land next to the pages that import them (src/components/… when the\n // project has a src/ layout).\n const destDir = path.join(resolvePageRoot(root).abs, \"components\", kind === \"ui\" ? \"ui\" : \"blocks\")\n const dest = path.join(destDir, `${name}.tsx`)\n if (fs.existsSync(dest) && !force) {\n log.error(`${path.relative(root, dest)} already exists. Use --force to overwrite.`)\n return 1\n }\n fs.mkdirSync(destDir, { recursive: true })\n fs.copyFileSync(src, dest)\n log.ok(`Added ${path.relative(root, dest)}`)\n return 0\n}\n\n/** `vantage add <page|api|ui|block|skill> <name>` */\nexport async function add(root: string, args: ParsedArgs): Promise<number> {\n const kind = args.positionals[1]\n const name = args.positionals[2]\n const force = Boolean(args.flags.force)\n const all = Boolean(args.flags.all)\n\n // `skill` accepts `--all` in place of a name, and `agents` takes no name at\n // all; handle both before the name guard.\n if (kind === \"skill\") {\n const dir = typeof args.flags.dir === \"string\" ? args.flags.dir : undefined\n return addSkill(root, name, all, force, dir)\n }\n if (kind === \"agents\") return addAgents(root, force)\n\n if (!kind || !name) {\n log.error(\"Usage: vantage add <page|api|ui|block|skill|agents> <name>\")\n return 1\n }\n\n if (kind === \"page\") {\n // Pages are named by their route, so they go under the page root — src/\n // when the project has one, the project root otherwise.\n const pageRoot = resolvePageRoot(root).abs\n const file = path.join(pageRoot, name.endsWith(\".tsx\") ? name : `${name}.tsx`)\n if (fs.existsSync(file) && !force) {\n log.error(`${path.relative(root, file)} already exists. Use --force to overwrite.`)\n return 1\n }\n fs.mkdirSync(path.dirname(file), { recursive: true })\n fs.writeFileSync(file, pageTemplate(name))\n log.ok(`Added page ${path.relative(root, file)}`)\n return 0\n }\n\n if (kind === \"api\") {\n const rel = name.startsWith(\"server/api/\") ? name : path.join(\"server\", \"api\", name)\n const file = path.join(root, rel.endsWith(\".ts\") ? rel : `${rel}.ts`)\n if (fs.existsSync(file) && !force) {\n log.error(`${path.relative(root, file)} already exists. Use --force to overwrite.`)\n return 1\n }\n fs.mkdirSync(path.dirname(file), { recursive: true })\n fs.writeFileSync(file, apiTemplate())\n log.ok(`Added API ${path.relative(root, file)}`)\n return 0\n }\n\n if (kind === \"ui\") return copyFromRegistry(root, \"ui\", name, force)\n if (kind === \"block\") return copyFromRegistry(root, \"block\", name, force)\n\n log.error(`Unknown add target \"${kind}\". Use one of: page, api, ui, block, skill, agents.`)\n return 1\n}\n"]}