hub-launch 1.11.1 → 1.13.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +28 -0
- package/README.md +3 -5
- package/dist/commands/init.d.ts +39 -1
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +112 -246
- package/dist/commands/init.js.map +1 -1
- package/dist/utils/config-parser.d.ts +22 -6
- package/dist/utils/config-parser.d.ts.map +1 -1
- package/dist/utils/config-parser.js +37 -165
- package/dist/utils/config-parser.js.map +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -7,6 +7,34 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
7
7
|
|
|
8
8
|
## [Unreleased]
|
|
9
9
|
|
|
10
|
+
## [1.13.0] - 2026-07-14
|
|
11
|
+
|
|
12
|
+
### Changed
|
|
13
|
+
|
|
14
|
+
- `hula init` now prompts for **only** the two required API keys (Anthropic OAuth token and Daytona API key). Every other setting is written to `.hublaunch/hublaunch.config.js` with a sensible default (documented inline) for the user to edit manually, instead of being asked one field at a time. Re-running `hula init` preserves all previously-set values, including non-prompted fields such as `daytonaTier` and `envVars`.
|
|
15
|
+
- The generated config no longer includes commented-out placeholder sections for `teamMembers`, `commandAliases`, `priorityLevels`, `issueSortOrder`, `services`, and `hooks`. These sections are written only when they hold a real value (or are preserved from an existing config on re-init); an unset optional setting is simply omitted, keeping the file compact.
|
|
16
|
+
- The generated config no longer writes `trackingFile`, `createIssuesPreference`, `planChoices`, `pollingProvider`, `pollIntervalSeconds`, or `browserHeadless`. Each falls back to its documented default at load time, so behavior is unchanged; setting any of them manually in the config file still works and is preserved across re-runs.
|
|
17
|
+
- Reworded the `hula init` intro and "Next steps" output to reflect the minimal prompt and point users to the config file for further customization.
|
|
18
|
+
|
|
19
|
+
### Fixed
|
|
20
|
+
|
|
21
|
+
- `hula init` now creates (and logs) the plans directory at the config's actual `planPath` on re-init, instead of always using the default `.hublaunch/plans`.
|
|
22
|
+
|
|
23
|
+
### Removed
|
|
24
|
+
|
|
25
|
+
- Removed the `daytonaTier`, `editorCommand`, `planPath`, `trackingFile`, `createIssuesPreference`, `planChoices`, `skipUntrackedPrompt`, `teamMembers`, `authProvider`, `configureVsCodeAutoApproval`, and `envVars` prompts from `hula init`. These are now configured by editing the generated config file. (VS Code auto-approval is still applied by default; auth provider defaults to `none`.)
|
|
26
|
+
|
|
27
|
+
## [1.12.0] - 2026-07-13
|
|
28
|
+
|
|
29
|
+
### Changed
|
|
30
|
+
|
|
31
|
+
- `hula init` now preserves **all** existing config values on re-run, including custom/arbitrary keys and `hulaProject`/`hulaProjectUrl`, emitting any keys not in the documented template under a `// Preserved custom settings` block.
|
|
32
|
+
- `hula init` loads an existing config via native dynamic `import()` only; the lossy regex config parser has been removed. A syntactically broken config now fails fast with guidance to fix the file or run `hula init --force` to regenerate a fresh config (custom edits will be lost). `hula init --force` now correctly skips parsing the existing file.
|
|
33
|
+
|
|
34
|
+
### Removed
|
|
35
|
+
|
|
36
|
+
- Removed the `overrideStartupScript` prompt from `hula init`. An existing `.hublaunch/hooks/deploymentStartupScript.ts` is never overwritten (created only when missing).
|
|
37
|
+
|
|
10
38
|
## [1.11.1] - 2026-07-09
|
|
11
39
|
|
|
12
40
|
### Added
|
package/README.md
CHANGED
|
@@ -246,10 +246,8 @@ tracking name, the behavior depends on the context:
|
|
|
246
246
|
|
|
247
247
|
Tests that need credentials (a test user login, a third-party API key, etc.) can
|
|
248
248
|
have those values forwarded from your local `.env` into the launch container.
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
names or the literal `all`. You can also list the variable **names** in `envVars`
|
|
252
|
-
in `.hublaunch/hublaunch.config.js` directly:
|
|
249
|
+
Configure this by listing the variable **names** in `envVars` in
|
|
250
|
+
`.hublaunch/hublaunch.config.js`:
|
|
253
251
|
|
|
254
252
|
```js
|
|
255
253
|
export const config = {
|
|
@@ -259,7 +257,7 @@ export const config = {
|
|
|
259
257
|
```
|
|
260
258
|
|
|
261
259
|
To forward **every** non-reserved variable from `.env` without listing each one,
|
|
262
|
-
set `envVars` to the string `"all"
|
|
260
|
+
set `envVars` to the string `"all"`:
|
|
263
261
|
|
|
264
262
|
```js
|
|
265
263
|
export const config = {
|
package/dist/commands/init.d.ts
CHANGED
|
@@ -1,8 +1,46 @@
|
|
|
1
1
|
import type { Command } from 'commander';
|
|
2
2
|
import type { Config } from '../types/index.js';
|
|
3
|
+
/**
|
|
4
|
+
* Keys whose **actual runtime value** is written by the config template below.
|
|
5
|
+
* A key belongs here if and only if emitting it a second time would duplicate
|
|
6
|
+
* it. Any key the template does NOT write with its real value is intentionally
|
|
7
|
+
* excluded so a user's real value survives via the `// Preserved custom
|
|
8
|
+
* settings` block. Two categories are excluded:
|
|
9
|
+
* - Comment-only keys the template never renders as a real value:
|
|
10
|
+
* `commandAliases`, `priorityLevels`, `issueSortOrder`.
|
|
11
|
+
* - Optional keys omitted entirely from a fresh config (they fall back to
|
|
12
|
+
* their Zod schema default at load time): `trackingFile`,
|
|
13
|
+
* `createIssuesPreference`, `planChoices`, `pollingProvider`,
|
|
14
|
+
* `pollIntervalSeconds`, `browserHeadless`. A user who sets any of these
|
|
15
|
+
* manually keeps it — it round-trips through the preserved block on re-init.
|
|
16
|
+
*
|
|
17
|
+
* When adding any future documented field to the template, add its key here in
|
|
18
|
+
* the same change so it is not double-written (once documented, once preserved).
|
|
19
|
+
*/
|
|
20
|
+
export declare const TEMPLATE_EMITTED_KEYS: Set<string>;
|
|
21
|
+
/**
|
|
22
|
+
* Build the `// Preserved custom settings` block for any keys present in the
|
|
23
|
+
* final config that the template does not itself emit (arbitrary/custom keys,
|
|
24
|
+
* plus `hulaProject`/`hulaProjectUrl`). Each value is serialized with
|
|
25
|
+
* `JSON.stringify`, which produces valid JS for all JSON-compatible values.
|
|
26
|
+
*
|
|
27
|
+
* Returns an empty string when there are no unknown keys, so no empty block is
|
|
28
|
+
* ever emitted. The returned string, when non-empty, begins with a newline and
|
|
29
|
+
* is intended to be concatenated immediately before the closing `};`.
|
|
30
|
+
*
|
|
31
|
+
* Note: preserved values may contain secrets — only key names are logged, never
|
|
32
|
+
* values.
|
|
33
|
+
*/
|
|
34
|
+
export declare function buildPreservedSection(finalConfig: Record<string, any>): string;
|
|
3
35
|
/**
|
|
4
36
|
* Init command - Initialize HubLaunch configuration
|
|
5
37
|
*/
|
|
6
38
|
export declare function initCommand(program: Command, _config: Config): void;
|
|
7
|
-
|
|
39
|
+
/**
|
|
40
|
+
* Generate hook templates based on authentication provider
|
|
41
|
+
*/
|
|
42
|
+
export declare function generateHookTemplates(projectRoot: string, authProvider: string): Promise<void>;
|
|
43
|
+
export declare function executeInit(options?: {
|
|
44
|
+
force?: boolean;
|
|
45
|
+
}): Promise<void>;
|
|
8
46
|
//# sourceMappingURL=init.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAczC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAczC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAahD;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,qBAAqB,aAkBhC,CAAC;AAEH;;;;;;;;;;;;GAYG;AACH,wBAAgB,qBAAqB,CAAC,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM,CAe9E;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAmBnE;AA0bD;;GAEG;AACH,wBAAsB,qBAAqB,CACzC,WAAW,EAAE,MAAM,EACnB,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,IAAI,CAAC,CA+Bf;AAoXD,wBAAsB,WAAW,CAAC,OAAO,CAAC,EAAE;IAC1C,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB,GAAG,OAAO,CAAC,IAAI,CAAC,CAogBhB"}
|
package/dist/commands/init.js
CHANGED
|
@@ -7,37 +7,65 @@ import { form, UserCancelledError } from '../utils/prompts.js';
|
|
|
7
7
|
import { fileURLToPath } from 'url';
|
|
8
8
|
import { dirname } from 'path';
|
|
9
9
|
import { DEFAULT_CONFIG } from '../types/config.schema.js';
|
|
10
|
-
import { DEFAULT_POLL_INTERVAL_SECONDS } from '../types/common.schema.js';
|
|
11
10
|
import { checkGhVersion } from '../utils/github-cli.js';
|
|
12
|
-
import { parseExistingConfig, mergeConfigs } from '../utils/config-parser.js';
|
|
11
|
+
import { parseExistingConfig, mergeConfigs, CONFIG_PARSE_FAILED_PREFIX, } from '../utils/config-parser.js';
|
|
13
12
|
import { getCliVersion } from '../utils/version.js';
|
|
14
|
-
import { RESERVED_ENV_VARS } from '../utils/env-vars.js';
|
|
15
13
|
/**
|
|
16
|
-
*
|
|
17
|
-
*
|
|
18
|
-
*
|
|
19
|
-
*
|
|
14
|
+
* Keys whose **actual runtime value** is written by the config template below.
|
|
15
|
+
* A key belongs here if and only if emitting it a second time would duplicate
|
|
16
|
+
* it. Any key the template does NOT write with its real value is intentionally
|
|
17
|
+
* excluded so a user's real value survives via the `// Preserved custom
|
|
18
|
+
* settings` block. Two categories are excluded:
|
|
19
|
+
* - Comment-only keys the template never renders as a real value:
|
|
20
|
+
* `commandAliases`, `priorityLevels`, `issueSortOrder`.
|
|
21
|
+
* - Optional keys omitted entirely from a fresh config (they fall back to
|
|
22
|
+
* their Zod schema default at load time): `trackingFile`,
|
|
23
|
+
* `createIssuesPreference`, `planChoices`, `pollingProvider`,
|
|
24
|
+
* `pollIntervalSeconds`, `browserHeadless`. A user who sets any of these
|
|
25
|
+
* manually keeps it — it round-trips through the preserved block on re-init.
|
|
26
|
+
*
|
|
27
|
+
* When adding any future documented field to the template, add its key here in
|
|
28
|
+
* the same change so it is not double-written (once documented, once preserved).
|
|
20
29
|
*/
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
30
|
+
export const TEMPLATE_EMITTED_KEYS = new Set([
|
|
31
|
+
'version',
|
|
32
|
+
'hulaApiKey',
|
|
33
|
+
'anthropicApiKey',
|
|
34
|
+
'daytonaApiKey',
|
|
35
|
+
'daytonaTier',
|
|
36
|
+
'containerResources',
|
|
37
|
+
'updateNotificationUrl',
|
|
38
|
+
'updateNotificationNameTag',
|
|
39
|
+
'usageTier',
|
|
40
|
+
'editorCommand',
|
|
41
|
+
'planPath',
|
|
42
|
+
'skipUntrackedPrompt',
|
|
43
|
+
'teamMembers',
|
|
44
|
+
'services',
|
|
45
|
+
'hooks',
|
|
46
|
+
'worktreeBasePath',
|
|
47
|
+
'envVars',
|
|
48
|
+
]);
|
|
49
|
+
/**
|
|
50
|
+
* Build the `// Preserved custom settings` block for any keys present in the
|
|
51
|
+
* final config that the template does not itself emit (arbitrary/custom keys,
|
|
52
|
+
* plus `hulaProject`/`hulaProjectUrl`). Each value is serialized with
|
|
53
|
+
* `JSON.stringify`, which produces valid JS for all JSON-compatible values.
|
|
54
|
+
*
|
|
55
|
+
* Returns an empty string when there are no unknown keys, so no empty block is
|
|
56
|
+
* ever emitted. The returned string, when non-empty, begins with a newline and
|
|
57
|
+
* is intended to be concatenated immediately before the closing `};`.
|
|
58
|
+
*
|
|
59
|
+
* Note: preserved values may contain secrets — only key names are logged, never
|
|
60
|
+
* values.
|
|
61
|
+
*/
|
|
62
|
+
export function buildPreservedSection(finalConfig) {
|
|
63
|
+
const unknownKeys = Object.keys(finalConfig).filter((key) => !TEMPLATE_EMITTED_KEYS.has(key) && finalConfig[key] !== undefined);
|
|
64
|
+
if (unknownKeys.length === 0) {
|
|
65
|
+
return '';
|
|
39
66
|
}
|
|
40
|
-
|
|
67
|
+
const lines = unknownKeys.map((key) => ` ${key}: ${JSON.stringify(finalConfig[key])},`);
|
|
68
|
+
return `\n\n // Preserved custom settings\n${lines.join('\n')}`;
|
|
41
69
|
}
|
|
42
70
|
/**
|
|
43
71
|
* Init command - Initialize HubLaunch configuration
|
|
@@ -47,9 +75,9 @@ export function initCommand(program, _config) {
|
|
|
47
75
|
.command('init')
|
|
48
76
|
.description('Initialize HubLaunch configuration (interactive)')
|
|
49
77
|
.option('--force', 'Overwrite existing configuration')
|
|
50
|
-
.action(async () => {
|
|
78
|
+
.action(async (options) => {
|
|
51
79
|
try {
|
|
52
|
-
await executeInit();
|
|
80
|
+
await executeInit(options);
|
|
53
81
|
}
|
|
54
82
|
catch (error) {
|
|
55
83
|
// Handle user cancellation gracefully
|
|
@@ -492,13 +520,14 @@ Templates are automatically detected and used by HubLaunch when creating issues
|
|
|
492
520
|
/**
|
|
493
521
|
* Generate hook templates based on authentication provider
|
|
494
522
|
*/
|
|
495
|
-
async function generateHookTemplates(projectRoot, authProvider
|
|
523
|
+
export async function generateHookTemplates(projectRoot, authProvider) {
|
|
496
524
|
const hooksDir = join(projectRoot, '.hublaunch/hooks');
|
|
497
525
|
// Create hooks directory
|
|
498
526
|
await mkdir(hooksDir, { recursive: true });
|
|
499
527
|
logger.success(`Created directory: .hublaunch/hooks/`);
|
|
500
528
|
// Generate deploymentStartupScript.ts template based on auth provider
|
|
501
|
-
// Only create if auth provider is configured (not "none")
|
|
529
|
+
// Only create if auth provider is configured (not "none"). An existing script
|
|
530
|
+
// is never overwritten — the user may have customized it.
|
|
502
531
|
if (authProvider !== 'none') {
|
|
503
532
|
const startupScriptPath = join(hooksDir, 'deploymentStartupScript.ts');
|
|
504
533
|
if (!existsSync(startupScriptPath)) {
|
|
@@ -506,11 +535,6 @@ async function generateHookTemplates(projectRoot, authProvider, overrideStartupS
|
|
|
506
535
|
await writeFile(startupScriptPath, template, 'utf-8');
|
|
507
536
|
logger.success(`Created: .hublaunch/hooks/deploymentStartupScript.ts`);
|
|
508
537
|
}
|
|
509
|
-
else if (overrideStartupScript) {
|
|
510
|
-
const template = getDeploymentStartupTemplate(authProvider);
|
|
511
|
-
await writeFile(startupScriptPath, template, 'utf-8');
|
|
512
|
-
logger.success(`Overridden: .hublaunch/hooks/deploymentStartupScript.ts`);
|
|
513
|
-
}
|
|
514
538
|
else {
|
|
515
539
|
logger.info('Keeping existing deploymentStartupScript.ts');
|
|
516
540
|
}
|
|
@@ -789,9 +813,6 @@ function displayConfigSummary(config) {
|
|
|
789
813
|
logger.info('📝 Basic Settings:');
|
|
790
814
|
logger.listItem(`Editor: ${config.editorCommand}`, 1);
|
|
791
815
|
logger.listItem(`Plan Path: ${config.planPath}`, 1);
|
|
792
|
-
logger.listItem(`Tracking File: ${config.trackingFile}`, 1);
|
|
793
|
-
logger.listItem(`Create Issues: ${config.createIssuesPreference}`, 1);
|
|
794
|
-
logger.listItem(`Plan Choices: ${config.planChoices}`, 1);
|
|
795
816
|
logger.listItem(`Skip Untracked Prompt: ${config.skipUntrackedPrompt}`, 1);
|
|
796
817
|
logger.listItem(`Worktree Base Path: ${config.worktreeBasePath ?? '.hula-worktrees'}`, 1);
|
|
797
818
|
if (config.teamMembers && config.teamMembers.length > 0) {
|
|
@@ -807,7 +828,7 @@ function displayConfigSummary(config) {
|
|
|
807
828
|
}
|
|
808
829
|
logger.blank();
|
|
809
830
|
}
|
|
810
|
-
export async function executeInit() {
|
|
831
|
+
export async function executeInit(options) {
|
|
811
832
|
logger.section('Initialize HubLaunch Configuration');
|
|
812
833
|
// Validate GitHub CLI version
|
|
813
834
|
logger.info('Checking GitHub CLI version...');
|
|
@@ -830,9 +851,24 @@ export async function executeInit() {
|
|
|
830
851
|
: existsSync(configPath)
|
|
831
852
|
? configPath
|
|
832
853
|
: null;
|
|
833
|
-
|
|
854
|
+
// With --force, skip parsing entirely so a broken existing file does not
|
|
855
|
+
// block regeneration (custom edits are intentionally lost, as documented).
|
|
856
|
+
if (existingConfigPath && !options?.force) {
|
|
834
857
|
logger.info(`📋 Detected existing config: ${relative(repoRoot, existingConfigPath)}`);
|
|
835
|
-
|
|
858
|
+
try {
|
|
859
|
+
existingConfig = await parseExistingConfig(existingConfigPath);
|
|
860
|
+
}
|
|
861
|
+
catch (error) {
|
|
862
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
863
|
+
if (message.startsWith(CONFIG_PARSE_FAILED_PREFIX)) {
|
|
864
|
+
logger.error(`Existing config at ${relative(repoRoot, existingConfigPath)} could not be parsed (syntax error).`);
|
|
865
|
+
logger.error('Fix the file, or run `hula init --force` to regenerate a fresh config (custom edits will be lost).');
|
|
866
|
+
process.exit(1);
|
|
867
|
+
}
|
|
868
|
+
// Any other error (e.g. the hulaRepository legacy-key guard) is a real
|
|
869
|
+
// configuration problem — surface it as-is.
|
|
870
|
+
throw error;
|
|
871
|
+
}
|
|
836
872
|
if (existingConfig) {
|
|
837
873
|
const preservedKeys = [];
|
|
838
874
|
if (existingConfig.hulaApiKey)
|
|
@@ -867,16 +903,6 @@ export async function executeInit() {
|
|
|
867
903
|
if (existsSync(configPath)) {
|
|
868
904
|
logger.info('Configuration file already exists. Proceeding with reinitialization...');
|
|
869
905
|
}
|
|
870
|
-
// Helper to convert absolute paths back to relative paths for display/editing
|
|
871
|
-
const toRelativePath = (absolutePath, defaultPath) => {
|
|
872
|
-
if (!absolutePath)
|
|
873
|
-
return defaultPath;
|
|
874
|
-
if (!isAbsolute(absolutePath))
|
|
875
|
-
return absolutePath;
|
|
876
|
-
// Convert absolute path to relative by removing repoRoot prefix
|
|
877
|
-
const relativePath = relative(repoRoot, absolutePath);
|
|
878
|
-
return relativePath || defaultPath;
|
|
879
|
-
};
|
|
880
906
|
// Display existing config if present
|
|
881
907
|
// Display existing config if present (for reference)
|
|
882
908
|
if (existingConfig && existingConfig.planPath) {
|
|
@@ -886,13 +912,12 @@ export async function executeInit() {
|
|
|
886
912
|
logger.info("Let's set up your HubLaunch configuration...");
|
|
887
913
|
}
|
|
888
914
|
logger.blank();
|
|
889
|
-
logger.info('📝
|
|
890
|
-
logger.info('💡
|
|
891
|
-
logger.info('💡 Leave fields unchanged to keep current values, or edit to update');
|
|
915
|
+
logger.info('📝 Enter your API keys (use ↑↓ arrows to navigate, Enter to edit each field):');
|
|
916
|
+
logger.info('💡 Everything else is written to .hublaunch/hublaunch.config.js — edit it afterward to customize.');
|
|
892
917
|
logger.blank();
|
|
893
|
-
//
|
|
894
|
-
|
|
895
|
-
//
|
|
918
|
+
// Only the two required API keys are prompted. Every other setting is written
|
|
919
|
+
// to the config file with a sensible default (or preserved from an existing
|
|
920
|
+
// config on re-init) for the user to edit manually.
|
|
896
921
|
const formChoices = [
|
|
897
922
|
{
|
|
898
923
|
name: 'anthropicApiKey',
|
|
@@ -904,110 +929,8 @@ export async function executeInit() {
|
|
|
904
929
|
message: 'Daytona API Key (required for hula launch) — get it at https://app.daytona.io',
|
|
905
930
|
initial: existingConfig?.daytonaApiKey || '',
|
|
906
931
|
},
|
|
907
|
-
{
|
|
908
|
-
name: 'daytonaTier',
|
|
909
|
-
message: 'Daytona Org Tier (1=Starter, 2=Standard, 3=Pro, 4=Enterprise)',
|
|
910
|
-
initial: (existingConfig?.daytonaTier ?? 1).toString(),
|
|
911
|
-
validate: (value) => {
|
|
912
|
-
const n = parseInt(value, 10);
|
|
913
|
-
return ([1, 2, 3, 4].includes(n)) || 'Must be 1, 2, 3, or 4';
|
|
914
|
-
},
|
|
915
|
-
},
|
|
916
|
-
{
|
|
917
|
-
name: 'editorCommand',
|
|
918
|
-
message: 'Editor (cursor|vsCode|other)',
|
|
919
|
-
initial: existingConfig?.editorCommand || DEFAULT_CONFIG.editorCommand,
|
|
920
|
-
validate: (value) => {
|
|
921
|
-
const valid = ['cursor', 'vsCode', 'other'];
|
|
922
|
-
return valid.includes(value) || `Must be one of: ${valid.join(', ')}`;
|
|
923
|
-
},
|
|
924
|
-
},
|
|
925
|
-
{
|
|
926
|
-
name: 'planPath',
|
|
927
|
-
message: 'Plan files directory',
|
|
928
|
-
initial: toRelativePath(existingConfig?.planPath, DEFAULT_CONFIG.planPath),
|
|
929
|
-
},
|
|
930
|
-
{
|
|
931
|
-
name: 'trackingFile',
|
|
932
|
-
message: 'Tracking file path',
|
|
933
|
-
initial: toRelativePath(existingConfig?.trackingFile, DEFAULT_CONFIG.trackingFile),
|
|
934
|
-
},
|
|
935
|
-
{
|
|
936
|
-
name: 'createIssuesPreference',
|
|
937
|
-
message: 'Create issues (alwaysLatest|chooseRecentPlan)',
|
|
938
|
-
initial: existingConfig?.createIssuesPreference ||
|
|
939
|
-
DEFAULT_CONFIG.createIssuesPreference,
|
|
940
|
-
validate: (value) => {
|
|
941
|
-
const valid = ['alwaysLatest', 'chooseRecentPlan'];
|
|
942
|
-
return valid.includes(value) || `Must be one of: ${valid.join(', ')}`;
|
|
943
|
-
},
|
|
944
|
-
},
|
|
945
|
-
{
|
|
946
|
-
name: 'planChoices',
|
|
947
|
-
message: 'Number of recent plans to show',
|
|
948
|
-
initial: (existingConfig?.planChoices || DEFAULT_CONFIG.planChoices).toString(),
|
|
949
|
-
validate: (value) => {
|
|
950
|
-
const num = parseInt(value, 10);
|
|
951
|
-
return (!isNaN(num) && num > 0) || 'Please enter a positive number';
|
|
952
|
-
},
|
|
953
|
-
},
|
|
954
|
-
{
|
|
955
|
-
name: 'skipUntrackedPrompt',
|
|
956
|
-
message: 'Skip untracked prompt (true|false)',
|
|
957
|
-
initial: (existingConfig?.skipUntrackedPrompt ??
|
|
958
|
-
DEFAULT_CONFIG.skipUntrackedPrompt).toString(),
|
|
959
|
-
validate: (value) => {
|
|
960
|
-
const valid = ['true', 'false', 'yes', 'no'];
|
|
961
|
-
return valid.includes(value.toLowerCase()) || 'Must be true or false';
|
|
962
|
-
},
|
|
963
|
-
},
|
|
964
|
-
{
|
|
965
|
-
name: 'teamMembers',
|
|
966
|
-
message: 'Team members (comma-separated)',
|
|
967
|
-
initial: existingConfig?.teamMembers?.join(', ') || '',
|
|
968
|
-
},
|
|
969
|
-
{
|
|
970
|
-
name: 'authProvider',
|
|
971
|
-
message: 'Auth provider (none|clerk|auth0|custom)',
|
|
972
|
-
initial: existingConfig?.services?.authentication?.provider || 'clerk',
|
|
973
|
-
validate: (value) => {
|
|
974
|
-
const valid = ['none', 'clerk', 'auth0', 'custom'];
|
|
975
|
-
return valid.includes(value) || `Must be one of: ${valid.join(', ')}`;
|
|
976
|
-
},
|
|
977
|
-
},
|
|
978
|
-
{
|
|
979
|
-
name: 'configureVsCodeAutoApproval',
|
|
980
|
-
message: 'Configure VS Code auto-approval for hula agent commands? (true|false)',
|
|
981
|
-
initial: 'true',
|
|
982
|
-
validate: (value) => {
|
|
983
|
-
const valid = ['true', 'false', 'yes', 'no'];
|
|
984
|
-
return valid.includes(value.toLowerCase()) || 'Must be true or false';
|
|
985
|
-
},
|
|
986
|
-
},
|
|
987
|
-
{
|
|
988
|
-
name: 'envVars',
|
|
989
|
-
message: 'Environment variables to forward to tests (comma-separated, e.g. TEST_USER_EMAIL,API_KEY), or type "all" to forward all .env variables',
|
|
990
|
-
initial: existingConfig?.envVars
|
|
991
|
-
? Array.isArray(existingConfig.envVars)
|
|
992
|
-
? existingConfig.envVars.join(', ')
|
|
993
|
-
: existingConfig.envVars // If it's "all", show "all"
|
|
994
|
-
: '',
|
|
995
|
-
validate: validateEnvVarsInput,
|
|
996
|
-
},
|
|
997
932
|
];
|
|
998
|
-
//
|
|
999
|
-
if (startupScriptExists) {
|
|
1000
|
-
formChoices.push({
|
|
1001
|
-
name: 'overrideStartupScript',
|
|
1002
|
-
message: 'Override existing deploymentStartupScript.ts? (true|false)',
|
|
1003
|
-
initial: 'false',
|
|
1004
|
-
validate: (value) => {
|
|
1005
|
-
const valid = ['true', 'false', 'yes', 'no'];
|
|
1006
|
-
return valid.includes(value.toLowerCase()) || 'Must be true or false';
|
|
1007
|
-
},
|
|
1008
|
-
});
|
|
1009
|
-
}
|
|
1010
|
-
// Single Unified Form for ALL fields
|
|
933
|
+
// Prompt for the two required API keys.
|
|
1011
934
|
const formData = await form('HubLaunch Configuration', formChoices);
|
|
1012
935
|
// Parse form results with fallbacks
|
|
1013
936
|
const anthropicApiKey = (formData.anthropicApiKey || '').trim() || undefined;
|
|
@@ -1016,20 +939,12 @@ export async function executeInit() {
|
|
|
1016
939
|
const editorCommand = (formData.editorCommand ||
|
|
1017
940
|
DEFAULT_CONFIG.editorCommand);
|
|
1018
941
|
const planPath = (formData.planPath || DEFAULT_CONFIG.planPath).replace(/\\/g, '/');
|
|
1019
|
-
const trackingFile = (formData.trackingFile || DEFAULT_CONFIG.trackingFile).replace(/\\/g, '/');
|
|
1020
|
-
const createIssuesPreference = (formData.createIssuesPreference ||
|
|
1021
|
-
DEFAULT_CONFIG.createIssuesPreference);
|
|
1022
|
-
const planChoices = parseInt(formData.planChoices || DEFAULT_CONFIG.planChoices.toString(), 10);
|
|
1023
942
|
const skipUntrackedPrompt = ['true', 'yes'].includes((formData.skipUntrackedPrompt || 'false').toLowerCase());
|
|
1024
943
|
const teamMembers = (formData.teamMembers || '')
|
|
1025
944
|
.split(',')
|
|
1026
945
|
.map((m) => m.trim())
|
|
1027
946
|
.filter((m) => m.length > 0);
|
|
1028
947
|
const authProvider = (formData.authProvider || 'none');
|
|
1029
|
-
// Override defaults to true for new files (they will be created), false for existing
|
|
1030
|
-
const overrideStartupScript = startupScriptExists
|
|
1031
|
-
? ['true', 'yes'].includes((formData.overrideStartupScript || 'false').toLowerCase())
|
|
1032
|
-
: true;
|
|
1033
948
|
// Parse VS Code auto-approval preference
|
|
1034
949
|
const configureVsCodeAutoApproval = ['true', 'yes'].includes((formData.configureVsCodeAutoApproval || 'true').toLowerCase());
|
|
1035
950
|
// Parse envVars: can be "all" or comma-separated array
|
|
@@ -1051,11 +966,9 @@ export async function executeInit() {
|
|
|
1051
966
|
const baseConfig = {
|
|
1052
967
|
editorCommand,
|
|
1053
968
|
planPath,
|
|
1054
|
-
trackingFile,
|
|
1055
|
-
createIssuesPreference,
|
|
1056
|
-
planChoices,
|
|
1057
969
|
skipUntrackedPrompt,
|
|
1058
970
|
teamMembers,
|
|
971
|
+
daytonaTier,
|
|
1059
972
|
envVars,
|
|
1060
973
|
};
|
|
1061
974
|
// Add services if configured
|
|
@@ -1081,9 +994,6 @@ export async function executeInit() {
|
|
|
1081
994
|
// post-merge so the user's typed value (including cleared) is what gets written.
|
|
1082
995
|
finalConfig.anthropicApiKey = anthropicApiKey;
|
|
1083
996
|
finalConfig.daytonaApiKey = daytonaApiKey;
|
|
1084
|
-
finalConfig.daytonaTier = daytonaTier;
|
|
1085
|
-
// Assign post-merge so the user can clear a previously-saved envVars value.
|
|
1086
|
-
finalConfig.envVars = envVars;
|
|
1087
997
|
// Always record the CURRENT CLI version (not the value preserved by
|
|
1088
998
|
// mergeConfigs) so the runtime staleness check can detect upgrades. Assigned
|
|
1089
999
|
// post-merge for the same reason as the keys above. If the version cannot be
|
|
@@ -1091,34 +1001,18 @@ export async function executeInit() {
|
|
|
1091
1001
|
const cliVersion = getCliVersion();
|
|
1092
1002
|
if (cliVersion)
|
|
1093
1003
|
finalConfig.version = cliVersion;
|
|
1094
|
-
// Generate hooks config section
|
|
1095
|
-
|
|
1096
|
-
|
|
1097
|
-
|
|
1098
|
-
|
|
1099
|
-
|
|
1100
|
-
|
|
1101
|
-
|
|
1102
|
-
|
|
1103
|
-
|
|
1104
|
-
//
|
|
1105
|
-
|
|
1106
|
-
// },`;
|
|
1107
|
-
}
|
|
1108
|
-
// Generate services config section (without credentials)
|
|
1109
|
-
let servicesConfigSection;
|
|
1110
|
-
if (finalConfig.services) {
|
|
1111
|
-
servicesConfigSection = `
|
|
1112
|
-
// Service configuration
|
|
1113
|
-
services: ${JSON.stringify(finalConfig.services, null, 2).replace(/\n/g, '\n ')},`;
|
|
1114
|
-
}
|
|
1115
|
-
else {
|
|
1116
|
-
servicesConfigSection = `
|
|
1117
|
-
// Service configuration (optional)
|
|
1118
|
-
// services: {
|
|
1119
|
-
// authentication: { provider: "none" },
|
|
1120
|
-
// },`;
|
|
1121
|
-
}
|
|
1004
|
+
// Generate hooks config section (omitted entirely when not configured)
|
|
1005
|
+
const hooksConfigSection = finalConfig.hooks
|
|
1006
|
+
? `\n\n // Lifecycle hooks\n hooks: ${JSON.stringify(finalConfig.hooks, null, 2).replace(/\n/g, '\n ')},`
|
|
1007
|
+
: '';
|
|
1008
|
+
// Generate services config section without credentials (omitted when not configured)
|
|
1009
|
+
const servicesConfigSection = finalConfig.services
|
|
1010
|
+
? `\n\n // Service configuration\n services: ${JSON.stringify(finalConfig.services, null, 2).replace(/\n/g, '\n ')},`
|
|
1011
|
+
: '';
|
|
1012
|
+
// Generate team members section (omitted when none are configured)
|
|
1013
|
+
const teamMembersSection = finalConfig.teamMembers && finalConfig.teamMembers.length > 0
|
|
1014
|
+
? `\n\n // Team members\n teamMembers: ${JSON.stringify(finalConfig.teamMembers)},`
|
|
1015
|
+
: '';
|
|
1122
1016
|
// Generate config content with preserved API key
|
|
1123
1017
|
const apiKeyLine = finalConfig.hulaApiKey
|
|
1124
1018
|
? `\n hulaApiKey: "${finalConfig.hulaApiKey}",`
|
|
@@ -1176,61 +1070,27 @@ export async function executeInit() {
|
|
|
1176
1070
|
|
|
1177
1071
|
// Plan files configuration
|
|
1178
1072
|
planPath: "${finalConfig.planPath || planPath}",
|
|
1179
|
-
trackingFile: "${finalConfig.trackingFile || trackingFile}",
|
|
1180
|
-
createIssuesPreference: "${finalConfig.createIssuesPreference || createIssuesPreference}",
|
|
1181
|
-
planChoices: ${finalConfig.planChoices ?? planChoices},
|
|
1182
1073
|
|
|
1183
1074
|
// Tracking behavior
|
|
1184
|
-
skipUntrackedPrompt: ${finalConfig.skipUntrackedPrompt ?? skipUntrackedPrompt}
|
|
1185
|
-
|
|
1186
|
-
// Polling / auto-refresh
|
|
1187
|
-
pollingProvider: "${finalConfig.pollingProvider || 'hula-server'}", // "hula-server" | "github"
|
|
1188
|
-
pollIntervalSeconds: ${finalConfig.pollIntervalSeconds ?? DEFAULT_POLL_INTERVAL_SECONDS}, // Minimum 60
|
|
1189
|
-
|
|
1190
|
-
// Team members${finalConfig.teamMembers && finalConfig.teamMembers.length > 0
|
|
1191
|
-
? `\n teamMembers: ${JSON.stringify(finalConfig.teamMembers)},`
|
|
1192
|
-
: '\n // teamMembers: [],'}
|
|
1193
|
-
|
|
1194
|
-
// Command aliases (optional)
|
|
1195
|
-
// commandAliases: {
|
|
1196
|
-
// primary: ["hula", "hub-launch", "hl"],
|
|
1197
|
-
// },
|
|
1198
|
-
|
|
1199
|
-
// Priority levels (optional)
|
|
1200
|
-
// priorityLevels: [
|
|
1201
|
-
// { name: "Critical", color: "red", emoji: "🔴" },
|
|
1202
|
-
// { name: "High", color: "orange", emoji: "🟠" },
|
|
1203
|
-
// { name: "Medium", color: "yellow", emoji: "🟡" },
|
|
1204
|
-
// { name: "Low", color: "green", emoji: "🟢" },
|
|
1205
|
-
// { name: "Minimal", color: "gray", emoji: "⚪" },
|
|
1206
|
-
// ],
|
|
1207
|
-
|
|
1208
|
-
// Issue sorting (optional)
|
|
1209
|
-
// issueSortOrder: {
|
|
1210
|
-
// groupBy: "priority",
|
|
1211
|
-
// sortBy: "created",
|
|
1212
|
-
// direction: "desc",
|
|
1213
|
-
// },
|
|
1214
|
-
${servicesConfigSection}
|
|
1215
|
-
${hooksConfigSection}
|
|
1216
|
-
|
|
1217
|
-
// Browser automation
|
|
1218
|
-
browserHeadless: "auto", // "auto" | "always" | "never"
|
|
1075
|
+
skipUntrackedPrompt: ${finalConfig.skipUntrackedPrompt ?? skipUntrackedPrompt},${teamMembersSection}${servicesConfigSection}${hooksConfigSection}
|
|
1219
1076
|
|
|
1220
1077
|
// Worktree base path (used by /hula-fix, /hula-merge, /hula-upload)
|
|
1221
1078
|
worktreeBasePath: "${(finalConfig.worktreeBasePath || '.hula-worktrees').replace(/\\/g, '\\\\').replace(/"/g, '\\"')}",
|
|
1222
|
-
${envVarsLine}
|
|
1079
|
+
${envVarsLine}${buildPreservedSection(finalConfig)}
|
|
1223
1080
|
};
|
|
1224
1081
|
`;
|
|
1225
1082
|
// Create directory if it doesn't exist
|
|
1226
1083
|
if (!existsSync(configDir)) {
|
|
1227
1084
|
await mkdir(configDir, { recursive: true });
|
|
1228
1085
|
}
|
|
1229
|
-
// Create plans directory if it doesn't exist
|
|
1230
|
-
|
|
1086
|
+
// Create plans directory if it doesn't exist. Use the resolved config value
|
|
1087
|
+
// (preserved from an existing config on re-init) rather than the local
|
|
1088
|
+
// `planPath`, which is always the default now that planPath is not prompted.
|
|
1089
|
+
const resolvedPlanPath = finalConfig.planPath || planPath;
|
|
1090
|
+
const plansDir = join(repoRoot, resolvedPlanPath);
|
|
1231
1091
|
if (!existsSync(plansDir)) {
|
|
1232
1092
|
await mkdir(plansDir, { recursive: true });
|
|
1233
|
-
logger.success(`Created plans directory: ${
|
|
1093
|
+
logger.success(`Created plans directory: ${resolvedPlanPath}`);
|
|
1234
1094
|
}
|
|
1235
1095
|
// Create worktrees directory if it doesn't exist
|
|
1236
1096
|
const worktreeBasePath = finalConfig.worktreeBasePath || '.hula-worktrees';
|
|
@@ -1307,7 +1167,7 @@ ${envVarsLine}
|
|
|
1307
1167
|
// Always generate hooks directory structure (with README and optionally script)
|
|
1308
1168
|
logger.blank();
|
|
1309
1169
|
logger.info('Generating hooks directory structure...');
|
|
1310
|
-
await generateHookTemplates(repoRoot, authProvider
|
|
1170
|
+
await generateHookTemplates(repoRoot, authProvider);
|
|
1311
1171
|
// Always generate adapters directory structure
|
|
1312
1172
|
logger.blank();
|
|
1313
1173
|
logger.info('Generating adapter directory structure...');
|
|
@@ -1337,7 +1197,13 @@ ${envVarsLine}
|
|
|
1337
1197
|
logger.blank();
|
|
1338
1198
|
logger.blank();
|
|
1339
1199
|
logger.info('Next steps:');
|
|
1340
|
-
logger.listItem(
|
|
1200
|
+
logger.listItem(existingConfig
|
|
1201
|
+
? 'Only your API keys were requested — every other setting was preserved from your existing config or uses a sensible default'
|
|
1202
|
+
: 'Only your API keys were requested — every other setting uses a sensible default', 1);
|
|
1203
|
+
logger.listItem('📝 Edit .hublaunch/hublaunch.config.js to customize (each field is documented inline):', 1);
|
|
1204
|
+
logger.listItem('daytonaTier, containerResources — sandbox sizing', 2);
|
|
1205
|
+
logger.listItem('teamMembers, envVars — project specifics', 2);
|
|
1206
|
+
logger.listItem('updateNotificationUrl, updateNotificationNameTag — Slack notifications', 2);
|
|
1341
1207
|
// Show credential setup instructions based on selected services
|
|
1342
1208
|
if (authProvider !== 'none') {
|
|
1343
1209
|
logger.listItem('⚠️ Configure credentials in .env file at project root:', 1);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,13 +1,29 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
3
|
-
*
|
|
2
|
+
* Prefix used to mark errors that originate from a failed dynamic `import()` of
|
|
3
|
+
* an existing config file (i.e. a syntactically broken config). Callers can test
|
|
4
|
+
* for this prefix to distinguish a parse failure from any other error and turn it
|
|
5
|
+
* into an actionable, user-facing hard failure.
|
|
4
6
|
*/
|
|
5
|
-
export declare
|
|
7
|
+
export declare const CONFIG_PARSE_FAILED_PREFIX = "CONFIG_PARSE_FAILED: ";
|
|
6
8
|
/**
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
+
* Parse an existing config file by loading it via native dynamic `import()`.
|
|
10
|
+
* Handles both `.js` and `.ts` config files (the latter through the `tsx`
|
|
11
|
+
* loader already registered for the process).
|
|
12
|
+
*
|
|
13
|
+
* Returns the full config object — including any arbitrary/custom keys — so the
|
|
14
|
+
* caller can preserve every value across regeneration. Returns `null` only when
|
|
15
|
+
* the file does not exist.
|
|
16
|
+
*
|
|
17
|
+
* On a syntactically broken config the dynamic import throws; this function
|
|
18
|
+
* re-throws a wrapped error prefixed with {@link CONFIG_PARSE_FAILED_PREFIX} so
|
|
19
|
+
* the caller can hard-fail with guidance instead of silently preserving only a
|
|
20
|
+
* subset of keys. It never falls back to lossy regex extraction.
|
|
21
|
+
*
|
|
22
|
+
* @throws Error prefixed with {@link CONFIG_PARSE_FAILED_PREFIX} when the config
|
|
23
|
+
* cannot be imported, or the `hulaRepository` remediation error when the
|
|
24
|
+
* legacy key is present.
|
|
9
25
|
*/
|
|
10
|
-
export declare function
|
|
26
|
+
export declare function parseExistingConfig(configPath: string): Promise<Partial<Record<string, any>> | null>;
|
|
11
27
|
/**
|
|
12
28
|
* Merge existing config values with new config values
|
|
13
29
|
* Priority: existing > new (preserve user customizations)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config-parser.d.ts","sourceRoot":"","sources":["../../src/utils/config-parser.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"config-parser.d.ts","sourceRoot":"","sources":["../../src/utils/config-parser.ts"],"names":[],"mappings":"AAIA;;;;;GAKG;AACH,eAAO,MAAM,0BAA0B,0BAA0B,CAAC;AAElE;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAsB,mBAAmB,CACvC,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,CAyC9C;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAC1B,QAAQ,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,GAAG,IAAI,EAC7C,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAC7B,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAkBrB"}
|
|
@@ -1,189 +1,61 @@
|
|
|
1
|
-
import { readFile } from 'fs/promises';
|
|
2
1
|
import { existsSync } from 'fs';
|
|
3
2
|
import { pathToFileURL } from 'url';
|
|
4
3
|
import { logger } from './logger.js';
|
|
5
4
|
/**
|
|
6
|
-
*
|
|
7
|
-
*
|
|
5
|
+
* Prefix used to mark errors that originate from a failed dynamic `import()` of
|
|
6
|
+
* an existing config file (i.e. a syntactically broken config). Callers can test
|
|
7
|
+
* for this prefix to distinguish a parse failure from any other error and turn it
|
|
8
|
+
* into an actionable, user-facing hard failure.
|
|
9
|
+
*/
|
|
10
|
+
export const CONFIG_PARSE_FAILED_PREFIX = 'CONFIG_PARSE_FAILED: ';
|
|
11
|
+
/**
|
|
12
|
+
* Parse an existing config file by loading it via native dynamic `import()`.
|
|
13
|
+
* Handles both `.js` and `.ts` config files (the latter through the `tsx`
|
|
14
|
+
* loader already registered for the process).
|
|
15
|
+
*
|
|
16
|
+
* Returns the full config object — including any arbitrary/custom keys — so the
|
|
17
|
+
* caller can preserve every value across regeneration. Returns `null` only when
|
|
18
|
+
* the file does not exist.
|
|
19
|
+
*
|
|
20
|
+
* On a syntactically broken config the dynamic import throws; this function
|
|
21
|
+
* re-throws a wrapped error prefixed with {@link CONFIG_PARSE_FAILED_PREFIX} so
|
|
22
|
+
* the caller can hard-fail with guidance instead of silently preserving only a
|
|
23
|
+
* subset of keys. It never falls back to lossy regex extraction.
|
|
24
|
+
*
|
|
25
|
+
* @throws Error prefixed with {@link CONFIG_PARSE_FAILED_PREFIX} when the config
|
|
26
|
+
* cannot be imported, or the `hulaRepository` remediation error when the
|
|
27
|
+
* legacy key is present.
|
|
8
28
|
*/
|
|
9
29
|
export async function parseExistingConfig(configPath) {
|
|
10
30
|
if (!existsSync(configPath)) {
|
|
11
31
|
return null;
|
|
12
32
|
}
|
|
13
33
|
const spinner = logger.spinner('Parsing existing configuration...');
|
|
34
|
+
let parsed;
|
|
14
35
|
try {
|
|
15
|
-
//
|
|
36
|
+
// Load via dynamic import (best for valid JS/TS files). This mirrors the
|
|
37
|
+
// runtime ConfigLoader.load() in src/config/index.ts.
|
|
16
38
|
const configUrl = pathToFileURL(configPath).href;
|
|
17
39
|
const moduleUrl = `${configUrl}?parse=${Date.now()}`;
|
|
18
40
|
const configModule = (await import(moduleUrl));
|
|
19
|
-
|
|
41
|
+
parsed = (configModule.default ||
|
|
20
42
|
configModule.config ||
|
|
21
43
|
configModule);
|
|
22
|
-
spinner.stop();
|
|
23
|
-
return parsed;
|
|
24
44
|
}
|
|
25
45
|
catch (importError) {
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
}
|
|
36
|
-
catch (readError) {
|
|
37
|
-
spinner.stop();
|
|
38
|
-
logger.error(`Failed to parse existing config: ${readError instanceof Error ? readError.message : String(readError)}`);
|
|
39
|
-
logger.warning('Config preservation failed. Proceeding with fresh initialization.');
|
|
40
|
-
return null;
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
/**
|
|
45
|
-
* Extract config values using regex patterns (fallback method)
|
|
46
|
-
* Useful when dynamic import fails due to syntax errors
|
|
47
|
-
*/
|
|
48
|
-
export function extractConfigViaRegex(content) {
|
|
49
|
-
const extracted = {};
|
|
50
|
-
// Extract hulaApiKey
|
|
51
|
-
const apiKeyMatch = content.match(/hulaApiKey:\s*['"]([^'"]+)['"]/);
|
|
52
|
-
if (apiKeyMatch) {
|
|
53
|
-
extracted.hulaApiKey = apiKeyMatch[1];
|
|
54
|
-
}
|
|
55
|
-
// Extract anthropicApiKey
|
|
56
|
-
const anthropicKeyMatch = content.match(/anthropicApiKey:\s*['"]([^'"]+)['"]/);
|
|
57
|
-
if (anthropicKeyMatch) {
|
|
58
|
-
extracted.anthropicApiKey = anthropicKeyMatch[1];
|
|
59
|
-
}
|
|
60
|
-
// Extract daytonaApiKey
|
|
61
|
-
const daytonaKeyMatch = content.match(/daytonaApiKey:\s*['"]([^'"]+)['"]/);
|
|
62
|
-
if (daytonaKeyMatch) {
|
|
63
|
-
extracted.daytonaApiKey = daytonaKeyMatch[1];
|
|
64
|
-
}
|
|
65
|
-
// Extract daytonaTier (number)
|
|
66
|
-
const daytonaTierMatch = content.match(/daytonaTier:\s*(\d+)/);
|
|
67
|
-
if (daytonaTierMatch && daytonaTierMatch[1]) {
|
|
68
|
-
extracted.daytonaTier = parseInt(daytonaTierMatch[1], 10);
|
|
69
|
-
}
|
|
70
|
-
// Extract hulaProjectUrl
|
|
71
|
-
const urlMatch = content.match(/hulaProjectUrl:\s*['"]([^'"]+)['"]/);
|
|
72
|
-
if (urlMatch) {
|
|
73
|
-
extracted.hulaProjectUrl = urlMatch[1];
|
|
74
|
-
}
|
|
75
|
-
// Detect legacy hulaRepository key and fail fast with remediation
|
|
76
|
-
if (/hulaRepository\s*:/.test(content)) {
|
|
46
|
+
spinner.stop();
|
|
47
|
+
const message = importError instanceof Error ? importError.message : String(importError);
|
|
48
|
+
throw new Error(`${CONFIG_PARSE_FAILED_PREFIX}${message}`);
|
|
49
|
+
}
|
|
50
|
+
spinner.stop();
|
|
51
|
+
// Detect legacy hulaRepository key and fail fast with remediation. Runs
|
|
52
|
+
// against the imported object so the guard survives the removal of the regex
|
|
53
|
+
// parser.
|
|
54
|
+
if (parsed && Object.prototype.hasOwnProperty.call(parsed, 'hulaRepository')) {
|
|
77
55
|
throw new Error('Config key `hulaRepository` is no longer supported. Rename it to ' +
|
|
78
56
|
'`hulaProject` in .hublaunch/hublaunch.config.js. See CHANGELOG.md.');
|
|
79
57
|
}
|
|
80
|
-
|
|
81
|
-
const repoMatch = content.match(/hulaProject:\s*['"]([^'"]+)['"]/);
|
|
82
|
-
if (repoMatch) {
|
|
83
|
-
extracted.hulaProject = repoMatch[1];
|
|
84
|
-
}
|
|
85
|
-
// Extract editorCommand
|
|
86
|
-
const editorMatch = content.match(/editorCommand:\s*['"]([^'"]+)['"]/);
|
|
87
|
-
if (editorMatch) {
|
|
88
|
-
extracted.editorCommand = editorMatch[1];
|
|
89
|
-
}
|
|
90
|
-
// Extract planPath
|
|
91
|
-
const planPathMatch = content.match(/planPath:\s*['"]([^'"]+)['"]/);
|
|
92
|
-
if (planPathMatch) {
|
|
93
|
-
extracted.planPath = planPathMatch[1];
|
|
94
|
-
}
|
|
95
|
-
// Extract trackingFile
|
|
96
|
-
const trackingMatch = content.match(/trackingFile:\s*['"]([^'"]+)['"]/);
|
|
97
|
-
if (trackingMatch) {
|
|
98
|
-
extracted.trackingFile = trackingMatch[1];
|
|
99
|
-
}
|
|
100
|
-
// Extract createIssuesPreference
|
|
101
|
-
const createIssuesMatch = content.match(/createIssuesPreference:\s*['"]([^'"]+)['"]/);
|
|
102
|
-
if (createIssuesMatch) {
|
|
103
|
-
extracted.createIssuesPreference = createIssuesMatch[1];
|
|
104
|
-
}
|
|
105
|
-
// Extract planChoices (number)
|
|
106
|
-
const planChoicesMatch = content.match(/planChoices:\s*(\d+)/);
|
|
107
|
-
if (planChoicesMatch && planChoicesMatch[1]) {
|
|
108
|
-
extracted.planChoices = parseInt(planChoicesMatch[1], 10);
|
|
109
|
-
}
|
|
110
|
-
// Extract skipUntrackedPrompt (boolean)
|
|
111
|
-
const skipMatch = content.match(/skipUntrackedPrompt:\s*(true|false)/);
|
|
112
|
-
if (skipMatch) {
|
|
113
|
-
extracted.skipUntrackedPrompt = skipMatch[1] === 'true';
|
|
114
|
-
}
|
|
115
|
-
// Extract teamMembers array
|
|
116
|
-
const teamMembersMatch = content.match(/teamMembers:\s*\[([\s\S]*?)\]/);
|
|
117
|
-
if (teamMembersMatch) {
|
|
118
|
-
try {
|
|
119
|
-
const arrayContent = teamMembersMatch[1];
|
|
120
|
-
// Extract quoted strings
|
|
121
|
-
const members = arrayContent?.match(/['"]([^'"]+)['"]/g);
|
|
122
|
-
if (members) {
|
|
123
|
-
extracted.teamMembers = members.map((m) => m.slice(1, -1));
|
|
124
|
-
}
|
|
125
|
-
}
|
|
126
|
-
catch {
|
|
127
|
-
// Ignore parsing errors
|
|
128
|
-
}
|
|
129
|
-
}
|
|
130
|
-
// Extract services object (simplified)
|
|
131
|
-
const servicesMatch = content.match(/services:\s*{([\s\S]*?)},?\s*\n/);
|
|
132
|
-
if (servicesMatch) {
|
|
133
|
-
const servicesContent = servicesMatch[1];
|
|
134
|
-
const services = {};
|
|
135
|
-
// Extract authentication provider
|
|
136
|
-
const authMatch = servicesContent?.match(/authentication:\s*{\s*provider:\s*['"]([^'"]+)['"]/);
|
|
137
|
-
if (authMatch) {
|
|
138
|
-
services.authentication = { provider: authMatch[1] };
|
|
139
|
-
}
|
|
140
|
-
if (Object.keys(services).length > 0) {
|
|
141
|
-
extracted.services = services;
|
|
142
|
-
}
|
|
143
|
-
}
|
|
144
|
-
// Extract hooks object
|
|
145
|
-
const hooksMatch = content.match(/hooks:\s*{([\s\S]*?)},?\s*\n/);
|
|
146
|
-
if (hooksMatch) {
|
|
147
|
-
const hooksContent = hooksMatch[1];
|
|
148
|
-
const hooks = {};
|
|
149
|
-
// Extract deploymentStartup
|
|
150
|
-
const deployMatch = hooksContent?.match(/deploymentStartup:\s*['"]([^'"]+)['"]/);
|
|
151
|
-
if (deployMatch && deployMatch[1]) {
|
|
152
|
-
hooks.deploymentStartup = deployMatch[1];
|
|
153
|
-
}
|
|
154
|
-
if (Object.keys(hooks).length > 0) {
|
|
155
|
-
extracted.hooks = hooks;
|
|
156
|
-
}
|
|
157
|
-
}
|
|
158
|
-
// Extract worktreeBasePath
|
|
159
|
-
const worktreeBaseMatch = content.match(/worktreeBasePath:\s*['"]([^'"]+)['"]/);
|
|
160
|
-
if (worktreeBaseMatch) {
|
|
161
|
-
extracted.worktreeBasePath = worktreeBaseMatch[1];
|
|
162
|
-
}
|
|
163
|
-
// Extract browserHeadless
|
|
164
|
-
const browserMatch = content.match(/browserHeadless:\s*['"]([^'"]+)['"]/);
|
|
165
|
-
if (browserMatch) {
|
|
166
|
-
extracted.browserHeadless = browserMatch[1];
|
|
167
|
-
}
|
|
168
|
-
// Extract containerResources object
|
|
169
|
-
const containerResourcesMatch = content.match(/containerResources:\s*\{([^}]+)\}/);
|
|
170
|
-
if (containerResourcesMatch && containerResourcesMatch[1]) {
|
|
171
|
-
const resourcesContent = containerResourcesMatch[1];
|
|
172
|
-
const resources = {};
|
|
173
|
-
const cpuMatch = resourcesContent.match(/cpu:\s*(\d+)/);
|
|
174
|
-
if (cpuMatch && cpuMatch[1])
|
|
175
|
-
resources.cpu = parseInt(cpuMatch[1], 10);
|
|
176
|
-
const memoryMatch = resourcesContent.match(/memory:\s*(\d+)/);
|
|
177
|
-
if (memoryMatch && memoryMatch[1])
|
|
178
|
-
resources.memory = parseInt(memoryMatch[1], 10);
|
|
179
|
-
const diskMatch = resourcesContent.match(/disk:\s*(\d+)/);
|
|
180
|
-
if (diskMatch && diskMatch[1])
|
|
181
|
-
resources.disk = parseInt(diskMatch[1], 10);
|
|
182
|
-
if (Object.keys(resources).length > 0) {
|
|
183
|
-
extracted.containerResources = resources;
|
|
184
|
-
}
|
|
185
|
-
}
|
|
186
|
-
return extracted;
|
|
58
|
+
return parsed;
|
|
187
59
|
}
|
|
188
60
|
/**
|
|
189
61
|
* Merge existing config values with new config values
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config-parser.js","sourceRoot":"","sources":["../../src/utils/config-parser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"config-parser.js","sourceRoot":"","sources":["../../src/utils/config-parser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAChC,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AACpC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC;;;;;GAKG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAG,uBAAuB,CAAC;AAElE;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,UAAkB;IAElB,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC5B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,mCAAmC,CAAC,CAAC;IAEpE,IAAI,MAA2B,CAAC;IAChC,IAAI,CAAC;QACH,yEAAyE;QACzE,sDAAsD;QACtD,MAAM,SAAS,GAAG,aAAa,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC;QACjD,MAAM,SAAS,GAAG,GAAG,SAAS,UAAU,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;QACrD,MAAM,YAAY,GAAG,CAAC,MAAM,MAAM,CAAC,SAAS,CAAC,CAG5C,CAAC;QAEF,MAAM,GAAG,CAAC,YAAY,CAAC,OAAO;YAC5B,YAAY,CAAC,MAAM;YACnB,YAAY,CAAwB,CAAC;IACzC,CAAC;IAAC,OAAO,WAAW,EAAE,CAAC;QACrB,OAAO,CAAC,IAAI,EAAE,CAAC;QACf,MAAM,OAAO,GACX,WAAW,YAAY,KAAK,CAAC,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;QAC3E,MAAM,IAAI,KAAK,CAAC,GAAG,0BAA0B,GAAG,OAAO,EAAE,CAAC,CAAC;IAC7D,CAAC;IAED,OAAO,CAAC,IAAI,EAAE,CAAC;IAEf,wEAAwE;IACxE,6EAA6E;IAC7E,UAAU;IACV,IAAI,MAAM,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,gBAAgB,CAAC,EAAE,CAAC;QAC7E,MAAM,IAAI,KAAK,CACb,mEAAmE;YACjE,oEAAoE,CACvE,CAAC;IACJ,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,YAAY,CAC1B,QAA6C,EAC7C,SAA8B;IAE9B,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,OAAO;QACL,GAAG,SAAS;QACZ,GAAG,QAAQ;QACX,gCAAgC;QAChC,QAAQ,EAAE;YACR,GAAG,SAAS,CAAC,QAAQ;YACrB,GAAG,QAAQ,CAAC,QAAQ;SACrB;QACD,KAAK,EAAE;YACL,GAAG,SAAS,CAAC,KAAK;YAClB,GAAG,QAAQ,CAAC,KAAK;SAClB;KACF,CAAC;AACJ,CAAC"}
|
package/package.json
CHANGED