@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,285 @@
1
+ # Using Probe in the CLI for Advanced AI
2
+
3
+ This guide explains how to use Probe's CLI-based AI chat capabilities for powerful code exploration and understanding directly from your terminal.
4
+
5
+ ## Overview
6
+
7
+ Probe's AI Chat mode combines the power of large language models with Probe's code search capabilities, all in a convenient command-line interface. This integration allows you to have natural conversations about your codebase without leaving your terminal.
8
+
9
+ Key benefits:
10
+
11
+ - **Natural Language Understanding**: Ask questions about your code in plain English
12
+ - **Contextual Awareness**: The AI maintains conversation history for follow-up questions
13
+ - **Code-Aware Responses**: Get explanations that reference specific files and line numbers
14
+ - **Intelligent Search**: The AI automatically formulates optimal search queries based on your questions
15
+ - **Local Search Engine**: Probe searches your code locally without requiring embedding generation, but search results are sent to the AI service
16
+
17
+ ## Getting Started
18
+
19
+ ### Quick Setup
20
+
21
+ The fastest way to get started is using npx:
22
+
23
+ ```bash
24
+ # Set your API key first
25
+ export ANTHROPIC_API_KEY=your_api_key
26
+ # Or for OpenAI
27
+ # export OPENAI_API_KEY=your_api_key
28
+
29
+ # Run directly with npx (no installation needed)
30
+ npx -y @probelabs/probe-chat@latest
31
+
32
+ # Or specify a directory to search
33
+ npx -y @probelabs/probe-chat@latest /path/to/your/project
34
+ ```
35
+
36
+ ### Global Installation
37
+
38
+ For regular use, you might prefer a global installation:
39
+
40
+ ```bash
41
+ # Install globally
42
+ npm install -g @probelabs/probe-chat@latest
43
+
44
+ # Start the chat interface
45
+ probe-chat
46
+ ```
47
+
48
+ ## Common Workflows
49
+
50
+ ### 1. Exploring a New Codebase
51
+
52
+ When you're new to a project, the AI chat can help you quickly understand its structure and functionality:
53
+
54
+ ```
55
+ ❯ What's the overall architecture of this project?
56
+
57
+ ❯ What are the main components and how do they interact?
58
+
59
+ ❯ How is data flowing through the system?
60
+ ```
61
+
62
+ ### 2. Understanding Complex Code
63
+
64
+ When you encounter complex code that's difficult to understand:
65
+
66
+ ```
67
+ ❯ Can you explain how the ranking algorithm in src/ranking.rs works?
68
+
69
+ ❯ What's the purpose of the cache implementation in the search module?
70
+
71
+ ❯ Walk me through the authentication flow step by step.
72
+ ```
73
+
74
+ ### 3. Finding Implementation Details
75
+
76
+ When you need to locate specific functionality:
77
+
78
+ ```
79
+ ❯ Where is the error handling implemented for API requests?
80
+
81
+ ❯ How does the system validate user input?
82
+
83
+ ❯ Show me all the places where database connections are created.
84
+ ```
85
+
86
+ ### 4. Learning Best Practices
87
+
88
+ When you want to understand the patterns and practices used in the codebase:
89
+
90
+ ```
91
+ ❯ What design patterns are used in this project?
92
+
93
+ ❯ How is testing implemented across the codebase?
94
+
95
+ ❯ What's the error handling strategy used in this project?
96
+ ```
97
+
98
+ ### 5. Planning Changes
99
+
100
+ When you need to make changes to the codebase:
101
+
102
+ ```
103
+ ❯ If I wanted to add a new authentication method, what files would I need to modify?
104
+
105
+ ❯ What would be the impact of changing the database schema for users?
106
+
107
+ ❯ How could I improve the performance of the search functionality?
108
+ ```
109
+
110
+ ## Advanced Configuration
111
+
112
+ ### Model Selection
113
+
114
+ You can choose which AI model to use:
115
+
116
+ ```bash
117
+ # Override the default model
118
+ export MODEL_NAME=claude-3-opus-20240229
119
+ probe-chat
120
+ ```
121
+
122
+ ### API URLs
123
+
124
+ For enterprise deployments or when using proxies:
125
+
126
+ ```bash
127
+ # Override API URLs
128
+ export ANTHROPIC_API_URL=https://your-anthropic-proxy.com
129
+ export OPENAI_API_URL=https://your-openai-proxy.com/v1
130
+ probe-chat
131
+ ```
132
+
133
+ ### Debug Mode
134
+
135
+ For troubleshooting or development:
136
+
137
+ ```bash
138
+ # Enable debug mode for detailed logging
139
+ export DEBUG=1 probe-chat
140
+ ```
141
+
142
+ ### Session-Based Caching
143
+
144
+ Probe uses session-based caching to avoid showing the same code blocks multiple times in a conversation:
145
+
146
+ ```bash
147
+ # First search generates a session ID
148
+ probe search "authentication" --session ""
149
+ # Session: a1b2 (example output)
150
+
151
+ # Subsequent searches reuse the session ID
152
+ probe search "login" --session "a1b2"
153
+ # Will skip code blocks already shown in the previous search
154
+ ```
155
+
156
+ ## Integration with Other CLI Tools
157
+
158
+ Probe's AI chat can be combined with other command-line tools for even more powerful workflows:
159
+
160
+ ### Piping Compiler Errors
161
+
162
+ Feed compiler errors directly to the AI for explanation:
163
+
164
+ ```bash
165
+ # Compile and pipe errors to AI chat
166
+ rustc main.rs 2>&1 | probe-chat
167
+ ```
168
+
169
+ ### Using Extract with LLM Prompts
170
+
171
+ Extract code with built-in prompt templates for LLM integration:
172
+
173
+ ```bash
174
+ # Extract with engineer prompt template
175
+ probe extract src/auth.rs#authenticate --prompt engineer --instructions "Explain this authentication function"
176
+
177
+ # Extract with architect prompt template
178
+ probe extract src/api.js --prompt architect --instructions "Analyze this API module"
179
+
180
+ # Extract and pipe to AI chat
181
+ probe extract src/main.rs:42 --prompt engineer --instructions "Explain this function" | probe-chat
182
+ ```
183
+
184
+ ### Processing Search Results
185
+
186
+ Use standard Unix tools to process search results:
187
+
188
+ ```bash
189
+ # Find then filter
190
+ probe search "database" | grep "connection" | probe-chat
191
+ ```
192
+
193
+ ### Scripting with AI Chat
194
+
195
+ You can create scripts that use the AI chat for automated tasks:
196
+
197
+ ```bash
198
+ #!/bin/bash
199
+ # Example script to analyze code quality
200
+ echo "What are the potential security issues in this codebase?" | probe-chat > security_report.txt
201
+ ```
202
+
203
+ ## Best Practices
204
+
205
+ 1. **Be Specific**: Ask specific questions about your codebase for more targeted answers
206
+
207
+ 2. **Start with Overview Questions**: Begin with high-level questions to understand the structure before diving into details
208
+
209
+ 3. **Follow Up**: Use follow-up questions to explore topics in more depth
210
+
211
+ 4. **Reference Files**: Mention specific files or directories if you want to focus on a particular area
212
+
213
+ 5. **Ask for Explanations**: The AI is particularly good at explaining complex code or concepts
214
+
215
+ 6. **Request Examples**: Ask for examples if you're trying to understand how to use a particular feature or API
216
+
217
+ 7. **Use Multiple Queries**: If you don't find what you're looking for, try reformulating your question
218
+
219
+ 8. **Combine with Regular CLI**: Use the AI chat alongside regular Probe CLI commands for maximum effectiveness
220
+
221
+ ## Example Conversation
222
+
223
+ Here's an example of how you might use the AI Chat mode:
224
+
225
+ ```
226
+ ❯ How does the ranking algorithm work?
227
+
228
+ ─ Response ─────────────────────────────────────────────────────────
229
+ I'll explain how the ranking algorithm works in the codebase.
230
+
231
+ The ranking system in Probe uses multiple algorithms to sort search results by relevance. The main ranking algorithms are:
232
+
233
+ 1. TF-IDF (Term Frequency-Inverse Document Frequency)
234
+ 2. BM25 (Best Matching 25)
235
+ 3. Hybrid (a combination approach)
236
+
237
+ Let me break down each approach:
238
+
239
+ ## TF-IDF Ranking
240
+
241
+ TF-IDF weighs terms based on how frequently they appear in a document versus how common they are across all documents.
242
+
243
+ Key implementation details:
244
+ - Term frequency (TF) measures how often a term appears in a document
245
+ - Inverse document frequency (IDF) measures how rare a term is across all documents
246
+ - Final score is calculated as TF × IDF
247
+
248
+ ## BM25 Ranking
249
+
250
+ BM25 is an advanced ranking function that improves upon TF-IDF by adding document length normalization.
251
+
252
+ Key implementation details:
253
+ - Uses parameters k1 (term frequency saturation) and b (document length normalization)
254
+ - Handles edge cases like empty documents and rare terms
255
+ - Provides better results for longer documents
256
+
257
+ ## Hybrid Ranking
258
+
259
+ The hybrid approach combines multiple ranking signals for better results:
260
+
261
+ 1. Combines scores from both TF-IDF and BM25
262
+ 2. Considers document length and term positions
263
+ 3. Applies normalization to ensure fair comparison
264
+
265
+ The default reranker is "hybrid" which provides the best overall results for code search.
266
+
267
+ The ranking implementation can be found in `src/search/result_ranking.rs`.
268
+ ─────────────────────────────────────────────────────────────────────
269
+ Token Usage: Request: 1245 Response: 1532 (Current message only: ~1532)
270
+ Total: 2777 tokens (Cumulative for entire session)
271
+ ─────────────────────────────────────────────────────────────────────
272
+ ```
273
+
274
+ ## Limitations and Considerations
275
+
276
+ - **Token Limits**: Very large codebases may need multiple targeted questions rather than broad ones
277
+ - **API Costs**: Be mindful of token usage, especially with larger models
278
+ - **Privacy**: When using Probe with AI services, code snippets found by Probe are sent to external AI providers (Anthropic, OpenAI, etc.) as part of your queries
279
+ - **Accuracy**: The AI may occasionally make mistakes in its understanding or explanations
280
+
281
+ ## Next Steps
282
+
283
+ - Learn about [Probe's CLI Reference](/cli-mode) for more advanced command-line usage
284
+ - Explore [using Probe with AI Code Editors](/use-cases/ai-code-editors) for integrated IDE experiences
285
+ - Check out [building custom tools](/use-cases/nodejs-sdk) with the Node.js SDK
@@ -0,0 +1,255 @@
1
+ # Centralized Code Search: Deploying the Probe Web Interface
2
+
3
+ This guide explains how to set up and deploy Probe's web interface as a centralized code search and intelligence platform for your entire organization.
4
+
5
+ ## Overview
6
+
7
+ Probe's web interface provides a user-friendly chat experience that allows all team members to interact with your codebase using AI. By hosting this interface, you create a source of truth for how your product works that's accessible to both technical and non-technical team members. This enables quick issue resolution, documentation generation, architecture understanding, and helps product managers, QA teams, and other stakeholders make informed decisions without needing to understand implementation details.
8
+
9
+
10
+ ## Quick Setup with npx
11
+
12
+ The easiest way to deploy Probe's web interface for a team is using npx:
13
+
14
+ ```bash
15
+ # Set your API key first (either Anthropic or OpenAI)
16
+ export ANTHROPIC_API_KEY=your_anthropic_api_key
17
+ # OR
18
+ export OPENAI_API_KEY=your_openai_api_key
19
+
20
+ # Configure allowed folders (required)
21
+ export ALLOWED_FOLDERS=/path/to/repo1,/path/to/repo2
22
+
23
+ # Enable authentication for team use
24
+ export AUTH_ENABLED=true
25
+ export AUTH_USERNAME=team
26
+ export AUTH_PASSWORD=secure_password
27
+
28
+ # Run the web interface
29
+ npx -y @probelabs/probe-chat@latest --web
30
+ ```
31
+
32
+ ### Access the Web Interface
33
+
34
+ Once the server is running, team members can access the web interface at:
35
+
36
+ ```
37
+ http://your-server-ip:8080
38
+ ```
39
+
40
+ You can customize the port using the `--port` option:
41
+
42
+ ```bash
43
+ npx -y @probelabs/probe-chat@latest --web --port 3000
44
+ ```
45
+
46
+ ## Setting Allowed Folders (Security & Privacy)
47
+
48
+ Controlling which code repositories are accessible is crucial for security:
49
+
50
+ ### Configuring Allowed Folders
51
+
52
+ ```bash
53
+ # Specify which folders can be searched
54
+ export ALLOWED_FOLDERS=/path/to/repo1,/path/to/repo2,/path/to/repo3
55
+ ```
56
+
57
+ This environment variable:
58
+ - Restricts search to only the specified directories
59
+ - Prevents access to sensitive files outside these directories
60
+ - Can include multiple repositories separated by commas
61
+
62
+ ### Best Practices for Folder Access
63
+
64
+ 1. **Use Absolute Paths**: Always use full paths to avoid ambiguity
65
+ 2. **Limit Scope**: Only include repositories that should be accessible
66
+ 3. **Exclude Sensitive Directories**: Don't include directories with secrets or sensitive data
67
+ 4. **Consider Read-Only Access**: For additional security, consider setting up read-only filesystem permissions for the user running the service
68
+
69
+ ## Managing API Keys for the Chat
70
+
71
+ The web interface requires an API key for either Anthropic Claude or OpenAI:
72
+
73
+ ### API Key Management
74
+
75
+ ```bash
76
+ # For Anthropic Claude (recommended)
77
+ export ANTHROPIC_API_KEY=your_anthropic_api_key
78
+
79
+ # OR for OpenAI
80
+ export OPENAI_API_KEY=your_openai_api_key
81
+ ```
82
+
83
+ ### Best Practices for API Keys
84
+
85
+ 1. **Use Environment Variables**: Never hardcode API keys in files
86
+ 2. **Rotate Keys Regularly**: Change keys periodically for security
87
+ 3. **Monitor Usage**: Keep track of API usage to control costs
88
+ 4. **Use a Secrets Manager**: For production deployments, consider using a secrets manager
89
+
90
+ ### Model Selection
91
+
92
+ You can specify which AI model to use:
93
+
94
+ ```bash
95
+ # For Anthropic Claude
96
+ export MODEL_NAME=claude-3-opus-20240229
97
+
98
+ # For OpenAI
99
+ export MODEL_NAME=gpt-4o
100
+ ```
101
+
102
+ ## Authentication & Environment Variables
103
+
104
+ Secure your deployment with authentication:
105
+
106
+ ### Enabling Authentication
107
+
108
+ ```bash
109
+ # Enable basic authentication
110
+ export AUTH_ENABLED=true
111
+ export AUTH_USERNAME=your_username
112
+ export AUTH_PASSWORD=your_secure_password
113
+ ```
114
+
115
+ ### Complete Environment Variable Reference
116
+
117
+ | Variable | Description | Default |
118
+ |----------|-------------|---------|
119
+ | `ANTHROPIC_API_KEY` | Your Anthropic API key | (Required if not using OpenAI) |
120
+ | `OPENAI_API_KEY` | Your OpenAI API key | (Required if not using Anthropic) |
121
+ | `ALLOWED_FOLDERS` | Comma-separated list of folders to search | (Required) |
122
+ | `PORT` | The port to run the server on | 8080 |
123
+ | `MODEL_NAME` | Override the default model | claude-3-7-sonnet-latest or gpt-4o |
124
+ | `AUTH_ENABLED` | Enable basic authentication | false |
125
+ | `AUTH_USERNAME` | Username for authentication | admin |
126
+ | `AUTH_PASSWORD` | Password for authentication | password |
127
+ | `DEBUG` | Enable debug mode | false |
128
+
129
+
130
+ ## Command-Line Options
131
+
132
+ The web interface supports the following command-line options:
133
+
134
+ ```bash
135
+ # Show help
136
+ npx -y @probelabs/probe-chat@latest --help
137
+
138
+ # Run in web mode on a specific port
139
+ npx -y @probelabs/probe-chat@latest --web --port 3000
140
+
141
+ # Specify a model
142
+ npx -y @probelabs/probe-chat@latest --web --model claude-3-7-sonnet-latest
143
+
144
+ # Enable debug mode
145
+ npx -y @probelabs/probe-chat@latest --web --debug
146
+
147
+ # Specify a directory to search
148
+ npx -y @probelabs/probe-chat@latest --web /path/to/your/project
149
+ ```
150
+
151
+ ### Using the npm package (Alternative)
152
+
153
+ If you prefer, you can install the package globally:
154
+
155
+ ```bash
156
+ # Install globally
157
+ npm install -g @probelabs/probe-chat@latest
158
+
159
+ # Start the web interface
160
+ probe-chat --web --port 3000
161
+ ```
162
+
163
+ ## Best Practices for Organization-Wide Usage
164
+
165
+ ### Cross-Functional Team Onboarding
166
+
167
+ 1. **Create Role-Specific Documentation**: Tailor guides for different roles (developers, product managers, QA)
168
+ 2. **Provide Example Queries**: Share effective prompts and questions for common use cases
169
+ 3. **Set Usage Guidelines**: Establish best practices for different types of searches
170
+ 4. **Training Sessions**: Conduct role-specific training for technical and non-technical users
171
+ 5. **Highlight Business Benefits**: Demonstrate how code search improves collaboration and knowledge sharing
172
+
173
+ ### Performance Optimization
174
+
175
+ 1. **Limit Repository Size**: Include only necessary repositories
176
+ 2. **Use a Powerful Server**: Ensure adequate CPU and memory
177
+ 3. **Consider SSD Storage**: Faster disk access improves search performance
178
+ 4. **Regular Maintenance**: Keep the package and Node.js updated
179
+
180
+ ### Security Considerations
181
+
182
+ 1. **Network Security**: Use a reverse proxy with HTTPS
183
+ 2. **IP Restrictions**: Limit access to your company network
184
+ 3. **Regular Updates**: Keep the software updated
185
+ 4. **Audit Logs**: Monitor access and usage
186
+
187
+ ### Example Nginx Configuration
188
+
189
+ ```nginx
190
+ server {
191
+ listen 443 ssl;
192
+ server_name code-chat.yourcompany.com;
193
+
194
+ ssl_certificate /path/to/cert.pem;
195
+ ssl_certificate_key /path/to/key.pem;
196
+
197
+ location / {
198
+ proxy_pass http://localhost:8080;
199
+ proxy_set_header Host $host;
200
+ proxy_set_header X-Real-IP $remote_addr;
201
+
202
+ # Rate limiting
203
+ limit_req zone=one burst=10 nodelay;
204
+ }
205
+ }
206
+ ```
207
+
208
+ ## Cloud Deployment Options
209
+
210
+ For teams working remotely:
211
+
212
+ ### Virtual Private Server (VPS)
213
+
214
+ 1. Provision a VPS with adequate resources
215
+ 2. Install Node.js (v18 or later)
216
+ 3. Set up environment variables for API keys and allowed folders
217
+ 4. Run the web interface using npx
218
+ 5. Set up a domain name and SSL certificate
219
+ 6. Configure a reverse proxy for HTTPS
220
+
221
+ ### Process Management
222
+
223
+ For production deployments, use a process manager like PM2:
224
+
225
+ ```bash
226
+ # Install PM2
227
+ npm install -g pm2
228
+
229
+ # Start the web interface with PM2
230
+ pm2 start "npx -y @probelabs/probe-chat@latest --web" --name "probe-web" --env "ANTHROPIC_API_KEY=your_key" "ALLOWED_FOLDERS=/path/to/repos"
231
+
232
+ # Ensure it starts on system boot
233
+ pm2 startup
234
+ pm2 save
235
+ ```
236
+
237
+ ## Monitoring and Maintenance
238
+
239
+ ### Usage Monitoring
240
+
241
+ 1. **API Usage**: Monitor API costs and usage
242
+ 2. **Server Resources**: Track CPU, memory, and disk usage
243
+ 3. **User Activity**: Monitor access logs and usage patterns
244
+
245
+ ### Regular Updates
246
+
247
+ 1. **Update Package**: Regularly update to the latest version with `npm update -g @probelabs/probe-chat`
248
+ 2. **Update Node.js**: Keep Node.js updated to the latest LTS version
249
+ 3. **Rotate Credentials**: Change API keys and passwords periodically
250
+
251
+ ## Next Steps
252
+
253
+ - For individual developer workflows, see [Integrating Probe into AI Code Editors](/use-cases/integrating-probe-into-ai-code-editors)
254
+ - For advanced CLI usage, check out [CLI AI Workflows](/use-cases/advanced-cli)
255
+ - For programmatic access, explore [Building AI Tools on Probe](/use-cases/building-ai-tools)
@@ -0,0 +1,161 @@
1
+ # Integrating Probe into AI Code Editors
2
+
3
+ This guide explains how to integrate Probe with AI-powered code editors to enhance your coding experience with intelligent code search and understanding.
4
+
5
+ ## Overview
6
+
7
+ AI code editors and assistants are powerful tools, but they often struggle with large codebases because they can't efficiently search and understand your entire project. Probe solves this problem by providing a specialized code search capability that AI assistants can use to find and understand relevant code.
8
+
9
+ ## Quick Setup
10
+
11
+ ### Installing @probelabs/probe with NPX
12
+
13
+ The easiest way to integrate Probe with your AI code editor is through the MCP (Model Context Protocol) server:
14
+
15
+ ```bash
16
+ # You don't need to install anything permanently
17
+ # NPX will run the package directly
18
+ npx -y @probelabs/probe@latest mcp
19
+ ```
20
+
21
+ **Migrating from @probelabs/probe-mcp?** This is a drop-in replacement - just replace `npx @probelabs/probe-mcp` with `npx @probelabs/probe mcp`.
22
+
23
+ This command will:
24
+ 1. Download the Probe MCP server package
25
+ 2. Automatically download the appropriate Probe binary for your platform
26
+ 3. Start the MCP server, which will listen for requests from your AI editor
27
+
28
+ ### Configuring Your AI Editor
29
+
30
+ #### For Cline
31
+
32
+ 1. Create a `.cline` directory in your project root:
33
+ ```bash
34
+ mkdir -p .cline
35
+ ```
36
+
37
+ 2. Create an MCP configuration file:
38
+ ```bash
39
+ # Create the configuration file
40
+ touch .cline/mcp_config.json
41
+ ```
42
+
43
+ 3. Add the following configuration to `.cline/mcp_config.json`:
44
+ ```json
45
+ {
46
+ "mcpServers": {
47
+ "probe": {
48
+ "command": "npx",
49
+ "args": [
50
+ "-y",
51
+ "@probelabs/probe@latest",
52
+ "mcp"
53
+ ]
54
+ }
55
+ }
56
+ }
57
+ ```
58
+
59
+ 4. Start Cline in your project directory and begin asking questions about your code.
60
+
61
+ #### For Roo Code
62
+
63
+ [Roo Code](https://github.com/RooVetGit/Roo-Code) can be configured the same way as other editors via MCP:
64
+
65
+ 1. Follow the installation instructions from the Roo Code GitHub repository
66
+ 2. Configure Roo to use Probe via MCP using the same configuration pattern
67
+ 3. Start using Roo with Probe integration
68
+
69
+ #### For Cursor and Windsurf
70
+
71
+ 1. Install Cursor or Windsurf
72
+ 2. Configure the editor to use MCP
73
+ 3. Add the Probe MCP server configuration
74
+ 4. Restart the editor to apply changes
75
+
76
+ #### For Other AI Assistants
77
+
78
+ Check your AI editor's documentation for MCP configuration. The general pattern is similar:
79
+
80
+ 1. Find where your editor stores MCP configuration
81
+ 2. Add the Probe MCP server configuration
82
+ 3. Restart your editor or reload the configuration
83
+
84
+ ## Using Probe with Your AI Editor
85
+
86
+ Once configured, you can ask your AI assistant questions about your codebase:
87
+
88
+ - "Find all authentication-related functions in the project"
89
+ - "Show me how error handling is implemented"
90
+ - "Search for code that processes user input"
91
+
92
+ The AI will use Probe to search your codebase and provide relevant code snippets and explanations.
93
+
94
+ ## Checking Logs and Debugging
95
+
96
+ If you encounter issues with the integration:
97
+
98
+ ### Enable Debug Mode
99
+
100
+ ```bash
101
+ # Run the MCP server with debug logging
102
+ DEBUG=1 npx -y @probelabs/probe@latest mcp
103
+ ```
104
+
105
+ This will show detailed logs of:
106
+ - Tool calls from the AI
107
+ - Search queries being executed
108
+ - Results being returned
109
+
110
+ ### Common Issues and Solutions
111
+
112
+ | Issue | Solution |
113
+ |-------|----------|
114
+ | AI doesn't use Probe | Explicitly ask the AI to use Probe: "Using Probe, search for..." |
115
+ | Empty search results | Try a simpler query or check if you're searching in the right directory |
116
+ | MCP server not starting | Check your MCP configuration and ensure npx is installed |
117
+ | Permission errors | Check file permissions on your codebase |
118
+
119
+ ### Verifying the Integration
120
+
121
+ To verify that the integration is working:
122
+
123
+ 1. Start your AI editor
124
+ 2. Ask a question like: "Using Probe, find all functions related to authentication in this project"
125
+ 3. Check if the AI responds with relevant code snippets
126
+ 4. If not, check the MCP server logs for errors
127
+
128
+ ## Advanced Configuration
129
+
130
+ For more control over the MCP server:
131
+
132
+ ```json
133
+ {
134
+ "mcpServers": {
135
+ "probe": {
136
+ "command": "npx",
137
+ "args": [
138
+ "-y",
139
+ "@probelabs/probe@latest",
140
+ "mcp"
141
+ ],
142
+ "env": {
143
+ "PROBE_DEFAULT_PATHS": "/path/to/project1,/path/to/project2",
144
+ "PROBE_MAX_TOKENS": "20000",
145
+ "DEBUG": "1"
146
+ }
147
+ }
148
+ }
149
+ }
150
+ ```
151
+
152
+ This configuration:
153
+ - Sets default search paths
154
+ - Limits the maximum tokens returned
155
+ - Enables debug logging
156
+
157
+ ## Next Steps
158
+
159
+ - For advanced MCP usage, see the [MCP Protocol & Tools Reference](/mcp-server)
160
+ - For larger queries or team collaboration, check out the [Web Interface for Teams](/use-cases/team-chat)
161
+ - For CLI-based workflows, explore [Advanced CLI Usage](/use-cases/advanced-cli)