agent-ctx 1.0.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 (115) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +133 -0
  3. package/dist/bin/agent-ctx.d.ts +7 -0
  4. package/dist/bin/agent-ctx.d.ts.map +1 -0
  5. package/dist/bin/agent-ctx.js +8 -0
  6. package/dist/bin/agent-ctx.js.map +1 -0
  7. package/dist/bin/agentrc.d.ts +7 -0
  8. package/dist/bin/agentrc.d.ts.map +1 -0
  9. package/dist/bin/agentrc.js +8 -0
  10. package/dist/bin/agentrc.js.map +1 -0
  11. package/dist/commands/add.d.ts +12 -0
  12. package/dist/commands/add.d.ts.map +1 -0
  13. package/dist/commands/add.js +17 -0
  14. package/dist/commands/add.js.map +1 -0
  15. package/dist/commands/centralize.d.ts +12 -0
  16. package/dist/commands/centralize.d.ts.map +1 -0
  17. package/dist/commands/centralize.js +111 -0
  18. package/dist/commands/centralize.js.map +1 -0
  19. package/dist/commands/clean.d.ts +13 -0
  20. package/dist/commands/clean.d.ts.map +1 -0
  21. package/dist/commands/clean.js +109 -0
  22. package/dist/commands/clean.js.map +1 -0
  23. package/dist/commands/doctor.d.ts +12 -0
  24. package/dist/commands/doctor.d.ts.map +1 -0
  25. package/dist/commands/doctor.js +168 -0
  26. package/dist/commands/doctor.js.map +1 -0
  27. package/dist/commands/init.d.ts +14 -0
  28. package/dist/commands/init.d.ts.map +1 -0
  29. package/dist/commands/init.js +189 -0
  30. package/dist/commands/init.js.map +1 -0
  31. package/dist/commands/update.d.ts +13 -0
  32. package/dist/commands/update.d.ts.map +1 -0
  33. package/dist/commands/update.js +97 -0
  34. package/dist/commands/update.js.map +1 -0
  35. package/dist/index.d.ts +6 -0
  36. package/dist/index.d.ts.map +1 -0
  37. package/dist/index.js +76 -0
  38. package/dist/index.js.map +1 -0
  39. package/dist/lib/bridges.d.ts +35 -0
  40. package/dist/lib/bridges.d.ts.map +1 -0
  41. package/dist/lib/bridges.js +171 -0
  42. package/dist/lib/bridges.js.map +1 -0
  43. package/dist/lib/config.d.ts +31 -0
  44. package/dist/lib/config.d.ts.map +1 -0
  45. package/dist/lib/config.js +75 -0
  46. package/dist/lib/config.js.map +1 -0
  47. package/dist/lib/i18n.d.ts +22 -0
  48. package/dist/lib/i18n.d.ts.map +1 -0
  49. package/dist/lib/i18n.js +170 -0
  50. package/dist/lib/i18n.js.map +1 -0
  51. package/dist/lib/logger.d.ts +55 -0
  52. package/dist/lib/logger.d.ts.map +1 -0
  53. package/dist/lib/logger.js +168 -0
  54. package/dist/lib/logger.js.map +1 -0
  55. package/dist/lib/templates.d.ts +46 -0
  56. package/dist/lib/templates.d.ts.map +1 -0
  57. package/dist/lib/templates.js +88 -0
  58. package/dist/lib/templates.js.map +1 -0
  59. package/dist/lib/utils.d.ts +39 -0
  60. package/dist/lib/utils.d.ts.map +1 -0
  61. package/dist/lib/utils.js +127 -0
  62. package/dist/lib/utils.js.map +1 -0
  63. package/dist/lib/wizard.d.ts +22 -0
  64. package/dist/lib/wizard.d.ts.map +1 -0
  65. package/dist/lib/wizard.js +197 -0
  66. package/dist/lib/wizard.js.map +1 -0
  67. package/package.json +63 -0
  68. package/src/templates/en/base/_agents.md +62 -0
  69. package/src/templates/en/base/_architecture.md +90 -0
  70. package/src/templates/en/base/_bootstrap.md +89 -0
  71. package/src/templates/en/base/_doc.md +65 -0
  72. package/src/templates/en/base/_mcp.md +81 -0
  73. package/src/templates/en/base/_project_state.md +48 -0
  74. package/src/templates/en/base/_rule.md +56 -0
  75. package/src/templates/en/base/_skill.md +60 -0
  76. package/src/templates/en/docs/doc-readme.md +43 -0
  77. package/src/templates/en/docs/mcp-readme.md +21 -0
  78. package/src/templates/en/memory/active_context.md +38 -0
  79. package/src/templates/en/memory/progress.md +35 -0
  80. package/src/templates/en/memory/project_brief.md +34 -0
  81. package/src/templates/en/memory/tech_context.md +44 -0
  82. package/src/templates/en/rules/rule-coding-standards.md +22 -0
  83. package/src/templates/en/skills/skill-agents.md +74 -0
  84. package/src/templates/en/skills/skill-api.md +117 -0
  85. package/src/templates/en/skills/skill-architecture.md +87 -0
  86. package/src/templates/en/skills/skill-generating.md +116 -0
  87. package/src/templates/en/skills/skill-git.md +109 -0
  88. package/src/templates/en/skills/skill-project-state.md +99 -0
  89. package/src/templates/en/skills/skill-react.md +94 -0
  90. package/src/templates/en/skills/skill-rules.md +100 -0
  91. package/src/templates/en/skills/skill-testing.md +139 -0
  92. package/src/templates/es/base/_agents.md +62 -0
  93. package/src/templates/es/base/_architecture.md +90 -0
  94. package/src/templates/es/base/_bootstrap.md +89 -0
  95. package/src/templates/es/base/_doc.md +65 -0
  96. package/src/templates/es/base/_mcp.md +81 -0
  97. package/src/templates/es/base/_project_state.md +48 -0
  98. package/src/templates/es/base/_rule.md +56 -0
  99. package/src/templates/es/base/_skill.md +60 -0
  100. package/src/templates/es/docs/doc-readme.md +43 -0
  101. package/src/templates/es/docs/mcp-readme.md +21 -0
  102. package/src/templates/es/memory/active_context.md +38 -0
  103. package/src/templates/es/memory/progress.md +35 -0
  104. package/src/templates/es/memory/project_brief.md +34 -0
  105. package/src/templates/es/memory/tech_context.md +44 -0
  106. package/src/templates/es/rules/rule-coding-standards.md +22 -0
  107. package/src/templates/es/skills/skill-agents.md +74 -0
  108. package/src/templates/es/skills/skill-api.md +117 -0
  109. package/src/templates/es/skills/skill-architecture.md +87 -0
  110. package/src/templates/es/skills/skill-generating.md +116 -0
  111. package/src/templates/es/skills/skill-git.md +108 -0
  112. package/src/templates/es/skills/skill-project-state.md +99 -0
  113. package/src/templates/es/skills/skill-react.md +94 -0
  114. package/src/templates/es/skills/skill-rules.md +100 -0
  115. package/src/templates/es/skills/skill-testing.md +139 -0
