cg-code-graph 0.23.12__tar.gz → 0.23.13__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 (424) hide show
  1. {cg_code_graph-0.23.12/cg_code_graph.egg-info → cg_code_graph-0.23.13}/PKG-INFO +1 -1
  2. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/cg_code_graph/__init__.py +1 -1
  3. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/cg_code_graph/apps.py +2 -1
  4. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/cg_code_graph/cli.py +14 -3
  5. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/cg_code_graph/coverage.py +34 -0
  6. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/cg_code_graph/indexer.py +4 -0
  7. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13/cg_code_graph.egg-info}/PKG-INFO +1 -1
  8. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/cg_code_graph.egg-info/SOURCES.txt +1 -0
  9. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/tests/test_coverage.py +9 -2
  10. cg_code_graph-0.23.13/tests/test_incomplete_239.py +75 -0
  11. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/LICENSE +0 -0
  12. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/MANIFEST.in +0 -0
  13. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/README.md +0 -0
  14. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/cg_code_graph/__main__.py +0 -0
  15. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/cg_code_graph/affected.py +0 -0
  16. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/cg_code_graph/agent_rules.py +0 -0
  17. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/cg_code_graph/agents.py +0 -0
  18. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/cg_code_graph/aitools.py +0 -0
  19. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/cg_code_graph/android_ipc.py +0 -0
  20. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/cg_code_graph/apple_ipc.py +0 -0
  21. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/cg_code_graph/blindspots.py +0 -0
  22. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/cg_code_graph/bridges.py +0 -0
  23. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/cg_code_graph/brokers.py +0 -0
  24. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/cg_code_graph/cmake_sources.py +0 -0
  25. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/cg_code_graph/concepts.py +0 -0
  26. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/cg_code_graph/config.py +0 -0
  27. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/cg_code_graph/core/__init__.py +0 -0
  28. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/cg_code_graph/core/cache.py +0 -0
  29. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/cg_code_graph/core/detect.py +0 -0
  30. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/cg_code_graph/core/env.py +0 -0
  31. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/cg_code_graph/core/extractors.py +0 -0
  32. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/cg_code_graph/core/fsutil.py +0 -0
  33. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/cg_code_graph/core/generated.py +0 -0
  34. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/cg_code_graph/core/model.py +0 -0
  35. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/cg_code_graph/core/paths.py +0 -0
  36. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/cg_code_graph/core/plugin.py +0 -0
  37. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/cg_code_graph/core/redact.py +0 -0
  38. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/cg_code_graph/core/store.py +0 -0
  39. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/cg_code_graph/core/syntax_errors.py +0 -0
  40. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/cg_code_graph/dart_isolates.py +0 -0
  41. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/cg_code_graph/doctor.py +0 -0
  42. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/cg_code_graph/explore.py +0 -0
  43. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/cg_code_graph/external.py +0 -0
  44. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/cg_code_graph/graphql.py +0 -0
  45. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/cg_code_graph/guard_facts.py +0 -0
  46. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/cg_code_graph/hooks.py +0 -0
  47. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/cg_code_graph/insecure_transport.py +0 -0
  48. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/cg_code_graph/install_rules.py +0 -0
  49. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/cg_code_graph/jobs.py +0 -0
  50. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/cg_code_graph/link.py +0 -0
  51. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/cg_code_graph/lint_async.py +0 -0
  52. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/cg_code_graph/local_ipc.py +0 -0
  53. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/cg_code_graph/local_sockets.py +0 -0
  54. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/cg_code_graph/mcp_graphs.py +0 -0
  55. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/cg_code_graph/mcp_install.py +0 -0
  56. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/cg_code_graph/mcp_server.py +0 -0
  57. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/cg_code_graph/parity.py +0 -0
  58. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/cg_code_graph/parity_structure.py +0 -0
  59. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/cg_code_graph/payload.py +0 -0
  60. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/cg_code_graph/plans.py +0 -0
  61. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/cg_code_graph/platform_scan.py +0 -0
  62. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/cg_code_graph/platforms.py +0 -0
  63. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/cg_code_graph/plugins/__init__.py +0 -0
  64. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/cg_code_graph/plugins/astro/__init__.py +0 -0
  65. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/cg_code_graph/plugins/astro/content.py +0 -0
  66. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/cg_code_graph/plugins/astro/plugin.py +0 -0
  67. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/cg_code_graph/plugins/cfamily/__init__.py +0 -0
  68. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/cg_code_graph/plugins/cfamily/plugin.py +0 -0
  69. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/cg_code_graph/plugins/cfamily/syntax.py +0 -0
  70. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/cg_code_graph/plugins/dart/__init__.py +0 -0
  71. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/cg_code_graph/plugins/dart/bridges.py +0 -0
  72. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/cg_code_graph/plugins/dart/extractor/bin/extract.dart +0 -0
  73. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/cg_code_graph/plugins/dart/extractor/pubspec.lock +0 -0
  74. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/cg_code_graph/plugins/dart/extractor/pubspec.yaml +0 -0
  75. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/cg_code_graph/plugins/dart/http.py +0 -0
  76. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/cg_code_graph/plugins/dart/models.py +0 -0
  77. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/cg_code_graph/plugins/dart/plugin.py +0 -0
  78. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/cg_code_graph/plugins/dart/program.py +0 -0
  79. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/cg_code_graph/plugins/django/__init__.py +0 -0
  80. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/cg_code_graph/plugins/django/extras.py +0 -0
  81. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/cg_code_graph/plugins/django/models.py +0 -0
  82. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/cg_code_graph/plugins/django/plugin.py +0 -0
  83. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/cg_code_graph/plugins/django/schemas.py +0 -0
  84. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/cg_code_graph/plugins/django/shapes.py +0 -0
  85. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/cg_code_graph/plugins/django/urls.py +0 -0
  86. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/cg_code_graph/plugins/express/__init__.py +0 -0
  87. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/cg_code_graph/plugins/express/plugin.py +0 -0
  88. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/cg_code_graph/plugins/flutter/__init__.py +0 -0
  89. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/cg_code_graph/plugins/flutter/plugin.py +0 -0
  90. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/cg_code_graph/plugins/java/__init__.py +0 -0
  91. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/cg_code_graph/plugins/java/exact.py +0 -0
  92. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/cg_code_graph/plugins/java/plugin.py +0 -0
  93. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/cg_code_graph/plugins/jvm/__init__.py +0 -0
  94. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/cg_code_graph/plugins/jvm/interop.py +0 -0
  95. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/cg_code_graph/plugins/jvm/spring.py +0 -0
  96. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/cg_code_graph/plugins/kotlin/__init__.py +0 -0
  97. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/cg_code_graph/plugins/kotlin/exact.py +0 -0
  98. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/cg_code_graph/plugins/kotlin/plugin.py +0 -0
  99. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/cg_code_graph/plugins/kotlin/reparse.py +0 -0
  100. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/cg_code_graph/plugins/laravel/__init__.py +0 -0
  101. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/cg_code_graph/plugins/laravel/broadcast.py +0 -0
  102. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/cg_code_graph/plugins/laravel/massassign.py +0 -0
  103. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/cg_code_graph/plugins/laravel/plugin.py +0 -0
  104. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/cg_code_graph/plugins/laravel/tests.py +0 -0
  105. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/cg_code_graph/plugins/laravel/values.py +0 -0
  106. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/cg_code_graph/plugins/native/__init__.py +0 -0
  107. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/cg_code_graph/plugins/native/gates.py +0 -0
  108. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/cg_code_graph/plugins/native/runner.py +0 -0
  109. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/cg_code_graph/plugins/native/scipread.py +0 -0
  110. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/cg_code_graph/plugins/native/ts.py +0 -0
  111. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/cg_code_graph/plugins/nest/__init__.py +0 -0
  112. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/cg_code_graph/plugins/nest/plugin.py +0 -0
  113. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/cg_code_graph/plugins/nextjs/__init__.py +0 -0
  114. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/cg_code_graph/plugins/nextjs/plugin.py +0 -0
  115. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/cg_code_graph/plugins/nuxt/__init__.py +0 -0
  116. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/cg_code_graph/plugins/nuxt/plugin.py +0 -0
  117. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/cg_code_graph/plugins/php/__init__.py +0 -0
  118. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/cg_code_graph/plugins/php/external.py +0 -0
  119. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/cg_code_graph/plugins/php/extractor/composer.json +0 -0
  120. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/cg_code_graph/plugins/php/extractor/composer.lock +0 -0
  121. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/cg_code_graph/plugins/php/extractor/extract.php +0 -0
  122. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/cg_code_graph/plugins/php/gating.py +0 -0
  123. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/cg_code_graph/plugins/php/http_client.py +0 -0
  124. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/cg_code_graph/plugins/php/inline_guards.py +0 -0
  125. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/cg_code_graph/plugins/php/plugin.py +0 -0
  126. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/cg_code_graph/plugins/php/strings.py +0 -0
  127. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/cg_code_graph/plugins/python/__init__.py +0 -0
  128. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/cg_code_graph/plugins/python/aitools.py +0 -0
  129. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/cg_code_graph/plugins/python/external.py +0 -0
  130. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/cg_code_graph/plugins/python/fields.py +0 -0
  131. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/cg_code_graph/plugins/python/plugin.py +0 -0
  132. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/cg_code_graph/plugins/python/refs.py +0 -0
  133. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/cg_code_graph/plugins/python/roots.py +0 -0
  134. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/cg_code_graph/plugins/python/socketio.py +0 -0
  135. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/cg_code_graph/plugins/python/subproc.py +0 -0
  136. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/cg_code_graph/plugins/python/tests.py +0 -0
  137. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/cg_code_graph/plugins/python/values.py +0 -0
  138. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/cg_code_graph/plugins/pyweb/__init__.py +0 -0
  139. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/cg_code_graph/plugins/pyweb/plugin.py +0 -0
  140. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/cg_code_graph/plugins/pyweb/values.py +0 -0
  141. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/cg_code_graph/plugins/rust/__init__.py +0 -0
  142. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/cg_code_graph/plugins/rust/cargo.py +0 -0
  143. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/cg_code_graph/plugins/rust/plugin.py +0 -0
  144. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/cg_code_graph/plugins/rust/syntax.py +0 -0
  145. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/cg_code_graph/plugins/scip/__init__.py +0 -0
  146. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/cg_code_graph/plugins/scip/importer.py +0 -0
  147. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/cg_code_graph/plugins/scip/scip.proto +0 -0
  148. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/cg_code_graph/plugins/scip/scip_pb2.py +0 -0
  149. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/cg_code_graph/plugins/stubs/__init__.py +0 -0
  150. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/cg_code_graph/plugins/stubs/plugins.py +0 -0
  151. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/cg_code_graph/plugins/swift/__init__.py +0 -0
  152. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/cg_code_graph/plugins/swift/baseurl.py +0 -0
  153. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/cg_code_graph/plugins/swift/exact.py +0 -0
  154. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/cg_code_graph/plugins/swift/indexstore.py +0 -0
  155. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/cg_code_graph/plugins/swift/packages.py +0 -0
  156. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/cg_code_graph/plugins/swift/plugin.py +0 -0
  157. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/cg_code_graph/plugins/ts/__init__.py +0 -0
  158. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/cg_code_graph/plugins/ts/baseurl.py +0 -0
  159. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/cg_code_graph/plugins/ts/extractor/extract.mjs +0 -0
  160. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/cg_code_graph/plugins/ts/extractor/fw.mjs +0 -0
  161. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/cg_code_graph/plugins/ts/extractor/package-lock.json +0 -0
  162. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/cg_code_graph/plugins/ts/extractor/package.json +0 -0
  163. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/cg_code_graph/plugins/ts/extractor/rr.mjs +0 -0
  164. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/cg_code_graph/plugins/ts/nav.py +0 -0
  165. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/cg_code_graph/plugins/ts/plugin.py +0 -0
  166. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/cg_code_graph/plugins/ts/react_router.py +0 -0
  167. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/cg_code_graph/plugins/tsweb/__init__.py +0 -0
  168. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/cg_code_graph/plugins/tsweb/common.py +0 -0
  169. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/cg_code_graph/plugins/tsweb/data.py +0 -0
  170. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/cg_code_graph/presets/__init__.py +0 -0
  171. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/cg_code_graph/presets/c_cpp.yaml +0 -0
  172. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/cg_code_graph/presets/common.yaml +0 -0
  173. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/cg_code_graph/presets/dart.yaml +0 -0
  174. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/cg_code_graph/presets/django-ninja.yaml +0 -0
  175. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/cg_code_graph/presets/django.yaml +0 -0
  176. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/cg_code_graph/presets/djangorestframework.yaml +0 -0
  177. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/cg_code_graph/presets/express.yaml +0 -0
  178. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/cg_code_graph/presets/java.yaml +0 -0
  179. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/cg_code_graph/presets/kotlin.yaml +0 -0
  180. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/cg_code_graph/presets/laravel.yaml +0 -0
  181. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/cg_code_graph/presets/nest.yaml +0 -0
  182. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/cg_code_graph/presets/nextjs.yaml +0 -0
  183. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/cg_code_graph/presets/nuxt.yaml +0 -0
  184. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/cg_code_graph/presets/php.yaml +0 -0
  185. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/cg_code_graph/presets/python.yaml +0 -0
  186. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/cg_code_graph/presets/react-router.yaml +0 -0
  187. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/cg_code_graph/presets/rust.yaml +0 -0
  188. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/cg_code_graph/presets/spring.yaml +0 -0
  189. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/cg_code_graph/presets/swift.yaml +0 -0
  190. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/cg_code_graph/presets/typescript.yaml +0 -0
  191. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/cg_code_graph/process_runs.py +0 -0
  192. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/cg_code_graph/protocols/__init__.py +0 -0
  193. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/cg_code_graph/protocols/builtin.py +0 -0
  194. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/cg_code_graph/protocols/matchers.py +0 -0
  195. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/cg_code_graph/protocols/view.py +0 -0
  196. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/cg_code_graph/query.py +0 -0
  197. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/cg_code_graph/realtime.py +0 -0
  198. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/cg_code_graph/realtime_events.py +0 -0
  199. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/cg_code_graph/realtime_native.py +0 -0
  200. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/cg_code_graph/realtime_ws.py +0 -0
  201. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/cg_code_graph/roundtrip.py +0 -0
  202. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/cg_code_graph/routes.py +0 -0
  203. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/cg_code_graph/rpc.py +0 -0
  204. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/cg_code_graph/sdk_systems.py +0 -0
  205. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/cg_code_graph/sockets.py +0 -0
  206. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/cg_code_graph/ssrf_input.py +0 -0
  207. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/cg_code_graph/starters.py +0 -0
  208. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/cg_code_graph/surface.py +0 -0
  209. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/cg_code_graph/tests_index.py +0 -0
  210. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/cg_code_graph/udp_apps.py +0 -0
  211. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/cg_code_graph/update_check.py +0 -0
  212. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/cg_code_graph/viz/__init__.py +0 -0
  213. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/cg_code_graph/viz/graph.py +0 -0
  214. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/cg_code_graph/viz/server.py +0 -0
  215. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/cg_code_graph/viz/static/app.css +0 -0
  216. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/cg_code_graph/viz/static/app.js +0 -0
  217. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/cg_code_graph/viz/static/index.html +0 -0
  218. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/cg_code_graph/viz/static/layered.js +0 -0
  219. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/cg_code_graph/viz/static/vendor/VERSIONS.txt +0 -0
  220. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/cg_code_graph/viz/static/vendor/cose-base.js +0 -0
  221. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/cg_code_graph/viz/static/vendor/cytoscape-fcose.js +0 -0
  222. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/cg_code_graph/viz/static/vendor/cytoscape.min.js +0 -0
  223. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/cg_code_graph/viz/static/vendor/layout-base.js +0 -0
  224. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/cg_code_graph/viz/tools/package-lock.json +0 -0
  225. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/cg_code_graph/viz/tools/package.json +0 -0
  226. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/cg_code_graph/viz/tools/shoot.mjs +0 -0
  227. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/cg_code_graph/watch.py +0 -0
  228. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/cg_code_graph/webhook_subs.py +0 -0
  229. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/cg_code_graph/webhooks.py +0 -0
  230. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/cg_code_graph/xcode.py +0 -0
  231. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/cg_code_graph.egg-info/dependency_links.txt +0 -0
  232. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/cg_code_graph.egg-info/entry_points.txt +0 -0
  233. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/cg_code_graph.egg-info/requires.txt +0 -0
  234. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/cg_code_graph.egg-info/top_level.txt +0 -0
  235. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/pyproject.toml +0 -0
  236. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/setup.cfg +0 -0
  237. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/tests/test_affected.py +0 -0
  238. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/tests/test_agents_install.py +0 -0
  239. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/tests/test_agents_md.py +0 -0
  240. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/tests/test_ai_tools.py +0 -0
  241. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/tests/test_android_ipc.py +0 -0
  242. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/tests/test_apple_ipc.py +0 -0
  243. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/tests/test_astro.py +0 -0
  244. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/tests/test_astro_content.py +0 -0
  245. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/tests/test_astro_server.py +0 -0
  246. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/tests/test_bridges.py +0 -0
  247. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/tests/test_bridges_pigeon_monorepo.py +0 -0
  248. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/tests/test_brokers.py +0 -0
  249. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/tests/test_cache_clean.py +0 -0
  250. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/tests/test_cache_invalidation.py +0 -0
  251. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/tests/test_cache_migration.py +0 -0
  252. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/tests/test_channels_tests.py +0 -0
  253. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/tests/test_cli_output.py +0 -0
  254. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/tests/test_cmake_sources.py +0 -0
  255. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/tests/test_completeness.py +0 -0
  256. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/tests/test_config_extras.py +0 -0
  257. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/tests/test_coverage_ts_hint.py +0 -0
  258. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/tests/test_dart_isolates.py +0 -0
  259. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/tests/test_db_connections.py +0 -0
  260. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/tests/test_dead_wrappers.py +0 -0
  261. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/tests/test_dispatch_interfaces.py +0 -0
  262. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/tests/test_dispatch_part3.py +0 -0
  263. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/tests/test_django_flutter.py +0 -0
  264. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/tests/test_docs_languages.py +0 -0
  265. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/tests/test_docs_links.py +0 -0
  266. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/tests/test_echo_ref.py +0 -0
  267. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/tests/test_echo_wrapper.py +0 -0
  268. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/tests/test_elysia.py +0 -0
  269. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/tests/test_enum_constants.py +0 -0
  270. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/tests/test_env.py +0 -0
  271. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/tests/test_explore.py +0 -0
  272. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/tests/test_external.py +0 -0
  273. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/tests/test_fp_batch.py +0 -0
  274. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/tests/test_gating.py +0 -0
  275. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/tests/test_generated.py +0 -0
  276. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/tests/test_graphql.py +0 -0
  277. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/tests/test_hooks.py +0 -0
  278. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/tests/test_impact_overrides.py +0 -0
  279. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/tests/test_index_isolation.py +0 -0
  280. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/tests/test_inherited_overrides.py +0 -0
  281. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/tests/test_inline_guards.py +0 -0
  282. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/tests/test_install_rules.py +0 -0
  283. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/tests/test_issue_192.py +0 -0
  284. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/tests/test_issue_201.py +0 -0
  285. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/tests/test_issue_202.py +0 -0
  286. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/tests/test_issue_203.py +0 -0
  287. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/tests/test_issue_204.py +0 -0
  288. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/tests/test_issue_205.py +0 -0
  289. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/tests/test_issue_206.py +0 -0
  290. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/tests/test_issue_207.py +0 -0
  291. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/tests/test_issue_208.py +0 -0
  292. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/tests/test_issue_209.py +0 -0
  293. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/tests/test_issue_210.py +0 -0
  294. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/tests/test_issue_211.py +0 -0
  295. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/tests/test_issue_211_used_at.py +0 -0
  296. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/tests/test_issue_212.py +0 -0
  297. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/tests/test_issue_212_langs.py +0 -0
  298. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/tests/test_issue_218.py +0 -0
  299. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/tests/test_issue_219.py +0 -0
  300. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/tests/test_issue_222.py +0 -0
  301. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/tests/test_java.py +0 -0
  302. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/tests/test_java_exact.py +0 -0
  303. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/tests/test_jobs.py +0 -0
  304. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/tests/test_js_refs.py +0 -0
  305. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/tests/test_js_runtime.py +0 -0
  306. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/tests/test_kotlin.py +0 -0
  307. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/tests/test_kotlin_binding.py +0 -0
  308. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/tests/test_kotlin_exact.py +0 -0
  309. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/tests/test_kotlin_fields.py +0 -0
  310. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/tests/test_kotlin_local_state.py +0 -0
  311. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/tests/test_kotlin_mixed.py +0 -0
  312. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/tests/test_kotlin_nav_consts.py +0 -0
  313. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/tests/test_kotlin_prop_exact.py +0 -0
  314. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/tests/test_kotlin_prop_overrides.py +0 -0
  315. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/tests/test_kotlin_props.py +0 -0
  316. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/tests/test_laravel_determinism.py +0 -0
  317. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/tests/test_laravel_receiver_narrowing.py +0 -0
  318. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/tests/test_laravel_resources.py +0 -0
  319. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/tests/test_laravel_route_paths.py +0 -0
  320. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/tests/test_link_origin.py +0 -0
  321. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/tests/test_lint_async.py +0 -0
  322. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/tests/test_listing_files.py +0 -0
  323. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/tests/test_local_ipc.py +0 -0
  324. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/tests/test_local_sockets.py +0 -0
  325. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/tests/test_mass_assignment.py +0 -0
  326. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/tests/test_mcp.py +0 -0
  327. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/tests/test_mcp_index.py +0 -0
  328. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/tests/test_mcp_install.py +0 -0
  329. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/tests/test_mcp_instructions.py +0 -0
  330. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/tests/test_mcp_multi_graph.py +0 -0
  331. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/tests/test_native_cfamily.py +0 -0
  332. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/tests/test_native_concurrency.py +0 -0
  333. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/tests/test_native_rust.py +0 -0
  334. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/tests/test_nuxt_i18n.py +0 -0
  335. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/tests/test_nuxt_import_dirs.py +0 -0
  336. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/tests/test_nuxt_nitro.py +0 -0
  337. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/tests/test_nuxt_rootsrc.py +0 -0
  338. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/tests/test_nuxt_side_dirs.py +0 -0
  339. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/tests/test_packaging.py +0 -0
  340. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/tests/test_parity.py +0 -0
  341. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/tests/test_parity_fields.py +0 -0
  342. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/tests/test_parity_members.py +0 -0
  343. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/tests/test_parity_structure.py +0 -0
  344. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/tests/test_php_http.py +0 -0
  345. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/tests/test_php_props.py +0 -0
  346. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/tests/test_plain_js.py +0 -0
  347. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/tests/test_plans.py +0 -0
  348. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/tests/test_platform_gaps.py +0 -0
  349. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/tests/test_platform_type_variants.py +0 -0
  350. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/tests/test_platforms.py +0 -0
  351. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/tests/test_platforms_apple.py +0 -0
  352. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/tests/test_presets_config.py +0 -0
  353. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/tests/test_process_ipc.py +0 -0
  354. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/tests/test_process_runs.py +0 -0
  355. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/tests/test_protocols.py +0 -0
  356. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/tests/test_python_app_tests_module.py +0 -0
  357. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/tests/test_python_collection_chains.py +0 -0
  358. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/tests/test_python_compat.py +0 -0
  359. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/tests/test_python_entry_refs.py +0 -0
  360. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/tests/test_python_fields.py +0 -0
  361. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/tests/test_python_infer_cycles.py +0 -0
  362. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/tests/test_python_roots.py +0 -0
  363. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/tests/test_python_subprocess_tests.py +0 -0
  364. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/tests/test_python_tests.py +0 -0
  365. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/tests/test_python_web_hosts.py +0 -0
  366. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/tests/test_python_web_routes.py +0 -0
  367. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/tests/test_python_web_routes_more.py +0 -0
  368. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/tests/test_react_router.py +0 -0
  369. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/tests/test_readers_writers_specs.py +0 -0
  370. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/tests/test_realtime.py +0 -0
  371. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/tests/test_realtime_native.py +0 -0
  372. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/tests/test_redact_salt.py +0 -0
  373. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/tests/test_request_keys.py +0 -0
  374. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/tests/test_roundtrip.py +0 -0
  375. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/tests/test_route_specs.py +0 -0
  376. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/tests/test_route_tables.py +0 -0
  377. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/tests/test_routes_search_explain.py +0 -0
  378. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/tests/test_rpc.py +0 -0
  379. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/tests/test_scip_health.py +0 -0
  380. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/tests/test_sdk_external.py +0 -0
  381. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/tests/test_sdk_external_infra.py +0 -0
  382. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/tests/test_sdk_external_mail.py +0 -0
  383. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/tests/test_snippet.py +0 -0
  384. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/tests/test_sockets.py +0 -0
  385. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/tests/test_spring.py +0 -0
  386. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/tests/test_ssrf.py +0 -0
  387. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/tests/test_starters_budget.py +0 -0
  388. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/tests/test_state_tracking_235.py +0 -0
  389. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/tests/test_surface.py +0 -0
  390. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/tests/test_surface_transport.py +0 -0
  391. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/tests/test_swift.py +0 -0
  392. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/tests/test_swift_binding.py +0 -0
  393. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/tests/test_swift_exact.py +0 -0
  394. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/tests/test_swift_facts.py +0 -0
  395. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/tests/test_swift_fields.py +0 -0
  396. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/tests/test_swift_modules.py +0 -0
  397. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/tests/test_swift_more.py +0 -0
  398. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/tests/test_swift_nav_values.py +0 -0
  399. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/tests/test_swift_parse_errors.py +0 -0
  400. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/tests/test_swift_platform_files.py +0 -0
  401. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/tests/test_swift_props.py +0 -0
  402. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/tests/test_swift_sdk.py +0 -0
  403. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/tests/test_swift_testing.py +0 -0
  404. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/tests/test_swift_values.py +0 -0
  405. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/tests/test_tauri_events.py +0 -0
  406. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/tests/test_tests_scope.py +0 -0
  407. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/tests/test_ts_fields.py +0 -0
  408. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/tests/test_ts_fields_js_vue.py +0 -0
  409. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/tests/test_ts_file_specs.py +0 -0
  410. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/tests/test_ts_frameworks.py +0 -0
  411. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/tests/test_ts_node_http.py +0 -0
  412. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/tests/test_ts_nuxt.py +0 -0
  413. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/tests/test_ts_src_tsconfig.py +0 -0
  414. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/tests/test_unguarded.py +0 -0
  415. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/tests/test_update_check.py +0 -0
  416. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/tests/test_values.py +0 -0
  417. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/tests/test_viz.py +0 -0
  418. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/tests/test_vue_nav.py +0 -0
  419. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/tests/test_watch.py +0 -0
  420. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/tests/test_webhooks.py +0 -0
  421. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/tests/test_webhooks_152.py +0 -0
  422. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/tests/test_webhooks_152b.py +0 -0
  423. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/tests/test_websockets.py +0 -0
  424. {cg_code_graph-0.23.12 → cg_code_graph-0.23.13}/tests/test_workspace_link.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: cg-code-graph
