chore: initialize qiming workspace repository

This commit is contained in:
Codex
2026-05-29 14:22:48 +08:00
commit bfd67a0f2c
10750 changed files with 1885711 additions and 0 deletions

View File

@@ -0,0 +1,63 @@
/**
* 工具调用容器辅助函数
* 用于生成和管理工具调用相关的自定义容器块
*/
/**
* 生成 markdown 自定义容器块
* @param blockName 容器块名称
* @param data 属性数据
* @returns 格式化的容器块字符串
*/
export function getBlockWrapper(blockName: string, data: Record<string, any>): string {
const attrs = Object.entries(data)
.map(([key, value]) => `${key}="${value}"`)
.join(" ");
// 修复DOM嵌套验证错误使用div代替p标签因为自定义组件包含块级元素
return `\n\n:::${blockName} ${attrs}\n:::\n\n`;
}
/**
* 获取容器块名称
* @returns 容器块名称
*/
export function getBlockName(): string {
return `container`;
}
/**
* 生成工具调用自定义块
* @param beforeText 之前的文本内容
* @param toolCallData 工具调用数据
* @returns 包含自定义块的完整文本
*/
export function getCustomBlock(
beforeText: string,
toolCallData: { type?: string; name?: string; executeId?: string; status?: string }
): string {
const { type, executeId } = toolCallData;
// 如果 type 或 executeId 不存在,则返回原文本
if (!type || !executeId) {
return beforeText;
}
const blockName = getBlockName();
const hasBlock = beforeText.includes(`executeId="${executeId}"`);
if (hasBlock) {
// 如果已经存在相同的执行ID则不重复添加
return beforeText;
}
const blockContent = getBlockWrapper(blockName, {
executeId,
type,
status: toolCallData.status || "",
name: toolCallData.name || "",
});
return `${beforeText}${blockContent}`;
}