claude-flow-novice 2.18.13 → 2.18.14

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 (300) hide show
  1. package/.backups/unknown/1765417503_2999b9ec66f591dd76075617ec31fcea/metadata.json +8 -0
  2. package/.backups/unknown/1765417503_2999b9ec66f591dd76075617ec31fcea/original +3 -0
  3. package/.backups/unknown/1765417503_2999b9ec66f591dd76075617ec31fcea/revert.sh +7 -0
  4. package/.backups/unknown/1765417531_2999b9ec66f591dd76075617ec31fcea/metadata.json +8 -0
  5. package/.backups/unknown/1765417531_2999b9ec66f591dd76075617ec31fcea/original +3 -0
  6. package/.backups/unknown/1765417531_2999b9ec66f591dd76075617ec31fcea/revert.sh +7 -0
  7. package/.backups/unknown/1765417552_2999b9ec66f591dd76075617ec31fcea/metadata.json +8 -0
  8. package/.backups/unknown/1765417552_2999b9ec66f591dd76075617ec31fcea/original +3 -0
  9. package/.backups/unknown/1765417552_2999b9ec66f591dd76075617ec31fcea/revert.sh +7 -0
  10. package/.backups/unknown/1765417613_1f34dbf0fe1ec3b6cb74ba7c4e12a2a4/metadata.json +8 -0
  11. package/.backups/unknown/1765417613_1f34dbf0fe1ec3b6cb74ba7c4e12a2a4/original +1212 -0
  12. package/.backups/unknown/1765417613_1f34dbf0fe1ec3b6cb74ba7c4e12a2a4/revert.sh +7 -0
  13. package/.backups/unknown/1765417613_332e9bb223a26270398922640c1c1653/metadata.json +8 -0
  14. package/.backups/unknown/1765417613_332e9bb223a26270398922640c1c1653/original +1212 -0
  15. package/.backups/unknown/1765417613_332e9bb223a26270398922640c1c1653/revert.sh +7 -0
  16. package/.backups/unknown/1765417613_45880a7afef063347b701e7e88e2df9c/metadata.json +8 -0
  17. package/.backups/unknown/1765417613_45880a7afef063347b701e7e88e2df9c/original +1212 -0
  18. package/.backups/unknown/1765417613_45880a7afef063347b701e7e88e2df9c/revert.sh +7 -0
  19. package/.backups/unknown/1765417614_1b6c3b658c2891dbe245aea4bad41661/metadata.json +8 -0
  20. package/.backups/unknown/1765417614_1b6c3b658c2891dbe245aea4bad41661/original +1228 -0
  21. package/.backups/unknown/1765417614_1b6c3b658c2891dbe245aea4bad41661/revert.sh +7 -0
  22. package/.backups/unknown/1765417614_1ed5bd129f0b5d1b297a04ec5267ef62/metadata.json +8 -0
  23. package/.backups/unknown/1765417614_1ed5bd129f0b5d1b297a04ec5267ef62/original +1237 -0
  24. package/.backups/unknown/1765417614_1ed5bd129f0b5d1b297a04ec5267ef62/revert.sh +7 -0
  25. package/.backups/unknown/1765417614_28e032bd1b62dbfcecbd56327a0b0e23/metadata.json +8 -0
  26. package/.backups/unknown/1765417614_28e032bd1b62dbfcecbd56327a0b0e23/original +1240 -0
  27. package/.backups/unknown/1765417614_28e032bd1b62dbfcecbd56327a0b0e23/revert.sh +7 -0
  28. package/.backups/unknown/1765417614_40a1ce1b0efa2e1ba1958c27b2cbc557/metadata.json +8 -0
  29. package/.backups/unknown/1765417614_40a1ce1b0efa2e1ba1958c27b2cbc557/original +1216 -0
  30. package/.backups/unknown/1765417614_40a1ce1b0efa2e1ba1958c27b2cbc557/revert.sh +7 -0
  31. package/.backups/unknown/1765417614_f65dbf58cff7a9aa1c5c3d0d1618074a/metadata.json +8 -0
  32. package/.backups/unknown/1765417614_f65dbf58cff7a9aa1c5c3d0d1618074a/original +1238 -0
  33. package/.backups/unknown/1765417614_f65dbf58cff7a9aa1c5c3d0d1618074a/revert.sh +7 -0
  34. package/.backups/unknown/1765417615_0f45c28b9b8d5204974421c06075ff74/metadata.json +8 -0
  35. package/.backups/unknown/1765417615_0f45c28b9b8d5204974421c06075ff74/original +1167 -0
  36. package/.backups/unknown/1765417615_0f45c28b9b8d5204974421c06075ff74/revert.sh +7 -0
  37. package/.backups/unknown/1765417615_41d36156891ddb6f63d1b4da59d1db4c/metadata.json +8 -0
  38. package/.backups/unknown/1765417615_41d36156891ddb6f63d1b4da59d1db4c/original +1242 -0
  39. package/.backups/unknown/1765417615_41d36156891ddb6f63d1b4da59d1db4c/revert.sh +7 -0
  40. package/.backups/unknown/1765417709_77dda8631459cfc2ab94b8928f7d90b4/metadata.json +8 -0
  41. package/.backups/unknown/1765417709_77dda8631459cfc2ab94b8928f7d90b4/original +2 -0
  42. package/.backups/unknown/1765417709_77dda8631459cfc2ab94b8928f7d90b4/revert.sh +7 -0
  43. package/.backups/unknown/1765417775_1405837bacf112ba832a139840fe94e7/metadata.json +8 -0
  44. package/.backups/unknown/1765417775_1405837bacf112ba832a139840fe94e7/original +1169 -0
  45. package/.backups/unknown/1765417775_1405837bacf112ba832a139840fe94e7/revert.sh +7 -0
  46. package/.backups/unknown/1765417775_8044b4a5cfdcb5cd71317831ad53f5a2/metadata.json +8 -0
  47. package/.backups/unknown/1765417775_8044b4a5cfdcb5cd71317831ad53f5a2/original +1171 -0
  48. package/.backups/unknown/1765417775_8044b4a5cfdcb5cd71317831ad53f5a2/revert.sh +7 -0
  49. package/.backups/unknown/1765417775_8eb94d60151e1db262377fbf8a187212/metadata.json +8 -0
  50. package/.backups/unknown/1765417775_8eb94d60151e1db262377fbf8a187212/original +1170 -0
  51. package/.backups/unknown/1765417775_8eb94d60151e1db262377fbf8a187212/revert.sh +7 -0
  52. package/.backups/unknown/1765417776_a0d4b709e15e0bfa002c4b128f5e4603/metadata.json +8 -0
  53. package/.backups/unknown/1765417776_a0d4b709e15e0bfa002c4b128f5e4603/original +1173 -0
  54. package/.backups/unknown/1765417776_a0d4b709e15e0bfa002c4b128f5e4603/revert.sh +7 -0
  55. package/.backups/unknown/1765417776_cb1bc24d98b63564eb73ef782b8c68b3/metadata.json +8 -0
  56. package/.backups/unknown/1765417776_cb1bc24d98b63564eb73ef782b8c68b3/original +1170 -0
  57. package/.backups/unknown/1765417776_cb1bc24d98b63564eb73ef782b8c68b3/revert.sh +7 -0
  58. package/.backups/unknown/1765417777_1c4cc8c33f476f0c87c8efd4e34efc22/metadata.json +8 -0
  59. package/.backups/unknown/1765417777_1c4cc8c33f476f0c87c8efd4e34efc22/original +1172 -0
  60. package/.backups/unknown/1765417777_1c4cc8c33f476f0c87c8efd4e34efc22/revert.sh +7 -0
  61. package/.backups/unknown/1765417777_325de83ffd34544909b8b9aa6e18dd05/metadata.json +8 -0
  62. package/.backups/unknown/1765417777_325de83ffd34544909b8b9aa6e18dd05/original +1175 -0
  63. package/.backups/unknown/1765417777_325de83ffd34544909b8b9aa6e18dd05/revert.sh +7 -0
  64. package/.backups/unknown/1765417950_402e7c1a8956b56ac7b88e89f024acb4/metadata.json +8 -0
  65. package/.backups/unknown/1765417950_402e7c1a8956b56ac7b88e89f024acb4/original +1178 -0
  66. package/.backups/unknown/1765417950_402e7c1a8956b56ac7b88e89f024acb4/revert.sh +7 -0
  67. package/.backups/unknown/1765417950_647e27e4da18ae42c339e04b4d334feb/metadata.json +8 -0
  68. package/.backups/unknown/1765417950_647e27e4da18ae42c339e04b4d334feb/original +1174 -0
  69. package/.backups/unknown/1765417950_647e27e4da18ae42c339e04b4d334feb/revert.sh +7 -0
  70. package/.backups/unknown/1765417951_1424d2dd67b8c8a4e7cf649b379d21f2/metadata.json +8 -0
  71. package/.backups/unknown/1765417951_1424d2dd67b8c8a4e7cf649b379d21f2/original +1194 -0
  72. package/.backups/unknown/1765417951_1424d2dd67b8c8a4e7cf649b379d21f2/revert.sh +7 -0
  73. package/.backups/unknown/1765417951_6df070ca287ea94a7f08efc69ec9ea51/metadata.json +8 -0
  74. package/.backups/unknown/1765417951_6df070ca287ea94a7f08efc69ec9ea51/original +1186 -0
  75. package/.backups/unknown/1765417951_6df070ca287ea94a7f08efc69ec9ea51/revert.sh +7 -0
  76. package/.backups/unknown/1765417951_848919a1365f6536e5ef8d85d0c80fa7/metadata.json +8 -0
  77. package/.backups/unknown/1765417951_848919a1365f6536e5ef8d85d0c80fa7/original +1180 -0
  78. package/.backups/unknown/1765417951_848919a1365f6536e5ef8d85d0c80fa7/revert.sh +7 -0
  79. package/.backups/unknown/1765417951_b0d1d4ecf85ad10cda0f3900d414b608/metadata.json +8 -0
  80. package/.backups/unknown/1765417951_b0d1d4ecf85ad10cda0f3900d414b608/original +1198 -0
  81. package/.backups/unknown/1765417951_b0d1d4ecf85ad10cda0f3900d414b608/revert.sh +7 -0
  82. package/.backups/unknown/1765417952_2b720e213b5197cbaad53f9f0857f23f/metadata.json +8 -0
  83. package/.backups/unknown/1765417952_2b720e213b5197cbaad53f9f0857f23f/original +1202 -0
  84. package/.backups/unknown/1765417952_2b720e213b5197cbaad53f9f0857f23f/revert.sh +7 -0
  85. package/.backups/unknown/1765417952_ef1d15e8b83a802a0c0f0fc03e56a89c/metadata.json +8 -0
  86. package/.backups/unknown/1765417952_ef1d15e8b83a802a0c0f0fc03e56a89c/original +1202 -0
  87. package/.backups/unknown/1765417952_ef1d15e8b83a802a0c0f0fc03e56a89c/revert.sh +7 -0
  88. package/.backups/unknown/1765418048_ac94238a69a6f86a6ba9d31f623c18a7/metadata.json +8 -0
  89. package/.backups/unknown/1765418048_ac94238a69a6f86a6ba9d31f623c18a7/original +1209 -0
  90. package/.backups/unknown/1765418048_ac94238a69a6f86a6ba9d31f623c18a7/revert.sh +7 -0
  91. package/.backups/unknown/1765418048_f3afed98da63fef9ff57fb5646976f63/metadata.json +8 -0
  92. package/.backups/unknown/1765418048_f3afed98da63fef9ff57fb5646976f63/original +1207 -0
  93. package/.backups/unknown/1765418048_f3afed98da63fef9ff57fb5646976f63/revert.sh +7 -0
  94. package/.backups/unknown/1765418049_9c392702a4e1cace37d17f6f2dfaf54e/metadata.json +8 -0
  95. package/.backups/unknown/1765418049_9c392702a4e1cace37d17f6f2dfaf54e/original +1207 -0
  96. package/.backups/unknown/1765418049_9c392702a4e1cace37d17f6f2dfaf54e/revert.sh +7 -0
  97. package/.backups/unknown/1765418049_9e0777555b51dea4d24d0503b584cfc5/metadata.json +8 -0
  98. package/.backups/unknown/1765418049_9e0777555b51dea4d24d0503b584cfc5/original +1193 -0
  99. package/.backups/unknown/1765418049_9e0777555b51dea4d24d0503b584cfc5/revert.sh +7 -0
  100. package/.backups/unknown/1765418050_22d534bed68f9f5d883bee54e7cbc4d3/metadata.json +8 -0
  101. package/.backups/unknown/1765418050_22d534bed68f9f5d883bee54e7cbc4d3/original +1194 -0
  102. package/.backups/unknown/1765418050_22d534bed68f9f5d883bee54e7cbc4d3/revert.sh +7 -0
  103. package/.backups/unknown/1765418051_d9243722dc90dabc851c5767a62ac7f2/metadata.json +8 -0
  104. package/.backups/unknown/1765418051_d9243722dc90dabc851c5767a62ac7f2/original +1193 -0
  105. package/.backups/unknown/1765418051_d9243722dc90dabc851c5767a62ac7f2/revert.sh +7 -0
  106. package/.backups/unknown/1765418177_21a2fa816d25d419b54ef2d429aab474/metadata.json +8 -0
  107. package/.backups/unknown/1765418177_21a2fa816d25d419b54ef2d429aab474/original +1191 -0
  108. package/.backups/unknown/1765418177_21a2fa816d25d419b54ef2d429aab474/revert.sh +7 -0
  109. package/.backups/unknown/1765418177_33b673dce1eb59d7eb4f752aec882794/metadata.json +8 -0
  110. package/.backups/unknown/1765418177_33b673dce1eb59d7eb4f752aec882794/original +1190 -0
  111. package/.backups/unknown/1765418177_33b673dce1eb59d7eb4f752aec882794/revert.sh +7 -0
  112. package/.backups/unknown/1765418177_72568812ea5a73cf6861a6b14da065fa/metadata.json +8 -0
  113. package/.backups/unknown/1765418177_72568812ea5a73cf6861a6b14da065fa/original +1191 -0
  114. package/.backups/unknown/1765418177_72568812ea5a73cf6861a6b14da065fa/revert.sh +7 -0
  115. package/.backups/unknown/1765418178_20c28b95f12194fe4b81cfb35f4f3757/metadata.json +8 -0
  116. package/.backups/unknown/1765418178_20c28b95f12194fe4b81cfb35f4f3757/original +1189 -0
  117. package/.backups/unknown/1765418178_20c28b95f12194fe4b81cfb35f4f3757/revert.sh +7 -0
  118. package/.backups/unknown/1765418178_cdf68719cc09173769027743e2718ad4/metadata.json +8 -0
  119. package/.backups/unknown/1765418178_cdf68719cc09173769027743e2718ad4/original +1197 -0
  120. package/.backups/unknown/1765418178_cdf68719cc09173769027743e2718ad4/revert.sh +7 -0
  121. package/.backups/unknown/1765418178_eb19e0f8542405480e51af09fad84b71/metadata.json +8 -0
  122. package/.backups/unknown/1765418178_eb19e0f8542405480e51af09fad84b71/original +1190 -0
  123. package/.backups/unknown/1765418178_eb19e0f8542405480e51af09fad84b71/revert.sh +7 -0
  124. package/.backups/unknown/1765418236_c016507725847318a3c369b047cbb802/metadata.json +8 -0
  125. package/.backups/unknown/1765418236_c016507725847318a3c369b047cbb802/original +1197 -0
  126. package/.backups/unknown/1765418236_c016507725847318a3c369b047cbb802/revert.sh +7 -0
  127. package/.backups/unknown/1765418237_932c3cc3a5c537b7933c2370b65f4b39/metadata.json +8 -0
  128. package/.backups/unknown/1765418237_932c3cc3a5c537b7933c2370b65f4b39/original +1197 -0
  129. package/.backups/unknown/1765418237_932c3cc3a5c537b7933c2370b65f4b39/revert.sh +7 -0
  130. package/.claude/agents/cfn-dev-team/utility/epic-creator-v2.md +194 -2
  131. package/.claude/agents/cfn-dev-team/utility/epic-creator-v2.sh +264 -0
  132. package/.claude/agents/cfn-dev-team/utility/epic-creator-v2.sh.backup +698 -0
  133. package/.claude/hooks/README.md +148 -0
  134. package/.claude/hooks/SessionStart:cfn-load-openai-key.sh +35 -0
  135. package/.claude/hooks/cfn-invoke-pre-edit.sh +1 -1
  136. package/.claude/hooks/cfn-load-cerebras-env.sh +65 -0
  137. package/.claude/hooks/cfn-precompact-enhanced.sh +283 -0
  138. package/.claude/hooks/deprecated/README.md +27 -0
  139. package/.claude/settings.json +71 -6
  140. package/.claude/skills/cfn-cerebras-coordinator/QUICKSTART.md +348 -0
  141. package/.claude/skills/cfn-cerebras-coordinator/README.md +525 -0
  142. package/.claude/skills/cfn-cerebras-coordinator/TDD_COORDINATOR_OVERVIEW.md +284 -0
  143. package/.claude/skills/cfn-cerebras-coordinator/conversations/2025-12-10-py-v2-test-1733854200.json +36 -0
  144. package/.claude/skills/cfn-cerebras-coordinator/conversations/2025-12-10-py-v3-test-1765383241.json +36 -0
  145. package/.claude/skills/cfn-cerebras-coordinator/conversations/2025-12-10-rust-v2-test-1765381361.json +36 -0
  146. package/.claude/skills/cfn-cerebras-coordinator/conversations/2025-12-10-rust-v3-test-1765383242.json +46 -0
  147. package/.claude/skills/cfn-cerebras-coordinator/conversations/2025-12-10-ts-v2-test-1733864400.json +66 -0
  148. package/.claude/skills/cfn-cerebras-coordinator/conversations/2025-12-10-ts-v3-test-1765383238.json +66 -0
  149. package/.claude/skills/cfn-cerebras-coordinator/conversations/2025-12-10-ts-v4-test-1765386506.json +66 -0
  150. package/.claude/skills/cfn-cerebras-coordinator/conversations/2025-12-10-ts-v5-test-1765393100.json +66 -0
  151. package/.claude/skills/cfn-cerebras-coordinator/example-usage.sh +206 -0
  152. package/.claude/skills/cfn-cerebras-coordinator/lib/tdd-conversation-coordinator.ts +569 -0
  153. package/.claude/skills/cfn-cerebras-coordinator/test-tdd-coordinator.sh +250 -0
  154. package/.claude/skills/cfn-epic-creator/SKILL.md +392 -0
  155. package/.claude/skills/cfn-epic-creator/estimate-costs.sh +524 -0
  156. package/.claude/skills/cfn-epic-creator/invoke.sh +445 -0
  157. package/.claude/skills/cfn-epic-creator/parse-personas.sh +533 -0
  158. package/.claude/skills/cfn-epic-creator/security-utils.sh +268 -0
  159. package/.claude/skills/cfn-epic-creator/security-verification-demo.sh +127 -0
  160. package/.claude/skills/cfn-epic-creator/test-invoke.sh +620 -0
  161. package/.claude/skills/cfn-epic-creator/test-security-fixes.sh +195 -0
  162. package/.claude/skills/cfn-epic-creator/test-security-simple.sh +165 -0
  163. package/.claude/skills/cfn-epic-creator/validate-epic.sh +474 -0
  164. package/.claude/skills/cfn-local-ruvector-accelerator/.backups/unknown/1765358428_2cf0ad7377232c919ff0a65630cb307d/metadata.json +8 -0
  165. package/.claude/skills/cfn-local-ruvector-accelerator/.backups/unknown/1765358428_2cf0ad7377232c919ff0a65630cb307d/original +209 -0
  166. package/.claude/skills/cfn-local-ruvector-accelerator/.backups/unknown/1765358428_2cf0ad7377232c919ff0a65630cb307d/revert.sh +7 -0
  167. package/.claude/skills/cfn-local-ruvector-accelerator/AGENT_INTEGRATION_PATTERNS.md +255 -0
  168. package/.claude/skills/cfn-local-ruvector-accelerator/Cargo.toml +8 -1
  169. package/.claude/skills/cfn-local-ruvector-accelerator/Cargo.toml.backup +47 -0
  170. package/.claude/skills/cfn-local-ruvector-accelerator/EXTRACTION_EXAMPLES.md +287 -0
  171. package/.claude/skills/cfn-local-ruvector-accelerator/README.md +2 -563
  172. package/.claude/skills/cfn-local-ruvector-accelerator/SCHEMA_V2_IMPLEMENTATION.md +151 -0
  173. package/.claude/skills/cfn-local-ruvector-accelerator/SECURITY_IMPLEMENTATION.md +185 -0
  174. package/.claude/skills/cfn-local-ruvector-accelerator/SKILL.md +8 -351
  175. package/.claude/skills/cfn-local-ruvector-accelerator/docs/EXECUTIVE_SUMMARY.txt +90 -0
  176. package/.claude/skills/cfn-local-ruvector-accelerator/docs/PHASE_4_QUERY_API.md +210 -0
  177. package/.claude/skills/cfn-local-ruvector-accelerator/docs/RUST_AST_EXTRACTOR_IMPLEMENTATION.md +222 -0
  178. package/.claude/skills/cfn-local-ruvector-accelerator/docs/TRANSACTION_MANAGEMENT.md +241 -0
  179. package/.claude/skills/cfn-local-ruvector-accelerator/docs/VALIDATION_FINDINGS.txt +250 -0
  180. package/.claude/skills/cfn-local-ruvector-accelerator/epic-ast-indexer.json +335 -0
  181. package/.claude/skills/cfn-local-ruvector-accelerator/index-code.sh +292 -96
  182. package/.claude/skills/cfn-local-ruvector-accelerator/index-code.sh.backup +249 -0
  183. package/.claude/skills/cfn-local-ruvector-accelerator/index_all.sh +65 -0
  184. package/.claude/skills/cfn-local-ruvector-accelerator/src/cli/find.rs +214 -0
  185. package/.claude/skills/cfn-local-ruvector-accelerator/src/cli/index.rs +259 -103
  186. package/.claude/skills/cfn-local-ruvector-accelerator/src/cli/index_ast.rs +767 -0
  187. package/.claude/skills/cfn-local-ruvector-accelerator/src/cli/index_modified.rs +37 -0
  188. package/.claude/skills/cfn-local-ruvector-accelerator/src/cli/init.rs +17 -12
  189. package/.claude/skills/cfn-local-ruvector-accelerator/src/cli/migration.rs +34 -1
  190. package/.claude/skills/cfn-local-ruvector-accelerator/src/cli/mod.rs +6 -0
  191. package/.claude/skills/cfn-local-ruvector-accelerator/src/cli/refs.rs +209 -0
  192. package/.claude/skills/cfn-local-ruvector-accelerator/src/embeddings.rs +82 -33
  193. package/.claude/skills/cfn-local-ruvector-accelerator/src/extractors/mod.rs +251 -0
  194. package/.claude/skills/cfn-local-ruvector-accelerator/src/extractors/rust.rs +425 -0
  195. package/.claude/skills/cfn-local-ruvector-accelerator/src/extractors/rust_placeholder.rs +420 -0
  196. package/.claude/skills/cfn-local-ruvector-accelerator/src/extractors/text_fallback.rs +490 -0
  197. package/.claude/skills/cfn-local-ruvector-accelerator/src/extractors/typescript.rs +520 -0
  198. package/.claude/skills/cfn-local-ruvector-accelerator/src/extractors/typescript_full.rs +531 -0
  199. package/.claude/skills/cfn-local-ruvector-accelerator/src/lib.rs +20 -0
  200. package/.claude/skills/cfn-local-ruvector-accelerator/src/main.rs +33 -2
  201. package/.claude/skills/cfn-local-ruvector-accelerator/src/main.rs.backup +360 -0
  202. package/.claude/skills/cfn-local-ruvector-accelerator/src/migration.rs +325 -318
  203. package/.claude/skills/cfn-local-ruvector-accelerator/src/migration_backup.rs +325 -0
  204. package/.claude/skills/cfn-local-ruvector-accelerator/src/migration_tx.rs +513 -0
  205. package/.claude/skills/cfn-local-ruvector-accelerator/src/paths.rs +29 -0
  206. package/.claude/skills/cfn-local-ruvector-accelerator/src/query_api.rs +609 -0
  207. package/.claude/skills/cfn-local-ruvector-accelerator/src/schema_v2.rs +603 -0
  208. package/.claude/skills/cfn-local-ruvector-accelerator/src/security_tests.rs +154 -0
  209. package/.claude/skills/cfn-local-ruvector-accelerator/src/store_v2.rs +583 -0
  210. package/.claude/skills/cfn-local-ruvector-accelerator/src/store_v2_backup.rs +560 -0
  211. package/.claude/skills/cfn-local-ruvector-accelerator/src/store_v2_fixed.rs +0 -0
  212. package/.claude/skills/cfn-local-ruvector-accelerator/src/store_v2_tx.rs +397 -0
  213. package/.claude/skills/cfn-local-ruvector-accelerator/src/test_schema.rs +228 -0
  214. package/.claude/skills/cfn-local-ruvector-accelerator/src/transaction_tests.rs +410 -0
  215. package/.claude/skills/cfn-local-ruvector-accelerator/test_ast_indexing.rs +59 -0
  216. package/.claude/skills/cfn-local-ruvector-accelerator/test_query_api.sh +103 -0
  217. package/.claude/skills/cfn-local-ruvector-accelerator/test_schema.sql +158 -0
  218. package/.claude/skills/cfn-local-ruvector-accelerator/test_schema_v2.sql +147 -0
  219. package/.claude/skills/cfn-mdap-context-injection/SKILL.md +31 -10
  220. package/.claude/skills/cfn-mdap-error-fixer/skill.md +15 -205
  221. package/.claude/skills/cfn-session-handoff/SKILL.md +1 -53
  222. package/.claude/skills/cfn-task-decomposition/SKILL.md +1 -0
  223. package/.claude/skills/cfn-task-intelligence/SKILL.md +39 -18
  224. package/.claude/skills/cfn-task-planning/SKILL.md +37 -12
  225. package/.claude/skills/cfn-validation-framework/SKILL.md +3 -60
  226. package/.claude/skills/cfn-vision-analysis/SKILL.md +3 -20
  227. package/.claude-flow/metrics/performance.json +3 -3
  228. package/.claude-flow/metrics/task-metrics.json +3 -3
  229. package/.ruvector/index_v2.db-shm +0 -0
  230. package/.ruvector/index_v2.db-wal +0 -0
  231. package/CLAUDE.md +9 -1
  232. package/README.md +56 -0
  233. package/docs/AGENT_PRODUCTION_FEEDBACK_PATTERNS.md +389 -0
  234. package/docs/CEREBRAS_TDD_COORDINATOR_TEST_RESULTS.md +213 -0
  235. package/docs/CEREBRAS_TDD_ROUND1_VS_ROUND2_COMPARISON.md +225 -0
  236. package/docs/CEREBRAS_TDD_ROUND3_FINAL_RESULTS.md +264 -0
  237. package/docs/EPIC_CREATOR_V2_ARCHITECTURE.md +629 -0
  238. package/docs/HOOKS_IMPLEMENTATION_PRIORITY.md +585 -0
  239. package/docs/SKILLS_HOOKS_INTEGRATION.md +1074 -0
  240. package/epic-with-personas-2025-12-09-17-15-13.json +253 -0
  241. package/package.json +2 -1
  242. package/test-epic-creator-security.sh +203 -0
  243. package/.claude/skills/cfn-local-ruvector-accelerator/__pycache__/search_engine_v2.cpython-312.pyc +0 -0
  244. package/.claude/skills/cfn-local-ruvector-accelerator/search_engine.py +0 -200
  245. package/jest.config.ts.cjs +0 -17
  246. /package/.claude/{skills → cfn-extras/skills/deprecated}/cfn-cerebras-code-generator/SKILL.md +0 -0
  247. /package/.claude/{skills → cfn-extras/skills/deprecated}/cfn-cerebras-code-generator/context-analyzer.sh +0 -0
  248. /package/.claude/{skills → cfn-extras/skills/deprecated}/cfn-cerebras-code-generator/generate-code.sh +0 -0
  249. /package/.claude/{skills → cfn-extras/skills/deprecated}/cfn-docker-runtime/SKILL.md +0 -0
  250. /package/.claude/{skills → cfn-extras/skills/deprecated}/cfn-docker-runtime/execute.sh +0 -0
  251. /package/.claude/{skills → cfn-extras/skills/deprecated}/cfn-docker-runtime/lib/logging/INTEGRATION.md +0 -0
  252. /package/.claude/{skills → cfn-extras/skills/deprecated}/cfn-docker-runtime/lib/logging/SAMPLE_OUTPUTS.md +0 -0
  253. /package/.claude/{skills → cfn-extras/skills/deprecated}/cfn-docker-runtime/lib/logging/SKILL.md +0 -0
  254. /package/.claude/{skills → cfn-extras/skills/deprecated}/cfn-docker-runtime/lib/logging/capture-container-logs.sh +0 -0
  255. /package/.claude/{skills → cfn-extras/skills/deprecated}/cfn-docker-runtime/lib/logging/enable-logging.sh +0 -0
  256. /package/.claude/{skills → cfn-extras/skills/deprecated}/cfn-docker-runtime/lib/logging/init-hybrid-logging.sh +0 -0
  257. /package/.claude/{skills → cfn-extras/skills/deprecated}/cfn-docker-runtime/lib/logging/queries/analytics-summary.sh +0 -0
  258. /package/.claude/{skills → cfn-extras/skills/deprecated}/cfn-docker-runtime/lib/logging/queries/query-agent-timeline.sh +0 -0
  259. /package/.claude/{skills → cfn-extras/skills/deprecated}/cfn-docker-runtime/lib/logging/queries/query-consensus-history.sh +0 -0
  260. /package/.claude/{skills → cfn-extras/skills/deprecated}/cfn-docker-runtime/lib/logging/queries/query-coordination-timeline.sh +0 -0
  261. /package/.claude/{skills → cfn-extras/skills/deprecated}/cfn-docker-runtime/lib/logging/queries/query-failed-containers.sh +0 -0
  262. /package/.claude/{skills → cfn-extras/skills/deprecated}/cfn-docker-runtime/lib/logging/queries/query-gate-checks.sh +0 -0
  263. /package/.claude/{skills → cfn-extras/skills/deprecated}/cfn-docker-runtime/lib/logging/schema.sql +0 -0
  264. /package/.claude/{skills → cfn-extras/skills/deprecated}/cfn-docker-runtime/lib/logging/sqlite-helpers.sh +0 -0
  265. /package/.claude/{skills → cfn-extras/skills/deprecated}/cfn-docker-runtime/lib/logging/test-hybrid-logging.sh +0 -0
  266. /package/.claude/{skills → cfn-extras/skills/deprecated}/cfn-docker-runtime/lib/mcp/SKILL.md +0 -0
  267. /package/.claude/{skills → cfn-extras/skills/deprecated}/cfn-docker-runtime/lib/mcp/skill-mcp-selector.js +0 -0
  268. /package/.claude/{skills → cfn-extras/skills/deprecated}/cfn-docker-runtime/lib/orchestration/SKILL.md +0 -0
  269. /package/.claude/{skills → cfn-extras/skills/deprecated}/cfn-docker-runtime/lib/orchestration/orchestrate.sh +0 -0
  270. /package/.claude/{skills → cfn-extras/skills/deprecated}/cfn-docker-runtime/lib/spawning/SKILL.md +0 -0
  271. /package/.claude/{skills → cfn-extras/skills/deprecated}/cfn-docker-runtime/lib/spawning/spawn-agent.sh +0 -0
  272. /package/.claude/{skills → cfn-extras/skills/deprecated}/cfn-docker-runtime/lib/waves/SKILL.md +0 -0
  273. /package/.claude/{skills → cfn-extras/skills/deprecated}/cfn-docker-runtime/lib/waves/cleanup-wave.sh +0 -0
  274. /package/.claude/{skills → cfn-extras/skills/deprecated}/cfn-docker-runtime/lib/waves/lib/docker-helpers.sh +0 -0
  275. /package/.claude/{skills → cfn-extras/skills/deprecated}/cfn-docker-runtime/lib/waves/monitor-wave.sh +0 -0
  276. /package/.claude/{skills → cfn-extras/skills/deprecated}/cfn-docker-runtime/lib/waves/spawn-wave.sh +0 -0
  277. /package/.claude/{skills → cfn-extras/skills/deprecated}/cfn-node-heap-sizer/SKILL.md +0 -0
  278. /package/.claude/{skills → cfn-extras/skills/deprecated}/cfn-node-heap-sizer/task-mode-heap-limiter.sh +0 -0
  279. /package/.claude/{skills → cfn-extras/skills/deprecated}/deprecated/analyze-patterns.sh +0 -0
  280. /package/.claude/{skills → cfn-extras/skills/deprecated}/equation-solver/README.md +0 -0
  281. /package/.claude/{skills → cfn-extras/skills/deprecated}/equation-solver/SECURITY.md +0 -0
  282. /package/.claude/{skills → cfn-extras/skills/deprecated}/equation-solver/SKILL.md +0 -0
  283. /package/.claude/{skills → cfn-extras/skills/deprecated}/equation-solver/package.json +0 -0
  284. /package/.claude/{skills → cfn-extras/skills/deprecated}/equation-solver/solve.sh +0 -0
  285. /package/.claude/{skills → cfn-extras/skills/deprecated}/equation-solver/test-equation-solver-minimal.sh +0 -0
  286. /package/.claude/{skills → cfn-extras/skills/deprecated}/equation-solver/test-equation-solver.sh +0 -0
  287. /package/.claude/{skills → cfn-extras/skills/deprecated}/equation-solver/test.cjs +0 -0
  288. /package/.claude/hooks/{cfn-credential-scanner.sh → deprecated/cfn-credential-scanner.sh} +0 -0
  289. /package/.claude/hooks/{cfn-detect-hardcoded-credentials.sh → deprecated/cfn-detect-hardcoded-credentials.sh} +0 -0
  290. /package/.claude/hooks/{cfn-invoke-post-edit-ts.sh → deprecated/cfn-invoke-post-edit-ts.sh} +0 -0
  291. /package/.claude/hooks/{cfn-invoke-pre-edit-ts.sh → deprecated/cfn-invoke-pre-edit-ts.sh} +0 -0
  292. /package/.claude/hooks/{cfn-invoke-security-validation.sh → deprecated/cfn-invoke-security-validation.sh} +0 -0
  293. /package/.claude/hooks/{cfn-lint-sql-injection.sh → deprecated/cfn-lint-sql-injection.sh} +0 -0
  294. /package/.claude/hooks/{cfn-post-edit.sh → deprecated/cfn-post-edit.sh} +0 -0
  295. /package/.claude/hooks/{cfn-pre-edit-backup.sh → deprecated/cfn-pre-edit-backup.sh} +0 -0
  296. /package/.claude/skills/cfn-local-ruvector-accelerator/{embeddings_manager.py → embeddings_manager.py.backup} +0 -0
  297. /package/{.ruvector → .claude/skills/cfn-local-ruvector-accelerator/index}/index.bin +0 -0
  298. /package/{.ruvector → .claude/skills/cfn-local-ruvector-accelerator/index}/metadata.json +0 -0
  299. /package/.claude/skills/cfn-local-ruvector-accelerator/{search_engine_v2.py → search_engine_v2.py.backup} +0 -0
  300. /package/.claude/skills/cfn-local-ruvector-accelerator/{sqlite_store.py → sqlite_store.py.backup} +0 -0
