Must-fix: drive permission apply now gates on confirmDangerousAction and declares confirmation=user_required, matching its help-text promise. Wukong parity restored: formula-verify --exit-on-error (payload-parsing exit path) and --targets conflict error, sheet info --include, chat location/profile message types, search-advanced wukong flag aliases, and a dedicated drive download-version leaf replacing the removed polymorphic download --version. Consistency fixes: transfer-owner --node/--workspace XOR and JSON-aware dry-run after --yes validation; drive list --versions rejects --depth/--pattern instead of misleading depth errors; depth BFS resumes rate-limited folders from the failed page cursor to avoid duplicates; doc style cover upload honors cmd.Context() and a 20 MiB size cap; chat user-settings set validates per-item openConversationId and is risk=medium. Hardened the skill static audit to scan fenced code blocks and reject unknown subcommands on group commands, fixing the stale aitable/drive doc examples it exposed. Added CHANGELOG entry and coverage tests for all changed statements plus previously untested ported commands.
431 lines
19 KiB
JSON
431 lines
19 KiB
JSON
{
|
|
"version": 1,
|
|
"source": {
|
|
"kind": "explicit",
|
|
"name": "dws-tool-metadata/drive",
|
|
"repository": "DingTalk-Real-AI/dingtalk-workspace-cli",
|
|
"channel": "open-source",
|
|
"reviewed": true
|
|
},
|
|
"tools": {
|
|
"drive.add_permission": {
|
|
"interface_ref": {
|
|
"product_id": "doc",
|
|
"rpc_name": "add_permission"
|
|
},
|
|
"interface_mode": "mcp",
|
|
"availability": "available",
|
|
"reviewed": true
|
|
},
|
|
"drive.apply_permission": {
|
|
"effect": "write",
|
|
"risk": "medium",
|
|
"confirmation": "user_required",
|
|
"idempotency": "non_idempotent",
|
|
"interface_mode": "composite",
|
|
"availability": "available",
|
|
"interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.",
|
|
"reviewed": true,
|
|
"runtime_gate": "confirm_delete"
|
|
},
|
|
"drive.commit_upload": {
|
|
"interface_mode": "mcp",
|
|
"availability": "available",
|
|
"reviewed": true
|
|
},
|
|
"drive.copy_document": {
|
|
"interface_ref": {
|
|
"product_id": "doc",
|
|
"rpc_name": "copy_document"
|
|
},
|
|
"interface_mode": "mcp",
|
|
"availability": "available",
|
|
"reviewed": true
|
|
},
|
|
"drive.create_folder": {
|
|
"interface_mode": "mcp",
|
|
"availability": "available",
|
|
"reviewed": true
|
|
},
|
|
"drive.create_shortcut": {
|
|
"effect": "write",
|
|
"risk": "medium",
|
|
"confirmation": "not_required",
|
|
"idempotency": "non_idempotent",
|
|
"interface_mode": "composite",
|
|
"availability": "available",
|
|
"interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.",
|
|
"reviewed": true
|
|
},
|
|
"drive.delete_document": {
|
|
"effect": "destructive",
|
|
"risk": "high",
|
|
"confirmation": "user_required",
|
|
"interface_ref": {
|
|
"product_id": "doc",
|
|
"rpc_name": "delete_document"
|
|
},
|
|
"interface_mode": "mcp",
|
|
"availability": "available",
|
|
"reviewed": true,
|
|
"runtime_gate": "confirm_delete"
|
|
},
|
|
"drive.download_file": {
|
|
"interface_mode": "mcp",
|
|
"availability": "available",
|
|
"reviewed": true
|
|
},
|
|
"drive.download_file_version": {
|
|
"effect": "read",
|
|
"risk": "low",
|
|
"confirmation": "not_required",
|
|
"idempotency": "idempotent",
|
|
"interface_mode": "composite",
|
|
"availability": "available",
|
|
"interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.",
|
|
"reviewed": true,
|
|
"runtime_gate": "none"
|
|
},
|
|
"drive.get_cover": {
|
|
"effect": "read",
|
|
"risk": "low",
|
|
"confirmation": "not_required",
|
|
"idempotency": "idempotent",
|
|
"interface_mode": "composite",
|
|
"availability": "available",
|
|
"interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.",
|
|
"reviewed": true,
|
|
"runtime_gate": "none"
|
|
},
|
|
"drive.get_file_info": {
|
|
"interface_mode": "mcp",
|
|
"availability": "available",
|
|
"reviewed": true
|
|
},
|
|
"drive.get_node_stats": {
|
|
"interface_mode": "composite",
|
|
"availability": "available",
|
|
"interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.",
|
|
"reviewed": true
|
|
},
|
|
"drive.get_star_list": {
|
|
"effect": "read",
|
|
"risk": "low",
|
|
"confirmation": "not_required",
|
|
"idempotency": "idempotent",
|
|
"interface_mode": "composite",
|
|
"availability": "available",
|
|
"interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.",
|
|
"reviewed": true,
|
|
"runtime_gate": "none"
|
|
},
|
|
"drive.get_upload_info": {
|
|
"interface_mode": "mcp",
|
|
"availability": "available",
|
|
"reviewed": true
|
|
},
|
|
"drive.list_files": {
|
|
"interface_mode": "composite",
|
|
"availability": "available",
|
|
"interface_reason": "The CLI command routes by --workspace between drive/list_files and doc/list_nodes, so the reviewed executable wrapper has no single direct MCP interface.",
|
|
"reviewed": true
|
|
},
|
|
"drive.list_permission": {
|
|
"interface_ref": {
|
|
"product_id": "doc",
|
|
"rpc_name": "list_permission"
|
|
},
|
|
"interface_mode": "mcp",
|
|
"availability": "available",
|
|
"reviewed": true
|
|
},
|
|
"drive.list_spaces": {
|
|
"interface_mode": "mcp",
|
|
"availability": "available",
|
|
"reviewed": true
|
|
},
|
|
"drive.mark_star": {
|
|
"effect": "write",
|
|
"risk": "low",
|
|
"confirmation": "not_required",
|
|
"idempotency": "idempotent",
|
|
"interface_mode": "composite",
|
|
"availability": "available",
|
|
"interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.",
|
|
"reviewed": true,
|
|
"runtime_gate": "none"
|
|
},
|
|
"drive.move_document": {
|
|
"interface_ref": {
|
|
"product_id": "doc",
|
|
"rpc_name": "move_document"
|
|
},
|
|
"interface_mode": "mcp",
|
|
"availability": "available",
|
|
"reviewed": true
|
|
},
|
|
"drive.permission_remove": {
|
|
"effect": "write",
|
|
"risk": "medium",
|
|
"confirmation": "not_required",
|
|
"interface_ref": {
|
|
"product_id": "doc",
|
|
"rpc_name": "remove_permission"
|
|
},
|
|
"interface_mode": "mcp",
|
|
"availability": "available",
|
|
"reviewed": true,
|
|
"runtime_gate": "none"
|
|
},
|
|
"drive.permission_update": {
|
|
"interface_ref": {
|
|
"product_id": "doc",
|
|
"rpc_name": "update_permission"
|
|
},
|
|
"interface_mode": "mcp",
|
|
"availability": "available",
|
|
"reviewed": true
|
|
},
|
|
"drive.publish_get": {
|
|
"effect": "write",
|
|
"risk": "medium",
|
|
"confirmation": "not_required",
|
|
"idempotency": "unknown",
|
|
"interface_mode": "composite",
|
|
"availability": "available",
|
|
"interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.",
|
|
"reviewed": true,
|
|
"review_reason": "migrated to reviewed metadata block"
|
|
},
|
|
"drive.publish_set": {
|
|
"effect": "write",
|
|
"risk": "medium",
|
|
"confirmation": "user_required",
|
|
"idempotency": "unknown",
|
|
"interface_mode": "composite",
|
|
"availability": "available",
|
|
"interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.",
|
|
"reviewed": true,
|
|
"runtime_gate": "confirm_dangerous"
|
|
},
|
|
"drive.publish_unset": {
|
|
"effect": "write",
|
|
"risk": "medium",
|
|
"confirmation": "user_required",
|
|
"idempotency": "unknown",
|
|
"interface_mode": "composite",
|
|
"availability": "available",
|
|
"interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.",
|
|
"reviewed": true,
|
|
"runtime_gate": "confirm_dangerous"
|
|
},
|
|
"drive.query_permission_apply_info": {
|
|
"effect": "read",
|
|
"risk": "low",
|
|
"confirmation": "not_required",
|
|
"idempotency": "idempotent",
|
|
"interface_mode": "composite",
|
|
"availability": "available",
|
|
"interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.",
|
|
"reviewed": true,
|
|
"runtime_gate": "none"
|
|
},
|
|
"drive.recent": {
|
|
"effect": "read",
|
|
"risk": "low",
|
|
"confirmation": "not_required",
|
|
"idempotency": "idempotent",
|
|
"interface_mode": "composite",
|
|
"availability": "available",
|
|
"interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.",
|
|
"reviewed": true,
|
|
"review_reason": "migrated to reviewed metadata block"
|
|
},
|
|
"drive.recycle_list": {
|
|
"effect": "read",
|
|
"risk": "low",
|
|
"confirmation": "not_required",
|
|
"idempotency": "idempotent",
|
|
"interface_mode": "composite",
|
|
"availability": "available",
|
|
"interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.",
|
|
"reviewed": true,
|
|
"review_reason": "migrated to reviewed metadata block"
|
|
},
|
|
"drive.recycle_restore": {
|
|
"effect": "write",
|
|
"risk": "medium",
|
|
"confirmation": "not_required",
|
|
"idempotency": "unknown",
|
|
"interface_mode": "composite",
|
|
"availability": "available",
|
|
"interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.",
|
|
"reviewed": true
|
|
},
|
|
"drive.rename_document": {
|
|
"interface_ref": {
|
|
"product_id": "doc",
|
|
"rpc_name": "rename_document"
|
|
},
|
|
"interface_mode": "mcp",
|
|
"availability": "available",
|
|
"reviewed": true,
|
|
"parameters": {
|
|
"name": {
|
|
"description": "新显示名称;实际执行前读取节点类型与当前扩展名,仅对非文件夹且末尾后缀与当前扩展名一致的名称去掉一层,避免双扩展名"
|
|
}
|
|
},
|
|
"review_reason": "The reviewed CLI reads node metadata before mutation and strips only the exact current extension for non-folder nodes, avoiding both duplicate extensions and dotted-folder corruption without a suffix whitelist.",
|
|
"cli_path": "drive rename"
|
|
},
|
|
"drive.revert_file_version": {
|
|
"effect": "write",
|
|
"risk": "medium",
|
|
"confirmation": "user_required",
|
|
"idempotency": "non_idempotent",
|
|
"interface_mode": "composite",
|
|
"availability": "available",
|
|
"interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.",
|
|
"reviewed": true,
|
|
"runtime_gate": "confirm_delete"
|
|
},
|
|
"drive.search_files": {
|
|
"interface_mode": "mcp",
|
|
"availability": "available",
|
|
"reviewed": true
|
|
},
|
|
"drive.shortcut_copy": {
|
|
"effect": "write",
|
|
"risk": "medium",
|
|
"confirmation": "user_required",
|
|
"idempotency": "unknown",
|
|
"interface_mode": "composite",
|
|
"availability": "available",
|
|
"interface_reason": "Reviewed built-in shortcut adapter: the executable CLI owns validation, optional multi-step orchestration, output projection, and confirmation; the complete command contract is not represented by one pinned MCP interface_ref.",
|
|
"reviewed": true,
|
|
"review_reason": "Reviewed against the built-in Shortcut registry and mounted Cobra command: publishes the executable risk gate and composite interface without inventing a direct MCP identity.",
|
|
"cli_path": "drive +copy",
|
|
"runtime_gate": "typed_yes"
|
|
},
|
|
"drive.shortcut_find_file": {
|
|
"effect": "read",
|
|
"risk": "low",
|
|
"confirmation": "not_required",
|
|
"idempotency": "idempotent",
|
|
"interface_mode": "composite",
|
|
"availability": "available",
|
|
"interface_reason": "Reviewed built-in shortcut adapter: the executable CLI owns validation, optional multi-step orchestration, output projection, and confirmation; the complete command contract is not represented by one pinned MCP interface_ref.",
|
|
"reviewed": true,
|
|
"review_reason": "Reviewed against the built-in Shortcut registry and mounted Cobra command: publishes the executable risk gate and composite interface without inventing a direct MCP identity.",
|
|
"cli_path": "drive +find-file",
|
|
"runtime_gate": "none"
|
|
},
|
|
"drive.shortcut_info": {
|
|
"effect": "read",
|
|
"risk": "low",
|
|
"confirmation": "not_required",
|
|
"idempotency": "idempotent",
|
|
"interface_mode": "composite",
|
|
"availability": "available",
|
|
"interface_reason": "Reviewed built-in shortcut adapter: the executable CLI owns validation, optional multi-step orchestration, output projection, and confirmation; the complete command contract is not represented by one pinned MCP interface_ref.",
|
|
"reviewed": true,
|
|
"review_reason": "Reviewed against the built-in Shortcut registry and mounted Cobra command: publishes the executable risk gate and composite interface without inventing a direct MCP identity.",
|
|
"cli_path": "drive +info",
|
|
"runtime_gate": "none"
|
|
},
|
|
"drive.shortcut_move": {
|
|
"effect": "write",
|
|
"risk": "medium",
|
|
"confirmation": "user_required",
|
|
"idempotency": "unknown",
|
|
"interface_mode": "composite",
|
|
"availability": "available",
|
|
"interface_reason": "Reviewed built-in shortcut adapter: the executable CLI owns validation, optional multi-step orchestration, output projection, and confirmation; the complete command contract is not represented by one pinned MCP interface_ref.",
|
|
"reviewed": true,
|
|
"review_reason": "Reviewed against the built-in Shortcut registry and mounted Cobra command: publishes the executable risk gate and composite interface without inventing a direct MCP identity.",
|
|
"cli_path": "drive +move",
|
|
"runtime_gate": "typed_yes"
|
|
},
|
|
"drive.shortcut_recent": {
|
|
"effect": "read",
|
|
"risk": "low",
|
|
"confirmation": "not_required",
|
|
"idempotency": "idempotent",
|
|
"interface_mode": "composite",
|
|
"availability": "available",
|
|
"interface_reason": "Reviewed built-in shortcut adapter: the executable CLI owns validation, optional multi-step orchestration, output projection, and confirmation; the complete command contract is not represented by one pinned MCP interface_ref.",
|
|
"reviewed": true,
|
|
"review_reason": "Reviewed against the built-in Shortcut registry and mounted Cobra command: publishes the executable risk gate and composite interface without inventing a direct MCP identity.",
|
|
"cli_path": "drive +recent",
|
|
"runtime_gate": "none"
|
|
},
|
|
"drive.shortcut_search": {
|
|
"effect": "read",
|
|
"risk": "low",
|
|
"confirmation": "not_required",
|
|
"idempotency": "idempotent",
|
|
"interface_mode": "composite",
|
|
"availability": "available",
|
|
"interface_reason": "Reviewed built-in shortcut adapter: the executable CLI owns validation, optional multi-step orchestration, output projection, and confirmation; the complete command contract is not represented by one pinned MCP interface_ref.",
|
|
"reviewed": true,
|
|
"review_reason": "Reviewed against the built-in Shortcut registry and mounted Cobra command: publishes the executable risk gate and composite interface without inventing a direct MCP identity.",
|
|
"cli_path": "drive +search",
|
|
"runtime_gate": "none"
|
|
},
|
|
"drive.shortcut_search_docs": {
|
|
"effect": "read",
|
|
"risk": "low",
|
|
"confirmation": "not_required",
|
|
"idempotency": "idempotent",
|
|
"interface_mode": "composite",
|
|
"availability": "available",
|
|
"interface_reason": "Reviewed built-in shortcut adapter: the executable CLI owns validation, optional multi-step orchestration, output projection, and confirmation; the complete command contract is not represented by one pinned MCP interface_ref.",
|
|
"reviewed": true,
|
|
"review_reason": "Reviewed against the built-in Shortcut registry and mounted Cobra command: publishes the executable risk gate and composite interface without inventing a direct MCP identity.",
|
|
"cli_path": "drive +search-docs",
|
|
"runtime_gate": "none"
|
|
},
|
|
"drive.transfer_owner": {
|
|
"effect": "write",
|
|
"risk": "high",
|
|
"confirmation": "user_required",
|
|
"idempotency": "non_idempotent",
|
|
"interface_mode": "composite",
|
|
"availability": "available",
|
|
"interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.",
|
|
"reviewed": true,
|
|
"runtime_gate": "confirm_delete"
|
|
},
|
|
"drive.unmark_star": {
|
|
"effect": "write",
|
|
"risk": "low",
|
|
"confirmation": "not_required",
|
|
"idempotency": "idempotent",
|
|
"interface_mode": "composite",
|
|
"availability": "available",
|
|
"interface_reason": "Reviewed unpinned remote adapter: this executable CLI wrapper calls a remote helper that is absent from the pinned MCP metadata snapshot; no single pinned semantically equivalent interface_ref can represent the command.",
|
|
"reviewed": true,
|
|
"runtime_gate": "none"
|
|
},
|
|
"drive.upload": {
|
|
"effect": "write",
|
|
"risk": "medium",
|
|
"confirmation": "not_required",
|
|
"idempotency": "unknown",
|
|
"interface_mode": "composite",
|
|
"availability": "available",
|
|
"interface_reason": "命令包含多个 RPC、条件分派或本地 HTTP/文件步骤,不能绑定为单一 interface_ref",
|
|
"reviewed": true,
|
|
"parameters": {
|
|
"node": {
|
|
"property": "nodeId",
|
|
"required": false
|
|
}
|
|
},
|
|
"review_reason": "The reviewed helper preserves the stable command-level Schema contract for ordinary uploads; --node switches to overwrite mode and the runtime still requires explicit confirmation unless --yes is supplied.",
|
|
"cli_path": "drive upload",
|
|
"runtime_gate": "none"
|
|
}
|
|
}
|
|
}
|