@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,56 @@
1
+ #!/usr/bin/env bash
2
+ set -euo pipefail
3
+
4
+ #––– Claude Hook Wrapper –––––––––––––––––––––––––––––––––––––––––––––––––
5
+ # Generic wrapper that runs any command and formats output for Claude Code
6
+ # Usage: ./scripts/claude-hook-wrapper.sh <command> [args...]
7
+ #
8
+ # Returns JSON with:
9
+ # - decision: "approve" if command exits with 0, "block" otherwise
10
+ # - reason: Success message or command output on failure
11
+
12
+ #––– CONSTANTS ––––––––––––––––––––––––––––––––––––––––––––––––––––––––––
13
+ readonly PASS='approve'
14
+ readonly FAIL='block'
15
+
16
+ #––– SHORT-CIRCUIT WHEN NESTED ––––––––––––––––––––––––––––––––––––––––––
17
+ if [[ ${CLAUDE_STOP_HOOK_ACTIVE:-false} == "true" ]]; then
18
+ printf '{"decision":"%s"}\n' "$PASS"
19
+ exit 0
20
+ fi
21
+
22
+ #––– CHANGE TO REPOSITORY ROOT –––––––––––––––––––––––––––––––––––––––––
23
+ # This ensures relative paths work correctly regardless of where Claude runs the hook
24
+ cd "$(dirname "$0")/.."
25
+
26
+ #––– VALIDATE ARGUMENTS –––––––––––––––––––––––––––––––––––––––––––––––––
27
+ if [[ $# -eq 0 ]]; then
28
+ printf '{"decision":"%s","reason":"Error: No command provided to claude-hook-wrapper.sh"}\n' "$FAIL"
29
+ exit 1
30
+ fi
31
+
32
+ #––– JSON ESCAPE FUNCTION ––––––––––––––––––––––––––––––––––––––––––––––
33
+ json_escape() {
34
+ if command -v jq >/dev/null 2>&1; then
35
+ jq -Rs '.' <<<"$1"
36
+ else
37
+ # Fallback if jq is not available
38
+ printf '%s' "$1" | sed 's/\\/\\\\/g; s/"/\\"/g; s/ /\\t/g' | awk '{gsub(/\r/,"\\r"); gsub(/\n/,"\\n"); printf "%s\\n", $0}' | sed '$ s/\\n$//'
39
+ fi
40
+ }
41
+
42
+ #––– RUN COMMAND ––––––––––––––––––––––––––––––––––––––––––––––––––––––––
43
+ # Capture both stdout and stderr
44
+ output=$(mktemp)
45
+ trap 'rm -f "$output"' EXIT
46
+
47
+ # Run the command, capturing all output
48
+ if "$@" >"$output" 2>&1; then
49
+ # Command succeeded
50
+ printf '{"decision":"%s","reason":"✅ %s completed successfully!"}\n' "$PASS" "$1"
51
+ else
52
+ # Command failed - include the output in the reason
53
+ exit_code=$?
54
+ reason=$(printf "❌ %s failed with exit code %d!\n\nOutput:\n%s\n\n💡 Please fix the issues above and try again." "$1" "$exit_code" "$(<"$output")")
55
+ printf '{"decision":"%s","reason":%s}\n' "$FAIL" "$(json_escape "$reason")"
56
+ fi
@@ -0,0 +1,10 @@
1
+ # Environment variables for Cloudflare Pages deployment
2
+ # Copy this to .env and configure as needed
3
+
4
+ # Cloudflare configuration (optional)
5
+ # CLOUDFLARE_ACCOUNT_ID=your-account-id
6
+ # CLOUDFLARE_API_TOKEN=your-api-token
7
+
8
+ # Build configuration
9
+ NODE_VERSION=20
10
+ NPM_VERSION=latest
@@ -0,0 +1,86 @@
1
+ # Cloudflare Pages Deployment
2
+
3
+ This documentation site is deployed using Cloudflare Pages with automatic deployments from the main branch to **probelabs.com**.
4
+
5
+ ## Deployment Configuration
6
+
7
+ ### Files
8
+ - `wrangler.toml` - Cloudflare Pages configuration
9
+ - `public/_headers` - HTTP headers for security and caching
10
+ - `public/_redirects` - URL redirect rules
11
+ - `.env.example` - Environment variable template
12
+
13
+ ### Build Settings
14
+ - **Build command**: `npm run build`
15
+ - **Build output directory**: `.vitepress/dist`
16
+ - **Root directory**: `site`
17
+ - **Node.js version**: 20
18
+
19
+ ## Setup Instructions
20
+
21
+ ### 1. Cloudflare Pages Setup
22
+ 1. Go to [Cloudflare Pages](https://pages.cloudflare.com/)
23
+ 2. Connect your GitHub repository
24
+ 3. Configure the build settings:
25
+ - **Project name**: `probe-docs`
26
+ - **Production branch**: `main`
27
+ - **Build command**: `npm run build`
28
+ - **Build output directory**: `.vitepress/dist`
29
+ - **Root directory**: `site`
30
+
31
+ ### 2. Environment Variables
32
+ Set these in Cloudflare Pages dashboard if needed:
33
+ - `NODE_VERSION`: `20`
34
+ - `NPM_VERSION`: `latest`
35
+
36
+ ### 3. Custom Domain Setup
37
+ The site is configured to deploy to **probelabs.com**. To set this up:
38
+
39
+ 1. In Cloudflare Pages dashboard, go to Custom domains
40
+ 2. Add the domain `probelabs.com`
41
+ 3. Add a redirect from `www.probelabs.com` to `probelabs.com` (already configured in `_redirects`)
42
+ 4. Update your DNS records:
43
+ - **A Record**: `probelabs.com` → Your Cloudflare Pages IP
44
+ - **CNAME**: `www.probelabs.com` → `probelabs.com`
45
+ 5. The domain configuration is already set in `wrangler.toml`
46
+
47
+ ## Build Process
48
+
49
+ The site builds automatically when:
50
+ - Code is pushed to the `main` branch
51
+ - Pull requests are created (preview deployments)
52
+
53
+ ### Local Development
54
+ ```bash
55
+ cd site
56
+ npm install
57
+ npm run dev
58
+ ```
59
+
60
+ ### Local Build Test
61
+ ```bash
62
+ cd site
63
+ npm run build
64
+ npm run preview
65
+ ```
66
+
67
+ ## Troubleshooting
68
+
69
+ ### Common Issues
70
+ 1. **Build fails**: Check Node.js version is 20
71
+ 2. **Assets not loading**: Verify `public/` directory structure
72
+ 3. **404 errors**: Check `_redirects` file configuration
73
+
74
+ ### Logs
75
+ Build logs are available in the Cloudflare Pages dashboard under the deployment details.
76
+
77
+ ## Migration Notes
78
+
79
+ This site was migrated from GitHub Pages. The old workflow file has been disabled and renamed to `vitepress-gh-pages.yml.disabled`.
80
+
81
+ ## Performance Features
82
+
83
+ - **Edge deployment**: Served from Cloudflare's global edge network
84
+ - **Automatic HTTPS**: SSL certificates managed automatically
85
+ - **Caching**: Optimized caching headers for static assets
86
+ - **Security headers**: CSP and security headers configured
@@ -0,0 +1,183 @@
1
+ # Probe Documentation Site
2
+
3
+ This directory contains the VitePress-powered documentation site for the Probe project. This README provides information about the documentation structure, how to contribute, and how to maintain the documentation.
4
+
5
+ ## Documentation Structure
6
+
7
+ The documentation is organized into several main sections:
8
+
9
+ - **Getting Started**: Quick Start, Installation, Core Features
10
+ - **Core Functionality**: How It Works, Search Functionality, Code Extraction, CLI Mode
11
+ - **AI Integration**: AI Integration Overview, AI Chat Mode, MCP Server, MCP Integration, Node.js SDK, Web Interface
12
+ - **Language Support**: Language Support Overview, Supported Languages, Adding Languages
13
+
14
+ For a complete overview of the documentation structure, see [documentation-maintenance.md](./documentation-maintenance.md).
15
+
16
+ ## Key Documentation Files
17
+
18
+ - **index.md**: Main landing page with feature highlights
19
+ - **quick-start.md**: Getting started guide
20
+ - **installation.md**: Detailed installation instructions
21
+ - **features.md**: Overview of core features
22
+ - **how-it-works.md**: Technical explanation of Probe's architecture
23
+ - **ai-integration.md**: Overview of AI integration capabilities
24
+ - **language-support-overview.md**: Overview of language support features
25
+ - **documentation-guide.md**: Guide for users on how to use the documentation
26
+ - **documentation-maintenance.md**: Technical guide for documentation maintainers
27
+
28
+ ## Cross-References
29
+
30
+ The documentation uses cross-references to help users navigate between related topics. For a complete guide on cross-references and documentation maintenance, see [documentation-maintenance.md](./documentation-maintenance.md).
31
+
32
+ When adding new documentation or updating existing documentation, please ensure that cross-references are maintained and updated as needed.
33
+
34
+ ## Defining Features in index.md
35
+
36
+ The `index.md` file supports a custom features section that can be defined in the frontmatter. Each feature can have the following properties:
37
+
38
+ ```yaml
39
+ features:
40
+ - icon: 🔎 # Emoji icon (optional if image is provided)
41
+ title: Feature Title # Required
42
+ details: Feature description # Required
43
+ link: /page-link # Optional link to another page
44
+ linkText: Learn more # Optional custom text for the link (defaults to "Learn more")
45
+ theme: alt # Optional theme (alt, brand, or default)
46
+ image: /icons/my-icon.svg # Optional image path (replaces the emoji icon)
47
+ highlight: true # Optional boolean to highlight the feature
48
+ ```
49
+
50
+ ### Example Feature Definition
51
+
52
+ Here's an example of how to define features in the index.md frontmatter:
53
+
54
+ ```yaml
55
+ ---
56
+ layout: home
57
+
58
+ hero:
59
+ name: "Probe"
60
+ text: "Local, AI-ready\nCode Exploration"
61
+ tagline: "Open-source tooling that truly understands your codebase."
62
+
63
+ features:
64
+ - icon: 🔎
65
+ title: AST-Aware Code Search
66
+ details: Search your code with semantic understanding. Find functions, classes, and patterns across your entire codebase.
67
+ link: /how-it-works
68
+ linkText: Learn how it works
69
+ highlight: true
70
+
71
+ - icon: ⚡
72
+ title: Lightning Fast
73
+ details: Built on ripgrep and tree-sitter for blazing fast performance. No indexing needed.
74
+ theme: alt
75
+
76
+ - icon: 🔒
77
+ title: 100% Local & Private
78
+ details: Your code stays on your machine. Perfect for sensitive projects.
79
+ image: /icons/privacy-icon.svg
80
+ ---
81
+ ```
82
+
83
+ ## Custom Components
84
+
85
+ The documentation uses several custom components:
86
+
87
+ ### CodeEditor
88
+
89
+ The `CodeEditor` component displays code snippets with syntax highlighting:
90
+
91
+ ```markdown
92
+ <CodeEditor filePath="example.js">
93
+ function handleError(error) {
94
+ console.error(`Error: ${error.message}`);
95
+ return { success: false, error: error.message };
96
+ }
97
+ </CodeEditor>
98
+ ```
99
+
100
+ ### CommandExample
101
+
102
+ The `CommandExample` component displays command-line examples:
103
+
104
+ ```markdown
105
+ <CommandExample>probe search "error handling" ./src</CommandExample>
106
+ ```
107
+
108
+ With output:
109
+
110
+ ```markdown
111
+ <CommandExample output="Found 3 matches in 2 files">probe search "user authentication" ./src</CommandExample>
112
+ ```
113
+
114
+ ## Documentation Conventions
115
+
116
+ Please follow these conventions when contributing to the documentation:
117
+
118
+ 1. **File Names**: Use kebab-case for file names (e.g., `quick-start.md`, `how-it-works.md`)
119
+ 2. **Headings**: Use Title Case for headings (e.g., "Getting Started", "Core Functionality")
120
+ 3. **Code Examples**: Use appropriate syntax highlighting for code examples
121
+ 4. **Cross-References**: Use relative links for cross-references (e.g., `[Quick Start](./quick-start.md)`)
122
+ 5. **Images**: Store images in the `public` directory and reference them with absolute paths (e.g., `/images/example.png`)
123
+
124
+ ## Running the Site Locally
125
+
126
+ To run the site locally:
127
+
128
+ 1. Navigate to the site directory
129
+ 2. Install dependencies: `npm install`
130
+ 3. Start the development server: `npm run dev`
131
+
132
+ ## Deployment
133
+
134
+ The site is deployed using **Cloudflare Pages** with automatic deployments from the main branch to **probelabs.com**.
135
+
136
+ ### Deployment Configuration
137
+ - Platform: Cloudflare Pages
138
+ - Domain: probelabs.com
139
+ - Build command: `npm run build`
140
+ - Output directory: `.vitepress/dist`
141
+ - Node.js version: 20
142
+
143
+ For detailed deployment instructions, see [DEPLOYMENT.md](./DEPLOYMENT.md).
144
+
145
+ ### Previous Deployment
146
+ The site was previously deployed via GitHub Pages. The old workflow has been disabled and renamed to `vitepress-gh-pages.yml.disabled`.
147
+
148
+ ## Building for Production
149
+
150
+ To build the site for production:
151
+
152
+ ```bash
153
+ npm run build
154
+ ```
155
+
156
+ The built site will be in the `.vitepress/dist` directory.
157
+
158
+ ## Contributing to the Documentation
159
+
160
+ We welcome contributions to the Probe documentation. If you find errors, omissions, or have suggestions for improvements, please consider contributing:
161
+
162
+ 1. Fork the [Probe repository](https://github.com/probelabs/probe) on GitHub
163
+ 2. Make your changes to the documentation files in the `site` directory
164
+ 3. Ensure that cross-references are maintained and updated as needed
165
+ 4. Run the site locally to verify your changes
166
+ 5. Submit a pull request with your changes
167
+
168
+ ## Maintenance Guidelines
169
+
170
+ When maintaining the documentation:
171
+
172
+ 1. **Keep Cross-References Updated**: When adding or removing documentation, update cross-references in related files
173
+ 2. **Maintain Consistent Style**: Follow the established style and formatting conventions
174
+ 3. **Update Navigation**: When adding new documentation, update the navigation structure as described in [documentation-maintenance.md](./documentation-maintenance.md)
175
+ 4. **Check for Broken Links**: Regularly check for broken links and fix them
176
+ 5. **Update Examples**: Keep code examples and command examples up to date with the latest version of Probe
177
+ 6. **Review Regularly**: Regularly review the documentation for accuracy and completeness
178
+
179
+ ## VitePress Configuration
180
+
181
+ The VitePress configuration is located in the `.vitepress/config.js` file. When updating the documentation structure, be sure to update the sidebar and navigation configuration in this file.
182
+
183
+ For more information on VitePress configuration, see the [VitePress documentation](https://vitepress.dev/reference/site-config).# Temporary test change
@@ -0,0 +1,135 @@
1
+ # Adding Support for New Languages
2
+
3
+ This guide lists the exact files you must modify to add a new language to Probe.
4
+
5
+ ## Required File Modifications
6
+
7
+ Adding a new language requires modifying exactly **11 files**. Missing any of these will result in incomplete language support.
8
+
9
+ ### Step 1: Core Language Implementation (4 files)
10
+ ### Step 2: Search & Extract Integration (4 files)
11
+ ### Step 3: CLI & User Interface (2 files)
12
+ ### Step 4: Documentation (1 file)
13
+
14
+ ## Step 1: Core Language Implementation
15
+
16
+ ### File 1: `Cargo.toml`
17
+ Add tree-sitter dependency:
18
+ ```toml
19
+ tree-sitter-yourlang = "X.Y.Z"
20
+ ```
21
+
22
+ ### File 2: `src/language/yourlang.rs`
23
+ Create language implementation (copy from existing language like `rust.rs`):
24
+ ```rust
25
+ use super::language_trait::LanguageImpl;
26
+ use tree_sitter::{Language as TSLanguage, Node};
27
+
28
+ pub struct YourLangLanguage;
29
+
30
+ impl LanguageImpl for YourLangLanguage {
31
+ fn get_tree_sitter_language(&self) -> TSLanguage {
32
+ tree_sitter_yourlang::language().into()
33
+ }
34
+ // ... implement other required methods
35
+ }
36
+ ```
37
+
38
+ ### File 3: `src/language/mod.rs`
39
+ Add module export:
40
+ ```rust
41
+ pub mod yourlang;
42
+ ```
43
+
44
+ ### File 4: `src/language/factory.rs`
45
+ Add import:
46
+ ```rust
47
+ use probe_code::language::yourlang::YourLangLanguage;
48
+ ```
49
+ Add registration:
50
+ ```rust
51
+ "yourext" => Some(Box::new(YourLangLanguage::new())),
52
+ ```
53
+
54
+ ## Step 2: Search & Extract Integration
55
+
56
+ ### File 5: `src/search/file_list_cache.rs`
57
+ Add to `get_language_extensions()` function:
58
+ ```rust
59
+ "yourlang" => vec![".yourext".to_string()],
60
+ ```
61
+
62
+ ### File 6: `src/extract/formatter.rs`
63
+ Add to syntax highlighting mapping:
64
+ ```rust
65
+ "yourext" => "yourlang",
66
+ ```
67
+
68
+ ### File 7: `src/search/results_formatter.rs`
69
+ Add to language mapping:
70
+ ```rust
71
+ "yourext" => "yourlang",
72
+ ```
73
+
74
+ ### File 8: `src/search/search_output.rs`
75
+ Add to language mapping and comment prefix:
76
+ ```rust
77
+ // In syntax highlighting mapping:
78
+ "yourext" => "yourlang",
79
+
80
+ // In comment prefix mapping (choose appropriate section):
81
+ // For # comments:
82
+ "py" | "rb" | "sh" | "bash" | "pl" | "r" | "yourext" => "#",
83
+ // For // comments:
84
+ "rs" | "c" | "h" | "cpp" | "yourext" => "//",
85
+ ```
86
+
87
+ ## Step 3: CLI & User Interface
88
+
89
+ ### File 9: `src/cli.rs`
90
+ Add to language completion lists (2 locations):
91
+ ```rust
92
+ "yourlang", "yourext",
93
+ ```
94
+
95
+ ### File 10: `npm/src/mcp/index.ts`
96
+ Add to supported languages description:
97
+ ```rust
98
+ 'Supported languages: rust, javascript, typescript, python, go, c, cpp, java, ruby, php, swift, csharp, yourlang.',
99
+ ```
100
+
101
+ ## Step 4: Documentation
102
+
103
+ ### File 11: `site/supported-languages.md`
104
+ Add table entry and language-specific features section.
105
+
106
+ ## Testing
107
+
108
+ Create comprehensive tests in your language file:
109
+ ```rust
110
+ #[cfg(test)]
111
+ mod tests {
112
+ use super::*;
113
+ // Add tests for all LanguageImpl methods
114
+ }
115
+ ```
116
+
117
+ ## LanguageImpl Methods to Implement
118
+
119
+ Copy implementation patterns from similar languages:
120
+
121
+ - `get_tree_sitter_language()` - Return tree-sitter language
122
+ - `is_acceptable_parent()` - Define extractable code blocks
123
+ - `is_test_node()` - Detect test code
124
+ - `get_symbol_signature()` - Extract clean signatures
125
+ - `find_parent_function()` - Optional method
126
+
127
+ Use tree-sitter playground to understand AST structure: https://tree-sitter.github.io/tree-sitter/playground
128
+
129
+ ## Verification
130
+
131
+ After modifying all 11 files:
132
+ 1. `cargo test` - All tests pass
133
+ 2. `cargo run -- search "term" file.yourext` - Search works
134
+ 3. `cargo run -- extract file.yourext:N` - Extract works
135
+ 4. `cargo run -- search "test" --allow-tests` - Test detection works