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.

Files changed (517) hide show
  1. claude_mpm/VERSION +1 -1
  2. claude_mpm/agents/BASE_PM.md +12 -0
  3. claude_mpm/agents/{OUTPUT_STYLE.md → CLAUDE_MPM_OUTPUT_STYLE.md} +3 -48
  4. claude_mpm/agents/CLAUDE_MPM_TEACHER_OUTPUT_STYLE.md +2002 -0
  5. claude_mpm/agents/PM_INSTRUCTIONS.md +1239 -674
  6. claude_mpm/agents/WORKFLOW.md +75 -2
  7. claude_mpm/agents/__init__.py +6 -0
  8. claude_mpm/agents/agent_loader.py +1 -4
  9. claude_mpm/agents/base_agent.json +6 -3
  10. claude_mpm/agents/base_agent_loader.py +10 -35
  11. claude_mpm/agents/frontmatter_validator.py +69 -1
  12. claude_mpm/agents/templates/circuit-breakers.md +1254 -0
  13. claude_mpm/agents/templates/context-management-examples.md +544 -0
  14. claude_mpm/agents/templates/{pm_red_flags.md → pm-red-flags.md} +89 -19
  15. claude_mpm/agents/templates/pr-workflow-examples.md +427 -0
  16. claude_mpm/agents/templates/research-gate-examples.md +669 -0
  17. claude_mpm/agents/templates/structured-questions-examples.md +615 -0
  18. claude_mpm/agents/templates/ticket-completeness-examples.md +139 -0
  19. claude_mpm/agents/templates/ticketing-examples.md +277 -0
  20. claude_mpm/cli/__init__.py +37 -2
  21. claude_mpm/cli/commands/__init__.py +2 -0
  22. claude_mpm/cli/commands/agent_source.py +774 -0
  23. claude_mpm/cli/commands/agent_state_manager.py +188 -30
  24. claude_mpm/cli/commands/agents.py +1128 -36
  25. claude_mpm/cli/commands/agents_cleanup.py +210 -0
  26. claude_mpm/cli/commands/agents_discover.py +338 -0
  27. claude_mpm/cli/commands/aggregate.py +1 -1
  28. claude_mpm/cli/commands/analyze.py +3 -3
  29. claude_mpm/cli/commands/auto_configure.py +537 -239
  30. claude_mpm/cli/commands/cleanup.py +1 -1
  31. claude_mpm/cli/commands/config.py +7 -4
  32. claude_mpm/cli/commands/configure.py +935 -45
  33. claude_mpm/cli/commands/configure_agent_display.py +4 -4
  34. claude_mpm/cli/commands/configure_navigation.py +63 -46
  35. claude_mpm/cli/commands/debug.py +12 -12
  36. claude_mpm/cli/commands/doctor.py +10 -2
  37. claude_mpm/cli/commands/hook_errors.py +277 -0
  38. claude_mpm/cli/commands/local_deploy.py +1 -4
  39. claude_mpm/cli/commands/mcp_install_commands.py +1 -1
  40. claude_mpm/cli/commands/mpm_init/core.py +50 -2
  41. claude_mpm/cli/commands/mpm_init/git_activity.py +10 -10
  42. claude_mpm/cli/commands/mpm_init/prompts.py +6 -6
  43. claude_mpm/cli/commands/postmortem.py +401 -0
  44. claude_mpm/cli/commands/run.py +125 -167
  45. claude_mpm/cli/commands/skill_source.py +694 -0
  46. claude_mpm/cli/commands/skills.py +757 -20
  47. claude_mpm/cli/executor.py +78 -3
  48. claude_mpm/cli/interactive/agent_wizard.py +1032 -47
  49. claude_mpm/cli/parsers/agent_source_parser.py +171 -0
  50. claude_mpm/cli/parsers/agents_parser.py +310 -4
  51. claude_mpm/cli/parsers/auto_configure_parser.py +13 -0
  52. claude_mpm/cli/parsers/base_parser.py +53 -0
  53. claude_mpm/cli/parsers/config_parser.py +96 -43
  54. claude_mpm/cli/parsers/skill_source_parser.py +169 -0
  55. claude_mpm/cli/parsers/skills_parser.py +145 -0
  56. claude_mpm/cli/parsers/source_parser.py +138 -0
  57. claude_mpm/cli/startup.py +564 -108
  58. claude_mpm/cli/startup_display.py +480 -0
  59. claude_mpm/cli/utils.py +1 -1
  60. claude_mpm/cli_module/commands.py +1 -1
  61. claude_mpm/commands/{mpm-auto-configure.md → mpm-agents-auto-configure.md} +9 -0
  62. claude_mpm/commands/mpm-agents-detect.md +9 -0
  63. claude_mpm/commands/{mpm-agents.md → mpm-agents-list.md} +9 -0
  64. claude_mpm/commands/mpm-agents-recommend.md +9 -0
  65. claude_mpm/commands/{mpm-config.md → mpm-config-view.md} +9 -0
  66. claude_mpm/commands/mpm-doctor.md +9 -0
  67. claude_mpm/commands/mpm-help.md +14 -2
  68. claude_mpm/commands/mpm-init.md +27 -2
  69. claude_mpm/commands/mpm-monitor.md +9 -0
  70. claude_mpm/commands/mpm-postmortem.md +123 -0
  71. claude_mpm/commands/{mpm-resume.md → mpm-session-resume.md} +9 -0
  72. claude_mpm/commands/mpm-status.md +9 -0
  73. claude_mpm/commands/{mpm-organize.md → mpm-ticket-organize.md} +9 -0
  74. claude_mpm/commands/mpm-ticket-view.md +552 -0
  75. claude_mpm/commands/mpm-version.md +9 -0
  76. claude_mpm/commands/mpm.md +10 -0
  77. claude_mpm/config/agent_presets.py +488 -0
  78. claude_mpm/config/agent_sources.py +325 -0
  79. claude_mpm/config/skill_presets.py +392 -0
  80. claude_mpm/config/skill_sources.py +590 -0
  81. claude_mpm/constants.py +13 -0
  82. claude_mpm/core/api_validator.py +1 -1
  83. claude_mpm/core/claude_runner.py +19 -35
  84. claude_mpm/core/config.py +24 -0
  85. claude_mpm/core/constants.py +1 -1
  86. claude_mpm/core/framework/__init__.py +3 -16
  87. claude_mpm/core/framework/loaders/file_loader.py +54 -101
  88. claude_mpm/core/framework/loaders/instruction_loader.py +25 -5
  89. claude_mpm/core/framework/processors/metadata_processor.py +1 -1
  90. claude_mpm/core/hook_error_memory.py +381 -0
  91. claude_mpm/core/hook_manager.py +41 -2
  92. claude_mpm/core/interactive_session.py +131 -10
  93. claude_mpm/core/logger.py +3 -1
  94. claude_mpm/core/oneshot_session.py +110 -8
  95. claude_mpm/core/output_style_manager.py +173 -43
  96. claude_mpm/core/protocols/__init__.py +23 -0
  97. claude_mpm/core/protocols/runner_protocol.py +103 -0
  98. claude_mpm/core/protocols/session_protocol.py +131 -0
  99. claude_mpm/core/shared/singleton_manager.py +11 -4
  100. claude_mpm/core/system_context.py +38 -0
  101. claude_mpm/core/unified_agent_registry.py +129 -1
  102. claude_mpm/core/unified_config.py +22 -0
  103. claude_mpm/dashboard/static/css/activity.css +69 -69
  104. claude_mpm/dashboard/static/css/connection-status.css +10 -10
  105. claude_mpm/dashboard/static/css/dashboard.css +15 -15
  106. claude_mpm/dashboard/static/js/components/activity-tree.js +178 -178
  107. claude_mpm/dashboard/static/js/components/agent-hierarchy.js +101 -101
  108. claude_mpm/dashboard/static/js/components/agent-inference.js +31 -31
  109. claude_mpm/dashboard/static/js/components/build-tracker.js +59 -59
  110. claude_mpm/dashboard/static/js/components/code-simple.js +107 -107
  111. claude_mpm/dashboard/static/js/components/connection-debug.js +101 -101
  112. claude_mpm/dashboard/static/js/components/diff-viewer.js +113 -113
  113. claude_mpm/dashboard/static/js/components/event-viewer.js +12 -12
  114. claude_mpm/dashboard/static/js/components/file-change-tracker.js +57 -57
  115. claude_mpm/dashboard/static/js/components/file-change-viewer.js +74 -74
  116. claude_mpm/dashboard/static/js/components/file-tool-tracker.js +6 -6
  117. claude_mpm/dashboard/static/js/components/file-viewer.js +42 -42
  118. claude_mpm/dashboard/static/js/components/module-viewer.js +27 -27
  119. claude_mpm/dashboard/static/js/components/session-manager.js +14 -14
  120. claude_mpm/dashboard/static/js/components/socket-manager.js +1 -1
  121. claude_mpm/dashboard/static/js/components/ui-state-manager.js +14 -14
  122. claude_mpm/dashboard/static/js/components/unified-data-viewer.js +110 -110
  123. claude_mpm/dashboard/static/js/components/working-directory.js +8 -8
  124. claude_mpm/dashboard/static/js/connection-manager.js +76 -76
  125. claude_mpm/dashboard/static/js/dashboard.js +76 -58
  126. claude_mpm/dashboard/static/js/extension-error-handler.js +22 -22
  127. claude_mpm/dashboard/static/js/socket-client.js +138 -121
  128. claude_mpm/dashboard/templates/code_simple.html +23 -23
  129. claude_mpm/dashboard/templates/index.html +18 -18
  130. claude_mpm/experimental/cli_enhancements.py +1 -5
  131. claude_mpm/hooks/claude_hooks/event_handlers.py +3 -1
  132. claude_mpm/hooks/claude_hooks/hook_handler.py +24 -7
  133. claude_mpm/hooks/claude_hooks/installer.py +45 -0
  134. claude_mpm/hooks/claude_hooks/memory_integration.py +12 -1
  135. claude_mpm/hooks/failure_learning/__init__.py +2 -8
  136. claude_mpm/hooks/failure_learning/failure_detection_hook.py +1 -6
  137. claude_mpm/hooks/failure_learning/fix_detection_hook.py +1 -6
  138. claude_mpm/hooks/failure_learning/learning_extraction_hook.py +1 -6
  139. claude_mpm/hooks/kuzu_response_hook.py +1 -5
  140. claude_mpm/hooks/templates/pre_tool_use_simple.py +78 -0
  141. claude_mpm/hooks/templates/pre_tool_use_template.py +323 -0
  142. claude_mpm/models/agent_definition.py +7 -0
  143. claude_mpm/models/git_repository.py +198 -0
  144. claude_mpm/scripts/claude-hook-handler.sh +3 -3
  145. claude_mpm/scripts/start_activity_logging.py +3 -1
  146. claude_mpm/services/agents/agent_builder.py +45 -9
  147. claude_mpm/services/agents/agent_preset_service.py +238 -0
  148. claude_mpm/services/agents/agent_selection_service.py +484 -0
  149. claude_mpm/services/agents/auto_deploy_index_parser.py +569 -0
  150. claude_mpm/services/agents/cache_git_manager.py +621 -0
  151. claude_mpm/services/agents/deployment/agent_deployment.py +126 -2
  152. claude_mpm/services/agents/deployment/agent_discovery_service.py +105 -73
  153. claude_mpm/services/agents/deployment/agent_format_converter.py +1 -1
  154. claude_mpm/services/agents/deployment/agent_lifecycle_manager.py +1 -5
  155. claude_mpm/services/agents/deployment/agent_metrics_collector.py +3 -3
  156. claude_mpm/services/agents/deployment/agent_restore_handler.py +1 -4
  157. claude_mpm/services/agents/deployment/agent_template_builder.py +236 -15
  158. claude_mpm/services/agents/deployment/agents_directory_resolver.py +101 -15
  159. claude_mpm/services/agents/deployment/async_agent_deployment.py +2 -1
  160. claude_mpm/services/agents/deployment/facade/deployment_facade.py +3 -3
  161. claude_mpm/services/agents/deployment/multi_source_deployment_service.py +225 -18
  162. claude_mpm/services/agents/deployment/pipeline/pipeline_executor.py +2 -2
  163. claude_mpm/services/agents/deployment/refactored_agent_deployment_service.py +1 -4
  164. claude_mpm/services/agents/deployment/remote_agent_discovery_service.py +557 -0
  165. claude_mpm/services/agents/deployment/single_agent_deployer.py +2 -2
  166. claude_mpm/services/agents/deployment/system_instructions_deployer.py +168 -46
  167. claude_mpm/services/agents/deployment/validation/deployment_validator.py +2 -2
  168. claude_mpm/services/agents/git_source_manager.py +629 -0
  169. claude_mpm/services/agents/loading/framework_agent_loader.py +9 -12
  170. claude_mpm/services/agents/local_template_manager.py +50 -10
  171. claude_mpm/services/agents/single_tier_deployment_service.py +696 -0
  172. claude_mpm/services/agents/sources/__init__.py +13 -0
  173. claude_mpm/services/agents/sources/agent_sync_state.py +516 -0
  174. claude_mpm/services/agents/sources/git_source_sync_service.py +1087 -0
  175. claude_mpm/services/agents/startup_sync.py +239 -0
  176. claude_mpm/services/agents/toolchain_detector.py +474 -0
  177. claude_mpm/services/analysis/__init__.py +25 -0
  178. claude_mpm/services/analysis/postmortem_reporter.py +474 -0
  179. claude_mpm/services/analysis/postmortem_service.py +765 -0
  180. claude_mpm/services/cli/session_pause_manager.py +1 -1
  181. claude_mpm/services/cli/unified_dashboard_manager.py +1 -1
  182. claude_mpm/services/command_deployment_service.py +200 -6
  183. claude_mpm/services/core/base.py +7 -2
  184. claude_mpm/services/core/interfaces/__init__.py +1 -3
  185. claude_mpm/services/core/interfaces/health.py +1 -4
  186. claude_mpm/services/core/models/__init__.py +2 -11
  187. claude_mpm/services/diagnostics/checks/__init__.py +4 -0
  188. claude_mpm/services/diagnostics/checks/agent_check.py +0 -2
  189. claude_mpm/services/diagnostics/checks/agent_sources_check.py +577 -0
  190. claude_mpm/services/diagnostics/checks/instructions_check.py +1 -2
  191. claude_mpm/services/diagnostics/checks/mcp_check.py +0 -1
  192. claude_mpm/services/diagnostics/checks/mcp_services_check.py +7 -15
  193. claude_mpm/services/diagnostics/checks/monitor_check.py +0 -1
  194. claude_mpm/services/diagnostics/checks/skill_sources_check.py +587 -0
  195. claude_mpm/services/diagnostics/diagnostic_runner.py +9 -0
  196. claude_mpm/services/diagnostics/doctor_reporter.py +40 -10
  197. claude_mpm/services/event_bus/direct_relay.py +3 -3
  198. claude_mpm/services/event_bus/event_bus.py +36 -3
  199. claude_mpm/services/events/consumers/logging.py +1 -2
  200. claude_mpm/services/git/__init__.py +21 -0
  201. claude_mpm/services/git/git_operations_service.py +494 -0
  202. claude_mpm/services/github/__init__.py +21 -0
  203. claude_mpm/services/github/github_cli_service.py +397 -0
  204. claude_mpm/services/infrastructure/monitoring/__init__.py +1 -5
  205. claude_mpm/services/infrastructure/monitoring/aggregator.py +1 -6
  206. claude_mpm/services/infrastructure/monitoring/resources.py +1 -1
  207. claude_mpm/services/instructions/__init__.py +9 -0
  208. claude_mpm/services/instructions/instruction_cache_service.py +374 -0
  209. claude_mpm/services/local_ops/__init__.py +3 -13
  210. claude_mpm/services/local_ops/health_checks/__init__.py +1 -3
  211. claude_mpm/services/local_ops/health_manager.py +1 -4
  212. claude_mpm/services/local_ops/process_manager.py +1 -1
  213. claude_mpm/services/local_ops/resource_monitor.py +2 -2
  214. claude_mpm/services/mcp_config_manager.py +75 -145
  215. claude_mpm/services/mcp_gateway/config/configuration.py +1 -1
  216. claude_mpm/services/mcp_gateway/core/process_pool.py +22 -16
  217. claude_mpm/services/mcp_gateway/server/mcp_gateway.py +1 -6
  218. claude_mpm/services/mcp_gateway/server/stdio_server.py +0 -2
  219. claude_mpm/services/mcp_gateway/tools/document_summarizer.py +1 -1
  220. claude_mpm/services/mcp_gateway/tools/kuzu_memory_service.py +6 -2
  221. claude_mpm/services/mcp_service_verifier.py +6 -3
  222. claude_mpm/services/memory/optimizer.py +1 -1
  223. claude_mpm/services/model/model_router.py +8 -9
  224. claude_mpm/services/monitor/daemon.py +29 -9
  225. claude_mpm/services/monitor/daemon_manager.py +96 -19
  226. claude_mpm/services/monitor/server.py +2 -2
  227. claude_mpm/services/native_agent_converter.py +356 -0
  228. claude_mpm/services/port_manager.py +1 -1
  229. claude_mpm/services/pr/__init__.py +14 -0
  230. claude_mpm/services/pr/pr_template_service.py +329 -0
  231. claude_mpm/services/project/documentation_manager.py +2 -1
  232. claude_mpm/services/project/project_organizer.py +4 -0
  233. claude_mpm/services/project/toolchain_analyzer.py +3 -1
  234. claude_mpm/services/runner_configuration_service.py +17 -3
  235. claude_mpm/services/self_upgrade_service.py +165 -7
  236. claude_mpm/services/session_management_service.py +16 -4
  237. claude_mpm/services/skills/__init__.py +18 -0
  238. claude_mpm/services/skills/git_skill_source_manager.py +1169 -0
  239. claude_mpm/services/skills/skill_discovery_service.py +568 -0
  240. claude_mpm/services/skills_config.py +547 -0
  241. claude_mpm/services/skills_deployer.py +955 -0
  242. claude_mpm/services/socketio/handlers/connection.py +1 -1
  243. claude_mpm/services/socketio/handlers/git.py +2 -2
  244. claude_mpm/services/socketio/server/core.py +1 -4
  245. claude_mpm/services/socketio/server/main.py +1 -3
  246. claude_mpm/services/system_instructions_service.py +1 -3
  247. claude_mpm/services/unified/analyzer_strategies/performance_analyzer.py +0 -3
  248. claude_mpm/services/unified/analyzer_strategies/security_analyzer.py +0 -1
  249. claude_mpm/services/unified/deployment_strategies/cloud_strategies.py +1 -1
  250. claude_mpm/services/unified/deployment_strategies/vercel.py +1 -5
  251. claude_mpm/services/unified/unified_deployment.py +1 -5
  252. claude_mpm/services/version_control/conflict_resolution.py +6 -4
  253. claude_mpm/services/visualization/__init__.py +1 -5
  254. claude_mpm/services/visualization/mermaid_generator.py +2 -3
  255. claude_mpm/skills/bundled/infrastructure/env-manager/scripts/validate_env.py +576 -0
  256. claude_mpm/skills/bundled/performance-profiling.md +6 -0
  257. claude_mpm/skills/bundled/testing/webapp-testing/scripts/with_server.py +2 -2
  258. claude_mpm/skills/skills_registry.py +0 -1
  259. claude_mpm/templates/questions/__init__.py +38 -0
  260. claude_mpm/templates/questions/base.py +193 -0
  261. claude_mpm/templates/questions/pr_strategy.py +311 -0
  262. claude_mpm/templates/questions/project_init.py +385 -0
  263. claude_mpm/templates/questions/ticket_mgmt.py +394 -0
  264. claude_mpm/tools/__main__.py +8 -8
  265. claude_mpm/tools/code_tree_analyzer/analysis.py +1 -1
  266. claude_mpm/utils/agent_dependency_loader.py +80 -13
  267. claude_mpm/utils/agent_filters.py +288 -0
  268. claude_mpm/utils/dependency_cache.py +3 -1
  269. claude_mpm/utils/gitignore.py +244 -0
  270. claude_mpm/utils/log_cleanup.py +3 -3
  271. claude_mpm/utils/migration.py +372 -0
  272. claude_mpm/utils/progress.py +387 -0
  273. claude_mpm/utils/robust_installer.py +3 -5
  274. claude_mpm/utils/structured_questions.py +619 -0
  275. {claude_mpm-4.21.3.dist-info → claude_mpm-5.1.9.dist-info}/METADATA +496 -65
  276. {claude_mpm-4.21.3.dist-info → claude_mpm-5.1.9.dist-info}/RECORD +284 -443
  277. claude_mpm/agents/templates/.claude-mpm/memories/README.md +0 -17
  278. claude_mpm/agents/templates/.claude-mpm/memories/engineer_memories.md +0 -3
  279. claude_mpm/agents/templates/agent-manager.json +0 -273
  280. claude_mpm/agents/templates/agentic-coder-optimizer.json +0 -248
  281. claude_mpm/agents/templates/api_qa.json +0 -180
  282. claude_mpm/agents/templates/circuit_breakers.md +0 -638
  283. claude_mpm/agents/templates/clerk-ops.json +0 -235
  284. claude_mpm/agents/templates/code_analyzer.json +0 -101
  285. claude_mpm/agents/templates/content-agent.json +0 -358
  286. claude_mpm/agents/templates/dart_engineer.json +0 -307
  287. claude_mpm/agents/templates/data_engineer.json +0 -225
  288. claude_mpm/agents/templates/documentation.json +0 -211
  289. claude_mpm/agents/templates/engineer.json +0 -210
  290. claude_mpm/agents/templates/gcp_ops_agent.json +0 -253
  291. claude_mpm/agents/templates/golang_engineer.json +0 -270
  292. claude_mpm/agents/templates/imagemagick.json +0 -264
  293. claude_mpm/agents/templates/java_engineer.json +0 -346
  294. claude_mpm/agents/templates/local_ops_agent.json +0 -1840
  295. claude_mpm/agents/templates/logs/prompts/agent_engineer_20250826_014258_728.md +0 -39
  296. claude_mpm/agents/templates/logs/prompts/agent_engineer_20250901_010124_142.md +0 -400
  297. claude_mpm/agents/templates/memory_manager.json +0 -158
  298. claude_mpm/agents/templates/nextjs_engineer.json +0 -285
  299. claude_mpm/agents/templates/ops.json +0 -185
  300. claude_mpm/agents/templates/php-engineer.json +0 -287
  301. claude_mpm/agents/templates/product_owner.json +0 -338
  302. claude_mpm/agents/templates/project_organizer.json +0 -140
  303. claude_mpm/agents/templates/prompt-engineer.json +0 -737
  304. claude_mpm/agents/templates/python_engineer.json +0 -387
  305. claude_mpm/agents/templates/qa.json +0 -242
  306. claude_mpm/agents/templates/react_engineer.json +0 -238
  307. claude_mpm/agents/templates/refactoring_engineer.json +0 -276
  308. claude_mpm/agents/templates/research.json +0 -188
  309. claude_mpm/agents/templates/ruby-engineer.json +0 -280
  310. claude_mpm/agents/templates/rust_engineer.json +0 -275
  311. claude_mpm/agents/templates/security.json +0 -202
  312. claude_mpm/agents/templates/svelte-engineer.json +0 -225
  313. claude_mpm/agents/templates/ticketing.json +0 -177
  314. claude_mpm/agents/templates/typescript_engineer.json +0 -285
  315. claude_mpm/agents/templates/vercel_ops_agent.json +0 -412
  316. claude_mpm/agents/templates/version_control.json +0 -157
  317. claude_mpm/agents/templates/web_qa.json +0 -399
  318. claude_mpm/agents/templates/web_ui.json +0 -189
  319. claude_mpm/commands/mpm-tickets.md +0 -102
  320. claude_mpm/dashboard/.claude-mpm/socketio-instances.json +0 -1
  321. claude_mpm/dashboard/react/components/DataInspector/DataInspector.module.css +0 -188
  322. claude_mpm/dashboard/react/components/EventViewer/EventViewer.module.css +0 -156
  323. claude_mpm/dashboard/react/components/shared/ConnectionStatus.module.css +0 -38
  324. claude_mpm/dashboard/react/components/shared/FilterBar.module.css +0 -92
  325. claude_mpm/dashboard/static/archive/activity_dashboard_fixed.html +0 -248
  326. claude_mpm/dashboard/static/archive/activity_dashboard_test.html +0 -61
  327. claude_mpm/dashboard/static/archive/test_activity_connection.html +0 -179
  328. claude_mpm/dashboard/static/archive/test_claude_tree_tab.html +0 -68
  329. claude_mpm/dashboard/static/archive/test_dashboard.html +0 -409
  330. claude_mpm/dashboard/static/archive/test_dashboard_fixed.html +0 -519
  331. claude_mpm/dashboard/static/archive/test_dashboard_verification.html +0 -181
  332. claude_mpm/dashboard/static/archive/test_file_data.html +0 -315
  333. claude_mpm/dashboard/static/archive/test_file_tree_empty_state.html +0 -243
  334. claude_mpm/dashboard/static/archive/test_file_tree_fix.html +0 -234
  335. claude_mpm/dashboard/static/archive/test_file_tree_rename.html +0 -117
  336. claude_mpm/dashboard/static/archive/test_file_tree_tab.html +0 -115
  337. claude_mpm/dashboard/static/archive/test_file_viewer.html +0 -224
  338. claude_mpm/dashboard/static/archive/test_final_activity.html +0 -220
  339. claude_mpm/dashboard/static/archive/test_tab_fix.html +0 -139
  340. claude_mpm/dashboard/static/built/assets/events.DjpNxWNo.css +0 -1
  341. claude_mpm/dashboard/static/built/components/activity-tree.js +0 -2
  342. claude_mpm/dashboard/static/built/components/agent-hierarchy.js +0 -777
  343. claude_mpm/dashboard/static/built/components/agent-inference.js +0 -2
  344. claude_mpm/dashboard/static/built/components/build-tracker.js +0 -333
  345. claude_mpm/dashboard/static/built/components/code-simple.js +0 -857
  346. claude_mpm/dashboard/static/built/components/code-tree/tree-breadcrumb.js +0 -353
  347. claude_mpm/dashboard/static/built/components/code-tree/tree-constants.js +0 -235
  348. claude_mpm/dashboard/static/built/components/code-tree/tree-search.js +0 -409
  349. claude_mpm/dashboard/static/built/components/code-tree/tree-utils.js +0 -435
  350. claude_mpm/dashboard/static/built/components/code-tree.js +0 -2
  351. claude_mpm/dashboard/static/built/components/code-viewer.js +0 -2
  352. claude_mpm/dashboard/static/built/components/connection-debug.js +0 -654
  353. claude_mpm/dashboard/static/built/components/diff-viewer.js +0 -891
  354. claude_mpm/dashboard/static/built/components/event-processor.js +0 -2
  355. claude_mpm/dashboard/static/built/components/event-viewer.js +0 -2
  356. claude_mpm/dashboard/static/built/components/export-manager.js +0 -2
  357. claude_mpm/dashboard/static/built/components/file-change-tracker.js +0 -443
  358. claude_mpm/dashboard/static/built/components/file-change-viewer.js +0 -690
  359. claude_mpm/dashboard/static/built/components/file-tool-tracker.js +0 -2
  360. claude_mpm/dashboard/static/built/components/file-viewer.js +0 -2
  361. claude_mpm/dashboard/static/built/components/hud-library-loader.js +0 -2
  362. claude_mpm/dashboard/static/built/components/hud-manager.js +0 -2
  363. claude_mpm/dashboard/static/built/components/hud-visualizer.js +0 -2
  364. claude_mpm/dashboard/static/built/components/module-viewer.js +0 -2
  365. claude_mpm/dashboard/static/built/components/nav-bar.js +0 -145
  366. claude_mpm/dashboard/static/built/components/page-structure.js +0 -429
  367. claude_mpm/dashboard/static/built/components/session-manager.js +0 -2
  368. claude_mpm/dashboard/static/built/components/socket-manager.js +0 -2
  369. claude_mpm/dashboard/static/built/components/ui-state-manager.js +0 -2
  370. claude_mpm/dashboard/static/built/components/unified-data-viewer.js +0 -2
  371. claude_mpm/dashboard/static/built/components/working-directory.js +0 -2
  372. claude_mpm/dashboard/static/built/connection-manager.js +0 -536
  373. claude_mpm/dashboard/static/built/dashboard.js +0 -2
  374. claude_mpm/dashboard/static/built/extension-error-handler.js +0 -164
  375. claude_mpm/dashboard/static/built/react/events.js +0 -30
  376. claude_mpm/dashboard/static/built/shared/dom-helpers.js +0 -396
  377. claude_mpm/dashboard/static/built/shared/event-bus.js +0 -330
  378. claude_mpm/dashboard/static/built/shared/event-filter-service.js +0 -540
  379. claude_mpm/dashboard/static/built/shared/logger.js +0 -385
  380. claude_mpm/dashboard/static/built/shared/page-structure.js +0 -249
  381. claude_mpm/dashboard/static/built/shared/tooltip-service.js +0 -253
  382. claude_mpm/dashboard/static/built/socket-client.js +0 -2
  383. claude_mpm/dashboard/static/built/tab-isolation-fix.js +0 -185
  384. claude_mpm/dashboard/static/dist/assets/events.DjpNxWNo.css +0 -1
  385. claude_mpm/dashboard/static/dist/components/activity-tree.js +0 -2
  386. claude_mpm/dashboard/static/dist/components/agent-inference.js +0 -2
  387. claude_mpm/dashboard/static/dist/components/code-tree.js +0 -2
  388. claude_mpm/dashboard/static/dist/components/code-viewer.js +0 -2
  389. claude_mpm/dashboard/static/dist/components/event-processor.js +0 -2
  390. claude_mpm/dashboard/static/dist/components/event-viewer.js +0 -2
  391. claude_mpm/dashboard/static/dist/components/export-manager.js +0 -2
  392. claude_mpm/dashboard/static/dist/components/file-tool-tracker.js +0 -2
  393. claude_mpm/dashboard/static/dist/components/file-viewer.js +0 -2
  394. claude_mpm/dashboard/static/dist/components/hud-library-loader.js +0 -2
  395. claude_mpm/dashboard/static/dist/components/hud-manager.js +0 -2
  396. claude_mpm/dashboard/static/dist/components/hud-visualizer.js +0 -2
  397. claude_mpm/dashboard/static/dist/components/module-viewer.js +0 -2
  398. claude_mpm/dashboard/static/dist/components/session-manager.js +0 -2
  399. claude_mpm/dashboard/static/dist/components/socket-manager.js +0 -2
  400. claude_mpm/dashboard/static/dist/components/ui-state-manager.js +0 -2
  401. claude_mpm/dashboard/static/dist/components/unified-data-viewer.js +0 -2
  402. claude_mpm/dashboard/static/dist/components/working-directory.js +0 -2
  403. claude_mpm/dashboard/static/dist/dashboard.js +0 -2
  404. claude_mpm/dashboard/static/dist/react/events.js +0 -30
  405. claude_mpm/dashboard/static/dist/socket-client.js +0 -2
  406. claude_mpm/dashboard/static/events.html +0 -607
  407. claude_mpm/dashboard/static/index.html +0 -635
  408. claude_mpm/dashboard/static/js/shared/dom-helpers.js +0 -396
  409. claude_mpm/dashboard/static/js/shared/event-bus.js +0 -330
  410. claude_mpm/dashboard/static/js/shared/logger.js +0 -385
  411. claude_mpm/dashboard/static/js/shared/tooltip-service.js +0 -253
  412. claude_mpm/dashboard/static/js/stores/dashboard-store.js +0 -562
  413. claude_mpm/dashboard/static/legacy/activity.html +0 -736
  414. claude_mpm/dashboard/static/legacy/agents.html +0 -786
  415. claude_mpm/dashboard/static/legacy/files.html +0 -747
  416. claude_mpm/dashboard/static/legacy/tools.html +0 -831
  417. claude_mpm/dashboard/static/monitors.html +0 -431
  418. claude_mpm/dashboard/static/production/events.html +0 -659
  419. claude_mpm/dashboard/static/production/main.html +0 -698
  420. claude_mpm/dashboard/static/production/monitors.html +0 -483
  421. claude_mpm/dashboard/static/test-archive/dashboard.html +0 -635
  422. claude_mpm/dashboard/static/test-archive/debug-events.html +0 -147
  423. claude_mpm/dashboard/static/test-archive/test-navigation.html +0 -256
  424. claude_mpm/dashboard/static/test-archive/test-react-exports.html +0 -180
  425. claude_mpm/dashboard/static/test-archive/test_debug.html +0 -25
  426. claude_mpm/skills/bundled/collaboration/brainstorming/SKILL.md +0 -79
  427. claude_mpm/skills/bundled/collaboration/dispatching-parallel-agents/SKILL.md +0 -178
  428. claude_mpm/skills/bundled/collaboration/dispatching-parallel-agents/references/agent-prompts.md +0 -577
  429. claude_mpm/skills/bundled/collaboration/dispatching-parallel-agents/references/coordination-patterns.md +0 -467
  430. claude_mpm/skills/bundled/collaboration/dispatching-parallel-agents/references/examples.md +0 -537
  431. claude_mpm/skills/bundled/collaboration/dispatching-parallel-agents/references/troubleshooting.md +0 -730
  432. claude_mpm/skills/bundled/collaboration/requesting-code-review/SKILL.md +0 -112
  433. claude_mpm/skills/bundled/collaboration/requesting-code-review/references/code-reviewer-template.md +0 -146
  434. claude_mpm/skills/bundled/collaboration/requesting-code-review/references/review-examples.md +0 -412
  435. claude_mpm/skills/bundled/collaboration/writing-plans/SKILL.md +0 -81
  436. claude_mpm/skills/bundled/collaboration/writing-plans/references/best-practices.md +0 -362
  437. claude_mpm/skills/bundled/collaboration/writing-plans/references/plan-structure-templates.md +0 -312
  438. claude_mpm/skills/bundled/debugging/root-cause-tracing/SKILL.md +0 -152
  439. claude_mpm/skills/bundled/debugging/root-cause-tracing/references/advanced-techniques.md +0 -668
  440. claude_mpm/skills/bundled/debugging/root-cause-tracing/references/examples.md +0 -587
  441. claude_mpm/skills/bundled/debugging/root-cause-tracing/references/integration.md +0 -438
  442. claude_mpm/skills/bundled/debugging/root-cause-tracing/references/tracing-techniques.md +0 -391
  443. claude_mpm/skills/bundled/debugging/systematic-debugging/CREATION-LOG.md +0 -119
  444. claude_mpm/skills/bundled/debugging/systematic-debugging/SKILL.md +0 -148
  445. claude_mpm/skills/bundled/debugging/systematic-debugging/references/anti-patterns.md +0 -483
  446. claude_mpm/skills/bundled/debugging/systematic-debugging/references/examples.md +0 -452
  447. claude_mpm/skills/bundled/debugging/systematic-debugging/references/troubleshooting.md +0 -449
  448. claude_mpm/skills/bundled/debugging/systematic-debugging/references/workflow.md +0 -411
  449. claude_mpm/skills/bundled/debugging/systematic-debugging/test-academic.md +0 -14
  450. claude_mpm/skills/bundled/debugging/systematic-debugging/test-pressure-1.md +0 -58
  451. claude_mpm/skills/bundled/debugging/systematic-debugging/test-pressure-2.md +0 -68
  452. claude_mpm/skills/bundled/debugging/systematic-debugging/test-pressure-3.md +0 -69
  453. claude_mpm/skills/bundled/debugging/verification-before-completion/SKILL.md +0 -131
  454. claude_mpm/skills/bundled/debugging/verification-before-completion/references/gate-function.md +0 -325
  455. claude_mpm/skills/bundled/debugging/verification-before-completion/references/integration-and-workflows.md +0 -490
  456. claude_mpm/skills/bundled/debugging/verification-before-completion/references/red-flags-and-failures.md +0 -425
  457. claude_mpm/skills/bundled/debugging/verification-before-completion/references/verification-patterns.md +0 -499
  458. claude_mpm/skills/bundled/main/artifacts-builder/SKILL.md +0 -86
  459. claude_mpm/skills/bundled/main/internal-comms/SKILL.md +0 -43
  460. claude_mpm/skills/bundled/main/internal-comms/examples/3p-updates.md +0 -47
  461. claude_mpm/skills/bundled/main/internal-comms/examples/company-newsletter.md +0 -65
  462. claude_mpm/skills/bundled/main/internal-comms/examples/faq-answers.md +0 -30
  463. claude_mpm/skills/bundled/main/internal-comms/examples/general-comms.md +0 -16
  464. claude_mpm/skills/bundled/main/mcp-builder/SKILL.md +0 -160
  465. claude_mpm/skills/bundled/main/mcp-builder/reference/design_principles.md +0 -412
  466. claude_mpm/skills/bundled/main/mcp-builder/reference/evaluation.md +0 -602
  467. claude_mpm/skills/bundled/main/mcp-builder/reference/mcp_best_practices.md +0 -915
  468. claude_mpm/skills/bundled/main/mcp-builder/reference/node_mcp_server.md +0 -916
  469. claude_mpm/skills/bundled/main/mcp-builder/reference/python_mcp_server.md +0 -752
  470. claude_mpm/skills/bundled/main/mcp-builder/reference/workflow.md +0 -1237
  471. claude_mpm/skills/bundled/main/skill-creator/SKILL.md +0 -189
  472. claude_mpm/skills/bundled/main/skill-creator/references/best-practices.md +0 -500
  473. claude_mpm/skills/bundled/main/skill-creator/references/creation-workflow.md +0 -464
  474. claude_mpm/skills/bundled/main/skill-creator/references/examples.md +0 -619
  475. claude_mpm/skills/bundled/main/skill-creator/references/progressive-disclosure.md +0 -437
  476. claude_mpm/skills/bundled/main/skill-creator/references/skill-structure.md +0 -231
  477. claude_mpm/skills/bundled/php/espocrm-development/SKILL.md +0 -170
  478. claude_mpm/skills/bundled/php/espocrm-development/references/architecture.md +0 -602
  479. claude_mpm/skills/bundled/php/espocrm-development/references/common-tasks.md +0 -821
  480. claude_mpm/skills/bundled/php/espocrm-development/references/development-workflow.md +0 -742
  481. claude_mpm/skills/bundled/php/espocrm-development/references/frontend-customization.md +0 -726
  482. claude_mpm/skills/bundled/php/espocrm-development/references/hooks-and-services.md +0 -764
  483. claude_mpm/skills/bundled/php/espocrm-development/references/testing-debugging.md +0 -831
  484. claude_mpm/skills/bundled/rust/desktop-applications/SKILL.md +0 -226
  485. claude_mpm/skills/bundled/rust/desktop-applications/references/architecture-patterns.md +0 -901
  486. claude_mpm/skills/bundled/rust/desktop-applications/references/native-gui-frameworks.md +0 -901
  487. claude_mpm/skills/bundled/rust/desktop-applications/references/platform-integration.md +0 -775
  488. claude_mpm/skills/bundled/rust/desktop-applications/references/state-management.md +0 -937
  489. claude_mpm/skills/bundled/rust/desktop-applications/references/tauri-framework.md +0 -770
  490. claude_mpm/skills/bundled/rust/desktop-applications/references/testing-deployment.md +0 -961
  491. claude_mpm/skills/bundled/testing/condition-based-waiting/SKILL.md +0 -119
  492. claude_mpm/skills/bundled/testing/condition-based-waiting/references/patterns-and-implementation.md +0 -253
  493. claude_mpm/skills/bundled/testing/test-driven-development/SKILL.md +0 -145
  494. claude_mpm/skills/bundled/testing/test-driven-development/references/anti-patterns.md +0 -543
  495. claude_mpm/skills/bundled/testing/test-driven-development/references/examples.md +0 -741
  496. claude_mpm/skills/bundled/testing/test-driven-development/references/integration.md +0 -470
  497. claude_mpm/skills/bundled/testing/test-driven-development/references/philosophy.md +0 -458
  498. claude_mpm/skills/bundled/testing/test-driven-development/references/workflow.md +0 -639
  499. claude_mpm/skills/bundled/testing/testing-anti-patterns/SKILL.md +0 -140
  500. claude_mpm/skills/bundled/testing/testing-anti-patterns/references/completeness-anti-patterns.md +0 -572
  501. claude_mpm/skills/bundled/testing/testing-anti-patterns/references/core-anti-patterns.md +0 -411
  502. claude_mpm/skills/bundled/testing/testing-anti-patterns/references/detection-guide.md +0 -569
  503. claude_mpm/skills/bundled/testing/testing-anti-patterns/references/tdd-connection.md +0 -695
  504. claude_mpm/skills/bundled/testing/webapp-testing/SKILL.md +0 -184
  505. claude_mpm/skills/bundled/testing/webapp-testing/decision-tree.md +0 -459
  506. claude_mpm/skills/bundled/testing/webapp-testing/playwright-patterns.md +0 -479
  507. claude_mpm/skills/bundled/testing/webapp-testing/reconnaissance-pattern.md +0 -687
  508. claude_mpm/skills/bundled/testing/webapp-testing/server-management.md +0 -758
  509. claude_mpm/skills/bundled/testing/webapp-testing/troubleshooting.md +0 -868
  510. /claude_mpm/agents/templates/{git_file_tracking.md → git-file-tracking.md} +0 -0
  511. /claude_mpm/agents/templates/{pm_examples.md → pm-examples.md} +0 -0
  512. /claude_mpm/agents/templates/{response_format.md → response-format.md} +0 -0
  513. /claude_mpm/agents/templates/{validation_templates.md → validation-templates.md} +0 -0
  514. {claude_mpm-4.21.3.dist-info → claude_mpm-5.1.9.dist-info}/WHEEL +0 -0
  515. {claude_mpm-4.21.3.dist-info → claude_mpm-5.1.9.dist-info}/entry_points.txt +0 -0
  516. {claude_mpm-4.21.3.dist-info → claude_mpm-5.1.9.dist-info}/licenses/LICENSE +0 -0
  517. {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
  }