attocode-code-intel 0.1.5__tar.gz → 0.1.7__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (847) hide show
  1. attocode_code_intel-0.1.7/.gitignore +88 -0
  2. attocode_code_intel-0.1.7/PKG-INFO +245 -0
  3. attocode_code_intel-0.1.7/README.md +132 -0
  4. attocode_code_intel-0.1.7/evals/ast_restart_probe.py +101 -0
  5. attocode_code_intel-0.1.7/evals/body_cost_probe.py +101 -0
  6. attocode_code_intel-0.1.7/evals/designs/2026-10-15-body-file-trial.md +34 -0
  7. attocode_code_intel-0.1.7/evals/designs/2026-10-15-body-file-validation.json +427 -0
  8. attocode_code_intel-0.1.7/evals/designs/2026-10-15-expansion-ablation.md +33 -0
  9. attocode_code_intel-0.1.7/evals/designs/2026-10-15-expansion-development.json +192 -0
  10. attocode_code_intel-0.1.7/evals/designs/2026-10-15-expansion-validation.json +180 -0
  11. attocode_code_intel-0.1.7/evals/designs/2026-10-15-fresh-navigation-queries.json +90 -0
  12. attocode_code_intel-0.1.7/evals/designs/2026-10-15-headroom-retrieval-questions.json +859 -0
  13. attocode_code_intel-0.1.7/evals/designs/2026-10-15-headroom-retrieval.md +17 -0
  14. attocode_code_intel-0.1.7/evals/designs/2026-10-16-cross-file-questions.json +158 -0
  15. attocode_code_intel-0.1.7/evals/designs/2026-10-16-deep-page-questions.json +160 -0
  16. attocode_code_intel-0.1.7/evals/designs/2026-10-16-kotlin-test-paths.json +106 -0
  17. attocode_code_intel-0.1.7/evals/designs/2026-10-16-navigation-prefix-validation.json +266 -0
  18. attocode_code_intel-0.1.7/evals/designs/2026-10-16-navigation-prefix.json +310 -0
  19. attocode_code_intel-0.1.7/evals/designs/2026-10-16-negation-candidate.patch.gz +0 -0
  20. attocode_code_intel-0.1.7/evals/designs/2026-10-16-negation-development.json +208 -0
  21. attocode_code_intel-0.1.7/evals/designs/2026-10-16-negation-freeze.json +48 -0
  22. attocode_code_intel-0.1.7/evals/designs/2026-10-16-negation-validation.json +208 -0
  23. attocode_code_intel-0.1.7/evals/designs/2026-10-16-search-correctness-candidates/accepted.patch.gz +0 -0
  24. attocode_code_intel-0.1.7/evals/designs/2026-10-16-search-correctness-candidates/boundaries.patch.gz +0 -0
  25. attocode_code_intel-0.1.7/evals/designs/2026-10-16-search-correctness-candidates/combined.patch.gz +0 -0
  26. attocode_code_intel-0.1.7/evals/designs/2026-10-16-search-correctness-candidates/expansion.patch.gz +0 -0
  27. attocode_code_intel-0.1.7/evals/designs/2026-10-16-search-correctness-candidates/identity.patch.gz +0 -0
  28. attocode_code_intel-0.1.7/evals/designs/2026-10-16-search-correctness-candidates/manifest.json +76 -0
  29. attocode_code_intel-0.1.7/evals/designs/2026-10-16-search-correctness-candidates/negation.patch.gz +0 -0
  30. attocode_code_intel-0.1.7/evals/designs/2026-10-16-search-correctness-candidates/owner_only.patch.gz +0 -0
  31. attocode_code_intel-0.1.7/evals/designs/2026-10-16-search-correctness-candidates/owners.patch.gz +0 -0
  32. attocode_code_intel-0.1.7/evals/designs/2026-10-16-search-correctness-confirmation-freeze.json +7 -0
  33. attocode_code_intel-0.1.7/evals/designs/2026-10-16-search-correctness-confirmation.json +206 -0
  34. attocode_code_intel-0.1.7/evals/designs/2026-10-16-search-correctness-development.json +206 -0
  35. attocode_code_intel-0.1.7/evals/designs/2026-10-16-search-correctness-freeze.json +348 -0
  36. attocode_code_intel-0.1.7/evals/designs/2026-10-16-search-correctness-validation.json +206 -0
  37. attocode_code_intel-0.1.7/evals/designs/2026-10-16-search-usefulness-development.json +285 -0
  38. attocode_code_intel-0.1.7/evals/designs/2026-10-16-search-usefulness-validation.json +285 -0
  39. attocode_code_intel-0.1.7/evals/designs/2026-10-16-search-usefulness.json +36 -0
  40. attocode_code_intel-0.1.7/evals/designs/2026-10-16-test-intent.json +210 -0
  41. attocode_code_intel-0.1.7/evals/discovery_reuse_probe.py +63 -0
  42. attocode_code_intel-0.1.7/evals/lexical_sql_probe.py +171 -0
  43. attocode_code_intel-0.1.7/evals/restart_discovery_probe.py +101 -0
  44. attocode_code_intel-0.1.7/evals/results/2026-10-14-breadth-cloud-first.json +585 -0
  45. attocode_code_intel-0.1.7/evals/results/2026-10-14-breadth-development.json +10355 -0
  46. attocode_code_intel-0.1.7/evals/results/2026-10-14-breadth-development.md +113 -0
  47. attocode_code_intel-0.1.7/evals/results/2026-10-15-ast-restart.json +183 -0
  48. attocode_code_intel-0.1.7/evals/results/2026-10-15-ast-restart.md +87 -0
  49. attocode_code_intel-0.1.7/evals/results/2026-10-15-body-index-profile.json +83 -0
  50. attocode_code_intel-0.1.7/evals/results/2026-10-15-body-index-profile.md +40 -0
  51. attocode_code_intel-0.1.7/evals/results/2026-10-15-breadth-cloud.json +3962 -0
  52. attocode_code_intel-0.1.7/evals/results/2026-10-15-breadth-cloud.md +67 -0
  53. attocode_code_intel-0.1.7/evals/results/2026-10-15-cloud-bootstrap.json +62 -0
  54. attocode_code_intel-0.1.7/evals/results/2026-10-15-cloud-bootstrap.md +23 -0
  55. attocode_code_intel-0.1.7/evals/results/2026-10-15-cloud-setup-lock.json +45 -0
  56. attocode_code_intel-0.1.7/evals/results/2026-10-15-cloud-setup-lock.md +28 -0
  57. attocode_code_intel-0.1.7/evals/results/2026-10-15-cockroach-index-probe.json +2107 -0
  58. attocode_code_intel-0.1.7/evals/results/2026-10-15-cockroach-index-probe.md +123 -0
  59. attocode_code_intel-0.1.7/evals/results/2026-10-15-cold-followup.json +6958 -0
  60. attocode_code_intel-0.1.7/evals/results/2026-10-15-cold-followup.md +110 -0
  61. attocode_code_intel-0.1.7/evals/results/2026-10-15-cold-repair-cycle.json +2350 -0
  62. attocode_code_intel-0.1.7/evals/results/2026-10-15-cold-repair-cycle.md +80 -0
  63. attocode_code_intel-0.1.7/evals/results/2026-10-15-discovery-body-repair.json +2257 -0
  64. attocode_code_intel-0.1.7/evals/results/2026-10-15-discovery-body-repair.md +115 -0
  65. attocode_code_intel-0.1.7/evals/results/2026-10-15-discovery-validation.json +851 -0
  66. attocode_code_intel-0.1.7/evals/results/2026-10-15-discovery-validation.md +85 -0
  67. attocode_code_intel-0.1.7/evals/results/2026-10-15-expansion-choice.json +12 -0
  68. attocode_code_intel-0.1.7/evals/results/2026-10-15-expansion-importance.json +22925 -0
  69. attocode_code_intel-0.1.7/evals/results/2026-10-15-expansion-importance.md +109 -0
  70. attocode_code_intel-0.1.7/evals/results/2026-10-15-file-symbol-probe.json +76 -0
  71. attocode_code_intel-0.1.7/evals/results/2026-10-15-file-symbol-validation.json +82 -0
  72. attocode_code_intel-0.1.7/evals/results/2026-10-15-headroom-cloud.json +788 -0
  73. attocode_code_intel-0.1.7/evals/results/2026-10-15-headroom-retrieval.json +18910 -0
  74. attocode_code_intel-0.1.7/evals/results/2026-10-15-headroom-retrieval.md +100 -0
  75. attocode_code_intel-0.1.7/evals/results/2026-10-15-headroom-validation.json +965 -0
  76. attocode_code_intel-0.1.7/evals/results/2026-10-15-index-probe-readiness.json +2766 -0
  77. attocode_code_intel-0.1.7/evals/results/2026-10-15-index-probe-readiness.md +91 -0
  78. attocode_code_intel-0.1.7/evals/results/2026-10-15-lexical-sql-contention.json +220 -0
  79. attocode_code_intel-0.1.7/evals/results/2026-10-15-lexical-sql-contention.md +38 -0
  80. attocode_code_intel-0.1.7/evals/results/2026-10-15-protocol-body-followup.json +12985 -0
  81. attocode_code_intel-0.1.7/evals/results/2026-10-15-protocol-body-followup.md +116 -0
  82. attocode_code_intel-0.1.7/evals/results/2026-10-15-protocol-body-validation.json +971 -0
  83. attocode_code_intel-0.1.7/evals/results/2026-10-15-release-016.json +2414 -0
  84. attocode_code_intel-0.1.7/evals/results/2026-10-15-release-016.md +81 -0
  85. attocode_code_intel-0.1.7/evals/results/2026-10-15-restart-discovery-repair.json +287 -0
  86. attocode_code_intel-0.1.7/evals/results/2026-10-15-restart-discovery-repair.md +55 -0
  87. attocode_code_intel-0.1.7/evals/results/2026-10-15-retrieval-audit.json +5592 -0
  88. attocode_code_intel-0.1.7/evals/results/2026-10-15-retrieval-file-symbol.md +112 -0
  89. attocode_code_intel-0.1.7/evals/results/2026-10-15-retrieval-replay.json +2809 -0
  90. attocode_code_intel-0.1.7/evals/results/2026-10-15-structural-write-contention.json +151 -0
  91. attocode_code_intel-0.1.7/evals/results/2026-10-15-structural-write-contention.md +51 -0
  92. attocode_code_intel-0.1.7/evals/results/2026-10-16-change-investigation.md +74 -0
  93. attocode_code_intel-0.1.7/evals/results/2026-10-16-cockroach-fresh-timing.json +35 -0
  94. attocode_code_intel-0.1.7/evals/results/2026-10-16-cross-file-audit.json +1271 -0
  95. attocode_code_intel-0.1.7/evals/results/2026-10-16-cross-file-audit.md +113 -0
  96. attocode_code_intel-0.1.7/evals/results/2026-10-16-deep-page-diversity.json +6938 -0
  97. attocode_code_intel-0.1.7/evals/results/2026-10-16-deep-page-diversity.md +81 -0
  98. attocode_code_intel-0.1.7/evals/results/2026-10-16-intelligence-test-migration.json +1334 -0
  99. attocode_code_intel-0.1.7/evals/results/2026-10-16-intelligence-transition.json +254 -0
  100. attocode_code_intel-0.1.7/evals/results/2026-10-16-intelligence-transition.md +81 -0
  101. attocode_code_intel-0.1.7/evals/results/2026-10-16-kotlin-test-paths.json +5188 -0
  102. attocode_code_intel-0.1.7/evals/results/2026-10-16-kotlin-test-paths.md +90 -0
  103. attocode_code_intel-0.1.7/evals/results/2026-10-16-navigation-prefix.json +11198 -0
  104. attocode_code_intel-0.1.7/evals/results/2026-10-16-navigation-prefix.md +104 -0
  105. attocode_code_intel-0.1.7/evals/results/2026-10-16-negation-decision.json +107 -0
  106. attocode_code_intel-0.1.7/evals/results/2026-10-16-negation-observations.json.gz +0 -0
  107. attocode_code_intel-0.1.7/evals/results/2026-10-16-negation.md +85 -0
  108. attocode_code_intel-0.1.7/evals/results/2026-10-16-search-correctness-decision.json +560 -0
  109. attocode_code_intel-0.1.7/evals/results/2026-10-16-search-correctness-observations.json.gz +0 -0
  110. attocode_code_intel-0.1.7/evals/results/2026-10-16-search-correctness.md +135 -0
  111. attocode_code_intel-0.1.7/evals/results/2026-10-16-search-recovery-batch.md +118 -0
  112. attocode_code_intel-0.1.7/evals/results/2026-10-16-search-recovery-validation.json +189 -0
  113. attocode_code_intel-0.1.7/evals/results/2026-10-16-search-usefulness-decision.json +256 -0
  114. attocode_code_intel-0.1.7/evals/results/2026-10-16-search-usefulness-development-express.json +1 -0
  115. attocode_code_intel-0.1.7/evals/results/2026-10-16-search-usefulness-development-gson.json +1 -0
  116. attocode_code_intel-0.1.7/evals/results/2026-10-16-search-usefulness-development-requests.json +1 -0
  117. attocode_code_intel-0.1.7/evals/results/2026-10-16-search-usefulness-development-ripgrep.json +1 -0
  118. attocode_code_intel-0.1.7/evals/results/2026-10-16-search-usefulness-validation-checks.json +57 -0
  119. attocode_code_intel-0.1.7/evals/results/2026-10-16-search-usefulness-validation-express.json +1 -0
  120. attocode_code_intel-0.1.7/evals/results/2026-10-16-search-usefulness-validation-gson.json +1 -0
  121. attocode_code_intel-0.1.7/evals/results/2026-10-16-search-usefulness-validation-requests.json +1 -0
  122. attocode_code_intel-0.1.7/evals/results/2026-10-16-search-usefulness-validation-ripgrep.json +1 -0
  123. attocode_code_intel-0.1.7/evals/results/2026-10-16-search-usefulness.md +132 -0
  124. attocode_code_intel-0.1.7/evals/results/2026-10-16-test-intent.json +1 -0
  125. attocode_code_intel-0.1.7/evals/structural_write_probe.py +83 -0
  126. attocode_code_intel-0.1.7/pyproject.toml +150 -0
  127. attocode_code_intel-0.1.7/src/attocode_intel/__init__.py +52 -0
  128. attocode_code_intel-0.1.7/src/attocode_intel/_internal/integrations/context/ast_service.py +1525 -0
  129. attocode_code_intel-0.1.7/src/attocode_intel/_internal/integrations/context/ast_snapshot.py +164 -0
  130. attocode_code_intel-0.1.7/src/attocode_intel/_internal/integrations/context/codebase_ast.py +1415 -0
  131. attocode_code_intel-0.1.7/src/attocode_intel/_internal/integrations/context/codebase_context.py +1835 -0
  132. attocode_code_intel-0.1.7/src/attocode_intel/_internal/integrations/context/cross_references.py +682 -0
  133. attocode_code_intel-0.1.7/src/attocode_intel/_internal/integrations/context/discovery_snapshot.py +57 -0
  134. attocode_code_intel-0.1.7/src/attocode_intel/_internal/integrations/context/index_probe.py +197 -0
  135. attocode_code_intel-0.1.7/src/attocode_intel/_internal/integrations/context/index_repair.py +91 -0
  136. attocode_code_intel-0.1.7/src/attocode_intel/_internal/integrations/context/index_store.py +602 -0
  137. attocode_code_intel-0.1.7/src/attocode_intel/_internal/integrations/context/language_registry.py +75 -0
  138. attocode_code_intel-0.1.7/src/attocode_intel/_internal/integrations/context/module_resolution.py +306 -0
  139. attocode_code_intel-0.1.7/src/attocode_intel/_internal/integrations/context/semantic_search.py +3234 -0
  140. attocode_code_intel-0.1.7/src/attocode_intel/_internal/integrations/context/syntax_evidence.py +103 -0
  141. attocode_code_intel-0.1.7/src/attocode_intel/_internal/integrations/context/ts_parser.py +2506 -0
  142. attocode_code_intel-0.1.7/src/attocode_intel/_internal/integrations/lsp/client.py +1166 -0
  143. attocode_code_intel-0.1.7/src/attocode_intel/_internal/integrations/utilities/ignore.py +94 -0
  144. attocode_code_intel-0.1.7/src/attocode_intel/api/models.py +703 -0
  145. attocode_code_intel-0.1.7/src/attocode_intel/api/providers/db_provider.py +1053 -0
  146. attocode_code_intel-0.1.7/src/attocode_intel/catalog.py +266 -0
  147. attocode_code_intel-0.1.7/src/attocode_intel/change_evidence.py +297 -0
  148. attocode_code_intel-0.1.7/src/attocode_intel/change_investigation.py +486 -0
  149. attocode_code_intel-0.1.7/src/attocode_intel/cli.py +3067 -0
  150. attocode_code_intel-0.1.7/src/attocode_intel/entrypoint.py +190 -0
  151. attocode_code_intel-0.1.7/src/attocode_intel/focused_evidence.py +160 -0
  152. attocode_code_intel-0.1.7/src/attocode_intel/freshness.py +162 -0
  153. attocode_code_intel-0.1.7/src/attocode_intel/gateway.py +767 -0
  154. attocode_code_intel-0.1.7/src/attocode_intel/git/manager.py +496 -0
  155. attocode_code_intel-0.1.7/src/attocode_intel/indexing/full_indexer.py +336 -0
  156. attocode_code_intel-0.1.7/src/attocode_intel/indexing/incremental.py +259 -0
  157. attocode_code_intel-0.1.7/src/attocode_intel/indexing/parser.py +399 -0
  158. attocode_code_intel-0.1.7/src/attocode_intel/investigation_cli.py +130 -0
  159. attocode_code_intel-0.1.7/src/attocode_intel/precision.py +168 -0
  160. attocode_code_intel-0.1.7/src/attocode_intel/query_ranking.py +247 -0
  161. attocode_code_intel-0.1.7/src/attocode_intel/search_evidence.py +173 -0
  162. attocode_code_intel-0.1.7/src/attocode_intel/service.py +3429 -0
  163. attocode_code_intel-0.1.7/src/attocode_intel/storage/symbol_store.py +195 -0
  164. attocode_code_intel-0.1.7/src/attocode_intel/symbol_links.py +228 -0
  165. attocode_code_intel-0.1.7/src/attocode_intel/test_ranking.py +159 -0
  166. attocode_code_intel-0.1.7/src/attocode_intel/tools/composite_tools.py +755 -0
  167. attocode_code_intel-0.1.7/src/attocode_intel/tools/search_tools.py +787 -0
  168. attocode_code_intel-0.1.7/tests/fixtures/rule_violations/.attocode/rules/team-preferences.yaml +139 -0
  169. attocode_code_intel-0.1.7/tests/fixtures/rule_violations/go/bad_patterns.go +33 -0
  170. attocode_code_intel-0.1.7/tests/fixtures/rule_violations/java/BadPatterns.java +32 -0
  171. attocode_code_intel-0.1.7/tests/fixtures/rule_violations/python/bad_patterns.py +39 -0
  172. attocode_code_intel-0.1.7/tests/fixtures/rule_violations/rust/bad_patterns.rs +22 -0
  173. attocode_code_intel-0.1.7/tests/fixtures/rule_violations/typescript/bad_patterns.ts +24 -0
  174. attocode_code_intel-0.1.7/tests/integration/__init__.py +0 -0
  175. attocode_code_intel-0.1.7/tests/integration/code_intel/__init__.py +0 -0
  176. attocode_code_intel-0.1.7/tests/integration/code_intel/conftest.py +28 -0
  177. attocode_code_intel-0.1.7/tests/integration/code_intel/test_http_smoke.py +100 -0
  178. attocode_code_intel-0.1.7/tests/integration/code_intel/test_mcp_tools_audit.py +872 -0
  179. attocode_code_intel-0.1.7/tests/integration/code_intel/test_remote_mcp_http_integration.py +95 -0
  180. attocode_code_intel-0.1.7/tests/integration/code_intel/test_service_integration.py +168 -0
  181. attocode_code_intel-0.1.7/tests/integration/test_rule_bench_floor_e2e.py +153 -0
  182. attocode_code_intel-0.1.7/tests/test_ast_snapshot.py +307 -0
  183. attocode_code_intel-0.1.7/tests/test_behavioral_negation.py +117 -0
  184. attocode_code_intel-0.1.7/tests/test_change_investigation.py +519 -0
  185. attocode_code_intel-0.1.7/tests/test_chunk_identity.py +168 -0
  186. attocode_code_intel-0.1.7/tests/test_cold_index_cost.py +249 -0
  187. attocode_code_intel-0.1.7/tests/test_db_navigation_http.py +717 -0
  188. attocode_code_intel-0.1.7/tests/test_discovery_reuse.py +237 -0
  189. attocode_code_intel-0.1.7/tests/test_file_symbol_scope.py +95 -0
  190. attocode_code_intel-0.1.7/tests/test_importance_publication.py +89 -0
  191. attocode_code_intel-0.1.7/tests/test_index_probe.py +229 -0
  192. attocode_code_intel-0.1.7/tests/test_index_processes.py +155 -0
  193. attocode_code_intel-0.1.7/tests/test_index_reuse.py +307 -0
  194. attocode_code_intel-0.1.7/tests/test_index_sequences.py +74 -0
  195. attocode_code_intel-0.1.7/tests/test_kotlin_test_paths.py +149 -0
  196. attocode_code_intel-0.1.7/tests/test_language_capabilities.py +249 -0
  197. attocode_code_intel-0.1.7/tests/test_lexical_sql_cost.py +164 -0
  198. attocode_code_intel-0.1.7/tests/test_lsp_document_lifecycle.py +78 -0
  199. attocode_code_intel-0.1.7/tests/test_mcp_search_evaluation.py +116 -0
  200. attocode_code_intel-0.1.7/tests/test_mixed_workspace.py +106 -0
  201. attocode_code_intel-0.1.7/tests/test_module_ownership.py +314 -0
  202. attocode_code_intel-0.1.7/tests/test_navigation_prefix_trial.py +75 -0
  203. attocode_code_intel-0.1.7/tests/test_operation_contracts.py +51 -0
  204. attocode_code_intel-0.1.7/tests/test_precision_protocol.py +235 -0
  205. attocode_code_intel-0.1.7/tests/test_precision_recovery.py +99 -0
  206. attocode_code_intel-0.1.7/tests/test_quality_cloud.py +574 -0
  207. attocode_code_intel-0.1.7/tests/test_quality_evidence.py +279 -0
  208. attocode_code_intel-0.1.7/tests/test_quality_lifecycle.py +205 -0
  209. attocode_code_intel-0.1.7/tests/test_quality_runner.py +151 -0
  210. attocode_code_intel-0.1.7/tests/test_query_ranking.py +289 -0
  211. attocode_code_intel-0.1.7/tests/test_query_requirements.py +29 -0
  212. attocode_code_intel-0.1.7/tests/test_ranking_intent.py +207 -0
  213. attocode_code_intel-0.1.7/tests/test_real_language_server.py +172 -0
  214. attocode_code_intel-0.1.7/tests/test_retrieval_ablation.py +21 -0
  215. attocode_code_intel-0.1.7/tests/test_retrieval_audit.py +45 -0
  216. attocode_code_intel-0.1.7/tests/test_retrieval_body_trial.py +81 -0
  217. attocode_code_intel-0.1.7/tests/test_retrieval_cycle.py +84 -0
  218. attocode_code_intel-0.1.7/tests/test_search_evidence.py +348 -0
  219. attocode_code_intel-0.1.7/tests/test_search_usefulness.py +116 -0
  220. attocode_code_intel-0.1.7/tests/test_source_exclusions.py +29 -0
  221. attocode_code_intel-0.1.7/tests/test_structural_write_cost.py +88 -0
  222. attocode_code_intel-0.1.7/tests/test_test_intent_trial.py +57 -0
  223. attocode_code_intel-0.1.7/tests/test_trigram_workspace.py +79 -0
  224. attocode_code_intel-0.1.7/tests/test_workflow_sequences.py +72 -0
  225. attocode_code_intel-0.1.7/tests/unit/__init__.py +0 -0
  226. attocode_code_intel-0.1.7/tests/unit/code_intel/__init__.py +0 -0
  227. attocode_code_intel-0.1.7/tests/unit/code_intel/conftest.py +50 -0
  228. attocode_code_intel-0.1.7/tests/unit/code_intel/test_advisory_lock.py +132 -0
  229. attocode_code_intel-0.1.7/tests/unit/code_intel/test_api.py +1078 -0
  230. attocode_code_intel-0.1.7/tests/unit/code_intel/test_api_phase3a.py +829 -0
  231. attocode_code_intel-0.1.7/tests/unit/code_intel/test_api_v2.py +735 -0
  232. attocode_code_intel-0.1.7/tests/unit/code_intel/test_auth.py +83 -0
  233. attocode_code_intel-0.1.7/tests/unit/code_intel/test_branch_versioning.py +108 -0
  234. attocode_code_intel-0.1.7/tests/unit/code_intel/test_bug_finder.py +168 -0
  235. attocode_code_intel-0.1.7/tests/unit/code_intel/test_call_graph_tool.py +156 -0
  236. attocode_code_intel-0.1.7/tests/unit/code_intel/test_ci_runner.py +196 -0
  237. attocode_code_intel-0.1.7/tests/unit/code_intel/test_cli_lifecycle.py +162 -0
  238. attocode_code_intel-0.1.7/tests/unit/code_intel/test_cli_maintenance_local.py +238 -0
  239. attocode_code_intel-0.1.7/tests/unit/code_intel/test_cli_ops.py +219 -0
  240. attocode_code_intel-0.1.7/tests/unit/code_intel/test_cli_query_commands.py +210 -0
  241. attocode_code_intel-0.1.7/tests/unit/code_intel/test_cli_remote.py +195 -0
  242. attocode_code_intel-0.1.7/tests/unit/code_intel/test_codex_rereview_polish.py +725 -0
  243. attocode_code_intel-0.1.7/tests/unit/code_intel/test_combinators.py +236 -0
  244. attocode_code_intel-0.1.7/tests/unit/code_intel/test_confidence.py +212 -0
  245. attocode_code_intel-0.1.7/tests/unit/code_intel/test_confidence_adoption.py +266 -0
  246. attocode_code_intel-0.1.7/tests/unit/code_intel/test_config.py +53 -0
  247. attocode_code_intel-0.1.7/tests/unit/code_intel/test_config_remote.py +193 -0
  248. attocode_code_intel-0.1.7/tests/unit/code_intel/test_cross_mode.py +155 -0
  249. attocode_code_intel-0.1.7/tests/unit/code_intel/test_db_security_scan.py +71 -0
  250. attocode_code_intel-0.1.7/tests/unit/code_intel/test_deps.py +93 -0
  251. attocode_code_intel-0.1.7/tests/unit/code_intel/test_diff_engine.py +98 -0
  252. attocode_code_intel-0.1.7/tests/unit/code_intel/test_edge_cases.py +328 -0
  253. attocode_code_intel-0.1.7/tests/unit/code_intel/test_frecency.py +288 -0
  254. attocode_code_intel-0.1.7/tests/unit/code_intel/test_fuzzy.py +165 -0
  255. attocode_code_intel-0.1.7/tests/unit/code_intel/test_index_store_migration.py +62 -0
  256. attocode_code_intel-0.1.7/tests/unit/code_intel/test_kw_index_status.py +28 -0
  257. attocode_code_intel-0.1.7/tests/unit/code_intel/test_lsp_call_graph.py +241 -0
  258. attocode_code_intel-0.1.7/tests/unit/code_intel/test_lsp_enrichment.py +198 -0
  259. attocode_code_intel-0.1.7/tests/unit/code_intel/test_lsp_extended_models.py +87 -0
  260. attocode_code_intel-0.1.7/tests/unit/code_intel/test_marketplace.py +175 -0
  261. attocode_code_intel-0.1.7/tests/unit/code_intel/test_metavar.py +212 -0
  262. attocode_code_intel-0.1.7/tests/unit/code_intel/test_middleware.py +38 -0
  263. attocode_code_intel-0.1.7/tests/unit/code_intel/test_notify_enhanced.py +195 -0
  264. attocode_code_intel-0.1.7/tests/unit/code_intel/test_org_isolation.py +68 -0
  265. attocode_code_intel-0.1.7/tests/unit/code_intel/test_pack_autoload.py +44 -0
  266. attocode_code_intel-0.1.7/tests/unit/code_intel/test_profiling.py +152 -0
  267. attocode_code_intel-0.1.7/tests/unit/code_intel/test_project_discovery.py +165 -0
  268. attocode_code_intel-0.1.7/tests/unit/code_intel/test_provenance_store.py +225 -0
  269. attocode_code_intel-0.1.7/tests/unit/code_intel/test_pubsub_streams.py +240 -0
  270. attocode_code_intel-0.1.7/tests/unit/code_intel/test_query_constraints.py +160 -0
  271. attocode_code_intel-0.1.7/tests/unit/code_intel/test_query_history.py +222 -0
  272. attocode_code_intel-0.1.7/tests/unit/code_intel/test_readiness.py +487 -0
  273. attocode_code_intel-0.1.7/tests/unit/code_intel/test_reindex_embeddings.py +45 -0
  274. attocode_code_intel-0.1.7/tests/unit/code_intel/test_remote_local_fallback.py +113 -0
  275. attocode_code_intel-0.1.7/tests/unit/code_intel/test_remote_provider.py +313 -0
  276. attocode_code_intel-0.1.7/tests/unit/code_intel/test_remote_reliability.py +121 -0
  277. attocode_code_intel-0.1.7/tests/unit/code_intel/test_repo_ranker.py +161 -0
  278. attocode_code_intel-0.1.7/tests/unit/code_intel/test_rule_evolution.py +428 -0
  279. attocode_code_intel-0.1.7/tests/unit/code_intel/test_rule_hygiene.py +344 -0
  280. attocode_code_intel-0.1.7/tests/unit/code_intel/test_rule_synthesis.py +332 -0
  281. attocode_code_intel-0.1.7/tests/unit/code_intel/test_rule_tools.py +366 -0
  282. attocode_code_intel-0.1.7/tests/unit/code_intel/test_rule_violations.py +266 -0
  283. attocode_code_intel-0.1.7/tests/unit/code_intel/test_rules_engine.py +810 -0
  284. attocode_code_intel-0.1.7/tests/unit/code_intel/test_rules_integration.py +260 -0
  285. attocode_code_intel-0.1.7/tests/unit/code_intel/test_sarif.py +146 -0
  286. attocode_code_intel-0.1.7/tests/unit/code_intel/test_search_tools.py +179 -0
  287. attocode_code_intel-0.1.7/tests/unit/code_intel/test_server_startup.py +118 -0
  288. attocode_code_intel-0.1.7/tests/unit/code_intel/test_service.py +45 -0
  289. attocode_code_intel-0.1.7/tests/unit/code_intel/test_service_mode.py +836 -0
  290. attocode_code_intel-0.1.7/tests/unit/code_intel/test_status_health.py +68 -0
  291. attocode_code_intel-0.1.7/tests/unit/code_intel/test_structural_executor.py +623 -0
  292. attocode_code_intel-0.1.7/tests/unit/code_intel/test_supply_chain_rules.py +409 -0
  293. attocode_code_intel-0.1.7/tests/unit/code_intel/test_testing_framework.py +239 -0
  294. attocode_code_intel-0.1.7/tests/unit/code_intel/test_webhook_encryption.py +95 -0
  295. attocode_code_intel-0.1.7/tests/unit/code_intel/tools/__init__.py +1 -0
  296. attocode_code_intel-0.1.7/tests/unit/code_intel/tools/conftest.py +141 -0
  297. attocode_code_intel-0.1.7/tests/unit/code_intel/tools/test_adr_tools.py +89 -0
  298. attocode_code_intel-0.1.7/tests/unit/code_intel/tools/test_analysis_tools.py +173 -0
  299. attocode_code_intel-0.1.7/tests/unit/code_intel/tools/test_dead_code_tools.py +62 -0
  300. attocode_code_intel-0.1.7/tests/unit/code_intel/tools/test_distill_tools.py +62 -0
  301. attocode_code_intel-0.1.7/tests/unit/code_intel/tools/test_history_tools.py +101 -0
  302. attocode_code_intel-0.1.7/tests/unit/code_intel/tools/test_learning_tools.py +81 -0
  303. attocode_code_intel-0.1.7/tests/unit/code_intel/tools/test_lsp_tools.py +156 -0
  304. attocode_code_intel-0.1.7/tests/unit/code_intel/tools/test_maintenance_tools_phase2.py +550 -0
  305. attocode_code_intel-0.1.7/tests/unit/code_intel/tools/test_navigation_tools.py +128 -0
  306. attocode_code_intel-0.1.7/tests/unit/code_intel/tools/test_phase2c_anchors_and_overlays.py +715 -0
  307. attocode_code_intel-0.1.7/tests/unit/code_intel/tools/test_readiness_tools.py +62 -0
  308. attocode_code_intel-0.1.7/tests/unit/code_intel/tools/test_search_status_mismatch.py +33 -0
  309. attocode_code_intel-0.1.7/tests/unit/code_intel/tools/test_search_tools.py +238 -0
  310. attocode_code_intel-0.1.7/tests/unit/code_intel/tools/test_server_tools.py +45 -0
  311. attocode_code_intel-0.1.7/tests/unit/context/__init__.py +0 -0
  312. attocode_code_intel-0.1.7/tests/unit/context/test_action_hash.py +170 -0
  313. attocode_code_intel-0.1.7/tests/unit/context/test_ast_service_adapter.py +209 -0
  314. attocode_code_intel-0.1.7/tests/unit/context/test_blob_oid.py +277 -0
  315. attocode_code_intel-0.1.7/tests/unit/context/test_cache_manifest.py +117 -0
  316. attocode_code_intel-0.1.7/tests/unit/context/test_cas.py +163 -0
  317. attocode_code_intel-0.1.7/tests/unit/context/test_embedding_rotation.py +751 -0
  318. attocode_code_intel-0.1.7/tests/unit/context/test_pagerank_restoration.py +150 -0
  319. attocode_code_intel-0.1.7/tests/unit/context/test_provenance.py +117 -0
  320. attocode_code_intel-0.1.7/tests/unit/context/test_retrieval_pin.py +257 -0
  321. attocode_code_intel-0.1.7/tests/unit/context/test_vector_store_dim_safety.py +166 -0
  322. attocode_code_intel-0.1.7/tests/unit/eval/__init__.py +0 -0
  323. attocode_code_intel-0.1.7/tests/unit/eval/conftest.py +12 -0
  324. attocode_code_intel-0.1.7/tests/unit/eval/test_acc_at_k.py +10 -0
  325. attocode_code_intel-0.1.7/tests/unit/eval/test_broad_candidate_audit.py +47 -0
  326. attocode_code_intel-0.1.7/tests/unit/eval/test_calibration_demo.py +89 -0
  327. attocode_code_intel-0.1.7/tests/unit/eval/test_harness.py +69 -0
  328. attocode_code_intel-0.1.7/tests/unit/eval/test_matrix_agents.py +132 -0
  329. attocode_code_intel-0.1.7/tests/unit/eval/test_matrix_ci.py +55 -0
  330. attocode_code_intel-0.1.7/tests/unit/eval/test_matrix_datasets.py +281 -0
  331. attocode_code_intel-0.1.7/tests/unit/eval/test_matrix_dense.py +143 -0
  332. attocode_code_intel-0.1.7/tests/unit/eval/test_matrix_rerank.py +290 -0
  333. attocode_code_intel-0.1.7/tests/unit/eval/test_matrix_retrieve.py +220 -0
  334. attocode_code_intel-0.1.7/tests/unit/eval/test_matrix_run.py +79 -0
  335. attocode_code_intel-0.1.7/tests/unit/eval/test_matrix_stats.py +107 -0
  336. attocode_code_intel-0.1.7/tests/unit/eval/test_mcp_bench.py +265 -0
  337. attocode_code_intel-0.1.7/tests/unit/eval/test_rule_accuracy.py +269 -0
  338. attocode_code_intel-0.1.7/tests/unit/eval/test_rule_bench_config.py +260 -0
  339. attocode_code_intel-0.1.7/tests/unit/eval/test_rule_bench_corpus.py +182 -0
  340. attocode_code_intel-0.1.7/tests/unit/eval/test_rule_bench_evaluator.py +186 -0
  341. attocode_code_intel-0.1.7/tests/unit/eval/test_rule_bench_predicate.py +77 -0
  342. attocode_code_intel-0.1.7/tests/unit/eval/test_rule_bench_scoring.py +170 -0
  343. attocode_code_intel-0.1.7/tests/unit/eval/test_rule_bench_template_engine.py +197 -0
  344. attocode_code_intel-0.1.7/tests/unit/eval/test_rule_harness_import.py +172 -0
  345. attocode_code_intel-0.1.7/tests/unit/eval/test_search_quality_reporting.py +201 -0
  346. attocode_code_intel-0.1.7/tests/unit/eval/test_search_readiness.py +72 -0
  347. attocode_code_intel-0.1.7/tests/unit/eval/test_seed_attocode_fixtures.py +77 -0
  348. attocode_code_intel-0.1.7/tests/unit/integrations/__init__.py +0 -0
  349. attocode_code_intel-0.1.7/tests/unit/integrations/context/__init__.py +0 -0
  350. attocode_code_intel-0.1.7/tests/unit/integrations/context/test_architecture_drift.py +317 -0
  351. attocode_code_intel-0.1.7/tests/unit/integrations/context/test_ast_service_hydration.py +121 -0
  352. attocode_code_intel-0.1.7/tests/unit/integrations/context/test_body_chunking.py +88 -0
  353. attocode_code_intel-0.1.7/tests/unit/integrations/context/test_call_graph.py +325 -0
  354. attocode_code_intel-0.1.7/tests/unit/integrations/context/test_code_analyzer.py +428 -0
  355. attocode_code_intel-0.1.7/tests/unit/integrations/context/test_codebase_ast.py +829 -0
  356. attocode_code_intel-0.1.7/tests/unit/integrations/context/test_codebase_context.py +853 -0
  357. attocode_code_intel-0.1.7/tests/unit/integrations/context/test_context_stores_closed.py +64 -0
  358. attocode_code_intel-0.1.7/tests/unit/integrations/context/test_cross_ref_search.py +243 -0
  359. attocode_code_intel-0.1.7/tests/unit/integrations/context/test_embedder_default.py +23 -0
  360. attocode_code_intel-0.1.7/tests/unit/integrations/context/test_embeddings.py +306 -0
  361. attocode_code_intel-0.1.7/tests/unit/integrations/context/test_embeddings_query.py +38 -0
  362. attocode_code_intel-0.1.7/tests/unit/integrations/context/test_go_symbols.py +530 -0
  363. attocode_code_intel-0.1.7/tests/unit/integrations/context/test_hydration.py +71 -0
  364. attocode_code_intel-0.1.7/tests/unit/integrations/context/test_index_store.py +231 -0
  365. attocode_code_intel-0.1.7/tests/unit/integrations/context/test_model_mismatch.py +43 -0
  366. attocode_code_intel-0.1.7/tests/unit/integrations/context/test_path_downweight.py +12 -0
  367. attocode_code_intel-0.1.7/tests/unit/integrations/context/test_query_routing.py +27 -0
  368. attocode_code_intel-0.1.7/tests/unit/integrations/context/test_semantic_search.py +730 -0
  369. attocode_code_intel-0.1.7/tests/unit/integrations/context/test_supported_languages.py +42 -0
  370. attocode_code_intel-0.1.7/tests/unit/integrations/context/test_temporal_coupling.py +188 -0
  371. attocode_code_intel-0.1.7/tests/unit/integrations/context/test_trigram_index.py +512 -0
  372. attocode_code_intel-0.1.7/tests/unit/integrations/context/test_trigram_regex.py +241 -0
  373. attocode_code_intel-0.1.7/tests/unit/integrations/context/test_ts_parser.py +520 -0
  374. attocode_code_intel-0.1.7/tests/unit/integrations/test_dataflow.py +206 -0
  375. attocode_code_intel-0.1.7/tests/unit/integrations/test_feature_flags.py +43 -0
  376. attocode_code_intel-0.1.7/tests/unit/integrations/test_new_security_rules.py +789 -0
  377. attocode_code_intel-0.1.7/tests/unit/integrations/test_security_autofix.py +399 -0
  378. attocode_code_intel-0.1.7/tests/unit/integrations/test_security_matcher.py +128 -0
  379. attocode_code_intel-0.1.7/tests/unit/integrations/test_streaming_lsp.py +957 -0
  380. attocode_code_intel-0.1.7/tests/unit/integrations/utilities/__init__.py +0 -0
  381. attocode_code_intel-0.1.7/tests/unit/integrations/utilities/test_ignore.py +53 -0
  382. attocode_code_intel-0.1.7/tests/unit/integrations/utilities/test_token_estimate.py +63 -0
  383. attocode_code_intel-0.1.7/tests/unit/test_code_intel.py +4088 -0
  384. attocode_code_intel-0.1.7/tests/unit/test_code_intel_hydration.py +112 -0
  385. attocode_code_intel-0.1.7/tests/unit/test_errors.py +174 -0
  386. attocode_code_intel-0.1.7/tests/unit/test_memory_store.py +348 -0
  387. attocode_code_intel-0.1.5/.gitignore +0 -85
  388. attocode_code_intel-0.1.5/PKG-INFO +0 -238
  389. attocode_code_intel-0.1.5/README.md +0 -126
  390. attocode_code_intel-0.1.5/pyproject.toml +0 -148
  391. attocode_code_intel-0.1.5/src/attocode_intel/__init__.py +0 -52
  392. attocode_code_intel-0.1.5/src/attocode_intel/_internal/integrations/context/ast_service.py +0 -1487
  393. attocode_code_intel-0.1.5/src/attocode_intel/_internal/integrations/context/codebase_ast.py +0 -1461
  394. attocode_code_intel-0.1.5/src/attocode_intel/_internal/integrations/context/codebase_context.py +0 -1779
  395. attocode_code_intel-0.1.5/src/attocode_intel/_internal/integrations/context/cross_references.py +0 -630
  396. attocode_code_intel-0.1.5/src/attocode_intel/_internal/integrations/context/index_repair.py +0 -88
  397. attocode_code_intel-0.1.5/src/attocode_intel/_internal/integrations/context/index_store.py +0 -591
  398. attocode_code_intel-0.1.5/src/attocode_intel/_internal/integrations/context/module_resolution.py +0 -52
  399. attocode_code_intel-0.1.5/src/attocode_intel/_internal/integrations/context/semantic_search.py +0 -2999
  400. attocode_code_intel-0.1.5/src/attocode_intel/_internal/integrations/context/syntax_evidence.py +0 -94
  401. attocode_code_intel-0.1.5/src/attocode_intel/_internal/integrations/context/ts_parser.py +0 -2199
  402. attocode_code_intel-0.1.5/src/attocode_intel/_internal/integrations/lsp/client.py +0 -1140
  403. attocode_code_intel-0.1.5/src/attocode_intel/_internal/integrations/utilities/ignore.py +0 -64
  404. attocode_code_intel-0.1.5/src/attocode_intel/api/models.py +0 -698
  405. attocode_code_intel-0.1.5/src/attocode_intel/api/providers/db_provider.py +0 -1111
  406. attocode_code_intel-0.1.5/src/attocode_intel/catalog.py +0 -266
  407. attocode_code_intel-0.1.5/src/attocode_intel/cli.py +0 -3062
  408. attocode_code_intel-0.1.5/src/attocode_intel/entrypoint.py +0 -188
  409. attocode_code_intel-0.1.5/src/attocode_intel/focused_evidence.py +0 -130
  410. attocode_code_intel-0.1.5/src/attocode_intel/freshness.py +0 -155
  411. attocode_code_intel-0.1.5/src/attocode_intel/gateway.py +0 -758
  412. attocode_code_intel-0.1.5/src/attocode_intel/git/manager.py +0 -493
  413. attocode_code_intel-0.1.5/src/attocode_intel/indexing/full_indexer.py +0 -334
  414. attocode_code_intel-0.1.5/src/attocode_intel/indexing/incremental.py +0 -246
  415. attocode_code_intel-0.1.5/src/attocode_intel/indexing/parser.py +0 -403
  416. attocode_code_intel-0.1.5/src/attocode_intel/precision.py +0 -133
  417. attocode_code_intel-0.1.5/src/attocode_intel/query_ranking.py +0 -243
  418. attocode_code_intel-0.1.5/src/attocode_intel/search_evidence.py +0 -132
  419. attocode_code_intel-0.1.5/src/attocode_intel/service.py +0 -3416
  420. attocode_code_intel-0.1.5/src/attocode_intel/storage/symbol_store.py +0 -160
  421. attocode_code_intel-0.1.5/src/attocode_intel/symbol_links.py +0 -177
  422. attocode_code_intel-0.1.5/src/attocode_intel/test_ranking.py +0 -143
  423. attocode_code_intel-0.1.5/src/attocode_intel/tools/composite_tools.py +0 -742
  424. attocode_code_intel-0.1.5/src/attocode_intel/tools/search_tools.py +0 -770
  425. attocode_code_intel-0.1.5/tests/test_index_reuse.py +0 -184
  426. attocode_code_intel-0.1.5/tests/test_language_capabilities.py +0 -42
  427. attocode_code_intel-0.1.5/tests/test_precision_protocol.py +0 -222
  428. attocode_code_intel-0.1.5/tests/test_quality_cloud.py +0 -178
  429. attocode_code_intel-0.1.5/tests/test_quality_lifecycle.py +0 -205
  430. attocode_code_intel-0.1.5/tests/test_quality_runner.py +0 -83
  431. attocode_code_intel-0.1.5/tests/test_query_ranking.py +0 -253
  432. attocode_code_intel-0.1.5/tests/test_ranking_intent.py +0 -207
  433. attocode_code_intel-0.1.5/tests/test_search_evidence.py +0 -229
  434. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/LICENSE +0 -0
  435. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/evals/README.md +0 -0
  436. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/evals/broad_candidate_audit.yaml +0 -0
  437. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/evals/broad_query_cases.yaml +0 -0
  438. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/evals/broad_query_external_cases.yaml +0 -0
  439. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/evals/broad_query_final_holdout.yaml +0 -0
  440. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/evals/client_comparison.py +0 -0
  441. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/evals/client_responses.py +0 -0
  442. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/evals/codex_repair_study.py +0 -0
  443. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/evals/daily.py +0 -0
  444. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/evals/designs/2026-10-13-codex-repair-diagnostic.md +0 -0
  445. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/evals/designs/2026-10-13-r7-task-completion-pilot.md +0 -0
  446. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/evals/designs/2026-10-14-workflow-pilot.md +0 -0
  447. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/evals/external_benchmarks.py +0 -0
  448. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/evals/external_study.py +0 -0
  449. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/evals/graded_blind_pack.yaml +0 -0
  450. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/evals/localize_study.py +0 -0
  451. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/evals/locbench_title_pack.yaml +0 -0
  452. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/evals/onboarding_study.py +0 -0
  453. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/evals/pilot.py +0 -0
  454. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/evals/quality_scoring.py +0 -0
  455. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/evals/quality_tasks.py +0 -0
  456. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/evals/release_gate.py +0 -0
  457. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/evals/repair_grading.py +0 -0
  458. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/evals/repair_study.py +0 -0
  459. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/evals/repair_worker.py +0 -0
  460. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/evals/responses.py +0 -0
  461. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/evals/results/2026-09-05-macos.json +0 -0
  462. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/evals/results/2026-10-04-broad-query-ranking.md +0 -0
  463. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/evals/results/2026-10-04-decision-reranker-trial.md +0 -0
  464. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/evals/results/2026-10-04-systemone-http-local-trial.md +0 -0
  465. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/evals/results/2026-10-05-broad-candidate-audit.md +0 -0
  466. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/evals/results/2026-10-05-source-view-transfer.md +0 -0
  467. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/evals/results/2026-10-08-blind-graded-rerank.md +0 -0
  468. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/evals/results/2026-10-08-locbench-560.md +0 -0
  469. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/evals/results/2026-10-09-locbench-560-first-stage.md +0 -0
  470. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/evals/results/2026-10-10-agent-pilot.md +0 -0
  471. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/evals/results/2026-10-10-agent-r3.md +0 -0
  472. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/evals/results/2026-10-10-matrix-r1.md +0 -0
  473. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/evals/results/2026-10-11-agent-r4-stage0.md +0 -0
  474. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/evals/results/2026-10-12-r4-stage1-review-agents.md +0 -0
  475. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/evals/results/2026-10-12-r5-test-suggestions.md +0 -0
  476. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/evals/results/2026-10-13-codex-repair-diagnostic.md +0 -0
  477. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/evals/results/2026-10-13-r6-review-test-note.md +0 -0
  478. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/evals/results/2026-10-13-r7-preparation.md +0 -0
  479. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/evals/results/2026-10-13-r7-wiring.md +0 -0
  480. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/evals/results/2026-10-14-bounded-quality/broad-report.json +0 -0
  481. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/evals/results/2026-10-14-bounded-quality/lifecycle.json +0 -0
  482. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/evals/results/2026-10-14-bounded-quality/manifest.json +0 -0
  483. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/evals/results/2026-10-14-bounded-quality/quick-report.json +0 -0
  484. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/evals/results/2026-10-14-bounded-quality/ranking.json +0 -0
  485. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/evals/results/2026-10-14-bounded-quality/ranking.log +0 -0
  486. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/evals/results/2026-10-14-bounded-quality/scale.json +0 -0
  487. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/evals/results/2026-10-14-bounded-quality/storage.json +0 -0
  488. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/evals/results/2026-10-14-bounded-quality/workflows.json +0 -0
  489. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/evals/results/2026-10-14-bounded-quality.md +0 -0
  490. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/evals/results/2026-10-14-r7-completion-pilot.md +0 -0
  491. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/evals/results/2026-10-14-search-evidence-audit/fixture-replay.json +0 -0
  492. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/evals/results/2026-10-14-search-evidence-audit/ledger.json +0 -0
  493. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/evals/results/2026-10-14-search-evidence-audit/report.md +0 -0
  494. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/evals/results/2026-10-14-search-evidence.md +0 -0
  495. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/evals/results/2026-10-14-search-followup/README.md +0 -0
  496. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/evals/results/2026-10-14-search-followup/artifact-hashes.json +0 -0
  497. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/evals/results/2026-10-14-search-followup/chunk-analysis.json +0 -0
  498. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/evals/results/2026-10-14-search-followup/chunk-audit-script.txt +0 -0
  499. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/evals/results/2026-10-14-search-followup/chunk-pools.json +0 -0
  500. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/evals/results/2026-10-14-search-followup/mcp-smoke-script.txt +0 -0
  501. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/evals/results/2026-10-14-search-followup/mcp-smoke.json +0 -0
  502. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/evals/results/2026-10-14-search-followup/metadata-source-probe.json +0 -0
  503. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/evals/results/README.md +0 -0
  504. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/evals/search_evidence_audit.py +0 -0
  505. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/evals/source_view_transfer.yaml +0 -0
  506. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/evals/study.py +0 -0
  507. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/evals/study_clients.py +0 -0
  508. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/evals/study_events.py +0 -0
  509. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/evals/study_tasks.py +0 -0
  510. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/evals/token_overhead.py +0 -0
  511. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/evals/understanding_scoring.py +0 -0
  512. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/evals/understanding_study.py +0 -0
  513. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/evals/warm_cache.py +0 -0
  514. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/evals/workflows.py +0 -0
  515. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/GUIDELINES.md +0 -0
  516. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/_internal/__init__.py +0 -0
  517. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/_internal/errors/__init__.py +0 -0
  518. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/_internal/integrations/__init__.py +0 -0
  519. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/_internal/integrations/context/__init__.py +0 -0
  520. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/_internal/integrations/context/architecture_drift.py +0 -0
  521. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/_internal/integrations/context/ast_chunker.py +0 -0
  522. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/_internal/integrations/context/blob_oid.py +0 -0
  523. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/_internal/integrations/context/cache_manifest.py +0 -0
  524. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/_internal/integrations/context/cas.py +0 -0
  525. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/_internal/integrations/context/code_analyzer.py +0 -0
  526. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/_internal/integrations/context/cross_mode.py +0 -0
  527. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/_internal/integrations/context/embedding_rotation.py +0 -0
  528. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/_internal/integrations/context/embeddings.py +0 -0
  529. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/_internal/integrations/context/frecency.py +0 -0
  530. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/_internal/integrations/context/fuzzy.py +0 -0
  531. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/_internal/integrations/context/hierarchical_explorer.py +0 -0
  532. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/_internal/integrations/context/hydration.py +0 -0
  533. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/_internal/integrations/context/memory_store.py +0 -0
  534. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/_internal/integrations/context/query_constraints.py +0 -0
  535. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/_internal/integrations/context/query_history.py +0 -0
  536. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/_internal/integrations/context/reranker.py +0 -0
  537. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/_internal/integrations/context/systemone_ranker.py +0 -0
  538. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/_internal/integrations/context/temporal_coupling.py +0 -0
  539. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/_internal/integrations/context/trigram_index.py +0 -0
  540. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/_internal/integrations/context/trigram_regex.py +0 -0
  541. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/_internal/integrations/context/vector_store.py +0 -0
  542. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/_internal/integrations/feature_flags/__init__.py +0 -0
  543. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/_internal/integrations/lsp/__init__.py +0 -0
  544. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/_internal/integrations/mcp/__init__.py +0 -0
  545. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/_internal/integrations/mcp/client.py +0 -0
  546. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/_internal/integrations/security/__init__.py +0 -0
  547. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/_internal/integrations/security/custom_rules.py +0 -0
  548. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/_internal/integrations/security/dataflow.py +0 -0
  549. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/_internal/integrations/security/dependency_audit.py +0 -0
  550. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/_internal/integrations/security/matcher.py +0 -0
  551. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/_internal/integrations/security/patterns.py +0 -0
  552. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/_internal/integrations/security/scanner.py +0 -0
  553. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/_internal/integrations/utilities/__init__.py +0 -0
  554. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/_internal/integrations/utilities/token_estimate.py +0 -0
  555. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/_internal/tricks/__init__.py +0 -0
  556. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/_internal/tricks/recursive_context.py +0 -0
  557. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/_internal/types/__init__.py +0 -0
  558. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/_internal/types/events.py +0 -0
  559. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/_internal/types/severity.py +0 -0
  560. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/_shared.py +0 -0
  561. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/analysis_coverage.py +0 -0
  562. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/api/__init__.py +0 -0
  563. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/api/access.py +0 -0
  564. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/api/app.py +0 -0
  565. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/api/auth/__init__.py +0 -0
  566. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/api/auth/api_keys.py +0 -0
  567. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/api/auth/context.py +0 -0
  568. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/api/auth/jwt.py +0 -0
  569. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/api/auth/oauth.py +0 -0
  570. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/api/auth/passwords.py +0 -0
  571. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/api/deps.py +0 -0
  572. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/api/knowledge_bridge.py +0 -0
  573. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/api/mcp_transport.py +0 -0
  574. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/api/middleware.py +0 -0
  575. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/api/providers/__init__.py +0 -0
  576. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/api/providers/local_provider.py +0 -0
  577. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/api/providers/remote_provider.py +0 -0
  578. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/api/repository_source.py +0 -0
  579. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/api/routes/__init__.py +0 -0
  580. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/api/routes/_pin_helper.py +0 -0
  581. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/api/routes/activity.py +0 -0
  582. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/api/routes/adr.py +0 -0
  583. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/api/routes/analysis.py +0 -0
  584. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/api/routes/api_keys.py +0 -0
  585. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/api/routes/auth.py +0 -0
  586. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/api/routes/branches.py +0 -0
  587. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/api/routes/cross_repo_search.py +0 -0
  588. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/api/routes/embeddings.py +0 -0
  589. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/api/routes/files.py +0 -0
  590. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/api/routes/files_v2.py +0 -0
  591. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/api/routes/gc.py +0 -0
  592. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/api/routes/git_v2.py +0 -0
  593. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/api/routes/graph.py +0 -0
  594. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/api/routes/graph_viz.py +0 -0
  595. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/api/routes/health.py +0 -0
  596. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/api/routes/history.py +0 -0
  597. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/api/routes/jobs.py +0 -0
  598. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/api/routes/learning.py +0 -0
  599. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/api/routes/lsp.py +0 -0
  600. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/api/routes/notify.py +0 -0
  601. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/api/routes/operations.py +0 -0
  602. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/api/routes/orgs.py +0 -0
  603. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/api/routes/preferences.py +0 -0
  604. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/api/routes/presence.py +0 -0
  605. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/api/routes/projects.py +0 -0
  606. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/api/routes/repos.py +0 -0
  607. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/api/routes/search.py +0 -0
  608. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/api/routes/snapshots.py +0 -0
  609. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/api/routes/webhooks.py +0 -0
  610. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/api/routes/websocket.py +0 -0
  611. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/api/static/graph.html +0 -0
  612. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/api/utils.py +0 -0
  613. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/artifacts/__init__.py +0 -0
  614. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/artifacts/hashing.py +0 -0
  615. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/artifacts/provenance.py +0 -0
  616. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/artifacts/retrieval_pin.py +0 -0
  617. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/audit.py +0 -0
  618. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/bug_finder.py +0 -0
  619. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/bundle.py +0 -0
  620. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/change_review.py +0 -0
  621. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/community.py +0 -0
  622. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/confidence/__init__.py +0 -0
  623. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/confidence/jev.py +0 -0
  624. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/confidence/llm.py +0 -0
  625. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/confidence/redact.py +0 -0
  626. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/confidence/settings.py +0 -0
  627. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/config.py +0 -0
  628. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/crypto.py +0 -0
  629. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/db/__init__.py +0 -0
  630. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/db/base.py +0 -0
  631. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/db/engine.py +0 -0
  632. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/db/models.py +0 -0
  633. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/git/__init__.py +0 -0
  634. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/git/credentials.py +0 -0
  635. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/git/models.py +0 -0
  636. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/git/storage.py +0 -0
  637. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/graph_query_parser.py +0 -0
  638. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/helpers.py +0 -0
  639. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/indexing/__init__.py +0 -0
  640. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/indexing/debouncer.py +0 -0
  641. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/indexing/delta_indexer.py +0 -0
  642. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/indexing/summarizer.py +0 -0
  643. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/installer.py +0 -0
  644. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/knowledge.py +0 -0
  645. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/local_knowledge.py +0 -0
  646. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/migrations/alembic.ini +0 -0
  647. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/migrations/env.py +0 -0
  648. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/migrations/script.py.mako +0 -0
  649. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/migrations/versions/001_initial_schema.py +0 -0
  650. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/migrations/versions/002_branch_version_and_embeddings.py +0 -0
  651. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/migrations/versions/003_embedding_uniqueness_and_cascade.py +0 -0
  652. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/migrations/versions/004_audit_events.py +0 -0
  653. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/migrations/versions/005_user_preferences.py +0 -0
  654. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/migrations/versions/006_google_oauth.py +0 -0
  655. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/migrations/versions/007_pgvector_embeddings.py +0 -0
  656. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/migrations/versions/008_symbol_references.py +0 -0
  657. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/migrations/versions/009_webhook_secret_encryption.py +0 -0
  658. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/migrations/versions/010_add_commits_table.py +0 -0
  659. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/migrations/versions/011_commit_changed_files.py +0 -0
  660. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/migrations/versions/012_branch_merged_at.py +0 -0
  661. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/migrations/versions/013_revoked_tokens.py +0 -0
  662. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/migrations/versions/014_blame_hunks.py +0 -0
  663. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/migrations/versions/015_commit_file_stats.py +0 -0
  664. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/migrations/versions/016_embedding_provenance_columns.py +0 -0
  665. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/migrations/versions/017_provenance_table.py +0 -0
  666. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/migrations/versions/018_repo_snapshots.py +0 -0
  667. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/migrations/versions/019_symref_caller.py +0 -0
  668. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/migrations/versions/020_shared_knowledge.py +0 -0
  669. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/onboarding.py +0 -0
  670. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/output.py +0 -0
  671. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/presence.py +0 -0
  672. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/probe.py +0 -0
  673. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/project_dir.py +0 -0
  674. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/pubsub.py +0 -0
  675. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/readiness.py +0 -0
  676. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/redis.py +0 -0
  677. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/reference_pages.py +0 -0
  678. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/remote.py +0 -0
  679. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/repo_ranker.py +0 -0
  680. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/request_context.py +0 -0
  681. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/rules/__init__.py +0 -0
  682. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/rules/ci.py +0 -0
  683. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/rules/combinators.py +0 -0
  684. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/rules/enricher.py +0 -0
  685. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/rules/evolution.py +0 -0
  686. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/rules/executor.py +0 -0
  687. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/rules/filters/__init__.py +0 -0
  688. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/rules/filters/pipeline.py +0 -0
  689. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/rules/formatter.py +0 -0
  690. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/rules/hygiene.py +0 -0
  691. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/rules/importers/__init__.py +0 -0
  692. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/rules/importers/semgrep.py +0 -0
  693. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/rules/loader.py +0 -0
  694. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/rules/marketplace.py +0 -0
  695. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/rules/metavar.py +0 -0
  696. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/rules/model.py +0 -0
  697. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/rules/packs/__init__.py +0 -0
  698. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/rules/packs/community/_license_templates/Apache-2.0.txt +0 -0
  699. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/rules/packs/community/_license_templates/MIT.txt +0 -0
  700. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/rules/packs/community/bandit-python/LICENSE +0 -0
  701. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/rules/packs/community/bandit-python/NOTICE +0 -0
  702. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/rules/packs/community/bandit-python/PORTING.md +0 -0
  703. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/rules/packs/community/bandit-python/manifest.yaml +0 -0
  704. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/rules/packs/community/bandit-python/rules/B105-hardcoded-password.yaml +0 -0
  705. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/rules/packs/community/bandit-python/rules/B303-weak-md5.yaml +0 -0
  706. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/rules/packs/community/bandit-python/rules/B304-weak-des.yaml +0 -0
  707. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/rules/packs/community/bandit-python/rules/B307-use-of-eval.yaml +0 -0
  708. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/rules/packs/community/bandit-python/rules/B324-weak-sha1.yaml +0 -0
  709. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/rules/packs/community/bandit-python/rules/B501-no-cert-validation.yaml +0 -0
  710. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/rules/packs/community/bandit-python/rules/B602-shell-true.yaml +0 -0
  711. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/rules/packs/community/bandit-python/rules/B608-sqli.yaml +0 -0
  712. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/rules/packs/community/eslint-typescript/LICENSE +0 -0
  713. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/rules/packs/community/eslint-typescript/NOTICE +0 -0
  714. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/rules/packs/community/eslint-typescript/PORTING.md +0 -0
  715. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/rules/packs/community/eslint-typescript/manifest.yaml +0 -0
  716. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/rules/packs/community/eslint-typescript/rules/eqeqeq.yaml +0 -0
  717. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/rules/packs/community/eslint-typescript/rules/no-eval.yaml +0 -0
  718. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/rules/packs/community/eslint-typescript/rules/no-implied-eval.yaml +0 -0
  719. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/rules/packs/community/eslint-typescript/rules/no-new-func.yaml +0 -0
  720. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/rules/packs/community/eslint-typescript/rules/no-throw-literal.yaml +0 -0
  721. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/rules/packs/community/eslint-typescript/rules/no-var.yaml +0 -0
  722. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/rules/packs/community/eslint-typescript/rules/no-with.yaml +0 -0
  723. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/rules/packs/community/gosec-go/LICENSE +0 -0
  724. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/rules/packs/community/gosec-go/NOTICE +0 -0
  725. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/rules/packs/community/gosec-go/PORTING.md +0 -0
  726. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/rules/packs/community/gosec-go/manifest.yaml +0 -0
  727. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/rules/packs/community/gosec-go/rules/G101-hardcoded-credentials.yaml +0 -0
  728. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/rules/packs/community/gosec-go/rules/G102-bind-all-interfaces.yaml +0 -0
  729. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/rules/packs/community/gosec-go/rules/G103-unsafe-block.yaml +0 -0
  730. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/rules/packs/community/gosec-go/rules/G201-sql-format.yaml +0 -0
  731. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/rules/packs/community/gosec-go/rules/G304-file-inclusion.yaml +0 -0
  732. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/rules/packs/community/gosec-go/rules/G401-weak-cipher.yaml +0 -0
  733. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/rules/packs/community/gosec-go/rules/G402-tls-min-version.yaml +0 -0
  734. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/rules/packs/community/gosec-go/rules/G501-md5-import.yaml +0 -0
  735. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/rules/packs/examples/cpp/manifest.yaml +0 -0
  736. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/rules/packs/examples/cpp/rules/security.yaml +0 -0
  737. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/rules/packs/examples/cpp/rules/structural.yaml +0 -0
  738. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/rules/packs/examples/csharp/manifest.yaml +0 -0
  739. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/rules/packs/examples/csharp/rules/security.yaml +0 -0
  740. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/rules/packs/examples/csharp/rules/structural.yaml +0 -0
  741. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/rules/packs/examples/go/manifest.yaml +0 -0
  742. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/rules/packs/examples/go/rules/performance.yaml +0 -0
  743. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/rules/packs/examples/go/rules/security.yaml +0 -0
  744. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/rules/packs/examples/go/rules/structural.yaml +0 -0
  745. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/rules/packs/examples/go/taint/sanitizers.yaml +0 -0
  746. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/rules/packs/examples/go/taint/sinks.yaml +0 -0
  747. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/rules/packs/examples/go/taint/sources.yaml +0 -0
  748. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/rules/packs/examples/java/manifest.yaml +0 -0
  749. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/rules/packs/examples/java/rules/correctness.yaml +0 -0
  750. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/rules/packs/examples/java/rules/structural.yaml +0 -0
  751. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/rules/packs/examples/java/taint/sinks.yaml +0 -0
  752. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/rules/packs/examples/java/taint/sources.yaml +0 -0
  753. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/rules/packs/examples/kotlin/manifest.yaml +0 -0
  754. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/rules/packs/examples/kotlin/rules/correctness.yaml +0 -0
  755. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/rules/packs/examples/kotlin/rules/structural.yaml +0 -0
  756. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/rules/packs/examples/php/manifest.yaml +0 -0
  757. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/rules/packs/examples/php/rules/security.yaml +0 -0
  758. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/rules/packs/examples/php/rules/structural.yaml +0 -0
  759. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/rules/packs/examples/python/manifest.yaml +0 -0
  760. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/rules/packs/examples/python/rules/performance.yaml +0 -0
  761. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/rules/packs/examples/python/rules/structural.yaml +0 -0
  762. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/rules/packs/examples/ruby/manifest.yaml +0 -0
  763. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/rules/packs/examples/ruby/rules/security.yaml +0 -0
  764. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/rules/packs/examples/ruby/rules/structural.yaml +0 -0
  765. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/rules/packs/examples/rust/manifest.yaml +0 -0
  766. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/rules/packs/examples/rust/rules/correctness.yaml +0 -0
  767. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/rules/packs/examples/rust/rules/structural.yaml +0 -0
  768. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/rules/packs/examples/typescript/manifest.yaml +0 -0
  769. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/rules/packs/examples/typescript/rules/performance.yaml +0 -0
  770. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/rules/packs/examples/typescript/rules/structural.yaml +0 -0
  771. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/rules/packs/pack_loader.py +0 -0
  772. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/rules/plugins/__init__.py +0 -0
  773. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/rules/plugins/plugin_loader.py +0 -0
  774. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/rules/profiling.py +0 -0
  775. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/rules/registry.py +0 -0
  776. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/rules/sarif.py +0 -0
  777. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/rules/synthesis.py +0 -0
  778. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/rules/testing.py +0 -0
  779. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/server.py +0 -0
  780. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/sharing.py +0 -0
  781. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/storage/__init__.py +0 -0
  782. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/storage/branch_overlay.py +0 -0
  783. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/storage/content_store.py +0 -0
  784. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/storage/dependency_store.py +0 -0
  785. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/storage/diff_engine.py +0 -0
  786. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/storage/embedding_store.py +0 -0
  787. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/storage/provenance_store.py +0 -0
  788. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/storage/security_scanner_db.py +0 -0
  789. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/structural_evidence.py +0 -0
  790. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/symbol_inspection.py +0 -0
  791. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/telemetry.py +0 -0
  792. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/testing/__init__.py +0 -0
  793. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/testing/fixtures.py +0 -0
  794. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/testing/helpers.py +0 -0
  795. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/testing/mocks.py +0 -0
  796. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/tools/__init__.py +0 -0
  797. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/tools/adr_tools.py +0 -0
  798. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/tools/analysis_tools.py +0 -0
  799. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/tools/cross_mode_tools.py +0 -0
  800. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/tools/dead_code_tools.py +0 -0
  801. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/tools/distill_tools.py +0 -0
  802. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/tools/frecency_tools.py +0 -0
  803. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/tools/fuzzy_tools.py +0 -0
  804. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/tools/history_tools.py +0 -0
  805. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/tools/learning_tools.py +0 -0
  806. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/tools/lsp_tools.py +0 -0
  807. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/tools/maintenance_tools.py +0 -0
  808. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/tools/navigation_tools.py +0 -0
  809. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/tools/overlay_tools.py +0 -0
  810. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/tools/pin_store.py +0 -0
  811. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/tools/pin_tools.py +0 -0
  812. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/tools/query_constraints_tools.py +0 -0
  813. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/tools/query_history_tools.py +0 -0
  814. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/tools/readiness_tools.py +0 -0
  815. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/tools/rule_tools.py +0 -0
  816. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/tools/snapshot_tools.py +0 -0
  817. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/workers/__init__.py +0 -0
  818. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/workers/job_utils.py +0 -0
  819. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/workers/jobs.py +0 -0
  820. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/workers/run.py +0 -0
  821. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/src/attocode_intel/workers/settings.py +0 -0
  822. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/tests/test_codex_repair_study.py +0 -0
  823. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/tests/test_cold_discovery.py +0 -0
  824. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/tests/test_compact_inspection.py +0 -0
  825. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/tests/test_daily_workflows.py +0 -0
  826. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/tests/test_doctor.py +0 -0
  827. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/tests/test_edit_restart.py +0 -0
  828. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/tests/test_external_study.py +0 -0
  829. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/tests/test_focused_inspection.py +0 -0
  830. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/tests/test_lean_profile.py +0 -0
  831. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/tests/test_local_reranker.py +0 -0
  832. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/tests/test_localize_study.py +0 -0
  833. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/tests/test_navigation_evidence.py +0 -0
  834. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/tests/test_onboarding_study.py +0 -0
  835. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/tests/test_pilot.py +0 -0
  836. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/tests/test_product.py +0 -0
  837. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/tests/test_quality_evaluation.py +0 -0
  838. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/tests/test_remote.py +0 -0
  839. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/tests/test_repair_study.py +0 -0
  840. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/tests/test_search_evidence_audit.py +0 -0
  841. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/tests/test_structural_evidence.py +0 -0
  842. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/tests/test_study.py +0 -0
  843. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/tests/test_systemone_ranker.py +0 -0
  844. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/tests/test_token_overhead.py +0 -0
  845. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/tests/test_understanding_evaluation.py +0 -0
  846. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/tests/test_walk_order.py +0 -0
  847. {attocode_code_intel-0.1.5 → attocode_code_intel-0.1.7}/tests/test_warm_cache.py +0 -0
