codegraph-brain 0.23.2__tar.gz → 0.23.3__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.
Files changed (370) hide show
  1. codegraph_brain-0.23.3/.release-please-manifest.json +3 -0
  2. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/CHANGELOG.md +8 -0
  3. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/PKG-INFO +1 -1
  4. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/docs/how-to/MCP_REFERENCE.md +37 -12
  5. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/pyproject.toml +1 -1
  6. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/server.json +2 -2
  7. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/src/cgis/api/mcp_server.py +39 -14
  8. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/tests/unit/test_mcp_tool_schemas.py +27 -0
  9. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/uv.lock +1 -1
  10. codegraph_brain-0.23.2/.release-please-manifest.json +0 -3
  11. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/.claude-plugin/marketplace.json +0 -0
  12. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/.gitattributes +0 -0
  13. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/.github/test-count-baseline +0 -0
  14. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/.github/workflows/autodoc.yml +0 -0
  15. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/.github/workflows/ci.yml +0 -0
  16. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/.github/workflows/guardian.yml +0 -0
  17. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/.github/workflows/mcp-registry.yml +0 -0
  18. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/.github/workflows/pr-title.yml +0 -0
  19. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/.github/workflows/release-please.yml +0 -0
  20. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/.gitignore +0 -0
  21. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/.pre-commit-config.yaml +0 -0
  22. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/.python-version +0 -0
  23. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/CLAUDE.md +0 -0
  24. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/CONTRIBUTING.md +0 -0
  25. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/LICENSE +0 -0
  26. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/Makefile +0 -0
  27. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/PRIVACY.md +0 -0
  28. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/README.md +0 -0
  29. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/benchmarks/guardian/CURATION.md +0 -0
  30. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/benchmarks/guardian/calibration.jsonl +0 -0
  31. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/benchmarks/guardian/experiments/246-cross-vendor/README.md +0 -0
  32. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/benchmarks/guardian/experiments/246-cross-vendor/free-nemotron-quota-cutoff.jsonl +0 -0
  33. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/benchmarks/guardian/experiments/401-evidence/README.md +0 -0
  34. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/benchmarks/guardian/experiments/401-evidence/pr-399-control-rows.jsonl +0 -0
  35. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/benchmarks/guardian/experiments/401-evidence/pr-399-recording.json +0 -0
  36. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/benchmarks/guardian/experiments/401-evidence/pr-399-treatment-rows.jsonl +0 -0
  37. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/benchmarks/guardian/experiments/407-no-checker-appeal/README.md +0 -0
  38. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/benchmarks/guardian/experiments/407-no-checker-appeal/pr-399-control-directive-rows.jsonl +0 -0
  39. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/benchmarks/guardian/experiments/407-no-checker-appeal/pr-399-control-prohibition-rows.jsonl +0 -0
  40. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/benchmarks/guardian/pr-122.yaml +0 -0
  41. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/benchmarks/guardian/pr-140.yaml +0 -0
  42. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/benchmarks/guardian/pr-141.yaml +0 -0
  43. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/benchmarks/guardian/pr-142.yaml +0 -0
  44. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/benchmarks/guardian/pr-143.yaml +0 -0
  45. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/benchmarks/guardian/pr-144.yaml +0 -0
  46. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/benchmarks/guardian/pr-278.yaml +0 -0
  47. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/benchmarks/guardian/pr-313.yaml +0 -0
  48. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/benchmarks/guardian/results.jsonl +0 -0
  49. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/benchmarks/martian/README.md +0 -0
  50. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/benchmarks/martian/cal_dot_com.json +0 -0
  51. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/benchmarks/martian/discourse.json +0 -0
  52. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/benchmarks/martian/grafana.json +0 -0
  53. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/benchmarks/martian/keycloak.json +0 -0
  54. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/benchmarks/martian/sentry.json +0 -0
  55. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/benchmarks/martian-judged.jsonl +0 -0
  56. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/benchmarks/martian-p3-judged-run1.jsonl +0 -0
  57. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/benchmarks/martian-p3-judged-run1.jsonl.corrupted-backup +0 -0
  58. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/benchmarks/martian-p3-run1.jsonl +0 -0
  59. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/benchmarks/martian-p3-run2.jsonl +0 -0
  60. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/benchmarks/martian-p3-run3.jsonl +0 -0
  61. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/benchmarks/martian-plan.json +0 -0
  62. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/benchmarks/martian-repeat-judged.jsonl +0 -0
  63. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/benchmarks/martian-repeat-reviews.jsonl +0 -0
  64. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/benchmarks/martian-reviews.jsonl +0 -0
  65. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/data/.gitkeep +0 -0
  66. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/docs/AUDIT.md +0 -0
  67. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/docs/CASE_STUDY.md +0 -0
  68. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/docs/GUARDIAN_LOCAL_BENCH.md +0 -0
  69. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/docs/GUARDIAN_REMOTE_OLLAMA.md +0 -0
  70. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/docs/architecture/HOW_IT_WORKS.md +0 -0
  71. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/docs/architecture/ONTOLOGY.md +0 -0
  72. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/docs/architecture/PATTERNS_AND_TRIADS.md +0 -0
  73. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/docs/architecture/SELF_PORTRAIT.md +0 -0
  74. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/docs/architecture/diagrams/pipeline_flow.mermaid +0 -0
  75. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/docs/architecture/health_badge.json +0 -0
  76. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/docs/assets/.gitignore +0 -0
  77. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/docs/assets/cgis-app-avatar.png +0 -0
  78. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/docs/assets/cgis-app-avatar.svg +0 -0
  79. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/docs/assets/generate_avatar.py +0 -0
  80. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/docs/examples/.gitkeep +0 -0
  81. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/docs/how-to/AGENT_ONBOARDING.md +0 -0
  82. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/docs/how-to/CLI_USAGE.md +0 -0
  83. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/docs/lab-notes/2026-06-11-chunked-review-negative-result.md +0 -0
  84. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/docs/ontology/.gitkeep +0 -0
  85. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/docs/ontology/core.yaml +0 -0
  86. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/docs/ontology/domains.yaml +0 -0
  87. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/docs/ontology/patterns.yaml +0 -0
  88. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/docs/ontology/tolerances.lock +0 -0
  89. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/docs/plans/2026-09-09-graph-freshness.md +0 -0
  90. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/docs/specs/2026-06-09-domain-pattern-fingerprint-design.md +0 -0
  91. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/docs/specs/2026-06-09-pattern-alphabet-motif-basis-design.md +0 -0
  92. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/docs/specs/2026-06-10-guardian-sprint-design.md +0 -0
  93. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/docs/specs/2026-06-11-fastapi-di-edges-design.md +0 -0
  94. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/docs/specs/2026-06-11-guardian-chunked-review-design.md +0 -0
  95. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/docs/specs/2026-06-11-guardian-chunker-design.md +0 -0
  96. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/docs/specs/2026-06-11-mcp-drift-validate-fqn-design.md +0 -0
  97. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/docs/specs/2026-06-11-resolver-split-design.md +0 -0
  98. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/docs/specs/2026-06-11-symbol-import-edges-design.md +0 -0
  99. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/docs/specs/2026-06-12-drift-empty-domains-design.md +0 -0
  100. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/docs/specs/2026-06-12-gate-semantics-design.md +0 -0
  101. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/docs/specs/2026-06-12-init-ontology-design.md +0 -0
  102. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/docs/specs/2026-06-12-release-please-ci-design.md +0 -0
  103. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/docs/specs/2026-06-13-suggest-packages-design.md +0 -0
  104. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/docs/specs/2026-06-13-tangle-anti-pattern-design.md +0 -0
  105. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/docs/specs/2026-07-29-guardian-skeptic-scoring-design.md +0 -0
  106. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/docs/specs/2026-07-30-cgis-fractal-design.md +0 -0
  107. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/docs/specs/2026-07-30-cgis-fractal-plan.md +0 -0
  108. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/docs/specs/2026-07-30-chunk-source-filter-design.md +0 -0
  109. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/docs/specs/2026-07-30-chunk-source-filter-plan.md +0 -0
  110. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/docs/specs/2026-07-30-genai-client-close-design.md +0 -0
  111. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/docs/specs/2026-07-30-genai-client-close-plan.md +0 -0
  112. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/docs/specs/2026-07-30-guardian-precision-bench-design.md +0 -0
  113. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/docs/specs/2026-07-30-guardian-precision-bench-plan.md +0 -0
  114. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/docs/specs/2026-07-30-guardian-timeout-retry-design.md +0 -0
  115. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/docs/specs/2026-07-30-guardian-timeout-retry-plan.md +0 -0
  116. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/docs/specs/2026-07-31-finder-bug-class-taxonomy.md +0 -0
  117. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/docs/specs/2026-08-01-aura-autoevolution-poc.md +0 -0
  118. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/docs/specs/2026-08-11-guardian-code-review-bench.md +0 -0
  119. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/docs/specs/2026-08-14-review-fingerprint-design.md +0 -0
  120. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/docs/specs/2026-09-05-annotation-graph-design.md +0 -0
  121. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/docs/specs/2026-09-09-graph-freshness-design.md +0 -0
  122. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/docs/specs/BLUEPRINT.md +0 -0
  123. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/docs/specs/PRD.md +0 -0
  124. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/docs/specs/TDD.md +0 -0
  125. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/docs/specs/plans/2026-06-09-fingerprint-drift.md +0 -0
  126. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/docs/specs/plans/2026-06-10-guardian-context-skeptic-inline.md +0 -0
  127. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/docs/specs/plans/2026-06-10-guardian-structured-findings-bench.md +0 -0
  128. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/docs/specs/plans/2026-06-10-motif-basis-part-b.md +0 -0
  129. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/docs/specs/plans/2026-06-10-unified-pattern-alphabet.md +0 -0
  130. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/docs/specs/plans/2026-06-11-fastapi-di-edges.md +0 -0
  131. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/docs/specs/plans/2026-06-11-guardian-chunked-review.md +0 -0
  132. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/docs/specs/plans/2026-06-11-guardian-chunker.md +0 -0
  133. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/docs/specs/plans/2026-06-11-mcp-drift-validate-fqn.md +0 -0
  134. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/docs/specs/plans/2026-06-11-resolver-split.md +0 -0
  135. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/docs/specs/plans/2026-06-12-drift-empty-domains.md +0 -0
  136. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/docs/specs/plans/2026-06-12-gate-semantics.md +0 -0
  137. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/docs/specs/plans/2026-06-12-init-ontology.md +0 -0
  138. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/docs/specs/plans/2026-06-12-release-please-ci.md +0 -0
  139. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/docs/specs/plans/2026-06-12-symbol-import-edges.md +0 -0
  140. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/docs/specs/plans/2026-06-13-suggest-packages.md +0 -0
  141. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/docs/specs/plans/2026-07-29-guardian-skeptic-scoring.md +0 -0
  142. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/docs/specs/plans/2026-08-14-review-fingerprint.md +0 -0
  143. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/docs/specs/plans/2026-09-05-annotation-graph-pr1.md +0 -0
  144. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/docs/specs/plans/2026-09-05-annotation-graph-pr2.md +0 -0
  145. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/glama.json +0 -0
  146. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/main.py +0 -0
  147. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/plugin/.claude-plugin/plugin.json +0 -0
  148. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/plugin/.mcp.json +0 -0
  149. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/plugin/README.md +0 -0
  150. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/plugin/skills/cgis/SKILL.md +0 -0
  151. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/plugin/skills/ingest/SKILL.md +0 -0
  152. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/release-please-config.json +0 -0
  153. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/scripts/backfill_calibration_fingerprint.py +0 -0
  154. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/scripts/backfill_review_fingerprint.py +0 -0
  155. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/scripts/check_pytest_raises.py +0 -0
  156. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/scripts/check_test_count.py +0 -0
  157. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/scripts/colab_bench.sh +0 -0
  158. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/scripts/gen_ideal_graph.py +0 -0
  159. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/scripts/generate_health.py +0 -0
  160. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/scripts/generate_mcp_ref.py +0 -0
  161. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/scripts/generate_schema_docs.py +0 -0
  162. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/scripts/guardian_bench.py +0 -0
  163. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/scripts/guardian_calibrate.py +0 -0
  164. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/scripts/guardian_martian.py +0 -0
  165. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/scripts/guardian_replay_skeptic.py +0 -0
  166. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/scripts/guardian_review.py +0 -0
  167. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/scripts/inject_architecture_graph.py +0 -0
  168. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/scripts/mcp_registry_gate.sh +0 -0
  169. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/scripts/ollama_visitor.sh +0 -0
  170. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/scripts/probe_closure_gap.py +0 -0
  171. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/scripts/probe_tier_ladder.py +0 -0
  172. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/scripts/recordings_from_corpus.py +0 -0
  173. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/scripts/skeptic_arms.py +0 -0
  174. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/src/cgis/__init__.py +0 -0
  175. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/src/cgis/__main__.py +0 -0
  176. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/src/cgis/api/.gitkeep +0 -0
  177. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/src/cgis/api/__init__.py +0 -0
  178. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/src/cgis/cli.py +0 -0
  179. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/src/cgis/core/.gitkeep +0 -0
  180. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/src/cgis/core/coverage.py +0 -0
  181. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/src/cgis/core/freshness.py +0 -0
  182. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/src/cgis/core/generated.py +0 -0
  183. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/src/cgis/core/js_globals.py +0 -0
  184. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/src/cgis/core/models.py +0 -0
  185. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/src/cgis/core/paths.py +0 -0
  186. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/src/cgis/extractors/.gitkeep +0 -0
  187. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/src/cgis/extractors/_python_annotations.py +0 -0
  188. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/src/cgis/extractors/_python_ast.py +0 -0
  189. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/src/cgis/extractors/_python_classes.py +0 -0
  190. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/src/cgis/extractors/_python_functions.py +0 -0
  191. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/src/cgis/extractors/_python_imports.py +0 -0
  192. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/src/cgis/extractors/_python_types.py +0 -0
  193. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/src/cgis/extractors/_typescript_bindings.py +0 -0
  194. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/src/cgis/extractors/base.py +0 -0
  195. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/src/cgis/extractors/python_extractor.py +0 -0
  196. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/src/cgis/extractors/registry.py +0 -0
  197. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/src/cgis/extractors/typescript_extractor.py +0 -0
  198. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/src/cgis/guardian/__init__.py +0 -0
  199. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/src/cgis/guardian/axes.py +0 -0
  200. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/src/cgis/guardian/bench.py +0 -0
  201. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/src/cgis/guardian/calibrate.py +0 -0
  202. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/src/cgis/guardian/chunked.py +0 -0
  203. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/src/cgis/guardian/chunker.py +0 -0
  204. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/src/cgis/guardian/collector.py +0 -0
  205. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/src/cgis/guardian/core.py +0 -0
  206. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/src/cgis/guardian/diff_index.py +0 -0
  207. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/src/cgis/guardian/evidence.py +0 -0
  208. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/src/cgis/guardian/findings.py +0 -0
  209. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/src/cgis/guardian/github_poster.py +0 -0
  210. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/src/cgis/guardian/martian.py +0 -0
  211. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/src/cgis/guardian/metrics.py +0 -0
  212. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/src/cgis/guardian/prompts.py +0 -0
  213. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/src/cgis/guardian/providers/__init__.py +0 -0
  214. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/src/cgis/guardian/providers/base.py +0 -0
  215. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/src/cgis/guardian/providers/gemini.py +0 -0
  216. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/src/cgis/guardian/providers/mistral.py +0 -0
  217. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/src/cgis/guardian/providers/ollama.py +0 -0
  218. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/src/cgis/guardian/providers/openrouter.py +0 -0
  219. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/src/cgis/guardian/recording.py +0 -0
  220. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/src/cgis/guardian/render.py +0 -0
  221. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/src/cgis/guardian/review_fingerprint.py +0 -0
  222. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/src/cgis/guardian/runner.py +0 -0
  223. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/src/cgis/guardian/skeptic.py +0 -0
  224. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/src/cgis/pipeline.py +0 -0
  225. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/src/cgis/py.typed +0 -0
  226. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/src/cgis/query/analysis/__init__.py +0 -0
  227. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/src/cgis/query/analysis/analyzer.py +0 -0
  228. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/src/cgis/query/analysis/anomaly.py +0 -0
  229. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/src/cgis/query/analysis/cohesion.py +0 -0
  230. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/src/cgis/query/analysis/health.py +0 -0
  231. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/src/cgis/query/analysis/suggest_service.py +0 -0
  232. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/src/cgis/query/context/__init__.py +0 -0
  233. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/src/cgis/query/context/audit.py +0 -0
  234. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/src/cgis/query/context/context_service.py +0 -0
  235. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/src/cgis/query/context/orphans.py +0 -0
  236. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/src/cgis/query/context/prompt.py +0 -0
  237. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/src/cgis/query/context/snippet.py +0 -0
  238. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/src/cgis/query/drift/__init__.py +0 -0
  239. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/src/cgis/query/drift/_scc.py +0 -0
  240. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/src/cgis/query/drift/drift.py +0 -0
  241. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/src/cgis/query/drift/drift_service.py +0 -0
  242. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/src/cgis/query/drift/fingerprint.py +0 -0
  243. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/src/cgis/query/drift/fractal.py +0 -0
  244. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/src/cgis/query/drift/ontology_init.py +0 -0
  245. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/src/cgis/query/drift/quotient.py +0 -0
  246. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/src/cgis/query/drift/triads.py +0 -0
  247. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/src/cgis/query/engine.py +0 -0
  248. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/src/cgis/query/fqn.py +0 -0
  249. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/src/cgis/query/render/__init__.py +0 -0
  250. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/src/cgis/query/render/graph_json.py +0 -0
  251. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/src/cgis/query/render/mermaid.py +0 -0
  252. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/src/cgis/query/render/metrics.py +0 -0
  253. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/src/cgis/resolver/.gitkeep +0 -0
  254. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/src/cgis/resolver/__init__.py +0 -0
  255. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/src/cgis/resolver/engine.py +0 -0
  256. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/src/cgis/resolver/indices.py +0 -0
  257. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/src/cgis/resolver/js_builtins.py +0 -0
  258. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/src/cgis/resolver/symbols.py +0 -0
  259. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/src/cgis/resolver/uplift.py +0 -0
  260. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/src/cgis/storage/.gitkeep +0 -0
  261. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/src/cgis/storage/sqlite_store.py +0 -0
  262. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/tests/integration/.gitkeep +0 -0
  263. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/tests/self_parsing/.gitkeep +0 -0
  264. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/tests/self_parsing/__init__.py +0 -0
  265. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/tests/self_parsing/conftest.py +0 -0
  266. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/tests/self_parsing/test_annotation_calibration.py +0 -0
  267. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/tests/self_parsing/test_architecture.py +0 -0
  268. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/tests/self_parsing/test_drift.py +0 -0
  269. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/tests/self_parsing/test_fractal.py +0 -0
  270. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/tests/self_parsing/test_init_ontology_roundtrip.py +0 -0
  271. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/tests/self_parsing/test_receiver_resolution.py +0 -0
  272. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/tests/self_parsing/test_self_parse.py +0 -0
  273. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/tests/self_parsing/test_self_parse_ts.py +0 -0
  274. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/tests/self_parsing/test_suggest.py +0 -0
  275. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/tests/unit/.gitkeep +0 -0
  276. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/tests/unit/conftest.py +0 -0
  277. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/tests/unit/guardian_stubs.py +0 -0
  278. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/tests/unit/review_path_inventory.txt +0 -0
  279. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/tests/unit/test___main__.py +0 -0
  280. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/tests/unit/test_analyzer.py +0 -0
  281. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/tests/unit/test_annotation_edges.py +0 -0
  282. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/tests/unit/test_audit.py +0 -0
  283. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/tests/unit/test_backfill_calibration_fingerprint.py +0 -0
  284. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/tests/unit/test_backfill_review_fingerprint.py +0 -0
  285. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/tests/unit/test_check_pytest_raises.py +0 -0
  286. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/tests/unit/test_check_test_count.py +0 -0
  287. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/tests/unit/test_cli.py +0 -0
  288. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/tests/unit/test_cohesion.py +0 -0
  289. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/tests/unit/test_context_service.py +0 -0
  290. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/tests/unit/test_di_acceptance.py +0 -0
  291. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/tests/unit/test_drift.py +0 -0
  292. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/tests/unit/test_drift_service.py +0 -0
  293. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/tests/unit/test_extractor_registry.py +0 -0
  294. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/tests/unit/test_fingerprint.py +0 -0
  295. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/tests/unit/test_fqn.py +0 -0
  296. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/tests/unit/test_fractal.py +0 -0
  297. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/tests/unit/test_freshness.py +0 -0
  298. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/tests/unit/test_gen_ideal_graph.py +0 -0
  299. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/tests/unit/test_generate_mcp_ref.py +0 -0
  300. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/tests/unit/test_generated.py +0 -0
  301. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/tests/unit/test_graph_json.py +0 -0
  302. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/tests/unit/test_guardian_axes.py +0 -0
  303. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/tests/unit/test_guardian_bench.py +0 -0
  304. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/tests/unit/test_guardian_bench_script.py +0 -0
  305. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/tests/unit/test_guardian_calibrate.py +0 -0
  306. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/tests/unit/test_guardian_calibrate_script.py +0 -0
  307. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/tests/unit/test_guardian_chunked.py +0 -0
  308. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/tests/unit/test_guardian_chunker.py +0 -0
  309. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/tests/unit/test_guardian_collector.py +0 -0
  310. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/tests/unit/test_guardian_core.py +0 -0
  311. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/tests/unit/test_guardian_diff_index.py +0 -0
  312. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/tests/unit/test_guardian_evidence.py +0 -0
  313. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/tests/unit/test_guardian_findings.py +0 -0
  314. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/tests/unit/test_guardian_martian.py +0 -0
  315. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/tests/unit/test_guardian_martian_script.py +0 -0
  316. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/tests/unit/test_guardian_martian_union.py +0 -0
  317. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/tests/unit/test_guardian_metrics.py +0 -0
  318. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/tests/unit/test_guardian_mistral_sampling.py +0 -0
  319. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/tests/unit/test_guardian_ollama_sampling.py +0 -0
  320. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/tests/unit/test_guardian_ollama_truncation.py +0 -0
  321. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/tests/unit/test_guardian_openrouter.py +0 -0
  322. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/tests/unit/test_guardian_poster.py +0 -0
  323. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/tests/unit/test_guardian_providers.py +0 -0
  324. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/tests/unit/test_guardian_providers_name.py +0 -0
  325. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/tests/unit/test_guardian_recording.py +0 -0
  326. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/tests/unit/test_guardian_render.py +0 -0
  327. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/tests/unit/test_guardian_replay_skeptic.py +0 -0
  328. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/tests/unit/test_guardian_review_script.py +0 -0
  329. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/tests/unit/test_guardian_runner.py +0 -0
  330. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/tests/unit/test_guardian_salvage.py +0 -0
  331. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/tests/unit/test_guardian_skeptic.py +0 -0
  332. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/tests/unit/test_health_scorer.py +0 -0
  333. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/tests/unit/test_import_acceptance.py +0 -0
  334. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/tests/unit/test_inject_architecture_graph.py +0 -0
  335. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/tests/unit/test_mcp_server.py +0 -0
  336. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/tests/unit/test_mermaid.py +0 -0
  337. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/tests/unit/test_metrics.py +0 -0
  338. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/tests/unit/test_models.py +0 -0
  339. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/tests/unit/test_name_load_positions.py +0 -0
  340. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/tests/unit/test_ontology_compliance.py +0 -0
  341. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/tests/unit/test_ontology_init.py +0 -0
  342. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/tests/unit/test_orphans.py +0 -0
  343. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/tests/unit/test_paths.py +0 -0
  344. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/tests/unit/test_patterns_yaml.py +0 -0
  345. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/tests/unit/test_pipeline.py +0 -0
  346. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/tests/unit/test_pipeline_incremental_symbols.py +0 -0
  347. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/tests/unit/test_prompt.py +0 -0
  348. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/tests/unit/test_python_annotations.py +0 -0
  349. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/tests/unit/test_python_extractor.py +0 -0
  350. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/tests/unit/test_query_coverage.py +0 -0
  351. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/tests/unit/test_quotient.py +0 -0
  352. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/tests/unit/test_recordings_from_corpus.py +0 -0
  353. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/tests/unit/test_resolver.py +0 -0
  354. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/tests/unit/test_resolver_indices.py +0 -0
  355. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/tests/unit/test_resolver_js_builtins.py +0 -0
  356. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/tests/unit/test_resolver_language_scope.py +0 -0
  357. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/tests/unit/test_resolver_symbols.py +0 -0
  358. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/tests/unit/test_review_fingerprint_closure.py +0 -0
  359. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/tests/unit/test_review_fingerprint_contract.py +0 -0
  360. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/tests/unit/test_review_fingerprint_digest.py +0 -0
  361. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/tests/unit/test_review_fingerprint_record.py +0 -0
  362. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/tests/unit/test_self_types.py +0 -0
  363. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/tests/unit/test_skeptic_arms.py +0 -0
  364. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/tests/unit/test_snippet.py +0 -0
  365. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/tests/unit/test_sqlite_store.py +0 -0
  366. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/tests/unit/test_suggest_service.py +0 -0
  367. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/tests/unit/test_temperature_source.py +0 -0
  368. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/tests/unit/test_triads.py +0 -0
  369. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/tests/unit/test_typescript_extractor.py +0 -0
  370. {codegraph_brain-0.23.2 → codegraph_brain-0.23.3}/tests/unit/test_uplift.py +0 -0
