attocode-code-intel 0.1.0__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 (414) hide show
  1. attocode_code_intel-0.1.0/.gitignore +82 -0
  2. attocode_code_intel-0.1.0/LICENSE +21 -0
  3. attocode_code_intel-0.1.0/PKG-INFO +221 -0
  4. attocode_code_intel-0.1.0/README.md +109 -0
  5. attocode_code_intel-0.1.0/evals/README.md +297 -0
  6. attocode_code_intel-0.1.0/evals/broad_candidate_audit.yaml +59 -0
  7. attocode_code_intel-0.1.0/evals/broad_query_cases.yaml +89 -0
  8. attocode_code_intel-0.1.0/evals/broad_query_external_cases.yaml +79 -0
  9. attocode_code_intel-0.1.0/evals/broad_query_final_holdout.yaml +78 -0
  10. attocode_code_intel-0.1.0/evals/client_comparison.py +151 -0
  11. attocode_code_intel-0.1.0/evals/client_responses.py +152 -0
  12. attocode_code_intel-0.1.0/evals/daily.py +77 -0
  13. attocode_code_intel-0.1.0/evals/external_benchmarks.py +130 -0
  14. attocode_code_intel-0.1.0/evals/external_study.py +409 -0
  15. attocode_code_intel-0.1.0/evals/graded_blind_pack.yaml +755 -0
  16. attocode_code_intel-0.1.0/evals/localize_study.py +656 -0
  17. attocode_code_intel-0.1.0/evals/locbench_title_pack.yaml +300 -0
  18. attocode_code_intel-0.1.0/evals/onboarding_study.py +205 -0
  19. attocode_code_intel-0.1.0/evals/pilot.py +206 -0
  20. attocode_code_intel-0.1.0/evals/quality_scoring.py +286 -0
  21. attocode_code_intel-0.1.0/evals/quality_tasks.py +315 -0
  22. attocode_code_intel-0.1.0/evals/release_gate.py +144 -0
  23. attocode_code_intel-0.1.0/evals/responses.py +87 -0
  24. attocode_code_intel-0.1.0/evals/results/2026-09-05-macos.json +116 -0
  25. attocode_code_intel-0.1.0/evals/results/2026-10-04-broad-query-ranking.md +140 -0
  26. attocode_code_intel-0.1.0/evals/results/2026-10-04-decision-reranker-trial.md +116 -0
  27. attocode_code_intel-0.1.0/evals/results/2026-10-04-systemone-http-local-trial.md +65 -0
  28. attocode_code_intel-0.1.0/evals/results/2026-10-05-broad-candidate-audit.md +69 -0
  29. attocode_code_intel-0.1.0/evals/results/2026-10-05-source-view-transfer.md +36 -0
  30. attocode_code_intel-0.1.0/evals/results/2026-10-08-blind-graded-rerank.md +312 -0
  31. attocode_code_intel-0.1.0/evals/results/2026-10-08-locbench-560.md +409 -0
  32. attocode_code_intel-0.1.0/evals/results/2026-10-09-locbench-560-first-stage.md +149 -0
  33. attocode_code_intel-0.1.0/evals/results/2026-10-10-agent-pilot.md +277 -0
  34. attocode_code_intel-0.1.0/evals/results/2026-10-10-agent-r3.md +180 -0
  35. attocode_code_intel-0.1.0/evals/results/2026-10-10-matrix-r1.md +275 -0
  36. attocode_code_intel-0.1.0/evals/results/README.md +3 -0
  37. attocode_code_intel-0.1.0/evals/source_view_transfer.yaml +58 -0
  38. attocode_code_intel-0.1.0/evals/study.py +480 -0
  39. attocode_code_intel-0.1.0/evals/study_clients.py +164 -0
  40. attocode_code_intel-0.1.0/evals/study_events.py +232 -0
  41. attocode_code_intel-0.1.0/evals/study_tasks.py +173 -0
  42. attocode_code_intel-0.1.0/evals/token_overhead.py +84 -0
  43. attocode_code_intel-0.1.0/evals/understanding_scoring.py +120 -0
  44. attocode_code_intel-0.1.0/evals/understanding_study.py +387 -0
  45. attocode_code_intel-0.1.0/evals/warm_cache.py +496 -0
  46. attocode_code_intel-0.1.0/evals/workflows.py +143 -0
  47. attocode_code_intel-0.1.0/pyproject.toml +148 -0
  48. attocode_code_intel-0.1.0/src/attocode_intel/GUIDELINES.md +432 -0
  49. attocode_code_intel-0.1.0/src/attocode_intel/__init__.py +52 -0
  50. attocode_code_intel-0.1.0/src/attocode_intel/_internal/__init__.py +1 -0
  51. attocode_code_intel-0.1.0/src/attocode_intel/_internal/errors/__init__.py +126 -0
  52. attocode_code_intel-0.1.0/src/attocode_intel/_internal/integrations/__init__.py +1 -0
  53. attocode_code_intel-0.1.0/src/attocode_intel/_internal/integrations/context/__init__.py +1 -0
  54. attocode_code_intel-0.1.0/src/attocode_intel/_internal/integrations/context/architecture_drift.py +354 -0
  55. attocode_code_intel-0.1.0/src/attocode_intel/_internal/integrations/context/ast_chunker.py +202 -0
  56. attocode_code_intel-0.1.0/src/attocode_intel/_internal/integrations/context/ast_service.py +1483 -0
  57. attocode_code_intel-0.1.0/src/attocode_intel/_internal/integrations/context/blob_oid.py +423 -0
  58. attocode_code_intel-0.1.0/src/attocode_intel/_internal/integrations/context/cache_manifest.py +221 -0
  59. attocode_code_intel-0.1.0/src/attocode_intel/_internal/integrations/context/cas.py +466 -0
  60. attocode_code_intel-0.1.0/src/attocode_intel/_internal/integrations/context/code_analyzer.py +528 -0
  61. attocode_code_intel-0.1.0/src/attocode_intel/_internal/integrations/context/codebase_ast.py +1461 -0
  62. attocode_code_intel-0.1.0/src/attocode_intel/_internal/integrations/context/codebase_context.py +1736 -0
  63. attocode_code_intel-0.1.0/src/attocode_intel/_internal/integrations/context/cross_mode.py +263 -0
  64. attocode_code_intel-0.1.0/src/attocode_intel/_internal/integrations/context/cross_references.py +616 -0
  65. attocode_code_intel-0.1.0/src/attocode_intel/_internal/integrations/context/embedding_rotation.py +597 -0
  66. attocode_code_intel-0.1.0/src/attocode_intel/_internal/integrations/context/embeddings.py +282 -0
  67. attocode_code_intel-0.1.0/src/attocode_intel/_internal/integrations/context/frecency.py +427 -0
  68. attocode_code_intel-0.1.0/src/attocode_intel/_internal/integrations/context/fuzzy.py +320 -0
  69. attocode_code_intel-0.1.0/src/attocode_intel/_internal/integrations/context/hierarchical_explorer.py +331 -0
  70. attocode_code_intel-0.1.0/src/attocode_intel/_internal/integrations/context/hydration.py +90 -0
  71. attocode_code_intel-0.1.0/src/attocode_intel/_internal/integrations/context/index_repair.py +87 -0
  72. attocode_code_intel-0.1.0/src/attocode_intel/_internal/integrations/context/index_store.py +586 -0
  73. attocode_code_intel-0.1.0/src/attocode_intel/_internal/integrations/context/memory_store.py +602 -0
  74. attocode_code_intel-0.1.0/src/attocode_intel/_internal/integrations/context/module_resolution.py +52 -0
  75. attocode_code_intel-0.1.0/src/attocode_intel/_internal/integrations/context/query_constraints.py +361 -0
  76. attocode_code_intel-0.1.0/src/attocode_intel/_internal/integrations/context/query_history.py +417 -0
  77. attocode_code_intel-0.1.0/src/attocode_intel/_internal/integrations/context/reranker.py +351 -0
  78. attocode_code_intel-0.1.0/src/attocode_intel/_internal/integrations/context/semantic_search.py +2931 -0
  79. attocode_code_intel-0.1.0/src/attocode_intel/_internal/integrations/context/syntax_evidence.py +94 -0
  80. attocode_code_intel-0.1.0/src/attocode_intel/_internal/integrations/context/systemone_ranker.py +245 -0
  81. attocode_code_intel-0.1.0/src/attocode_intel/_internal/integrations/context/temporal_coupling.py +411 -0
  82. attocode_code_intel-0.1.0/src/attocode_intel/_internal/integrations/context/trigram_index.py +820 -0
  83. attocode_code_intel-0.1.0/src/attocode_intel/_internal/integrations/context/trigram_regex.py +171 -0
  84. attocode_code_intel-0.1.0/src/attocode_intel/_internal/integrations/context/ts_parser.py +2199 -0
  85. attocode_code_intel-0.1.0/src/attocode_intel/_internal/integrations/context/vector_store.py +795 -0
  86. attocode_code_intel-0.1.0/src/attocode_intel/_internal/integrations/feature_flags/__init__.py +357 -0
  87. attocode_code_intel-0.1.0/src/attocode_intel/_internal/integrations/lsp/__init__.py +1 -0
  88. attocode_code_intel-0.1.0/src/attocode_intel/_internal/integrations/lsp/client.py +1140 -0
  89. attocode_code_intel-0.1.0/src/attocode_intel/_internal/integrations/mcp/__init__.py +1 -0
  90. attocode_code_intel-0.1.0/src/attocode_intel/_internal/integrations/mcp/client.py +253 -0
  91. attocode_code_intel-0.1.0/src/attocode_intel/_internal/integrations/security/__init__.py +1 -0
  92. attocode_code_intel-0.1.0/src/attocode_intel/_internal/integrations/security/custom_rules.py +176 -0
  93. attocode_code_intel-0.1.0/src/attocode_intel/_internal/integrations/security/dataflow.py +522 -0
  94. attocode_code_intel-0.1.0/src/attocode_intel/_internal/integrations/security/dependency_audit.py +303 -0
  95. attocode_code_intel-0.1.0/src/attocode_intel/_internal/integrations/security/matcher.py +44 -0
  96. attocode_code_intel-0.1.0/src/attocode_intel/_internal/integrations/security/patterns.py +724 -0
  97. attocode_code_intel-0.1.0/src/attocode_intel/_internal/integrations/security/scanner.py +351 -0
  98. attocode_code_intel-0.1.0/src/attocode_intel/_internal/integrations/utilities/__init__.py +1 -0
  99. attocode_code_intel-0.1.0/src/attocode_intel/_internal/integrations/utilities/ignore.py +64 -0
  100. attocode_code_intel-0.1.0/src/attocode_intel/_internal/integrations/utilities/token_estimate.py +51 -0
  101. attocode_code_intel-0.1.0/src/attocode_intel/_internal/tricks/__init__.py +1 -0
  102. attocode_code_intel-0.1.0/src/attocode_intel/_internal/tricks/recursive_context.py +357 -0
  103. attocode_code_intel-0.1.0/src/attocode_intel/_internal/types/__init__.py +1 -0
  104. attocode_code_intel-0.1.0/src/attocode_intel/_internal/types/events.py +289 -0
  105. attocode_code_intel-0.1.0/src/attocode_intel/_internal/types/severity.py +15 -0
  106. attocode_code_intel-0.1.0/src/attocode_intel/_shared.py +341 -0
  107. attocode_code_intel-0.1.0/src/attocode_intel/analysis_coverage.py +56 -0
  108. attocode_code_intel-0.1.0/src/attocode_intel/api/__init__.py +1 -0
  109. attocode_code_intel-0.1.0/src/attocode_intel/api/access.py +32 -0
  110. attocode_code_intel-0.1.0/src/attocode_intel/api/app.py +247 -0
  111. attocode_code_intel-0.1.0/src/attocode_intel/api/auth/__init__.py +128 -0
  112. attocode_code_intel-0.1.0/src/attocode_intel/api/auth/api_keys.py +61 -0
  113. attocode_code_intel-0.1.0/src/attocode_intel/api/auth/context.py +34 -0
  114. attocode_code_intel-0.1.0/src/attocode_intel/api/auth/jwt.py +66 -0
  115. attocode_code_intel-0.1.0/src/attocode_intel/api/auth/oauth.py +146 -0
  116. attocode_code_intel-0.1.0/src/attocode_intel/api/auth/passwords.py +15 -0
  117. attocode_code_intel-0.1.0/src/attocode_intel/api/deps.py +351 -0
  118. attocode_code_intel-0.1.0/src/attocode_intel/api/knowledge_bridge.py +13 -0
  119. attocode_code_intel-0.1.0/src/attocode_intel/api/mcp_transport.py +51 -0
  120. attocode_code_intel-0.1.0/src/attocode_intel/api/middleware.py +411 -0
  121. attocode_code_intel-0.1.0/src/attocode_intel/api/models.py +698 -0
  122. attocode_code_intel-0.1.0/src/attocode_intel/api/providers/__init__.py +1 -0
  123. attocode_code_intel-0.1.0/src/attocode_intel/api/providers/db_provider.py +1106 -0
  124. attocode_code_intel-0.1.0/src/attocode_intel/api/providers/local_provider.py +476 -0
  125. attocode_code_intel-0.1.0/src/attocode_intel/api/providers/remote_provider.py +740 -0
  126. attocode_code_intel-0.1.0/src/attocode_intel/api/repository_source.py +21 -0
  127. attocode_code_intel-0.1.0/src/attocode_intel/api/routes/__init__.py +1 -0
  128. attocode_code_intel-0.1.0/src/attocode_intel/api/routes/_pin_helper.py +158 -0
  129. attocode_code_intel-0.1.0/src/attocode_intel/api/routes/activity.py +148 -0
  130. attocode_code_intel-0.1.0/src/attocode_intel/api/routes/adr.py +102 -0
  131. attocode_code_intel-0.1.0/src/attocode_intel/api/routes/analysis.py +515 -0
  132. attocode_code_intel-0.1.0/src/attocode_intel/api/routes/api_keys.py +170 -0
  133. attocode_code_intel-0.1.0/src/attocode_intel/api/routes/auth.py +428 -0
  134. attocode_code_intel-0.1.0/src/attocode_intel/api/routes/branches.py +262 -0
  135. attocode_code_intel-0.1.0/src/attocode_intel/api/routes/cross_repo_search.py +198 -0
  136. attocode_code_intel-0.1.0/src/attocode_intel/api/routes/embeddings.py +386 -0
  137. attocode_code_intel-0.1.0/src/attocode_intel/api/routes/files.py +132 -0
  138. attocode_code_intel-0.1.0/src/attocode_intel/api/routes/files_v2.py +388 -0
  139. attocode_code_intel-0.1.0/src/attocode_intel/api/routes/gc.py +322 -0
  140. attocode_code_intel-0.1.0/src/attocode_intel/api/routes/git_v2.py +433 -0
  141. attocode_code_intel-0.1.0/src/attocode_intel/api/routes/graph.py +174 -0
  142. attocode_code_intel-0.1.0/src/attocode_intel/api/routes/graph_viz.py +160 -0
  143. attocode_code_intel-0.1.0/src/attocode_intel/api/routes/health.py +62 -0
  144. attocode_code_intel-0.1.0/src/attocode_intel/api/routes/history.py +175 -0
  145. attocode_code_intel-0.1.0/src/attocode_intel/api/routes/jobs.py +84 -0
  146. attocode_code_intel-0.1.0/src/attocode_intel/api/routes/learning.py +205 -0
  147. attocode_code_intel-0.1.0/src/attocode_intel/api/routes/lsp.py +272 -0
  148. attocode_code_intel-0.1.0/src/attocode_intel/api/routes/notify.py +623 -0
  149. attocode_code_intel-0.1.0/src/attocode_intel/api/routes/operations.py +27 -0
  150. attocode_code_intel-0.1.0/src/attocode_intel/api/routes/orgs.py +924 -0
  151. attocode_code_intel-0.1.0/src/attocode_intel/api/routes/preferences.py +100 -0
  152. attocode_code_intel-0.1.0/src/attocode_intel/api/routes/presence.py +42 -0
  153. attocode_code_intel-0.1.0/src/attocode_intel/api/routes/projects.py +116 -0
  154. attocode_code_intel-0.1.0/src/attocode_intel/api/routes/repos.py +47 -0
  155. attocode_code_intel-0.1.0/src/attocode_intel/api/routes/search.py +180 -0
  156. attocode_code_intel-0.1.0/src/attocode_intel/api/routes/snapshots.py +614 -0
  157. attocode_code_intel-0.1.0/src/attocode_intel/api/routes/webhooks.py +313 -0
  158. attocode_code_intel-0.1.0/src/attocode_intel/api/routes/websocket.py +116 -0
  159. attocode_code_intel-0.1.0/src/attocode_intel/api/static/graph.html +239 -0
  160. attocode_code_intel-0.1.0/src/attocode_intel/api/utils.py +96 -0
  161. attocode_code_intel-0.1.0/src/attocode_intel/artifacts/__init__.py +45 -0
  162. attocode_code_intel-0.1.0/src/attocode_intel/artifacts/hashing.py +230 -0
  163. attocode_code_intel-0.1.0/src/attocode_intel/artifacts/provenance.py +190 -0
  164. attocode_code_intel-0.1.0/src/attocode_intel/artifacts/retrieval_pin.py +159 -0
  165. attocode_code_intel-0.1.0/src/attocode_intel/audit.py +59 -0
  166. attocode_code_intel-0.1.0/src/attocode_intel/bug_finder.py +206 -0
  167. attocode_code_intel-0.1.0/src/attocode_intel/bundle.py +80 -0
  168. attocode_code_intel-0.1.0/src/attocode_intel/catalog.py +242 -0
  169. attocode_code_intel-0.1.0/src/attocode_intel/change_review.py +75 -0
  170. attocode_code_intel-0.1.0/src/attocode_intel/cli.py +3062 -0
  171. attocode_code_intel-0.1.0/src/attocode_intel/community.py +63 -0
  172. attocode_code_intel-0.1.0/src/attocode_intel/confidence/__init__.py +144 -0
  173. attocode_code_intel-0.1.0/src/attocode_intel/confidence/jev.py +234 -0
  174. attocode_code_intel-0.1.0/src/attocode_intel/confidence/llm.py +330 -0
  175. attocode_code_intel-0.1.0/src/attocode_intel/confidence/redact.py +44 -0
  176. attocode_code_intel-0.1.0/src/attocode_intel/confidence/settings.py +74 -0
  177. attocode_code_intel-0.1.0/src/attocode_intel/config.py +256 -0
  178. attocode_code_intel-0.1.0/src/attocode_intel/crypto.py +31 -0
  179. attocode_code_intel-0.1.0/src/attocode_intel/db/__init__.py +7 -0
  180. attocode_code_intel-0.1.0/src/attocode_intel/db/base.py +33 -0
  181. attocode_code_intel-0.1.0/src/attocode_intel/db/engine.py +61 -0
  182. attocode_code_intel-0.1.0/src/attocode_intel/db/models.py +529 -0
  183. attocode_code_intel-0.1.0/src/attocode_intel/entrypoint.py +185 -0
  184. attocode_code_intel-0.1.0/src/attocode_intel/focused_evidence.py +130 -0
  185. attocode_code_intel-0.1.0/src/attocode_intel/freshness.py +154 -0
  186. attocode_code_intel-0.1.0/src/attocode_intel/gateway.py +734 -0
  187. attocode_code_intel-0.1.0/src/attocode_intel/git/__init__.py +7 -0
  188. attocode_code_intel-0.1.0/src/attocode_intel/git/credentials.py +75 -0
  189. attocode_code_intel-0.1.0/src/attocode_intel/git/manager.py +493 -0
  190. attocode_code_intel-0.1.0/src/attocode_intel/git/models.py +96 -0
  191. attocode_code_intel-0.1.0/src/attocode_intel/git/storage.py +98 -0
  192. attocode_code_intel-0.1.0/src/attocode_intel/graph_query_parser.py +761 -0
  193. attocode_code_intel-0.1.0/src/attocode_intel/helpers.py +712 -0
  194. attocode_code_intel-0.1.0/src/attocode_intel/indexing/__init__.py +29 -0
  195. attocode_code_intel-0.1.0/src/attocode_intel/indexing/debouncer.py +136 -0
  196. attocode_code_intel-0.1.0/src/attocode_intel/indexing/delta_indexer.py +151 -0
  197. attocode_code_intel-0.1.0/src/attocode_intel/indexing/full_indexer.py +323 -0
  198. attocode_code_intel-0.1.0/src/attocode_intel/indexing/incremental.py +240 -0
  199. attocode_code_intel-0.1.0/src/attocode_intel/indexing/parser.py +403 -0
  200. attocode_code_intel-0.1.0/src/attocode_intel/indexing/summarizer.py +264 -0
  201. attocode_code_intel-0.1.0/src/attocode_intel/installer.py +1896 -0
  202. attocode_code_intel-0.1.0/src/attocode_intel/knowledge.py +269 -0
  203. attocode_code_intel-0.1.0/src/attocode_intel/local_knowledge.py +77 -0
  204. attocode_code_intel-0.1.0/src/attocode_intel/migrations/alembic.ini +36 -0
  205. attocode_code_intel-0.1.0/src/attocode_intel/migrations/env.py +71 -0
  206. attocode_code_intel-0.1.0/src/attocode_intel/migrations/script.py.mako +27 -0
  207. attocode_code_intel-0.1.0/src/attocode_intel/migrations/versions/001_initial_schema.py +219 -0
  208. attocode_code_intel-0.1.0/src/attocode_intel/migrations/versions/002_branch_version_and_embeddings.py +61 -0
  209. attocode_code_intel-0.1.0/src/attocode_intel/migrations/versions/003_embedding_uniqueness_and_cascade.py +51 -0
  210. attocode_code_intel-0.1.0/src/attocode_intel/migrations/versions/004_audit_events.py +38 -0
  211. attocode_code_intel-0.1.0/src/attocode_intel/migrations/versions/005_user_preferences.py +30 -0
  212. attocode_code_intel-0.1.0/src/attocode_intel/migrations/versions/006_google_oauth.py +27 -0
  213. attocode_code_intel-0.1.0/src/attocode_intel/migrations/versions/007_pgvector_embeddings.py +28 -0
  214. attocode_code_intel-0.1.0/src/attocode_intel/migrations/versions/008_symbol_references.py +37 -0
  215. attocode_code_intel-0.1.0/src/attocode_intel/migrations/versions/009_webhook_secret_encryption.py +25 -0
  216. attocode_code_intel-0.1.0/src/attocode_intel/migrations/versions/010_add_commits_table.py +40 -0
  217. attocode_code_intel-0.1.0/src/attocode_intel/migrations/versions/011_commit_changed_files.py +25 -0
  218. attocode_code_intel-0.1.0/src/attocode_intel/migrations/versions/012_branch_merged_at.py +25 -0
  219. attocode_code_intel-0.1.0/src/attocode_intel/migrations/versions/013_revoked_tokens.py +32 -0
  220. attocode_code_intel-0.1.0/src/attocode_intel/migrations/versions/014_blame_hunks.py +40 -0
  221. attocode_code_intel-0.1.0/src/attocode_intel/migrations/versions/015_commit_file_stats.py +40 -0
  222. attocode_code_intel-0.1.0/src/attocode_intel/migrations/versions/016_embedding_provenance_columns.py +179 -0
  223. attocode_code_intel-0.1.0/src/attocode_intel/migrations/versions/017_provenance_table.py +102 -0
  224. attocode_code_intel-0.1.0/src/attocode_intel/migrations/versions/018_repo_snapshots.py +178 -0
  225. attocode_code_intel-0.1.0/src/attocode_intel/migrations/versions/019_symref_caller.py +42 -0
  226. attocode_code_intel-0.1.0/src/attocode_intel/migrations/versions/020_shared_knowledge.py +29 -0
  227. attocode_code_intel-0.1.0/src/attocode_intel/onboarding.py +258 -0
  228. attocode_code_intel-0.1.0/src/attocode_intel/output.py +178 -0
  229. attocode_code_intel-0.1.0/src/attocode_intel/precision.py +133 -0
  230. attocode_code_intel-0.1.0/src/attocode_intel/presence.py +160 -0
  231. attocode_code_intel-0.1.0/src/attocode_intel/probe.py +110 -0
  232. attocode_code_intel-0.1.0/src/attocode_intel/project_dir.py +97 -0
  233. attocode_code_intel-0.1.0/src/attocode_intel/pubsub.py +113 -0
  234. attocode_code_intel-0.1.0/src/attocode_intel/query_ranking.py +242 -0
  235. attocode_code_intel-0.1.0/src/attocode_intel/readiness.py +972 -0
  236. attocode_code_intel-0.1.0/src/attocode_intel/redis.py +51 -0
  237. attocode_code_intel-0.1.0/src/attocode_intel/reference_pages.py +60 -0
  238. attocode_code_intel-0.1.0/src/attocode_intel/remote.py +131 -0
  239. attocode_code_intel-0.1.0/src/attocode_intel/repo_ranker.py +246 -0
  240. attocode_code_intel-0.1.0/src/attocode_intel/request_context.py +82 -0
  241. attocode_code_intel-0.1.0/src/attocode_intel/rules/__init__.py +28 -0
  242. attocode_code_intel-0.1.0/src/attocode_intel/rules/ci.py +320 -0
  243. attocode_code_intel-0.1.0/src/attocode_intel/rules/combinators.py +293 -0
  244. attocode_code_intel-0.1.0/src/attocode_intel/rules/enricher.py +127 -0
  245. attocode_code_intel-0.1.0/src/attocode_intel/rules/evolution.py +452 -0
  246. attocode_code_intel-0.1.0/src/attocode_intel/rules/executor.py +531 -0
  247. attocode_code_intel-0.1.0/src/attocode_intel/rules/filters/__init__.py +5 -0
  248. attocode_code_intel-0.1.0/src/attocode_intel/rules/filters/pipeline.py +151 -0
  249. attocode_code_intel-0.1.0/src/attocode_intel/rules/formatter.py +198 -0
  250. attocode_code_intel-0.1.0/src/attocode_intel/rules/hygiene.py +242 -0
  251. attocode_code_intel-0.1.0/src/attocode_intel/rules/importers/__init__.py +1 -0
  252. attocode_code_intel-0.1.0/src/attocode_intel/rules/importers/semgrep.py +382 -0
  253. attocode_code_intel-0.1.0/src/attocode_intel/rules/loader.py +292 -0
  254. attocode_code_intel-0.1.0/src/attocode_intel/rules/marketplace.py +375 -0
  255. attocode_code_intel-0.1.0/src/attocode_intel/rules/metavar.py +181 -0
  256. attocode_code_intel-0.1.0/src/attocode_intel/rules/model.py +317 -0
  257. attocode_code_intel-0.1.0/src/attocode_intel/rules/packs/__init__.py +1 -0
  258. attocode_code_intel-0.1.0/src/attocode_intel/rules/packs/community/_license_templates/Apache-2.0.txt +176 -0
  259. attocode_code_intel-0.1.0/src/attocode_intel/rules/packs/community/_license_templates/MIT.txt +21 -0
  260. attocode_code_intel-0.1.0/src/attocode_intel/rules/packs/community/bandit-python/LICENSE +176 -0
  261. attocode_code_intel-0.1.0/src/attocode_intel/rules/packs/community/bandit-python/NOTICE +13 -0
  262. attocode_code_intel-0.1.0/src/attocode_intel/rules/packs/community/bandit-python/PORTING.md +23 -0
  263. attocode_code_intel-0.1.0/src/attocode_intel/rules/packs/community/bandit-python/manifest.yaml +14 -0
  264. attocode_code_intel-0.1.0/src/attocode_intel/rules/packs/community/bandit-python/rules/B105-hardcoded-password.yaml +23 -0
  265. attocode_code_intel-0.1.0/src/attocode_intel/rules/packs/community/bandit-python/rules/B303-weak-md5.yaml +21 -0
  266. attocode_code_intel-0.1.0/src/attocode_intel/rules/packs/community/bandit-python/rules/B304-weak-des.yaml +20 -0
  267. attocode_code_intel-0.1.0/src/attocode_intel/rules/packs/community/bandit-python/rules/B307-use-of-eval.yaml +22 -0
  268. attocode_code_intel-0.1.0/src/attocode_intel/rules/packs/community/bandit-python/rules/B324-weak-sha1.yaml +21 -0
  269. attocode_code_intel-0.1.0/src/attocode_intel/rules/packs/community/bandit-python/rules/B501-no-cert-validation.yaml +23 -0
  270. attocode_code_intel-0.1.0/src/attocode_intel/rules/packs/community/bandit-python/rules/B602-shell-true.yaml +22 -0
  271. attocode_code_intel-0.1.0/src/attocode_intel/rules/packs/community/bandit-python/rules/B608-sqli.yaml +22 -0
  272. attocode_code_intel-0.1.0/src/attocode_intel/rules/packs/community/eslint-typescript/LICENSE +21 -0
  273. attocode_code_intel-0.1.0/src/attocode_intel/rules/packs/community/eslint-typescript/NOTICE +13 -0
  274. attocode_code_intel-0.1.0/src/attocode_intel/rules/packs/community/eslint-typescript/PORTING.md +23 -0
  275. attocode_code_intel-0.1.0/src/attocode_intel/rules/packs/community/eslint-typescript/manifest.yaml +14 -0
  276. attocode_code_intel-0.1.0/src/attocode_intel/rules/packs/community/eslint-typescript/rules/eqeqeq.yaml +20 -0
  277. attocode_code_intel-0.1.0/src/attocode_intel/rules/packs/community/eslint-typescript/rules/no-eval.yaml +22 -0
  278. attocode_code_intel-0.1.0/src/attocode_intel/rules/packs/community/eslint-typescript/rules/no-implied-eval.yaml +20 -0
  279. attocode_code_intel-0.1.0/src/attocode_intel/rules/packs/community/eslint-typescript/rules/no-new-func.yaml +21 -0
  280. attocode_code_intel-0.1.0/src/attocode_intel/rules/packs/community/eslint-typescript/rules/no-throw-literal.yaml +19 -0
  281. attocode_code_intel-0.1.0/src/attocode_intel/rules/packs/community/eslint-typescript/rules/no-var.yaml +20 -0
  282. attocode_code_intel-0.1.0/src/attocode_intel/rules/packs/community/eslint-typescript/rules/no-with.yaml +18 -0
  283. attocode_code_intel-0.1.0/src/attocode_intel/rules/packs/community/gosec-go/LICENSE +176 -0
  284. attocode_code_intel-0.1.0/src/attocode_intel/rules/packs/community/gosec-go/NOTICE +13 -0
  285. attocode_code_intel-0.1.0/src/attocode_intel/rules/packs/community/gosec-go/PORTING.md +23 -0
  286. attocode_code_intel-0.1.0/src/attocode_intel/rules/packs/community/gosec-go/manifest.yaml +14 -0
  287. attocode_code_intel-0.1.0/src/attocode_intel/rules/packs/community/gosec-go/rules/G101-hardcoded-credentials.yaml +22 -0
  288. attocode_code_intel-0.1.0/src/attocode_intel/rules/packs/community/gosec-go/rules/G102-bind-all-interfaces.yaml +21 -0
  289. attocode_code_intel-0.1.0/src/attocode_intel/rules/packs/community/gosec-go/rules/G103-unsafe-block.yaml +21 -0
  290. attocode_code_intel-0.1.0/src/attocode_intel/rules/packs/community/gosec-go/rules/G201-sql-format.yaml +21 -0
  291. attocode_code_intel-0.1.0/src/attocode_intel/rules/packs/community/gosec-go/rules/G304-file-inclusion.yaml +23 -0
  292. attocode_code_intel-0.1.0/src/attocode_intel/rules/packs/community/gosec-go/rules/G401-weak-cipher.yaml +20 -0
  293. attocode_code_intel-0.1.0/src/attocode_intel/rules/packs/community/gosec-go/rules/G402-tls-min-version.yaml +20 -0
  294. attocode_code_intel-0.1.0/src/attocode_intel/rules/packs/community/gosec-go/rules/G501-md5-import.yaml +21 -0
  295. attocode_code_intel-0.1.0/src/attocode_intel/rules/packs/examples/cpp/manifest.yaml +4 -0
  296. attocode_code_intel-0.1.0/src/attocode_intel/rules/packs/examples/cpp/rules/security.yaml +90 -0
  297. attocode_code_intel-0.1.0/src/attocode_intel/rules/packs/examples/cpp/rules/structural.yaml +42 -0
  298. attocode_code_intel-0.1.0/src/attocode_intel/rules/packs/examples/csharp/manifest.yaml +4 -0
  299. attocode_code_intel-0.1.0/src/attocode_intel/rules/packs/examples/csharp/rules/security.yaml +69 -0
  300. attocode_code_intel-0.1.0/src/attocode_intel/rules/packs/examples/csharp/rules/structural.yaml +42 -0
  301. attocode_code_intel-0.1.0/src/attocode_intel/rules/packs/examples/go/manifest.yaml +4 -0
  302. attocode_code_intel-0.1.0/src/attocode_intel/rules/packs/examples/go/rules/performance.yaml +136 -0
  303. attocode_code_intel-0.1.0/src/attocode_intel/rules/packs/examples/go/rules/security.yaml +48 -0
  304. attocode_code_intel-0.1.0/src/attocode_intel/rules/packs/examples/go/rules/structural.yaml +58 -0
  305. attocode_code_intel-0.1.0/src/attocode_intel/rules/packs/examples/go/taint/sanitizers.yaml +24 -0
  306. attocode_code_intel-0.1.0/src/attocode_intel/rules/packs/examples/go/taint/sinks.yaml +51 -0
  307. attocode_code_intel-0.1.0/src/attocode_intel/rules/packs/examples/go/taint/sources.yaml +26 -0
  308. attocode_code_intel-0.1.0/src/attocode_intel/rules/packs/examples/java/manifest.yaml +4 -0
  309. attocode_code_intel-0.1.0/src/attocode_intel/rules/packs/examples/java/rules/correctness.yaml +55 -0
  310. attocode_code_intel-0.1.0/src/attocode_intel/rules/packs/examples/java/rules/structural.yaml +48 -0
  311. attocode_code_intel-0.1.0/src/attocode_intel/rules/packs/examples/java/taint/sinks.yaml +37 -0
  312. attocode_code_intel-0.1.0/src/attocode_intel/rules/packs/examples/java/taint/sources.yaml +21 -0
  313. attocode_code_intel-0.1.0/src/attocode_intel/rules/packs/examples/kotlin/manifest.yaml +4 -0
  314. attocode_code_intel-0.1.0/src/attocode_intel/rules/packs/examples/kotlin/rules/correctness.yaml +50 -0
  315. attocode_code_intel-0.1.0/src/attocode_intel/rules/packs/examples/kotlin/rules/structural.yaml +38 -0
  316. attocode_code_intel-0.1.0/src/attocode_intel/rules/packs/examples/php/manifest.yaml +4 -0
  317. attocode_code_intel-0.1.0/src/attocode_intel/rules/packs/examples/php/rules/security.yaml +66 -0
  318. attocode_code_intel-0.1.0/src/attocode_intel/rules/packs/examples/php/rules/structural.yaml +41 -0
  319. attocode_code_intel-0.1.0/src/attocode_intel/rules/packs/examples/python/manifest.yaml +4 -0
  320. attocode_code_intel-0.1.0/src/attocode_intel/rules/packs/examples/python/rules/performance.yaml +90 -0
  321. attocode_code_intel-0.1.0/src/attocode_intel/rules/packs/examples/python/rules/structural.yaml +55 -0
  322. attocode_code_intel-0.1.0/src/attocode_intel/rules/packs/examples/ruby/manifest.yaml +4 -0
  323. attocode_code_intel-0.1.0/src/attocode_intel/rules/packs/examples/ruby/rules/security.yaml +73 -0
  324. attocode_code_intel-0.1.0/src/attocode_intel/rules/packs/examples/ruby/rules/structural.yaml +41 -0
  325. attocode_code_intel-0.1.0/src/attocode_intel/rules/packs/examples/rust/manifest.yaml +4 -0
  326. attocode_code_intel-0.1.0/src/attocode_intel/rules/packs/examples/rust/rules/correctness.yaml +51 -0
  327. attocode_code_intel-0.1.0/src/attocode_intel/rules/packs/examples/rust/rules/structural.yaml +49 -0
  328. attocode_code_intel-0.1.0/src/attocode_intel/rules/packs/examples/typescript/manifest.yaml +4 -0
  329. attocode_code_intel-0.1.0/src/attocode_intel/rules/packs/examples/typescript/rules/performance.yaml +70 -0
  330. attocode_code_intel-0.1.0/src/attocode_intel/rules/packs/examples/typescript/rules/structural.yaml +48 -0
  331. attocode_code_intel-0.1.0/src/attocode_intel/rules/packs/pack_loader.py +244 -0
  332. attocode_code_intel-0.1.0/src/attocode_intel/rules/plugins/__init__.py +1 -0
  333. attocode_code_intel-0.1.0/src/attocode_intel/rules/plugins/plugin_loader.py +132 -0
  334. attocode_code_intel-0.1.0/src/attocode_intel/rules/profiling.py +332 -0
  335. attocode_code_intel-0.1.0/src/attocode_intel/rules/registry.py +213 -0
  336. attocode_code_intel-0.1.0/src/attocode_intel/rules/sarif.py +187 -0
  337. attocode_code_intel-0.1.0/src/attocode_intel/rules/synthesis.py +420 -0
  338. attocode_code_intel-0.1.0/src/attocode_intel/rules/testing.py +326 -0
  339. attocode_code_intel-0.1.0/src/attocode_intel/server.py +734 -0
  340. attocode_code_intel-0.1.0/src/attocode_intel/service.py +3416 -0
  341. attocode_code_intel-0.1.0/src/attocode_intel/sharing.py +57 -0
  342. attocode_code_intel-0.1.0/src/attocode_intel/storage/__init__.py +6 -0
  343. attocode_code_intel-0.1.0/src/attocode_intel/storage/branch_overlay.py +352 -0
  344. attocode_code_intel-0.1.0/src/attocode_intel/storage/content_store.py +220 -0
  345. attocode_code_intel-0.1.0/src/attocode_intel/storage/dependency_store.py +143 -0
  346. attocode_code_intel-0.1.0/src/attocode_intel/storage/diff_engine.py +187 -0
  347. attocode_code_intel-0.1.0/src/attocode_intel/storage/embedding_store.py +594 -0
  348. attocode_code_intel-0.1.0/src/attocode_intel/storage/provenance_store.py +137 -0
  349. attocode_code_intel-0.1.0/src/attocode_intel/storage/security_scanner_db.py +164 -0
  350. attocode_code_intel-0.1.0/src/attocode_intel/storage/symbol_store.py +160 -0
  351. attocode_code_intel-0.1.0/src/attocode_intel/structural_evidence.py +144 -0
  352. attocode_code_intel-0.1.0/src/attocode_intel/symbol_inspection.py +141 -0
  353. attocode_code_intel-0.1.0/src/attocode_intel/symbol_links.py +167 -0
  354. attocode_code_intel-0.1.0/src/attocode_intel/telemetry.py +42 -0
  355. attocode_code_intel-0.1.0/src/attocode_intel/test_ranking.py +73 -0
  356. attocode_code_intel-0.1.0/src/attocode_intel/testing/__init__.py +43 -0
  357. attocode_code_intel-0.1.0/src/attocode_intel/testing/fixtures.py +122 -0
  358. attocode_code_intel-0.1.0/src/attocode_intel/testing/helpers.py +75 -0
  359. attocode_code_intel-0.1.0/src/attocode_intel/testing/mocks.py +99 -0
  360. attocode_code_intel-0.1.0/src/attocode_intel/tools/__init__.py +2 -0
  361. attocode_code_intel-0.1.0/src/attocode_intel/tools/adr_tools.py +628 -0
  362. attocode_code_intel-0.1.0/src/attocode_intel/tools/analysis_tools.py +382 -0
  363. attocode_code_intel-0.1.0/src/attocode_intel/tools/composite_tools.py +695 -0
  364. attocode_code_intel-0.1.0/src/attocode_intel/tools/cross_mode_tools.py +173 -0
  365. attocode_code_intel-0.1.0/src/attocode_intel/tools/dead_code_tools.py +582 -0
  366. attocode_code_intel-0.1.0/src/attocode_intel/tools/distill_tools.py +353 -0
  367. attocode_code_intel-0.1.0/src/attocode_intel/tools/frecency_tools.py +220 -0
  368. attocode_code_intel-0.1.0/src/attocode_intel/tools/fuzzy_tools.py +255 -0
  369. attocode_code_intel-0.1.0/src/attocode_intel/tools/history_tools.py +486 -0
  370. attocode_code_intel-0.1.0/src/attocode_intel/tools/learning_tools.py +222 -0
  371. attocode_code_intel-0.1.0/src/attocode_intel/tools/lsp_tools.py +218 -0
  372. attocode_code_intel-0.1.0/src/attocode_intel/tools/maintenance_tools.py +1662 -0
  373. attocode_code_intel-0.1.0/src/attocode_intel/tools/navigation_tools.py +220 -0
  374. attocode_code_intel-0.1.0/src/attocode_intel/tools/overlay_tools.py +540 -0
  375. attocode_code_intel-0.1.0/src/attocode_intel/tools/pin_store.py +432 -0
  376. attocode_code_intel-0.1.0/src/attocode_intel/tools/pin_tools.py +266 -0
  377. attocode_code_intel-0.1.0/src/attocode_intel/tools/query_constraints_tools.py +262 -0
  378. attocode_code_intel-0.1.0/src/attocode_intel/tools/query_history_tools.py +158 -0
  379. attocode_code_intel-0.1.0/src/attocode_intel/tools/readiness_tools.py +44 -0
  380. attocode_code_intel-0.1.0/src/attocode_intel/tools/rule_tools.py +992 -0
  381. attocode_code_intel-0.1.0/src/attocode_intel/tools/search_tools.py +770 -0
  382. attocode_code_intel-0.1.0/src/attocode_intel/tools/snapshot_tools.py +624 -0
  383. attocode_code_intel-0.1.0/src/attocode_intel/workers/__init__.py +1 -0
  384. attocode_code_intel-0.1.0/src/attocode_intel/workers/job_utils.py +111 -0
  385. attocode_code_intel-0.1.0/src/attocode_intel/workers/jobs.py +573 -0
  386. attocode_code_intel-0.1.0/src/attocode_intel/workers/run.py +30 -0
  387. attocode_code_intel-0.1.0/src/attocode_intel/workers/settings.py +61 -0
  388. attocode_code_intel-0.1.0/tests/test_cold_discovery.py +120 -0
  389. attocode_code_intel-0.1.0/tests/test_compact_inspection.py +257 -0
  390. attocode_code_intel-0.1.0/tests/test_daily_workflows.py +286 -0
  391. attocode_code_intel-0.1.0/tests/test_doctor.py +60 -0
  392. attocode_code_intel-0.1.0/tests/test_edit_restart.py +161 -0
  393. attocode_code_intel-0.1.0/tests/test_external_study.py +270 -0
  394. attocode_code_intel-0.1.0/tests/test_focused_inspection.py +285 -0
  395. attocode_code_intel-0.1.0/tests/test_index_reuse.py +183 -0
  396. attocode_code_intel-0.1.0/tests/test_language_capabilities.py +37 -0
  397. attocode_code_intel-0.1.0/tests/test_local_reranker.py +138 -0
  398. attocode_code_intel-0.1.0/tests/test_localize_study.py +274 -0
  399. attocode_code_intel-0.1.0/tests/test_navigation_evidence.py +174 -0
  400. attocode_code_intel-0.1.0/tests/test_onboarding_study.py +112 -0
  401. attocode_code_intel-0.1.0/tests/test_pilot.py +268 -0
  402. attocode_code_intel-0.1.0/tests/test_precision_protocol.py +222 -0
  403. attocode_code_intel-0.1.0/tests/test_product.py +432 -0
  404. attocode_code_intel-0.1.0/tests/test_quality_evaluation.py +326 -0
  405. attocode_code_intel-0.1.0/tests/test_query_ranking.py +253 -0
  406. attocode_code_intel-0.1.0/tests/test_ranking_intent.py +205 -0
  407. attocode_code_intel-0.1.0/tests/test_remote.py +386 -0
  408. attocode_code_intel-0.1.0/tests/test_structural_evidence.py +92 -0
  409. attocode_code_intel-0.1.0/tests/test_study.py +227 -0
  410. attocode_code_intel-0.1.0/tests/test_systemone_ranker.py +338 -0
  411. attocode_code_intel-0.1.0/tests/test_token_overhead.py +26 -0
  412. attocode_code_intel-0.1.0/tests/test_understanding_evaluation.py +111 -0
  413. attocode_code_intel-0.1.0/tests/test_walk_order.py +29 -0
  414. attocode_code_intel-0.1.0/tests/test_warm_cache.py +179 -0
