cursor-kit-cli 1.3.0 → 1.4.0-beta

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/dist/index.cjs CHANGED
@@ -50,6 +50,10 @@ __export(src_exports, {
50
50
  dirExists: () => dirExists,
51
51
  ensureDir: () => ensureDir,
52
52
  fileExists: () => fileExists,
53
+ getAgentDir: () => getAgentDir,
54
+ getAgentRulesDir: () => getAgentRulesDir,
55
+ getAgentSkillsDir: () => getAgentSkillsDir,
56
+ getAgentWorkflowsDir: () => getAgentWorkflowsDir,
53
57
  getCommandsDir: () => getCommandsDir,
54
58
  getConflictingDirs: () => getConflictingDirs,
55
59
  getConflictingFiles: () => getConflictingFiles,
@@ -241,6 +245,18 @@ function deleteFile(path) {
241
245
  (0, import_node_fs.rmSync)(path);
242
246
  }
243
247
  }
248
+ function getAgentDir(cwd = process.cwd()) {
249
+ return (0, import_node_path.join)(cwd, ".agent");
250
+ }
251
+ function getAgentRulesDir(cwd = process.cwd()) {
252
+ return (0, import_node_path.join)(getAgentDir(cwd), "rules");
253
+ }
254
+ function getAgentWorkflowsDir(cwd = process.cwd()) {
255
+ return (0, import_node_path.join)(getAgentDir(cwd), "workflows");
256
+ }
257
+ function getAgentSkillsDir(cwd = process.cwd()) {
258
+ return (0, import_node_path.join)(getAgentDir(cwd), "skills");
259
+ }
244
260
 
245
261
  // src/utils/constants.ts
246
262
  var REPO_URL = "github:duongductrong/cursor-kit";
@@ -280,6 +296,10 @@ var TEMPLATE_PATHS = {
280
296
  dirExists,
281
297
  ensureDir,
282
298
  fileExists,
299
+ getAgentDir,
300
+ getAgentRulesDir,
301
+ getAgentSkillsDir,
302
+ getAgentWorkflowsDir,
283
303
  getCommandsDir,
284
304
  getConflictingDirs,
285
305
  getConflictingFiles,
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts","../src/utils/branding.ts","../src/utils/fs.ts","../src/utils/constants.ts"],"sourcesContent":["export * from \"./utils/branding\";\nexport * from \"./utils/fs\";\nexport * from \"./utils/constants\";\n\n","import figlet from \"figlet\";\nimport gradient from \"gradient-string\";\nimport pc from \"picocolors\";\n\nconst cursorGradient = gradient([\"#00DC82\", \"#36E4DA\", \"#0047E1\"]);\n\nexport function printBanner(): void {\n const banner = figlet.textSync(\"Cursor Kit\", {\n font: \"ANSI Shadow\",\n horizontalLayout: \"fitted\",\n });\n\n console.log(cursorGradient.multiline(banner));\n console.log();\n console.log(\n pc.dim(\" \") +\n pc.bold(pc.cyan(\"✦\")) +\n pc.dim(\" Supercharge your Cursor IDE with rules & commands\")\n );\n console.log();\n}\n\nexport function printSuccess(message: string): void {\n console.log(pc.green(\"✓\") + pc.dim(\" \") + message);\n}\n\nexport function printError(message: string): void {\n console.log(pc.red(\"✗\") + pc.dim(\" \") + message);\n}\n\nexport function printInfo(message: string): void {\n console.log(pc.cyan(\"ℹ\") + pc.dim(\" \") + message);\n}\n\nexport function printWarning(message: string): void {\n console.log(pc.yellow(\"⚠\") + pc.dim(\" \") + message);\n}\n\nexport function printDivider(): void {\n console.log(pc.dim(\"─\".repeat(50)));\n}\n\nexport function printVersion(version: string): void {\n console.log(\n pc.dim(\" \") + cursorGradient(`v${version}`) + pc.dim(\" • Made with ♥\")\n );\n console.log();\n}\n\nexport function highlight(text: string): string {\n return pc.cyan(text);\n}\n\nexport function dim(text: string): string {\n return pc.dim(text);\n}\n\nexport function bold(text: string): string {\n return pc.bold(text);\n}\n\nexport function gradientText(text: string): string {\n return cursorGradient(text);\n}\n\n","import { existsSync, mkdirSync, readdirSync, readFileSync, writeFileSync, rmSync, statSync, cpSync } from \"node:fs\";\nimport { dirname, join, resolve } from \"node:path\";\n\nexport function ensureDir(path: string): void {\n if (!existsSync(path)) {\n mkdirSync(path, { recursive: true });\n }\n}\n\nexport function fileExists(path: string): boolean {\n return existsSync(path);\n}\n\nexport function dirExists(path: string): boolean {\n return existsSync(path) && statSync(path).isDirectory();\n}\n\nexport function readFile(path: string): string {\n return readFileSync(path, \"utf-8\");\n}\n\nexport function writeFile(path: string, content: string): void {\n ensureDir(dirname(path));\n writeFileSync(path, content, \"utf-8\");\n}\n\nexport function removeFile(path: string): void {\n if (existsSync(path)) {\n rmSync(path, { recursive: true });\n }\n}\n\nexport function copyDir(src: string, dest: string): void {\n cpSync(src, dest, { recursive: true });\n}\n\nexport function listFiles(dir: string, extension?: string): string[] {\n if (!dirExists(dir)) return [];\n \n const files = readdirSync(dir);\n if (extension) {\n return files.filter((f) => f.endsWith(extension));\n }\n return files;\n}\n\nexport function listDirs(dir: string): string[] {\n if (!dirExists(dir)) return [];\n \n return readdirSync(dir).filter((item) => {\n const itemPath = join(dir, item);\n return statSync(itemPath).isDirectory();\n });\n}\n\nexport function getCursorDir(cwd: string = process.cwd()): string {\n return join(cwd, \".cursor\");\n}\n\nexport function getCommandsDir(cwd: string = process.cwd()): string {\n return join(getCursorDir(cwd), \"commands\");\n}\n\nexport function getRulesDir(cwd: string = process.cwd()): string {\n return join(getCursorDir(cwd), \"rules\");\n}\n\nexport function getSkillsDir(cwd: string = process.cwd()): string {\n return join(getCursorDir(cwd), \"skills\");\n}\n\nexport function resolveFromCwd(...paths: string[]): string {\n return resolve(process.cwd(), ...paths);\n}\n\nexport function getPackageJson(cwd: string = process.cwd()): Record<string, unknown> | null {\n const pkgPath = join(cwd, \"package.json\");\n if (!fileExists(pkgPath)) return null;\n \n try {\n return JSON.parse(readFile(pkgPath));\n } catch {\n return null;\n }\n}\n\nexport function getConflictingFiles(dir: string, files: string[]): string[] {\n if (!dirExists(dir)) return [];\n return files.filter((file) => fileExists(join(dir, file)));\n}\n\nexport function getConflictingDirs(dir: string, dirs: string[]): string[] {\n if (!dirExists(dir)) return [];\n return dirs.filter((d) => dirExists(join(dir, d)));\n}\n\nexport function getNonConflictingFiles(dir: string, files: string[]): string[] {\n if (!dirExists(dir)) return files;\n return files.filter((file) => !fileExists(join(dir, file)));\n}\n\nexport function getNonConflictingDirs(dir: string, dirs: string[]): string[] {\n if (!dirExists(dir)) return dirs;\n return dirs.filter((d) => !dirExists(join(dir, d)));\n}\n\nexport function getGitHubDir(cwd: string = process.cwd()): string {\n return join(cwd, \".github\");\n}\n\nexport function getCopilotInstructionsPath(cwd: string = process.cwd()): string {\n return join(getGitHubDir(cwd), \"copilot-instructions.md\");\n}\n\nexport function getCopilotInstructionsDir(cwd: string = process.cwd()): string {\n return join(getGitHubDir(cwd), \"copilot-instructions\");\n}\n\nexport function getCopilotCommandsDir(cwd: string = process.cwd()): string {\n return join(getCopilotInstructionsDir(cwd), \"commands\");\n}\n\nexport function getCopilotRulesDir(cwd: string = process.cwd()): string {\n return join(getCopilotInstructionsDir(cwd), \"rules\");\n}\n\nexport function getCopilotSkillsDir(cwd: string = process.cwd()): string {\n return join(getCopilotInstructionsDir(cwd), \"skills\");\n}\n\nexport function deleteFile(path: string): void {\n if (fileExists(path)) {\n rmSync(path);\n }\n}\n","export const REPO_URL = \"github:duongductrong/cursor-kit\";\nexport const REPO_REF = \"master\";\nexport const REPO_RAW_URL = \"https://raw.githubusercontent.com/duongductrong/cursor-kit/master\";\n\nexport const CURSOR_DIR = \".cursor\";\nexport const COMMANDS_DIR = \"commands\";\nexport const RULES_DIR = \"rules\";\nexport const SKILLS_DIR = \"skills\";\n\nexport const COMMAND_EXTENSION = \".md\";\nexport const RULE_EXTENSION = \".mdc\";\nexport const SKILL_EXTENSION = \".mdc\";\n\nexport const CONFIG_FILE = \".cursorkit\";\n\nexport const TEMPLATE_PATHS = {\n commands: \"templates/commands\",\n rules: \"templates/rules\",\n skills: \"templates/skills\",\n} as const;\n"],"mappings":"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","names":["gradient","figlet","pc"]}
1
+ {"version":3,"sources":["../src/index.ts","../src/utils/branding.ts","../src/utils/fs.ts","../src/utils/constants.ts"],"sourcesContent":["export * from \"./utils/branding\";\nexport * from \"./utils/fs\";\nexport * from \"./utils/constants\";\n\n","import figlet from \"figlet\";\nimport gradient from \"gradient-string\";\nimport pc from \"picocolors\";\n\nconst cursorGradient = gradient([\"#00DC82\", \"#36E4DA\", \"#0047E1\"]);\n\nexport function printBanner(): void {\n const banner = figlet.textSync(\"Cursor Kit\", {\n font: \"ANSI Shadow\",\n horizontalLayout: \"fitted\",\n });\n\n console.log(cursorGradient.multiline(banner));\n console.log();\n console.log(\n pc.dim(\" \") +\n pc.bold(pc.cyan(\"✦\")) +\n pc.dim(\" Supercharge your Cursor IDE with rules & commands\")\n );\n console.log();\n}\n\nexport function printSuccess(message: string): void {\n console.log(pc.green(\"✓\") + pc.dim(\" \") + message);\n}\n\nexport function printError(message: string): void {\n console.log(pc.red(\"✗\") + pc.dim(\" \") + message);\n}\n\nexport function printInfo(message: string): void {\n console.log(pc.cyan(\"ℹ\") + pc.dim(\" \") + message);\n}\n\nexport function printWarning(message: string): void {\n console.log(pc.yellow(\"⚠\") + pc.dim(\" \") + message);\n}\n\nexport function printDivider(): void {\n console.log(pc.dim(\"─\".repeat(50)));\n}\n\nexport function printVersion(version: string): void {\n console.log(\n pc.dim(\" \") + cursorGradient(`v${version}`) + pc.dim(\" • Made with ♥\")\n );\n console.log();\n}\n\nexport function highlight(text: string): string {\n return pc.cyan(text);\n}\n\nexport function dim(text: string): string {\n return pc.dim(text);\n}\n\nexport function bold(text: string): string {\n return pc.bold(text);\n}\n\nexport function gradientText(text: string): string {\n return cursorGradient(text);\n}\n\n","import { existsSync, mkdirSync, readdirSync, readFileSync, writeFileSync, rmSync, statSync, cpSync } from \"node:fs\";\nimport { dirname, join, resolve } from \"node:path\";\n\nexport function ensureDir(path: string): void {\n if (!existsSync(path)) {\n mkdirSync(path, { recursive: true });\n }\n}\n\nexport function fileExists(path: string): boolean {\n return existsSync(path);\n}\n\nexport function dirExists(path: string): boolean {\n return existsSync(path) && statSync(path).isDirectory();\n}\n\nexport function readFile(path: string): string {\n return readFileSync(path, \"utf-8\");\n}\n\nexport function writeFile(path: string, content: string): void {\n ensureDir(dirname(path));\n writeFileSync(path, content, \"utf-8\");\n}\n\nexport function removeFile(path: string): void {\n if (existsSync(path)) {\n rmSync(path, { recursive: true });\n }\n}\n\nexport function copyDir(src: string, dest: string): void {\n cpSync(src, dest, { recursive: true });\n}\n\nexport function listFiles(dir: string, extension?: string): string[] {\n if (!dirExists(dir)) return [];\n \n const files = readdirSync(dir);\n if (extension) {\n return files.filter((f) => f.endsWith(extension));\n }\n return files;\n}\n\nexport function listDirs(dir: string): string[] {\n if (!dirExists(dir)) return [];\n \n return readdirSync(dir).filter((item) => {\n const itemPath = join(dir, item);\n return statSync(itemPath).isDirectory();\n });\n}\n\nexport function getCursorDir(cwd: string = process.cwd()): string {\n return join(cwd, \".cursor\");\n}\n\nexport function getCommandsDir(cwd: string = process.cwd()): string {\n return join(getCursorDir(cwd), \"commands\");\n}\n\nexport function getRulesDir(cwd: string = process.cwd()): string {\n return join(getCursorDir(cwd), \"rules\");\n}\n\nexport function getSkillsDir(cwd: string = process.cwd()): string {\n return join(getCursorDir(cwd), \"skills\");\n}\n\nexport function resolveFromCwd(...paths: string[]): string {\n return resolve(process.cwd(), ...paths);\n}\n\nexport function getPackageJson(cwd: string = process.cwd()): Record<string, unknown> | null {\n const pkgPath = join(cwd, \"package.json\");\n if (!fileExists(pkgPath)) return null;\n \n try {\n return JSON.parse(readFile(pkgPath));\n } catch {\n return null;\n }\n}\n\nexport function getConflictingFiles(dir: string, files: string[]): string[] {\n if (!dirExists(dir)) return [];\n return files.filter((file) => fileExists(join(dir, file)));\n}\n\nexport function getConflictingDirs(dir: string, dirs: string[]): string[] {\n if (!dirExists(dir)) return [];\n return dirs.filter((d) => dirExists(join(dir, d)));\n}\n\nexport function getNonConflictingFiles(dir: string, files: string[]): string[] {\n if (!dirExists(dir)) return files;\n return files.filter((file) => !fileExists(join(dir, file)));\n}\n\nexport function getNonConflictingDirs(dir: string, dirs: string[]): string[] {\n if (!dirExists(dir)) return dirs;\n return dirs.filter((d) => !dirExists(join(dir, d)));\n}\n\nexport function getGitHubDir(cwd: string = process.cwd()): string {\n return join(cwd, \".github\");\n}\n\nexport function getCopilotInstructionsPath(cwd: string = process.cwd()): string {\n return join(getGitHubDir(cwd), \"copilot-instructions.md\");\n}\n\nexport function getCopilotInstructionsDir(cwd: string = process.cwd()): string {\n return join(getGitHubDir(cwd), \"copilot-instructions\");\n}\n\nexport function getCopilotCommandsDir(cwd: string = process.cwd()): string {\n return join(getCopilotInstructionsDir(cwd), \"commands\");\n}\n\nexport function getCopilotRulesDir(cwd: string = process.cwd()): string {\n return join(getCopilotInstructionsDir(cwd), \"rules\");\n}\n\nexport function getCopilotSkillsDir(cwd: string = process.cwd()): string {\n return join(getCopilotInstructionsDir(cwd), \"skills\");\n}\n\nexport function deleteFile(path: string): void {\n if (fileExists(path)) {\n rmSync(path);\n }\n}\n\n// Google AntiGravity directory utilities\nexport function getAgentDir(cwd: string = process.cwd()): string {\n return join(cwd, \".agent\");\n}\n\nexport function getAgentRulesDir(cwd: string = process.cwd()): string {\n return join(getAgentDir(cwd), \"rules\");\n}\n\nexport function getAgentWorkflowsDir(cwd: string = process.cwd()): string {\n return join(getAgentDir(cwd), \"workflows\");\n}\n\nexport function getAgentSkillsDir(cwd: string = process.cwd()): string {\n return join(getAgentDir(cwd), \"skills\");\n}\n","export const REPO_URL = \"github:duongductrong/cursor-kit\";\nexport const REPO_REF = \"master\";\nexport const REPO_RAW_URL = \"https://raw.githubusercontent.com/duongductrong/cursor-kit/master\";\n\nexport const CURSOR_DIR = \".cursor\";\nexport const COMMANDS_DIR = \"commands\";\nexport const RULES_DIR = \"rules\";\nexport const SKILLS_DIR = \"skills\";\n\nexport const COMMAND_EXTENSION = \".md\";\nexport const RULE_EXTENSION = \".mdc\";\nexport const SKILL_EXTENSION = \".mdc\";\n\nexport const CONFIG_FILE = \".cursorkit\";\n\nexport const TEMPLATE_PATHS = {\n commands: \"templates/commands\",\n rules: \"templates/rules\",\n skills: \"templates/skills\",\n} as const;\n"],"mappings":"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","names":["gradient","figlet","pc"]}
package/dist/index.d.cts CHANGED
@@ -36,6 +36,10 @@ declare function getCopilotCommandsDir(cwd?: string): string;
36
36
  declare function getCopilotRulesDir(cwd?: string): string;
