@crownpeak/dqm-react-component-dev-mcp 1.2.0

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 (444) hide show
  1. package/README.md +138 -0
  2. package/data/.env.example +22 -0
  3. package/data/.gitattributes +47 -0
  4. package/data/.glfrc.json +7 -0
  5. package/data/.husky/pre-commit +5 -0
  6. package/data/.nvmrc +1 -0
  7. package/data/CHANGELOG.md +75 -0
  8. package/data/CODE_OF_CONDUCT.md +129 -0
  9. package/data/CONTRIBUTING.md +203 -0
  10. package/data/DOCS-STRUCTURE.md +307 -0
  11. package/data/I18N.md +292 -0
  12. package/data/LICENSE +22 -0
  13. package/data/README.md +315 -0
  14. package/data/SECURITY.md +125 -0
  15. package/data/WIKI-DEPLOYMENT.md +348 -0
  16. package/data/docs/AI-FEATURES.md +610 -0
  17. package/data/docs/API-REFERENCE.md +1022 -0
  18. package/data/docs/AUTHENTICATION.md +301 -0
  19. package/data/docs/BACKEND-API.md +468 -0
  20. package/data/docs/DEVELOPMENT.md +375 -0
  21. package/data/docs/EXAMPLES.md +622 -0
  22. package/data/docs/MCP-SERVER.md +307 -0
  23. package/data/docs/MIGRATION-GUIDE.md +367 -0
  24. package/data/docs/NPM-PUBLISH.md +193 -0
  25. package/data/docs/QUICKSTART.md +206 -0
  26. package/data/docs/REDIS-SETUP.md +162 -0
  27. package/data/docs/SERVER.md +228 -0
  28. package/data/docs/TROUBLESHOOTING.md +657 -0
  29. package/data/docs/WIDGET-GUIDE.md +638 -0
  30. package/data/docs/WIKI-HOME.md +58 -0
  31. package/data/docs/WIKI-SIDEBAR.md +39 -0
  32. package/data/package.json +171 -0
  33. package/data/playwright.config.ts +64 -0
  34. package/data/probe/.cargo/config.toml +10 -0
  35. package/data/probe/.claude/commands/performance-review.md +15 -0
  36. package/data/probe/.clinerules +288 -0
  37. package/data/probe/.dockerignore +57 -0
  38. package/data/probe/.githooks/post-commit +11 -0
  39. package/data/probe/.githooks/pre-commit +99 -0
  40. package/data/probe/.githooks/pre-commit-vow +9 -0
  41. package/data/probe/.prompts/engineer.md +41 -0
  42. package/data/probe/.roomodes +28 -0
  43. package/data/probe/.windsurfrules +0 -0
  44. package/data/probe/BASH_TOOL_SUMMARY.md +148 -0
  45. package/data/probe/BENCHMARKING.md +256 -0
  46. package/data/probe/CLAUDE.md +226 -0
  47. package/data/probe/CODE_OF_CONDUCT.md +128 -0
  48. package/data/probe/CONTRIBUTING.md +193 -0
  49. package/data/probe/Cargo.toml +120 -0
  50. package/data/probe/Cross.toml +10 -0
  51. package/data/probe/DOCKER-README.md +224 -0
  52. package/data/probe/Dockerfile +32 -0
  53. package/data/probe/ENHANCED_DEBUG_TELEMETRY.md +188 -0
  54. package/data/probe/LICENSE +201 -0
  55. package/data/probe/Makefile +210 -0
  56. package/data/probe/README.md +824 -0
  57. package/data/probe/SECURITY.md +67 -0
  58. package/data/probe/WINDOWS-GUIDE.md +294 -0
  59. package/data/probe/benches/parsing_benchmarks.rs +370 -0
  60. package/data/probe/benches/search_benchmarks.rs +599 -0
  61. package/data/probe/benches/simd_benchmarks.rs +372 -0
  62. package/data/probe/benches/timing_benchmarks.rs +287 -0
  63. package/data/probe/build-windows.bat +229 -0
  64. package/data/probe/codex-config/config.toml +6 -0
  65. package/data/probe/docs/PERFORMANCE_OPTIMIZATION.md +161 -0
  66. package/data/probe/examples/cache_demo.rs +46 -0
  67. package/data/probe/examples/chat/.dockerignore +37 -0
  68. package/data/probe/examples/chat/ChatSessionManager.js +295 -0
  69. package/data/probe/examples/chat/Dockerfile +98 -0
  70. package/data/probe/examples/chat/LICENSE +201 -0
  71. package/data/probe/examples/chat/LOCAL_IMAGE_SUPPORT.md +195 -0
  72. package/data/probe/examples/chat/MCP_INTEGRATION.md +400 -0
  73. package/data/probe/examples/chat/README.md +338 -0
  74. package/data/probe/examples/chat/TRACING.md +226 -0
  75. package/data/probe/examples/chat/appTracer.js +968 -0
  76. package/data/probe/examples/chat/auth.js +76 -0
  77. package/data/probe/examples/chat/bin/probe-chat.js +13 -0
  78. package/data/probe/examples/chat/build.js +104 -0
  79. package/data/probe/examples/chat/cancelRequest.js +84 -0
  80. package/data/probe/examples/chat/demo-agentic-image-flow.js +88 -0
  81. package/data/probe/examples/chat/demo-local-images.js +128 -0
  82. package/data/probe/examples/chat/fileSpanExporter.js +181 -0
  83. package/data/probe/examples/chat/implement/README.md +228 -0
  84. package/data/probe/examples/chat/implement/backends/AiderBackend.js +750 -0
  85. package/data/probe/examples/chat/implement/backends/BaseBackend.js +276 -0
  86. package/data/probe/examples/chat/implement/backends/ClaudeCodeBackend.js +767 -0
  87. package/data/probe/examples/chat/implement/backends/MockBackend.js +237 -0
  88. package/data/probe/examples/chat/implement/backends/registry.js +85 -0
  89. package/data/probe/examples/chat/implement/core/BackendManager.js +567 -0
  90. package/data/probe/examples/chat/implement/core/ImplementTool.js +354 -0
  91. package/data/probe/examples/chat/implement/core/config.js +428 -0
  92. package/data/probe/examples/chat/implement/core/timeouts.js +58 -0
  93. package/data/probe/examples/chat/implement/core/utils.js +496 -0
  94. package/data/probe/examples/chat/implement/types/BackendTypes.js +126 -0
  95. package/data/probe/examples/chat/index.js +669 -0
  96. package/data/probe/examples/chat/mcpServer.js +341 -0
  97. package/data/probe/examples/chat/npm/LICENSE +15 -0
  98. package/data/probe/examples/chat/npm/README.md +168 -0
  99. package/data/probe/examples/chat/npm/bin/probe-chat.js +156 -0
  100. package/data/probe/examples/chat/npm/index.js +259 -0
  101. package/data/probe/examples/chat/npm/package.json +54 -0
  102. package/data/probe/examples/chat/package.json +102 -0
  103. package/data/probe/examples/chat/probeChat.js +456 -0
  104. package/data/probe/examples/chat/probeTool.js +491 -0
  105. package/data/probe/examples/chat/storage/JsonChatStorage.js +476 -0
  106. package/data/probe/examples/chat/telemetry.js +281 -0
  107. package/data/probe/examples/chat/test/integration/chatFlows.test.js +320 -0
  108. package/data/probe/examples/chat/test/integration/toolCalling.test.js +471 -0
  109. package/data/probe/examples/chat/test/mocks/mockLLMProvider.js +269 -0
  110. package/data/probe/examples/chat/test/test-backends.js +90 -0
  111. package/data/probe/examples/chat/test/testUtils.js +530 -0
  112. package/data/probe/examples/chat/test/unit/backendTimeout.test.js +161 -0
  113. package/data/probe/examples/chat/test/unit/packageFiles.test.js +120 -0
  114. package/data/probe/examples/chat/test/verify-tests.js +118 -0
  115. package/data/probe/examples/chat/test-agentic-image-loading.js +294 -0
  116. package/data/probe/examples/chat/test-ai-sdk-telemetry.js +204 -0
  117. package/data/probe/examples/chat/test-chat-tracing.js +38 -0
  118. package/data/probe/examples/chat/test-direct-function.js +49 -0
  119. package/data/probe/examples/chat/test-file-size-validation.js +103 -0
  120. package/data/probe/examples/chat/test-full-mcp-integration.js +258 -0
  121. package/data/probe/examples/chat/test-github-context.txt +12 -0
  122. package/data/probe/examples/chat/test-hierarchy.js +203 -0
  123. package/data/probe/examples/chat/test-image-spans.js +37 -0
  124. package/data/probe/examples/chat/test-local-image-reading.js +176 -0
  125. package/data/probe/examples/chat/test-mcp-integration.js +136 -0
  126. package/data/probe/examples/chat/test-mcp-probe-server.js +161 -0
  127. package/data/probe/examples/chat/test-mcp-with-ai.js +279 -0
  128. package/data/probe/examples/chat/test-multiple-allowed-dirs.js +111 -0
  129. package/data/probe/examples/chat/test-probe-mcp-server.js +110 -0
  130. package/data/probe/examples/chat/test-security-validation.js +145 -0
  131. package/data/probe/examples/chat/test-simple-tracing.js +32 -0
  132. package/data/probe/examples/chat/test-trace-verification.js +235 -0
  133. package/data/probe/examples/chat/test-tracing.js +114 -0
  134. package/data/probe/examples/chat/tokenCounter.js +419 -0
  135. package/data/probe/examples/chat/tokenUsageDisplay.js +134 -0
  136. package/data/probe/examples/chat/webServer.js +1103 -0
  137. package/data/probe/examples/reranker/Cargo.toml +33 -0
  138. package/data/probe/examples/reranker/DEBUG_OUTPUT_ANALYSIS.md +71 -0
  139. package/data/probe/examples/reranker/MODELS.md +66 -0
  140. package/data/probe/examples/reranker/MODEL_COMPARISON.md +60 -0
  141. package/data/probe/examples/reranker/MULTI_MODEL_ANALYSIS.md +176 -0
  142. package/data/probe/examples/reranker/PERFORMANCE_SUMMARY.md +156 -0
  143. package/data/probe/examples/reranker/README.md +347 -0
  144. package/data/probe/examples/reranker/RUST_BERT_COMPARISON.md +82 -0
  145. package/data/probe/examples/reranker/TOKENIZATION_GUIDE.md +120 -0
  146. package/data/probe/examples/reranker/check_rust_tokenizer.py +108 -0
  147. package/data/probe/examples/reranker/convert_to_torchscript.py +109 -0
  148. package/data/probe/examples/reranker/debug_scoring.py +189 -0
  149. package/data/probe/examples/reranker/debug_tokenization.py +154 -0
  150. package/data/probe/examples/reranker/download_models.sh +73 -0
  151. package/data/probe/examples/reranker/requirements.txt +13 -0
  152. package/data/probe/examples/reranker/run_comprehensive_benchmark.sh +83 -0
  153. package/data/probe/examples/reranker/rust_bert_test/Cargo.toml +12 -0
  154. package/data/probe/examples/reranker/rust_bert_test/README.md +54 -0
  155. package/data/probe/examples/reranker/simple_test.py +50 -0
  156. package/data/probe/examples/reranker/test_all_models.sh +63 -0
  157. package/data/probe/examples/reranker/test_bert_results.sh +44 -0
  158. package/data/probe/examples/reranker/test_cross_encoder.py +334 -0
  159. package/data/probe/examples/reranker/test_cross_encoder.sh +80 -0
  160. package/data/probe/examples/reranker/test_exact_comparison.py +151 -0
  161. package/data/probe/examples/reranker/test_parallel_performance.sh +56 -0
  162. package/data/probe/examples/reranker/test_scores.py +132 -0
  163. package/data/probe/install.ps1 +508 -0
  164. package/data/probe/install.sh +460 -0
  165. package/data/probe/npm/CLONE_METHOD_EXAMPLES.md +596 -0
  166. package/data/probe/npm/CONTEXT_COMPACTION.md +303 -0
  167. package/data/probe/npm/DELEGATE_TOOL_README.md +166 -0
  168. package/data/probe/npm/MAID_INTEGRATION.md +313 -0
  169. package/data/probe/npm/MCP_INTEGRATION_SUMMARY.md +241 -0
  170. package/data/probe/npm/README.md +824 -0
  171. package/data/probe/npm/bin/.gitignore +7 -0
  172. package/data/probe/npm/bin/.gitkeep +0 -0
  173. package/data/probe/npm/bin/README.md +12 -0
  174. package/data/probe/npm/bin/probe +167 -0
  175. package/data/probe/npm/docs/CLAUDE_CODE_INTEGRATION.md +414 -0
  176. package/data/probe/npm/docs/CODEX_INTEGRATION.md +502 -0
  177. package/data/probe/npm/docs/EDIT_CREATE_TOOLS.md +233 -0
  178. package/data/probe/npm/docs/RETRY_AND_FALLBACK.md +674 -0
  179. package/data/probe/npm/example-usage.js +335 -0
  180. package/data/probe/npm/examples/multi-engine-demo.js +117 -0
  181. package/data/probe/npm/examples/probe-agent-cli.js +113 -0
  182. package/data/probe/npm/examples/test-agent-edit.js +114 -0
  183. package/data/probe/npm/examples/test-edit-create.js +120 -0
  184. package/data/probe/npm/examples/test-edit-direct.js +114 -0
  185. package/data/probe/npm/index.d.ts +744 -0
  186. package/data/probe/npm/jest.config.js +52 -0
  187. package/data/probe/npm/package.json +117 -0
  188. package/data/probe/npm/scripts/build-agent.cjs +75 -0
  189. package/data/probe/npm/scripts/build-cjs.js +124 -0
  190. package/data/probe/npm/scripts/build-mcp.cjs +36 -0
  191. package/data/probe/npm/scripts/postinstall.js +216 -0
  192. package/data/probe/npm/test-codex-e2e.js +78 -0
  193. package/data/probe/npm/test-download-lock.js +109 -0
  194. package/data/probe/npm/test-grep-security.js +94 -0
  195. package/data/probe/npm/test-grep-simplified.js +63 -0
  196. package/data/probe/npm/test-grep.js +51 -0
  197. package/data/probe/npm/tests/README.md +96 -0
  198. package/data/probe/npm/tests/agent-compact-history.test.js +174 -0
  199. package/data/probe/npm/tests/allow-tests-default.test.js +151 -0
  200. package/data/probe/npm/tests/contextCompactor.test.js +498 -0
  201. package/data/probe/npm/tests/delegate-config.test.js +353 -0
  202. package/data/probe/npm/tests/delegate-integration.test.js +348 -0
  203. package/data/probe/npm/tests/extractor-integration.test.js +162 -0
  204. package/data/probe/npm/tests/extractor.test.js +317 -0
  205. package/data/probe/npm/tests/fixtures/sampleDiagrams.js +267 -0
  206. package/data/probe/npm/tests/integration/claude-code-auto-fallback.spec.js +148 -0
  207. package/data/probe/npm/tests/integration/claude-code-multi-step.spec.js +127 -0
  208. package/data/probe/npm/tests/integration/claude-code-tool-events.spec.js +163 -0
  209. package/data/probe/npm/tests/integration/codex-auto-fallback.spec.js +191 -0
  210. package/data/probe/npm/tests/integration/codex-tool-events.spec.js +147 -0
  211. package/data/probe/npm/tests/integration/examplesChatMcp.test.js +402 -0
  212. package/data/probe/npm/tests/integration/mcpDotenvSupport.test.js +174 -0
  213. package/data/probe/npm/tests/integration/mcpErrorHandling.test.js +566 -0
  214. package/data/probe/npm/tests/integration/mcpRobustness.test.js +564 -0
  215. package/data/probe/npm/tests/integration/mcpStdoutPurity.test.js +355 -0
  216. package/data/probe/npm/tests/integration/probeAgentMcp.test.js +398 -0
  217. package/data/probe/npm/tests/integration/retryFallback.test.js +368 -0
  218. package/data/probe/npm/tests/integration/schema-in-initial-message.test.js +318 -0
  219. package/data/probe/npm/tests/integration/schema-validation-loop-prevention.test.js +244 -0
  220. package/data/probe/npm/tests/integration/schemaRetryLogic.test.js +94 -0
  221. package/data/probe/npm/tests/integration/validationFlow.test.js +329 -0
  222. package/data/probe/npm/tests/manual/test-codex-basic.js +110 -0
  223. package/data/probe/npm/tests/mcp/mcpClientManager.test.js +614 -0
  224. package/data/probe/npm/tests/mcp/mcpConfig.test.js +359 -0
  225. package/data/probe/npm/tests/mcp/mcpXmlBridge.test.js +436 -0
  226. package/data/probe/npm/tests/mcp/mockMcpServer.js +510 -0
  227. package/data/probe/npm/tests/mcp-strict-syntax.test.js +319 -0
  228. package/data/probe/npm/tests/mermaidQuoteEscaping.test.js +214 -0
  229. package/data/probe/npm/tests/nestedQuoteFix.test.js +40 -0
  230. package/data/probe/npm/tests/setup.js +46 -0
  231. package/data/probe/npm/tests/unit/allowed-tools.test.js +513 -0
  232. package/data/probe/npm/tests/unit/attempt-completion-closing-tag-in-content.test.js +188 -0
  233. package/data/probe/npm/tests/unit/attemptCompletionJsonFix.test.js +238 -0
  234. package/data/probe/npm/tests/unit/attemptCompletionJsonIssue.test.js +128 -0
  235. package/data/probe/npm/tests/unit/backtickAutoFix.test.js +35 -0
  236. package/data/probe/npm/tests/unit/bash-probe-agent-integration.test.js +389 -0
  237. package/data/probe/npm/tests/unit/bash-simple-commands.test.js +324 -0
  238. package/data/probe/npm/tests/unit/bash-tool-comprehensive.test.js +371 -0
  239. package/data/probe/npm/tests/unit/bash-tool-integration.test.js +310 -0
  240. package/data/probe/npm/tests/unit/bash-tool.test.js +341 -0
  241. package/data/probe/npm/tests/unit/completion-prompt.test.js +379 -0
  242. package/data/probe/npm/tests/unit/cwd-path-options.test.js +287 -0
  243. package/data/probe/npm/tests/unit/delegate-limits.test.js +422 -0
  244. package/data/probe/npm/tests/unit/direct-content-attempt-completion.test.js +235 -0
  245. package/data/probe/npm/tests/unit/edit-create-tools.test.js +609 -0
  246. package/data/probe/npm/tests/unit/enhancedMermaidValidation.test.js +577 -0
  247. package/data/probe/npm/tests/unit/extract-content.test.js +83 -0
  248. package/data/probe/npm/tests/unit/extract-multiple-targets.test.js +89 -0
  249. package/data/probe/npm/tests/unit/fallbackManager.test.js +442 -0
  250. package/data/probe/npm/tests/unit/githubCompatibilityValidation.test.js +258 -0
  251. package/data/probe/npm/tests/unit/imageConfig.test.js +149 -0
  252. package/data/probe/npm/tests/unit/imagePathResolution.test.js +345 -0
  253. package/data/probe/npm/tests/unit/json-fixing-agent.test.js +238 -0
  254. package/data/probe/npm/tests/unit/json-validation-enhanced-errors.test.js +199 -0
  255. package/data/probe/npm/tests/unit/jsonValidationInfiniteLoopFix.test.js +228 -0
  256. package/data/probe/npm/tests/unit/maidIntegration.test.js +139 -0
  257. package/data/probe/npm/tests/unit/maxIterationsWarning.test.js +195 -0
  258. package/data/probe/npm/tests/unit/mermaidEdgeLabelFix.test.js +161 -0
  259. package/data/probe/npm/tests/unit/mermaidHtmlEntities.test.js +76 -0
  260. package/data/probe/npm/tests/unit/mermaidInfiniteLoopFix.test.js +64 -0
  261. package/data/probe/npm/tests/unit/mermaidValidation.test.js +723 -0
  262. package/data/probe/npm/tests/unit/mermaidValidationVisorExample.test.js +309 -0
  263. package/data/probe/npm/tests/unit/probe-agent-clone-realistic.test.js +643 -0
  264. package/data/probe/npm/tests/unit/probe-agent-clone.test.js +476 -0
  265. package/data/probe/npm/tests/unit/probe-agent-delegate.test.js +400 -0
  266. package/data/probe/npm/tests/unit/probe-agent-model-option.test.js +118 -0
  267. package/data/probe/npm/tests/unit/probeTool-security.test.js +283 -0
  268. package/data/probe/npm/tests/unit/readImageTool.test.js +418 -0
  269. package/data/probe/npm/tests/unit/retryManager.test.js +317 -0
  270. package/data/probe/npm/tests/unit/schema-aware-reminders.test.js +288 -0
  271. package/data/probe/npm/tests/unit/schemaDefinitionDetection.test.js +115 -0
  272. package/data/probe/npm/tests/unit/schemaUtils.test.js +1268 -0
  273. package/data/probe/npm/tests/unit/simpleTelemetry.test.js +282 -0
  274. package/data/probe/npm/tests/unit/simplified-attempt-completion.test.js +274 -0
  275. package/data/probe/npm/tests/unit/single-quote-json-bug.test.js +231 -0
  276. package/data/probe/npm/tests/unit/subgraphAutoFix.test.js +110 -0
  277. package/data/probe/npm/tests/unit/system-prompt.test.js +32 -0
  278. package/data/probe/npm/tests/unit/types-probe-agent-options.test.js +42 -0
  279. package/data/probe/npm/tests/unit/xmlParsing.test.js +720 -0
  280. package/data/probe/npm/tsconfig.json +21 -0
  281. package/data/probe/result1.txt +19 -0
  282. package/data/probe/result2.txt +26 -0
  283. package/data/probe/scripts/benchmark.sh +270 -0
  284. package/data/probe/scripts/cache_memory_analysis.rs +844 -0
  285. package/data/probe/scripts/claude-hook-wrapper.sh +56 -0
  286. package/data/probe/site/.env.example +10 -0
  287. package/data/probe/site/DEPLOYMENT.md +86 -0
  288. package/data/probe/site/README.md +183 -0
  289. package/data/probe/site/adding-languages.md +135 -0
  290. package/data/probe/site/ai-chat.md +427 -0
  291. package/data/probe/site/ai-integration.md +1488 -0
  292. package/data/probe/site/blog/agentic-flow-custom-xml-protocol.md +407 -0
  293. package/data/probe/site/blog/index.md +118 -0
  294. package/data/probe/site/blog/v0.6.0-release.md +426 -0
  295. package/data/probe/site/blog.md +8 -0
  296. package/data/probe/site/changelog.md +200 -0
  297. package/data/probe/site/cli-mode.md +437 -0
  298. package/data/probe/site/code-extraction.md +436 -0
  299. package/data/probe/site/contributing/README.md +9 -0
  300. package/data/probe/site/contributing/documentation-cross-references.md +215 -0
  301. package/data/probe/site/contributing/documentation-maintenance.md +275 -0
  302. package/data/probe/site/contributing/documentation-structure.md +75 -0
  303. package/data/probe/site/documentation-cross-references.md +215 -0
  304. package/data/probe/site/documentation-guide.md +132 -0
  305. package/data/probe/site/documentation-maintenance.md +275 -0
  306. package/data/probe/site/features.md +147 -0
  307. package/data/probe/site/how-it-works.md +118 -0
  308. package/data/probe/site/index.md +175 -0
  309. package/data/probe/site/index.md.bak +133 -0
  310. package/data/probe/site/installation.md +235 -0
  311. package/data/probe/site/integrations/docker.md +248 -0
  312. package/data/probe/site/integrations/github-actions.md +413 -0
  313. package/data/probe/site/language-support-overview.md +168 -0
  314. package/data/probe/site/mcp-integration.md +587 -0
  315. package/data/probe/site/mcp-server.md +304 -0
  316. package/data/probe/site/navigation-structure.md +76 -0
  317. package/data/probe/site/nodejs-sdk.md +798 -0
  318. package/data/probe/site/output-formats.md +625 -0
  319. package/data/probe/site/package.json +21 -0
  320. package/data/probe/site/public/_headers +28 -0
  321. package/data/probe/site/public/_redirects +11 -0
  322. package/data/probe/site/quick-start.md +289 -0
  323. package/data/probe/site/search-functionality.md +291 -0
  324. package/data/probe/site/search-reference.md +291 -0
  325. package/data/probe/site/supported-languages.md +215 -0
  326. package/data/probe/site/use-cases/README.md +8 -0
  327. package/data/probe/site/use-cases/advanced-cli.md +253 -0
  328. package/data/probe/site/use-cases/ai-code-editors.md +239 -0
  329. package/data/probe/site/use-cases/building-ai-tools.md +529 -0
  330. package/data/probe/site/use-cases/cli-ai-workflows.md +285 -0
  331. package/data/probe/site/use-cases/deploying-probe-web-interface.md +255 -0
  332. package/data/probe/site/use-cases/integrating-probe-into-ai-code-editors.md +161 -0
  333. package/data/probe/site/use-cases/nodejs-sdk.md +596 -0
  334. package/data/probe/site/use-cases/team-chat.md +350 -0
  335. package/data/probe/site/web-interface.md +434 -0
  336. package/data/probe/site/wrangler.toml +9 -0
  337. package/data/probe/test-api-key.sh +1 -0
  338. package/data/probe/test-probe-implementation/hello.js +7 -0
  339. package/data/probe/test_cases/demonstrate_early_termination_issues.sh +176 -0
  340. package/data/probe/test_cases/early_termination_issues.rs +533 -0
  341. package/data/probe/test_data/test_nested_struct.go +26 -0
  342. package/data/probe/tests/README.md +286 -0
  343. package/data/probe/tests/README_search_determinism_tests.md +116 -0
  344. package/data/probe/tests/adjacent_comment_test.rs +152 -0
  345. package/data/probe/tests/apostrophe_handling_tests.rs +132 -0
  346. package/data/probe/tests/block_filtering_with_ast_tests.rs +669 -0
  347. package/data/probe/tests/block_merging_tests.rs +396 -0
  348. package/data/probe/tests/c_outline_format_tests.rs +2179 -0
  349. package/data/probe/tests/cache_invalidation_issues.rs.disabled +682 -0
  350. package/data/probe/tests/cache_order_tests.rs +147 -0
  351. package/data/probe/tests/cache_query_scoping_tests.rs +221 -0
  352. package/data/probe/tests/cli_tests.rs +680 -0
  353. package/data/probe/tests/comment_context_integration_test.rs +240 -0
  354. package/data/probe/tests/common.rs +33 -0
  355. package/data/probe/tests/complex_block_merging_tests.rs +599 -0
  356. package/data/probe/tests/complex_query_block_filtering_tests.rs +422 -0
  357. package/data/probe/tests/control_flow_closing_braces_test.rs +91 -0
  358. package/data/probe/tests/cpp_outline_format_tests.rs +1507 -0
  359. package/data/probe/tests/csharp_outline_format_tests.rs +941 -0
  360. package/data/probe/tests/elastic_query_integration_tests.rs +922 -0
  361. package/data/probe/tests/extract_command_tests.rs +1848 -0
  362. package/data/probe/tests/extract_deduplication_tests.rs +146 -0
  363. package/data/probe/tests/extract_input_file_tests.rs +84 -0
  364. package/data/probe/tests/extract_prompt_tests.rs +102 -0
  365. package/data/probe/tests/filename_search_tests.rs +96 -0
  366. package/data/probe/tests/fixtures/user/AssemblyInfo.cs +3 -0
  367. package/data/probe/tests/github_extract_tests.rs +234 -0
  368. package/data/probe/tests/go_comment_test.rs +253 -0
  369. package/data/probe/tests/go_outline_format_tests.rs +2587 -0
  370. package/data/probe/tests/go_path_resolver_tests.rs +96 -0
  371. package/data/probe/tests/html_outline_format_tests.rs +637 -0
  372. package/data/probe/tests/integration_tests.rs +837 -0
  373. package/data/probe/tests/ip_whitelist_test.rs +148 -0
  374. package/data/probe/tests/java_outline_format_tests.rs +1611 -0
  375. package/data/probe/tests/javascript_extract_tests.rs +315 -0
  376. package/data/probe/tests/javascript_outline_format_tests.rs +1464 -0
  377. package/data/probe/tests/json_format_tests.rs +436 -0
  378. package/data/probe/tests/json_schema_validation_tests.rs +450 -0
  379. package/data/probe/tests/lib_usage.rs +60 -0
  380. package/data/probe/tests/line_comment_context_extension_test.rs +459 -0
  381. package/data/probe/tests/line_map_cache_tests.rs +114 -0
  382. package/data/probe/tests/markdown_integration_tests.rs +190 -0
  383. package/data/probe/tests/mocks/test_ip_whitelist.go +11 -0
  384. package/data/probe/tests/mocks/test_object.js +27 -0
  385. package/data/probe/tests/mocks/test_struct.go +50 -0
  386. package/data/probe/tests/multi_keyword_pattern_tests.rs +464 -0
  387. package/data/probe/tests/multi_language_syntax_integration_tests.rs +218 -0
  388. package/data/probe/tests/multiple_capture_groups_tests.rs +169 -0
  389. package/data/probe/tests/negative_compound_word_tests.rs +246 -0
  390. package/data/probe/tests/nested_symbol_extraction_tests.rs +99 -0
  391. package/data/probe/tests/outline_cross_file_interference_test.rs +335 -0
  392. package/data/probe/tests/outline_keyword_preservation_test.rs +67 -0
  393. package/data/probe/tests/output_format_edge_cases_tests.rs +693 -0
  394. package/data/probe/tests/parallel_extraction_tests.rs +178 -0
  395. package/data/probe/tests/parallel_search_tests.rs +355 -0
  396. package/data/probe/tests/path_resolver_tests.rs +698 -0
  397. package/data/probe/tests/php_outline_format_extended_tests.rs +928 -0
  398. package/data/probe/tests/php_outline_format_tests.rs +768 -0
  399. package/data/probe/tests/property_tests.proptest-regressions +9 -0
  400. package/data/probe/tests/property_tests.rs +118 -0
  401. package/data/probe/tests/python_outline_format_tests.rs +1538 -0
  402. package/data/probe/tests/query_command_json_tests.rs +438 -0
  403. package/data/probe/tests/query_command_tests.rs +232 -0
  404. package/data/probe/tests/query_command_xml_tests.rs +569 -0
  405. package/data/probe/tests/quoted_term_with_negative_keyword_tests.rs +216 -0
  406. package/data/probe/tests/required_terms_filename_tests.rs +116 -0
  407. package/data/probe/tests/ruby_outline_format_tests.rs +1011 -0
  408. package/data/probe/tests/rust_line_comment_context_test.rs +151 -0
  409. package/data/probe/tests/rust_outline_format_enhanced_tests.rs +725 -0
  410. package/data/probe/tests/rust_outline_format_tests.rs +843 -0
  411. package/data/probe/tests/schemas/xml_output_schema.xsd +38 -0
  412. package/data/probe/tests/search_determinism_tests.rs +451 -0
  413. package/data/probe/tests/search_hints_tests.rs +253 -0
  414. package/data/probe/tests/special_character_escaping_tests.rs +417 -0
  415. package/data/probe/tests/stemming_compound_word_filtering_tests.rs +535 -0
  416. package/data/probe/tests/strict_elastic_syntax_tests.rs +404 -0
  417. package/data/probe/tests/swift_outline_format_tests.rs +3319 -0
  418. package/data/probe/tests/symbols_tests.rs +166 -0
  419. package/data/probe/tests/test_file.rs +45 -0
  420. package/data/probe/tests/test_tokenize.rs +28 -0
  421. package/data/probe/tests/timeout_tests.rs +82 -0
  422. package/data/probe/tests/tokenization_tests.rs +195 -0
  423. package/data/probe/tests/tokenized_block_filtering_tests.rs +174 -0
  424. package/data/probe/tests/typescript_extract_tests.rs +214 -0
  425. package/data/probe/tests/typescript_outline_format_tests.rs +2188 -0
  426. package/data/probe/tests/xml_format_tests.rs +568 -0
  427. package/data/probe/tests/xml_schema_validation_tests.rs +497 -0
  428. package/data/scripts/postinstall.mjs +9 -0
  429. package/data/scripts/set-version.js +0 -0
  430. package/data/scripts/wiki-build.sh +111 -0
  431. package/data/scripts/wiki-deploy.sh +73 -0
  432. package/data/serve.json +12 -0
  433. package/data/test/demo-dynamic.html +134 -0
  434. package/data/test/demo-esm.html +105 -0
  435. package/data/test/demo-iife.html +78 -0
  436. package/data/tsconfig.json +7 -0
  437. package/data/vite.server.ts +483 -0
  438. package/data/vitest.config.ts +40 -0
  439. package/data/wiki/Home.md +58 -0
  440. package/data/wiki/_Sidebar.md +39 -0
  441. package/docs-mcp.config.json +20 -0
  442. package/package.json +56 -0
  443. package/src/config.js +111 -0
  444. package/src/index.js +395 -0
