@nexus-framework/cli 0.2.0 → 0.2.1

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 (57) hide show
  1. package/dist/cli.js +5 -3
  2. package/dist/cli.js.map +1 -1
  3. package/dist/commands/adopt.d.ts +4 -2
  4. package/dist/commands/adopt.d.ts.map +1 -1
  5. package/dist/commands/adopt.js +47 -8
  6. package/dist/commands/adopt.js.map +1 -1
  7. package/dist/commands/init.d.ts +1 -0
  8. package/dist/commands/init.d.ts.map +1 -1
  9. package/dist/commands/init.js +1 -1
  10. package/dist/commands/init.js.map +1 -1
  11. package/dist/generators/docs.d.ts +10 -1
  12. package/dist/generators/docs.d.ts.map +1 -1
  13. package/dist/generators/docs.js +40 -65
  14. package/dist/generators/docs.js.map +1 -1
  15. package/dist/generators/index.d.ts +2 -1
  16. package/dist/generators/index.d.ts.map +1 -1
  17. package/dist/generators/index.js +47 -7
  18. package/dist/generators/index.js.map +1 -1
  19. package/dist/generators/spring-boot.d.ts +12 -0
  20. package/dist/generators/spring-boot.d.ts.map +1 -0
  21. package/dist/generators/spring-boot.js +220 -0
  22. package/dist/generators/spring-boot.js.map +1 -0
  23. package/dist/generators/structure.d.ts +1 -0
  24. package/dist/generators/structure.d.ts.map +1 -1
  25. package/dist/generators/structure.js +90 -24
  26. package/dist/generators/structure.js.map +1 -1
  27. package/dist/prompts/adoption.d.ts +35 -0
  28. package/dist/prompts/adoption.d.ts.map +1 -0
  29. package/dist/prompts/adoption.js +153 -0
  30. package/dist/prompts/adoption.js.map +1 -0
  31. package/dist/prompts/frameworks.d.ts +5 -1
  32. package/dist/prompts/frameworks.d.ts.map +1 -1
  33. package/dist/prompts/frameworks.js +48 -0
  34. package/dist/prompts/frameworks.js.map +1 -1
  35. package/dist/prompts/index.d.ts +2 -1
  36. package/dist/prompts/index.d.ts.map +1 -1
  37. package/dist/prompts/index.js +15 -7
  38. package/dist/prompts/index.js.map +1 -1
  39. package/dist/prompts/project-type.d.ts.map +1 -1
  40. package/dist/prompts/project-type.js +6 -1
  41. package/dist/prompts/project-type.js.map +1 -1
  42. package/dist/types/config.d.ts +6 -2
  43. package/dist/types/config.d.ts.map +1 -1
  44. package/dist/utils/file-system.d.ts.map +1 -1
  45. package/dist/utils/file-system.js +4 -2
  46. package/dist/utils/file-system.js.map +1 -1
  47. package/dist/utils/logger.d.ts +2 -2
  48. package/dist/utils/logger.d.ts.map +1 -1
  49. package/dist/utils/logger.js +49 -36
  50. package/dist/utils/logger.js.map +1 -1
  51. package/dist/utils/project-detector.d.ts +20 -4
  52. package/dist/utils/project-detector.d.ts.map +1 -1
  53. package/dist/utils/project-detector.js +156 -27
  54. package/dist/utils/project-detector.js.map +1 -1
  55. package/dist/version.d.ts +1 -1
  56. package/dist/version.js +1 -1
  57. package/package.json +3 -1
@@ -10,6 +10,24 @@ export async function promptFramework(projectType) {
10
10
  // API projects don't need a frontend framework — we return a sentinel
11
11
  return 'nextjs'; // will be ignored; backend prompt handles this
12
12
  }
13
+ if (projectType === 'ui-library') {
14
+ // UI library projects use React + Vite as the base
15
+ return select({
16
+ message: 'Which UI framework for your component library?',
17
+ choices: [
18
+ {
19
+ value: 'react-vite',
20
+ name: '⚛️ React + Vite + Storybook',
21
+ description: 'Build, document, and publish React component library with Storybook.',
22
+ },
23
+ {
24
+ value: 'sveltekit',
25
+ name: '🔥 Svelte + SvelteKit',
26
+ description: 'Build Svelte component library with SvelteKit for documentation.',
27
+ },
28
+ ],
29
+ });
30
+ }
13
31
  return select({
14
32
  message: 'Which frontend framework?',
15
33
  choices: [
@@ -41,4 +59,34 @@ export async function promptFramework(projectType) {
41
59
  ],
42
60
  });
43
61
  }
