68 lines
2.2 KiB
JavaScript
Raw Normal View History

/**
*
* MCP 工具 · COS 双桶操作cosWrite / cosRead / cosDelete / cosList / cosArchive
* + 人格体COS隔离路径操作personaCosWrite / personaCosRead / personaCosList
*
*
* 签发: 铸渊 · ICE-GL-ZY001
* 版权: 国作登字-2026-A-00037559
*/
'use strict';
const cos = require('../cos');
async function cosWrite(input) {
const { bucket, key, content, content_type } = input;
return cos.write(bucket, key, content, content_type);
}
async function cosRead(input) {
const { bucket, key } = input;
return cos.read(bucket, key);
}
async function cosDelete(input) {
const { bucket, key } = input;
return cos.del(bucket, key);
}
async function cosList(input) {
const { bucket, prefix, limit } = input;
return cos.list(bucket, prefix, limit);
}
async function cosArchive(input) {
const { source_key, version_tag } = input;
return cos.archive(source_key, version_tag);
}
// ─── 人格体 COS 隔离路径操作 ───
// 每个人格体只能访问 /{persona_id}/ 目录下的对象
async function personaCosWrite(input) {
const { persona_id, key, content, content_type } = input;
if (!persona_id) throw new Error('缺少 persona_id');
if (!key) throw new Error('缺少 key');
if (!content) throw new Error('缺少 content');
return cos.personaWrite(persona_id, key, content, content_type);
}
async function personaCosRead(input) {
const { persona_id, key } = input;
if (!persona_id) throw new Error('缺少 persona_id');
if (!key) throw new Error('缺少 key');
return cos.personaRead(persona_id, key);
}
async function personaCosList(input) {
const { persona_id, prefix, limit } = input;
if (!persona_id) throw new Error('缺少 persona_id');
return cos.personaList(persona_id, prefix, limit);
}
module.exports = {
cosWrite, cosRead, cosDelete, cosList, cosArchive,
personaCosWrite, personaCosRead, personaCosList
};