@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,289 @@
1
+ # Quick Start
2
+
3
+ This guide will help you get up and running with Probe quickly. For more detailed information, check out the other sections of the documentation.
4
+
5
+ ## Installation
6
+
7
+ The easiest way to install Probe is via npm:
8
+
9
+ ```bash
10
+ npm install -g @probelabs/probe@latest
11
+ ```
12
+
13
+ Or using curl (for macOS and Linux):
14
+
15
+ ```bash
16
+ curl -fsSL https://raw.githubusercontent.com/probelabs/probe/main/install.sh | bash
17
+ ```
18
+
19
+ Or using PowerShell (for Windows):
20
+
21
+ ```powershell
22
+ iwr -useb https://raw.githubusercontent.com/probelabs/probe/main/install.ps1 | iex
23
+ ```
24
+
25
+ For more detailed installation instructions, including manual installation and building from source, see the [Installation Guide](/installation).
26
+
27
+ ## Basic Search Example
28
+
29
+ Search for code containing the phrase "llm pricing" in the current directory:
30
+
31
+ ```bash
32
+ probe search "llm pricing" ./
33
+ ```
34
+
35
+ This will search for the terms "llm" and "pricing" in your codebase and return the most relevant code blocks.
36
+
37
+ For more advanced search techniques and options, see the [Search Functionality](/search-functionality) documentation.
38
+
39
+ ## Advanced Search (with Token Limiting)
40
+
41
+ Search for "prompt injection" in the current directory but limit the total tokens to 10000 (useful for AI tools with context window constraints):
42
+
43
+ ```bash
44
+ probe search "prompt injection" ./ --max-tokens 10000
45
+ ```
46
+
47
+ This is particularly useful when you need to feed the results into an AI model with a limited context window. Learn more about AI integration in the [AI Integration Overview](/ai-integration).
48
+
49
+ ## Session-Based Caching
50
+
51
+ Use session IDs to avoid seeing the same code blocks multiple times in related searches:
52
+
53
+ ```bash
54
+ # First search - generates a session ID
55
+ probe search "authentication" --session ""
56
+ # Session: a1b2 (example output)
57
+
58
+ # Subsequent searches - reuse the session ID
59
+ probe search "login" --session "a1b2"
60
+ # Will skip code blocks already shown in the previous search
61
+ ```
62
+
63
+ In Node.js applications:
64
+
65
+ ```javascript
66
+ import { search } from '@probelabs/probe';
67
+
68
+ // First search with empty session string (generates a session ID)
69
+ const results1 = await search({
70
+ path: '/path/to/your/project',
71
+ query: 'authentication',
72
+ session: ''
73
+ });
74
+
75
+ // Get the session ID from the results
76
+ const sessionId = results1.session;
77
+
78
+ // Use the same session ID for related searches
79
+ const results2 = await search({
80
+ path: '/path/to/your/project',
81
+ query: 'login',
82
+ session: sessionId
83
+ });
84
+ ```
85
+
86
+ This is especially useful when performing multiple related searches, as it helps avoid duplicate results and provides a more cohesive search experience.
87
+
88
+ ## Elastic Search Queries
89
+
90
+ Use advanced query syntax for more powerful searches:
91
+
92
+ ```bash
93
+ # Use AND operator for terms that must appear together
94
+ probe search "error AND handling" ./
95
+
96
+ # Use OR operator for alternative terms
97
+ probe search "login OR authentication OR auth" ./src
98
+
99
+ # Group terms with parentheses for complex queries
100
+ probe search "(error OR exception) AND (handle OR process)" ./
101
+
102
+ # Use wildcards for partial matching
103
+ probe search "auth* connect*" ./
104
+
105
+ # Exclude terms with NOT operator
106
+ probe search "database NOT sqlite" ./
107
+ ```
108
+
109
+ For a complete reference of search syntax and capabilities, see the [Search Functionality](/search-functionality#elastic-search-syntax) documentation.
110
+
111
+ ## Extract Code Blocks
112
+
113
+ Extract a specific function or code block containing line 42 in main.rs:
114
+
115
+ ```bash
116
+ probe extract src/main.rs:42
117
+ ```
118
+
119
+ This will use tree-sitter to find the closest suitable parent node (function, struct, class, etc.) for that line.
120
+
121
+ You can even pipe failing test output and it will extract needed files and AST out of it:
122
+
123
+ ```bash
124
+ go test | probe extract
125
+ ```
126
+
127
+ Extract code with LLM prompt and instructions for AI integration:
128
+
129
+ ```bash
130
+ # Extract with engineer prompt template
131
+ probe extract src/auth.rs#authenticate --prompt engineer --instructions "Explain this authentication function"
132
+
133
+ # Extract with architect prompt template
134
+ probe extract src/api.js --prompt architect --instructions "Analyze this API module"
135
+ ```
136
+
137
+ To learn more about code extraction features, see the [Code Extraction](/code-extraction) documentation.
138
+
139
+ ## Query Code Structures
140
+
141
+ Find specific code structures using tree-sitter patterns:
142
+
143
+ ```bash
144
+ # Find JavaScript functions
145
+ probe query "function $NAME($$$PARAMS) $$$BODY" ./src --language javascript
146
+
147
+ # Find Python functions
148
+ probe query "def $NAME($$$PARAMS): $$$BODY" ./src --language python
149
+
150
+ # Find Go structs
151
+ probe query "type $NAME struct { $$$FIELDS }" ./src --language go
152
+ ```
153
+
154
+ The query command uses tree-sitter patterns to find specific code structures in your codebase. This is more precise than text-based search and understands the syntax of the programming language.
155
+
156
+ For more details on the query command, see the [CLI Mode](/cli-mode#query-command) documentation.
157
+
158
+ ## Interactive AI Chat
159
+ Use the built-in AI assistant with web interface for the best code search experience:
160
+
161
+ ```bash
162
+ # Run directly with npx (no installation needed)
163
+ npx -y @probelabs/probe-chat@latest --web
164
+ npx -y @probelabs/probe-chat@latest
165
+
166
+ # Set your API key first
167
+ export ANTHROPIC_API_KEY=your_api_key
168
+ # Or for OpenAI
169
+ # export OPENAI_API_KEY=your_api_key
170
+
171
+ # Specify a directory to search (optional)
172
+ npx -y @probelabs/probe-chat@latest /path/to/your/project
173
+ ```
174
+
175
+ Example questions you might ask:
176
+ - "How does the ranking algorithm work?"
177
+ - "Explain the file structure of this project"
178
+ - "What are the main components of the search functionality?"
179
+
180
+ For more details on the AI chat capabilities, see the [AI Chat Mode](/ai-chat) documentation.
181
+
182
+ ## MCP Server Integration
183
+
184
+ Integrate with any AI editor by adding this to your MCP configuration:
185
+
186
+ ```json
187
+ {
188
+ "mcpServers": {
189
+ "memory": {
190
+ "command": "npx",
191
+ "args": [
192
+ "-y",
193
+ "@probelabs/probe",
194
+ "mcp"
195
+ ]
196
+ }
197
+ }
198
+ }
199
+ ```
200
+
201
+ Example queries you can use with your AI assistant:
202
+ - "Do the probe and search my codebase for implementations of the ranking algorithm"
203
+ - "Using probe find all functions related to error handling in the src directory"
204
+
205
+ For more information on MCP integration, see the [MCP Integration](/mcp-integration) and [MCP Server](/mcp-server) documentation.
206
+
207
+ ## Node.js SDK Usage
208
+
209
+ Use Probe programmatically in your Node.js applications:
210
+
211
+ ```javascript
212
+ import { search, query, extract } from '@probelabs/probe';
213
+
214
+ // Search for code
215
+ const searchResults = await search({
216
+ path: '/path/to/your/project',
217
+ query: 'authentication',
218
+ maxResults: 10
219
+ });
220
+
221
+ // Query for specific code structures
222
+ const queryResults = await query({
223
+ path: '/path/to/your/project',
224
+ pattern: 'function $NAME($$$PARAMS) $$$BODY',
225
+ language: 'javascript'
226
+ });
227
+
228
+ // Extract code blocks
229
+ const extractResults = await extract({
230
+ files: ['/path/to/your/project/src/main.js:42']
231
+ });
232
+
233
+ // Extract with LLM prompt and instructions
234
+ const extractWithPrompt = await extract({
235
+ files: ['/path/to/your/project/src/auth.js#authenticate'],
236
+ prompt: 'engineer',
237
+ instructions: 'Explain this authentication function'
238
+ });
239
+
240
+ console.log(searchResults);
241
+ ```
242
+
243
+ For comprehensive documentation on the Node.js SDK, see the [Node.js SDK](/nodejs-sdk) documentation.
244
+
245
+ ## Choose Your Path
246
+
247
+ Depending on how you plan to use Probe, we have specific guides tailored to different user needs:
248
+
249
+ ### I am an AI Code Editor User
250
+
251
+ If you want to integrate Probe with your AI-powered code editor (like Cline, GitHub Copilot, or other MCP-compatible assistants):
252
+
253
+ - [Integrating Probe into AI Code Editors](/use-cases/integrating-probe-into-ai-code-editors) - Set up the MCP server, configure your editor, and start asking questions about your code
254
+
255
+ ### I am a CLI Power User
256
+
257
+ If you need advanced text-based queries or want to feed code blocks into LLMs:
258
+
259
+ - [Advanced CLI: Speed, Token Limits, and Large Repos](/use-cases/advanced-cli) - Learn techniques for handling large codebases, optimizing token usage, and integrating with other CLI tools
260
+
261
+ ### I am a Team Admin
262
+
263
+ If you're looking for a centralized server or chat interface for your team:
264
+
265
+ - [Deploying the Probe Web Interface](/use-cases/deploying-probe-web-interface) - Set up a Docker-based deployment, manage security, and configure for team usage
266
+
267
+ ### I am an AI Tooling Developer
268
+
269
+ If you want to embed Probe programmatically into your Node.js or Python tools:
270
+
271
+ - [Building AI Tools on Probe](/use-cases/building-ai-tools) - Use the Node.js SDK, integrate with LangChain or Vercel AI SDK, and build custom AI-powered code tools
272
+
273
+ ### Automating Workflows
274
+
275
+ If you want to integrate Probe into your CI/CD or development workflows:
276
+
277
+ - [GitHub Actions Integration](/integrations/github-actions) - Automate issue responses and PR reviews using Probe directly within GitHub.
278
+
279
+ ## Reference Documentation
280
+
281
+ For comprehensive reference information:
282
+
283
+ - [CLI Reference (Commands & Flags)](/cli-mode) - Complete command-line reference
284
+ - [AI Integration Overview](/ai-integration) - Overview of all AI capabilities
285
+ - [MCP Protocol & Tools Reference](/mcp-server) - Detailed MCP server documentation
286
+ - [Node.js SDK API Reference](/nodejs-sdk) - Complete SDK API reference
287
+ - [Output Formats Reference](/output-formats) - JSON, XML, and other output formats
288
+ - [How It Works](/how-it-works) - Understand the technology behind Probe
289
+ - [Language Support](/language-support-overview) - See how Probe understands different programming languages
@@ -0,0 +1,291 @@
1
+ # Search Functionality Reference
2
+
3
+ Complete reference documentation for Probe's search capabilities, including query syntax, ranking algorithms, and advanced search techniques.
4
+
5
+ ## SEARCH COMMAND
6
+
7
+ ```bash
8
+ probe search <QUERY> [PATH] [OPTIONS]
9
+ ```
10
+
11
+ ### CORE PARAMETERS
12
+
13
+ | Parameter | Description |
14
+ |-----------|-------------|
15
+ | `<QUERY>` | **Required**: Search terms or expression |
16
+ | `[PATH]` | Directory to search (defaults to current directory) |
17
+
18
+ ### KEY OPTIONS
19
+
20
+ | Option | Description | Default |
21
+ |--------|-------------|---------|
22
+ | `--files-only` | List matching files without code blocks | Off |
23
+ | `--ignore <PATTERN>` | Additional patterns to ignore | None |
24
+ | `--exclude-filenames, -n` | Exclude filenames from matching | Off |
25
+ | `--reranker, -r <TYPE>` | Ranking algorithm: `hybrid`, `hybrid2`, `bm25`, `tfidf` | `hybrid` |
26
+ | `--frequency, -s` | Enable smart token matching | On |
27
+ | `--max-results <N>` | Limit number of results | No limit |
28
+ | `--max-bytes <N>` | Limit total bytes of code returned | No limit |
29
+ | `--max-tokens <N>` | Limit total tokens | No limit |
30
+ | `--allow-tests` | Include test files and code | Off |
31
+ | `--any-term` | Match any search term (OR logic) | Off |
32
+ | `--no-merge` | Keep code blocks separate | Off |
33
+ | `--merge-threshold <N>` | Max lines between blocks to merge | 5 |
34
+ | `--session <ID>` | Session ID for caching results | None |
35
+ | `--format <TYPE>` | Output format: `color`, `plain`, `markdown`, `json` | `color` |
36
+
37
+ For complete option details, see `probe search --help`.
38
+
39
+ ## QUERY PROCESSING
40
+
41
+ Probe enhances search queries through several techniques:
42
+
43
+ ### TOKENIZATION
44
+
45
+ Breaks down terms into tokens:
46
+ ```
47
+ findUserByEmail → [find, user, by, email]
48
+ ```
49
+
50
+ ### STEMMING
51
+
52
+ Reduces words to their root form:
53
+ ```
54
+ implementing, implementation → implement
55
+ ```
56
+
57
+ ### SMART PATTERN GENERATION
58
+
59
+ - **Term Boundaries**: Understands where code tokens start/end
60
+ - **Case Handling**: Works with camelCase, snake_case, etc.
61
+ - **Compound Handling**: Breaks down compound terms
62
+
63
+ ## QUERY SYNTAX
64
+
65
+ Probe supports an Elasticsearch-like query syntax:
66
+
67
+ ### BASIC TERMS
68
+
69
+ ```bash
70
+ probe search "authentication" # Single term
71
+ probe search "user authentication" # Multiple terms (AND logic)
72
+ ```
73
+
74
+ ### BOOLEAN OPERATORS
75
+
76
+ ```bash
77
+ probe search "error AND handling" # Require both terms
78
+ probe search "login OR authentication" # Match either term
79
+ probe search "database NOT sqlite" # Exclude term
80
+ ```
81
+
82
+ ### GROUPING
83
+
84
+ ```bash
85
+ probe search "(error OR exception) AND (handle OR process)"
86
+ ```
87
+
88
+ ### TERM MODIFIERS
89
+
90
+ ```bash
91
+ probe search "+authentication login" # Required term
92
+ probe search "database -sqlite" # Excluded term
93
+ probe search "\"handle error\"" # Exact phrase
94
+ ```
95
+
96
+ ### FIELD SPECIFIERS
97
+
98
+ ```bash
99
+ probe search "function:authenticate" # Search in function names
100
+ ```
101
+
102
+ ### SEARCH HINTS
103
+
104
+ Search hints allow you to filter results by file properties. These filters are applied at the file discovery stage and removed from the query before content searching:
105
+
106
+ ```bash
107
+ probe search "error AND ext:rs" # Only search in .rs files
108
+ probe search "class AND file:src/**/*.py" # Only search in Python files under src/
109
+ probe search "function AND dir:tests" # Only search in files under tests/ directory
110
+ probe search "struct AND type:rust" # Only search in Rust files
111
+ probe search "component AND lang:javascript" # Only search in JavaScript files
112
+ ```
113
+
114
+ **Available Search Hints:**
115
+
116
+ | Hint | Description | Examples |
117
+ |------|-------------|----------|
118
+ | `ext:<extension>` | Filter by file extension | `ext:rs`, `ext:py,js,ts` |
119
+ | `file:<pattern>` | Filter by file path pattern (supports globs) | `file:src/**/*.rs`, `file:*test*` |
120
+ | `path:<pattern>` | Alias for `file:` | `path:src/main.rs` |
121
+ | `dir:<pattern>` | Filter by directory pattern | `dir:src`, `dir:tests` |
122
+ | `type:<filetype>` | Filter by ripgrep file type | `type:rust`, `type:javascript` |
123
+ | `lang:<language>` | Filter by programming language | `lang:rust`, `lang:python` |
124
+
125
+ **Combining Search Hints:**
126
+
127
+ ```bash
128
+ # Multiple filters (all must match)
129
+ probe search "config AND ext:rs AND dir:src"
130
+
131
+ # Multiple extensions (any can match)
132
+ probe search "import AND ext:js,ts,jsx,tsx"
133
+
134
+ # Complex combinations
135
+ probe search "(error OR exception) AND ext:rs AND file:src/**/*"
136
+ ```
137
+
138
+ ### WILDCARDS
139
+
140
+ ```bash
141
+ probe search "auth*" # Matches "auth", "authentication", "authorize", etc.
142
+ ```
143
+
144
+ ## RANKING ALGORITHMS
145
+
146
+ Probe uses sophisticated algorithms to rank search results:
147
+
148
+ ### TF-IDF RANKING
149
+
150
+ Term Frequency-Inverse Document Frequency balances how often terms appear in a specific code block against how common they are across the codebase.
151
+
152
+ #### HOW IT WORKS
153
+
154
+ 1. **Term Frequency (TF)**: How often a term appears in a code block
155
+ ```
156
+ TF(term, block) = (Number of times term appears in block) / (Total number of terms in block)
157
+ ```
158
+
159
+ 2. **Inverse Document Frequency (IDF)**: Measures how unique or rare a term is
160
+ ```
161
+ IDF(term) = ln(Total number of blocks / Number of blocks containing term)
162
+ ```
163
+
164
+ 3. **TF-IDF Score**: Combines these factors
165
+ ```
166
+ TF-IDF(term, block) = TF(term, block) * IDF(term)^2
167
+ ```
168
+
169
+ Key benefits:
170
+ - Rewards matches on rare, important terms
171
+ - Penalizes common terms that appear everywhere
172
+ - Considers term frequency within each code block
173
+
174
+ ### BM25 RANKING
175
+
176
+ BM25 (Best Matching 25) is an improved version of TF-IDF that addresses some of its limitations.
177
+
178
+ #### HOW IT WORKS
179
+
180
+ ```
181
+ BM25(block, query) = ∑ IDF(term) * (TF(term, block) * (k1 + 1)) / (TF(term, block) + k1 * (1 - b + b * (block_length / average_block_length)))
182
+ ```
183
+
184
+ Where:
185
+ - `k1` (1.2): Controls term frequency saturation
186
+ - `b` (0.75): Controls length normalization
187
+
188
+ Key benefits:
189
+ - Better handling of document length
190
+ - Diminishing returns for repeated terms
191
+ - More accurate for longer code blocks
192
+ - Improved handling of edge cases
193
+
194
+ ### HYBRID RANKING
195
+
196
+ Probe's default ranking algorithm combines multiple signals for superior results.
197
+
198
+ #### HOW IT WORKS
199
+
200
+ The hybrid algorithm considers:
201
+
202
+ 1. **Combined score**: Weighted combination of TF-IDF and BM25
203
+ ```
204
+ Combined = α * TF-IDF + (1-α) * BM25
205
+ ```
206
+
207
+ 2. **Position weights**: Terms in function names, class names, and identifiers receive higher scores
208
+
209
+ 3. **Block metrics**:
210
+ - Number of unique terms matched
211
+ - Total matches in the block
212
+ - Block type (methods score higher than comments)
213
+
214
+ 4. **File metrics**:
215
+ - File match rank
216
+ - Number of unique terms in the file
217
+ - Total matches in the file
218
+
219
+ Key benefits:
220
+ - More balanced scoring across different code structures
221
+ - Better handling of both short and long code blocks
222
+ - Prioritizes meaningful code over comments or boilerplate
223
+
224
+ ### HYBRID2 RANKING
225
+
226
+ An enhanced version of the hybrid algorithm with improved relevance:
227
+ - Better normalization of scores across different metrics
228
+ - Enhanced weighting for structural elements
229
+ - Improved handling of term proximity
230
+ - More sophisticated position weighting
231
+
232
+ ## PRACTICAL EXAMPLES
233
+
234
+ ### FINDING ERROR HANDLING CODE
235
+
236
+ ```bash
237
+ probe search "error handling try catch"
238
+ ```
239
+
240
+ This search:
241
+ 1. Tokenizes to: ["error", "handl", "try", "catch"]
242
+ 2. Matches files containing these terms
243
+ 3. Ranks results based on term frequency and importance
244
+ 4. Returns complete code blocks with error handling logic
245
+
246
+ ### SEARCHING FOR AUTHENTICATION FLOWS
247
+
248
+ ```bash
249
+ probe search "(login OR authenticate) AND (user OR account) NOT test"
250
+ ```
251
+
252
+ This complex query:
253
+ 1. Finds code with either "login" or "authenticate"
254
+ 2. Requires either "user" or "account" to be present
255
+ 3. Excludes results containing "test"
256
+ 4. Returns ranked, complete code blocks
257
+
258
+ ### FINDING SPECIFIC API ENDPOINTS
259
+
260
+ ```bash
261
+ probe search "function:create* api endpoint"
262
+ ```
263
+
264
+ This search:
265
+ 1. Targets functions starting with "create"
266
+ 2. Requires "api" and "endpoint" terms
267
+ 3. Returns complete function definitions
268
+ 4. Ranks results with the most relevant endpoints first
269
+
270
+ ### LIMITING RESULTS FOR AI INTEGRATION
271
+
272
+ ```bash
273
+ probe search "database connection pool" --max-tokens 4000 --format json
274
+ ```
275
+
276
+ This search:
277
+ 1. Finds code related to database connection pools
278
+ 2. Limits results to fit within 4000 tokens
279
+ 3. Returns JSON-formatted output suitable for AI processing
280
+
281
+ ## PERFORMANCE TIPS
282
+
283
+ - **Be specific**: More specific queries yield more relevant results
284
+ - **Use field specifiers**: Target specific code elements with `function:`, `class:`, etc.
285
+ - **Leverage boolean operators**: Combine terms with AND, OR, NOT for precision
286
+ - **Control result size**: Use `--max-results`, `--max-bytes`, or `--max-tokens` for large codebases
287
+ - **Session caching**: Use `--session` to avoid seeing the same code blocks repeatedly
288
+ - **Experiment with rankers**: Try different ranking algorithms for different types of searches
289
+
290
+ For more information on how Probe works internally, see [How Probe Works](how-it-works.md).
291
+ For details on code extraction, see [Code Extraction](code-extraction.md).