@@ -0,0 +1,88 @@
1
+ # Python
2
+ dist/
3
+ __pycache__/
4
+ .venv/
5
+ *.egg-info/
6
+ *.db
7
+ *.db-shm
8
+ *.db-wal
9
+ *.jsonl
10
+ .mypy_cache/
11
+ .pytest_cache/
12
+ .ruff_cache/
13
+
14
+ # Node (lessons/)
15
+ node_modules/
16
+
17
+ # Environment
18
+ .env
19
+
20
+ # Claude/Agent
21
+ .claude/
22
+ .agent/
23
+ .traces/
24
+ .production-agent-sessions/
25
+ .test-sandbox/
26
+
27
+ # Attocode runtime
28
+ .attocode/traces/
29
+ .attocode/sessions/
30
+ .attocode/recordings/
31
+ .attocode/cache/
32
+ .attocode/reports/
33
+ .attocode/rule_feedback.json
34
+ .attocode/packs/python/
35
+ .attocode/.attocode/
36
+ .attocode/dev-state.json
37
+ .attocode/config.toml
38
+ .attocode/vectors
39
+ attocode/attocode_py/.attocode/
40
+ tests/unit/tui/__snapshots__/
41
+ .attocode/exports/
42
+ .attocode/index/
43
+ .attocode/meta_harness/
44
+ tests/fixtures/sample_project/
45
+ docs/superpowers/
46
+ eval/charts/
47
+ eval/*.md
48
+ eval/*.log
49
+ eval/*.json
50
+ # Legacy TS runtime artifacts
51
+ legacy/.attocode/traces/
52
+ legacy/.attocode/sessions/
53
+ legacy/.attocode/recordings/
54
+
55
+ # attocode snapshots
56
+ tests/unit/tui/__snapshots__/
57
+
58
+
59
+ # Build outputs
60
+ *.vsix
61
+ site/
62
+ snapshot_report.html
63
+ .internal
64
+
65
+ # scripts
66
+ scripts/*
67
+ !scripts/validate_release_version.py
68
+ !scripts/check_pack_licenses.py
69
+ .DS_Store
70
+
71
+ #playwright
72
+ .playwright-mcp
73
+
74
+ #gsd
75
+ .gsd/
76
+ .bg-shell/
77
+
78
+ #cursor
79
+ .cursor/
80
+
81
+ # search-quality sweep scratch output
82
+ eval/sweep_out/
83
+
84
+ # Bounded validation workspaces, reports and cloud ledger
85
+ .attocode/quality/
86
+
87
+ # Local outputs left by the archived TypeScript checkout stay private.
88
+ /legacy/
@@ -0,0 +1,245 @@
1
+ Metadata-Version: 2.5
2
+ Name: attocode-code-intel
3
+ Version: 0.1.7
4
+ Summary: Local code search and navigation for coding agents and people
5
+ Project-URL: Homepage, https://github.com/eren23/attocode
6
+ Project-URL: Repository, https://github.com/eren23/attocode
7
+ Project-URL: Bug Tracker, https://github.com/eren23/attocode/issues
8
+ Project-URL: Changelog, https://github.com/eren23/attocode/blob/main/CHANGELOG.md
9
+ License-Expression: MIT
10
+ License-File: LICENSE
11
+ Keywords: code-navigation,code-search,coding-agents,mcp,tree-sitter
12
+ Classifier: Development Status :: 4 - Beta
13
+ Classifier: Environment :: Console
14
+ Classifier: Intended Audience :: Developers
15
+ Classifier: Operating System :: MacOS
16
+ Classifier: Operating System :: POSIX :: Linux
17
+ Classifier: Programming Language :: Python :: 3.12
18
+ Classifier: Programming Language :: Python :: 3.13
19
+ Classifier: Topic :: Software Development
20
+ Requires-Python: >=3.12
21
+ Requires-Dist: aiosqlite>=0.20
22
+ Requires-Dist: click>=8.1
23
+ Requires-Dist: filelock>=3.16
24
+ Requires-Dist: httpx>=0.27
25
+ Requires-Dist: mcp<2,>=1.26
26
+ Requires-Dist: numpy>=2
27
+ Requires-Dist: pathspec>=0.12
28
+ Requires-Dist: psutil>=6
29
+ Requires-Dist: pydantic>=2
30
+ Requires-Dist: python-dotenv>=1
31
+ Requires-Dist: pyyaml>=6
32
+ Requires-Dist: rich>=13
33
+ Requires-Dist: structlog>=24.1
34
+ Requires-Dist: tenacity>=9
35
+ Requires-Dist: tiktoken>=0.7
36
+ Requires-Dist: tomli-w>=1
37
+ Requires-Dist: tomlkit>=0.13
38
+ Requires-Dist: tree-sitter-bash
39
+ Requires-Dist: tree-sitter-c
40
+ Requires-Dist: tree-sitter-c-sharp
41
+ Requires-Dist: tree-sitter-cpp
42
+ Requires-Dist: tree-sitter-css
43
+ Requires-Dist: tree-sitter-elixir
44
+ Requires-Dist: tree-sitter-go
45
+ Requires-Dist: tree-sitter-hcl
46
+ Requires-Dist: tree-sitter-html
47
+ Requires-Dist: tree-sitter-java
48
+ Requires-Dist: tree-sitter-javascript
49
+ Requires-Dist: tree-sitter-json
50
+ Requires-Dist: tree-sitter-kotlin
51
+ Requires-Dist: tree-sitter-lua
52
+ Requires-Dist: tree-sitter-php
53
+ Requires-Dist: tree-sitter-python
54
+ Requires-Dist: tree-sitter-ruby
55
+ Requires-Dist: tree-sitter-rust
56
+ Requires-Dist: tree-sitter-scala
57
+ Requires-Dist: tree-sitter-swift
58
+ Requires-Dist: tree-sitter-toml
59
+ Requires-Dist: tree-sitter-typescript
60
+ Requires-Dist: tree-sitter-yaml
61
+ Requires-Dist: tree-sitter-zig
62
+ Requires-Dist: tree-sitter<0.26,>=0.23
63
+ Requires-Dist: watchfiles>=1
64
+ Provides-Extra: dev
65
+ Requires-Dist: ast-grep-cli>=0.42; extra == 'dev'
66
+ Requires-Dist: bcrypt>=4.0; extra == 'dev'
67
+ Requires-Dist: bump-my-version>=0.28; extra == 'dev'
68
+ Requires-Dist: mypy>=1.10; extra == 'dev'
69
+ Requires-Dist: pytest-asyncio>=0.24; extra == 'dev'
70
+ Requires-Dist: pytest-cov>=5.0; extra == 'dev'
71
+ Requires-Dist: pytest-mock>=3.14; extra == 'dev'
72
+ Requires-Dist: pytest>=8.0; extra == 'dev'
73
+ Requires-Dist: python-jose[cryptography]>=3.3; extra == 'dev'
74
+ Requires-Dist: respx>=0.22; extra == 'dev'
75
+ Requires-Dist: ruff>=0.5; extra == 'dev'
76
+ Requires-Dist: sqlalchemy[asyncio]>=2.0; extra == 'dev'
77
+ Provides-Extra: docs
78
+ Requires-Dist: mkdocs-material>=9.5; extra == 'docs'
79
+ Requires-Dist: mkdocs>=1.6; extra == 'docs'
80
+ Requires-Dist: pymdown-extensions>=10.0; extra == 'docs'
81
+ Provides-Extra: graph
82
+ Requires-Dist: networkx>=3.0; extra == 'graph'
83
+ Provides-Extra: http
84
+ Requires-Dist: fastapi>=0.115; extra == 'http'
85
+ Requires-Dist: networkx>=3.0; extra == 'http'
86
+ Requires-Dist: python-multipart>=0.0.18; extra == 'http'
87
+ Requires-Dist: uvicorn[standard]>=0.34; extra == 'http'
88
+ Provides-Extra: semantic
89
+ Requires-Dist: sentence-transformers>=3.0; extra == 'semantic'
90
+ Provides-Extra: semantic-nomic
91
+ Requires-Dist: einops; extra == 'semantic-nomic'
92
+ Requires-Dist: sentence-transformers>=3.0; extra == 'semantic-nomic'
93
+ Provides-Extra: service
94
+ Requires-Dist: alembic>=1.14; extra == 'service'
95
+ Requires-Dist: arq>=0.26; extra == 'service'
96
+ Requires-Dist: asyncpg>=0.30; extra == 'service'
97
+ Requires-Dist: bcrypt>=4.0; extra == 'service'
98
+ Requires-Dist: cryptography>=41.0; extra == 'service'
99
+ Requires-Dist: fastapi>=0.115; extra == 'service'
100
+ Requires-Dist: httpx-oauth>=0.15; extra == 'service'
101
+ Requires-Dist: networkx>=3.0; extra == 'service'
102
+ Requires-Dist: pgvector>=0.3; extra == 'service'
103
+ Requires-Dist: pydantic-settings>=2.0; extra == 'service'
104
+ Requires-Dist: pygit2>=1.14; extra == 'service'
105
+ Requires-Dist: python-jose[cryptography]>=3.3; extra == 'service'
106
+ Requires-Dist: python-multipart>=0.0.18; extra == 'service'
107
+ Requires-Dist: redis[hiredis]>=5.0; extra == 'service'
108
+ Requires-Dist: sqlalchemy[asyncio]>=2.0; extra == 'service'
109
+ Requires-Dist: uvicorn[standard]>=0.34; extra == 'service'
110
+ Provides-Extra: tree-sitter-all
111
+ Requires-Dist: tree-sitter-language-pack>=0.6; extra == 'tree-sitter-all'
112
+ Description-Content-Type: text/markdown
113
+
114
+ # attocode-code-intel
115
+
116
+ Local code search and navigation for coding agents and for people. It runs as an MCP server for Codex, Claude Code, Cursor and other MCP clients, and as a command in your terminal. It needs no model, no API key and no network.
117
+
118
+ **Status: beta.** We measured the search quality (see [What we measured](#what-we-measured)). We have not shown that it makes agents faster or more accurate.
119
+
120
+ ## Quickstart
121
+
122
+ You need Python 3.12 or later and Git.
123
+
124
+ ```sh
125
+ uv tool install attocode-code-intel
126
+ cd /path/to/your/project
127
+ attocode-code-intel init
128
+ ```
129
+
130
+ Then restart your agent. `init` configures Codex, Claude Code and Cursor. Use `--client claude`, `--client codex` or `--client cursor` for one client. Codex needs a trusted project for a project configuration. Claude Code can ask you to enable the project MCP server.
131
+
132
+ To check the setup, run `attocode-code-intel doctor`. It starts the configured server, calls two tools and shows the result for each client.
133
+
134
+ For other clients (VS Code, Zed, Windsurf, Claude Desktop and more), run `attocode-code-intel install <target>`. `attocode-code-intel commands` lists the targets.
135
+
136
+ To use the latest source, install from a clone of this repository: `uv tool install /path/to/attocode/packages/code-intel`.
137
+
138
+ ## What your agent gets
139
+
140
+ Version 0.1.7 also provides `changes` and `trace` commands: investigate a diff,
141
+ follow source-backed caller paths, export JSON/Markdown, and check or refresh saved
142
+ evidence. MCP equivalents `change_context` and `trace_flow` are local full-profile
143
+ tools. See the [change investigation guide](https://github.com/eren23/attocode/blob/main/docs/guides/change-investigation.md).
144
+
145
+ The agent sees 16 tools (the `daily` profile):
146
+
147
+ | Use | Tools |
148
+ |---|---|
149
+ | Find code | `semantic_search`, `fast_search`, `search_symbols`, `bootstrap`, `relevant_context` |
150
+ | Read a symbol | `inspect_symbol`, `symbols`, `cross_references`, `call_graph` |
151
+ | See structure | `dependencies`, `explore_codebase`, `project_summary` |
152
+ | Plan a change | `impact_analysis`, `suggest_tests`, `review_change` |
153
+ | Check the server | `capabilities` |
154
+
155
+ - When the agent knows a symbol, `inspect_symbol(symbol_name="...", task_hint="...")` gives the definition, the source, the references and candidate tests in one call.
156
+ - In an unfamiliar repository, `bootstrap(task_hint="...")` finds the relevant code and gives a map.
157
+ - `impact_analysis` and `suggest_tests` help plan the checks for a change.
158
+
159
+ For all tools (about 140: rules, security scans, history, snapshots and more), add `--profile full` to `init`. The [tool catalog](https://github.com/eren23/attocode/blob/main/docs/intelligence-tools.md) lists them. The [search details](https://github.com/eren23/attocode/blob/main/docs/intelligence-search.md) page describes ranking, the response format and the experimental rerankers.
160
+
161
+ For an experimental local seven-tool surface (0.1.5 or later), use
162
+ `init --profile lean` and restart your client. It advertises `bootstrap`,
163
+ `search_symbols`, `inspect_symbol`, `semantic_search`, `impact_analysis`,
164
+ `suggest_tests` and `capabilities`, with conditional routing instructions
165
+ and 2,000-token responses. Without file watching, `notify_file_changed`
166
+ is an eighth tool. Advanced tools require a full-profile session.
167
+ This opt-in profile has no demonstrated completion benefit; see the
168
+ [completed pilot](https://github.com/eren23/attocode/blob/main/packages/code-intel/evals/results/2026-10-14-r7-completion-pilot.md).
169
+
170
+ ## Commands for people
171
+
172
+ Run these in your project:
173
+
174
+ ```sh
175
+ attocode-code-intel query "parse config" # search the code with its own words
176
+ attocode-code-intel symbols src/app.py # the symbols of a file
177
+ attocode-code-intel symbols --search greet # find a symbol by name
178
+ attocode-code-intel impact src/app.py # the files that a change can affect
179
+ attocode-code-intel deps src/app.py # what a file imports, and what imports it
180
+ attocode-code-intel hotspots # the files with the most risk or complexity
181
+ ```
182
+
183
+ Search matches the words of the code and its paths. It does not use embeddings unless you install the `semantic` extra.
184
+
185
+ ## What we measured
186
+
187
+ - **Search.** We ran the 560 issues of Loc-Bench V1, with the full issue as the query. For 53.2% of them, the first five files held all files of the fix (file Acc@5 0.532). On a mix of 10 public benchmarks, file Acc@5 was 0.425. See the [first-stage results](https://github.com/eren23/attocode/blob/main/packages/code-intel/evals/results/2026-10-09-locbench-560-first-stage.md) and the [matrix results](https://github.com/eren23/attocode/blob/main/packages/code-intel/evals/results/2026-10-10-matrix-r1.md).
188
+ - **Agents.** In four studies, Claude Code (Sonnet 5.5) named the files to edit for an issue. The server did not raise file Acc@5. Each run with the server cost 1.4 to 2.1 times as much. When the agent could choose, it seldom called the server. See the [agent pilot](https://github.com/eren23/attocode/blob/main/packages/code-intel/evals/results/2026-10-10-agent-pilot.md) and [study R3](https://github.com/eren23/attocode/blob/main/packages/code-intel/evals/results/2026-10-10-agent-r3.md).
189
+
190
+ The [R6 review study](https://github.com/eren23/attocode/blob/main/packages/code-intel/evals/results/2026-10-13-r6-review-test-note.md)
191
+ found no demonstrated review benefit. The [completed R7 repair pilot](https://github.com/eren23/attocode/blob/main/packages/code-intel/evals/results/2026-10-14-r7-completion-pilot.md)
192
+ also found no demonstrated benefit; its reviewed decision is to stop expansion.
193
+
194
+ ## Limits and troubleshooting
195
+
196
+ - **First search.** The first tool call starts the index build. A search waits up to 15 seconds for the index. On a large repository, a search can report that the index is warming. Then search again. An empty result during warm-up does not prove that the code is absent.
197
+ - **Index location.** The index is in `.attocode/` in your project. When the server makes that folder, it adds a `.gitignore`, so the index stays out of commits.
198
+ - **What the index reads.** The server reads at most 50,000 files and skips files over 1 MB. It skips files that `.gitignore` ignores, and folders that start with a dot. It also skips folders named `dist`, `build`, `out`, `output`, `target`, `env`, `tmp`, `vendor` or `coverage`, and binary, media and lock files. If a build-named folder contains real source, explicitly re-include it with a root `.gitignore` entry such as `!dist/`; discovery and edit refresh honor that override.
199
+ - **Languages.** The base install parses Bash, C, C#, C++, CSS, Elixir, Go, HCL, HTML, Java, JavaScript, JSON, Kotlin, Lua, PHP, Python, Ruby, Rust, Scala, Swift, TOML, TypeScript, YAML and Zig. Optional grammars are loaded only when already installed or cached; installing the `tree-sitter-all` extra does not trigger grammar downloads during navigation. A slow grammar falls back after a 100 ms parse budget. Static imports and references are partial evidence, not compiler/type resolution.
200
+ - **Test paths.** Search and test suggestions recognize conventional test folders and filenames, plus supported Kotlin/Android source sets directly under `src` (for example `commonTest`, `jvmTest`, `androidHostTest` and `androidDeviceTest`). Helpers in those sets count as test code even without a test filename. Custom target or flavor names are not inferred from a `Test` suffix alone. Short queries explicitly asking for tests put recognized test files first, preserving order within each group; longer issue descriptions keep source-first behavior. Suggestions can include helpers; verify the actual runnable tests.
201
+ - **Remove the setup.** Run `attocode-code-intel init --remove`. It restores an entry that existed before `init`.
202
+ - **Server does not answer.** Run `attocode-code-intel doctor`. If a client shows "not configured", run `init` for it. After a change, restart the agent. In Claude Code, `/mcp` shows the server state.
203
+ - **HTTP server.** `attocode-code-intel --transport http` needs the `http` extra. It serves only this computer unless you set `ATTOCODE_API_KEY`.
204
+
205
+ For one installation for all repositories, use `init --global`. A global server works on the repository of its working directory, or on the `workspace` that a tool call names.
206
+
207
+ ## Teams and remote agents
208
+
209
+ [Self-hosting and migration](https://github.com/eren23/attocode/blob/main/docs/intelligence.md) covers PostgreSQL, Redis, workers, authentication, and the dashboard. The service serves native Streamable HTTP MCP at `/mcp/`. The dashboard provides connection snippets and knowledge editing.
210
+
211
+ ```sh
212
+ attocode-code-intel init --client all --server https://intel.example.com --repo REPOSITORY_UUID
213
+ attocode-code-intel doctor --client codex --remote
214
+ ```
215
+
216
+ Set `ATTOCODE_API_KEY` in the agent's environment. Use `intelligence:read` for analysis and add `intelligence:write` for knowledge changes. Every repository operation checks membership and scope before using cached analysis. Results identify repository, source, commit, index coverage, and truncation. PostgreSQL stores shared knowledge with authorship, revision, and file anchors.
217
+
218
+ Local and remote entries coexist. Remote calls analyze committed branches or explicit revisions. Local edits remain local. To copy a particular learning to your team, review and run an explicit share:
219
+
220
+ ```sh
221
+ attocode-code-intel share --project . --learning 12 --server https://intel.example.com --repo REPOSITORY_UUID --dry-run
222
+ attocode-code-intel share --project . --learning 12 --server https://intel.example.com --repo REPOSITORY_UUID
223
+ ```
224
+
225
+ `cross_repo_search` searches explicitly selected authorized repositories and retains provenance on each result.
226
+
227
+ ## Development
228
+
229
+ The package is in `packages/code-intel` of the [attocode repository](https://github.com/eren23/attocode).
230
+
231
+ ```sh
232
+ uv sync --extra dev --extra code-intel
233
+ uv run pytest -c packages/code-intel/pyproject.toml --confcutdir=packages/code-intel/tests packages/code-intel/tests
234
+ uv build --package attocode-code-intel
235
+ ```
236
+
237
+ For routine work, use `.venv/bin/python -m eval.quality quick` (two minutes)
238
+ or `local` (ten minutes). They isolate scratch and caches in a monitored 5 GiB
239
+ workspace and report incomplete runs separately from passes. The
240
+ [quality guide](https://github.com/eren23/attocode/blob/main/docs/intelligence-quality.md) covers pinned multi-language
241
+ workflow checks, storage inventory, cleanup and optional CPU cloud batches.
242
+
243
+ Releases use `intel-v*` tags ([release guide](https://github.com/eren23/attocode/blob/main/docs/intelligence-release.md)).
244
+
245
+ [Product and operations guide](https://github.com/eren23/attocode/blob/main/docs/intelligence.md) · [Tool catalog](https://github.com/eren23/attocode/blob/main/docs/intelligence-tools.md) · [Search details](https://github.com/eren23/attocode/blob/main/docs/intelligence-search.md) · [Changelog](https://github.com/eren23/attocode/blob/main/CHANGELOG.md) · [MIT license](https://github.com/eren23/attocode/blob/main/packages/code-intel/LICENSE)
@@ -0,0 +1,132 @@
1
+ # attocode-code-intel
2
+
3
+ Local code search and navigation for coding agents and for people. It runs as an MCP server for Codex, Claude Code, Cursor and other MCP clients, and as a command in your terminal. It needs no model, no API key and no network.
4
+
5
+ **Status: beta.** We measured the search quality (see [What we measured](#what-we-measured)). We have not shown that it makes agents faster or more accurate.
6
+
7
+ ## Quickstart
8
+
9
+ You need Python 3.12 or later and Git.
10
+
11
+ ```sh
12
+ uv tool install attocode-code-intel
13
+ cd /path/to/your/project
14
+ attocode-code-intel init
15
+ ```
16
+
17
+ Then restart your agent. `init` configures Codex, Claude Code and Cursor. Use `--client claude`, `--client codex` or `--client cursor` for one client. Codex needs a trusted project for a project configuration. Claude Code can ask you to enable the project MCP server.
18
+
19
+ To check the setup, run `attocode-code-intel doctor`. It starts the configured server, calls two tools and shows the result for each client.
20
+
21
+ For other clients (VS Code, Zed, Windsurf, Claude Desktop and more), run `attocode-code-intel install <target>`. `attocode-code-intel commands` lists the targets.
22
+
23
+ To use the latest source, install from a clone of this repository: `uv tool install /path/to/attocode/packages/code-intel`.
24
+
25
+ ## What your agent gets
26
+
27
+ Version 0.1.7 also provides `changes` and `trace` commands: investigate a diff,
28
+ follow source-backed caller paths, export JSON/Markdown, and check or refresh saved
29
+ evidence. MCP equivalents `change_context` and `trace_flow` are local full-profile
30
+ tools. See the [change investigation guide](https://github.com/eren23/attocode/blob/main/docs/guides/change-investigation.md).
31
+
32
+ The agent sees 16 tools (the `daily` profile):
33
+
34
+ | Use | Tools |
35
+ |---|---|
36
+ | Find code | `semantic_search`, `fast_search`, `search_symbols`, `bootstrap`, `relevant_context` |
37
+ | Read a symbol | `inspect_symbol`, `symbols`, `cross_references`, `call_graph` |
38
+ | See structure | `dependencies`, `explore_codebase`, `project_summary` |
39
+ | Plan a change | `impact_analysis`, `suggest_tests`, `review_change` |
40
+ | Check the server | `capabilities` |
41
+
42
+ - When the agent knows a symbol, `inspect_symbol(symbol_name="...", task_hint="...")` gives the definition, the source, the references and candidate tests in one call.
43
+ - In an unfamiliar repository, `bootstrap(task_hint="...")` finds the relevant code and gives a map.
44
+ - `impact_analysis` and `suggest_tests` help plan the checks for a change.
45
+
46
+ For all tools (about 140: rules, security scans, history, snapshots and more), add `--profile full` to `init`. The [tool catalog](https://github.com/eren23/attocode/blob/main/docs/intelligence-tools.md) lists them. The [search details](https://github.com/eren23/attocode/blob/main/docs/intelligence-search.md) page describes ranking, the response format and the experimental rerankers.
47
+
48
+ For an experimental local seven-tool surface (0.1.5 or later), use
49
+ `init --profile lean` and restart your client. It advertises `bootstrap`,
50
+ `search_symbols`, `inspect_symbol`, `semantic_search`, `impact_analysis`,
51
+ `suggest_tests` and `capabilities`, with conditional routing instructions
52
+ and 2,000-token responses. Without file watching, `notify_file_changed`
53
+ is an eighth tool. Advanced tools require a full-profile session.
54
+ This opt-in profile has no demonstrated completion benefit; see the
55
+ [completed pilot](https://github.com/eren23/attocode/blob/main/packages/code-intel/evals/results/2026-10-14-r7-completion-pilot.md).
56
+
57
+ ## Commands for people
58
+
59
+ Run these in your project:
60
+
61
+ ```sh
62
+ attocode-code-intel query "parse config" # search the code with its own words
63
+ attocode-code-intel symbols src/app.py # the symbols of a file
64
+ attocode-code-intel symbols --search greet # find a symbol by name
65
+ attocode-code-intel impact src/app.py # the files that a change can affect
66
+ attocode-code-intel deps src/app.py # what a file imports, and what imports it
67
+ attocode-code-intel hotspots # the files with the most risk or complexity
68
+ ```
69
+
70
+ Search matches the words of the code and its paths. It does not use embeddings unless you install the `semantic` extra.
71
+
72
+ ## What we measured
73
+
74
+ - **Search.** We ran the 560 issues of Loc-Bench V1, with the full issue as the query. For 53.2% of them, the first five files held all files of the fix (file Acc@5 0.532). On a mix of 10 public benchmarks, file Acc@5 was 0.425. See the [first-stage results](https://github.com/eren23/attocode/blob/main/packages/code-intel/evals/results/2026-10-09-locbench-560-first-stage.md) and the [matrix results](https://github.com/eren23/attocode/blob/main/packages/code-intel/evals/results/2026-10-10-matrix-r1.md).
75
+ - **Agents.** In four studies, Claude Code (Sonnet 5.5) named the files to edit for an issue. The server did not raise file Acc@5. Each run with the server cost 1.4 to 2.1 times as much. When the agent could choose, it seldom called the server. See the [agent pilot](https://github.com/eren23/attocode/blob/main/packages/code-intel/evals/results/2026-10-10-agent-pilot.md) and [study R3](https://github.com/eren23/attocode/blob/main/packages/code-intel/evals/results/2026-10-10-agent-r3.md).
76
+
77
+ The [R6 review study](https://github.com/eren23/attocode/blob/main/packages/code-intel/evals/results/2026-10-13-r6-review-test-note.md)
78
+ found no demonstrated review benefit. The [completed R7 repair pilot](https://github.com/eren23/attocode/blob/main/packages/code-intel/evals/results/2026-10-14-r7-completion-pilot.md)
79
+ also found no demonstrated benefit; its reviewed decision is to stop expansion.
80
+
81
+ ## Limits and troubleshooting
82
+
83
+ - **First search.** The first tool call starts the index build. A search waits up to 15 seconds for the index. On a large repository, a search can report that the index is warming. Then search again. An empty result during warm-up does not prove that the code is absent.
84
+ - **Index location.** The index is in `.attocode/` in your project. When the server makes that folder, it adds a `.gitignore`, so the index stays out of commits.
85
+ - **What the index reads.** The server reads at most 50,000 files and skips files over 1 MB. It skips files that `.gitignore` ignores, and folders that start with a dot. It also skips folders named `dist`, `build`, `out`, `output`, `target`, `env`, `tmp`, `vendor` or `coverage`, and binary, media and lock files. If a build-named folder contains real source, explicitly re-include it with a root `.gitignore` entry such as `!dist/`; discovery and edit refresh honor that override.
86
+ - **Languages.** The base install parses Bash, C, C#, C++, CSS, Elixir, Go, HCL, HTML, Java, JavaScript, JSON, Kotlin, Lua, PHP, Python, Ruby, Rust, Scala, Swift, TOML, TypeScript, YAML and Zig. Optional grammars are loaded only when already installed or cached; installing the `tree-sitter-all` extra does not trigger grammar downloads during navigation. A slow grammar falls back after a 100 ms parse budget. Static imports and references are partial evidence, not compiler/type resolution.
87
+ - **Test paths.** Search and test suggestions recognize conventional test folders and filenames, plus supported Kotlin/Android source sets directly under `src` (for example `commonTest`, `jvmTest`, `androidHostTest` and `androidDeviceTest`). Helpers in those sets count as test code even without a test filename. Custom target or flavor names are not inferred from a `Test` suffix alone. Short queries explicitly asking for tests put recognized test files first, preserving order within each group; longer issue descriptions keep source-first behavior. Suggestions can include helpers; verify the actual runnable tests.
88
+ - **Remove the setup.** Run `attocode-code-intel init --remove`. It restores an entry that existed before `init`.
89
+ - **Server does not answer.** Run `attocode-code-intel doctor`. If a client shows "not configured", run `init` for it. After a change, restart the agent. In Claude Code, `/mcp` shows the server state.
90
+ - **HTTP server.** `attocode-code-intel --transport http` needs the `http` extra. It serves only this computer unless you set `ATTOCODE_API_KEY`.
91
+
92
+ For one installation for all repositories, use `init --global`. A global server works on the repository of its working directory, or on the `workspace` that a tool call names.
93
+
94
+ ## Teams and remote agents
95
+
96
+ [Self-hosting and migration](https://github.com/eren23/attocode/blob/main/docs/intelligence.md) covers PostgreSQL, Redis, workers, authentication, and the dashboard. The service serves native Streamable HTTP MCP at `/mcp/`. The dashboard provides connection snippets and knowledge editing.
97
+
98
+ ```sh
99
+ attocode-code-intel init --client all --server https://intel.example.com --repo REPOSITORY_UUID
100
+ attocode-code-intel doctor --client codex --remote
101
+ ```
102
+
103
+ Set `ATTOCODE_API_KEY` in the agent's environment. Use `intelligence:read` for analysis and add `intelligence:write` for knowledge changes. Every repository operation checks membership and scope before using cached analysis. Results identify repository, source, commit, index coverage, and truncation. PostgreSQL stores shared knowledge with authorship, revision, and file anchors.
104
+
105
+ Local and remote entries coexist. Remote calls analyze committed branches or explicit revisions. Local edits remain local. To copy a particular learning to your team, review and run an explicit share:
106
+
107
+ ```sh
108
+ attocode-code-intel share --project . --learning 12 --server https://intel.example.com --repo REPOSITORY_UUID --dry-run
109
+ attocode-code-intel share --project . --learning 12 --server https://intel.example.com --repo REPOSITORY_UUID
110
+ ```
111
+
112
+ `cross_repo_search` searches explicitly selected authorized repositories and retains provenance on each result.
113
+
114
+ ## Development
115
+
116
+ The package is in `packages/code-intel` of the [attocode repository](https://github.com/eren23/attocode).
117
+
118
+ ```sh
119
+ uv sync --extra dev --extra code-intel
120
+ uv run pytest -c packages/code-intel/pyproject.toml --confcutdir=packages/code-intel/tests packages/code-intel/tests
121
+ uv build --package attocode-code-intel
122
+ ```
123
+
124
+ For routine work, use `.venv/bin/python -m eval.quality quick` (two minutes)
125
+ or `local` (ten minutes). They isolate scratch and caches in a monitored 5 GiB
126
+ workspace and report incomplete runs separately from passes. The
127
+ [quality guide](https://github.com/eren23/attocode/blob/main/docs/intelligence-quality.md) covers pinned multi-language
128
+ workflow checks, storage inventory, cleanup and optional CPU cloud batches.
129
+
130
+ Releases use `intel-v*` tags ([release guide](https://github.com/eren23/attocode/blob/main/docs/intelligence-release.md)).
131
+
132
+ [Product and operations guide](https://github.com/eren23/attocode/blob/main/docs/intelligence.md) · [Tool catalog](https://github.com/eren23/attocode/blob/main/docs/intelligence-tools.md) · [Search details](https://github.com/eren23/attocode/blob/main/docs/intelligence-search.md) · [Changelog](https://github.com/eren23/attocode/blob/main/CHANGELOG.md) · [MIT license](https://github.com/eren23/attocode/blob/main/packages/code-intel/LICENSE)
@@ -0,0 +1,101 @@
1
+ """Generated Go cold+restart comparison with exact AST/index parity and cleanup."""
2
+ from __future__ import annotations
3
+
4
+ import ast
5
+ import hashlib
6
+ import json
7
+ import platform
8
+ import subprocess
9
+ import tempfile
10
+ import time
11
+ from dataclasses import asdict
12
+ from pathlib import Path
13
+ from unittest.mock import patch
14
+
15
+ from attocode_intel._internal.integrations.context import ast_service, ast_snapshot, codebase_ast
16
+ from attocode_intel._internal.integrations.context.index_store import AST_SNAPSHOT_KEY
17
+
18
+ BASELINE = 'b3501b9d7ae016572d77ceae1289026d23719694'
19
+ SOURCE = 'packages/code-intel/src/attocode_intel/_internal/integrations/context/ast_service.py'
20
+
21
+
22
+ def run():
23
+ source = subprocess.check_output(['git', 'show', f'{BASELINE}:{SOURCE}'], timeout=10)
24
+ cls = next(n for n in ast.parse(source).body if isinstance(n, ast.ClassDef) and n.name == 'ASTService')
25
+ methods, scopes = {}, []
26
+ for name in ('initialize_skeleton', '_save_snapshot', '_restore_snapshot'):
27
+ method = next(n for n in cls.body if isinstance(n, ast.FunctionDef) and n.name == name)
28
+ scope = dict(vars(ast_service))
29
+ exec(compile(ast.Module(body=[method], type_ignores=[]), '<frozen restart>', 'exec'), scope)
30
+ methods[name] = scope[name]
31
+ scopes.append(scope)
32
+ original = {name: getattr(ast_service.ASTService, name) for name in methods}
33
+ observations = []
34
+ with tempfile.TemporaryDirectory(prefix='attocode-restart-probe-') as tmp:
35
+ root = Path(tmp)
36
+ workloads = ['short_body', 'long_body']
37
+ source_sizes = {}
38
+ for number, (workload, mode) in enumerate((w, m) for w in workloads
39
+ for m in ['baseline', 'candidate', 'candidate', 'baseline']):
40
+ for scope in scopes:
41
+ scope['parse_file'] = ast_service.parse_file
42
+ project = root / str(number)
43
+ project.mkdir()
44
+ for i in range(160):
45
+ (project / f'file{i:04d}.go').write_text('package example\n' + ''.join(
46
+ f'// Helper{i}_{j} returns an adjusted value.\nfunc Helper{i}_{j}(value int) int {{\n'
47
+ + ' if value < 0 { return 0 }\n' * (1 if workload == 'short_body' else 12)
48
+ + ' return value + 1\n}\n' for j in range(32)))
49
+ source_sizes[workload] = sum(p.stat().st_size for p in project.iterdir())
50
+ assert source_sizes[workload] < 8 * 2**20
51
+ with patch.multiple(ast_service.ASTService, **(methods if mode == 'baseline' else original)):
52
+ first = ast_service.ASTService(str(project))
53
+ start = time.monotonic()
54
+ try:
55
+ first.initialize_skeleton(indexing_depth='eager')
56
+ cold = time.monotonic() - start
57
+ payload_bytes = len((first._store.get_meta(AST_SNAPSHOT_KEY) or '').encode())
58
+ finally:
59
+ first.stop_hydration()
60
+ first._store.close()
61
+ second = ast_service.ASTService(str(project))
62
+ try:
63
+ with (patch.object(ast_service, 'parse_file', wraps=ast_service.parse_file) as parse,
64
+ patch.object(codebase_ast, 'parse_file', parse)):
65
+ for scope in scopes:
66
+ scope['parse_file'] = parse
67
+ wall, cpu = time.monotonic(), time.thread_time()
68
+ state = second.initialize_skeleton()
69
+ restart, thread_cpu = time.monotonic()-wall, time.thread_time()-cpu
70
+ calls = parse.call_count
71
+ assert state.phase == 'ready' and state.parsed_files == 160
72
+ assert calls == (320 if mode == 'baseline' else 0)
73
+ summaries = {key: {**asdict(value), 'path': key} for key, value in second._ast_cache.items()}
74
+ evidence = {'asts': summaries, 'definitions': {
75
+ key: [asdict(v) for v in value] for key, value in second._index.definitions.items()},
76
+ 'stats': second._store.stats(), 'dependencies': {
77
+ key: sorted(value) for key, value in second._index.file_dependencies.items()}}
78
+ digest = hashlib.sha256(json.dumps(evidence, sort_keys=True).encode()).hexdigest()
79
+ observations.append({'mode': mode, 'workload': workload, 'cold_seconds': cold, 'restart_seconds': restart,
80
+ 'cold_plus_restart_seconds': cold+restart, 'restart_thread_cpu_seconds': thread_cpu,
81
+ 'restart_parse_calls': calls, 'cache_payload_bytes': payload_bytes,
82
+ 'evidence_sha256': digest})
83
+ finally:
84
+ second.stop_hydration()
85
+ second._store.close()
86
+ for workload in workloads:
87
+ assert len({row['evidence_sha256'] for row in observations if row['workload'] == workload}) == 1
88
+ disk_bytes = sum(p.stat().st_size for p in root.rglob('*') if p.is_file())
89
+ assert disk_bytes < 100 * 2**20
90
+ return {'scope': 'Generated 160-file/5120-function Go cold+restart; no Cockroach or cloud speed claim',
91
+ 'baseline_commit': BASELINE, 'baseline_source_sha256': hashlib.sha256(source).hexdigest(),
92
+ 'candidate_source_sha256': hashlib.sha256(Path(ast_service.__file__).read_bytes()).hexdigest(),
93
+ 'cache_source_sha256': hashlib.sha256(Path(ast_snapshot.__file__).read_bytes()).hexdigest(),
94
+ 'probe_sha256': hashlib.sha256(Path(__file__).read_bytes()).hexdigest(),
95
+ 'python': platform.python_version(), 'platform': platform.platform(),
96
+ 'source_bytes': source_sizes, 'final_owned_disk_bytes': disk_bytes,
97
+ 'observations': observations, 'cleanup_verified': not root.exists()}
98
+
99
+
100
+ if __name__ == '__main__':
101
+ print(json.dumps(run(), indent=2))