@memberjunction/cli 6.1.0-edge.3 → 6.1.0-edge.5

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 (210) hide show
  1. package/README.md +81 -0
  2. package/dist/commands/ai/actions/list.d.ts +2 -1
  3. package/dist/commands/ai/actions/list.d.ts.map +1 -1
  4. package/dist/commands/ai/actions/list.js +12 -3
  5. package/dist/commands/ai/actions/list.js.map +1 -1
  6. package/dist/commands/ai/actions/run.d.ts +7 -6
  7. package/dist/commands/ai/actions/run.d.ts.map +1 -1
  8. package/dist/commands/ai/actions/run.js +15 -16
  9. package/dist/commands/ai/actions/run.js.map +1 -1
  10. package/dist/commands/ai/agents/list.d.ts +2 -1
  11. package/dist/commands/ai/agents/list.d.ts.map +1 -1
  12. package/dist/commands/ai/agents/list.js +12 -3
  13. package/dist/commands/ai/agents/list.js.map +1 -1
  14. package/dist/commands/ai/agents/run.d.ts +7 -6
  15. package/dist/commands/ai/agents/run.d.ts.map +1 -1
  16. package/dist/commands/ai/agents/run.js +27 -5
  17. package/dist/commands/ai/agents/run.js.map +1 -1
  18. package/dist/commands/ai/audit/agent-run.d.ts +15 -14
  19. package/dist/commands/ai/audit/agent-run.d.ts.map +1 -1
  20. package/dist/commands/ai/audit/agent-run.js +18 -6
  21. package/dist/commands/ai/audit/agent-run.js.map +1 -1
  22. package/dist/commands/ai/prompts/run.d.ts +10 -9
  23. package/dist/commands/ai/prompts/run.d.ts.map +1 -1
  24. package/dist/commands/ai/prompts/run.js +12 -3
  25. package/dist/commands/ai/prompts/run.js.map +1 -1
  26. package/dist/commands/ai/usage.d.ts +7 -0
  27. package/dist/commands/ai/usage.d.ts.map +1 -0
  28. package/dist/commands/ai/usage.js +10 -0
  29. package/dist/commands/ai/usage.js.map +1 -0
  30. package/dist/commands/app/check-updates.d.ts.map +1 -1
  31. package/dist/commands/app/check-updates.js +55 -17
  32. package/dist/commands/app/check-updates.js.map +1 -1
  33. package/dist/commands/app/remove.d.ts.map +1 -1
  34. package/dist/commands/app/remove.js +12 -4
  35. package/dist/commands/app/remove.js.map +1 -1
  36. package/dist/commands/app/usage.d.ts +7 -0
  37. package/dist/commands/app/usage.d.ts.map +1 -0
  38. package/dist/commands/app/usage.js +10 -0
  39. package/dist/commands/app/usage.js.map +1 -0
  40. package/dist/commands/artifacts/usage.d.ts +7 -0
  41. package/dist/commands/artifacts/usage.d.ts.map +1 -0
  42. package/dist/commands/artifacts/usage.js +10 -0
  43. package/dist/commands/artifacts/usage.js.map +1 -0
  44. package/dist/commands/baseline/usage.d.ts +7 -0
  45. package/dist/commands/baseline/usage.d.ts.map +1 -0
  46. package/dist/commands/baseline/usage.js +10 -0
  47. package/dist/commands/baseline/usage.js.map +1 -0
  48. package/dist/commands/bump/usage.d.ts +7 -0
  49. package/dist/commands/bump/usage.d.ts.map +1 -0
  50. package/dist/commands/bump/usage.js +10 -0
  51. package/dist/commands/bump/usage.js.map +1 -0
  52. package/dist/commands/bundle/usage.d.ts +7 -0
  53. package/dist/commands/bundle/usage.d.ts.map +1 -0
  54. package/dist/commands/bundle/usage.js +10 -0
  55. package/dist/commands/bundle/usage.js.map +1 -0
  56. package/dist/commands/clean/usage.d.ts +7 -0
  57. package/dist/commands/clean/usage.d.ts.map +1 -0
  58. package/dist/commands/clean/usage.js +10 -0
  59. package/dist/commands/clean/usage.js.map +1 -0
  60. package/dist/commands/dbdoc/usage.d.ts +7 -0
  61. package/dist/commands/dbdoc/usage.d.ts.map +1 -0
  62. package/dist/commands/dbdoc/usage.js +10 -0
  63. package/dist/commands/dbdoc/usage.js.map +1 -0
  64. package/dist/commands/dev/workspace/index.d.ts.map +1 -1
  65. package/dist/commands/dev/workspace/index.js +7 -2
  66. package/dist/commands/dev/workspace/index.js.map +1 -1
  67. package/dist/commands/doctor/usage.d.ts +7 -0
  68. package/dist/commands/doctor/usage.d.ts.map +1 -0
  69. package/dist/commands/doctor/usage.js +10 -0
  70. package/dist/commands/doctor/usage.js.map +1 -0
  71. package/dist/commands/install/index.d.ts +20 -0
  72. package/dist/commands/install/index.d.ts.map +1 -1
  73. package/dist/commands/install/index.js +80 -10
  74. package/dist/commands/install/index.js.map +1 -1
  75. package/dist/commands/install/usage.d.ts +7 -0
  76. package/dist/commands/install/usage.d.ts.map +1 -0
  77. package/dist/commands/install/usage.js +10 -0
  78. package/dist/commands/install/usage.js.map +1 -0
  79. package/dist/commands/migrate/convert.d.ts +26 -0
  80. package/dist/commands/migrate/convert.d.ts.map +1 -1
  81. package/dist/commands/migrate/convert.js +115 -13
  82. package/dist/commands/migrate/convert.js.map +1 -1
  83. package/dist/commands/migrate/index.d.ts +9 -0
  84. package/dist/commands/migrate/index.d.ts.map +1 -1
  85. package/dist/commands/migrate/index.js +41 -1
  86. package/dist/commands/migrate/index.js.map +1 -1
  87. package/dist/commands/migrate/rebake.d.ts +1 -0
  88. package/dist/commands/migrate/rebake.d.ts.map +1 -1
  89. package/dist/commands/migrate/rebake.js +16 -6
  90. package/dist/commands/migrate/rebake.js.map +1 -1
  91. package/dist/commands/migrate/usage.d.ts +7 -0
  92. package/dist/commands/migrate/usage.d.ts.map +1 -0
  93. package/dist/commands/migrate/usage.js +10 -0
  94. package/dist/commands/migrate/usage.js.map +1 -0
  95. package/dist/commands/plugin/usage.d.ts +7 -0
  96. package/dist/commands/plugin/usage.d.ts.map +1 -0
  97. package/dist/commands/plugin/usage.js +10 -0
  98. package/dist/commands/plugin/usage.js.map +1 -0
  99. package/dist/commands/querygen/usage.d.ts +7 -0
  100. package/dist/commands/querygen/usage.d.ts.map +1 -0
  101. package/dist/commands/querygen/usage.js +10 -0
  102. package/dist/commands/querygen/usage.js.map +1 -0
  103. package/dist/commands/sql-audit/usage.d.ts +7 -0
  104. package/dist/commands/sql-audit/usage.d.ts.map +1 -0
  105. package/dist/commands/sql-audit/usage.js +10 -0
  106. package/dist/commands/sql-audit/usage.js.map +1 -0
  107. package/dist/commands/sql-convert/usage.d.ts +7 -0
  108. package/dist/commands/sql-convert/usage.d.ts.map +1 -0
  109. package/dist/commands/sql-convert/usage.js +10 -0
  110. package/dist/commands/sql-convert/usage.js.map +1 -0
  111. package/dist/commands/standards/usage.d.ts +7 -0
  112. package/dist/commands/standards/usage.d.ts.map +1 -0
  113. package/dist/commands/standards/usage.js +10 -0
  114. package/dist/commands/standards/usage.js.map +1 -0
  115. package/dist/commands/sync/file-reset.d.ts +6 -6
  116. package/dist/commands/sync/file-reset.d.ts.map +1 -1
  117. package/dist/commands/sync/file-reset.js +151 -127
  118. package/dist/commands/sync/file-reset.js.map +1 -1
  119. package/dist/commands/sync/init.d.ts +10 -1
  120. package/dist/commands/sync/init.d.ts.map +1 -1
  121. package/dist/commands/sync/init.js +127 -78
  122. package/dist/commands/sync/init.js.map +1 -1
  123. package/dist/commands/test/compare.d.ts +11 -11
  124. package/dist/commands/test/compare.d.ts.map +1 -1
  125. package/dist/commands/test/compare.js +8 -7
  126. package/dist/commands/test/compare.js.map +1 -1
  127. package/dist/commands/test/history.d.ts +7 -7
  128. package/dist/commands/test/history.d.ts.map +1 -1
  129. package/dist/commands/test/history.js +8 -7
  130. package/dist/commands/test/history.js.map +1 -1
  131. package/dist/commands/test/list.d.ts +8 -8
  132. package/dist/commands/test/list.d.ts.map +1 -1
  133. package/dist/commands/test/list.js +8 -7
  134. package/dist/commands/test/list.js.map +1 -1
  135. package/dist/commands/test/regression/compare.d.ts.map +1 -1
  136. package/dist/commands/test/regression/compare.js +5 -7
  137. package/dist/commands/test/regression/compare.js.map +1 -1
  138. package/dist/commands/test/run.d.ts +9 -9
  139. package/dist/commands/test/run.d.ts.map +1 -1
  140. package/dist/commands/test/run.js +8 -7
  141. package/dist/commands/test/run.js.map +1 -1
  142. package/dist/commands/test/suite.d.ts +11 -11
  143. package/dist/commands/test/suite.d.ts.map +1 -1
  144. package/dist/commands/test/suite.js +8 -7
  145. package/dist/commands/test/suite.js.map +1 -1
  146. package/dist/commands/test/usage.d.ts +7 -0
  147. package/dist/commands/test/usage.d.ts.map +1 -0
  148. package/dist/commands/test/usage.js +10 -0
  149. package/dist/commands/test/usage.js.map +1 -0
  150. package/dist/commands/test/validate.d.ts +7 -7
  151. package/dist/commands/test/validate.d.ts.map +1 -1
  152. package/dist/commands/test/validate.js +8 -7
  153. package/dist/commands/test/validate.js.map +1 -1
  154. package/dist/commands/translate-sql/usage.d.ts +7 -0
  155. package/dist/commands/translate-sql/usage.d.ts.map +1 -0
  156. package/dist/commands/translate-sql/usage.js +10 -0
  157. package/dist/commands/translate-sql/usage.js.map +1 -0
  158. package/dist/commands/update/usage.d.ts +7 -0
  159. package/dist/commands/update/usage.d.ts.map +1 -0
  160. package/dist/commands/update/usage.js +10 -0
  161. package/dist/commands/update/usage.js.map +1 -0
  162. package/dist/commands/usage.d.ts.map +1 -1
  163. package/dist/commands/usage.js +9 -4
  164. package/dist/commands/usage.js.map +1 -1
  165. package/dist/hooks/prerun.d.ts.map +1 -1
  166. package/dist/hooks/prerun.js +63 -30
  167. package/dist/hooks/prerun.js.map +1 -1
  168. package/dist/lib/cli-plugins.d.ts +8 -1
  169. package/dist/lib/cli-plugins.d.ts.map +1 -1
  170. package/dist/lib/cli-plugins.js +17 -1
  171. package/dist/lib/cli-plugins.js.map +1 -1
  172. package/dist/lib/derived-usage.d.ts +68 -0
  173. package/dist/lib/derived-usage.d.ts.map +1 -0
  174. package/dist/lib/derived-usage.js +121 -0
  175. package/dist/lib/derived-usage.js.map +1 -0
  176. package/dist/lib/domain-profiles.d.ts +42 -0
  177. package/dist/lib/domain-profiles.d.ts.map +1 -0
  178. package/dist/lib/domain-profiles.js +118 -0
  179. package/dist/lib/domain-profiles.js.map +1 -0
  180. package/dist/lib/domain-usage-command.d.ts.map +1 -1
  181. package/dist/lib/domain-usage-command.js +9 -4
  182. package/dist/lib/domain-usage-command.js.map +1 -1
  183. package/dist/lib/format-compat.d.ts +68 -0
  184. package/dist/lib/format-compat.d.ts.map +1 -0
  185. package/dist/lib/format-compat.js +111 -0
  186. package/dist/lib/format-compat.js.map +1 -0
  187. package/dist/lib/interactive-guard.d.ts +56 -0
  188. package/dist/lib/interactive-guard.d.ts.map +1 -0
  189. package/dist/lib/interactive-guard.js +60 -0
  190. package/dist/lib/interactive-guard.js.map +1 -0
  191. package/dist/lib/legacy-install.d.ts.map +1 -1
  192. package/dist/lib/legacy-install.js +4 -0
  193. package/dist/lib/legacy-install.js.map +1 -1
  194. package/dist/lib/usage-render.d.ts +2 -2
  195. package/dist/lib/usage-render.d.ts.map +1 -1
  196. package/dist/lib/usage-render.js +2 -1
  197. package/dist/lib/usage-render.js.map +1 -1
  198. package/dist/light-commands.d.ts.map +1 -1
  199. package/dist/light-commands.js +43 -0
  200. package/dist/light-commands.js.map +1 -1
  201. package/dist/utils/open-app-context.d.ts +24 -0
  202. package/dist/utils/open-app-context.d.ts.map +1 -1
  203. package/dist/utils/open-app-context.js +21 -6
  204. package/dist/utils/open-app-context.js.map +1 -1
  205. package/dist/utils/update-check.d.ts +86 -0
  206. package/dist/utils/update-check.d.ts.map +1 -0
  207. package/dist/utils/update-check.js +98 -0
  208. package/dist/utils/update-check.js.map +1 -0
  209. package/oclif.manifest.json +4099 -3239
  210. package/package.json +21 -21
