claude-mpm 4.21.3__py3-none-any.whl → 5.1.9__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/agents/BASE_PM.md +12 -0
- claude_mpm/agents/{OUTPUT_STYLE.md → CLAUDE_MPM_OUTPUT_STYLE.md} +3 -48
- claude_mpm/agents/CLAUDE_MPM_TEACHER_OUTPUT_STYLE.md +2002 -0
- claude_mpm/agents/PM_INSTRUCTIONS.md +1239 -674
- claude_mpm/agents/WORKFLOW.md +75 -2
- claude_mpm/agents/__init__.py +6 -0
- claude_mpm/agents/agent_loader.py +1 -4
- claude_mpm/agents/base_agent.json +6 -3
- claude_mpm/agents/base_agent_loader.py +10 -35
- claude_mpm/agents/frontmatter_validator.py +69 -1
- claude_mpm/agents/templates/circuit-breakers.md +1254 -0
- claude_mpm/agents/templates/context-management-examples.md +544 -0
- claude_mpm/agents/templates/{pm_red_flags.md → pm-red-flags.md} +89 -19
- claude_mpm/agents/templates/pr-workflow-examples.md +427 -0
- claude_mpm/agents/templates/research-gate-examples.md +669 -0
- claude_mpm/agents/templates/structured-questions-examples.md +615 -0
- claude_mpm/agents/templates/ticket-completeness-examples.md +139 -0
- claude_mpm/agents/templates/ticketing-examples.md +277 -0
- claude_mpm/cli/__init__.py +37 -2
- claude_mpm/cli/commands/__init__.py +2 -0
- claude_mpm/cli/commands/agent_source.py +774 -0
- claude_mpm/cli/commands/agent_state_manager.py +188 -30
- claude_mpm/cli/commands/agents.py +1128 -36
- claude_mpm/cli/commands/agents_cleanup.py +210 -0
- claude_mpm/cli/commands/agents_discover.py +338 -0
- claude_mpm/cli/commands/aggregate.py +1 -1
- claude_mpm/cli/commands/analyze.py +3 -3
- claude_mpm/cli/commands/auto_configure.py +537 -239
- claude_mpm/cli/commands/cleanup.py +1 -1
- claude_mpm/cli/commands/config.py +7 -4
- claude_mpm/cli/commands/configure.py +935 -45
- claude_mpm/cli/commands/configure_agent_display.py +4 -4
- claude_mpm/cli/commands/configure_navigation.py +63 -46
- claude_mpm/cli/commands/debug.py +12 -12
- claude_mpm/cli/commands/doctor.py +10 -2
- claude_mpm/cli/commands/hook_errors.py +277 -0
- claude_mpm/cli/commands/local_deploy.py +1 -4
- claude_mpm/cli/commands/mcp_install_commands.py +1 -1
- claude_mpm/cli/commands/mpm_init/core.py +50 -2
- claude_mpm/cli/commands/mpm_init/git_activity.py +10 -10
- claude_mpm/cli/commands/mpm_init/prompts.py +6 -6
- claude_mpm/cli/commands/postmortem.py +401 -0
- claude_mpm/cli/commands/run.py +125 -167
- claude_mpm/cli/commands/skill_source.py +694 -0
- claude_mpm/cli/commands/skills.py +757 -20
- claude_mpm/cli/executor.py +78 -3
- claude_mpm/cli/interactive/agent_wizard.py +1032 -47
- claude_mpm/cli/parsers/agent_source_parser.py +171 -0
- claude_mpm/cli/parsers/agents_parser.py +310 -4
- claude_mpm/cli/parsers/auto_configure_parser.py +13 -0
- claude_mpm/cli/parsers/base_parser.py +53 -0
- claude_mpm/cli/parsers/config_parser.py +96 -43
- claude_mpm/cli/parsers/skill_source_parser.py +169 -0
- claude_mpm/cli/parsers/skills_parser.py +145 -0
- claude_mpm/cli/parsers/source_parser.py +138 -0
- claude_mpm/cli/startup.py +564 -108
- claude_mpm/cli/startup_display.py +480 -0
- claude_mpm/cli/utils.py +1 -1
- claude_mpm/cli_module/commands.py +1 -1
- claude_mpm/commands/{mpm-auto-configure.md → mpm-agents-auto-configure.md} +9 -0
- claude_mpm/commands/mpm-agents-detect.md +9 -0
- claude_mpm/commands/{mpm-agents.md → mpm-agents-list.md} +9 -0
- claude_mpm/commands/mpm-agents-recommend.md +9 -0
- claude_mpm/commands/{mpm-config.md → mpm-config-view.md} +9 -0
- claude_mpm/commands/mpm-doctor.md +9 -0
- claude_mpm/commands/mpm-help.md +14 -2
- claude_mpm/commands/mpm-init.md +27 -2
- claude_mpm/commands/mpm-monitor.md +9 -0
- claude_mpm/commands/mpm-postmortem.md +123 -0
- claude_mpm/commands/{mpm-resume.md → mpm-session-resume.md} +9 -0
- claude_mpm/commands/mpm-status.md +9 -0
- claude_mpm/commands/{mpm-organize.md → mpm-ticket-organize.md} +9 -0
- claude_mpm/commands/mpm-ticket-view.md +552 -0
- claude_mpm/commands/mpm-version.md +9 -0
- claude_mpm/commands/mpm.md +10 -0
- claude_mpm/config/agent_presets.py +488 -0
- claude_mpm/config/agent_sources.py +325 -0
- claude_mpm/config/skill_presets.py +392 -0
- claude_mpm/config/skill_sources.py +590 -0
- claude_mpm/constants.py +13 -0
- claude_mpm/core/api_validator.py +1 -1
- claude_mpm/core/claude_runner.py +19 -35
- claude_mpm/core/config.py +24 -0
- claude_mpm/core/constants.py +1 -1
- claude_mpm/core/framework/__init__.py +3 -16
- claude_mpm/core/framework/loaders/file_loader.py +54 -101
- claude_mpm/core/framework/loaders/instruction_loader.py +25 -5
- claude_mpm/core/framework/processors/metadata_processor.py +1 -1
- claude_mpm/core/hook_error_memory.py +381 -0
- claude_mpm/core/hook_manager.py +41 -2
- claude_mpm/core/interactive_session.py +131 -10
- claude_mpm/core/logger.py +3 -1
- claude_mpm/core/oneshot_session.py +110 -8
- claude_mpm/core/output_style_manager.py +173 -43
- claude_mpm/core/protocols/__init__.py +23 -0
- claude_mpm/core/protocols/runner_protocol.py +103 -0
- claude_mpm/core/protocols/session_protocol.py +131 -0
- claude_mpm/core/shared/singleton_manager.py +11 -4
- claude_mpm/core/system_context.py +38 -0
- claude_mpm/core/unified_agent_registry.py +129 -1
- claude_mpm/core/unified_config.py +22 -0
- claude_mpm/dashboard/static/css/activity.css +69 -69
- claude_mpm/dashboard/static/css/connection-status.css +10 -10
- claude_mpm/dashboard/static/css/dashboard.css +15 -15
- claude_mpm/dashboard/static/js/components/activity-tree.js +178 -178
- claude_mpm/dashboard/static/js/components/agent-hierarchy.js +101 -101
- claude_mpm/dashboard/static/js/components/agent-inference.js +31 -31
- claude_mpm/dashboard/static/js/components/build-tracker.js +59 -59
- claude_mpm/dashboard/static/js/components/code-simple.js +107 -107
- claude_mpm/dashboard/static/js/components/connection-debug.js +101 -101
- claude_mpm/dashboard/static/js/components/diff-viewer.js +113 -113
- claude_mpm/dashboard/static/js/components/event-viewer.js +12 -12
- claude_mpm/dashboard/static/js/components/file-change-tracker.js +57 -57
- claude_mpm/dashboard/static/js/components/file-change-viewer.js +74 -74
- claude_mpm/dashboard/static/js/components/file-tool-tracker.js +6 -6
- claude_mpm/dashboard/static/js/components/file-viewer.js +42 -42
- claude_mpm/dashboard/static/js/components/module-viewer.js +27 -27
- claude_mpm/dashboard/static/js/components/session-manager.js +14 -14
- claude_mpm/dashboard/static/js/components/socket-manager.js +1 -1
- claude_mpm/dashboard/static/js/components/ui-state-manager.js +14 -14
- claude_mpm/dashboard/static/js/components/unified-data-viewer.js +110 -110
- claude_mpm/dashboard/static/js/components/working-directory.js +8 -8
- claude_mpm/dashboard/static/js/connection-manager.js +76 -76
- claude_mpm/dashboard/static/js/dashboard.js +76 -58
- claude_mpm/dashboard/static/js/extension-error-handler.js +22 -22
- claude_mpm/dashboard/static/js/socket-client.js +138 -121
- claude_mpm/dashboard/templates/code_simple.html +23 -23
- claude_mpm/dashboard/templates/index.html +18 -18
- claude_mpm/experimental/cli_enhancements.py +1 -5
- claude_mpm/hooks/claude_hooks/event_handlers.py +3 -1
- claude_mpm/hooks/claude_hooks/hook_handler.py +24 -7
- claude_mpm/hooks/claude_hooks/installer.py +45 -0
- claude_mpm/hooks/claude_hooks/memory_integration.py +12 -1
- claude_mpm/hooks/failure_learning/__init__.py +2 -8
- claude_mpm/hooks/failure_learning/failure_detection_hook.py +1 -6
- claude_mpm/hooks/failure_learning/fix_detection_hook.py +1 -6
- claude_mpm/hooks/failure_learning/learning_extraction_hook.py +1 -6
- claude_mpm/hooks/kuzu_response_hook.py +1 -5
- claude_mpm/hooks/templates/pre_tool_use_simple.py +78 -0
- claude_mpm/hooks/templates/pre_tool_use_template.py +323 -0
- claude_mpm/models/agent_definition.py +7 -0
- claude_mpm/models/git_repository.py +198 -0
- claude_mpm/scripts/claude-hook-handler.sh +3 -3
- claude_mpm/scripts/start_activity_logging.py +3 -1
- claude_mpm/services/agents/agent_builder.py +45 -9
- claude_mpm/services/agents/agent_preset_service.py +238 -0
- claude_mpm/services/agents/agent_selection_service.py +484 -0
- claude_mpm/services/agents/auto_deploy_index_parser.py +569 -0
- claude_mpm/services/agents/cache_git_manager.py +621 -0
- claude_mpm/services/agents/deployment/agent_deployment.py +126 -2
- claude_mpm/services/agents/deployment/agent_discovery_service.py +105 -73
- claude_mpm/services/agents/deployment/agent_format_converter.py +1 -1
- claude_mpm/services/agents/deployment/agent_lifecycle_manager.py +1 -5
- claude_mpm/services/agents/deployment/agent_metrics_collector.py +3 -3
- claude_mpm/services/agents/deployment/agent_restore_handler.py +1 -4
- claude_mpm/services/agents/deployment/agent_template_builder.py +236 -15
- claude_mpm/services/agents/deployment/agents_directory_resolver.py +101 -15
- claude_mpm/services/agents/deployment/async_agent_deployment.py +2 -1
- claude_mpm/services/agents/deployment/facade/deployment_facade.py +3 -3
- claude_mpm/services/agents/deployment/multi_source_deployment_service.py +225 -18
- claude_mpm/services/agents/deployment/pipeline/pipeline_executor.py +2 -2
- claude_mpm/services/agents/deployment/refactored_agent_deployment_service.py +1 -4
- claude_mpm/services/agents/deployment/remote_agent_discovery_service.py +557 -0
- claude_mpm/services/agents/deployment/single_agent_deployer.py +2 -2
- claude_mpm/services/agents/deployment/system_instructions_deployer.py +168 -46
- claude_mpm/services/agents/deployment/validation/deployment_validator.py +2 -2
- claude_mpm/services/agents/git_source_manager.py +629 -0
- claude_mpm/services/agents/loading/framework_agent_loader.py +9 -12
- claude_mpm/services/agents/local_template_manager.py +50 -10
- claude_mpm/services/agents/single_tier_deployment_service.py +696 -0
- claude_mpm/services/agents/sources/__init__.py +13 -0
- claude_mpm/services/agents/sources/agent_sync_state.py +516 -0
- claude_mpm/services/agents/sources/git_source_sync_service.py +1087 -0
- claude_mpm/services/agents/startup_sync.py +239 -0
- claude_mpm/services/agents/toolchain_detector.py +474 -0
- claude_mpm/services/analysis/__init__.py +25 -0
- claude_mpm/services/analysis/postmortem_reporter.py +474 -0
- claude_mpm/services/analysis/postmortem_service.py +765 -0
- claude_mpm/services/cli/session_pause_manager.py +1 -1
- claude_mpm/services/cli/unified_dashboard_manager.py +1 -1
- claude_mpm/services/command_deployment_service.py +200 -6
- claude_mpm/services/core/base.py +7 -2
- claude_mpm/services/core/interfaces/__init__.py +1 -3
- claude_mpm/services/core/interfaces/health.py +1 -4
- claude_mpm/services/core/models/__init__.py +2 -11
- claude_mpm/services/diagnostics/checks/__init__.py +4 -0
- claude_mpm/services/diagnostics/checks/agent_check.py +0 -2
- claude_mpm/services/diagnostics/checks/agent_sources_check.py +577 -0
- claude_mpm/services/diagnostics/checks/instructions_check.py +1 -2
- claude_mpm/services/diagnostics/checks/mcp_check.py +0 -1
- claude_mpm/services/diagnostics/checks/mcp_services_check.py +7 -15
- claude_mpm/services/diagnostics/checks/monitor_check.py +0 -1
- claude_mpm/services/diagnostics/checks/skill_sources_check.py +587 -0
- claude_mpm/services/diagnostics/diagnostic_runner.py +9 -0
- claude_mpm/services/diagnostics/doctor_reporter.py +40 -10
- claude_mpm/services/event_bus/direct_relay.py +3 -3
- claude_mpm/services/event_bus/event_bus.py +36 -3
- claude_mpm/services/events/consumers/logging.py +1 -2
- claude_mpm/services/git/__init__.py +21 -0
- claude_mpm/services/git/git_operations_service.py +494 -0
- claude_mpm/services/github/__init__.py +21 -0
- claude_mpm/services/github/github_cli_service.py +397 -0
- claude_mpm/services/infrastructure/monitoring/__init__.py +1 -5
- claude_mpm/services/infrastructure/monitoring/aggregator.py +1 -6
- claude_mpm/services/infrastructure/monitoring/resources.py +1 -1
- claude_mpm/services/instructions/__init__.py +9 -0
- claude_mpm/services/instructions/instruction_cache_service.py +374 -0
- claude_mpm/services/local_ops/__init__.py +3 -13
- claude_mpm/services/local_ops/health_checks/__init__.py +1 -3
- claude_mpm/services/local_ops/health_manager.py +1 -4
- claude_mpm/services/local_ops/process_manager.py +1 -1
- claude_mpm/services/local_ops/resource_monitor.py +2 -2
- claude_mpm/services/mcp_config_manager.py +75 -145
- claude_mpm/services/mcp_gateway/config/configuration.py +1 -1
- claude_mpm/services/mcp_gateway/core/process_pool.py +22 -16
- claude_mpm/services/mcp_gateway/server/mcp_gateway.py +1 -6
- claude_mpm/services/mcp_gateway/server/stdio_server.py +0 -2
- claude_mpm/services/mcp_gateway/tools/document_summarizer.py +1 -1
- claude_mpm/services/mcp_gateway/tools/kuzu_memory_service.py +6 -2
- claude_mpm/services/mcp_service_verifier.py +6 -3
- claude_mpm/services/memory/optimizer.py +1 -1
- claude_mpm/services/model/model_router.py +8 -9
- claude_mpm/services/monitor/daemon.py +29 -9
- claude_mpm/services/monitor/daemon_manager.py +96 -19
- claude_mpm/services/monitor/server.py +2 -2
- claude_mpm/services/native_agent_converter.py +356 -0
- claude_mpm/services/port_manager.py +1 -1
- claude_mpm/services/pr/__init__.py +14 -0
- claude_mpm/services/pr/pr_template_service.py +329 -0
- claude_mpm/services/project/documentation_manager.py +2 -1
- claude_mpm/services/project/project_organizer.py +4 -0
- claude_mpm/services/project/toolchain_analyzer.py +3 -1
- claude_mpm/services/runner_configuration_service.py +17 -3
- claude_mpm/services/self_upgrade_service.py +165 -7
- claude_mpm/services/session_management_service.py +16 -4
- claude_mpm/services/skills/__init__.py +18 -0
- claude_mpm/services/skills/git_skill_source_manager.py +1169 -0
- claude_mpm/services/skills/skill_discovery_service.py +568 -0
- claude_mpm/services/skills_config.py +547 -0
- claude_mpm/services/skills_deployer.py +955 -0
- claude_mpm/services/socketio/handlers/connection.py +1 -1
- claude_mpm/services/socketio/handlers/git.py +2 -2
- claude_mpm/services/socketio/server/core.py +1 -4
- claude_mpm/services/socketio/server/main.py +1 -3
- claude_mpm/services/system_instructions_service.py +1 -3
- claude_mpm/services/unified/analyzer_strategies/performance_analyzer.py +0 -3
- claude_mpm/services/unified/analyzer_strategies/security_analyzer.py +0 -1
- claude_mpm/services/unified/deployment_strategies/cloud_strategies.py +1 -1
- claude_mpm/services/unified/deployment_strategies/vercel.py +1 -5
- claude_mpm/services/unified/unified_deployment.py +1 -5
- claude_mpm/services/version_control/conflict_resolution.py +6 -4
- claude_mpm/services/visualization/__init__.py +1 -5
- claude_mpm/services/visualization/mermaid_generator.py +2 -3
- claude_mpm/skills/bundled/infrastructure/env-manager/scripts/validate_env.py +576 -0
- claude_mpm/skills/bundled/performance-profiling.md +6 -0
- claude_mpm/skills/bundled/testing/webapp-testing/scripts/with_server.py +2 -2
- claude_mpm/skills/skills_registry.py +0 -1
- claude_mpm/templates/questions/__init__.py +38 -0
- claude_mpm/templates/questions/base.py +193 -0
- claude_mpm/templates/questions/pr_strategy.py +311 -0
- claude_mpm/templates/questions/project_init.py +385 -0
- claude_mpm/templates/questions/ticket_mgmt.py +394 -0
- claude_mpm/tools/__main__.py +8 -8
- claude_mpm/tools/code_tree_analyzer/analysis.py +1 -1
- claude_mpm/utils/agent_dependency_loader.py +80 -13
- claude_mpm/utils/agent_filters.py +288 -0
- claude_mpm/utils/dependency_cache.py +3 -1
- claude_mpm/utils/gitignore.py +244 -0
- claude_mpm/utils/log_cleanup.py +3 -3
- claude_mpm/utils/migration.py +372 -0
- claude_mpm/utils/progress.py +387 -0
- claude_mpm/utils/robust_installer.py +3 -5
- claude_mpm/utils/structured_questions.py +619 -0
- {claude_mpm-4.21.3.dist-info → claude_mpm-5.1.9.dist-info}/METADATA +496 -65
- {claude_mpm-4.21.3.dist-info → claude_mpm-5.1.9.dist-info}/RECORD +284 -443
- claude_mpm/agents/templates/.claude-mpm/memories/README.md +0 -17
- claude_mpm/agents/templates/.claude-mpm/memories/engineer_memories.md +0 -3
- claude_mpm/agents/templates/agent-manager.json +0 -273
- claude_mpm/agents/templates/agentic-coder-optimizer.json +0 -248
- claude_mpm/agents/templates/api_qa.json +0 -180
- claude_mpm/agents/templates/circuit_breakers.md +0 -638
- claude_mpm/agents/templates/clerk-ops.json +0 -235
- claude_mpm/agents/templates/code_analyzer.json +0 -101
- claude_mpm/agents/templates/content-agent.json +0 -358
- claude_mpm/agents/templates/dart_engineer.json +0 -307
- claude_mpm/agents/templates/data_engineer.json +0 -225
- claude_mpm/agents/templates/documentation.json +0 -211
- claude_mpm/agents/templates/engineer.json +0 -210
- claude_mpm/agents/templates/gcp_ops_agent.json +0 -253
- claude_mpm/agents/templates/golang_engineer.json +0 -270
- claude_mpm/agents/templates/imagemagick.json +0 -264
- claude_mpm/agents/templates/java_engineer.json +0 -346
- claude_mpm/agents/templates/local_ops_agent.json +0 -1840
- claude_mpm/agents/templates/logs/prompts/agent_engineer_20250826_014258_728.md +0 -39
- claude_mpm/agents/templates/logs/prompts/agent_engineer_20250901_010124_142.md +0 -400
- claude_mpm/agents/templates/memory_manager.json +0 -158
- claude_mpm/agents/templates/nextjs_engineer.json +0 -285
- claude_mpm/agents/templates/ops.json +0 -185
- claude_mpm/agents/templates/php-engineer.json +0 -287
- claude_mpm/agents/templates/product_owner.json +0 -338
- claude_mpm/agents/templates/project_organizer.json +0 -140
- claude_mpm/agents/templates/prompt-engineer.json +0 -737
- claude_mpm/agents/templates/python_engineer.json +0 -387
- claude_mpm/agents/templates/qa.json +0 -242
- claude_mpm/agents/templates/react_engineer.json +0 -238
- claude_mpm/agents/templates/refactoring_engineer.json +0 -276
- claude_mpm/agents/templates/research.json +0 -188
- claude_mpm/agents/templates/ruby-engineer.json +0 -280
- claude_mpm/agents/templates/rust_engineer.json +0 -275
- claude_mpm/agents/templates/security.json +0 -202
- claude_mpm/agents/templates/svelte-engineer.json +0 -225
- claude_mpm/agents/templates/ticketing.json +0 -177
- claude_mpm/agents/templates/typescript_engineer.json +0 -285
- claude_mpm/agents/templates/vercel_ops_agent.json +0 -412
- claude_mpm/agents/templates/version_control.json +0 -157
- claude_mpm/agents/templates/web_qa.json +0 -399
- claude_mpm/agents/templates/web_ui.json +0 -189
- claude_mpm/commands/mpm-tickets.md +0 -102
- claude_mpm/dashboard/.claude-mpm/socketio-instances.json +0 -1
- claude_mpm/dashboard/react/components/DataInspector/DataInspector.module.css +0 -188
- claude_mpm/dashboard/react/components/EventViewer/EventViewer.module.css +0 -156
- claude_mpm/dashboard/react/components/shared/ConnectionStatus.module.css +0 -38
- claude_mpm/dashboard/react/components/shared/FilterBar.module.css +0 -92
- claude_mpm/dashboard/static/archive/activity_dashboard_fixed.html +0 -248
- claude_mpm/dashboard/static/archive/activity_dashboard_test.html +0 -61
- claude_mpm/dashboard/static/archive/test_activity_connection.html +0 -179
- claude_mpm/dashboard/static/archive/test_claude_tree_tab.html +0 -68
- claude_mpm/dashboard/static/archive/test_dashboard.html +0 -409
- claude_mpm/dashboard/static/archive/test_dashboard_fixed.html +0 -519
- claude_mpm/dashboard/static/archive/test_dashboard_verification.html +0 -181
- claude_mpm/dashboard/static/archive/test_file_data.html +0 -315
- claude_mpm/dashboard/static/archive/test_file_tree_empty_state.html +0 -243
- claude_mpm/dashboard/static/archive/test_file_tree_fix.html +0 -234
- claude_mpm/dashboard/static/archive/test_file_tree_rename.html +0 -117
- claude_mpm/dashboard/static/archive/test_file_tree_tab.html +0 -115
- claude_mpm/dashboard/static/archive/test_file_viewer.html +0 -224
- claude_mpm/dashboard/static/archive/test_final_activity.html +0 -220
- claude_mpm/dashboard/static/archive/test_tab_fix.html +0 -139
- claude_mpm/dashboard/static/built/assets/events.DjpNxWNo.css +0 -1
- claude_mpm/dashboard/static/built/components/activity-tree.js +0 -2
- claude_mpm/dashboard/static/built/components/agent-hierarchy.js +0 -777
- claude_mpm/dashboard/static/built/components/agent-inference.js +0 -2
- claude_mpm/dashboard/static/built/components/build-tracker.js +0 -333
- claude_mpm/dashboard/static/built/components/code-simple.js +0 -857
- claude_mpm/dashboard/static/built/components/code-tree/tree-breadcrumb.js +0 -353
- claude_mpm/dashboard/static/built/components/code-tree/tree-constants.js +0 -235
- claude_mpm/dashboard/static/built/components/code-tree/tree-search.js +0 -409
- claude_mpm/dashboard/static/built/components/code-tree/tree-utils.js +0 -435
- claude_mpm/dashboard/static/built/components/code-tree.js +0 -2
- claude_mpm/dashboard/static/built/components/code-viewer.js +0 -2
- claude_mpm/dashboard/static/built/components/connection-debug.js +0 -654
- claude_mpm/dashboard/static/built/components/diff-viewer.js +0 -891
- claude_mpm/dashboard/static/built/components/event-processor.js +0 -2
- claude_mpm/dashboard/static/built/components/event-viewer.js +0 -2
- claude_mpm/dashboard/static/built/components/export-manager.js +0 -2
- claude_mpm/dashboard/static/built/components/file-change-tracker.js +0 -443
- claude_mpm/dashboard/static/built/components/file-change-viewer.js +0 -690
- claude_mpm/dashboard/static/built/components/file-tool-tracker.js +0 -2
- claude_mpm/dashboard/static/built/components/file-viewer.js +0 -2
- claude_mpm/dashboard/static/built/components/hud-library-loader.js +0 -2
- claude_mpm/dashboard/static/built/components/hud-manager.js +0 -2
- claude_mpm/dashboard/static/built/components/hud-visualizer.js +0 -2
- claude_mpm/dashboard/static/built/components/module-viewer.js +0 -2
- claude_mpm/dashboard/static/built/components/nav-bar.js +0 -145
- claude_mpm/dashboard/static/built/components/page-structure.js +0 -429
- claude_mpm/dashboard/static/built/components/session-manager.js +0 -2
- claude_mpm/dashboard/static/built/components/socket-manager.js +0 -2
- claude_mpm/dashboard/static/built/components/ui-state-manager.js +0 -2
- claude_mpm/dashboard/static/built/components/unified-data-viewer.js +0 -2
- claude_mpm/dashboard/static/built/components/working-directory.js +0 -2
- claude_mpm/dashboard/static/built/connection-manager.js +0 -536
- claude_mpm/dashboard/static/built/dashboard.js +0 -2
- claude_mpm/dashboard/static/built/extension-error-handler.js +0 -164
- claude_mpm/dashboard/static/built/react/events.js +0 -30
- claude_mpm/dashboard/static/built/shared/dom-helpers.js +0 -396
- claude_mpm/dashboard/static/built/shared/event-bus.js +0 -330
- claude_mpm/dashboard/static/built/shared/event-filter-service.js +0 -540
- claude_mpm/dashboard/static/built/shared/logger.js +0 -385
- claude_mpm/dashboard/static/built/shared/page-structure.js +0 -249
- claude_mpm/dashboard/static/built/shared/tooltip-service.js +0 -253
- claude_mpm/dashboard/static/built/socket-client.js +0 -2
- claude_mpm/dashboard/static/built/tab-isolation-fix.js +0 -185
- claude_mpm/dashboard/static/dist/assets/events.DjpNxWNo.css +0 -1
- claude_mpm/dashboard/static/dist/components/activity-tree.js +0 -2
- claude_mpm/dashboard/static/dist/components/agent-inference.js +0 -2
- claude_mpm/dashboard/static/dist/components/code-tree.js +0 -2
- claude_mpm/dashboard/static/dist/components/code-viewer.js +0 -2
- claude_mpm/dashboard/static/dist/components/event-processor.js +0 -2
- claude_mpm/dashboard/static/dist/components/event-viewer.js +0 -2
- claude_mpm/dashboard/static/dist/components/export-manager.js +0 -2
- claude_mpm/dashboard/static/dist/components/file-tool-tracker.js +0 -2
- claude_mpm/dashboard/static/dist/components/file-viewer.js +0 -2
- claude_mpm/dashboard/static/dist/components/hud-library-loader.js +0 -2
- claude_mpm/dashboard/static/dist/components/hud-manager.js +0 -2
- claude_mpm/dashboard/static/dist/components/hud-visualizer.js +0 -2
- claude_mpm/dashboard/static/dist/components/module-viewer.js +0 -2
- claude_mpm/dashboard/static/dist/components/session-manager.js +0 -2
- claude_mpm/dashboard/static/dist/components/socket-manager.js +0 -2
- claude_mpm/dashboard/static/dist/components/ui-state-manager.js +0 -2
- claude_mpm/dashboard/static/dist/components/unified-data-viewer.js +0 -2
- claude_mpm/dashboard/static/dist/components/working-directory.js +0 -2
- claude_mpm/dashboard/static/dist/dashboard.js +0 -2
- claude_mpm/dashboard/static/dist/react/events.js +0 -30
- claude_mpm/dashboard/static/dist/socket-client.js +0 -2
- claude_mpm/dashboard/static/events.html +0 -607
- claude_mpm/dashboard/static/index.html +0 -635
- claude_mpm/dashboard/static/js/shared/dom-helpers.js +0 -396
- claude_mpm/dashboard/static/js/shared/event-bus.js +0 -330
- claude_mpm/dashboard/static/js/shared/logger.js +0 -385
- claude_mpm/dashboard/static/js/shared/tooltip-service.js +0 -253
- claude_mpm/dashboard/static/js/stores/dashboard-store.js +0 -562
- claude_mpm/dashboard/static/legacy/activity.html +0 -736
- claude_mpm/dashboard/static/legacy/agents.html +0 -786
- claude_mpm/dashboard/static/legacy/files.html +0 -747
- claude_mpm/dashboard/static/legacy/tools.html +0 -831
- claude_mpm/dashboard/static/monitors.html +0 -431
- claude_mpm/dashboard/static/production/events.html +0 -659
- claude_mpm/dashboard/static/production/main.html +0 -698
- claude_mpm/dashboard/static/production/monitors.html +0 -483
- claude_mpm/dashboard/static/test-archive/dashboard.html +0 -635
- claude_mpm/dashboard/static/test-archive/debug-events.html +0 -147
- claude_mpm/dashboard/static/test-archive/test-navigation.html +0 -256
- claude_mpm/dashboard/static/test-archive/test-react-exports.html +0 -180
- claude_mpm/dashboard/static/test-archive/test_debug.html +0 -25
- claude_mpm/skills/bundled/collaboration/brainstorming/SKILL.md +0 -79
- claude_mpm/skills/bundled/collaboration/dispatching-parallel-agents/SKILL.md +0 -178
- claude_mpm/skills/bundled/collaboration/dispatching-parallel-agents/references/agent-prompts.md +0 -577
- claude_mpm/skills/bundled/collaboration/dispatching-parallel-agents/references/coordination-patterns.md +0 -467
- claude_mpm/skills/bundled/collaboration/dispatching-parallel-agents/references/examples.md +0 -537
- claude_mpm/skills/bundled/collaboration/dispatching-parallel-agents/references/troubleshooting.md +0 -730
- claude_mpm/skills/bundled/collaboration/requesting-code-review/SKILL.md +0 -112
- claude_mpm/skills/bundled/collaboration/requesting-code-review/references/code-reviewer-template.md +0 -146
- claude_mpm/skills/bundled/collaboration/requesting-code-review/references/review-examples.md +0 -412
- claude_mpm/skills/bundled/collaboration/writing-plans/SKILL.md +0 -81
- claude_mpm/skills/bundled/collaboration/writing-plans/references/best-practices.md +0 -362
- claude_mpm/skills/bundled/collaboration/writing-plans/references/plan-structure-templates.md +0 -312
- claude_mpm/skills/bundled/debugging/root-cause-tracing/SKILL.md +0 -152
- claude_mpm/skills/bundled/debugging/root-cause-tracing/references/advanced-techniques.md +0 -668
- claude_mpm/skills/bundled/debugging/root-cause-tracing/references/examples.md +0 -587
- claude_mpm/skills/bundled/debugging/root-cause-tracing/references/integration.md +0 -438
- claude_mpm/skills/bundled/debugging/root-cause-tracing/references/tracing-techniques.md +0 -391
- claude_mpm/skills/bundled/debugging/systematic-debugging/CREATION-LOG.md +0 -119
- claude_mpm/skills/bundled/debugging/systematic-debugging/SKILL.md +0 -148
- claude_mpm/skills/bundled/debugging/systematic-debugging/references/anti-patterns.md +0 -483
- claude_mpm/skills/bundled/debugging/systematic-debugging/references/examples.md +0 -452
- claude_mpm/skills/bundled/debugging/systematic-debugging/references/troubleshooting.md +0 -449
- claude_mpm/skills/bundled/debugging/systematic-debugging/references/workflow.md +0 -411
- claude_mpm/skills/bundled/debugging/systematic-debugging/test-academic.md +0 -14
- claude_mpm/skills/bundled/debugging/systematic-debugging/test-pressure-1.md +0 -58
- claude_mpm/skills/bundled/debugging/systematic-debugging/test-pressure-2.md +0 -68
- claude_mpm/skills/bundled/debugging/systematic-debugging/test-pressure-3.md +0 -69
- claude_mpm/skills/bundled/debugging/verification-before-completion/SKILL.md +0 -131
- claude_mpm/skills/bundled/debugging/verification-before-completion/references/gate-function.md +0 -325
- claude_mpm/skills/bundled/debugging/verification-before-completion/references/integration-and-workflows.md +0 -490
- claude_mpm/skills/bundled/debugging/verification-before-completion/references/red-flags-and-failures.md +0 -425
- claude_mpm/skills/bundled/debugging/verification-before-completion/references/verification-patterns.md +0 -499
- claude_mpm/skills/bundled/main/artifacts-builder/SKILL.md +0 -86
- claude_mpm/skills/bundled/main/internal-comms/SKILL.md +0 -43
- claude_mpm/skills/bundled/main/internal-comms/examples/3p-updates.md +0 -47
- claude_mpm/skills/bundled/main/internal-comms/examples/company-newsletter.md +0 -65
- claude_mpm/skills/bundled/main/internal-comms/examples/faq-answers.md +0 -30
- claude_mpm/skills/bundled/main/internal-comms/examples/general-comms.md +0 -16
- claude_mpm/skills/bundled/main/mcp-builder/SKILL.md +0 -160
- claude_mpm/skills/bundled/main/mcp-builder/reference/design_principles.md +0 -412
- claude_mpm/skills/bundled/main/mcp-builder/reference/evaluation.md +0 -602
- claude_mpm/skills/bundled/main/mcp-builder/reference/mcp_best_practices.md +0 -915
- claude_mpm/skills/bundled/main/mcp-builder/reference/node_mcp_server.md +0 -916
- claude_mpm/skills/bundled/main/mcp-builder/reference/python_mcp_server.md +0 -752
- claude_mpm/skills/bundled/main/mcp-builder/reference/workflow.md +0 -1237
- claude_mpm/skills/bundled/main/skill-creator/SKILL.md +0 -189
- claude_mpm/skills/bundled/main/skill-creator/references/best-practices.md +0 -500
- claude_mpm/skills/bundled/main/skill-creator/references/creation-workflow.md +0 -464
- claude_mpm/skills/bundled/main/skill-creator/references/examples.md +0 -619
- claude_mpm/skills/bundled/main/skill-creator/references/progressive-disclosure.md +0 -437
- claude_mpm/skills/bundled/main/skill-creator/references/skill-structure.md +0 -231
- claude_mpm/skills/bundled/php/espocrm-development/SKILL.md +0 -170
- claude_mpm/skills/bundled/php/espocrm-development/references/architecture.md +0 -602
- claude_mpm/skills/bundled/php/espocrm-development/references/common-tasks.md +0 -821
- claude_mpm/skills/bundled/php/espocrm-development/references/development-workflow.md +0 -742
- claude_mpm/skills/bundled/php/espocrm-development/references/frontend-customization.md +0 -726
- claude_mpm/skills/bundled/php/espocrm-development/references/hooks-and-services.md +0 -764
- claude_mpm/skills/bundled/php/espocrm-development/references/testing-debugging.md +0 -831
- claude_mpm/skills/bundled/rust/desktop-applications/SKILL.md +0 -226
- claude_mpm/skills/bundled/rust/desktop-applications/references/architecture-patterns.md +0 -901
- claude_mpm/skills/bundled/rust/desktop-applications/references/native-gui-frameworks.md +0 -901
- claude_mpm/skills/bundled/rust/desktop-applications/references/platform-integration.md +0 -775
- claude_mpm/skills/bundled/rust/desktop-applications/references/state-management.md +0 -937
- claude_mpm/skills/bundled/rust/desktop-applications/references/tauri-framework.md +0 -770
- claude_mpm/skills/bundled/rust/desktop-applications/references/testing-deployment.md +0 -961
- claude_mpm/skills/bundled/testing/condition-based-waiting/SKILL.md +0 -119
- claude_mpm/skills/bundled/testing/condition-based-waiting/references/patterns-and-implementation.md +0 -253
- claude_mpm/skills/bundled/testing/test-driven-development/SKILL.md +0 -145
- claude_mpm/skills/bundled/testing/test-driven-development/references/anti-patterns.md +0 -543
- claude_mpm/skills/bundled/testing/test-driven-development/references/examples.md +0 -741
- claude_mpm/skills/bundled/testing/test-driven-development/references/integration.md +0 -470
- claude_mpm/skills/bundled/testing/test-driven-development/references/philosophy.md +0 -458
- claude_mpm/skills/bundled/testing/test-driven-development/references/workflow.md +0 -639
- claude_mpm/skills/bundled/testing/testing-anti-patterns/SKILL.md +0 -140
- claude_mpm/skills/bundled/testing/testing-anti-patterns/references/completeness-anti-patterns.md +0 -572
- claude_mpm/skills/bundled/testing/testing-anti-patterns/references/core-anti-patterns.md +0 -411
- claude_mpm/skills/bundled/testing/testing-anti-patterns/references/detection-guide.md +0 -569
- claude_mpm/skills/bundled/testing/testing-anti-patterns/references/tdd-connection.md +0 -695
- claude_mpm/skills/bundled/testing/webapp-testing/SKILL.md +0 -184
- claude_mpm/skills/bundled/testing/webapp-testing/decision-tree.md +0 -459
- claude_mpm/skills/bundled/testing/webapp-testing/playwright-patterns.md +0 -479
- claude_mpm/skills/bundled/testing/webapp-testing/reconnaissance-pattern.md +0 -687
- claude_mpm/skills/bundled/testing/webapp-testing/server-management.md +0 -758
- claude_mpm/skills/bundled/testing/webapp-testing/troubleshooting.md +0 -868
- /claude_mpm/agents/templates/{git_file_tracking.md → git-file-tracking.md} +0 -0
- /claude_mpm/agents/templates/{pm_examples.md → pm-examples.md} +0 -0
- /claude_mpm/agents/templates/{response_format.md → response-format.md} +0 -0
- /claude_mpm/agents/templates/{validation_templates.md → validation-templates.md} +0 -0
- {claude_mpm-4.21.3.dist-info → claude_mpm-5.1.9.dist-info}/WHEEL +0 -0
- {claude_mpm-4.21.3.dist-info → claude_mpm-5.1.9.dist-info}/entry_points.txt +0 -0
- {claude_mpm-4.21.3.dist-info → claude_mpm-5.1.9.dist-info}/licenses/LICENSE +0 -0
- {claude_mpm-4.21.3.dist-info → claude_mpm-5.1.9.dist-info}/top_level.txt +0 -0
|
@@ -37,7 +37,7 @@ class SimpleCodeView {
|
|
|
37
37
|
this.container = null;
|
|
38
38
|
this.apiBase = window.location.origin;
|
|
39
39
|
console.log('[SimpleCodeView] API base:', this.apiBase);
|
|
40
|
-
|
|
40
|
+
|
|
41
41
|
// Tree view properties
|
|
42
42
|
this.currentView = 'directory';
|
|
43
43
|
this.socket = null;
|
|
@@ -52,16 +52,16 @@ class SimpleCodeView {
|
|
|
52
52
|
|
|
53
53
|
init(container) {
|
|
54
54
|
console.log('[SimpleCodeView.init] Starting with container:', container);
|
|
55
|
-
|
|
55
|
+
|
|
56
56
|
if (!container) {
|
|
57
57
|
console.error('[SimpleCodeView.init] No container provided!');
|
|
58
58
|
document.body.innerHTML += '<div style="color:red;font-size:20px;">ERROR: No container for SimpleCodeView</div>';
|
|
59
59
|
return;
|
|
60
60
|
}
|
|
61
|
-
|
|
61
|
+
|
|
62
62
|
this.container = container;
|
|
63
63
|
this.render();
|
|
64
|
-
|
|
64
|
+
|
|
65
65
|
// Load initial directory after a short delay to ensure DOM is ready
|
|
66
66
|
setTimeout(() => {
|
|
67
67
|
console.log('[SimpleCodeView.init] Loading initial directory after delay');
|
|
@@ -71,45 +71,45 @@ class SimpleCodeView {
|
|
|
71
71
|
|
|
72
72
|
render() {
|
|
73
73
|
console.log('[SimpleCodeView.render] Rendering UI');
|
|
74
|
-
|
|
74
|
+
|
|
75
75
|
const html = `
|
|
76
76
|
<div class="simple-code-view" style="padding: 20px;">
|
|
77
77
|
<h2>Simple Code Browser</h2>
|
|
78
|
-
|
|
78
|
+
|
|
79
79
|
<div class="view-toggle" style="margin: 10px 0; padding: 10px; background: #f0f0f0; border-radius: 4px;">
|
|
80
|
-
<button id="dir-view-btn" onclick="window.simpleCodeView.setView('directory')" class="active"
|
|
80
|
+
<button id="dir-view-btn" onclick="window.simpleCodeView.setView('directory')" class="active"
|
|
81
81
|
style="margin-right: 10px; padding: 8px 16px; border: 1px solid #ccc; background: #007cba; color: white; border-radius: 4px; cursor: pointer;">
|
|
82
82
|
📁 Directory View
|
|
83
83
|
</button>
|
|
84
|
-
<button id="tree-view-btn" onclick="window.simpleCodeView.setView('tree')"
|
|
84
|
+
<button id="tree-view-btn" onclick="window.simpleCodeView.setView('tree')"
|
|
85
85
|
style="padding: 8px 16px; border: 1px solid #ccc; background: #f9f9f9; color: #333; border-radius: 4px; cursor: pointer;">
|
|
86
86
|
🌳 Tree View
|
|
87
87
|
</button>
|
|
88
88
|
</div>
|
|
89
|
-
|
|
89
|
+
|
|
90
90
|
<div id="status-bar" style="padding: 10px; background: #e0e0e0; border-radius: 4px; margin-bottom: 10px;">
|
|
91
91
|
Status: Initializing...
|
|
92
92
|
</div>
|
|
93
|
-
|
|
93
|
+
|
|
94
94
|
<div class="path-bar" style="margin: 10px 0; padding: 10px; background: #f0f0f0; border-radius: 4px;">
|
|
95
|
-
<strong>Current Path:</strong>
|
|
95
|
+
<strong>Current Path:</strong>
|
|
96
96
|
<input type="text" id="path-input" value="${this.currentPath}" style="width: 50%; margin: 0 10px;">
|
|
97
97
|
<button id="load-btn" onclick="loadDir(document.getElementById('path-input').value)">Load</button>
|
|
98
98
|
<button id="up-btn" onclick="goUp()">Go Up</button>
|
|
99
99
|
</div>
|
|
100
|
-
|
|
100
|
+
|
|
101
101
|
<div id="error-display" style="display:none; padding: 10px; background: #fee; color: red; border: 1px solid #fcc; border-radius: 4px; margin: 10px 0;">
|
|
102
102
|
</div>
|
|
103
|
-
|
|
103
|
+
|
|
104
104
|
<div id="directory-contents" style="border: 1px solid #ccc; padding: 10px; min-height: 400px; background: white;">
|
|
105
105
|
<div style="color: #666;">Waiting to load directory...</div>
|
|
106
106
|
</div>
|
|
107
|
-
|
|
107
|
+
|
|
108
108
|
<div id="tree-view-container" style="display: none;">
|
|
109
109
|
<div class="file-selector" style="margin: 10px 0; padding: 10px; background: #f9f9f9; border-radius: 4px;">
|
|
110
|
-
<input type="text" id="file-path-input" placeholder="Enter file path to analyze (e.g., ./src/claude_mpm/core/framework_loader.py)"
|
|
110
|
+
<input type="text" id="file-path-input" placeholder="Enter file path to analyze (e.g., ./src/claude_mpm/core/framework_loader.py)"
|
|
111
111
|
style="width: 70%; padding: 8px; margin-right: 10px; border: 1px solid #ccc; border-radius: 4px;">
|
|
112
|
-
<button onclick="window.simpleCodeView.analyzeFile()"
|
|
112
|
+
<button onclick="window.simpleCodeView.analyzeFile()"
|
|
113
113
|
style="padding: 8px 16px; border: 1px solid #ccc; background: #28a745; color: white; border-radius: 4px; cursor: pointer;">
|
|
114
114
|
Analyze File
|
|
115
115
|
</button>
|
|
@@ -118,7 +118,7 @@ class SimpleCodeView {
|
|
|
118
118
|
<div style="padding: 20px; text-align: center; color: #666;">Enter a file path above and click "Analyze File" to view AST tree</div>
|
|
119
119
|
</div>
|
|
120
120
|
</div>
|
|
121
|
-
|
|
121
|
+
|
|
122
122
|
<div id="debug-info" style="margin-top: 10px; padding: 10px; background: #f9f9f9; font-family: monospace; font-size: 12px;">
|
|
123
123
|
<strong>Debug Info:</strong><br>
|
|
124
124
|
API Base: ${this.apiBase}<br>
|
|
@@ -127,10 +127,10 @@ class SimpleCodeView {
|
|
|
127
127
|
</div>
|
|
128
128
|
</div>
|
|
129
129
|
`;
|
|
130
|
-
|
|
130
|
+
|
|
131
131
|
this.container.innerHTML = html;
|
|
132
132
|
console.log('[SimpleCodeView.render] UI rendered');
|
|
133
|
-
|
|
133
|
+
|
|
134
134
|
this.updateStatus('UI Rendered - Ready to load directory', 'blue');
|
|
135
135
|
}
|
|
136
136
|
|
|
@@ -162,23 +162,23 @@ class SimpleCodeView {
|
|
|
162
162
|
|
|
163
163
|
async loadDirectory(path) {
|
|
164
164
|
console.log('[SimpleCodeView.loadDirectory] Loading path:', path);
|
|
165
|
-
|
|
165
|
+
|
|
166
166
|
this.currentPath = path;
|
|
167
167
|
this.hideError();
|
|
168
168
|
this.updateStatus(`Loading ${path}...`, 'blue');
|
|
169
|
-
|
|
169
|
+
|
|
170
170
|
// Update path input
|
|
171
171
|
const pathInput = document.getElementById('path-input');
|
|
172
172
|
if (pathInput) {
|
|
173
173
|
pathInput.value = path;
|
|
174
174
|
}
|
|
175
|
-
|
|
175
|
+
|
|
176
176
|
// Update debug info
|
|
177
177
|
const debugDiv = document.getElementById('debug-info');
|
|
178
178
|
const contentsDiv = document.getElementById('directory-contents');
|
|
179
|
-
|
|
179
|
+
|
|
180
180
|
const apiUrl = `${this.apiBase}/api/directory/list?path=${encodeURIComponent(path)}`;
|
|
181
|
-
|
|
181
|
+
|
|
182
182
|
if (debugDiv) {
|
|
183
183
|
debugDiv.innerHTML = `
|
|
184
184
|
<strong>Debug Info:</strong><br>
|
|
@@ -187,20 +187,20 @@ class SimpleCodeView {
|
|
|
187
187
|
Status: Fetching...
|
|
188
188
|
`;
|
|
189
189
|
}
|
|
190
|
-
|
|
190
|
+
|
|
191
191
|
try {
|
|
192
192
|
console.log('[SimpleCodeView.loadDirectory] Fetching:', apiUrl);
|
|
193
|
-
|
|
193
|
+
|
|
194
194
|
const response = await fetch(apiUrl);
|
|
195
195
|
console.log('[SimpleCodeView.loadDirectory] Response status:', response.status);
|
|
196
|
-
|
|
196
|
+
|
|
197
197
|
if (!response.ok) {
|
|
198
198
|
throw new Error(`HTTP ${response.status}: ${response.statusText}`);
|
|
199
199
|
}
|
|
200
|
-
|
|
200
|
+
|
|
201
201
|
const data = await response.json();
|
|
202
202
|
console.log('[SimpleCodeView.loadDirectory] Data received:', data);
|
|
203
|
-
|
|
203
|
+
|
|
204
204
|
// Update debug info with response and filtering status
|
|
205
205
|
if (debugDiv) {
|
|
206
206
|
let debugContent = `
|
|
@@ -211,7 +211,7 @@ class SimpleCodeView {
|
|
|
211
211
|
Is Directory: ${data.is_directory}<br>
|
|
212
212
|
Item Count: ${data.contents ? data.contents.length : 0}<br>
|
|
213
213
|
`;
|
|
214
|
-
|
|
214
|
+
|
|
215
215
|
// Add filtering information
|
|
216
216
|
if (data.filtered) {
|
|
217
217
|
debugContent += `<strong>Filtering:</strong> ${data.filter_info || 'Filtered view'}<br>`;
|
|
@@ -219,17 +219,17 @@ class SimpleCodeView {
|
|
|
219
219
|
debugContent += `<strong>Items:</strong> ${data.summary.directories} directories, ${data.summary.code_files} code files<br>`;
|
|
220
220
|
}
|
|
221
221
|
}
|
|
222
|
-
|
|
222
|
+
|
|
223
223
|
debugContent += `
|
|
224
224
|
<details>
|
|
225
225
|
<summary>Raw Response (click to expand)</summary>
|
|
226
226
|
<pre style="overflow-x: auto;">${JSON.stringify(data, null, 2)}</pre>
|
|
227
227
|
</details>
|
|
228
228
|
`;
|
|
229
|
-
|
|
229
|
+
|
|
230
230
|
debugDiv.innerHTML = debugContent;
|
|
231
231
|
}
|
|
232
|
-
|
|
232
|
+
|
|
233
233
|
// Display contents
|
|
234
234
|
if (!data.exists) {
|
|
235
235
|
contentsDiv.innerHTML = '<p style="color: red;">❌ Path does not exist</p>';
|
|
@@ -250,18 +250,18 @@ class SimpleCodeView {
|
|
|
250
250
|
headerText += ` (${data.summary.directories} directories, ${data.summary.code_files} code files)`;
|
|
251
251
|
}
|
|
252
252
|
headerText += ':';
|
|
253
|
-
|
|
253
|
+
|
|
254
254
|
let html = `<div style="margin-bottom: 10px; color: #666;">${headerText}</div>`;
|
|
255
|
-
|
|
255
|
+
|
|
256
256
|
// Add filtering notice if applicable
|
|
257
257
|
if (data.filtered) {
|
|
258
258
|
html += `<div style="margin-bottom: 10px; padding: 8px; background: #e8f4fd; border-left: 3px solid #2196f3; color: #1565c0; font-size: 13px;">
|
|
259
259
|
🔍 Filtered view: ${data.filter_info || 'Showing only code-related files and directories'}
|
|
260
260
|
</div>`;
|
|
261
261
|
}
|
|
262
|
-
|
|
262
|
+
|
|
263
263
|
html += '<ul style="list-style: none; padding: 0; margin: 0;">';
|
|
264
|
-
|
|
264
|
+
|
|
265
265
|
// Sort: directories first, then files
|
|
266
266
|
const sorted = data.contents.sort((a, b) => {
|
|
267
267
|
if (a.is_directory !== b.is_directory) {
|
|
@@ -269,7 +269,7 @@ class SimpleCodeView {
|
|
|
269
269
|
}
|
|
270
270
|
return a.name.localeCompare(b.name);
|
|
271
271
|
});
|
|
272
|
-
|
|
272
|
+
|
|
273
273
|
for (const item of sorted) {
|
|
274
274
|
if (item.is_directory) {
|
|
275
275
|
// Make directories clickable
|
|
@@ -282,7 +282,7 @@ class SimpleCodeView {
|
|
|
282
282
|
// Check if it's a code file and make it clickable
|
|
283
283
|
const isCodeFile = this.isCodeFile(item.name);
|
|
284
284
|
const fileIcon = this.getFileIcon(item.name);
|
|
285
|
-
|
|
285
|
+
|
|
286
286
|
if (isCodeFile) {
|
|
287
287
|
// Code files - clickable to show AST
|
|
288
288
|
html += `<li style="padding: 5px 0;">
|
|
@@ -298,18 +298,18 @@ class SimpleCodeView {
|
|
|
298
298
|
}
|
|
299
299
|
}
|
|
300
300
|
}
|
|
301
|
-
|
|
301
|
+
|
|
302
302
|
html += '</ul>';
|
|
303
303
|
contentsDiv.innerHTML = html;
|
|
304
304
|
this.updateStatus(`Loaded ${data.contents.length} items`, 'green');
|
|
305
305
|
}
|
|
306
|
-
|
|
306
|
+
|
|
307
307
|
} catch (error) {
|
|
308
308
|
console.error('[SimpleCodeView.loadDirectory] Error:', error);
|
|
309
|
-
|
|
309
|
+
|
|
310
310
|
const errorMsg = `Failed to load directory: ${error.message}`;
|
|
311
311
|
this.showError(errorMsg);
|
|
312
|
-
|
|
312
|
+
|
|
313
313
|
if (contentsDiv) {
|
|
314
314
|
contentsDiv.innerHTML = `
|
|
315
315
|
<div style="color: red;">
|
|
@@ -319,7 +319,7 @@ class SimpleCodeView {
|
|
|
319
319
|
</div>
|
|
320
320
|
`;
|
|
321
321
|
}
|
|
322
|
-
|
|
322
|
+
|
|
323
323
|
if (debugDiv) {
|
|
324
324
|
debugDiv.innerHTML += `<br><span style="color:red;">ERROR: ${error.stack || error.message}</span>`;
|
|
325
325
|
}
|
|
@@ -333,7 +333,7 @@ class SimpleCodeView {
|
|
|
333
333
|
this.updateStatus('Already at root directory', 'orange');
|
|
334
334
|
return;
|
|
335
335
|
}
|
|
336
|
-
|
|
336
|
+
|
|
337
337
|
const lastSlash = this.currentPath.lastIndexOf('/');
|
|
338
338
|
const parent = lastSlash > 0 ? this.currentPath.substring(0, lastSlash) : '/';
|
|
339
339
|
console.log('[SimpleCodeView.goUp] Going up to:', parent);
|
|
@@ -344,35 +344,35 @@ class SimpleCodeView {
|
|
|
344
344
|
setView(view) {
|
|
345
345
|
console.log('[SimpleCodeView.setView] Switching to view:', view);
|
|
346
346
|
this.currentView = view;
|
|
347
|
-
|
|
347
|
+
|
|
348
348
|
const dirContents = document.getElementById('directory-contents');
|
|
349
349
|
const treeContainer = document.getElementById('tree-view-container');
|
|
350
350
|
const dirBtn = document.getElementById('dir-view-btn');
|
|
351
351
|
const treeBtn = document.getElementById('tree-view-btn');
|
|
352
|
-
|
|
352
|
+
|
|
353
353
|
if (view === 'tree') {
|
|
354
354
|
dirContents.style.display = 'none';
|
|
355
355
|
treeContainer.style.display = 'block';
|
|
356
|
-
|
|
356
|
+
|
|
357
357
|
// Update button styles
|
|
358
358
|
dirBtn.style.background = '#f9f9f9';
|
|
359
359
|
dirBtn.style.color = '#333';
|
|
360
360
|
dirBtn.classList.remove('active');
|
|
361
|
-
|
|
361
|
+
|
|
362
362
|
treeBtn.style.background = '#007cba';
|
|
363
363
|
treeBtn.style.color = 'white';
|
|
364
364
|
treeBtn.classList.add('active');
|
|
365
|
-
|
|
365
|
+
|
|
366
366
|
this.initializeTreeView();
|
|
367
367
|
} else {
|
|
368
368
|
dirContents.style.display = 'block';
|
|
369
369
|
treeContainer.style.display = 'none';
|
|
370
|
-
|
|
370
|
+
|
|
371
371
|
// Update button styles
|
|
372
372
|
treeBtn.style.background = '#f9f9f9';
|
|
373
373
|
treeBtn.style.color = '#333';
|
|
374
374
|
treeBtn.classList.remove('active');
|
|
375
|
-
|
|
375
|
+
|
|
376
376
|
dirBtn.style.background = '#007cba';
|
|
377
377
|
dirBtn.style.color = 'white';
|
|
378
378
|
dirBtn.classList.add('active');
|
|
@@ -381,52 +381,52 @@ class SimpleCodeView {
|
|
|
381
381
|
|
|
382
382
|
initializeTreeView() {
|
|
383
383
|
console.log('[SimpleCodeView.initializeTreeView] Initializing tree view');
|
|
384
|
-
|
|
384
|
+
|
|
385
385
|
if (!window.d3) {
|
|
386
386
|
this.updateStatus('D3.js not loaded - cannot initialize tree view', 'red');
|
|
387
387
|
return;
|
|
388
388
|
}
|
|
389
|
-
|
|
389
|
+
|
|
390
390
|
this.initializeSocket();
|
|
391
391
|
}
|
|
392
392
|
|
|
393
393
|
initializeSocket() {
|
|
394
394
|
console.log('[SimpleCodeView.initializeSocket] Initializing Socket.IO connection');
|
|
395
|
-
|
|
395
|
+
|
|
396
396
|
if (!window.io) {
|
|
397
397
|
this.updateStatus('Socket.IO not loaded - using fallback mode', 'orange');
|
|
398
398
|
return;
|
|
399
399
|
}
|
|
400
|
-
|
|
400
|
+
|
|
401
401
|
try {
|
|
402
402
|
this.socket = io('/');
|
|
403
|
-
|
|
403
|
+
|
|
404
404
|
this.socket.on('connect', () => {
|
|
405
405
|
console.log('[SimpleCodeView] Socket connected');
|
|
406
406
|
this.updateStatus('Connected to analysis server', 'green');
|
|
407
407
|
});
|
|
408
|
-
|
|
408
|
+
|
|
409
409
|
this.socket.on('disconnect', () => {
|
|
410
410
|
console.log('[SimpleCodeView] Socket disconnected');
|
|
411
411
|
this.updateStatus('Disconnected from analysis server', 'orange');
|
|
412
412
|
});
|
|
413
|
-
|
|
413
|
+
|
|
414
414
|
this.socket.on('analysis_progress', (data) => {
|
|
415
415
|
console.log('[SimpleCodeView] Analysis progress:', data);
|
|
416
416
|
this.updateStatus(`Analysis: ${data.message}`, 'blue');
|
|
417
417
|
});
|
|
418
|
-
|
|
418
|
+
|
|
419
419
|
this.socket.on('analysis_complete', (data) => {
|
|
420
420
|
console.log('[SimpleCodeView] Analysis complete:', data);
|
|
421
421
|
this.updateStatus('Analysis complete - rendering tree', 'green');
|
|
422
422
|
this.renderTree(data);
|
|
423
423
|
});
|
|
424
|
-
|
|
424
|
+
|
|
425
425
|
this.socket.on('analysis_error', (error) => {
|
|
426
426
|
console.error('[SimpleCodeView] Analysis error:', error);
|
|
427
427
|
this.showError(`Analysis failed: ${error.message || error}`);
|
|
428
428
|
});
|
|
429
|
-
|
|
429
|
+
|
|
430
430
|
} catch (error) {
|
|
431
431
|
console.error('[SimpleCodeView] Failed to initialize socket:', error);
|
|
432
432
|
this.updateStatus('Socket connection failed - using fallback mode', 'orange');
|
|
@@ -435,24 +435,24 @@ class SimpleCodeView {
|
|
|
435
435
|
|
|
436
436
|
async analyzeFile() {
|
|
437
437
|
console.log('[SimpleCodeView.analyzeFile] Starting file analysis');
|
|
438
|
-
|
|
438
|
+
|
|
439
439
|
const fileInput = document.getElementById('file-path-input');
|
|
440
440
|
const filePath = fileInput.value.trim();
|
|
441
|
-
|
|
441
|
+
|
|
442
442
|
if (!filePath) {
|
|
443
443
|
this.showError('Please enter a file path');
|
|
444
444
|
return;
|
|
445
445
|
}
|
|
446
|
-
|
|
446
|
+
|
|
447
447
|
this.hideError();
|
|
448
448
|
this.updateStatus(`Analyzing file: ${filePath}`, 'blue');
|
|
449
|
-
|
|
449
|
+
|
|
450
450
|
// Clear previous tree
|
|
451
451
|
const treeViz = document.getElementById('tree-visualization');
|
|
452
452
|
if (treeViz) {
|
|
453
453
|
treeViz.innerHTML = '<div style="padding: 20px; text-align: center; color: #666;">Analyzing file...</div>';
|
|
454
454
|
}
|
|
455
|
-
|
|
455
|
+
|
|
456
456
|
try {
|
|
457
457
|
if (this.socket && this.socket.connected) {
|
|
458
458
|
// Use Socket.IO for real-time analysis
|
|
@@ -472,7 +472,7 @@ class SimpleCodeView {
|
|
|
472
472
|
|
|
473
473
|
async analyzeFileHTTP(filePath) {
|
|
474
474
|
console.log('[SimpleCodeView.analyzeFileHTTP] Using HTTP fallback for:', filePath);
|
|
475
|
-
|
|
475
|
+
|
|
476
476
|
try {
|
|
477
477
|
// Create a simple mock analysis for demonstration
|
|
478
478
|
// In a real implementation, this would call a proper analysis endpoint
|
|
@@ -480,7 +480,7 @@ class SimpleCodeView {
|
|
|
480
480
|
const mockData = this.createMockTreeData(filePath);
|
|
481
481
|
this.renderTree(mockData);
|
|
482
482
|
}, 1000);
|
|
483
|
-
|
|
483
|
+
|
|
484
484
|
} catch (error) {
|
|
485
485
|
throw new Error(`HTTP analysis failed: ${error.message}`);
|
|
486
486
|
}
|
|
@@ -490,13 +490,13 @@ class SimpleCodeView {
|
|
|
490
490
|
// Create mock AST data for demonstration
|
|
491
491
|
const fileName = filePath.split('/').pop() || 'file';
|
|
492
492
|
const ext = fileName.split('.').pop()?.toLowerCase();
|
|
493
|
-
|
|
493
|
+
|
|
494
494
|
let mockData = {
|
|
495
495
|
name: fileName,
|
|
496
496
|
type: 'module',
|
|
497
497
|
children: []
|
|
498
498
|
};
|
|
499
|
-
|
|
499
|
+
|
|
500
500
|
if (ext === 'py') {
|
|
501
501
|
mockData.children = [
|
|
502
502
|
{
|
|
@@ -549,62 +549,62 @@ class SimpleCodeView {
|
|
|
549
549
|
{ name: 'Content Section 3', type: 'section' }
|
|
550
550
|
];
|
|
551
551
|
}
|
|
552
|
-
|
|
552
|
+
|
|
553
553
|
return mockData;
|
|
554
554
|
}
|
|
555
555
|
|
|
556
556
|
renderTree(data) {
|
|
557
557
|
console.log('[SimpleCodeView.renderTree] Rendering tree with data:', data);
|
|
558
|
-
|
|
558
|
+
|
|
559
559
|
if (!data || !window.d3) {
|
|
560
560
|
this.showError('Cannot render tree: missing data or D3.js');
|
|
561
561
|
return;
|
|
562
562
|
}
|
|
563
|
-
|
|
563
|
+
|
|
564
564
|
this.treeData = data;
|
|
565
|
-
|
|
565
|
+
|
|
566
566
|
// Clear previous visualization
|
|
567
567
|
const container = document.getElementById('tree-visualization');
|
|
568
568
|
if (!container) {
|
|
569
569
|
this.showError('Tree visualization container not found');
|
|
570
570
|
return;
|
|
571
571
|
}
|
|
572
|
-
|
|
572
|
+
|
|
573
573
|
container.innerHTML = '';
|
|
574
|
-
|
|
574
|
+
|
|
575
575
|
// Create SVG
|
|
576
576
|
const margin = this.margin;
|
|
577
577
|
const width = this.width - margin.left - margin.right;
|
|
578
578
|
const height = this.height - margin.top - margin.bottom;
|
|
579
|
-
|
|
579
|
+
|
|
580
580
|
this.svg = d3.select('#tree-visualization')
|
|
581
581
|
.append('svg')
|
|
582
582
|
.attr('width', this.width)
|
|
583
583
|
.attr('height', this.height);
|
|
584
|
-
|
|
584
|
+
|
|
585
585
|
// Add zoom behavior
|
|
586
586
|
const zoom = d3.zoom()
|
|
587
587
|
.scaleExtent([0.1, 4])
|
|
588
588
|
.on('zoom', (event) => {
|
|
589
589
|
this.treeGroup.attr('transform', event.transform);
|
|
590
590
|
});
|
|
591
|
-
|
|
591
|
+
|
|
592
592
|
this.svg.call(zoom);
|
|
593
|
-
|
|
593
|
+
|
|
594
594
|
// Create main group
|
|
595
595
|
this.treeGroup = this.svg.append('g')
|
|
596
596
|
.attr('transform', `translate(${margin.left},${margin.top})`);
|
|
597
|
-
|
|
597
|
+
|
|
598
598
|
// Create tree layout
|
|
599
599
|
this.treeLayout = d3.tree()
|
|
600
600
|
.size([height, width]);
|
|
601
|
-
|
|
601
|
+
|
|
602
602
|
// Convert data to hierarchy
|
|
603
603
|
const hierarchy = d3.hierarchy(data);
|
|
604
|
-
|
|
604
|
+
|
|
605
605
|
// Generate tree layout
|
|
606
606
|
const treeData = this.treeLayout(hierarchy);
|
|
607
|
-
|
|
607
|
+
|
|
608
608
|
// Add links
|
|
609
609
|
const links = this.treeGroup.selectAll('.link')
|
|
610
610
|
.data(treeData.links())
|
|
@@ -618,7 +618,7 @@ class SimpleCodeView {
|
|
|
618
618
|
.style('fill', 'none')
|
|
619
619
|
.style('stroke', '#ccc')
|
|
620
620
|
.style('stroke-width', '2px');
|
|
621
|
-
|
|
621
|
+
|
|
622
622
|
// Add nodes
|
|
623
623
|
const nodes = this.treeGroup.selectAll('.node')
|
|
624
624
|
.data(treeData.descendants())
|
|
@@ -626,14 +626,14 @@ class SimpleCodeView {
|
|
|
626
626
|
.append('g')
|
|
627
627
|
.attr('class', 'tree-node')
|
|
628
628
|
.attr('transform', d => `translate(${d.y},${d.x})`);
|
|
629
|
-
|
|
629
|
+
|
|
630
630
|
// Add circles for nodes
|
|
631
631
|
nodes.append('circle')
|
|
632
632
|
.attr('r', 6)
|
|
633
633
|
.style('fill', d => this.getNodeColor(d.data.type))
|
|
634
634
|
.style('stroke', '#333')
|
|
635
635
|
.style('stroke-width', '2px');
|
|
636
|
-
|
|
636
|
+
|
|
637
637
|
// Add labels
|
|
638
638
|
nodes.append('text')
|
|
639
639
|
.attr('dy', '.35em')
|
|
@@ -642,14 +642,14 @@ class SimpleCodeView {
|
|
|
642
642
|
.style('font-size', '12px')
|
|
643
643
|
.style('font-family', 'Arial, sans-serif')
|
|
644
644
|
.text(d => d.data.name);
|
|
645
|
-
|
|
645
|
+
|
|
646
646
|
// Add tooltips
|
|
647
647
|
nodes.append('title')
|
|
648
648
|
.text(d => `${d.data.type}: ${d.data.name}`);
|
|
649
|
-
|
|
649
|
+
|
|
650
650
|
// Add legend
|
|
651
651
|
this.addLegend(container);
|
|
652
|
-
|
|
652
|
+
|
|
653
653
|
this.updateStatus('Tree visualization rendered successfully', 'green');
|
|
654
654
|
}
|
|
655
655
|
|
|
@@ -685,7 +685,7 @@ class SimpleCodeView {
|
|
|
685
685
|
const ext = filename.toLowerCase().substring(filename.lastIndexOf('.'));
|
|
686
686
|
const iconMap = {
|
|
687
687
|
'.py': '🐍',
|
|
688
|
-
'.js': '📜',
|
|
688
|
+
'.js': '📜',
|
|
689
689
|
'.jsx': '⚛️',
|
|
690
690
|
'.ts': '📘',
|
|
691
691
|
'.tsx': '⚛️',
|
|
@@ -730,16 +730,16 @@ class SimpleCodeView {
|
|
|
730
730
|
// New method to analyze file from directory click
|
|
731
731
|
analyzeFileFromPath(filePath) {
|
|
732
732
|
console.log('[SimpleCodeView.analyzeFileFromPath] Analyzing file:', filePath);
|
|
733
|
-
|
|
733
|
+
|
|
734
734
|
// Switch to tree view
|
|
735
735
|
this.setView('tree');
|
|
736
|
-
|
|
736
|
+
|
|
737
737
|
// Set the file path in the input
|
|
738
738
|
const fileInput = document.getElementById('file-path-input');
|
|
739
739
|
if (fileInput) {
|
|
740
740
|
fileInput.value = filePath;
|
|
741
741
|
}
|
|
742
|
-
|
|
742
|
+
|
|
743
743
|
// Trigger analysis
|
|
744
744
|
this.analyzeFile();
|
|
745
745
|
}
|
|
@@ -750,10 +750,10 @@ class SimpleCodeView {
|
|
|
750
750
|
if (existingLegend) {
|
|
751
751
|
existingLegend.remove();
|
|
752
752
|
}
|
|
753
|
-
|
|
753
|
+
|
|
754
754
|
const legend = document.createElement('div');
|
|
755
755
|
legend.className = 'tree-legend';
|
|
756
|
-
|
|
756
|
+
|
|
757
757
|
const legendTypes = [
|
|
758
758
|
{ type: 'module', label: 'Module/File' },
|
|
759
759
|
{ type: 'class', label: 'Class' },
|
|
@@ -764,7 +764,7 @@ class SimpleCodeView {
|
|
|
764
764
|
{ type: 'section', label: 'Section' },
|
|
765
765
|
{ type: 'hook', label: 'Hook/Other' }
|
|
766
766
|
];
|
|
767
|
-
|
|
767
|
+
|
|
768
768
|
legend.innerHTML = `
|
|
769
769
|
<strong>Legend</strong><br>
|
|
770
770
|
${legendTypes.map(item => `
|
|
@@ -779,10 +779,10 @@ class SimpleCodeView {
|
|
|
779
779
|
Pan: Click and drag
|
|
780
780
|
</div>
|
|
781
781
|
`;
|
|
782
|
-
|
|
782
|
+
|
|
783
783
|
container.appendChild(legend);
|
|
784
784
|
}
|
|
785
|
-
|
|
785
|
+
|
|
786
786
|
/**
|
|
787
787
|
* Get initial path from various sources
|
|
788
788
|
* @returns {string} Initial path to use
|
|
@@ -793,34 +793,34 @@ class SimpleCodeView {
|
|
|
793
793
|
const dir = window.dashboard.workingDirectoryManager.getCurrentWorkingDir();
|
|
794
794
|
if (dir) return dir;
|
|
795
795
|
}
|
|
796
|
-
|
|
796
|
+
|
|
797
797
|
// Try to get from working directory element
|
|
798
798
|
const workingDirPath = document.getElementById('working-dir-path');
|
|
799
799
|
if (workingDirPath && workingDirPath.textContent && workingDirPath.textContent !== 'Loading...') {
|
|
800
800
|
return workingDirPath.textContent.trim();
|
|
801
801
|
}
|
|
802
|
-
|
|
802
|
+
|
|
803
803
|
// Try to get from footer
|
|
804
804
|
const footerDir = document.getElementById('footer-working-dir');
|
|
805
805
|
if (footerDir && footerDir.textContent && footerDir.textContent !== 'Unknown') {
|
|
806
806
|
return footerDir.textContent.trim();
|
|
807
807
|
}
|
|
808
|
-
|
|
808
|
+
|
|
809
809
|
// Try to get from recent events
|
|
810
810
|
if (window.socketClient && window.socketClient.events) {
|
|
811
811
|
const eventsWithDir = window.socketClient.events
|
|
812
812
|
.filter(e => e.data && (e.data.working_directory || e.data.cwd || e.data.working_dir))
|
|
813
813
|
.reverse();
|
|
814
|
-
|
|
814
|
+
|
|
815
815
|
if (eventsWithDir.length > 0) {
|
|
816
816
|
const recentEvent = eventsWithDir[0];
|
|
817
|
-
const dir = recentEvent.data.working_directory ||
|
|
818
|
-
recentEvent.data.cwd ||
|
|
817
|
+
const dir = recentEvent.data.working_directory ||
|
|
818
|
+
recentEvent.data.cwd ||
|
|
819
819
|
recentEvent.data.working_dir;
|
|
820
820
|
if (dir) return dir;
|
|
821
821
|
}
|
|
822
822
|
}
|
|
823
|
-
|
|
823
|
+
|
|
824
824
|
// Default fallback
|
|
825
825
|
return '/';
|
|
826
826
|
}
|