文件最后提交记录最后更新时间
✨ feat: associate web crawl documents with agent documents (#13893) * ✨ feat: associate web crawl documents with agent documents - Add `associate` method to AgentDocumentModel for linking existing documents - Add `associateDocument` to AgentDocumentsService, TRPC router, and client service - Update web browsing executor to associate crawled pages with agent after notebook save - Add server-side crawl-to-agent-document persistence in webBrowsing runtime - Add `findOrCreateFolder` to DocumentModel for folder hierarchy support - Extract `DOCUMENT_FOLDER_TYPE` constant from hardcoded 'custom/folder' strings - Add tests for associate, findOrCreateFolder, and service layer Fixes LOBE-7242 Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * 🐛 fix: log errors in web crawl agent document association Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * ♻️ refactor: add onCrawlComplete callback to WebBrowsingExecutionRuntime Replace monkey-patching of crawlMultiPages with a proper onCrawlComplete callback in the runtime constructor options. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * ♻️ refactor: move document save logic into WebBrowsingExecutionRuntime Replace onCrawlComplete callback with documentService dependency injection. The runtime now directly handles createDocument + associateDocument internally. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * ♻️ refactor: pass per-call context to documentService via crawlMultiPages Add WebBrowsingDocumentContext (topicId, agentId) as a parameter to crawlMultiPages, which flows through to documentService methods. This allows a singleton runtime with per-call context on the client side. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * 🐛 fix: enforce document ownership in associate and match root folders by null parentId - associate: verify documentId belongs to current user before creating link - findOrCreateFolder: add parentId IS NULL condition for root-level lookup Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>1 个月前
♻️ refactor(chat): introduce agentDispatcher.selectRuntimeType (#14428) * 🔥 refactor: remove dead Search Summary chain Footer.tsx in web-browsing Search portal had near-zero usage. Removing it makes the entire chain dead: triggerAIMessage, summaryPluginContent, fillPluginMessageContent, saveSearchResult, plus the inSearchWorkflow param threaded through internal_execAgentRuntime. Part of LOBE-8519 — clears the path before introducing agentDispatcher. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * ✨ feat: add agentDispatcher.selectRuntimeType Centralizes the client / gateway / hetero routing decision so every entry point shares one source of truth. parentRuntime override lets sub-agent dispatches inherit their parent operation's runtime. Part of LOBE-8519 — call sites are migrated in following commits. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * ♻️ refactor: route sendMessage through selectRuntimeType Compute runtimeType once per sendMessage call and dispatch off it instead of re-deriving the hetero/gateway/client decision inline. Behavior is identical; this just centralizes the routing rule (LOBE-8519, A1). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * ♻️ refactor: route regenerate / continue through selectRuntimeType regenerateUserMessage and continueGenerationMessage in the conversation store now consult selectRuntimeType for routing. Hetero variants of both are not yet implemented (they currently fall through to client mode with a TODO + warning). Also drops chatStore.continueGenerationMessage — the conversation-store version is the only caller; the chat-store duplicate had zero production usage. Part of LOBE-8519 (A2, B4 deletion, B5). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * ♻️ refactor: route resume helpers through selectRuntimeType approveToolCalling / rejectToolCalling / rejectAndContinueToolCalling now consult selectRuntimeType (via #shouldUseGatewayResume) using the operation's own ConversationContext, instead of the bare isGatewayModeEnabled() check. Behavior is preserved (gateway resume vs. local resume); hetero resume is not yet implemented and falls through to the client local path. Part of LOBE-8519 (A3, A4, A5). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * ♻️ refactor: route sub-agent dispatch through selectRuntimeType directMentionRoute and callAgent now consult selectRuntimeType using the parent agent's config so sub-agent dispatches inherit the parent runtime. Only the client path is wired today; gateway / hetero variants warn + fall through with TODOs for follow-up. Part of LOBE-8519 (B3, B6). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * ♻️ refactor: rename internal_execAgentRuntime to executeClientAgent Aligns the client runner's name with executeGatewayAgent and executeHeterogeneousAgent so the three runtimes share a consistent verb-noun pattern. Pure rename — no behavioral changes; log prefixes and test mock variables follow the new name. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>19 天前
move web-browsing 4 个月前
move web-browsing 4 个月前
✨ feat: use `lobe-tools` to support progressive disclosure (#12489) * activatedTool type * support active tools * fix explicitActivation tools issue * improve search ux * improve search result * improve search result * improve system prompts * fix types * fix tests * refactor a skills store tools * refactor a skills store tools * improve issue * fix some tests * fix tests * enable skills by default2 个月前
move web-browsing 4 个月前
move web-browsing 4 个月前