37
37
  declare function getCopilotSkillsDir(cwd?: string): string;
38
38
  declare function deleteFile(path: string): void;
39
+ declare function getAgentDir(cwd?: string): string;
40
+ declare function getAgentRulesDir(cwd?: string): string;
41
+ declare function getAgentWorkflowsDir(cwd?: string): string;
42
+ declare function getAgentSkillsDir(cwd?: string): string;
39
43
 
40
44
  declare const REPO_URL = "github:duongductrong/cursor-kit";
41
45
  declare const REPO_REF = "master";
@@ -54,4 +58,4 @@ declare const TEMPLATE_PATHS: {
54
58
  readonly skills: "templates/skills";
55
59
  };
56
60
 
57
- export { COMMANDS_DIR, COMMAND_EXTENSION, CONFIG_FILE, CURSOR_DIR, REPO_RAW_URL, REPO_REF, REPO_URL, RULES_DIR, RULE_EXTENSION, SKILLS_DIR, SKILL_EXTENSION, TEMPLATE_PATHS, bold, copyDir, deleteFile, dim, dirExists, ensureDir, fileExists, getCommandsDir, getConflictingDirs, getConflictingFiles, getCopilotCommandsDir, getCopilotInstructionsDir, getCopilotInstructionsPath, getCopilotRulesDir, getCopilotSkillsDir, getCursorDir, getGitHubDir, getNonConflictingDirs, getNonConflictingFiles, getPackageJson, getRulesDir, getSkillsDir, gradientText, highlight, listDirs, listFiles, printBanner, printDivider, printError, printInfo, printSuccess, printVersion, printWarning, readFile, removeFile, resolveFromCwd, writeFile };
61
+ export { COMMANDS_DIR, COMMAND_EXTENSION, CONFIG_FILE, CURSOR_DIR, REPO_RAW_URL, REPO_REF, REPO_URL, RULES_DIR, RULE_EXTENSION, SKILLS_DIR, SKILL_EXTENSION, TEMPLATE_PATHS, bold, copyDir, deleteFile, dim, dirExists, ensureDir, fileExists, getAgentDir, getAgentRulesDir, getAgentSkillsDir, getAgentWorkflowsDir, getCommandsDir, getConflictingDirs, getConflictingFiles, getCopilotCommandsDir, getCopilotInstructionsDir, getCopilotInstructionsPath, getCopilotRulesDir, getCopilotSkillsDir, getCursorDir, getGitHubDir, getNonConflictingDirs, getNonConflictingFiles, getPackageJson, getRulesDir, getSkillsDir, gradientText, highlight, listDirs, listFiles, printBanner, printDivider, printError, printInfo, printSuccess, printVersion, printWarning, readFile, removeFile, resolveFromCwd, writeFile };
package/dist/index.d.ts CHANGED
@@ -36,6 +36,10 @@ declare function getCopilotCommandsDir(cwd?: string): string;
36
36
  declare function getCopilotRulesDir(cwd?: string): string;
