@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,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 Reference](code-extraction.md).
@@ -0,0 +1,215 @@
1
+ # Supported Languages
2
+
3
+ Probe provides language-aware code search and extraction for a wide range of programming languages. This page details the supported languages and their specific features.
4
+
5
+ > For a comprehensive overview of how Probe's language support system works, see the [Language Support Overview](/language-support-overview) page.
6
+
7
+ ## Language Support Table
8
+
9
+ | Language | File Extensions | AST Parsing | Block Extraction |
10
+ |----------|----------------|-------------|-----------------|
11
+ | Rust | `.rs` | ✅ | ✅ |
12
+ | JavaScript / JSX | `.js`, `.jsx` | ✅ | ✅ |
13
+ | TypeScript / TSX | `.ts`, `.tsx` | ✅ | ✅ |
14
+ | Python | `.py` | ✅ | ✅ |
15
+ | Go | `.go` | ✅ | ✅ |
16
+ | C / C++ | `.c`, `.h`, `.cpp`, `.cc`, `.cxx`, `.hpp`, `.hxx` | ✅ | ✅ |
17
+ | Java | `.java` | ✅ | ✅ |
18
+ | Ruby | `.rb` | ✅ | ✅ |
19
+ | PHP | `.php` | ✅ | ✅ |
20
+ | Swift | `.swift` | ✅ | ✅ |
21
+ | C# | `.cs` | ✅ | ✅ |
22
+ | Markdown | `.md`, `.markdown` | ✅ | ✅ |
23
+ | YAML | `.yaml`, `.yml` | ✅ | ✅ |
24
+
25
+ ## Language Detection
26
+
27
+ Probe automatically detects the language of a file based on its extension. This detection is used to:
28
+
29
+ 1. **Select the appropriate parser**: Each language has a specialized parser
30
+ 2. **Apply language-specific extraction rules**: Different languages have different code structures
31
+ 3. **Handle language-specific features**: Such as Python's significant whitespace or Rust's macros
32
+
33
+ ## Language-Specific Features
34
+
35
+ Each language has specific features and capabilities in Probe:
36
+
37
+ ### Rust
38
+
39
+ - **Function Extraction**: Extracts complete function definitions including attributes and documentation
40
+ - **Struct/Enum Extraction**: Extracts complete struct and enum definitions
41
+ - **Impl Block Extraction**: Extracts implementation blocks for types
42
+ - **Macro Handling**: Properly handles macro definitions and invocations
43
+ - **Module Awareness**: Understands Rust's module system
44
+ - **Test Detection**: Identifies test functions marked with `#[test]` attribute or functions with names starting with `test_`
45
+
46
+ ### JavaScript / TypeScript
47
+
48
+ - **Function Extraction**: Extracts function and arrow function definitions
49
+ - **Class Extraction**: Extracts complete class definitions with methods
50
+ - **JSX/TSX Support**: Properly handles JSX and TSX syntax
51
+ - **Module Awareness**: Understands ES modules and CommonJS
52
+ - **Type Definitions**: Extracts TypeScript interfaces and type definitions
53
+ - **Test Detection**: Identifies test functions using Jest, Mocha, or other frameworks
54
+
55
+ TypeScript adds additional support for interfaces, type aliases, enums, and namespaces.
56
+
57
+ ### Python
58
+
59
+ - **Function Extraction**: Extracts function definitions with docstrings
60
+ - **Class Extraction**: Extracts complete class definitions with methods
61
+ - **Decorator Handling**: Properly handles decorated functions and classes
62
+ - **Indentation Awareness**: Understands Python's significant whitespace
63
+ - **Module Docstrings**: Includes module-level docstrings in relevant extractions
64
+ - **Test Detection**: Identifies test functions using unittest, pytest, or other frameworks
65
+
66
+ ### Go
67
+
68
+ - **Function Extraction**: Extracts function definitions with documentation
69
+ - **Struct Extraction**: Extracts complete struct definitions
70
+ - **Interface Extraction**: Extracts interface definitions
71
+ - **Method Extraction**: Extracts methods associated with types
72
+ - **Comment Handling**: Properly associates comments with code blocks
73
+ - **Test Detection**: Identifies test functions with the `Test` prefix
74
+
75
+ Go also implements special handling for nested struct types.
76
+
77
+ ### C / C++
78
+
79
+ - **Function Extraction**: Extracts function definitions and declarations
80
+ - **Class/Struct Extraction**: Extracts complete class and struct definitions
81
+ - **Template Handling**: Properly handles template definitions
82
+ - **Namespace Awareness**: Understands C++ namespaces
83
+ - **Preprocessor Handling**: Includes relevant preprocessor directives
84
+ - **Test Detection**: Identifies test functions based on naming conventions
85
+
86
+ ### Java
87
+
88
+ - **Method Extraction**: Extracts method definitions with annotations
89
+ - **Class Extraction**: Extracts complete class definitions
90
+ - **Interface Extraction**: Extracts interface definitions
91
+ - **Annotation Handling**: Properly handles annotated elements
92
+ - **Package Awareness**: Understands Java's package system
93
+ - **Test Detection**: Identifies test classes and methods using JUnit annotations
94
+
95
+ ### Ruby
96
+
97
+ - **Method Extraction**: Extracts method definitions
98
+ - **Class/Module Extraction**: Extracts complete class and module definitions
99
+ - **Block Handling**: Properly handles Ruby blocks
100
+ - **Mixin Awareness**: Understands Ruby's include and extend
101
+ - **Documentation**: Includes RDoc comments in extractions
102
+ - **Test Detection**: Identifies test methods in Test::Unit, RSpec, or Minitest
103
+
104
+ ### PHP
105
+
106
+ - **Function Extraction**: Extracts function definitions
107
+ - **Class Extraction**: Extracts complete class definitions with methods
108
+ - **Namespace Awareness**: Understands PHP namespaces
109
+ - **Attribute Handling**: Properly handles PHP 8 attributes
110
+ - **Documentation**: Includes PHPDoc comments in extractions
111
+ - **Test Detection**: Identifies test classes and methods using PHPUnit conventions
112
+
113
+ ### Swift
114
+
115
+ - **Function Extraction**: Extracts function and method definitions
116
+ - **Class/Struct Extraction**: Extracts complete class and struct definitions
117
+ - **Protocol Extraction**: Extracts protocol definitions
118
+ - **Extension Handling**: Properly handles Swift extensions
119
+ - **Attribute Handling**: Includes relevant attributes in extractions
120
+ - **Test Detection**: Identifies test classes and methods using XCTest conventions
121
+
122
+ ### C#
123
+
124
+ - **Method Extraction**: Extracts method definitions with attributes
125
+ - **Class Extraction**: Extracts complete class definitions
126
+ - **Interface Extraction**: Extracts interface definitions
127
+ - **Namespace Awareness**: Understands C# namespaces
128
+ - **Attribute Handling**: Properly handles C# attributes
129
+ - **Test Detection**: Identifies test classes and methods using NUnit, MSTest, or xUnit conventions
130
+
131
+ ### Markdown
132
+
133
+ - **Section Extraction**: Extracts complete sections based on headings
134
+ - **Code Block Extraction**: Extracts fenced code blocks
135
+ - **List Extraction**: Extracts complete lists
136
+ - **Table Extraction**: Extracts complete tables
137
+ - **Frontmatter Handling**: Properly handles YAML frontmatter
138
+
139
+ ### YAML
140
+
141
+ - **Key-Value Pair Extraction**: Extracts mapping pairs with keys and values
142
+ - **Sequence Extraction**: Extracts arrays and lists
143
+ - **Scalar Extraction**: Extracts literal and folded block scalars
144
+ - **Comment Extraction**: Extracts comments and preserves them in context
145
+ - **Document Structure**: Handles multi-document YAML streams
146
+ - **Anchor and Alias Support**: Properly handles YAML anchors and aliases
147
+ - **Test Detection**: Identifies test-related configuration keys and values
148
+
149
+ ## Test Detection
150
+
151
+ Probe can detect test code at two levels:
152
+
153
+ 1. **File-level detection**: Identifies test files based on naming conventions and directory patterns
154
+ 2. **Node-level detection**: Identifies test functions and classes within files
155
+
156
+ This allows users to include or exclude test code from search results using the `--allow-tests` flag.
157
+
158
+ ### File-level Test Detection
159
+
160
+ Probe identifies test files based on common naming patterns:
161
+
162
+ - **Rust**: `*_test.rs`, `*_tests.rs`, `test_*.rs`, `tests.rs`
163
+ - **JavaScript/TypeScript**: `*.test.js`, `*.spec.js`, `*.test.ts`, `*.spec.ts`
164
+ - **Python**: `test_*.py`, `*_test.py`
165
+ - **Go**: `*_test.go`
166
+ - **Java**: `*Test.java`, `*Tests.java`
167
+
168
+ Probe also identifies test files based on directory patterns:
169
+ - `/test/`, `/tests/`, `/spec/`, `/specs/`, `/__tests__/`
170
+
171
+ ### Node-level Test Detection
172
+
173
+ Each language implementation has specific logic to identify test functions and classes:
174
+
175
+ - **Rust**: Functions with `#[test]` attribute or names starting with `test_`
176
+ - **JavaScript/TypeScript**: Functions using Jest, Mocha, or other test frameworks
177
+ - **Python**: Functions using unittest, pytest, or other test frameworks
178
+ - **Go**: Functions with the `Test` prefix
179
+ - **Java**: Classes and methods with JUnit annotations
180
+
181
+ ## Pattern Matching Examples
182
+
183
+ Probe supports language-specific pattern matching. Here are some examples:
184
+
185
+ ### Rust Patterns
186
+ ```
187
+ fn $NAME($$$PARAMS) $$$BODY
188
+ struct $NAME { $$$FIELDS }
189
+ impl $TYPE { $$$METHODS }
190
+ ```
191
+
192
+ ### JavaScript/TypeScript Patterns
193
+ ```
194
+ function $NAME($$$PARAMS) { $$$BODY }
195
+ const $NAME = ($$$PARAMS) => $$$BODY
196
+ class $NAME { $$$METHODS }
197
+ ```
198
+
199
+ ### Python Patterns
200
+ ```
201
+ def $NAME($$$PARAMS): $$$BODY
202
+ class $NAME: $$$METHODS
203
+ @$DECORATOR\ndef $NAME($$$PARAMS): $$$BODY
204
+ ```
205
+
206
+ ### Go Patterns
207
+ ```
208
+ func $NAME($$$PARAMS) $$$BODY
209
+ type $NAME struct { $$$FIELDS }
210
+ func ($RECEIVER $TYPE) $NAME($$$PARAMS) $$$BODY
211
+ ```
212
+
213
+ ## Adding Support for New Languages
214
+
215
+ If you're interested in adding support for a language that's not currently supported, see the [Adding New Languages](/adding-languages) page for a detailed guide.
@@ -0,0 +1,8 @@
1
+ # Use Cases & Workflows
2
+
3
+ This directory contains scenario-based documentation for different Probe usage patterns.
4
+
5
+ - **Web Interface**: Code as a source of truth for product functionality
6
+ - **AI Code Editors & MCP**: Integration with AI-powered code editors
7
+ - **CLI for AI Workflows**: Using Probe in the command line for AI-assisted workflows
8
+ - **Developers & SDK**: Building custom tools with the Node.js SDK