@@ -0,0 +1,434 @@
1
+ # Web Interface
2
+
3
+ Probe includes a web-based chat interface that provides a user-friendly way to interact with your codebase using AI. The web interface offers a modern UI for code search and AI-powered code exploration.
4
+
5
+ ## Unified Interface
6
+
7
+ Probe now features a unified interface that combines both CLI and web functionality in a single package. This change merges the previously separate `@probelabs/probe-web` and `@probelabs/probe-chat` packages into a single `@probelabs/probe-chat` package that supports both modes of operation.
8
+
9
+ ### Benefits of the Unified Interface
10
+
11
+ - **Code Reuse**: Shared codebase for both CLI and web interfaces reduces duplication
12
+ - **Easier Maintenance**: Single package to update and maintain
13
+ - **Consistent Experience**: Same core functionality and tools available in both interfaces
14
+ - **Simplified Installation**: One package to install for all Probe chat functionality
15
+ - **Unified Configuration**: Same environment variables and settings for both modes
16
+
17
+ > **Note**: The `@probelabs/probe-web` package is now deprecated. Its functionality is included in the `@probelabs/probe-chat` package.
18
+
19
+ ## Quick Start with npx
20
+
21
+ The easiest way to use Probe's interface is through npx:
22
+
23
+ ```bash
24
+ # Run in CLI mode (default)
25
+ npx -y @probelabs/probe-chat@latest
26
+
27
+ # Run in web interface mode
28
+ npx -y @probelabs/probe-chat@latest --web
29
+
30
+ # Set your API key first (either Anthropic or OpenAI)
31
+ export ANTHROPIC_API_KEY=your_api_key
32
+ # OR
33
+ export OPENAI_API_KEY=your_api_key
34
+
35
+ # Configure allowed folders (required)
36
+ export ALLOWED_FOLDERS=/path/to/folder1,/path/to/folder2
37
+ ```
38
+
39
+ ## Installation and Setup
40
+
41
+ ### Using npm
42
+
43
+ ```bash
44
+ # Install globally
45
+ npm install -g @probelabs/probe-chat@latest
46
+
47
+ # Run in CLI mode
48
+ probe-chat
49
+
50
+ # Run in web mode
51
+ probe-chat --web
52
+ ```
53
+
54
+ ### Manual Installation
55
+
56
+ 1. **Clone the repository**:
57
+ ```bash
58
+ git clone https://github.com/probelabs/probe.git
59
+ cd probe/examples/chat
60
+ ```
61
+
62
+ 2. **Install dependencies**:
63
+ ```bash
64
+ npm install
65
+ ```
66
+
67
+ 3. **Configure environment variables**:
68
+ Create or edit the `.env` file in the chat directory:
69
+ ```
70
+ # Required: At least one of these API keys must be provided
71
+ ANTHROPIC_API_KEY=your_anthropic_api_key
72
+ OPENAI_API_KEY=your_openai_api_key
73
+
74
+ # Required: Configure folders to search
75
+ ALLOWED_FOLDERS=/path/to/repo1,/path/to/repo2
76
+
77
+ # Optional configuration
78
+ PORT=8080
79
+ MODEL_NAME=claude-3-7-sonnet-latest
80
+ AUTH_ENABLED=false
81
+ AUTH_USERNAME=admin
82
+ AUTH_PASSWORD=password
83
+ ```
84
+
85
+ 4. **Start the interface**:
86
+ ```bash
87
+ # CLI mode
88
+ npm start
89
+
90
+ # Web mode
91
+ npm run web
92
+ ```
93
+
94
+ ## Command-Line Options
95
+
96
+ The unified interface supports the following command-line options:
97
+
98
+ | Option | Description | Default |
99
+ |--------|-------------|---------|
100
+ | `-d, --debug` | Enable debug mode for verbose logging | false |
101
+ | `-m, --model <model>` | Specify the model to use | claude-3-7-sonnet-latest (Anthropic) or gpt-4o (OpenAI) |
102
+ | `-w, --web` | Run in web interface mode | false (CLI mode) |
103
+ | `-p, --port <port>` | Port to run web server on (web mode only) | 8080 |
104
+ | `[path]` | Path to the codebase to search (overrides ALLOWED_FOLDERS) | Current directory |
105
+
106
+ Examples:
107
+
108
+ ```bash
109
+ # Run in web mode on port 3000
110
+ node index.js --web --port 3000
111
+
112
+ # Run in CLI mode with a specific model
113
+ node index.js --model claude-3-7-sonnet-latest
114
+
115
+ # Search a specific codebase
116
+ node index.js /path/to/codebase
117
+ ```
118
+
119
+ ## Features
120
+
121
+ ### Interactive Chat UI
122
+
123
+ The web interface provides a clean, modern chat interface with:
124
+
125
+ - Markdown rendering for rich text formatting
126
+ - Syntax highlighting for code blocks
127
+ - Support for multiple programming languages
128
+ - Persistent conversation history
129
+ - Streaming responses for real-time feedback
130
+
131
+ ### AI-Powered Code Search
132
+
133
+ The interface uses AI (Anthropic Claude or OpenAI GPT) to:
134
+
135
+ - Search your codebase based on natural language queries
136
+ - Explain code functionality and architecture
137
+ - Generate diagrams and visualizations
138
+ - Provide context-aware responses
139
+
140
+ ### Multiple Search Tools
141
+
142
+ The interface provides access to three powerful search tools:
143
+
144
+ 1. **Search Tool**: Standard regex-based code search with stemming and stopword removal
145
+ 2. **Query Tool**: AST-based structural pattern matching for precise code queries
146
+ 3. **Extract Tool**: File content extraction with optional line ranges and context
147
+
148
+ ### Mermaid Diagram Support
149
+
150
+ The web interface can render visual diagrams for:
151
+
152
+ - Code architecture
153
+ - Data flows
154
+ - Class hierarchies
155
+ - Sequence diagrams
156
+ - State machines
157
+
158
+ ### Configurable Search Paths
159
+
160
+ You can define which directories can be searched via environment variables, allowing you to:
161
+
162
+ - Limit search to specific projects
163
+ - Include multiple codebases
164
+ - Exclude sensitive directories
165
+ - Control access to different parts of your filesystem
166
+
167
+ ## Authentication System
168
+
169
+ The web interface includes optional basic authentication to secure access to your codebase. This feature is disabled by default but can be enabled via environment variables.
170
+
171
+ ### Enabling Authentication
172
+
173
+ To enable authentication, set the following environment variables:
174
+
175
+ ```bash
176
+ # Enable authentication
177
+ export AUTH_ENABLED=true
178
+
179
+ # Set custom username and password (optional)
180
+ export AUTH_USERNAME=admin
181
+ export AUTH_PASSWORD=secure_password
182
+ ```
183
+
184
+ Or in your `.env` file:
185
+
186
+ ```
187
+ AUTH_ENABLED=true
188
+ AUTH_USERNAME=admin
189
+ AUTH_PASSWORD=secure_password
190
+ ```
191
+
192
+ ### How Authentication Works
193
+
194
+ When authentication is enabled:
195
+
196
+ 1. All web interface endpoints (both UI and API) require basic authentication
197
+ 2. The browser will prompt for username and password when accessing the interface
198
+ 3. API requests must include the `Authorization` header with the value `Basic <base64-encoded-credentials>`
199
+ 4. Invalid or missing credentials will result in a 401 Unauthorized response
200
+
201
+ ### Authentication Configuration
202
+
203
+ | Variable | Description | Default |
204
+ |----------|-------------|---------|
205
+ | `AUTH_ENABLED` | Enable basic authentication | false |
206
+ | `AUTH_USERNAME` | Username for basic authentication | admin |
207
+ | `AUTH_PASSWORD` | Password for basic authentication | password |
208
+
209
+ ## API Endpoints
210
+
211
+ The web interface provides RESTful API endpoints for programmatic access without using the AI chat interface. These endpoints allow direct access to Probe's core functionality.
212
+
213
+ ### Available Endpoints
214
+
215
+ #### 1. Search Code (`POST /api/search`)
216
+
217
+ Search code repositories using the Probe tool.
218
+
219
+ **Request:**
220
+ ```json
221
+ {
222
+ "keywords": "search pattern",
223
+ "folder": "/path/to/repo",
224
+ "exact": false,
225
+ "allow_tests": false
226
+ }
227
+ ```
228
+
229
+ **Parameters:**
230
+ - `keywords` (required): Search pattern
231
+ - `folder` (optional): Path to search in (must be one of the allowed folders)
232
+ - `exact` (optional): Use exact match (default: false)
233
+ - `allow_tests` (optional): Include test files in results (default: false)
234
+
235
+ **Response:**
236
+ ```json
237
+ {
238
+ "results": "search results text",
239
+ "command": "probe command that was executed",
240
+ "timestamp": "2025-08-03T07:10:00.000Z"
241
+ }
242
+ ```
243
+
244
+ #### 2. Query Code (`POST /api/query`)
245
+
246
+ Search code using ast-grep structural pattern matching.
247
+
248
+ **Request:**
249
+ ```json
250
+ {
251
+ "pattern": "function $NAME($$$PARAMS) { $$$BODY }",
252
+ "path": "/path/to/repo",
253
+ "language": "javascript",
254
+ "allow_tests": false
255
+ }
256
+ ```
257
+
258
+ **Parameters:**
259
+ - `pattern` (required): AST pattern to search for
260
+ - `path` (optional): Path to search in (must be one of the allowed folders)
261
+ - `language` (optional): Programming language to use for parsing
262
+ - `allow_tests` (optional): Include test files in results (default: false)
263
+
264
+ **Response:**
265
+ ```json
266
+ {
267
+ "results": "query results text",
268
+ "timestamp": "2025-08-03T07:10:00.000Z"
269
+ }
270
+ ```
271
+
272
+ #### 3. Extract Code (`POST /api/extract`)
273
+
274
+ Extract code blocks from files based on file paths and optional line numbers.
275
+
276
+ **Request:**
277
+ ```json
278
+ {
279
+ "file_path": "src/main.js:42",
280
+ "line": 42,
281
+ "end_line": 60,
282
+ "allow_tests": false,
283
+ "context_lines": 10,
284
+ "format": "plain"
285
+ }
286
+ ```
287
+
288
+ **Parameters:**
289
+ - `file_path` (required): Path to the file to extract from
290
+ - `line` (optional): Start line number
291
+ - `end_line` (optional): End line number
292
+ - `allow_tests` (optional): Allow test files (default: false)
293
+ - `context_lines` (optional): Number of context lines (default: 10)
294
+ - `format` (optional): Output format (default: "plain")
295
+
296
+ **Response:**
297
+ ```json
298
+ {
299
+ "results": "extracted code text",
300
+ "timestamp": "2025-08-03T07:10:00.000Z"
301
+ }
302
+ ```
303
+
304
+ #### 4. Chat with AI (`POST /api/chat`)
305
+
306
+ Send a message to the AI and get a response.
307
+
308
+ **Request:**
309
+ ```json
310
+ {
311
+ "message": "your question about the code",
312
+ "stream": true
313
+ }
314
+ ```
315
+
316
+ **Parameters:**
317
+ - `message` (required): The message to send to the AI
318
+ - `stream` (optional): Whether to stream the response (default: true)
319
+
320
+ **Response (stream=false):**
321
+ ```json
322
+ {
323
+ "response": "AI response text",
324
+ "tokenUsage": {
325
+ "request": 123,
326
+ "response": 456,
327
+ "total": 579
328
+ },
329
+ "timestamp": "2025-08-03T07:10:00.000Z"
330
+ }
331
+ ```
332
+
333
+ **Response (stream=true):**
334
+ Text stream of the AI response.
335
+
336
+ ## Environment Variables
337
+
338
+ | Variable | Description | Default |
339
+ |----------|-------------|---------|
340
+ | `ANTHROPIC_API_KEY` | Your Anthropic API key for Claude | (Optional if `OPENAI_API_KEY` is provided) |
341
+ | `OPENAI_API_KEY` | Your OpenAI API key for GPT models | (Optional if `ANTHROPIC_API_KEY` is provided) |
342
+ | `ALLOWED_FOLDERS` | Comma-separated list of folders that can be searched | (Required) |
343
+ | `PORT` | The port to run the server on | 8080 |
344
+ | `MODEL_NAME` | Override the default model | claude-3-7-sonnet-latest (Anthropic) or gpt-4o (OpenAI) |
345
+ | `ANTHROPIC_API_URL` | Override the default Anthropic API URL | https://api.anthropic.com/v1 |
346
+ | `OPENAI_API_URL` | Override the default OpenAI API URL | https://api.openai.com/v1 |
347
+ | `DEBUG` | Enable debug mode | false |
348
+ | `DEBUG_RAW_REQUEST` | Enable raw request debugging | false |
349
+ | `AUTH_ENABLED` | Enable basic authentication | false |
350
+ | `AUTH_USERNAME` | Username for basic authentication | admin |
351
+ | `AUTH_PASSWORD` | Password for basic authentication | password |
352
+
353
+ ## Architecture
354
+
355
+ The unified interface consists of:
356
+
357
+ - `index.js`: Main entry point for both CLI and web interfaces
358
+ - `probeChat.js`: Core chat functionality
359
+ - `webServer.js`: Web server implementation
360
+ - `auth.js`: Authentication middleware for web interface
361
+ - `probeTool.js`: Tool definitions for code search, query, and extraction
362
+ - `tokenCounter.js`: Utility for tracking token usage
363
+ - `index.html`: Web interface HTML template
364
+
365
+ ## Debugging
366
+
367
+ The unified interface includes debugging options to help troubleshoot issues:
368
+
369
+ ### Debug Mode
370
+
371
+ Enable debug mode to see detailed logging:
372
+
373
+ ```bash
374
+ # Via environment variable
375
+ DEBUG=true npm start
376
+
377
+ # Via command-line option
378
+ node index.js --debug
379
+ ```
380
+
381
+ This will output:
382
+ - API requests and responses
383
+ - Tool usage information
384
+ - System message details
385
+ - Token usage estimates
386
+
387
+ ### Raw Request Debugging
388
+
389
+ Enable raw request debugging to see the exact prompts sent to LLMs:
390
+
391
+ ```bash
392
+ DEBUG_RAW_REQUEST=true npm start
393
+ ```
394
+
395
+ ### Combined Debugging
396
+
397
+ For maximum debugging information, enable both options:
398
+
399
+ ```bash
400
+ DEBUG=true DEBUG_RAW_REQUEST=true npm start
401
+ ```
402
+
403
+ ## Troubleshooting
404
+
405
+ ### Common Issues
406
+
407
+ 1. **API Key Issues**:
408
+ - Ensure your API key is correctly set in the environment variables
409
+ - Check for any spaces or special characters in the key
410
+ - Verify the API key is active and has sufficient permissions
411
+
412
+ 2. **Folder Access Issues**:
413
+ - Ensure the folders in `ALLOWED_FOLDERS` exist and are accessible
414
+ - Check file permissions on the folders
415
+ - Use absolute paths to avoid path resolution issues
416
+
417
+ 3. **Model Errors**:
418
+ - Check if the specified model is available in your API plan
419
+ - Verify the model name is correct
420
+ - Try using a different model if you encounter rate limits
421
+
422
+ 4. **Connection Issues**:
423
+ - Check your internet connection
424
+ - Verify the API URLs are correct if using custom endpoints
425
+ - Check if there are any firewalls blocking the connection
426
+
427
+ ### Getting Help
428
+
429
+ If you encounter issues not covered in this documentation:
430
+
431
+ 1. Check the console output for error messages
432
+ 2. Enable debug mode for more detailed logging
433
+ 3. Check the GitHub repository for known issues
434
+ 4. Open a new issue on GitHub with detailed information about your problem
@@ -0,0 +1,9 @@
1
+ # Cloudflare Pages configuration for Probe documentation site
2
+ name = "probe-docs"
3
+ compatibility_date = "2024-01-15"
4
+
5
+ # Pages project configuration
6
+ pages_build_output_dir = ".vitepress/dist"
7
+
8
+ # Note: Custom domains (probelabs.com) are configured via Cloudflare Dashboard
9
+ # Routes configuration is not supported in wrangler.toml for Pages
@@ -0,0 +1 @@
1
+ export ANTHROPIC_API_KEY="your-actual-api-key-here"
@@ -0,0 +1,7 @@
1
+ // A simple hello world function
2
+ function hello(name) {
3
+ console.log("Hello, " + name);
4
+ }
5
+
6
+ // Test the function
7
+ hello("World");
@@ -0,0 +1,176 @@
1
+ #!/bin/bash
2
+
3
+ # Test script to demonstrate early termination validation issues
4
+ # This script shows concrete examples of missed code blocks due to
5
+ # AST filtering and file pre-filtering optimizations
6
+
7
+ set -e
8
+
9
+ echo "๐Ÿ” Demonstrating Early Termination Validation Issues in Probe"
10
+ echo "============================================================="
11
+
12
+ # Ensure we're in the correct directory
13
+ cd "$(dirname "$0")/.."
14
+
15
+ # Build probe in debug mode to see optimization behavior
16
+ echo "๐Ÿ“ฆ Building probe in debug mode..."
17
+ cargo build
18
+
19
+ PROBE_BIN="./target/debug/probe"
20
+ TEST_FILE="test_cases/early_termination_issues.rs"
21
+
22
+ echo ""
23
+ echo "๐Ÿงช Test Case 1: Multiline Function Signature Issues"
24
+ echo "---------------------------------------------------"
25
+ echo "Searching for 'complex_database_query' - should find the complete function including signature"
26
+
27
+ echo ""
28
+ echo "๐Ÿ” Normal search (should work):"
29
+ $PROBE_BIN search "complex_database_query" "$TEST_FILE" --max-results 1
30
+
31
+ echo ""
32
+ echo "๐Ÿ” Search targeting specific implementation lines (potential early termination issue):"
33
+ echo "Looking for 'retry_count' which is inside the function body..."
34
+ $PROBE_BIN search "retry_count" "$TEST_FILE" --max-results 1
35
+
36
+ echo "โš ๏ธ Question: Does the result include the complete function signature from lines 10-20?"
37
+ echo " If not, this demonstrates the early termination issue where AST filtering"
38
+ echo " might skip the function signature when targeting implementation lines."
39
+
40
+ echo ""
41
+ echo "๐Ÿงช Test Case 2: Complex Trait Implementation Issues"
42
+ echo "---------------------------------------------------"
43
+ echo "Searching for trait implementation methods that might be separated from their bounds"
44
+
45
+ echo ""
46
+ echo "๐Ÿ” Search for 'process_batch' method:"
47
+ $PROBE_BIN search "process_batch" "$TEST_FILE" --max-results 1
48
+
49
+ echo ""
50
+ echo "๐Ÿ” Search for 'validate_input' method:"
51
+ $PROBE_BIN search "validate_input" "$TEST_FILE" --max-results 1
52
+
53
+ echo "โš ๏ธ Question: Do both results include the complete trait bounds and where clauses?"
54
+ echo " The trait implementation spans lines with complex generic constraints that"
55
+ echo " are semantically essential but might be filtered out by line range optimization."
56
+
57
+ echo ""
58
+ echo "๐Ÿงช Test Case 3: Macro-Generated Code Issues"
59
+ echo "-------------------------------------------"
60
+ echo "Testing macro expansions where generated code might span unexpected line ranges"
61
+
62
+ echo ""
63
+ echo "๐Ÿ” Search for 'create_user' (generated by macro):"
64
+ $PROBE_BIN search "create_user" "$TEST_FILE" --max-results 1
65
+
66
+ echo ""
67
+ echo "๐Ÿ” Search for 'user_service' (module generated by macro):"
68
+ $PROBE_BIN search "user_service" "$TEST_FILE" --max-results 1
69
+
70
+ echo "โš ๏ธ Question: Do the results show the complete macro definition context?"
71
+ echo " Macro expansions create AST nodes that might not align with simple"
72
+ echo " line range calculations used in early termination optimization."
73
+
74
+ echo ""
75
+ echo "๐Ÿงช Test Case 4: Documentation with Code Examples"
76
+ echo "-----------------------------------------------"
77
+ echo "Testing searches that might miss documentation context due to AST filtering"
78
+
79
+ echo ""
80
+ echo "๐Ÿ” Search for 'ComplexService' (should include documentation):"
81
+ $PROBE_BIN search "ComplexService" "$TEST_FILE" --max-results 1
82
+
83
+ echo ""
84
+ echo "๐Ÿ” Search for 'process_data' method:"
85
+ $PROBE_BIN search "process_data" "$TEST_FILE" --max-results 1
86
+
87
+ echo "โš ๏ธ Question: Do the results include the comprehensive documentation examples?"
88
+ echo " The documentation contains important usage patterns and error handling"
89
+ echo " examples that are semantically connected to the implementation."
90
+
91
+ echo ""
92
+ echo "๐Ÿงช Test Case 5: Generic Repository with Complex Constraints"
93
+ echo "---------------------------------------------------------"
94
+ echo "Testing code where generic constraints define essential semantic context"
95
+
96
+ echo ""
97
+ echo "๐Ÿ” Search for 'find_with_complex_criteria':"
98
+ $PROBE_BIN search "find_with_complex_criteria" "$TEST_FILE" --max-results 1
99
+
100
+ echo ""
101
+ echo "๐Ÿ” Search for 'GenericRepository':"
102
+ $PROBE_BIN search "GenericRepository" "$TEST_FILE" --max-results 1
103
+
104
+ echo "โš ๏ธ Question: Do the results include the complete where clauses and generic bounds?"
105
+ echo " These constraints are essential for understanding how the repository works"
106
+ echo " but might be separated from method implementations by AST filtering."
107
+
108
+ echo ""
109
+ echo "๐Ÿงช Test Case 6: Cross-Module Dependencies"
110
+ echo "----------------------------------------"
111
+ echo "Testing nested modules where early termination might miss cross-references"
112
+
113
+ echo ""
114
+ echo "๐Ÿ” Search for 'load_user_with_permissions':"
115
+ $PROBE_BIN search "load_user_with_permissions" "$TEST_FILE" --max-results 1
116
+
117
+ echo ""
118
+ echo "๐Ÿ” Search for 'update_user_with_permission_check':"
119
+ $PROBE_BIN search "update_user_with_permission_check" "$TEST_FILE" --max-results 1
120
+
121
+ echo "โš ๏ธ Question: Do the results show the cross-module dependencies and relationships?"
122
+ echo " These functions are semantically connected but might be in different modules"
123
+ echo " that could be filtered separately by optimization logic."
124
+
125
+ echo ""
126
+ echo "๐Ÿ”ฌ Advanced Testing: Debug Mode Analysis"
127
+ echo "======================================="
128
+ echo "Running searches with DEBUG=1 to see AST filtering behavior:"
129
+
130
+ echo ""
131
+ echo "๐Ÿ” Debug search for 'complex_database_query' with line range information:"
132
+ DEBUG=1 $PROBE_BIN search "complex_database_query" "$TEST_FILE" --max-results 1 2>&1 | grep -E "(DEBUG|AST|filtering|skip)" || echo "No debug output found"
133
+
134
+ echo ""
135
+ echo "๐Ÿ” Debug search for 'process_batch' to see trait implementation filtering:"
136
+ DEBUG=1 $PROBE_BIN search "process_batch" "$TEST_FILE" --max-results 1 2>&1 | grep -E "(DEBUG|AST|filtering|skip)" || echo "No debug output found"
137
+
138
+ echo ""
139
+ echo "๐Ÿ“Š Performance vs. Accuracy Trade-off Analysis"
140
+ echo "============================================="
141
+ echo "Measuring search times with and without optimizations:"
142
+
143
+ echo ""
144
+ echo "โฑ๏ธ Normal search timing:"
145
+ time $PROBE_BIN search "ComplexService" "$TEST_FILE" --max-results 5 > /tmp/normal_search.out 2>&1
146
+
147
+ echo ""
148
+ echo "๐Ÿ“ Result completeness analysis:"
149
+ NORMAL_LINES=$(wc -l < /tmp/normal_search.out)
150
+ echo "Lines in normal search result: $NORMAL_LINES"
151
+
152
+ echo ""
153
+ echo "๐ŸŽฏ Recommendations for Testing"
154
+ echo "=============================="
155
+ echo "1. Run this script and manually inspect each result"
156
+ echo "2. Check if function signatures are complete"
157
+ echo "3. Verify that trait bounds and where clauses are included"
158
+ echo "4. Ensure macro-generated code shows full context"
159
+ echo "5. Confirm documentation examples are preserved"
160
+ echo "6. Validate cross-module dependencies are captured"
161
+
162
+ echo ""
163
+ echo "๐Ÿšจ Key Questions to Answer:"
164
+ echo "=========================="
165
+ echo "โ€ข Are function signatures being truncated when searching implementation details?"
166
+ echo "โ€ข Do trait implementations include their complete generic constraints?"
167
+ echo "โ€ข Are macro expansions showing the complete generation context?"
168
+ echo "โ€ข Is documentation being included when searching for implementation methods?"
169
+ echo "โ€ข Are cross-module dependencies being preserved in search results?"
170
+
171
+ echo ""
172
+ echo "โœ… Test completed. Review the output above for potential early termination issues."
173
+ echo " Look for incomplete results, missing context, or truncated code blocks."
174
+
175
+ # Clean up temporary files
176
+ rm -f /tmp/normal_search.out