codegraph-brain 0.7.2__tar.gz → 0.7.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.
- {codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/.github/workflows/ci.yml +5 -0
- codegraph_brain-0.7.3/.github/workflows/release-please.yml +147 -0
- codegraph_brain-0.7.3/.release-please-manifest.json +3 -0
- {codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/CHANGELOG.md +8 -0
- {codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/PKG-INFO +1 -1
- codegraph_brain-0.7.3/docs/assets/.gitignore +1 -0
- codegraph_brain-0.7.3/docs/assets/cgis-app-avatar.png +0 -0
- codegraph_brain-0.7.3/docs/assets/cgis-app-avatar.svg +1 -0
- codegraph_brain-0.7.3/docs/assets/generate_avatar.py +123 -0
- {codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/pyproject.toml +1 -1
- {codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/uv.lock +2 -2
- codegraph_brain-0.7.2/.github/workflows/release-please.yml +0 -76
- codegraph_brain-0.7.2/.release-please-manifest.json +0 -3
- {codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/.claude-plugin/marketplace.json +0 -0
- {codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/.github/workflows/autodoc.yml +0 -0
- {codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/.github/workflows/guardian.yml +0 -0
- {codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/.gitignore +0 -0
- {codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/.pre-commit-config.yaml +0 -0
- {codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/.python-version +0 -0
- {codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/CLAUDE.md +0 -0
- {codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/CONTRIBUTING.md +0 -0
- {codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/LICENSE +0 -0
- {codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/Makefile +0 -0
- {codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/PRIVACY.md +0 -0
- {codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/README.md +0 -0
- {codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/benchmarks/guardian/CURATION.md +0 -0
- {codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/benchmarks/guardian/pr-122.yaml +0 -0
- {codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/benchmarks/guardian/pr-140.yaml +0 -0
- {codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/benchmarks/guardian/pr-141.yaml +0 -0
- {codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/benchmarks/guardian/pr-142.yaml +0 -0
- {codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/benchmarks/guardian/pr-143.yaml +0 -0
- {codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/benchmarks/guardian/pr-144.yaml +0 -0
- {codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/benchmarks/guardian/pr-278.yaml +0 -0
- {codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/benchmarks/guardian/results.jsonl +0 -0
- {codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/data/.gitkeep +0 -0
- {codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/docs/AUDIT.md +0 -0
- {codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/docs/CASE_STUDY.md +0 -0
- {codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/docs/architecture/HOW_IT_WORKS.md +0 -0
- {codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/docs/architecture/ONTOLOGY.md +0 -0
- {codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/docs/architecture/PATTERNS_AND_TRIADS.md +0 -0
- {codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/docs/architecture/SELF_PORTRAIT.md +0 -0
- {codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/docs/architecture/diagrams/pipeline_flow.mermaid +0 -0
- {codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/docs/architecture/health_badge.json +0 -0
- {codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/docs/examples/.gitkeep +0 -0
- {codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/docs/how-to/AGENT_ONBOARDING.md +0 -0
- {codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/docs/how-to/CLI_USAGE.md +0 -0
- {codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/docs/how-to/MCP_REFERENCE.md +0 -0
- {codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/docs/lab-notes/2026-06-11-chunked-review-negative-result.md +0 -0
- {codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/docs/ontology/.gitkeep +0 -0
- {codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/docs/ontology/core.yaml +0 -0
- {codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/docs/ontology/domains.yaml +0 -0
- {codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/docs/ontology/patterns.yaml +0 -0
- {codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/docs/ontology/tolerances.lock +0 -0
- {codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/docs/specs/2026-06-09-domain-pattern-fingerprint-design.md +0 -0
- {codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/docs/specs/2026-06-09-pattern-alphabet-motif-basis-design.md +0 -0
- {codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/docs/specs/2026-06-10-guardian-sprint-design.md +0 -0
- {codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/docs/specs/2026-06-11-fastapi-di-edges-design.md +0 -0
- {codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/docs/specs/2026-06-11-guardian-chunked-review-design.md +0 -0
- {codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/docs/specs/2026-06-11-guardian-chunker-design.md +0 -0
- {codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/docs/specs/2026-06-11-mcp-drift-validate-fqn-design.md +0 -0
- {codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/docs/specs/2026-06-11-resolver-split-design.md +0 -0
- {codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/docs/specs/2026-06-11-symbol-import-edges-design.md +0 -0
- {codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/docs/specs/2026-06-12-drift-empty-domains-design.md +0 -0
- {codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/docs/specs/2026-06-12-gate-semantics-design.md +0 -0
- {codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/docs/specs/2026-06-12-init-ontology-design.md +0 -0
- {codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/docs/specs/2026-06-12-release-please-ci-design.md +0 -0
- {codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/docs/specs/2026-06-13-suggest-packages-design.md +0 -0
- {codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/docs/specs/2026-06-13-tangle-anti-pattern-design.md +0 -0
- {codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/docs/specs/2026-07-29-guardian-skeptic-scoring-design.md +0 -0
- {codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/docs/specs/2026-07-30-cgis-fractal-design.md +0 -0
- {codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/docs/specs/2026-07-30-cgis-fractal-plan.md +0 -0
- {codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/docs/specs/2026-07-30-chunk-source-filter-design.md +0 -0
- {codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/docs/specs/2026-07-30-chunk-source-filter-plan.md +0 -0
- {codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/docs/specs/2026-07-30-genai-client-close-design.md +0 -0
- {codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/docs/specs/2026-07-30-genai-client-close-plan.md +0 -0
- {codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/docs/specs/2026-07-30-guardian-precision-bench-design.md +0 -0
- {codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/docs/specs/2026-07-30-guardian-precision-bench-plan.md +0 -0
- {codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/docs/specs/2026-07-30-guardian-timeout-retry-design.md +0 -0
- {codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/docs/specs/2026-07-30-guardian-timeout-retry-plan.md +0 -0
- {codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/docs/specs/2026-07-31-finder-bug-class-taxonomy.md +0 -0
- {codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/docs/specs/BLUEPRINT.md +0 -0
- {codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/docs/specs/PRD.md +0 -0
- {codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/docs/specs/TDD.md +0 -0
- {codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/docs/specs/plans/2026-06-09-fingerprint-drift.md +0 -0
- {codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/docs/specs/plans/2026-06-10-guardian-context-skeptic-inline.md +0 -0
- {codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/docs/specs/plans/2026-06-10-guardian-structured-findings-bench.md +0 -0
- {codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/docs/specs/plans/2026-06-10-motif-basis-part-b.md +0 -0
- {codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/docs/specs/plans/2026-06-10-unified-pattern-alphabet.md +0 -0
- {codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/docs/specs/plans/2026-06-11-fastapi-di-edges.md +0 -0
- {codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/docs/specs/plans/2026-06-11-guardian-chunked-review.md +0 -0
- {codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/docs/specs/plans/2026-06-11-guardian-chunker.md +0 -0
- {codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/docs/specs/plans/2026-06-11-mcp-drift-validate-fqn.md +0 -0
- {codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/docs/specs/plans/2026-06-11-resolver-split.md +0 -0
- {codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/docs/specs/plans/2026-06-12-drift-empty-domains.md +0 -0
- {codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/docs/specs/plans/2026-06-12-gate-semantics.md +0 -0
- {codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/docs/specs/plans/2026-06-12-init-ontology.md +0 -0
- {codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/docs/specs/plans/2026-06-12-release-please-ci.md +0 -0
- {codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/docs/specs/plans/2026-06-12-symbol-import-edges.md +0 -0
- {codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/docs/specs/plans/2026-06-13-suggest-packages.md +0 -0
- {codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/docs/specs/plans/2026-07-29-guardian-skeptic-scoring.md +0 -0
- {codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/main.py +0 -0
- {codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/plugin/.claude-plugin/plugin.json +0 -0
- {codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/plugin/.mcp.json +0 -0
- {codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/plugin/README.md +0 -0
- {codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/plugin/skills/cgis/SKILL.md +0 -0
- {codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/plugin/skills/ingest/SKILL.md +0 -0
- {codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/release-please-config.json +0 -0
- {codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/scripts/gen_ideal_graph.py +0 -0
- {codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/scripts/generate_health.py +0 -0
- {codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/scripts/generate_mcp_ref.py +0 -0
- {codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/scripts/generate_schema_docs.py +0 -0
- {codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/scripts/guardian_bench.py +0 -0
- {codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/scripts/guardian_review.py +0 -0
- {codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/scripts/inject_readme_graph.py +0 -0
- {codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/scripts/probe_closure_gap.py +0 -0
- {codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/scripts/probe_tier_ladder.py +0 -0
- {codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/src/cgis/__init__.py +0 -0
- {codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/src/cgis/__main__.py +0 -0
- {codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/src/cgis/api/.gitkeep +0 -0
- {codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/src/cgis/api/__init__.py +0 -0
- {codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/src/cgis/api/mcp_server.py +0 -0
- {codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/src/cgis/cli.py +0 -0
- {codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/src/cgis/core/.gitkeep +0 -0
- {codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/src/cgis/core/models.py +0 -0
- {codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/src/cgis/extractors/.gitkeep +0 -0
- {codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/src/cgis/extractors/_python_ast.py +0 -0
- {codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/src/cgis/extractors/_python_classes.py +0 -0
- {codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/src/cgis/extractors/_python_functions.py +0 -0
- {codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/src/cgis/extractors/_python_imports.py +0 -0
- {codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/src/cgis/extractors/_python_types.py +0 -0
- {codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/src/cgis/extractors/base.py +0 -0
- {codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/src/cgis/extractors/python_extractor.py +0 -0
- {codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/src/cgis/extractors/typescript_extractor.py +0 -0
- {codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/src/cgis/guardian/__init__.py +0 -0
- {codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/src/cgis/guardian/bench.py +0 -0
- {codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/src/cgis/guardian/chunked.py +0 -0
- {codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/src/cgis/guardian/chunker.py +0 -0
- {codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/src/cgis/guardian/collector.py +0 -0
- {codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/src/cgis/guardian/core.py +0 -0
- {codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/src/cgis/guardian/diff_index.py +0 -0
- {codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/src/cgis/guardian/findings.py +0 -0
- {codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/src/cgis/guardian/github_poster.py +0 -0
- {codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/src/cgis/guardian/metrics.py +0 -0
- {codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/src/cgis/guardian/prompts.py +0 -0
- {codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/src/cgis/guardian/providers/__init__.py +0 -0
- {codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/src/cgis/guardian/providers/base.py +0 -0
- {codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/src/cgis/guardian/providers/gemini.py +0 -0
- {codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/src/cgis/guardian/providers/mistral.py +0 -0
- {codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/src/cgis/guardian/providers/ollama.py +0 -0
- {codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/src/cgis/guardian/recording.py +0 -0
- {codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/src/cgis/guardian/render.py +0 -0
- {codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/src/cgis/guardian/runner.py +0 -0
- {codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/src/cgis/guardian/skeptic.py +0 -0
- {codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/src/cgis/pipeline.py +0 -0
- {codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/src/cgis/py.typed +0 -0
- {codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/src/cgis/query/analysis/__init__.py +0 -0
- {codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/src/cgis/query/analysis/analyzer.py +0 -0
- {codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/src/cgis/query/analysis/anomaly.py +0 -0
- {codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/src/cgis/query/analysis/cohesion.py +0 -0
- {codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/src/cgis/query/analysis/health.py +0 -0
- {codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/src/cgis/query/analysis/suggest_service.py +0 -0
- {codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/src/cgis/query/context/__init__.py +0 -0
- {codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/src/cgis/query/context/audit.py +0 -0
- {codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/src/cgis/query/context/context_service.py +0 -0
- {codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/src/cgis/query/context/prompt.py +0 -0
- {codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/src/cgis/query/context/snippet.py +0 -0
- {codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/src/cgis/query/drift/__init__.py +0 -0
- {codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/src/cgis/query/drift/_scc.py +0 -0
- {codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/src/cgis/query/drift/drift.py +0 -0
- {codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/src/cgis/query/drift/drift_service.py +0 -0
- {codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/src/cgis/query/drift/fingerprint.py +0 -0
- {codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/src/cgis/query/drift/fractal.py +0 -0
- {codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/src/cgis/query/drift/ontology_init.py +0 -0
- {codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/src/cgis/query/drift/quotient.py +0 -0
- {codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/src/cgis/query/drift/triads.py +0 -0
- {codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/src/cgis/query/engine.py +0 -0
- {codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/src/cgis/query/fqn.py +0 -0
- {codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/src/cgis/query/render/__init__.py +0 -0
- {codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/src/cgis/query/render/graph_json.py +0 -0
- {codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/src/cgis/query/render/mermaid.py +0 -0
- {codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/src/cgis/query/render/metrics.py +0 -0
- {codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/src/cgis/resolver/.gitkeep +0 -0
- {codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/src/cgis/resolver/__init__.py +0 -0
- {codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/src/cgis/resolver/engine.py +0 -0
- {codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/src/cgis/resolver/indices.py +0 -0
- {codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/src/cgis/resolver/symbols.py +0 -0
- {codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/src/cgis/resolver/uplift.py +0 -0
- {codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/src/cgis/storage/.gitkeep +0 -0
- {codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/src/cgis/storage/sqlite_store.py +0 -0
- {codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/tests/integration/.gitkeep +0 -0
- {codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/tests/self_parsing/.gitkeep +0 -0
- {codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/tests/self_parsing/__init__.py +0 -0
- {codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/tests/self_parsing/conftest.py +0 -0
- {codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/tests/self_parsing/test_architecture.py +0 -0
- {codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/tests/self_parsing/test_drift.py +0 -0
- {codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/tests/self_parsing/test_fractal.py +0 -0
- {codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/tests/self_parsing/test_init_ontology_roundtrip.py +0 -0
- {codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/tests/self_parsing/test_self_parse.py +0 -0
- {codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/tests/self_parsing/test_self_parse_ts.py +0 -0
- {codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/tests/self_parsing/test_suggest.py +0 -0
- {codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/tests/unit/.gitkeep +0 -0
- {codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/tests/unit/conftest.py +0 -0
- {codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/tests/unit/guardian_stubs.py +0 -0
- {codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/tests/unit/test___main__.py +0 -0
- {codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/tests/unit/test_analyzer.py +0 -0
- {codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/tests/unit/test_audit.py +0 -0
- {codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/tests/unit/test_cli.py +0 -0
- {codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/tests/unit/test_cohesion.py +0 -0
- {codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/tests/unit/test_context_service.py +0 -0
- {codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/tests/unit/test_di_acceptance.py +0 -0
- {codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/tests/unit/test_drift.py +0 -0
- {codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/tests/unit/test_drift_service.py +0 -0
- {codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/tests/unit/test_fingerprint.py +0 -0
- {codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/tests/unit/test_fqn.py +0 -0
- {codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/tests/unit/test_fractal.py +0 -0
- {codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/tests/unit/test_gen_ideal_graph.py +0 -0
- {codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/tests/unit/test_generate_mcp_ref.py +0 -0
- {codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/tests/unit/test_graph_json.py +0 -0
- {codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/tests/unit/test_guardian_bench.py +0 -0
- {codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/tests/unit/test_guardian_chunked.py +0 -0
- {codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/tests/unit/test_guardian_chunker.py +0 -0
- {codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/tests/unit/test_guardian_collector.py +0 -0
- {codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/tests/unit/test_guardian_core.py +0 -0
- {codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/tests/unit/test_guardian_diff_index.py +0 -0
- {codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/tests/unit/test_guardian_findings.py +0 -0
- {codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/tests/unit/test_guardian_metrics.py +0 -0
- {codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/tests/unit/test_guardian_poster.py +0 -0
- {codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/tests/unit/test_guardian_providers.py +0 -0
- {codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/tests/unit/test_guardian_recording.py +0 -0
- {codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/tests/unit/test_guardian_render.py +0 -0
- {codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/tests/unit/test_guardian_runner.py +0 -0
- {codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/tests/unit/test_guardian_skeptic.py +0 -0
- {codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/tests/unit/test_health_scorer.py +0 -0
- {codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/tests/unit/test_import_acceptance.py +0 -0
- {codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/tests/unit/test_mcp_server.py +0 -0
- {codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/tests/unit/test_mermaid.py +0 -0
- {codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/tests/unit/test_metrics.py +0 -0
- {codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/tests/unit/test_models.py +0 -0
- {codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/tests/unit/test_ontology_compliance.py +0 -0
- {codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/tests/unit/test_ontology_init.py +0 -0
- {codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/tests/unit/test_patterns_yaml.py +0 -0
- {codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/tests/unit/test_pipeline.py +0 -0
- {codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/tests/unit/test_prompt.py +0 -0
- {codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/tests/unit/test_python_extractor.py +0 -0
- {codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/tests/unit/test_quotient.py +0 -0
- {codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/tests/unit/test_resolver.py +0 -0
- {codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/tests/unit/test_resolver_indices.py +0 -0
- {codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/tests/unit/test_resolver_symbols.py +0 -0
- {codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/tests/unit/test_snippet.py +0 -0
- {codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/tests/unit/test_sqlite_store.py +0 -0
- {codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/tests/unit/test_suggest_service.py +0 -0
- {codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/tests/unit/test_triads.py +0 -0
- {codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/tests/unit/test_typescript_extractor.py +0 -0
- {codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/tests/unit/test_uplift.py +0 -0
|
@@ -19,6 +19,11 @@ jobs:
|
|
|
19
19
|
with:
|
|
20
20
|
enable-cache: true
|
|
21
21
|
|
|
22
|
+
- name: Lockfile in step with pyproject
|
|
23
|
+
# MUST run before `uv sync`: sync silently re-resolves and rewrites
|
|
24
|
+
# uv.lock, so a check placed after it would always pass.
|
|
25
|
+
run: uv lock --check
|
|
26
|
+
|
|
22
27
|
- name: Install Dependencies
|
|
23
28
|
run: uv sync --group dev
|
|
24
29
|
|
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
name: Release Please
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
branches: [ main ]
|
|
6
|
+
workflow_dispatch:
|
|
7
|
+
|
|
8
|
+
jobs:
|
|
9
|
+
release-please:
|
|
10
|
+
name: Release Please
|
|
11
|
+
runs-on: ubuntu-latest
|
|
12
|
+
permissions:
|
|
13
|
+
# Scoped to this job only: the publish job below must never inherit
|
|
14
|
+
# write access to the repository.
|
|
15
|
+
contents: write
|
|
16
|
+
pull-requests: write
|
|
17
|
+
outputs:
|
|
18
|
+
release_created: ${{ steps.release.outputs.release_created }}
|
|
19
|
+
tag_name: ${{ steps.release.outputs.tag_name }}
|
|
20
|
+
release_pr: ${{ steps.release.outputs.pr }}
|
|
21
|
+
steps:
|
|
22
|
+
- name: Mint a GitHub App token
|
|
23
|
+
id: app-token
|
|
24
|
+
# A GITHUB_TOKEN-authored PR leaves its checks parked in
|
|
25
|
+
# `action_required` forever, so release-please needs an identity of its
|
|
26
|
+
# own. App tokens beat a PAT: one hour of life, auto-rotated, scoped to
|
|
27
|
+
# this repo, and not tied to anyone's personal account.
|
|
28
|
+
# continue-on-error: an unconfigured App must degrade, not break the release.
|
|
29
|
+
continue-on-error: true
|
|
30
|
+
uses: actions/create-github-app-token@bcd2ba49218906704ab6c1aa796996da409d3eb1 # v3.2.0
|
|
31
|
+
with:
|
|
32
|
+
# Accepted from either store: the App ID is not sensitive, so a repo
|
|
33
|
+
# variable is conventional, but it is commonly filed as a secret.
|
|
34
|
+
app-id: ${{ vars.CGIS_APP_ID || secrets.CGIS_APP_ID }}
|
|
35
|
+
private-key: ${{ secrets.CGIS_APP_PRIVATE_KEY }}
|
|
36
|
+
|
|
37
|
+
- name: Run release-please
|
|
38
|
+
id: release
|
|
39
|
+
uses: googleapis/release-please-action@5c625bfb5d1ff62eadeeb3772007f7f66fdcf071 # v4.4.1
|
|
40
|
+
with:
|
|
41
|
+
# Falls back to GITHUB_TOKEN when the App is not configured — the
|
|
42
|
+
# release still opens, its checks just need a manual nudge.
|
|
43
|
+
token: ${{ steps.app-token.outputs.token || secrets.GITHUB_TOKEN }}
|
|
44
|
+
config-file: release-please-config.json
|
|
45
|
+
manifest-file: .release-please-manifest.json
|
|
46
|
+
|
|
47
|
+
relock:
|
|
48
|
+
name: Re-lock the release PR
|
|
49
|
+
needs: release-please
|
|
50
|
+
# Only when release-please actually has an open release PR to amend.
|
|
51
|
+
if: needs.release-please.outputs.release_pr != ''
|
|
52
|
+
runs-on: ubuntu-latest
|
|
53
|
+
permissions:
|
|
54
|
+
# Narrower than the release job: this one only pushes a lockfile.
|
|
55
|
+
contents: write
|
|
56
|
+
steps:
|
|
57
|
+
- name: Mint a GitHub App token
|
|
58
|
+
id: app-token
|
|
59
|
+
# A GITHUB_TOKEN-authored PR leaves its checks parked in
|
|
60
|
+
# `action_required` forever, so release-please needs an identity of its
|
|
61
|
+
# own. App tokens beat a PAT: one hour of life, auto-rotated, scoped to
|
|
62
|
+
# this repo, and not tied to anyone's personal account.
|
|
63
|
+
# continue-on-error: an unconfigured App must degrade, not break the release.
|
|
64
|
+
continue-on-error: true
|
|
65
|
+
uses: actions/create-github-app-token@bcd2ba49218906704ab6c1aa796996da409d3eb1 # v3.2.0
|
|
66
|
+
with:
|
|
67
|
+
# Accepted from either store: the App ID is not sensitive, so a repo
|
|
68
|
+
# variable is conventional, but it is commonly filed as a secret.
|
|
69
|
+
app-id: ${{ vars.CGIS_APP_ID || secrets.CGIS_APP_ID }}
|
|
70
|
+
private-key: ${{ secrets.CGIS_APP_PRIVATE_KEY }}
|
|
71
|
+
|
|
72
|
+
- name: Checkout the release branch
|
|
73
|
+
uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4
|
|
74
|
+
with:
|
|
75
|
+
ref: ${{ fromJSON(needs.release-please.outputs.release_pr).headBranchName }}
|
|
76
|
+
token: ${{ steps.app-token.outputs.token || secrets.GITHUB_TOKEN }}
|
|
77
|
+
|
|
78
|
+
- name: Setup uv
|
|
79
|
+
uses: astral-sh/setup-uv@caf0cab7a618c569241d31dcd442f54681755d39 # v3
|
|
80
|
+
with:
|
|
81
|
+
enable-cache: true
|
|
82
|
+
|
|
83
|
+
- name: Re-lock and push if the version moved
|
|
84
|
+
run: |
|
|
85
|
+
set -euo pipefail
|
|
86
|
+
# release-please bumps pyproject.toml but never re-resolves uv.lock, so
|
|
87
|
+
# the lockfile's own version entry falls a release behind and the CI
|
|
88
|
+
# `uv lock --check` gate fails on every release PR (#303).
|
|
89
|
+
uv lock
|
|
90
|
+
if git diff --quiet -- uv.lock; then
|
|
91
|
+
echo "uv.lock already in step with pyproject.toml"
|
|
92
|
+
exit 0
|
|
93
|
+
fi
|
|
94
|
+
git config user.name "github-actions[bot]"
|
|
95
|
+
git config user.email "41898282+github-actions[bot]@users.noreply.github.com"
|
|
96
|
+
git add uv.lock
|
|
97
|
+
git commit -m "chore: re-lock uv.lock for the release"
|
|
98
|
+
git push
|
|
99
|
+
|
|
100
|
+
publish:
|
|
101
|
+
name: Publish to PyPI
|
|
102
|
+
needs: release-please
|
|
103
|
+
if: needs.release-please.outputs.release_created == 'true'
|
|
104
|
+
runs-on: ubuntu-latest
|
|
105
|
+
environment:
|
|
106
|
+
name: pypi
|
|
107
|
+
url: https://pypi.org/p/codegraph-brain
|
|
108
|
+
permissions:
|
|
109
|
+
# Mints the short-lived OIDC token PyPI exchanges for an upload token.
|
|
110
|
+
# This is the whole point of trusted publishing: no API token in secrets.
|
|
111
|
+
id-token: write
|
|
112
|
+
# Lets the publish action attach PEP 740 provenance attestations.
|
|
113
|
+
attestations: write
|
|
114
|
+
contents: read
|
|
115
|
+
steps:
|
|
116
|
+
- name: Checkout Code
|
|
117
|
+
uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4
|
|
118
|
+
with:
|
|
119
|
+
ref: ${{ needs.release-please.outputs.tag_name }}
|
|
120
|
+
|
|
121
|
+
- name: Setup uv
|
|
122
|
+
uses: astral-sh/setup-uv@caf0cab7a618c569241d31dcd442f54681755d39 # v3
|
|
123
|
+
with:
|
|
124
|
+
enable-cache: true
|
|
125
|
+
|
|
126
|
+
- name: Build sdist and wheel
|
|
127
|
+
run: uv build
|
|
128
|
+
|
|
129
|
+
- name: Verify metadata
|
|
130
|
+
# Pinned and wheel-only: this job holds publish rights, so the tooling
|
|
131
|
+
# it pulls in must not be a floating version that can run setup scripts.
|
|
132
|
+
run: uvx --no-build --from "twine==7.0.0" twine check dist/*
|
|
133
|
+
|
|
134
|
+
- name: Verify version matches the tag
|
|
135
|
+
env:
|
|
136
|
+
TAG_NAME: ${{ needs.release-please.outputs.tag_name }}
|
|
137
|
+
run: |
|
|
138
|
+
set -euo pipefail
|
|
139
|
+
built=$(ls dist/*.whl | sed -E 's/.*-([0-9][^-]*)-py3.*/\1/')
|
|
140
|
+
echo "tag=$TAG_NAME built=$built"
|
|
141
|
+
case "$TAG_NAME" in
|
|
142
|
+
*"$built") ;;
|
|
143
|
+
*) echo "::error::tag $TAG_NAME does not match built version $built"; exit 1 ;;
|
|
144
|
+
esac
|
|
145
|
+
|
|
146
|
+
- name: Publish
|
|
147
|
+
uses: pypa/gh-action-pypi-publish@dc37677b2e1c63e2034f94d8a5b11f265b73ba33 # v1.14.2
|
|
@@ -1,5 +1,13 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [0.7.3](https://github.com/zaebee/codegraph-brain/compare/codegraph-brain-v0.7.2...codegraph-brain-v0.7.3) (2026-07-31)
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
### Bug Fixes
|
|
7
|
+
|
|
8
|
+
* **assets:** drop the argv-driven output path from the avatar generator ([#308](https://github.com/zaebee/codegraph-brain/issues/308)) ([d118074](https://github.com/zaebee/codegraph-brain/commit/d118074a6b2137f789b4978f870f5496ee1135b5))
|
|
9
|
+
* **ci:** read the App ID from a secret as well as a variable ([#306](https://github.com/zaebee/codegraph-brain/issues/306)) ([90513bc](https://github.com/zaebee/codegraph-brain/commit/90513bc3f588241848fd7404f9be5b6479a72293))
|
|
10
|
+
|
|
3
11
|
## [0.7.2](https://github.com/zaebee/codegraph-brain/compare/codegraph-brain-v0.7.1...codegraph-brain-v0.7.2) (2026-07-31)
|
|
4
12
|
|
|
5
13
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: codegraph-brain
|
|
3
|
-
Version: 0.7.
|
|
3
|
+
Version: 0.7.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
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
_variants/
|
|
Binary file
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 200 200" width="200" height="200"><rect width="200" height="200" rx="44" fill="#0d1526"/><line x1="113.2" y1="55.7" x2="142.8" y2="86.3" stroke="#64748b" stroke-width="8" stroke-linecap="round"/><line x1="142.8" y1="113.7" x2="113.2" y2="144.3" stroke="#64748b" stroke-width="8" stroke-linecap="round"/><line x1="86.8" y1="55.7" x2="57.2" y2="86.3" stroke="#fbbf24" stroke-width="9" stroke-linecap="round"/><line x1="57.2" y1="113.7" x2="86.8" y2="144.3" stroke="#fbbf24" stroke-width="9" stroke-linecap="round"/><circle cx="100" cy="42" r="18" fill="#22d3ee"/><circle cx="44" cy="100" r="18" fill="#fbbf24"/><circle cx="156" cy="100" r="18" fill="#a78bfa"/><circle cx="100" cy="158" r="18" fill="#22d3ee"/></svg>
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
"""Generate the cgis GitHub App avatar.
|
|
2
|
+
|
|
3
|
+
Ships `v3-lit-path` as `cgis-app-avatar.png`; the other two are kept so the
|
|
4
|
+
alternatives are on the record rather than lost in a chat log.
|
|
5
|
+
|
|
6
|
+
The motif comes from the domain rather than decoration: cgis's drift alphabet is
|
|
7
|
+
built on directed triads (`_TRICODES` / `TRIAD_ORDER`), so the glyphs are actual
|
|
8
|
+
triad shapes — 021D (diverging) and the layered_dag ideal.
|
|
9
|
+
|
|
10
|
+
No arrowheads. SVG markers scale by stroke-width by default (a 4.5-unit head at
|
|
11
|
+
stroke 9 renders as a 40-unit blob), and even sized correctly an arrowhead is
|
|
12
|
+
mush at the 40px a bot avatar occupies in a PR thread. Hierarchy is carried by
|
|
13
|
+
node size and colour instead.
|
|
14
|
+
|
|
15
|
+
Rendered at 400px for upload and 40px to check legibility at comment size.
|
|
16
|
+
"""
|
|
17
|
+
|
|
18
|
+
import pathlib
|
|
19
|
+
|
|
20
|
+
import cairosvg
|
|
21
|
+
|
|
22
|
+
BG = "#0d1526"
|
|
23
|
+
EDGE = "#64748b"
|
|
24
|
+
CYAN = "#22d3ee"
|
|
25
|
+
VIOLET = "#a78bfa"
|
|
26
|
+
AMBER = "#fbbf24"
|
|
27
|
+
|
|
28
|
+
HEAD = (
|
|
29
|
+
'<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 200 200" width="200" height="200">'
|
|
30
|
+
f'<rect width="200" height="200" rx="44" fill="{BG}"/>'
|
|
31
|
+
)
|
|
32
|
+
TAIL = "</svg>"
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
def edge(
|
|
36
|
+
p1: tuple[float, float], p2: tuple[float, float], *, colour: str = EDGE, w: float = 8
|
|
37
|
+
) -> str:
|
|
38
|
+
"""A graph edge, trimmed at both ends so it meets the node rims cleanly."""
|
|
39
|
+
(x1, y1), (x2, y2) = p1, p2
|
|
40
|
+
dx, dy = x2 - x1, y2 - y1
|
|
41
|
+
length = (dx * dx + dy * dy) ** 0.5
|
|
42
|
+
ux, uy = dx / length, dy / length
|
|
43
|
+
pad = 19
|
|
44
|
+
return (
|
|
45
|
+
f'<line x1="{x1 + ux * pad:.1f}" y1="{y1 + uy * pad:.1f}" '
|
|
46
|
+
f'x2="{x2 - ux * pad:.1f}" y2="{y2 - uy * pad:.1f}" '
|
|
47
|
+
f'stroke="{colour}" stroke-width="{w}" stroke-linecap="round"/>'
|
|
48
|
+
)
|
|
49
|
+
|
|
50
|
+
|
|
51
|
+
def node(p: tuple[float, float], colour: str, r: float = 18) -> str:
|
|
52
|
+
"""A graph node."""
|
|
53
|
+
return f'<circle cx="{p[0]}" cy="{p[1]}" r="{r}" fill="{colour}"/>'
|
|
54
|
+
|
|
55
|
+
|
|
56
|
+
TOP, LEFT, RIGHT, BOTTOM = (100, 42), (44, 100), (156, 100), (100, 158)
|
|
57
|
+
|
|
58
|
+
# 1. layered_dag — diverge at the top, converge at the bottom.
|
|
59
|
+
v1 = (
|
|
60
|
+
HEAD
|
|
61
|
+
+ edge(TOP, LEFT)
|
|
62
|
+
+ edge(TOP, RIGHT)
|
|
63
|
+
+ edge(LEFT, BOTTOM)
|
|
64
|
+
+ edge(RIGHT, BOTTOM)
|
|
65
|
+
+ node(TOP, CYAN)
|
|
66
|
+
+ node(LEFT, VIOLET)
|
|
67
|
+
+ node(RIGHT, VIOLET)
|
|
68
|
+
+ node(BOTTOM, CYAN)
|
|
69
|
+
+ TAIL
|
|
70
|
+
)
|
|
71
|
+
|
|
72
|
+
# 2. 021D on its own — fewest strokes, best legibility at 40px.
|
|
73
|
+
T2, BL2, BR2 = (100, 54), (48, 144), (152, 144)
|
|
74
|
+
v2 = (
|
|
75
|
+
HEAD
|
|
76
|
+
+ edge(T2, BL2, w=9)
|
|
77
|
+
+ edge(T2, BR2, w=9)
|
|
78
|
+
+ node(T2, CYAN, 21)
|
|
79
|
+
+ node(BL2, VIOLET, 21)
|
|
80
|
+
+ node(BR2, VIOLET, 21)
|
|
81
|
+
+ TAIL
|
|
82
|
+
)
|
|
83
|
+
|
|
84
|
+
# 3. layered_dag with one path lit — structure, plus the analysis laid over it.
|
|
85
|
+
v3 = (
|
|
86
|
+
HEAD
|
|
87
|
+
+ edge(TOP, RIGHT)
|
|
88
|
+
+ edge(RIGHT, BOTTOM)
|
|
89
|
+
+ edge(TOP, LEFT, colour=AMBER, w=9)
|
|
90
|
+
+ edge(LEFT, BOTTOM, colour=AMBER, w=9)
|
|
91
|
+
+ node(TOP, CYAN)
|
|
92
|
+
+ node(LEFT, AMBER)
|
|
93
|
+
+ node(RIGHT, VIOLET)
|
|
94
|
+
+ node(BOTTOM, CYAN)
|
|
95
|
+
+ TAIL
|
|
96
|
+
)
|
|
97
|
+
|
|
98
|
+
HERE = pathlib.Path(__file__).parent
|
|
99
|
+
# Variants land in a gitignored scratch dir; only the chosen one is versioned,
|
|
100
|
+
# so re-running this never litters docs/assets.
|
|
101
|
+
VARIANTS = HERE / "_variants"
|
|
102
|
+
VARIANTS.mkdir(parents=True, exist_ok=True)
|
|
103
|
+
|
|
104
|
+
CHOSEN = "v3-lit-path"
|
|
105
|
+
|
|
106
|
+
for name, svg in (("v1-layered-dag", v1), ("v2-fanout", v2), ("v3-lit-path", v3)):
|
|
107
|
+
(VARIANTS / f"{name}.svg").write_text(svg)
|
|
108
|
+
for px in (400, 40):
|
|
109
|
+
cairosvg.svg2png(
|
|
110
|
+
bytestring=svg.encode(),
|
|
111
|
+
write_to=str(VARIANTS / f"{name}-{px}.png"),
|
|
112
|
+
output_width=px,
|
|
113
|
+
output_height=px,
|
|
114
|
+
)
|
|
115
|
+
if name == CHOSEN:
|
|
116
|
+
(HERE / "cgis-app-avatar.svg").write_text(svg)
|
|
117
|
+
cairosvg.svg2png(
|
|
118
|
+
bytestring=svg.encode(),
|
|
119
|
+
write_to=str(HERE / "cgis-app-avatar.png"),
|
|
120
|
+
output_width=400,
|
|
121
|
+
output_height=400,
|
|
122
|
+
)
|
|
123
|
+
print(f"rendered {name}" + (" <- shipped as cgis-app-avatar.*" if name == CHOSEN else ""))
|
|
@@ -7,7 +7,7 @@ packages = ["src/cgis"]
|
|
|
7
7
|
|
|
8
8
|
[project]
|
|
9
9
|
name = "codegraph-brain"
|
|
10
|
-
version = "0.7.
|
|
10
|
+
version = "0.7.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"
|
|
@@ -261,7 +261,7 @@ wheels = [
|
|
|
261
261
|
|
|
262
262
|
[[package]]
|
|
263
263
|
name = "codegraph-brain"
|
|
264
|
-
version = "0.7.
|
|
264
|
+
version = "0.7.3"
|
|
265
265
|
source = { editable = "." }
|
|
266
266
|
dependencies = [
|
|
267
267
|
{ name = "httpx" },
|
|
@@ -1246,7 +1246,7 @@ name = "pexpect"
|
|
|
1246
1246
|
version = "4.9.0"
|
|
1247
1247
|
source = { registry = "https://pypi.org/simple" }
|
|
1248
1248
|
dependencies = [
|
|
1249
|
-
{ name = "ptyprocess"
|
|
1249
|
+
{ name = "ptyprocess" },
|
|
1250
1250
|
]
|
|
1251
1251
|
sdist = { url = "https://files.pythonhosted.org/packages/42/92/cc564bf6381ff43ce1f4d06852fc19a2f11d180f23dc32d9588bee2f149d/pexpect-4.9.0.tar.gz", hash = "sha256:ee7d41123f3c9911050ea2c2dac107568dc43b2d3b0c7557a33212c398ead30f", size = 166450, upload-time = "2023-11-25T09:07:26.339Z" }
|
|
1252
1252
|
wheels = [
|
|
@@ -1,76 +0,0 @@
|
|
|
1
|
-
name: Release Please
|
|
2
|
-
|
|
3
|
-
on:
|
|
4
|
-
push:
|
|
5
|
-
branches: [ main ]
|
|
6
|
-
workflow_dispatch:
|
|
7
|
-
|
|
8
|
-
jobs:
|
|
9
|
-
release-please:
|
|
10
|
-
name: Release Please
|
|
11
|
-
runs-on: ubuntu-latest
|
|
12
|
-
permissions:
|
|
13
|
-
# Scoped to this job only: the publish job below must never inherit
|
|
14
|
-
# write access to the repository.
|
|
15
|
-
contents: write
|
|
16
|
-
pull-requests: write
|
|
17
|
-
outputs:
|
|
18
|
-
release_created: ${{ steps.release.outputs.release_created }}
|
|
19
|
-
tag_name: ${{ steps.release.outputs.tag_name }}
|
|
20
|
-
steps:
|
|
21
|
-
- name: Run release-please
|
|
22
|
-
id: release
|
|
23
|
-
uses: googleapis/release-please-action@5c625bfb5d1ff62eadeeb3772007f7f66fdcf071 # v4.4.1
|
|
24
|
-
with:
|
|
25
|
-
token: ${{ secrets.GITHUB_TOKEN }}
|
|
26
|
-
config-file: release-please-config.json
|
|
27
|
-
manifest-file: .release-please-manifest.json
|
|
28
|
-
|
|
29
|
-
publish:
|
|
30
|
-
name: Publish to PyPI
|
|
31
|
-
needs: release-please
|
|
32
|
-
if: needs.release-please.outputs.release_created == 'true'
|
|
33
|
-
runs-on: ubuntu-latest
|
|
34
|
-
environment:
|
|
35
|
-
name: pypi
|
|
36
|
-
url: https://pypi.org/p/codegraph-brain
|
|
37
|
-
permissions:
|
|
38
|
-
# Mints the short-lived OIDC token PyPI exchanges for an upload token.
|
|
39
|
-
# This is the whole point of trusted publishing: no API token in secrets.
|
|
40
|
-
id-token: write
|
|
41
|
-
# Lets the publish action attach PEP 740 provenance attestations.
|
|
42
|
-
attestations: write
|
|
43
|
-
contents: read
|
|
44
|
-
steps:
|
|
45
|
-
- name: Checkout Code
|
|
46
|
-
uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4
|
|
47
|
-
with:
|
|
48
|
-
ref: ${{ needs.release-please.outputs.tag_name }}
|
|
49
|
-
|
|
50
|
-
- name: Setup uv
|
|
51
|
-
uses: astral-sh/setup-uv@caf0cab7a618c569241d31dcd442f54681755d39 # v3
|
|
52
|
-
with:
|
|
53
|
-
enable-cache: true
|
|
54
|
-
|
|
55
|
-
- name: Build sdist and wheel
|
|
56
|
-
run: uv build
|
|
57
|
-
|
|
58
|
-
- name: Verify metadata
|
|
59
|
-
# Pinned and wheel-only: this job holds publish rights, so the tooling
|
|
60
|
-
# it pulls in must not be a floating version that can run setup scripts.
|
|
61
|
-
run: uvx --no-build --from "twine==7.0.0" twine check dist/*
|
|
62
|
-
|
|
63
|
-
- name: Verify version matches the tag
|
|
64
|
-
env:
|
|
65
|
-
TAG_NAME: ${{ needs.release-please.outputs.tag_name }}
|
|
66
|
-
run: |
|
|
67
|
-
set -euo pipefail
|
|
68
|
-
built=$(ls dist/*.whl | sed -E 's/.*-([0-9][^-]*)-py3.*/\1/')
|
|
69
|
-
echo "tag=$TAG_NAME built=$built"
|
|
70
|
-
case "$TAG_NAME" in
|
|
71
|
-
*"$built") ;;
|
|
72
|
-
*) echo "::error::tag $TAG_NAME does not match built version $built"; exit 1 ;;
|
|
73
|
-
esac
|
|
74
|
-
|
|
75
|
-
- name: Publish
|
|
76
|
-
uses: pypa/gh-action-pypi-publish@dc37677b2e1c63e2034f94d8a5b11f265b73ba33 # v1.14.2
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/docs/architecture/diagrams/pipeline_flow.mermaid
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/docs/specs/2026-06-10-guardian-sprint-design.md
RENAMED
|
File without changes
|
{codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/docs/specs/2026-06-11-fastapi-di-edges-design.md
RENAMED
|
File without changes
|
|
File without changes
|
{codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/docs/specs/2026-06-11-guardian-chunker-design.md
RENAMED
|
File without changes
|
|
File without changes
|
{codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/docs/specs/2026-06-11-resolver-split-design.md
RENAMED
|
File without changes
|
{codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/docs/specs/2026-06-11-symbol-import-edges-design.md
RENAMED
|
File without changes
|
{codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/docs/specs/2026-06-12-drift-empty-domains-design.md
RENAMED
|
File without changes
|
{codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/docs/specs/2026-06-12-gate-semantics-design.md
RENAMED
|
File without changes
|
{codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/docs/specs/2026-06-12-init-ontology-design.md
RENAMED
|
File without changes
|
{codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/docs/specs/2026-06-12-release-please-ci-design.md
RENAMED
|
File without changes
|
{codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/docs/specs/2026-06-13-suggest-packages-design.md
RENAMED
|
File without changes
|
{codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/docs/specs/2026-06-13-tangle-anti-pattern-design.md
RENAMED
|
File without changes
|
|
File without changes
|
{codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/docs/specs/2026-07-30-cgis-fractal-design.md
RENAMED
|
File without changes
|
|
File without changes
|
{codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/docs/specs/2026-07-30-chunk-source-filter-design.md
RENAMED
|
File without changes
|
{codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/docs/specs/2026-07-30-chunk-source-filter-plan.md
RENAMED
|
File without changes
|
{codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/docs/specs/2026-07-30-genai-client-close-design.md
RENAMED
|
File without changes
|
{codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/docs/specs/2026-07-30-genai-client-close-plan.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/docs/specs/2026-07-30-guardian-timeout-retry-plan.md
RENAMED
|
File without changes
|
{codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/docs/specs/2026-07-31-finder-bug-class-taxonomy.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/docs/specs/plans/2026-06-09-fingerprint-drift.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/docs/specs/plans/2026-06-10-motif-basis-part-b.md
RENAMED
|
File without changes
|
|
File without changes
|
{codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/docs/specs/plans/2026-06-11-fastapi-di-edges.md
RENAMED
|
File without changes
|
|
File without changes
|
{codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/docs/specs/plans/2026-06-11-guardian-chunker.md
RENAMED
|
File without changes
|
|
File without changes
|
{codegraph_brain-0.7.2 → codegraph_brain-0.7.3}/docs/specs/plans/2026-06-11-resolver-split.md
RENAMED
|
File without changes
|