3
- Version: 0.23.12
3
+ Version: 0.23.13
4
4
  Summary: cg: a code graph of routes, calls, data access and platform boundaries for agents and humans (CLI + MCP server)
5
5
  Author: cyberchronos00
6
6
  License-Expression: MIT
@@ -1,2 +1,2 @@
1
1
  """code-graph: deterministic code knowledge graph (beta)."""
2
- __version__ = "0.23.12"
2
+ __version__ = "0.23.13"
@@ -56,7 +56,8 @@ def index_apps(root: str | Path, db: str | Path, cfg: dict, scip=None, python_ro
56
56
  include_generated=include_generated)
57
57
  out["apps"].append({"name": a["name"], "root": a["root"] or ".", "role": a["role"], "db": str(per_app[a["name"]]),
58
58
  "nodes": st.get("nodes"), "edges": st.get("edges"), "index_seconds": st.get("index_seconds"),
59
- "frameworks": sorted(((st.get("presets") or {}).get("frameworks") or {}))})
59
+ "frameworks": sorted(((st.get("presets") or {}).get("frameworks") or {})),
60
+ **({"incomplete": st["incomplete"]} if st.get("incomplete") else {})})
60
61
  if len(apps) == 1:
61
62
  shutil.copyfile(per_app[apps[0]["name"]], db)
