claude-mpm 5.1.9__py3-none-any.whl → 5.4.48__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.
Potentially problematic release.
This version of claude-mpm might be problematic. Click here for more details.
- claude_mpm/VERSION +1 -1
- claude_mpm/__init__.py +4 -0
- claude_mpm/agents/BASE_AGENT.md +164 -0
- claude_mpm/agents/CLAUDE_MPM_TEACHER_OUTPUT_STYLE.md +1 -1
- claude_mpm/agents/MEMORY.md +1 -1
- claude_mpm/agents/PM_INSTRUCTIONS.md +843 -900
- claude_mpm/agents/WORKFLOW.md +5 -254
- claude_mpm/agents/agent_loader.py +13 -44
- claude_mpm/agents/base_agent.json +1 -1
- claude_mpm/agents/frontmatter_validator.py +2 -2
- claude_mpm/agents/templates/circuit-breakers.md +138 -1
- claude_mpm/cli/__main__.py +4 -0
- claude_mpm/cli/chrome_devtools_installer.py +175 -0
- claude_mpm/cli/commands/agent_state_manager.py +18 -27
- claude_mpm/cli/commands/agents.py +9 -40
- claude_mpm/cli/commands/auto_configure.py +210 -25
- claude_mpm/cli/commands/config.py +88 -2
- claude_mpm/cli/commands/configure.py +1098 -159
- claude_mpm/cli/commands/configure_agent_display.py +25 -6
- claude_mpm/cli/commands/mpm_init/core.py +225 -46
- claude_mpm/cli/commands/mpm_init/knowledge_extractor.py +481 -0
- claude_mpm/cli/commands/mpm_init/prompts.py +280 -0
- claude_mpm/cli/commands/postmortem.py +1 -1
- claude_mpm/cli/commands/profile.py +277 -0
- claude_mpm/cli/commands/skills.py +218 -197
- claude_mpm/cli/commands/summarize.py +413 -0
- claude_mpm/cli/executor.py +21 -3
- claude_mpm/cli/interactive/agent_wizard.py +2 -2
- claude_mpm/cli/parsers/agents_parser.py +0 -9
- claude_mpm/cli/parsers/auto_configure_parser.py +0 -138
- claude_mpm/cli/parsers/base_parser.py +12 -0
- claude_mpm/cli/parsers/config_parser.py +153 -83
- claude_mpm/cli/parsers/profile_parser.py +148 -0
- claude_mpm/cli/parsers/skills_parser.py +0 -5
- claude_mpm/cli/startup.py +876 -149
- claude_mpm/commands/mpm-config.md +28 -0
- claude_mpm/commands/mpm-doctor.md +9 -22
- claude_mpm/commands/mpm-help.md +5 -287
- claude_mpm/commands/mpm-init.md +81 -507
- claude_mpm/commands/mpm-monitor.md +15 -402
- claude_mpm/commands/mpm-organize.md +120 -0
- claude_mpm/commands/mpm-postmortem.md +6 -108
- claude_mpm/commands/mpm-session-resume.md +12 -363
- claude_mpm/commands/mpm-status.md +5 -69
- claude_mpm/commands/mpm-ticket-view.md +52 -495
- claude_mpm/commands/mpm-version.md +5 -107
- claude_mpm/config/agent_sources.py +27 -0
- claude_mpm/core/config.py +2 -4
- claude_mpm/core/framework/formatters/content_formatter.py +3 -13
- claude_mpm/core/framework/loaders/agent_loader.py +8 -5
- claude_mpm/core/framework/loaders/instruction_loader.py +52 -11
- claude_mpm/core/framework_loader.py +4 -2
- claude_mpm/core/logger.py +13 -0
- claude_mpm/core/optimized_startup.py +59 -0
- claude_mpm/core/shared/config_loader.py +1 -1
- claude_mpm/core/socketio_pool.py +3 -3
- claude_mpm/core/unified_agent_registry.py +5 -15
- claude_mpm/dashboard/static/svelte-build/_app/env.js +1 -0
- claude_mpm/dashboard/static/svelte-build/_app/immutable/assets/0.B_FtCwCQ.css +1 -0
- claude_mpm/dashboard/static/svelte-build/_app/immutable/assets/2.Cl_eSA4x.css +1 -0
- claude_mpm/dashboard/static/svelte-build/_app/immutable/chunks/BgChzWQ1.js +1 -0
- claude_mpm/dashboard/static/svelte-build/_app/immutable/chunks/CIXEwuWe.js +1 -0
- claude_mpm/dashboard/static/svelte-build/_app/immutable/chunks/CWc5urbQ.js +1 -0
- claude_mpm/dashboard/static/svelte-build/_app/immutable/chunks/DMkZpdF2.js +2 -0
- claude_mpm/dashboard/static/svelte-build/_app/immutable/chunks/DjhvlsAc.js +1 -0
- claude_mpm/dashboard/static/svelte-build/_app/immutable/chunks/N4qtv3Hx.js +2 -0
- claude_mpm/dashboard/static/svelte-build/_app/immutable/chunks/uj46x2Wr.js +1 -0
- claude_mpm/dashboard/static/svelte-build/_app/immutable/entry/app.DTL5mJO-.js +2 -0
- claude_mpm/dashboard/static/svelte-build/_app/immutable/entry/start.DzuEhzqh.js +1 -0
- claude_mpm/dashboard/static/svelte-build/_app/immutable/nodes/0.CAGBuiOw.js +1 -0
- claude_mpm/dashboard/static/svelte-build/_app/immutable/nodes/1.DFLC8jdE.js +1 -0
- claude_mpm/dashboard/static/svelte-build/_app/immutable/nodes/2.DPvEihJJ.js +10 -0
- claude_mpm/dashboard/static/svelte-build/_app/version.json +1 -0
- claude_mpm/dashboard/static/svelte-build/favicon.svg +7 -0
- claude_mpm/dashboard/static/svelte-build/index.html +36 -0
- claude_mpm/hooks/claude_hooks/__pycache__/__init__.cpython-311.pyc +0 -0
- claude_mpm/hooks/claude_hooks/__pycache__/correlation_manager.cpython-311.pyc +0 -0
- claude_mpm/hooks/claude_hooks/__pycache__/event_handlers.cpython-311.pyc +0 -0
- claude_mpm/hooks/claude_hooks/__pycache__/hook_handler.cpython-311.pyc +0 -0
- claude_mpm/hooks/claude_hooks/__pycache__/installer.cpython-311.pyc +0 -0
- claude_mpm/hooks/claude_hooks/__pycache__/memory_integration.cpython-311.pyc +0 -0
- claude_mpm/hooks/claude_hooks/__pycache__/response_tracking.cpython-311.pyc +0 -0
- claude_mpm/hooks/claude_hooks/__pycache__/tool_analysis.cpython-311.pyc +0 -0
- claude_mpm/hooks/claude_hooks/correlation_manager.py +60 -0
- claude_mpm/hooks/claude_hooks/event_handlers.py +211 -78
- claude_mpm/hooks/claude_hooks/hook_handler.py +155 -1
- claude_mpm/hooks/claude_hooks/installer.py +33 -10
- claude_mpm/hooks/claude_hooks/memory_integration.py +26 -9
- claude_mpm/hooks/claude_hooks/response_tracking.py +2 -3
- claude_mpm/hooks/claude_hooks/services/__pycache__/__init__.cpython-311.pyc +0 -0
- claude_mpm/hooks/claude_hooks/services/__pycache__/connection_manager.cpython-311.pyc +0 -0
- claude_mpm/hooks/claude_hooks/services/__pycache__/connection_manager_http.cpython-311.pyc +0 -0
- claude_mpm/hooks/claude_hooks/services/__pycache__/duplicate_detector.cpython-311.pyc +0 -0
- claude_mpm/hooks/claude_hooks/services/__pycache__/state_manager.cpython-311.pyc +0 -0
- claude_mpm/hooks/claude_hooks/services/__pycache__/subagent_processor.cpython-311.pyc +0 -0
- claude_mpm/hooks/claude_hooks/services/connection_manager.py +30 -6
- claude_mpm/hooks/kuzu_memory_hook.py +5 -5
- claude_mpm/hooks/memory_integration_hook.py +46 -1
- claude_mpm/init.py +63 -19
- claude_mpm/models/git_repository.py +3 -3
- claude_mpm/scripts/claude-hook-handler.sh +58 -18
- claude_mpm/scripts/launch_monitor.py +93 -13
- claude_mpm/services/agents/agent_builder.py +3 -3
- claude_mpm/services/agents/agent_recommendation_service.py +278 -0
- claude_mpm/services/agents/agent_review_service.py +280 -0
- claude_mpm/services/agents/cache_git_manager.py +6 -6
- claude_mpm/services/agents/deployment/agent_deployment.py +29 -7
- claude_mpm/services/agents/deployment/agent_discovery_service.py +4 -5
- claude_mpm/services/agents/deployment/agent_format_converter.py +23 -13
- claude_mpm/services/agents/deployment/agent_template_builder.py +32 -20
- claude_mpm/services/agents/deployment/agents_directory_resolver.py +2 -2
- claude_mpm/services/agents/deployment/async_agent_deployment.py +31 -27
- claude_mpm/services/agents/deployment/local_template_deployment.py +3 -1
- claude_mpm/services/agents/deployment/multi_source_deployment_service.py +247 -35
- claude_mpm/services/agents/deployment/remote_agent_discovery_service.py +392 -87
- claude_mpm/services/agents/git_source_manager.py +53 -4
- claude_mpm/services/agents/loading/base_agent_manager.py +1 -13
- claude_mpm/services/agents/recommender.py +5 -3
- claude_mpm/services/agents/single_tier_deployment_service.py +2 -2
- claude_mpm/services/agents/sources/git_source_sync_service.py +120 -7
- claude_mpm/services/agents/startup_sync.py +22 -2
- claude_mpm/services/agents/toolchain_detector.py +10 -6
- claude_mpm/services/analysis/__init__.py +11 -1
- claude_mpm/services/analysis/clone_detector.py +1030 -0
- claude_mpm/services/command_deployment_service.py +81 -10
- claude_mpm/services/diagnostics/checks/agent_check.py +2 -2
- claude_mpm/services/diagnostics/checks/agent_sources_check.py +1 -1
- claude_mpm/services/event_bus/config.py +3 -1
- claude_mpm/services/git/git_operations_service.py +101 -16
- claude_mpm/services/monitor/daemon.py +9 -2
- claude_mpm/services/monitor/daemon_manager.py +39 -3
- claude_mpm/services/monitor/management/lifecycle.py +8 -1
- claude_mpm/services/monitor/server.py +698 -22
- claude_mpm/services/pm_skills_deployer.py +711 -0
- claude_mpm/services/profile_manager.py +331 -0
- claude_mpm/services/self_upgrade_service.py +120 -12
- claude_mpm/services/skills/__init__.py +3 -0
- claude_mpm/services/skills/git_skill_source_manager.py +130 -2
- claude_mpm/services/skills/selective_skill_deployer.py +704 -0
- claude_mpm/services/skills/skill_to_agent_mapper.py +406 -0
- claude_mpm/services/skills_deployer.py +127 -9
- claude_mpm/services/socketio/dashboard_server.py +1 -0
- claude_mpm/services/socketio/event_normalizer.py +51 -6
- claude_mpm/services/socketio/server/core.py +386 -108
- claude_mpm/services/version_control/git_operations.py +103 -0
- claude_mpm/skills/skill_manager.py +92 -3
- claude_mpm/utils/agent_dependency_loader.py +14 -2
- claude_mpm/utils/agent_filters.py +17 -44
- claude_mpm/utils/migration.py +4 -4
- claude_mpm/utils/robust_installer.py +47 -3
- {claude_mpm-5.1.9.dist-info → claude_mpm-5.4.48.dist-info}/METADATA +53 -87
- {claude_mpm-5.1.9.dist-info → claude_mpm-5.4.48.dist-info}/RECORD +157 -197
- claude_mpm-5.4.48.dist-info/entry_points.txt +5 -0
- claude_mpm-5.4.48.dist-info/licenses/LICENSE +94 -0
- claude_mpm-5.4.48.dist-info/licenses/LICENSE-FAQ.md +153 -0
- claude_mpm/agents/BASE_AGENT_TEMPLATE.md +0 -292
- claude_mpm/agents/BASE_DOCUMENTATION.md +0 -53
- claude_mpm/agents/BASE_OPS.md +0 -219
- claude_mpm/agents/BASE_PM.md +0 -480
- claude_mpm/agents/BASE_PROMPT_ENGINEER.md +0 -787
- claude_mpm/agents/BASE_QA.md +0 -167
- claude_mpm/agents/BASE_RESEARCH.md +0 -53
- claude_mpm/agents/base_agent_loader.py +0 -601
- claude_mpm/cli/commands/agents_detect.py +0 -380
- claude_mpm/cli/commands/agents_recommend.py +0 -309
- claude_mpm/cli/ticket_cli.py +0 -35
- claude_mpm/commands/mpm-agents-auto-configure.md +0 -278
- claude_mpm/commands/mpm-agents-detect.md +0 -177
- claude_mpm/commands/mpm-agents-list.md +0 -131
- claude_mpm/commands/mpm-agents-recommend.md +0 -223
- claude_mpm/commands/mpm-config-view.md +0 -150
- claude_mpm/commands/mpm-ticket-organize.md +0 -304
- claude_mpm/dashboard/analysis_runner.py +0 -455
- claude_mpm/dashboard/index.html +0 -13
- claude_mpm/dashboard/open_dashboard.py +0 -66
- claude_mpm/dashboard/static/css/activity.css +0 -1958
- claude_mpm/dashboard/static/css/connection-status.css +0 -370
- claude_mpm/dashboard/static/css/dashboard.css +0 -4701
- claude_mpm/dashboard/static/js/components/activity-tree.js +0 -1871
- claude_mpm/dashboard/static/js/components/agent-hierarchy.js +0 -777
- claude_mpm/dashboard/static/js/components/agent-inference.js +0 -956
- claude_mpm/dashboard/static/js/components/build-tracker.js +0 -333
- claude_mpm/dashboard/static/js/components/code-simple.js +0 -857
- claude_mpm/dashboard/static/js/components/connection-debug.js +0 -654
- claude_mpm/dashboard/static/js/components/diff-viewer.js +0 -891
- claude_mpm/dashboard/static/js/components/event-processor.js +0 -542
- claude_mpm/dashboard/static/js/components/event-viewer.js +0 -1155
- claude_mpm/dashboard/static/js/components/export-manager.js +0 -368
- claude_mpm/dashboard/static/js/components/file-change-tracker.js +0 -443
- claude_mpm/dashboard/static/js/components/file-change-viewer.js +0 -690
- claude_mpm/dashboard/static/js/components/file-tool-tracker.js +0 -724
- claude_mpm/dashboard/static/js/components/file-viewer.js +0 -580
- claude_mpm/dashboard/static/js/components/hud-library-loader.js +0 -211
- claude_mpm/dashboard/static/js/components/hud-manager.js +0 -671
- claude_mpm/dashboard/static/js/components/hud-visualizer.js +0 -1718
- claude_mpm/dashboard/static/js/components/module-viewer.js +0 -2764
- claude_mpm/dashboard/static/js/components/session-manager.js +0 -579
- claude_mpm/dashboard/static/js/components/socket-manager.js +0 -368
- claude_mpm/dashboard/static/js/components/ui-state-manager.js +0 -749
- claude_mpm/dashboard/static/js/components/unified-data-viewer.js +0 -1824
- claude_mpm/dashboard/static/js/components/working-directory.js +0 -920
- claude_mpm/dashboard/static/js/connection-manager.js +0 -536
- claude_mpm/dashboard/static/js/dashboard.js +0 -1914
- claude_mpm/dashboard/static/js/extension-error-handler.js +0 -164
- claude_mpm/dashboard/static/js/socket-client.js +0 -1474
- claude_mpm/dashboard/static/js/tab-isolation-fix.js +0 -185
- claude_mpm/dashboard/static/socket.io.min.js +0 -7
- claude_mpm/dashboard/static/socket.io.v4.8.1.backup.js +0 -7
- claude_mpm/dashboard/templates/code_simple.html +0 -153
- claude_mpm/dashboard/templates/index.html +0 -606
- claude_mpm/dashboard/test_dashboard.html +0 -372
- claude_mpm/scripts/mcp_server.py +0 -75
- claude_mpm/scripts/mcp_wrapper.py +0 -39
- claude_mpm/services/mcp_gateway/__init__.py +0 -159
- claude_mpm/services/mcp_gateway/auto_configure.py +0 -369
- claude_mpm/services/mcp_gateway/config/__init__.py +0 -17
- claude_mpm/services/mcp_gateway/config/config_loader.py +0 -296
- claude_mpm/services/mcp_gateway/config/config_schema.py +0 -243
- claude_mpm/services/mcp_gateway/config/configuration.py +0 -429
- claude_mpm/services/mcp_gateway/core/__init__.py +0 -43
- claude_mpm/services/mcp_gateway/core/base.py +0 -312
- claude_mpm/services/mcp_gateway/core/exceptions.py +0 -253
- claude_mpm/services/mcp_gateway/core/interfaces.py +0 -443
- claude_mpm/services/mcp_gateway/core/process_pool.py +0 -977
- claude_mpm/services/mcp_gateway/core/singleton_manager.py +0 -315
- claude_mpm/services/mcp_gateway/core/startup_verification.py +0 -316
- claude_mpm/services/mcp_gateway/main.py +0 -589
- claude_mpm/services/mcp_gateway/registry/__init__.py +0 -12
- claude_mpm/services/mcp_gateway/registry/service_registry.py +0 -412
- claude_mpm/services/mcp_gateway/registry/tool_registry.py +0 -489
- claude_mpm/services/mcp_gateway/server/__init__.py +0 -15
- claude_mpm/services/mcp_gateway/server/mcp_gateway.py +0 -414
- claude_mpm/services/mcp_gateway/server/stdio_handler.py +0 -372
- claude_mpm/services/mcp_gateway/server/stdio_server.py +0 -712
- claude_mpm/services/mcp_gateway/tools/__init__.py +0 -36
- claude_mpm/services/mcp_gateway/tools/base_adapter.py +0 -485
- claude_mpm/services/mcp_gateway/tools/document_summarizer.py +0 -789
- claude_mpm/services/mcp_gateway/tools/external_mcp_services.py +0 -654
- claude_mpm/services/mcp_gateway/tools/health_check_tool.py +0 -456
- claude_mpm/services/mcp_gateway/tools/hello_world.py +0 -551
- claude_mpm/services/mcp_gateway/tools/kuzu_memory_service.py +0 -555
- claude_mpm/services/mcp_gateway/utils/__init__.py +0 -14
- claude_mpm/services/mcp_gateway/utils/package_version_checker.py +0 -160
- claude_mpm/services/mcp_gateway/utils/update_preferences.py +0 -170
- claude_mpm-5.1.9.dist-info/entry_points.txt +0 -10
- claude_mpm-5.1.9.dist-info/licenses/LICENSE +0 -21
- {claude_mpm-5.1.9.dist-info → claude_mpm-5.4.48.dist-info}/WHEEL +0 -0
- {claude_mpm-5.1.9.dist-info → claude_mpm-5.4.48.dist-info}/top_level.txt +0 -0
|
@@ -1,14 +1,15 @@
|
|
|
1
1
|
"""
|
|
2
2
|
Config command parser for claude-mpm CLI.
|
|
3
3
|
|
|
4
|
-
WHY: This module provides the config command
|
|
5
|
-
|
|
4
|
+
WHY: This module provides the unified config command with subcommands for
|
|
5
|
+
auto-configuration, viewing, validation, and status checks.
|
|
6
6
|
|
|
7
|
-
DESIGN DECISION: 'config'
|
|
8
|
-
|
|
7
|
+
DESIGN DECISION: 'config' provides both auto-configuration (default) and
|
|
8
|
+
manual configuration management through subcommands.
|
|
9
9
|
"""
|
|
10
10
|
|
|
11
11
|
import argparse
|
|
12
|
+
from pathlib import Path
|
|
12
13
|
|
|
13
14
|
from ...constants import CLICommands
|
|
14
15
|
from .base_parser import add_common_arguments
|
|
@@ -16,11 +17,10 @@ from .base_parser import add_common_arguments
|
|
|
16
17
|
|
|
17
18
|
def add_config_subparser(subparsers) -> argparse.ArgumentParser:
|
|
18
19
|
"""
|
|
19
|
-
Add the config subparser
|
|
20
|
+
Add the unified config subparser with all configuration subcommands.
|
|
20
21
|
|
|
21
|
-
WHY: 'config'
|
|
22
|
-
|
|
23
|
-
parser setup matching the configure command.
|
|
22
|
+
WHY: 'config' provides comprehensive configuration management including
|
|
23
|
+
auto-detection, manual viewing, validation, and status checks.
|
|
24
24
|
|
|
25
25
|
Args:
|
|
26
26
|
subparsers: The subparsers object from the main parser
|
|
@@ -28,111 +28,181 @@ def add_config_subparser(subparsers) -> argparse.ArgumentParser:
|
|
|
28
28
|
Returns:
|
|
29
29
|
The configured config subparser
|
|
30
30
|
"""
|
|
31
|
-
# Config command
|
|
31
|
+
# Config command with subcommands
|
|
32
32
|
config_parser = subparsers.add_parser(
|
|
33
33
|
CLICommands.CONFIG.value,
|
|
34
|
-
help="
|
|
35
|
-
description="
|
|
36
|
-
|
|
34
|
+
help="Unified configuration management with auto-detection and manual viewing",
|
|
35
|
+
description="""
|
|
36
|
+
Unified configuration management for Claude MPM.
|
|
37
37
|
|
|
38
|
-
|
|
39
|
-
|
|
38
|
+
Available commands:
|
|
39
|
+
auto Auto-configure agents and skills based on detected toolchain (default)
|
|
40
|
+
view View current configuration settings
|
|
41
|
+
validate Validate configuration files
|
|
42
|
+
status Show configuration health and status
|
|
40
43
|
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
"--scope",
|
|
45
|
-
choices=["project", "user"],
|
|
46
|
-
default="project",
|
|
47
|
-
help="Configuration scope to manage (default: project)",
|
|
44
|
+
Running 'config' with no subcommand defaults to 'auto' in preview mode.
|
|
45
|
+
""",
|
|
46
|
+
formatter_class=argparse.RawDescriptionHelpFormatter,
|
|
48
47
|
)
|
|
48
|
+
add_common_arguments(config_parser)
|
|
49
49
|
|
|
50
|
-
#
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
50
|
+
# Add subcommands
|
|
51
|
+
config_subparsers = config_parser.add_subparsers(
|
|
52
|
+
dest="config_command", help="Configuration commands", metavar="SUBCOMMAND"
|
|
53
|
+
)
|
|
54
|
+
|
|
55
|
+
# Auto-configure subcommand (default)
|
|
56
|
+
auto_parser = config_subparsers.add_parser(
|
|
57
|
+
"auto",
|
|
58
|
+
help="Auto-configure agents and skills based on detected toolchain",
|
|
59
|
+
description="""
|
|
60
|
+
Auto-configure agents and skills for your project based on detected toolchain.
|
|
61
|
+
|
|
62
|
+
This command analyzes your project to detect languages, frameworks, and
|
|
63
|
+
deployment targets, then recommends and deploys appropriate specialized
|
|
64
|
+
agents and skills automatically.
|
|
65
|
+
|
|
66
|
+
The command provides safety features including:
|
|
67
|
+
• Preview mode to see changes before applying
|
|
68
|
+
• Confidence thresholds to ensure quality matches
|
|
69
|
+
• Validation gates to block invalid configurations
|
|
70
|
+
• Rollback on failure to maintain consistency
|
|
71
|
+
""",
|
|
72
|
+
formatter_class=argparse.RawDescriptionHelpFormatter,
|
|
73
|
+
)
|
|
74
|
+
add_common_arguments(auto_parser)
|
|
75
|
+
|
|
76
|
+
# Configuration mode
|
|
77
|
+
mode_group = auto_parser.add_mutually_exclusive_group()
|
|
78
|
+
mode_group.add_argument(
|
|
79
|
+
"--preview",
|
|
80
|
+
"--dry-run",
|
|
81
|
+
dest="preview",
|
|
82
|
+
action="store_true",
|
|
83
|
+
help="Show what would be configured without deploying (preview mode)",
|
|
54
84
|
)
|
|
55
|
-
|
|
56
|
-
"--
|
|
85
|
+
mode_group.add_argument(
|
|
86
|
+
"--yes",
|
|
87
|
+
"-y",
|
|
88
|
+
action="store_true",
|
|
89
|
+
help="Skip confirmation prompts and deploy automatically",
|
|
57
90
|
)
|
|
58
|
-
|
|
59
|
-
|
|
91
|
+
|
|
92
|
+
# Scope selection
|
|
93
|
+
scope_group = auto_parser.add_mutually_exclusive_group()
|
|
94
|
+
scope_group.add_argument(
|
|
95
|
+
"--agents-only",
|
|
60
96
|
action="store_true",
|
|
61
|
-
help="
|
|
97
|
+
help="Configure agents only (skip skills)",
|
|
62
98
|
)
|
|
63
|
-
|
|
64
|
-
"--
|
|
99
|
+
scope_group.add_argument(
|
|
100
|
+
"--skills-only",
|
|
65
101
|
action="store_true",
|
|
66
|
-
help="Configure
|
|
102
|
+
help="Configure skills only (skip agents)",
|
|
103
|
+
)
|
|
104
|
+
|
|
105
|
+
# Configuration options
|
|
106
|
+
auto_parser.add_argument(
|
|
107
|
+
"--min-confidence",
|
|
108
|
+
type=float,
|
|
109
|
+
default=0.8,
|
|
110
|
+
metavar="FLOAT",
|
|
111
|
+
help="Minimum confidence threshold for recommendations (0.0-1.0, default: 0.8)",
|
|
112
|
+
)
|
|
113
|
+
|
|
114
|
+
auto_parser.add_argument(
|
|
115
|
+
"--project-path",
|
|
116
|
+
type=Path,
|
|
117
|
+
metavar="PATH",
|
|
118
|
+
help="Project path to analyze (default: current directory)",
|
|
67
119
|
)
|
|
68
|
-
|
|
69
|
-
|
|
120
|
+
|
|
121
|
+
auto_parser.add_argument(
|
|
122
|
+
"--json",
|
|
70
123
|
action="store_true",
|
|
71
|
-
help="
|
|
124
|
+
help="Output results in JSON format",
|
|
72
125
|
)
|
|
73
126
|
|
|
74
|
-
#
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
127
|
+
# View subcommand
|
|
128
|
+
view_parser = config_subparsers.add_parser(
|
|
129
|
+
"view",
|
|
130
|
+
help="View current configuration settings",
|
|
78
131
|
)
|
|
79
|
-
|
|
80
|
-
|
|
132
|
+
add_common_arguments(view_parser)
|
|
133
|
+
|
|
134
|
+
view_parser.add_argument(
|
|
135
|
+
"--section",
|
|
81
136
|
type=str,
|
|
82
|
-
metavar="
|
|
83
|
-
help="
|
|
137
|
+
metavar="SECTION",
|
|
138
|
+
help="Specific configuration section to view (agents, memory, websocket, etc.)",
|
|
84
139
|
)
|
|
85
|
-
|
|
86
|
-
"--
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
help="
|
|
140
|
+
view_parser.add_argument(
|
|
141
|
+
"--format",
|
|
142
|
+
choices=["yaml", "json", "table", "text"],
|
|
143
|
+
default="table",
|
|
144
|
+
help="Output format (default: table)",
|
|
90
145
|
)
|
|
91
|
-
|
|
92
|
-
"--
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
help="Export current configuration to a file",
|
|
146
|
+
view_parser.add_argument(
|
|
147
|
+
"--show-defaults",
|
|
148
|
+
action="store_true",
|
|
149
|
+
help="Include default values in output",
|
|
96
150
|
)
|
|
97
|
-
|
|
98
|
-
"--
|
|
99
|
-
type=
|
|
100
|
-
metavar="
|
|
101
|
-
help="
|
|
151
|
+
view_parser.add_argument(
|
|
152
|
+
"--config-file",
|
|
153
|
+
type=Path,
|
|
154
|
+
metavar="PATH",
|
|
155
|
+
help="Specific config file to view (default: all)",
|
|
102
156
|
)
|
|
103
157
|
|
|
104
|
-
#
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
"
|
|
108
|
-
action="store_true",
|
|
109
|
-
help="Install Claude MPM hooks for Claude Code integration",
|
|
158
|
+
# Validate subcommand
|
|
159
|
+
validate_parser = config_subparsers.add_parser(
|
|
160
|
+
"validate",
|
|
161
|
+
help="Validate configuration files for correctness",
|
|
110
162
|
)
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
163
|
+
add_common_arguments(validate_parser)
|
|
164
|
+
|
|
165
|
+
validate_parser.add_argument(
|
|
166
|
+
"--config-file",
|
|
167
|
+
type=Path,
|
|
168
|
+
metavar="PATH",
|
|
169
|
+
help="Validate specific config file (default: all)",
|
|
115
170
|
)
|
|
116
|
-
|
|
117
|
-
"--
|
|
171
|
+
validate_parser.add_argument(
|
|
172
|
+
"--strict",
|
|
118
173
|
action="store_true",
|
|
119
|
-
help="
|
|
174
|
+
help="Use strict validation rules",
|
|
120
175
|
)
|
|
121
|
-
|
|
122
|
-
"--
|
|
176
|
+
validate_parser.add_argument(
|
|
177
|
+
"--fix",
|
|
123
178
|
action="store_true",
|
|
124
|
-
help="
|
|
179
|
+
help="Attempt to fix validation errors automatically",
|
|
125
180
|
)
|
|
126
181
|
|
|
127
|
-
#
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
"
|
|
131
|
-
action="store_true",
|
|
132
|
-
help="Disable colored output in the interface",
|
|
182
|
+
# Status subcommand
|
|
183
|
+
status_parser = config_subparsers.add_parser(
|
|
184
|
+
"status",
|
|
185
|
+
help="Show configuration health and status",
|
|
133
186
|
)
|
|
134
|
-
|
|
135
|
-
|
|
187
|
+
add_common_arguments(status_parser)
|
|
188
|
+
|
|
189
|
+
# Note: --verbose is provided by add_common_arguments()
|
|
190
|
+
status_parser.add_argument(
|
|
191
|
+
"--check-response-logging",
|
|
192
|
+
action="store_true",
|
|
193
|
+
help="Check response logging configuration",
|
|
194
|
+
)
|
|
195
|
+
status_parser.add_argument(
|
|
196
|
+
"--format",
|
|
197
|
+
choices=["yaml", "json", "text"],
|
|
198
|
+
default="text",
|
|
199
|
+
help="Output format (default: text)",
|
|
200
|
+
)
|
|
201
|
+
status_parser.add_argument(
|
|
202
|
+
"--config-file",
|
|
203
|
+
type=Path,
|
|
204
|
+
metavar="PATH",
|
|
205
|
+
help="Specific config file to check (default: all)",
|
|
136
206
|
)
|
|
137
207
|
|
|
138
208
|
return config_parser
|
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
"""
|
|
2
|
+
Profile command parser for claude-mpm CLI.
|
|
3
|
+
|
|
4
|
+
WHY: This module provides the profile command for managing deployment profiles
|
|
5
|
+
that control which agents and skills are deployed.
|
|
6
|
+
|
|
7
|
+
DESIGN DECISION: Provides intuitive subcommands for listing, activating,
|
|
8
|
+
and inspecting profiles to reduce context usage by limiting deployed components.
|
|
9
|
+
"""
|
|
10
|
+
|
|
11
|
+
import argparse
|
|
12
|
+
|
|
13
|
+
from ...constants import CLICommands
|
|
14
|
+
from .base_parser import add_common_arguments
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
def add_profile_subparser(subparsers) -> argparse.ArgumentParser:
|
|
18
|
+
"""
|
|
19
|
+
Add the profile subparser for deployment profile management.
|
|
20
|
+
|
|
21
|
+
WHY: Users need to manage which agents and skills are deployed to reduce
|
|
22
|
+
context usage and improve performance. Profiles define enabled/disabled
|
|
23
|
+
agents and skills for specific workflows.
|
|
24
|
+
|
|
25
|
+
Args:
|
|
26
|
+
subparsers: The subparsers object from the main parser
|
|
27
|
+
|
|
28
|
+
Returns:
|
|
29
|
+
The configured profile subparser
|
|
30
|
+
"""
|
|
31
|
+
# Profile command with subcommands
|
|
32
|
+
profile_parser = subparsers.add_parser(
|
|
33
|
+
"profile",
|
|
34
|
+
help="Manage deployment profiles for agents and skills",
|
|
35
|
+
description="""
|
|
36
|
+
Deployment profile management for Claude MPM.
|
|
37
|
+
|
|
38
|
+
Profiles control which agents and skills are deployed, reducing context usage
|
|
39
|
+
by limiting available agents to only what's needed for your workflow.
|
|
40
|
+
|
|
41
|
+
Available commands:
|
|
42
|
+
list List all available profiles
|
|
43
|
+
set Set the active profile
|
|
44
|
+
status Show current active profile and filtering summary
|
|
45
|
+
show Show detailed configuration of a profile
|
|
46
|
+
|
|
47
|
+
Example workflows:
|
|
48
|
+
# List available profiles
|
|
49
|
+
claude-mpm profile list
|
|
50
|
+
|
|
51
|
+
# Activate a profile
|
|
52
|
+
claude-mpm profile set framework-development
|
|
53
|
+
|
|
54
|
+
# Check current profile status
|
|
55
|
+
claude-mpm profile status
|
|
56
|
+
|
|
57
|
+
# View profile details
|
|
58
|
+
claude-mpm profile show framework-development
|
|
59
|
+
""",
|
|
60
|
+
formatter_class=argparse.RawDescriptionHelpFormatter,
|
|
61
|
+
)
|
|
62
|
+
add_common_arguments(profile_parser)
|
|
63
|
+
|
|
64
|
+
# Add subcommands
|
|
65
|
+
profile_subparsers = profile_parser.add_subparsers(
|
|
66
|
+
dest="profile_command",
|
|
67
|
+
help="Profile management commands",
|
|
68
|
+
metavar="SUBCOMMAND",
|
|
69
|
+
)
|
|
70
|
+
|
|
71
|
+
# List subcommand
|
|
72
|
+
list_parser = profile_subparsers.add_parser(
|
|
73
|
+
"list",
|
|
74
|
+
help="List all available deployment profiles",
|
|
75
|
+
description="""
|
|
76
|
+
List all profiles found in .claude-mpm/profiles/ directory.
|
|
77
|
+
|
|
78
|
+
Shows profile names, descriptions, and indicates which profile is currently active.
|
|
79
|
+
""",
|
|
80
|
+
formatter_class=argparse.RawDescriptionHelpFormatter,
|
|
81
|
+
)
|
|
82
|
+
add_common_arguments(list_parser)
|
|
83
|
+
|
|
84
|
+
# Set subcommand
|
|
85
|
+
set_parser = profile_subparsers.add_parser(
|
|
86
|
+
"set",
|
|
87
|
+
help="Set the active deployment profile",
|
|
88
|
+
description="""
|
|
89
|
+
Set the active deployment profile.
|
|
90
|
+
|
|
91
|
+
This updates configuration.yaml with the selected profile, which will be
|
|
92
|
+
applied on next startup or when running 'claude-mpm init'.
|
|
93
|
+
|
|
94
|
+
Examples:
|
|
95
|
+
# Activate framework development profile
|
|
96
|
+
claude-mpm profile set framework-development
|
|
97
|
+
|
|
98
|
+
# Activate minimal profile for focused work
|
|
99
|
+
claude-mpm profile set minimal
|
|
100
|
+
""",
|
|
101
|
+
formatter_class=argparse.RawDescriptionHelpFormatter,
|
|
102
|
+
)
|
|
103
|
+
add_common_arguments(set_parser)
|
|
104
|
+
set_parser.add_argument(
|
|
105
|
+
"profile_name",
|
|
106
|
+
help="Name of profile to activate (without .yaml extension)",
|
|
107
|
+
)
|
|
108
|
+
|
|
109
|
+
# Status subcommand
|
|
110
|
+
status_parser = profile_subparsers.add_parser(
|
|
111
|
+
"status",
|
|
112
|
+
help="Show current active profile and filtering summary",
|
|
113
|
+
description="""
|
|
114
|
+
Display current active profile with filtering summary.
|
|
115
|
+
|
|
116
|
+
Shows:
|
|
117
|
+
- Active profile name
|
|
118
|
+
- Number of agents enabled/disabled
|
|
119
|
+
- Number of skills enabled/disabled
|
|
120
|
+
- Disabled skill patterns
|
|
121
|
+
""",
|
|
122
|
+
formatter_class=argparse.RawDescriptionHelpFormatter,
|
|
123
|
+
)
|
|
124
|
+
add_common_arguments(status_parser)
|
|
125
|
+
|
|
126
|
+
# Show subcommand
|
|
127
|
+
show_parser = profile_subparsers.add_parser(
|
|
128
|
+
"show",
|
|
129
|
+
help="Show detailed configuration of a profile",
|
|
130
|
+
description="""
|
|
131
|
+
Display detailed configuration of a specific profile.
|
|
132
|
+
|
|
133
|
+
Shows complete lists of enabled/disabled agents and skills, including
|
|
134
|
+
glob patterns for skill filtering.
|
|
135
|
+
|
|
136
|
+
Examples:
|
|
137
|
+
# Show framework development profile details
|
|
138
|
+
claude-mpm profile show framework-development
|
|
139
|
+
""",
|
|
140
|
+
formatter_class=argparse.RawDescriptionHelpFormatter,
|
|
141
|
+
)
|
|
142
|
+
add_common_arguments(show_parser)
|
|
143
|
+
show_parser.add_argument(
|
|
144
|
+
"profile_name",
|
|
145
|
+
help="Name of profile to display (without .yaml extension)",
|
|
146
|
+
)
|
|
147
|
+
|
|
148
|
+
return profile_parser
|
|
@@ -167,11 +167,6 @@ def add_skills_subparser(subparsers) -> argparse.ArgumentParser:
|
|
|
167
167
|
action="store_true",
|
|
168
168
|
help="Force redeployment of already deployed skills",
|
|
169
169
|
)
|
|
170
|
-
deploy_github_parser.add_argument(
|
|
171
|
-
"--all",
|
|
172
|
-
action="store_true",
|
|
173
|
-
help="Deploy all available skills (no filtering)",
|
|
174
|
-
)
|
|
175
170
|
|
|
176
171
|
# List available GitHub skills
|
|
177
172
|
list_available_parser = skills_subparsers.add_parser(
|