@@ -0,0 +1,168 @@
1
+ /**
2
+ * Logger - Utilidades de output con colores y soporte quiet
3
+ */
4
+ import chalk from 'chalk';
5
+ import ora from 'ora';
6
+ import figlet from 'figlet';
7
+ // Estado global del logger
8
+ let quietMode = false;
9
+ let currentSpinner = null;
10
+ /**
11
+ * Configura el modo quiet
12
+ */
13
+ export function setQuietMode(enabled) {
14
+ quietMode = enabled;
15
+ }
16
+ /**
17
+ * Verifica si está en modo quiet
18
+ */
19
+ export function isQuiet() {
20
+ return quietMode;
21
+ }
22
+ export const logger = {
23
+ // === Mensajes básicos ===
24
+ info: (msg) => {
25
+ if (!quietMode)
26
+ console.log(chalk.blue('› ') + msg);
27
+ },
28
+ success: (msg) => {
29
+ if (!quietMode)
30
+ console.log(chalk.green('✔ ') + msg);
31
+ },
32
+ warning: (msg) => {
33
+ // Warnings siempre se muestran
34
+ console.log(chalk.yellow('⚠ ') + chalk.yellow(msg));
35
+ },
36
+ error: (msg) => {
37
+ // Errores siempre se muestran
38
+ console.log(chalk.red('✖ ') + chalk.red(msg));
39
+ },
40
+ skip: (msg) => {
41
+ if (!quietMode)
42
+ console.log(chalk.gray('› ') + chalk.gray(msg));
43
+ },
44
+ // === Dry-run ===
45
+ dryRun: (msg) => {
46
+ if (!quietMode)
47
+ console.log(chalk.cyan('[DRY] ') + chalk.cyan(msg));
48
+ },
49
+ // === Headers decorativos ===
50
+ header: (title) => {
51
+ if (quietMode)
52
+ return;
53
+ const line = '─'.repeat(Math.max(40, title.length + 4));
54
+ console.log(chalk.blue(title));
55
+ console.log(chalk.gray(line));
56
+ },
57
+ logo: () => {
58
+ if (quietMode)
59
+ return;
60
+ console.log(chalk.blue(figlet.textSync('agent-ctx', {
61
+ font: 'Standard',
62
+ horizontalLayout: 'default',
63
+ verticalLayout: 'default'
64
+ })));
65
+ },
66
+ // === Secciones ===
67
+ section: (title) => {
68
+ if (!quietMode)
69
+ console.log('\n' + chalk.blue(`${title}`));
70
+ },
71
+ // === Línea separadora ===
72
+ divider: () => {
73
+ if (!quietMode)
74
+ console.log(chalk.gray('─'.repeat(50)));
75
+ },
76
+ // === Items de lista ===
77
+ item: (text, indent = 1) => {
78
+ if (quietMode)
79
+ return;
80
+ const padding = ' '.repeat(indent);
81
+ console.log(padding + chalk.gray('• ') + text);
82
+ },
83
+ // === Box de resumen ===
84
+ summary: (title, isSuccess = true) => {
85
+ if (quietMode)
86
+ return;
87
+ const color = isSuccess ? chalk.green : chalk.cyan;
88
+ const symbol = isSuccess ? '✔' : 'ℹ';
89
+ console.log('');
90
+ console.log(color(`${symbol} ${title}`));
91
+ },
92
+ // === Saltos de línea ===
93
+ newline: () => {
94
+ if (!quietMode)
95
+ console.log('');
96
+ },
97
+ // === Raw output (respeta quiet) ===
98
+ log: (msg) => {
99
+ if (!quietMode)
100
+ console.log(msg);
101
+ },
102
+ // === Clear console ===
103
+ clear: () => {
104
+ if (!quietMode) {
105
+ process.stdout.write('\x1Bc');
106
+ }
107
+ },
108
+ // === Box decorativo simplificado ===
109
+ box: (lines, color = 'blue') => {
110
+ if (quietMode)
111
+ return;
112
+ const colorFn = color === 'green' ? chalk.green : color === 'cyan' ? chalk.cyan : chalk.blue;
113
+ console.log('');
114
+ for (const line of lines) {
115
+ console.log(colorFn(` ${line}`));
116
+ }
117
+ console.log('');
118
+ }
119
+ };
120
+ // === Spinners ===
121
+ /**
122
+ * Crea un spinner con mensaje
123
+ */
124
+ export function startSpinner(text) {
125
+ if (quietMode) {
126
+ return {
127
+ succeed: () => { },
128
+ fail: () => { },
129
+ warn: () => { },
130
+ stop: () => { },
131
+ text: ''
132
+ };
133
+ }
134
+ currentSpinner = ora({
135
+ text,
136
+ color: 'blue',
137
+ spinner: 'dots'
138
+ }).start();
139
+ return currentSpinner;
140
+ }
141
+ /**
142
+ * Detiene el spinner actual con éxito
143
+ */
144
+ export function succeedSpinner(text) {
145
+ if (currentSpinner && !quietMode) {
146
+ currentSpinner.succeed(text);
147
+ currentSpinner = null;
148
+ }
149
+ }
150
+ /**
151
+ * Detiene el spinner actual con error
152
+ */
153
+ export function failSpinner(text) {
154
+ if (currentSpinner) {
155
+ currentSpinner.fail(text);
156
+ currentSpinner = null;
157
+ }
158
+ }
159
+ /**
160
+ * Detiene el spinner actual con warning
161
+ */
162
+ export function warnSpinner(text) {
163
+ if (currentSpinner) {
164
+ currentSpinner.warn(text);
165
+ currentSpinner = null;
166
+ }
167
+ }
168
+ //# sourceMappingURL=logger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/lib/logger.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,46 @@
1
+ /**
2
+ * @fileoverview Manejo de templates embebidos para generación de archivos
3
+ * @module lib/templates
4
+ */
5
+ import { type FileOperationOptions } from './utils.js';
6
+ import { type SupportedLanguage } from './i18n.js';
7
+ export interface TemplateMapping {
8
+ dest: string;
9
+ isRoot?: boolean;
10
+ name?: string;
11
+ }
12
+ /**
13
+ * Obtiene la ruta absoluta a un template, respetando el idioma actual
14
+ */
15
+ export declare function getTemplatePath(name: string, lang?: SupportedLanguage): string;
16
+ /**
17
+ * Lee el contenido de un template
18
+ */
19
+ export declare function readTemplate(name: string, lang?: SupportedLanguage): string;
20
+ /**
21
+ * Copia un template a la ruta de destino
22
+ */
23
+ export declare function copyTemplate(name: string, destPath: string, options?: FileOperationOptions): boolean;
24
+ /**
25
+ * Mapeo de templates disponibles a sus destinos
26
+ */
27
+ export declare const TEMPLATE_MAPPINGS: Record<string, TemplateMapping>;
28
+ /**
29
+ * Template opcional para bootstrap de IA (prompt de personalización)
30
+ */
31
+ export declare const BOOTSTRAP_TEMPLATE: TemplateMapping;
32
+ /**
33
+ * Templates de skills que se instalan siempre (estructura de carpetas con SKILL.md)
34
+ * Los skills base ayudan al agente a crear y mantener la estructura del proyecto
35
+ */
36
+ export declare const BASE_SKILLS: Record<string, TemplateMapping>;
37
+ /**
38
+ * Templates de skills opcionales que pueden instalarse (estructura de carpetas con SKILL.md)
39
+ */
40
+ export declare const OPTIONAL_SKILLS: Record<string, TemplateMapping>;
41
+ /**
42
+ * Templates de Memory Bank para persistencia de contexto
43
+ * Basado en el patrón Memory Bank de Cline/Roo Code
44
+ */
45
+ export declare const MEMORY_BANK: Record<string, TemplateMapping>;
46
+ //# sourceMappingURL=templates.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"templates.d.ts","sourceRoot":"","sources":["../../src/lib/templates.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,OAAO,EAAY,KAAK,oBAAoB,EAAE,MAAM,YAAY,CAAC;AACjE,OAAO,EAAe,KAAK,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAYhE,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,iBAAiB,GAAG,MAAM,CAG9E;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,iBAAiB,GAAG,MAAM,CAG3E;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,GAAE,oBAAyB,GAAG,OAAO,CAGxG;AAED;;GAEG;AACH,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAO7D,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,kBAAkB,EAAE,eAIhC,CAAC;AAGF;;;GAGG;AACH,eAAO,MAAM,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAMvD,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAK3D,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAKvD,CAAC"}
@@ -0,0 +1,88 @@
1
+ /**
2
+ * @fileoverview Manejo de templates embebidos para generación de archivos
3
+ * @module lib/templates
4
+ */
5
+ import { readFileSync, existsSync } from 'fs';
6
+ import { fileURLToPath } from 'url';
7
+ import { dirname, join } from 'path';
8
+ import { copyFile } from './utils.js';
9
+ import { getLanguage } from './i18n.js';
10
+ const __filename = fileURLToPath(import.meta.url);
11
+ const __dirname = dirname(__filename);
12
+ // Templates are always in src/templates, whether code runs from src/ or dist/
13
+ // From dist/lib/, we need to go ../../src/templates
14
+ // From src/lib/, we need to go ../templates
15
+ const srcTemplates = join(__dirname, '../../src/templates');
16
+ const localTemplates = join(__dirname, '../templates');
17
+ const TEMPLATES_DIR = existsSync(srcTemplates) ? srcTemplates : localTemplates;
18
+ /**
19
+ * Obtiene la ruta absoluta a un template, respetando el idioma actual
20
+ */
21
+ export function getTemplatePath(name, lang) {
22
+ const language = lang || getLanguage();
23
+ return join(TEMPLATES_DIR, language, name);
24
+ }
25
+ /**
26
+ * Lee el contenido de un template
27
+ */
28
+ export function readTemplate(name, lang) {
29
+ const path = getTemplatePath(name, lang);
30
+ return readFileSync(path, 'utf-8');
31
+ }
32
+ /**
33
+ * Copia un template a la ruta de destino
34
+ */
35
+ export function copyTemplate(name, destPath, options = {}) {
36
+ const srcPath = getTemplatePath(name);
37
+ return copyFile(srcPath, destPath, options);
38
+ }
39
+ /**
40
+ * Mapeo de templates disponibles a sus destinos
41
+ */
42
+ export const TEMPLATE_MAPPINGS = {
43
+ 'base/_agents.md': { dest: 'AGENTS.md', isRoot: true },
44
+ 'base/_architecture.md': { dest: '.context/architecture.md' },
45
+ 'base/_project_state.md': { dest: '.context/project_state.md' },
46
+ 'rules/rule-coding-standards.md': { dest: '.context/rules/coding-standards.md' },
47
+ 'docs/doc-readme.md': { dest: '.context/docs/README.md' },
48
+ 'docs/mcp-readme.md': { dest: '.context/mcp/README.md' }
49
+ };
50
+ /**
51
+ * Template opcional para bootstrap de IA (prompt de personalización)
52
+ */
53
+ export const BOOTSTRAP_TEMPLATE = {
54
+ dest: 'AI_BOOTSTRAP.md',
55
+ isRoot: true,
56
+ name: 'AI Bootstrap Prompt'
57
+ };
58
+ /**
59
+ * Templates de skills que se instalan siempre (estructura de carpetas con SKILL.md)
60
+ * Los skills base ayudan al agente a crear y mantener la estructura del proyecto
61
+ */
62
+ export const BASE_SKILLS = {
63
+ 'skills/skill-generating.md': { dest: '.context/skills/generating-skills/SKILL.md', name: 'Generating Skills' },
64
+ 'skills/skill-agents.md': { dest: '.context/skills/managing-agents/SKILL.md', name: 'Managing Agents' },
65
+ 'skills/skill-architecture.md': { dest: '.context/skills/documenting-architecture/SKILL.md', name: 'Documenting Architecture' },
66
+ 'skills/skill-rules.md': { dest: '.context/skills/creating-rules/SKILL.md', name: 'Creating Rules' },
67
+ 'skills/skill-project-state.md': { dest: '.context/skills/tracking-project-state/SKILL.md', name: 'Tracking Project State' }
68
+ };
69
+ /**
70
+ * Templates de skills opcionales que pueden instalarse (estructura de carpetas con SKILL.md)
71
+ */
72
+ export const OPTIONAL_SKILLS = {
73
+ 'skills/skill-react.md': { dest: '.context/skills/react-patterns/SKILL.md', name: 'React Patterns' },
74
+ 'skills/skill-api.md': { dest: '.context/skills/api-design/SKILL.md', name: 'API Design' },
75
+ 'skills/skill-testing.md': { dest: '.context/skills/testing-practices/SKILL.md', name: 'Testing Practices' },
76
+ 'skills/skill-git.md': { dest: '.context/skills/git-workflow/SKILL.md', name: 'Git Workflow' }
77
+ };
78
+ /**
79
+ * Templates de Memory Bank para persistencia de contexto
80
+ * Basado en el patrón Memory Bank de Cline/Roo Code
81
+ */
82
+ export const MEMORY_BANK = {
83
+ 'memory/project_brief.md': { dest: '.context/memory/project_brief.md', name: 'Project Brief' },
84
+ 'memory/tech_context.md': { dest: '.context/memory/tech_context.md', name: 'Tech Context' },
85
+ 'memory/active_context.md': { dest: '.context/memory/active_context.md', name: 'Active Context' },
86
+ 'memory/progress.md': { dest: '.context/memory/progress.md', name: 'Progress' }
87
+ };
88
+ //# sourceMappingURL=templates.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"templates.js","sourceRoot":"","sources":["../../src/lib/templates.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,39 @@
1
+ /**
2
+ * @fileoverview Utilidades comunes para operaciones de archivos y directorios
3
+ * @module lib/utils
4
+ */
5
+ export interface FileOperationOptions {
6
+ force?: boolean;
7
+ dryRun?: boolean;
8
+ silent?: boolean;
9
+ backup?: boolean;
10
+ }
11
+ /**
12
+ * Resuelve y valida que un directorio exista
13
+ */
14
+ export declare function resolveDirectory(dir?: string): string;
15
+ /**
16
+ * Valida que no estemos en la raíz del sistema
17
+ */
18
+ export declare function validateNotRoot(dir: string): boolean;
19
+ /**
20
+ * Crea un directorio si no existe
21
+ */
22
+ export declare function ensureDir(dir: string, options?: FileOperationOptions): boolean;
23
+ /**
24
+ * Copia un archivo con opciones de force y backup
25
+ */
26
+ export declare function copyFile(src: string, dest: string, options?: FileOperationOptions): boolean;
27
+ /**
28
+ * Escribe contenido a un archivo con opciones de force y backup
29
+ */
30
+ export declare function writeFile(path: string, content: string, options?: FileOperationOptions): boolean;
31
+ /**
32
+ * Lista de carpetas de editores conocidas que pueden contener skills/rules
33
+ */
34
+ export declare const EDITOR_FOLDERS: string[];
35
+ /**
36
+ * Lista blanca de carpetas a preservar durante limpieza
37
+ */
38
+ export declare const WHITELIST: string[];
39
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/lib/utils.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAMH,MAAM,WAAW,oBAAoB;IACnC,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,GAAE,MAAY,GAAG,MAAM,CAQ1D;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAcpD;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,GAAE,oBAAyB,GAAG,OAAO,CAclF;AAED;;GAEG;AACH,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,GAAE,oBAAyB,GAAG,OAAO,CAkC/F;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,GAAE,oBAAyB,GAAG,OAAO,CAuBpG;AAED;;GAEG;AACH,eAAO,MAAM,cAAc,EAAE,MAAM,EAOlC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,SAAS,EAAE,MAAM,EAAoC,CAAC"}
@@ -0,0 +1,127 @@
1
+ /**
2
+ * @fileoverview Utilidades comunes para operaciones de archivos y directorios
3
+ * @module lib/utils
4
+ */
5
+ import { existsSync, mkdirSync, copyFileSync, writeFileSync } from 'fs';
6
+ import { resolve, basename } from 'path';
7
+ import { logger } from './logger.js';
8
+ /**
9
+ * Resuelve y valida que un directorio exista
10
+ */
11
+ export function resolveDirectory(dir = '.') {
12
+ const resolved = resolve(dir);
13
+ if (!existsSync(resolved)) {
14
+ throw new Error(`El directorio '${dir}' no existe.`);
15
+ }
16
+ return resolved;
17
+ }
18
+ /**
19
+ * Valida que no estemos en la raíz del sistema
20
+ */
21
+ export function validateNotRoot(dir) {
22
+ const normalized = resolve(dir);
23
+ // Windows: C:\, D:\, etc.
24
+ if (/^[A-Z]:\\?$/i.test(normalized)) {
25
+ throw new Error('No se puede ejecutar en la raíz del sistema.');
26
+ }
27
+ // Unix: /
28
+ if (normalized === '/') {
29
+ throw new Error('No se puede ejecutar en la raíz del sistema.');
30
+ }
31
+ return true;
32
+ }
33
+ /**
34
+ * Crea un directorio si no existe
35
+ */
36
+ export function ensureDir(dir, options = {}) {
37
+ const { dryRun = false, silent = false } = options;
38
+ if (existsSync(dir)) {
39
+ return false;
40
+ }
41
+ if (dryRun) {
42
+ if (!silent)
43
+ logger.dryRun(`Create dir: ${dir}`);
44
+ return true;
45
+ }
46
+ mkdirSync(dir, { recursive: true });
47
+ return true;
48
+ }
49
+ /**
50
+ * Copia un archivo con opciones de force y backup
51
+ */
52
+ export function copyFile(src, dest, options = {}) {
53
+ const { force = false, dryRun = false, silent = false, backup = true } = options;
54
+ const name = basename(dest);
55
+ if (!existsSync(src)) {
56
+ logger.warning(`Template not found: ${src}`);
57
+ return false;
58
+ }
59
+ if (existsSync(dest) && !force) {
60
+ if (!silent)
61
+ logger.item(`${name} (exists, skipped)`);
62
+ return false;
63
+ }
64
+ if (dryRun) {
65
+ if (!silent)
66
+ logger.dryRun(`Copy: ${name}`);
67
+ return true;
68
+ }
69
+ // Create parent directories if needed (for skill folder structure)
70
+ const parentDir = dest.substring(0, dest.lastIndexOf('/'));
71
+ if (parentDir && !existsSync(parentDir)) {
72
+ mkdirSync(parentDir, { recursive: true });
73
+ }
74
+ // Crear backup si existe y hay force, y los backups están habilitados
75
+ if (existsSync(dest) && force && backup) {
76
+ copyFileSync(dest, `${dest}.bak`);
77
+ if (!silent)
78
+ logger.item(`${name}.bak (backup created)`);
79
+ }
80
+ copyFileSync(src, dest);
81
+ if (!silent)
82
+ logger.item(`+ ${name}`);
83
+ return true;
84
+ }
85
+ /**
86
+ * Escribe contenido a un archivo con opciones de force y backup
87
+ */
88
+ export function writeFile(path, content, options = {}) {
89
+ const { force = false, dryRun = false, silent = false, backup = true } = options;
90
+ const name = basename(path);
91
+ if (existsSync(path) && !force) {
92
+ if (!silent)
93
+ logger.item(`${name} (exists, skipped)`);
94
+ return false;
95
+ }
96
+ if (dryRun) {
97
+ if (!silent)
98
+ logger.dryRun(`Create: ${name}`);
99
+ return true;
100
+ }
101
+ // Crear backup si existe y hay force, y los backups están habilitados
102
+ if (existsSync(path) && force && backup) {
103
+ copyFileSync(path, `${path}.bak`);
104
+ if (!silent)
105
+ logger.item(`${name}.bak (backup created)`);
106
+ }
107
+ writeFileSync(path, content, 'utf-8');
108
+ if (!silent)
109
+ logger.item(`+ ${name}`);
110
+ return true;
111
+ }
112
+ /**
113
+ * Lista de carpetas de editores conocidas que pueden contener skills/rules
114
+ */
115
+ export const EDITOR_FOLDERS = [
116
+ '.agent', '.agents', '.cursor', '.windsurf', '.gemini', '.cline',
117
+ '.vscode', '.codebuddy', '.claude', '.adal', '.augment', '.codex',
118
+ '.commandcode', '.continue', '.copilot', '.factory', '.junie',
119
+ '.kilocode', '.kiro', '.kode', '.mcpjam', '.moltbot', '.mux',
120
+ '.neovate', '.openclaude', '.openhands', '.pochi', '.qoder',
121
+ '.qwen', '.roo', '.trae-cn', '.trae', '.vibe', '.zencoder'
122
+ ];
123
+ /**
124
+ * Lista blanca de carpetas a preservar durante limpieza
125
+ */
126
+ export const WHITELIST = ['.context', '.git', '.github'];
127
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/lib/utils.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ /**
2
+ * @fileoverview Wizard interactivo para configuración de proyectos
3
+ * @module lib/wizard
4
+ */
5
+ type ProjectType = 'frontend' | 'backend' | 'fullstack' | 'library' | 'cli';
6
+ export interface ProjectConfig {
7
+ type: ProjectType;
8
+ framework: string;
9
+ typescript?: boolean;
10
+ styling?: string;
11
+ features?: string[];
12
+ }
13
+ /**
14
+ * Ejecuta el wizard interactivo para configurar el proyecto
15
+ */
16
+ export declare function runWizard(): Promise<ProjectConfig>;
17
+ /**
18
+ * Genera contenido de architecture.md basado en la configuración
19
+ */
20
+ export declare function generateArchitecture(config: ProjectConfig): string;
21
+ export {};
22
+ //# sourceMappingURL=wizard.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wizard.d.ts","sourceRoot":"","sources":["../../src/lib/wizard.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,KAAK,WAAW,GAAG,UAAU,GAAG,SAAS,GAAG,WAAW,GAAG,SAAS,GAAG,KAAK,CAAC;AAE5E,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,WAAW,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;CACrB;AA4CD;;GAEG;AACH,wBAAsB,SAAS,IAAI,OAAO,CAAC,aAAa,CAAC,CAgExD;AAuBD;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,aAAa,GAAG,MAAM,CAiElE"}