runbooks 1.1.4__py3-none-any.whl → 1.1.6__py3-none-any.whl
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.
- runbooks/__init__.py +31 -2
- runbooks/__init___optimized.py +18 -4
- runbooks/_platform/__init__.py +1 -5
- runbooks/_platform/core/runbooks_wrapper.py +141 -138
- runbooks/aws2/accuracy_validator.py +812 -0
- runbooks/base.py +7 -0
- runbooks/cfat/assessment/compliance.py +1 -1
- runbooks/cfat/assessment/runner.py +1 -0
- runbooks/cfat/cloud_foundations_assessment.py +227 -239
- runbooks/cli/__init__.py +1 -1
- runbooks/cli/commands/cfat.py +64 -23
- runbooks/cli/commands/finops.py +1005 -54
- runbooks/cli/commands/inventory.py +135 -91
- runbooks/cli/commands/operate.py +9 -36
- runbooks/cli/commands/security.py +42 -18
- runbooks/cli/commands/validation.py +432 -18
- runbooks/cli/commands/vpc.py +81 -17
- runbooks/cli/registry.py +22 -10
- runbooks/cloudops/__init__.py +20 -27
- runbooks/cloudops/base.py +96 -107
- runbooks/cloudops/cost_optimizer.py +544 -542
- runbooks/cloudops/infrastructure_optimizer.py +5 -4
- runbooks/cloudops/interfaces.py +224 -225
- runbooks/cloudops/lifecycle_manager.py +5 -4
- runbooks/cloudops/mcp_cost_validation.py +252 -235
- runbooks/cloudops/models.py +78 -53
- runbooks/cloudops/monitoring_automation.py +5 -4
- runbooks/cloudops/notebook_framework.py +177 -213
- runbooks/cloudops/security_enforcer.py +125 -159
- runbooks/common/accuracy_validator.py +17 -12
- runbooks/common/aws_pricing.py +349 -326
- runbooks/common/aws_pricing_api.py +211 -212
- runbooks/common/aws_profile_manager.py +40 -36
- runbooks/common/aws_utils.py +74 -79
- runbooks/common/business_logic.py +126 -104
- runbooks/common/cli_decorators.py +36 -60
- runbooks/common/comprehensive_cost_explorer_integration.py +455 -463
- runbooks/common/cross_account_manager.py +197 -204
- runbooks/common/date_utils.py +27 -39
- runbooks/common/decorators.py +29 -19
- runbooks/common/dry_run_examples.py +173 -208
- runbooks/common/dry_run_framework.py +157 -155
- runbooks/common/enhanced_exception_handler.py +15 -4
- runbooks/common/enhanced_logging_example.py +50 -64
- runbooks/common/enhanced_logging_integration_example.py +65 -37
- runbooks/common/env_utils.py +16 -16
- runbooks/common/error_handling.py +40 -38
- runbooks/common/lazy_loader.py +41 -23
- runbooks/common/logging_integration_helper.py +79 -86
- runbooks/common/mcp_cost_explorer_integration.py +476 -493
- runbooks/common/mcp_integration.py +99 -79
- runbooks/common/memory_optimization.py +140 -118
- runbooks/common/module_cli_base.py +37 -58
- runbooks/common/organizations_client.py +175 -193
- runbooks/common/patterns.py +23 -25
- runbooks/common/performance_monitoring.py +67 -71
- runbooks/common/performance_optimization_engine.py +283 -274
- runbooks/common/profile_utils.py +111 -37
- runbooks/common/rich_utils.py +315 -141
- runbooks/common/sre_performance_suite.py +177 -186
- runbooks/enterprise/__init__.py +1 -1
- runbooks/enterprise/logging.py +144 -106
- runbooks/enterprise/security.py +187 -204
- runbooks/enterprise/validation.py +43 -56
- runbooks/finops/__init__.py +26 -30
- runbooks/finops/account_resolver.py +1 -1
- runbooks/finops/advanced_optimization_engine.py +980 -0
- runbooks/finops/automation_core.py +268 -231
- runbooks/finops/business_case_config.py +184 -179
- runbooks/finops/cli.py +660 -139
- runbooks/finops/commvault_ec2_analysis.py +157 -164
- runbooks/finops/compute_cost_optimizer.py +336 -320
- runbooks/finops/config.py +20 -20
- runbooks/finops/cost_optimizer.py +484 -618
- runbooks/finops/cost_processor.py +332 -214
- runbooks/finops/dashboard_runner.py +1006 -172
- runbooks/finops/ebs_cost_optimizer.py +991 -657
- runbooks/finops/elastic_ip_optimizer.py +317 -257
- runbooks/finops/enhanced_mcp_integration.py +340 -0
- runbooks/finops/enhanced_progress.py +32 -29
- runbooks/finops/enhanced_trend_visualization.py +3 -2
- runbooks/finops/enterprise_wrappers.py +223 -285
- runbooks/finops/executive_export.py +203 -160
- runbooks/finops/helpers.py +130 -288
- runbooks/finops/iam_guidance.py +1 -1
- runbooks/finops/infrastructure/__init__.py +80 -0
- runbooks/finops/infrastructure/commands.py +506 -0
- runbooks/finops/infrastructure/load_balancer_optimizer.py +866 -0
- runbooks/finops/infrastructure/vpc_endpoint_optimizer.py +832 -0
- runbooks/finops/markdown_exporter.py +337 -174
- runbooks/finops/mcp_validator.py +1952 -0
- runbooks/finops/nat_gateway_optimizer.py +1512 -481
- runbooks/finops/network_cost_optimizer.py +657 -587
- runbooks/finops/notebook_utils.py +226 -188
- runbooks/finops/optimization_engine.py +1136 -0
- runbooks/finops/optimizer.py +19 -23
- runbooks/finops/rds_snapshot_optimizer.py +367 -411
- runbooks/finops/reservation_optimizer.py +427 -363
- runbooks/finops/scenario_cli_integration.py +64 -65
- runbooks/finops/scenarios.py +1277 -438
- runbooks/finops/schemas.py +218 -182
- runbooks/finops/snapshot_manager.py +2289 -0
- runbooks/finops/types.py +3 -3
- runbooks/finops/validation_framework.py +259 -265
- runbooks/finops/vpc_cleanup_exporter.py +189 -144
- runbooks/finops/vpc_cleanup_optimizer.py +591 -573
- runbooks/finops/workspaces_analyzer.py +171 -182
- runbooks/integration/__init__.py +89 -0
- runbooks/integration/mcp_integration.py +1920 -0
- runbooks/inventory/CLAUDE.md +816 -0
- runbooks/inventory/__init__.py +2 -2
- runbooks/inventory/aws_decorators.py +2 -3
- runbooks/inventory/check_cloudtrail_compliance.py +2 -4
- runbooks/inventory/check_controltower_readiness.py +152 -151
- runbooks/inventory/check_landingzone_readiness.py +85 -84
- runbooks/inventory/cloud_foundations_integration.py +144 -149
- runbooks/inventory/collectors/aws_comprehensive.py +1 -1
- runbooks/inventory/collectors/aws_networking.py +109 -99
- runbooks/inventory/collectors/base.py +4 -0
- runbooks/inventory/core/collector.py +495 -313
- runbooks/inventory/core/formatter.py +11 -0
- runbooks/inventory/draw_org_structure.py +8 -9
- runbooks/inventory/drift_detection_cli.py +69 -96
- runbooks/inventory/ec2_vpc_utils.py +2 -2
- runbooks/inventory/find_cfn_drift_detection.py +5 -7
- runbooks/inventory/find_cfn_orphaned_stacks.py +7 -9
- runbooks/inventory/find_cfn_stackset_drift.py +5 -6
- runbooks/inventory/find_ec2_security_groups.py +48 -42
- runbooks/inventory/find_landingzone_versions.py +4 -6
- runbooks/inventory/find_vpc_flow_logs.py +7 -9
- runbooks/inventory/inventory_mcp_cli.py +48 -46
- runbooks/inventory/inventory_modules.py +103 -91
- runbooks/inventory/list_cfn_stacks.py +9 -10
- runbooks/inventory/list_cfn_stackset_operation_results.py +1 -3
- runbooks/inventory/list_cfn_stackset_operations.py +79 -57
- runbooks/inventory/list_cfn_stacksets.py +8 -10
- runbooks/inventory/list_config_recorders_delivery_channels.py +49 -39
- runbooks/inventory/list_ds_directories.py +65 -53
- runbooks/inventory/list_ec2_availability_zones.py +2 -4
- runbooks/inventory/list_ec2_ebs_volumes.py +32 -35
- runbooks/inventory/list_ec2_instances.py +23 -28
- runbooks/inventory/list_ecs_clusters_and_tasks.py +26 -34
- runbooks/inventory/list_elbs_load_balancers.py +22 -20
- runbooks/inventory/list_enis_network_interfaces.py +26 -33
- runbooks/inventory/list_guardduty_detectors.py +2 -4
- runbooks/inventory/list_iam_policies.py +2 -4
- runbooks/inventory/list_iam_roles.py +5 -7
- runbooks/inventory/list_iam_saml_providers.py +4 -6
- runbooks/inventory/list_lambda_functions.py +38 -38
- runbooks/inventory/list_org_accounts.py +6 -8
- runbooks/inventory/list_org_accounts_users.py +55 -44
- runbooks/inventory/list_rds_db_instances.py +31 -33
- runbooks/inventory/list_rds_snapshots_aggregator.py +192 -208
- runbooks/inventory/list_route53_hosted_zones.py +3 -5
- runbooks/inventory/list_servicecatalog_provisioned_products.py +37 -41
- runbooks/inventory/list_sns_topics.py +2 -4
- runbooks/inventory/list_ssm_parameters.py +4 -7
- runbooks/inventory/list_vpc_subnets.py +2 -4
- runbooks/inventory/list_vpcs.py +7 -10
- runbooks/inventory/mcp_inventory_validator.py +554 -468
- runbooks/inventory/mcp_vpc_validator.py +359 -442
- runbooks/inventory/organizations_discovery.py +63 -55
- runbooks/inventory/recover_cfn_stack_ids.py +7 -8
- runbooks/inventory/requirements.txt +0 -1
- runbooks/inventory/rich_inventory_display.py +35 -34
- runbooks/inventory/run_on_multi_accounts.py +3 -5
- runbooks/inventory/unified_validation_engine.py +281 -253
- runbooks/inventory/verify_ec2_security_groups.py +1 -1
- runbooks/inventory/vpc_analyzer.py +735 -697
- runbooks/inventory/vpc_architecture_validator.py +293 -348
- runbooks/inventory/vpc_dependency_analyzer.py +384 -380
- runbooks/inventory/vpc_flow_analyzer.py +1 -1
- runbooks/main.py +49 -34
- runbooks/main_final.py +91 -60
- runbooks/main_minimal.py +22 -10
- runbooks/main_optimized.py +131 -100
- runbooks/main_ultra_minimal.py +7 -2
- runbooks/mcp/__init__.py +36 -0
- runbooks/mcp/integration.py +679 -0
- runbooks/monitoring/performance_monitor.py +9 -4
- runbooks/operate/dynamodb_operations.py +3 -1
- runbooks/operate/ec2_operations.py +145 -137
- runbooks/operate/iam_operations.py +146 -152
- runbooks/operate/networking_cost_heatmap.py +29 -8
- runbooks/operate/rds_operations.py +223 -254
- runbooks/operate/s3_operations.py +107 -118
- runbooks/operate/vpc_operations.py +646 -616
- runbooks/remediation/base.py +1 -1
- runbooks/remediation/commons.py +10 -7
- runbooks/remediation/commvault_ec2_analysis.py +70 -66
- runbooks/remediation/ec2_unattached_ebs_volumes.py +1 -0
- runbooks/remediation/multi_account.py +24 -21
- runbooks/remediation/rds_snapshot_list.py +86 -60
- runbooks/remediation/remediation_cli.py +92 -146
- runbooks/remediation/universal_account_discovery.py +83 -79
- runbooks/remediation/workspaces_list.py +46 -41
- runbooks/security/__init__.py +19 -0
- runbooks/security/assessment_runner.py +1150 -0
- runbooks/security/baseline_checker.py +812 -0
- runbooks/security/cloudops_automation_security_validator.py +509 -535
- runbooks/security/compliance_automation_engine.py +17 -17
- runbooks/security/config/__init__.py +2 -2
- runbooks/security/config/compliance_config.py +50 -50
- runbooks/security/config_template_generator.py +63 -76
- runbooks/security/enterprise_security_framework.py +1 -1
- runbooks/security/executive_security_dashboard.py +519 -508
- runbooks/security/multi_account_security_controls.py +959 -1210
- runbooks/security/real_time_security_monitor.py +422 -444
- runbooks/security/security_baseline_tester.py +1 -1
- runbooks/security/security_cli.py +143 -112
- runbooks/security/test_2way_validation.py +439 -0
- runbooks/security/two_way_validation_framework.py +852 -0
- runbooks/sre/production_monitoring_framework.py +167 -177
- runbooks/tdd/__init__.py +15 -0
- runbooks/tdd/cli.py +1071 -0
- runbooks/utils/__init__.py +14 -17
- runbooks/utils/logger.py +7 -2
- runbooks/utils/version_validator.py +50 -47
- runbooks/validation/__init__.py +6 -6
- runbooks/validation/cli.py +9 -3
- runbooks/validation/comprehensive_2way_validator.py +745 -704
- runbooks/validation/mcp_validator.py +906 -228
- runbooks/validation/terraform_citations_validator.py +104 -115
- runbooks/validation/terraform_drift_detector.py +461 -454
- runbooks/vpc/README.md +617 -0
- runbooks/vpc/__init__.py +8 -1
- runbooks/vpc/analyzer.py +577 -0
- runbooks/vpc/cleanup_wrapper.py +476 -413
- runbooks/vpc/cli_cloudtrail_commands.py +339 -0
- runbooks/vpc/cli_mcp_validation_commands.py +480 -0
- runbooks/vpc/cloudtrail_audit_integration.py +717 -0
- runbooks/vpc/config.py +92 -97
- runbooks/vpc/cost_engine.py +411 -148
- runbooks/vpc/cost_explorer_integration.py +553 -0
- runbooks/vpc/cross_account_session.py +101 -106
- runbooks/vpc/enhanced_mcp_validation.py +917 -0
- runbooks/vpc/eni_gate_validator.py +961 -0
- runbooks/vpc/heatmap_engine.py +185 -160
- runbooks/vpc/mcp_no_eni_validator.py +680 -639
- runbooks/vpc/nat_gateway_optimizer.py +358 -0
- runbooks/vpc/networking_wrapper.py +15 -8
- runbooks/vpc/pdca_remediation_planner.py +528 -0
- runbooks/vpc/performance_optimized_analyzer.py +219 -231
- runbooks/vpc/runbooks_adapter.py +1167 -241
- runbooks/vpc/tdd_red_phase_stubs.py +601 -0
- runbooks/vpc/test_data_loader.py +358 -0
- runbooks/vpc/tests/conftest.py +314 -4
- runbooks/vpc/tests/test_cleanup_framework.py +1022 -0
- runbooks/vpc/tests/test_cost_engine.py +0 -2
- runbooks/vpc/topology_generator.py +326 -0
- runbooks/vpc/unified_scenarios.py +1297 -1124
- runbooks/vpc/vpc_cleanup_integration.py +1943 -1115
- runbooks-1.1.6.dist-info/METADATA +327 -0
- runbooks-1.1.6.dist-info/RECORD +489 -0
- runbooks/finops/README.md +0 -414
- runbooks/finops/accuracy_cross_validator.py +0 -647
- runbooks/finops/business_cases.py +0 -950
- runbooks/finops/dashboard_router.py +0 -922
- runbooks/finops/ebs_optimizer.py +0 -973
- runbooks/finops/embedded_mcp_validator.py +0 -1629
- runbooks/finops/enhanced_dashboard_runner.py +0 -527
- runbooks/finops/finops_dashboard.py +0 -584
- runbooks/finops/finops_scenarios.py +0 -1218
- runbooks/finops/legacy_migration.py +0 -730
- runbooks/finops/multi_dashboard.py +0 -1519
- runbooks/finops/single_dashboard.py +0 -1113
- runbooks/finops/unlimited_scenarios.py +0 -393
- runbooks-1.1.4.dist-info/METADATA +0 -800
- runbooks-1.1.4.dist-info/RECORD +0 -468
- {runbooks-1.1.4.dist-info → runbooks-1.1.6.dist-info}/WHEEL +0 -0
- {runbooks-1.1.4.dist-info → runbooks-1.1.6.dist-info}/entry_points.txt +0 -0
- {runbooks-1.1.4.dist-info → runbooks-1.1.6.dist-info}/licenses/LICENSE +0 -0
- {runbooks-1.1.4.dist-info → runbooks-1.1.6.dist-info}/top_level.txt +0 -0
@@ -8,20 +8,21 @@ Strategic Achievement: Manager requires business scenario intelligence with smar
|
|
8
8
|
parameter recommendations per business case type.
|
9
9
|
"""
|
10
10
|
|
11
|
-
import click
|
12
11
|
import time
|
13
|
-
from typing import Dict, List, Optional
|
12
|
+
from typing import Any, Dict, List, Optional
|
13
|
+
|
14
|
+
import click
|
14
15
|
from rich.console import Console
|
15
|
-
from rich.table import Table
|
16
16
|
from rich.panel import Panel
|
17
|
+
from rich.table import Table
|
17
18
|
|
19
|
+
from ..common.rich_utils import print_header, print_info, print_success, print_warning
|
18
20
|
from .business_case_config import (
|
21
|
+
BusinessScenarioMatrix,
|
22
|
+
ScenarioParameter,
|
19
23
|
get_business_case_config,
|
20
24
|
get_business_scenario_matrix,
|
21
|
-
BusinessScenarioMatrix,
|
22
|
-
ScenarioParameter
|
23
25
|
)
|
24
|
-
from ..common.rich_utils import print_header, print_info, print_success, print_warning
|
25
26
|
|
26
27
|
|
27
28
|
class SimplifiedScenarioMessaging:
|
@@ -47,14 +48,14 @@ class SimplifiedScenarioMessaging:
|
|
47
48
|
Achieves 75% reduction: 5 operations → 1 panel.
|
48
49
|
"""
|
49
50
|
self.operation_count += 5 # Would have been 5 separate prints
|
50
|
-
self.template_count += 1
|
51
|
+
self.template_count += 1 # Now using 1 panel template
|
51
52
|
|
52
53
|
scenario_content = self._format_scenario_content(scenario_config)
|
53
54
|
scenario_panel = Panel(
|
54
55
|
scenario_content,
|
55
56
|
title=f"[bold cyan]Scenario: {scenario_config.display_name}[/bold cyan]",
|
56
57
|
border_style="cyan",
|
57
|
-
padding=(1, 2)
|
58
|
+
padding=(1, 2),
|
58
59
|
)
|
59
60
|
self.console.print(scenario_panel)
|
60
61
|
|
@@ -75,7 +76,7 @@ class SimplifiedScenarioMessaging:
|
|
75
76
|
param_content,
|
76
77
|
title="[bold green]🎯 Intelligent Parameter Recommendations[/bold green]",
|
77
78
|
border_style="green",
|
78
|
-
padding=(1, 2)
|
79
|
+
padding=(1, 2),
|
79
80
|
)
|
80
81
|
self.console.print(param_panel)
|
81
82
|
|
@@ -96,7 +97,7 @@ class SimplifiedScenarioMessaging:
|
|
96
97
|
suggestion_content,
|
97
98
|
title=f"[bold yellow]💡 Parameter Optimization Suggestions for '{scenario_key}'[/bold yellow]",
|
98
99
|
border_style="yellow",
|
99
|
-
padding=(1, 2)
|
100
|
+
padding=(1, 2),
|
100
101
|
)
|
101
102
|
self.console.print(suggestion_panel)
|
102
103
|
|
@@ -111,7 +112,7 @@ class SimplifiedScenarioMessaging:
|
|
111
112
|
"template_operations_used": self.template_count,
|
112
113
|
"operations_saved": self.operation_count - self.template_count,
|
113
114
|
"efficiency_percentage": efficiency,
|
114
|
-
"target_achieved": efficiency >= 75.0
|
115
|
+
"target_achieved": efficiency >= 75.0,
|
115
116
|
}
|
116
117
|
|
117
118
|
def _format_scenario_content(self, scenario_config) -> str:
|
@@ -139,7 +140,7 @@ class SimplifiedScenarioMessaging:
|
|
139
140
|
content_lines.append(f" [dim]→ {param.business_justification}[/dim]")
|
140
141
|
|
141
142
|
if param.alternative_values:
|
142
|
-
alternatives =
|
143
|
+
alternatives = ", ".join(str(v) for v in param.alternative_values)
|
143
144
|
content_lines.append(f" [dim]Alternatives: {alternatives}[/dim]")
|
144
145
|
content_lines.append("")
|
145
146
|
|
@@ -206,19 +207,21 @@ class ScenarioCliHelper:
|
|
206
207
|
command_panel = Panel(
|
207
208
|
f"[dim]runbooks finops --scenario {scenario_key} {optimal_command}[/dim]",
|
208
209
|
title="[bold yellow]💡 Optimal Command Example[/bold yellow]",
|
209
|
-
border_style="yellow"
|
210
|
+
border_style="yellow",
|
210
211
|
)
|
211
212
|
self.console.print(command_panel)
|
212
213
|
else:
|
213
214
|
print_info("Using standard parameters for this scenario")
|
214
215
|
|
215
216
|
# Audit trail for Phase 2 compliance
|
216
|
-
self.audit_trail.append(
|
217
|
-
|
218
|
-
|
219
|
-
|
220
|
-
|
221
|
-
|
217
|
+
self.audit_trail.append(
|
218
|
+
{
|
219
|
+
"action": "single_scenario_help",
|
220
|
+
"scenario": scenario_key,
|
221
|
+
"simplified_messaging_used": True,
|
222
|
+
"timestamp": time.time(),
|
223
|
+
}
|
224
|
+
)
|
222
225
|
|
223
226
|
def _display_all_scenarios_help(self) -> None:
|
224
227
|
"""Display overview of all scenarios with parameter summaries."""
|
@@ -226,7 +229,7 @@ class ScenarioCliHelper:
|
|
226
229
|
table = Table(
|
227
230
|
title="🎯 Business Scenarios with Intelligent Parameter Defaults",
|
228
231
|
show_header=True,
|
229
|
-
header_style="bold cyan"
|
232
|
+
header_style="bold cyan",
|
230
233
|
)
|
231
234
|
|
232
235
|
table.add_column("Scenario", style="bold white", width=15)
|
@@ -240,26 +243,20 @@ class ScenarioCliHelper:
|
|
240
243
|
|
241
244
|
# Tier classification for display
|
242
245
|
tier_mapping = {
|
243
|
-
|
244
|
-
|
245
|
-
|
246
|
-
|
247
|
-
|
248
|
-
|
249
|
-
|
246
|
+
"workspaces": "Tier 1",
|
247
|
+
"nat-gateway": "Tier 1",
|
248
|
+
"rds-snapshots": "Tier 1",
|
249
|
+
"ebs-optimization": "Tier 2",
|
250
|
+
"vpc-cleanup": "Tier 2",
|
251
|
+
"elastic-ip": "Tier 2",
|
252
|
+
"backup-investigation": "Tier 3",
|
250
253
|
}
|
251
254
|
|
252
255
|
for scenario_key, scenario in self.business_config.get_all_scenarios().items():
|
253
256
|
parameter_summary = scenario_summaries.get(scenario_key, "Standard")
|
254
257
|
tier = tier_mapping.get(scenario_key, "Standard")
|
255
258
|
|
256
|
-
table.add_row(
|
257
|
-
scenario_key,
|
258
|
-
scenario.display_name,
|
259
|
-
scenario.savings_range_display,
|
260
|
-
parameter_summary,
|
261
|
-
tier
|
262
|
-
)
|
259
|
+
table.add_row(scenario_key, scenario.display_name, scenario.savings_range_display, parameter_summary, tier)
|
263
260
|
|
264
261
|
self.console.print(table)
|
265
262
|
|
@@ -282,7 +279,7 @@ class ScenarioCliHelper:
|
|
282
279
|
• runbooks finops --help-scenarios # All scenarios overview
|
283
280
|
""",
|
284
281
|
title="📚 Scenario Usage Guide",
|
285
|
-
style="cyan"
|
282
|
+
style="cyan",
|
286
283
|
)
|
287
284
|
self.console.print(usage_panel)
|
288
285
|
|
@@ -298,7 +295,7 @@ class ScenarioCliHelper:
|
|
298
295
|
self.console.print(f" [dim]→ {param.business_justification}[/dim]")
|
299
296
|
|
300
297
|
if param.alternative_values:
|
301
|
-
alternatives =
|
298
|
+
alternatives = ", ".join(str(v) for v in param.alternative_values)
|
302
299
|
self.console.print(f" [dim]Alternatives: {alternatives}[/dim]")
|
303
300
|
self.console.print()
|
304
301
|
|
@@ -327,13 +324,15 @@ class ScenarioCliHelper:
|
|
327
324
|
self.simplified_messaging.display_optimization_suggestions(scenario_key, suggestions)
|
328
325
|
|
329
326
|
# Audit trail
|
330
|
-
self.audit_trail.append(
|
331
|
-
|
332
|
-
|
333
|
-
|
334
|
-
|
335
|
-
|
336
|
-
|
327
|
+
self.audit_trail.append(
|
328
|
+
{
|
329
|
+
"action": "parameter_validation",
|
330
|
+
"scenario": scenario_key,
|
331
|
+
"suggestions_count": len(suggestions),
|
332
|
+
"simplified_messaging_used": True,
|
333
|
+
"timestamp": time.time(),
|
334
|
+
}
|
335
|
+
)
|
337
336
|
|
338
337
|
def get_scenario_cli_choices(self) -> List[str]:
|
339
338
|
"""Get list of valid scenario choices for Click options."""
|
@@ -363,18 +362,18 @@ class ScenarioCliHelper:
|
|
363
362
|
"operations_with_simplified_messaging": sum(
|
364
363
|
1 for op in self.audit_trail if op.get("simplified_messaging_used", False)
|
365
364
|
),
|
366
|
-
"audit_compliance": "enterprise_ready"
|
365
|
+
"audit_compliance": "enterprise_ready",
|
367
366
|
},
|
368
367
|
"target_achievements": {
|
369
368
|
"message_simplification_target": 75.0,
|
370
369
|
"achieved_efficiency": messaging_metrics.get("efficiency_percentage", 0.0),
|
371
|
-
"target_met": messaging_metrics.get("target_achieved", False)
|
370
|
+
"target_met": messaging_metrics.get("target_achieved", False),
|
372
371
|
},
|
373
372
|
"performance_improvements": {
|
374
373
|
"console_operations_reduced": messaging_metrics.get("operations_saved", 0),
|
375
374
|
"template_consolidation": "Rich panel integration implemented",
|
376
|
-
"information_preservation": "100% content maintained"
|
377
|
-
}
|
375
|
+
"information_preservation": "100% content maintained",
|
376
|
+
},
|
378
377
|
}
|
379
378
|
|
380
379
|
|
@@ -417,21 +416,21 @@ def get_scenario_parameter_defaults(scenario_key: str) -> Dict[str, Any]:
|
|
417
416
|
defaults = {}
|
418
417
|
|
419
418
|
for param_key, param in recommendations.items():
|
420
|
-
if param.name ==
|
421
|
-
defaults[
|
422
|
-
elif param.name ==
|
423
|
-
defaults[
|
424
|
-
elif param.name ==
|
425
|
-
defaults[
|
426
|
-
elif param.name ==
|
427
|
-
defaults[
|
428
|
-
elif param.name ==
|
429
|
-
defaults[
|
430
|
-
elif param.name ==
|
431
|
-
defaults[
|
432
|
-
elif param.name ==
|
433
|
-
defaults[
|
434
|
-
elif param.name ==
|
435
|
-
defaults[
|
436
|
-
|
437
|
-
return defaults
|
419
|
+
if param.name == "--time-range":
|
420
|
+
defaults["time_range"] = param.optimal_value
|
421
|
+
elif param.name == "--unblended":
|
422
|
+
defaults["unblended"] = True
|
423
|
+
elif param.name == "--amortized":
|
424
|
+
defaults["amortized"] = True
|
425
|
+
elif param.name == "--dual-metrics":
|
426
|
+
defaults["dual_metrics"] = True
|
427
|
+
elif param.name == "--pdf":
|
428
|
+
defaults["pdf"] = True
|
429
|
+
elif param.name == "--csv":
|
430
|
+
defaults["csv"] = True
|
431
|
+
elif param.name == "--json":
|
432
|
+
defaults["json"] = True
|
433
|
+
elif param.name == "--markdown":
|
434
|
+
defaults["export_markdown"] = True
|
435
|
+
|
436
|
+
return defaults
|