@@ -0,0 +1,210 @@
1
+ # Phase 4: Agent Query API Implementation
2
+
3
+ ## Overview
4
+
5
+ Phase 4 of the AST-Aware RuVector Accelerator implements a high-level query interface for agent use cases, replacing complex grep patterns with structured SQL queries. The implementation provides fast (<50ms) queries on 10k+ entity indexes with support for both Rust and TypeScript codebases.
6
+
7
+ ## Features Implemented
8
+
9
+ ### 1. Query API (`src/query_api.rs`)
10
+
11
+ The QueryApi struct provides six core query methods:
12
+
13
+ - **`find_functions_using_type(type_name)`**: Find all functions that use a specific type
14
+ - **`find_callers_of_function(function_name, exclude_module)`**: Find all callers of a function
15
+ - **`find_types_used_elsewhere(file_path)`**: Find types defined in a file that are used elsewhere
16
+ - **`find_implementations(trait_name)`**: Find all implementations of a trait/interface
17
+ - **`find_public_api(module_path)`**: Get the public API surface of a module
18
+ - **`find_references_to_path(path)`**: Find all references to a path for refactoring
19
+
20
+ ### 2. CLI Commands
21
+
22
+ #### `ruvector find` Command
23
+ Structured search with multiple filter options:
24
+
25
+ ```bash
26
+ # Find functions using a type
27
+ ruvector find --uses-type Album
28
+
29
+ # Find callers of a function, excluding certain module
30
+ ruvector find --called-by create_album --exclude tests
31
+
32
+ # Find types from a file used elsewhere
33
+ ruvector find --types-from src/models.rs
34
+
35
+ # Find implementations of a trait
36
+ ruvector find --implements Display
37
+
38
+ # Find public API of a module
39
+ ruvector find --public-api auth
40
+
41
+ # Filter by entity kind
42
+ ruvector find --uses-type String --kind function
43
+
44
+ # Output in different formats
45
+ ruvector find --uses-type Album --format json
46
+ ruvector find --uses-type Album --format csv --output results.csv
47
+ ```
48
+
49
+ #### `ruvector refs` Command
50
+ Find all references to an entity:
51
+
52
+ ```bash
53
+ # Simple reference search
54
+ ruvector refs create_album
55
+
56
+ # With specific entity kind
57
+ ruvector refs Album --kind struct
58
+
59
+ # Group results by file
60
+ ruvector refs Album --group-by-file
61
+
62
+ # Tree format for visual hierarchy
63
+ ruvector refs Album --format tree
64
+
65
+ # Filter to specific file
66
+ ruvector refs Album --file src/main.rs
67
+
68
+ # Inbound/outbound reference filtering
69
+ ruvector refs create_album --inbound
70
+ ruvector refs create_album --outbound
71
+ ```
72
+
73
+ ### 3. Performance Optimizations
74
+
75
+ - Database indexes optimized for common query patterns
76
+ - Composite indexes for entity+kind, file+kind, and type+usage patterns
77
+ - Query result caching in SQLite WAL mode
78
+ - Memory-mapped I/O for large databases (256MB default)
79
+
80
+ ### 4. Output Formats
81
+
82
+ All queries support multiple output formats:
83
+
84
+ - **Simple**: One line per result (default)
85
+ - **Detailed**: Full entity information with context
86
+ - **JSON**: Machine-readable format for agents
87
+ - **CSV**: Spreadsheet-friendly format
88
+ - **Tree**: Hierarchical view for references
89
+
90
+ ## Usage Examples
91
+
92
+ ### Agent Integration
93
+
94
+ The query API is designed for easy integration with AI agents:
95
+
96
+ ```rust
97
+ use crate::query_api::QueryApi;
98
+ use crate::store_v2::StoreV2;
99
+
100
+ let store = StoreV2::new(&db_path)?;
101
+ let query_api = QueryApi::new(store);
102
+
103
+ // Find all functions using the Album type
104
+ let results = query_api.find_functions_using_type("Album")?;
105
+
106
+ // JSON output for agent consumption
107
+ let json_output = results.format_json()?;
108
+ ```
109
+
110
+ ### Refactoring Support
111
+
112
+ The references query enables safe refactoring:
113
+
114
+ ```bash
115
+ # Before renaming a function
116
+ ruvector refs old_function_name --format tree
117
+
118
+ # Check all uses of a type before major changes
119
+ ruvector find --uses-type MyStruct --format detailed
120
+ ```
121
+
122
+ ### Code Analysis
123
+
124
+ Understand codebase structure and dependencies:
125
+
126
+ ```bash
127
+ # Public API surface
128
+ ruvector find --public-api . --format json
129
+
130
+ # Type usage statistics
131
+ ruvector find --types-from src/lib.rs --format detailed
132
+ ```
133
+
134
+ ## Database Schema
135
+
136
+ The query API uses the v2 schema with optimized tables:
137
+
138
+ - `entities`: Core entity definitions (functions, types, etc.)
139
+ - `refs`: Cross-references between entities
140
+ - `type_usage`: Type usage tracking for dependency analysis
141
+ - `entity_embeddings`: Vector embeddings for semantic search
142
+
143
+ ## Performance Metrics
144
+
145
+ Target performance for all queries:
146
+ - **< 50ms** for databases with 10,000+ entities
147
+ - **< 200ms** for databases with 100,000+ entities
148
+ - **Concurrent query support** through SQLite connection pooling
149
+
150
+ ## Testing
151
+
152
+ Run the test suite:
153
+
154
+ ```bash
155
+ # Basic functionality test
156
+ ./test_query_api.sh
157
+
158
+ # Performance benchmarks
159
+ cargo test --release query_performance
160
+
161
+ # Integration tests
162
+ cargo test query_api_integration
163
+ ```
164
+
165
+ ## Future Enhancements
166
+
167
+ Planned improvements for Sprint 4-2:
168
+
169
+ 1. **Natural Language Query Parsing**
170
+ - Parse "find all functions that return Result"
171
+ - Support "show me callers of main in tests only"
172
+
173
+ 2. **Advanced Filters**
174
+ - Filter by visibility (pub, pub(crate), private)
175
+ - Filter by attributes (#[test], #[async_trait])
176
+ - Date range filters for recently changed code
177
+
178
+ 3. **Query Composition**
179
+ - Chain multiple queries
180
+ - Set operations (union, intersection, difference)
181
+
182
+ 4. **Performance Optimizations**
183
+ - Query result pagination
184
+ - Incremental result streaming
185
+ - Parallel query execution
186
+
187
+ ## Integration with CFN Agents
188
+
189
+ The query API is designed to work seamlessly with CFN agents:
190
+
191
+ - Agents can query code structure without parsing files
192
+ - Fast lookups enable real-time code analysis
193
+ - JSON output format easy for agent consumption
194
+ - Structured queries replace brittle grep patterns
195
+
196
+ ## Troubleshooting
197
+
198
+ ### Common Issues
199
+
200
+ 1. **Slow queries**: Check database indexes with `EXPLAIN QUERY PLAN`
201
+ 2. **No results**: Verify entities are indexed with `ruvector stats`
202
+ 3. **JSON errors**: Ensure entity names are properly quoted
203
+
204
+ ### Debug Queries
205
+
206
+ Enable debug logging to see actual SQL queries:
207
+
208
+ ```bash
209
+ RUST_LOG=debug ruvector find --uses-type Album
210
+ ```
@@ -0,0 +1,222 @@
1
+ # Rust AST Extractor Implementation
2
+
3
+ ## Overview
4
+
5
+ The Rust AST Extractor is implemented as part of Phase 2 of the AST-Aware RuVector Accelerator. It provides entity and reference extraction from Rust source code using tree-sitter.
6
+
7
+ ## Architecture
8
+
9
+ ### Core Components
10
+
11
+ 1. **Extractor Trait** (`src/extractors/mod.rs`)
12
+ - Common interface for all language extractors
13
+ - Defines `Entity`, `Reference`, and `ExtractionResult` types
14
+ - Provides utility functions for node traversal and metadata extraction
15
+
16
+ 2. **RustExtractor** (`src/extractors/rust.rs`)
17
+ - Concrete implementation for Rust language
18
+ - Uses tree-sitter-rust for parsing
19
+ - Extracts functions, structs, impls, traits, enums, and references
20
+
21
+ 3. **Entity Types**
22
+ - `Function`: Functions with parameters, return type, visibility
23
+ - `Struct`: Struct definitions with fields and generics
24
+ - `Impl`: Implementation blocks (trait impls and inherent impls)
25
+ - `Trait`: Trait definitions with methods and bounds
26
+ - `Enum`: Enum definitions with variants
27
+ - `TypeAlias`: Type aliases
28
+
29
+ 4. **Reference Types**
30
+ - `Calls`: Function calls
31
+ - `Uses`: Type usage
32
+ - `Imports`: Use declarations
33
+ - `Implements`: Trait implementations
34
+
35
+ ## Current Status
36
+
37
+ ### ✅ Completed
38
+
39
+ 1. **Core Infrastructure**
40
+ - Extractor trait definition
41
+ - Entity and reference data structures
42
+ - Utility functions for tree-sitter operations
43
+
44
+ 2. **Rust Extractor Skeleton**
45
+ - Full extractor implementation structure
46
+ - Methods for all entity types
47
+ - Reference extraction for calls, types, and imports
48
+ - Comprehensive test suite
49
+
50
+ 3. **Dependencies Added**
51
+ - tree-sitter = "0.20"
52
+ - tree-sitter-rust = "0.20"
53
+ - tree-sitter-typescript = "0.20"
54
+
55
+ ### ⚠️ Pending Integration
56
+
57
+ The tree-sitter-rust grammar needs to be properly integrated. Currently, the extractor returns an error:
58
+ ```
59
+ tree-sitter-rust not yet integrated
60
+ ```
61
+
62
+ ## Next Steps for Full Implementation
63
+
64
+ ### 1. Tree-sitter Grammar Integration
65
+
66
+ To complete the implementation:
67
+
68
+ 1. **Build tree-sitter parsers as a build script**:
69
+ ```rust
70
+ // build.rs
71
+ fn main() {
72
+ tree_sitter_cli::generate::generate_parser_in(
73
+ "src/grammar",
74
+ "src/grammar.rs",
75
+ false
76
+ ).unwrap();
77
+ }
78
+ ```
79
+
80
+ 2. **Initialize tree-sitter-rust properly**:
81
+ ```rust
82
+ extern "C" {
83
+ fn tree_sitter_rust() -> Language;
84
+ }
85
+
86
+ let language = unsafe { tree_sitter_rust() };
87
+ ```
88
+
89
+ 3. **Alternative: Use tree-sitter-loader**:
90
+ ```rust
91
+ use tree_sitter::Loader;
92
+
93
+ let mut loader = Loader::new();
94
+ loader.configure_language("rust", tree_sitter_rust::language())?;
95
+ ```
96
+
97
+ ### 2. Enhanced Entity Extraction
98
+
99
+ Once tree-sitter is integrated:
100
+
101
+ 1. **Generic Parameter Extraction**
102
+ - Extract type parameters with bounds
103
+ - Handle lifetime parameters
104
+ - Track where clauses
105
+
106
+ 2. **Method Extraction in Impl Blocks**
107
+ - Extract methods from impl blocks
108
+ - Associate methods with their types
109
+ - Handle trait method implementations
110
+
111
+ 3. **Attribute Extraction**
112
+ - Parse derive macros
113
+ - Extract custom attributes
114
+ - Handle conditionals (`#[cfg(...)]`)
115
+
116
+ 4. **Module System**
117
+ - Track module declarations
118
+ - Handle module visibility
119
+ - Extract mod hierarchy
120
+
121
+ ### 3. Reference Resolution
122
+
123
+ 1. **Cross-file References**
124
+ - Track imports and exports
125
+ - Resolve fully qualified paths
126
+ - Handle crate references
127
+
128
+ 2. **Type Resolution**
129
+ - Build type maps
130
+ - Track type aliases
131
+ - Resolve generic instantiations
132
+
133
+ 3. **Call Graph Construction**
134
+ - Map function calls to definitions
135
+ - Handle trait method calls
136
+ - Track closures and async functions
137
+
138
+ ## Usage Example
139
+
140
+ ```rust
141
+ use local_ruvector::extractors::create_rust_extractor;
142
+
143
+ let mut extractor = create_rust_extractor()?;
144
+ let source = r#"
145
+ pub fn add(a: i32, b: i32) -> i32 {
146
+ a + b
147
+ }
148
+ "#;
149
+
150
+ let result = extractor.extract("example.rs", source)?;
151
+ println!("Found {} entities", result.entities.len());
152
+ println!("Found {} references", result.references.len());
153
+ ```
154
+
155
+ ## Testing
156
+
157
+ The implementation includes comprehensive tests:
158
+
159
+ 1. **Unit Tests** (`tests/test_rust_extractor.rs`)
160
+ - Basic extraction functionality
161
+ - Complex code patterns
162
+ - Error handling
163
+
164
+ 2. **Example** (`examples/rust_ast_extractor_demo.rs`)
165
+ - Demonstrates full extraction workflow
166
+ - Shows entity and reference output
167
+
168
+ ## Integration with RuVector
169
+
170
+ Once complete, the extractor will integrate with:
171
+
172
+ 1. **Indexing Pipeline**
173
+ - Extract entities during file scanning
174
+ - Store in SQLite database
175
+ - Generate embeddings for semantic search
176
+
177
+ 2. **Search Engine**
178
+ - Enable entity-based queries
179
+ - Support reference traversal
180
+ - Provide code intelligence features
181
+
182
+ 3. **CLI Commands**
183
+ - `index`: Extract and store entities
184
+ - `query`: Search extracted entities
185
+ - `analyze`: Generate code metrics
186
+
187
+ ## Performance Considerations
188
+
189
+ 1. **Incremental Parsing**
190
+ - Only reparse changed files
191
+ - Cache parse trees
192
+ - Parallel processing
193
+
194
+ 2. **Memory Optimization**
195
+ - Stream large files
196
+ - Limit node traversal depth
197
+ - Reuse tree-sitter parsers
198
+
199
+ 3. **Database Indexing**
200
+ - Index entity fields
201
+ - Optimize reference lookups
202
+ - Compress metadata
203
+
204
+ ## File Locations
205
+
206
+ - Core extractor: `/mnt/c/Users/masha/Documents/claude-flow-novice/.claude/skills/cfn-local-ruvector-accelerator/src/extractors/rust.rs`
207
+ - Module definitions: `/mnt/c/Users/masha/Documents/claude-flow-novice/.claude/skills/cfn-local-ruvector-accelerator/src/extractors/mod.rs`
208
+ - Tests: `/mnt/c/Users/masha/Documents/claude-flow-novice/.claude/skills/cfn-local-ruvector-accelerator/tests/test_rust_extractor.rs`
209
+ - Example: `/mnt/c/Users/masha/Documents/claude-flow-novice/.claude/skills/cfn-local-ruvector-accelerator/examples/rust_ast_extractor_demo.rs`
210
+
211
+ ## Confidence Score
212
+
213
+ **Current Implementation: 0.75**
214
+
215
+ - ✅ Complete structure and scaffolding
216
+ - ✅ All entity types defined
217
+ - ✅ Reference extraction logic
218
+ - ⚠️ Tree-sitter integration pending
219
+ - ⚠️ Generic handling needs refinement
220
+ - ⚠️ Cross-file reference resolution TBD
221
+
222
+ Once tree-sitter-rust is properly integrated and tests pass, confidence score will be **0.95**.
@@ -0,0 +1,241 @@
1
+ # Transaction Management in AST-Aware RuVector Accelerator
2
+
3
+ ## Overview
4
+
5
+ This document describes the transaction management improvements implemented to ensure data integrity during multi-step database operations.
6
+
7
+ ## Problem Statement
8
+
9
+ The original code lacked proper transaction management for:
10
+ - Batch entity insertions
11
+ - File indexing operations
12
+ - Schema migrations
13
+ - Multi-table updates
14
+
15
+ This could lead to:
16
+ - Partial updates and data corruption
17
+ - Inconsistent database state
18
+ - Difficulty recovering from errors
19
+
20
+ ## Solution Architecture
21
+
22
+ ### 1. Transaction-Aware Storage Layer (`store_v2_tx.rs`)
23
+
24
+ Created a new transaction-aware storage layer that provides:
25
+ - Batch operations with automatic transaction wrapping
26
+ - Atomic file indexing
27
+ - Schema migration support with rollback
28
+ - Proper error handling with context
29
+
30
+ #### Key Features:
31
+
32
+ ```rust
33
+ // Batch insert with automatic transaction
34
+ let ids = store.insert_entities_batch(&entities)?;
35
+
36
+ // Atomic file indexing - all or nothing
37
+ store.index_file_atomic(file_path, file_hash, |tx| {
38
+ // All operations within this closure are atomic
39
+ // If an error occurs, everything rolls back
40
+ insert_entities(tx)?;
41
+ insert_references(tx)?;
42
+ insert_embeddings(tx)?;
43
+ Ok(())
44
+ })?;
45
+
46
+ // Atomic schema migration
47
+ store.migrate_schema_atomic("migration_name", |tx| {
48
+ // Migration logic
49
+ Ok(())
50
+ })?;
51
+ ```
52
+
53
+ ### 2. Enhanced File Indexing (`index_ast.rs`)
54
+
55
+ Modified the AST indexing process to use transactions:
56
+
57
+ - All entities, references, and embeddings for a file are inserted atomically
58
+ - Previous data for a file is cleared before inserting new data
59
+ - File hash tracking ensures incremental indexing works correctly
60
+
61
+ ```rust
62
+ // Original approach - vulnerable to partial updates
63
+ for entity in entities {
64
+ store.insert_entity(entity)?; // Each call is separate
65
+ }
66
+
67
+ // New approach - atomic
68
+ store.index_file_atomic(&file_path, &file_hash, |tx| {
69
+ // All operations in a single transaction
70
+ for entity in entities {
71
+ insert_entity_in_tx(tx, entity)?;
72
+ }
73
+ Ok(())
74
+ })?;
75
+ ```
76
+
77
+ ### 3. Robust Migration System (`migration_tx.rs`)
78
+
79
+ Implemented a new migration system with:
80
+
81
+ - Savepoint-based transactions for nested operations
82
+ - Batch processing to avoid long-running transactions
83
+ - Progress tracking and error reporting
84
+ - Automatic rollback on failures
85
+ - Migration validation
86
+
87
+ ```rust
88
+ // Atomic migration with validation
89
+ MigrationWithTx::migrate_v1_to_v2_atomic(&conn)?;
90
+ MigrationWithTx::validate_migration(&conn)?;
91
+ ```
92
+
93
+ ## Implementation Details
94
+
95
+ ### Transaction Patterns
96
+
97
+ 1. **Simple Transaction**
98
+ ```rust
99
+ let tx = conn.transaction()?;
100
+ // ... operations ...
101
+ tx.commit()?;
102
+ ```
103
+
104
+ 2. **Savepoint for Nested Operations**
105
+ ```rust
106
+ let sp = conn.savepoint()?;
107
+ // ... operations ...
108
+ sp.commit()?; // or sp.rollback()?
109
+ ```
110
+
111
+ 3. **Atomic Operation Pattern**
112
+ ```rust
113
+ fn atomic_operation<F>(&self, f: F) -> Result<()>
114
+ where F: FnOnce(&Transaction) -> Result<()>
115
+ {
116
+ let tx = self.transaction()?;
117
+ f(&tx)?; // May fail
118
+ tx.commit()?; // Only commits if f succeeds
119
+ Ok(())
120
+ }
121
+ ```
122
+
123
+ ### Error Handling Strategy
124
+
125
+ 1. **Context Preservation**
126
+ - All errors include context about what operation failed
127
+ - Uses `anyhow::Context` for chainable error messages
128
+
129
+ 2. **Automatic Rollback**
130
+ - Dropping a transaction without commit triggers rollback
131
+ - Savepoints can be explicitly rolled back
132
+
133
+ 3. **Batch Processing**
134
+ - Large operations are split into batches
135
+ - Each batch is a separate transaction
136
+ - Partial progress is preserved
137
+
138
+ ### Performance Considerations
139
+
140
+ 1. **Statement Preparation**
141
+ - Prepared statements are reused within transactions
142
+ - Reduces parsing overhead
143
+
144
+ 2. **Batch Size**
145
+ - Configurable batch sizes prevent long-running transactions
146
+ - Default batch size: 1000 for migrations, 100 for file indexing
147
+
148
+ 3. **Connection Pooling**
149
+ - WAL mode enables concurrent readers
150
+ - Memory-mapped I/O for better performance
151
+
152
+ ## Usage Examples
153
+
154
+ ### Indexing a File with Transactions
155
+
156
+ ```rust
157
+ let store = StoreV2WithTx::new(&db_path)?;
158
+
159
+ // All operations for the file are atomic
160
+ let result = store.index_file_atomic("src/main.rs", "hash123", |tx| {
161
+ // Clear existing data for this file
162
+ tx.execute("DELETE FROM entities WHERE file_path = ?", ["src/main.rs"])?;
163
+
164
+ // Insert new entities
165
+ for entity in entities {
166
+ insert_entity(tx, entity)?;
167
+ }
168
+
169
+ // Insert references
170
+ for reference in references {
171
+ insert_reference(tx, reference)?;
172
+ }
173
+
174
+ // Update file hash
175
+ tx.execute(
176
+ "INSERT OR REPLACE INTO file_hashes (file_path, file_hash) VALUES (?, ?)",
177
+ ["src/main.rs", "hash123"]
178
+ )?;
179
+
180
+ Ok(())
181
+ })?;
182
+
183
+ // If any operation failed, everything rolls back
184
+ ```
185
+
186
+ ### Migration with Validation
187
+
188
+ ```rust
189
+ // Migrate with automatic rollback on errors
190
+ match MigrationWithTx::migrate_v1_to_v2_atomic(&conn) {
191
+ Ok(()) => {
192
+ // Validate migration was successful
193
+ MigrationWithTx::validate_migration(&conn)?;
194
+ println!("Migration completed successfully");
195
+ }
196
+ Err(e) => {
197
+ eprintln!("Migration failed: {}", e);
198
+ // Database remains in original state
199
+ }
200
+ }
201
+ ```
202
+
203
+ ## Testing
204
+
205
+ Comprehensive tests verify:
206
+ - Atomic operations rollback on errors
207
+ - Transaction isolation works correctly
208
+ - Batch operations maintain consistency
209
+ - Migration rollback preserves original data
210
+ - Concurrent access patterns
211
+
212
+ Run tests with:
213
+ ```bash
214
+ cargo test transaction
215
+ ```
216
+
217
+ ## Best Practices
218
+
219
+ 1. **Always use transactions for multi-step operations**
220
+ 2. **Keep transactions as short as possible**
221
+ 3. **Use savepoints for nested operations**
222
+ 4. **Provide meaningful error context**
223
+ 5. **Validate after complex operations**
224
+
225
+ ## Migration Checklist
226
+
227
+ When updating existing code to use transactions:
228
+
229
+ 1. Identify multi-step operations
230
+ 2. Wrap them in transactions or atomic operations
231
+ 3. Test rollback behavior
232
+ 4. Add error context
233
+ 5. Consider batch processing for large operations
234
+
235
+ ## Future Improvements
236
+
237
+ 1. **Distributed Transactions**: Support for multiple database files
238
+ 2. **Transaction Logging**: Detailed logging of transaction boundaries
239
+ 3. **Performance Monitoring**: Track transaction durations
240
+ 4. **Deadlock Detection**: Automatic detection and resolution
241
+ 5. **Async Support**: Async transaction operations for better concurrency