62
+ /**
63
+ * Prompt for backend framework (for API projects)
64
+ */
65
+ export async function promptBackendFramework() {
66
+ return select({
67
+ message: 'Which backend framework?',
68
+ choices: [
69
+ {
70
+ value: 'spring-boot',
71
+ name: '☕ Spring Boot',
72
+ description: 'Java/Kotlin enterprise framework with auto-configuration and production-ready features.',
73
+ },
74
+ {
75
+ value: 'express',
76
+ name: '🚂 Express.js',
77
+ description: 'Minimalist Node.js framework. Most popular, highly flexible.',
78
+ },
79
+ {
80
+ value: 'fastify',
81
+ name: '⚡ Fastify',
82
+ description: 'Fast Node.js framework with schema validation and TypeScript support.',
83
+ },
84
+ {
85
+ value: 'nestjs',
86
+ name: '🐈 NestJS',
87
+ description: 'TypeScript-first Node.js framework inspired by Angular. Great for large teams.',
88
+ },
89
+ ],
90
+ });
91
+ }
44
92
  //# sourceMappingURL=frameworks.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"frameworks.js","sourceRoot":"","sources":["../../src/prompts/frameworks.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAI3C,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,WAAwB;IAC5D,IAAI,WAAW,KAAK,KAAK,EAAE,CAAC;QAC1B,sEAAsE;QACtE,OAAO,QAAQ,CAAC,CAAC,+CAA+C;IAClE,CAAC;IAED,OAAO,MAAM,CAAoB;QAC/B,OAAO,EAAE,2BAA2B;QACpC,OAAO,EAAE;YACP;gBACE,KAAK,EAAE,QAAQ;gBACf,IAAI,EAAE,2BAA2B;gBACjC,WAAW,EAAE,yEAAyE;aACvF;YACD;gBACE,KAAK,EAAE,YAAY;gBACnB,IAAI,EAAE,gBAAgB;gBACtB,WAAW,EAAE,uEAAuE;aACrF;YACD;gBACE,KAAK,EAAE,WAAW;gBAClB,IAAI,EAAE,cAAc;gBACpB,WAAW,EAAE,mEAAmE;aACjF;YACD;gBACE,KAAK,EAAE,MAAM;gBACb,IAAI,EAAE,WAAW;gBACjB,WAAW,EAAE,iEAAiE;aAC/E;YACD;gBACE,KAAK,EAAE,OAAO;gBACd,IAAI,EAAE,UAAU;gBAChB,WAAW,EAAE,2EAA2E;aACzF;SACF;KACF,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"frameworks.js","sourceRoot":"","sources":["../../src/prompts/frameworks.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAI3C,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,WAAwB;IAC5D,IAAI,WAAW,KAAK,KAAK,EAAE,CAAC;QAC1B,sEAAsE;QACtE,OAAO,QAAQ,CAAC,CAAC,+CAA+C;IAClE,CAAC;IAED,IAAI,WAAW,KAAK,YAAY,EAAE,CAAC;QACjC,mDAAmD;QACnD,OAAO,MAAM,CAAoB;YAC/B,OAAO,EAAE,gDAAgD;YACzD,OAAO,EAAE;gBACP;oBACE,KAAK,EAAE,YAAY;oBACnB,IAAI,EAAE,8BAA8B;oBACpC,WAAW,EAAE,sEAAsE;iBACpF;gBACD;oBACE,KAAK,EAAE,WAAW;oBAClB,IAAI,EAAE,uBAAuB;oBAC7B,WAAW,EAAE,kEAAkE;iBAChF;aACF;SACF,CAAC,CAAC;IACL,CAAC;IAED,OAAO,MAAM,CAAoB;QAC/B,OAAO,EAAE,2BAA2B;QACpC,OAAO,EAAE;YACP;gBACE,KAAK,EAAE,QAAQ;gBACf,IAAI,EAAE,2BAA2B;gBACjC,WAAW,EAAE,yEAAyE;aACvF;YACD;gBACE,KAAK,EAAE,YAAY;gBACnB,IAAI,EAAE,gBAAgB;gBACtB,WAAW,EAAE,uEAAuE;aACrF;YACD;gBACE,KAAK,EAAE,WAAW;gBAClB,IAAI,EAAE,cAAc;gBACpB,WAAW,EAAE,mEAAmE;aACjF;YACD;gBACE,KAAK,EAAE,MAAM;gBACb,IAAI,EAAE,WAAW;gBACjB,WAAW,EAAE,iEAAiE;aAC/E;YACD;gBACE,KAAK,EAAE,OAAO;gBACd,IAAI,EAAE,UAAU;gBAChB,WAAW,EAAE,2EAA2E;aACzF;SACF;KACF,CAAC,CAAC;AACL,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,sBAAsB;IAC1C,OAAO,MAAM,CAAmB;QAC9B,OAAO,EAAE,0BAA0B;QACnC,OAAO,EAAE;YACP;gBACE,KAAK,EAAE,aAAa;gBACpB,IAAI,EAAE,eAAe;gBACrB,WAAW,EAAE,yFAAyF;aACvG;YACD;gBACE,KAAK,EAAE,SAAS;gBAChB,IAAI,EAAE,eAAe;gBACrB,WAAW,EAAE,8DAA8D;aAC5E;YACD;gBACE,KAAK,EAAE,SAAS;gBAChB,IAAI,EAAE,WAAW;gBACjB,WAAW,EAAE,uEAAuE;aACrF;YACD;gBACE,KAAK,EAAE,QAAQ;gBACf,IAAI,EAAE,WAAW;gBACjB,WAAW,EAAE,gFAAgF;aAC9F;SACF;KACF,CAAC,CAAC;AACL,CAAC"}
@@ -11,6 +11,7 @@ import type { NexusConfig } from '../types/config.js';
11
11
  * slug ("todo-list-app") automatically for the folder & package.json name.
12
12
  *
13
13
  * @param initialName - Optional project name passed via CLI argument
14
+ * @param localOnly - Optional flag to set local-only mode (skip prompt)
14
15
  */
15
- export declare function runPrompts(initialName?: string): Promise<NexusConfig>;
16
+ export declare function runPrompts(initialName?: string, localOnly?: boolean): Promise<NexusConfig>;
16
17
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/prompts/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAWtD;;;;;;;GAOG;AACH,wBAAsB,UAAU,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CA2D3E"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/prompts/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAWtD;;;;;;;;GAQG;AACH,wBAAsB,UAAU,CAAC,WAAW,CAAC,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,WAAW,CAAC,CAmEhG"}
@@ -8,7 +8,7 @@ import { detectPackageManager } from '../utils/package-manager.js';
8
8
  import { validateProjectName, toSlug, toDisplayName } from '../utils/validator.js';
9
9
  import { promptDataStrategy } from './data-strategy.js';
10
10
  import { promptFeatures } from './features.js';
11
- import { promptFramework } from './frameworks.js';
11
+ import { promptFramework, promptBackendFramework } from './frameworks.js';
12
12
  import { promptPatterns } from './patterns.js';
13
13
  import { promptPersona } from './persona.js';
14
14
  import { promptProjectType } from './project-type.js';
@@ -19,8 +19,9 @@ import { promptProjectType } from './project-type.js';
19
19
  * slug ("todo-list-app") automatically for the folder & package.json name.
20
20
  *
21
21
  * @param initialName - Optional project name passed via CLI argument
22
+ * @param localOnly - Optional flag to set local-only mode (skip prompt)
22
23
  */