62
63
  out["db_is"] = f"graph of app {apps[0]['name']}"
@@ -120,7 +120,7 @@ def main(argv=None):
120
120
  return 0
121
121
  ap.add_argument("--version", action="version", version=f"cg {__version__}")
122
122
  sub = ap.add_subparsers(dest="cmd", required=True)
123
- p = sub.add_parser("index", help="detect languages / frameworks under ROOT and build the graph DB (stats JSON on stdout, coverage on stderr)"); p.add_argument("root"); p.add_argument("--db", required=True); p.add_argument("--name"); p.add_argument("--scip", action="append"); p.add_argument("--gates", help="gate scenarios JSON (e.g. examples/bookstore.gates.json)")
123
+ p = sub.add_parser("index", help="detect languages / frameworks under ROOT and build the graph DB (stats JSON on stdout, coverage on stderr)"); p.add_argument("root"); p.add_argument("--db", required=True); p.add_argument("--name"); p.add_argument("--scip", action="append"); p.add_argument("--gates", help="gate scenarios JSON (e.g. examples/bookstore.gates.json)"); p.add_argument("--allow-incomplete", action="store_true", help="exit 0 even when most supported source files could not be indexed (missing PHP / Node / Dart toolchain); the WARNING / ERROR lines still print")
124
124
  p.add_argument("--python-root", action="append", metavar="DIR",
125
125
  help="Python source root, relative to ROOT (repeatable); replaces detection and python.source_roots in .cg.yaml")
