@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,275 @@
1
+ # Probe Documentation Maintenance Guide
2
+
3
+ This guide is for documentation maintainers and contributors. It provides technical information about the documentation structure, cross-references, and navigation configuration.
4
+
5
+ ## Navigation Structure
6
+
7
+ The Probe documentation uses VitePress and follows a specific navigation structure designed to provide a logical organization of content.
8
+
9
+ ### VitePress Configuration
10
+
11
+ Add this configuration to your VitePress configuration file (`.vitepress/config.js`):
12
+
13
+ ```javascript
14
+ export default {
15
+ // ... other VitePress configuration options
16
+
17
+ themeConfig: {
18
+ // ... other theme configuration options
19
+
20
+ sidebar: {
21
+ '/': [
22
+ {
23
+ text: 'Getting Started',
24
+ collapsed: false,
25
+ items: [
26
+ { text: 'Quick Start', link: '/quick-start' },
27
+ { text: 'Installation', link: '/installation' },
28
+ { text: 'Core Features', link: '/features' },
29
+ ]
30
+ },
31
+ {
32
+ text: 'Core Functionality',
33
+ collapsed: false,
34
+ items: [
35
+ { text: 'How It Works', link: '/how-it-works' },
36
+ { text: 'Search Functionality', link: '/search-functionality' },
37
+ { text: 'Code Extraction', link: '/code-extraction' },
38
+ { text: 'CLI Mode', link: '/cli-mode' },
39
+ ]
40
+ },
41
+ {
42
+ text: 'AI Integration',
43
+ collapsed: false,
44
+ items: [
45
+ { text: 'AI Integration Overview', link: '/ai-integration' },
46
+ { text: 'AI Chat Mode', link: '/ai-chat' },
47
+ { text: 'MCP Server', link: '/mcp-server' },
48
+ { text: 'MCP Integration', link: '/mcp-integration' },
49
+ { text: 'Node.js SDK', link: '/nodejs-sdk' },
50
+ { text: 'Web Interface', link: '/web-interface' },
51
+ ]
52
+ },
53
+ {
54
+ text: 'Language Support',
55
+ collapsed: false,
56
+ items: [
57
+ { text: 'Language Support Overview', link: '/language-support-overview' },
58
+ { text: 'Supported Languages', link: '/supported-languages' },
59
+ { text: 'Adding Languages', link: '/adding-languages' },
60
+ ]
61
+ },
62
+ {
63
+ text: 'Advanced Topics',
64
+ collapsed: true,
65
+ items: [
66
+ { text: 'Result Ranking', link: '/result-ranking' },
67
+ { text: 'Pattern Matching', link: '/pattern-matching' },
68
+ { text: 'Performance Optimization', link: '/performance-optimization' },
69
+ { text: 'Customization', link: '/customization' },
70
+ ]
71
+ },
72
+ {
73
+ text: 'Contributing',
74
+ collapsed: true,
75
+ items: [
76
+ { text: 'Contributing Guide', link: '/contributing' },
77
+ { text: 'Code of Conduct', link: '/code-of-conduct' },
78
+ { text: 'Development Setup', link: '/development-setup' },
79
+ ]
80
+ },
81
+ ]
82
+ },
83
+
84
+ nav: [
85
+ { text: 'Home', link: '/' },
86
+ { text: 'Quick Start', link: '/quick-start' },
87
+ {
88
+ text: 'Documentation',
89
+ items: [
90
+ { text: 'Getting Started', items: [
91
+ { text: 'Quick Start', link: '/quick-start' },
92
+ { text: 'Installation', link: '/installation' },
93
+ { text: 'Core Features', link: '/features' },
94
+ ]},
95
+ { text: 'Core Functionality', items: [
96
+ { text: 'How It Works', link: '/how-it-works' },
97
+ { text: 'Search Functionality', link: '/search-functionality' },
98
+ { text: 'Code Extraction', link: '/code-extraction' },
99
+ { text: 'CLI Mode', link: '/cli-mode' },
100
+ ]},
101
+ { text: 'AI Integration', items: [
102
+ { text: 'AI Integration Overview', link: '/ai-integration' },
103
+ { text: 'AI Chat Mode', link: '/ai-chat' },
104
+ { text: 'MCP Server', link: '/mcp-server' },
105
+ { text: 'MCP Integration', link: '/mcp-integration' },
106
+ { text: 'Node.js SDK', link: '/nodejs-sdk' },
107
+ { text: 'Web Interface', link: '/web-interface' },
108
+ ]},
109
+ { text: 'Language Support', items: [
110
+ { text: 'Language Support Overview', link: '/language-support-overview' },
111
+ { text: 'Supported Languages', link: '/supported-languages' },
112
+ { text: 'Adding Languages', link: '/adding-languages' },
113
+ ]},
114
+ ]
115
+ },
116
+ { text: 'GitHub', link: 'https://github.com/probelabs/probe' }
117
+ ],
118
+ }
119
+ }
120
+ ```
121
+
122
+ ## Cross-Reference Guidelines
123
+
124
+ Proper cross-referencing improves navigation, provides contextual understanding, reduces duplication, and ensures comprehensive coverage.
125
+
126
+ ### Cross-Reference Implementation
127
+
128
+ When implementing cross-references, follow these guidelines:
129
+
130
+ 1. **Contextual References**: Include references where they make sense in the context of the document, not just at the end.
131
+
132
+ 2. **Descriptive Link Text**: Use descriptive link text that explains what the linked document contains:
133
+ ```markdown
134
+ Learn more about [how Probe works](/how-it-works)
135
+ ```
136
+ Instead of:
137
+ ```markdown
138
+ [how-it-works.md](/how-it-works)
139
+ ```
140
+
141
+ 3. **Section References**: When appropriate, link to specific sections within documents using anchor links:
142
+ ```markdown
143
+ [Search Syntax](/search-functionality#search-syntax)
144
+ ```
145
+
146
+ 4. **Related Topics Sections**: Include a "Related Topics" section at the end of each document that lists related documents.
147
+
148
+ 5. **Next Steps**: Where appropriate, include a "Next Steps" section that guides users to logical next documents to read.
149
+
150
+ ### Example Implementation
151
+
152
+ Here's an example of how to implement these cross-references in a document:
153
+
154
+ ```markdown
155
+ # Quick Start
156
+
157
+ This guide will help you get up and running with Probe quickly.
158
+
159
+ ## Installation
160
+
161
+ The easiest way to install Probe is via npm:
162
+
163
+ ```bash
164
+ npm install -g @probelabs/probe@latest
165
+ ```
166
+
167
+ For more detailed installation instructions, including manual installation and building from source, see the [Installation Guide](/installation).
168
+
169
+ ...
170
+
171
+ ## Next Steps
172
+
173
+ - Learn more about the [CLI Mode](/cli-mode) for detailed command options
174
+ - Explore the [AI Chat Mode](/ai-chat) for interactive code exploration
175
+ - Check out the [Web Interface](/web-interface) for a browser-based experience
176
+ - Understand [How It Works](/how-it-works) to get the most out of Probe
177
+
178
+ ## Related Topics
179
+
180
+ - [Installation](/installation) - Detailed installation instructions
181
+ - [CLI Mode](/cli-mode) - Command-line interface reference
182
+ - [AI Chat Mode](/ai-chat) - Interactive CLI interface for asking questions about your code
183
+ - [Web Interface](/web-interface) - Browser-based exploration
184
+ ```
185
+
186
+ ## Cross-Reference Map
187
+
188
+ The following map shows how different documentation files should reference each other:
189
+
190
+ ### Getting Started Section
191
+
192
+ - **index.md**
193
+ - Links to: quick-start.md, installation.md, features.md, how-it-works.md, ai-integration.md, language-support-overview.md
194
+
195
+ - **quick-start.md**
196
+ - Links to: installation.md, cli-mode.md, ai-chat.md, web-interface.md, how-it-works.md
197
+ - Referenced by: index.md, installation.md
198
+
199
+ - **installation.md**
200
+ - Links to: quick-start.md, cli-mode.md
201
+ - Referenced by: index.md, quick-start.md
202
+
203
+ - **features.md**
204
+ - Links to: how-it-works.md, search-functionality.md, code-extraction.md, ai-integration.md, language-support-overview.md
205
+ - Referenced by: index.md, how-it-works.md
206
+
207
+ ### Core Functionality Section
208
+
209
+ - **how-it-works.md**
210
+ - Links to: search-functionality.md, code-extraction.md, features.md, language-support-overview.md
211
+ - Referenced by: index.md, features.md, search-functionality.md, code-extraction.md
212
+
213
+ - **search-functionality.md**
214
+ - Links to: how-it-works.md, code-extraction.md, cli-mode.md
215
+ - Referenced by: how-it-works.md, features.md, cli-mode.md, language-support-overview.md
216
+
217
+ - **code-extraction.md**
218
+ - Links to: how-it-works.md, search-functionality.md, language-support-overview.md
219
+ - Referenced by: how-it-works.md, features.md, search-functionality.md, language-support-overview.md
220
+
221
+ - **cli-mode.md**
222
+ - Links to: search-functionality.md, code-extraction.md, installation.md
223
+ - Referenced by: quick-start.md, search-functionality.md, installation.md
224
+
225
+ ### AI Integration Section
226
+
227
+ - **ai-integration.md**
228
+ - Links to: ai-chat.md, mcp-server.md, mcp-integration.md, nodejs-sdk.md, web-interface.md
229
+ - Referenced by: index.md, features.md
230
+
231
+ - **ai-chat.md**
232
+ - Links to: ai-integration.md, nodejs-sdk.md
233
+ - Referenced by: ai-integration.md, quick-start.md, index.md
234
+
235
+ - **mcp-server.md**
236
+ - Links to: ai-integration.md, mcp-integration.md
237
+ - Referenced by: ai-integration.md, mcp-integration.md
238
+
239
+ - **mcp-integration.md**
240
+ - Links to: ai-integration.md, mcp-server.md
241
+ - Referenced by: ai-integration.md, index.md
242
+
243
+ - **nodejs-sdk.md**
244
+ - Links to: ai-integration.md, ai-chat.md, web-interface.md
245
+ - Referenced by: ai-integration.md, index.md
246
+
247
+ - **web-interface.md**
248
+ - Links to: ai-integration.md, nodejs-sdk.md
249
+ - Referenced by: ai-integration.md, quick-start.md
250
+
251
+ ### Language Support Section
252
+
253
+ - **language-support-overview.md**
254
+ - Links to: supported-languages.md, adding-languages.md, search-functionality.md, code-extraction.md
255
+ - Referenced by: index.md, features.md, how-it-works.md
256
+
257
+ - **supported-languages.md**
258
+ - Links to: language-support-overview.md, adding-languages.md
259
+ - Referenced by: language-support-overview.md
260
+
261
+ - **adding-languages.md**
262
+ - Links to: language-support-overview.md, supported-languages.md
263
+ - Referenced by: language-support-overview.md
264
+
265
+ ## Maintenance Best Practices
266
+
267
+ As the documentation evolves:
268
+
269
+ 1. **Update the cross-reference map** when adding new documentation files
270
+ 2. **Review existing cross-references** when updating documentation to ensure they remain relevant
271
+ 3. **Check for broken links** regularly
272
+ 4. **Ensure all document links are correct** and point to existing files
273
+ 5. **Update the navigation** when adding new documentation files
274
+ 6. **Maintain consistent formatting and style** across all documentation pages
275
+ 7. **Consider automating cross-reference validation** as part of the documentation build process
@@ -0,0 +1,147 @@
1
+ # What is Probe?
2
+
3
+ Probe is an AI-friendly, fully local, semantic code search tool designed to power the next generation of AI coding assistants. It combines the speed of ripgrep with the understanding of tree-sitter to provide intelligent code search and extraction capabilities.
4
+
5
+ ## Why Probe?
6
+
7
+ Most AI-assisted editors treat your code like plain text, splitting it into chunks that may or may not cover the full context—especially in large projects. **Probe** tackles this by combining ripgrep's speed with tree-sitter's AST parsing to return only the relevant blocks. No forced cloud indexing, no partial context.
8
+
9
+ This means:
10
+
11
+ - **Complete Context**: Get entire functions, classes, and code blocks—not just fragments.
12
+ - **Local Processing**: Probe runs entirely locally without requiring embedding generation. Your code stays on your machine during search operations.
13
+ - **AST Understanding**: Search based on code structure, not just text patterns.
14
+ - **Customizable Ranking**: Fine-tune how results are sorted using BM25, TF-IDF, or hybrid approaches.
15
+
16
+ ## Core Capabilities
17
+
18
+ ### Code Understanding
19
+
20
+ - **Complete Code Blocks**: Extracts entire functions, classes, or structs
21
+ - **AST Parsing**: Understands code structure using Abstract Syntax Trees
22
+ - **Semantic Search**: Finds code by concept and meaning
23
+ - **Language Awareness**: Recognizes language-specific patterns
24
+ - **Symbol Extraction**: Extracts code by function/class name
25
+
26
+ ### Performance
27
+
28
+ - **Ripgrep Engine**: Fast initial text scanning
29
+ - **Optimized Parsing**: Efficient AST generation
30
+ - **Multi-Core Processing**: Parallel search operations
31
+ - **Session-Based Caching**: Avoids duplicate results
32
+
33
+ ### Intelligent Ranking
34
+
35
+ - **TF-IDF**: Weighs terms based on frequency and importance
36
+ - **BM25**: Better relevance with document length normalization
37
+ - **Hybrid Ranking**: Multiple signals combined for superior ordering
38
+ - **Position Weighting**: Considers term position within code blocks
39
+
40
+ ### Query Capabilities
41
+
42
+ - **Boolean Operators**: AND, OR, NOT for complex queries
43
+ - **Grouping**: Parentheses for logical term grouping
44
+ - **Term Modifiers**: +/- prefixes for required/excluded terms
45
+ - **Field Specifiers**: Target specific code elements
46
+ - **Smart Token Matching**: Stemming and compound word handling
47
+
48
+ ### Privacy
49
+
50
+ - **Local Search Engine**: All search processing happens on your machine without requiring embedding generation
51
+ - **No Telemetry**: Zero data collection
52
+ - **Open Source**: Transparent codebase
53
+ - **AI Integration Note**: When using Probe with external AI services (Anthropic, OpenAI, etc.), code snippets are sent to those services as part of the AI interaction
54
+
55
+ ### Language Support
56
+
57
+ - **Modern Languages**: Rust, Go, Python, JavaScript/TypeScript
58
+ - **Mainstream Languages**: Java, C++, C#, PHP
59
+ - **Documentation**: Markdown and other text formats
60
+ - **Language-Specific Parsing**: Tailored to each language's structure
61
+
62
+ ## AI Integration
63
+
64
+ Probe offers powerful AI integration capabilities that allow you to leverage large language models to understand and navigate your codebase more effectively:
65
+
66
+ - **[AI Chat Mode](./ai-chat.md)**: Interactive CLI interface for asking questions about your codebase
67
+ - **[MCP Server Integration](./mcp-integration.md)**: Seamless integration with AI editors and assistants
68
+ - **[Node.js SDK](./nodejs-sdk.md)**: Programmatic access to Probe's code search capabilities
69
+
70
+ ### AI-Specific Features
71
+
72
+ - **Token-Aware**: Limits results to fit AI context windows
73
+ - **Structured Output**: AI-friendly formats (JSON, XML)
74
+ - **Multi-Model Support**: Works with various LLM models
75
+ - **Streaming Responses**: Real-time AI interaction
76
+ - **OpenTelemetry Tracing**: Comprehensive monitoring and observability for AI interactions
77
+
78
+ ## Usage Modes
79
+
80
+ Probe can be used in multiple ways, depending on your workflow:
81
+
82
+ - **[CLI Mode](./cli-mode.md)**: Direct command-line interface
83
+ - **[MCP Server](./mcp-server.md)**: Integration with AI tools
84
+ - **[AI Chat](./ai-chat.md)**: Interactive AI assistant
85
+ - **[Web Interface](./web-interface.md)**: Browser-based exploration
86
+ - **[Node.js SDK](./nodejs-sdk.md)**: Programmatic access
87
+
88
+ ## Advanced Features
89
+
90
+ ### OpenTelemetry Tracing and Observability
91
+
92
+ Probe provides comprehensive monitoring and observability features for AI interactions:
93
+
94
+ - **Performance Monitoring**: Track AI response times, token usage, and throughput
95
+ - **File-based Tracing**: Save traces to JSON Lines format for offline analysis
96
+ - **Remote Tracing**: Send traces to OpenTelemetry collectors (Jaeger, Zipkin, etc.)
97
+ - **GitHub Actions Integration**: Automatic trace collection and artifact uploads
98
+ - **Rich Telemetry Data**: Capture model details, session information, and error tracking
99
+ - **Cost Optimization**: Monitor and analyze token consumption patterns
100
+
101
+ ```bash
102
+ # Enable file-based tracing
103
+ probe-chat --trace-file ./traces.jsonl
104
+
105
+ # Enable remote tracing to Jaeger
106
+ probe-chat --trace-remote http://localhost:4318/v1/traces
107
+
108
+ # Enable console tracing for debugging
109
+ probe-chat --trace-console
110
+ ```
111
+
112
+ ### Pattern Matching
113
+
114
+ - **AST-Grep Patterns**: Search for specific code patterns using structural queries
115
+ - **Tree-Sitter Queries**: Language-aware structural search
116
+ - **Placeholder Variables**: Match function names, parameters, and bodies with variables
117
+ - **Structure-Aware Matching**: Finds code based on its structure, not just text content
118
+
119
+ ### NPM Integration
120
+
121
+ - **Global Installation**: Simple `npm install -g @probelabs/probe@latest` for system-wide access
122
+ - **NPX Execution**: Run without installation via `npx -y @probelabs/probe-chat@latest`
123
+ - **Node.js API**: Programmatic access via JavaScript
124
+ - **Vercel AI SDK**: Streaming AI responses in web applications
125
+
126
+ ## Getting Started
127
+
128
+ Ready to try Probe? Check out these resources:
129
+
130
+ - [Installation](./installation.md): Get Probe set up on your system
131
+ - [Quick Start](./quick-start.md): Learn the basics in minutes
132
+ - [How It Works](./how-it-works.md): Understand the technology behind Probe
133
+
134
+ ## Use Cases
135
+
136
+ Probe is designed for a variety of workflows:
137
+
138
+ - **AI-Assisted Coding**: Provide your AI assistant with accurate code context
139
+ - **Code Exploration**: Quickly find and understand code in large repositories
140
+ - **Documentation Generation**: Extract code examples for documentation
141
+ - **Code Review**: Find patterns and anti-patterns across your codebase
142
+ - **Refactoring**: Identify all instances of a pattern that needs to be changed
143
+
144
+ For more detailed information on specific features, see:
145
+ - [How Probe Works](how-it-works.md)
146
+ - [Search Functionality](search-functionality.md)
147
+ - [Code Extraction](code-extraction.md)
@@ -0,0 +1,118 @@
1
+ # How Probe Works
2
+
3
+ Probe combines efficient text search with code intelligence to find relevant code in your codebase.
4
+
5
+ ## System Architecture
6
+
7
+ Probe operates in six stages:
8
+
9
+ 1. **Scan**: File identification using ripgrep
10
+ 2. **Parse**: Code structure analysis via Abstract Syntax Trees
11
+ 3. **Process**: Query enhancement with NLP techniques
12
+ 4. **Rank**: Result prioritization
13
+ 5. **Extract**: Code block isolation
14
+ 6. **Format**: Output generation
15
+
16
+ ## Search Workflow
17
+
18
+ Here's how a search for "error handling" works:
19
+
20
+ 1. **Query Processing**:
21
+ - Tokenize → [error, handling]
22
+ - Stem → [error, handl]
23
+ - Generate patterns → `\berror\b`, `\bhandl\w*\b`
24
+ - Parse query syntax → AND(error, handling)
25
+
26
+ 2. **File Scanning**:
27
+ - Identify potential matches using ripgrep
28
+ - Filter based on .gitignore and custom patterns
29
+ - Exclude test files (unless specified otherwise)
30
+
31
+ 3. **Code Analysis**:
32
+ - Parse matching files into ASTs
33
+ - Identify complete code blocks containing matches
34
+ - Extract metadata (function names, parameters, etc.)
35
+
36
+ 4. **Result Ranking**:
37
+ - Calculate relevance scores
38
+ - Apply position weights for terms in identifiers
39
+ - Sort by combined relevance metrics
40
+ - Filter based on session cache (if enabled)
41
+
42
+ 5. **Block Extraction**:
43
+ - Extract complete functions/methods with matches
44
+ - Merge related code blocks when appropriate
45
+ - Apply context lines if requested
46
+
47
+ 6. **Result Delivery**:
48
+ - Format with syntax highlighting
49
+ - Apply token/size constraints
50
+ - Generate structured output
51
+
52
+ ## Rapid Scanning
53
+
54
+ The foundation of Probe's speed:
55
+
56
+ - **Ripgrep Engine**: Fast line scanning at core
57
+ - **Parallel Processing**: Utilizes all CPU cores
58
+ - **Smart Filtering**: Respects .gitignore patterns
59
+ - **Stream Processing**: Minimal memory footprint
60
+ - **Incremental Matching**: Stops scanning when limits are reached
61
+
62
+ ## Code Structure Parsing
63
+
64
+ Where Probe becomes more than just text search:
65
+
66
+ - **Tree-sitter**: Industry-standard parsing technology
67
+ - **AST Generation**: Builds complete code structure map
68
+ - **Language-specific**: Understands each language's unique patterns
69
+ - **Robust Handling**: Works with partial or imperfect code
70
+ - **Symbol Resolution**: Maps identifiers to declarations
71
+
72
+ ## Session-based Caching
73
+
74
+ Avoiding duplicate results across multiple searches:
75
+
76
+ - **Unique Identifiers**: Cache keys based on file path and line numbers
77
+ - **Result Tracking**: Remembers which blocks have been shown
78
+ - **Session Management**: Generates and maintains session IDs
79
+ - **Cache Invalidation**: Clears cache when appropriate
80
+
81
+ ## Output Strategies
82
+
83
+ Delivering results in the most useful format:
84
+
85
+ - **Markdown/Syntax**: Rich, readable code presentation
86
+ - **JSON**: Structured for programmatic use
87
+ - **Token Limiting**: Fits within AI context windows
88
+ - **Priority Handling**: Most relevant results survive limits
89
+ - **Streaming**: Real-time output for interactive use
90
+
91
+ ## Integration Architecture
92
+
93
+ How Probe connects with other tools:
94
+
95
+ ### MCP Server
96
+
97
+ - **STDIO Transport**: Communicates via standard input/output
98
+ - **JSON Protocol**: Structured message format
99
+ - **Tool Definitions**: Exposes search, query, and extract capabilities
100
+
101
+ ### Node.js SDK
102
+
103
+ - **JS Bindings**: JavaScript interface to core functionality
104
+ - **Vercel AI SDK**: Integration for streaming AI responses
105
+ - **Promise-based**: Async/await compatible API
106
+ - **Type Definitions**: TypeScript support
107
+
108
+ ### Web Interface
109
+
110
+ - **Express Backend**: Node.js server for API endpoints
111
+ - **Vanilla JS Frontend**: No framework dependencies
112
+ - **Streaming Responses**: Real-time AI output
113
+ - **Markdown Rendering**: Rich text and code formatting
114
+
115
+ For detailed information on specific features, see:
116
+ - [Search Functionality](search-functionality.md)
117
+ - [Code Extraction](code-extraction.md)
118
+ - [Feature Overview](features.md)