specmem-hardwicksoftware 3.5.99

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 (1473) hide show
  1. package/CHANGELOG.md +299 -0
  2. package/LICENSE.md +6406 -0
  3. package/README.md +539 -0
  4. package/bin/AegisTheme.cjs +1022 -0
  5. package/bin/AnsiRenderer.cjs +1055 -0
  6. package/bin/BoxRenderer.cjs +605 -0
  7. package/bin/ClaudeLiveScreen.cjs +1299 -0
  8. package/bin/DashboardModules.cjs +733 -0
  9. package/bin/LiveScreenCapture.cjs +1012 -0
  10. package/bin/MemoryBrowserScreen.cjs +1595 -0
  11. package/bin/TabManager.cjs +1414 -0
  12. package/bin/checkAgentStatus-fix.patch +30 -0
  13. package/bin/mcp-socket-client.cjs +462 -0
  14. package/bin/screen-utils.cjs +106 -0
  15. package/bin/specmem-autoclaude.cjs +663 -0
  16. package/bin/specmem-cleanup.cjs +421 -0
  17. package/bin/specmem-cli.cjs +794 -0
  18. package/bin/specmem-console-teamcomms-class.cjs +428 -0
  19. package/bin/specmem-console.cjs +8104 -0
  20. package/bin/specmem-statusbar.cjs +530 -0
  21. package/bootstrap.cjs +5065 -0
  22. package/claude-hooks/agent-chooser-hook.js +179 -0
  23. package/claude-hooks/agent-chooser-inject.js +121 -0
  24. package/claude-hooks/agent-loading-hook.js +990 -0
  25. package/claude-hooks/agent-output-fader.cjs +542 -0
  26. package/claude-hooks/agent-output-interceptor.js +193 -0
  27. package/claude-hooks/agent-type-matcher.js +419 -0
  28. package/claude-hooks/auto-bypass.py +74 -0
  29. package/claude-hooks/background-completion-silencer.js +134 -0
  30. package/claude-hooks/bash-auto-background.js +182 -0
  31. package/claude-hooks/build-cedict-dictionary.mjs +167 -0
  32. package/claude-hooks/bullshit-radar.cjs +323 -0
  33. package/claude-hooks/cedict-codes.json +270 -0
  34. package/claude-hooks/cedict-extracted.json +22632 -0
  35. package/claude-hooks/claude-watchdog.sh +401 -0
  36. package/claude-hooks/context-dedup.cjs +144 -0
  37. package/claude-hooks/context-yeeter.cjs +244 -0
  38. package/claude-hooks/debug-suffix.cjs +15 -0
  39. package/claude-hooks/debug2.cjs +7 -0
  40. package/claude-hooks/drilldown-enforcer.js +242 -0
  41. package/claude-hooks/english-morphology-standalone.cjs +149 -0
  42. package/claude-hooks/english-morphology.cjs +152 -0
  43. package/claude-hooks/extract-translations.mjs +193 -0
  44. package/claude-hooks/file-claim-enforcer.cjs +293 -0
  45. package/claude-hooks/file-claim-enforcer.js +293 -0
  46. package/claude-hooks/find-collisions.cjs +39 -0
  47. package/claude-hooks/fix-abbreviations.cjs +60 -0
  48. package/claude-hooks/fix-collisions.cjs +60 -0
  49. package/claude-hooks/fix-decompressor.cjs +79 -0
  50. package/claude-hooks/fix-suffixes.cjs +66 -0
  51. package/claude-hooks/grammar-engine.cjs +159 -0
  52. package/claude-hooks/input-aware-improver.js +231 -0
  53. package/claude-hooks/is-agent.cjs +64 -0
  54. package/claude-hooks/mega-test.cjs +213 -0
  55. package/claude-hooks/merge-dictionaries.mjs +207 -0
  56. package/claude-hooks/merged-codes.cjs +22675 -0
  57. package/claude-hooks/merged-codes.json +22676 -0
  58. package/claude-hooks/output-cleaner.cjs +388 -0
  59. package/claude-hooks/post-write-memory-hook.cjs +430 -0
  60. package/claude-hooks/quick-test.cjs +24 -0
  61. package/claude-hooks/quick-test2.cjs +24 -0
  62. package/claude-hooks/remove-bad-codes.cjs +23 -0
  63. package/claude-hooks/search-reminder-hook.js +90 -0
  64. package/claude-hooks/semantic-test.cjs +93 -0
  65. package/claude-hooks/settings.json +445 -0
  66. package/claude-hooks/smart-context-hook.cjs +547 -0
  67. package/claude-hooks/smart-context-hook.js +539 -0
  68. package/claude-hooks/smart-search-interceptor.js +364 -0
  69. package/claude-hooks/socket-connect-helper.cjs +235 -0
  70. package/claude-hooks/specmem/sockets/session-start.lock +1 -0
  71. package/claude-hooks/specmem-context-hook.cjs +357 -0
  72. package/claude-hooks/specmem-context-hook.js +357 -0
  73. package/claude-hooks/specmem-drilldown-hook.cjs +480 -0
  74. package/claude-hooks/specmem-drilldown-hook.js +480 -0
  75. package/claude-hooks/specmem-drilldown-setter.js +210 -0
  76. package/claude-hooks/specmem-paths.cjs +213 -0
  77. package/claude-hooks/specmem-precompact.js +183 -0
  78. package/claude-hooks/specmem-session-init.sh +33 -0
  79. package/claude-hooks/specmem-session-start.cjs +498 -0
  80. package/claude-hooks/specmem-stop-hook.cjs +73 -0
  81. package/claude-hooks/specmem-stop-hook.js +5 -0
  82. package/claude-hooks/specmem-team-comms.cjs +434 -0
  83. package/claude-hooks/specmem-team-member-inject.js +271 -0
  84. package/claude-hooks/specmem-unified-hook.py +670 -0
  85. package/claude-hooks/subagent-loading-hook.js +194 -0
  86. package/claude-hooks/sysprompt-squisher.cjs +167 -0
  87. package/claude-hooks/task-progress-hook.js +204 -0
  88. package/claude-hooks/team-comms-enforcer.cjs +585 -0
  89. package/claude-hooks/test-accuracy.cjs +27 -0
  90. package/claude-hooks/test-big.cjs +28 -0
  91. package/claude-hooks/test-inflectors.cjs +39 -0
  92. package/claude-hooks/test-pluralize.cjs +37 -0
  93. package/claude-hooks/test-quick.cjs +8 -0
  94. package/claude-hooks/test-wink.cjs +20 -0
  95. package/claude-hooks/token-compressor.cjs +940 -0
  96. package/claude-hooks/use-code-pointers.cjs +279 -0
  97. package/commands/COMMAND_TOOL_MAP.md +299 -0
  98. package/commands/specmem-agents.md +412 -0
  99. package/commands/specmem-autoclaude.md +295 -0
  100. package/commands/specmem-changes.md +247 -0
  101. package/commands/specmem-code.md +103 -0
  102. package/commands/specmem-configteammembercomms.md +322 -0
  103. package/commands/specmem-drilldown.md +208 -0
  104. package/commands/specmem-find.md +195 -0
  105. package/commands/specmem-getdashboard.md +243 -0
  106. package/commands/specmem-hooks.md +219 -0
  107. package/commands/specmem-pointers.md +149 -0
  108. package/commands/specmem-progress.md +287 -0
  109. package/commands/specmem-remember.md +123 -0
  110. package/commands/specmem-service.md +349 -0
  111. package/commands/specmem-stats.md +189 -0
  112. package/commands/specmem-team-member.md +409 -0
  113. package/commands/specmem-webdev.md +583 -0
  114. package/commands/specmem.md +363 -0
  115. package/dist/autoStart/index.d.ts +214 -0
  116. package/dist/autoStart/index.d.ts.map +1 -0
  117. package/dist/autoStart/index.js +883 -0
  118. package/dist/autoStart/index.js.map +1 -0
  119. package/dist/claude-sessions/contextRestorationParser.d.ts +74 -0
  120. package/dist/claude-sessions/contextRestorationParser.d.ts.map +1 -0
  121. package/dist/claude-sessions/contextRestorationParser.js +570 -0
  122. package/dist/claude-sessions/contextRestorationParser.js.map +1 -0
  123. package/dist/claude-sessions/index.d.ts +13 -0
  124. package/dist/claude-sessions/index.d.ts.map +1 -0
  125. package/dist/claude-sessions/index.js +11 -0
  126. package/dist/claude-sessions/index.js.map +1 -0
  127. package/dist/claude-sessions/sessionIntegration.d.ts +48 -0
  128. package/dist/claude-sessions/sessionIntegration.d.ts.map +1 -0
  129. package/dist/claude-sessions/sessionIntegration.js +146 -0
  130. package/dist/claude-sessions/sessionIntegration.js.map +1 -0
  131. package/dist/claude-sessions/sessionParser.d.ts +293 -0
  132. package/dist/claude-sessions/sessionParser.d.ts.map +1 -0
  133. package/dist/claude-sessions/sessionParser.js +1028 -0
  134. package/dist/claude-sessions/sessionParser.js.map +1 -0
  135. package/dist/claude-sessions/sessionWatcher.d.ts +139 -0
  136. package/dist/claude-sessions/sessionWatcher.d.ts.map +1 -0
  137. package/dist/claude-sessions/sessionWatcher.js +722 -0
  138. package/dist/claude-sessions/sessionWatcher.js.map +1 -0
  139. package/dist/cli/deploy-to-claude.d.ts +56 -0
  140. package/dist/cli/deploy-to-claude.d.ts.map +1 -0
  141. package/dist/cli/deploy-to-claude.js +576 -0
  142. package/dist/cli/deploy-to-claude.js.map +1 -0
  143. package/dist/code-explanations/explainCode.d.ts +86 -0
  144. package/dist/code-explanations/explainCode.d.ts.map +1 -0
  145. package/dist/code-explanations/explainCode.js +286 -0
  146. package/dist/code-explanations/explainCode.js.map +1 -0
  147. package/dist/code-explanations/feedback.d.ts +87 -0
  148. package/dist/code-explanations/feedback.d.ts.map +1 -0
  149. package/dist/code-explanations/feedback.js +212 -0
  150. package/dist/code-explanations/feedback.js.map +1 -0
  151. package/dist/code-explanations/getRelatedCode.d.ts +80 -0
  152. package/dist/code-explanations/getRelatedCode.d.ts.map +1 -0
  153. package/dist/code-explanations/getRelatedCode.js +262 -0
  154. package/dist/code-explanations/getRelatedCode.js.map +1 -0
  155. package/dist/code-explanations/index.d.ts +284 -0
  156. package/dist/code-explanations/index.d.ts.map +1 -0
  157. package/dist/code-explanations/index.js +249 -0
  158. package/dist/code-explanations/index.js.map +1 -0
  159. package/dist/code-explanations/linkCodeToPrompt.d.ts +79 -0
  160. package/dist/code-explanations/linkCodeToPrompt.d.ts.map +1 -0
  161. package/dist/code-explanations/linkCodeToPrompt.js +213 -0
  162. package/dist/code-explanations/linkCodeToPrompt.js.map +1 -0
  163. package/dist/code-explanations/recallExplanation.d.ts +88 -0
  164. package/dist/code-explanations/recallExplanation.d.ts.map +1 -0
  165. package/dist/code-explanations/recallExplanation.js +218 -0
  166. package/dist/code-explanations/recallExplanation.js.map +1 -0
  167. package/dist/code-explanations/schema.d.ts +32 -0
  168. package/dist/code-explanations/schema.d.ts.map +1 -0
  169. package/dist/code-explanations/schema.js +221 -0
  170. package/dist/code-explanations/schema.js.map +1 -0
  171. package/dist/code-explanations/semanticSearch.d.ts +75 -0
  172. package/dist/code-explanations/semanticSearch.d.ts.map +1 -0
  173. package/dist/code-explanations/semanticSearch.js +203 -0
  174. package/dist/code-explanations/semanticSearch.js.map +1 -0
  175. package/dist/code-explanations/types.d.ts +328 -0
  176. package/dist/code-explanations/types.d.ts.map +1 -0
  177. package/dist/code-explanations/types.js +122 -0
  178. package/dist/code-explanations/types.js.map +1 -0
  179. package/dist/codebase/codeAnalyzer.d.ts +272 -0
  180. package/dist/codebase/codeAnalyzer.d.ts.map +1 -0
  181. package/dist/codebase/codeAnalyzer.js +1353 -0
  182. package/dist/codebase/codeAnalyzer.js.map +1 -0
  183. package/dist/codebase/codebaseIndexer.d.ts +360 -0
  184. package/dist/codebase/codebaseIndexer.d.ts.map +1 -0
  185. package/dist/codebase/codebaseIndexer.js +1735 -0
  186. package/dist/codebase/codebaseIndexer.js.map +1 -0
  187. package/dist/codebase/codebaseTools.d.ts +853 -0
  188. package/dist/codebase/codebaseTools.d.ts.map +1 -0
  189. package/dist/codebase/codebaseTools.js +1279 -0
  190. package/dist/codebase/codebaseTools.js.map +1 -0
  191. package/dist/codebase/exclusions.d.ts +111 -0
  192. package/dist/codebase/exclusions.d.ts.map +1 -0
  193. package/dist/codebase/exclusions.js +771 -0
  194. package/dist/codebase/exclusions.js.map +1 -0
  195. package/dist/codebase/fileWatcher.d.ts +135 -0
  196. package/dist/codebase/fileWatcher.d.ts.map +1 -0
  197. package/dist/codebase/fileWatcher.js +309 -0
  198. package/dist/codebase/fileWatcher.js.map +1 -0
  199. package/dist/codebase/index.d.ts +33 -0
  200. package/dist/codebase/index.d.ts.map +1 -0
  201. package/dist/codebase/index.js +77 -0
  202. package/dist/codebase/index.js.map +1 -0
  203. package/dist/codebase/ingestion.d.ts +177 -0
  204. package/dist/codebase/ingestion.d.ts.map +1 -0
  205. package/dist/codebase/ingestion.js +690 -0
  206. package/dist/codebase/ingestion.js.map +1 -0
  207. package/dist/codebase/languageDetection.d.ts +75 -0
  208. package/dist/codebase/languageDetection.d.ts.map +1 -0
  209. package/dist/codebase/languageDetection.js +768 -0
  210. package/dist/codebase/languageDetection.js.map +1 -0
  211. package/dist/commands/codebaseCommands.d.ts +101 -0
  212. package/dist/commands/codebaseCommands.d.ts.map +1 -0
  213. package/dist/commands/codebaseCommands.js +911 -0
  214. package/dist/commands/codebaseCommands.js.map +1 -0
  215. package/dist/commands/commandHandler.d.ts +126 -0
  216. package/dist/commands/commandHandler.d.ts.map +1 -0
  217. package/dist/commands/commandHandler.js +296 -0
  218. package/dist/commands/commandHandler.js.map +1 -0
  219. package/dist/commands/commandLoader.d.ts +103 -0
  220. package/dist/commands/commandLoader.d.ts.map +1 -0
  221. package/dist/commands/commandLoader.js +223 -0
  222. package/dist/commands/commandLoader.js.map +1 -0
  223. package/dist/commands/contextCommands.d.ts +83 -0
  224. package/dist/commands/contextCommands.d.ts.map +1 -0
  225. package/dist/commands/contextCommands.js +512 -0
  226. package/dist/commands/contextCommands.js.map +1 -0
  227. package/dist/commands/index.d.ts +24 -0
  228. package/dist/commands/index.d.ts.map +1 -0
  229. package/dist/commands/index.js +28 -0
  230. package/dist/commands/index.js.map +1 -0
  231. package/dist/commands/mcpResources.d.ts +50 -0
  232. package/dist/commands/mcpResources.d.ts.map +1 -0
  233. package/dist/commands/mcpResources.js +372 -0
  234. package/dist/commands/mcpResources.js.map +1 -0
  235. package/dist/commands/memoryCommands.d.ts +74 -0
  236. package/dist/commands/memoryCommands.d.ts.map +1 -0
  237. package/dist/commands/memoryCommands.js +609 -0
  238. package/dist/commands/memoryCommands.js.map +1 -0
  239. package/dist/commands/promptCommands.d.ts +91 -0
  240. package/dist/commands/promptCommands.d.ts.map +1 -0
  241. package/dist/commands/promptCommands.js +801 -0
  242. package/dist/commands/promptCommands.js.map +1 -0
  243. package/dist/commands/teamMemberCommands.d.ts +21 -0
  244. package/dist/commands/teamMemberCommands.d.ts.map +1 -0
  245. package/dist/commands/teamMemberCommands.js +137 -0
  246. package/dist/commands/teamMemberCommands.js.map +1 -0
  247. package/dist/comms/fileCommsTransport.d.ts +91 -0
  248. package/dist/comms/fileCommsTransport.d.ts.map +1 -0
  249. package/dist/comms/fileCommsTransport.js +244 -0
  250. package/dist/comms/fileCommsTransport.js.map +1 -0
  251. package/dist/comms/index.d.ts +7 -0
  252. package/dist/comms/index.d.ts.map +1 -0
  253. package/dist/comms/index.js +7 -0
  254. package/dist/comms/index.js.map +1 -0
  255. package/dist/config/apiKeyDetection.d.ts +41 -0
  256. package/dist/config/apiKeyDetection.d.ts.map +1 -0
  257. package/dist/config/apiKeyDetection.js +211 -0
  258. package/dist/config/apiKeyDetection.js.map +1 -0
  259. package/dist/config/autoConfig.d.ts +188 -0
  260. package/dist/config/autoConfig.d.ts.map +1 -0
  261. package/dist/config/autoConfig.js +850 -0
  262. package/dist/config/autoConfig.js.map +1 -0
  263. package/dist/config/configSync.d.ts +119 -0
  264. package/dist/config/configSync.d.ts.map +1 -0
  265. package/dist/config/configSync.js +878 -0
  266. package/dist/config/configSync.js.map +1 -0
  267. package/dist/config/embeddingTimeouts.d.ts +145 -0
  268. package/dist/config/embeddingTimeouts.d.ts.map +1 -0
  269. package/dist/config/embeddingTimeouts.js +255 -0
  270. package/dist/config/embeddingTimeouts.js.map +1 -0
  271. package/dist/config/index.d.ts +5 -0
  272. package/dist/config/index.d.ts.map +1 -0
  273. package/dist/config/index.js +7 -0
  274. package/dist/config/index.js.map +1 -0
  275. package/dist/config/languageConfig.d.ts +68 -0
  276. package/dist/config/languageConfig.d.ts.map +1 -0
  277. package/dist/config/languageConfig.js +473 -0
  278. package/dist/config/languageConfig.js.map +1 -0
  279. package/dist/config/password.d.ts +145 -0
  280. package/dist/config/password.d.ts.map +1 -0
  281. package/dist/config/password.js +428 -0
  282. package/dist/config/password.js.map +1 -0
  283. package/dist/config.d.ts +338 -0
  284. package/dist/config.d.ts.map +1 -0
  285. package/dist/config.js +1177 -0
  286. package/dist/config.js.map +1 -0
  287. package/dist/consolidation.d.ts +44 -0
  288. package/dist/consolidation.d.ts.map +1 -0
  289. package/dist/consolidation.js +447 -0
  290. package/dist/consolidation.js.map +1 -0
  291. package/dist/constants.d.ts +371 -0
  292. package/dist/constants.d.ts.map +1 -0
  293. package/dist/constants.js +552 -0
  294. package/dist/constants.js.map +1 -0
  295. package/dist/coordination/TeamMemberRegistry.d.ts +192 -0
  296. package/dist/coordination/TeamMemberRegistry.d.ts.map +1 -0
  297. package/dist/coordination/TeamMemberRegistry.js +415 -0
  298. package/dist/coordination/TeamMemberRegistry.js.map +1 -0
  299. package/dist/coordination/events.d.ts +369 -0
  300. package/dist/coordination/events.d.ts.map +1 -0
  301. package/dist/coordination/events.js +232 -0
  302. package/dist/coordination/events.js.map +1 -0
  303. package/dist/coordination/handlers.d.ts +116 -0
  304. package/dist/coordination/handlers.d.ts.map +1 -0
  305. package/dist/coordination/handlers.js +400 -0
  306. package/dist/coordination/handlers.js.map +1 -0
  307. package/dist/coordination/index.d.ts +14 -0
  308. package/dist/coordination/index.d.ts.map +1 -0
  309. package/dist/coordination/index.js +31 -0
  310. package/dist/coordination/index.js.map +1 -0
  311. package/dist/coordination/integration.d.ts +260 -0
  312. package/dist/coordination/integration.d.ts.map +1 -0
  313. package/dist/coordination/integration.js +472 -0
  314. package/dist/coordination/integration.js.map +1 -0
  315. package/dist/coordination/server.d.ts +266 -0
  316. package/dist/coordination/server.d.ts.map +1 -0
  317. package/dist/coordination/server.js +995 -0
  318. package/dist/coordination/server.js.map +1 -0
  319. package/dist/coordination/serviceProvider.d.ts +70 -0
  320. package/dist/coordination/serviceProvider.d.ts.map +1 -0
  321. package/dist/coordination/serviceProvider.js +273 -0
  322. package/dist/coordination/serviceProvider.js.map +1 -0
  323. package/dist/dashboard/api/claudeControl.d.ts +44 -0
  324. package/dist/dashboard/api/claudeControl.d.ts.map +1 -0
  325. package/dist/dashboard/api/claudeControl.js +650 -0
  326. package/dist/dashboard/api/claudeControl.js.map +1 -0
  327. package/dist/dashboard/api/claudeHistory.d.ts +4 -0
  328. package/dist/dashboard/api/claudeHistory.d.ts.map +1 -0
  329. package/dist/dashboard/api/claudeHistory.js +319 -0
  330. package/dist/dashboard/api/claudeHistory.js.map +1 -0
  331. package/dist/dashboard/api/dataExport.d.ts +23 -0
  332. package/dist/dashboard/api/dataExport.d.ts.map +1 -0
  333. package/dist/dashboard/api/dataExport.js +509 -0
  334. package/dist/dashboard/api/dataExport.js.map +1 -0
  335. package/dist/dashboard/api/fileManager.d.ts +39 -0
  336. package/dist/dashboard/api/fileManager.d.ts.map +1 -0
  337. package/dist/dashboard/api/fileManager.js +814 -0
  338. package/dist/dashboard/api/fileManager.js.map +1 -0
  339. package/dist/dashboard/api/hooks.d.ts +16 -0
  340. package/dist/dashboard/api/hooks.d.ts.map +1 -0
  341. package/dist/dashboard/api/hooks.js +342 -0
  342. package/dist/dashboard/api/hooks.js.map +1 -0
  343. package/dist/dashboard/api/hotReload.d.ts +14 -0
  344. package/dist/dashboard/api/hotReload.d.ts.map +1 -0
  345. package/dist/dashboard/api/hotReload.js +219 -0
  346. package/dist/dashboard/api/hotReload.js.map +1 -0
  347. package/dist/dashboard/api/liveSessionStream.d.ts +19 -0
  348. package/dist/dashboard/api/liveSessionStream.d.ts.map +1 -0
  349. package/dist/dashboard/api/liveSessionStream.js +430 -0
  350. package/dist/dashboard/api/liveSessionStream.js.map +1 -0
  351. package/dist/dashboard/api/memoryRecall.d.ts +20 -0
  352. package/dist/dashboard/api/memoryRecall.d.ts.map +1 -0
  353. package/dist/dashboard/api/memoryRecall.js +524 -0
  354. package/dist/dashboard/api/memoryRecall.js.map +1 -0
  355. package/dist/dashboard/api/promptSend.d.ts +33 -0
  356. package/dist/dashboard/api/promptSend.d.ts.map +1 -0
  357. package/dist/dashboard/api/promptSend.js +544 -0
  358. package/dist/dashboard/api/promptSend.js.map +1 -0
  359. package/dist/dashboard/api/settings.d.ts +10 -0
  360. package/dist/dashboard/api/settings.d.ts.map +1 -0
  361. package/dist/dashboard/api/settings.js +656 -0
  362. package/dist/dashboard/api/settings.js.map +1 -0
  363. package/dist/dashboard/api/setup.d.ts +21 -0
  364. package/dist/dashboard/api/setup.d.ts.map +1 -0
  365. package/dist/dashboard/api/setup.js +663 -0
  366. package/dist/dashboard/api/setup.js.map +1 -0
  367. package/dist/dashboard/api/specmemTools.d.ts +14 -0
  368. package/dist/dashboard/api/specmemTools.d.ts.map +1 -0
  369. package/dist/dashboard/api/specmemTools.js +1059 -0
  370. package/dist/dashboard/api/specmemTools.js.map +1 -0
  371. package/dist/dashboard/api/taskTeamMembers.d.ts +8 -0
  372. package/dist/dashboard/api/taskTeamMembers.d.ts.map +1 -0
  373. package/dist/dashboard/api/taskTeamMembers.js +136 -0
  374. package/dist/dashboard/api/taskTeamMembers.js.map +1 -0
  375. package/dist/dashboard/api/teamMemberDeploy.d.ts +15 -0
  376. package/dist/dashboard/api/teamMemberDeploy.d.ts.map +1 -0
  377. package/dist/dashboard/api/teamMemberDeploy.js +421 -0
  378. package/dist/dashboard/api/teamMemberDeploy.js.map +1 -0
  379. package/dist/dashboard/api/teamMemberHistory.d.ts +38 -0
  380. package/dist/dashboard/api/teamMemberHistory.d.ts.map +1 -0
  381. package/dist/dashboard/api/teamMemberHistory.js +583 -0
  382. package/dist/dashboard/api/teamMemberHistory.js.map +1 -0
  383. package/dist/dashboard/api/terminal.d.ts +12 -0
  384. package/dist/dashboard/api/terminal.d.ts.map +1 -0
  385. package/dist/dashboard/api/terminal.js +344 -0
  386. package/dist/dashboard/api/terminal.js.map +1 -0
  387. package/dist/dashboard/api/terminalInject.d.ts +17 -0
  388. package/dist/dashboard/api/terminalInject.d.ts.map +1 -0
  389. package/dist/dashboard/api/terminalInject.js +322 -0
  390. package/dist/dashboard/api/terminalInject.js.map +1 -0
  391. package/dist/dashboard/api/terminalStream.d.ts +12 -0
  392. package/dist/dashboard/api/terminalStream.d.ts.map +1 -0
  393. package/dist/dashboard/api/terminalStream.js +482 -0
  394. package/dist/dashboard/api/terminalStream.js.map +1 -0
  395. package/dist/dashboard/index.d.ts +7 -0
  396. package/dist/dashboard/index.d.ts.map +1 -0
  397. package/dist/dashboard/index.js +7 -0
  398. package/dist/dashboard/index.js.map +1 -0
  399. package/dist/dashboard/ptyStreamer.d.ts +173 -0
  400. package/dist/dashboard/ptyStreamer.d.ts.map +1 -0
  401. package/dist/dashboard/ptyStreamer.js +661 -0
  402. package/dist/dashboard/ptyStreamer.js.map +1 -0
  403. package/dist/dashboard/public/DASHBOARD-README.md +378 -0
  404. package/dist/dashboard/public/INTEGRATION-GUIDE.md +395 -0
  405. package/dist/dashboard/public/codebase-config.html +1247 -0
  406. package/dist/dashboard/public/dashboard-v2.html +1942 -0
  407. package/dist/dashboard/public/data-export.html +819 -0
  408. package/dist/dashboard/public/example-page.html +164 -0
  409. package/dist/dashboard/public/file-explorer.html +1023 -0
  410. package/dist/dashboard/public/hooks.html +1103 -0
  411. package/dist/dashboard/public/index-improvements.css +499 -0
  412. package/dist/dashboard/public/index.html +5534 -0
  413. package/dist/dashboard/public/memory-controls.html +1959 -0
  414. package/dist/dashboard/public/memory-recall.html +1495 -0
  415. package/dist/dashboard/public/previews/skeleton-memory-graph.html +361 -0
  416. package/dist/dashboard/public/previews/skeleton-memory-list.html +366 -0
  417. package/dist/dashboard/public/previews/skeleton-search-results.html +609 -0
  418. package/dist/dashboard/public/previews/skeleton-stats-dashboard.html +556 -0
  419. package/dist/dashboard/public/prompt-console.html +2763 -0
  420. package/dist/dashboard/public/react-dist/assets/index-CkjobT5B.js +871 -0
  421. package/dist/dashboard/public/react-dist/assets/index-iRclxMst.css +1 -0
  422. package/dist/dashboard/public/react-dist/index.html +16 -0
  423. package/dist/dashboard/public/shared-header.js +325 -0
  424. package/dist/dashboard/public/shared-language-selector.js +626 -0
  425. package/dist/dashboard/public/shared-logger.js +66 -0
  426. package/dist/dashboard/public/shared-nav.js +325 -0
  427. package/dist/dashboard/public/shared-theme-blue.css +331 -0
  428. package/dist/dashboard/public/shared-theme.css +813 -0
  429. package/dist/dashboard/public/shared-toast.js +415 -0
  430. package/dist/dashboard/public/team-member-history.html +1291 -0
  431. package/dist/dashboard/public/team-member-spy.html +1199 -0
  432. package/dist/dashboard/public/team-members.html +3756 -0
  433. package/dist/dashboard/public/terminal-output.html +1013 -0
  434. package/dist/dashboard/public/terminal.html +372 -0
  435. package/dist/dashboard/sessionStore.d.ts +86 -0
  436. package/dist/dashboard/sessionStore.d.ts.map +1 -0
  437. package/dist/dashboard/sessionStore.js +262 -0
  438. package/dist/dashboard/sessionStore.js.map +1 -0
  439. package/dist/dashboard/standalone.d.ts +27 -0
  440. package/dist/dashboard/standalone.d.ts.map +1 -0
  441. package/dist/dashboard/standalone.js +380 -0
  442. package/dist/dashboard/standalone.js.map +1 -0
  443. package/dist/dashboard/webServer.d.ts +390 -0
  444. package/dist/dashboard/webServer.d.ts.map +1 -0
  445. package/dist/dashboard/webServer.js +4297 -0
  446. package/dist/dashboard/webServer.js.map +1 -0
  447. package/dist/dashboard/websocket/teamMemberStream.d.ts +87 -0
  448. package/dist/dashboard/websocket/teamMemberStream.d.ts.map +1 -0
  449. package/dist/dashboard/websocket/teamMemberStream.js +366 -0
  450. package/dist/dashboard/websocket/teamMemberStream.js.map +1 -0
  451. package/dist/dashboard/websocket/terminalStream.d.ts +130 -0
  452. package/dist/dashboard/websocket/terminalStream.d.ts.map +1 -0
  453. package/dist/dashboard/websocket/terminalStream.js +456 -0
  454. package/dist/dashboard/websocket/terminalStream.js.map +1 -0
  455. package/dist/database/embeddedPostgres.d.ts +187 -0
  456. package/dist/database/embeddedPostgres.d.ts.map +1 -0
  457. package/dist/database/embeddedPostgres.js +763 -0
  458. package/dist/database/embeddedPostgres.js.map +1 -0
  459. package/dist/database/index.d.ts +12 -0
  460. package/dist/database/index.d.ts.map +1 -0
  461. package/dist/database/index.js +20 -0
  462. package/dist/database/index.js.map +1 -0
  463. package/dist/database/initEmbeddedPostgres.d.ts +124 -0
  464. package/dist/database/initEmbeddedPostgres.d.ts.map +1 -0
  465. package/dist/database/initEmbeddedPostgres.js +855 -0
  466. package/dist/database/initEmbeddedPostgres.js.map +1 -0
  467. package/dist/database.d.ts +256 -0
  468. package/dist/database.d.ts.map +1 -0
  469. package/dist/database.js +1209 -0
  470. package/dist/database.js.map +1 -0
  471. package/dist/db/apiDataManager.d.ts +334 -0
  472. package/dist/db/apiDataManager.d.ts.map +1 -0
  473. package/dist/db/apiDataManager.js +631 -0
  474. package/dist/db/apiDataManager.js.map +1 -0
  475. package/dist/db/batchOperations.d.ts +154 -0
  476. package/dist/db/batchOperations.d.ts.map +1 -0
  477. package/dist/db/batchOperations.js +564 -0
  478. package/dist/db/batchOperations.js.map +1 -0
  479. package/dist/db/bigBrainMigrations.d.ts +48 -0
  480. package/dist/db/bigBrainMigrations.d.ts.map +1 -0
  481. package/dist/db/bigBrainMigrations.js +4266 -0
  482. package/dist/db/bigBrainMigrations.js.map +1 -0
  483. package/dist/db/connectionPoolGoBrrr.d.ts +94 -0
  484. package/dist/db/connectionPoolGoBrrr.d.ts.map +1 -0
  485. package/dist/db/connectionPoolGoBrrr.js +548 -0
  486. package/dist/db/connectionPoolGoBrrr.js.map +1 -0
  487. package/dist/db/dashboardQueries.d.ts +182 -0
  488. package/dist/db/dashboardQueries.d.ts.map +1 -0
  489. package/dist/db/dashboardQueries.js +821 -0
  490. package/dist/db/dashboardQueries.js.map +1 -0
  491. package/dist/db/deploymentBootstrap.d.ts +43 -0
  492. package/dist/db/deploymentBootstrap.d.ts.map +1 -0
  493. package/dist/db/deploymentBootstrap.js +329 -0
  494. package/dist/db/deploymentBootstrap.js.map +1 -0
  495. package/dist/db/dimensionService.d.ts +140 -0
  496. package/dist/db/dimensionService.d.ts.map +1 -0
  497. package/dist/db/dimensionService.js +261 -0
  498. package/dist/db/dimensionService.js.map +1 -0
  499. package/dist/db/embeddingOverflow.d.ts +69 -0
  500. package/dist/db/embeddingOverflow.d.ts.map +1 -0
  501. package/dist/db/embeddingOverflow.js +332 -0
  502. package/dist/db/embeddingOverflow.js.map +1 -0
  503. package/dist/db/embeddingOverflow.sql +221 -0
  504. package/dist/db/findThatShit.d.ts +145 -0
  505. package/dist/db/findThatShit.d.ts.map +1 -0
  506. package/dist/db/findThatShit.js +782 -0
  507. package/dist/db/findThatShit.js.map +1 -0
  508. package/dist/db/hotPathManager.d.ts +187 -0
  509. package/dist/db/hotPathManager.d.ts.map +1 -0
  510. package/dist/db/hotPathManager.js +504 -0
  511. package/dist/db/hotPathManager.js.map +1 -0
  512. package/dist/db/index.d.ts +85 -0
  513. package/dist/db/index.d.ts.map +1 -0
  514. package/dist/db/index.js +219 -0
  515. package/dist/db/index.js.map +1 -0
  516. package/dist/db/memoryDrilldown.sql +99 -0
  517. package/dist/db/migrate.d.ts +3 -0
  518. package/dist/db/migrate.d.ts.map +1 -0
  519. package/dist/db/migrate.js +97 -0
  520. package/dist/db/migrate.js.map +1 -0
  521. package/dist/db/migrateJsonToPostgres.d.ts +43 -0
  522. package/dist/db/migrateJsonToPostgres.d.ts.map +1 -0
  523. package/dist/db/migrateJsonToPostgres.js +465 -0
  524. package/dist/db/migrateJsonToPostgres.js.map +1 -0
  525. package/dist/db/nukeFromOrbit.d.ts +63 -0
  526. package/dist/db/nukeFromOrbit.d.ts.map +1 -0
  527. package/dist/db/nukeFromOrbit.js +499 -0
  528. package/dist/db/nukeFromOrbit.js.map +1 -0
  529. package/dist/db/processedTraining.sql +60 -0
  530. package/dist/db/projectNamespacing.d.ts +258 -0
  531. package/dist/db/projectNamespacing.d.ts.map +1 -0
  532. package/dist/db/projectNamespacing.js +920 -0
  533. package/dist/db/projectNamespacing.js.map +1 -0
  534. package/dist/db/projectNamespacing.sql +374 -0
  535. package/dist/db/projectSchemaInit.sql +271 -0
  536. package/dist/db/spatialMemory.d.ts +296 -0
  537. package/dist/db/spatialMemory.d.ts.map +1 -0
  538. package/dist/db/spatialMemory.js +818 -0
  539. package/dist/db/spatialMemory.js.map +1 -0
  540. package/dist/db/streamingQuery.d.ts +143 -0
  541. package/dist/db/streamingQuery.d.ts.map +1 -0
  542. package/dist/db/streamingQuery.js +350 -0
  543. package/dist/db/streamingQuery.js.map +1 -0
  544. package/dist/db/teamComms.sql +224 -0
  545. package/dist/db/yeetStuffInDb.d.ts +72 -0
  546. package/dist/db/yeetStuffInDb.d.ts.map +1 -0
  547. package/dist/db/yeetStuffInDb.js +473 -0
  548. package/dist/db/yeetStuffInDb.js.map +1 -0
  549. package/dist/embedding-providers/index.d.ts +10 -0
  550. package/dist/embedding-providers/index.d.ts.map +1 -0
  551. package/dist/embedding-providers/index.js +12 -0
  552. package/dist/embedding-providers/index.js.map +1 -0
  553. package/dist/embeddings/projectionLayer.d.ts +114 -0
  554. package/dist/embeddings/projectionLayer.d.ts.map +1 -0
  555. package/dist/embeddings/projectionLayer.js +345 -0
  556. package/dist/embeddings/projectionLayer.js.map +1 -0
  557. package/dist/events/Publisher.d.ts +193 -0
  558. package/dist/events/Publisher.d.ts.map +1 -0
  559. package/dist/events/Publisher.js +439 -0
  560. package/dist/events/Publisher.js.map +1 -0
  561. package/dist/events/config.d.ts +139 -0
  562. package/dist/events/config.d.ts.map +1 -0
  563. package/dist/events/config.js +266 -0
  564. package/dist/events/config.js.map +1 -0
  565. package/dist/events/index.d.ts +19 -0
  566. package/dist/events/index.d.ts.map +1 -0
  567. package/dist/events/index.js +31 -0
  568. package/dist/events/index.js.map +1 -0
  569. package/dist/events/integration.d.ts +206 -0
  570. package/dist/events/integration.d.ts.map +1 -0
  571. package/dist/events/integration.js +348 -0
  572. package/dist/events/integration.js.map +1 -0
  573. package/dist/events/metrics.d.ts +147 -0
  574. package/dist/events/metrics.d.ts.map +1 -0
  575. package/dist/events/metrics.js +343 -0
  576. package/dist/events/metrics.js.map +1 -0
  577. package/dist/hooks/cli.d.ts +28 -0
  578. package/dist/hooks/cli.d.ts.map +1 -0
  579. package/dist/hooks/cli.js +118 -0
  580. package/dist/hooks/cli.js.map +1 -0
  581. package/dist/hooks/contextInjectionHook.d.ts +60 -0
  582. package/dist/hooks/contextInjectionHook.d.ts.map +1 -0
  583. package/dist/hooks/contextInjectionHook.js +294 -0
  584. package/dist/hooks/contextInjectionHook.js.map +1 -0
  585. package/dist/hooks/drilldownHook.d.ts +125 -0
  586. package/dist/hooks/drilldownHook.d.ts.map +1 -0
  587. package/dist/hooks/drilldownHook.js +181 -0
  588. package/dist/hooks/drilldownHook.js.map +1 -0
  589. package/dist/hooks/hookManager.d.ts +180 -0
  590. package/dist/hooks/hookManager.d.ts.map +1 -0
  591. package/dist/hooks/hookManager.js +782 -0
  592. package/dist/hooks/hookManager.js.map +1 -0
  593. package/dist/hooks/index.d.ts +62 -0
  594. package/dist/hooks/index.d.ts.map +1 -0
  595. package/dist/hooks/index.js +66 -0
  596. package/dist/hooks/index.js.map +1 -0
  597. package/dist/hooks/lowContextHook.d.ts +71 -0
  598. package/dist/hooks/lowContextHook.d.ts.map +1 -0
  599. package/dist/hooks/lowContextHook.js +258 -0
  600. package/dist/hooks/lowContextHook.js.map +1 -0
  601. package/dist/hooks/simpleContextHook.d.ts +65 -0
  602. package/dist/hooks/simpleContextHook.d.ts.map +1 -0
  603. package/dist/hooks/simpleContextHook.js +194 -0
  604. package/dist/hooks/simpleContextHook.js.map +1 -0
  605. package/dist/hooks/teamFramingCli.d.ts +56 -0
  606. package/dist/hooks/teamFramingCli.d.ts.map +1 -0
  607. package/dist/hooks/teamFramingCli.js +264 -0
  608. package/dist/hooks/teamFramingCli.js.map +1 -0
  609. package/dist/hooks/teamMemberPrepromptHook.d.ts +150 -0
  610. package/dist/hooks/teamMemberPrepromptHook.d.ts.map +1 -0
  611. package/dist/hooks/teamMemberPrepromptHook.js +308 -0
  612. package/dist/hooks/teamMemberPrepromptHook.js.map +1 -0
  613. package/dist/index.d.ts +42 -0
  614. package/dist/index.d.ts.map +1 -0
  615. package/dist/index.js +4433 -0
  616. package/dist/index.js.map +1 -0
  617. package/dist/init/claudeConfigInjector.d.ts +116 -0
  618. package/dist/init/claudeConfigInjector.d.ts.map +1 -0
  619. package/dist/init/claudeConfigInjector.js +1154 -0
  620. package/dist/init/claudeConfigInjector.js.map +1 -0
  621. package/dist/installer/autoInstall.d.ts +72 -0
  622. package/dist/installer/autoInstall.d.ts.map +1 -0
  623. package/dist/installer/autoInstall.js +617 -0
  624. package/dist/installer/autoInstall.js.map +1 -0
  625. package/dist/installer/dbSetup.d.ts +84 -0
  626. package/dist/installer/dbSetup.d.ts.map +1 -0
  627. package/dist/installer/dbSetup.js +350 -0
  628. package/dist/installer/dbSetup.js.map +1 -0
  629. package/dist/installer/firstRun.d.ts +49 -0
  630. package/dist/installer/firstRun.d.ts.map +1 -0
  631. package/dist/installer/firstRun.js +207 -0
  632. package/dist/installer/firstRun.js.map +1 -0
  633. package/dist/installer/index.d.ts +10 -0
  634. package/dist/installer/index.d.ts.map +1 -0
  635. package/dist/installer/index.js +10 -0
  636. package/dist/installer/index.js.map +1 -0
  637. package/dist/installer/silentAutoInstall.d.ts +99 -0
  638. package/dist/installer/silentAutoInstall.d.ts.map +1 -0
  639. package/dist/installer/silentAutoInstall.js +491 -0
  640. package/dist/installer/silentAutoInstall.js.map +1 -0
  641. package/dist/installer/systemDeps.d.ts +54 -0
  642. package/dist/installer/systemDeps.d.ts.map +1 -0
  643. package/dist/installer/systemDeps.js +322 -0
  644. package/dist/installer/systemDeps.js.map +1 -0
  645. package/dist/mcp/cliNotifications.d.ts +133 -0
  646. package/dist/mcp/cliNotifications.d.ts.map +1 -0
  647. package/dist/mcp/cliNotifications.js +289 -0
  648. package/dist/mcp/cliNotifications.js.map +1 -0
  649. package/dist/mcp/embeddingServerManager.d.ts +307 -0
  650. package/dist/mcp/embeddingServerManager.d.ts.map +1 -0
  651. package/dist/mcp/embeddingServerManager.js +2081 -0
  652. package/dist/mcp/embeddingServerManager.js.map +1 -0
  653. package/dist/mcp/healthMonitor.d.ts +196 -0
  654. package/dist/mcp/healthMonitor.d.ts.map +1 -0
  655. package/dist/mcp/healthMonitor.js +685 -0
  656. package/dist/mcp/healthMonitor.js.map +1 -0
  657. package/dist/mcp/hotReloadManager.d.ts +101 -0
  658. package/dist/mcp/hotReloadManager.d.ts.map +1 -0
  659. package/dist/mcp/hotReloadManager.js +251 -0
  660. package/dist/mcp/hotReloadManager.js.map +1 -0
  661. package/dist/mcp/index.d.ts +16 -0
  662. package/dist/mcp/index.d.ts.map +1 -0
  663. package/dist/mcp/index.js +22 -0
  664. package/dist/mcp/index.js.map +1 -0
  665. package/dist/mcp/mcpProtocolHandler.d.ts +64 -0
  666. package/dist/mcp/mcpProtocolHandler.d.ts.map +1 -0
  667. package/dist/mcp/mcpProtocolHandler.js +253 -0
  668. package/dist/mcp/mcpProtocolHandler.js.map +1 -0
  669. package/dist/mcp/miniCOTServerManager.d.ts +336 -0
  670. package/dist/mcp/miniCOTServerManager.d.ts.map +1 -0
  671. package/dist/mcp/miniCOTServerManager.js +1384 -0
  672. package/dist/mcp/miniCOTServerManager.js.map +1 -0
  673. package/dist/mcp/promptExecutor.d.ts +188 -0
  674. package/dist/mcp/promptExecutor.d.ts.map +1 -0
  675. package/dist/mcp/promptExecutor.js +469 -0
  676. package/dist/mcp/promptExecutor.js.map +1 -0
  677. package/dist/mcp/reloadBroadcast.d.ts +127 -0
  678. package/dist/mcp/reloadBroadcast.d.ts.map +1 -0
  679. package/dist/mcp/reloadBroadcast.js +275 -0
  680. package/dist/mcp/reloadBroadcast.js.map +1 -0
  681. package/dist/mcp/resilientTransport.d.ts +249 -0
  682. package/dist/mcp/resilientTransport.d.ts.map +1 -0
  683. package/dist/mcp/resilientTransport.js +931 -0
  684. package/dist/mcp/resilientTransport.js.map +1 -0
  685. package/dist/mcp/samplingHandler.d.ts +129 -0
  686. package/dist/mcp/samplingHandler.d.ts.map +1 -0
  687. package/dist/mcp/samplingHandler.js +276 -0
  688. package/dist/mcp/samplingHandler.js.map +1 -0
  689. package/dist/mcp/specMemServer.d.ts +305 -0
  690. package/dist/mcp/specMemServer.d.ts.map +1 -0
  691. package/dist/mcp/specMemServer.js +2048 -0
  692. package/dist/mcp/specMemServer.js.map +1 -0
  693. package/dist/mcp/toolRegistry.d.ts +122 -0
  694. package/dist/mcp/toolRegistry.d.ts.map +1 -0
  695. package/dist/mcp/toolRegistry.js +609 -0
  696. package/dist/mcp/toolRegistry.js.map +1 -0
  697. package/dist/mcp/tools/embeddingControl.d.ts +114 -0
  698. package/dist/mcp/tools/embeddingControl.d.ts.map +1 -0
  699. package/dist/mcp/tools/embeddingControl.js +222 -0
  700. package/dist/mcp/tools/embeddingControl.js.map +1 -0
  701. package/dist/mcp/tools/index.d.ts +10 -0
  702. package/dist/mcp/tools/index.d.ts.map +1 -0
  703. package/dist/mcp/tools/index.js +17 -0
  704. package/dist/mcp/tools/index.js.map +1 -0
  705. package/dist/mcp/tools/teamComms.d.ts +444 -0
  706. package/dist/mcp/tools/teamComms.d.ts.map +1 -0
  707. package/dist/mcp/tools/teamComms.js +1953 -0
  708. package/dist/mcp/tools/teamComms.js.map +1 -0
  709. package/dist/mcp/triggerSystem.d.ts +129 -0
  710. package/dist/mcp/triggerSystem.d.ts.map +1 -0
  711. package/dist/mcp/triggerSystem.js +363 -0
  712. package/dist/mcp/triggerSystem.js.map +1 -0
  713. package/dist/mcp/watcherIntegration.d.ts +77 -0
  714. package/dist/mcp/watcherIntegration.d.ts.map +1 -0
  715. package/dist/mcp/watcherIntegration.js +428 -0
  716. package/dist/mcp/watcherIntegration.js.map +1 -0
  717. package/dist/mcp/watcherToolWrappers.d.ts +89 -0
  718. package/dist/mcp/watcherToolWrappers.d.ts.map +1 -0
  719. package/dist/mcp/watcherToolWrappers.js +91 -0
  720. package/dist/mcp/watcherToolWrappers.js.map +1 -0
  721. package/dist/memorization/claudeCodeMigration.d.ts +34 -0
  722. package/dist/memorization/claudeCodeMigration.d.ts.map +1 -0
  723. package/dist/memorization/claudeCodeMigration.js +210 -0
  724. package/dist/memorization/claudeCodeMigration.js.map +1 -0
  725. package/dist/memorization/claudeCodeTracker.d.ts +147 -0
  726. package/dist/memorization/claudeCodeTracker.d.ts.map +1 -0
  727. package/dist/memorization/claudeCodeTracker.js +424 -0
  728. package/dist/memorization/claudeCodeTracker.js.map +1 -0
  729. package/dist/memorization/codeMemorizer.d.ts +158 -0
  730. package/dist/memorization/codeMemorizer.d.ts.map +1 -0
  731. package/dist/memorization/codeMemorizer.js +357 -0
  732. package/dist/memorization/codeMemorizer.js.map +1 -0
  733. package/dist/memorization/codeRecall.d.ts +156 -0
  734. package/dist/memorization/codeRecall.d.ts.map +1 -0
  735. package/dist/memorization/codeRecall.js +499 -0
  736. package/dist/memorization/codeRecall.js.map +1 -0
  737. package/dist/memorization/index.d.ts +55 -0
  738. package/dist/memorization/index.d.ts.map +1 -0
  739. package/dist/memorization/index.js +64 -0
  740. package/dist/memorization/index.js.map +1 -0
  741. package/dist/memorization/memorizationTools.d.ts +413 -0
  742. package/dist/memorization/memorizationTools.d.ts.map +1 -0
  743. package/dist/memorization/memorizationTools.js +513 -0
  744. package/dist/memorization/memorizationTools.js.map +1 -0
  745. package/dist/memorization/watcherIntegration.d.ts +100 -0
  746. package/dist/memorization/watcherIntegration.d.ts.map +1 -0
  747. package/dist/memorization/watcherIntegration.js +196 -0
  748. package/dist/memorization/watcherIntegration.js.map +1 -0
  749. package/dist/memory/humanLikeMemory.d.ts +206 -0
  750. package/dist/memory/humanLikeMemory.d.ts.map +1 -0
  751. package/dist/memory/humanLikeMemory.js +603 -0
  752. package/dist/memory/humanLikeMemory.js.map +1 -0
  753. package/dist/memory/index.d.ts +22 -0
  754. package/dist/memory/index.d.ts.map +1 -0
  755. package/dist/memory/index.js +24 -0
  756. package/dist/memory/index.js.map +1 -0
  757. package/dist/memory/memoryEvolutionMigration.d.ts +36 -0
  758. package/dist/memory/memoryEvolutionMigration.d.ts.map +1 -0
  759. package/dist/memory/memoryEvolutionMigration.js +371 -0
  760. package/dist/memory/memoryEvolutionMigration.js.map +1 -0
  761. package/dist/memory/quadrantSearch.d.ts +221 -0
  762. package/dist/memory/quadrantSearch.d.ts.map +1 -0
  763. package/dist/memory/quadrantSearch.js +897 -0
  764. package/dist/memory/quadrantSearch.js.map +1 -0
  765. package/dist/middleware/apiVersioning.d.ts +83 -0
  766. package/dist/middleware/apiVersioning.d.ts.map +1 -0
  767. package/dist/middleware/apiVersioning.js +152 -0
  768. package/dist/middleware/apiVersioning.js.map +1 -0
  769. package/dist/middleware/compression.d.ts +48 -0
  770. package/dist/middleware/compression.d.ts.map +1 -0
  771. package/dist/middleware/compression.js +240 -0
  772. package/dist/middleware/compression.js.map +1 -0
  773. package/dist/middleware/csrf.d.ts +118 -0
  774. package/dist/middleware/csrf.d.ts.map +1 -0
  775. package/dist/middleware/csrf.js +300 -0
  776. package/dist/middleware/csrf.js.map +1 -0
  777. package/dist/middleware/index.d.ts +13 -0
  778. package/dist/middleware/index.d.ts.map +1 -0
  779. package/dist/middleware/index.js +17 -0
  780. package/dist/middleware/index.js.map +1 -0
  781. package/dist/middleware/wsRateLimiter.d.ts +129 -0
  782. package/dist/middleware/wsRateLimiter.d.ts.map +1 -0
  783. package/dist/middleware/wsRateLimiter.js +279 -0
  784. package/dist/middleware/wsRateLimiter.js.map +1 -0
  785. package/dist/migrations/run.d.ts +2 -0
  786. package/dist/migrations/run.d.ts.map +1 -0
  787. package/dist/migrations/run.js +25 -0
  788. package/dist/migrations/run.js.map +1 -0
  789. package/dist/migrations/syncDimensions.d.ts +24 -0
  790. package/dist/migrations/syncDimensions.d.ts.map +1 -0
  791. package/dist/migrations/syncDimensions.js +140 -0
  792. package/dist/migrations/syncDimensions.js.map +1 -0
  793. package/dist/migrations/teamComms.d.ts +16 -0
  794. package/dist/migrations/teamComms.d.ts.map +1 -0
  795. package/dist/migrations/teamComms.js +210 -0
  796. package/dist/migrations/teamComms.js.map +1 -0
  797. package/dist/openapi/index.d.ts +10 -0
  798. package/dist/openapi/index.d.ts.map +1 -0
  799. package/dist/openapi/index.js +10 -0
  800. package/dist/openapi/index.js.map +1 -0
  801. package/dist/openapi/spec.d.ts +902 -0
  802. package/dist/openapi/spec.d.ts.map +1 -0
  803. package/dist/openapi/spec.js +733 -0
  804. package/dist/openapi/spec.js.map +1 -0
  805. package/dist/packages/dependencyHistory.d.ts +113 -0
  806. package/dist/packages/dependencyHistory.d.ts.map +1 -0
  807. package/dist/packages/dependencyHistory.js +360 -0
  808. package/dist/packages/dependencyHistory.js.map +1 -0
  809. package/dist/packages/index.d.ts +30 -0
  810. package/dist/packages/index.d.ts.map +1 -0
  811. package/dist/packages/index.js +65 -0
  812. package/dist/packages/index.js.map +1 -0
  813. package/dist/packages/packageTools.d.ts +255 -0
  814. package/dist/packages/packageTools.d.ts.map +1 -0
  815. package/dist/packages/packageTools.js +242 -0
  816. package/dist/packages/packageTools.js.map +1 -0
  817. package/dist/packages/packageTracker.d.ts +98 -0
  818. package/dist/packages/packageTracker.d.ts.map +1 -0
  819. package/dist/packages/packageTracker.js +268 -0
  820. package/dist/packages/packageTracker.js.map +1 -0
  821. package/dist/packages/packageWatcher.d.ts +62 -0
  822. package/dist/packages/packageWatcher.d.ts.map +1 -0
  823. package/dist/packages/packageWatcher.js +146 -0
  824. package/dist/packages/packageWatcher.js.map +1 -0
  825. package/dist/providers/MiniCOTProvider.d.ts +48 -0
  826. package/dist/providers/MiniCOTProvider.d.ts.map +1 -0
  827. package/dist/providers/MiniCOTProvider.js +98 -0
  828. package/dist/providers/MiniCOTProvider.js.map +1 -0
  829. package/dist/reminders/index.d.ts +5 -0
  830. package/dist/reminders/index.d.ts.map +1 -0
  831. package/dist/reminders/index.js +5 -0
  832. package/dist/reminders/index.js.map +1 -0
  833. package/dist/reminders/skillReminder.d.ts +131 -0
  834. package/dist/reminders/skillReminder.d.ts.map +1 -0
  835. package/dist/reminders/skillReminder.js +386 -0
  836. package/dist/reminders/skillReminder.js.map +1 -0
  837. package/dist/search.d.ts +35 -0
  838. package/dist/search.d.ts.map +1 -0
  839. package/dist/search.js +574 -0
  840. package/dist/search.js.map +1 -0
  841. package/dist/security/localhostOnly.d.ts +36 -0
  842. package/dist/security/localhostOnly.d.ts.map +1 -0
  843. package/dist/security/localhostOnly.js +101 -0
  844. package/dist/security/localhostOnly.js.map +1 -0
  845. package/dist/services/CameraZoomSearch.d.ts +206 -0
  846. package/dist/services/CameraZoomSearch.d.ts.map +1 -0
  847. package/dist/services/CameraZoomSearch.js +669 -0
  848. package/dist/services/CameraZoomSearch.js.map +1 -0
  849. package/dist/services/DataFlowPipeline.d.ts +111 -0
  850. package/dist/services/DataFlowPipeline.d.ts.map +1 -0
  851. package/dist/services/DataFlowPipeline.js +379 -0
  852. package/dist/services/DataFlowPipeline.js.map +1 -0
  853. package/dist/services/DimensionAdapter.d.ts +194 -0
  854. package/dist/services/DimensionAdapter.d.ts.map +1 -0
  855. package/dist/services/DimensionAdapter.js +566 -0
  856. package/dist/services/DimensionAdapter.js.map +1 -0
  857. package/dist/services/DimensionService.d.ts +252 -0
  858. package/dist/services/DimensionService.d.ts.map +1 -0
  859. package/dist/services/DimensionService.js +564 -0
  860. package/dist/services/DimensionService.js.map +1 -0
  861. package/dist/services/EmbeddingQueue.d.ts +71 -0
  862. package/dist/services/EmbeddingQueue.d.ts.map +1 -0
  863. package/dist/services/EmbeddingQueue.js +258 -0
  864. package/dist/services/EmbeddingQueue.js.map +1 -0
  865. package/dist/services/MemoryDrilldown.d.ts +226 -0
  866. package/dist/services/MemoryDrilldown.d.ts.map +1 -0
  867. package/dist/services/MemoryDrilldown.js +479 -0
  868. package/dist/services/MemoryDrilldown.js.map +1 -0
  869. package/dist/services/MiniCOTScorer.d.ts +140 -0
  870. package/dist/services/MiniCOTScorer.d.ts.map +1 -0
  871. package/dist/services/MiniCOTScorer.js +292 -0
  872. package/dist/services/MiniCOTScorer.js.map +1 -0
  873. package/dist/services/ProjectContext.d.ts +342 -0
  874. package/dist/services/ProjectContext.d.ts.map +1 -0
  875. package/dist/services/ProjectContext.js +667 -0
  876. package/dist/services/ProjectContext.js.map +1 -0
  877. package/dist/services/ResponseCompactor.d.ts +135 -0
  878. package/dist/services/ResponseCompactor.d.ts.map +1 -0
  879. package/dist/services/ResponseCompactor.js +501 -0
  880. package/dist/services/ResponseCompactor.js.map +1 -0
  881. package/dist/services/TeamCommsDbService.d.ts +202 -0
  882. package/dist/services/TeamCommsDbService.d.ts.map +1 -0
  883. package/dist/services/TeamCommsDbService.js +526 -0
  884. package/dist/services/TeamCommsDbService.js.map +1 -0
  885. package/dist/services/UnifiedPasswordService.d.ts +166 -0
  886. package/dist/services/UnifiedPasswordService.d.ts.map +1 -0
  887. package/dist/services/UnifiedPasswordService.js +587 -0
  888. package/dist/services/UnifiedPasswordService.js.map +1 -0
  889. package/dist/services/adaptiveSearchConfig.d.ts +64 -0
  890. package/dist/services/adaptiveSearchConfig.d.ts.map +1 -0
  891. package/dist/services/adaptiveSearchConfig.js +187 -0
  892. package/dist/services/adaptiveSearchConfig.js.map +1 -0
  893. package/dist/skills/index.d.ts +8 -0
  894. package/dist/skills/index.d.ts.map +1 -0
  895. package/dist/skills/index.js +8 -0
  896. package/dist/skills/index.js.map +1 -0
  897. package/dist/skills/skillScanner.d.ts +203 -0
  898. package/dist/skills/skillScanner.d.ts.map +1 -0
  899. package/dist/skills/skillScanner.js +559 -0
  900. package/dist/skills/skillScanner.js.map +1 -0
  901. package/dist/skills/skillsResource.d.ts +69 -0
  902. package/dist/skills/skillsResource.d.ts.map +1 -0
  903. package/dist/skills/skillsResource.js +257 -0
  904. package/dist/skills/skillsResource.js.map +1 -0
  905. package/dist/startup/index.d.ts +9 -0
  906. package/dist/startup/index.d.ts.map +1 -0
  907. package/dist/startup/index.js +12 -0
  908. package/dist/startup/index.js.map +1 -0
  909. package/dist/startup/startupIndexing.d.ts +80 -0
  910. package/dist/startup/startupIndexing.d.ts.map +1 -0
  911. package/dist/startup/startupIndexing.js +463 -0
  912. package/dist/startup/startupIndexing.js.map +1 -0
  913. package/dist/startup/validation.d.ts +89 -0
  914. package/dist/startup/validation.d.ts.map +1 -0
  915. package/dist/startup/validation.js +590 -0
  916. package/dist/startup/validation.js.map +1 -0
  917. package/dist/storage/index.d.ts +4 -0
  918. package/dist/storage/index.d.ts.map +1 -0
  919. package/dist/storage/index.js +4 -0
  920. package/dist/storage/index.js.map +1 -0
  921. package/dist/storage/overflowManager.d.ts +80 -0
  922. package/dist/storage/overflowManager.d.ts.map +1 -0
  923. package/dist/storage/overflowManager.js +317 -0
  924. package/dist/storage/overflowManager.js.map +1 -0
  925. package/dist/storage/overflowStorage.d.ts +69 -0
  926. package/dist/storage/overflowStorage.d.ts.map +1 -0
  927. package/dist/storage/overflowStorage.js +379 -0
  928. package/dist/storage/overflowStorage.js.map +1 -0
  929. package/dist/storage/toonFormat.d.ts +50 -0
  930. package/dist/storage/toonFormat.d.ts.map +1 -0
  931. package/dist/storage/toonFormat.js +224 -0
  932. package/dist/storage/toonFormat.js.map +1 -0
  933. package/dist/team-members/communication.d.ts +237 -0
  934. package/dist/team-members/communication.d.ts.map +1 -0
  935. package/dist/team-members/communication.js +650 -0
  936. package/dist/team-members/communication.js.map +1 -0
  937. package/dist/team-members/index.d.ts +14 -0
  938. package/dist/team-members/index.d.ts.map +1 -0
  939. package/dist/team-members/index.js +22 -0
  940. package/dist/team-members/index.js.map +1 -0
  941. package/dist/team-members/taskOrchestrator.d.ts +224 -0
  942. package/dist/team-members/taskOrchestrator.d.ts.map +1 -0
  943. package/dist/team-members/taskOrchestrator.js +574 -0
  944. package/dist/team-members/taskOrchestrator.js.map +1 -0
  945. package/dist/team-members/taskTeamMemberLogger.d.ts +157 -0
  946. package/dist/team-members/taskTeamMemberLogger.d.ts.map +1 -0
  947. package/dist/team-members/taskTeamMemberLogger.js +478 -0
  948. package/dist/team-members/taskTeamMemberLogger.js.map +1 -0
  949. package/dist/team-members/teamCommsService.d.ts +221 -0
  950. package/dist/team-members/teamCommsService.d.ts.map +1 -0
  951. package/dist/team-members/teamCommsService.js +628 -0
  952. package/dist/team-members/teamCommsService.js.map +1 -0
  953. package/dist/team-members/teamMemberChannels.d.ts +217 -0
  954. package/dist/team-members/teamMemberChannels.d.ts.map +1 -0
  955. package/dist/team-members/teamMemberChannels.js +687 -0
  956. package/dist/team-members/teamMemberChannels.js.map +1 -0
  957. package/dist/team-members/teamMemberDashboard.d.ts +222 -0
  958. package/dist/team-members/teamMemberDashboard.d.ts.map +1 -0
  959. package/dist/team-members/teamMemberDashboard.js +610 -0
  960. package/dist/team-members/teamMemberDashboard.js.map +1 -0
  961. package/dist/team-members/teamMemberDeployment.d.ts +60 -0
  962. package/dist/team-members/teamMemberDeployment.d.ts.map +1 -0
  963. package/dist/team-members/teamMemberDeployment.js +429 -0
  964. package/dist/team-members/teamMemberDeployment.js.map +1 -0
  965. package/dist/team-members/teamMemberDiscovery.d.ts +178 -0
  966. package/dist/team-members/teamMemberDiscovery.d.ts.map +1 -0
  967. package/dist/team-members/teamMemberDiscovery.js +446 -0
  968. package/dist/team-members/teamMemberDiscovery.js.map +1 -0
  969. package/dist/team-members/teamMemberHistory.d.ts +80 -0
  970. package/dist/team-members/teamMemberHistory.d.ts.map +1 -0
  971. package/dist/team-members/teamMemberHistory.js +426 -0
  972. package/dist/team-members/teamMemberHistory.js.map +1 -0
  973. package/dist/team-members/teamMemberLimits.d.ts +66 -0
  974. package/dist/team-members/teamMemberLimits.d.ts.map +1 -0
  975. package/dist/team-members/teamMemberLimits.js +259 -0
  976. package/dist/team-members/teamMemberLimits.js.map +1 -0
  977. package/dist/team-members/teamMemberRegistry.d.ts +199 -0
  978. package/dist/team-members/teamMemberRegistry.d.ts.map +1 -0
  979. package/dist/team-members/teamMemberRegistry.js +572 -0
  980. package/dist/team-members/teamMemberRegistry.js.map +1 -0
  981. package/dist/team-members/teamMemberTracker.d.ts +148 -0
  982. package/dist/team-members/teamMemberTracker.d.ts.map +1 -0
  983. package/dist/team-members/teamMemberTracker.js +828 -0
  984. package/dist/team-members/teamMemberTracker.js.map +1 -0
  985. package/dist/team-members/workers/aiWorker.d.ts +53 -0
  986. package/dist/team-members/workers/aiWorker.d.ts.map +1 -0
  987. package/dist/team-members/workers/aiWorker.js +322 -0
  988. package/dist/team-members/workers/aiWorker.js.map +1 -0
  989. package/dist/team-members/workers/baseWorker.d.ts +101 -0
  990. package/dist/team-members/workers/baseWorker.d.ts.map +1 -0
  991. package/dist/team-members/workers/baseWorker.js +179 -0
  992. package/dist/team-members/workers/baseWorker.js.map +1 -0
  993. package/dist/team-members/workers/codeReviewWorker.d.ts +3 -0
  994. package/dist/team-members/workers/codeReviewWorker.d.ts.map +1 -0
  995. package/dist/team-members/workers/codeReviewWorker.js +144 -0
  996. package/dist/team-members/workers/codeReviewWorker.js.map +1 -0
  997. package/dist/team-members/workers/index.d.ts +7 -0
  998. package/dist/team-members/workers/index.d.ts.map +1 -0
  999. package/dist/team-members/workers/index.js +7 -0
  1000. package/dist/team-members/workers/index.js.map +1 -0
  1001. package/dist/team-members/workers/repairWorker.d.ts +9 -0
  1002. package/dist/team-members/workers/repairWorker.d.ts.map +1 -0
  1003. package/dist/team-members/workers/repairWorker.js +102 -0
  1004. package/dist/team-members/workers/repairWorker.js.map +1 -0
  1005. package/dist/team-members/workers/sendToTeamMemberB.d.ts +9 -0
  1006. package/dist/team-members/workers/sendToTeamMemberB.d.ts.map +1 -0
  1007. package/dist/team-members/workers/sendToTeamMemberB.js +105 -0
  1008. package/dist/team-members/workers/sendToTeamMemberB.js.map +1 -0
  1009. package/dist/team-members/workers/specmemClient.d.ts +179 -0
  1010. package/dist/team-members/workers/specmemClient.d.ts.map +1 -0
  1011. package/dist/team-members/workers/specmemClient.js +421 -0
  1012. package/dist/team-members/workers/specmemClient.js.map +1 -0
  1013. package/dist/team-members/workers/testCommunication.d.ts +8 -0
  1014. package/dist/team-members/workers/testCommunication.d.ts.map +1 -0
  1015. package/dist/team-members/workers/testCommunication.js +136 -0
  1016. package/dist/team-members/workers/testCommunication.js.map +1 -0
  1017. package/dist/team-members/workers/testCommunicationSuite.d.ts +26 -0
  1018. package/dist/team-members/workers/testCommunicationSuite.d.ts.map +1 -0
  1019. package/dist/team-members/workers/testCommunicationSuite.js +415 -0
  1020. package/dist/team-members/workers/testCommunicationSuite.js.map +1 -0
  1021. package/dist/team-members/workers/testWorker.d.ts +9 -0
  1022. package/dist/team-members/workers/testWorker.d.ts.map +1 -0
  1023. package/dist/team-members/workers/testWorker.js +107 -0
  1024. package/dist/team-members/workers/testWorker.js.map +1 -0
  1025. package/dist/tools/agentDefinitions.d.ts +30 -0
  1026. package/dist/tools/agentDefinitions.d.ts.map +1 -0
  1027. package/dist/tools/agentDefinitions.js +166 -0
  1028. package/dist/tools/agentDefinitions.js.map +1 -0
  1029. package/dist/tools/goofy/checkSyncStatus.d.ts +68 -0
  1030. package/dist/tools/goofy/checkSyncStatus.d.ts.map +1 -0
  1031. package/dist/tools/goofy/checkSyncStatus.js +112 -0
  1032. package/dist/tools/goofy/checkSyncStatus.js.map +1 -0
  1033. package/dist/tools/goofy/codeMemoryLink.d.ts +82 -0
  1034. package/dist/tools/goofy/codeMemoryLink.d.ts.map +1 -0
  1035. package/dist/tools/goofy/codeMemoryLink.js +212 -0
  1036. package/dist/tools/goofy/codeMemoryLink.js.map +1 -0
  1037. package/dist/tools/goofy/compareInstanceMemory.d.ts +97 -0
  1038. package/dist/tools/goofy/compareInstanceMemory.d.ts.map +1 -0
  1039. package/dist/tools/goofy/compareInstanceMemory.js +218 -0
  1040. package/dist/tools/goofy/compareInstanceMemory.js.map +1 -0
  1041. package/dist/tools/goofy/createReasoningChain.d.ts +135 -0
  1042. package/dist/tools/goofy/createReasoningChain.d.ts.map +1 -0
  1043. package/dist/tools/goofy/createReasoningChain.js +257 -0
  1044. package/dist/tools/goofy/createReasoningChain.js.map +1 -0
  1045. package/dist/tools/goofy/deployTeamMember.d.ts +63 -0
  1046. package/dist/tools/goofy/deployTeamMember.d.ts.map +1 -0
  1047. package/dist/tools/goofy/deployTeamMember.js +103 -0
  1048. package/dist/tools/goofy/deployTeamMember.js.map +1 -0
  1049. package/dist/tools/goofy/drillDown.d.ts +143 -0
  1050. package/dist/tools/goofy/drillDown.d.ts.map +1 -0
  1051. package/dist/tools/goofy/drillDown.js +288 -0
  1052. package/dist/tools/goofy/drillDown.js.map +1 -0
  1053. package/dist/tools/goofy/extractClaudeSessions.d.ts +90 -0
  1054. package/dist/tools/goofy/extractClaudeSessions.d.ts.map +1 -0
  1055. package/dist/tools/goofy/extractClaudeSessions.js +277 -0
  1056. package/dist/tools/goofy/extractClaudeSessions.js.map +1 -0
  1057. package/dist/tools/goofy/extractContextRestorations.d.ts +70 -0
  1058. package/dist/tools/goofy/extractContextRestorations.d.ts.map +1 -0
  1059. package/dist/tools/goofy/extractContextRestorations.js +100 -0
  1060. package/dist/tools/goofy/extractContextRestorations.js.map +1 -0
  1061. package/dist/tools/goofy/findCodePointers.d.ts +364 -0
  1062. package/dist/tools/goofy/findCodePointers.d.ts.map +1 -0
  1063. package/dist/tools/goofy/findCodePointers.js +1764 -0
  1064. package/dist/tools/goofy/findCodePointers.js.map +1 -0
  1065. package/dist/tools/goofy/findMemoryGallery.d.ts +40 -0
  1066. package/dist/tools/goofy/findMemoryGallery.d.ts.map +1 -0
  1067. package/dist/tools/goofy/findMemoryGallery.js +66 -0
  1068. package/dist/tools/goofy/findMemoryGallery.js.map +1 -0
  1069. package/dist/tools/goofy/findWhatISaid.d.ts +300 -0
  1070. package/dist/tools/goofy/findWhatISaid.d.ts.map +1 -0
  1071. package/dist/tools/goofy/findWhatISaid.js +2547 -0
  1072. package/dist/tools/goofy/findWhatISaid.js.map +1 -0
  1073. package/dist/tools/goofy/forceResync.d.ts +57 -0
  1074. package/dist/tools/goofy/forceResync.d.ts.map +1 -0
  1075. package/dist/tools/goofy/forceResync.js +100 -0
  1076. package/dist/tools/goofy/forceResync.js.map +1 -0
  1077. package/dist/tools/goofy/getActiveTeamMembers.d.ts +48 -0
  1078. package/dist/tools/goofy/getActiveTeamMembers.d.ts.map +1 -0
  1079. package/dist/tools/goofy/getActiveTeamMembers.js +136 -0
  1080. package/dist/tools/goofy/getActiveTeamMembers.js.map +1 -0
  1081. package/dist/tools/goofy/getMemoryFull.d.ts +34 -0
  1082. package/dist/tools/goofy/getMemoryFull.d.ts.map +1 -0
  1083. package/dist/tools/goofy/getMemoryFull.js +58 -0
  1084. package/dist/tools/goofy/getMemoryFull.js.map +1 -0
  1085. package/dist/tools/goofy/getSessionWatcherStatus.d.ts +43 -0
  1086. package/dist/tools/goofy/getSessionWatcherStatus.d.ts.map +1 -0
  1087. package/dist/tools/goofy/getSessionWatcherStatus.js +92 -0
  1088. package/dist/tools/goofy/getSessionWatcherStatus.js.map +1 -0
  1089. package/dist/tools/goofy/getTeamMemberOutput.d.ts +35 -0
  1090. package/dist/tools/goofy/getTeamMemberOutput.d.ts.map +1 -0
  1091. package/dist/tools/goofy/getTeamMemberOutput.js +62 -0
  1092. package/dist/tools/goofy/getTeamMemberOutput.js.map +1 -0
  1093. package/dist/tools/goofy/getTeamMemberScreen.d.ts +28 -0
  1094. package/dist/tools/goofy/getTeamMemberScreen.d.ts.map +1 -0
  1095. package/dist/tools/goofy/getTeamMemberScreen.js +59 -0
  1096. package/dist/tools/goofy/getTeamMemberScreen.js.map +1 -0
  1097. package/dist/tools/goofy/getTeamMemberStatus.d.ts +33 -0
  1098. package/dist/tools/goofy/getTeamMemberStatus.d.ts.map +1 -0
  1099. package/dist/tools/goofy/getTeamMemberStatus.js +56 -0
  1100. package/dist/tools/goofy/getTeamMemberStatus.js.map +1 -0
  1101. package/dist/tools/goofy/index.d.ts +39 -0
  1102. package/dist/tools/goofy/index.d.ts.map +1 -0
  1103. package/dist/tools/goofy/index.js +51 -0
  1104. package/dist/tools/goofy/index.js.map +1 -0
  1105. package/dist/tools/goofy/interveneTeamMember.d.ts +33 -0
  1106. package/dist/tools/goofy/interveneTeamMember.d.ts.map +1 -0
  1107. package/dist/tools/goofy/interveneTeamMember.js +69 -0
  1108. package/dist/tools/goofy/interveneTeamMember.js.map +1 -0
  1109. package/dist/tools/goofy/killDeployedTeamMember.d.ts +29 -0
  1110. package/dist/tools/goofy/killDeployedTeamMember.d.ts.map +1 -0
  1111. package/dist/tools/goofy/killDeployedTeamMember.js +56 -0
  1112. package/dist/tools/goofy/killDeployedTeamMember.js.map +1 -0
  1113. package/dist/tools/goofy/linkTheVibes.d.ts +125 -0
  1114. package/dist/tools/goofy/linkTheVibes.d.ts.map +1 -0
  1115. package/dist/tools/goofy/linkTheVibes.js +354 -0
  1116. package/dist/tools/goofy/linkTheVibes.js.map +1 -0
  1117. package/dist/tools/goofy/listDeployedTeamMembers.d.ts +26 -0
  1118. package/dist/tools/goofy/listDeployedTeamMembers.d.ts.map +1 -0
  1119. package/dist/tools/goofy/listDeployedTeamMembers.js +52 -0
  1120. package/dist/tools/goofy/listDeployedTeamMembers.js.map +1 -0
  1121. package/dist/tools/goofy/listenForMessages.d.ts +56 -0
  1122. package/dist/tools/goofy/listenForMessages.d.ts.map +1 -0
  1123. package/dist/tools/goofy/listenForMessages.js +122 -0
  1124. package/dist/tools/goofy/listenForMessages.js.map +1 -0
  1125. package/dist/tools/goofy/memoryHealthCheck.d.ts +159 -0
  1126. package/dist/tools/goofy/memoryHealthCheck.d.ts.map +1 -0
  1127. package/dist/tools/goofy/memoryHealthCheck.js +443 -0
  1128. package/dist/tools/goofy/memoryHealthCheck.js.map +1 -0
  1129. package/dist/tools/goofy/rememberThisShit.d.ts +103 -0
  1130. package/dist/tools/goofy/rememberThisShit.d.ts.map +1 -0
  1131. package/dist/tools/goofy/rememberThisShit.js +291 -0
  1132. package/dist/tools/goofy/rememberThisShit.js.map +1 -0
  1133. package/dist/tools/goofy/sayToTeamMember.d.ts +55 -0
  1134. package/dist/tools/goofy/sayToTeamMember.d.ts.map +1 -0
  1135. package/dist/tools/goofy/sayToTeamMember.js +116 -0
  1136. package/dist/tools/goofy/sayToTeamMember.js.map +1 -0
  1137. package/dist/tools/goofy/selfMessage.d.ts +54 -0
  1138. package/dist/tools/goofy/selfMessage.d.ts.map +1 -0
  1139. package/dist/tools/goofy/selfMessage.js +111 -0
  1140. package/dist/tools/goofy/selfMessage.js.map +1 -0
  1141. package/dist/tools/goofy/sendHeartbeat.d.ts +53 -0
  1142. package/dist/tools/goofy/sendHeartbeat.d.ts.map +1 -0
  1143. package/dist/tools/goofy/sendHeartbeat.js +119 -0
  1144. package/dist/tools/goofy/sendHeartbeat.js.map +1 -0
  1145. package/dist/tools/goofy/showMeTheStats.d.ts +216 -0
  1146. package/dist/tools/goofy/showMeTheStats.d.ts.map +1 -0
  1147. package/dist/tools/goofy/showMeTheStats.js +535 -0
  1148. package/dist/tools/goofy/showMeTheStats.js.map +1 -0
  1149. package/dist/tools/goofy/smartRecall.d.ts +136 -0
  1150. package/dist/tools/goofy/smartRecall.d.ts.map +1 -0
  1151. package/dist/tools/goofy/smartRecall.js +286 -0
  1152. package/dist/tools/goofy/smartRecall.js.map +1 -0
  1153. package/dist/tools/goofy/smartSearch.d.ts +64 -0
  1154. package/dist/tools/goofy/smartSearch.d.ts.map +1 -0
  1155. package/dist/tools/goofy/smartSearch.js +89 -0
  1156. package/dist/tools/goofy/smartSearch.js.map +1 -0
  1157. package/dist/tools/goofy/smushMemoriesTogether.d.ts +128 -0
  1158. package/dist/tools/goofy/smushMemoriesTogether.d.ts.map +1 -0
  1159. package/dist/tools/goofy/smushMemoriesTogether.js +536 -0
  1160. package/dist/tools/goofy/smushMemoriesTogether.js.map +1 -0
  1161. package/dist/tools/goofy/spatialSearch.d.ts +198 -0
  1162. package/dist/tools/goofy/spatialSearch.d.ts.map +1 -0
  1163. package/dist/tools/goofy/spatialSearch.js +551 -0
  1164. package/dist/tools/goofy/spatialSearch.js.map +1 -0
  1165. package/dist/tools/goofy/spawnResearchTeamMember.d.ts +104 -0
  1166. package/dist/tools/goofy/spawnResearchTeamMember.d.ts.map +1 -0
  1167. package/dist/tools/goofy/spawnResearchTeamMember.js +290 -0
  1168. package/dist/tools/goofy/spawnResearchTeamMember.js.map +1 -0
  1169. package/dist/tools/goofy/spawnResearchTeamMemberTool.d.ts +121 -0
  1170. package/dist/tools/goofy/spawnResearchTeamMemberTool.d.ts.map +1 -0
  1171. package/dist/tools/goofy/spawnResearchTeamMemberTool.js +215 -0
  1172. package/dist/tools/goofy/spawnResearchTeamMemberTool.js.map +1 -0
  1173. package/dist/tools/goofy/startWatchingTheFiles.d.ts +81 -0
  1174. package/dist/tools/goofy/startWatchingTheFiles.d.ts.map +1 -0
  1175. package/dist/tools/goofy/startWatchingTheFiles.js +161 -0
  1176. package/dist/tools/goofy/startWatchingTheFiles.js.map +1 -0
  1177. package/dist/tools/goofy/stopWatchingTheFiles.d.ts +50 -0
  1178. package/dist/tools/goofy/stopWatchingTheFiles.d.ts.map +1 -0
  1179. package/dist/tools/goofy/stopWatchingTheFiles.js +81 -0
  1180. package/dist/tools/goofy/stopWatchingTheFiles.js.map +1 -0
  1181. package/dist/tools/goofy/whatDidIMean.d.ts +113 -0
  1182. package/dist/tools/goofy/whatDidIMean.d.ts.map +1 -0
  1183. package/dist/tools/goofy/whatDidIMean.js +401 -0
  1184. package/dist/tools/goofy/whatDidIMean.js.map +1 -0
  1185. package/dist/tools/goofy/yeahNahDeleteThat.d.ts +109 -0
  1186. package/dist/tools/goofy/yeahNahDeleteThat.d.ts.map +1 -0
  1187. package/dist/tools/goofy/yeahNahDeleteThat.js +319 -0
  1188. package/dist/tools/goofy/yeahNahDeleteThat.js.map +1 -0
  1189. package/dist/tools/index.d.ts +9 -0
  1190. package/dist/tools/index.d.ts.map +1 -0
  1191. package/dist/tools/index.js +9 -0
  1192. package/dist/tools/index.js.map +1 -0
  1193. package/dist/tools/teamMemberDeployer.d.ts +117 -0
  1194. package/dist/tools/teamMemberDeployer.d.ts.map +1 -0
  1195. package/dist/tools/teamMemberDeployer.js +613 -0
  1196. package/dist/tools/teamMemberDeployer.js.map +1 -0
  1197. package/dist/trace/index.d.ts +14 -0
  1198. package/dist/trace/index.d.ts.map +1 -0
  1199. package/dist/trace/index.js +16 -0
  1200. package/dist/trace/index.js.map +1 -0
  1201. package/dist/trace/tools/analyzeImpact.d.ts +90 -0
  1202. package/dist/trace/tools/analyzeImpact.d.ts.map +1 -0
  1203. package/dist/trace/tools/analyzeImpact.js +240 -0
  1204. package/dist/trace/tools/analyzeImpact.js.map +1 -0
  1205. package/dist/trace/tools/exploreDependencies.d.ts +81 -0
  1206. package/dist/trace/tools/exploreDependencies.d.ts.map +1 -0
  1207. package/dist/trace/tools/exploreDependencies.js +161 -0
  1208. package/dist/trace/tools/exploreDependencies.js.map +1 -0
  1209. package/dist/trace/tools/findSimilarBugs.d.ts +112 -0
  1210. package/dist/trace/tools/findSimilarBugs.d.ts.map +1 -0
  1211. package/dist/trace/tools/findSimilarBugs.js +216 -0
  1212. package/dist/trace/tools/findSimilarBugs.js.map +1 -0
  1213. package/dist/trace/tools/index.d.ts +22 -0
  1214. package/dist/trace/tools/index.d.ts.map +1 -0
  1215. package/dist/trace/tools/index.js +39 -0
  1216. package/dist/trace/tools/index.js.map +1 -0
  1217. package/dist/trace/tools/smartExplore.d.ts +126 -0
  1218. package/dist/trace/tools/smartExplore.d.ts.map +1 -0
  1219. package/dist/trace/tools/smartExplore.js +303 -0
  1220. package/dist/trace/tools/smartExplore.js.map +1 -0
  1221. package/dist/trace/tools/traceError.d.ts +101 -0
  1222. package/dist/trace/tools/traceError.d.ts.map +1 -0
  1223. package/dist/trace/tools/traceError.js +175 -0
  1224. package/dist/trace/tools/traceError.js.map +1 -0
  1225. package/dist/trace/traceExploreSystem.d.ts +271 -0
  1226. package/dist/trace/traceExploreSystem.d.ts.map +1 -0
  1227. package/dist/trace/traceExploreSystem.js +789 -0
  1228. package/dist/trace/traceExploreSystem.js.map +1 -0
  1229. package/dist/types/index.d.ts +421 -0
  1230. package/dist/types/index.d.ts.map +1 -0
  1231. package/dist/types/index.js +118 -0
  1232. package/dist/types/index.js.map +1 -0
  1233. package/dist/utils/circuitBreaker.d.ts +195 -0
  1234. package/dist/utils/circuitBreaker.d.ts.map +1 -0
  1235. package/dist/utils/circuitBreaker.js +374 -0
  1236. package/dist/utils/circuitBreaker.js.map +1 -0
  1237. package/dist/utils/cleanupHandler.d.ts +108 -0
  1238. package/dist/utils/cleanupHandler.d.ts.map +1 -0
  1239. package/dist/utils/cleanupHandler.js +203 -0
  1240. package/dist/utils/cleanupHandler.js.map +1 -0
  1241. package/dist/utils/compactXmlResponse.d.ts +60 -0
  1242. package/dist/utils/compactXmlResponse.d.ts.map +1 -0
  1243. package/dist/utils/compactXmlResponse.js +209 -0
  1244. package/dist/utils/compactXmlResponse.js.map +1 -0
  1245. package/dist/utils/cotBroadcast.d.ts +56 -0
  1246. package/dist/utils/cotBroadcast.d.ts.map +1 -0
  1247. package/dist/utils/cotBroadcast.js +157 -0
  1248. package/dist/utils/cotBroadcast.js.map +1 -0
  1249. package/dist/utils/debugLogger.d.ts +95 -0
  1250. package/dist/utils/debugLogger.d.ts.map +1 -0
  1251. package/dist/utils/debugLogger.js +610 -0
  1252. package/dist/utils/debugLogger.js.map +1 -0
  1253. package/dist/utils/fileProcessingQueue.d.ts +259 -0
  1254. package/dist/utils/fileProcessingQueue.d.ts.map +1 -0
  1255. package/dist/utils/fileProcessingQueue.js +714 -0
  1256. package/dist/utils/fileProcessingQueue.js.map +1 -0
  1257. package/dist/utils/humanReadableOutput.d.ts +124 -0
  1258. package/dist/utils/humanReadableOutput.d.ts.map +1 -0
  1259. package/dist/utils/humanReadableOutput.js +340 -0
  1260. package/dist/utils/humanReadableOutput.js.map +1 -0
  1261. package/dist/utils/index.d.ts +32 -0
  1262. package/dist/utils/index.d.ts.map +1 -0
  1263. package/dist/utils/index.js +71 -0
  1264. package/dist/utils/index.js.map +1 -0
  1265. package/dist/utils/instanceManager.d.ts +530 -0
  1266. package/dist/utils/instanceManager.d.ts.map +1 -0
  1267. package/dist/utils/instanceManager.js +1784 -0
  1268. package/dist/utils/instanceManager.js.map +1 -0
  1269. package/dist/utils/logger.d.ts +6 -0
  1270. package/dist/utils/logger.d.ts.map +1 -0
  1271. package/dist/utils/logger.js +49 -0
  1272. package/dist/utils/logger.js.map +1 -0
  1273. package/dist/utils/mapCleanup.d.ts +58 -0
  1274. package/dist/utils/mapCleanup.d.ts.map +1 -0
  1275. package/dist/utils/mapCleanup.js +150 -0
  1276. package/dist/utils/mapCleanup.js.map +1 -0
  1277. package/dist/utils/memoryManager.d.ts +349 -0
  1278. package/dist/utils/memoryManager.d.ts.map +1 -0
  1279. package/dist/utils/memoryManager.js +799 -0
  1280. package/dist/utils/memoryManager.js.map +1 -0
  1281. package/dist/utils/metrics.d.ts +160 -0
  1282. package/dist/utils/metrics.d.ts.map +1 -0
  1283. package/dist/utils/metrics.js +558 -0
  1284. package/dist/utils/metrics.js.map +1 -0
  1285. package/dist/utils/pathValidator.d.ts +96 -0
  1286. package/dist/utils/pathValidator.d.ts.map +1 -0
  1287. package/dist/utils/pathValidator.js +320 -0
  1288. package/dist/utils/pathValidator.js.map +1 -0
  1289. package/dist/utils/portAllocator.d.ts +296 -0
  1290. package/dist/utils/portAllocator.d.ts.map +1 -0
  1291. package/dist/utils/portAllocator.js +768 -0
  1292. package/dist/utils/portAllocator.js.map +1 -0
  1293. package/dist/utils/portUtils.d.ts +97 -0
  1294. package/dist/utils/portUtils.d.ts.map +1 -0
  1295. package/dist/utils/portUtils.js +285 -0
  1296. package/dist/utils/portUtils.js.map +1 -0
  1297. package/dist/utils/postgresAutoSetup.d.ts +55 -0
  1298. package/dist/utils/postgresAutoSetup.d.ts.map +1 -0
  1299. package/dist/utils/postgresAutoSetup.js +406 -0
  1300. package/dist/utils/postgresAutoSetup.js.map +1 -0
  1301. package/dist/utils/processHealthCheck.d.ts +61 -0
  1302. package/dist/utils/processHealthCheck.d.ts.map +1 -0
  1303. package/dist/utils/processHealthCheck.js +313 -0
  1304. package/dist/utils/processHealthCheck.js.map +1 -0
  1305. package/dist/utils/progressReporter.d.ts +151 -0
  1306. package/dist/utils/progressReporter.d.ts.map +1 -0
  1307. package/dist/utils/progressReporter.js +345 -0
  1308. package/dist/utils/progressReporter.js.map +1 -0
  1309. package/dist/utils/projectEnv.d.ts +73 -0
  1310. package/dist/utils/projectEnv.d.ts.map +1 -0
  1311. package/dist/utils/projectEnv.js +137 -0
  1312. package/dist/utils/projectEnv.js.map +1 -0
  1313. package/dist/utils/qoms.d.ts +122 -0
  1314. package/dist/utils/qoms.d.ts.map +1 -0
  1315. package/dist/utils/qoms.js +650 -0
  1316. package/dist/utils/qoms.js.map +1 -0
  1317. package/dist/utils/retryHelper.d.ts +122 -0
  1318. package/dist/utils/retryHelper.d.ts.map +1 -0
  1319. package/dist/utils/retryHelper.js +272 -0
  1320. package/dist/utils/retryHelper.js.map +1 -0
  1321. package/dist/utils/safeProcessTermination.d.ts +206 -0
  1322. package/dist/utils/safeProcessTermination.d.ts.map +1 -0
  1323. package/dist/utils/safeProcessTermination.js +552 -0
  1324. package/dist/utils/safeProcessTermination.js.map +1 -0
  1325. package/dist/utils/sessionInjector.d.ts +68 -0
  1326. package/dist/utils/sessionInjector.d.ts.map +1 -0
  1327. package/dist/utils/sessionInjector.js +189 -0
  1328. package/dist/utils/sessionInjector.js.map +1 -0
  1329. package/dist/utils/statsCache.d.ts +134 -0
  1330. package/dist/utils/statsCache.d.ts.map +1 -0
  1331. package/dist/utils/statsCache.js +285 -0
  1332. package/dist/utils/statsCache.js.map +1 -0
  1333. package/dist/utils/timeoutMiddleware.d.ts +81 -0
  1334. package/dist/utils/timeoutMiddleware.d.ts.map +1 -0
  1335. package/dist/utils/timeoutMiddleware.js +155 -0
  1336. package/dist/utils/timeoutMiddleware.js.map +1 -0
  1337. package/dist/utils/timerRegistry.d.ts +91 -0
  1338. package/dist/utils/timerRegistry.d.ts.map +1 -0
  1339. package/dist/utils/timerRegistry.js +187 -0
  1340. package/dist/utils/timerRegistry.js.map +1 -0
  1341. package/dist/utils/tokenCompressor.d.ts +332 -0
  1342. package/dist/utils/tokenCompressor.d.ts.map +1 -0
  1343. package/dist/utils/tokenCompressor.js +1306 -0
  1344. package/dist/utils/tokenCompressor.js.map +1 -0
  1345. package/dist/utils/tracing.d.ts +236 -0
  1346. package/dist/utils/tracing.d.ts.map +1 -0
  1347. package/dist/utils/tracing.js +378 -0
  1348. package/dist/utils/tracing.js.map +1 -0
  1349. package/dist/watcher/changeHandler.d.ts +123 -0
  1350. package/dist/watcher/changeHandler.d.ts.map +1 -0
  1351. package/dist/watcher/changeHandler.js +623 -0
  1352. package/dist/watcher/changeHandler.js.map +1 -0
  1353. package/dist/watcher/changeQueue.d.ts +133 -0
  1354. package/dist/watcher/changeQueue.d.ts.map +1 -0
  1355. package/dist/watcher/changeQueue.js +355 -0
  1356. package/dist/watcher/changeQueue.js.map +1 -0
  1357. package/dist/watcher/fileWatcher.d.ts +121 -0
  1358. package/dist/watcher/fileWatcher.d.ts.map +1 -0
  1359. package/dist/watcher/fileWatcher.js +531 -0
  1360. package/dist/watcher/fileWatcher.js.map +1 -0
  1361. package/dist/watcher/index.d.ts +94 -0
  1362. package/dist/watcher/index.d.ts.map +1 -0
  1363. package/dist/watcher/index.js +235 -0
  1364. package/dist/watcher/index.js.map +1 -0
  1365. package/dist/watcher/syncChecker.d.ts +93 -0
  1366. package/dist/watcher/syncChecker.d.ts.map +1 -0
  1367. package/dist/watcher/syncChecker.js +401 -0
  1368. package/dist/watcher/syncChecker.js.map +1 -0
  1369. package/dist/watcher/tsCompiler.d.ts +88 -0
  1370. package/dist/watcher/tsCompiler.d.ts.map +1 -0
  1371. package/dist/watcher/tsCompiler.js +212 -0
  1372. package/dist/watcher/tsCompiler.js.map +1 -0
  1373. package/embedding-sandbox/Dockerfile +77 -0
  1374. package/embedding-sandbox/Dockerfile.frankenstein +91 -0
  1375. package/embedding-sandbox/README.md +193 -0
  1376. package/embedding-sandbox/__pycache__/frankenstein-embeddings.cpython-312.pyc +0 -0
  1377. package/embedding-sandbox/__pycache__/frankenstein-embeddings.cpython-313.pyc +0 -0
  1378. package/embedding-sandbox/__pycache__/qqms_v2.cpython-312.pyc +0 -0
  1379. package/embedding-sandbox/__pycache__/qqms_v2.cpython-313.pyc +0 -0
  1380. package/embedding-sandbox/add_js_docs.py +684 -0
  1381. package/embedding-sandbox/build_docs_db.py +239 -0
  1382. package/embedding-sandbox/client.cjs +376 -0
  1383. package/embedding-sandbox/client.ts +913 -0
  1384. package/embedding-sandbox/deploy-frankenstein.sh +240 -0
  1385. package/embedding-sandbox/docker-compose.yml +60 -0
  1386. package/embedding-sandbox/docker-manager.py +325 -0
  1387. package/embedding-sandbox/docs/python_docs.db +0 -0
  1388. package/embedding-sandbox/download-model.mjs +79 -0
  1389. package/embedding-sandbox/download-model.py +28 -0
  1390. package/embedding-sandbox/embedding-supervisor.sh +164 -0
  1391. package/embedding-sandbox/frankenstein-embeddings.py +3940 -0
  1392. package/embedding-sandbox/manage-services.sh +354 -0
  1393. package/embedding-sandbox/overflow_queue.py +345 -0
  1394. package/embedding-sandbox/package.json +17 -0
  1395. package/embedding-sandbox/project_isolation.py +292 -0
  1396. package/embedding-sandbox/qqms_v2.py +967 -0
  1397. package/embedding-sandbox/ram-manager.sh +311 -0
  1398. package/embedding-sandbox/requirements-frankenstein.txt +7 -0
  1399. package/embedding-sandbox/run_js_docs.py +59 -0
  1400. package/embedding-sandbox/seed_docs.py +885 -0
  1401. package/embedding-sandbox/server-batch.mjs +228 -0
  1402. package/embedding-sandbox/server.mjs +389 -0
  1403. package/embedding-sandbox/specmem/sockets/claude-input-state.json +1 -0
  1404. package/embedding-sandbox/specmem/sockets/embedding-death-reason.txt +3 -0
  1405. package/embedding-sandbox/specmem/sockets/seen-sessions.json +1 -0
  1406. package/embedding-sandbox/specmem/sockets/session-start.lock +1 -0
  1407. package/embedding-sandbox/specmem/sockets/session-stops.log +7 -0
  1408. package/embedding-sandbox/start-frankenstein-throttled.sh +98 -0
  1409. package/embedding-sandbox/start-on-demand.sh +116 -0
  1410. package/embedding-sandbox/start-sandbox.sh +237 -0
  1411. package/embedding-sandbox/start-supervised.sh +11 -0
  1412. package/embedding-sandbox/stop-sandbox.sh +51 -0
  1413. package/embedding-sandbox/test-socket.mjs +61 -0
  1414. package/embedding-sandbox/warm-start.sh +353 -0
  1415. package/embedding-sandbox/warm_start_feeder.py +660 -0
  1416. package/legal/README.md +31 -0
  1417. package/legal/anthropic-privacy-center-screenshot-2026-01-30.png +0 -0
  1418. package/legal/anthropic-tos-screenshot-2026-01-30.png +0 -0
  1419. package/lib/codebase-bridge.cjs +308 -0
  1420. package/package.json +136 -0
  1421. package/plugins/specmem-agents/agents/bug-hunter.md +79 -0
  1422. package/plugins/specmem-agents/agents/memory-explorer.md +57 -0
  1423. package/plugins/specmem-agents/agents/team-coordinator.md +82 -0
  1424. package/scripts/auto-updater.cjs +399 -0
  1425. package/scripts/backfill-code-definition-embeddings.ts +440 -0
  1426. package/scripts/backfill-code-embeddings.ts +206 -0
  1427. package/scripts/capture-tos-screenshots.cjs +94 -0
  1428. package/scripts/check-global-install.cjs +67 -0
  1429. package/scripts/cleanup-embedding-servers.sh +25 -0
  1430. package/scripts/dashboard-standalone.sh +369 -0
  1431. package/scripts/deploy-hooks.cjs +1451 -0
  1432. package/scripts/deploy.sh +106 -0
  1433. package/scripts/docker-project-down.sh +83 -0
  1434. package/scripts/docker-project-list.sh +40 -0
  1435. package/scripts/docker-project-up.sh +79 -0
  1436. package/scripts/fast-backfill-embeddings.ts +173 -0
  1437. package/scripts/fast-batch-embedder.cjs +334 -0
  1438. package/scripts/first-run-model-setup.cjs +849 -0
  1439. package/scripts/global-postinstall.cjs +1957 -0
  1440. package/scripts/index-codebase.js +72 -0
  1441. package/scripts/migrate-fix-embeddings.py +110 -0
  1442. package/scripts/migrate-to-project-schemas.ts +525 -0
  1443. package/scripts/optimize-embedding-model.py +324 -0
  1444. package/scripts/optimize-instructions.cjs +530 -0
  1445. package/scripts/pack-docker-images.sh +68 -0
  1446. package/scripts/pack-for-testing.sh +130 -0
  1447. package/scripts/postinstall.cjs +54 -0
  1448. package/scripts/project-env.sh +51 -0
  1449. package/scripts/reset-db.sh +30 -0
  1450. package/scripts/run-indexer.ts +69 -0
  1451. package/scripts/run-migrations.js +47 -0
  1452. package/scripts/setup-db.sh +34 -0
  1453. package/scripts/setup-minimal-schema.sql +143 -0
  1454. package/scripts/skills/code-review.md +44 -0
  1455. package/scripts/skills/debugging.md +56 -0
  1456. package/scripts/skills/specmem-deployteam.md +239 -0
  1457. package/scripts/skills/teammemberskills/EFFICIENT_GREP.md +171 -0
  1458. package/scripts/skills/teammemberskills/task-planning.md +67 -0
  1459. package/scripts/specmem/sockets/session-start.lock +1 -0
  1460. package/scripts/specmem/sockets/session-stops.log +1 -0
  1461. package/scripts/specmem-health.sh +382 -0
  1462. package/scripts/specmem-init.cjs +6935 -0
  1463. package/scripts/strip-debug-logs.cjs +43 -0
  1464. package/scripts/test-mcp-standalone.sh +365 -0
  1465. package/scripts/test-optimized-models.py +166 -0
  1466. package/scripts/verify-embedding-fix.sh +148 -0
  1467. package/skills/code-review.md +44 -0
  1468. package/skills/debugging.md +56 -0
  1469. package/skills/specmem-deployteam.md +239 -0
  1470. package/skills/teammemberskills/EFFICIENT_GREP.md +171 -0
  1471. package/skills/teammemberskills/task-planning.md +67 -0
  1472. package/specmem-health.cjs +522 -0
  1473. package/specmem.env +216 -0
