specweave 0.22.0 → 0.22.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/CLAUDE.md +211 -0
- package/README.md +5 -5
- package/bin/specweave.js +5 -8
- package/dist/plugins/specweave-github/lib/CodeValidator.d.ts +1 -1
- package/dist/plugins/specweave-github/lib/CodeValidator.js +1 -1
- package/dist/plugins/specweave-github/lib/github-client-v2.d.ts +10 -0
- package/dist/plugins/specweave-github/lib/github-client-v2.d.ts.map +1 -1
- package/dist/plugins/specweave-github/lib/github-client-v2.js +26 -0
- package/dist/plugins/specweave-github/lib/github-client-v2.js.map +1 -1
- package/dist/plugins/specweave-github/lib/task-sync.d.ts.map +1 -1
- package/dist/plugins/specweave-github/lib/task-sync.js +7 -0
- package/dist/plugins/specweave-github/lib/task-sync.js.map +1 -1
- package/dist/src/cli/commands/migrate-to-profiles.d.ts +1 -0
- package/dist/src/cli/commands/migrate-to-profiles.d.ts.map +1 -1
- package/dist/src/cli/commands/migrate-to-profiles.js +12 -1
- package/dist/src/cli/commands/migrate-to-profiles.js.map +1 -1
- package/dist/src/cli/commands/next-command.d.ts +52 -0
- package/dist/src/cli/commands/next-command.d.ts.map +1 -0
- package/dist/src/cli/commands/next-command.js +204 -0
- package/dist/src/cli/commands/next-command.js.map +1 -0
- package/dist/src/cli/commands/sync-specs.d.ts +16 -0
- package/dist/src/cli/commands/sync-specs.d.ts.map +1 -0
- package/dist/src/cli/commands/sync-specs.js +130 -0
- package/dist/src/cli/commands/sync-specs.js.map +1 -0
- package/dist/src/cli/count-tasks.d.ts +20 -0
- package/dist/src/cli/count-tasks.d.ts.map +1 -0
- package/dist/src/cli/count-tasks.js +50 -0
- package/dist/src/cli/count-tasks.js.map +1 -0
- package/dist/src/config/ConfigManager.d.ts.map +1 -1
- package/dist/src/config/ConfigManager.js +2 -1
- package/dist/src/config/ConfigManager.js.map +1 -1
- package/dist/src/config/types.d.ts +50 -50
- package/dist/src/core/cicd/state-manager.d.ts +8 -0
- package/dist/src/core/cicd/state-manager.d.ts.map +1 -1
- package/dist/src/core/cicd/state-manager.js +60 -15
- package/dist/src/core/cicd/state-manager.js.map +1 -1
- package/dist/src/core/cost-tracker.d.ts.map +1 -1
- package/dist/src/core/cost-tracker.js +2 -1
- package/dist/src/core/cost-tracker.js.map +1 -1
- package/dist/src/core/iac/template-engine.d.ts.map +1 -1
- package/dist/src/core/iac/template-engine.js +28 -0
- package/dist/src/core/iac/template-engine.js.map +1 -1
- package/dist/src/core/iac/template-generator.d.ts +53 -0
- package/dist/src/core/iac/template-generator.d.ts.map +1 -0
- package/dist/src/core/iac/template-generator.js +125 -0
- package/dist/src/core/iac/template-generator.js.map +1 -0
- package/dist/src/core/increment/status-auto-transition.js +3 -3
- package/dist/src/core/increment/status-auto-transition.js.map +1 -1
- package/dist/src/core/living-docs/CodeValidator.js +1 -1
- package/dist/src/core/living-docs/CodeValidator.js.map +1 -1
- package/dist/src/core/living-docs/content-distributor.d.ts.map +1 -1
- package/dist/src/core/living-docs/content-distributor.js +11 -1
- package/dist/src/core/living-docs/content-distributor.js.map +1 -1
- package/dist/src/core/living-docs/living-docs-sync.d.ts +166 -0
- package/dist/src/core/living-docs/living-docs-sync.d.ts.map +1 -0
- package/dist/src/core/living-docs/living-docs-sync.js +726 -0
- package/dist/src/core/living-docs/living-docs-sync.js.map +1 -0
- package/dist/src/core/living-docs/task-project-specific-generator.d.ts +7 -3
- package/dist/src/core/living-docs/task-project-specific-generator.d.ts.map +1 -1
- package/dist/src/core/living-docs/task-project-specific-generator.js +40 -24
- package/dist/src/core/living-docs/task-project-specific-generator.js.map +1 -1
- package/dist/src/core/plugin-loader.d.ts +7 -0
- package/dist/src/core/plugin-loader.d.ts.map +1 -1
- package/dist/src/core/plugin-loader.js +18 -1
- package/dist/src/core/plugin-loader.js.map +1 -1
- package/dist/src/core/serverless/platform-data-loader.d.ts +8 -0
- package/dist/src/core/serverless/platform-data-loader.d.ts.map +1 -1
- package/dist/src/core/serverless/platform-data-loader.js +14 -0
- package/dist/src/core/serverless/platform-data-loader.js.map +1 -1
- package/dist/src/core/serverless/types.d.ts +1 -1
- package/dist/src/core/serverless/types.d.ts.map +1 -1
- package/dist/src/core/status-line/status-line-manager.d.ts +6 -2
- package/dist/src/core/status-line/status-line-manager.d.ts.map +1 -1
- package/dist/src/core/status-line/status-line-manager.js +11 -5
- package/dist/src/core/status-line/status-line-manager.js.map +1 -1
- package/dist/src/core/status-line/task-counter.d.ts +69 -0
- package/dist/src/core/status-line/task-counter.d.ts.map +1 -0
- package/dist/src/core/status-line/task-counter.js +107 -0
- package/dist/src/core/status-line/task-counter.js.map +1 -0
- package/dist/src/core/workflow/autonomous-executor.d.ts +111 -0
- package/dist/src/core/workflow/autonomous-executor.d.ts.map +1 -0
- package/dist/src/core/workflow/autonomous-executor.js +275 -0
- package/dist/src/core/workflow/autonomous-executor.js.map +1 -0
- package/dist/src/core/workflow/backlog-scanner.d.ts +94 -0
- package/dist/src/core/workflow/backlog-scanner.d.ts.map +1 -0
- package/dist/src/core/workflow/backlog-scanner.js +170 -0
- package/dist/src/core/workflow/backlog-scanner.js.map +1 -0
- package/dist/src/core/workflow/command-invoker.d.ts +86 -0
- package/dist/src/core/workflow/command-invoker.d.ts.map +1 -0
- package/dist/src/core/workflow/command-invoker.js +131 -0
- package/dist/src/core/workflow/command-invoker.js.map +1 -0
- package/dist/src/core/workflow/cost-estimator.d.ts +120 -0
- package/dist/src/core/workflow/cost-estimator.d.ts.map +1 -0
- package/dist/src/core/workflow/cost-estimator.js +222 -0
- package/dist/src/core/workflow/cost-estimator.js.map +1 -0
- package/dist/src/core/workflow/index.d.ts +20 -0
- package/dist/src/core/workflow/index.d.ts.map +1 -0
- package/dist/src/core/workflow/index.js +24 -0
- package/dist/src/core/workflow/index.js.map +1 -0
- package/dist/src/core/workflow/state-manager.d.ts +107 -0
- package/dist/src/core/workflow/state-manager.d.ts.map +1 -0
- package/dist/src/core/workflow/state-manager.js +126 -0
- package/dist/src/core/workflow/state-manager.js.map +1 -0
- package/dist/src/core/workflow/workflow-orchestrator.d.ts +93 -0
- package/dist/src/core/workflow/workflow-orchestrator.d.ts.map +1 -0
- package/dist/src/core/workflow/workflow-orchestrator.js +195 -0
- package/dist/src/core/workflow/workflow-orchestrator.js.map +1 -0
- package/dist/src/init/architecture/types.d.ts +10 -10
- package/dist/src/metrics/dora-calculator.js +2 -2
- package/dist/src/metrics/dora-calculator.js.map +1 -1
- package/dist/src/utils/pricing-constants.d.ts +5 -2
- package/dist/src/utils/pricing-constants.d.ts.map +1 -1
- package/dist/src/utils/pricing-constants.js +3 -2
- package/dist/src/utils/pricing-constants.js.map +1 -1
- package/package.json +4 -4
- package/plugins/specweave/agents/infrastructure/AGENT.md +88 -46
- package/plugins/specweave/agents/pm/AGENT.md +58 -1
- package/plugins/specweave/commands/specweave-archive-features.md +1 -1
- package/plugins/specweave/commands/specweave-archive-increments.md +1 -1
- package/plugins/specweave/commands/specweave-check-hooks.md +5 -0
- package/plugins/specweave/commands/specweave-done.md +12 -0
- package/plugins/specweave/commands/specweave-plan.md +1 -1
- package/plugins/specweave/commands/specweave-progress.md +108 -379
- package/plugins/specweave/commands/specweave-reopen.md +1 -1
- package/plugins/specweave/commands/specweave-restore-feature.md +1 -1
- package/plugins/specweave/commands/specweave-sync-specs.md +20 -48
- package/plugins/specweave/hooks/lib/update-status-line.sh +44 -35
- package/plugins/specweave/hooks/lib/validate-spec-status.sh +163 -0
- package/plugins/specweave/hooks/user-prompt-submit.sh +17 -35
- package/plugins/specweave/lib/hooks/update-tasks-md.js +52 -9
- package/plugins/specweave/lib/hooks/update-tasks-md.ts +77 -16
- package/plugins/specweave/templates/iac/aws-lambda/defaults.json +24 -0
- package/plugins/specweave/templates/iac/aws-lambda/templates/README.md.hbs +260 -0
- package/plugins/specweave/templates/iac/aws-lambda/templates/environments/dev.tfvars.hbs +34 -0
- package/plugins/specweave/templates/iac/aws-lambda/templates/environments/prod.tfvars.hbs +37 -0
- package/plugins/specweave/templates/iac/aws-lambda/templates/environments/staging.tfvars.hbs +35 -0
- package/plugins/specweave/templates/iac/aws-lambda/templates/outputs.tf.hbs +77 -0
- package/plugins/specweave/templates/iac/aws-lambda/templates/providers.tf.hbs +36 -0
- package/plugins/specweave/templates/iac/aws-lambda/templates/variables.tf.hbs +115 -0
- package/plugins/specweave/templates/iac/azure-functions/defaults.json +25 -0
- package/plugins/specweave/templates/iac/azure-functions/templates/README.md.hbs +268 -0
- package/plugins/specweave/templates/iac/azure-functions/templates/environments/dev.tfvars.hbs +34 -0
- package/plugins/specweave/templates/iac/azure-functions/templates/environments/prod.tfvars.hbs +46 -0
- package/plugins/specweave/templates/iac/azure-functions/templates/environments/staging.tfvars.hbs +34 -0
- package/plugins/specweave/templates/iac/azure-functions/templates/main.tf.hbs +225 -0
- package/plugins/specweave/templates/iac/azure-functions/templates/outputs.tf.hbs +89 -0
- package/plugins/specweave/templates/iac/azure-functions/templates/provider.tf.hbs +27 -0
- package/plugins/specweave/templates/iac/azure-functions/templates/providers.tf.hbs +35 -0
- package/plugins/specweave/templates/iac/azure-functions/templates/variables.tf.hbs +124 -0
- package/plugins/specweave/templates/iac/firebase/defaults.json +29 -0
- package/plugins/specweave/templates/iac/firebase/templates/README.md.hbs +35 -0
- package/plugins/specweave/templates/iac/firebase/templates/environments/dev.tfvars.hbs +7 -0
- package/plugins/specweave/templates/iac/firebase/templates/environments/prod.tfvars.hbs +7 -0
- package/plugins/specweave/templates/iac/firebase/templates/environments/staging.tfvars.hbs +7 -0
- package/plugins/specweave/templates/iac/firebase/templates/main.tf.hbs +90 -0
- package/plugins/specweave/templates/iac/firebase/templates/outputs.tf.hbs +15 -0
- package/plugins/specweave/templates/iac/firebase/templates/providers.tf.hbs +23 -0
- package/plugins/specweave/templates/iac/firebase/templates/variables.tf.hbs +42 -0
- package/plugins/specweave/templates/iac/gcp-cloud-functions/defaults.json +26 -0
- package/plugins/specweave/templates/iac/gcp-cloud-functions/templates/README.md.hbs +299 -0
- package/plugins/specweave/templates/iac/gcp-cloud-functions/templates/environments/dev.tfvars.hbs +36 -0
- package/plugins/specweave/templates/iac/gcp-cloud-functions/templates/environments/prod.tfvars.hbs +48 -0
- package/plugins/specweave/templates/iac/gcp-cloud-functions/templates/environments/staging.tfvars.hbs +41 -0
- package/plugins/specweave/templates/iac/gcp-cloud-functions/templates/main.tf.hbs +192 -0
- package/plugins/specweave/templates/iac/gcp-cloud-functions/templates/outputs.tf.hbs +66 -0
- package/plugins/specweave/templates/iac/gcp-cloud-functions/templates/providers.tf.hbs +25 -0
- package/plugins/specweave/templates/iac/gcp-cloud-functions/templates/variables.tf.hbs +119 -0
- package/plugins/specweave/templates/iac/supabase/defaults.json +15 -0
- package/plugins/specweave/templates/iac/supabase/templates/README.md.hbs +46 -0
- package/plugins/specweave/templates/iac/supabase/templates/main.tf.hbs +50 -0
- package/plugins/specweave-github/agents/github-manager/AGENT.md +39 -7
- package/plugins/specweave-github/commands/specweave-github-create-issue.md +5 -5
- package/plugins/specweave-github/lib/CodeValidator.ts +1 -1
- package/plugins/specweave-github/lib/github-client-v2.js +29 -0
- package/plugins/specweave-github/lib/github-client-v2.ts +30 -0
- package/plugins/specweave-github/lib/task-sync.js +4 -0
- package/plugins/specweave-github/lib/task-sync.ts +7 -0
- package/plugins/specweave-jira/lib/enhanced-jira-sync.js +3 -3
- package/plugins/specweave-release/hooks/.specweave/logs/dora-tracking.log +2022 -0
- package/src/templates/CLAUDE.md.template +31 -0
- package/dist/src/core/living-docs/ThreeLayerSyncManager.d.ts +0 -116
- package/dist/src/core/living-docs/ThreeLayerSyncManager.d.ts.map +0 -1
- package/dist/src/core/living-docs/ThreeLayerSyncManager.js +0 -356
- package/dist/src/core/living-docs/ThreeLayerSyncManager.js.map +0 -1
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Next Command - Intelligent workflow orchestration
|
|
3
|
+
*
|
|
4
|
+
* CLI wrapper for WorkflowOrchestrator and AutonomousExecutor.
|
|
5
|
+
* Provides /specweave:next command functionality.
|
|
6
|
+
*
|
|
7
|
+
* Part of increment 0039: Ultra-Smart Next Command
|
|
8
|
+
*
|
|
9
|
+
* @module cli/commands/next-command
|
|
10
|
+
* @since v0.22.0
|
|
11
|
+
*/
|
|
12
|
+
/**
|
|
13
|
+
* Next command configuration
|
|
14
|
+
*/
|
|
15
|
+
export interface NextCommandConfig {
|
|
16
|
+
/** Increment ID (auto-detect if not provided) */
|
|
17
|
+
incrementId?: string;
|
|
18
|
+
/** Enable autonomous mode */
|
|
19
|
+
autonomous?: boolean;
|
|
20
|
+
/** Dry-run mode (preview only) */
|
|
21
|
+
dryRun?: boolean;
|
|
22
|
+
/** Verbose output */
|
|
23
|
+
verbose?: boolean;
|
|
24
|
+
/** Force execution with low confidence */
|
|
25
|
+
force?: boolean;
|
|
26
|
+
/** Maximum iterations (autonomous mode) */
|
|
27
|
+
maxIterations?: number;
|
|
28
|
+
/** Maximum cost threshold in USD (autonomous mode) */
|
|
29
|
+
maxCost?: number;
|
|
30
|
+
/** Resume from checkpoint ID (autonomous mode) */
|
|
31
|
+
resumeFrom?: string;
|
|
32
|
+
/** Stop on first error (autonomous mode) */
|
|
33
|
+
stopOnError?: boolean;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Execute next command
|
|
37
|
+
*
|
|
38
|
+
* @param config - Command configuration
|
|
39
|
+
*/
|
|
40
|
+
export declare function executeNextCommand(config?: NextCommandConfig): Promise<void>;
|
|
41
|
+
/**
|
|
42
|
+
* Parse command line arguments
|
|
43
|
+
*
|
|
44
|
+
* @param args - Process argv array
|
|
45
|
+
* @returns Parsed configuration
|
|
46
|
+
*/
|
|
47
|
+
export declare function parseArgs(args: string[]): NextCommandConfig;
|
|
48
|
+
/**
|
|
49
|
+
* Display help text
|
|
50
|
+
*/
|
|
51
|
+
export declare function displayHelp(): void;
|
|
52
|
+
//# sourceMappingURL=next-command.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"next-command.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/next-command.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAMH;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,iDAAiD;IACjD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,6BAA6B;IAC7B,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,kCAAkC;IAClC,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,qBAAqB;IACrB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,0CAA0C;IAC1C,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,2CAA2C;IAC3C,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,sDAAsD;IACtD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,kDAAkD;IAClD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,4CAA4C;IAC5C,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED;;;;GAIG;AACH,wBAAsB,kBAAkB,CAAC,MAAM,GAAE,iBAAsB,GAAG,OAAO,CAAC,IAAI,CAAC,CAYtF;AAuHD;;;;;GAKG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,iBAAiB,CAkD3D;AAED;;GAEG;AACH,wBAAgB,WAAW,IAAI,IAAI,CAyBlC"}
|
|
@@ -0,0 +1,204 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Next Command - Intelligent workflow orchestration
|
|
3
|
+
*
|
|
4
|
+
* CLI wrapper for WorkflowOrchestrator and AutonomousExecutor.
|
|
5
|
+
* Provides /specweave:next command functionality.
|
|
6
|
+
*
|
|
7
|
+
* Part of increment 0039: Ultra-Smart Next Command
|
|
8
|
+
*
|
|
9
|
+
* @module cli/commands/next-command
|
|
10
|
+
* @since v0.22.0
|
|
11
|
+
*/
|
|
12
|
+
import { WorkflowOrchestrator } from '../../core/workflow/workflow-orchestrator.js';
|
|
13
|
+
import { AutonomousExecutor } from '../../core/workflow/autonomous-executor.js';
|
|
14
|
+
import chalk from 'chalk';
|
|
15
|
+
/**
|
|
16
|
+
* Execute next command
|
|
17
|
+
*
|
|
18
|
+
* @param config - Command configuration
|
|
19
|
+
*/
|
|
20
|
+
export async function executeNextCommand(config = {}) {
|
|
21
|
+
try {
|
|
22
|
+
if (config.autonomous) {
|
|
23
|
+
await executeAutonomousMode(config);
|
|
24
|
+
}
|
|
25
|
+
else {
|
|
26
|
+
await executeInteractiveMode(config);
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
catch (error) {
|
|
30
|
+
console.error(chalk.red('❌ Error executing next command:'));
|
|
31
|
+
console.error(error instanceof Error ? error.message : String(error));
|
|
32
|
+
process.exit(1);
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Execute interactive mode
|
|
37
|
+
*
|
|
38
|
+
* Suggests next action, waits for user confirmation.
|
|
39
|
+
*/
|
|
40
|
+
async function executeInteractiveMode(config) {
|
|
41
|
+
console.log(chalk.blue('🔍 Detecting current workflow phase...\n'));
|
|
42
|
+
const orchestrator = new WorkflowOrchestrator();
|
|
43
|
+
const options = {
|
|
44
|
+
verbose: config.verbose,
|
|
45
|
+
dryRun: config.dryRun,
|
|
46
|
+
force: config.force
|
|
47
|
+
};
|
|
48
|
+
const result = await orchestrator.executeNext(config.incrementId, options);
|
|
49
|
+
// Display result
|
|
50
|
+
displayPhaseDetection(result);
|
|
51
|
+
if (result.success && result.command) {
|
|
52
|
+
displaySuggestedAction(result);
|
|
53
|
+
if (!config.dryRun) {
|
|
54
|
+
// In real implementation, would prompt user for confirmation
|
|
55
|
+
console.log(chalk.yellow('\n💡 Run the suggested command above to proceed.'));
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
else if (result.error) {
|
|
59
|
+
console.error(chalk.red(`\n❌ ${result.error}`));
|
|
60
|
+
process.exit(1);
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Execute autonomous mode
|
|
65
|
+
*
|
|
66
|
+
* Runs complete workflow automatically with safety guardrails.
|
|
67
|
+
*/
|
|
68
|
+
async function executeAutonomousMode(config) {
|
|
69
|
+
console.log(chalk.blue('🚀 Starting autonomous execution...\n'));
|
|
70
|
+
const autonomousConfig = {
|
|
71
|
+
maxIterations: config.maxIterations,
|
|
72
|
+
costThreshold: config.maxCost,
|
|
73
|
+
maxRetries: 3,
|
|
74
|
+
stopOnError: config.stopOnError,
|
|
75
|
+
verbose: config.verbose,
|
|
76
|
+
enableCheckpoints: true
|
|
77
|
+
};
|
|
78
|
+
const executor = new AutonomousExecutor(autonomousConfig);
|
|
79
|
+
// Ensure increment ID is provided
|
|
80
|
+
if (!config.incrementId) {
|
|
81
|
+
console.error(chalk.red('❌ Increment ID required for autonomous mode'));
|
|
82
|
+
console.error(chalk.yellow('Usage: /specweave:next --autonomous <increment-id>'));
|
|
83
|
+
process.exit(1);
|
|
84
|
+
}
|
|
85
|
+
const result = await executor.execute(config.incrementId, config.resumeFrom);
|
|
86
|
+
// Display result
|
|
87
|
+
displayAutonomousResult(result);
|
|
88
|
+
if (!result.success) {
|
|
89
|
+
process.exit(1);
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Display phase detection result
|
|
94
|
+
*/
|
|
95
|
+
function displayPhaseDetection(result) {
|
|
96
|
+
console.log(chalk.cyan(`📊 Phase: ${result.phase}`) + chalk.gray(` (confidence: ${(result.confidence * 100).toFixed(0)}%)`));
|
|
97
|
+
if (result.reasoning) {
|
|
98
|
+
console.log(chalk.gray(`\n${result.reasoning}`));
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Display suggested action
|
|
103
|
+
*/
|
|
104
|
+
function displaySuggestedAction(result) {
|
|
105
|
+
console.log(chalk.green(`\n🎯 Suggested action: ${result.action}`));
|
|
106
|
+
if (result.command) {
|
|
107
|
+
console.log(chalk.white(`💡 Command: ${chalk.bold(result.command)}`));
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* Display autonomous execution result
|
|
112
|
+
*/
|
|
113
|
+
function displayAutonomousResult(result) {
|
|
114
|
+
if (result.success) {
|
|
115
|
+
console.log(chalk.green('\n✅ Autonomous execution completed successfully!\n'));
|
|
116
|
+
}
|
|
117
|
+
else {
|
|
118
|
+
console.log(chalk.red('\n❌ Autonomous execution failed\n'));
|
|
119
|
+
}
|
|
120
|
+
console.log(chalk.cyan('📊 Execution Summary:'));
|
|
121
|
+
console.log(` • Iterations: ${result.iterations}`);
|
|
122
|
+
console.log(` • Commands executed: ${result.commandsExecuted.length}`);
|
|
123
|
+
console.log(` • Total cost: $${result.totalCost.toFixed(2)}`);
|
|
124
|
+
console.log(` • Final phase: ${result.finalPhase}`);
|
|
125
|
+
console.log(` • Reason: ${result.reason}`);
|
|
126
|
+
if (result.commandsExecuted.length > 0) {
|
|
127
|
+
console.log(chalk.cyan('\n📝 Commands executed:'));
|
|
128
|
+
result.commandsExecuted.forEach((cmd, i) => {
|
|
129
|
+
console.log(` ${i + 1}. ${cmd}`);
|
|
130
|
+
});
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
/**
|
|
134
|
+
* Parse command line arguments
|
|
135
|
+
*
|
|
136
|
+
* @param args - Process argv array
|
|
137
|
+
* @returns Parsed configuration
|
|
138
|
+
*/
|
|
139
|
+
export function parseArgs(args) {
|
|
140
|
+
const config = {};
|
|
141
|
+
for (let i = 0; i < args.length; i++) {
|
|
142
|
+
const arg = args[i];
|
|
143
|
+
switch (arg) {
|
|
144
|
+
case '--autonomous':
|
|
145
|
+
config.autonomous = true;
|
|
146
|
+
break;
|
|
147
|
+
case '--dry-run':
|
|
148
|
+
config.dryRun = true;
|
|
149
|
+
break;
|
|
150
|
+
case '--verbose':
|
|
151
|
+
case '-v':
|
|
152
|
+
config.verbose = true;
|
|
153
|
+
break;
|
|
154
|
+
case '--force':
|
|
155
|
+
config.force = true;
|
|
156
|
+
break;
|
|
157
|
+
case '--stop-on-error':
|
|
158
|
+
config.stopOnError = true;
|
|
159
|
+
break;
|
|
160
|
+
case '--max-iterations':
|
|
161
|
+
config.maxIterations = parseInt(args[++i], 10);
|
|
162
|
+
break;
|
|
163
|
+
case '--max-cost':
|
|
164
|
+
config.maxCost = parseFloat(args[++i]);
|
|
165
|
+
break;
|
|
166
|
+
case '--resume-from':
|
|
167
|
+
config.resumeFrom = args[++i];
|
|
168
|
+
break;
|
|
169
|
+
default:
|
|
170
|
+
// Assume it's the increment ID
|
|
171
|
+
if (!arg.startsWith('-')) {
|
|
172
|
+
config.incrementId = arg;
|
|
173
|
+
}
|
|
174
|
+
break;
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
return config;
|
|
178
|
+
}
|
|
179
|
+
/**
|
|
180
|
+
* Display help text
|
|
181
|
+
*/
|
|
182
|
+
export function displayHelp() {
|
|
183
|
+
console.log(chalk.bold('\n/specweave:next - Intelligent Workflow Orchestrator\n'));
|
|
184
|
+
console.log(chalk.cyan('Usage:'));
|
|
185
|
+
console.log(' /specweave:next [options] [increment-id]\n');
|
|
186
|
+
console.log(chalk.cyan('Modes:'));
|
|
187
|
+
console.log(' Interactive (default) Suggests next action, waits for confirmation');
|
|
188
|
+
console.log(' --autonomous Executes full workflow automatically\n');
|
|
189
|
+
console.log(chalk.cyan('Options:'));
|
|
190
|
+
console.log(' --dry-run Preview actions without executing');
|
|
191
|
+
console.log(' --verbose, -v Show detailed execution information');
|
|
192
|
+
console.log(' --force Execute even with low confidence');
|
|
193
|
+
console.log(' --stop-on-error Stop on first error (autonomous mode)');
|
|
194
|
+
console.log(' --max-iterations <n> Maximum iterations (default: 50)');
|
|
195
|
+
console.log(' --max-cost <amount> Maximum cost in USD (default: $20)');
|
|
196
|
+
console.log(' --resume-from <id> Resume from checkpoint\n');
|
|
197
|
+
console.log(chalk.cyan('Examples:'));
|
|
198
|
+
console.log(' /specweave:next # Interactive mode, auto-detect increment');
|
|
199
|
+
console.log(' /specweave:next 0039 # Interactive mode, specific increment');
|
|
200
|
+
console.log(' /specweave:next --autonomous 0039 # Autonomous mode');
|
|
201
|
+
console.log(' /specweave:next --dry-run --verbose # Preview with details');
|
|
202
|
+
console.log(' /specweave:next --autonomous --max-cost 10 # Autonomous with cost limit\n');
|
|
203
|
+
}
|
|
204
|
+
//# sourceMappingURL=next-command.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"next-command.js","sourceRoot":"","sources":["../../../../src/cli/commands/next-command.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* CLI Command: sync-specs
|
|
3
|
+
*
|
|
4
|
+
* Syncs increment specifications to living docs structure
|
|
5
|
+
*/
|
|
6
|
+
export interface SyncSpecsArgs {
|
|
7
|
+
incrementId?: string;
|
|
8
|
+
all?: boolean;
|
|
9
|
+
force?: boolean;
|
|
10
|
+
dryRun?: boolean;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Sync specs command entry point
|
|
14
|
+
*/
|
|
15
|
+
export declare function syncSpecs(args: string[]): Promise<void>;
|
|
16
|
+
//# sourceMappingURL=sync-specs.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sync-specs.d.ts","sourceRoot":"","sources":["../../../../src/cli/commands/sync-specs.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH,MAAM,WAAW,aAAa;IAC5B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED;;GAEG;AACH,wBAAsB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAiE7D"}
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* CLI Command: sync-specs
|
|
3
|
+
*
|
|
4
|
+
* Syncs increment specifications to living docs structure
|
|
5
|
+
*/
|
|
6
|
+
import fs from 'fs-extra';
|
|
7
|
+
import path from 'path';
|
|
8
|
+
import { LivingDocsSync } from '../../core/living-docs/living-docs-sync.js';
|
|
9
|
+
/**
|
|
10
|
+
* Sync specs command entry point
|
|
11
|
+
*/
|
|
12
|
+
export async function syncSpecs(args) {
|
|
13
|
+
const parsedArgs = parseArgs(args);
|
|
14
|
+
const projectRoot = process.cwd();
|
|
15
|
+
const sync = new LivingDocsSync(projectRoot);
|
|
16
|
+
try {
|
|
17
|
+
if (parsedArgs.all) {
|
|
18
|
+
// Sync all completed increments
|
|
19
|
+
console.log('🔄 Syncing all completed increments...\n');
|
|
20
|
+
const increments = await findCompletedIncrements(projectRoot);
|
|
21
|
+
let successCount = 0;
|
|
22
|
+
let failCount = 0;
|
|
23
|
+
for (const incrementId of increments) {
|
|
24
|
+
try {
|
|
25
|
+
const result = await sync.syncIncrement(incrementId, {
|
|
26
|
+
dryRun: parsedArgs.dryRun,
|
|
27
|
+
force: parsedArgs.force
|
|
28
|
+
});
|
|
29
|
+
if (result.success) {
|
|
30
|
+
successCount++;
|
|
31
|
+
}
|
|
32
|
+
else {
|
|
33
|
+
failCount++;
|
|
34
|
+
console.error(` ❌ Failed: ${result.errors.join(', ')}`);
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
catch (error) {
|
|
38
|
+
failCount++;
|
|
39
|
+
console.error(` ❌ Failed to sync ${incrementId}:`, error);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
console.log(`\n✅ Sync complete: ${successCount} succeeded, ${failCount} failed`);
|
|
43
|
+
}
|
|
44
|
+
else {
|
|
45
|
+
// Sync single increment
|
|
46
|
+
const incrementId = parsedArgs.incrementId || await findLatestCompletedIncrement(projectRoot);
|
|
47
|
+
if (!incrementId) {
|
|
48
|
+
console.error('❌ No increment specified and no completed increments found');
|
|
49
|
+
process.exit(1);
|
|
50
|
+
}
|
|
51
|
+
const result = await sync.syncIncrement(incrementId, {
|
|
52
|
+
dryRun: parsedArgs.dryRun,
|
|
53
|
+
force: parsedArgs.force
|
|
54
|
+
});
|
|
55
|
+
if (!result.success) {
|
|
56
|
+
console.error('❌ Sync failed:', result.errors.join(', '));
|
|
57
|
+
process.exit(1);
|
|
58
|
+
}
|
|
59
|
+
console.log('\n✅ Sync complete!');
|
|
60
|
+
if (parsedArgs.dryRun) {
|
|
61
|
+
console.log(' (Dry run - no files were actually created)');
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
catch (error) {
|
|
66
|
+
console.error('❌ Sync failed:', error);
|
|
67
|
+
process.exit(1);
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Parse command-line arguments
|
|
72
|
+
*/
|
|
73
|
+
function parseArgs(args) {
|
|
74
|
+
const parsed = {};
|
|
75
|
+
for (let i = 0; i < args.length; i++) {
|
|
76
|
+
const arg = args[i];
|
|
77
|
+
if (arg === '--all') {
|
|
78
|
+
parsed.all = true;
|
|
79
|
+
}
|
|
80
|
+
else if (arg === '--force') {
|
|
81
|
+
parsed.force = true;
|
|
82
|
+
}
|
|
83
|
+
else if (arg === '--dry-run') {
|
|
84
|
+
parsed.dryRun = true;
|
|
85
|
+
}
|
|
86
|
+
else if (!arg.startsWith('--')) {
|
|
87
|
+
// Assume it's the increment ID
|
|
88
|
+
parsed.incrementId = arg;
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
return parsed;
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* Find all completed increments
|
|
95
|
+
*/
|
|
96
|
+
async function findCompletedIncrements(projectRoot) {
|
|
97
|
+
const incrementsDir = path.join(projectRoot, '.specweave/increments');
|
|
98
|
+
if (!await fs.pathExists(incrementsDir)) {
|
|
99
|
+
return [];
|
|
100
|
+
}
|
|
101
|
+
const entries = await fs.readdir(incrementsDir);
|
|
102
|
+
const completed = [];
|
|
103
|
+
for (const entry of entries) {
|
|
104
|
+
if (!entry.match(/^\d{4}-/))
|
|
105
|
+
continue;
|
|
106
|
+
const metadataPath = path.join(incrementsDir, entry, 'metadata.json');
|
|
107
|
+
const specPath = path.join(incrementsDir, entry, 'spec.md');
|
|
108
|
+
// Skip if no spec.md
|
|
109
|
+
if (!await fs.pathExists(specPath)) {
|
|
110
|
+
console.log(` ⚠️ Skipping ${entry} (no spec.md)`);
|
|
111
|
+
continue;
|
|
112
|
+
}
|
|
113
|
+
// Check if completed
|
|
114
|
+
if (await fs.pathExists(metadataPath)) {
|
|
115
|
+
const metadata = await fs.readJson(metadataPath);
|
|
116
|
+
if (metadata.status === 'completed') {
|
|
117
|
+
completed.push(entry);
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
return completed.sort();
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* Find latest completed increment
|
|
125
|
+
*/
|
|
126
|
+
async function findLatestCompletedIncrement(projectRoot) {
|
|
127
|
+
const completed = await findCompletedIncrements(projectRoot);
|
|
128
|
+
return completed.length > 0 ? completed[completed.length - 1] : null;
|
|
129
|
+
}
|
|
130
|
+
//# sourceMappingURL=sync-specs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sync-specs.js","sourceRoot":"","sources":["../../../../src/cli/commands/sync-specs.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* Count Tasks CLI
|
|
4
|
+
*
|
|
5
|
+
* CLI utility for counting tasks in tasks.md files.
|
|
6
|
+
* Used by status line hook to get accurate task counts.
|
|
7
|
+
*
|
|
8
|
+
* Usage:
|
|
9
|
+
* count-tasks <path-to-tasks.md>
|
|
10
|
+
*
|
|
11
|
+
* Output (JSON):
|
|
12
|
+
* {"total": 23, "completed": 15, "percentage": 65}
|
|
13
|
+
*
|
|
14
|
+
* Exit codes:
|
|
15
|
+
* 0 - Success
|
|
16
|
+
* 1 - File not found or read error
|
|
17
|
+
* 2 - Invalid arguments
|
|
18
|
+
*/
|
|
19
|
+
export {};
|
|
20
|
+
//# sourceMappingURL=count-tasks.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"count-tasks.d.ts","sourceRoot":"","sources":["../../../src/cli/count-tasks.ts"],"names":[],"mappings":";AACA;;;;;;;;;;;;;;;;GAgBG"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* Count Tasks CLI
|
|
4
|
+
*
|
|
5
|
+
* CLI utility for counting tasks in tasks.md files.
|
|
6
|
+
* Used by status line hook to get accurate task counts.
|
|
7
|
+
*
|
|
8
|
+
* Usage:
|
|
9
|
+
* count-tasks <path-to-tasks.md>
|
|
10
|
+
*
|
|
11
|
+
* Output (JSON):
|
|
12
|
+
* {"total": 23, "completed": 15, "percentage": 65}
|
|
13
|
+
*
|
|
14
|
+
* Exit codes:
|
|
15
|
+
* 0 - Success
|
|
16
|
+
* 1 - File not found or read error
|
|
17
|
+
* 2 - Invalid arguments
|
|
18
|
+
*/
|
|
19
|
+
import * as fs from 'fs/promises';
|
|
20
|
+
import { TaskCounter } from '../core/status-line/task-counter.js';
|
|
21
|
+
async function main() {
|
|
22
|
+
// Parse arguments
|
|
23
|
+
const args = process.argv.slice(2);
|
|
24
|
+
if (args.length === 0) {
|
|
25
|
+
console.error('Usage: count-tasks <path-to-tasks.md>');
|
|
26
|
+
process.exit(2);
|
|
27
|
+
}
|
|
28
|
+
const tasksFilePath = args[0];
|
|
29
|
+
try {
|
|
30
|
+
// Read tasks.md
|
|
31
|
+
const content = await fs.readFile(tasksFilePath, 'utf8');
|
|
32
|
+
// Count tasks
|
|
33
|
+
const counts = TaskCounter.countTasks(content);
|
|
34
|
+
// Output JSON
|
|
35
|
+
console.log(JSON.stringify(counts));
|
|
36
|
+
process.exit(0);
|
|
37
|
+
}
|
|
38
|
+
catch (error) {
|
|
39
|
+
if (error.code === 'ENOENT') {
|
|
40
|
+
// File not found - output zero counts (graceful fallback)
|
|
41
|
+
console.log(JSON.stringify({ total: 0, completed: 0, percentage: 0 }));
|
|
42
|
+
process.exit(0);
|
|
43
|
+
}
|
|
44
|
+
// Other errors
|
|
45
|
+
console.error(`Error reading tasks file: ${error.message}`);
|
|
46
|
+
process.exit(1);
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
main();
|
|
50
|
+
//# sourceMappingURL=count-tasks.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"count-tasks.js","sourceRoot":"","sources":["../../../src/cli/count-tasks.ts"],"names":[],"mappings":";AACA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,EAAE,MAAM,aAAa,CAAC;AAClC,OAAO,EAAE,WAAW,EAAE,MAAM,qCAAqC,CAAC;AAElE,KAAK,UAAU,IAAI;IACjB,kBAAkB;IAClB,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAEnC,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtB,OAAO,CAAC,KAAK,CAAC,uCAAuC,CAAC,CAAC;QACvD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,aAAa,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IAE9B,IAAI,CAAC;QACH,gBAAgB;QAChB,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;QAEzD,cAAc;QACd,MAAM,MAAM,GAAG,WAAW,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QAE/C,cAAc;QACd,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;QACpC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAK,KAA+B,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YACvD,0DAA0D;YAC1D,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;YACvE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,eAAe;QACf,OAAO,CAAC,KAAK,CAAC,6BAA8B,KAAe,CAAC,OAAO,EAAE,CAAC,CAAC;QACvE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AAED,IAAI,EAAE,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ConfigManager.d.ts","sourceRoot":"","sources":["../../../src/config/ConfigManager.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,EAAE,eAAe,EAAyB,cAAc,EAAE,MAAM,YAAY,CAAC;AAEpF;;;;;;;;;;;;;;;GAeG;AACH,qBAAa,aAAa;IACxB;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAA4B;IAE/D;;;;;;OAMG;WACU,IAAI,CAAC,UAAU,GAAE,MAAkC,GAAG,OAAO,CAAC,eAAe,CAAC;IAiB3F;;;;;OAKG;WACU,IAAI,CAAC,MAAM,EAAE,eAAe,EAAE,UAAU,GAAE,MAAkC,GAAG,OAAO,CAAC,IAAI,CAAC;IAezG;;;;;;;OAOG;WACU,cAAc,CACzB,OAAO,EAAE,OAAO,CAAC,cAAc,CAAC,EAChC,UAAU,GAAE,MAAkC,GAC7C,OAAO,CAAC,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"ConfigManager.d.ts","sourceRoot":"","sources":["../../../src/config/ConfigManager.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,EAAE,eAAe,EAAyB,cAAc,EAAE,MAAM,YAAY,CAAC;AAEpF;;;;;;;;;;;;;;;GAeG;AACH,qBAAa,aAAa;IACxB;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAA4B;IAE/D;;;;;;OAMG;WACU,IAAI,CAAC,UAAU,GAAE,MAAkC,GAAG,OAAO,CAAC,eAAe,CAAC;IAiB3F;;;;;OAKG;WACU,IAAI,CAAC,MAAM,EAAE,eAAe,EAAE,UAAU,GAAE,MAAkC,GAAG,OAAO,CAAC,IAAI,CAAC;IAezG;;;;;;;OAOG;WACU,cAAc,CACzB,OAAO,EAAE,OAAO,CAAC,cAAc,CAAC,EAChC,UAAU,GAAE,MAAkC,GAC7C,OAAO,CAAC,IAAI,CAAC;IAsBhB;;;;;OAKG;WACU,MAAM,CAAC,UAAU,GAAE,MAAkC,GAAG,OAAO,CAAC,OAAO,CAAC;IASrF;;;;;;OAMG;WACU,UAAU,CACrB,WAAW,EAAE,MAAM,EACnB,UAAU,GAAE,MAAkC,GAC7C,OAAO,CAAC,eAAe,CAAC;CAa5B"}
|
|
@@ -82,7 +82,8 @@ export class ConfigManager {
|
|
|
82
82
|
await ConfigManager.save(config, configPath);
|
|
83
83
|
}
|
|
84
84
|
catch (error) {
|
|
85
|
-
|
|
85
|
+
const errorMessage = error.message || '';
|
|
86
|
+
if (error.code === 'ENOENT' || errorMessage.includes('Config file not found')) {
|
|
86
87
|
throw new Error(`Cannot update research: config file not found. Run 'specweave init' first.`);
|
|
87
88
|
}
|
|
88
89
|
throw error;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ConfigManager.js","sourceRoot":"","sources":["../../../src/config/ConfigManager.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,MAAM,aAAa,CAAC;AAC7B,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAmB,qBAAqB,EAAkB,MAAM,YAAY,CAAC;AAEpF;;;;;;;;;;;;;;;GAeG;AACH,MAAM,OAAO,aAAa;IAMxB;;;;;;OAMG;IACH,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,aAAqB,aAAa,CAAC,WAAW;QAC9D,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;YACvD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAEnC,2BAA2B;YAC3B,MAAM,MAAM,GAAG,qBAAqB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YAEnD,OAAO,MAAM,CAAC;QAChB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAK,KAA+B,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBACvD,MAAM,IAAI,KAAK,CAAC,0BAA0B,UAAU,EAAE,CAAC,CAAC;YAC1D,CAAC;YACD,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED;;;;;OAKG;IACH,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,MAAuB,EAAE,aAAqB,aAAa,CAAC,WAAW;QACvF,yBAAyB;QACzB,MAAM,SAAS,GAAG,qBAAqB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAEtD,mBAAmB;QACnB,SAAS,CAAC,WAAW,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QAEjD,qCAAqC;QACrC,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QACrC,MAAM,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAEzC,+BAA+B;QAC/B,MAAM,EAAE,CAAC,SAAS,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;IAC9E,CAAC;IAED;;;;;;;OAOG;IACH,MAAM,CAAC,KAAK,CAAC,cAAc,CACzB,OAAgC,EAChC,aAAqB,aAAa,CAAC,WAAW;QAE9C,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAEpD,yBAAyB;YACzB,MAAM,CAAC,QAAQ,GAAG;gBAChB,GAAG,MAAM,CAAC,QAAQ;gBAClB,GAAG,OAAO;aACX,CAAC;YAEF,MAAM,aAAa,CAAC,IAAI,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;QAC/C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAK,KAA+B,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"ConfigManager.js","sourceRoot":"","sources":["../../../src/config/ConfigManager.ts"],"names":[],"mappings":"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"}
|