hub-launch 1.11.0 → 1.12.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 +17 -0
- package/README.md +3 -0
- package/dist/commands/init.d.ts +33 -1
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +84 -34
- package/dist/commands/init.js.map +1 -1
- package/dist/templates/planning-instructions.md +2 -1
- package/dist/templates/proceed-instructions.md +59 -1
- package/dist/templates/skills/hula-confirm/SKILL.md +3 -1
- package/dist/templates/skills/hula-plan/SKILL.md +2 -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,23 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
7
7
|
|
|
8
8
|
## [Unreleased]
|
|
9
9
|
|
|
10
|
+
## [1.12.0] - 2026-07-13
|
|
11
|
+
|
|
12
|
+
### Changed
|
|
13
|
+
|
|
14
|
+
- `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.
|
|
15
|
+
- `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.
|
|
16
|
+
|
|
17
|
+
### Removed
|
|
18
|
+
|
|
19
|
+
- Removed the `overrideStartupScript` prompt from `hula init`. An existing `.hublaunch/hooks/deploymentStartupScript.ts` is never overwritten (created only when missing).
|
|
20
|
+
|
|
21
|
+
## [1.11.1] - 2026-07-09
|
|
22
|
+
|
|
23
|
+
### Added
|
|
24
|
+
|
|
25
|
+
- Offer to launch automatically after plan validation completes, so you can go straight from a validated plan into a run without a separate step.
|
|
26
|
+
|
|
10
27
|
## [1.11.0] - 2026-07-08
|
|
11
28
|
|
|
12
29
|
### Added
|
package/README.md
CHANGED
|
@@ -100,6 +100,9 @@ The primary use case is AI-assisted issue development via the hula-project serve
|
|
|
100
100
|
```bash
|
|
101
101
|
# 1. Plan the feature
|
|
102
102
|
# Validation runs automatically in the same session after the plan is saved.
|
|
103
|
+
# When validation finishes, the assistant offers to launch right away with a
|
|
104
|
+
# default issue name derived from the plan (reply "yes" to launch, or decline
|
|
105
|
+
# and run /hula-launch <name> yourself later).
|
|
103
106
|
/hula-plan Add password reset support
|
|
104
107
|
|
|
105
108
|
# 2. Upload the plan to origin/main
|
package/dist/commands/init.d.ts
CHANGED
|
@@ -1,8 +1,40 @@
|
|
|
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. Keys the template only ever renders as an illustrative `// comment`
|
|
7
|
+
* (never their real value) are intentionally excluded so a user's real value
|
|
8
|
+
* survives via the `// Preserved custom settings` block:
|
|
9
|
+
* - `commandAliases`, `priorityLevels`, `issueSortOrder` → comment-only → excluded.
|
|
10
|
+
*
|
|
11
|
+
* When adding any future documented field to the template, add its key here in
|
|
12
|
+
* the same change so it is not double-written (once documented, once preserved).
|
|
13
|
+
*/
|
|
14
|
+
export declare const TEMPLATE_EMITTED_KEYS: Set<string>;
|
|
15
|
+
/**
|
|
16
|
+
* Build the `// Preserved custom settings` block for any keys present in the
|
|
17
|
+
* final config that the template does not itself emit (arbitrary/custom keys,
|
|
18
|
+
* plus `hulaProject`/`hulaProjectUrl`). Each value is serialized with
|
|
19
|
+
* `JSON.stringify`, which produces valid JS for all JSON-compatible values.
|
|
20
|
+
*
|
|
21
|
+
* Returns an empty string when there are no unknown keys, so no empty block is
|
|
22
|
+
* ever emitted. The returned string, when non-empty, begins with a newline and
|
|
23
|
+
* is intended to be concatenated immediately before the closing `};`.
|
|
24
|
+
*
|
|
25
|
+
* Note: preserved values may contain secrets — only key names are logged, never
|
|
26
|
+
* values.
|
|
27
|
+
*/
|
|
28
|
+
export declare function buildPreservedSection(finalConfig: Record<string, any>): string;
|
|
3
29
|
/**
|
|
4
30
|
* Init command - Initialize HubLaunch configuration
|
|
5
31
|
*/
|
|
6
32
|
export declare function initCommand(program: Command, _config: Config): void;
|
|
7
|
-
|
|
33
|
+
/**
|
|
34
|
+
* Generate hook templates based on authentication provider
|
|
35
|
+
*/
|
|
36
|
+
export declare function generateHookTemplates(projectRoot: string, authProvider: string): Promise<void>;
|
|
37
|
+
export declare function executeInit(options?: {
|
|
38
|
+
force?: boolean;
|
|
39
|
+
}): Promise<void>;
|
|
8
40
|
//# 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;AAehD;;;;;;;;;;GAUG;AACH,eAAO,MAAM,qBAAqB,aAwBhC,CAAC;AAEH;;;;;;;;;;;;GAYG;AACH,wBAAgB,qBAAqB,CAAC,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM,CAe9E;AAkCD;;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;AAuXD,wBAAsB,WAAW,CAAC,OAAO,CAAC,EAAE;IAC1C,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB,GAAG,OAAO,CAAC,IAAI,CAAC,CA0qBhB"}
|
package/dist/commands/init.js
CHANGED
|
@@ -9,9 +9,66 @@ import { dirname } from 'path';
|
|
|
9
9
|
import { DEFAULT_CONFIG } from '../types/config.schema.js';
|
|
10
10
|
import { DEFAULT_POLL_INTERVAL_SECONDS } from '../types/common.schema.js';
|
|
11
11
|
import { checkGhVersion } from '../utils/github-cli.js';
|
|
12
|
-
import { parseExistingConfig, mergeConfigs } from '../utils/config-parser.js';
|
|
12
|
+
import { parseExistingConfig, mergeConfigs, CONFIG_PARSE_FAILED_PREFIX, } from '../utils/config-parser.js';
|
|
13
13
|
import { getCliVersion } from '../utils/version.js';
|
|
14
14
|
import { RESERVED_ENV_VARS } from '../utils/env-vars.js';
|
|
15
|
+
/**
|
|
16
|
+
* Keys whose **actual runtime value** is written by the config template below.
|
|
17
|
+
* A key belongs here if and only if emitting it a second time would duplicate
|
|
18
|
+
* it. Keys the template only ever renders as an illustrative `// comment`
|
|
19
|
+
* (never their real value) are intentionally excluded so a user's real value
|
|
20
|
+
* survives via the `// Preserved custom settings` block:
|
|
21
|
+
* - `commandAliases`, `priorityLevels`, `issueSortOrder` → comment-only → excluded.
|
|
22
|
+
*
|
|
23
|
+
* When adding any future documented field to the template, add its key here in
|
|
24
|
+
* the same change so it is not double-written (once documented, once preserved).
|
|
25
|
+
*/
|
|
26
|
+
export const TEMPLATE_EMITTED_KEYS = new Set([
|
|
27
|
+
'version',
|
|
28
|
+
'hulaApiKey',
|
|
29
|
+
'anthropicApiKey',
|
|
30
|
+
'daytonaApiKey',
|
|
31
|
+
'daytonaTier',
|
|
32
|
+
'containerResources',
|
|
33
|
+
'updateNotificationUrl',
|
|
34
|
+
'updateNotificationNameTag',
|
|
35
|
+
'usageTier',
|
|
36
|
+
'editorCommand',
|
|
37
|
+
'planPath',
|
|
38
|
+
'trackingFile',
|
|
39
|
+
'createIssuesPreference',
|
|
40
|
+
'planChoices',
|
|
41
|
+
'skipUntrackedPrompt',
|
|
42
|
+
'pollingProvider',
|
|
43
|
+
'pollIntervalSeconds',
|
|
44
|
+
'teamMembers',
|
|
45
|
+
'services',
|
|
46
|
+
'hooks',
|
|
47
|
+
'browserHeadless',
|
|
48
|
+
'worktreeBasePath',
|
|
49
|
+
'envVars',
|
|
50
|
+
]);
|
|
51
|
+
/**
|
|
52
|
+
* Build the `// Preserved custom settings` block for any keys present in the
|
|
53
|
+
* final config that the template does not itself emit (arbitrary/custom keys,
|
|
54
|
+
* plus `hulaProject`/`hulaProjectUrl`). Each value is serialized with
|
|
55
|
+
* `JSON.stringify`, which produces valid JS for all JSON-compatible values.
|
|
56
|
+
*
|
|
57
|
+
* Returns an empty string when there are no unknown keys, so no empty block is
|
|
58
|
+
* ever emitted. The returned string, when non-empty, begins with a newline and
|
|
59
|
+
* is intended to be concatenated immediately before the closing `};`.
|
|
60
|
+
*
|
|
61
|
+
* Note: preserved values may contain secrets — only key names are logged, never
|
|
62
|
+
* values.
|
|
63
|
+
*/
|
|
64
|
+
export function buildPreservedSection(finalConfig) {
|
|
65
|
+
const unknownKeys = Object.keys(finalConfig).filter((key) => !TEMPLATE_EMITTED_KEYS.has(key) && finalConfig[key] !== undefined);
|
|
66
|
+
if (unknownKeys.length === 0) {
|
|
67
|
+
return '';
|
|
68
|
+
}
|
|
69
|
+
const lines = unknownKeys.map((key) => ` ${key}: ${JSON.stringify(finalConfig[key])},`);
|
|
70
|
+
return `\n\n // Preserved custom settings\n${lines.join('\n')}`;
|
|
71
|
+
}
|
|
15
72
|
/**
|
|
16
73
|
* Validate envVars input from the init form. Accepts an empty string (clears the
|
|
17
74
|
* setting), the literal "all", or a comma-separated list of variable names. Each
|
|
@@ -47,9 +104,9 @@ export function initCommand(program, _config) {
|
|
|
47
104
|
.command('init')
|
|
48
105
|
.description('Initialize HubLaunch configuration (interactive)')
|
|
49
106
|
.option('--force', 'Overwrite existing configuration')
|
|
50
|
-
.action(async () => {
|
|
107
|
+
.action(async (options) => {
|
|
51
108
|
try {
|
|
52
|
-
await executeInit();
|
|
109
|
+
await executeInit(options);
|
|
53
110
|
}
|
|
54
111
|
catch (error) {
|
|
55
112
|
// Handle user cancellation gracefully
|
|
@@ -492,13 +549,14 @@ Templates are automatically detected and used by HubLaunch when creating issues
|
|
|
492
549
|
/**
|
|
493
550
|
* Generate hook templates based on authentication provider
|
|
494
551
|
*/
|
|
495
|
-
async function generateHookTemplates(projectRoot, authProvider
|
|
552
|
+
export async function generateHookTemplates(projectRoot, authProvider) {
|
|
496
553
|
const hooksDir = join(projectRoot, '.hublaunch/hooks');
|
|
497
554
|
// Create hooks directory
|
|
498
555
|
await mkdir(hooksDir, { recursive: true });
|
|
499
556
|
logger.success(`Created directory: .hublaunch/hooks/`);
|
|
500
557
|
// Generate deploymentStartupScript.ts template based on auth provider
|
|
501
|
-
// Only create if auth provider is configured (not "none")
|
|
558
|
+
// Only create if auth provider is configured (not "none"). An existing script
|
|
559
|
+
// is never overwritten — the user may have customized it.
|
|
502
560
|
if (authProvider !== 'none') {
|
|
503
561
|
const startupScriptPath = join(hooksDir, 'deploymentStartupScript.ts');
|
|
504
562
|
if (!existsSync(startupScriptPath)) {
|
|
@@ -506,11 +564,6 @@ async function generateHookTemplates(projectRoot, authProvider, overrideStartupS
|
|
|
506
564
|
await writeFile(startupScriptPath, template, 'utf-8');
|
|
507
565
|
logger.success(`Created: .hublaunch/hooks/deploymentStartupScript.ts`);
|
|
508
566
|
}
|
|
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
567
|
else {
|
|
515
568
|
logger.info('Keeping existing deploymentStartupScript.ts');
|
|
516
569
|
}
|
|
@@ -807,7 +860,7 @@ function displayConfigSummary(config) {
|
|
|
807
860
|
}
|
|
808
861
|
logger.blank();
|
|
809
862
|
}
|
|
810
|
-
export async function executeInit() {
|
|
863
|
+
export async function executeInit(options) {
|
|
811
864
|
logger.section('Initialize HubLaunch Configuration');
|
|
812
865
|
// Validate GitHub CLI version
|
|
813
866
|
logger.info('Checking GitHub CLI version...');
|
|
@@ -830,9 +883,24 @@ export async function executeInit() {
|
|
|
830
883
|
: existsSync(configPath)
|
|
831
884
|
? configPath
|
|
832
885
|
: null;
|
|
833
|
-
|
|
886
|
+
// With --force, skip parsing entirely so a broken existing file does not
|
|
887
|
+
// block regeneration (custom edits are intentionally lost, as documented).
|
|
888
|
+
if (existingConfigPath && !options?.force) {
|
|
834
889
|
logger.info(`📋 Detected existing config: ${relative(repoRoot, existingConfigPath)}`);
|
|
835
|
-
|
|
890
|
+
try {
|
|
891
|
+
existingConfig = await parseExistingConfig(existingConfigPath);
|
|
892
|
+
}
|
|
893
|
+
catch (error) {
|
|
894
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
895
|
+
if (message.startsWith(CONFIG_PARSE_FAILED_PREFIX)) {
|
|
896
|
+
logger.error(`Existing config at ${relative(repoRoot, existingConfigPath)} could not be parsed (syntax error).`);
|
|
897
|
+
logger.error('Fix the file, or run `hula init --force` to regenerate a fresh config (custom edits will be lost).');
|
|
898
|
+
process.exit(1);
|
|
899
|
+
}
|
|
900
|
+
// Any other error (e.g. the hulaRepository legacy-key guard) is a real
|
|
901
|
+
// configuration problem — surface it as-is.
|
|
902
|
+
throw error;
|
|
903
|
+
}
|
|
836
904
|
if (existingConfig) {
|
|
837
905
|
const preservedKeys = [];
|
|
838
906
|
if (existingConfig.hulaApiKey)
|
|
@@ -890,9 +958,7 @@ export async function executeInit() {
|
|
|
890
958
|
logger.info('💡 Hint: For enum fields, valid values are shown in parentheses');
|
|
891
959
|
logger.info('💡 Leave fields unchanged to keep current values, or edit to update');
|
|
892
960
|
logger.blank();
|
|
893
|
-
//
|
|
894
|
-
const startupScriptExists = existsSync(join(repoRoot, '.hublaunch/hooks/deploymentStartupScript.ts'));
|
|
895
|
-
// Build form choices dynamically - only include override options for files that exist
|
|
961
|
+
// Build form choices dynamically
|
|
896
962
|
const formChoices = [
|
|
897
963
|
{
|
|
898
964
|
name: 'anthropicApiKey',
|
|
@@ -995,18 +1061,6 @@ export async function executeInit() {
|
|
|
995
1061
|
validate: validateEnvVarsInput,
|
|
996
1062
|
},
|
|
997
1063
|
];
|
|
998
|
-
// Only add override options for files that already exist
|
|
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
1064
|
// Single Unified Form for ALL fields
|
|
1011
1065
|
const formData = await form('HubLaunch Configuration', formChoices);
|
|
1012
1066
|
// Parse form results with fallbacks
|
|
@@ -1026,10 +1080,6 @@ export async function executeInit() {
|
|
|
1026
1080
|
.map((m) => m.trim())
|
|
1027
1081
|
.filter((m) => m.length > 0);
|
|
1028
1082
|
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
1083
|
// Parse VS Code auto-approval preference
|
|
1034
1084
|
const configureVsCodeAutoApproval = ['true', 'yes'].includes((formData.configureVsCodeAutoApproval || 'true').toLowerCase());
|
|
1035
1085
|
// Parse envVars: can be "all" or comma-separated array
|
|
@@ -1219,7 +1269,7 @@ ${hooksConfigSection}
|
|
|
1219
1269
|
|
|
1220
1270
|
// Worktree base path (used by /hula-fix, /hula-merge, /hula-upload)
|
|
1221
1271
|
worktreeBasePath: "${(finalConfig.worktreeBasePath || '.hula-worktrees').replace(/\\/g, '\\\\').replace(/"/g, '\\"')}",
|
|
1222
|
-
${envVarsLine}
|
|
1272
|
+
${envVarsLine}${buildPreservedSection(finalConfig)}
|
|
1223
1273
|
};
|
|
1224
1274
|
`;
|
|
1225
1275
|
// Create directory if it doesn't exist
|
|
@@ -1307,7 +1357,7 @@ ${envVarsLine}
|
|
|
1307
1357
|
// Always generate hooks directory structure (with README and optionally script)
|
|
1308
1358
|
logger.blank();
|
|
1309
1359
|
logger.info('Generating hooks directory structure...');
|
|
1310
|
-
await generateHookTemplates(repoRoot, authProvider
|
|
1360
|
+
await generateHookTemplates(repoRoot, authProvider);
|
|
1311
1361
|
// Always generate adapters directory structure
|
|
1312
1362
|
logger.blank();
|
|
1313
1363
|
logger.info('Generating adapter directory structure...');
|
|
@@ -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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"}
|
|
@@ -240,6 +240,7 @@ After generating and saving the draft plan file (following Phase 6 below), infor
|
|
|
240
240
|
3. **Execute validation inline**: Read `.hublaunch/proceed-instructions.md` and run the full validation workflow against the plan file you just saved
|
|
241
241
|
4. **Skip the file-location guard**: The plan path is already known from this session — do not ask "Is this correct?"
|
|
242
242
|
5. **Carry forward context**: Use everything learned during planning to resolve validation questions where possible
|
|
243
|
+
6. **Offer the launch**: After validation completes, follow the "Launch Offer" section of `.hublaunch/proceed-instructions.md` — determine the issue name, ask the launch question, and on an affirmative reply execute the `/hula-launch` workflow. Never launch without an affirmative reply.
|
|
243
244
|
|
|
244
245
|
**Output format after saving the plan file:**
|
|
245
246
|
|
|
@@ -700,7 +701,7 @@ src/
|
|
|
700
701
|
- Phase 3: Create DRAFT plan
|
|
701
702
|
- Phase 4: Save the plan file immediately
|
|
702
703
|
- Phase 5: Auto-continue to validation in the same session
|
|
703
|
-
- Phase 6: Inline validation (replaces separate `/hula-confirm`; the standalone command remains available)
|
|
704
|
+
- Phase 6: Inline validation (replaces separate `/hula-confirm`; the standalone command remains available) — ends with the Launch Offer (see `.hublaunch/proceed-instructions.md`)
|
|
704
705
|
|
|
705
706
|
4. **PLAN FOR AI IMPLEMENTATION**: The plan must be self-contained
|
|
706
707
|
|
|
@@ -305,9 +305,66 @@ R2. Do another validation pass? (A: Yes / B: No, complete)
|
|
|
305
305
|
- ✅ Testing strategy
|
|
306
306
|
- ✅ User approved
|
|
307
307
|
|
|
308
|
-
|
|
308
|
+
🚀 Are you ready to launch? (Unless you tell me otherwise, I'll use the issue name `<issueName>`.)
|
|
309
309
|
```
|
|
310
310
|
|
|
311
|
+
The `🚀 Are you ready to launch?` line is not a static message — it begins the **Launch Offer** procedure below. Resolve `<issueName>`, ask the question, and act on the reply as specified next.
|
|
312
|
+
|
|
313
|
+
## Launch Offer
|
|
314
|
+
|
|
315
|
+
After the Completion Format block is printed, offer to launch the plan for the user instead of leaving them to run `/hula-launch` by hand. This turns the usual next step (plan → launch) into a single confirmation.
|
|
316
|
+
|
|
317
|
+
**⚠️ Launching is an outward-facing action** — it creates a GitHub issue and starts a cloud implementation run. **Never launch without a clear affirmative reply from the user.** Silence, an ambiguous reply, or the end of the session must never trigger a launch.
|
|
318
|
+
|
|
319
|
+
### 1. Resolve the issue name
|
|
320
|
+
|
|
321
|
+
Determine `<issueName>` before asking the question:
|
|
322
|
+
|
|
323
|
+
1. **Look for a name the user specified** anywhere in this conversation — e.g. "use the branch name `foo`", "call the issue `bar`", or a name passed in the original `/hula-plan` arguments. If more than one was mentioned, **the most recent wins**. Use that name verbatim (kebab-case it if needed).
|
|
324
|
+
2. **Otherwise derive the default from the plan file's basename** (the subfolder is never part of the name):
|
|
325
|
+
- Strip the leading timestamp prefix matching `YYYY-MM-DD-HH:MM-` and the trailing `.md`.
|
|
326
|
+
- The remaining text is the title slug (e.g. `auto-launch-offer-after-plan`).
|
|
327
|
+
- If the slug is **longer than 3 words**, shorten it to the 2–3 most distinctive words (e.g. `auto-launch-offer-after-plan` → `auto-launch`). Otherwise keep it as-is.
|
|
328
|
+
- Always **kebab-case** (lowercase words joined by hyphens), never camelCase — these become git branch names.
|
|
329
|
+
- Example: `.hublaunch/plans/skills/2026-07-09-14:28-auto-launch-offer-after-plan.md` → slug `auto-launch-offer-after-plan` → `<issueName>` = `auto-launch`.
|
|
330
|
+
|
|
331
|
+
### 2. Ask the launch question
|
|
332
|
+
|
|
333
|
+
Ask exactly this (as a literal line), substituting the resolved name for `<issueName>`:
|
|
334
|
+
|
|
335
|
+
```
|
|
336
|
+
🚀 Are you ready to launch? (Unless you tell me otherwise, I'll use the issue name `<issueName>`.)
|
|
337
|
+
```
|
|
338
|
+
|
|
339
|
+
Then **STOP and wait** for the user's reply. Do not launch until they answer.
|
|
340
|
+
|
|
341
|
+
### 3. Interpret the reply
|
|
342
|
+
|
|
343
|
+
| Reply | Action |
|
|
344
|
+
|---|---|
|
|
345
|
+
| Affirmative ("yes", "go", "launch", 👍, etc.) with no other content | Launch with `<issueName>`. |
|
|
346
|
+
| Affirmative **with a different name** (e.g. "yes, but call it `payment-fix`") | Launch with the new name instead. |
|
|
347
|
+
| Just a bare name (e.g. "`payment-fix`") | Treat as affirmative supplying the name — launch with that name. |
|
|
348
|
+
| Reply contains `--handoff <username>` and/or `--test` | Pass those flags through to the launch. |
|
|
349
|
+
| Negative or deferring ("no", "not yet", "later") | Print the fallback message below and **stop** — do not launch. |
|
|
350
|
+
| Ambiguous (neither clearly yes nor no) | Ask once more for a clear yes/no; still never launch without a clear affirmative. |
|
|
351
|
+
|
|
352
|
+
**Fallback message** (print verbatim, substituting `<issueName>`) when the user declines or defers:
|
|
353
|
+
|
|
354
|
+
```
|
|
355
|
+
👍 No problem. When you're ready, run `/hula-launch <issueName>` (or any name you prefer).
|
|
356
|
+
```
|
|
357
|
+
|
|
358
|
+
### 4. Execute the launch
|
|
359
|
+
|
|
360
|
+
On a clear affirmative, read `.agents/skills/hula-launch/SKILL.md` and execute its workflow with the arguments `<issueName> <planPath>` (plus any `--handoff`/`--test` flags from the reply). Pass the plan path explicitly — it is known in this session — rather than relying on chat-history extraction.
|
|
361
|
+
|
|
362
|
+
All error handling, JSON output parsing, and result display come from the `hula-launch` skill's own Steps 2–3. Do **not** duplicate or re-implement them. Launch failures (branch already exists, plan missing on origin, etc.) are reported by the launch script's JSON output and displayed per that skill; do **not** auto-retry.
|
|
363
|
+
|
|
364
|
+
### Note
|
|
365
|
+
|
|
366
|
+
The user may always run `/hula-launch <branch-name>` explicitly instead — that path is unchanged. The launch offer is a convenience, not a replacement.
|
|
367
|
+
|
|
311
368
|
## Common Validation Patterns
|
|
312
369
|
|
|
313
370
|
### Pattern: Missing API Details
|
|
@@ -449,5 +506,6 @@ Plan says: "Add deployment preview feature using the API we discussed"
|
|
|
449
506
|
- **Preserve content** - enhance, don't replace
|
|
450
507
|
- **Iterate if needed** - refinement is a process
|
|
451
508
|
- **Ensure readiness** - plan must stand alone for AI implementation
|
|
509
|
+
- **Offer the launch** - after completion, resolve the issue name and ask the launch question; never launch without an affirmative reply
|
|
452
510
|
|
|
453
511
|
The goal is to ensure every plan can be successfully implemented by an AI agent without any clarification questions.
|
|
@@ -293,9 +293,11 @@ After updating the plan:
|
|
|
293
293
|
- ✅ Edge case coverage
|
|
294
294
|
- ✅ Testing strategy
|
|
295
295
|
|
|
296
|
-
|
|
296
|
+
🚀 Are you ready to launch? (Unless you tell me otherwise, I'll use the issue name `<issueName>`.)
|
|
297
297
|
```
|
|
298
298
|
|
|
299
|
+
Then follow the **Launch Offer** section of `.hublaunch/proceed-instructions.md`: resolve `<issueName>`, ask the launch question, and on an affirmative reply execute the `/hula-launch` workflow with `<issueName> <planPath>` (plus any `--handoff`/`--test` flags). Never launch without an affirmative reply; on a negative or deferring reply, print the fallback message and stop.
|
|
300
|
+
|
|
299
301
|
## Important Guidelines
|
|
300
302
|
|
|
301
303
|
### Auto-Fix Capability
|
|
@@ -144,5 +144,6 @@ Read `.hublaunch/proceed-instructions.md` and execute the full validation workfl
|
|
|
144
144
|
> ⚠️ Auto-validation could not complete. Run `/hula-confirm <path>` to resume.
|
|
145
145
|
|
|
146
146
|
where `<path>` is the plan file path.
|
|
147
|
+
- **Finish with the Launch Offer** — after validation completes, execute the "Launch Offer" section of `.hublaunch/proceed-instructions.md` (issue-name resolution, the launch question, and launching on an affirmative reply). Never launch without an affirmative reply.
|
|
147
148
|
|
|
148
|
-
**Note:** The plan is saved locally. When you run `/hula-launch`, the plan is automatically synced to `origin/main` before the GitHub issue is created and the implementation begins — no separate upload step needed. `/hula-confirm` remains available as a standalone command for re-validation at any time.
|
|
149
|
+
**Note:** The plan is saved locally. When you run `/hula-launch`, the plan is automatically synced to `origin/main` before the GitHub issue is created and the implementation begins — no separate upload step needed. Because validation ends with the Launch Offer, an affirmative reply runs the `/hula-launch` workflow for the user automatically; they can also decline and run `/hula-launch` themselves later. `/hula-confirm` remains available as a standalone command for re-validation at any time.
|
|
@@ -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