@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,436 @@
1
+ # Code Extraction Reference
2
+
3
+ Complete reference documentation for Probe's code extraction capabilities, including AST parsing, language-specific extraction, and advanced usage techniques.
4
+
5
+ ## EXTRACT COMMAND
6
+
7
+ ```bash
8
+ probe extract <FILES> [OPTIONS]
9
+ ```
10
+
11
+ ### CORE PARAMETERS
12
+
13
+ | Parameter | Description |
14
+ |-----------|-------------|
15
+ | `<FILES>` | **Required**: Files to extract from (e.g., `main.rs:42` or `main.rs#function_name`) |
16
+
17
+ ### KEY OPTIONS
18
+
19
+ | Option | Description | Default |
20
+ |--------|-------------|---------|
21
+ | `-c, --context <N>` | Add N context lines | 0 |
22
+ | `--diff` | Process input as git diff format | Off |
23
+ | `-f, --format <TYPE>` | Output as: `markdown`, `plain`, `json`, `xml`, `color` | `color` |
24
+ | `-k, --keep-input` | Preserve and display original input content | Off |
25
+ | `--prompt <TEMPLATE>` | System prompt template for LLM models (`engineer`, `architect`, or path to file) | None |
26
+ | `--instructions <TEXT>` | User instructions for LLM models | None |
27
+ | `--to-clipboard` | Copy results to clipboard | Off |
28
+ | `--from-clipboard` | Read file paths from clipboard | Off |
29
+
30
+ For complete option details, see `probe extract --help`.
31
+
32
+ ## FILE PATH SYNTAX
33
+
34
+ Probe supports several ways to specify what code to extract:
35
+
36
+ - **Entire file**: `file.rs`
37
+ - **Specific line**: `file.rs:42`
38
+ - **Line range**: `file.rs:10-20`
39
+ - **Symbol name**: `file.rs#handle_extract`
40
+ - **Multiple files**: `file1.rs:10 file2.go:15`
41
+ - **Glob patterns**: `src/*.rs:42`
42
+
43
+ ### MARKDOWN FORMATTING SUPPORT
44
+
45
+ Probe automatically handles markdown formatting when extracting file paths from text input:
46
+
47
+ #### Supported Markdown Patterns
48
+ - **Bold formatting**: `**src/main.rs:42**` → extracts `src/main.rs:42`
49
+ - **Italic formatting**: `*lib/utils.rs#helper*` → extracts `lib/utils.rs#helper`
50
+ - **Strikethrough**: `~~old/deprecated.py~~` → extracts `old/deprecated.py`
51
+ - **Code blocks**: `` `config/settings.json:10` `` → extracts `config/settings.json:10`
52
+ - **Mixed formatting**: `***Important: `src/config.rs:25`***` → extracts `src/config.rs:25`
53
+
54
+ #### Real-World Use Cases
55
+ - **GitHub Issues**: Copy file patterns directly from issue descriptions
56
+ - **Documentation**: Extract paths from markdown documentation
57
+ - **Chat Messages**: Process file references from team chat
58
+ - **Code Reviews**: Handle formatted file paths from review comments
59
+
60
+ #### Example Usage
61
+ ```bash
62
+ # Extract from markdown-formatted text
63
+ echo "**src/main.rs:42** needs review" | probe extract --from-clipboard
64
+
65
+ # Process GitHub issue content
66
+ probe extract --input-file github-issue.md
67
+
68
+ # Handle complex markdown patterns
69
+ echo "Check ***`src/parser.rs:100-150`*** for implementation" | probe extract -
70
+ ```
71
+
72
+ ## AST PARSING
73
+
74
+ Probe uses Abstract Syntax Tree (AST) parsing to understand code structure:
75
+
76
+ ### EXTRACTION PROCESS
77
+
78
+ When you specify a line number, Probe:
79
+
80
+ 1. **Parses** the file using tree-sitter to generate an AST
81
+ 2. **Locates** the node in the AST containing the specified line
82
+ 3. **Navigates** to find the smallest complete code unit (function, class, etc.)
83
+ 4. **Extracts** the entire code block with proper formatting
84
+
85
+ This approach ensures you get complete, syntactically valid code blocks rather than arbitrary line ranges.
86
+
87
+ ```
88
+ File Content → Tree-sitter Parser → AST Generation → Node Location → Parent Node Identification → Code Block Extraction
89
+ ```
90
+
91
+ ### BENEFITS
92
+
93
+ - **Structural Understanding**: Recognizes code structures, not just text
94
+ - **Complete Units**: Extracts entire functions, classes, or blocks
95
+ - **Language Awareness**: Applies language-specific extraction rules
96
+ - **Context Preservation**: Maintains the full context of code elements
97
+ - **Documentation Inclusion**: Captures associated comments and documentation
98
+
99
+ ### FALLBACK MECHANISMS
100
+
101
+ If AST parsing fails or isn't available for a particular language:
102
+
103
+ 1. **Context-Based Fallback**: Extracts the specified line with configurable context
104
+ 2. **Line Range Extraction**: For explicit line ranges, extracts exactly those lines
105
+ 3. **Symbol Text Search**: For symbol references, falls back to text-based search
106
+
107
+ ## LANGUAGE-SPECIFIC EXTRACTION
108
+
109
+ Probe provides specialized extraction for each supported language:
110
+
111
+ ### RUST
112
+
113
+ - Function definitions with attributes and documentation
114
+ - Struct and enum definitions
115
+ - Implementation blocks
116
+ - Macro definitions
117
+
118
+ ```bash
119
+ # Extract a Rust function
120
+ probe extract src/main.rs#handle_request
121
+
122
+ # Extract an impl block
123
+ probe extract src/models.rs:42
124
+ ```
125
+
126
+ ### JAVASCRIPT / TYPESCRIPT
127
+
128
+ - Function and arrow function definitions
129
+ - Class definitions with methods
130
+ - JSX/TSX components
131
+ - TypeScript interfaces and type definitions
132
+
133
+ ```bash
134
+ # Extract a JavaScript class
135
+ probe extract src/components/Button.js#Button
136
+
137
+ # Extract a React component
138
+ probe extract src/App.tsx:15
139
+ ```
140
+
141
+ ### PYTHON
142
+
143
+ - Function definitions with docstrings
144
+ - Class definitions with methods
145
+ - Decorated functions and classes
146
+ - Indentation-aware extraction
147
+
148
+ ```bash
149
+ # Extract a Python class
150
+ probe extract src/models.py#UserModel
151
+
152
+ # Extract a decorated function
153
+ probe extract src/views.py:42
154
+ ```
155
+
156
+ ### GO
157
+
158
+ - Function definitions with documentation
159
+ - Struct and interface definitions
160
+ - Methods associated with types
161
+ - Comment association
162
+
163
+ ```bash
164
+ # Extract a Go struct
165
+ probe extract pkg/models/user.go#User
166
+
167
+ # Extract a method
168
+ probe extract pkg/handlers/auth.go:42
169
+ ```
170
+
171
+ ### OTHER LANGUAGES
172
+
173
+ Probe supports extraction for many other languages including:
174
+
175
+ - **C/C++**: Functions, classes, structs, templates, namespaces
176
+ - **Java**: Methods, classes, interfaces, annotations
177
+ - **Ruby**: Methods, classes, modules, blocks
178
+ - **PHP**: Functions, classes, namespaces, attributes
179
+ - **Swift**: Functions, classes, structs, protocols, extensions
180
+ - **C#**: Methods, classes, interfaces, namespaces, attributes
181
+ - **Markdown**: Sections, code blocks, lists, tables, frontmatter
182
+
183
+ Each language implementation understands the unique syntax and structures of that language.
184
+ ## ADVANCED USAGE TECHNIQUES
185
+
186
+ ### PRESERVING ORIGINAL INPUT WITH --KEEP-INPUT
187
+
188
+ The `--keep-input` (or `-k`) flag preserves and displays the original, unstructured input content alongside the extracted code blocks:
189
+
190
+ ```bash
191
+ # Extract code while preserving original input
192
+ probe extract src/main.rs:42 --keep-input
193
+
194
+ # Using the short form
195
+ probe extract src/main.rs:42 -k
196
+ ```
197
+
198
+ When this flag is enabled, the output will include:
199
+ 1. The original input text exactly as provided
200
+ 2. The structured, extracted code blocks
201
+
202
+ This is particularly useful when:
203
+ - Working with error messages or logs where the context is important
204
+ - Debugging extraction issues by comparing input to output
205
+ - Creating documentation that references both the original text and the extracted code
206
+ - Preserving file paths and line numbers from compiler output
207
+
208
+ #### Output Format with --keep-input
209
+
210
+ In terminal output formats (`color`, `terminal`, `plain`, `markdown`), the original input is displayed first, followed by a separator, then the extracted code blocks:
211
+
212
+ ```
213
+ --- Original Input ---
214
+ src/main.rs:42: error: invalid syntax
215
+
216
+ --- Extracted Code ---
217
+ fn process_data(data: &[u8]) -> Result<Vec<u8>, Error> {
218
+ // Processing logic
219
+ ...
220
+ }
221
+ ```
222
+
223
+ In structured output formats (`json`, `xml`), the original input is included as an additional field:
224
+
225
+ ```json
226
+ {
227
+ "original_input": "src/main.rs:42: error: invalid syntax",
228
+ "results": [
229
+ {
230
+ "file": "src/main.rs",
231
+ "lines": [40, 45],
232
+ "node_type": "function",
233
+ "code": "fn process_data(data: &[u8]) -> Result<Vec<u8>, Error> {\n // Processing logic\n ...\n}"
234
+ }
235
+ ],
236
+ "summary": {
237
+ "count": 1,
238
+ "total_bytes": 85,
239
+ "total_tokens": 25
240
+ }
241
+ }
242
+ ```
243
+
244
+ ### EXTRACTING FROM ERROR MESSAGES
245
+
246
+ Feed compiler errors directly to extract relevant code:
247
+
248
+ ```bash
249
+ # Extract code from compiler errors
250
+ rustc main.rs 2>&1 | probe extract
251
+
252
+ # Pull code from test failures
253
+ go test ./... | probe extract
254
+
255
+ # Extract code from errors while preserving the original error message
256
+ rustc main.rs 2>&1 | probe extract --keep-input
257
+ ```
258
+ ```
259
+
260
+ ### GIT DIFF EXTRACTION
261
+
262
+ Extract code from git diff output with automatic format detection:
263
+
264
+ ```bash
265
+ # Extract code from git diff output (auto-detection)
266
+ git diff | probe extract
267
+
268
+ # Extract code from a diff file (auto-detection)
269
+ probe extract diff_file.patch
270
+
271
+ # Extract code from clipboard containing git diff (auto-detection)
272
+ probe extract --from-clipboard
273
+ ```
274
+
275
+ Probe automatically detects git diff format when content starts with `diff --git`, making the `--diff` flag optional. This works with:
276
+
277
+ - Piped git diff output
278
+ - Diff files provided as arguments
279
+ - Clipboard content with `--from-clipboard`
280
+
281
+ The `--diff` flag is still supported for backward compatibility and explicit format specification.
282
+
283
+ ### PIPELINE INTEGRATION
284
+
285
+ Chain with other tools for powerful workflows:
286
+
287
+ ```bash
288
+ # Find and extract error handlers
289
+ probe search "error handling" --files-only | xargs -I{} probe extract {} --format markdown
290
+
291
+ # Extract specific functions with context
292
+ grep -n "handleRequest" ./src/*.js | cut -d':' -f1,2 | probe extract --context 3
293
+
294
+ # Extract all functions matching a pattern
295
+ find . -name "*.py" | xargs grep -l "def test_" | xargs -I{} probe extract {}#test_
296
+ ```
297
+
298
+ ### SYMBOL EXTRACTION EXAMPLES
299
+
300
+ Extract code by symbol name across different languages:
301
+
302
+ ```bash
303
+ # Extract a Rust function
304
+ probe extract src/main.rs#handle_extract
305
+
306
+ # Extract a JavaScript class method
307
+ probe extract src/components/User.js#User.authenticate
308
+
309
+ # Extract a Python class method
310
+ probe extract src/models.py#UserModel.save
311
+
312
+ # Extract a Go interface
313
+ probe extract pkg/service/interface.go#UserService
314
+ ```
315
+
316
+ ### MULTI-FILE EXTRACTION
317
+
318
+ Extract code from multiple files in a single command:
319
+
320
+ ```bash
321
+ # Extract from multiple specific files
322
+ probe extract src/auth.js:15 src/api.js:27 src/models.rs:42
323
+
324
+ # Extract using glob patterns
325
+ probe extract src/*.rs:42
326
+
327
+ # Extract multiple symbols
328
+ probe extract src/main.rs#handle_request src/models.rs#User
329
+ ```
330
+
331
+ ## PRACTICAL APPLICATIONS
332
+
333
+ ### CODE REVIEW WORKFLOWS
334
+
335
+ ```bash
336
+ # Extract changes for review (using auto-detection)
337
+ git diff | probe extract
338
+
339
+ # Extract changes from a specific commit
340
+ git show commit_hash | probe extract
341
+
342
+ # Extract changes between branches
343
+ git diff main..feature-branch | probe extract
344
+
345
+ # Extract functions modified in a PR
346
+ git diff --name-only origin/main | xargs grep -l "fn " | xargs -I{} probe extract {}
347
+ ```
348
+
349
+ ### DOCUMENTATION GENERATION
350
+
351
+ ```bash
352
+ # Extract public API functions for documentation
353
+ find . -name "*.rs" | xargs grep -l "pub fn" | xargs -I{} probe extract {} --format markdown > api_docs.md
354
+
355
+ # Extract class definitions for API reference
356
+ find . -name "*.py" | xargs grep -l "class " | xargs -I{} probe extract {} --format markdown > classes.md
357
+ ```
358
+
359
+ ### AI INTEGRATION
360
+
361
+ ```bash
362
+ # Extract code for AI context
363
+ probe extract src/main.rs:42 --format json | jq '.results[0].code' | ai-assistant "Explain this code"
364
+
365
+ # Extract multiple related functions for AI analysis
366
+ probe extract src/auth.rs#authenticate src/auth.rs#validate --format json --max-tokens 4000
367
+
368
+ # Code review with git diff and AST extraction
369
+ git diff | tee /tmp/changes.diff | ai-assistant "Here are the changes:" && git diff | probe extract | ai-assistant "Here are the complete functions that were modified:"
370
+
371
+ # Comprehensive code review with both diff and AST context
372
+ git diff > /tmp/changes.diff && git diff | probe extract > /tmp/ast_blocks.txt && cat /tmp/changes.diff /tmp/ast_blocks.txt | ai-assistant "Review these changes. The first part shows the diff, and the second part shows the complete AST blocks of modified functions."
373
+
374
+ # Extract code with LLM prompt and instructions
375
+ probe extract src/auth.rs#authenticate --format json --prompt engineer --instructions "Explain this authentication function"
376
+ ```
377
+
378
+ The git diff auto-detection feature is particularly valuable for AI code review workflows. When you pipe a git diff to `probe extract`, it automatically extracts the complete AST nodes (functions, classes, methods) that contain the changes, providing AI tools with both the specific changes (from the diff) and the full context (from the AST extraction).
379
+
380
+ ### LLM INTEGRATION WITH PROMPTS
381
+
382
+ Probe's extract command supports direct integration with Large Language Models (LLMs) through the `--prompt` and `--instructions` flags:
383
+
384
+ ```bash
385
+ # Extract code with engineer prompt template
386
+ probe extract src/main.rs#handle_request --prompt engineer --instructions "Explain this function"
387
+
388
+ # Extract code with architect prompt template
389
+ probe extract src/auth.rs --prompt architect --instructions "Analyze this authentication module"
390
+
391
+ # Extract code with custom prompt template
392
+ probe extract src/api.js:42 --prompt /path/to/custom/prompt.txt --instructions "Refactor this code"
393
+ ```
394
+
395
+ #### PROMPT TEMPLATES
396
+
397
+ The `--prompt` flag accepts three types of values:
398
+
399
+ 1. **Built-in templates**:
400
+ - `engineer`: A prompt template for software engineering tasks, focused on code implementation
401
+ - `architect`: A prompt template for architectural analysis and planning
402
+
403
+ 2. **Custom templates**:
404
+ - Path to a file containing a custom prompt template
405
+
406
+ 3. **Output integration**:
407
+ - In structured formats (JSON, XML), the prompt and instructions are included as fields
408
+ - In text formats, they appear as sections at the end of the output
409
+
410
+ This feature is particularly useful for:
411
+ - Creating consistent AI prompting patterns
412
+ - Providing context for code analysis
413
+ - Standardizing code review workflows
414
+ - Automating documentation generation
415
+
416
+ ### DEBUGGING ASSISTANCE
417
+
418
+ ```bash
419
+ # Extract code from error stack trace
420
+ cat error.log | probe extract
421
+
422
+ # Extract function with additional context
423
+ probe extract src/api.js:27 --context 10
424
+ ```
425
+
426
+ ## BENEFITS OF CODE EXTRACTION
427
+
428
+ - **COMPLETE CONTEXT**: Get entire functions or classes, not just fragments
429
+ - **LANGUAGE AWARENESS**: Extracts code according to language-specific rules
430
+ - **PRECISE TARGETING**: Extract exactly what you need by line or symbol name
431
+ - **FORMAT FLEXIBILITY**: Output in various formats for different workflows
432
+ - **TOOL INTEGRATION**: Works seamlessly with other command-line tools
433
+ - **INTELLIGENT FALLBACKS**: Gracefully handles cases where AST parsing isn't possible
434
+
435
+ For more information on how Probe works internally, see [How Probe Works](how-it-works.md).
436
+ For details on search capabilities, see [Search Functionality](search-functionality.md).
@@ -0,0 +1,9 @@
1
+ # Contributing to Probe
2
+
3
+ This directory contains guides for contributors to the Probe project, including:
4
+
5
+ - Documentation Maintenance
6
+ - Documentation Cross-References
7
+ - Documentation Structure
8
+
9
+ For general contribution guidelines, please see the [Contributing Guide](https://github.com/probelabs/probe/blob/main/CONTRIBUTING.md) in the main repository.
@@ -0,0 +1,215 @@
1
+ # Documentation Cross-References
2
+
3
+ This guide explains how to maintain cross-references between different sections of the Probe documentation. Proper cross-referencing is essential for helping users navigate the documentation and find related information.
4
+
5
+ ## Importance of Cross-References
6
+
7
+ Cross-references serve several important purposes:
8
+
9
+ 1. **Navigation**: Help users move between related topics
10
+ 2. **Context**: Provide additional context for complex topics
11
+ 3. **Completeness**: Ensure users can find all relevant information
12
+ 4. **Coherence**: Create a unified documentation experience
13
+
14
+ ## Types of Cross-References
15
+
16
+ The Probe documentation uses several types of cross-references:
17
+
18
+ ### 1. Section Links
19
+
20
+ Links between major sections of the documentation:
21
+
22
+ ```markdown
23
+ For more information on installation, see the [Core Concepts & Setup](/installation) section.
24
+ ```
25
+
26
+ ### 2. Related Topics
27
+
28
+ Links to related topics within the same section:
29
+
30
+ ```markdown
31
+ Learn more about [search patterns](/search-functionality#patterns) to improve your search results.
32
+ ```
33
+
34
+ ### 3. Workflow Connections
35
+
36
+ Links that connect different parts of a workflow:
37
+
38
+ ```markdown
39
+ After [setting up the MCP server](/mcp-server#setting-up-the-mcp-server), you can [integrate it with your AI editor](/mcp-integration#editor-integration).
40
+ ```
41
+
42
+ ### 4. Reference Links
43
+
44
+ Links to reference documentation for specific features:
45
+
46
+ ```markdown
47
+ See the [CLI Reference](/cli-mode#search-command) for a complete list of search options.
48
+ ```
49
+
50
+ ## Cross-Reference Patterns
51
+
52
+ When adding cross-references, follow these patterns:
53
+
54
+ ### Between Core Concepts and Use Cases
55
+
56
+ Core Concepts pages should link to relevant Use Cases:
57
+
58
+ ```markdown
59
+ # Language Support
60
+
61
+ [...content...]
62
+
63
+ ## Using in Your Workflow
64
+
65
+ Once you understand the supported languages, you can:
66
+
67
+ - [Use Probe with AI Code Editors](/mcp-integration) for intelligent code assistance
68
+ - [Build custom tools with the Node.js SDK](/nodejs-sdk) for language-specific processing
69
+ ```
70
+
71
+ Use Cases should link back to relevant Core Concepts:
72
+
73
+ ```markdown
74
+ # Using with AI Code Editors
75
+
76
+ [...content...]
77
+
78
+ This integration relies on Probe's [language parsing capabilities](/language-support-overview) to provide accurate code context.
79
+ ```
80
+
81
+ ### Between Use Cases and Reference
82
+
83
+ Use Cases should link to relevant Reference documentation:
84
+
85
+ ```markdown
86
+ # Using in the CLI for Advanced AI
87
+
88
+ [...content...]
89
+
90
+ For a complete list of CLI options, see the [CLI Reference](/cli-mode).
91
+ ```
92
+
93
+ Reference documentation should mention relevant Use Cases:
94
+
95
+ ```markdown
96
+ # CLI Reference
97
+
98
+ [...content...]
99
+
100
+ These commands are commonly used in [AI chat workflows](/ai-chat) and when [building custom tools](/nodejs-sdk).
101
+ ```
102
+
103
+ ## Maintaining Cross-References
104
+
105
+ When updating the documentation structure, follow these guidelines to maintain cross-references:
106
+
107
+ ### 1. Update Links When Moving Pages
108
+
109
+ If you move a page to a new location, update all links to that page:
110
+
111
+ ```bash
112
+ # Find all links to a specific page
113
+ grep -r "\[.*\](\/old-page-path)" site/
114
+ ```
115
+
116
+ ### 2. Check for Broken Links
117
+
118
+ Regularly check for broken links in the documentation:
119
+
120
+ ```bash
121
+ # Using a tool like linkcheck
122
+ npx linkcheck https://probe-docs.example.com
123
+ ```
124
+
125
+ ### 3. Add Context to Links
126
+
127
+ When adding a link, include context about what the user will find:
128
+
129
+ ```markdown
130
+ # Good
131
+ For details on output formatting, see the [Output Formats Reference](/output-formats).
132
+
133
+ # Better
134
+ For details on how to format search results as JSON or XML, see the [Output Formats Reference](/output-formats#json-and-xml).
135
+ ```
136
+
137
+ ### 4. Use Anchor Links
138
+
139
+ Link to specific sections of a page when appropriate:
140
+
141
+ ```markdown
142
+ See the [search command options](/cli-mode#search-options) for more details.
143
+ ```
144
+
145
+ ## Cross-Reference Map
146
+
147
+ The following table shows the key cross-references between different sections of the documentation:
148
+
149
+ | From | To | Purpose |
150
+ |------|-------|---------|
151
+ | Core Concepts → | Use Cases | Show how concepts are applied in practice |
152
+ | Use Cases → | Core Concepts | Provide background on underlying concepts |
153
+ | Use Cases → | Reference | Point to detailed technical information |
154
+ | Reference → | Use Cases | Show practical applications of technical features |
155
+
156
+ ## Examples of Effective Cross-References
157
+
158
+ ### Example 1: From Core Concepts to Use Cases
159
+
160
+ ```markdown
161
+ # What is Probe?
162
+
163
+ [...content about Probe's features...]
164
+
165
+ ## Real-World Applications
166
+
167
+ Probe can be used in various workflows:
168
+
169
+ - For AI-assisted coding, see [Using with AI Code Editors](/mcp-integration)
170
+ - For team collaboration, see [Hosting a Team Chat](/web-interface)
171
+ - For custom AI tools, see [Building AI Tools with Node.js SDK](/nodejs-sdk)
172
+ ```
173
+
174
+ ### Example 2: From Use Cases to Reference
175
+
176
+ ```markdown
177
+ # Using in the CLI for Advanced AI
178
+
179
+ [...content about CLI usage...]
180
+
181
+ ## Advanced Configuration
182
+
183
+ For advanced use cases, you can configure various aspects of the CLI:
184
+
185
+ - For output formatting options, see [Output Formats Reference](/output-formats)
186
+ - For search pattern syntax, see [Search Functionality](/search-functionality#patterns)
187
+ - For environment variables, see [AI Integration Reference](/ai-integration#configuration-options)
188
+ ```
189
+
190
+ ### Example 3: From Reference to Core Concepts and Use Cases
191
+
192
+ ```markdown
193
+ # CLI Reference
194
+
195
+ [...command reference...]
196
+
197
+ ## Background
198
+
199
+ The CLI commands are built on Probe's [core search technology](/how-it-works#search-technology).
200
+
201
+ ## Common Workflows
202
+
203
+ These commands are commonly used in:
204
+
205
+ - [AI chat sessions](/ai-chat) for interactive code exploration
206
+ - [Custom AI tools](/nodejs-sdk) for automated code analysis
207
+ ```
208
+
209
+ ## Best Practices Summary
210
+
211
+ 1. **Be Specific**: Link to the most specific section that contains the relevant information
212
+ 2. **Add Context**: Explain what the user will find at the linked location
213
+ 3. **Maintain Bidirectional Links**: Ensure that related topics link to each other
214
+ 4. **Check Regularly**: Verify that links remain valid as the documentation evolves
215
+ 5. **Use Consistent Language**: Use consistent phrasing for similar types of cross-references