@@ -0,0 +1,3 @@
1
+ {
2
+ ".": "0.23.3"
3
+ }
@@ -1,5 +1,13 @@
1
1
  # Changelog
2
2
 
3
+ ## [0.23.3](https://github.com/zaebee/codegraph-brain/compare/codegraph-brain-v0.23.2...codegraph-brain-v0.23.3) (2026-09-17)
4
+
5
+
6
+ ### Documentation
7
+
8
+ * auto-sync architecture graph and MCP reference ([#480](https://github.com/zaebee/codegraph-brain/issues/480)) ([5379cce](https://github.com/zaebee/codegraph-brain/commit/5379cce927b5fade5e2371503a0cd9e1f8041fc7))
9
+ * **mcp:** say when to use each overlapping graph tool ([#477](https://github.com/zaebee/codegraph-brain/issues/477)) ([f33d764](https://github.com/zaebee/codegraph-brain/commit/f33d764ebdf217359964347aaa1137dc18ced513))
10
+
3
11
  ## [0.23.2](https://github.com/zaebee/codegraph-brain/compare/codegraph-brain-v0.23.1...codegraph-brain-v0.23.2) (2026-09-17)
4
12
 
5
13
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: codegraph-brain
3
- Version: 0.23.2
3
+ Version: 0.23.3
4
4
  Summary: Semantic code graph for AI agents — deterministic FQN resolution, impact analysis and architectural drift gates, exposed over MCP.
5
5
  Project-URL: Homepage, https://github.com/zaebee/codegraph-brain
6
6
  Project-URL: Repository, https://github.com/zaebee/codegraph-brain
@@ -7,9 +7,16 @@
7
7
 
8
8
  ## `cgis_analyze_impact`
9
9
 
10
- Analyse transitive upstream callers of a specific FQN.
10
+ Upstream subgraph of one FQN: everything that reaches it within ``depth`` hops.
11
11
 
12
- Answers "what breaks if I change X?". ``output_format="mermaid"`` (default)
12
+ Every edge type counts — callers, but also importers, subclasses, type
13
+ references, DI dependents and the enclosing class or file — so this answers
14
+ "what breaks if I change X?". For what X depends on use
15
+ ``cgis_trace_flow``; for only the members of a module or class,
16
+ ``cgis_get_structure``; for a source-included brief to read before editing
17
+ one symbol, ``cgis_context``.
18
+
19
+ ``output_format="mermaid"`` (default)
13
20
  returns a diagram; ``"json"`` returns a joinable ``{root, nodes, edges,
14
21
  coverage}`` payload with real FQNs — letting an agent compute set
15
22
  differences (e.g. "which route handlers never reach ``verify_ownership``?")
@@ -22,14 +29,14 @@ Analyse transitive upstream callers of a specific FQN.
22
29
  | :--- | :--- | :---: | :--- |
23
30
  | `fqn` | `string` | ✓ | Fully qualified name, e.g. pkg.module.Class.method. A unique dot-boundary suffix also resolves; an ambiguous one returns candidates. Use cgis_find_symbol to look a name up. |
24
31
  | `db_path` | `string` | | SQLite graph built by cgis_ingest. A relative path resolves against the MCP server's working directory, not the agent's — prefer an absolute path. |
25
- | `depth` | `integer` | | Maximum edge hops upstream. Every edge type counts as a hop — CALLS, but also IMPORTS, CONTAINS and REFERENCES — so modules importing the target and the file containing it appear alongside its callers. |
32
+ | `depth` | `integer` | | Maximum edge hops upstream. Every edge type counts as a hop — callers, importers, subclasses, type references, DI dependents and the enclosing class or file all appear alongside each other. |
26
33
  | `output_format` | `string` | | "mermaid" for a diagram, or "json" for a payload with real FQNs (case-insensitive). Any other value returns an error. |
27
34
 
28
35
  ---
29
36
 
30
37
  ## `cgis_audit_reachability`
31
38
 
32
- Reachability/authorization audit — which sources never reach a checkpoint (#172).
39
+ Reachability/authorization audit — which sources never reach a checkpoint.
33
40
 
34
41
  The headline use is **IDOR/authz coverage**: list every route handler that does
35
42
  NOT transitively reach an ownership check. Reachability follows behavioral edges
@@ -56,7 +63,14 @@ Reachability/authorization audit — which sources never reach a checkpoint (#17
56
63
 
57
64
  ## `cgis_context`
58
65
 
59
- Compile an agent-facing GraphRAG context package for a focal FQN (#19).
66
+ Prompt-ready brief on one FQN: its source, class, direct callers and callees.
67
+
68
+ Call this before editing a symbol, instead of reading its files. It follows
69
+ calls only, one hop by default. Source is included when the file is found
70
+ (see ``source_root``), and the domain when the graph was tagged with one.
71
+ For a multi-hop subgraph
72
+ over every edge type without source, use ``cgis_trace_flow`` (downstream) or
73
+ ``cgis_analyze_impact`` (upstream).
60
74
 
61
75
  Returns an XML-tagged prompt — the focal node's source, its enclosing class,
62
76
  its architectural domain boundary, direct callers (upstream ripple) and
@@ -115,7 +129,7 @@ Report per-domain architectural drift against declared ideal patterns.
115
129
 
116
130
  ## `cgis_find_orphans`
117
131
 
118
- Classes nothing in production builds, extends or names — dead-code candidates (#415).
132
+ Classes nothing in production builds, extends or names — dead-code candidates.
119
133
 
120
134
  Finds classes that no test, type checker or linter flags, because each is
121
135
  still imported somewhere: a package re-export keeps a class importable long
@@ -209,10 +223,13 @@ Report the motif census across the repository's structural tiers.
209
223
 
210
224
  ## `cgis_get_structure`
211
225
 
212
- Show the structural layout (CONTAINS/DECLARES) of a module or class.
226
+ Members of a module or class: the classes, functions and methods it contains.
213
227
 
214
- Traverses only containment edges — no call-graph noise — matching the CLI
215
- ``structure`` command. ``output_format="mermaid"`` (default) returns a
228
+ Follows containment (CONTAINS/DECLARES) only, so no call or import appears.
229
+ For how the code connects use ``cgis_trace_flow`` (what it depends on) or
230
+ ``cgis_analyze_impact`` (what depends on it).
231
+
232
+ Matches the CLI ``structure`` command. ``output_format="mermaid"`` (default) returns a
216
233
  diagram of the hierarchy rooted at the given FQN; ``"json"`` returns the
217
234
  joinable ``{root, nodes, edges}`` payload with real FQNs.
218
235
 
@@ -275,7 +292,7 @@ Propose a starter patterns.yaml from the measured graph (read-only).
275
292
 
276
293
  ## `cgis_metrics`
277
294
 
278
- Whole-graph architectural metrics — coupling bottlenecks + God classes (#16).
295
+ Whole-graph architectural metrics — coupling bottlenecks, God classes, PageRank.
279
296
 
280
297
  Returns JSON ``{bottlenecks, god_classes, critical}`` computed with vectorized
281
298
  DuckDB aggregations over the whole graph (fan-in/fan-out coupling,
@@ -331,7 +348,15 @@ Suggest sub-package boundaries for a package from its dependency communities.
331
348
 
332
349
  ## `cgis_trace_flow`
333
350
 
334
- Trace the execution call-graph starting from a specific FQN downwards.
351
+ Downstream subgraph of one FQN: everything it reaches within ``depth`` hops.
352
+
353
+ Every edge type counts — calls, imports, inheritance, DI dependencies,
354
+ references, and containment (so from a module or class the first hop includes
355
+ its own members) — so this answers "what does X depend on?". For what depends
356
+ on X use
357
+ ``cgis_analyze_impact``; for only the members of a module or class,
358
+ ``cgis_get_structure``; for a source-included brief to read before editing
359
+ one symbol, ``cgis_context``.
335
360
 
336
361
  ``output_format="mermaid"`` (default) returns a human-readable diagram;
337
362
  ``"json"`` returns a joinable ``{root, nodes, edges, coverage}`` payload
@@ -346,7 +371,7 @@ Trace the execution call-graph starting from a specific FQN downwards.
346
371
  | :--- | :--- | :---: | :--- |
347
372
  | `fqn` | `string` | ✓ | Fully qualified name, e.g. pkg.module.Class.method. A unique dot-boundary suffix also resolves; an ambiguous one returns candidates. Use cgis_find_symbol to look a name up. |
348
373
  | `db_path` | `string` | | SQLite graph built by cgis_ingest. A relative path resolves against the MCP server's working directory, not the agent's — prefer an absolute path. |
349
- | `depth` | `integer` | | Maximum edge hops downstream. Every edge type counts as a hop — CALLS, but also IMPORTS, CONTAINS and REFERENCES — so from a module the first hops are mostly imports and structure. |
374
+ | `depth` | `integer` | | Maximum edge hops downstream. Every edge type counts as a hop — calls, imports, inheritance, DI dependencies, references and containment — so from a module or class the first hop is mostly its own members and imports. |
350
375
  | `output_format` | `string` | | "mermaid" for a diagram, or "json" for a payload with real FQNs (case-insensitive). Any other value returns an error. |
351
376
 
352
377
  ---
@@ -7,7 +7,7 @@ packages = ["src/cgis"]
7
7
 
8
8
  [project]
9
9
  name = "codegraph-brain"
10
- version = "0.23.2"
10
+ version = "0.23.3"
11
11
  description = "Semantic code graph for AI agents — deterministic FQN resolution, impact analysis and architectural drift gates, exposed over MCP."
12
12
  readme = "README.md"
13
13
  requires-python = ">=3.12"
@@ -8,13 +8,13 @@
8
8
  "source": "github",
9
9
  "id": "1260843154"
10
10
  },
11
- "version": "0.23.2",
11
+ "version": "0.23.3",
12
12
  "packages": [
13
13
  {
14
14
  "registryType": "pypi",
15
15
  "registryBaseUrl": "https://pypi.org",
16
16
  "identifier": "codegraph-brain",
17
- "version": "0.23.2",
17
+ "version": "0.23.3",
18
18
  "runtimeHint": "uvx",
19
19
  "transport": {
20
20
  "type": "stdio"
@@ -364,13 +364,21 @@ def cgis_trace_flow(
364
364
  int,
365
365
  Field(
366
366
  description="Maximum edge hops downstream. Every edge type counts as a hop — "
367
- "CALLS, but also IMPORTS, CONTAINS and REFERENCES — so from a module the first "
368
- "hops are mostly imports and structure."
367
+ "calls, imports, inheritance, DI dependencies, references and containment — so "
368
+ "from a module or class the first hop is mostly its own members and imports."
369
369
  ),
370
370
  ] = 3,
371
371
  output_format: OutputFormat = "mermaid",
372
372
  ) -> str:
373
- """Trace the execution call-graph starting from a specific FQN downwards.
373
+ """Downstream subgraph of one FQN: everything it reaches within ``depth`` hops.
374
+
375
+ Every edge type counts — calls, imports, inheritance, DI dependencies,
376
+ references, and containment (so from a module or class the first hop includes
377
+ its own members) — so this answers "what does X depend on?". For what depends
378
+ on X use
379
+ ``cgis_analyze_impact``; for only the members of a module or class,
380
+ ``cgis_get_structure``; for a source-included brief to read before editing
381
+ one symbol, ``cgis_context``.
374
382
 
375
383
  ``output_format="mermaid"`` (default) returns a human-readable diagram;
376
384
  ``"json"`` returns a joinable ``{root, nodes, edges, coverage}`` payload
@@ -417,15 +425,22 @@ def cgis_analyze_impact(
417
425
  int,
418
426
  Field(
419
427
  description="Maximum edge hops upstream. Every edge type counts as a hop — "
420
- "CALLS, but also IMPORTS, CONTAINS and REFERENCES — so modules importing the "
421
- "target and the file containing it appear alongside its callers."
428
+ "callers, importers, subclasses, type references, DI dependents and the "
429
+ "enclosing class or file all appear alongside each other."
422
430
  ),
423
431
  ] = 3,
424
432
  output_format: OutputFormat = "mermaid",
425
433
  ) -> str:
426
- """Analyse transitive upstream callers of a specific FQN.
434
+ """Upstream subgraph of one FQN: everything that reaches it within ``depth`` hops.
435
+
436
+ Every edge type counts — callers, but also importers, subclasses, type
437
+ references, DI dependents and the enclosing class or file — so this answers
438
+ "what breaks if I change X?". For what X depends on use
439
+ ``cgis_trace_flow``; for only the members of a module or class,
440
+ ``cgis_get_structure``; for a source-included brief to read before editing
441
+ one symbol, ``cgis_context``.
427
442
 
428
- Answers "what breaks if I change X?". ``output_format="mermaid"`` (default)
443
+ ``output_format="mermaid"`` (default)
429
444
  returns a diagram; ``"json"`` returns a joinable ``{root, nodes, edges,
430
445
  coverage}`` payload with real FQNs — letting an agent compute set
431
446
  differences (e.g. "which route handlers never reach ``verify_ownership``?")
@@ -471,10 +486,13 @@ def cgis_get_structure(
471
486
  ] = 2,
472
487
  output_format: OutputFormat = "mermaid",
473
488
  ) -> str:
474
- """Show the structural layout (CONTAINS/DECLARES) of a module or class.
489
+ """Members of a module or class: the classes, functions and methods it contains.
475
490
 
476
- Traverses only containment edges — no call-graph noise — matching the CLI
477
- ``structure`` command. ``output_format="mermaid"`` (default) returns a
491
+ Follows containment (CONTAINS/DECLARES) only, so no call or import appears.
492
+ For how the code connects use ``cgis_trace_flow`` (what it depends on) or
493
+ ``cgis_analyze_impact`` (what depends on it).
494
+
495
+ Matches the CLI ``structure`` command. ``output_format="mermaid"`` (default) returns a
478
496
  diagram of the hierarchy rooted at the given FQN; ``"json"`` returns the
479
497
  joinable ``{root, nodes, edges}`` payload with real FQNs.
480
498
  """
@@ -785,7 +803,14 @@ def cgis_context(
785
803
  ),
786
804
  ] = "",
787
805
  ) -> str:
788
- """Compile an agent-facing GraphRAG context package for a focal FQN (#19).
806
+ """Prompt-ready brief on one FQN: its source, class, direct callers and callees.
807
+
808
+ Call this before editing a symbol, instead of reading its files. It follows
809
+ calls only, one hop by default. Source is included when the file is found
810
+ (see ``source_root``), and the domain when the graph was tagged with one.
811
+ For a multi-hop subgraph
812
+ over every edge type without source, use ``cgis_trace_flow`` (downstream) or
813
+ ``cgis_analyze_impact`` (upstream).
789
814
 
790
815
  Returns an XML-tagged prompt — the focal node's source, its enclosing class,
791
816
  its architectural domain boundary, direct callers (upstream ripple) and
@@ -836,7 +861,7 @@ def cgis_metrics(
836
861
  ),
837
862
  ] = None,
838
863
  ) -> str:
839
- """Whole-graph architectural metrics — coupling bottlenecks + God classes (#16).
864
+ """Whole-graph architectural metrics — coupling bottlenecks, God classes, PageRank.
840
865
 
841
866
  Returns JSON ``{bottlenecks, god_classes, critical}`` computed with vectorized
842
867
  DuckDB aggregations over the whole graph (fan-in/fan-out coupling,
@@ -894,7 +919,7 @@ def cgis_find_orphans(
894
919
  bool, Field(description="Include machine-generated classes, which are hidden by default.")
895
920
  ] = False,
896
921
  ) -> str:
897
- """Classes nothing in production builds, extends or names — dead-code candidates (#415).
922
+ """Classes nothing in production builds, extends or names — dead-code candidates.
898
923
 
899
924
  Finds classes that no test, type checker or linter flags, because each is
900
925
  still imported somewhere: a package re-export keeps a class importable long
@@ -976,7 +1001,7 @@ def cgis_audit_reachability(
976
1001
  Field(description="Maximum reachability depth; a longer path is reported as a gap."),
977
1002
  ] = 5,
978
1003
  ) -> str:
979
- """Reachability/authorization audit — which sources never reach a checkpoint (#172).
1004
+ """Reachability/authorization audit — which sources never reach a checkpoint.
980
1005
 
981
1006
  The headline use is **IDOR/authz coverage**: list every route handler that does
982
1007
  NOT transitively reach an ownership check. Reachability follows behavioral edges
@@ -7,6 +7,7 @@ server announced an empty version to every client that connected.
7
7
  """
8
8
 
9
9
  import asyncio
10
+ import re
10
11
 
11
12
  import pytest
12
13
 
@@ -45,3 +46,29 @@ def test_server_announces_the_package_version() -> None:
45
46
  """`initialize` reports the installed version, not an empty string."""
46
47
  assert mcp.version == __version__
47
48
  assert mcp.version
49
+
50
+
51
+ _DESCRIPTIONS = {tool.name: tool.description or "" for tool in asyncio.run(mcp.list_tools())}
52
+
53
+
54
+ def test_tool_summaries_carry_no_issue_numbers() -> None:
55
+ """The first paragraph is what an agent weighs when choosing; `(#19)` tells it nothing."""
56
+ for name, description in _DESCRIPTIONS.items():
57
+ summary = description.strip().split("\n\n")[0]
58
+ assert not re.search(r"\(#\d+\)", summary), f"{name}: {summary!r}"
59
+
60
+
61
+ @pytest.mark.parametrize(
62
+ ("tool", "siblings"),
63
+ [
64
+ ("cgis_trace_flow", {"cgis_analyze_impact", "cgis_get_structure", "cgis_context"}),
65
+ ("cgis_analyze_impact", {"cgis_trace_flow", "cgis_get_structure", "cgis_context"}),
66
+ ("cgis_get_structure", {"cgis_trace_flow", "cgis_analyze_impact"}),
67
+ ("cgis_context", {"cgis_trace_flow", "cgis_analyze_impact"}),
68
+ ],
69
+ )
70
+ def test_overlapping_graph_tools_say_when_to_use_a_sibling(tool: str, siblings: set[str]) -> None:
71
+ """All four return a subgraph around one FQN; each names the ones it could be taken for."""
72
+ description = _DESCRIPTIONS[tool]
73
+ missing = {sibling for sibling in siblings if sibling not in description}
74
+ assert not missing, f"{tool} never mentions {sorted(missing)}"
@@ -261,7 +261,7 @@ wheels = [
261
261
 
262
262
  [[package]]
263
263
  name = "codegraph-brain"
264
- version = "0.23.2"
264
+ version = "0.23.3"
265
265
  source = { editable = "." }
266
266
  dependencies = [
267
267
  { name = "httpx" },
@@ -1,3 +0,0 @@
1
- {
2
- ".": "0.23.2"
3
- }