37
37
  declare function getCopilotSkillsDir(cwd?: string): string;
38
38
  declare function deleteFile(path: string): void;
39
+ declare function getAgentDir(cwd?: string): string;
40
+ declare function getAgentRulesDir(cwd?: string): string;
41
+ declare function getAgentWorkflowsDir(cwd?: string): string;
42
+ declare function getAgentSkillsDir(cwd?: string): string;
39
43
 
40
44
  declare const REPO_URL = "github:duongductrong/cursor-kit";
41
45
  declare const REPO_REF = "master";
@@ -54,4 +58,4 @@ declare const TEMPLATE_PATHS: {
54
58
  readonly skills: "templates/skills";
55
59
  };
56
60
 
57
- export { COMMANDS_DIR, COMMAND_EXTENSION, CONFIG_FILE, CURSOR_DIR, REPO_RAW_URL, REPO_REF, REPO_URL, RULES_DIR, RULE_EXTENSION, SKILLS_DIR, SKILL_EXTENSION, TEMPLATE_PATHS, bold, copyDir, deleteFile, dim, dirExists, ensureDir, fileExists, getCommandsDir, getConflictingDirs, getConflictingFiles, getCopilotCommandsDir, getCopilotInstructionsDir, getCopilotInstructionsPath, getCopilotRulesDir, getCopilotSkillsDir, getCursorDir, getGitHubDir, getNonConflictingDirs, getNonConflictingFiles, getPackageJson, getRulesDir, getSkillsDir, gradientText, highlight, listDirs, listFiles, printBanner, printDivider, printError, printInfo, printSuccess, printVersion, printWarning, readFile, removeFile, resolveFromCwd, writeFile };
61
+ export { COMMANDS_DIR, COMMAND_EXTENSION, CONFIG_FILE, CURSOR_DIR, REPO_RAW_URL, REPO_REF, REPO_URL, RULES_DIR, RULE_EXTENSION, SKILLS_DIR, SKILL_EXTENSION, TEMPLATE_PATHS, bold, copyDir, deleteFile, dim, dirExists, ensureDir, fileExists, getAgentDir, getAgentRulesDir, getAgentSkillsDir, getAgentWorkflowsDir, getCommandsDir, getConflictingDirs, getConflictingFiles, getCopilotCommandsDir, getCopilotInstructionsDir, getCopilotInstructionsPath, getCopilotRulesDir, getCopilotSkillsDir, getCursorDir, getGitHubDir, getNonConflictingDirs, getNonConflictingFiles, getPackageJson, getRulesDir, getSkillsDir, gradientText, highlight, listDirs, listFiles, printBanner, printDivider, printError, printInfo, printSuccess, printVersion, printWarning, readFile, removeFile, resolveFromCwd, writeFile };
package/dist/index.js CHANGED
@@ -158,6 +158,18 @@ function deleteFile(path) {
158
158
  rmSync(path);
159
159
  }