126
126
  p.add_argument("--no-apps", action="store_true",
@@ -413,7 +413,13 @@ def main(argv=None):
413
413
  include_generated=a.include_generated)
414
414
  print(json.dumps({k: v for k, v in summary.items()}, indent=2, default=str))
415
415
  print(render_apps(summary), file=sys.stderr)
416
- return
416
+ from .coverage import incomplete_lines
417
+ fatal = False
418
+ for app in summary.get("apps") or ():
419
+ for ln in incomplete_lines(app.get("incomplete"), allow=a.allow_incomplete, where=f"app {app['name']}"):
420
+ print(ln, file=sys.stderr)
421
+ fatal = fatal or bool((app.get("incomplete") or {}).get("fatal"))
422
+ return 3 if fatal and not a.allow_incomplete else None
417
423
  st = index_project(a.root, a.db, a.name, a.scip, gates=a.gates, python_roots=a.python_root,
418
424
  include_generated=a.include_generated)
419
425
  except ConfigError as ex:
@@ -422,7 +428,12 @@ def main(argv=None):
422
428
  print(json.dumps(st, indent=2, default=str))
423
429
  from .coverage import render_summary
424
430
  print(render_summary({"": st.get("coverage")}, db=a.db), file=sys.stderr) # stdout stays pure JSON