@@ -1,5 +1,6 @@
1
1
  import { Command, Flags } from '@oclif/core';
2
2
  import { confirm, checkbox } from '@inquirer/prompts';
3
+ import { NonInteractiveError, resolveOrPrompt, withNonInteractiveHandling } from '../../lib/interactive-guard.js';
3
4
  import ora from 'ora-classic';
4
5
  import chalk from 'chalk';
5
6
  import * as path from 'path';
@@ -23,145 +24,168 @@ export default class FileReset extends Command {
23
24
  const { FileResetService, loadMJConfig, initializeProvider, getSyncEngine, getSystemUser, resetSyncEngine, configManager, } = await import('@memberjunction/metadata-sync');
24
25
  const { flags } = await this.parse(FileReset);
25
26
  const spinner = ora();
26
- try {
27
- // Load configuration
28
- spinner.start('Loading configuration');
29
- const mjConfig = loadMJConfig();
30
- if (!mjConfig) {
31
- this.error('No mj.config.cjs found in current directory or parent directories');
32
- }
33
- // Stop spinner before provider initialization
34
- spinner.stop();
35
- // Initialize data provider
36
- await initializeProvider(mjConfig);
37
- // Initialize sync engine
38
- const syncEngine = await getSyncEngine(getSystemUser());
39
- // Show success after initialization
40
- if (flags.verbose) {
41
- spinner.succeed('Configuration and metadata loaded');
42
- }
43
- else {
27
+ await withNonInteractiveHandling(this, async () => {
28
+ try {
29
+ // Load configuration
30
+ spinner.start('Loading configuration');
31
+ const mjConfig = loadMJConfig();
32
+ if (!mjConfig) {
33
+ this.error('No mj.config.cjs found in current directory or parent directories');
34
+ }
35
+ // Stop spinner before the input phase
44
36
  spinner.stop();
45
- }
46
- // Determine sections to reset
47
- let sectionsToReset = [];
48
- const availableSections = ['primaryKey', 'sync'];
49
- if (flags.all) {
50
- sectionsToReset = availableSections;
51
- }
52
- else if (flags.sections) {
53
- sectionsToReset = flags.sections.split(',').map(s => s.trim());
54
- // Validate sections
55
- const invalidSections = sectionsToReset.filter(s => !availableSections.includes(s));
56
- if (invalidSections.length > 0) {
57
- this.error(`Invalid sections: ${invalidSections.join(', ')}. Valid sections are: ${availableSections.join(', ')}`);
37
+ // Everything from here to the confirmation is pure input gathering: which
38
+ // sections, which directory, and the go-ahead. None of it needs a database.
39
+ // Resolving it BEFORE initializeProvider means a run that is missing
40
+ // --sections/--all fails in milliseconds naming the flag, instead of opening
41
+ // a connection and loading the whole sync engine first only to refuse. That
42
+ // matters most for the caller who cannot answer a prompt — an agent or CI job
43
+ // gets the actionable error without ever touching the database.
44
+ // Determine sections to reset
45
+ let sectionsToReset = [];
46
+ const availableSections = ['primaryKey', 'sync'];
47
+ if (flags.all) {
48
+ sectionsToReset = availableSections;
58
49
  }
59
- }
60
- else {
61
- // Interactive selection
62
- sectionsToReset = await checkbox({
63
- message: 'Select sections to reset:',
64
- choices: [
65
- { name: 'Primary Key metadata', value: 'primaryKey', checked: false },
66
- { name: 'Sync metadata', value: 'sync', checked: false }
67
- ]
68
- });
69
- if (sectionsToReset.length === 0) {
70
- this.log(chalk.yellow('No sections selected. Exiting.'));
71
- return;
50
+ else if (flags.sections) {
51
+ sectionsToReset = flags.sections.split(',').map(s => s.trim());
52
+ // Validate sections
53
+ const invalidSections = sectionsToReset.filter(s => !availableSections.includes(s));
54
+ if (invalidSections.length > 0) {
55
+ this.error(`Invalid sections: ${invalidSections.join(', ')}. Valid sections are: ${availableSections.join(', ')}`);
56
+ }
72
57
  }
73
- }
74
- // Determine target directory
75
- const targetDir = flags.dir
76
- ? path.resolve(configManager.getOriginalCwd(), flags.dir)
77
- : configManager.getOriginalCwd();
78
- // Show what will be reset
79
- this.log(chalk.bold('\nFile Reset Summary:'));
80
- this.log(`Target directory: ${path.relative(process.cwd(), targetDir)}`);
81
- this.log(`Sections to reset: ${sectionsToReset.join(', ')}`);
82
- this.log(`Mode: ${flags['dry-run'] ? 'Dry run (no changes will be made)' : 'Live (files will be modified)'}`);
83
- // Confirm unless forced or dry-run
84
- if (!flags.force && !flags['dry-run']) {
85
- const shouldContinue = await confirm({
86
- message: 'This will reset the selected metadata sections. Continue?',
87
- default: false
88
- });
89
- if (!shouldContinue) {
90
- this.log(chalk.yellow('\nFile reset cancelled.'));
91
- return;
58
+ else {
59
+ // No --all/--sections given: ask when allowed, else fail naming the flags.
60
+ sectionsToReset = await resolveOrPrompt({
61
+ flagValue: undefined,
62
+ what: 'A list of sections to reset',
63
+ suggestion: `Pass --sections=${availableSections.join(',')} or --all.`,
64
+ prompt: () => checkbox({
65
+ message: 'Select sections to reset:',
66
+ choices: [
67
+ { name: 'Primary Key metadata', value: 'primaryKey', checked: false },
68
+ { name: 'Sync metadata', value: 'sync', checked: false }
69
+ ]
70
+ }),
71
+ });
72
+ if (sectionsToReset.length === 0) {
73
+ this.log(chalk.yellow('No sections selected. Exiting.'));
74
+ return;
75
+ }
92
76
  }
93
- }
94
- // Create file reset service and execute
95
- const fileResetService = new FileResetService();
96
- spinner.start('Resetting file metadata...');
97
- // Map selected sections to service options
98
- let serviceSection = 'both';
99
- if (sectionsToReset.includes('primaryKey') && sectionsToReset.includes('sync')) {
100
- serviceSection = 'both';
101
- }
102
- else if (sectionsToReset.includes('primaryKey')) {
103
- serviceSection = 'primaryKey';
104
- }
105
- else if (sectionsToReset.includes('sync')) {
106
- serviceSection = 'sync';
107
- }
108
- const result = await fileResetService.resetFiles({
109
- sections: serviceSection,
110
- dryRun: flags['dry-run'],
111
- noBackup: false,
112
- verbose: flags.verbose
113
- }, {
114
- onProgress: (message) => {
115
- spinner.start(message);
116
- },
117
- onWarn: (message) => {
118
- this.warn(message);
119
- },
120
- onLog: (message) => {
121
- this.log(message);
77
+ // Determine target directory
78
+ const targetDir = flags.dir
79
+ ? path.resolve(configManager.getOriginalCwd(), flags.dir)
80
+ : configManager.getOriginalCwd();
81
+ // Show what will be reset
82
+ this.log(chalk.bold('\nFile Reset Summary:'));
83
+ this.log(`Target directory: ${path.relative(process.cwd(), targetDir)}`);
84
+ this.log(`Sections to reset: ${sectionsToReset.join(', ')}`);
85
+ this.log(`Mode: ${flags['dry-run'] ? 'Dry run (no changes will be made)' : 'Live (files will be modified)'}`);
86
+ // Confirm unless forced or dry-run. Headless runs must pass --force explicitly:
87
+ // this rewrites files on disk, so silently assuming "yes" would be worse than failing.
88
+ if (!flags.force && !flags['dry-run']) {
89
+ const shouldContinue = await resolveOrPrompt({
90
+ flagValue: undefined,
91
+ what: 'Confirmation to reset metadata sections',
92
+ suggestion: 'Pass --force to proceed without confirmation, or --dry-run to preview.',
93
+ prompt: () => confirm({
94
+ message: 'This will reset the selected metadata sections. Continue?',
95
+ default: false
96
+ }),
97
+ });
98
+ if (!shouldContinue) {
99
+ this.log(chalk.yellow('\nFile reset cancelled.'));
100
+ return;
101
+ }
122
102
  }
123
- });
124
- spinner.stop();
125
- // Show summary
126
- if (result.modifiedFiles > 0) {
127
- if (flags['dry-run']) {
128
- this.log(chalk.blue(`\n🔍 Dry run complete. ${result.modifiedFiles} file(s) would be reset.`));
103
+ // Input is settled and the user has agreed — only now is the database worth
104
+ // opening.
105
+ await initializeProvider(mjConfig);
106
+ await getSyncEngine(getSystemUser());
107
+ if (flags.verbose) {
108
+ spinner.succeed('Configuration and metadata loaded');
129
109
  }
130
110
  else {
131
- this.log(chalk.green(`\n✅ Successfully reset ${result.modifiedFiles} file(s).`));
132
- if (result.backupsCreated > 0) {
133
- this.log(chalk.gray(` 📁 Created ${result.backupsCreated} backup(s).`));
111
+ spinner.stop();
112
+ }
113
+ // Create file reset service and execute
114
+ const fileResetService = new FileResetService();
115
+ spinner.start('Resetting file metadata...');
116
+ // Map selected sections to service options
117
+ let serviceSection = 'both';
118
+ if (sectionsToReset.includes('primaryKey') && sectionsToReset.includes('sync')) {
119
+ serviceSection = 'both';
120
+ }
121
+ else if (sectionsToReset.includes('primaryKey')) {
122
+ serviceSection = 'primaryKey';
123
+ }
124
+ else if (sectionsToReset.includes('sync')) {
125
+ serviceSection = 'sync';
126
+ }
127
+ const result = await fileResetService.resetFiles({
128
+ sections: serviceSection,
129
+ dryRun: flags['dry-run'],
130
+ noBackup: false,
131
+ verbose: flags.verbose
132
+ }, {
133
+ onProgress: (message) => {
134
+ spinner.start(message);
135
+ },
136
+ onWarn: (message) => {
137
+ this.warn(message);
138
+ },
139
+ onLog: (message) => {
140
+ this.log(message);
141
+ }
142
+ });
143
+ spinner.stop();
144
+ // Show summary
145
+ if (result.modifiedFiles > 0) {
146
+ if (flags['dry-run']) {
147
+ this.log(chalk.blue(`\n🔍 Dry run complete. ${result.modifiedFiles} file(s) would be reset.`));
148
+ }
149
+ else {
150
+ this.log(chalk.green(`\n✅ Successfully reset ${result.modifiedFiles} file(s).`));
151
+ if (result.backupsCreated > 0) {
152
+ this.log(chalk.gray(` 📁 Created ${result.backupsCreated} backup(s).`));
153
+ }
134
154
  }
135
155
  }
156
+ else {
157
+ this.log(chalk.yellow('\n⚠️ No files needed resetting.'));
158
+ }
159
+ if (flags.verbose) {
160
+ this.log(`\n📊 Statistics:`);
161
+ this.log(` Files processed: ${result.processedFiles}`);
162
+ this.log(` Files with primaryKey: ${result.filesWithPrimaryKey}`);
163
+ this.log(` Files with sync: ${result.filesWithSync}`);
164
+ this.log(` Total primaryKeys removed: ${result.totalPrimaryKeys}`);
165
+ this.log(` Total syncs removed: ${result.totalSyncs}`);
166
+ }
136
167
  }
137
- else {
138
- this.log(chalk.yellow('\n⚠️ No files needed resetting.'));
139
- }
140
- if (flags.verbose) {
141
- this.log(`\n📊 Statistics:`);
142
- this.log(` Files processed: ${result.processedFiles}`);
143
- this.log(` Files with primaryKey: ${result.filesWithPrimaryKey}`);
144
- this.log(` Files with sync: ${result.filesWithSync}`);
145
- this.log(` Total primaryKeys removed: ${result.totalPrimaryKeys}`);
146
- this.log(` Total syncs removed: ${result.totalSyncs}`);
168
+ catch (error) {
169
+ // A refusal to prompt is not a file-reset failure — let it through so the
170
+ // caller sees the flag to pass rather than a stack trace.
171
+ if (error instanceof NonInteractiveError)
172
+ throw error;
173
+ spinner.fail('File reset failed');
174
+ // Enhanced error logging
175
+ this.log('\n=== File Reset Error Details ===');
176
+ this.log(`Error type: ${error?.constructor?.name || 'Unknown'}`);
177
+ this.log(`Error message: ${error instanceof Error ? error.message : String(error)}`);
178
+ if (error instanceof Error && error.stack) {
179
+ this.log(`\nStack trace:`);
180
+ this.log(error.stack);
181
+ }
182
+ this.error(error);
147
183
  }
148
- }
149
- catch (error) {
150
- spinner.fail('File reset failed');
151
- // Enhanced error logging
152
- this.log('\n=== File Reset Error Details ===');
153
- this.log(`Error type: ${error?.constructor?.name || 'Unknown'}`);
154
- this.log(`Error message: ${error instanceof Error ? error.message : String(error)}`);
155
- if (error instanceof Error && error.stack) {
156
- this.log(`\nStack trace:`);
157
- this.log(error.stack);
184
+ finally {
185
+ // Reset singletons
186
+ resetSyncEngine();
158
187
  }
159
- this.error(error);
160
- }
161
- finally {
162
- // Reset singletons
163
- resetSyncEngine();
164
- }
188
+ });
165
189
  }
166
190
  }
167
191
  //# sourceMappingURL=file-reset.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"file-reset.js","sourceRoot":"","sources":["../../../src/commands/sync/file-reset.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"file-reset.js","sourceRoot":"","sources":["../../../src/commands/sync/file-reset.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,mBAAmB,EAAE,eAAe,EAAE,0BAA0B,EAAE,MAAM,gCAAgC,CAAC;AAClH,OAAO,GAAG,MAAM,aAAa,CAAC;AAC9B,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAE7B,MAAM,CAAC,OAAO,OAAO,SAAU,SAAQ,OAAO;aACrC,gBAAW,GAAG,8BAA8B,CAAC;aAE7C,aAAQ,GAAG;QAChB,qCAAqC;QACrC,wDAAwD;QACxD,0EAA0E;QAC1E,2CAA2C;KAC5C,CAAC;aAEK,UAAK,GAAG;QACb,GAAG,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,oCAAoC,EAAE,CAAC;QACxE,QAAQ,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,oFAAoF,EAAE,CAAC;QAC7H,GAAG,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE,WAAW,EAAE,6BAA6B,EAAE,CAAC;QAClE,SAAS,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE,WAAW,EAAE,qDAAqD,EAAE,CAAC;QAChG,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE,WAAW,EAAE,2BAA2B,EAAE,CAAC;QAClE,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,WAAW,EAAE,sBAAsB,EAAE,CAAC;KAC3E,CAAC;IAEF,KAAK,CAAC,GAAG;QACP,MAAM,EACJ,gBAAgB,EAAE,YAAY,EAAE,kBAAkB,EAClD,aAAa,EAAE,aAAa,EAAE,eAAe,EAAE,aAAa,GAC7D,GAAG,MAAM,MAAM,CAAC,+BAA+B,CAAC,CAAC;QAElD,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QAC9C,MAAM,OAAO,GAAG,GAAG,EAAE,CAAC;QAEtB,MAAM,0BAA0B,CAAC,IAAI,EAAE,KAAK,IAAI,EAAE;YAChD,IAAI,CAAC;gBACH,qBAAqB;gBACrB,OAAO,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC;gBACvC,MAAM,QAAQ,GAAG,YAAY,EAAE,CAAC;gBAChC,IAAI,CAAC,QAAQ,EAAE,CAAC;oBACd,IAAI,CAAC,KAAK,CAAC,mEAAmE,CAAC,CAAC;gBAClF,CAAC;gBAED,sCAAsC;gBACtC,OAAO,CAAC,IAAI,EAAE,CAAC;gBAEf,0EAA0E;gBAC1E,4EAA4E;gBAC5E,qEAAqE;gBACrE,6EAA6E;gBAC7E,4EAA4E;gBAC5E,8EAA8E;gBAC9E,gEAAgE;gBAEhE,8BAA8B;gBAC9B,IAAI,eAAe,GAAa,EAAE,CAAC;gBACnC,MAAM,iBAAiB,GAAG,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;gBAEjD,IAAI,KAAK,CAAC,GAAG,EAAE,CAAC;oBACd,eAAe,GAAG,iBAAiB,CAAC;gBACtC,CAAC;qBAAM,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;oBAC1B,eAAe,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;oBAE/D,oBAAoB;oBACpB,MAAM,eAAe,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;oBACpF,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBAC/B,IAAI,CAAC,KAAK,CAAC,qBAAqB,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,yBAAyB,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;oBACrH,CAAC;gBACH,CAAC;qBAAM,CAAC;oBACN,2EAA2E;oBAC3E,eAAe,GAAG,MAAM,eAAe,CAAW;wBAChD,SAAS,EAAE,SAAS;wBACpB,IAAI,EAAE,6BAA6B;wBACnC,UAAU,EAAE,mBAAmB,iBAAiB,CAAC,IAAI,CAAC,GAAG,CAAC,YAAY;wBACtE,MAAM,EAAE,GAAG,EAAE,CACX,QAAQ,CAAC;4BACP,OAAO,EAAE,2BAA2B;4BACpC,OAAO,EAAE;gCACP,EAAE,IAAI,EAAE,sBAAsB,EAAE,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,KAAK,EAAE;gCACrE,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE;6BACzD;yBACF,CAAC;qBACL,CAAC,CAAC;oBAEH,IAAI,eAAe,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;wBACjC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,gCAAgC,CAAC,CAAC,CAAC;wBACzD,OAAO;oBACT,CAAC;gBACH,CAAC;gBAED,6BAA6B;gBAC7B,MAAM,SAAS,GAAG,KAAK,CAAC,GAAG;oBACzB,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,cAAc,EAAE,EAAE,KAAK,CAAC,GAAG,CAAC;oBACzD,CAAC,CAAC,aAAa,CAAC,cAAc,EAAE,CAAC;gBAEnC,0BAA0B;gBAC1B,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC,CAAC;gBAC9C,IAAI,CAAC,GAAG,CAAC,qBAAqB,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,SAAS,CAAC,EAAE,CAAC,CAAC;gBACzE,IAAI,CAAC,GAAG,CAAC,sBAAsB,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBAC7D,IAAI,CAAC,GAAG,CAAC,SAAS,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,mCAAmC,CAAC,CAAC,CAAC,+BAA+B,EAAE,CAAC,CAAC;gBAE9G,gFAAgF;gBAChF,uFAAuF;gBACvF,IAAI,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC;oBACtC,MAAM,cAAc,GAAG,MAAM,eAAe,CAAU;wBACpD,SAAS,EAAE,SAAS;wBACpB,IAAI,EAAE,yCAAyC;wBAC/C,UAAU,EAAE,wEAAwE;wBACpF,MAAM,EAAE,GAAG,EAAE,CACX,OAAO,CAAC;4BACN,OAAO,EAAE,2DAA2D;4BACpE,OAAO,EAAE,KAAK;yBACf,CAAC;qBACL,CAAC,CAAC;oBAEH,IAAI,CAAC,cAAc,EAAE,CAAC;wBACpB,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,yBAAyB,CAAC,CAAC,CAAC;wBAClD,OAAO;oBACT,CAAC;gBACH,CAAC;gBAED,4EAA4E;gBAC5E,WAAW;gBACX,MAAM,kBAAkB,CAAC,QAAQ,CAAC,CAAC;gBACnC,MAAM,aAAa,CAAC,aAAa,EAAE,CAAC,CAAC;gBAErC,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;oBAClB,OAAO,CAAC,OAAO,CAAC,mCAAmC,CAAC,CAAC;gBACvD,CAAC;qBAAM,CAAC;oBACN,OAAO,CAAC,IAAI,EAAE,CAAC;gBACjB,CAAC;gBAED,wCAAwC;gBACxC,MAAM,gBAAgB,GAAG,IAAI,gBAAgB,EAAE,CAAC;gBAEhD,OAAO,CAAC,KAAK,CAAC,4BAA4B,CAAC,CAAC;gBAE5C,2CAA2C;gBAC3C,IAAI,cAAc,GAAmC,MAAM,CAAC;gBAC5D,IAAI,eAAe,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,eAAe,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;oBAC/E,cAAc,GAAG,MAAM,CAAC;gBAC1B,CAAC;qBAAM,IAAI,eAAe,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;oBAClD,cAAc,GAAG,YAAY,CAAC;gBAChC,CAAC;qBAAM,IAAI,eAAe,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;oBAC5C,cAAc,GAAG,MAAM,CAAC;gBAC1B,CAAC;gBAED,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC,UAAU,CAAC;oBAC/C,QAAQ,EAAE,cAAc;oBACxB,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC;oBACxB,QAAQ,EAAE,KAAK;oBACf,OAAO,EAAE,KAAK,CAAC,OAAO;iBACvB,EAAE;oBACD,UAAU,EAAE,CAAC,OAAe,EAAE,EAAE;wBAC9B,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;oBACzB,CAAC;oBACD,MAAM,EAAE,CAAC,OAAe,EAAE,EAAE;wBAC1B,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;oBACrB,CAAC;oBACD,KAAK,EAAE,CAAC,OAAe,EAAE,EAAE;wBACzB,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;oBACpB,CAAC;iBACF,CAAC,CAAC;gBAEH,OAAO,CAAC,IAAI,EAAE,CAAC;gBAEf,eAAe;gBACf,IAAI,MAAM,CAAC,aAAa,GAAG,CAAC,EAAE,CAAC;oBAC7B,IAAI,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC;wBACrB,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,0BAA0B,MAAM,CAAC,aAAa,0BAA0B,CAAC,CAAC,CAAC;oBACjG,CAAC;yBAAM,CAAC;wBACN,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,0BAA0B,MAAM,CAAC,aAAa,WAAW,CAAC,CAAC,CAAC;wBACjF,IAAI,MAAM,CAAC,cAAc,GAAG,CAAC,EAAE,CAAC;4BAC9B,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,iBAAiB,MAAM,CAAC,cAAc,aAAa,CAAC,CAAC,CAAC;wBAC5E,CAAC;oBACH,CAAC;gBACH,CAAC;qBAAM,CAAC;oBACN,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,kCAAkC,CAAC,CAAC,CAAC;gBAC7D,CAAC;gBAED,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;oBAClB,IAAI,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;oBAC7B,IAAI,CAAC,GAAG,CAAC,uBAAuB,MAAM,CAAC,cAAc,EAAE,CAAC,CAAC;oBACzD,IAAI,CAAC,GAAG,CAAC,6BAA6B,MAAM,CAAC,mBAAmB,EAAE,CAAC,CAAC;oBACpE,IAAI,CAAC,GAAG,CAAC,uBAAuB,MAAM,CAAC,aAAa,EAAE,CAAC,CAAC;oBACxD,IAAI,CAAC,GAAG,CAAC,iCAAiC,MAAM,CAAC,gBAAgB,EAAE,CAAC,CAAC;oBACrE,IAAI,CAAC,GAAG,CAAC,2BAA2B,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC;gBAC3D,CAAC;YAEH,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,0EAA0E;gBAC1E,0DAA0D;gBAC1D,IAAI,KAAK,YAAY,mBAAmB;oBAAE,MAAM,KAAK,CAAC;gBAEtD,OAAO,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;gBAElC,yBAAyB;gBACzB,IAAI,CAAC,GAAG,CAAC,oCAAoC,CAAC,CAAC;gBAC/C,IAAI,CAAC,GAAG,CAAC,eAAe,KAAK,EAAE,WAAW,EAAE,IAAI,IAAI,SAAS,EAAE,CAAC,CAAC;gBACjE,IAAI,CAAC,GAAG,CAAC,kBAAkB,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;gBAErF,IAAI,KAAK,YAAY,KAAK,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;oBAC1C,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;oBAC3B,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;gBACxB,CAAC;gBAED,IAAI,CAAC,KAAK,CAAC,KAAc,CAAC,CAAC;YAC7B,CAAC;oBAAS,CAAC;gBACT,mBAAmB;gBACnB,eAAe,EAAE,CAAC;YACpB,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC"}
@@ -1,7 +1,16 @@
1
1
  import { Command } from '@oclif/core';
2
2
  export default class Init extends Command {
3
3
  static description: string;
4
- static examples: string[];
4
+ static examples: {
5
+ command: string;
6
+ description: string;
7
+ }[];
8
+ static flags: {
9
+ 'setup-entity': import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
10
+ entity: import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
11
+ dir: import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
12
+ overwrite: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>;
13
+ };
5
14
  run(): Promise<void>;
6
15
  }
7
16
  //# sourceMappingURL=init.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../../src/commands/sync/init.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAItC,MAAM,CAAC,OAAO,OAAO,IAAK,SAAQ,OAAO;IACvC,MAAM,CAAC,WAAW,SAAyD;IAE3E,MAAM,CAAC,QAAQ,WAEb;IAEI,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CAsG3B"}
1
+ {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../../src/commands/sync/init.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAS,MAAM,aAAa,CAAC;AAU7C,MAAM,CAAC,OAAO,OAAO,IAAK,SAAQ,OAAO;IACvC,MAAM,CAAC,WAAW,SAG+C;IAEjE,MAAM,CAAC,QAAQ;;;QAWb;IAEF,MAAM,CAAC,KAAK;;;;;MAWV;IAEI,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CA+H3B"}
@@ -1,96 +1,145 @@
1
- import { Command } from '@oclif/core';
1
+ import { existsSync } from 'node:fs';
2
+ import path from 'node:path';
3
+ import { Command, Flags } from '@oclif/core';
2
4
  import { input, select } from '@inquirer/prompts';
3
5
  import ora from 'ora-classic';
6
+ import { NonInteractiveError, isInteractiveRun, resolveOrPrompt, withNonInteractiveHandling, } from '../../lib/interactive-guard.js';
4
7
  export default class Init extends Command {
5
- static { this.description = 'Initialize a directory for metadata synchronization'; }
8
+ static { this.description = `Initialize a directory for metadata synchronization.
9
+
10
+ Prompts at a terminal; runs unattended when piped, spawned, or in CI. To script it,
11
+ pass --setup-entity (and --entity/--dir when setting up "other").`; }
6
12
  static { this.examples = [
7
- `<%= config.bin %> <%= command.id %>`,
13
+ { command: `<%= config.bin %> <%= command.id %> --setup-entity=no`, description: 'Initialize with no entity directory' },
14
+ {
15
+ command: `<%= config.bin %> <%= command.id %> --setup-entity=ai-prompts`,
16
+ description: 'Initialize and set up the AI Prompts directory',
17
+ },
18
+ {
19
+ command: `<%= config.bin %> <%= command.id %> --setup-entity=other --entity="MJ: AI Models" --dir=ai-models`,
20
+ description: 'Initialize for an arbitrary entity',
21
+ },
22
+ { command: `<%= config.bin %> <%= command.id %> --no-interactive --setup-entity=no`, description: 'Never prompt, even at a terminal' },
8
23
  ]; }
24
+ static { this.flags = {
25
+ 'setup-entity': Flags.string({
26
+ options: ['ai-prompts', 'other', 'no'],
27
+ description: 'Which entity directory to set up. Use "no" to skip.',
28
+ }),
29
+ entity: Flags.string({ description: 'Entity name when --setup-entity=other (e.g. "MJ: AI Models").' }),
30
+ dir: Flags.string({ description: 'Directory name when --setup-entity=other. Defaults to a slug of --entity.' }),
31
+ overwrite: Flags.boolean({
32
+ allowNo: true,
33
+ description: 'Overwrite an existing configuration. Without this, an initialized directory is left untouched.',
34
+ }),
35
+ }; }
9
36
  async run() {
10
- const { InitService } = await import('@memberjunction/metadata-sync');
11
- const spinner = ora();
12
- try {
13
- // Check if already initialized
14
- const initService = new InitService();
15
- // Build options from user input
16
- const options = {};
17
- // Check for existing configuration
37
+ const { flags } = await this.parse(Init);
38
+ await withNonInteractiveHandling(this, async () => {
39
+ const { InitService } = await import('@memberjunction/metadata-sync');
40
+ const spinner = ora();
18
41
  try {
19
- // If .mj-sync.json exists, ask about overwrite
20
- const overwrite = await select({
21
- message: 'Directory already initialized. Overwrite configuration?',
22
- choices: [
23
- { name: 'Yes', value: true },
24
- { name: 'No', value: false }
25
- ]
42
+ // Check if already initialized
43
+ const initService = new InitService();
44
+ // Build options from user input
45
+ const options = {};
46
+ // Only an ALREADY-initialized directory raises the overwrite question. The
47
+ // previous version asked unconditionally — harmless while the answer was a
48
+ // prompt a human could dismiss, but fatal once a missing answer became an
49
+ // error, since a first-time `mj sync init` has nothing to overwrite.
50
+ if (existsSync(path.join(process.cwd(), '.mj-sync.json'))) {
51
+ const overwrite = await resolveOrPrompt({
52
+ flagValue: flags.overwrite,
53
+ what: 'An overwrite decision (this directory is already initialized)',
54
+ suggestion: 'Pass --overwrite to replace the existing configuration, or --no-overwrite to leave it alone.',
55
+ prompt: () => select({
56
+ message: 'Directory already initialized. Overwrite configuration?',
57
+ choices: [
58
+ { name: 'Yes', value: true },
59
+ { name: 'No', value: false },
60
+ ],
61
+ }),
62
+ });
63
+ if (!overwrite) {
64
+ this.log('Initialization cancelled');
65
+ return;
66
+ }
67
+ options.overwrite = true;
68
+ }
69
+ // Ask if they want to set up an entity directory
70
+ const setupEntity = await resolveOrPrompt({
71
+ flagValue: flags['setup-entity'],
72
+ what: 'An entity-directory choice',
73
+ suggestion: 'Pass --setup-entity=ai-prompts|other|no.',
74
+ prompt: () => select({
75
+ message: 'Would you like to set up an entity directory now?',
76
+ choices: [
77
+ { name: 'Yes - AI Prompts', value: 'ai-prompts' },
78
+ { name: 'Yes - Other entity', value: 'other' },
79
+ { name: "No - I'll set up later", value: 'no' },
80
+ ],
81
+ }),
26
82
  });
27
- if (!overwrite) {
28
- this.log('Initialization cancelled');
29
- return;
83
+ options.setupEntity = setupEntity;
84
+ if (setupEntity === 'other') {
85
+ options.entityName = await resolveOrPrompt({
86
+ flagValue: flags.entity,
87
+ what: 'An entity name',
88
+ suggestion: 'Pass --entity "MJ: AI Models".',
89
+ prompt: () => input({ message: 'Enter the entity name (e.g., "Templates", "MJ: AI Models"):' }),
90
+ });
91
+ const defaultDir = options.entityName.toLowerCase().replace(/\s+/g, '-');
92
+ options.dirName = await resolveOrPrompt({
93
+ // A directory name always has a sane default derived from the entity, so
94
+ // headless runs fall back to it rather than failing.
95
+ flagValue: flags.dir ?? (isInteractiveRun() ? undefined : defaultDir),
96
+ what: 'A directory name',
97
+ suggestion: `Pass --dir ${defaultDir}.`,
98
+ prompt: () => input({ message: 'Enter the directory name:', default: defaultDir }),
99
+ });
30
100
  }
31
- options.overwrite = true;
32
- }
33
- catch {
34
- // File doesn't exist, proceed normally
35
- }
36
- // Ask if they want to set up an entity directory
37
- const setupEntity = await select({
38
- message: 'Would you like to set up an entity directory now?',
39
- choices: [
40
- { name: 'Yes - AI Prompts', value: 'ai-prompts' },
41
- { name: 'Yes - Other entity', value: 'other' },
42
- { name: 'No - I\'ll set up later', value: 'no' }
43
- ]
44
- });
45
- options.setupEntity = setupEntity;
46
- if (setupEntity === 'other') {
47
- options.entityName = await input({
48
- message: 'Enter the entity name (e.g., "Templates", "MJ: AI Models"):'
101
+ // Initialize with callbacks
102
+ await initService.initialize(options, {
103
+ onProgress: (message) => {
104
+ spinner.start(message);
105
+ },
106
+ onSuccess: (message) => {
107
+ spinner.succeed(message);
108
+ },
109
+ onError: (message) => {
110
+ spinner.fail(message);
111
+ },
49
112
  });
50
- options.dirName = await input({
51
- message: 'Enter the directory name:',
52
- default: options.entityName.toLowerCase().replace(/\s+/g, '-')
113
+ this.log('\n✅ Initialization complete!');
114
+ // Show next steps
115
+ const nextSteps = initService.getNextSteps();
116
+ this.log('\nNext steps:');
117
+ nextSteps.forEach((step, index) => {
118
+ this.log(`${index + 1}. ${step.replace('mj-sync', 'mj sync')}`);
53
119
  });
54
120
  }
55
- // Initialize with callbacks
56
- await initService.initialize(options, {
57
- onProgress: (message) => {
58
- spinner.start(message);
59
- },
60
- onSuccess: (message) => {
61
- spinner.succeed(message);
62
- },
63
- onError: (message) => {
64
- spinner.fail(message);
121
+ catch (error) {
122
+ if (error instanceof NonInteractiveError)
123
+ throw error;
124
+ spinner.fail('Initialization failed');
125
+ // Enhanced error logging
126
+ this.log('\n=== Initialization Error Details ===');
127
+ this.log(`Error type: ${error?.constructor?.name || 'Unknown'}`);
128
+ this.log(`Error message: ${error instanceof Error ? error.message : String(error)}`);
129
+ if (error instanceof Error && error.stack) {
130
+ this.log(`\nStack trace:`);
131
+ this.log(error.stack);
65
132
  }
66
- });
67
- this.log('\n✅ Initialization complete!');
68
- // Show next steps
69
- const nextSteps = initService.getNextSteps();
70
- this.log('\nNext steps:');
71
- nextSteps.forEach((step, index) => {
72
- this.log(`${index + 1}. ${step.replace('mj-sync', 'mj sync')}`);
73
- });
74
- }
75
- catch (error) {
76
- spinner.fail('Initialization failed');
77
- // Enhanced error logging
78
- this.log('\n=== Initialization Error Details ===');
79
- this.log(`Error type: ${error?.constructor?.name || 'Unknown'}`);
80
- this.log(`Error message: ${error instanceof Error ? error.message : String(error)}`);
81
- if (error instanceof Error && error.stack) {
82
- this.log(`\nStack trace:`);
83
- this.log(error.stack);
84
- }
85
- // Check for error hints
86
- if (error instanceof Error) {
87
- const hint = new InitService().getErrorHint(error);
88
- if (hint) {
89
- this.log(`\nHint: ${hint}`);
133
+ // Check for error hints
134
+ if (error instanceof Error) {
135
+ const hint = new InitService().getErrorHint(error);
136
+ if (hint) {
137
+ this.log(`\nHint: ${hint}`);
138
+ }
90
139
  }
140
+ this.error(error);
91
141
  }
92
- this.error(error);
93
- }
142
+ });
94
143
  }
95
144
  }
96
145
  //# sourceMappingURL=init.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"init.js","sourceRoot":"","sources":["../../../src/commands/sync/init.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"init.js","sourceRoot":"","sources":["../../../src/commands/sync/init.ts"],"names":[],"mappings":"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"}