chore: 保存当前架构收口与 bug 修复快照
归档本轮 P0/P1 bug 修复、设计审查迁移、AI selection scope 收口与 stream contract 调整,并保留当前 05 主线迁移起点。
This commit is contained in:
@@ -180,7 +180,11 @@ fn block_replace_tool() -> Value {
|
||||
"content": { "type": ["string", "object", "array"] },
|
||||
"revision": { "type": ["number", "string"] },
|
||||
"conflictDetectionKey": { "type": "string" },
|
||||
"blockRevisionRef": { "type": "string" }
|
||||
"blockRevisionRef": { "type": "string" },
|
||||
"allowedTargetBlockIds": {
|
||||
"type": "array",
|
||||
"items": { "type": "string" }
|
||||
}
|
||||
}),
|
||||
[
|
||||
"blockId",
|
||||
@@ -193,7 +197,7 @@ fn block_replace_tool() -> Value {
|
||||
}
|
||||
|
||||
fn block_insert_after_tool() -> Value {
|
||||
write_tool(
|
||||
let mut tool = write_tool(
|
||||
"mnote.block.insert_after",
|
||||
"在指定块后插入新块;真实写入走 Rust page.body.save 链路",
|
||||
["block.write", "page.write"],
|
||||
@@ -201,18 +205,38 @@ fn block_insert_after_tool() -> Value {
|
||||
"anchorBlockId": { "type": "string" },
|
||||
"content": { "type": ["string", "object", "array"] },
|
||||
"block": { "type": "object" },
|
||||
"blocks": {
|
||||
"type": "array",
|
||||
"minItems": 1,
|
||||
"maxItems": 20,
|
||||
"items": { "type": ["string", "object", "array"] }
|
||||
},
|
||||
"revision": { "type": ["number", "string"] },
|
||||
"conflictDetectionKey": { "type": "string" },
|
||||
"anchorRevisionRef": { "type": "string" }
|
||||
"anchorRevisionRef": { "type": "string" },
|
||||
"allowedTargetBlockIds": {
|
||||
"type": "array",
|
||||
"items": { "type": "string" }
|
||||
}
|
||||
}),
|
||||
[
|
||||
"anchorBlockId",
|
||||
"content",
|
||||
"revision",
|
||||
"conflictDetectionKey",
|
||||
"anchorRevisionRef",
|
||||
],
|
||||
)
|
||||
);
|
||||
if let Some(schema) = tool.get_mut("inputSchema").and_then(Value::as_object_mut) {
|
||||
schema.insert(
|
||||
"anyOf".into(),
|
||||
json!([
|
||||
{ "required": ["content"] },
|
||||
{ "required": ["block"] },
|
||||
{ "required": ["blocks"] }
|
||||
]),
|
||||
);
|
||||
}
|
||||
tool
|
||||
}
|
||||
|
||||
fn block_move_after_tool() -> Value {
|
||||
@@ -226,7 +250,11 @@ fn block_move_after_tool() -> Value {
|
||||
"revision": { "type": ["number", "string"] },
|
||||
"conflictDetectionKey": { "type": "string" },
|
||||
"blockRevisionRef": { "type": "string" },
|
||||
"anchorRevisionRef": { "type": "string" }
|
||||
"anchorRevisionRef": { "type": "string" },
|
||||
"allowedTargetBlockIds": {
|
||||
"type": "array",
|
||||
"items": { "type": "string" }
|
||||
}
|
||||
}),
|
||||
[
|
||||
"blockId",
|
||||
@@ -248,7 +276,11 @@ fn block_delete_tool() -> Value {
|
||||
"blockId": { "type": "string" },
|
||||
"revision": { "type": ["number", "string"] },
|
||||
"conflictDetectionKey": { "type": "string" },
|
||||
"blockRevisionRef": { "type": "string" }
|
||||
"blockRevisionRef": { "type": "string" },
|
||||
"allowedTargetBlockIds": {
|
||||
"type": "array",
|
||||
"items": { "type": "string" }
|
||||
}
|
||||
}),
|
||||
[
|
||||
"blockId",
|
||||
@@ -411,11 +443,12 @@ fn available_tool(
|
||||
}
|
||||
|
||||
fn doc_markdown_edit_tool() -> Value {
|
||||
let mut properties = base_identity_properties();
|
||||
if let Value::Object(map) = &mut properties {
|
||||
map.insert(
|
||||
"operations".into(),
|
||||
json!({
|
||||
let mut tool = write_tool(
|
||||
"mnote.doc.markdown_edit",
|
||||
"通过文本级搜索替换编辑 markdown 内容(AI 编辑主路径)。在线 Convex 文档和本地 .md 文件共用,不需要 blockId。",
|
||||
["block.write", "page.write"],
|
||||
json!({
|
||||
"operations": {
|
||||
"type": "array",
|
||||
"description": "搜索替换操作列表",
|
||||
"items": {
|
||||
@@ -426,25 +459,24 @@ fn doc_markdown_edit_tool() -> Value {
|
||||
},
|
||||
"required": ["search", "replace"]
|
||||
}
|
||||
}),
|
||||
);
|
||||
map.insert(
|
||||
"full_content".into(),
|
||||
json!({
|
||||
},
|
||||
"full_content": {
|
||||
"type": "string",
|
||||
"description": "完整修改后的 markdown 文本(替代 operations)"
|
||||
}),
|
||||
}
|
||||
}),
|
||||
[],
|
||||
);
|
||||
if let Some(schema) = tool.get_mut("inputSchema").and_then(Value::as_object_mut) {
|
||||
schema.insert(
|
||||
"anyOf".into(),
|
||||
json!([
|
||||
{ "required": ["operations"] },
|
||||
{ "required": ["full_content"] }
|
||||
]),
|
||||
);
|
||||
}
|
||||
json!({
|
||||
"name": "mnote.doc.markdown_edit",
|
||||
"description": "通过文本级搜索替换编辑 markdown 内容(AI 编辑主路径)。在线 Convex 文档和本地 .md 文件共用,不需要 blockId。",
|
||||
"schemaVersion": TOOL_SCHEMA_VERSION,
|
||||
"capabilityScope": ["block.write", "page.write"],
|
||||
"status": "available",
|
||||
"properties": properties,
|
||||
"annotations": tool_annotations(false, false, true, false)
|
||||
})
|
||||
tool
|
||||
}
|
||||
|
||||
fn tool_annotations(
|
||||
|
||||
Reference in New Issue
Block a user