@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,338 @@
1
+ # Probe Chat
2
+
3
+ A command-line and web interface for interacting with Probe code search using AI models through the Vercel AI SDK.
4
+
5
+ ## Features
6
+
7
+ - Interactive CLI chat interface
8
+ - Web-based chat interface with Markdown and syntax highlighting
9
+ - Support for Anthropic Claude, OpenAI, and Google Gemini models
10
+ - Force provider option to specify which AI provider to use
11
+ - Semantic code search using Probe's search capabilities
12
+ - AST-based code querying for finding specific code structures
13
+ - Code extraction for viewing complete context
14
+ - Session-based search caching for improved performance
15
+ - Token usage tracking
16
+ - Colorized output for better readability (CLI mode)
17
+ - Diagram generation with Mermaid.js (Web mode)
18
+
19
+ ## Prerequisites
20
+
21
+ - Node.js 18 or higher
22
+ - Probe CLI installed and available in your PATH
23
+ - An API key for Anthropic Claude, OpenAI, or Google Gemini
24
+
25
+ ## Installation
26
+
27
+ 1. Clone the repository
28
+ 2. Navigate to the `examples/chat` directory
29
+ 3. Install dependencies:
30
+
31
+ ```bash
32
+ npm install
33
+ ```
34
+
35
+ 4. Create a `.env` file with your API keys:
36
+
37
+ ```
38
+ # API Keys (uncomment and add your key)
39
+ ANTHROPIC_API_KEY=your_anthropic_api_key
40
+ # OPENAI_API_KEY=your_openai_api_key
41
+ # GOOGLE_API_KEY=your_google_api_key
42
+
43
+ # Force a specific provider (optional)
44
+ # FORCE_PROVIDER=anthropic # Options: anthropic, openai, google
45
+
46
+ # Debug mode (set to true for verbose logging)
47
+ DEBUG=false
48
+
49
+ # Default model (optional)
50
+ # For Anthropic: MODEL_NAME=claude-3-7-sonnet-latest
51
+ # For OpenAI: MODEL_NAME=gpt-4o-2024-05-13
52
+ # For Google: MODEL_NAME=gemini-2.0-flash
53
+
54
+ # API URL configuration (optional)
55
+ # Generic base URL for all providers (if provider-specific URL not set)
56
+ # LLM_BASE_URL=https://your-custom-endpoint.com
57
+ # Provider-specific URLs (override LLM_BASE_URL)
58
+ # ANTHROPIC_API_URL=https://your-anthropic-endpoint.com
59
+ # OPENAI_API_URL=https://your-openai-endpoint.com
60
+ # GOOGLE_API_URL=https://your-google-endpoint.com
61
+
62
+ # Folders to search (comma-separated list of paths)
63
+ # If not specified, the current directory will be used by default
64
+ # ALLOWED_FOLDERS=/path/to/folder1,/path/to/folder2
65
+
66
+ # Web interface settings (optional)
67
+ # PORT=8080
68
+ # AUTH_ENABLED=false
69
+ # AUTH_USERNAME=admin
70
+ # AUTH_PASSWORD=password
71
+ ```
72
+
73
+ ## Usage
74
+
75
+ ### CLI Mode
76
+
77
+ Start the chat interface in CLI mode:
78
+
79
+ ```bash
80
+ node index.js
81
+ ```
82
+
83
+ Or with npm:
84
+
85
+ ```bash
86
+ npm start
87
+ ```
88
+
89
+ ### Web Mode
90
+
91
+ Start the chat interface in web mode:
92
+
93
+ ```bash
94
+ node index.js --web
95
+ ```
96
+
97
+ Or with npm:
98
+
99
+ ```bash
100
+ npm run web
101
+ ```
102
+
103
+ You can specify a custom port:
104
+
105
+ ```bash
106
+ node index.js --web --port 3000
107
+ ```
108
+
109
+ You can also specify a path to the codebase you want to search:
110
+
111
+ ```bash
112
+ node index.js /path/to/codebase
113
+ ```
114
+
115
+ For example, to search in a repository located at ../../tyk:
116
+
117
+ ```bash
118
+ node index.js ../../tyk
119
+ ```
120
+
121
+ This will override any ALLOWED_FOLDERS setting in your .env file.
122
+
123
+ ### Command-line Options
124
+
125
+ - `-d, --debug`: Enable debug mode for verbose logging
126
+ - `-m, --model <model>`: Specify the model to use (e.g., `claude-3-7-sonnet-latest`, `gpt-4o-2024-05-13`, `gemini-2.0-flash`)
127
+ - `-f, --force-provider <provider>`: Force a specific provider (options: `anthropic`, `openai`, `google`)
128
+ - `-w, --web`: Run in web interface mode
129
+ - `-p, --port <port>`: Port to run web server on (default: 8080)
130
+ - `--prompt <value>`: Use a custom prompt (values: `architect`, `code-review`, `support`, or path to a file)
131
+ - `[path]`: Path to the codebase to search (overrides ALLOWED_FOLDERS)
132
+
133
+ ### Special Commands
134
+
135
+ During the chat, you can use these special commands:
136
+
137
+ - `exit` or `quit`: End the chat session
138
+ - `usage`: Display token usage statistics
139
+ - `clear`: Clear the chat history and start a new session
140
+
141
+ ## How It Works
142
+
143
+ This CLI tool uses the Vercel AI SDK to interact with AI models and provides them with tools to search and analyze your codebase:
144
+
145
+ 1. **search**: Searches code using Elasticsearch-like query syntax
146
+ 2. **query**: Searches code using AST-based pattern matching
147
+ 3. **extract**: Extracts code blocks from files with context
148
+
149
+ The AI is instructed to use these tools to answer your questions about the codebase, providing relevant code snippets and explanations.
150
+
151
+ ### Search Caching
152
+
153
+ The tool automatically generates a unique session ID for each chat session and passes it to the Probe CLI commands using the `--session` parameter. This enables caching of search results within a session, which can significantly improve performance when similar searches are performed multiple times.
154
+
155
+ The session ID is managed internally and doesn't require any user intervention. When you start a new chat session (or use the "clear" command), a new session ID is generated, and a new cache is created.
156
+
157
+ ## Provider Options
158
+
159
+ Probe Chat supports multiple AI providers, giving you flexibility in choosing which model to use for your code search and analysis:
160
+
161
+ ### Supported Providers
162
+
163
+ 1. **Anthropic Claude**
164
+ - Default model: `claude-3-7-sonnet-latest`
165
+ - Environment variable: `ANTHROPIC_API_KEY`
166
+ - Best for: Complex code analysis, detailed explanations, and understanding nuanced patterns
167
+
168
+ 2. **OpenAI GPT**
169
+ - Default model: `gpt-4o-2024-05-13`
170
+ - Environment variable: `OPENAI_API_KEY`
171
+ - Best for: General code search, pattern recognition, and concise explanations
172
+
173
+ 3. **Google Gemini**
174
+ - Default model: `gemini-2.0-flash`
175
+ - Environment variable: `GOOGLE_API_KEY`
176
+ - Best for: Fast responses, code generation, and efficient search
177
+
178
+ ### Forcing a Specific Provider
179
+
180
+ You can force Probe Chat to use a specific provider in two ways:
181
+
182
+ 1. **Using the command line option**:
183
+ ```bash
184
+ node index.js --force-provider anthropic
185
+ node index.js --force-provider openai
186
+ node index.js --force-provider google
187
+ ```
188
+
189
+ 2. **Using the environment variable**:
190
+ Add this to your `.env` file:
191
+ ```
192
+ FORCE_PROVIDER=anthropic # or openai, google
193
+ ```
194
+
195
+ When forcing a provider, Probe Chat will verify that you have the corresponding API key set. If the API key is missing, it will display an error message.
196
+
197
+ ### Customizing Models
198
+
199
+ You can specify which model to use for each provider:
200
+
201
+ 1. **Using the command line option**:
202
+ ```bash
203
+ node index.js --model claude-3-7-sonnet-latest
204
+ node index.js --model gpt-4o-2024-05-13
205
+ node index.js --model gemini-2.0-flash
206
+ ```
207
+
208
+ 2. **Using the environment variable**:
209
+ Add this to your `.env` file:
210
+ ```
211
+ MODEL_NAME=claude-3-7-sonnet-latest
212
+ ```
213
+
214
+ Note that the model must be compatible with the selected provider. If you force a specific provider and specify a model, the model must be available for that provider.
215
+
216
+ ### Custom API Endpoints
217
+
218
+ You can configure custom API endpoints for each provider:
219
+
220
+ 1. **Generic endpoint for all providers**:
221
+ ```
222
+ LLM_BASE_URL=https://your-custom-endpoint.com
223
+ ```
224
+ This will be used for all providers unless a provider-specific URL is set.
225
+
226
+ 2. **Provider-specific endpoints**:
227
+ ```
228
+ ANTHROPIC_API_URL=https://your-anthropic-endpoint.com
229
+ OPENAI_API_URL=https://your-openai-endpoint.com
230
+ GOOGLE_API_URL=https://your-google-endpoint.com
231
+ ```
232
+ These override the generic LLM_BASE_URL for their respective providers.
233
+ Provider-specific URLs always take precedence over the generic LLM_BASE_URL.
234
+
235
+ ## Custom Prompts
236
+
237
+ Probe Chat allows you to customize the system prompt used by the AI assistant. This can be useful for tailoring the assistant's behavior to specific use cases or domains.
238
+
239
+ ### Predefined Prompts
240
+
241
+ By default, Probe Chat uses a "Code Explorer" prompt that's optimized for answering questions about code, explaining how systems work, and providing insights into code functionality.
242
+
243
+ The `--prompt` option accepts several predefined prompt types to specialize the assistant for different tasks:
244
+
245
+ 1. **code-explorer** (default): Focuses on explaining and navigating code. The assistant will provide clear explanations of how code works, find relevant snippets, and trace function calls and data flow.
246
+
247
+ ```bash
248
+ node index.js --prompt code-explorer
249
+ ```
250
+
251
+ Note: This is the default behavior, so you don't need to specify this prompt explicitly.
252
+
253
+ 2. **architect**: Focuses on software architecture and design. The assistant will analyze code from an architectural perspective, identify patterns, suggest improvements, and create high-level design documentation.
254
+
255
+ ```bash
256
+ node index.js --prompt architect
257
+ ```
258
+
259
+ 2. **code-review**: Focuses on code quality and best practices. The assistant will identify issues, suggest improvements, and ensure code follows best practices.
260
+
261
+ ```bash
262
+ node index.js --prompt code-review
263
+ ```
264
+
265
+ 3. **support**: Focuses on troubleshooting and problem-solving. The assistant will help diagnose errors, understand unexpected behaviors, and find solutions.
266
+
267
+ ```bash
268
+ node index.js --prompt support
269
+ ```
270
+
271
+ Each predefined prompt type maintains the core functionality of Probe Chat while specializing in a particular area of focus. The standard instructions for using tools and following the XML format are automatically included with all predefined prompts.
272
+
273
+ ### Custom Prompt Files
274
+
275
+ You can also provide a path to a file containing your own custom prompt:
276
+
277
+ ```bash
278
+ node index.js --prompt /path/to/your/prompt.txt
279
+ ```
280
+
281
+ The file should contain the complete system prompt that you want to use. This completely replaces the default system prompt. If you're creating a custom prompt, make sure to include instructions for using the available tools and following the XML format.
282
+
283
+ Example custom prompt file:
284
+
285
+ ```
286
+ You are ProbeChat Custom, a specialized AI assistant for [your specific use case].
287
+ You focus on [specific area of expertise] and excel at [key strengths].
288
+
289
+ Follow these instructions carefully:
290
+ 1. Analyze the user's request with a focus on [your specific focus area].
291
+ 2. Use <thinking></thinking> tags to analyze the situation and determine the appropriate tool for each step.
292
+ 3. Use the available tools step-by-step to fulfill the request.
293
+ 4. Ensure to get really deep and understand the full picture before answering.
294
+ 5. You MUST respond with exactly ONE tool call per message, using the specified XML format, until the task is complete.
295
+ 6. Wait for the tool execution result (provided in the next user message in a <tool_result> block) before proceeding to the next step.
296
+ 7. Once the task is fully completed, and you have confirmed the success of all steps, use the '<attempt_completion>' tool to provide the final result.
297
+ 8. Prefer concise and focused search queries. Use specific keywords and phrases to narrow down results.
298
+ 9. [Add any additional specialized instructions here]
299
+ ```
300
+
301
+ ### Environment Variables
302
+
303
+ You can also set a default prompt type using the environment variable:
304
+
305
+ ```
306
+ PROMPT_TYPE=architect
307
+ ```
308
+
309
+ Or specify a path to a custom prompt file:
310
+
311
+ ```
312
+ CUSTOM_PROMPT=/path/to/your/prompt.txt
313
+ ```
314
+
315
+ The command-line option takes precedence over the environment variable.
316
+ Provider-specific URLs always take precedence over the generic LLM_BASE_URL.
317
+
318
+ ## Example Queries
319
+
320
+ - "How does the config loading work?"
321
+ - "Show me all RPC handlers"
322
+ - "What does the process_file function do?"
323
+ - "Find all implementations of the extract tool"
324
+ - "Show me the main entry point of the application"
325
+
326
+ ## Architecture
327
+
328
+ - `index.js`: Main entry point for both CLI and web interfaces
329
+ - `probeChat.js`: Core chat functionality
330
+ - `webServer.js`: Web server implementation
331
+ - `auth.js`: Authentication middleware for web interface
332
+ - `probeTool.js`: Tool definitions for code search, query, and extraction
333
+ - `tokenCounter.js`: Utility for tracking token usage
334
+ - `index.html`: Web interface HTML template
335
+
336
+ ## License
337
+
338
+ Apache-2.0
@@ -0,0 +1,226 @@
1
+ # Tracing Support for Probe Chat
2
+
3
+ This document describes the tracing functionality available in the Probe Chat application.
4
+
5
+ ## Overview
6
+
7
+ Probe Chat now supports OpenTelemetry tracing for AI model calls, allowing you to:
8
+ - Track AI model interactions and performance
9
+ - Export traces to files for analysis
10
+ - Send traces to remote OpenTelemetry collectors
11
+ - Debug AI model calls with console output
12
+
13
+ ## Configuration
14
+
15
+ ### CLI Options
16
+
17
+ You can enable tracing using the following command-line options:
18
+
19
+ ```bash
20
+ # Enable file tracing (default: ./traces.jsonl)
21
+ node index.js --trace-file
22
+
23
+ # Enable file tracing with custom path
24
+ node index.js --trace-file ./my-traces.jsonl
25
+
26
+ # Enable remote tracing (default: http://localhost:4318/v1/traces)
27
+ node index.js --trace-remote
28
+
29
+ # Enable remote tracing with custom endpoint
30
+ node index.js --trace-remote http://my-collector:4318/v1/traces
31
+
32
+ # Enable console tracing for debugging
33
+ node index.js --trace-console
34
+
35
+ # Enable multiple exporters
36
+ node index.js --trace-file --trace-remote --trace-console
37
+ ```
38
+
39
+ ### Environment Variables
40
+
41
+ You can also configure tracing using environment variables:
42
+
43
+ ```bash
44
+ # Enable file tracing
45
+ export OTEL_ENABLE_FILE=true
46
+ export OTEL_FILE_PATH=./traces.jsonl
47
+
48
+ # Enable remote tracing
49
+ export OTEL_ENABLE_REMOTE=true
50
+ export OTEL_EXPORTER_OTLP_TRACES_ENDPOINT=http://localhost:4318/v1/traces
51
+
52
+ # Enable console tracing
53
+ export OTEL_ENABLE_CONSOLE=true
54
+
55
+ # Service information
56
+ export OTEL_SERVICE_NAME=probe-chat
57
+ export OTEL_SERVICE_VERSION=1.0.0
58
+ ```
59
+
60
+ ## Trace Data
61
+
62
+ The tracing system captures the following information:
63
+
64
+ ### Span Attributes
65
+ - **Service Information**: Service name, version
66
+ - **Session Information**: Session ID, iteration number
67
+ - **Model Information**: Model name, API type (anthropic, openai, google)
68
+ - **Configuration**: Allow edit flag, prompt type
69
+ - **Function ID**: Unique identifier for each chat function
70
+
71
+ ### Trace Content
72
+ - AI model requests and responses
73
+ - Token usage statistics
74
+ - Tool call information
75
+ - Error details when they occur
76
+
77
+ ## File Format
78
+
79
+ When using file tracing, traces are saved in JSON Lines format (`.jsonl`), where each line contains a complete trace span:
80
+
81
+ ```json
82
+ {
83
+ "traceId": "abcd1234...",
84
+ "spanId": "efgh5678...",
85
+ "name": "ai.generateText",
86
+ "startTimeUnixNano": 1704067200000000000,
87
+ "endTimeUnixNano": 1704067201000000000,
88
+ "attributes": {
89
+ "sessionId": "session-123",
90
+ "iteration": "1",
91
+ "model": "claude-3-7-sonnet-20250219",
92
+ "apiType": "anthropic"
93
+ },
94
+ "status": { "code": "OK" },
95
+ "events": [],
96
+ "links": [],
97
+ "resource": {
98
+ "attributes": {
99
+ "service.name": "probe-chat",
100
+ "service.version": "1.0.0"
101
+ }
102
+ }
103
+ }
104
+ ```
105
+
106
+ ## Remote Tracing
107
+
108
+ For remote tracing, you can use any OpenTelemetry-compatible collector:
109
+
110
+ ### Using OpenTelemetry Collector
111
+
112
+ 1. Install the OpenTelemetry Collector
113
+ 2. Configure it with a `receiver` for OTLP HTTP
114
+ 3. Configure exporters for your preferred backend (Jaeger, Zipkin, etc.)
115
+
116
+ Example collector config:
117
+
118
+ ```yaml
119
+ receivers:
120
+ otlp:
121
+ protocols:
122
+ http:
123
+ endpoint: 0.0.0.0:4318
124
+
125
+ exporters:
126
+ jaeger:
127
+ endpoint: jaeger:14250
128
+ tls:
129
+ insecure: true
130
+
131
+ service:
132
+ pipelines:
133
+ traces:
134
+ receivers: [otlp]
135
+ exporters: [jaeger]
136
+ ```
137
+
138
+ ### Using Jaeger
139
+
140
+ You can send traces directly to Jaeger using the OTLP endpoint:
141
+
142
+ ```bash
143
+ # Start Jaeger
144
+ docker run -d --name jaeger \
145
+ -p 16686:16686 \
146
+ -p 14250:14250 \
147
+ -p 14268:14268 \
148
+ -p 4317:4317 \
149
+ -p 4318:4318 \
150
+ jaegertracing/all-in-one:latest
151
+
152
+ # Run probe-chat with remote tracing
153
+ node index.js --trace-remote http://localhost:4318/v1/traces
154
+ ```
155
+
156
+ ## Example Usage
157
+
158
+ ### Basic File Tracing
159
+
160
+ ```bash
161
+ # Enable file tracing and run a query
162
+ node index.js --trace-file --message "What files are in this project?"
163
+
164
+ # Check the generated traces
165
+ cat traces.jsonl | jq '.'
166
+ ```
167
+
168
+ ### Remote Tracing with Jaeger
169
+
170
+ ```bash
171
+ # Start Jaeger
172
+ docker run -d --name jaeger -p 16686:16686 -p 4318:4318 jaegertracing/all-in-one:latest
173
+
174
+ # Run probe-chat with remote tracing
175
+ node index.js --trace-remote --message "Analyze the main function"
176
+
177
+ # View traces at http://localhost:16686
178
+ ```
179
+
180
+ ### Combined Tracing
181
+
182
+ ```bash
183
+ # Enable both file and remote tracing
184
+ node index.js --trace-file ./debug-traces.jsonl --trace-remote http://localhost:4318/v1/traces --trace-console
185
+
186
+ # This will:
187
+ # 1. Save traces to ./debug-traces.jsonl
188
+ # 2. Send traces to the remote collector
189
+ # 3. Print traces to console for debugging
190
+ ```
191
+
192
+ ## Performance Considerations
193
+
194
+ - **File Tracing**: Minimal overhead, suitable for production
195
+ - **Remote Tracing**: Slight network overhead, depends on collector performance
196
+ - **Console Tracing**: Higher overhead, recommended for debugging only
197
+
198
+ ## Integration with Vercel AI SDK
199
+
200
+ The tracing system integrates with the Vercel AI SDK's experimental telemetry feature. When tracing is enabled, the SDK automatically:
201
+
202
+ - Creates spans for each AI model call
203
+ - Captures request/response data
204
+ - Records token usage information
205
+ - Tracks tool calls and their results
206
+
207
+ ## Troubleshooting
208
+
209
+ ### Common Issues
210
+
211
+ 1. **File permissions**: Ensure write permissions for the trace file directory
212
+ 2. **Remote collector unavailable**: Check network connectivity and collector status
213
+ 3. **Large trace files**: Consider log rotation for long-running sessions
214
+
215
+ ### Debug Mode
216
+
217
+ Enable debug mode to see tracing initialization messages:
218
+
219
+ ```bash
220
+ node index.js --debug --trace-file
221
+ ```
222
+
223
+ This will show:
224
+ - Telemetry initialization status
225
+ - Exporter configuration
226
+ - Any errors during setup