@@ -0,0 +1,1279 @@
1
+ // yooo these are the MCP tools for codebase operations
2
+ // findCodeThatMatters, codebaseStatsGoCrazy, and more
3
+ // claude gonna be able to search our entire codebase now fr fr
4
+ import { z } from 'zod';
5
+ import { logger } from '../utils/logger.js';
6
+ import { IngestThisWholeAssMfCodebase } from './ingestion.js';
7
+ import { DEFAULT_EXCLUSIONS } from './exclusions.js';
8
+ import { LANGUAGE_REGISTRY } from './languageDetection.js';
9
+ import { getDimensionService } from '../services/DimensionService.js';
10
+ import { compactResponse } from '../services/ResponseCompactor.js';
11
+ import { getProjectContext } from '../services/ProjectContext.js';
12
+ import { TEXT_LIMITS } from '../constants.js';
13
+ /**
14
+ * Input schemas for all the codebase tools
15
+ */
16
+ export const IngestCodebaseInput = z.object({
17
+ rootPath: z.string().describe('absolute path to the codebase root directory'),
18
+ additionalExclusions: z.array(z.string()).optional().describe('extra patterns to exclude'),
19
+ maxFileSizeBytes: z.number().optional().describe('skip files larger than this (default 10MB)'),
20
+ generateEmbeddings: z.boolean().default(true).describe('whether to generate embeddings'),
21
+ includeHiddenFiles: z.boolean().default(false).describe('include hidden files/folders')
22
+ });
23
+ export const FindInCodebaseInput = z.object({
24
+ query: z.string().min(1).describe('semantic search query'),
25
+ limit: z.number().int().min(1).max(100).default(20).describe('max results'),
26
+ threshold: z.number().min(0).max(1).default(0.6).describe('similarity threshold'),
27
+ languageFilter: z.array(z.string()).optional().describe('filter by language IDs'),
28
+ pathPattern: z.string().optional().describe('glob pattern for file path'),
29
+ excludeChunks: z.boolean().default(false).describe('only return full files, not chunks')
30
+ });
31
+ export const GetFileContentInput = z.object({
32
+ id: z.string().uuid().optional().describe('file ID'),
33
+ filePath: z.string().optional().describe('relative file path'),
34
+ includeEmbedding: z.boolean().default(false).describe('include the embedding vector')
35
+ }).refine(data => data.id || data.filePath, { message: 'must provide either id or filePath' });
36
+ export const ListFilesInput = z.object({
37
+ pathPattern: z.string().optional().describe('glob pattern for file path'),
38
+ languageFilter: z.array(z.string()).optional().describe('filter by language IDs'),
39
+ limit: z.number().int().min(1).max(1000).default(100).describe('max results'),
40
+ offset: z.number().int().min(0).default(0).describe('pagination offset'),
41
+ orderBy: z.enum(['path', 'size', 'lines', 'modified']).default('path').describe('sort field'),
42
+ orderDirection: z.enum(['asc', 'desc']).default('asc').describe('sort direction')
43
+ });
44
+ export const CodebaseStatsInput = z.object({
45
+ includeLanguageBreakdown: z.boolean().default(true),
46
+ includeTopFiles: z.boolean().default(false),
47
+ topFilesLimit: z.number().int().min(1).max(50).default(10)
48
+ });
49
+ export const FindRelatedFilesInput = z.object({
50
+ fileId: z.string().uuid().optional().describe('find files related to this file by ID'),
51
+ filePath: z.string().optional().describe('find files related to this path'),
52
+ limit: z.number().int().min(1).max(50).default(10).describe('max related files'),
53
+ threshold: z.number().min(0).max(1).default(0.7).describe('similarity threshold')
54
+ }).refine(data => data.fileId || data.filePath, { message: 'must provide either fileId or filePath' });
55
+ export const TextSearchInCodebaseInput = z.object({
56
+ query: z.string().min(1).describe('full-text search query'),
57
+ limit: z.number().int().min(1).max(100).default(20).describe('max results'),
58
+ languageFilter: z.array(z.string()).optional().describe('filter by language IDs'),
59
+ caseSensitive: z.boolean().default(false).describe('case-sensitive search')
60
+ });
61
+ /**
62
+ * IngestCodebaseTool - ingestThisWholeAssMfCodebase
63
+ * scans and stores an entire codebase
64
+ */
65
+ export class IngestCodebaseTool {
66
+ pool;
67
+ embeddingProvider;
68
+ name = 'ingest_codebase';
69
+ description = 'Scan and store an entire codebase in memory for semantic search. This ingests ALL files recursively, detects languages, chunks large files, and generates embeddings.';
70
+ inputSchema = {
71
+ type: 'object',
72
+ properties: {
73
+ rootPath: { type: 'string', description: 'Absolute path to codebase root' },
74
+ additionalExclusions: { type: 'array', items: { type: 'string' }, description: 'Extra exclusion patterns' },
75
+ maxFileSizeBytes: { type: 'number', description: 'Skip files larger than this (default 10MB)' },
76
+ generateEmbeddings: { type: 'boolean', description: 'Generate embeddings for semantic search' },
77
+ includeHiddenFiles: { type: 'boolean', description: 'Include hidden files' }
78
+ },
79
+ required: ['rootPath']
80
+ };
81
+ constructor(pool, embeddingProvider) {
82
+ this.pool = pool;
83
+ this.embeddingProvider = embeddingProvider;
84
+ }
85
+ async execute(params) {
86
+ const input = IngestCodebaseInput.parse(params);
87
+ logger.info({ rootPath: input.rootPath }, 'starting codebase ingestion - ingestThisWholeAssMfCodebase activated');
88
+ const engine = new IngestThisWholeAssMfCodebase(this.pool, this.embeddingProvider);
89
+ const result = await engine.ingest({
90
+ rootPath: input.rootPath,
91
+ additionalExclusions: input.additionalExclusions,
92
+ maxFileSizeBytes: input.maxFileSizeBytes,
93
+ generateEmbeddings: input.generateEmbeddings,
94
+ includeHiddenFiles: input.includeHiddenFiles
95
+ });
96
+ return {
97
+ success: result.success,
98
+ message: result.success
99
+ ? `Successfully ingested ${result.storedFiles} files (${result.chunkedFiles} chunked into ${result.totalChunks} pieces) from ${result.rootPath}`
100
+ : `Ingestion failed with ${result.errors.length} errors`,
101
+ stats: {
102
+ totalFiles: result.totalFiles,
103
+ storedFiles: result.storedFiles,
104
+ chunkedFiles: result.chunkedFiles,
105
+ totalChunks: result.totalChunks,
106
+ skippedFiles: result.skippedFiles,
107
+ errorFiles: result.errorFiles,
108
+ totalLines: result.totalLines,
109
+ totalBytes: result.totalBytes,
110
+ durationMs: result.duration
111
+ },
112
+ languageBreakdown: result.languageBreakdown,
113
+ errors: result.errors.slice(0, 10) // only return first 10 errors
114
+ };
115
+ }
116
+ }
117
+ /**
118
+ * FindInCodebaseTool - findCodeThatMatters
119
+ * semantic search across all indexed files
120
+ */
121
+ export class FindInCodebaseTool {
122
+ pool;
123
+ embeddingProvider;
124
+ name = 'find_in_codebase';
125
+ description = 'Semantic search across all indexed codebase files. Uses embeddings to find relevant code based on meaning, not just keywords.';
126
+ inputSchema = {
127
+ type: 'object',
128
+ properties: {
129
+ query: { type: 'string', description: 'Search query describing what you\'re looking for' },
130
+ limit: { type: 'number', description: 'Max results (default 20)' },
131
+ threshold: { type: 'number', description: 'Similarity threshold 0-1 (default 0.6)' },
132
+ languageFilter: { type: 'array', items: { type: 'string' }, description: 'Filter by language IDs' },
133
+ pathPattern: { type: 'string', description: 'Glob pattern for file path' },
134
+ excludeChunks: { type: 'boolean', description: 'Only return full files' }
135
+ },
136
+ required: ['query']
137
+ };
138
+ dimensionService = null;
139
+ constructor(pool, embeddingProvider) {
140
+ this.pool = pool;
141
+ this.embeddingProvider = embeddingProvider;
142
+ try {
143
+ this.dimensionService = getDimensionService(pool, embeddingProvider);
144
+ }
145
+ catch {
146
+ // Will initialize when needed
147
+ }
148
+ }
149
+ getDimService() {
150
+ if (!this.dimensionService) {
151
+ this.dimensionService = getDimensionService(this.pool, this.embeddingProvider);
152
+ }
153
+ return this.dimensionService;
154
+ }
155
+ async execute(params) {
156
+ const input = FindInCodebaseInput.parse(params);
157
+ // generate query embedding
158
+ const rawEmbedding = await this.embeddingProvider.generateEmbedding(input.query);
159
+ // Validate and prepare embedding dimension using DimensionService
160
+ const dimService = this.getDimService();
161
+ const prepared = await dimService.validateAndPrepare('codebase_files', rawEmbedding, input.query);
162
+ const queryEmbedding = prepared.embedding;
163
+ if (prepared.wasModified) {
164
+ logger.debug({ action: prepared.action }, 'Adjusted embedding dimension for codebase search');
165
+ }
166
+ const embeddingStr = `[${queryEmbedding.join(',')}]`;
167
+ // Get project path for filtering
168
+ const projectPath = getProjectContext().getProjectPath();
169
+ // build query with project filter
170
+ const conditions = ['embedding IS NOT NULL', 'project_path = $4'];
171
+ const values = [embeddingStr, 1 - input.threshold, input.limit, projectPath];
172
+ let paramIndex = 5;
173
+ if (input.languageFilter?.length) {
174
+ conditions.push(`language_id = ANY($${paramIndex})`);
175
+ values.push(input.languageFilter);
176
+ paramIndex++;
177
+ }
178
+ if (input.pathPattern) {
179
+ conditions.push(`file_path LIKE $${paramIndex}`);
180
+ values.push(input.pathPattern.replace(/\*/g, '%'));
181
+ paramIndex++;
182
+ }
183
+ if (input.excludeChunks) {
184
+ conditions.push('chunk_index IS NULL');
185
+ }
186
+ const query = `
187
+ SELECT
188
+ id, file_path, file_name, language_id, language_name,
189
+ line_count, size_bytes, chunk_index, total_chunks,
190
+ content,
191
+ 1 - (embedding <=> $1::vector) AS similarity
192
+ FROM codebase_files
193
+ WHERE ${conditions.join(' AND ')}
194
+ AND (embedding <=> $1::vector) < $2
195
+ ORDER BY embedding <=> $1::vector
196
+ LIMIT $3
197
+ `;
198
+ const result = await this.pool.queryWithSwag(query, values);
199
+ const searchResults = result.rows.map((row) => ({
200
+ file: {
201
+ id: row.id,
202
+ filePath: row.file_path,
203
+ fileName: row.file_name,
204
+ language: row.language_name,
205
+ lineCount: row.line_count,
206
+ sizeBytes: row.size_bytes,
207
+ isChunk: row.chunk_index !== null,
208
+ chunkIndex: row.chunk_index ?? undefined,
209
+ totalChunks: row.total_chunks ?? undefined
210
+ },
211
+ similarity: row.similarity,
212
+ contentPreview: row.content.slice(0, TEXT_LIMITS.PREVIEW_MEDIUM) + (row.content.length > TEXT_LIMITS.PREVIEW_MEDIUM ? '...' : '')
213
+ }));
214
+ logger.info({
215
+ query: input.query,
216
+ resultCount: searchResults.length,
217
+ topSimilarity: searchResults[0]?.similarity
218
+ }, 'findCodeThatMatters search complete');
219
+ // Apply Chinese compactor for token efficiency
220
+ return compactResponse({
221
+ query: input.query,
222
+ resultCount: searchResults.length,
223
+ results: searchResults
224
+ }, 'search');
225
+ }
226
+ }
227
+ /**
228
+ * GetFileContentTool - retrieve specific file content
229
+ */
230
+ export class GetFileContentTool {
231
+ pool;
232
+ name = 'get_file_content';
233
+ description = 'Retrieve the full content of a specific file from the indexed codebase.';
234
+ inputSchema = {
235
+ type: 'object',
236
+ properties: {
237
+ id: { type: 'string', description: 'File ID (UUID)' },
238
+ filePath: { type: 'string', description: 'Relative file path' },
239
+ includeEmbedding: { type: 'boolean', description: 'Include embedding vector' }
240
+ }
241
+ };
242
+ constructor(pool) {
243
+ this.pool = pool;
244
+ }
245
+ async execute(params) {
246
+ const input = GetFileContentInput.parse(params);
247
+ // Get project path for filtering
248
+ const projectPath = getProjectContext().getProjectPath();
249
+ let query;
250
+ let values;
251
+ if (input.id) {
252
+ query = `SELECT * FROM codebase_files WHERE id = $1 AND project_path = $2`;
253
+ values = [input.id, projectPath];
254
+ }
255
+ else {
256
+ query = `SELECT * FROM codebase_files WHERE file_path = $1 AND project_path = $2`;
257
+ values = [input.filePath, projectPath];
258
+ }
259
+ const result = await this.pool.queryWithSwag(query, values);
260
+ if (result.rows.length === 0) {
261
+ return {
262
+ found: false,
263
+ message: 'File not found in indexed codebase'
264
+ };
265
+ }
266
+ const row = result.rows[0];
267
+ return {
268
+ found: true,
269
+ file: {
270
+ id: row.id,
271
+ filePath: row.file_path,
272
+ absolutePath: row.absolute_path,
273
+ fileName: row.file_name,
274
+ extension: row.extension,
275
+ language: {
276
+ id: row.language_id,
277
+ name: row.language_name,
278
+ type: row.language_type
279
+ },
280
+ sizeBytes: row.size_bytes,
281
+ lineCount: row.line_count,
282
+ charCount: row.char_count,
283
+ lastModified: row.last_modified,
284
+ isChunk: row.chunk_index !== null,
285
+ chunkIndex: row.chunk_index,
286
+ totalChunks: row.total_chunks,
287
+ originalFileId: row.original_file_id
288
+ },
289
+ content: row.content,
290
+ contentHash: row.content_hash,
291
+ embedding: input.includeEmbedding && row.embedding
292
+ ? row.embedding.replace(/[\[\]]/g, '').split(',').map(Number)
293
+ : undefined
294
+ };
295
+ }
296
+ }
297
+ /**
298
+ * ListFilesTool - list indexed files with filtering
299
+ */
300
+ export class ListFilesTool {
301
+ pool;
302
+ name = 'list_files';
303
+ description = 'List all indexed files with optional filtering and pagination.';
304
+ inputSchema = {
305
+ type: 'object',
306
+ properties: {
307
+ pathPattern: { type: 'string', description: 'Glob pattern for file path (e.g., "src/**/*.ts")' },
308
+ languageFilter: { type: 'array', items: { type: 'string' }, description: 'Filter by language IDs' },
309
+ limit: { type: 'number', description: 'Max results (default 100)' },
310
+ offset: { type: 'number', description: 'Pagination offset' },
311
+ orderBy: { type: 'string', enum: ['path', 'size', 'lines', 'modified'], description: 'Sort field' },
312
+ orderDirection: { type: 'string', enum: ['asc', 'desc'], description: 'Sort direction' }
313
+ }
314
+ };
315
+ constructor(pool) {
316
+ this.pool = pool;
317
+ }
318
+ async execute(params) {
319
+ const input = ListFilesInput.parse(params);
320
+ // Get project path for filtering
321
+ const projectPath = getProjectContext().getProjectPath();
322
+ const conditions = ['chunk_index IS NULL', 'project_path = $1']; // only list main files, not chunks, scoped by project
323
+ const values = [projectPath];
324
+ let paramIndex = 2;
325
+ if (input.pathPattern) {
326
+ conditions.push(`file_path LIKE $${paramIndex}`);
327
+ values.push(input.pathPattern.replace(/\*\*/g, '%').replace(/\*/g, '%'));
328
+ paramIndex++;
329
+ }
330
+ if (input.languageFilter?.length) {
331
+ conditions.push(`language_id = ANY($${paramIndex})`);
332
+ values.push(input.languageFilter);
333
+ paramIndex++;
334
+ }
335
+ const orderColumn = {
336
+ path: 'file_path',
337
+ size: 'size_bytes',
338
+ lines: 'line_count',
339
+ modified: 'last_modified'
340
+ }[input.orderBy];
341
+ // get total count
342
+ const countResult = await this.pool.queryWithSwag(`SELECT COUNT(*) as count FROM codebase_files WHERE ${conditions.join(' AND ')}`, values);
343
+ const total = parseInt(countResult.rows[0]?.count ?? '0', 10);
344
+ // get page
345
+ values.push(input.limit, input.offset);
346
+ const query = `
347
+ SELECT id, file_path, file_name, language_id, language_name,
348
+ size_bytes, line_count, last_modified
349
+ FROM codebase_files
350
+ WHERE ${conditions.join(' AND ')}
351
+ ORDER BY ${orderColumn} ${input.orderDirection.toUpperCase()}
352
+ LIMIT $${paramIndex} OFFSET $${paramIndex + 1}
353
+ `;
354
+ const result = await this.pool.queryWithSwag(query, values);
355
+ return {
356
+ total,
357
+ limit: input.limit,
358
+ offset: input.offset,
359
+ hasMore: input.offset + result.rows.length < total,
360
+ files: result.rows.map((row) => ({
361
+ id: row.id,
362
+ filePath: row.file_path,
363
+ fileName: row.file_name,
364
+ language: row.language_name,
365
+ sizeBytes: row.size_bytes,
366
+ lineCount: row.line_count,
367
+ lastModified: row.last_modified
368
+ }))
369
+ };
370
+ }
371
+ }
372
+ /**
373
+ * CodebaseStatsTool - codebaseStatsGoCrazy
374
+ * comprehensive statistics about the indexed codebase
375
+ */
376
+ export class CodebaseStatsTool {
377
+ pool;
378
+ name = 'codebase_stats';
379
+ description = 'Get comprehensive statistics about the indexed codebase including language breakdown, file counts, and more.';
380
+ inputSchema = {
381
+ type: 'object',
382
+ properties: {
383
+ includeLanguageBreakdown: { type: 'boolean', description: 'Include per-language stats' },
384
+ includeTopFiles: { type: 'boolean', description: 'Include top files by size/lines' },
385
+ topFilesLimit: { type: 'number', description: 'Number of top files to include' }
386
+ }
387
+ };
388
+ constructor(pool) {
389
+ this.pool = pool;
390
+ }
391
+ async execute(params) {
392
+ const input = CodebaseStatsInput.parse(params);
393
+ // Get project path for filtering
394
+ const projectPath = getProjectContext().getProjectPath();
395
+ // basic stats - filtered by project
396
+ const basicStats = await this.pool.queryWithSwag(`
397
+ SELECT
398
+ COUNT(*) as total_files,
399
+ COUNT(*) FILTER (WHERE chunk_index IS NOT NULL) as total_chunks,
400
+ COUNT(*) FILTER (WHERE chunk_index IS NULL) as unique_files,
401
+ SUM(line_count) as total_lines,
402
+ SUM(size_bytes) as total_bytes
403
+ FROM codebase_files
404
+ WHERE project_path = $1
405
+ `, [projectPath]);
406
+ const stats = {
407
+ totalFiles: parseInt(basicStats.rows[0]?.total_files ?? '0', 10),
408
+ totalChunks: parseInt(basicStats.rows[0]?.total_chunks ?? '0', 10),
409
+ uniqueFiles: parseInt(basicStats.rows[0]?.unique_files ?? '0', 10),
410
+ totalLines: parseInt(basicStats.rows[0]?.total_lines ?? '0', 10),
411
+ totalBytes: parseInt(basicStats.rows[0]?.total_bytes ?? '0', 10)
412
+ };
413
+ // language breakdown - filtered by project
414
+ if (input.includeLanguageBreakdown) {
415
+ const langStats = await this.pool.queryWithSwag(`
416
+ SELECT
417
+ language_id,
418
+ COUNT(*) as file_count,
419
+ SUM(line_count) as line_count,
420
+ SUM(size_bytes) as byte_count
421
+ FROM codebase_files
422
+ WHERE chunk_index IS NULL AND project_path = $1
423
+ GROUP BY language_id
424
+ ORDER BY file_count DESC
425
+ `, [projectPath]);
426
+ stats.languageBreakdown = {};
427
+ for (const row of langStats.rows) {
428
+ stats.languageBreakdown[row.language_id] = {
429
+ fileCount: parseInt(row.file_count, 10),
430
+ lineCount: parseInt(row.line_count, 10),
431
+ byteCount: parseInt(row.byte_count, 10)
432
+ };
433
+ }
434
+ }
435
+ // top files - filtered by project
436
+ if (input.includeTopFiles) {
437
+ const topBySize = await this.pool.queryWithSwag(`
438
+ SELECT file_path, size_bytes, language_name
439
+ FROM codebase_files
440
+ WHERE chunk_index IS NULL AND project_path = $1
441
+ ORDER BY size_bytes DESC
442
+ LIMIT $2
443
+ `, [projectPath, input.topFilesLimit]);
444
+ stats.topFilesBySize = topBySize.rows.map((row) => ({
445
+ filePath: row.file_path,
446
+ sizeBytes: row.size_bytes,
447
+ language: row.language_name
448
+ }));
449
+ const topByLines = await this.pool.queryWithSwag(`
450
+ SELECT file_path, line_count, language_name
451
+ FROM codebase_files
452
+ WHERE chunk_index IS NULL AND project_path = $1
453
+ ORDER BY line_count DESC
454
+ LIMIT $2
455
+ `, [projectPath, input.topFilesLimit]);
456
+ stats.topFilesByLines = topByLines.rows.map((row) => ({
457
+ filePath: row.file_path,
458
+ lineCount: row.line_count,
459
+ language: row.language_name
460
+ }));
461
+ }
462
+ // last ingestion time - filtered by project
463
+ const lastMod = await this.pool.queryWithSwag(`
464
+ SELECT MAX(created_at) as last_mod FROM codebase_files WHERE project_path = $1
465
+ `, [projectPath]);
466
+ if (lastMod.rows[0]?.last_mod) {
467
+ stats.lastIngestionTime = lastMod.rows[0].last_mod;
468
+ }
469
+ logger.info({
470
+ uniqueFiles: stats.uniqueFiles,
471
+ totalLines: stats.totalLines
472
+ }, 'codebaseStatsGoCrazy - stats retrieved');
473
+ return stats;
474
+ }
475
+ }
476
+ /**
477
+ * FindRelatedFilesTool - find files related to a given file
478
+ */
479
+ export class FindRelatedFilesTool {
480
+ pool;
481
+ name = 'find_related_files';
482
+ description = 'Find files that are semantically related to a given file based on embeddings.';
483
+ inputSchema = {
484
+ type: 'object',
485
+ properties: {
486
+ fileId: { type: 'string', description: 'File ID to find related files for' },
487
+ filePath: { type: 'string', description: 'File path to find related files for' },
488
+ limit: { type: 'number', description: 'Max related files (default 10)' },
489
+ threshold: { type: 'number', description: 'Similarity threshold (default 0.7)' }
490
+ }
491
+ };
492
+ constructor(pool) {
493
+ this.pool = pool;
494
+ }
495
+ async execute(params) {
496
+ const input = FindRelatedFilesInput.parse(params);
497
+ // Get project path for filtering
498
+ const projectPath = getProjectContext().getProjectPath();
499
+ // first get the source file's embedding - filtered by project
500
+ let sourceQuery;
501
+ let sourceValues;
502
+ if (input.fileId) {
503
+ sourceQuery = `SELECT id, file_path, embedding FROM codebase_files WHERE id = $1 AND project_path = $2`;
504
+ sourceValues = [input.fileId, projectPath];
505
+ }
506
+ else {
507
+ sourceQuery = `SELECT id, file_path, embedding FROM codebase_files WHERE file_path = $1 AND project_path = $2`;
508
+ sourceValues = [input.filePath, projectPath];
509
+ }
510
+ const sourceResult = await this.pool.queryWithSwag(sourceQuery, sourceValues);
511
+ if (sourceResult.rows.length === 0) {
512
+ return {
513
+ found: false,
514
+ message: 'Source file not found in indexed codebase'
515
+ };
516
+ }
517
+ const source = sourceResult.rows[0];
518
+ if (!source.embedding) {
519
+ return {
520
+ found: true,
521
+ hasEmbedding: false,
522
+ message: 'Source file has no embedding, cannot find related files'
523
+ };
524
+ }
525
+ // find related files - filtered by project
526
+ const maxDistance = 1 - input.threshold;
527
+ const relatedResult = await this.pool.queryWithSwag(`
528
+ SELECT
529
+ id, file_path, file_name, language_name, line_count, size_bytes,
530
+ 1 - (embedding <=> $1::vector) AS similarity
531
+ FROM codebase_files
532
+ WHERE id != $2
533
+ AND embedding IS NOT NULL
534
+ AND chunk_index IS NULL
535
+ AND project_path = $5
536
+ AND (embedding <=> $1::vector) < $3
537
+ ORDER BY embedding <=> $1::vector
538
+ LIMIT $4
539
+ `, [source.embedding, source.id, maxDistance, input.limit, projectPath]);
540
+ // Apply Chinese compactor for token efficiency
541
+ return compactResponse({
542
+ found: true,
543
+ sourceFile: {
544
+ id: source.id,
545
+ filePath: source.file_path
546
+ },
547
+ relatedCount: relatedResult.rows.length,
548
+ relatedFiles: relatedResult.rows.map((row) => ({
549
+ id: row.id,
550
+ filePath: row.file_path,
551
+ fileName: row.file_name,
552
+ language: row.language_name,
553
+ lineCount: row.line_count,
554
+ sizeBytes: row.size_bytes,
555
+ similarity: row.similarity
556
+ }))
557
+ }, 'search');
558
+ }
559
+ }
560
+ /**
561
+ * TextSearchInCodebaseTool - full-text search across codebase
562
+ */
563
+ export class TextSearchInCodebaseTool {
564
+ pool;
565
+ name = 'text_search_codebase';
566
+ description = 'Full-text search across all indexed files. Finds exact or partial text matches.';
567
+ inputSchema = {
568
+ type: 'object',
569
+ properties: {
570
+ query: { type: 'string', description: 'Text to search for' },
571
+ limit: { type: 'number', description: 'Max results (default 20)' },
572
+ languageFilter: { type: 'array', items: { type: 'string' }, description: 'Filter by languages' },
573
+ caseSensitive: { type: 'boolean', description: 'Case-sensitive search' }
574
+ },
575
+ required: ['query']
576
+ };
577
+ constructor(pool) {
578
+ this.pool = pool;
579
+ }
580
+ async execute(params) {
581
+ const input = TextSearchInCodebaseInput.parse(params);
582
+ // Get project path for filtering
583
+ const projectPath = getProjectContext().getProjectPath();
584
+ const conditions = ['project_path = $1'];
585
+ const values = [projectPath];
586
+ let paramIndex = 2;
587
+ // text search condition
588
+ if (input.caseSensitive) {
589
+ conditions.push(`content LIKE $${paramIndex}`);
590
+ values.push(`%${input.query}%`);
591
+ }
592
+ else {
593
+ conditions.push(`content ILIKE $${paramIndex}`);
594
+ values.push(`%${input.query}%`);
595
+ }
596
+ paramIndex++;
597
+ if (input.languageFilter?.length) {
598
+ conditions.push(`language_id = ANY($${paramIndex})`);
599
+ values.push(input.languageFilter);
600
+ paramIndex++;
601
+ }
602
+ values.push(input.limit);
603
+ const query = `
604
+ SELECT
605
+ id, file_path, file_name, language_name,
606
+ line_count, size_bytes, content,
607
+ chunk_index, total_chunks
608
+ FROM codebase_files
609
+ WHERE ${conditions.join(' AND ')}
610
+ ORDER BY size_bytes ASC
611
+ LIMIT $${paramIndex}
612
+ `;
613
+ const result = await this.pool.queryWithSwag(query, values);
614
+ // extract matching lines for each result
615
+ const results = result.rows.map((row) => {
616
+ const lines = row.content.split('\n');
617
+ const matchingLines = [];
618
+ const searchLower = input.caseSensitive ? input.query : input.query.toLowerCase();
619
+ for (let i = 0; i < lines.length; i++) {
620
+ const line = lines[i] ?? '';
621
+ const lineToCheck = input.caseSensitive ? line : line.toLowerCase();
622
+ if (lineToCheck.includes(searchLower)) {
623
+ matchingLines.push({
624
+ lineNumber: i + 1,
625
+ content: line.slice(0, 200) + (line.length > 200 ? '...' : '')
626
+ });
627
+ if (matchingLines.length >= 5)
628
+ break; // limit matches per file
629
+ }
630
+ }
631
+ return {
632
+ file: {
633
+ id: row.id,
634
+ filePath: row.file_path,
635
+ fileName: row.file_name,
636
+ language: row.language_name,
637
+ lineCount: row.line_count,
638
+ sizeBytes: row.size_bytes,
639
+ isChunk: row.chunk_index !== null,
640
+ chunkIndex: row.chunk_index,
641
+ totalChunks: row.total_chunks
642
+ },
643
+ matchCount: matchingLines.length,
644
+ matchingLines
645
+ };
646
+ });
647
+ // Apply Chinese compactor for token efficiency
648
+ return compactResponse({
649
+ query: input.query,
650
+ resultCount: results.length,
651
+ results
652
+ }, 'search');
653
+ }
654
+ }
655
+ /**
656
+ * GetExclusionPatternsTool - see what patterns are being excluded
657
+ */
658
+ export class GetExclusionPatternsTool {
659
+ name = 'get_exclusion_patterns';
660
+ description = 'Get the current exclusion patterns used during codebase ingestion.';
661
+ inputSchema = {
662
+ type: 'object',
663
+ properties: {}
664
+ };
665
+ async execute() {
666
+ return {
667
+ defaultPatterns: DEFAULT_EXCLUSIONS,
668
+ patternCount: DEFAULT_EXCLUSIONS.length,
669
+ description: 'These patterns are automatically excluded during codebase ingestion'
670
+ };
671
+ }
672
+ }
673
+ /**
674
+ * GetSupportedLanguagesTool - list all supported languages
675
+ */
676
+ export class GetSupportedLanguagesTool {
677
+ name = 'get_supported_languages';
678
+ description = 'Get list of all programming languages supported for detection and indexing.';
679
+ inputSchema = {
680
+ type: 'object',
681
+ properties: {
682
+ type: {
683
+ type: 'string',
684
+ enum: ['all', 'programming', 'markup', 'data', 'config', 'prose'],
685
+ description: 'Filter by language type'
686
+ }
687
+ }
688
+ };
689
+ async execute(params) {
690
+ const filterType = params.type;
691
+ let languages = Object.values(LANGUAGE_REGISTRY)
692
+ .filter(l => l.id !== 'unknown');
693
+ if (filterType && filterType !== 'all') {
694
+ languages = languages.filter(l => l.type === filterType);
695
+ }
696
+ return {
697
+ count: languages.length,
698
+ languages: languages.map(l => ({
699
+ id: l.id,
700
+ name: l.name,
701
+ type: l.type,
702
+ extensions: l.extensions,
703
+ supportsEmbeddings: l.supportsEmbeddings
704
+ }))
705
+ };
706
+ }
707
+ }
708
+ /**
709
+ * GetCodePointersTool - understand how code connects
710
+ *
711
+ * answers questions like:
712
+ * - "what files import this file?"
713
+ * - "what calls this function?"
714
+ * - "where is this class used?"
715
+ *
716
+ * traces through dependencies and definitions to show real connections
717
+ */
718
+ export class GetCodePointersTool {
719
+ pool;
720
+ name = 'get_code_pointers';
721
+ description = 'Get code pointers showing what imports, calls, or uses a file or symbol. Traces through the codebase to find all references.';
722
+ inputSchema = {
723
+ type: 'object',
724
+ properties: {
725
+ filePath: { type: 'string', description: 'File path to find references to' },
726
+ symbol: { type: 'string', description: 'Symbol name (function, class, variable) to find usages of' },
727
+ lineNumber: { type: 'number', description: 'Optional line number to narrow down the search' },
728
+ direction: {
729
+ type: 'string',
730
+ enum: ['incoming', 'outgoing', 'both'],
731
+ description: 'incoming = what imports/calls this, outgoing = what this imports/calls'
732
+ },
733
+ includeContent: { type: 'boolean', description: 'Include the actual code at each reference point' }
734
+ }
735
+ };
736
+ constructor(pool) {
737
+ this.pool = pool;
738
+ }
739
+ async execute(params) {
740
+ const direction = params.direction ?? 'both';
741
+ const includeContent = params.includeContent ?? false;
742
+ // Get project path for filtering
743
+ const projectPath = getProjectContext().getProjectPath();
744
+ const results = { incoming: [], outgoing: [], definitions: [] };
745
+ // If we have a file path, find its dependencies
746
+ if (params.filePath) {
747
+ // INCOMING: What imports this file? - filtered by project
748
+ if (direction === 'incoming' || direction === 'both') {
749
+ const incomingQuery = `
750
+ SELECT
751
+ cd.source_file_path,
752
+ cd.import_statement,
753
+ cd.imported_names,
754
+ cd.line_number,
755
+ cf.content
756
+ FROM code_dependencies cd
757
+ LEFT JOIN codebase_files cf ON cf.file_path = cd.source_file_path AND cf.project_path = $2
758
+ WHERE (cd.target_path LIKE $1 OR cd.resolved_path LIKE $1)
759
+ AND cd.project_path = $2
760
+ ORDER BY cd.source_file_path
761
+ LIMIT 50
762
+ `;
763
+ const pattern = '%' + params.filePath.replace(/^.*\//, '') + '%';
764
+ const incomingResult = await this.pool.queryWithSwag(incomingQuery, [pattern, projectPath]);
765
+ for (const row of incomingResult.rows) {
766
+ results.incoming.push({
767
+ type: 'import',
768
+ sourceFile: row.source_file_path,
769
+ sourceLine: row.line_number,
770
+ importStatement: row.import_statement,
771
+ symbol: row.imported_names?.join(', '),
772
+ context: includeContent && row.content
773
+ ? this.getContextLines(row.content, row.line_number, 2)
774
+ : undefined
775
+ });
776
+ }
777
+ }
778
+ // OUTGOING: What does this file import? - filtered by project
779
+ if (direction === 'outgoing' || direction === 'both') {
780
+ const outgoingQuery = `
781
+ SELECT
782
+ cd.target_path,
783
+ cd.resolved_path,
784
+ cd.import_statement,
785
+ cd.imported_names,
786
+ cd.line_number,
787
+ cd.is_external,
788
+ cd.package_name
789
+ FROM code_dependencies cd
790
+ WHERE cd.source_file_path LIKE $1
791
+ AND cd.project_path = $2
792
+ ORDER BY cd.line_number
793
+ LIMIT 50
794
+ `;
795
+ const outgoingResult = await this.pool.queryWithSwag(outgoingQuery, ['%' + params.filePath + '%', projectPath]);
796
+ for (const row of outgoingResult.rows) {
797
+ results.outgoing.push({
798
+ type: row.is_external ? 'external_import' : 'local_import',
799
+ targetFile: row.resolved_path ?? row.target_path,
800
+ targetLine: row.line_number,
801
+ importStatement: row.import_statement,
802
+ symbol: row.imported_names?.join(', ') || row.package_name
803
+ });
804
+ }
805
+ }
806
+ }
807
+ // If we have a symbol, find where it's defined and used
808
+ if (params.symbol) {
809
+ // Find definitions - filtered by project
810
+ const defQuery = `
811
+ SELECT
812
+ cd.file_id,
813
+ cd.name,
814
+ cd.definition_type,
815
+ cd.line_number,
816
+ cd.signature,
817
+ cf.file_path,
818
+ cf.content
819
+ FROM code_definitions cd
820
+ JOIN codebase_files cf ON cf.id = cd.file_id
821
+ WHERE cd.name = $1
822
+ AND cd.project_path = $2
823
+ ORDER BY cf.file_path
824
+ LIMIT 20
825
+ `;
826
+ const defResult = await this.pool.queryWithSwag(defQuery, [params.symbol, projectPath]);
827
+ for (const row of defResult.rows) {
828
+ results.definitions.push({
829
+ file: row.file_path,
830
+ line: row.line_number,
831
+ type: row.definition_type,
832
+ name: row.name,
833
+ signature: row.signature,
834
+ content: includeContent && row.content
835
+ ? this.getContextLines(row.content, row.line_number, 3)
836
+ : undefined
837
+ });
838
+ }
839
+ // Find usages via text search - filtered by project
840
+ const usageQuery = `
841
+ SELECT
842
+ id, file_path, content
843
+ FROM codebase_files
844
+ WHERE content ILIKE $1
845
+ AND chunk_index IS NULL
846
+ AND project_path = $2
847
+ LIMIT 30
848
+ `;
849
+ const usageResult = await this.pool.queryWithSwag(usageQuery, ['%' + params.symbol + '%', projectPath]);
850
+ for (const row of usageResult.rows) {
851
+ // Find the actual line numbers where symbol appears
852
+ const lines = row.content.split('\n');
853
+ for (let i = 0; i < lines.length; i++) {
854
+ if (lines[i]?.includes(params.symbol)) {
855
+ // Skip if this is the definition itself
856
+ const isDefinition = results.definitions.some(d => d.file === row.file_path && d.line === i + 1);
857
+ if (!isDefinition) {
858
+ results.incoming.push({
859
+ type: 'usage',
860
+ sourceFile: row.file_path,
861
+ sourceLine: i + 1,
862
+ symbol: params.symbol,
863
+ context: includeContent
864
+ ? this.getContextLines(row.content, i + 1, 1)
865
+ : undefined
866
+ });
867
+ }
868
+ // Limit usages per file
869
+ if (results.incoming.filter(r => r.sourceFile === row.file_path).length >= 5)
870
+ break;
871
+ }
872
+ }
873
+ }
874
+ }
875
+ // Apply Chinese compactor for token efficiency
876
+ return compactResponse({
877
+ query: {
878
+ filePath: params.filePath,
879
+ symbol: params.symbol,
880
+ lineNumber: params.lineNumber,
881
+ direction
882
+ },
883
+ incoming: results.incoming,
884
+ outgoing: results.outgoing,
885
+ definitions: results.definitions,
886
+ summary: {
887
+ incomingCount: results.incoming.length,
888
+ outgoingCount: results.outgoing.length,
889
+ definitionCount: results.definitions.length,
890
+ message: `Found ${results.incoming.length} references pointing IN, ${results.outgoing.length} pointing OUT, ${results.definitions.length} definitions`
891
+ }
892
+ }, 'search');
893
+ }
894
+ getContextLines(content, lineNumber, context) {
895
+ const lines = content.split('\n');
896
+ const start = Math.max(0, lineNumber - context - 1);
897
+ const end = Math.min(lines.length, lineNumber + context);
898
+ return lines.slice(start, end).map((line, i) => {
899
+ const num = start + i + 1;
900
+ const marker = num === lineNumber ? '>' : ' ';
901
+ return `${marker}${num.toString().padStart(4)}: ${line.slice(0, 150)}`;
902
+ }).join('\n');
903
+ }
904
+ }
905
+ /**
906
+ * GetRecentChangesTool - show recent file changes from history
907
+ */
908
+ export class GetRecentChangesTool {
909
+ pool;
910
+ name = 'get_recent_changes';
911
+ description = 'Get recent file changes from the change history. Shows what files were modified, added, or deleted.';
912
+ inputSchema = {
913
+ type: 'object',
914
+ properties: {
915
+ limit: { type: 'number', description: 'Max changes to return (default 20)' },
916
+ filePath: { type: 'string', description: 'Filter to specific file path' },
917
+ changeType: {
918
+ type: 'string',
919
+ enum: ['add', 'modify', 'delete'],
920
+ description: 'Filter by change type'
921
+ },
922
+ since: { type: 'string', description: 'ISO datetime - only show changes since this time' },
923
+ includeContent: { type: 'boolean', description: 'Include before/after content for changes' }
924
+ }
925
+ };
926
+ constructor(pool) {
927
+ this.pool = pool;
928
+ }
929
+ async execute(params) {
930
+ // Get project path for filtering
931
+ const projectPath = getProjectContext().getProjectPath();
932
+ const conditions = ['project_path = $1'];
933
+ const values = [projectPath];
934
+ let paramIndex = 2;
935
+ if (params.filePath) {
936
+ conditions.push(`file_path LIKE $${paramIndex}`);
937
+ values.push('%' + params.filePath + '%');
938
+ paramIndex++;
939
+ }
940
+ if (params.changeType) {
941
+ conditions.push(`change_type = $${paramIndex}`);
942
+ values.push(params.changeType);
943
+ paramIndex++;
944
+ }
945
+ if (params.since) {
946
+ conditions.push(`detected_at > $${paramIndex}`);
947
+ values.push(params.since);
948
+ paramIndex++;
949
+ }
950
+ const limit = params.limit ?? 20;
951
+ values.push(limit);
952
+ const whereClause = 'WHERE ' + conditions.join(' AND ');
953
+ const query = `
954
+ SELECT
955
+ id, file_path, change_type, previous_hash, new_hash,
956
+ size_before, size_after, line_count_before, line_count_after,
957
+ lines_added, lines_removed, detected_at, file_modified_at,
958
+ metadata
959
+ ${params.includeContent ? ', previous_content, new_content' : ''}
960
+ FROM file_change_history
961
+ ${whereClause}
962
+ ORDER BY detected_at DESC
963
+ LIMIT $${paramIndex}
964
+ `;
965
+ const result = await this.pool.queryWithSwag(query, values);
966
+ // Apply Chinese compactor for token efficiency
967
+ return compactResponse({
968
+ changes: result.rows.map((row) => ({
969
+ id: row.id,
970
+ filePath: row.file_path,
971
+ changeType: row.change_type,
972
+ detectedAt: row.detected_at,
973
+ fileModifiedAt: row.file_modified_at,
974
+ sizeDiff: row.size_after - row.size_before,
975
+ linesDiff: row.line_count_after - row.line_count_before,
976
+ linesAdded: row.lines_added,
977
+ linesRemoved: row.lines_removed,
978
+ previousHash: row.previous_hash,
979
+ newHash: row.new_hash,
980
+ metadata: row.metadata,
981
+ previousContent: params.includeContent ? row.previous_content : undefined,
982
+ newContent: params.includeContent ? row.new_content : undefined
983
+ })),
984
+ count: result.rows.length,
985
+ hasMore: result.rows.length === limit
986
+ }, 'search');
987
+ }
988
+ }
989
+ /**
990
+ * GetFullPointerContextTool - the MEGA context tool
991
+ *
992
+ * gives you EVERYTHING about a file:
993
+ * - full file content
994
+ * - what imports this file (with their code)
995
+ * - what this file imports (with their code)
996
+ * - all definitions in the file
997
+ * - all usages of exported symbols
998
+ * - recent changes
999
+ *
1000
+ * this is the "give me full context on this file" tool
1001
+ */
1002
+ export class GetFullPointerContextTool {
1003
+ pool;
1004
+ name = 'get_full_pointer_context';
1005
+ description = 'Get FULL context for a file: its content, all imports/exports, what uses it, what it uses, definitions, and recent changes. This is the mega-context tool.';
1006
+ inputSchema = {
1007
+ type: 'object',
1008
+ properties: {
1009
+ filePath: { type: 'string', description: 'File path to get full context for (required)' },
1010
+ includeRelatedContent: {
1011
+ type: 'boolean',
1012
+ description: 'Include actual code content of related files (default true)'
1013
+ },
1014
+ relatedContentLines: {
1015
+ type: 'number',
1016
+ description: 'How many context lines to include from related files (default 10)'
1017
+ },
1018
+ maxRelatedFiles: {
1019
+ type: 'number',
1020
+ description: 'Max related files to include (default 20)'
1021
+ }
1022
+ },
1023
+ required: ['filePath']
1024
+ };
1025
+ constructor(pool) {
1026
+ this.pool = pool;
1027
+ }
1028
+ async execute(params) {
1029
+ const includeContent = params.includeRelatedContent ?? true;
1030
+ const contextLines = params.relatedContentLines ?? 10;
1031
+ const maxRelated = params.maxRelatedFiles ?? 20;
1032
+ // Get project path for filtering
1033
+ const projectPath = getProjectContext().getProjectPath();
1034
+ const result = {
1035
+ mainFile: null,
1036
+ imports: [],
1037
+ importedBy: [],
1038
+ definitions: [],
1039
+ recentChanges: [],
1040
+ summary: {
1041
+ totalRelatedFiles: 0,
1042
+ totalDefinitions: 0,
1043
+ totalImports: 0,
1044
+ totalImportedBy: 0,
1045
+ totalUsages: 0
1046
+ }
1047
+ };
1048
+ // 1. Get the main file content - filtered by project
1049
+ const mainFileQuery = `
1050
+ SELECT
1051
+ id, file_path, content, language_name, line_count, size_bytes
1052
+ FROM codebase_files
1053
+ WHERE file_path LIKE $1
1054
+ AND chunk_index IS NULL
1055
+ AND project_path = $2
1056
+ LIMIT 1
1057
+ `;
1058
+ const mainFileResult = await this.pool.queryWithSwag(mainFileQuery, ['%' + params.filePath + '%', projectPath]);
1059
+ if (mainFileResult.rows.length === 0) {
1060
+ return {
1061
+ error: true,
1062
+ message: `File not found: ${params.filePath}`,
1063
+ suggestion: 'Try a partial path match or use list_files to find the exact path'
1064
+ };
1065
+ }
1066
+ const mainFile = mainFileResult.rows[0];
1067
+ result.mainFile = {
1068
+ path: mainFile.file_path,
1069
+ content: mainFile.content,
1070
+ language: mainFile.language_name,
1071
+ lineCount: mainFile.line_count,
1072
+ sizeBytes: mainFile.size_bytes
1073
+ };
1074
+ // 2. Get what this file IMPORTS (outgoing dependencies) - filtered by project
1075
+ const importsQuery = `
1076
+ SELECT
1077
+ cd.target_path,
1078
+ cd.resolved_path,
1079
+ cd.import_statement,
1080
+ cd.imported_names,
1081
+ cd.line_number,
1082
+ cd.is_external,
1083
+ cd.package_name,
1084
+ cf.content as target_content
1085
+ FROM code_dependencies cd
1086
+ LEFT JOIN codebase_files cf ON cf.file_path = cd.resolved_path
1087
+ AND cf.chunk_index IS NULL AND cf.project_path = $3
1088
+ WHERE cd.source_file_path = $1
1089
+ AND cd.project_path = $3
1090
+ ORDER BY cd.line_number
1091
+ LIMIT $2
1092
+ `;
1093
+ const importsResult = await this.pool.queryWithSwag(importsQuery, [mainFile.file_path, maxRelated, projectPath]);
1094
+ for (const row of importsResult.rows) {
1095
+ result.imports.push({
1096
+ targetPath: row.resolved_path ?? row.target_path,
1097
+ importStatement: row.import_statement,
1098
+ importedSymbols: row.imported_names ?? [],
1099
+ line: row.line_number,
1100
+ isExternal: row.is_external ?? false,
1101
+ targetContent: includeContent && row.target_content
1102
+ ? this.extractRelevantContent(row.target_content, row.imported_names, contextLines)
1103
+ : undefined
1104
+ });
1105
+ }
1106
+ result.summary.totalImports = result.imports.length;
1107
+ // 3. Get what IMPORTS this file (incoming dependencies) - filtered by project
1108
+ const importedByQuery = `
1109
+ SELECT
1110
+ cd.source_file_path,
1111
+ cd.import_statement,
1112
+ cd.imported_names,
1113
+ cd.line_number,
1114
+ cf.content as source_content
1115
+ FROM code_dependencies cd
1116
+ LEFT JOIN codebase_files cf ON cf.file_path = cd.source_file_path
1117
+ AND cf.chunk_index IS NULL AND cf.project_path = $3
1118
+ WHERE (cd.target_path LIKE $1 OR cd.resolved_path LIKE $1)
1119
+ AND cd.project_path = $3
1120
+ ORDER BY cd.source_file_path
1121
+ LIMIT $2
1122
+ `;
1123
+ const fileName = mainFile.file_path.split('/').pop() ?? mainFile.file_path;
1124
+ const importedByResult = await this.pool.queryWithSwag(importedByQuery, ['%' + fileName + '%', maxRelated, projectPath]);
1125
+ for (const row of importedByResult.rows) {
1126
+ result.importedBy.push({
1127
+ sourcePath: row.source_file_path,
1128
+ importStatement: row.import_statement,
1129
+ importedSymbols: row.imported_names ?? [],
1130
+ line: row.line_number,
1131
+ sourceContent: includeContent && row.source_content
1132
+ ? this.getContextLines(row.source_content, row.line_number, contextLines)
1133
+ : undefined
1134
+ });
1135
+ }
1136
+ result.summary.totalImportedBy = result.importedBy.length;
1137
+ // 4. Get definitions in this file - filtered by project
1138
+ const definitionsQuery = `
1139
+ SELECT
1140
+ name, definition_type, line_number, signature, is_exported
1141
+ FROM code_definitions
1142
+ WHERE file_id = $1
1143
+ AND project_path = $2
1144
+ ORDER BY line_number
1145
+ `;
1146
+ const definitionsResult = await this.pool.queryWithSwag(definitionsQuery, [mainFile.id, projectPath]);
1147
+ let totalUsages = 0;
1148
+ for (const def of definitionsResult.rows) {
1149
+ const definition = {
1150
+ name: def.name,
1151
+ type: def.definition_type,
1152
+ line: def.line_number,
1153
+ signature: def.signature,
1154
+ usedBy: []
1155
+ };
1156
+ // Find usages of this definition (only if exported) - filtered by project
1157
+ if (def.is_exported && includeContent) {
1158
+ const usageQuery = `
1159
+ SELECT file_path, content
1160
+ FROM codebase_files
1161
+ WHERE content ILIKE $1
1162
+ AND file_path != $2
1163
+ AND chunk_index IS NULL
1164
+ AND project_path = $3
1165
+ LIMIT 10
1166
+ `;
1167
+ const usageResult = await this.pool.queryWithSwag(usageQuery, ['%' + def.name + '%', mainFile.file_path, projectPath]);
1168
+ for (const usage of usageResult.rows) {
1169
+ const lines = usage.content.split('\n');
1170
+ for (let i = 0; i < lines.length; i++) {
1171
+ if (lines[i]?.includes(def.name)) {
1172
+ definition.usedBy.push({
1173
+ file: usage.file_path,
1174
+ line: i + 1,
1175
+ context: this.getContextLines(usage.content, i + 1, 2)
1176
+ });
1177
+ totalUsages++;
1178
+ if (definition.usedBy.length >= 5)
1179
+ break;
1180
+ }
1181
+ }
1182
+ }
1183
+ }
1184
+ result.definitions.push(definition);
1185
+ }
1186
+ result.summary.totalDefinitions = result.definitions.length;
1187
+ result.summary.totalUsages = totalUsages;
1188
+ // 5. Get recent changes to this file - filtered by project
1189
+ const changesQuery = `
1190
+ SELECT
1191
+ change_type, detected_at,
1192
+ COALESCE(size_after, 0) - COALESCE(size_before, 0) as size_diff,
1193
+ COALESCE(line_count_after, 0) - COALESCE(line_count_before, 0) as lines_diff
1194
+ FROM file_change_history
1195
+ WHERE file_path = $1
1196
+ AND project_path = $2
1197
+ ORDER BY detected_at DESC
1198
+ LIMIT 5
1199
+ `;
1200
+ const changesResult = await this.pool.queryWithSwag(changesQuery, [mainFile.file_path, projectPath]);
1201
+ result.recentChanges = changesResult.rows.map((row) => ({
1202
+ changeType: row.change_type,
1203
+ detectedAt: row.detected_at,
1204
+ sizeDiff: row.size_diff,
1205
+ linesDiff: row.lines_diff
1206
+ }));
1207
+ // Calculate total related files
1208
+ const relatedPaths = new Set();
1209
+ result.imports.forEach(i => relatedPaths.add(i.targetPath));
1210
+ result.importedBy.forEach(i => relatedPaths.add(i.sourcePath));
1211
+ result.definitions.forEach(d => d.usedBy.forEach(u => relatedPaths.add(u.file)));
1212
+ result.summary.totalRelatedFiles = relatedPaths.size;
1213
+ // Apply Chinese compactor for token efficiency
1214
+ return compactResponse(result, 'search');
1215
+ }
1216
+ getContextLines(content, lineNumber, contextSize) {
1217
+ const lines = content.split('\n');
1218
+ const start = Math.max(0, lineNumber - contextSize - 1);
1219
+ const end = Math.min(lines.length, lineNumber + contextSize);
1220
+ return lines.slice(start, end).map((line, i) => {
1221
+ const num = start + i + 1;
1222
+ const marker = num === lineNumber ? '>' : ' ';
1223
+ return `${marker}${num.toString().padStart(4)}: ${line.slice(0, 200)}`;
1224
+ }).join('\n');
1225
+ }
1226
+ extractRelevantContent(content, symbolNames, contextLines) {
1227
+ if (!symbolNames?.length) {
1228
+ // Return first N lines if no specific symbols
1229
+ return content.split('\n').slice(0, contextLines * 2).join('\n');
1230
+ }
1231
+ // Find and extract content around each symbol
1232
+ const lines = content.split('\n');
1233
+ const relevantLines = new Set();
1234
+ for (const symbol of symbolNames) {
1235
+ for (let i = 0; i < lines.length; i++) {
1236
+ if (lines[i]?.includes(symbol)) {
1237
+ for (let j = Math.max(0, i - contextLines); j < Math.min(lines.length, i + contextLines + 1); j++) {
1238
+ relevantLines.add(j);
1239
+ }
1240
+ }
1241
+ }
1242
+ }
1243
+ if (relevantLines.size === 0) {
1244
+ return content.split('\n').slice(0, contextLines * 2).join('\n');
1245
+ }
1246
+ const sortedLines = Array.from(relevantLines).sort((a, b) => a - b);
1247
+ const result = [];
1248
+ let lastLine = -2;
1249
+ for (const lineNum of sortedLines) {
1250
+ if (lineNum > lastLine + 1) {
1251
+ if (result.length > 0)
1252
+ result.push(' ...');
1253
+ }
1254
+ result.push(`${(lineNum + 1).toString().padStart(4)}: ${lines[lineNum]?.slice(0, 200) ?? ''}`);
1255
+ lastLine = lineNum;
1256
+ }
1257
+ return result.join('\n');
1258
+ }
1259
+ }
1260
+ /**
1261
+ * Factory function to create all codebase tools
1262
+ */
1263
+ export function createCodebaseTools(pool, embeddingProvider) {
1264
+ return [
1265
+ new IngestCodebaseTool(pool, embeddingProvider),
1266
+ new FindInCodebaseTool(pool, embeddingProvider),
1267
+ new GetFileContentTool(pool),
1268
+ new ListFilesTool(pool),
1269
+ new CodebaseStatsTool(pool),
1270
+ new FindRelatedFilesTool(pool),
1271
+ new TextSearchInCodebaseTool(pool),
1272
+ new GetExclusionPatternsTool(),
1273
+ new GetSupportedLanguagesTool(),
1274
+ new GetCodePointersTool(pool),
1275
+ new GetRecentChangesTool(pool),
1276
+ new GetFullPointerContextTool(pool)
1277
+ ];
1278
+ }
1279
+ //# sourceMappingURL=codebaseTools.js.map