@fractary/core-cli 0.1.1 → 0.2.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/cli.js CHANGED
@@ -17,6 +17,7 @@ const spec_1 = require("./commands/spec");
17
17
  const logs_1 = require("./commands/logs");
18
18
  const file_1 = require("./commands/file");
19
19
  const docs_1 = require("./commands/docs");
20
+ const config_1 = require("./commands/config");
20
21
  // Package information
21
22
  const packageJson = require('../package.json');
22
23
  // Create main program
@@ -32,9 +33,12 @@ program.addCommand((0, spec_1.createSpecCommand)());
32
33
  program.addCommand((0, logs_1.createLogsCommand)());
33
34
  program.addCommand((0, file_1.createFileCommand)());
34
35
  program.addCommand((0, docs_1.createDocsCommand)());
36
+ // Add config command
37
+ (0, config_1.registerConfigCommand)(program);
35
38
  // Custom help text
36
39
  program.addHelpText('after', `
37
40
  ${chalk_1.default.bold('Commands:')}
41
+ config Manage configuration (validate, show)
38
42
  work Work item tracking (issues, comments, labels, milestones)
39
43
  repo Repository operations (branches, commits, PRs, tags, worktrees)
40
44
  spec Specification management (create, validate, refine)
@@ -43,6 +47,8 @@ ${chalk_1.default.bold('Commands:')}
43
47
  docs Documentation management (create, search, export)
44
48
 
45
49
  ${chalk_1.default.bold('Examples:')}
50
+ $ fractary-core config validate
51
+ $ fractary-core config show
46
52
  $ fractary-core work issue fetch 123
47
53
  $ fractary-core repo commit --message "Add feature" --type feat
48
54
  $ fractary-core spec validate SPEC-20241216
@@ -70,7 +76,7 @@ async function main() {
70
76
  }
71
77
  if (error.code === 'commander.unknownCommand') {
72
78
  console.error(chalk_1.default.red('Unknown command:'), error.message);
73
- console.log(chalk_1.default.gray('\nAvailable commands: work, repo, spec, logs, file, docs'));
79
+ console.log(chalk_1.default.gray('\nAvailable commands: config, work, repo, spec, logs, file, docs'));
74
80
  console.log(chalk_1.default.gray('Run "fractary-core --help" for more information.'));
75
81
  process.exit(1);
76
82
  }
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";;AAEA;;;;GAIG;;;;;AAEH,yCAAoC;AACpC,kDAA0B;AAC1B,0CAAoD;AACpD,0CAAoD;AACpD,0CAAoD;AACpD,0CAAoD;AACpD,0CAAoD;AACpD,0CAAoD;AAEpD,sBAAsB;AACtB,MAAM,WAAW,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;AAE/C,sBAAsB;AACtB,MAAM,OAAO,GAAG,IAAI,mBAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,eAAe,CAAC;KACrB,WAAW,CAAC,gEAAgE,CAAC;KAC7E,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;AAEhC,wBAAwB;AACxB,OAAO,CAAC,UAAU,CAAC,IAAA,wBAAiB,GAAE,CAAC,CAAC;AACxC,OAAO,CAAC,UAAU,CAAC,IAAA,wBAAiB,GAAE,CAAC,CAAC;AACxC,OAAO,CAAC,UAAU,CAAC,IAAA,wBAAiB,GAAE,CAAC,CAAC;AACxC,OAAO,CAAC,UAAU,CAAC,IAAA,wBAAiB,GAAE,CAAC,CAAC;AACxC,OAAO,CAAC,UAAU,CAAC,IAAA,wBAAiB,GAAE,CAAC,CAAC;AACxC,OAAO,CAAC,UAAU,CAAC,IAAA,wBAAiB,GAAE,CAAC,CAAC;AAExC,mBAAmB;AACnB,OAAO,CAAC,WAAW,CACjB,OAAO,EACP;EACA,eAAK,CAAC,IAAI,CAAC,WAAW,CAAC;;;;;;;;EAQvB,eAAK,CAAC,IAAI,CAAC,WAAW,CAAC;;;;;;;;EAQvB,eAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC;QACtB,eAAK,CAAC,IAAI,CAAC,gCAAgC,CAAC;CACnD,CACA,CAAC;AAEF,oCAAoC;AACpC,IAAI,OAAO,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;IAC9B,OAAO,CAAC,UAAU,EAAE,CAAC;IACrB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AAED,iBAAiB;AACjB,OAAO,CAAC,YAAY,EAAE,CAAC;AAEvB,KAAK,UAAU,IAAI;IACjB,IAAI,CAAC;QACH,MAAM,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACzC,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QACpB,IAAI,KAAK,CAAC,IAAI,KAAK,gBAAgB,EAAE,CAAC;YACpC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,IAAI,KAAK,CAAC,IAAI,KAAK,0BAA0B,EAAE,CAAC;YAC9C,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,GAAG,CAAC,kBAAkB,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;YAC5D,OAAO,CAAC,GAAG,CACT,eAAK,CAAC,IAAI,CAAC,0DAA0D,CAAC,CACvE,CAAC;YACF,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,kDAAkD,CAAC,CAAC,CAAC;YAC5E,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;QAClD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AAED,UAAU;AACV,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;IACrB,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE,KAAK,CAAC,CAAC;IAChD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Config command - Validate and display Fractary Core configuration
3
+ *
4
+ * Commands:
5
+ * - validate: Validate .fractary/core/config.yaml
6
+ * - show: Display config (redacted)
7
+ */
8
+ import { Command } from 'commander';
9
+ /**
10
+ * Register config command
11
+ */
12
+ export declare function registerConfigCommand(program: Command): void;
13
+ //# sourceMappingURL=config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/commands/config.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAkPpC;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAe5D"}
@@ -0,0 +1,240 @@
1
+ "use strict";
2
+ /**
3
+ * Config command - Validate and display Fractary Core configuration
4
+ *
5
+ * Commands:
6
+ * - validate: Validate .fractary/core/config.yaml
7
+ * - show: Display config (redacted)
8
+ */
9
+ var __importDefault = (this && this.__importDefault) || function (mod) {
10
+ return (mod && mod.__esModule) ? mod : { "default": mod };
11
+ };
12
+ Object.defineProperty(exports, "__esModule", { value: true });
13
+ exports.registerConfigCommand = registerConfigCommand;
14
+ const config_js_1 = require("../utils/config.js");
15
+ const chalk_1 = __importDefault(require("chalk"));
16
+ const fs_1 = require("fs");
17
+ const yaml_config_1 = require("@fractary/core/common/yaml-config");
18
+ /**
19
+ * Redact sensitive values from config for display
20
+ */
21
+ function redactConfig(config) {
22
+ if (!config)
23
+ return config;
24
+ const redacted = JSON.parse(JSON.stringify(config));
25
+ function redactObject(obj) {
26
+ for (const key in obj) {
27
+ if (typeof obj[key] === 'string') {
28
+ // Redact values that look like tokens or contain ${ENV_VAR}
29
+ if (key.toLowerCase().includes('token') ||
30
+ key.toLowerCase().includes('key') ||
31
+ key.toLowerCase().includes('secret') ||
32
+ key.toLowerCase().includes('password') ||
33
+ obj[key].includes('${')) {
34
+ if (obj[key].includes('${')) {
35
+ // Keep environment variable references
36
+ obj[key] = obj[key];
37
+ }
38
+ else {
39
+ // Redact actual values
40
+ obj[key] = '********';
41
+ }
42
+ }
43
+ }
44
+ else if (typeof obj[key] === 'object' && obj[key] !== null) {
45
+ redactObject(obj[key]);
46
+ }
47
+ }
48
+ }
49
+ redactObject(redacted);
50
+ return redacted;
51
+ }
52
+ /**
53
+ * Validate configuration command
54
+ */
55
+ async function validateCommand(options) {
56
+ try {
57
+ const projectRoot = (0, yaml_config_1.findProjectRoot)();
58
+ const configPath = (0, config_js_1.getConfigPath)(projectRoot);
59
+ console.log(chalk_1.default.blue('🔍 Validating Fractary Core configuration\n'));
60
+ console.log(chalk_1.default.gray(`Config file: ${configPath}\n`));
61
+ // Check if config file exists
62
+ if (!(0, fs_1.existsSync)(configPath)) {
63
+ console.log(chalk_1.default.red('❌ Configuration file not found'));
64
+ console.log(chalk_1.default.yellow('\nTo create a configuration file, run:'));
65
+ console.log(chalk_1.default.cyan(' fractary-core:configure'));
66
+ process.exit(1);
67
+ }
68
+ // Check if it's a valid YAML file by trying to load it
69
+ let config;
70
+ try {
71
+ config = (0, config_js_1.loadConfig)(projectRoot);
72
+ }
73
+ catch (error) {
74
+ console.log(chalk_1.default.red('❌ Invalid YAML format'));
75
+ console.log(chalk_1.default.yellow('\nError:'), error instanceof Error ? error.message : String(error));
76
+ process.exit(1);
77
+ }
78
+ if (!config) {
79
+ console.log(chalk_1.default.red('❌ Failed to load configuration'));
80
+ process.exit(1);
81
+ }
82
+ // Validation checks
83
+ const errors = [];
84
+ const warnings = [];
85
+ // Check version field
86
+ if (!config.version) {
87
+ errors.push('Missing required field: version');
88
+ }
89
+ else if (config.version !== '2.0') {
90
+ warnings.push(`Unexpected version: ${config.version} (expected: 2.0)`);
91
+ }
92
+ // Check for at least one plugin section
93
+ const pluginSections = ['work', 'repo', 'logs', 'file', 'spec', 'docs'];
94
+ const presentSections = pluginSections.filter((section) => config[section]);
95
+ if (presentSections.length === 0) {
96
+ warnings.push('No plugin sections found in configuration');
97
+ }
98
+ // Validate work section
99
+ if (config.work) {
100
+ if (!config.work.active_handler) {
101
+ errors.push('Missing required field: work.active_handler');
102
+ }
103
+ if (!config.work.handlers) {
104
+ errors.push('Missing required field: work.handlers');
105
+ }
106
+ else {
107
+ const activeHandler = config.work.active_handler;
108
+ if (!config.work.handlers[activeHandler]) {
109
+ errors.push(`Configuration for work handler '${activeHandler}' not found in work.handlers`);
110
+ }
111
+ }
112
+ }
113
+ // Validate repo section
114
+ if (config.repo) {
115
+ if (!config.repo.active_handler) {
116
+ errors.push('Missing required field: repo.active_handler');
117
+ }
118
+ if (!config.repo.handlers) {
119
+ errors.push('Missing required field: repo.handlers');
120
+ }
121
+ else {
122
+ const activeHandler = config.repo.active_handler;
123
+ if (!config.repo.handlers[activeHandler]) {
124
+ errors.push(`Configuration for repo handler '${activeHandler}' not found in repo.handlers`);
125
+ }
126
+ }
127
+ }
128
+ // Validate file section
129
+ if (config.file) {
130
+ if (!config.file.active_handler) {
131
+ errors.push('Missing required field: file.active_handler');
132
+ }
133
+ if (!config.file.handlers) {
134
+ errors.push('Missing required field: file.handlers');
135
+ }
136
+ else {
137
+ const activeHandler = config.file.active_handler;
138
+ if (!config.file.handlers[activeHandler]) {
139
+ errors.push(`Configuration for file handler '${activeHandler}' not found in file.handlers`);
140
+ }
141
+ }
142
+ }
143
+ // Check for missing environment variables
144
+ const missingEnvVars = (0, yaml_config_1.validateEnvVars)(config);
145
+ if (missingEnvVars.length > 0) {
146
+ warnings.push(`Missing environment variables: ${missingEnvVars.join(', ')}`);
147
+ }
148
+ // Display results
149
+ console.log(chalk_1.default.bold('Validation Results:\n'));
150
+ if (errors.length === 0 && warnings.length === 0) {
151
+ console.log(chalk_1.default.green('✅ Configuration is valid'));
152
+ }
153
+ else {
154
+ if (errors.length > 0) {
155
+ console.log(chalk_1.default.red(`❌ ${errors.length} error(s) found:\n`));
156
+ errors.forEach((error) => {
157
+ console.log(chalk_1.default.red(` • ${error}`));
158
+ });
159
+ console.log();
160
+ }
161
+ if (warnings.length > 0) {
162
+ console.log(chalk_1.default.yellow(`⚠️ ${warnings.length} warning(s) found:\n`));
163
+ warnings.forEach((warning) => {
164
+ console.log(chalk_1.default.yellow(` • ${warning}`));
165
+ });
166
+ console.log();
167
+ }
168
+ }
169
+ // Display summary
170
+ console.log(chalk_1.default.bold('Configuration Summary:\n'));
171
+ console.log(chalk_1.default.gray(` Version: ${config.version || 'not specified'}`));
172
+ console.log(chalk_1.default.gray(` Plugins configured: ${presentSections.join(', ') || 'none'}`));
173
+ if (config.work) {
174
+ console.log(chalk_1.default.gray(` Work platform: ${config.work.active_handler}`));
175
+ }
176
+ if (config.repo) {
177
+ console.log(chalk_1.default.gray(` Repo platform: ${config.repo.active_handler}`));
178
+ }
179
+ if (config.file) {
180
+ console.log(chalk_1.default.gray(` File storage: ${config.file.active_handler}`));
181
+ }
182
+ if (options.verbose) {
183
+ console.log(chalk_1.default.gray('\nRaw configuration (redacted):'));
184
+ console.log(JSON.stringify(redactConfig(config), null, 2));
185
+ }
186
+ if (errors.length > 0) {
187
+ process.exit(1);
188
+ }
189
+ }
190
+ catch (error) {
191
+ console.error(chalk_1.default.red('❌ Validation failed:'), error);
192
+ process.exit(1);
193
+ }
194
+ }
195
+ /**
196
+ * Show configuration command
197
+ */
198
+ async function showCommand() {
199
+ try {
200
+ const projectRoot = (0, yaml_config_1.findProjectRoot)();
201
+ const configPath = (0, config_js_1.getConfigPath)(projectRoot);
202
+ if (!(0, fs_1.existsSync)(configPath)) {
203
+ console.log(chalk_1.default.red('❌ Configuration file not found'));
204
+ console.log(chalk_1.default.yellow('\nTo create a configuration file, run:'));
205
+ console.log(chalk_1.default.cyan(' fractary-core:configure'));
206
+ process.exit(1);
207
+ }
208
+ const config = (0, config_js_1.loadConfig)(projectRoot);
209
+ if (!config) {
210
+ console.log(chalk_1.default.red('❌ Failed to load configuration'));
211
+ process.exit(1);
212
+ }
213
+ console.log(chalk_1.default.blue('📋 Fractary Core Configuration\n'));
214
+ console.log(chalk_1.default.gray(`Config file: ${configPath}\n`));
215
+ const redacted = redactConfig(config);
216
+ console.log(JSON.stringify(redacted, null, 2));
217
+ }
218
+ catch (error) {
219
+ console.error(chalk_1.default.red('❌ Failed to display configuration:'), error);
220
+ process.exit(1);
221
+ }
222
+ }
223
+ /**
224
+ * Register config command
225
+ */
226
+ function registerConfigCommand(program) {
227
+ const config = program
228
+ .command('config')
229
+ .description('Manage Fractary Core configuration');
230
+ config
231
+ .command('validate')
232
+ .description('Validate .fractary/core/config.yaml')
233
+ .option('-v, --verbose', 'Show detailed output')
234
+ .action(validateCommand);
235
+ config
236
+ .command('show')
237
+ .description('Display configuration (with sensitive values redacted)')
238
+ .action(showCommand);
239
+ }
240
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/commands/config.ts"],"names":[],"mappings":"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"}
@@ -1,63 +1,79 @@
1
1
  /**
2
2
  * Configuration Management Utilities
3
3
  *
4
- * Handles configuration file discovery, loading, and migration from old paths.
4
+ * Handles unified YAML configuration loading from .fractary/core/config.yaml
5
5
  */
6
+ import { findProjectRoot, CoreYamlConfig } from '@fractary/core/common/yaml-config';
6
7
  /**
7
- * Core configuration structure
8
+ * Core configuration structure (alias for CoreYamlConfig)
8
9
  */
9
- export interface CoreConfig {
10
- work?: any;
11
- repo?: any;
12
- spec?: any;
13
- logs?: any;
14
- file?: any;
15
- docs?: any;
16
- }
10
+ export type CoreConfig = CoreYamlConfig;
17
11
  /**
18
- * Find the configuration file path by walking up the directory tree
12
+ * Load configuration from .fractary/core/config.yaml
19
13
  *
20
- * @param startDir - Directory to start searching from (default: current working directory)
21
- * @returns Path to config file or null if not found
14
+ * @param projectRoot - Project root directory (auto-detected if not provided)
15
+ * @returns Configuration object or null if not found
16
+ *
17
+ * @example
18
+ * ```typescript
19
+ * const config = loadConfig();
20
+ * if (config) {
21
+ * console.log('Work config:', config.work);
22
+ * }
23
+ * ```
22
24
  */
23
- export declare function findConfigPath(startDir?: string): string | null;
25
+ export declare function loadConfig(projectRoot?: string): CoreConfig | null;
24
26
  /**
25
- * Find the legacy configuration file path
27
+ * Write configuration to .fractary/core/config.yaml
28
+ *
29
+ * @param config - Configuration object to write
30
+ * @param projectRoot - Project root directory (auto-detected if not provided)
26
31
  *
27
- * @param startDir - Directory to start searching from
28
- * @returns Path to legacy config file or null if not found
32
+ * @example
33
+ * ```typescript
34
+ * writeConfig({
35
+ * version: '2.0',
36
+ * work: {
37
+ * active_handler: 'github',
38
+ * handlers: { github: { token: '${GITHUB_TOKEN}' } }
39
+ * }
40
+ * });
41
+ * ```
29
42
  */
30
- export declare function findLegacyConfigPath(startDir?: string): string | null;
43
+ export declare function writeConfig(config: CoreConfig, projectRoot?: string): void;
31
44
  /**
32
- * Load configuration from file
45
+ * Check if configuration file exists
33
46
  *
34
- * @param configPath - Path to config file (optional, will auto-discover if not provided)
35
- * @returns Configuration object or null if not found
47
+ * @param projectRoot - Project root directory (auto-detected if not provided)
48
+ * @returns true if .fractary/core/config.yaml exists
36
49
  */
37
- export declare function loadConfig(configPath?: string): CoreConfig | null;
50
+ export declare function configExists(projectRoot?: string): boolean;
38
51
  /**
39
- * Write configuration to file
52
+ * Get the configuration file path
40
53
  *
41
- * @param config - Configuration object
42
- * @param configPath - Path to write config to (optional, will use default if not provided)
54
+ * @param projectRoot - Project root directory (auto-detected if not provided)
55
+ * @returns Full path to .fractary/core/config.yaml
43
56
  */
44
- export declare function writeConfig(config: CoreConfig, configPath?: string): void;
57
+ export declare function getConfigPath(projectRoot?: string): string;
45
58
  /**
46
- * Get the default configuration file path for the current project
59
+ * Get the .fractary/core directory path
47
60
  *
48
- * @returns Default config path
61
+ * @param projectRoot - Project root directory (auto-detected if not provided)
62
+ * @returns Full path to .fractary/core directory
49
63
  */
50
- export declare function getDefaultConfigPath(): string;
64
+ export declare function getCoreDir(projectRoot?: string): string;
51
65
  /**
52
- * Check if configuration exists
66
+ * Get the default configuration file path for the current project
53
67
  *
54
- * @returns True if config exists, false otherwise
68
+ * @returns Default config path (.fractary/core/config.yaml)
69
+ * @deprecated Use getConfigPath() instead
55
70
  */
56
- export declare function configExists(): boolean;
71
+ export declare function getDefaultConfigPath(): string;
57
72
  /**
58
73
  * Get configuration directory path
59
74
  *
60
- * @returns Config directory path
75
+ * @returns Config directory path (.fractary/core)
76
+ * @deprecated Use getCoreDir() instead
61
77
  */
62
78
  export declare function getConfigDir(): string;
63
79
  /**
@@ -68,4 +84,11 @@ export declare function getConfigDir(): string;
68
84
  * @returns Merged configuration
69
85
  */
70
86
  export declare function mergeConfig(base: CoreConfig, override: Partial<CoreConfig>): CoreConfig;
87
+ /**
88
+ * Find project root by looking for .fractary or .git directory
89
+ *
90
+ * @param startDir - Directory to start searching from (default: current working directory)
91
+ * @returns Project root directory path
92
+ */
93
+ export { findProjectRoot };
71
94
  //# sourceMappingURL=config.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/utils/config.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,IAAI,CAAC,EAAE,GAAG,CAAC;IACX,IAAI,CAAC,EAAE,GAAG,CAAC;IACX,IAAI,CAAC,EAAE,GAAG,CAAC;IACX,IAAI,CAAC,EAAE,GAAG,CAAC;IACX,IAAI,CAAC,EAAE,GAAG,CAAC;IACX,IAAI,CAAC,EAAE,GAAG,CAAC;CACZ;AASD;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,QAAQ,GAAE,MAAsB,GAAG,MAAM,GAAG,IAAI,CAqB9E;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,QAAQ,GAAE,MAAsB,GAAG,MAAM,GAAG,IAAI,CAoBpF;AAED;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI,CAmBjE;AAyCD;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,UAAU,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAWzE;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,IAAI,MAAM,CAE7C;AAED;;;;GAIG;AACH,wBAAgB,YAAY,IAAI,OAAO,CAEtC;AAED;;;;GAIG;AACH,wBAAgB,YAAY,IAAI,MAAM,CAErC;AAED;;;;;;GAMG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,CAAC,UAAU,CAAC,GAAG,UAAU,CASvF"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/utils/config.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAML,eAAe,EACf,cAAc,EACf,MAAM,mCAAmC,CAAC;AAE3C;;GAEG;AACH,MAAM,MAAM,UAAU,GAAG,cAAc,CAAC;AAExC;;;;;;;;;;;;;GAaG;AACH,wBAAgB,UAAU,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI,CAQlE;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,UAAU,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAE1E;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CAE1D;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,CAE1D;AAED;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,CAEvD;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,IAAI,MAAM,CAE7C;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,IAAI,MAAM,CAErC;AAED;;;;;;GAMG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,CAAC,UAAU,CAAC,GAAG,UAAU,CAUvF;AAED;;;;;GAKG;AACH,OAAO,EAAE,eAAe,EAAE,CAAC"}
@@ -2,202 +2,108 @@
2
2
  /**
3
3
  * Configuration Management Utilities
4
4
  *
5
- * Handles configuration file discovery, loading, and migration from old paths.
5
+ * Handles unified YAML configuration loading from .fractary/core/config.yaml
6
6
  */
7
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
8
- if (k2 === undefined) k2 = k;
9
- var desc = Object.getOwnPropertyDescriptor(m, k);
10
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
11
- desc = { enumerable: true, get: function() { return m[k]; } };
12
- }
13
- Object.defineProperty(o, k2, desc);
14
- }) : (function(o, m, k, k2) {
15
- if (k2 === undefined) k2 = k;
16
- o[k2] = m[k];
17
- }));
18
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
19
- Object.defineProperty(o, "default", { enumerable: true, value: v });
20
- }) : function(o, v) {
21
- o["default"] = v;
22
- });
23
- var __importStar = (this && this.__importStar) || (function () {
24
- var ownKeys = function(o) {
25
- ownKeys = Object.getOwnPropertyNames || function (o) {
26
- var ar = [];
27
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
28
- return ar;
29
- };
30
- return ownKeys(o);
31
- };
32
- return function (mod) {
33
- if (mod && mod.__esModule) return mod;
34
- var result = {};
35
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
36
- __setModuleDefault(result, mod);
37
- return result;
38
- };
39
- })();
40
- var __importDefault = (this && this.__importDefault) || function (mod) {
41
- return (mod && mod.__esModule) ? mod : { "default": mod };
42
- };
43
7
  Object.defineProperty(exports, "__esModule", { value: true });
44
- exports.findConfigPath = findConfigPath;
45
- exports.findLegacyConfigPath = findLegacyConfigPath;
8
+ exports.findProjectRoot = void 0;
46
9
  exports.loadConfig = loadConfig;
47
10
  exports.writeConfig = writeConfig;
48
- exports.getDefaultConfigPath = getDefaultConfigPath;
49
11
  exports.configExists = configExists;
12
+ exports.getConfigPath = getConfigPath;
13
+ exports.getCoreDir = getCoreDir;
14
+ exports.getDefaultConfigPath = getDefaultConfigPath;
50
15
  exports.getConfigDir = getConfigDir;
51
16
  exports.mergeConfig = mergeConfig;
52
- const fs = __importStar(require("fs"));
53
- const path = __importStar(require("path"));
54
- const chalk_1 = __importDefault(require("chalk"));
55
- /**
56
- * Configuration paths
57
- */
58
- const CONFIG_DIR = '.fractary/core';
59
- const CONFIG_FILE = 'config.json';
60
- const LEGACY_CONFIG_DIR = '.fractary/faber';
17
+ const yaml_config_1 = require("@fractary/core/common/yaml-config");
18
+ Object.defineProperty(exports, "findProjectRoot", { enumerable: true, get: function () { return yaml_config_1.findProjectRoot; } });
61
19
  /**
62
- * Find the configuration file path by walking up the directory tree
20
+ * Load configuration from .fractary/core/config.yaml
21
+ *
22
+ * @param projectRoot - Project root directory (auto-detected if not provided)
23
+ * @returns Configuration object or null if not found
63
24
  *
64
- * @param startDir - Directory to start searching from (default: current working directory)
65
- * @returns Path to config file or null if not found
25
+ * @example
26
+ * ```typescript
27
+ * const config = loadConfig();
28
+ * if (config) {
29
+ * console.log('Work config:', config.work);
30
+ * }
31
+ * ```
66
32
  */
67
- function findConfigPath(startDir = process.cwd()) {
68
- let currentDir = startDir;
69
- while (true) {
70
- const configPath = path.join(currentDir, CONFIG_DIR, CONFIG_FILE);
71
- if (fs.existsSync(configPath)) {
72
- return configPath;
73
- }
74
- const parentDir = path.dirname(currentDir);
75
- // Reached filesystem root
76
- if (parentDir === currentDir) {
77
- break;
78
- }
79
- currentDir = parentDir;
33
+ function loadConfig(projectRoot) {
34
+ try {
35
+ return (0, yaml_config_1.loadYamlConfig)({ projectRoot });
36
+ }
37
+ catch (error) {
38
+ // Return null instead of throwing to maintain backward compatibility
39
+ console.error('Error loading config:', error);
40
+ return null;
80
41
  }
81
- return null;
82
42
  }
83
43
  /**
84
- * Find the legacy configuration file path
44
+ * Write configuration to .fractary/core/config.yaml
45
+ *
46
+ * @param config - Configuration object to write
47
+ * @param projectRoot - Project root directory (auto-detected if not provided)
85
48
  *
86
- * @param startDir - Directory to start searching from
87
- * @returns Path to legacy config file or null if not found
49
+ * @example
50
+ * ```typescript
51
+ * writeConfig({
52
+ * version: '2.0',
53
+ * work: {
54
+ * active_handler: 'github',
55
+ * handlers: { github: { token: '${GITHUB_TOKEN}' } }
56
+ * }
57
+ * });
58
+ * ```
88
59
  */
89
- function findLegacyConfigPath(startDir = process.cwd()) {
90
- let currentDir = startDir;
91
- while (true) {
92
- const legacyPath = path.join(currentDir, LEGACY_CONFIG_DIR, CONFIG_FILE);
93
- if (fs.existsSync(legacyPath)) {
94
- return legacyPath;
95
- }
96
- const parentDir = path.dirname(currentDir);
97
- if (parentDir === currentDir) {
98
- break;
99
- }
100
- currentDir = parentDir;
101
- }
102
- return null;
60
+ function writeConfig(config, projectRoot) {
61
+ (0, yaml_config_1.writeYamlConfig)(config, projectRoot);
103
62
  }
104
63
  /**
105
- * Load configuration from file
64
+ * Check if configuration file exists
106
65
  *
107
- * @param configPath - Path to config file (optional, will auto-discover if not provided)
108
- * @returns Configuration object or null if not found
66
+ * @param projectRoot - Project root directory (auto-detected if not provided)
67
+ * @returns true if .fractary/core/config.yaml exists
109
68
  */
110
- function loadConfig(configPath) {
111
- try {
112
- const actualPath = configPath || findConfigPath();
113
- if (!actualPath) {
114
- // Try to migrate from legacy path
115
- const legacyPath = findLegacyConfigPath();
116
- if (legacyPath) {
117
- return migrateLegacyConfig(legacyPath);
118
- }
119
- return null;
120
- }
121
- const content = fs.readFileSync(actualPath, 'utf-8');
122
- return JSON.parse(content);
123
- }
124
- catch (error) {
125
- // Failed to load config
126
- return null;
127
- }
69
+ function configExists(projectRoot) {
70
+ return (0, yaml_config_1.configExists)(projectRoot);
128
71
  }
129
72
  /**
130
- * Migrate legacy configuration from .fractary/faber to .fractary/core
73
+ * Get the configuration file path
131
74
  *
132
- * @param legacyPath - Path to legacy config file
133
- * @returns Migrated configuration
75
+ * @param projectRoot - Project root directory (auto-detected if not provided)
76
+ * @returns Full path to .fractary/core/config.yaml
134
77
  */
135
- function migrateLegacyConfig(legacyPath) {
136
- try {
137
- console.log(chalk_1.default.yellow('Notice:'), 'Migrating configuration from', LEGACY_CONFIG_DIR, 'to', CONFIG_DIR);
138
- const content = fs.readFileSync(legacyPath, 'utf-8');
139
- const legacyConfig = JSON.parse(content);
140
- // Extract relevant configuration sections
141
- const coreConfig = {
142
- work: legacyConfig.work,
143
- repo: legacyConfig.repo,
144
- spec: legacyConfig.spec,
145
- logs: legacyConfig.logs,
146
- file: legacyConfig.file,
147
- docs: legacyConfig.docs,
148
- };
149
- // Write to new location
150
- const legacyDir = path.dirname(legacyPath);
151
- const projectRoot = path.dirname(path.dirname(legacyDir));
152
- const newPath = path.join(projectRoot, CONFIG_DIR, CONFIG_FILE);
153
- writeConfig(coreConfig, newPath);
154
- console.log(chalk_1.default.green('✓'), 'Configuration migrated successfully');
155
- return coreConfig;
156
- }
157
- catch (error) {
158
- console.error(chalk_1.default.red('Failed to migrate configuration:'), error);
159
- return null;
160
- }
78
+ function getConfigPath(projectRoot) {
79
+ return (0, yaml_config_1.getConfigPath)(projectRoot);
161
80
  }
162
81
  /**
163
- * Write configuration to file
82
+ * Get the .fractary/core directory path
164
83
  *
165
- * @param config - Configuration object
166
- * @param configPath - Path to write config to (optional, will use default if not provided)
84
+ * @param projectRoot - Project root directory (auto-detected if not provided)
85
+ * @returns Full path to .fractary/core directory
167
86
  */
168
- function writeConfig(config, configPath) {
169
- const actualPath = configPath || getDefaultConfigPath();
170
- // Ensure directory exists
171
- const dir = path.dirname(actualPath);
172
- if (!fs.existsSync(dir)) {
173
- fs.mkdirSync(dir, { recursive: true });
174
- }
175
- // Write configuration with pretty formatting
176
- fs.writeFileSync(actualPath, JSON.stringify(config, null, 2), 'utf-8');
87
+ function getCoreDir(projectRoot) {
88
+ return (0, yaml_config_1.getCoreDir)(projectRoot);
177
89
  }
178
90
  /**
179
91
  * Get the default configuration file path for the current project
180
92
  *
181
- * @returns Default config path
93
+ * @returns Default config path (.fractary/core/config.yaml)
94
+ * @deprecated Use getConfigPath() instead
182
95
  */
183
96
  function getDefaultConfigPath() {
184
- return path.join(process.cwd(), CONFIG_DIR, CONFIG_FILE);
185
- }
186
- /**
187
- * Check if configuration exists
188
- *
189
- * @returns True if config exists, false otherwise
190
- */
191
- function configExists() {
192
- return findConfigPath() !== null || findLegacyConfigPath() !== null;
97
+ return getConfigPath();
193
98
  }
194
99
  /**
195
100
  * Get configuration directory path
196
101
  *
197
- * @returns Config directory path
102
+ * @returns Config directory path (.fractary/core)
103
+ * @deprecated Use getCoreDir() instead
198
104
  */
199
105
  function getConfigDir() {
200
- return path.join(process.cwd(), CONFIG_DIR);
106
+ return getCoreDir();
201
107
  }
202
108
  /**
203
109
  * Merge configuration objects
@@ -208,6 +114,7 @@ function getConfigDir() {
208
114
  */
209
115
  function mergeConfig(base, override) {
210
116
  return {
117
+ version: override.version || base.version,
211
118
  work: override.work !== undefined ? override.work : base.work,
212
119
  repo: override.repo !== undefined ? override.repo : base.repo,
213
120
  spec: override.spec !== undefined ? override.spec : base.spec,
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/utils/config.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA+BH,wCAqBC;AAQD,oDAoBC;AAQD,gCAmBC;AA+CD,kCAWC;AAOD,oDAEC;AAOD,oCAEC;AAOD,oCAEC;AASD,kCASC;AAhND,uCAAyB;AACzB,2CAA6B;AAC7B,kDAA0B;AAc1B;;GAEG;AACH,MAAM,UAAU,GAAG,gBAAgB,CAAC;AACpC,MAAM,WAAW,GAAG,aAAa,CAAC;AAClC,MAAM,iBAAiB,GAAG,iBAAiB,CAAC;AAE5C;;;;;GAKG;AACH,SAAgB,cAAc,CAAC,WAAmB,OAAO,CAAC,GAAG,EAAE;IAC7D,IAAI,UAAU,GAAG,QAAQ,CAAC;IAE1B,OAAO,IAAI,EAAE,CAAC;QACZ,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC;QAElE,IAAI,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YAC9B,OAAO,UAAU,CAAC;QACpB,CAAC;QAED,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QAE3C,0BAA0B;QAC1B,IAAI,SAAS,KAAK,UAAU,EAAE,CAAC;YAC7B,MAAM;QACR,CAAC;QAED,UAAU,GAAG,SAAS,CAAC;IACzB,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;GAKG;AACH,SAAgB,oBAAoB,CAAC,WAAmB,OAAO,CAAC,GAAG,EAAE;IACnE,IAAI,UAAU,GAAG,QAAQ,CAAC;IAE1B,OAAO,IAAI,EAAE,CAAC;QACZ,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,iBAAiB,EAAE,WAAW,CAAC,CAAC;QAEzE,IAAI,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YAC9B,OAAO,UAAU,CAAC;QACpB,CAAC;QAED,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QAE3C,IAAI,SAAS,KAAK,UAAU,EAAE,CAAC;YAC7B,MAAM;QACR,CAAC;QAED,UAAU,GAAG,SAAS,CAAC;IACzB,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;GAKG;AACH,SAAgB,UAAU,CAAC,UAAmB;IAC5C,IAAI,CAAC;QACH,MAAM,UAAU,GAAG,UAAU,IAAI,cAAc,EAAE,CAAC;QAElD,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,kCAAkC;YAClC,MAAM,UAAU,GAAG,oBAAoB,EAAE,CAAC;YAC1C,IAAI,UAAU,EAAE,CAAC;gBACf,OAAO,mBAAmB,CAAC,UAAU,CAAC,CAAC;YACzC,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;QACrD,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAe,CAAC;IAC3C,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,wBAAwB;QACxB,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,SAAS,mBAAmB,CAAC,UAAkB;IAC7C,IAAI,CAAC;QACH,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,8BAA8B,EAAE,iBAAiB,EAAE,IAAI,EAAE,UAAU,CAAC,CAAC;QAE1G,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;QACrD,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAEzC,0CAA0C;QAC1C,MAAM,UAAU,GAAe;YAC7B,IAAI,EAAE,YAAY,CAAC,IAAI;YACvB,IAAI,EAAE,YAAY,CAAC,IAAI;YACvB,IAAI,EAAE,YAAY,CAAC,IAAI;YACvB,IAAI,EAAE,YAAY,CAAC,IAAI;YACvB,IAAI,EAAE,YAAY,CAAC,IAAI;YACvB,IAAI,EAAE,YAAY,CAAC,IAAI;SACxB,CAAC;QAEF,wBAAwB;QACxB,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QAC3C,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC;QAC1D,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC;QAEhE,WAAW,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;QAEjC,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,qCAAqC,CAAC,CAAC;QAErE,OAAO,UAAU,CAAC;IACpB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,GAAG,CAAC,kCAAkC,CAAC,EAAE,KAAK,CAAC,CAAC;QACpE,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,SAAgB,WAAW,CAAC,MAAkB,EAAE,UAAmB;IACjE,MAAM,UAAU,GAAG,UAAU,IAAI,oBAAoB,EAAE,CAAC;IAExD,0BAA0B;IAC1B,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IACrC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QACxB,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACzC,CAAC;IAED,6CAA6C;IAC7C,EAAE,CAAC,aAAa,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;AACzE,CAAC;AAED;;;;GAIG;AACH,SAAgB,oBAAoB;IAClC,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC;AAC3D,CAAC;AAED;;;;GAIG;AACH,SAAgB,YAAY;IAC1B,OAAO,cAAc,EAAE,KAAK,IAAI,IAAI,oBAAoB,EAAE,KAAK,IAAI,CAAC;AACtE,CAAC;AAED;;;;GAIG;AACH,SAAgB,YAAY;IAC1B,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,UAAU,CAAC,CAAC;AAC9C,CAAC;AAED;;;;;;GAMG;AACH,SAAgB,WAAW,CAAC,IAAgB,EAAE,QAA6B;IACzE,OAAO;QACL,IAAI,EAAE,QAAQ,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI;QAC7D,IAAI,EAAE,QAAQ,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI;QAC7D,IAAI,EAAE,QAAQ,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI;QAC7D,IAAI,EAAE,QAAQ,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI;QAC7D,IAAI,EAAE,QAAQ,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI;QAC7D,IAAI,EAAE,QAAQ,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI;KAC9D,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/utils/config.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;AA+BH,gCAQC;AAmBD,kCAEC;AAQD,oCAEC;AAQD,sCAEC;AAQD,gCAEC;AAQD,oDAEC;AAQD,oCAEC;AASD,kCAUC;AA/HD,mEAQ2C;AA+HlC,gGAjIP,6BAAe,OAiIO;AAxHxB;;;;;;;;;;;;;GAaG;AACH,SAAgB,UAAU,CAAC,WAAoB;IAC7C,IAAI,CAAC;QACH,OAAO,IAAA,4BAAiB,EAAC,EAAE,WAAW,EAAE,CAAC,CAAC;IAC5C,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,qEAAqE;QACrE,OAAO,CAAC,KAAK,CAAC,uBAAuB,EAAE,KAAK,CAAC,CAAC;QAC9C,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,SAAgB,WAAW,CAAC,MAAkB,EAAE,WAAoB;IAClE,IAAA,6BAAkB,EAAC,MAAM,EAAE,WAAW,CAAC,CAAC;AAC1C,CAAC;AAED;;;;;GAKG;AACH,SAAgB,YAAY,CAAC,WAAoB;IAC/C,OAAO,IAAA,0BAAe,EAAC,WAAW,CAAC,CAAC;AACtC,CAAC;AAED;;;;;GAKG;AACH,SAAgB,aAAa,CAAC,WAAoB;IAChD,OAAO,IAAA,2BAAgB,EAAC,WAAW,CAAC,CAAC;AACvC,CAAC;AAED;;;;;GAKG;AACH,SAAgB,UAAU,CAAC,WAAoB;IAC7C,OAAO,IAAA,wBAAa,EAAC,WAAW,CAAC,CAAC;AACpC,CAAC;AAED;;;;;GAKG;AACH,SAAgB,oBAAoB;IAClC,OAAO,aAAa,EAAE,CAAC;AACzB,CAAC;AAED;;;;;GAKG;AACH,SAAgB,YAAY;IAC1B,OAAO,UAAU,EAAE,CAAC;AACtB,CAAC;AAED;;;;;;GAMG;AACH,SAAgB,WAAW,CAAC,IAAgB,EAAE,QAA6B;IACzE,OAAO;QACL,OAAO,EAAE,QAAQ,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO;QACzC,IAAI,EAAE,QAAQ,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI;QAC7D,IAAI,EAAE,QAAQ,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI;QAC7D,IAAI,EAAE,QAAQ,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI;QAC7D,IAAI,EAAE,QAAQ,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI;QAC7D,IAAI,EAAE,QAAQ,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI;QAC7D,IAAI,EAAE,QAAQ,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI;KAC9D,CAAC;AACJ,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fractary/core-cli",
3
- "version": "0.1.1",
3
+ "version": "0.2.2",
4
4
  "description": "CLI for Fractary Core SDK - work tracking, repository management, specifications, logging, file storage, and documentation",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -44,14 +44,16 @@
44
44
  "author": "Fractary Team",
45
45
  "license": "MIT",
46
46
  "dependencies": {
47
- "@fractary/core": "^0.1.1",
47
+ "@fractary/core": "^0.3.0",
48
48
  "chalk": "^5.3.0",
49
49
  "cli-table3": "^0.6.5",
50
50
  "commander": "^11.1.0",
51
- "inquirer": "^13.1.0"
51
+ "inquirer": "^13.1.0",
52
+ "js-yaml": "^4.1.1"
52
53
  },
53
54
  "devDependencies": {
54
55
  "@types/jest": "^30.0.0",
56
+ "@types/js-yaml": "^4.0.9",
55
57
  "@types/node": "^20.19.26",
56
58
  "@typescript-eslint/eslint-plugin": "^6.19.0",
57
59
  "@typescript-eslint/parser": "^6.19.0",