160
160
  }
161
+ function getAgentDir(cwd = process.cwd()) {
162
+ return join(cwd, ".agent");
163
+ }
164
+ function getAgentRulesDir(cwd = process.cwd()) {
165
+ return join(getAgentDir(cwd), "rules");
166
+ }
167
+ function getAgentWorkflowsDir(cwd = process.cwd()) {
168
+ return join(getAgentDir(cwd), "workflows");
169
+ }
170
+ function getAgentSkillsDir(cwd = process.cwd()) {
171
+ return join(getAgentDir(cwd), "skills");
172
+ }
161
173
 
162
174
  // src/utils/constants.ts
163
175
  var REPO_URL = "github:duongductrong/cursor-kit";
@@ -196,6 +208,10 @@ export {
196
208
  dirExists,
197
209
  ensureDir,
198
210
  fileExists,
211
+ getAgentDir,
212
+ getAgentRulesDir,
213
+ getAgentSkillsDir,
214
+ getAgentWorkflowsDir,
199
215
  getCommandsDir,
200
216
  getConflictingDirs,
201
217
  getConflictingFiles,
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/utils/branding.ts","../src/utils/fs.ts","../src/utils/constants.ts"],"sourcesContent":["import figlet from \"figlet\";\nimport gradient from \"gradient-string\";\nimport pc from \"picocolors\";\n\nconst cursorGradient = gradient([\"#00DC82\", \"#36E4DA\", \"#0047E1\"]);\n\nexport function printBanner(): void {\n const banner = figlet.textSync(\"Cursor Kit\", {\n font: \"ANSI Shadow\",\n horizontalLayout: \"fitted\",\n });\n\n console.log(cursorGradient.multiline(banner));\n console.log();\n console.log(\n pc.dim(\" \") +\n pc.bold(pc.cyan(\"✦\")) +\n pc.dim(\" Supercharge your Cursor IDE with rules & commands\")\n );\n console.log();\n}\n\nexport function printSuccess(message: string): void {\n console.log(pc.green(\"✓\") + pc.dim(\" \") + message);\n}\n\nexport function printError(message: string): void {\n console.log(pc.red(\"✗\") + pc.dim(\" \") + message);\n}\n\nexport function printInfo(message: string): void {\n console.log(pc.cyan(\"ℹ\") + pc.dim(\" \") + message);\n}\n\nexport function printWarning(message: string): void {\n console.log(pc.yellow(\"⚠\") + pc.dim(\" \") + message);\n}\n\nexport function printDivider(): void {\n console.log(pc.dim(\"─\".repeat(50)));\n}\n\nexport function printVersion(version: string): void {\n console.log(\n pc.dim(\" \") + cursorGradient(`v${version}`) + pc.dim(\" • Made with ♥\")\n );\n console.log();\n}\n\nexport function highlight(text: string): string {\n return pc.cyan(text);\n}\n\nexport function dim(text: string): string {\n return pc.dim(text);\n}\n\nexport function bold(text: string): string {\n return pc.bold(text);\n}\n\nexport function gradientText(text: string): string {\n return cursorGradient(text);\n}\n\n","import { existsSync, mkdirSync, readdirSync, readFileSync, writeFileSync, rmSync, statSync, cpSync } from \"node:fs\";\nimport { dirname, join, resolve } from \"node:path\";\n\nexport function ensureDir(path: string): void {\n if (!existsSync(path)) {\n mkdirSync(path, { recursive: true });\n }\n}\n\nexport function fileExists(path: string): boolean {\n return existsSync(path);\n}\n\nexport function dirExists(path: string): boolean {\n return existsSync(path) && statSync(path).isDirectory();\n}\n\nexport function readFile(path: string): string {\n return readFileSync(path, \"utf-8\");\n}\n\nexport function writeFile(path: string, content: string): void {\n ensureDir(dirname(path));\n writeFileSync(path, content, \"utf-8\");\n}\n\nexport function removeFile(path: string): void {\n if (existsSync(path)) {\n rmSync(path, { recursive: true });\n }\n}\n\nexport function copyDir(src: string, dest: string): void {\n cpSync(src, dest, { recursive: true });\n}\n\nexport function listFiles(dir: string, extension?: string): string[] {\n if (!dirExists(dir)) return [];\n \n const files = readdirSync(dir);\n if (extension) {\n return files.filter((f) => f.endsWith(extension));\n }\n return files;\n}\n\nexport function listDirs(dir: string): string[] {\n if (!dirExists(dir)) return [];\n \n return readdirSync(dir).filter((item) => {\n const itemPath = join(dir, item);\n return statSync(itemPath).isDirectory();\n });\n}\n\nexport function getCursorDir(cwd: string = process.cwd()): string {\n return join(cwd, \".cursor\");\n}\n\nexport function getCommandsDir(cwd: string = process.cwd()): string {\n return join(getCursorDir(cwd), \"commands\");\n}\n\nexport function getRulesDir(cwd: string = process.cwd()): string {\n return join(getCursorDir(cwd), \"rules\");\n}\n\nexport function getSkillsDir(cwd: string = process.cwd()): string {\n return join(getCursorDir(cwd), \"skills\");\n}\n\nexport function resolveFromCwd(...paths: string[]): string {\n return resolve(process.cwd(), ...paths);\n}\n\nexport function getPackageJson(cwd: string = process.cwd()): Record<string, unknown> | null {\n const pkgPath = join(cwd, \"package.json\");\n if (!fileExists(pkgPath)) return null;\n \n try {\n return JSON.parse(readFile(pkgPath));\n } catch {\n return null;\n }\n}\n\nexport function getConflictingFiles(dir: string, files: string[]): string[] {\n if (!dirExists(dir)) return [];\n return files.filter((file) => fileExists(join(dir, file)));\n}\n\nexport function getConflictingDirs(dir: string, dirs: string[]): string[] {\n if (!dirExists(dir)) return [];\n return dirs.filter((d) => dirExists(join(dir, d)));\n}\n\nexport function getNonConflictingFiles(dir: string, files: string[]): string[] {\n if (!dirExists(dir)) return files;\n return files.filter((file) => !fileExists(join(dir, file)));\n}\n\nexport function getNonConflictingDirs(dir: string, dirs: string[]): string[] {\n if (!dirExists(dir)) return dirs;\n return dirs.filter((d) => !dirExists(join(dir, d)));\n}\n\nexport function getGitHubDir(cwd: string = process.cwd()): string {\n return join(cwd, \".github\");\n}\n\nexport function getCopilotInstructionsPath(cwd: string = process.cwd()): string {\n return join(getGitHubDir(cwd), \"copilot-instructions.md\");\n}\n\nexport function getCopilotInstructionsDir(cwd: string = process.cwd()): string {\n return join(getGitHubDir(cwd), \"copilot-instructions\");\n}\n\nexport function getCopilotCommandsDir(cwd: string = process.cwd()): string {\n return join(getCopilotInstructionsDir(cwd), \"commands\");\n}\n\nexport function getCopilotRulesDir(cwd: string = process.cwd()): string {\n return join(getCopilotInstructionsDir(cwd), \"rules\");\n}\n\nexport function getCopilotSkillsDir(cwd: string = process.cwd()): string {\n return join(getCopilotInstructionsDir(cwd), \"skills\");\n}\n\nexport function deleteFile(path: string): void {\n if (fileExists(path)) {\n rmSync(path);\n }\n}\n","export const REPO_URL = \"github:duongductrong/cursor-kit\";\nexport const REPO_REF = \"master\";\nexport const REPO_RAW_URL = \"https://raw.githubusercontent.com/duongductrong/cursor-kit/master\";\n\nexport const CURSOR_DIR = \".cursor\";\nexport const COMMANDS_DIR = \"commands\";\nexport const RULES_DIR = \"rules\";\nexport const SKILLS_DIR = \"skills\";\n\nexport const COMMAND_EXTENSION = \".md\";\nexport const RULE_EXTENSION = \".mdc\";\nexport const SKILL_EXTENSION = \".mdc\";\n\nexport const CONFIG_FILE = \".cursorkit\";\n\nexport const TEMPLATE_PATHS = {\n commands: \"templates/commands\",\n rules: \"templates/rules\",\n skills: \"templates/skills\",\n} as const;\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../src/utils/branding.ts","../src/utils/fs.ts","../src/utils/constants.ts"],"sourcesContent":["import figlet from \"figlet\";\nimport gradient from \"gradient-string\";\nimport pc from \"picocolors\";\n\nconst cursorGradient = gradient([\"#00DC82\", \"#36E4DA\", \"#0047E1\"]);\n\nexport function printBanner(): void {\n const banner = figlet.textSync(\"Cursor Kit\", {\n font: \"ANSI Shadow\",\n horizontalLayout: \"fitted\",\n });\n\n console.log(cursorGradient.multiline(banner));\n console.log();\n console.log(\n pc.dim(\" \") +\n pc.bold(pc.cyan(\"✦\")) +\n pc.dim(\" Supercharge your Cursor IDE with rules & commands\")\n );\n console.log();\n}\n\nexport function printSuccess(message: string): void {\n console.log(pc.green(\"✓\") + pc.dim(\" \") + message);\n}\n\nexport function printError(message: string): void {\n console.log(pc.red(\"✗\") + pc.dim(\" \") + message);\n}\n\nexport function printInfo(message: string): void {\n console.log(pc.cyan(\"ℹ\") + pc.dim(\" \") + message);\n}\n\nexport function printWarning(message: string): void {\n console.log(pc.yellow(\"⚠\") + pc.dim(\" \") + message);\n}\n\nexport function printDivider(): void {\n console.log(pc.dim(\"─\".repeat(50)));\n}\n\nexport function printVersion(version: string): void {\n console.log(\n pc.dim(\" \") + cursorGradient(`v${version}`) + pc.dim(\" • Made with ♥\")\n );\n console.log();\n}\n\nexport function highlight(text: string): string {\n return pc.cyan(text);\n}\n\nexport function dim(text: string): string {\n return pc.dim(text);\n}\n\nexport function bold(text: string): string {\n return pc.bold(text);\n}\n\nexport function gradientText(text: string): string {\n return cursorGradient(text);\n}\n\n","import { existsSync, mkdirSync, readdirSync, readFileSync, writeFileSync, rmSync, statSync, cpSync } from \"node:fs\";\nimport { dirname, join, resolve } from \"node:path\";\n\nexport function ensureDir(path: string): void {\n if (!existsSync(path)) {\n mkdirSync(path, { recursive: true });\n }\n}\n\nexport function fileExists(path: string): boolean {\n return existsSync(path);\n}\n\nexport function dirExists(path: string): boolean {\n return existsSync(path) && statSync(path).isDirectory();\n}\n\nexport function readFile(path: string): string {\n return readFileSync(path, \"utf-8\");\n}\n\nexport function writeFile(path: string, content: string): void {\n ensureDir(dirname(path));\n writeFileSync(path, content, \"utf-8\");\n}\n\nexport function removeFile(path: string): void {\n if (existsSync(path)) {\n rmSync(path, { recursive: true });\n }\n}\n\nexport function copyDir(src: string, dest: string): void {\n cpSync(src, dest, { recursive: true });\n}\n\nexport function listFiles(dir: string, extension?: string): string[] {\n if (!dirExists(dir)) return [];\n \n const files = readdirSync(dir);\n if (extension) {\n return files.filter((f) => f.endsWith(extension));\n }\n return files;\n}\n\nexport function listDirs(dir: string): string[] {\n if (!dirExists(dir)) return [];\n \n return readdirSync(dir).filter((item) => {\n const itemPath = join(dir, item);\n return statSync(itemPath).isDirectory();\n });\n}\n\nexport function getCursorDir(cwd: string = process.cwd()): string {\n return join(cwd, \".cursor\");\n}\n\nexport function getCommandsDir(cwd: string = process.cwd()): string {\n return join(getCursorDir(cwd), \"commands\");\n}\n\nexport function getRulesDir(cwd: string = process.cwd()): string {\n return join(getCursorDir(cwd), \"rules\");\n}\n\nexport function getSkillsDir(cwd: string = process.cwd()): string {\n return join(getCursorDir(cwd), \"skills\");\n}\n\nexport function resolveFromCwd(...paths: string[]): string {\n return resolve(process.cwd(), ...paths);\n}\n\nexport function getPackageJson(cwd: string = process.cwd()): Record<string, unknown> | null {\n const pkgPath = join(cwd, \"package.json\");\n if (!fileExists(pkgPath)) return null;\n \n try {\n return JSON.parse(readFile(pkgPath));\n } catch {\n return null;\n }\n}\n\nexport function getConflictingFiles(dir: string, files: string[]): string[] {\n if (!dirExists(dir)) return [];\n return files.filter((file) => fileExists(join(dir, file)));\n}\n\nexport function getConflictingDirs(dir: string, dirs: string[]): string[] {\n if (!dirExists(dir)) return [];\n return dirs.filter((d) => dirExists(join(dir, d)));\n}\n\nexport function getNonConflictingFiles(dir: string, files: string[]): string[] {\n if (!dirExists(dir)) return files;\n return files.filter((file) => !fileExists(join(dir, file)));\n}\n\nexport function getNonConflictingDirs(dir: string, dirs: string[]): string[] {\n if (!dirExists(dir)) return dirs;\n return dirs.filter((d) => !dirExists(join(dir, d)));\n}\n\nexport function getGitHubDir(cwd: string = process.cwd()): string {\n return join(cwd, \".github\");\n}\n\nexport function getCopilotInstructionsPath(cwd: string = process.cwd()): string {\n return join(getGitHubDir(cwd), \"copilot-instructions.md\");\n}\n\nexport function getCopilotInstructionsDir(cwd: string = process.cwd()): string {\n return join(getGitHubDir(cwd), \"copilot-instructions\");\n}\n\nexport function getCopilotCommandsDir(cwd: string = process.cwd()): string {\n return join(getCopilotInstructionsDir(cwd), \"commands\");\n}\n\nexport function getCopilotRulesDir(cwd: string = process.cwd()): string {\n return join(getCopilotInstructionsDir(cwd), \"rules\");\n}\n\nexport function getCopilotSkillsDir(cwd: string = process.cwd()): string {\n return join(getCopilotInstructionsDir(cwd), \"skills\");\n}\n\nexport function deleteFile(path: string): void {\n if (fileExists(path)) {\n rmSync(path);\n }\n}\n\n// Google AntiGravity directory utilities\nexport function getAgentDir(cwd: string = process.cwd()): string {\n return join(cwd, \".agent\");\n}\n\nexport function getAgentRulesDir(cwd: string = process.cwd()): string {\n return join(getAgentDir(cwd), \"rules\");\n}\n\nexport function getAgentWorkflowsDir(cwd: string = process.cwd()): string {\n return join(getAgentDir(cwd), \"workflows\");\n}\n\nexport function getAgentSkillsDir(cwd: string = process.cwd()): string {\n return join(getAgentDir(cwd), \"skills\");\n}\n","export const REPO_URL = \"github:duongductrong/cursor-kit\";\nexport const REPO_REF = \"master\";\nexport const REPO_RAW_URL = \"https://raw.githubusercontent.com/duongductrong/cursor-kit/master\";\n\nexport const CURSOR_DIR = \".cursor\";\nexport const COMMANDS_DIR = \"commands\";\nexport const RULES_DIR = \"rules\";\nexport const SKILLS_DIR = \"skills\";\n\nexport const COMMAND_EXTENSION = \".md\";\nexport const RULE_EXTENSION = \".mdc\";\nexport const SKILL_EXTENSION = \".mdc\";\n\nexport const CONFIG_FILE = \".cursorkit\";\n\nexport const TEMPLATE_PATHS = {\n commands: \"templates/commands\",\n rules: \"templates/rules\",\n skills: \"templates/skills\",\n} as const;\n"],"mappings":"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","names":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "cursor-kit-cli",
3
- "version": "1.3.0",
3
+ "version": "1.4.0-beta",
4
4
  "description": "CLI toolkit to manage Cursor IDE rules and commands",
5
5
  "type": "module",
6
6
  "exports": {