codeboarding 0.13.11__tar.gz → 0.14.5__tar.gz
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.
- {codeboarding-0.13.11/codeboarding.egg-info → codeboarding-0.14.5}/PKG-INFO +9 -11
- {codeboarding-0.13.11 → codeboarding-0.14.5}/PYPI.md +8 -6
- codeboarding-0.14.5/README.md +282 -0
- {codeboarding-0.13.11 → codeboarding-0.14.5}/agents/agent_responses.py +18 -239
- {codeboarding-0.13.11 → codeboarding-0.14.5}/agents/component_ownership.py +1 -13
- {codeboarding-0.13.11 → codeboarding-0.14.5}/agents/constants.py +3 -7
- {codeboarding-0.13.11 → codeboarding-0.14.5}/agents/llm_config.py +81 -99
- {codeboarding-0.13.11 → codeboarding-0.14.5}/agents/llm_errors.py +79 -8
- {codeboarding-0.13.11 → codeboarding-0.14.5}/agents/llm_renderers/__init__.py +4 -10
- codeboarding-0.14.5/agents/llm_renderers/scope.py +290 -0
- {codeboarding-0.13.11 → codeboarding-0.14.5}/agents/planner_agent.py +1 -1
- codeboarding-0.14.5/agents/prompts/__init__.py +41 -0
- codeboarding-0.14.5/agents/prompts/profiles.py +27 -0
- codeboarding-0.14.5/agents/prompts/shared.py +110 -0
- {codeboarding-0.13.11 → codeboarding-0.14.5}/agents/retry.py +1 -25
- codeboarding-0.14.5/agents/scope_analysis_agent.py +246 -0
- codeboarding-0.14.5/agents/tools/__init__.py +4 -0
- codeboarding-0.14.5/agents/tools/base.py +36 -0
- codeboarding-0.14.5/agents/tools/get_method_calls.py +55 -0
- {codeboarding-0.13.11 → codeboarding-0.14.5}/agents/tools/read_file.py +16 -31
- codeboarding-0.14.5/agents/tree_planner_agent.py +288 -0
- {codeboarding-0.13.11 → codeboarding-0.14.5/codeboarding.egg-info}/PKG-INFO +9 -11
- {codeboarding-0.13.11 → codeboarding-0.14.5}/codeboarding.egg-info/SOURCES.txt +19 -39
- {codeboarding-0.13.11 → codeboarding-0.14.5}/codeboarding.egg-info/requires.txt +0 -4
- {codeboarding-0.13.11 → codeboarding-0.14.5}/codeboarding.egg-info/top_level.txt +0 -1
- {codeboarding-0.13.11 → codeboarding-0.14.5}/codeboarding_cli/bootstrap.py +1 -1
- {codeboarding-0.13.11 → codeboarding-0.14.5}/codeboarding_cli/commands/full_analysis.py +22 -13
- {codeboarding-0.13.11 → codeboarding-0.14.5}/codeboarding_cli/commands/incremental_analysis.py +5 -0
- {codeboarding-0.13.11 → codeboarding-0.14.5}/codeboarding_workflows/analysis.py +51 -35
- {codeboarding-0.13.11 → codeboarding-0.14.5}/constants.py +4 -2
- {codeboarding-0.13.11 → codeboarding-0.14.5}/diagram_analysis/__init__.py +4 -4
- {codeboarding-0.13.11 → codeboarding-0.14.5}/diagram_analysis/analysis_json.py +10 -3
- {codeboarding-0.13.11 → codeboarding-0.14.5}/diagram_analysis/diagram_generator.py +491 -318
- {codeboarding-0.13.11 → codeboarding-0.14.5}/diagram_analysis/exceptions.py +12 -0
- codeboarding-0.13.11/agents/incremental_agent.py → codeboarding-0.14.5/diagram_analysis/incremental_update.py +59 -318
- {codeboarding-0.13.11 → codeboarding-0.14.5}/diagram_analysis/io_utils.py +36 -8
- {codeboarding-0.13.11 → codeboarding-0.14.5}/diagram_analysis/run_context.py +2 -2
- codeboarding-0.14.5/diagram_analysis/scope_assembly.py +408 -0
- {codeboarding-0.13.11 → codeboarding-0.14.5}/diagram_analysis/scope_plan.py +29 -24
- {codeboarding-0.13.11 → codeboarding-0.14.5}/diagram_analysis/tree_shape.py +1 -9
- {codeboarding-0.13.11 → codeboarding-0.14.5}/github_action.py +8 -6
- {codeboarding-0.13.11 → codeboarding-0.14.5}/main.py +18 -6
- {codeboarding-0.13.11 → codeboarding-0.14.5}/output_generators/rendering.py +3 -2
- {codeboarding-0.13.11 → codeboarding-0.14.5}/pyproject.toml +2 -6
- {codeboarding-0.13.11 → codeboarding-0.14.5}/repo_utils/__init__.py +3 -2
- {codeboarding-0.13.11 → codeboarding-0.14.5}/static_analyzer/__init__.py +140 -55
- {codeboarding-0.13.11 → codeboarding-0.14.5}/static_analyzer/analysis_cache.py +13 -1
- {codeboarding-0.13.11 → codeboarding-0.14.5}/static_analyzer/analysis_result.py +0 -14
- codeboarding-0.14.5/static_analyzer/clustering/__init__.py +21 -0
- {codeboarding-0.13.11 → codeboarding-0.14.5}/static_analyzer/clustering/exceptions.py +14 -0
- {codeboarding-0.13.11 → codeboarding-0.14.5}/static_analyzer/clustering/models.py +18 -68
- codeboarding-0.14.5/static_analyzer/clustering/names/__init__.py +51 -0
- codeboarding-0.14.5/static_analyzer/clustering/names/draft.py +856 -0
- codeboarding-0.14.5/static_analyzer/clustering/names/frontier.py +233 -0
- codeboarding-0.14.5/static_analyzer/clustering/names/inventory.py +139 -0
- codeboarding-0.14.5/static_analyzer/clustering/names/replay.py +138 -0
- codeboarding-0.14.5/static_analyzer/clustering/names/spec.py +212 -0
- codeboarding-0.14.5/static_analyzer/clustering/names/tokens.py +125 -0
- codeboarding-0.14.5/static_analyzer/clustering/service.py +471 -0
- {codeboarding-0.13.11 → codeboarding-0.14.5}/static_analyzer/config.py +1 -38
- codeboarding-0.14.5/static_analyzer/dotnet_solution.py +62 -0
- {codeboarding-0.13.11 → codeboarding-0.14.5}/static_analyzer/engine/adapters/csharp_adapter.py +146 -70
- {codeboarding-0.13.11 → codeboarding-0.14.5}/static_analyzer/engine/adapters/go_adapter.py +6 -13
- {codeboarding-0.13.11 → codeboarding-0.14.5}/static_analyzer/engine/adapters/java_adapter.py +23 -58
- {codeboarding-0.13.11 → codeboarding-0.14.5}/static_analyzer/engine/adapters/php_adapter.py +0 -10
- {codeboarding-0.13.11 → codeboarding-0.14.5}/static_analyzer/engine/adapters/rust_adapter.py +0 -6
- {codeboarding-0.13.11 → codeboarding-0.14.5}/static_analyzer/engine/adapters/typescript_adapter.py +6 -0
- {codeboarding-0.13.11 → codeboarding-0.14.5}/static_analyzer/engine/call_graph_builder.py +99 -69
- {codeboarding-0.13.11 → codeboarding-0.14.5}/static_analyzer/engine/edge_build_context.py +5 -5
- codeboarding-0.14.5/static_analyzer/engine/edge_builder.py +612 -0
- {codeboarding-0.13.11 → codeboarding-0.14.5}/static_analyzer/engine/language_adapter.py +48 -41
- {codeboarding-0.13.11 → codeboarding-0.14.5}/static_analyzer/engine/lsp_client.py +153 -123
- {codeboarding-0.13.11 → codeboarding-0.14.5}/static_analyzer/engine/lsp_constants.py +11 -15
- codeboarding-0.14.5/static_analyzer/engine/lsp_recycler.py +46 -0
- {codeboarding-0.13.11 → codeboarding-0.14.5}/static_analyzer/engine/models.py +28 -0
- codeboarding-0.14.5/static_analyzer/engine/progress.py +59 -0
- {codeboarding-0.13.11 → codeboarding-0.14.5}/static_analyzer/engine/protocols.py +0 -9
- {codeboarding-0.13.11 → codeboarding-0.14.5}/static_analyzer/engine/result_converter.py +8 -3
- codeboarding-0.14.5/static_analyzer/engine/source_inspector.py +1285 -0
- {codeboarding-0.13.11 → codeboarding-0.14.5}/static_analyzer/engine/symbol_table.py +82 -85
- codeboarding-0.14.5/static_analyzer/exceptions.py +5 -0
- codeboarding-0.14.5/static_analyzer/external_calls.py +142 -0
- codeboarding-0.14.5/static_analyzer/graph_definitions.py +369 -0
- codeboarding-0.14.5/static_analyzer/incremental_orchestrator.py +284 -0
- {codeboarding-0.13.11 → codeboarding-0.14.5}/static_analyzer/internal_references.py +5 -0
- {codeboarding-0.13.11 → codeboarding-0.14.5}/static_analyzer/language_results.py +0 -3
- codeboarding-0.14.5/telemetry/__init__.py +11 -0
- {codeboarding-0.13.11 → codeboarding-0.14.5}/telemetry/events.py +3 -3
- {codeboarding-0.13.11 → codeboarding-0.14.5}/telemetry/schemas.py +2 -2
- {codeboarding-0.13.11 → codeboarding-0.14.5}/telemetry/service.py +32 -18
- {codeboarding-0.13.11 → codeboarding-0.14.5}/tests/test_cli_parser.py +85 -0
- {codeboarding-0.13.11 → codeboarding-0.14.5}/tests/test_github_action.py +21 -17
- {codeboarding-0.13.11 → codeboarding-0.14.5}/tests/test_main.py +96 -26
- {codeboarding-0.13.11 → codeboarding-0.14.5}/tests/test_telemetry_events.py +9 -6
- codeboarding-0.14.5/tests/test_telemetry_service.py +216 -0
- {codeboarding-0.13.11 → codeboarding-0.14.5}/tests/test_user_config.py +45 -0
- {codeboarding-0.13.11 → codeboarding-0.14.5}/user_config.py +31 -4
- codeboarding-0.13.11/README.md +0 -221
- codeboarding-0.13.11/agents/abstraction_agent.py +0 -218
- codeboarding-0.13.11/agents/agent.py +0 -492
- codeboarding-0.13.11/agents/dependency_discovery.py +0 -159
- codeboarding-0.13.11/agents/details_agent.py +0 -244
- codeboarding-0.13.11/agents/llm_renderers/clustering.py +0 -129
- codeboarding-0.13.11/agents/meta_agent.py +0 -64
- codeboarding-0.13.11/agents/prompts/__init__.py +0 -85
- codeboarding-0.13.11/agents/prompts/abstract_prompt_factory.py +0 -63
- codeboarding-0.13.11/agents/prompts/claude_prompts.py +0 -309
- codeboarding-0.13.11/agents/prompts/deepseek_prompts.py +0 -355
- codeboarding-0.13.11/agents/prompts/gemini_flash_prompts.py +0 -291
- codeboarding-0.13.11/agents/prompts/glm_prompts.py +0 -335
- codeboarding-0.13.11/agents/prompts/gpt_prompts.py +0 -353
- codeboarding-0.13.11/agents/prompts/kimi_prompts.py +0 -335
- codeboarding-0.13.11/agents/prompts/prompt_factory.py +0 -183
- codeboarding-0.13.11/agents/repair.py +0 -124
- codeboarding-0.13.11/agents/static_analysis_enricher_mixin.py +0 -225
- codeboarding-0.13.11/agents/tools/__init__.py +0 -9
- codeboarding-0.13.11/agents/tools/base.py +0 -104
- codeboarding-0.13.11/agents/tools/component_bridge_edges.py +0 -68
- codeboarding-0.13.11/agents/tools/get_external_deps.py +0 -47
- codeboarding-0.13.11/agents/tools/get_method_invocations.py +0 -47
- codeboarding-0.13.11/agents/tools/list_git_changes.py +0 -27
- codeboarding-0.13.11/agents/tools/read_cfg.py +0 -62
- codeboarding-0.13.11/agents/tools/read_docs.py +0 -132
- codeboarding-0.13.11/agents/tools/read_file_structure.py +0 -155
- codeboarding-0.13.11/agents/tools/read_packages.py +0 -60
- codeboarding-0.13.11/agents/tools/read_source.py +0 -85
- codeboarding-0.13.11/agents/tools/read_structure.py +0 -49
- codeboarding-0.13.11/agents/tools/toolkit.py +0 -128
- codeboarding-0.13.11/agents/validation.py +0 -481
- codeboarding-0.13.11/caching/__init__.py +0 -8
- codeboarding-0.13.11/caching/cache.py +0 -255
- codeboarding-0.13.11/caching/meta_cache.py +0 -108
- codeboarding-0.13.11/static_analyzer/clustering/__init__.py +0 -27
- codeboarding-0.13.11/static_analyzer/clustering/cache.py +0 -104
- codeboarding-0.13.11/static_analyzer/clustering/delta.py +0 -473
- codeboarding-0.13.11/static_analyzer/clustering/engine.py +0 -223
- codeboarding-0.13.11/static_analyzer/clustering/expansion.py +0 -30
- codeboarding-0.13.11/static_analyzer/clustering/grouping.py +0 -436
- codeboarding-0.13.11/static_analyzer/clustering/service.py +0 -780
- codeboarding-0.13.11/static_analyzer/clustering/snapshot.py +0 -111
- codeboarding-0.13.11/static_analyzer/engine/edge_builder.py +0 -794
- codeboarding-0.13.11/static_analyzer/engine/lsp_recycler.py +0 -158
- codeboarding-0.13.11/static_analyzer/engine/progress.py +0 -83
- codeboarding-0.13.11/static_analyzer/engine/source_inspector.py +0 -730
- codeboarding-0.13.11/static_analyzer/incremental_orchestrator.py +0 -632
- codeboarding-0.13.11/static_analyzer/leiden_utils.py +0 -101
- codeboarding-0.13.11/telemetry/__init__.py +0 -10
- codeboarding-0.13.11/tests/test_telemetry_service.py +0 -99
- {codeboarding-0.13.11 → codeboarding-0.14.5}/LICENSE +0 -0
- {codeboarding-0.13.11 → codeboarding-0.14.5}/agents/__init__.py +0 -0
- {codeboarding-0.13.11 → codeboarding-0.14.5}/agents/change_status.py +0 -0
- {codeboarding-0.13.11 → codeboarding-0.14.5}/agents/content_hash.py +0 -0
- {codeboarding-0.13.11 → codeboarding-0.14.5}/agents/file_index_models.py +0 -0
- {codeboarding-0.13.11 → codeboarding-0.14.5}/agents/incremental_results.py +0 -0
- {codeboarding-0.13.11 → codeboarding-0.14.5}/agents/llm_renderers/call_graph.py +0 -0
- {codeboarding-0.13.11 → codeboarding-0.14.5}/agents/model_capabilities.py +0 -0
- {codeboarding-0.13.11 → codeboarding-0.14.5}/agents/relation_edges.py +0 -0
- {codeboarding-0.13.11 → codeboarding-0.14.5}/agents/scope_ids.py +0 -0
- {codeboarding-0.13.11 → codeboarding-0.14.5}/clustering_ids.py +0 -0
- {codeboarding-0.13.11 → codeboarding-0.14.5}/codeboarding.egg-info/dependency_links.txt +0 -0
- {codeboarding-0.13.11 → codeboarding-0.14.5}/codeboarding.egg-info/entry_points.txt +0 -0
- {codeboarding-0.13.11 → codeboarding-0.14.5}/codeboarding_cli/__init__.py +0 -0
- {codeboarding-0.13.11 → codeboarding-0.14.5}/codeboarding_cli/commands/__init__.py +0 -0
- {codeboarding-0.13.11 → codeboarding-0.14.5}/codeboarding_cli/commands/partial_analysis.py +0 -0
- {codeboarding-0.13.11 → codeboarding-0.14.5}/codeboarding_cli/render.py +0 -0
- {codeboarding-0.13.11 → codeboarding-0.14.5}/codeboarding_cli/view_instructions.py +0 -0
- {codeboarding-0.13.11 → codeboarding-0.14.5}/codeboarding_workflows/__init__.py +0 -0
- {codeboarding-0.13.11 → codeboarding-0.14.5}/codeboarding_workflows/orchestration.py +0 -0
- {codeboarding-0.13.11 → codeboarding-0.14.5}/codeboarding_workflows/sources/__init__.py +0 -0
- {codeboarding-0.13.11 → codeboarding-0.14.5}/codeboarding_workflows/sources/local.py +0 -0
- {codeboarding-0.13.11 → codeboarding-0.14.5}/codeboarding_workflows/sources/remote.py +0 -0
- {codeboarding-0.13.11 → codeboarding-0.14.5}/core/__init__.py +0 -0
- {codeboarding-0.13.11 → codeboarding-0.14.5}/core/plugin_loader.py +0 -0
- {codeboarding-0.13.11 → codeboarding-0.14.5}/core/protocols.py +0 -0
- {codeboarding-0.13.11 → codeboarding-0.14.5}/core/registry.py +0 -0
- {codeboarding-0.13.11 → codeboarding-0.14.5}/diagram_analysis/file_coverage.py +0 -0
- {codeboarding-0.13.11 → codeboarding-0.14.5}/diagram_analysis/file_index.py +0 -0
- {codeboarding-0.13.11 → codeboarding-0.14.5}/diagram_analysis/incremental_changes.py +0 -0
- {codeboarding-0.13.11 → codeboarding-0.14.5}/diagram_analysis/run_mode.py +0 -0
- {codeboarding-0.13.11 → codeboarding-0.14.5}/health/__init__.py +0 -0
- {codeboarding-0.13.11 → codeboarding-0.14.5}/health/checks/__init__.py +0 -0
- {codeboarding-0.13.11 → codeboarding-0.14.5}/health/checks/circular_deps.py +0 -0
- {codeboarding-0.13.11 → codeboarding-0.14.5}/health/checks/function_size.py +0 -0
- {codeboarding-0.13.11 → codeboarding-0.14.5}/health/checks/unused_code_diagnostics.py +0 -0
- {codeboarding-0.13.11 → codeboarding-0.14.5}/health/config.py +0 -0
- {codeboarding-0.13.11 → codeboarding-0.14.5}/health/models.py +0 -0
- {codeboarding-0.13.11 → codeboarding-0.14.5}/health/runner.py +0 -0
- {codeboarding-0.13.11 → codeboarding-0.14.5}/install.py +0 -0
- {codeboarding-0.13.11 → codeboarding-0.14.5}/logging_config.py +0 -0
- {codeboarding-0.13.11 → codeboarding-0.14.5}/monitoring/__init__.py +0 -0
- {codeboarding-0.13.11 → codeboarding-0.14.5}/monitoring/callbacks.py +0 -0
- {codeboarding-0.13.11 → codeboarding-0.14.5}/monitoring/context.py +0 -0
- {codeboarding-0.13.11 → codeboarding-0.14.5}/monitoring/mixin.py +0 -0
- {codeboarding-0.13.11 → codeboarding-0.14.5}/monitoring/paths.py +0 -0
- {codeboarding-0.13.11 → codeboarding-0.14.5}/monitoring/stats.py +0 -0
- {codeboarding-0.13.11 → codeboarding-0.14.5}/monitoring/writers.py +0 -0
- {codeboarding-0.13.11 → codeboarding-0.14.5}/output_generators/__init__.py +0 -0
- {codeboarding-0.13.11 → codeboarding-0.14.5}/output_generators/html.py +0 -0
- {codeboarding-0.13.11 → codeboarding-0.14.5}/output_generators/html_template.py +0 -0
- {codeboarding-0.13.11 → codeboarding-0.14.5}/output_generators/markdown.py +0 -0
- {codeboarding-0.13.11 → codeboarding-0.14.5}/output_generators/mdx.py +0 -0
- {codeboarding-0.13.11 → codeboarding-0.14.5}/output_generators/sphinx.py +0 -0
- {codeboarding-0.13.11 → codeboarding-0.14.5}/repo_utils/change_detector.py +0 -0
- {codeboarding-0.13.11 → codeboarding-0.14.5}/repo_utils/errors.py +0 -0
- {codeboarding-0.13.11 → codeboarding-0.14.5}/repo_utils/fingerprint_diff.py +0 -0
- {codeboarding-0.13.11 → codeboarding-0.14.5}/repo_utils/git_ops.py +0 -0
- {codeboarding-0.13.11 → codeboarding-0.14.5}/repo_utils/ignore.py +0 -0
- {codeboarding-0.13.11 → codeboarding-0.14.5}/repo_utils/path_utils.py +0 -0
- {codeboarding-0.13.11 → codeboarding-0.14.5}/setup.cfg +0 -0
- {codeboarding-0.13.11 → codeboarding-0.14.5}/static_analyzer/cfg/__init__.py +0 -0
- {codeboarding-0.13.11 → codeboarding-0.14.5}/static_analyzer/cfg/call_graph.py +0 -0
- {codeboarding-0.13.11 → codeboarding-0.14.5}/static_analyzer/cfg/edge.py +0 -0
- {codeboarding-0.13.11 → codeboarding-0.14.5}/static_analyzer/cfg/location_key.py +0 -0
- {codeboarding-0.13.11 → codeboarding-0.14.5}/static_analyzer/cluster_relations.py +0 -0
- {codeboarding-0.13.11 → codeboarding-0.14.5}/static_analyzer/csharp_config_scanner.py +0 -0
- {codeboarding-0.13.11 → codeboarding-0.14.5}/static_analyzer/dotnet_sdk.py +0 -0
- {codeboarding-0.13.11 → codeboarding-0.14.5}/static_analyzer/engine/__init__.py +0 -0
- {codeboarding-0.13.11 → codeboarding-0.14.5}/static_analyzer/engine/adapters/__init__.py +0 -0
- {codeboarding-0.13.11 → codeboarding-0.14.5}/static_analyzer/engine/adapters/python_adapter.py +0 -0
- {codeboarding-0.13.11 → codeboarding-0.14.5}/static_analyzer/engine/hierarchy_builder.py +0 -0
- {codeboarding-0.13.11 → codeboarding-0.14.5}/static_analyzer/engine/process_memory.py +0 -0
- {codeboarding-0.13.11 → codeboarding-0.14.5}/static_analyzer/engine/utils.py +0 -0
- {codeboarding-0.13.11 → codeboarding-0.14.5}/static_analyzer/java_config_scanner.py +0 -0
- {codeboarding-0.13.11 → codeboarding-0.14.5}/static_analyzer/java_utils.py +0 -0
- {codeboarding-0.13.11 → codeboarding-0.14.5}/static_analyzer/lsp_client/__init__.py +0 -0
- {codeboarding-0.13.11 → codeboarding-0.14.5}/static_analyzer/lsp_client/diagnostics.py +0 -0
- {codeboarding-0.13.11 → codeboarding-0.14.5}/static_analyzer/node.py +0 -0
- {codeboarding-0.13.11 → codeboarding-0.14.5}/static_analyzer/programming_language.py +0 -0
- {codeboarding-0.13.11 → codeboarding-0.14.5}/static_analyzer/reference_resolver.py +0 -0
- {codeboarding-0.13.11 → codeboarding-0.14.5}/static_analyzer/scanner.py +0 -0
- {codeboarding-0.13.11 → codeboarding-0.14.5}/static_analyzer/typescript_config_scanner.py +0 -0
- {codeboarding-0.13.11 → codeboarding-0.14.5}/telemetry/device_id.py +0 -0
- {codeboarding-0.13.11 → codeboarding-0.14.5}/tests/test_install.py +0 -0
- {codeboarding-0.13.11 → codeboarding-0.14.5}/tests/test_logging_config.py +0 -0
- {codeboarding-0.13.11 → codeboarding-0.14.5}/tests/test_persisted_analysis_artifacts.py +0 -0
- {codeboarding-0.13.11 → codeboarding-0.14.5}/tests/test_pyproject_packages.py +0 -0
- {codeboarding-0.13.11 → codeboarding-0.14.5}/tests/test_registry_coverage.py +0 -0
- {codeboarding-0.13.11 → codeboarding-0.14.5}/tests/test_tool_registry.py +0 -0
- {codeboarding-0.13.11 → codeboarding-0.14.5}/tests/test_view_instructions.py +0 -0
- {codeboarding-0.13.11 → codeboarding-0.14.5}/tests/test_vscode_constants.py +0 -0
- {codeboarding-0.13.11 → codeboarding-0.14.5}/tests/test_windows_compatibility.py +0 -0
- {codeboarding-0.13.11 → codeboarding-0.14.5}/tests/test_windows_encoding.py +0 -0
- {codeboarding-0.13.11 → codeboarding-0.14.5}/tool_registry/__init__.py +0 -0
- {codeboarding-0.13.11 → codeboarding-0.14.5}/tool_registry/installers.py +0 -0
- {codeboarding-0.13.11 → codeboarding-0.14.5}/tool_registry/manifest.py +0 -0
- {codeboarding-0.13.11 → codeboarding-0.14.5}/tool_registry/paths.py +0 -0
- {codeboarding-0.13.11 → codeboarding-0.14.5}/tool_registry/registry.py +0 -0
- {codeboarding-0.13.11 → codeboarding-0.14.5}/utils.py +0 -0
- {codeboarding-0.13.11 → codeboarding-0.14.5}/vscode_constants.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: codeboarding
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.14.5
|
|
4
4
|
Summary: Interactive Diagrams for Code
|
|
5
5
|
Author: CodeBoarding Team
|
|
6
6
|
License-Expression: MIT
|
|
@@ -22,7 +22,6 @@ Requires-Dist: fastapi>=0.115
|
|
|
22
22
|
Requires-Dist: filelock>=3.12
|
|
23
23
|
Requires-Dist: gitpython>=3.1
|
|
24
24
|
Requires-Dist: google-api-core>=2.10
|
|
25
|
-
Requires-Dist: igraph>=1.0
|
|
26
25
|
Requires-Dist: jsonpatch>=1.33
|
|
27
26
|
Requires-Dist: jsonschema>=4.25
|
|
28
27
|
Requires-Dist: langchain>=1.2
|
|
@@ -35,7 +34,6 @@ Requires-Dist: langchain-google-genai>=3.1
|
|
|
35
34
|
Requires-Dist: langchain-ollama>=1.0
|
|
36
35
|
Requires-Dist: langchain-openai>=1.1
|
|
37
36
|
Requires-Dist: langgraph>=1.0
|
|
38
|
-
Requires-Dist: leidenalg>=0.10
|
|
39
37
|
Requires-Dist: markdown>=3.8
|
|
40
38
|
Requires-Dist: markdown-it-py>=3.0
|
|
41
39
|
Requires-Dist: markitdown>=0.1
|
|
@@ -48,7 +46,6 @@ Requires-Dist: pyyaml>=6.0
|
|
|
48
46
|
Requires-Dist: regex>=2024.11
|
|
49
47
|
Requires-Dist: requests>=2.32
|
|
50
48
|
Requires-Dist: rich>=12.6
|
|
51
|
-
Requires-Dist: sqlalchemy>=2.0
|
|
52
49
|
Requires-Dist: tqdm>=4.67
|
|
53
50
|
Requires-Dist: tree-sitter==0.25.2
|
|
54
51
|
Requires-Dist: tree-sitter-c-sharp==0.23.5
|
|
@@ -59,7 +56,6 @@ Requires-Dist: tree-sitter-php==0.24.1
|
|
|
59
56
|
Requires-Dist: tree-sitter-python==0.25.0
|
|
60
57
|
Requires-Dist: tree-sitter-rust==0.24.2
|
|
61
58
|
Requires-Dist: tree-sitter-typescript==0.23.2
|
|
62
|
-
Requires-Dist: trustcall>=0.0.39
|
|
63
59
|
Requires-Dist: uvicorn>=0.23
|
|
64
60
|
Provides-Extra: dev
|
|
65
61
|
Requires-Dist: pytest>=8.3; extra == "dev"
|
|
@@ -144,7 +140,7 @@ generated `.codeboarding/analysis.json` — it is parsed in your browser, nothin
|
|
|
144
140
|
```python
|
|
145
141
|
import json
|
|
146
142
|
from pathlib import Path
|
|
147
|
-
from diagram_analysis import DiagramGenerator, configure_models
|
|
143
|
+
from diagram_analysis import DiagramGenerator, RunContext, configure_models
|
|
148
144
|
from diagram_analysis.analysis_json import parse_unified_analysis
|
|
149
145
|
|
|
150
146
|
# Pass the key programmatically — shell env vars always take precedence if already set.
|
|
@@ -157,14 +153,17 @@ output_dir = repo_path / ".codeboarding"
|
|
|
157
153
|
output_dir.mkdir(parents=True, exist_ok=True)
|
|
158
154
|
|
|
159
155
|
# Generate the architectural diagram
|
|
156
|
+
context = RunContext.resolve("my-project")
|
|
160
157
|
generator = DiagramGenerator(
|
|
161
158
|
repo_location=repo_path,
|
|
162
159
|
temp_folder=output_dir,
|
|
163
160
|
repo_name="my-project",
|
|
164
161
|
output_dir=output_dir,
|
|
165
|
-
|
|
162
|
+
depth_cap=3, # Maximum hierarchy depth for automatic expansion, not a target.
|
|
163
|
+
run_id=context.run_id,
|
|
164
|
+
log_path=context.log_path,
|
|
166
165
|
)
|
|
167
|
-
|
|
166
|
+
analysis_path = generator.generate_analysis()
|
|
168
167
|
|
|
169
168
|
# Read and inspect the results
|
|
170
169
|
with open(analysis_path) as f:
|
|
@@ -201,8 +200,7 @@ LLM provider keys and model overrides are stored in `~/.codeboarding/config.toml
|
|
|
201
200
|
|
|
202
201
|
[llm]
|
|
203
202
|
# Optional: override the default model for your active provider
|
|
204
|
-
# agent_model
|
|
205
|
-
# parsing_model = "gemini-3.1-flash-lite"
|
|
203
|
+
# agent_model = "gemini-3.8-flash"
|
|
206
204
|
```
|
|
207
205
|
|
|
208
206
|
Shell environment variables (`OPENAI_API_KEY`, `ANTHROPIC_API_KEY`, etc.) always take precedence over the config file, so CI/CD pipelines need no changes. For private repositories, set `GITHUB_TOKEN` in your environment.
|
|
@@ -226,7 +224,7 @@ codeboarding-render PATH/analysis.json --format FORMAT # render an existing anal
|
|
|
226
224
|
|---|---|
|
|
227
225
|
| `--local PATH` | Analyze a local repository (output: `PATH/.codeboarding/`) |
|
|
228
226
|
| `--render {md,html,mdx,rst}` | Render overview and component files from the local `analysis.json` for full, incremental, or partial commands |
|
|
229
|
-
| `--depth-
|
|
227
|
+
| `--depth-cap INT` | Maximum allowed hierarchy depth for automatic expansion (default: 3), not a target. Components can still be expanded on demand. Configures `metadata.depth_cap`, not `metadata.depth_level` (the depth actually reached). No input alias is accepted. |
|
|
230
228
|
| `--force` | (full only) Force full reanalysis, skip cached static analysis |
|
|
231
229
|
| `--base-ref REF` / `--target-ref REF` | (incremental only) Git refs to diff |
|
|
232
230
|
| `--component-id ID` | (partial only) ID of the component to update |
|
|
@@ -67,7 +67,7 @@ generated `.codeboarding/analysis.json` — it is parsed in your browser, nothin
|
|
|
67
67
|
```python
|
|
68
68
|
import json
|
|
69
69
|
from pathlib import Path
|
|
70
|
-
from diagram_analysis import DiagramGenerator, configure_models
|
|
70
|
+
from diagram_analysis import DiagramGenerator, RunContext, configure_models
|
|
71
71
|
from diagram_analysis.analysis_json import parse_unified_analysis
|
|
72
72
|
|
|
73
73
|
# Pass the key programmatically — shell env vars always take precedence if already set.
|
|
@@ -80,14 +80,17 @@ output_dir = repo_path / ".codeboarding"
|
|
|
80
80
|
output_dir.mkdir(parents=True, exist_ok=True)
|
|
81
81
|
|
|
82
82
|
# Generate the architectural diagram
|
|
83
|
+
context = RunContext.resolve("my-project")
|
|
83
84
|
generator = DiagramGenerator(
|
|
84
85
|
repo_location=repo_path,
|
|
85
86
|
temp_folder=output_dir,
|
|
86
87
|
repo_name="my-project",
|
|
87
88
|
output_dir=output_dir,
|
|
88
|
-
|
|
89
|
+
depth_cap=3, # Maximum hierarchy depth for automatic expansion, not a target.
|
|
90
|
+
run_id=context.run_id,
|
|
91
|
+
log_path=context.log_path,
|
|
89
92
|
)
|
|
90
|
-
|
|
93
|
+
analysis_path = generator.generate_analysis()
|
|
91
94
|
|
|
92
95
|
# Read and inspect the results
|
|
93
96
|
with open(analysis_path) as f:
|
|
@@ -124,8 +127,7 @@ LLM provider keys and model overrides are stored in `~/.codeboarding/config.toml
|
|
|
124
127
|
|
|
125
128
|
[llm]
|
|
126
129
|
# Optional: override the default model for your active provider
|
|
127
|
-
# agent_model
|
|
128
|
-
# parsing_model = "gemini-3.1-flash-lite"
|
|
130
|
+
# agent_model = "gemini-3.8-flash"
|
|
129
131
|
```
|
|
130
132
|
|
|
131
133
|
Shell environment variables (`OPENAI_API_KEY`, `ANTHROPIC_API_KEY`, etc.) always take precedence over the config file, so CI/CD pipelines need no changes. For private repositories, set `GITHUB_TOKEN` in your environment.
|
|
@@ -149,7 +151,7 @@ codeboarding-render PATH/analysis.json --format FORMAT # render an existing anal
|
|
|
149
151
|
|---|---|
|
|
150
152
|
| `--local PATH` | Analyze a local repository (output: `PATH/.codeboarding/`) |
|
|
151
153
|
| `--render {md,html,mdx,rst}` | Render overview and component files from the local `analysis.json` for full, incremental, or partial commands |
|
|
152
|
-
| `--depth-
|
|
154
|
+
| `--depth-cap INT` | Maximum allowed hierarchy depth for automatic expansion (default: 3), not a target. Components can still be expanded on demand. Configures `metadata.depth_cap`, not `metadata.depth_level` (the depth actually reached). No input alias is accepted. |
|
|
153
155
|
| `--force` | (full only) Force full reanalysis, skip cached static analysis |
|
|
154
156
|
| `--base-ref REF` / `--target-ref REF` | (incremental only) Git refs to diff |
|
|
155
157
|
| `--component-id ID` | (partial only) ID of the component to update |
|
|
@@ -0,0 +1,282 @@
|
|
|
1
|
+
# CodeBoarding
|
|
2
|
+
|
|
3
|
+
**Review the change, not the diff.**
|
|
4
|
+
|
|
5
|
+
See what a pull request does to your system before you merge it. CodeBoarding turns code into interactive architecture maps so you can explore components, follow their dependencies, and review analyzed pull requests alongside code diffs.
|
|
6
|
+
|
|
7
|
+
This repository contains the open-source analysis engine and CLI. Static analysis extracts code relationships; language models help name and describe the components. Use the resulting map in the web platform, your editor, CI, or generated documentation.
|
|
8
|
+
|
|
9
|
+
[Discord](https://discord.gg/T5zHTJYFuy) · [VS Code extension](https://marketplace.visualstudio.com/items?itemName=Codeboarding.codeboarding) <img alt="" referrerpolicy="no-referrer-when-downgrade" src="https://static.scarf.sh/a.png?x-pxid=8a3d26e0-6f6b-49c0-8482-114445de56a5" width="0" height="0" /> · [Open VSX extension](https://open-vsx.org/extension/CodeBoarding/codeboarding) <img alt="" referrerpolicy="no-referrer-when-downgrade" src="https://static.scarf.sh/a.png?x-pxid=ce87464c-2792-46b0-9ea2-87eefe853d7e" width="0" height="0" /> · [Web platform](https://app.codeboarding.org) · [Website](https://codeboarding.org) <img alt="" referrerpolicy="no-referrer-when-downgrade" src="https://static.scarf.sh/a.png?x-pxid=0855d476-b2d0-44cc-b93d-69b47504719c" width="0" height="0" /> · [Getting started](https://codeboarding.org/getting-started)
|
|
10
|
+
|
|
11
|
+
[](https://codeboarding.org)
|
|
12
|
+
|
|
13
|
+
*The website's illustrative animation (plays once, about 18 seconds). [View the static map](docs/images/codeboarding-story-static.png) or [replay the interactive story on the website](https://codeboarding.org).*
|
|
14
|
+
|
|
15
|
+
The example starts with a large pull-request diff, then shows the six components it touches. Identity and Payments have changed: a new dependency means a Google sign-in outage can block card payments.
|
|
16
|
+
|
|
17
|
+
[](https://developer.mozilla.org/en-US/docs/Web/JavaScript)
|
|
18
|
+
[](https://www.typescriptlang.org/)
|
|
19
|
+
[](https://www.java.com/)
|
|
20
|
+
[](https://www.python.org/)
|
|
21
|
+
[](https://go.dev/)
|
|
22
|
+
[](https://www.php.net/)
|
|
23
|
+
[](https://www.rust-lang.org/)
|
|
24
|
+
[](https://learn.microsoft.com/en-us/dotnet/csharp/)
|
|
25
|
+
|
|
26
|
+
## Explore the system. Review the change
|
|
27
|
+
|
|
28
|
+
- **Explore:** start with the architecture map, expand components, and navigate to the source behind them. Open prepared public repositories without signing in.
|
|
29
|
+
- **Review:** see changed components and dependencies, read changes grouped by component, and inspect code diffs. PR review requires an available analysis from the GitHub Action; architecture comparisons also need a baseline.
|
|
30
|
+
- **Bring your own analysis:** open an `analysis.json` or compare two local analysis files. Files are parsed and compared in your browser.
|
|
31
|
+
- **Share context:** use component descriptions and diagrams in documentation, reviews, and your coding agent's next prompt.
|
|
32
|
+
|
|
33
|
+
## What CodeBoarding generates
|
|
34
|
+
|
|
35
|
+
- An `analysis.json` containing the architecture, component descriptions, relationships, and source references.
|
|
36
|
+
- Nested component diagrams for exploring subsystems.
|
|
37
|
+
- Markdown with Mermaid diagrams, HTML, MDX, or reStructuredText documentation when you request rendering.
|
|
38
|
+
- Incremental updates against a previous analysis, or updates to a selected component.
|
|
39
|
+
|
|
40
|
+
## How it works
|
|
41
|
+
|
|
42
|
+
1. **Analyze the code.** The engine scans the repository and extracts symbols and relationships with static analysis.
|
|
43
|
+
2. **Build the map.** It groups code into components and uses your configured model provider to describe their responsibilities. Analysis can send code excerpts to that provider.
|
|
44
|
+
3. **Explore or review.** Load the analysis in the web platform or editor, render it as documentation, or use the GitHub Action to publish architecture changes on pull requests.
|
|
45
|
+
|
|
46
|
+
The engine's top-level architecture, generated from the [committed analysis](https://github.com/CodeBoarding/CodeBoarding/blob/58291a48b2a609f68e0d19dccd0f3a605907ed28/.codeboarding/analysis.json) dated September 21, 2026:
|
|
47
|
+
|
|
48
|
+
```mermaid
|
|
49
|
+
graph LR
|
|
50
|
+
Static_Analysis_Engine["Static Analysis Engine"]
|
|
51
|
+
Diagram_Generation_and_Health_Orchestration["Diagram Generation and Health Orchestration"]
|
|
52
|
+
LLM_Planning_and_Analysis_Agents["LLM Planning and Analysis Agents"]
|
|
53
|
+
CLI_Workflows_and_Output_Generators["CLI, Workflows, and Output Generators"]
|
|
54
|
+
Repository_and_File_Utilities["Repository and File Utilities"]
|
|
55
|
+
Application_Entry_Points_and_Runtime_Configuration["Application Entry Points and Runtime Configuration"]
|
|
56
|
+
Execution_Monitoring_and_Metrics["Execution Monitoring and Metrics"]
|
|
57
|
+
Tool_Registry_and_Environment_Installer["Tool Registry and Environment Installer"]
|
|
58
|
+
Static_Analysis_Engine -- "tracks telemetry events" --> Diagram_Generation_and_Health_Orchestration
|
|
59
|
+
Static_Analysis_Engine -- "checks repository ignores and git changes" --> Repository_and_File_Utilities
|
|
60
|
+
Static_Analysis_Engine -- "locates tool binaries and runtime directories" --> Tool_Registry_and_Environment_Installer
|
|
61
|
+
Static_Analysis_Engine -- "builds agent insight models" --> LLM_Planning_and_Analysis_Agents
|
|
62
|
+
Static_Analysis_Engine -- "formats cluster identifiers" --> Application_Entry_Points_and_Runtime_Configuration
|
|
63
|
+
Diagram_Generation_and_Health_Orchestration -- "queries static analysis graphs and specs" --> Static_Analysis_Engine
|
|
64
|
+
Diagram_Generation_and_Health_Orchestration -- "configures LLMs and models file index entries" --> LLM_Planning_and_Analysis_Agents
|
|
65
|
+
Diagram_Generation_and_Health_Orchestration -- "normalizes paths and checks git changes" --> Repository_and_File_Utilities
|
|
66
|
+
Diagram_Generation_and_Health_Orchestration -- "resolves cluster hierarchy and ordering" --> Application_Entry_Points_and_Runtime_Configuration
|
|
67
|
+
Diagram_Generation_and_Health_Orchestration -- "initializes stats writers and logs runs" --> Execution_Monitoring_and_Metrics
|
|
68
|
+
Diagram_Generation_and_Health_Orchestration -- "executes plugin health checks" --> CLI_Workflows_and_Output_Generators
|
|
69
|
+
LLM_Planning_and_Analysis_Agents -- "reads call graph edges and nodes" --> Static_Analysis_Engine
|
|
70
|
+
LLM_Planning_and_Analysis_Agents -- "filters repository files and normalizes paths" --> Repository_and_File_Utilities
|
|
71
|
+
LLM_Planning_and_Analysis_Agents -- "checks cluster hierarchy and loads user configuration" --> Application_Entry_Points_and_Runtime_Configuration
|
|
72
|
+
LLM_Planning_and_Analysis_Agents -- "attaches monitoring callbacks and mixins" --> Execution_Monitoring_and_Metrics
|
|
73
|
+
CLI_Workflows_and_Output_Generators -- "resolves execution context and loads analysis metadata" --> Diagram_Generation_and_Health_Orchestration
|
|
74
|
+
CLI_Workflows_and_Output_Generators -- "initializes LLM credentials and computes source hashes" --> LLM_Planning_and_Analysis_Agents
|
|
75
|
+
CLI_Workflows_and_Output_Generators -- "manages ignore files and repository git operations" --> Repository_and_File_Utilities
|
|
76
|
+
CLI_Workflows_and_Output_Generators -- "loads user configuration and sets up logging" --> Application_Entry_Points_and_Runtime_Configuration
|
|
77
|
+
CLI_Workflows_and_Output_Generators -- "wraps workflow execution in monitoring context" --> Execution_Monitoring_and_Metrics
|
|
78
|
+
CLI_Workflows_and_Output_Generators -- "ensures required tool binaries are installed" --> Tool_Registry_and_Environment_Installer
|
|
79
|
+
CLI_Workflows_and_Output_Generators -- "retrieves node type definitions for output rendering" --> Static_Analysis_Engine
|
|
80
|
+
Repository_and_File_Utilities -- "builds tool configurations from manifest" --> Tool_Registry_and_Environment_Installer
|
|
81
|
+
Repository_and_File_Utilities -- "reads fingerprint data for change detection" --> Diagram_Generation_and_Health_Orchestration
|
|
82
|
+
Repository_and_File_Utilities -- "hashes repository source files for fingerprint comparison" --> LLM_Planning_and_Analysis_Agents
|
|
83
|
+
Application_Entry_Points_and_Runtime_Configuration -- "loads analysis metadata and resolves run context" --> Diagram_Generation_and_Health_Orchestration
|
|
84
|
+
Application_Entry_Points_and_Runtime_Configuration -- "triggers incremental analysis and renders documentation formats" --> CLI_Workflows_and_Output_Generators
|
|
85
|
+
Application_Entry_Points_and_Runtime_Configuration -- "clones and checks out repositories in temporary folders" --> Repository_and_File_Utilities
|
|
86
|
+
Execution_Monitoring_and_Metrics -- "resolves project root directory for monitoring storage" --> Repository_and_File_Utilities
|
|
87
|
+
Tool_Registry_and_Environment_Installer -- "inspects language definitions and runtime environments" --> Static_Analysis_Engine
|
|
88
|
+
Tool_Registry_and_Environment_Installer -- "locates executable runnables and initializes configuration templates" --> Application_Entry_Points_and_Runtime_Configuration
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
For the engine's own architecture, [open its interactive map](https://app.codeboarding.org/CodeBoarding/CodeBoarding).
|
|
92
|
+
|
|
93
|
+
## Quick start
|
|
94
|
+
|
|
95
|
+
To try the product without installing anything, [open a public map](https://app.codeboarding.org/CodeBoarding/CodeBoarding). To connect your own repositories, [sign in to the web platform](https://app.codeboarding.org) and choose which repositories CodeBoarding can access. See the [getting-started guide](https://codeboarding.org/getting-started) for the GitHub and editor workflows.
|
|
96
|
+
|
|
97
|
+
To run the analysis engine yourself, use either option below. Both require **Python 3.12** and a [configured model provider](#configuration).
|
|
98
|
+
|
|
99
|
+
### Run from source
|
|
100
|
+
|
|
101
|
+
```bash
|
|
102
|
+
git clone https://github.com/CodeBoarding/CodeBoarding.git
|
|
103
|
+
cd CodeBoarding
|
|
104
|
+
uv sync --frozen
|
|
105
|
+
source .venv/bin/activate # On Windows: .venv\Scripts\activate
|
|
106
|
+
python install.py
|
|
107
|
+
python main.py full --local /path/to/repo
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
### Use the packaged CLI
|
|
111
|
+
|
|
112
|
+
The recommended install method is [pipx](https://pipx.pypa.io), which keeps the CLI in its own isolated environment:
|
|
113
|
+
|
|
114
|
+
```bash
|
|
115
|
+
pipx install codeboarding --python python3.12
|
|
116
|
+
codeboarding-setup
|
|
117
|
+
codeboarding full --local /path/to/repo
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
Or, if you prefer pip, install into a virtual environment (not the global Python):
|
|
121
|
+
|
|
122
|
+
```bash
|
|
123
|
+
pip install codeboarding --extra-index-url https://pip.codeboarding.org/simple/
|
|
124
|
+
codeboarding-setup
|
|
125
|
+
codeboarding full --local /path/to/repo
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
Output is written to `/path/to/repo/.codeboarding/`. To explore it interactively, open the
|
|
129
|
+
[web platform](https://app.codeboarding.org) and load the generated `analysis.json` through
|
|
130
|
+
the viewer's **Switch source** → **File** picker.
|
|
131
|
+
Local analysis files are parsed and compared in your browser; this is separate from generating
|
|
132
|
+
the analysis with your configured model provider.
|
|
133
|
+
|
|
134
|
+
To also generate `overview` and one file per expanded component, pass `--render` with one of
|
|
135
|
+
`md`, `html`, `mdx`, or `rst`. Rendering is available after full, incremental, and partial local analyses;
|
|
136
|
+
previously generated files for the selected format are reconciled from a renderer-owned manifest:
|
|
137
|
+
|
|
138
|
+
```bash
|
|
139
|
+
codeboarding full --local /path/to/repo --render md
|
|
140
|
+
codeboarding incremental --local /path/to/repo --render html
|
|
141
|
+
codeboarding partial --local /path/to/repo --component-id "1.2" --render rst
|
|
142
|
+
```
|
|
143
|
+
|
|
144
|
+
You can render an existing analysis without rerunning analysis or configuring an LLM:
|
|
145
|
+
|
|
146
|
+
```bash
|
|
147
|
+
codeboarding-render /path/to/repo/.codeboarding/analysis.json
|
|
148
|
+
# Select a format or output directory:
|
|
149
|
+
codeboarding-render /path/to/analysis.json --format mdx --output-dir /path/to/docs
|
|
150
|
+
|
|
151
|
+
# From a source checkout in development:
|
|
152
|
+
python codeboarding_cli/render.py ../../demo/markitdown/.codeboarding/analysis.json --format md
|
|
153
|
+
```
|
|
154
|
+
|
|
155
|
+
`python install.py` and `codeboarding-setup` download language server binaries to `~/.codeboarding/servers/`, shared across projects. Node.js (and its bundled `npm`) is required for the Python, TypeScript, JavaScript, and PHP language servers; if neither `node` nor `CODEBOARDING_NODE_PATH` is set, setup downloads a pinned Node.js runtime into `~/.codeboarding/servers/nodeenv/` automatically.
|
|
156
|
+
|
|
157
|
+
## Configuration
|
|
158
|
+
|
|
159
|
+
On first run, CodeBoarding creates `~/.codeboarding/config.toml`. Set one provider there or use environment variables.
|
|
160
|
+
|
|
161
|
+
```toml
|
|
162
|
+
[provider]
|
|
163
|
+
# openai_api_key = "sk-..."
|
|
164
|
+
# openai_base_url = "https://api.example.com/v1" # any OpenAI-compatible gateway
|
|
165
|
+
# anthropic_api_key = "sk-ant-..."
|
|
166
|
+
# anthropic_base_url = "https://resource.services.ai.azure.com/anthropic" # Azure Foundry
|
|
167
|
+
# google_api_key = "AIza..."
|
|
168
|
+
# vercel_api_key = "vck_..."
|
|
169
|
+
# aws_bearer_token_bedrock = "..."
|
|
170
|
+
# ollama_base_url = "http://localhost:11434"
|
|
171
|
+
# openrouter_api_key = "sk-..."
|
|
172
|
+
# orcarouter_api_key = "sk-orca-..." # model routing gateway (https://www.orcarouter.ai)
|
|
173
|
+
# requesty_api_key = "rqsty-..." # LLM gateway (https://www.requesty.ai)
|
|
174
|
+
# litellm_base_url = "http://localhost:4000" # LiteLLM proxy server URL (required)
|
|
175
|
+
# litellm_api_key = "sk-..." # LiteLLM proxy server key (optional)
|
|
176
|
+
|
|
177
|
+
[llm]
|
|
178
|
+
# agent_model = "gemini-3.8-flash"
|
|
179
|
+
```
|
|
180
|
+
|
|
181
|
+
`openai_base_url` points CodeBoarding at any OpenAI-compatible gateway, including LM Studio. Set its model ID with `agent_model`; CodeBoarding adapts its prompts for the model families already represented by its provider defaults, including Qwen. The equivalent shell variables are `OPENAI_BASE_URL`, `OPENAI_API_KEY`, and `AGENT_MODEL`.
|
|
182
|
+
|
|
183
|
+
`anthropic_base_url` points the Anthropic client at a compatible Messages API, including Azure Foundry Claude deployments. Set the deployment key as `anthropic_api_key` and use canonical Anthropic model IDs such as `claude-sonnet-5` for `agent_model` so CodeBoarding selects the correct model capabilities and prompts.
|
|
184
|
+
|
|
185
|
+
Shell environment variables such as `OPENAI_API_KEY`, `ANTHROPIC_API_KEY`, `GOOGLE_API_KEY`, and `OLLAMA_BASE_URL` take precedence over the config file. For private repositories, set `GITHUB_TOKEN` in your environment.
|
|
186
|
+
|
|
187
|
+
Two environment variables tune the static analysis itself:
|
|
188
|
+
|
|
189
|
+
| Variable | Effect |
|
|
190
|
+
| --- | --- |
|
|
191
|
+
| `CODEBOARDING_LSP_REQUEST_TIMEOUT` | Seconds a language-server request may block *when it uses the per-language default* (120s for C#, 60s elsewhere). Not a hard cap on every request: the indexing and didOpen-drain probes pass their own scaled budget (60s plus 2s per file, capped at 1800s) and are unaffected. Applies to every language in the run. Unset or empty leaves the defaults alone; any other unusable value fails the run rather than falling back. |
|
|
192
|
+
| `CODEBOARDING_MAX_CONCURRENT_ENGINES` | How many language servers may be resident at once. `0` (the default) leaves the bound off. |
|
|
193
|
+
|
|
194
|
+
## Common commands
|
|
195
|
+
|
|
196
|
+
```bash
|
|
197
|
+
# Analyze a local repository
|
|
198
|
+
python main.py full --local ./my-project
|
|
199
|
+
|
|
200
|
+
# Raise the depth ceiling to auto-expand deeper (rarely needed — a component that
|
|
201
|
+
# outgrows the leaf ceiling is flagged expandable at whatever depth the run stops
|
|
202
|
+
# and can be expanded on demand; --depth-cap is a safety-valve cap, default 3)
|
|
203
|
+
python main.py full --local ./my-project --depth-cap 5
|
|
204
|
+
|
|
205
|
+
# Re-analyze only changed parts when possible
|
|
206
|
+
python main.py incremental --local ./my-project
|
|
207
|
+
|
|
208
|
+
# Update a single component by ID
|
|
209
|
+
python main.py partial --local ./my-project --component-id "1.2"
|
|
210
|
+
|
|
211
|
+
# Analyze a remote GitHub repository
|
|
212
|
+
python main.py full https://github.com/pytorch/pytorch
|
|
213
|
+
```
|
|
214
|
+
|
|
215
|
+
`--depth-cap` configures `metadata.depth_cap`; `metadata.depth_level` records the
|
|
216
|
+
depth actually reached. The cap is a maximum, not a target depth. `--depth-level`
|
|
217
|
+
is rejected; there is no compatibility alias.
|
|
218
|
+
|
|
219
|
+
Python callers must use `run_full(..., depth_cap=...)`,
|
|
220
|
+
`build_generator(..., depth_cap=...)`, and `DiagramGenerator(..., depth_cap=...)`.
|
|
221
|
+
The generator attribute is `depth_cap` and the exported default is
|
|
222
|
+
`diagram_analysis.DEFAULT_DEPTH_CAP` (3). The GitHub helper uses `DIAGRAM_DEPTH_CAP`
|
|
223
|
+
and rejects `DIAGRAM_DEPTH_LEVEL`. Telemetry reports configured `depth_cap`, not
|
|
224
|
+
`depth_level`. Readers of analysis results must keep reading `metadata.depth_level`
|
|
225
|
+
for the actual depth. Existing baseline loading behavior is unchanged: prefer
|
|
226
|
+
`metadata.depth_cap`, fall back to legacy `metadata.depth_level`, then use
|
|
227
|
+
`DEFAULT_DEPTH_CAP` if neither exists. This metadata fallback is not a CLI alias.
|
|
228
|
+
|
|
229
|
+
> **Incremental needs a baseline.** `incremental` diffs the working tree against the previous
|
|
230
|
+
> analysis in `.codeboarding/` (`analysis.json` + `fingerprint.json`). That baseline can live
|
|
231
|
+
> purely locally — a prior `full`/`incremental` run in the same output dir is enough. Commit
|
|
232
|
+
> `.codeboarding/` only if you want the baseline to travel with the branch (so a teammate or a
|
|
233
|
+
> fresh checkout can run incremental too). With no baseline at all — or one that predates content
|
|
234
|
+
> versioning — `incremental` fails fast with "run a full analysis first" rather than silently
|
|
235
|
+
> doing a full run. Static-analysis caches are versioned but not migrated; after a cache-version
|
|
236
|
+
> upgrade, run a full analysis once to reindex.
|
|
237
|
+
|
|
238
|
+
## Where to use it
|
|
239
|
+
|
|
240
|
+
- **CLI:** [CodeBoarding CLI](#quick-start) — this repository — for local analysis, automation, and documentation generation.
|
|
241
|
+
- **Browser:** [web platform](https://app.codeboarding.org) for Explore and Review, public maps, and local analysis files.
|
|
242
|
+
- **Editor:** [VS Code Marketplace](https://marketplace.visualstudio.com/items?itemName=Codeboarding.codeboarding) or [Open VSX](https://open-vsx.org/extension/CodeBoarding/codeboarding) for in-editor architecture exploration.
|
|
243
|
+
- **CI:** [GitHub Action](https://github.com/marketplace/actions/codeboarding-action) to keep analysis updated and post architecture change maps on pull requests.
|
|
244
|
+
|
|
245
|
+
## Supported stack
|
|
246
|
+
|
|
247
|
+
- Languages: Python, TypeScript, JavaScript, Java, Go, PHP, Rust, C#.
|
|
248
|
+
- LLM providers: OpenAI, Anthropic, Google, Vercel AI Gateway, AWS Bedrock, Ollama, OpenRouter, OrcaRouter, Requesty, LiteLLM proxy, and more.
|
|
249
|
+
|
|
250
|
+
## Examples
|
|
251
|
+
|
|
252
|
+
- [Explore CodeBoarding's architecture](https://app.codeboarding.org/CodeBoarding/CodeBoarding) — the engine, drawn from its own code.
|
|
253
|
+
- [Review CodeBoarding pull request #586](https://app.codeboarding.org/CodeBoarding/CodeBoarding/pull/586) — component changes and code diffs together.
|
|
254
|
+
- [Browse example diagrams](https://codeboarding.org/diagrams).
|
|
255
|
+
- [Awesome Architecture MDs](https://github.com/CodeBoarding/awesome-architecture-mds) — generated architecture documentation for open-source repositories (formerly GeneratedOnBoardings).
|
|
256
|
+
|
|
257
|
+
Public maps need a committed `.codeboarding/analysis.json` at the selected branch or commit.
|
|
258
|
+
Open one at `https://app.codeboarding.org/<owner>/<repo>` without signing in; opening a URL does not generate a new analysis.
|
|
259
|
+
|
|
260
|
+
## Telemetry
|
|
261
|
+
|
|
262
|
+
CodeBoarding collects usage telemetry (which command ran, success/failure,
|
|
263
|
+
duration, token cost, repository size and languages, and the account the
|
|
264
|
+
repository belongs to) to help us improve the tool. It is on by default and
|
|
265
|
+
never collects source code, file names, repository names, paths, prompts, model
|
|
266
|
+
outputs, or API keys. Opt out anytime:
|
|
267
|
+
|
|
268
|
+
```bash
|
|
269
|
+
export CODEBOARDING_TELEMETRY=false # or: export DO_NOT_TRACK=1
|
|
270
|
+
```
|
|
271
|
+
|
|
272
|
+
See [TELEMETRY.md](TELEMETRY.md) for the full list of events and properties.
|
|
273
|
+
|
|
274
|
+
## Contributing
|
|
275
|
+
|
|
276
|
+
If you want to improve CodeBoarding, open an [issue](https://github.com/CodeBoarding/CodeBoarding/issues) or send a pull request. We welcome improvements to analysis quality, output generators, integrations, and developer experience.
|
|
277
|
+
|
|
278
|
+
See [CONTRIBUTING.md](CONTRIBUTING.md) for development setup and testing guidance.
|
|
279
|
+
|
|
280
|
+
## License
|
|
281
|
+
|
|
282
|
+
The analysis engine and CLI in this repository are released under the [MIT License](LICENSE).
|