attocode-code-intel 0.1.27__tar.gz → 0.1.28__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.27 → attocode_code_intel-0.1.28}/PKG-INFO +3 -1
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/README.md +2 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/pyproject.toml +1 -1
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/__init__.py +1 -1
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/output.py +27 -2
- attocode_code_intel-0.1.28/tests/test_search_ranking_summary.py +109 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/.gitignore +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/LICENSE +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/GUIDELINES.md +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/_internal/__init__.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/_internal/errors/__init__.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/_internal/integrations/__init__.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/_internal/integrations/context/__init__.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/_internal/integrations/context/architecture_drift.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/_internal/integrations/context/ast_chunker.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/_internal/integrations/context/ast_service.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/_internal/integrations/context/ast_snapshot.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/_internal/integrations/context/blob_oid.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/_internal/integrations/context/cache_manifest.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/_internal/integrations/context/cas.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/_internal/integrations/context/code_analyzer.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/_internal/integrations/context/codebase_ast.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/_internal/integrations/context/codebase_context.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/_internal/integrations/context/cross_mode.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/_internal/integrations/context/cross_references.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/_internal/integrations/context/discovery_snapshot.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/_internal/integrations/context/embedding_rotation.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/_internal/integrations/context/embeddings.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/_internal/integrations/context/frecency.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/_internal/integrations/context/fuzzy.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/_internal/integrations/context/hierarchical_explorer.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/_internal/integrations/context/hydration.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/_internal/integrations/context/index_probe.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/_internal/integrations/context/index_repair.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/_internal/integrations/context/index_store.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/_internal/integrations/context/language_registry.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/_internal/integrations/context/memory_store.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/_internal/integrations/context/module_resolution.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/_internal/integrations/context/parse_diagnostics.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/_internal/integrations/context/query_constraints.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/_internal/integrations/context/query_history.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/_internal/integrations/context/reranker.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/_internal/integrations/context/semantic_search.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/_internal/integrations/context/syntax_evidence.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/_internal/integrations/context/systemone_ranker.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/_internal/integrations/context/temporal_coupling.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/_internal/integrations/context/trigram_index.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/_internal/integrations/context/trigram_regex.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/_internal/integrations/context/ts_parser.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/_internal/integrations/context/vector_store.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/_internal/integrations/feature_flags/__init__.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/_internal/integrations/lsp/__init__.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/_internal/integrations/lsp/client.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/_internal/integrations/mcp/__init__.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/_internal/integrations/mcp/client.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/_internal/integrations/security/__init__.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/_internal/integrations/security/custom_rules.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/_internal/integrations/security/dataflow.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/_internal/integrations/security/dependency_audit.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/_internal/integrations/security/matcher.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/_internal/integrations/security/patterns.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/_internal/integrations/security/scanner.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/_internal/integrations/utilities/__init__.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/_internal/integrations/utilities/ignore.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/_internal/integrations/utilities/token_estimate.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/_internal/types/__init__.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/_internal/types/events.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/_internal/types/severity.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/_shared.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/analysis_coverage.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/api/__init__.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/api/access.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/api/app.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/api/auth/__init__.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/api/auth/api_keys.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/api/auth/context.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/api/auth/jwt.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/api/auth/oauth.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/api/auth/passwords.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/api/deps.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/api/knowledge_bridge.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/api/mcp_transport.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/api/middleware.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/api/models.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/api/providers/__init__.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/api/providers/db_provider.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/api/providers/local_provider.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/api/providers/remote_provider.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/api/repository_source.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/api/routes/__init__.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/api/routes/_pin_helper.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/api/routes/activity.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/api/routes/adr.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/api/routes/analysis.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/api/routes/api_keys.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/api/routes/auth.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/api/routes/branches.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/api/routes/cross_repo_search.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/api/routes/embeddings.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/api/routes/files.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/api/routes/files_v2.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/api/routes/gc.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/api/routes/git_v2.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/api/routes/graph.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/api/routes/graph_viz.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/api/routes/health.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/api/routes/history.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/api/routes/jobs.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/api/routes/learning.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/api/routes/lsp.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/api/routes/notify.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/api/routes/operations.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/api/routes/orgs.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/api/routes/preferences.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/api/routes/presence.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/api/routes/projects.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/api/routes/repos.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/api/routes/search.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/api/routes/snapshots.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/api/routes/webhooks.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/api/routes/websocket.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/api/static/graph.html +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/api/utils.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/artifacts/__init__.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/artifacts/hashing.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/artifacts/provenance.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/artifacts/retrieval_pin.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/audit.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/bug_finder.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/bundle.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/catalog.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/change_evidence.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/change_investigation.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/change_review.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/cli.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/community.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/confidence/__init__.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/confidence/jev.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/confidence/llm.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/confidence/redact.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/confidence/settings.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/config.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/crypto.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/db/__init__.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/db/base.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/db/engine.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/db/models.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/entrypoint.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/focused_evidence.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/freshness.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/gateway.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/git/__init__.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/git/credentials.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/git/manager.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/git/models.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/git/storage.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/graph_query_parser.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/helpers.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/indexing/__init__.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/indexing/debouncer.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/indexing/delta_indexer.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/indexing/full_indexer.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/indexing/incremental.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/indexing/parser.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/indexing/summarizer.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/installer.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/investigation_cli.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/knowledge.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/local_knowledge.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/migrations/alembic.ini +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/migrations/env.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/migrations/script.py.mako +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/migrations/versions/001_initial_schema.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/migrations/versions/002_branch_version_and_embeddings.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/migrations/versions/003_embedding_uniqueness_and_cascade.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/migrations/versions/004_audit_events.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/migrations/versions/005_user_preferences.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/migrations/versions/006_google_oauth.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/migrations/versions/007_pgvector_embeddings.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/migrations/versions/008_symbol_references.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/migrations/versions/009_webhook_secret_encryption.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/migrations/versions/010_add_commits_table.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/migrations/versions/011_commit_changed_files.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/migrations/versions/012_branch_merged_at.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/migrations/versions/013_revoked_tokens.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/migrations/versions/014_blame_hunks.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/migrations/versions/015_commit_file_stats.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/migrations/versions/016_embedding_provenance_columns.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/migrations/versions/017_provenance_table.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/migrations/versions/018_repo_snapshots.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/migrations/versions/019_symref_caller.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/migrations/versions/020_shared_knowledge.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/onboarding.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/precision.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/presence.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/probe.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/project_dir.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/pubsub.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/query_ranking.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/readiness.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/redis.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/reference_pages.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/remote.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/repo_ranker.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/request_context.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/rules/__init__.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/rules/ci.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/rules/combinators.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/rules/enricher.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/rules/evolution.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/rules/executor.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/rules/filters/__init__.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/rules/filters/pipeline.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/rules/formatter.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/rules/hygiene.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/rules/importers/__init__.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/rules/importers/semgrep.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/rules/loader.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/rules/marketplace.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/rules/metavar.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/rules/model.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/rules/packs/__init__.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/rules/packs/community/_license_templates/Apache-2.0.txt +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/rules/packs/community/_license_templates/MIT.txt +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/rules/packs/community/bandit-python/LICENSE +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/rules/packs/community/bandit-python/NOTICE +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/rules/packs/community/bandit-python/PORTING.md +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/rules/packs/community/bandit-python/manifest.yaml +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/rules/packs/community/bandit-python/rules/B105-hardcoded-password.yaml +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/rules/packs/community/bandit-python/rules/B303-weak-md5.yaml +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/rules/packs/community/bandit-python/rules/B304-weak-des.yaml +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/rules/packs/community/bandit-python/rules/B307-use-of-eval.yaml +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/rules/packs/community/bandit-python/rules/B324-weak-sha1.yaml +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/rules/packs/community/bandit-python/rules/B501-no-cert-validation.yaml +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/rules/packs/community/bandit-python/rules/B602-shell-true.yaml +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/rules/packs/community/bandit-python/rules/B608-sqli.yaml +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/rules/packs/community/eslint-typescript/LICENSE +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/rules/packs/community/eslint-typescript/NOTICE +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/rules/packs/community/eslint-typescript/PORTING.md +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/rules/packs/community/eslint-typescript/manifest.yaml +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/rules/packs/community/eslint-typescript/rules/eqeqeq.yaml +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/rules/packs/community/eslint-typescript/rules/no-eval.yaml +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/rules/packs/community/eslint-typescript/rules/no-implied-eval.yaml +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/rules/packs/community/eslint-typescript/rules/no-new-func.yaml +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/rules/packs/community/eslint-typescript/rules/no-throw-literal.yaml +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/rules/packs/community/eslint-typescript/rules/no-var.yaml +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/rules/packs/community/eslint-typescript/rules/no-with.yaml +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/rules/packs/community/gosec-go/LICENSE +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/rules/packs/community/gosec-go/NOTICE +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/rules/packs/community/gosec-go/PORTING.md +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/rules/packs/community/gosec-go/manifest.yaml +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/rules/packs/community/gosec-go/rules/G101-hardcoded-credentials.yaml +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/rules/packs/community/gosec-go/rules/G102-bind-all-interfaces.yaml +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/rules/packs/community/gosec-go/rules/G103-unsafe-block.yaml +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/rules/packs/community/gosec-go/rules/G201-sql-format.yaml +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/rules/packs/community/gosec-go/rules/G304-file-inclusion.yaml +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/rules/packs/community/gosec-go/rules/G401-weak-cipher.yaml +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/rules/packs/community/gosec-go/rules/G402-tls-min-version.yaml +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/rules/packs/community/gosec-go/rules/G501-md5-import.yaml +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/rules/packs/examples/cpp/manifest.yaml +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/rules/packs/examples/cpp/rules/security.yaml +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/rules/packs/examples/cpp/rules/structural.yaml +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/rules/packs/examples/csharp/manifest.yaml +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/rules/packs/examples/csharp/rules/security.yaml +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/rules/packs/examples/csharp/rules/structural.yaml +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/rules/packs/examples/go/manifest.yaml +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/rules/packs/examples/go/rules/performance.yaml +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/rules/packs/examples/go/rules/security.yaml +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/rules/packs/examples/go/rules/structural.yaml +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/rules/packs/examples/go/taint/sanitizers.yaml +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/rules/packs/examples/go/taint/sinks.yaml +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/rules/packs/examples/go/taint/sources.yaml +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/rules/packs/examples/java/manifest.yaml +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/rules/packs/examples/java/rules/correctness.yaml +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/rules/packs/examples/java/rules/structural.yaml +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/rules/packs/examples/java/taint/sinks.yaml +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/rules/packs/examples/java/taint/sources.yaml +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/rules/packs/examples/kotlin/manifest.yaml +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/rules/packs/examples/kotlin/rules/correctness.yaml +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/rules/packs/examples/kotlin/rules/structural.yaml +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/rules/packs/examples/php/manifest.yaml +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/rules/packs/examples/php/rules/security.yaml +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/rules/packs/examples/php/rules/structural.yaml +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/rules/packs/examples/python/manifest.yaml +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/rules/packs/examples/python/rules/performance.yaml +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/rules/packs/examples/python/rules/structural.yaml +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/rules/packs/examples/ruby/manifest.yaml +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/rules/packs/examples/ruby/rules/security.yaml +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/rules/packs/examples/ruby/rules/structural.yaml +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/rules/packs/examples/rust/manifest.yaml +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/rules/packs/examples/rust/rules/correctness.yaml +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/rules/packs/examples/rust/rules/structural.yaml +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/rules/packs/examples/typescript/manifest.yaml +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/rules/packs/examples/typescript/rules/performance.yaml +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/rules/packs/examples/typescript/rules/structural.yaml +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/rules/packs/pack_loader.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/rules/plugins/__init__.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/rules/plugins/plugin_loader.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/rules/profiling.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/rules/registry.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/rules/sarif.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/rules/synthesis.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/rules/testing.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/search_evidence.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/server.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/service.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/sharing.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/storage/__init__.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/storage/branch_overlay.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/storage/content_store.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/storage/dependency_store.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/storage/diff_engine.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/storage/embedding_store.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/storage/provenance_store.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/storage/security_scanner_db.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/storage/symbol_store.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/structural_evidence.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/symbol_inspection.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/symbol_links.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/telemetry.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/test_ranking.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/testing/__init__.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/testing/fixtures.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/testing/helpers.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/testing/mocks.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/tools/__init__.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/tools/adr_tools.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/tools/analysis_tools.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/tools/composite_tools.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/tools/cross_mode_tools.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/tools/dead_code_tools.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/tools/distill_tools.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/tools/frecency_tools.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/tools/fuzzy_tools.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/tools/history_tools.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/tools/learning_tools.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/tools/lsp_tools.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/tools/maintenance_tools.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/tools/navigation_tools.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/tools/overlay_tools.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/tools/pin_store.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/tools/pin_tools.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/tools/query_constraints_tools.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/tools/query_history_tools.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/tools/readiness_tools.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/tools/rule_tools.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/tools/search_tools.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/tools/snapshot_tools.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/workers/__init__.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/workers/job_utils.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/workers/jobs.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/workers/run.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/workers/settings.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/fixtures/rule_violations/.attocode/rules/team-preferences.yaml +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/fixtures/rule_violations/go/bad_patterns.go +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/fixtures/rule_violations/java/BadPatterns.java +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/fixtures/rule_violations/python/bad_patterns.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/fixtures/rule_violations/rust/bad_patterns.rs +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/fixtures/rule_violations/typescript/bad_patterns.ts +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/fixtures/sample_project/.attocode/.gitignore +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/fixtures/sample_project/__init__.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/fixtures/sample_project/main.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/fixtures/sample_project/models.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/fixtures/sample_project/utils.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/integration/__init__.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/integration/code_intel/__init__.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/integration/code_intel/conftest.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/integration/code_intel/test_http_smoke.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/integration/code_intel/test_mcp_tools_audit.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/integration/code_intel/test_remote_mcp_http_integration.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/integration/code_intel/test_service_integration.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/integration/test_rule_bench_floor_e2e.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/test_ast_snapshot.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/test_behavioral_negation.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/test_capacity_experiment.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/test_change_focus.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/test_change_investigation.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/test_chunk_identity.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/test_codex_repair_study.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/test_cold_discovery.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/test_cold_index_cost.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/test_compact_inspection.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/test_corpus_capture.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/test_daily_workflows.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/test_db_navigation_http.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/test_discovery_ceiling.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/test_discovery_reuse.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/test_doctor.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/test_doctor_runtime.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/test_edit_restart.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/test_experiment_dispatch.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/test_experiment_evidence.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/test_experiment_readiness.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/test_external_study.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/test_fallback_lexical.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/test_file_symbol_scope.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/test_fixture_source_alias.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/test_focused_inspection.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/test_image_budget.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/test_importance_publication.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/test_index_probe.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/test_index_processes.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/test_index_reuse.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/test_index_sequences.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/test_kotlin_test_paths.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/test_language_capabilities.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/test_lean_profile.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/test_lexical_sql_cost.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/test_local_reranker.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/test_local_workflow_evidence.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/test_localize_study.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/test_lsp_diagnostics.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/test_lsp_document_lifecycle.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/test_lsp_stderr_lifecycle.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/test_mcp_search_evaluation.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/test_mixed_workspace.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/test_module_ownership.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/test_namespace_snapshot.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/test_native_capture.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/test_native_experiment.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/test_navigation_evidence.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/test_navigation_prefix_trial.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/test_ocaml_parser_routing.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/test_onboarding_study.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/test_operation_contracts.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/test_optional_grammar_admission.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/test_optional_language_depth.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/test_parse_recovery.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/test_parser_thread_isolation.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/test_pilot.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/test_precision_budget.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/test_precision_protocol.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/test_precision_recovery.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/test_preview_admission.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/test_preview_experiment.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/test_preview_sources.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/test_preview_windows.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/test_product.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/test_quality_cloud.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/test_quality_evaluation.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/test_quality_evidence.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/test_quality_lifecycle.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/test_quality_runner.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/test_query_ranking.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/test_query_requirements.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/test_ranking_intent.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/test_real_language_server.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/test_recovery_readiness.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/test_release_verification.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/test_remote.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/test_repair_study.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/test_restart_experiment.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/test_retrieval_ablation.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/test_retrieval_audit.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/test_retrieval_body_trial.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/test_retrieval_cycle.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/test_search_budget_repair.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/test_search_coverage.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/test_search_coverage_scale.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/test_search_evidence.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/test_search_evidence_audit.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/test_search_usefulness.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/test_snippet_budget.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/test_source_exclusions.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/test_structural_evidence.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/test_structural_write_cost.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/test_study.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/test_symbol_order.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/test_systemone_ranker.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/test_test_intent_trial.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/test_token_overhead.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/test_trigram_workspace.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/test_understanding_evaluation.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/test_walk_order.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/test_warm_cache.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/test_workflow_sequences.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/unit/__init__.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/unit/code_intel/__init__.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/unit/code_intel/conftest.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/unit/code_intel/test_advisory_lock.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/unit/code_intel/test_api.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/unit/code_intel/test_api_phase3a.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/unit/code_intel/test_api_v2.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/unit/code_intel/test_auth.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/unit/code_intel/test_branch_versioning.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/unit/code_intel/test_bug_finder.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/unit/code_intel/test_call_graph_tool.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/unit/code_intel/test_ci_runner.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/unit/code_intel/test_cli_lifecycle.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/unit/code_intel/test_cli_maintenance_local.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/unit/code_intel/test_cli_ops.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/unit/code_intel/test_cli_query_commands.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/unit/code_intel/test_cli_remote.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/unit/code_intel/test_codex_rereview_polish.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/unit/code_intel/test_combinators.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/unit/code_intel/test_confidence.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/unit/code_intel/test_confidence_adoption.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/unit/code_intel/test_config.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/unit/code_intel/test_config_remote.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/unit/code_intel/test_cross_mode.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/unit/code_intel/test_db_security_scan.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/unit/code_intel/test_deps.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/unit/code_intel/test_diff_engine.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/unit/code_intel/test_edge_cases.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/unit/code_intel/test_frecency.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/unit/code_intel/test_fuzzy.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/unit/code_intel/test_index_store_migration.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/unit/code_intel/test_kw_index_status.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/unit/code_intel/test_lsp_call_graph.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/unit/code_intel/test_lsp_enrichment.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/unit/code_intel/test_lsp_extended_models.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/unit/code_intel/test_marketplace.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/unit/code_intel/test_metavar.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/unit/code_intel/test_middleware.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/unit/code_intel/test_notify_enhanced.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/unit/code_intel/test_org_isolation.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/unit/code_intel/test_pack_autoload.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/unit/code_intel/test_profiling.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/unit/code_intel/test_project_discovery.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/unit/code_intel/test_provenance_store.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/unit/code_intel/test_pubsub_streams.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/unit/code_intel/test_query_constraints.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/unit/code_intel/test_query_history.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/unit/code_intel/test_readiness.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/unit/code_intel/test_reindex_embeddings.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/unit/code_intel/test_remote_local_fallback.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/unit/code_intel/test_remote_provider.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/unit/code_intel/test_remote_reliability.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/unit/code_intel/test_repo_ranker.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/unit/code_intel/test_rule_evolution.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/unit/code_intel/test_rule_hygiene.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/unit/code_intel/test_rule_synthesis.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/unit/code_intel/test_rule_tools.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/unit/code_intel/test_rule_violations.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/unit/code_intel/test_rules_engine.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/unit/code_intel/test_rules_integration.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/unit/code_intel/test_sarif.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/unit/code_intel/test_search_tools.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/unit/code_intel/test_server_startup.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/unit/code_intel/test_service.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/unit/code_intel/test_service_mode.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/unit/code_intel/test_status_health.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/unit/code_intel/test_structural_executor.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/unit/code_intel/test_supply_chain_rules.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/unit/code_intel/test_testing_framework.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/unit/code_intel/test_webhook_encryption.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/unit/code_intel/tools/__init__.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/unit/code_intel/tools/conftest.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/unit/code_intel/tools/test_adr_tools.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/unit/code_intel/tools/test_analysis_tools.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/unit/code_intel/tools/test_dead_code_tools.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/unit/code_intel/tools/test_distill_tools.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/unit/code_intel/tools/test_history_tools.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/unit/code_intel/tools/test_learning_tools.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/unit/code_intel/tools/test_lsp_tools.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/unit/code_intel/tools/test_maintenance_tools_phase2.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/unit/code_intel/tools/test_navigation_tools.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/unit/code_intel/tools/test_phase2c_anchors_and_overlays.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/unit/code_intel/tools/test_readiness_tools.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/unit/code_intel/tools/test_search_status_mismatch.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/unit/code_intel/tools/test_search_tools.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/unit/code_intel/tools/test_server_tools.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/unit/context/__init__.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/unit/context/test_action_hash.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/unit/context/test_ast_service_adapter.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/unit/context/test_blob_oid.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/unit/context/test_cache_manifest.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/unit/context/test_cas.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/unit/context/test_embedding_rotation.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/unit/context/test_pagerank_restoration.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/unit/context/test_provenance.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/unit/context/test_retrieval_pin.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/unit/context/test_vector_store_dim_safety.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/unit/eval/__init__.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/unit/eval/conftest.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/unit/eval/test_acc_at_k.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/unit/eval/test_broad_candidate_audit.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/unit/eval/test_calibration_demo.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/unit/eval/test_harness.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/unit/eval/test_matrix_agents.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/unit/eval/test_matrix_ci.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/unit/eval/test_matrix_datasets.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/unit/eval/test_matrix_dense.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/unit/eval/test_matrix_embed_screen.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/unit/eval/test_matrix_function_bm25.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/unit/eval/test_matrix_function_dense.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/unit/eval/test_matrix_rerank.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/unit/eval/test_matrix_retrieve.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/unit/eval/test_matrix_run.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/unit/eval/test_matrix_stats.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/unit/eval/test_mcp_bench.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/unit/eval/test_rule_accuracy.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/unit/eval/test_rule_bench_config.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/unit/eval/test_rule_bench_corpus.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/unit/eval/test_rule_bench_evaluator.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/unit/eval/test_rule_bench_predicate.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/unit/eval/test_rule_bench_scoring.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/unit/eval/test_rule_bench_template_engine.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/unit/eval/test_rule_harness_import.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/unit/eval/test_search_quality_reporting.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/unit/eval/test_search_readiness.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/unit/eval/test_seed_attocode_fixtures.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/unit/integrations/__init__.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/unit/integrations/context/__init__.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/unit/integrations/context/test_architecture_drift.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/unit/integrations/context/test_ast_service_hydration.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/unit/integrations/context/test_body_chunking.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/unit/integrations/context/test_call_graph.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/unit/integrations/context/test_code_analyzer.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/unit/integrations/context/test_codebase_ast.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/unit/integrations/context/test_codebase_context.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/unit/integrations/context/test_context_stores_closed.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/unit/integrations/context/test_cross_ref_search.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/unit/integrations/context/test_embedder_default.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/unit/integrations/context/test_embeddings.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/unit/integrations/context/test_embeddings_query.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/unit/integrations/context/test_go_symbols.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/unit/integrations/context/test_hydration.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/unit/integrations/context/test_index_store.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/unit/integrations/context/test_model_mismatch.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/unit/integrations/context/test_path_downweight.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/unit/integrations/context/test_query_routing.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/unit/integrations/context/test_semantic_search.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/unit/integrations/context/test_supported_languages.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/unit/integrations/context/test_temporal_coupling.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/unit/integrations/context/test_trigram_index.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/unit/integrations/context/test_trigram_regex.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/unit/integrations/context/test_ts_parser.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/unit/integrations/test_dataflow.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/unit/integrations/test_feature_flags.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/unit/integrations/test_new_security_rules.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/unit/integrations/test_security_autofix.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/unit/integrations/test_security_matcher.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/unit/integrations/test_streaming_lsp.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/unit/integrations/utilities/__init__.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/unit/integrations/utilities/test_ignore.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/unit/integrations/utilities/test_token_estimate.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/unit/test_code_intel.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/unit/test_code_intel_hydration.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/unit/test_errors.py +0 -0
- {attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/tests/unit/test_memory_store.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.28
|
|
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
|
|
@@ -156,6 +156,8 @@ To use the latest source, install from a clone of this repository: `uv tool inst
|
|
|
156
156
|
|
|
157
157
|
## What your agent gets
|
|
158
158
|
|
|
159
|
+
Version 0.1.28 summarizes duplicate compact-search metadata diagnostics after evidence fitting. Full lexical-index details remain at `data.ranking.index`, with readiness and coverage hints in `metadata.ranking.index`. Results and source excerpts are unchanged. See the [release notes](https://github.com/eren23/attocode/blob/main/docs/intelligence-0.1.28.md).
|
|
160
|
+
|
|
159
161
|
Version 0.1.27 fixes a dictionary-size error during symbol inspection when AST hydration changes the cache concurrently. Namespace resolution snapshots cached file membership; later changes appear in the next build. See the [release notes](https://github.com/eren23/attocode/blob/main/docs/intelligence-0.1.27.md).
|
|
160
162
|
|
|
161
163
|
Version 0.1.26 gives Rust precision lookups a shared five-second budget and fixes cancelled startup cleanup when a child retains inherited pipes. Other languages keep two seconds; longer reloads still return partial evidence.
|
|
@@ -43,6 +43,8 @@ To use the latest source, install from a clone of this repository: `uv tool inst
|
|
|
43
43
|
|
|
44
44
|
## What your agent gets
|
|
45
45
|
|
|
46
|
+
Version 0.1.28 summarizes duplicate compact-search metadata diagnostics after evidence fitting. Full lexical-index details remain at `data.ranking.index`, with readiness and coverage hints in `metadata.ranking.index`. Results and source excerpts are unchanged. See the [release notes](https://github.com/eren23/attocode/blob/main/docs/intelligence-0.1.28.md).
|
|
47
|
+
|
|
46
48
|
Version 0.1.27 fixes a dictionary-size error during symbol inspection when AST hydration changes the cache concurrently. Namespace resolution snapshots cached file membership; later changes appear in the next build. See the [release notes](https://github.com/eren23/attocode/blob/main/docs/intelligence-0.1.27.md).
|
|
47
49
|
|
|
48
50
|
Version 0.1.26 gives Rust precision lookups a shared five-second budget and fixes cancelled startup cleanup when a child retains inherited pipes. Other languages keep two seconds; longer reloads still return partial evidence.
|
|
@@ -207,6 +207,30 @@ def _restore_search_snippets(result, originals, max_tokens, *, upstream_truncate
|
|
|
207
207
|
return result
|
|
208
208
|
|
|
209
209
|
|
|
210
|
+
def _compact_search_ranking(result, max_tokens):
|
|
211
|
+
"""Summarize a duplicate metadata index after all evidence fitting is done.
|
|
212
|
+
|
|
213
|
+
The full record remains in data.ranking.index. Preserve readiness/coverage
|
|
214
|
+
hints for metadata consumers, and retain the original page if no saving fits.
|
|
215
|
+
"""
|
|
216
|
+
page = json.loads(result.content[0].text)
|
|
217
|
+
ranking = page['metadata'].get('ranking')
|
|
218
|
+
if not isinstance(ranking, dict) or ranking != page['data'].get('ranking'):
|
|
219
|
+
return result
|
|
220
|
+
index = ranking.get('index')
|
|
221
|
+
if not isinstance(index, dict):
|
|
222
|
+
return result
|
|
223
|
+
summary = {key: index[key] for key in (
|
|
224
|
+
'status', 'body_index_available', 'body_index_ready', 'body_index_coverage',
|
|
225
|
+
'discovery_truncated', 'vector_status', 'vector_coverage') if key in index}
|
|
226
|
+
summary['details_in'] = 'data.ranking.index'
|
|
227
|
+
ranking['index'] = summary
|
|
228
|
+
candidate = compact_result(page['metadata'], page['data'])
|
|
229
|
+
if response_tokens(candidate) <= min(max_tokens, response_tokens(result)):
|
|
230
|
+
return candidate
|
|
231
|
+
return result
|
|
232
|
+
|
|
233
|
+
|
|
210
234
|
def bounded_search(metadata, data, max_tokens, *, all_results, follow_up=None):
|
|
211
235
|
"""Fit search delivery, reserving a progressing retry after final omissions."""
|
|
212
236
|
payload = deepcopy(data)
|
|
@@ -246,8 +270,9 @@ def bounded_search(metadata, data, max_tokens, *, all_results, follow_up=None):
|
|
|
246
270
|
and len(delivered["data"]["results"]) >= delivered["data"]["ranking"]["candidate_pool_count"]):
|
|
247
271
|
delivered["data"].pop("follow_up", None)
|
|
248
272
|
result = compact_result(delivered["metadata"], delivered["data"])
|
|
249
|
-
|
|
250
|
-
|
|
273
|
+
restored = _restore_search_snippets(result, all_results, max_tokens,
|
|
274
|
+
upstream_truncated=metadata.get("truncated", False))
|
|
275
|
+
return _compact_search_ranking(restored, max_tokens)
|
|
251
276
|
|
|
252
277
|
|
|
253
278
|
def bounded_compact(metadata: dict, data, max_tokens: int, *, search_results=None) -> types.CallToolResult:
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
"""Compact metadata need not serialize a complete ranking index twice."""
|
|
2
|
+
import json
|
|
3
|
+
from copy import deepcopy
|
|
4
|
+
|
|
5
|
+
import pytest
|
|
6
|
+
from attocode_intel import output
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
def page():
|
|
10
|
+
index = {'status': 'ready', 'body_index_available': True, 'body_index_ready': True,
|
|
11
|
+
'body_index_coverage': .99, 'discovery_truncated': False, 'vector_status': 'idle',
|
|
12
|
+
'vector_coverage': 0., 'keyword_indexed_files': 9000, 'body_indexed_files': 8910,
|
|
13
|
+
'discovery_selected_files': 9000, 'discovery_discovered_files': 9000,
|
|
14
|
+
'discovery_max_files': 50000, 'warmup_reused_asts': 8000, 'warmup_stage': 'ready',
|
|
15
|
+
'warmup_seconds': 12.123, 'keyword_seconds': 7.123, 'body_seconds': 5.0,
|
|
16
|
+
'importance_seconds': .001, 'keyword_index_ready': True}
|
|
17
|
+
ranking = {'method': 'source_aware_deterministic', 'provider': 'off', 'index': index,
|
|
18
|
+
'candidate_pool_count': 1, 'returned_count': 1, 'delivered_count': 1}
|
|
19
|
+
metadata = {'workspace': '/repo', 'source': 'local', 'revision': 'working-tree',
|
|
20
|
+
'freshness': 'working_tree', 'truncated': False, 'ranking': deepcopy(ranking)}
|
|
21
|
+
data = {'query': 'quota', 'ranking': ranking, 'results': [
|
|
22
|
+
{'file_path': 'a.py', 'name': 'quota', 'chunk_type': 'function', 'score': .5,
|
|
23
|
+
'line': 1, 'end_line': 2, 'snippet': 'def quota():\n return 3\n',
|
|
24
|
+
'snippet_start_line': 1, 'snippet_end_line': 2, 'snippet_truncated': False,
|
|
25
|
+
'matched_terms': ['quota'], 'match_fields': ['source_body']}]}
|
|
26
|
+
return metadata, data
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
def legacy(monkeypatch, metadata, data, budget):
|
|
30
|
+
with monkeypatch.context() as patch:
|
|
31
|
+
if hasattr(output, '_compact_search_ranking'):
|
|
32
|
+
patch.setattr(output, '_compact_search_ranking', lambda result, _budget: result)
|
|
33
|
+
return output.bounded_search(metadata, data, budget, all_results=data['results'])
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
def test_duplicate_index_summary_keeps_entire_data(monkeypatch):
|
|
37
|
+
metadata, data = page()
|
|
38
|
+
before = legacy(monkeypatch, metadata, data, 8000)
|
|
39
|
+
result = output.bounded_search(metadata, data, 8000, all_results=data['results'])
|
|
40
|
+
old, new = (json.loads(r.content[0].text) for r in (before, result))
|
|
41
|
+
assert new['data'] == old['data'] == data
|
|
42
|
+
summary = new['metadata']['ranking']['index']
|
|
43
|
+
assert summary['details_in'] == 'data.ranking.index'
|
|
44
|
+
assert all(summary[k] == data['ranking']['index'][k] for k in (
|
|
45
|
+
'status', 'body_index_available', 'body_index_ready', 'body_index_coverage',
|
|
46
|
+
'discovery_truncated', 'vector_status', 'vector_coverage'))
|
|
47
|
+
assert {k:v for k,v in new['metadata']['ranking'].items() if k != 'index'} == {
|
|
48
|
+
k:v for k,v in old['metadata']['ranking'].items() if k != 'index'}
|
|
49
|
+
assert output.response_tokens(result) < output.response_tokens(before)
|
|
50
|
+
|
|
51
|
+
|
|
52
|
+
@pytest.mark.parametrize('budget', [800, 1200, 2000, 8000])
|
|
53
|
+
def test_budget_and_full_data_floor_are_identical(monkeypatch, budget):
|
|
54
|
+
metadata, data = page()
|
|
55
|
+
before = legacy(monkeypatch, metadata, data, budget)
|
|
56
|
+
result = output.bounded_search(metadata, data, budget, all_results=data['results'])
|
|
57
|
+
old, new = (json.loads(r.content[0].text) for r in (before, result))
|
|
58
|
+
assert new['data'] == old['data']
|
|
59
|
+
assert output.response_tokens(result) <= output.response_tokens(before) <= budget
|
|
60
|
+
assert {k:v for k,v in new['metadata'].items() if k != 'ranking'} == {
|
|
61
|
+
k:v for k,v in old['metadata'].items() if k != 'ranking'}
|
|
62
|
+
|
|
63
|
+
|
|
64
|
+
@pytest.mark.parametrize('kind', ['missing', 'divergent', 'tiny', 'non_mapping'])
|
|
65
|
+
def test_unrelated_or_nonbeneficial_alias_is_byte_identical(monkeypatch, kind):
|
|
66
|
+
metadata, data = page()
|
|
67
|
+
if kind == 'missing':
|
|
68
|
+
metadata.pop('ranking')
|
|
69
|
+
elif kind == 'divergent':
|
|
70
|
+
metadata['ranking']['method'] = 'different stage'
|
|
71
|
+
elif kind == 'tiny':
|
|
72
|
+
metadata['ranking']['index'] = data['ranking']['index'] = {'status': 'ready'}
|
|
73
|
+
else:
|
|
74
|
+
metadata['ranking']['index'] = data['ranking']['index'] = 'ready'
|
|
75
|
+
expected = legacy(monkeypatch, metadata, data, 8000)
|
|
76
|
+
actual = output.bounded_search(metadata, data, 8000, all_results=data['results'])
|
|
77
|
+
assert actual.model_dump() == expected.model_dump()
|
|
78
|
+
|
|
79
|
+
|
|
80
|
+
def test_input_objects_are_not_mutated():
|
|
81
|
+
metadata, data = page()
|
|
82
|
+
saved = deepcopy((metadata,data))
|
|
83
|
+
output.bounded_search(metadata,data,8000,all_results=data['results'])
|
|
84
|
+
assert (metadata,data) == saved
|
|
85
|
+
|
|
86
|
+
|
|
87
|
+
@pytest.mark.asyncio
|
|
88
|
+
async def test_real_gateway_preserves_payload_and_readiness(monkeypatch, tmp_path):
|
|
89
|
+
from attocode_intel.gateway import OperationGateway
|
|
90
|
+
|
|
91
|
+
from eval.quality.corpus import ready_search
|
|
92
|
+
|
|
93
|
+
(tmp_path/'quota.py').write_text('def quota():\n return "quota limit"\n')
|
|
94
|
+
gateway=OperationGateway(str(tmp_path),profile='daily',watch=False)
|
|
95
|
+
args={'query':'quota limit','top_k':10,'max_tokens':2000}
|
|
96
|
+
try:
|
|
97
|
+
await ready_search(gateway, {'query':'neutral readiness','top_k':1,'max_tokens':2000})
|
|
98
|
+
with monkeypatch.context() as patch:
|
|
99
|
+
if hasattr(output,'_compact_search_ranking'):
|
|
100
|
+
patch.setattr(output,'_compact_search_ranking',lambda result,_budget:result)
|
|
101
|
+
old=await gateway.execute_mcp('semantic_search',args)
|
|
102
|
+
new=await gateway.execute_mcp('semantic_search',args)
|
|
103
|
+
a,b=(json.loads(r.content[0].text) for r in (old,new))
|
|
104
|
+
assert a['data']==b['data']
|
|
105
|
+
assert b['metadata']['ranking']['index']['details_in']=='data.ranking.index'
|
|
106
|
+
assert b['metadata']['ranking']['index']['status']==b['data']['ranking']['index']['status']
|
|
107
|
+
assert output.response_tokens(new)<output.response_tokens(old)<=2000
|
|
108
|
+
finally:
|
|
109
|
+
await gateway.close()
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/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
|
|
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.27 → attocode_code_intel-0.1.28}/src/attocode_intel/analysis_coverage.py
RENAMED
|
File without changes
|
{attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/api/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/api/auth/__init__.py
RENAMED
|
File without changes
|
{attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/api/auth/api_keys.py
RENAMED
|
File without changes
|
{attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/api/auth/context.py
RENAMED
|
File without changes
|
{attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/api/auth/jwt.py
RENAMED
|
File without changes
|
{attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/api/auth/oauth.py
RENAMED
|
File without changes
|
{attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/api/auth/passwords.py
RENAMED
|
File without changes
|
|
File without changes
|
{attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/api/knowledge_bridge.py
RENAMED
|
File without changes
|
{attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/api/mcp_transport.py
RENAMED
|
File without changes
|
{attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/api/middleware.py
RENAMED
|
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.27 → attocode_code_intel-0.1.28}/src/attocode_intel/api/routes/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/api/routes/activity.py
RENAMED
|
File without changes
|
{attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/api/routes/adr.py
RENAMED
|
File without changes
|
{attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/api/routes/analysis.py
RENAMED
|
File without changes
|
{attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/api/routes/api_keys.py
RENAMED
|
File without changes
|
{attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/api/routes/auth.py
RENAMED
|
File without changes
|
{attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/api/routes/branches.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/api/routes/files.py
RENAMED
|
File without changes
|
{attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/api/routes/files_v2.py
RENAMED
|
File without changes
|
{attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/api/routes/gc.py
RENAMED
|
File without changes
|
{attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/api/routes/git_v2.py
RENAMED
|
File without changes
|
{attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/api/routes/graph.py
RENAMED
|
File without changes
|
{attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/api/routes/graph_viz.py
RENAMED
|
File without changes
|
{attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/api/routes/health.py
RENAMED
|
File without changes
|
{attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/api/routes/history.py
RENAMED
|
File without changes
|
{attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/api/routes/jobs.py
RENAMED
|
File without changes
|
{attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/api/routes/learning.py
RENAMED
|
File without changes
|
{attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/api/routes/lsp.py
RENAMED
|
File without changes
|
{attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/api/routes/notify.py
RENAMED
|
File without changes
|
|
File without changes
|
{attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/api/routes/orgs.py
RENAMED
|
File without changes
|
|
File without changes
|
{attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/api/routes/presence.py
RENAMED
|
File without changes
|
{attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/api/routes/projects.py
RENAMED
|
File without changes
|
{attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/api/routes/repos.py
RENAMED
|
File without changes
|
{attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/api/routes/search.py
RENAMED
|
File without changes
|
{attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/api/routes/snapshots.py
RENAMED
|
File without changes
|
{attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/api/routes/webhooks.py
RENAMED
|
File without changes
|
{attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/api/routes/websocket.py
RENAMED
|
File without changes
|
{attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/api/static/graph.html
RENAMED
|
File without changes
|
|
File without changes
|
{attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/artifacts/__init__.py
RENAMED
|
File without changes
|
{attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/artifacts/hashing.py
RENAMED
|
File without changes
|
{attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/artifacts/provenance.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/change_evidence.py
RENAMED
|
File without changes
|
{attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/change_investigation.py
RENAMED
|
File without changes
|
{attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/change_review.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/confidence/__init__.py
RENAMED
|
File without changes
|
{attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/confidence/jev.py
RENAMED
|
File without changes
|
{attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/confidence/llm.py
RENAMED
|
File without changes
|
{attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/confidence/redact.py
RENAMED
|
File without changes
|
{attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/confidence/settings.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
|
{attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/focused_evidence.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/git/__init__.py
RENAMED
|
File without changes
|
{attocode_code_intel-0.1.27 → attocode_code_intel-0.1.28}/src/attocode_intel/git/credentials.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|