attocode-code-intel 0.1.1__tar.gz → 0.1.2__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.
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/PKG-INFO +1 -1
- attocode_code_intel-0.1.2/evals/results/2026-10-11-agent-r4-stage0.md +134 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/pyproject.toml +1 -1
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/__init__.py +1 -1
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/_internal/integrations/context/ast_service.py +3 -3
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/_internal/integrations/context/cross_references.py +27 -13
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/tests/test_navigation_evidence.py +24 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/.gitignore +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/LICENSE +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/README.md +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/evals/README.md +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/evals/broad_candidate_audit.yaml +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/evals/broad_query_cases.yaml +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/evals/broad_query_external_cases.yaml +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/evals/broad_query_final_holdout.yaml +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/evals/client_comparison.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/evals/client_responses.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/evals/daily.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/evals/external_benchmarks.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/evals/external_study.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/evals/graded_blind_pack.yaml +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/evals/localize_study.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/evals/locbench_title_pack.yaml +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/evals/onboarding_study.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/evals/pilot.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/evals/quality_scoring.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/evals/quality_tasks.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/evals/release_gate.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/evals/responses.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/evals/results/2026-09-05-macos.json +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/evals/results/2026-10-04-broad-query-ranking.md +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/evals/results/2026-10-04-decision-reranker-trial.md +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/evals/results/2026-10-04-systemone-http-local-trial.md +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/evals/results/2026-10-05-broad-candidate-audit.md +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/evals/results/2026-10-05-source-view-transfer.md +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/evals/results/2026-10-08-blind-graded-rerank.md +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/evals/results/2026-10-08-locbench-560.md +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/evals/results/2026-10-09-locbench-560-first-stage.md +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/evals/results/2026-10-10-agent-pilot.md +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/evals/results/2026-10-10-agent-r3.md +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/evals/results/2026-10-10-matrix-r1.md +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/evals/results/README.md +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/evals/source_view_transfer.yaml +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/evals/study.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/evals/study_clients.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/evals/study_events.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/evals/study_tasks.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/evals/token_overhead.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/evals/understanding_scoring.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/evals/understanding_study.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/evals/warm_cache.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/evals/workflows.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/GUIDELINES.md +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/_internal/__init__.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/_internal/errors/__init__.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/_internal/integrations/__init__.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/_internal/integrations/context/__init__.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/_internal/integrations/context/architecture_drift.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/_internal/integrations/context/ast_chunker.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/_internal/integrations/context/blob_oid.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/_internal/integrations/context/cache_manifest.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/_internal/integrations/context/cas.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/_internal/integrations/context/code_analyzer.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/_internal/integrations/context/codebase_ast.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/_internal/integrations/context/codebase_context.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/_internal/integrations/context/cross_mode.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/_internal/integrations/context/embedding_rotation.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/_internal/integrations/context/embeddings.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/_internal/integrations/context/frecency.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/_internal/integrations/context/fuzzy.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/_internal/integrations/context/hierarchical_explorer.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/_internal/integrations/context/hydration.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/_internal/integrations/context/index_repair.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/_internal/integrations/context/index_store.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/_internal/integrations/context/memory_store.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/_internal/integrations/context/module_resolution.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/_internal/integrations/context/query_constraints.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/_internal/integrations/context/query_history.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/_internal/integrations/context/reranker.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/_internal/integrations/context/semantic_search.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/_internal/integrations/context/syntax_evidence.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/_internal/integrations/context/systemone_ranker.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/_internal/integrations/context/temporal_coupling.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/_internal/integrations/context/trigram_index.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/_internal/integrations/context/trigram_regex.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/_internal/integrations/context/ts_parser.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/_internal/integrations/context/vector_store.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/_internal/integrations/feature_flags/__init__.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/_internal/integrations/lsp/__init__.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/_internal/integrations/lsp/client.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/_internal/integrations/mcp/__init__.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/_internal/integrations/mcp/client.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/_internal/integrations/security/__init__.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/_internal/integrations/security/custom_rules.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/_internal/integrations/security/dataflow.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/_internal/integrations/security/dependency_audit.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/_internal/integrations/security/matcher.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/_internal/integrations/security/patterns.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/_internal/integrations/security/scanner.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/_internal/integrations/utilities/__init__.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/_internal/integrations/utilities/ignore.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/_internal/integrations/utilities/token_estimate.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/_internal/tricks/__init__.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/_internal/tricks/recursive_context.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/_internal/types/__init__.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/_internal/types/events.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/_internal/types/severity.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/_shared.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/analysis_coverage.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/api/__init__.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/api/access.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/api/app.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/api/auth/__init__.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/api/auth/api_keys.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/api/auth/context.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/api/auth/jwt.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/api/auth/oauth.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/api/auth/passwords.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/api/deps.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/api/knowledge_bridge.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/api/mcp_transport.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/api/middleware.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/api/models.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/api/providers/__init__.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/api/providers/db_provider.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/api/providers/local_provider.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/api/providers/remote_provider.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/api/repository_source.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/api/routes/__init__.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/api/routes/_pin_helper.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/api/routes/activity.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/api/routes/adr.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/api/routes/analysis.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/api/routes/api_keys.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/api/routes/auth.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/api/routes/branches.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/api/routes/cross_repo_search.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/api/routes/embeddings.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/api/routes/files.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/api/routes/files_v2.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/api/routes/gc.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/api/routes/git_v2.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/api/routes/graph.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/api/routes/graph_viz.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/api/routes/health.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/api/routes/history.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/api/routes/jobs.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/api/routes/learning.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/api/routes/lsp.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/api/routes/notify.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/api/routes/operations.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/api/routes/orgs.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/api/routes/preferences.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/api/routes/presence.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/api/routes/projects.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/api/routes/repos.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/api/routes/search.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/api/routes/snapshots.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/api/routes/webhooks.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/api/routes/websocket.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/api/static/graph.html +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/api/utils.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/artifacts/__init__.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/artifacts/hashing.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/artifacts/provenance.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/artifacts/retrieval_pin.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/audit.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/bug_finder.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/bundle.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/catalog.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/change_review.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/cli.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/community.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/confidence/__init__.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/confidence/jev.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/confidence/llm.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/confidence/redact.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/confidence/settings.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/config.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/crypto.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/db/__init__.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/db/base.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/db/engine.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/db/models.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/entrypoint.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/focused_evidence.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/freshness.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/gateway.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/git/__init__.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/git/credentials.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/git/manager.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/git/models.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/git/storage.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/graph_query_parser.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/helpers.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/indexing/__init__.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/indexing/debouncer.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/indexing/delta_indexer.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/indexing/full_indexer.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/indexing/incremental.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/indexing/parser.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/indexing/summarizer.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/installer.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/knowledge.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/local_knowledge.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/migrations/alembic.ini +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/migrations/env.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/migrations/script.py.mako +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/migrations/versions/001_initial_schema.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/migrations/versions/002_branch_version_and_embeddings.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/migrations/versions/003_embedding_uniqueness_and_cascade.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/migrations/versions/004_audit_events.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/migrations/versions/005_user_preferences.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/migrations/versions/006_google_oauth.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/migrations/versions/007_pgvector_embeddings.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/migrations/versions/008_symbol_references.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/migrations/versions/009_webhook_secret_encryption.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/migrations/versions/010_add_commits_table.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/migrations/versions/011_commit_changed_files.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/migrations/versions/012_branch_merged_at.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/migrations/versions/013_revoked_tokens.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/migrations/versions/014_blame_hunks.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/migrations/versions/015_commit_file_stats.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/migrations/versions/016_embedding_provenance_columns.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/migrations/versions/017_provenance_table.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/migrations/versions/018_repo_snapshots.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/migrations/versions/019_symref_caller.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/migrations/versions/020_shared_knowledge.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/onboarding.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/output.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/precision.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/presence.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/probe.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/project_dir.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/pubsub.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/query_ranking.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/readiness.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/redis.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/reference_pages.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/remote.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/repo_ranker.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/request_context.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/rules/__init__.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/rules/ci.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/rules/combinators.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/rules/enricher.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/rules/evolution.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/rules/executor.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/rules/filters/__init__.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/rules/filters/pipeline.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/rules/formatter.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/rules/hygiene.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/rules/importers/__init__.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/rules/importers/semgrep.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/rules/loader.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/rules/marketplace.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/rules/metavar.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/rules/model.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/rules/packs/__init__.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/rules/packs/community/_license_templates/Apache-2.0.txt +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/rules/packs/community/_license_templates/MIT.txt +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/rules/packs/community/bandit-python/LICENSE +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/rules/packs/community/bandit-python/NOTICE +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/rules/packs/community/bandit-python/PORTING.md +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/rules/packs/community/bandit-python/manifest.yaml +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/rules/packs/community/bandit-python/rules/B105-hardcoded-password.yaml +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/rules/packs/community/bandit-python/rules/B303-weak-md5.yaml +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/rules/packs/community/bandit-python/rules/B304-weak-des.yaml +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/rules/packs/community/bandit-python/rules/B307-use-of-eval.yaml +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/rules/packs/community/bandit-python/rules/B324-weak-sha1.yaml +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/rules/packs/community/bandit-python/rules/B501-no-cert-validation.yaml +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/rules/packs/community/bandit-python/rules/B602-shell-true.yaml +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/rules/packs/community/bandit-python/rules/B608-sqli.yaml +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/rules/packs/community/eslint-typescript/LICENSE +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/rules/packs/community/eslint-typescript/NOTICE +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/rules/packs/community/eslint-typescript/PORTING.md +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/rules/packs/community/eslint-typescript/manifest.yaml +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/rules/packs/community/eslint-typescript/rules/eqeqeq.yaml +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/rules/packs/community/eslint-typescript/rules/no-eval.yaml +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/rules/packs/community/eslint-typescript/rules/no-implied-eval.yaml +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/rules/packs/community/eslint-typescript/rules/no-new-func.yaml +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/rules/packs/community/eslint-typescript/rules/no-throw-literal.yaml +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/rules/packs/community/eslint-typescript/rules/no-var.yaml +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/rules/packs/community/eslint-typescript/rules/no-with.yaml +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/rules/packs/community/gosec-go/LICENSE +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/rules/packs/community/gosec-go/NOTICE +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/rules/packs/community/gosec-go/PORTING.md +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/rules/packs/community/gosec-go/manifest.yaml +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/rules/packs/community/gosec-go/rules/G101-hardcoded-credentials.yaml +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/rules/packs/community/gosec-go/rules/G102-bind-all-interfaces.yaml +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/rules/packs/community/gosec-go/rules/G103-unsafe-block.yaml +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/rules/packs/community/gosec-go/rules/G201-sql-format.yaml +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/rules/packs/community/gosec-go/rules/G304-file-inclusion.yaml +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/rules/packs/community/gosec-go/rules/G401-weak-cipher.yaml +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/rules/packs/community/gosec-go/rules/G402-tls-min-version.yaml +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/rules/packs/community/gosec-go/rules/G501-md5-import.yaml +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/rules/packs/examples/cpp/manifest.yaml +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/rules/packs/examples/cpp/rules/security.yaml +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/rules/packs/examples/cpp/rules/structural.yaml +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/rules/packs/examples/csharp/manifest.yaml +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/rules/packs/examples/csharp/rules/security.yaml +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/rules/packs/examples/csharp/rules/structural.yaml +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/rules/packs/examples/go/manifest.yaml +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/rules/packs/examples/go/rules/performance.yaml +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/rules/packs/examples/go/rules/security.yaml +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/rules/packs/examples/go/rules/structural.yaml +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/rules/packs/examples/go/taint/sanitizers.yaml +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/rules/packs/examples/go/taint/sinks.yaml +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/rules/packs/examples/go/taint/sources.yaml +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/rules/packs/examples/java/manifest.yaml +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/rules/packs/examples/java/rules/correctness.yaml +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/rules/packs/examples/java/rules/structural.yaml +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/rules/packs/examples/java/taint/sinks.yaml +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/rules/packs/examples/java/taint/sources.yaml +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/rules/packs/examples/kotlin/manifest.yaml +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/rules/packs/examples/kotlin/rules/correctness.yaml +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/rules/packs/examples/kotlin/rules/structural.yaml +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/rules/packs/examples/php/manifest.yaml +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/rules/packs/examples/php/rules/security.yaml +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/rules/packs/examples/php/rules/structural.yaml +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/rules/packs/examples/python/manifest.yaml +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/rules/packs/examples/python/rules/performance.yaml +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/rules/packs/examples/python/rules/structural.yaml +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/rules/packs/examples/ruby/manifest.yaml +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/rules/packs/examples/ruby/rules/security.yaml +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/rules/packs/examples/ruby/rules/structural.yaml +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/rules/packs/examples/rust/manifest.yaml +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/rules/packs/examples/rust/rules/correctness.yaml +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/rules/packs/examples/rust/rules/structural.yaml +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/rules/packs/examples/typescript/manifest.yaml +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/rules/packs/examples/typescript/rules/performance.yaml +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/rules/packs/examples/typescript/rules/structural.yaml +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/rules/packs/pack_loader.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/rules/plugins/__init__.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/rules/plugins/plugin_loader.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/rules/profiling.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/rules/registry.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/rules/sarif.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/rules/synthesis.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/rules/testing.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/server.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/service.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/sharing.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/storage/__init__.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/storage/branch_overlay.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/storage/content_store.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/storage/dependency_store.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/storage/diff_engine.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/storage/embedding_store.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/storage/provenance_store.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/storage/security_scanner_db.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/storage/symbol_store.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/structural_evidence.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/symbol_inspection.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/symbol_links.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/telemetry.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/test_ranking.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/testing/__init__.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/testing/fixtures.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/testing/helpers.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/testing/mocks.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/tools/__init__.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/tools/adr_tools.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/tools/analysis_tools.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/tools/composite_tools.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/tools/cross_mode_tools.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/tools/dead_code_tools.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/tools/distill_tools.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/tools/frecency_tools.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/tools/fuzzy_tools.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/tools/history_tools.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/tools/learning_tools.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/tools/lsp_tools.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/tools/maintenance_tools.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/tools/navigation_tools.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/tools/overlay_tools.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/tools/pin_store.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/tools/pin_tools.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/tools/query_constraints_tools.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/tools/query_history_tools.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/tools/readiness_tools.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/tools/rule_tools.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/tools/search_tools.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/tools/snapshot_tools.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/workers/__init__.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/workers/job_utils.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/workers/jobs.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/workers/run.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/workers/settings.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/tests/test_cold_discovery.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/tests/test_compact_inspection.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/tests/test_daily_workflows.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/tests/test_doctor.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/tests/test_edit_restart.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/tests/test_external_study.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/tests/test_focused_inspection.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/tests/test_index_reuse.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/tests/test_language_capabilities.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/tests/test_local_reranker.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/tests/test_localize_study.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/tests/test_onboarding_study.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/tests/test_pilot.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/tests/test_precision_protocol.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/tests/test_product.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/tests/test_quality_evaluation.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/tests/test_query_ranking.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/tests/test_ranking_intent.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/tests/test_remote.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/tests/test_structural_evidence.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/tests/test_study.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/tests/test_systemone_ranker.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/tests/test_token_overhead.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/tests/test_understanding_evaluation.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/tests/test_walk_order.py +0 -0
- {attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/tests/test_warm_cache.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: attocode-code-intel
|
|
3
|
-
Version: 0.1.
|
|
3
|
+
Version: 0.1.2
|
|
4
4
|
Summary: Local code search and navigation for coding agents and people
|
|
5
5
|
Project-URL: Homepage, https://github.com/eren23/attocode
|
|
6
6
|
Project-URL: Repository, https://github.com/eren23/attocode
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
# Agent study R4, Stage 0: tests for a change
|
|
2
|
+
|
|
3
|
+
**Status: The rule for Stage 1 is not met, so no agent runs. On 123 dev
|
|
4
|
+
tasks, `suggest_tests` of code intel 0.1.1 had a test Recall@5 of 0.469.
|
|
5
|
+
A file-name grep had 0.477 (Δ -0.008, range -0.117 to +0.101).** In 19
|
|
6
|
+
tasks, `suggest_tests` failed with `RuntimeError: dictionary changed size
|
|
7
|
+
during iteration`. #161 fixes this race. With the fix, the 19 tasks ran,
|
|
8
|
+
and Recall@5 was 0.545 against 0.477 (Δ +0.068, range -0.020 to +0.158).
|
|
9
|
+
That is also below the rule. By the rule, the next work is better test
|
|
10
|
+
ranking, not agent runs.
|
|
11
|
+
|
|
12
|
+
R4 follows the R3 rule: after the localization studies, test a review
|
|
13
|
+
task. The [R3 results](2026-10-10-agent-r3.md) give the background.
|
|
14
|
+
|
|
15
|
+
## Rules
|
|
16
|
+
|
|
17
|
+
We wrote these rules before Stage 0 ran, and the user approved them on
|
|
18
|
+
2026-10-11. The design file is `studies/r4-design.md` in the evals store
|
|
19
|
+
(sha256 `17b80ae0…`). We did not change it after results existed.
|
|
20
|
+
|
|
21
|
+
- **Question.** When an agent reviews a change, does code intel help it
|
|
22
|
+
name the existing tests that check the change?
|
|
23
|
+
- **Tasks.** R1 core-mix tasks whose `test_patch` changes 1 to 5 test
|
|
24
|
+
files that exist at the base commit. These files are the gold set. The
|
|
25
|
+
change is the `patch`, applied to the base commit and not committed.
|
|
26
|
+
- **Stage 0 arms.** Each arm gets the changed files of the patch.
|
|
27
|
+
- `product`: the first 10 paths of `suggest_tests(files=changed)`, code
|
|
28
|
+
intel 0.1.1 from PyPI.
|
|
29
|
+
- `name`: the test files whose file name contains the stem of a changed
|
|
30
|
+
file, in path order.
|
|
31
|
+
- **Metric.** Test Recall@5: the share of gold files in the first 5 paths.
|
|
32
|
+
Also Hit@5: at least one gold file in the first 5.
|
|
33
|
+
- **Rule.** Go to Stage 1 (agent runs) only if `product` Recall@5 on dev
|
|
34
|
+
is 0.10 or more above `name`. Also, the 95% range from a repository
|
|
35
|
+
bootstrap must be above 0. If not, improve test ranking first.
|
|
36
|
+
- **Failures.** A task where `suggest_tests` fails keeps an empty
|
|
37
|
+
`product` list. Thus a failure counts against the product.
|
|
38
|
+
|
|
39
|
+
The design file gives 121 repositories for the 179 core-mix tasks. The
|
|
40
|
+
correct count is 100. The dev split has 123 tasks from 78 repositories.
|
|
41
|
+
|
|
42
|
+
## Setup
|
|
43
|
+
|
|
44
|
+
- A RunPod CPU pod, 12 workers, one repository group for each worker.
|
|
45
|
+
- For each task: a blobless clone at the base commit, `git clean`, then
|
|
46
|
+
`git apply` of the patch. The `product` arm polls `suggest_tests` every
|
|
47
|
+
5 seconds until the index phase is `ready`, for at most 900 seconds.
|
|
48
|
+
- Two tasks failed in the first pass because `git clone` failed. We
|
|
49
|
+
removed their rows and ran them again. One task (dubbo-3317) failed
|
|
50
|
+
because its patch does not apply at the base commit. It stays in the
|
|
51
|
+
results as a failure.
|
|
52
|
+
- The fix view ran the 19 failed tasks again with the #161 branch. All
|
|
53
|
+
other rows are the same as in the primary view.
|
|
54
|
+
|
|
55
|
+
The pod ran for about 1.3 hours and cost about USD 1.15.
|
|
56
|
+
|
|
57
|
+
## Results
|
|
58
|
+
|
|
59
|
+
| View | Tasks | Failed | `product` R@5 | `name` R@5 | Δ | Range of Δ (95%) | `product` Hit@5 | `name` Hit@5 | Rule met |
|
|
60
|
+
|---|---:|---:|---:|---:|---:|---|---:|---:|---|
|
|
61
|
+
| Primary (0.1.1) | 123 | 20 | 0.469 | 0.477 | -0.008 | -0.117 to +0.101 | 0.496 | 0.512 | No |
|
|
62
|
+
| Fix view (#161) | 123 | 1 | 0.545 | 0.477 | +0.068 | -0.020 to +0.158 | 0.577 | 0.512 | No |
|
|
63
|
+
|
|
64
|
+
The range comes from 10,000 repository bootstrap draws. In the primary
|
|
65
|
+
view, `product` was higher on 18 tasks and `name` on 17. In the fix view,
|
|
66
|
+
the counts are 22 and 10.
|
|
67
|
+
|
|
68
|
+
**Reading.** The primary view is the result of the study. Its Δ is near 0
|
|
69
|
+
and its range includes 0. The fix view shows the product as it will ship
|
|
70
|
+
in the next release. Its Δ is positive, but it is below 0.10, and its
|
|
71
|
+
range includes 0. The race fix does not change the decision.
|
|
72
|
+
|
|
73
|
+
## Where each arm finds the tests
|
|
74
|
+
|
|
75
|
+
These counts use the fix view and the 122 tasks that ran. They are leads
|
|
76
|
+
for the ranking work, not results of the rule.
|
|
77
|
+
|
|
78
|
+
| Language of the change | Tasks | `product` R@5 | `name` R@5 | Empty `product` list |
|
|
79
|
+
|---|---:|---:|---:|---:|
|
|
80
|
+
| Python | 67 | 0.59 | 0.50 | 11 |
|
|
81
|
+
| JavaScript/TypeScript | 23 | 0.78 | 0.61 | 3 |
|
|
82
|
+
| Java | 12 | 0.31 | 0.51 | 6 |
|
|
83
|
+
| Go | 6 | 0.83 | 0.67 | 0 |
|
|
84
|
+
| Rust | 6 | 0.17 | 0.00 | 1 |
|
|
85
|
+
| C# | 5 | 0.00 | 0.20 | 5 |
|
|
86
|
+
| C/C++ | 3 | 0.00 | 0.00 | 3 |
|
|
87
|
+
| No code file | 1 | 0.00 | 0.00 | 1 |
|
|
88
|
+
|
|
89
|
+
- Both arms had a Hit@5 on 53 tasks. Only `product` had one on 18 tasks,
|
|
90
|
+
and only `name` on 10. Neither arm had one on 41 tasks.
|
|
91
|
+
- `suggest_tests` gave an empty list on 30 tasks. On 3 more tasks, a gold
|
|
92
|
+
file was at rank 6 to 10 and not in the first 5.
|
|
93
|
+
- **Python test folders.** All 7 matplotlib tasks got an empty list. For
|
|
94
|
+
example, the change is `lib/matplotlib/figure.py`, and the gold test is
|
|
95
|
+
`lib/matplotlib/tests/test_figure.py`. The name rules do not look in a
|
|
96
|
+
`tests/` folder next to the source file. The imports do not link either,
|
|
97
|
+
because the resolver does not know the `lib/` source root. Prefect
|
|
98
|
+
(`<package>/tests/test_worker.py`) and pylint (`unittest_misc.py`) are
|
|
99
|
+
similar.
|
|
100
|
+
- **Java.** The name rule maps only `src/main/` to `src/test/` with the
|
|
101
|
+
same package. Gold tests in another package (dubbo `version/VersionTest`)
|
|
102
|
+
or in another module (javaparser `javaparser-core-testing`) are not
|
|
103
|
+
found.
|
|
104
|
+
- **C# and C/C++.** `suggest_tests` has no name rule for these languages,
|
|
105
|
+
so it found no test in 8 tasks.
|
|
106
|
+
- **Neither arm.** Many of the 41 tasks have gold tests whose name does
|
|
107
|
+
not contain a changed stem. For example, a change to `figure.py` has the
|
|
108
|
+
gold test `test_constrainedlayout.py`. Only import or reference evidence
|
|
109
|
+
can find these.
|
|
110
|
+
- **The `name` arm.** Its list also holds files that are not tests, such
|
|
111
|
+
as baseline images below `tests/`. These files fill some of its first 5
|
|
112
|
+
places.
|
|
113
|
+
|
|
114
|
+
## What this does not show
|
|
115
|
+
|
|
116
|
+
- The gold set holds the tests that the developers changed. Other
|
|
117
|
+
existing tests can also check the change. Recall is thus a lower bound,
|
|
118
|
+
and the study does not measure precision.
|
|
119
|
+
- The `name` arm is a strong baseline for this gold set. Developers often
|
|
120
|
+
change the test file that has the name of the source file.
|
|
121
|
+
- Stage 0 measures the tool output only. It does not show how an agent
|
|
122
|
+
uses that output.
|
|
123
|
+
- We now know the dev tasks. A ranking change that we tune on them needs
|
|
124
|
+
a check on tasks that we did not look at.
|
|
125
|
+
|
|
126
|
+
## Next
|
|
127
|
+
|
|
128
|
+
1. Release the race fix (#161) as code intel 0.1.2.
|
|
129
|
+
2. Improve test ranking. Close the name-rule gaps above: a `tests/`
|
|
130
|
+
folder next to the source, Java packages and modules, C# and C/C++.
|
|
131
|
+
When the graph gives no test, use file-name matches as a fallback.
|
|
132
|
+
3. Measure the change on the dev tasks, then once on the 56 holdout
|
|
133
|
+
tasks. The holdout tasks have not run yet, so they stay a clean check.
|
|
134
|
+
Stage 1 runs only if the change meets the rule.
|
|
@@ -892,10 +892,10 @@ class ASTService:
|
|
|
892
892
|
"""Return all symbols defined in *path*."""
|
|
893
893
|
self._ensure_initialized()
|
|
894
894
|
rel = self._to_rel(path)
|
|
895
|
-
qnames = self._index.file_symbols.get(rel, set())
|
|
896
895
|
result: list[SymbolLocation] = []
|
|
897
|
-
|
|
898
|
-
|
|
896
|
+
with self._index._lock: # Background hydration adds to these sets.
|
|
897
|
+
for qn in self._index.file_symbols.get(rel, set()):
|
|
898
|
+
result.extend(self._index.definitions.get(qn, []))
|
|
899
899
|
return result
|
|
900
900
|
|
|
901
901
|
def find_symbol(self, name: str, *, include_shadowed: bool = False) -> list[SymbolLocation]:
|
|
@@ -438,15 +438,17 @@ class CrossRefIndex:
|
|
|
438
438
|
|
|
439
439
|
def get_definitions(self, symbol_name: str, *, include_shadowed: bool = False) -> list[SymbolLocation]:
|
|
440
440
|
"""Look up definitions for a symbol (exact or suffix match)."""
|
|
441
|
-
#
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
441
|
+
# The lock keeps a background index writer from changing the dict during the scan.
|
|
442
|
+
with self._lock:
|
|
443
|
+
# Try exact qualified name first
|
|
444
|
+
if symbol_name in self.definitions and not include_shadowed:
|
|
445
|
+
return self.definitions[symbol_name]
|
|
446
|
+
# Try suffix match (e.g. "discover_files" matches "CodebaseContextManager.discover_files")
|
|
447
|
+
results: list[SymbolLocation] = []
|
|
448
|
+
for qname, locs in self.definitions.items():
|
|
449
|
+
if qname == symbol_name or qname.endswith(f".{symbol_name}"):
|
|
450
|
+
results.extend(locs)
|
|
451
|
+
return results
|
|
450
452
|
|
|
451
453
|
def search_definitions(
|
|
452
454
|
self,
|
|
@@ -455,7 +457,18 @@ class CrossRefIndex:
|
|
|
455
457
|
limit: int = 50,
|
|
456
458
|
kind_filter: str = "",
|
|
457
459
|
) -> list[tuple[SymbolLocation, float]]:
|
|
458
|
-
"""Multi-strategy symbol search returning (location, score) pairs.
|
|
460
|
+
"""Multi-strategy symbol search returning (location, score) pairs."""
|
|
461
|
+
with self._lock:
|
|
462
|
+
return self._search_definitions_locked(symbol_name, limit=limit, kind_filter=kind_filter)
|
|
463
|
+
|
|
464
|
+
def _search_definitions_locked(
|
|
465
|
+
self,
|
|
466
|
+
symbol_name: str,
|
|
467
|
+
*,
|
|
468
|
+
limit: int,
|
|
469
|
+
kind_filter: str,
|
|
470
|
+
) -> list[tuple[SymbolLocation, float]]:
|
|
471
|
+
"""Search the definitions. The caller holds the lock.
|
|
459
472
|
|
|
460
473
|
Search strategies (in priority order):
|
|
461
474
|
1. Exact qualified name match (score 1.0)
|
|
@@ -536,9 +549,10 @@ class CrossRefIndex:
|
|
|
536
549
|
# Include exact and qualified candidates; an exact key must not hide others.
|
|
537
550
|
# Suffix match (e.g. "clear" matches refs keyed as "MCPMetaTools.clear")
|
|
538
551
|
results: list[SymbolRef] = []
|
|
539
|
-
|
|
540
|
-
|
|
541
|
-
|
|
552
|
+
with self._lock:
|
|
553
|
+
for ref_name, refs in self.references.items():
|
|
554
|
+
if ref_name == symbol_name or ref_name.endswith(f".{symbol_name}"):
|
|
555
|
+
results.extend(refs)
|
|
542
556
|
return results
|
|
543
557
|
|
|
544
558
|
def get_dependents(self, file_path: str) -> set[str]:
|
|
@@ -1,8 +1,15 @@
|
|
|
1
1
|
"""Navigation regressions drawn from CommonJS, TSX and Rust workspace failures."""
|
|
2
2
|
|
|
3
|
+
import threading
|
|
4
|
+
|
|
3
5
|
import pytest
|
|
4
6
|
from attocode_intel._internal.integrations.context.codebase_ast import parse_file
|
|
5
7
|
from attocode_intel._internal.integrations.context.codebase_context import _resolve_rust_import
|
|
8
|
+
from attocode_intel._internal.integrations.context.cross_references import (
|
|
9
|
+
CrossRefIndex,
|
|
10
|
+
SymbolLocation,
|
|
11
|
+
SymbolRef,
|
|
12
|
+
)
|
|
6
13
|
from attocode_intel._internal.integrations.context.syntax_evidence import symbol_position
|
|
7
14
|
from attocode_intel.gateway import OperationGateway
|
|
8
15
|
|
|
@@ -172,3 +179,20 @@ async def test_invalid_tsconfig_options_do_not_break_relative_navigation(tmp_pat
|
|
|
172
179
|
assert deps["data"]["imported_by"] == ["caller.ts"]
|
|
173
180
|
finally:
|
|
174
181
|
await gateway.close()
|
|
182
|
+
|
|
183
|
+
|
|
184
|
+
def test_index_lookups_wait_for_a_background_writer():
|
|
185
|
+
"""Hydration adds to the index while a query reads it; a scan must not see a change."""
|
|
186
|
+
index = CrossRefIndex()
|
|
187
|
+
index.add_definition(SymbolLocation("parse", "pkg.parse", "function", "pkg.py", 1, 2))
|
|
188
|
+
index.add_reference(SymbolRef("pkg.parse", "call", "tests/test_pkg.py", 3))
|
|
189
|
+
lookups = (lambda: index.get_references("parse"), lambda: index.get_definitions("parse"),
|
|
190
|
+
lambda: index.search_definitions("parse"))
|
|
191
|
+
for lookup in lookups:
|
|
192
|
+
reader = threading.Thread(target=lookup, daemon=True)
|
|
193
|
+
with index._lock: # A writer holds the lock.
|
|
194
|
+
reader.start()
|
|
195
|
+
reader.join(0.2)
|
|
196
|
+
assert reader.is_alive()
|
|
197
|
+
reader.join(5)
|
|
198
|
+
assert not reader.is_alive()
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/evals/broad_query_external_cases.yaml
RENAMED
|
File without changes
|
{attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/evals/broad_query_final_holdout.yaml
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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/evals/results/2026-10-08-locbench-560.md
RENAMED
|
File without changes
|
|
File without changes
|
{attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/evals/results/2026-10-10-agent-pilot.md
RENAMED
|
File without changes
|
{attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/evals/results/2026-10-10-agent-r3.md
RENAMED
|
File without changes
|
{attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/evals/results/2026-10-10-matrix-r1.md
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
|
{attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/_internal/__init__.py
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
|
|
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
|
|
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
|
{attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/_internal/types/events.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/analysis_coverage.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/api/auth/__init__.py
RENAMED
|
File without changes
|
{attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/api/auth/api_keys.py
RENAMED
|
File without changes
|
{attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/api/auth/context.py
RENAMED
|
File without changes
|
|
File without changes
|
{attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/api/auth/oauth.py
RENAMED
|
File without changes
|
{attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/api/auth/passwords.py
RENAMED
|
File without changes
|
|
File without changes
|
{attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/api/knowledge_bridge.py
RENAMED
|
File without changes
|
{attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/api/mcp_transport.py
RENAMED
|
File without changes
|
{attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/api/middleware.py
RENAMED
|
File without changes
|
|
File without changes
|
{attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/api/providers/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/api/repository_source.py
RENAMED
|
File without changes
|
{attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/api/routes/__init__.py
RENAMED
|
File without changes
|
{attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/api/routes/_pin_helper.py
RENAMED
|
File without changes
|
{attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/api/routes/activity.py
RENAMED
|
File without changes
|
{attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/api/routes/adr.py
RENAMED
|
File without changes
|
{attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/api/routes/analysis.py
RENAMED
|
File without changes
|
{attocode_code_intel-0.1.1 → attocode_code_intel-0.1.2}/src/attocode_intel/api/routes/api_keys.py
RENAMED
|
File without changes
|