feat: port MCP retrieval and write hardening

- align os MCP/runtime/docs with ra-h contract
- add safe direct node lookup and context-optional flows
- gate edge and context writes behind confirmation
This commit is contained in:
“BeeRad”
2026-04-14 20:57:07 +10:00
parent d825e7a783
commit 929423cb21
35 changed files with 1172 additions and 534 deletions
+7 -1
View File
@@ -162,6 +162,7 @@ export const websiteExtractTool = tool({
const nodeTitle = title || result.metadata?.title || `Website: ${new URL(url).hostname}`;
const fallbackDescriptionLead = `${contentType === 'tweet' ? 'Tweet' : 'Website article'} from ${result.metadata?.author || result.metadata?.site_name || new URL(url).hostname} titled "${nodeTitle}"`;
const finalDescription = ensureNodeDescription(aiAnalysis?.nodeDescription, fallbackDescriptionLead);
const capturedAt = new Date().toISOString();
const createResponse = await fetch(`${getInternalApiBaseUrl()}/api/nodes`, {
method: 'POST',
@@ -178,12 +179,17 @@ export const websiteExtractTool = tool({
captured_method: 'website_extract',
captured_by: 'human',
source_metadata: {
capture_origin: 'extraction',
capture_path: 'website_extract',
explicit_capture: true,
source_url: url,
hostname: new URL(url).hostname,
author: result.metadata?.author,
published_date: result.metadata?.published_date || result.metadata?.date,
content_length: result.source.length,
extraction_method: result.metadata?.extraction_method || 'python_beautifulsoup',
refined_at: new Date().toISOString(),
captured_at: capturedAt,
refined_at: capturedAt,
}
}
})