23
- export async function runPrompts(initialName) {
24
+ export async function runPrompts(initialName, localOnly) {
24
25
  // 1. Project name (free-text)
25
26
  let rawName;
26
27
  if (!initialName) {
@@ -44,12 +45,18 @@ export async function runPrompts(initialName) {
44
45
  const displayName = toDisplayName(rawName);
45
46
  // 2. Project type
46
47
  const projectType = await promptProjectType();
47
- // 3. Data strategy
48
- const dataStrategy = await promptDataStrategy();
49
- // 4. Application patterns
50
- const appPatterns = await promptPatterns();
48
+ // 3. Data strategy (skip for ui-library)
49
+ const dataStrategy = projectType === 'ui-library' ? 'local-only' : await promptDataStrategy();
50
+ // 4. Application patterns (skip for ui-library and api)
51
+ const appPatterns = (projectType === 'ui-library' || projectType === 'api')
52
+ ? []
53
+ : await promptPatterns();
51
54
  // 5. Framework
52
55
  const frontendFramework = await promptFramework(projectType);
56
+ // 5b. Backend framework (only for API projects)
57
+ const backendFramework = projectType === 'api'
58
+ ? await promptBackendFramework()
59
+ : 'none';
53
60
  // 6. Features & extras
54
61
  const { testFramework, packageManager, git, installDeps } = await promptFeatures();
55
62
  // 7. AI agent persona
@@ -63,12 +70,13 @@ export async function runPrompts(initialName) {
63
70
  appPatterns,
64
71
  frontendFramework,
65
72
  backendStrategy: projectType === 'api' ? 'separate' : 'integrated',
66
- backendFramework: projectType === 'api' ? 'express' : 'none',
73
+ backendFramework,
67
74
  testFramework,
68
75
  packageManager: packageManager ?? detectPackageManager(),
69
76
  git,
70
77
  installDeps,
71
78
  persona,
79
+ localOnly,
72
80
  };
73
81
  return config;
74
82
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/prompts/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAG1C,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,EAAE,mBAAmB,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAEnF,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAEtD;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,WAAoB;IACnD,8BAA8B;IAC9B,IAAI,OAAe,CAAC;IACpB,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,OAAO,GAAG,MAAM,KAAK,CAAC;YACpB,OAAO,EAAE,eAAe;YACxB,OAAO,EAAE,cAAc;YACvB,QAAQ,EAAE,CAAC,GAAW,EAAE,EAAE;gBACxB,MAAM,MAAM,GAAG,mBAAmB,CAAC,GAAG,CAAC,CAAC;gBACxC,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,IAAI,cAAc,CAAC,CAAC;YAClE,CAAC;SACF,CAAC,CAAC;IACL,CAAC;SAAM,CAAC;QACN,MAAM,UAAU,GAAG,mBAAmB,CAAC,WAAW,CAAC,CAAC;QACpD,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;YACtB,MAAM,IAAI,KAAK,CAAC,UAAU,CAAC,OAAO,IAAI,uBAAuB,CAAC,CAAC;QACjE,CAAC;QACD,OAAO,GAAG,WAAW,CAAC;IACxB,CAAC;IAED,MAAM,WAAW,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;IACpC,MAAM,WAAW,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC;IAE3C,kBAAkB;IAClB,MAAM,WAAW,GAAG,MAAM,iBAAiB,EAAE,CAAC;IAE9C,mBAAmB;IACnB,MAAM,YAAY,GAAG,MAAM,kBAAkB,EAAE,CAAC;IAEhD,0BAA0B;IAC1B,MAAM,WAAW,GAAG,MAAM,cAAc,EAAE,CAAC;IAE3C,eAAe;IACf,MAAM,iBAAiB,GAAG,MAAM,eAAe,CAAC,WAAW,CAAC,CAAC;IAE7D,uBAAuB;IACvB,MAAM,EAAE,aAAa,EAAE,cAAc,EAAE,GAAG,EAAE,WAAW,EAAE,GAAG,MAAM,cAAc,EAAE,CAAC;IAEnF,sBAAsB;IACtB,MAAM,OAAO,GAAG,MAAM,aAAa,EAAE,CAAC;IAEtC,kBAAkB;IAClB,MAAM,MAAM,GAAgB;QAC1B,WAAW;QACX,WAAW;QACX,WAAW;QACX,YAAY;QACZ,WAAW;QACX,iBAAiB;QACjB,eAAe,EAAE,WAAW,KAAK,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,YAAY;QAClE,gBAAgB,EAAE,WAAW,KAAK,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM;QAC5D,aAAa;QACb,cAAc,EAAE,cAAc,IAAI,oBAAoB,EAAE;QACxD,GAAG;QACH,WAAW;QACX,OAAO;KACR,CAAC;IAEF,OAAO,MAAM,CAAC;AAChB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/prompts/index.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"project-type.d.ts","sourceRoot":"","sources":["../../src/prompts/project-type.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEtD,wBAAsB,iBAAiB,IAAI,OAAO,CAAC,WAAW,CAAC,CAqB9D"}
1
+ {"version":3,"file":"project-type.d.ts","sourceRoot":"","sources":["../../src/prompts/project-type.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEtD,wBAAsB,iBAAiB,IAAI,OAAO,CAAC,WAAW,CAAC,CA0B9D"}
@@ -16,7 +16,12 @@ export async function promptProjectType() {
16
16
  {
17
17
  value: 'api',
18
18
  name: '⚡ API / Backend Service',
19
- description: 'REST or GraphQL API (Express, Fastify, NestJS)',
19
+ description: 'REST or GraphQL API (Express, Fastify, NestJS, Spring Boot)',
20
+ },
21
+ {
22
+ value: 'ui-library',
23
+ name: '🎨 UI Component Library',
24
+ description: 'Reusable component library with Storybook & documentation',
20
25
  },
21
26
  {
22
27
  value: 'monorepo',
@@ -1 +1 @@
1
- {"version":3,"file":"project-type.js","sourceRoot":"","sources":["../../src/prompts/project-type.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAI3C,MAAM,CAAC,KAAK,UAAU,iBAAiB;IACrC,OAAO,MAAM,CAAc;QACzB,OAAO,EAAE,wBAAwB;QACjC,OAAO,EAAE;YACP;gBACE,KAAK,EAAE,KAAK;gBACZ,IAAI,EAAE,oBAAoB;gBAC1B,WAAW,EAAE,+DAA+D;aAC7E;YACD;gBACE,KAAK,EAAE,KAAK;gBACZ,IAAI,EAAE,yBAAyB;gBAC/B,WAAW,EAAE,gDAAgD;aAC9D;YACD;gBACE,KAAK,EAAE,UAAU;gBACjB,IAAI,EAAE,aAAa;gBACnB,WAAW,EAAE,qCAAqC;aACnD;SACF;KACF,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"project-type.js","sourceRoot":"","sources":["../../src/prompts/project-type.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAI3C,MAAM,CAAC,KAAK,UAAU,iBAAiB;IACrC,OAAO,MAAM,CAAc;QACzB,OAAO,EAAE,wBAAwB;QACjC,OAAO,EAAE;YACP;gBACE,KAAK,EAAE,KAAK;gBACZ,IAAI,EAAE,oBAAoB;gBAC1B,WAAW,EAAE,+DAA+D;aAC7E;YACD;gBACE,KAAK,EAAE,KAAK;gBACZ,IAAI,EAAE,yBAAyB;gBAC/B,WAAW,EAAE,6DAA6D;aAC3E;YACD;gBACE,KAAK,EAAE,YAAY;gBACnB,IAAI,EAAE,yBAAyB;gBAC/B,WAAW,EAAE,2DAA2D;aACzE;YACD;gBACE,KAAK,EAAE,UAAU;gBACjB,IAAI,EAAE,aAAa;gBACnB,WAAW,EAAE,qCAAqC;aACnD;SACF;KACF,CAAC,CAAC;AACL,CAAC"}
@@ -4,7 +4,7 @@
4
4
  * Core configuration types used throughout the CLI.
5
5
  */
6
6
  /** Supported project types */
7
- export type ProjectType = 'web' | 'api' | 'monorepo' | 'mobile' | 'desktop';
7
+ export type ProjectType = 'web' | 'api' | 'monorepo' | 'mobile' | 'desktop' | 'ui-library';
8
8
  /** Data strategy options */
9
9
  export type DataStrategy = 'local-only' | 'local-first' | 'cloud-first' | 'hybrid';
10
10
  /** Application pattern flags */
@@ -12,7 +12,7 @@ export type AppPattern = 'pwa' | 'offline-first' | 'theming' | 'white-label' | '
12
12
  /** Supported frontend frameworks */
13
13
  export type FrontendFramework = 'nextjs' | 'react-vite' | 'sveltekit' | 'nuxt' | 'remix' | 'astro';
14
14
  /** Supported backend frameworks */
15
- export type BackendFramework = 'express' | 'fastify' | 'nestjs' | 'none';
15
+ export type BackendFramework = 'express' | 'fastify' | 'nestjs' | 'spring-boot' | 'none';
16
16
  /** Backend strategy options */
17
17
  export type BackendStrategy = 'integrated' | 'separate' | 'serverless' | 'baas';
18
18
  /** Supported test frameworks */
@@ -60,6 +60,8 @@ export interface NexusConfig {
60
60
  installDeps: boolean;
61
61
  /** AI agent personality — how agents communicate when synced with the NEXUS brain */
62
62
  persona: NexusPersona;
63
+ /** Whether .nexus/ should be gitignored (local-only mode) */
64
+ localOnly?: boolean;
63
65
  }
64
66
  /** Partial config for incremental prompt building */
65
67
  export type PartialNexusConfig = Partial<NexusConfig> & {
@@ -74,5 +76,7 @@ export interface NexusManifest {
74
76
  version: string;
75
77
  name: string;
76
78
  };
79
+ /** Whether .nexus/ is gitignored (local-only mode) */
80
+ localOnly?: boolean;
77
81
  }
78
82
  //# sourceMappingURL=config.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/types/config.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,8BAA8B;AAC9B,MAAM,MAAM,WAAW,GAAG,KAAK,GAAG,KAAK,GAAG,UAAU,GAAG,QAAQ,GAAG,SAAS,CAAC;AAE5E,4BAA4B;AAC5B,MAAM,MAAM,YAAY,GAAG,YAAY,GAAG,aAAa,GAAG,aAAa,GAAG,QAAQ,CAAC;AAEnF,gCAAgC;AAChC,MAAM,MAAM,UAAU,GAAG,KAAK,GAAG,eAAe,GAAG,SAAS,GAAG,aAAa,GAAG,MAAM,GAAG,WAAW,CAAC;AAEpG,oCAAoC;AACpC,MAAM,MAAM,iBAAiB,GAAG,QAAQ,GAAG,YAAY,GAAG,WAAW,GAAG,MAAM,GAAG,OAAO,GAAG,OAAO,CAAC;AAEnG,mCAAmC;AACnC,MAAM,MAAM,gBAAgB,GAAG,SAAS,GAAG,SAAS,GAAG,QAAQ,GAAG,MAAM,CAAC;AAEzE,+BAA+B;AAC/B,MAAM,MAAM,eAAe,GAAG,YAAY,GAAG,UAAU,GAAG,YAAY,GAAG,MAAM,CAAC;AAEhF,gCAAgC;AAChC,MAAM,MAAM,aAAa,GAAG,QAAQ,GAAG,MAAM,GAAG,MAAM,CAAC;AAEvD,iCAAiC;AACjC,MAAM,MAAM,cAAc,GAAG,KAAK,GAAG,MAAM,GAAG,MAAM,CAAC;AAErD,+BAA+B;AAC/B,MAAM,MAAM,SAAS,GAAG,cAAc,GAAG,UAAU,GAAG,OAAO,GAAG,KAAK,GAAG,QAAQ,CAAC;AAEjF,gCAAgC;AAChC,MAAM,MAAM,cAAc,GAAG,SAAS,GAAG,UAAU,GAAG,UAAU,CAAC;AAEjE;;;;;;GAMG;AACH,MAAM,WAAW,YAAY;IAC3B,mDAAmD;IACnD,IAAI,EAAE,SAAS,CAAC;IAChB,sDAAsD;IACtD,SAAS,EAAE,cAAc,CAAC;IAC1B,mGAAmG;IACnG,QAAQ,EAAE,MAAM,CAAC;IACjB,mEAAmE;IACnE,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,gEAAgE;AAChE,eAAO,MAAM,eAAe,EAAE,YAK7B,CAAC;AAEF,4DAA4D;AAC5D,MAAM,WAAW,WAAW;IAC1B,2EAA2E;IAC3E,WAAW,EAAE,MAAM,CAAC;IACpB,+EAA+E;IAC/E,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,WAAW,CAAC;IACzB,YAAY,EAAE,YAAY,CAAC;IAC3B,WAAW,EAAE,UAAU,EAAE,CAAC;IAC1B,iBAAiB,EAAE,iBAAiB,CAAC;IACrC,eAAe,EAAE,eAAe,CAAC;IACjC,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,aAAa,EAAE,aAAa,CAAC;IAC7B,cAAc,EAAE,cAAc,CAAC;IAC/B,GAAG,EAAE,OAAO,CAAC;IACb,WAAW,EAAE,OAAO,CAAC;IACrB,qFAAqF;IACrF,OAAO,EAAE,YAAY,CAAC;CACvB;AAED,qDAAqD;AACrD,MAAM,MAAM,kBAAkB,GAAG,OAAO,CAAC,WAAW,CAAC,GAAG;IAAE,WAAW,EAAE,MAAM,CAAA;CAAE,CAAC;AAEhF,kEAAkE;AAClE,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,WAAW,CAAC;IACpB,GAAG,EAAE;QACH,OAAO,EAAE,MAAM,CAAC;QAChB,IAAI,EAAE,MAAM,CAAC;KACd,CAAC;CACH"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/types/config.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,8BAA8B;AAC9B,MAAM,MAAM,WAAW,GAAG,KAAK,GAAG,KAAK,GAAG,UAAU,GAAG,QAAQ,GAAG,SAAS,GAAG,YAAY,CAAC;AAE3F,4BAA4B;AAC5B,MAAM,MAAM,YAAY,GAAG,YAAY,GAAG,aAAa,GAAG,aAAa,GAAG,QAAQ,CAAC;AAEnF,gCAAgC;AAChC,MAAM,MAAM,UAAU,GAAG,KAAK,GAAG,eAAe,GAAG,SAAS,GAAG,aAAa,GAAG,MAAM,GAAG,WAAW,CAAC;AAEpG,oCAAoC;AACpC,MAAM,MAAM,iBAAiB,GAAG,QAAQ,GAAG,YAAY,GAAG,WAAW,GAAG,MAAM,GAAG,OAAO,GAAG,OAAO,CAAC;AAEnG,mCAAmC;AACnC,MAAM,MAAM,gBAAgB,GAAG,SAAS,GAAG,SAAS,GAAG,QAAQ,GAAG,aAAa,GAAG,MAAM,CAAC;AAEzF,+BAA+B;AAC/B,MAAM,MAAM,eAAe,GAAG,YAAY,GAAG,UAAU,GAAG,YAAY,GAAG,MAAM,CAAC;AAEhF,gCAAgC;AAChC,MAAM,MAAM,aAAa,GAAG,QAAQ,GAAG,MAAM,GAAG,MAAM,CAAC;AAEvD,iCAAiC;AACjC,MAAM,MAAM,cAAc,GAAG,KAAK,GAAG,MAAM,GAAG,MAAM,CAAC;AAErD,+BAA+B;AAC/B,MAAM,MAAM,SAAS,GAAG,cAAc,GAAG,UAAU,GAAG,OAAO,GAAG,KAAK,GAAG,QAAQ,CAAC;AAEjF,gCAAgC;AAChC,MAAM,MAAM,cAAc,GAAG,SAAS,GAAG,UAAU,GAAG,UAAU,CAAC;AAEjE;;;;;;GAMG;AACH,MAAM,WAAW,YAAY;IAC3B,mDAAmD;IACnD,IAAI,EAAE,SAAS,CAAC;IAChB,sDAAsD;IACtD,SAAS,EAAE,cAAc,CAAC;IAC1B,mGAAmG;IACnG,QAAQ,EAAE,MAAM,CAAC;IACjB,mEAAmE;IACnE,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,gEAAgE;AAChE,eAAO,MAAM,eAAe,EAAE,YAK7B,CAAC;AAEF,4DAA4D;AAC5D,MAAM,WAAW,WAAW;IAC1B,2EAA2E;IAC3E,WAAW,EAAE,MAAM,CAAC;IACpB,+EAA+E;IAC/E,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,WAAW,CAAC;IACzB,YAAY,EAAE,YAAY,CAAC;IAC3B,WAAW,EAAE,UAAU,EAAE,CAAC;IAC1B,iBAAiB,EAAE,iBAAiB,CAAC;IACrC,eAAe,EAAE,eAAe,CAAC;IACjC,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,aAAa,EAAE,aAAa,CAAC;IAC7B,cAAc,EAAE,cAAc,CAAC;IAC/B,GAAG,EAAE,OAAO,CAAC;IACb,WAAW,EAAE,OAAO,CAAC;IACrB,qFAAqF;IACrF,OAAO,EAAE,YAAY,CAAC;IACtB,6DAA6D;IAC7D,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,qDAAqD;AACrD,MAAM,MAAM,kBAAkB,GAAG,OAAO,CAAC,WAAW,CAAC,GAAG;IAAE,WAAW,EAAE,MAAM,CAAA;CAAE,CAAC;AAEhF,kEAAkE;AAClE,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,WAAW,CAAC;IACpB,GAAG,EAAE;QACH,OAAO,EAAE,MAAM,CAAC;QAChB,IAAI,EAAE,MAAM,CAAC;KACd,CAAC;IACF,sDAAsD;IACtD,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB"}
@@ -1 +1 @@
1
- {"version":3,"file":"file-system.d.ts","sourceRoot":"","sources":["../../src/utils/file-system.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAOH,OAAO,KAAK,EAAE,aAAa,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAEhG;;GAEG;AACH,wBAAsB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAEpE;AAED;;GAEG;AACH,wBAAsB,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAGhF;AAED;;GAEG;AACH,wBAAsB,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAMvE;AAED;;GAEG;AACH,wBAAsB,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAOnE;AAED;;GAEG;AACH,wBAAsB,oBAAoB,CACxC,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,aAAa,EAAE,EACtB,WAAW,EAAE,kBAAkB,EAAE,GAChC,OAAO,CAAC,IAAI,CAAC,CAUf;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,eAAe,GAAG,MAAM,CAEjF;AAED;;GAEG;AACH,wBAAsB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAOvE"}
1
+ {"version":3,"file":"file-system.d.ts","sourceRoot":"","sources":["../../src/utils/file-system.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAOH,OAAO,KAAK,EAAE,aAAa,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAEhG;;GAEG;AACH,wBAAsB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAEpE;AAED;;GAEG;AACH,wBAAsB,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAGhF;AAED;;GAEG;AACH,wBAAsB,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAMvE;AAED;;GAEG;AACH,wBAAsB,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAOnE;AAED;;GAEG;AACH,wBAAsB,oBAAoB,CACxC,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,aAAa,EAAE,EACtB,WAAW,EAAE,kBAAkB,EAAE,GAChC,OAAO,CAAC,IAAI,CAAC,CAYf;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,eAAe,GAAG,MAAM,CAEjF;AAED;;GAEG;AACH,wBAAsB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAOvE"}
@@ -50,9 +50,11 @@ export async function writeGeneratorResult(projectRoot, files, directories) {
50
50
  for (const dir of directories) {
51
51
  await ensureDirectory(path.join(projectRoot, dir.path));
52
52
  }
53
- // Then write files
53
+ // Then write files (skip empty content files)
54
54
  for (const file of files) {
55
- await writeFile(path.join(projectRoot, file.path), file.content);
55
+ if (file.content.trim()) {
56
+ await writeFile(path.join(projectRoot, file.path), file.content);
57
+ }
56
58
  }
57
59
  }
58
60
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"file-system.js","sourceRoot":"","sources":["../../src/utils/file-system.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EAAE,MAAM,UAAU,CAAC;AAC1B,OAAO,QAAQ,MAAM,UAAU,CAAC;AAIhC;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,OAAe;IACnD,MAAM,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;AAC9B,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,QAAgB,EAAE,OAAe;IAC/D,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC3C,MAAM,EAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AACjD,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,QAAgB;IAC7C,IAAI,CAAC;QACH,OAAO,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAC9C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,QAAgB;IAC/C,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACrC,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC;IACvB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,WAAmB,EACnB,KAAsB,EACtB,WAAiC;IAEjC,2BAA2B;IAC3B,KAAK,MAAM,GAAG,IAAI,WAAW,EAAE,CAAC;QAC9B,MAAM,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;IAC1D,CAAC;IAED,mBAAmB;IACnB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IACnE,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,QAAgB,EAAE,OAAwB;IACvE,OAAO,QAAQ,CAAC,MAAM,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;AAC5C,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,OAAe;IACnD,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACpC,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC;IAC5B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"file-system.js","sourceRoot":"","sources":["../../src/utils/file-system.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EAAE,MAAM,UAAU,CAAC;AAC1B,OAAO,QAAQ,MAAM,UAAU,CAAC;AAIhC;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,OAAe;IACnD,MAAM,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;AAC9B,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,QAAgB,EAAE,OAAe;IAC/D,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC3C,MAAM,EAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AACjD,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,QAAgB;IAC7C,IAAI,CAAC;QACH,OAAO,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAC9C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,QAAgB;IAC/C,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACrC,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC;IACvB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,WAAmB,EACnB,KAAsB,EACtB,WAAiC;IAEjC,2BAA2B;IAC3B,KAAK,MAAM,GAAG,IAAI,WAAW,EAAE,CAAC;QAC9B,MAAM,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;IAC1D,CAAC;IAED,8CAA8C;IAC9C,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;YACxB,MAAM,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QACnE,CAAC;IACH,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,QAAgB,EAAE,OAAwB;IACvE,OAAO,QAAQ,CAAC,MAAM,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;AAC5C,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,OAAe;IACnD,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACpC,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC;IAC5B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC"}
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * NEXUS CLI - Logger Utility
3
3
  *
4
- * Pretty, color-coded terminal output using Chalk.
4
+ * Pretty, color-coded terminal output using Chalk, gradient-string, and boxen.
5
5
  */
6
6
  /** Log an informational message */
7
7
  export declare function info(message: string): void;
@@ -17,7 +17,7 @@ export declare function nexus(message: string): void;
17
17
  export declare function newline(): void;
18
18
  /** Print a horizontal rule */
19
19
  export declare function divider(): void;
20
- /** Print the NEXUS banner */
20
+ /** Print the NEXUS banner with gradient */
21
21
  export declare function banner(version: string): void;
22
22
  /** Print final success with next steps */
23
23
  export declare function complete(projectName: string, displayName?: string): void;
@@ -1 +1 @@
1
- {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAeH,mCAAmC;AACnC,wBAAgB,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAE1C;AAED,4BAA4B;AAC5B,wBAAgB,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAE7C;AAED,4BAA4B;AAC5B,wBAAgB,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAE1C;AAED,2BAA2B;AAC3B,wBAAgB,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAE3C;AAED,kCAAkC;AAClC,wBAAgB,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAE3C;AAED,yBAAyB;AACzB,wBAAgB,OAAO,IAAI,IAAI,CAE9B;AAED,8BAA8B;AAC9B,wBAAgB,OAAO,IAAI,IAAI,CAE9B;AAED,6BAA6B;AAC7B,wBAAgB,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAM5C;AAED,0CAA0C;AAC1C,wBAAgB,QAAQ,CAAC,WAAW,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAkBxE;AAED,kDAAkD;AAClD,wBAAgB,aAAa,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAsBvD;AAED,eAAO,MAAM,MAAM;;;;;;;;;;;CAWlB,CAAC"}
1
+ {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAoBH,mCAAmC;AACnC,wBAAgB,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAE1C;AAED,4BAA4B;AAC5B,wBAAgB,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAE7C;AAED,4BAA4B;AAC5B,wBAAgB,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAE1C;AAED,2BAA2B;AAC3B,wBAAgB,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAE3C;AAED,kCAAkC;AAClC,wBAAgB,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAE3C;AAED,yBAAyB;AACzB,wBAAgB,OAAO,IAAI,IAAI,CAE9B;AAED,8BAA8B;AAC9B,wBAAgB,OAAO,IAAI,IAAI,CAE9B;AAED,2CAA2C;AAC3C,wBAAgB,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAO5C;AAED,0CAA0C;AAC1C,wBAAgB,QAAQ,CAAC,WAAW,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAyBxE;AAED,kDAAkD;AAClD,wBAAgB,aAAa,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CA6BvD;AAED,eAAO,MAAM,MAAM;;;;;;;;;;;CAWlB,CAAC"}
@@ -1,9 +1,13 @@
1
1
  /**
2
2
  * NEXUS CLI - Logger Utility
3
3
  *
4
- * Pretty, color-coded terminal output using Chalk.
4
+ * Pretty, color-coded terminal output using Chalk, gradient-string, and boxen.
5
5
  */
6
+ import boxen from 'boxen';
6
7
  import chalk from 'chalk';
8
+ import gradient from 'gradient-string';
9
+ /** NEXUS brand gradient (cyan → blue → purple) */
10
+ const nexusGradient = gradient(['#00f2ff', '#0090ff', '#7b61ff']);
7
11
  /** Brand colors */
8
12
  const COLORS = {
9
13
  primary: chalk.cyan,
@@ -42,10 +46,11 @@ export function newline() {
42
46
  export function divider() {
43
47
  console.log(COLORS.dim('━'.repeat(50)));
44
48
  }
45
- /** Print the NEXUS banner */
49
+ /** Print the NEXUS banner with gradient */
46
50
  export function banner(version) {
47
51
  newline();
48
- console.log(COLORS.primary.bold(' 🔮 NEXUS CLI') + COLORS.dim(` v${version}`));
52
+ const title = nexusGradient(' 🔮 NEXUS CLI');
53
+ console.log(title + COLORS.dim(` v${version}`));
49
54
  console.log(COLORS.dim(' AI-Native Project Scaffolding'));
50
55
  divider();
51
56
  newline();
@@ -54,44 +59,52 @@ export function banner(version) {
54
59
  export function complete(projectName, displayName) {
55
60
  const prettyName = displayName ?? projectName;
56
61
  newline();
57
- divider();
58
- newline();
59
- console.log(COLORS.success.bold(' ✅ Project created successfully!'));
60
- newline();
61
- console.log(COLORS.bold(` ${prettyName}`));
62
- newline();
63
- console.log(COLORS.bold(' Next steps:'));
64
- console.log(COLORS.primary(` cd ${projectName}`));
65
- console.log(COLORS.primary(' npm run dev'));
66
- newline();
67
- console.log(COLORS.dim(' Open .nexus/docs/ to start filling in your project documentation.'));
68
- console.log(COLORS.dim(' AI tools will use these files to understand your project.'));
69
- newline();
70
- divider();
62
+ const message = [
63
+ COLORS.success.bold('✅ Project created successfully!'),
64
+ '',
65
+ COLORS.bold(prettyName),
66
+ '',
67
+ COLORS.bold('Next steps:'),
68
+ COLORS.primary(` cd ${projectName}`),
69
+ COLORS.primary(' npm run dev'),
70
+ '',
71
+ COLORS.dim('Open .nexus/docs/ to start filling in your project documentation.'),
72
+ COLORS.dim('AI tools will use these files to understand your project.'),
73
+ ].join('\n');
74
+ console.log(boxen(message, {
75
+ padding: 1,
76
+ margin: 0,
77
+ borderStyle: 'round',
78
+ borderColor: 'cyan',
79
+ }));
71
80
  newline();
72
81
  }
73
82
  /** Print adopt-mode completion with next steps */
74
83
  export function adoptComplete(displayName) {
75
84
  newline();
76
- divider();
77
- newline();
78
- console.log(COLORS.success.bold(' ✅ NEXUS adopted successfully!'));
79
- newline();
80
- console.log(COLORS.bold(` "${displayName}" now has NEXUS documentation & AI config.`));
81
- newline();
82
- console.log(COLORS.bold(' What happens next:'));
83
- console.log(COLORS.primary(' 1. Open your AI coding tool (Copilot, Cursor, Windsurf, etc.)'));
84
- console.log(COLORS.primary(' 2. Ask it to do anything (e.g., "add a feature", "fix a bug")'));
85
- console.log(COLORS.primary(' 3. It will detect the template docs and auto-populate them first'));
86
- console.log(COLORS.primary(' 4. It will ask you questions for things it can\'t infer from code'));
87
- newline();
88
- console.log(COLORS.dim(' Files added:'));
89
- console.log(COLORS.dim(' .nexus/docs/ 8 structured documentation files (status: template)'));
90
- console.log(COLORS.dim(' .nexus/ai/ — AI agent instructions (single source of truth)'));
91
- console.log(COLORS.dim(' .cursorrules, .windsurfrules, .clinerules, AGENTS.md — AI tool pointers'));
92
- console.log(COLORS.dim(' .github/copilot-instructions.md — GitHub Copilot config'));
93
- newline();
94
- divider();
85
+ const message = [
86
+ COLORS.success.bold('✅ NEXUS adopted successfully!'),
87
+ '',
88
+ COLORS.bold(`"${displayName}" now has NEXUS documentation & AI config.`),
89
+ '',
90
+ COLORS.bold('What happens next:'),
91
+ COLORS.primary(' 1. Open your AI coding tool (Copilot, Cursor, Windsurf, etc.)'),
92
+ COLORS.primary(' 2. Ask it to do anything (e.g., "add a feature", "fix a bug")'),
93
+ COLORS.primary(' 3. It will detect the template docs and auto-populate them first'),
94
+ COLORS.primary(' 4. It will ask you questions for things it can\'t infer from code'),
95
+ '',
96
+ COLORS.dim('Files added:'),
97
+ COLORS.dim(' .nexus/docs/ — 8 structured documentation files (status: template)'),
98
+ COLORS.dim(' .nexus/ai/ AI agent instructions (single source of truth)'),
99
+ COLORS.dim(' .cursorrules, .windsurfrules, .clinerules, AGENTS.md AI tool pointers'),
100
+ COLORS.dim(' .github/copilot-instructions.md — GitHub Copilot config'),
101
+ ].join('\n');
102
+ console.log(boxen(message, {
103
+ padding: 1,
104
+ margin: 0,
105
+ borderStyle: 'round',
106
+ borderColor: 'cyan',
107
+ }));
95
108
  newline();
96
109
  }
97
110
  export const logger = {
@@ -1 +1 @@
1
- {"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":"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"}
@@ -14,6 +14,14 @@ export interface ProjectSignals {
14
14
  hasSrc: boolean;
15
15
  hasTsConfig: boolean;
16
16
  hasNodeModules: boolean;
17
+ hasGoMod: boolean;
18
+ hasCargoToml: boolean;
19
+ hasPyProjectToml: boolean;
20
+ hasFirebaseJson: boolean;
21
+ hasPomXml: boolean;
22
+ hasBuildGradle: boolean;
23
+ isInsideMonorepo: boolean;
24
+ monorepoRoot: string | null;
17
25
  }
18
26
  /** Information extracted from an existing project */
19
27
  export interface ProjectInfo {
@@ -39,7 +47,15 @@ export interface ProjectInfo {
39
47
  /**
40
48
  * Check whether a directory looks like it already contains a project.
41
49
  *
42
- * Returns `true` if a `package.json` exists at the target path.
50
+ * Now supports:
51
+ * - Node.js projects (package.json)
52
+ * - Spring Boot projects (pom.xml, build.gradle)
53
+ * - Cloud Functions (firebase.json, .firebaserc)
54
+ * - Go projects (go.mod)
55
+ * - Rust projects (Cargo.toml)
56
+ * - Python projects (pyproject.toml)
57
+ * - Monorepos (checks parent directories for workspace root)
58
+ *
43
59
  * This is a fast check used to decide whether to show the
44
60
  * "--adopt" suggestion before any heavier analysis.
45
61
  */
@@ -47,9 +63,9 @@ export declare function isExistingProject(targetDir: string): boolean;
47
63
  /**
48
64
  * Inspect a directory and return detailed project information.
49
65
  *
50
- * This reads package.json (if present) and checks for common
51
- * framework/tooling markers so the adopt generator can pre-fill
52
- * as much of the NEXUS documentation as possible.
66
+ * This reads package.json (if present), checks for non-Node.js project
67
+ * markers (go.mod, Cargo.toml, etc.), and detects monorepo structure.
68
+ * The adopt generator uses this to pre-fill NEXUS documentation.
53
69
  */
54
70
  export declare function detectProject(targetDir: string): Promise<ProjectInfo>;
55
71
  //# sourceMappingURL=project-detector.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"project-detector.d.ts","sourceRoot":"","sources":["../../src/utils/project-detector.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAUH,gDAAgD;AAChD,MAAM,WAAW,cAAc;IAC7B,cAAc,EAAE,OAAO,CAAC;IACxB,MAAM,EAAE,OAAO,CAAC;IAChB,MAAM,EAAE,OAAO,CAAC;IAChB,WAAW,EAAE,OAAO,CAAC;IACrB,cAAc,EAAE,OAAO,CAAC;CACzB;AAED,qDAAqD;AACrD,MAAM,WAAW,WAAW;IAC1B,2CAA2C;IAC3C,QAAQ,EAAE,OAAO,CAAC;IAClB,6BAA6B;IAC7B,OAAO,EAAE,cAAc,CAAC;IACxB,oDAAoD;IACpD,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,2DAA2D;IAC3D,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,4CAA4C;IAC5C,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,wCAAwC;IACxC,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,+BAA+B;IAC/B,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,8CAA8C;IAC9C,QAAQ,EAAE,OAAO,CAAC;IAClB,8DAA8D;IAC9D,YAAY,EAAE,MAAM,EAAE,CAAC;CACxB;AAMD;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAE5D;AAED;;;;;;GAMG;AACH,wBAAsB,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAiD3E"}
1
+ {"version":3,"file":"project-detector.d.ts","sourceRoot":"","sources":["../../src/utils/project-detector.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAUH,gDAAgD;AAChD,MAAM,WAAW,cAAc;IAC7B,cAAc,EAAE,OAAO,CAAC;IACxB,MAAM,EAAE,OAAO,CAAC;IAChB,MAAM,EAAE,OAAO,CAAC;IAChB,WAAW,EAAE,OAAO,CAAC;IACrB,cAAc,EAAE,OAAO,CAAC;IAExB,QAAQ,EAAE,OAAO,CAAC;IAClB,YAAY,EAAE,OAAO,CAAC;IACtB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,eAAe,EAAE,OAAO,CAAC;IAEzB,SAAS,EAAE,OAAO,CAAC;IACnB,cAAc,EAAE,OAAO,CAAC;IAExB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7B;AAED,qDAAqD;AACrD,MAAM,WAAW,WAAW;IAC1B,2CAA2C;IAC3C,QAAQ,EAAE,OAAO,CAAC;IAClB,6BAA6B;IAC7B,OAAO,EAAE,cAAc,CAAC;IACxB,oDAAoD;IACpD,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,2DAA2D;IAC3D,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,4CAA4C;IAC5C,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,wCAAwC;IACxC,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,+BAA+B;IAC/B,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,8CAA8C;IAC9C,QAAQ,EAAE,OAAO,CAAC;IAClB,8DAA8D;IAC9D,YAAY,EAAE,MAAM,EAAE,CAAC;CACxB;AAMD;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CA2B5D;AAED;;;;;;GAMG;AACH,wBAAsB,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CA6E3E"}