@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,303 @@
1
+ # Context Window Compaction
2
+
3
+ ProbeAgent includes automatic context window compaction to handle scenarios where conversations exceed the AI model's token limits.
4
+
5
+ ## Overview
6
+
7
+ When interacting with AI models through ProbeAgent, conversations can grow large over multiple turns. If the context window limit is exceeded, ProbeAgent automatically compacts the conversation history by intelligently removing intermediate reasoning steps while preserving essential information.
8
+
9
+ ## How It Works
10
+
11
+ ### Conversation Structure
12
+
13
+ ProbeAgent conversations follow this structure:
14
+
15
+ ```
16
+ <user message>
17
+
18
+ <internal agentic monologue> (thinking, tool planning)
19
+
20
+ <tool execution> (search, extract, etc.)
21
+
22
+ <tool result>
23
+
24
+ <final agent answer>
25
+ ```
26
+
27
+ A "segment" consists of:
28
+ - User message (starting point)
29
+ - 0+ assistant monologue messages (internal reasoning with `<thinking>` tags, tool calls)
30
+ - Final answer (tool results or `attempt_completion`)
31
+
32
+ ### Compaction Strategy
33
+
34
+ When a context limit error is detected, ProbeAgent:
35
+
36
+ 1. **Identifies segments** in the conversation history
37
+ 2. **Keeps all user messages** - preserves original questions/requests
38
+ 3. **Keeps all final answers** - preserves tool results and completions
39
+ 4. **Removes intermediate monologues** from older segments (thinking, tool planning)
40
+ 5. **Preserves recent segments** completely (configurable, defaults to last 2 segments)
41
+ 6. **Retries the request** with compacted messages
42
+
43
+ This ensures:
44
+ - ✅ No loss of user intent
45
+ - ✅ No loss of completed work
46
+ - ✅ Continuation from current state
47
+ - ✅ Significant token reduction
48
+
49
+ ## Error Detection
50
+
51
+ The compactor automatically detects context limit errors from various AI providers:
52
+
53
+ - **Anthropic**: "context_length_exceeded", "prompt is too long"
54
+ - **OpenAI**: "maximum context length is X tokens"
55
+ - **Google/Gemini**: "input token count exceeds limit"
56
+ - **Generic patterns**: "tokens exceed", "too long", "over limit", etc.
57
+
58
+ ## Manual Compaction
59
+
60
+ You can manually compact conversation history at any time using the `compactHistory()` method:
61
+
62
+ ```javascript
63
+ const agent = new ProbeAgent({
64
+ sessionId: 'my-session',
65
+ path: './my-project'
66
+ });
67
+
68
+ // ... have some conversations ...
69
+
70
+ // Manually compact history
71
+ const stats = await agent.compactHistory();
72
+
73
+ console.log(`Removed ${stats.removed} messages`);
74
+ console.log(`Token savings: ${stats.tokensSaved}`);
75
+
76
+ // Compact with custom options
77
+ const stats2 = await agent.compactHistory({
78
+ keepLastSegment: true,
79
+ minSegmentsToKeep: 2 // Keep last 2 segments fully
80
+ });
81
+ ```
82
+
83
+ This is useful when:
84
+ - You want to proactively reduce context before hitting limits
85
+ - You're monitoring token usage and want to optimize
86
+ - You want to clean up history at specific checkpoints
87
+ - Testing or debugging compaction behavior
88
+
89
+ ## Configuration
90
+
91
+ Context compaction is enabled **automatically** when context limits are exceeded. No configuration required!
92
+
93
+ For manual compaction or advanced use:
94
+
95
+ ```javascript
96
+ // Manual compaction
97
+ await agent.compactHistory({
98
+ keepLastSegment: true, // Keep the most recent segment intact
99
+ minSegmentsToKeep: 1 // Number of recent segments to preserve fully
100
+ });
101
+ ```
102
+
103
+ ### Options
104
+
105
+ | Option | Default | Description |
106
+ |--------|---------|-------------|
107
+ | `keepLastSegment` | `true` | Always preserve the active/most recent segment |
108
+ | `minSegmentsToKeep` | `1` | Number of recent segments to keep fully (including monologues) |
109
+
110
+ ## Example
111
+
112
+ ### Before Compaction (150+ messages)
113
+
114
+ ```
115
+ [System message]
116
+ Turn 1: User → Assistant(thinking) → Assistant(search) → Tool result
117
+ Turn 2: User → Assistant(thinking) → Assistant(extract) → Tool result
118
+ Turn 3: User → Assistant(thinking) → Assistant(implement) → Tool result
119
+ Turn 4: User → Assistant(thinking) → Assistant(bash) → Tool result
120
+ Turn 5: User → Assistant(thinking) → Assistant(search) ← ACTIVE
121
+ ```
122
+
123
+ ### After Compaction (~50 messages)
124
+
125
+ ```
126
+ [System message]
127
+ Turn 1: User → Tool result (monologue removed)
128
+ Turn 2: User → Tool result (monologue removed)
129
+ Turn 3: User → Tool result (monologue removed)
130
+ Turn 4: User → Tool result (monologue removed)
131
+ Turn 5: User → Assistant(thinking) → Assistant(search) (preserved, active)
132
+ ```
133
+
134
+ **Result**: ~66% reduction in messages, ~60% reduction in tokens
135
+
136
+ Only the **active segment** (Turn 5) retains its full internal monologue. All completed segments (Turns 1-4) are compressed to just User → Final Result.
137
+
138
+ ## Statistics
139
+
140
+ When compaction occurs, ProbeAgent logs statistics:
141
+
142
+ ```
143
+ [INFO] Context window limit exceeded. Compacting conversation...
144
+ [INFO] Removed 42 messages (66.7% reduction)
145
+ [INFO] Estimated token savings: 8450 tokens
146
+ ```
147
+
148
+ With debug mode enabled:
149
+
150
+ ```javascript
151
+ const agent = new ProbeAgent({
152
+ debug: true,
153
+ // ... other options
154
+ });
155
+ ```
156
+
157
+ You'll see detailed compaction information:
158
+
159
+ ```
160
+ [DEBUG] Compaction stats: {
161
+ originalCount: 63,
162
+ compactedCount: 21,
163
+ removed: 42,
164
+ reductionPercent: 66.7,
165
+ originalTokens: 12800,
166
+ compactedTokens: 4350,
167
+ tokensSaved: 8450
168
+ }
169
+ ```
170
+
171
+ ## API Reference
172
+
173
+ ### `agent.compactHistory(options)`
174
+
175
+ Manually compact conversation history.
176
+
177
+ **Parameters:**
178
+ - `options` (Object, optional)
179
+ - `keepLastSegment` (boolean, default: `true`) - Preserve active segment
180
+ - `minSegmentsToKeep` (number, default: `1`) - Number of recent segments to keep fully
181
+
182
+ **Returns:** Promise<Object> - Compaction statistics
183
+ ```javascript
184
+ {
185
+ originalCount: 63, // Original message count
186
+ compactedCount: 21, // Compacted message count
187
+ removed: 42, // Messages removed
188
+ reductionPercent: 66.7, // Percentage reduction
189
+ originalTokens: 12800, // Estimated original tokens
190
+ compactedTokens: 4350, // Estimated compacted tokens
191
+ tokensSaved: 8450 // Estimated tokens saved
192
+ }
193
+ ```
194
+
195
+ **Example:**
196
+ ```javascript
197
+ const stats = await agent.compactHistory();
198
+ console.log(`Saved ${stats.tokensSaved} tokens`);
199
+ ```
200
+
201
+ ## Testing
202
+
203
+ The context compaction functionality is fully tested. Run tests with:
204
+
205
+ ```bash
206
+ npm test -- contextCompactor.test.js
207
+ npm test -- agent-compact-history.test.js
208
+ ```
209
+
210
+ Test coverage includes:
211
+ - Error detection across multiple AI providers
212
+ - Message segment identification
213
+ - Compaction logic with various configurations
214
+ - Token estimation and statistics
215
+ - Real-world conversation scenarios
216
+ - Manual compaction API
217
+
218
+ ## Technical Details
219
+
220
+ ### Architecture
221
+
222
+ Context compaction uses a **two-layer error handling strategy**:
223
+
224
+ 1. **Transient Errors** (handled by `RetryManager`/`FallbackManager`)
225
+ - Rate limits (429)
226
+ - Network issues (ECONNRESET, timeouts)
227
+ - Server errors (500, 502, 503, 504)
228
+ - Retries with exponential backoff
229
+ - Falls back to alternative providers
230
+
231
+ 2. **Context Limit Errors** (handled by compaction)
232
+ - Context window exceeded
233
+ - Token limit reached
234
+ - Compacts once per iteration
235
+ - Retries with reduced message set
236
+ - Separate from transient retry loop
237
+ - Fails immediately if no messages can be removed
238
+
239
+ This separation ensures:
240
+ - Transient errors get multiple retries
241
+ - Context errors trigger structural changes (compaction)
242
+ - No interference between retry strategies
243
+ - No infinite loops (compaction attempted only once per iteration)
244
+
245
+ ### Files
246
+
247
+ - **`src/agent/contextCompactor.js`** - Core compaction logic
248
+ - **`src/agent/ProbeAgent.js`** - Integration with error handling and API
249
+ - Lines 1453-1565: Automatic compaction retry loop with infinite loop protection
250
+ - Lines 2421-2482: Manual compaction method
251
+ - **`tests/contextCompactor.test.js`** - Core compaction test suite
252
+ - **`tests/agent-compact-history.test.js`** - Manual API test suite
253
+
254
+ ### Functions
255
+
256
+ #### `isContextLimitError(error)`
257
+ Detects if an error indicates context window overflow.
258
+
259
+ #### `identifyMessageSegments(messages)`
260
+ Analyzes conversation history and identifies logical segments.
261
+
262
+ #### `compactMessages(messages, options)`
263
+ Performs intelligent compaction by removing intermediate monologues.
264
+
265
+ #### `calculateCompactionStats(originalMessages, compactedMessages)`
266
+ Computes reduction statistics and token savings.
267
+
268
+ #### `handleContextLimitError(error, messages, options)`
269
+ Main handler that orchestrates detection and compaction.
270
+
271
+ #### `agent.compactHistory(options)`
272
+ Public API method for manual history compaction.
273
+
274
+ ## Limitations
275
+
276
+ 1. **Minimum context**: Compaction cannot help if even the compacted history exceeds limits. The system will fail with a clear error message if no messages can be removed.
277
+ 2. **System message**: System messages are never removed (contain critical instructions)
278
+ 3. **Token estimation**: Token counts are approximations (1 token ≈ 4 characters)
279
+ 4. **Recent segments**: Always preserves configured minimum segments to maintain context quality
280
+ 5. **Single retry**: Compaction is attempted only once per iteration to prevent infinite loops
281
+
282
+ ## Best Practices
283
+
284
+ 1. **Use reasonable iteration limits**: Set `maxIterations` appropriately to avoid excessive history
285
+ 2. **Monitor logs**: Check compaction logs to understand when/why it triggers
286
+ 3. **Enable debug mode**: For development, use `debug: true` to see detailed statistics
287
+ 4. **Test edge cases**: Ensure your application handles compaction gracefully
288
+
289
+ ## Future Enhancements
290
+
291
+ Potential improvements being considered:
292
+
293
+ - Smarter segment importance scoring (keep more important monologues)
294
+ - Configurable compaction aggressiveness
295
+ - Semantic compression using embeddings
296
+ - Progressive compaction (multiple levels)
297
+ - Custom compaction strategies per use case
298
+
299
+ ## Related Documentation
300
+
301
+ - [ProbeAgent README](./README.md) - Main ProbeAgent documentation
302
+ - [Retry and Fallback](./npm/src/agent/RetryManager.js) - Error handling and retry logic
303
+ - [MCP Integration](./MCP_INTEGRATION_SUMMARY.md) - Model Context Protocol support
@@ -0,0 +1,166 @@
1
+ # Delegate Tool
2
+
3
+ The delegate tool is used **automatically by AI agents** within the agentic loop to delegate big distinct tasks to specialized probe subagents. When an AI agent encounters complex multi-part requests, it should automatically identify opportunities for task separation and use delegation without explicit user instruction.
4
+
5
+ ## Agentic Usage Pattern
6
+
7
+ The delegate tool is designed for **automatic use by AI agents**, not direct developer calls. The AI agent recognizes when a user's request involves multiple large, distinct components and automatically breaks them down into focused, parallel tasks.
8
+
9
+ ### Automatic Task Recognition
10
+
11
+ When users make complex requests, the AI agent should automatically:
12
+
13
+ 1. **Identify** multiple distinct components in the request
14
+ 2. **Separate** them into self-contained tasks
15
+ 3. **Delegate** each task to a specialized subagent
16
+ 4. **Combine** results from all subagents
17
+
18
+ ### XML Tool Format (AI Agent Usage)
19
+
20
+ ```xml
21
+ <delegate>
22
+ <task>Analyze all authentication and authorization code in the codebase for security vulnerabilities and provide specific remediation recommendations</task>
23
+ </delegate>
24
+
25
+ <delegate>
26
+ <task>Review database queries and API endpoints for performance bottlenecks and suggest optimization strategies</task>
27
+ </delegate>
28
+ ```
29
+
30
+ ## How It Works
31
+
32
+ 1. **Task Definition**: You provide a complete, self-contained task description
33
+ 2. **SDK-Based Agent Creation**: The delegate tool creates a new ProbeAgent instance in-process with:
34
+ - Default 'code-researcher' prompt (not inherited from parent)
35
+ - Schema validation disabled for simpler responses
36
+ - Mermaid validation disabled for faster processing
37
+ - Delegation explicitly disabled to prevent recursion
38
+ 3. **Independent Execution**: The subagent processes your task in isolation within the same process
39
+ 4. **Response Waiting**: The main agent awaits the subagent's completion (Promise-based)
40
+ 5. **Result Return**: The delegate tool returns the subagent's clean response
41
+
42
+ ## Subagent Environment
43
+
44
+ Each delegated task runs in a clean environment with automatic configuration:
45
+ - **Prompt**: Automatically uses the default `code-researcher` prompt, regardless of the parent agent's prompt
46
+ - **Validation**: Schema and Mermaid validation are automatically disabled for faster, simpler responses
47
+ - **Iterations**: Automatically limited to remaining parent iterations to respect global limits
48
+ - **Isolation**: Each subagent runs independently without inheriting parent context or history
49
+ - **No Recursion**: Delegation is explicitly disabled in subagents (`enableDelegate: false`) to prevent infinite delegation chains
50
+ - **Inherited Config**: Path, provider, and model are inherited from parent for consistency
51
+ - **In-Process**: Runs within the same Node.js process using the ProbeAgent SDK (no process spawning)
52
+
53
+ All these settings are applied automatically - no manual configuration needed.
54
+
55
+ ## Security and Resource Management
56
+
57
+ The delegate tool includes built-in protection against resource exhaustion:
58
+
59
+ ### Concurrent Delegation Limits
60
+
61
+ - **Global Limit**: Maximum of 3 concurrent delegations by default (configurable via `MAX_CONCURRENT_DELEGATIONS` environment variable)
62
+ - **Per-Session Limit**: Maximum of 10 delegations per parent session (configurable via `MAX_DELEGATIONS_PER_SESSION` environment variable)
63
+ - **Automatic Cleanup**: Counters are automatically decremented when delegations complete, fail, or timeout
64
+
65
+ ### Recursion Prevention
66
+
67
+ - Subagents cannot spawn their own subagents - the `delegate` tool is explicitly disabled in delegated sessions
68
+ - This prevents infinite delegation chains and ensures bounded resource usage
69
+
70
+ ### Rate Limiting
71
+
72
+ Delegation requests that exceed limits will fail immediately with clear error messages:
73
+ - `Maximum concurrent delegations (N) reached. Please wait for some delegations to complete.`
74
+ - `Maximum delegations per session (N) reached for session {id}`
75
+
76
+ ### Environment Variables
77
+
78
+ ```bash
79
+ # Set custom limits (optional)
80
+ export MAX_CONCURRENT_DELEGATIONS=5
81
+ export MAX_DELEGATIONS_PER_SESSION=20
82
+ ```
83
+
84
+ ## Configuration Options
85
+
86
+ - `task` (required): The specific task to delegate. Should be a complete, self-contained task that can be executed independently.
87
+ - `timeout` (optional, default: 300): Maximum time to wait for the subagent in seconds
88
+ - `debug` (optional, default: false): Enable debug logging for troubleshooting
89
+ - `parentSessionId` (optional): Parent session ID for tracking per-session limits (automatically provided by ProbeAgent)
90
+ - `currentIteration` (optional): Current iteration count (automatically provided by ProbeAgent)
91
+ - `maxIterations` (optional): Maximum iterations allowed (automatically provided by ProbeAgent)
92
+
93
+ ## Error Handling
94
+
95
+ The delegate tool includes comprehensive error handling:
96
+ - Process spawn failures
97
+ - Timeouts
98
+ - Agent execution errors
99
+ - Empty responses
100
+
101
+ ## Agentic Use Cases
102
+
103
+ The AI agent automatically uses delegation for:
104
+
105
+ 1. **Task Separation**: When user requests involve multiple distinct domains
106
+ 2. **Complex Analysis**: Breaking comprehensive analysis into specialized areas
107
+ 3. **Parallel Processing**: Distributing work across multiple focused subagents
108
+ 4. **Domain Expertise**: Delegating to subagents optimized for specific areas
109
+ 5. **Large Scope**: Decomposing overwhelming requests into manageable pieces
110
+
111
+ ## Automatic Task Separation Examples
112
+
113
+ **User Request**: "Analyze my entire codebase for security, performance, and maintainability issues"
114
+
115
+ **AI Agent automatically separates into**:
116
+ ```xml
117
+ <delegate>
118
+ <task>Analyze all authentication, authorization, input validation, and cryptographic code for security vulnerabilities and provide specific remediation recommendations with code examples</task>
119
+ </delegate>
120
+
121
+ <delegate>
122
+ <task>Review all database queries, API endpoints, algorithms, and resource usage patterns for performance bottlenecks and suggest concrete optimization strategies</task>
123
+ </delegate>
124
+
125
+ <delegate>
126
+ <task>Examine code structure, design patterns, documentation, and maintainability across all modules and provide refactoring recommendations</task>
127
+ </delegate>
128
+ ```
129
+
130
+ **User Request**: "Help me understand how the payment system works"
131
+
132
+ **AI Agent automatically separates into**:
133
+ ```xml
134
+ <delegate>
135
+ <task>Analyze the payment processing flow including transaction handling, validation, and error management to explain the complete payment workflow</task>
136
+ </delegate>
137
+
138
+ <delegate>
139
+ <task>Examine payment security measures including encryption, authentication, fraud detection, and compliance implementations</task>
140
+ </delegate>
141
+
142
+ <delegate>
143
+ <task>Review payment database schema, data models, and storage patterns to explain how payment data is structured and managed</task>
144
+ </delegate>
145
+ ```
146
+
147
+ ## Integration
148
+
149
+ The delegate tool is integrated into AI agent systems through:
150
+ - **ACP (Agent Communication Protocol)**: For advanced agent systems
151
+ - **XML Tool Parsing**: For AI agent tool call recognition
152
+ - **ProbeAgent Class**: For programmatic agent implementations
153
+ - **Vercel AI SDK**: For AI framework compatibility
154
+ - **LangChain Tools**: Via Vercel compatibility layer
155
+
156
+ ## AI Agent Decision Making
157
+
158
+ The AI agent should automatically use delegation when it recognizes:
159
+
160
+ - **Multi-domain requests**: User asks about multiple technical areas
161
+ - **Large scope tasks**: Requests that would benefit from parallel processing
162
+ - **Specialized expertise**: Tasks requiring focused domain knowledge
163
+ - **Complex analysis**: Comprehensive reviews that can be divided
164
+ - **Performance optimization**: When parallel execution improves response time
165
+
166
+ The delegate tool operates transparently within the agentic loop - users don't need to know it's being used. They simply get faster, more focused responses to complex requests.