@@ -0,0 +1,82 @@
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/
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2024-2026 eren23
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1,221 @@
1
+ Metadata-Version: 2.5
2
+ Name: attocode-code-intel
3
+ Version: 0.1.0
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: bcrypt>=4.0; extra == 'dev'
66
+ Requires-Dist: bump-my-version>=0.28; extra == 'dev'
67
+ Requires-Dist: mypy>=1.10; extra == 'dev'
68
+ Requires-Dist: pytest-asyncio>=0.24; extra == 'dev'
69
+ Requires-Dist: pytest-cov>=5.0; extra == 'dev'
70
+ Requires-Dist: pytest-mock>=3.14; extra == 'dev'
71
+ Requires-Dist: pytest>=8.0; extra == 'dev'
72
+ Requires-Dist: python-jose[cryptography]>=3.3; extra == 'dev'
73
+ Requires-Dist: respx>=0.22; extra == 'dev'
74
+ Requires-Dist: ruff>=0.5; extra == 'dev'
75
+ Requires-Dist: sqlalchemy[asyncio]>=2.0; extra == 'dev'
76
+ Provides-Extra: docs
77
+ Requires-Dist: mkdocs-material>=9.5; extra == 'docs'
78
+ Requires-Dist: mkdocs>=1.6; extra == 'docs'
79
+ Requires-Dist: pymdown-extensions>=10.0; extra == 'docs'
80
+ Provides-Extra: graph
81
+ Requires-Dist: networkx>=3.0; extra == 'graph'
82
+ Provides-Extra: http
83
+ Requires-Dist: fastapi>=0.115; extra == 'http'
84
+ Requires-Dist: networkx>=3.0; extra == 'http'
85
+ Requires-Dist: python-multipart>=0.0.18; extra == 'http'
86
+ Requires-Dist: uvicorn[standard]>=0.34; extra == 'http'
87
+ Provides-Extra: semantic
88
+ Requires-Dist: sentence-transformers>=3.0; extra == 'semantic'
89
+ Provides-Extra: semantic-nomic
90
+ Requires-Dist: einops; extra == 'semantic-nomic'
91
+ Requires-Dist: sentence-transformers>=3.0; extra == 'semantic-nomic'
92
+ Provides-Extra: service
93
+ Requires-Dist: alembic>=1.14; extra == 'service'
94
+ Requires-Dist: arq>=0.26; extra == 'service'
95
+ Requires-Dist: asyncpg>=0.30; extra == 'service'
96
+ Requires-Dist: bcrypt>=4.0; extra == 'service'
97
+ Requires-Dist: cryptography>=41.0; extra == 'service'
98
+ Requires-Dist: fastapi>=0.115; extra == 'service'
99
+ Requires-Dist: httpx-oauth>=0.15; extra == 'service'
100
+ Requires-Dist: networkx>=3.0; extra == 'service'
101
+ Requires-Dist: pgvector>=0.3; extra == 'service'
102
+ Requires-Dist: pydantic-settings>=2.0; extra == 'service'
103
+ Requires-Dist: pygit2>=1.14; extra == 'service'
104
+ Requires-Dist: python-jose[cryptography]>=3.3; extra == 'service'
105
+ Requires-Dist: python-multipart>=0.0.18; extra == 'service'
106
+ Requires-Dist: redis[hiredis]>=5.0; extra == 'service'
107
+ Requires-Dist: sqlalchemy[asyncio]>=2.0; extra == 'service'
108
+ Requires-Dist: uvicorn[standard]>=0.34; extra == 'service'
109
+ Provides-Extra: tree-sitter-all
110
+ Requires-Dist: tree-sitter-language-pack>=0.6; extra == 'tree-sitter-all'
111
+ Description-Content-Type: text/markdown
112
+
113
+ # attocode-code-intel
114
+
115
+ 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.
116
+
117
+ **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.
118
+
119
+ ## Quickstart
120
+
121
+ You need Python 3.12 or later and Git.
122
+
123
+ ```sh
124
+ uv tool install attocode-code-intel
125
+ cd /path/to/your/project
126
+ attocode-code-intel init
127
+ ```
128
+
129
+ 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.
130
+
131
+ To check the setup, run `attocode-code-intel doctor`. It starts the configured server, calls two tools and shows the result for each client.
132
+
133
+ For other clients (VS Code, Zed, Windsurf, Claude Desktop and more), run `attocode-code-intel install <target>`. `attocode-code-intel commands` lists the targets.
134
+
135
+ Before the first PyPI release, install from a clone of this repository: `uv tool install /path/to/attocode/packages/code-intel`.
136
+
137
+ ## What your agent gets
138
+
139
+ The agent sees 16 tools (the `daily` profile):
140
+
141
+ | Use | Tools |
142
+ |---|---|
143
+ | Find code | `semantic_search`, `fast_search`, `search_symbols`, `bootstrap`, `relevant_context` |
144
+ | Read a symbol | `inspect_symbol`, `symbols`, `cross_references`, `call_graph` |
145
+ | See structure | `dependencies`, `explore_codebase`, `project_summary` |
146
+ | Plan a change | `impact_analysis`, `suggest_tests`, `review_change` |
147
+ | Check the server | `capabilities` |
148
+
149
+ - 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.
150
+ - In an unfamiliar repository, `bootstrap(task_hint="...")` finds the relevant code and gives a map.
151
+ - `impact_analysis` and `suggest_tests` help plan the checks for a change.
152
+
153
+ 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.
154
+
155
+ ## Commands for people
156
+
157
+ Run these in your project:
158
+
159
+ ```sh
160
+ attocode-code-intel query "parse config" # search the code with its own words
161
+ attocode-code-intel symbols src/app.py # the symbols of a file
162
+ attocode-code-intel symbols --search greet # find a symbol by name
163
+ attocode-code-intel impact src/app.py # the files that a change can affect
164
+ attocode-code-intel deps src/app.py # what a file imports, and what imports it
165
+ attocode-code-intel hotspots # the files with the most risk or complexity
166
+ ```
167
+
168
+ Search matches the words of the code and its paths. It does not use embeddings unless you install the `semantic` extra.
169
+
170
+ ## What we measured
171
+
172
+ - **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).
173
+ - **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).
174
+
175
+ We have not tested longer agent tasks, such as edits or reviews.
176
+
177
+ ## Limits and troubleshooting
178
+
179
+ - **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.
180
+ - **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.
181
+ - **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 `build`, `out`, `output`, `target`, `env`, `tmp`, `vendor` or `coverage`, and binary, media and lock files.
182
+ - **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. The `tree-sitter-all` extra adds about 170 more.
183
+ - **Remove the setup.** Run `attocode-code-intel init --remove`. It restores an entry that existed before `init`.
184
+ - **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.
185
+ - **HTTP server.** `attocode-code-intel --transport http` needs the `http` extra. It serves only this computer unless you set `ATTOCODE_API_KEY`.
186
+
187
+ 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.
188
+
189
+ ## Teams and remote agents
190
+
191
+ [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.
192
+
193
+ ```sh
194
+ attocode-code-intel init --client all --server https://intel.example.com --repo REPOSITORY_UUID
195
+ attocode-code-intel doctor --client codex --remote
196
+ ```
197
+
198
+ 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.
199
+
200
+ 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:
201
+
202
+ ```sh
203
+ attocode-code-intel share --project . --learning 12 --server https://intel.example.com --repo REPOSITORY_UUID --dry-run
204
+ attocode-code-intel share --project . --learning 12 --server https://intel.example.com --repo REPOSITORY_UUID
205
+ ```
206
+
207
+ `cross_repo_search` searches explicitly selected authorized repositories and retains provenance on each result.
208
+
209
+ ## Development
210
+
211
+ The package is in `packages/code-intel` of the [attocode repository](https://github.com/eren23/attocode).
212
+
213
+ ```sh
214
+ uv sync --extra dev --extra code-intel
215
+ uv run pytest -c packages/code-intel/pyproject.toml --confcutdir=packages/code-intel/tests packages/code-intel/tests
216
+ uv build --package attocode-code-intel
217
+ ```
218
+
219
+ Releases use `intel-v*` tags ([release guide](https://github.com/eren23/attocode/blob/main/docs/intelligence-release.md)).
220
+
221
+ [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,109 @@
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
+ Before the first PyPI release, install from a clone of this repository: `uv tool install /path/to/attocode/packages/code-intel`.
24
+
25
+ ## What your agent gets
26
+
27
+ The agent sees 16 tools (the `daily` profile):
28
+
29
+ | Use | Tools |
30
+ |---|---|
31
+ | Find code | `semantic_search`, `fast_search`, `search_symbols`, `bootstrap`, `relevant_context` |
32
+ | Read a symbol | `inspect_symbol`, `symbols`, `cross_references`, `call_graph` |
33
+ | See structure | `dependencies`, `explore_codebase`, `project_summary` |
34
+ | Plan a change | `impact_analysis`, `suggest_tests`, `review_change` |
35
+ | Check the server | `capabilities` |
36
+
37
+ - 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.
38
+ - In an unfamiliar repository, `bootstrap(task_hint="...")` finds the relevant code and gives a map.
39
+ - `impact_analysis` and `suggest_tests` help plan the checks for a change.
40
+
41
+ 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.
42
+
43
+ ## Commands for people
44
+
45
+ Run these in your project:
46
+
47
+ ```sh
48
+ attocode-code-intel query "parse config" # search the code with its own words
49
+ attocode-code-intel symbols src/app.py # the symbols of a file
50
+ attocode-code-intel symbols --search greet # find a symbol by name
51
+ attocode-code-intel impact src/app.py # the files that a change can affect
52
+ attocode-code-intel deps src/app.py # what a file imports, and what imports it
53
+ attocode-code-intel hotspots # the files with the most risk or complexity
54
+ ```
55
+
56
+ Search matches the words of the code and its paths. It does not use embeddings unless you install the `semantic` extra.
57
+
58
+ ## What we measured
59
+
60
+ - **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).
61
+ - **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).
62
+
63
+ We have not tested longer agent tasks, such as edits or reviews.
64
+
65
+ ## Limits and troubleshooting
66
+
67
+ - **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.
68
+ - **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.
69
+ - **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 `build`, `out`, `output`, `target`, `env`, `tmp`, `vendor` or `coverage`, and binary, media and lock files.
70
+ - **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. The `tree-sitter-all` extra adds about 170 more.
71
+ - **Remove the setup.** Run `attocode-code-intel init --remove`. It restores an entry that existed before `init`.
72
+ - **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.
73
+ - **HTTP server.** `attocode-code-intel --transport http` needs the `http` extra. It serves only this computer unless you set `ATTOCODE_API_KEY`.
74
+
75
+ 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.
76
+
77
+ ## Teams and remote agents
78
+
79
+ [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.
80
+
81
+ ```sh
82
+ attocode-code-intel init --client all --server https://intel.example.com --repo REPOSITORY_UUID
83
+ attocode-code-intel doctor --client codex --remote
84
+ ```
85
+
86
+ 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.
87
+
88
+ 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:
89
+
90
+ ```sh
91
+ attocode-code-intel share --project . --learning 12 --server https://intel.example.com --repo REPOSITORY_UUID --dry-run
92
+ attocode-code-intel share --project . --learning 12 --server https://intel.example.com --repo REPOSITORY_UUID
93
+ ```
94
+
95
+ `cross_repo_search` searches explicitly selected authorized repositories and retains provenance on each result.
96
+
97
+ ## Development
98
+
99
+ The package is in `packages/code-intel` of the [attocode repository](https://github.com/eren23/attocode).
100
+
101
+ ```sh
102
+ uv sync --extra dev --extra code-intel
103
+ uv run pytest -c packages/code-intel/pyproject.toml --confcutdir=packages/code-intel/tests packages/code-intel/tests
104
+ uv build --package attocode-code-intel
105
+ ```
106
+
107
+ Releases use `intel-v*` tags ([release guide](https://github.com/eren23/attocode/blob/main/docs/intelligence-release.md)).
108
+
109
+ [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)