425
- return
431
+ from .coverage import incomplete_lines
432
+ inc = st.get("incomplete")
433
+ for ln in incomplete_lines(inc, allow=a.allow_incomplete):
434
+ print(ln, file=sys.stderr)
435
+ # a mostly-unindexed project is an error, so `rc == 0 && nodes > 0` checks do not accept it (#239)
436
+ return 3 if inc and inc.get("fatal") and not a.allow_incomplete else None
426
437
  if a.cmd == "doctor":
427
438
  from .doctor import render, report
428
439
  r = report(a.root, scip=a.scip)
@@ -575,6 +575,40 @@ def syntax_error_lines(e: dict, all_files: bool = False, indent: str = " ") ->
575
575
  return out
576
576
 
577
577
 
578
+ def incomplete(cov: dict | None) -> dict | None:
579
+ """Supported languages that were not indexed at all (missing toolchain, extractor error), or None (#239).
580
+
581
+ `fatal` is true when those files are at least half of the supported source files: the graph is mostly empty.
582
+ """
583
+ if not cov:
584
+ return None
585
+ langs = [e for e in cov.get("languages") or () if e.get("status") != "unsupported" and e.get("files")]
586
+ skipped = [e for e in langs if e.get("status") == "skipped"]
587
+ if not skipped:
588
+ return None
589
+ n = sum(e["files"] for e in skipped)
590
+ total = sum(e["files"] for e in langs)
591
+ return {"fatal": n * 2 >= total, "skipped_files": n, "supported_files": total,
592
+ "languages": [{"language": e.get("label") or e["language"], "files": e["files"], "reason": e.get("reason"),
593
+ "hint": e.get("hint")} for e in skipped]}
594
+
595
+
596
+ def incomplete_lines(inc: dict | None, prog: str = "cg index", allow: bool = False, where: str = "") -> list[str]:
597
+ """stderr lines for `incomplete`: one WARNING per skipped language, plus an ERROR line when it is fatal."""
598
+ if not inc:
599
+ return []
600
+ at = f" ({where})" if where else ""
601
+ out = []
602
+ for e in inc["languages"]:
603
+ fix = f"; fix: {e['hint']}" if e.get("hint") else ""
604
+ out.append(f"{prog}: WARNING{at}: {e['language']} {e['files']} file{'s' if e['files'] != 1 else ''} not indexed: {e.get('reason') or 'skipped'}{fix}")
605
+ if inc.get("fatal"):
606
+ tail = " (--allow-incomplete: exit status kept at 0)" if allow else "; exit status 3 (--allow-incomplete keeps 0)"
607
+ out.append(f"{prog}: ERROR{at}: incomplete graph: {inc['skipped_files']} of {inc['supported_files']} supported "
608
+ f"source files were not indexed{tail}")
609
+ return out
610
+
611
+
578
612
  def summary_line(cov: dict | None, repo: str | None = None) -> str:
579
613
  """One line: 'coverage: php 18 exact; typescript 9 exact | not fully covered: go 3 unsupported (...)'."""
580
614
  if not cov:
@@ -472,6 +472,10 @@ def index_project(root: str | Path, db_path: str | Path, name: str | None = None
472
472
  vc = value_counts(builder)
473
473
  if vc: # enum cases / constants per language and the references resolved to them (#84)
474
474
  stats["coverage"]["values"] = vc
475
+ from .coverage import incomplete
476
+ inc = incomplete(stats["coverage"])
477
+ if inc:
478
+ stats["incomplete"] = inc # a supported language was not indexed at all (#239)
475
479
  stats["completeness_seconds"] = round(t_tag - t_cov, 2)
476
480
  stats["scan_seconds"] = scan_seconds
477
481
  stats["nodes"] = len(builder.nodes)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: cg-code-graph
3
- Version: 0.23.12
3
+ Version: 0.23.13
4
4
  Summary: cg: a code graph of routes, calls, data access and platform boundaries for agents and humans (CLI + MCP server)
5
5
  Author: cyberchronos00
6
6
  License-Expression: MIT
@@ -273,6 +273,7 @@ tests/test_generated.py
273
273
  tests/test_graphql.py
274
274
  tests/test_hooks.py
275
275
  tests/test_impact_overrides.py
276
+ tests/test_incomplete_239.py
276
277
  tests/test_index_isolation.py
277
278
  tests/test_inherited_overrides.py
278
279
  tests/test_inline_guards.py
@@ -33,8 +33,15 @@ def test_missing_php_is_skipped_not_fatal(tmp_path):
33
33
  empty = tmp_path / "bin"
34
34
  empty.mkdir()
35
35
  r = cg("index", API, "--name", "bookstore-api", "--db", tmp_path / "api.db", path=str(empty))
36
- assert r.returncode == 0, r.stderr[-800:]
36
+ # the graph is still written, but a mostly-unindexed project exits 3 (#239)
37
+ assert r.returncode == 3, r.stderr[-800:]
37
38
  st = json.loads(r.stdout)
39
+ inc = st["incomplete"]
40
+ assert inc["fatal"] and inc["skipped_files"] == 32 and inc["languages"][0]["language"] == "php"
41
+ assert "cg index: WARNING: php 32 files not indexed: php not installed" in r.stderr
42
+ assert "cg index: ERROR: incomplete graph: 32 of " in r.stderr
43
+ ok = cg("index", API, "--name", "bookstore-api", "--db", tmp_path / "api2.db", "--allow-incomplete", path=str(empty))
44
+ assert ok.returncode == 0 and "cg index: ERROR: incomplete graph" in ok.stderr and "--allow-incomplete: exit status kept at 0" in ok.stderr
38
45
  assert st["plugins"]["php"]["status"] == "skipped" and "php not installed" in st["plugins"]["php"]["reason"]
39
46
  php = lang(st["coverage"], "php")
40
47
  assert php["status"] == "skipped" and php["files"] == 32 and "cg setup php" in php["hint"]
@@ -50,7 +57,7 @@ def test_missing_node_skips_typescript(tmp_path):
50
57
  empty = tmp_path / "bin"
51
58
  empty.mkdir()
52
59
  r = cg("index", WEB, "--name", "bookstore-web", "--db", tmp_path / "web.db", path=str(empty))
53
- assert r.returncode == 0, r.stderr[-800:]
60
+ assert r.returncode == 3, r.stderr[-800:] # nothing indexed (#239)
54
61
  ts = lang(json.loads(r.stdout)["coverage"], "typescript")
55
62
  assert ts["status"] == "skipped" and "node not installed" in ts["reason"] and "cg setup typescript" in ts["hint"]
56
63
 
@@ -0,0 +1,75 @@
1
+ """`cg index` on a project whose main language could not be indexed (#239).
2
+
3
+ A missing PHP toolchain used to give exit 0 and a two-node graph. Now the stats carry `incomplete`, every skipped
4
+ language prints a WARNING, and a mostly-unindexed project exits 3 unless `--allow-incomplete` is passed.
5
+ """
6
+ import json
7
+ import os
8
+ import shutil
9
+ import subprocess
10
+ import sys
11
+ from pathlib import Path
12
+
13
+ ROOT = Path(__file__).resolve().parents[1]
14
+ sys.path.insert(0, str(ROOT))
15
+ from cg_code_graph.coverage import incomplete, incomplete_lines # noqa: E402
16
+
17
+
18
+ def _cov(*langs):
19
+ return {"languages": [dict(language=n, files=f, status=s, reason="php not installed", hint="run `cg setup php`")
20
+ for n, f, s in langs]}
21
+
22
+
23
+ def test_incomplete_none_when_everything_indexed():
24
+ assert incomplete(_cov(("php", 10, "exact"), ("typescript", 4, "exact"))) is None
25
+ assert incomplete(None) is None
26
+
27
+
28
+ def test_unsupported_files_do_not_count():
29
+ inc = incomplete(_cov(("php", 3, "skipped"), ("typescript", 40, "exact"), ("sh", 500, "unsupported")))
30
+ assert inc == {"fatal": False, "skipped_files": 3, "supported_files": 43,
31
+ "languages": [{"language": "php", "files": 3, "reason": "php not installed",
32
+ "hint": "run `cg setup php`"}]}
33
+ lines = incomplete_lines(inc)
34
+ assert lines == ["cg index: WARNING: php 3 files not indexed: php not installed; fix: run `cg setup php`"]
35
+
36
+
37
+ def test_fatal_at_half_of_supported_files():
38
+ inc = incomplete(_cov(("php", 20, "skipped"), ("typescript", 20, "exact")))
39
+ assert inc["fatal"]
40
+ assert incomplete_lines(inc, where="app api")[-1].startswith(
41
+ "cg index: ERROR (app api): incomplete graph: 20 of 40 supported source files were not indexed; exit status 3")
42
+
43
+
44
+ def _write(root: Path, rel: str, text: str):
45
+ p = root / rel
46
+ p.parent.mkdir(parents=True, exist_ok=True)
47
+ p.write_text(text)
48
+
49
+
50
+ def _cg(*args, path):
51
+ env = {"PATH": path, "HOME": str(Path(path).parent / "home"), "CG_CACHE": str(Path(path).parent / "cache")}
52
+ return subprocess.run([sys.executable, "-m", "cg_code_graph.cli", *map(str, args)], cwd=ROOT, env=env,
53
+ capture_output=True, text=True, timeout=300)
54
+
55
+
56
+ def test_cli_warns_but_exits_0_when_few_files_are_skipped(tmp_path):
57
+ app = tmp_path / "kiosk"
58
+ for i in range(6):
59
+ _write(app, f"src/screen{i}.ts", f"export function screen{i}(): number {{ return {i} }}\n")
60
+ _write(app, "tools/ping.php", "<?php\nfunction ping() { return 1; }\n")
61
+ _write(app, "composer.json", '{"name": "kiosk/tools"}\n')
62
+ _write(app, "package.json", '{"name": "kiosk", "private": true}\n')
63
+ _write(app, "tsconfig.json", '{"include": ["src"]}\n')
64
+ bindir = tmp_path / "bin" # node only: TypeScript is indexed, PHP is not
65
+ bindir.mkdir()
66
+ node = shutil.which("node")
67
+ if node:
68
+ os.symlink(node, bindir / "node")
69
+ r = _cg("index", app, "--db", tmp_path / "g.db", path=str(bindir))
70
+ st = json.loads(r.stdout)
71
+ if (st["plugins"].get("ts") or st["plugins"].get("typescript") or {}).get("status") == "skipped":
72
+ return # no JS runtime on this PATH: covered by the unit tests above
73
+ assert r.returncode == 0, r.stderr[-600:]
74
+ assert st["incomplete"]["fatal"] is False and st["incomplete"]["skipped_files"] == 1
75
+ assert "cg index: WARNING: php 1 file not indexed" in r.stderr and "ERROR" not in r.stderr
File without changes