feat(server): add read doc tool (#12811)

close AI-186















#### PR Dependency Tree


* **PR #12811** 👈

This tree was auto-generated by
[Charcoal](https://github.com/danerwilliams/charcoal)

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

- **New Features**
- Added a new tool enabling users to read document content and metadata
within a workspace, with enforced access control.
- **Improvements**
- Updated tool interfaces and outputs to support the document reading
functionality seamlessly.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
This commit is contained in:
fengmk2
2025-06-30 11:37:34 +08:00
committed by GitHub
parent 6b2639cbbb
commit 5599c39e97
4 changed files with 106 additions and 0 deletions
@@ -13,6 +13,7 @@ import { ZodType } from 'zod';
import {
createDocEditTool,
createDocKeywordSearchTool,
createDocReadTool,
createDocSemanticSearchTool,
createExaCrawlTool,
createExaSearchTool,
@@ -386,6 +387,7 @@ export interface CustomAITools extends ToolSet {
doc_edit: ReturnType<typeof createDocEditTool>;
doc_semantic_search: ReturnType<typeof createDocSemanticSearchTool>;
doc_keyword_search: ReturnType<typeof createDocKeywordSearchTool>;
doc_read: ReturnType<typeof createDocReadTool>;
web_search_exa: ReturnType<typeof createExaSearchTool>;
web_crawl_exa: ReturnType<typeof createExaCrawlTool>;
}
@@ -451,6 +453,10 @@ export class TextStreamParser {
result += `\nSearching the keyword "${chunk.args.query}"\n`;
break;
}
case 'doc_read': {
result += `\nReading the doc "${chunk.args.doc_id}"\n`;
break;
}
}
result = this.markAsCallout(result);
break;