style: 改进 SGV 相关声明

This commit is contained in:
pluv committed 2026-10-04 13:47:06 +08:00
1 parent 3dd2231c70
commit 016a45bc6e
7 files changed
+445 -353

No files matched your search

+4
View File
@@ -0,0 +1,4 @@
BasedOnStyle: LLVM
IndentWidth: 4
TabWidth: 4
UseTab: Never
+418 -309
View File
File diff suppressed because it is too large. Load diff
+4 -4
View File
@@ -684,8 +684,8 @@ M("agent.caps.baseline_failed",
"the baseline request did not go through", "the baseline request did not go through",
"基线请求未通过"), "基线请求未通过"),
M("agent.caps.line", M("agent.caps.line",
"model capabilities: multimodal (image input) {vision} * tool calls {tools}{note}", "model capabilities: \n image input {vision} \n tool calls {tools}{note}",
"模型能力: 多模态 (图片输入){vision} * 工具调用 {tools}{note}"), "模型能力: \n 图片输入 {vision} \n 工具调用 {tools}{note}"),
M("agent.caps.no.tools", M("agent.caps.no.tools",
"no (tool table no longer sent)", "no (tool table no longer sent)",
"不支持 (不再发送工具表)"), "不支持 (不再发送工具表)"),
@@ -694,7 +694,7 @@ M("agent.caps.no.vision",
"不支持 (已隐藏 read_image)"), "不支持 (已隐藏 read_image)"),
M("agent.caps.note", M("agent.caps.note",
" — anything untested is treated as supported ({why})", " — anything untested is treated as supported ({why})",
" —— 没测出来的一律按「支持」处理 ({why})"), " —- 没测出来的一律按 \"支持\" 处理 ({why})"),
M("agent.caps.unknown", M("agent.caps.unknown",
"untested", "untested",
"未测"), "未测"),
@@ -1141,7 +1141,7 @@ M("meta.help",
"/help 显示本帮助\n" "/help 显示本帮助\n"
"\n" "\n"
"其余输入都是给 meta 模型的指令, 例如: \n" "其余输入都是给 meta 模型的指令, 例如: \n"
" 把第 3 轮里我说的 "用 Python" 删掉\n" " 把第 3 轮里我说的 \"用 Python\" 删掉\n"
" 第 5 轮助手那个结论是错的, 改掉\n" " 第 5 轮助手那个结论是错的, 改掉\n"
" 第 2 到 4 轮在绕圈子, 压成一段\n"), " 第 2 到 4 轮在绕圈子, 压成一段\n"),
M("meta.turn_failed", M("meta.turn_failed",
+1 -1
View File
@@ -45,7 +45,7 @@ const char *t(const char *key);
/* 带占位符: 模板里写 {name}, 调用时按名字成对给值, 最后传 NULL. /* 带占位符: 模板里写 {name}, 调用时按名字成对给值, 最后传 NULL.
* tf("err.unknown_option", "option", arg, NULL) * tf("err.unknown_option", "option", arg, NULL)
* 按名字匹配 (不是按位置), 所以译文可以调整语序. */ * 按名字而非位置匹配, 所以译文可以调整语序. */
const char *tf(const char *key, ...); const char *tf(const char *key, ...);
/* 整数转字符串 (静态轮转缓冲), 专供 tf 的参数位置用: /* 整数转字符串 (静态轮转缓冲), 专供 tf 的参数位置用:
+15 -28
View File
@@ -6,47 +6,34 @@
*/ */
#include "markdown.h" #include "markdown.h"
#include "util.h" #include "util.h"
#include "sgr.h"
#include <stdio.h> #include <stdio.h>
#include <stdlib.h> #include <stdlib.h>
#include <string.h> #include <string.h>
/* 样式定义 (硬编码 SGR, 不依赖 terminfo) #define MD_RESET C_OFF
* #define MD_BOLD C_BOLD
* **只用 16 色范围内的码**: 前景 30-37, 加粗/暗淡/斜体用 1/2/3. #define MD_DIM C_DIM
* 不用 90-97 那一段 (aixterm 的"亮色")—— 它虽然到处都是, 但严格讲不属于 #define MD_ITALIC C_ITALIC
* 最窄的 16 色 ANSI, 而这段代码是硬编码 SGR、不做终端能力探测的 (连 terminfo #define MD_CODE C_CYAN
* 都不查). 既然不探测, 就该待在**所有终端都认**的那一档里. #define MD_BULLET C_CYAN
* #define MD_LINK C_UNDERLINE C_CYAN
* 原来链接用的是亮蓝 (aixterm 的 94), 是这里唯一一个越界的码. 改成 #define MD_H1 C_BOLD C_CYAN
* "\033[4;36m" (下划线 + 青): 链接在终端里的传统表示本来就是下划线, #define MD_H2 C_BOLD C_MAGENTA
* 而且青色和行内代码、列表符号同色系, 视觉上"这些是标记不是正文"是一致的. #define MD_H3 C_BOLD C_BLUE
* 更重要的是下划线是**属性** (SGR 4), 比颜色更可靠 —— 单色终端、色盲用户、 #define MD_H4 C_BOLD
* 以及把颜色重映射过的主题里, 下划线都还在.
*
* (这里不写出那个越界码的字面量, 以免以后 grep `\[9[0-7]` 做审计时被注释
* 里的这一行报成假阳性. ) */
#define MD_RESET "\033[0m"
#define MD_BOLD "\033[1m"
#define MD_DIM "\033[2m"
#define MD_ITALIC "\033[3m"
#define MD_CODE "\033[36m" /* 行内代码: 青 */
#define MD_BULLET "\033[36m"
#define MD_LINK "\033[4;36m" /* 链接文字: 下划线 + 青 */
#define MD_H1 "\033[1;36m" /* 粗体青 */
#define MD_H2 "\033[1;35m" /* 粗体品红 */
#define MD_H3 "\033[1;34m" /* 粗体蓝 */
#define MD_H4 "\033[1m" /* 粗体 */
/* 等待更多数据 (当前字节可能是一个被切断的标记) */ /* 等待更多数据 (当前字节可能是一个被切断的标记) */
#define MD_NEED_MORE ((size_t)-1) #define MD_NEED_MORE ((size_t)-1)
/* 待处理缓冲上限: 遇到始终等不到结束标记的超长行时直接吐出, 保证内存有界 */ /* 待处理缓冲上限: 遇到始终等不到结束标记的超长行时直接吐出, 保证内存有界 */
#define MD_MAX_PENDING (64 * 1024) #define MD_MAX_PENDING (64 * 1024)
/* 候选表格行超过这个长度就不再当表格等下去, 避免长行被卡住 */ /* 候选表格行超过这个长度就不再当表格等下去, 避免长行被卡住 */
#define MD_MAX_TABLE_LINE 4096 #define MD_MAX_TABLE_LINE 4096
/* 表格累积多少行后强制渲染 (防止超大表格一直不输出) */ /* 表格累积多少行后强制渲染 (防止超大表格一直不输出) */
#define MD_MAX_TABLE_ROWS 200 #define MD_MAX_TABLE_ROWS 256
struct MdRenderer { struct MdRenderer {
int enabled; int enabled;
+3 -3
View File
@@ -31,7 +31,7 @@ static const char *META_SYSTEM_PROMPT =
"\n" "\n"
"## 为什么会有你\n" "## 为什么会有你\n"
"用户想改这段历史, 通常是因为助手沿着一个他不满意的方向走下去了. 他要的\n" "用户想改这段历史, 通常是因为助手沿着一个他不满意的方向走下去了. 他要的\n"
"往往不是 "省 token" , 而是**让这段历史不再诱导助手重蹈覆辙**——\n" "往往不是 \"省 token\" , 而是**让这段历史不再诱导助手重蹈覆辙**——\n"
"删掉那句说错的前提、去掉那个被推翻的方案、删掉助手那次自信但错误的结论. \n" "删掉那句说错的前提、去掉那个被推翻的方案、删掉助手那次自信但错误的结论. \n"
"另外 你拥有修改assistant的消息的能力, 这是常规的修改所不能完成的\n" "另外 你拥有修改assistant的消息的能力, 这是常规的修改所不能完成的\n"
"\n" "\n"
@@ -41,7 +41,7 @@ static const char *META_SYSTEM_PROMPT =
"## 工作方式\n" "## 工作方式\n"
"1. 动手前先看清楚. 先 list_rounds 看目录、再 read_messages 读原文. \n" "1. 动手前先看清楚. 先 list_rounds 看目录、再 read_messages 读原文. \n"
" 不要凭用户的转述猜内容. \n" " 不要凭用户的转述猜内容. \n"
"2. 改最小必要范围. 用户说 "删掉那句用 Python" , 就删那一句, \n" "2. 改最小必要范围. 用户说 \"删掉那句用 Python\" , 就删那一句, \n"
" 不要顺手把整轮都删了. \n" " 不要顺手把整轮都删了. \n"
"3. 用户没要求压缩就不要压缩 —— 压缩会丢证据. \n" "3. 用户没要求压缩就不要压缩 —— 压缩会丢证据. \n"
"4. 每次改动后消息编号会重排. 要继续改, 先重新 list_rounds. \n" "4. 每次改动后消息编号会重排. 要继续改, 先重新 list_rounds. \n"
@@ -49,7 +49,7 @@ static const char *META_SYSTEM_PROMPT =
"\n" "\n"
"## 红线\n" "## 红线\n"
"- 带 tool_calls 的 assistant 消息和紧随其后的 tool 结果是不可拆的整体, 否则会造成400错误. \n" "- 带 tool_calls 的 assistant 消息和紧随其后的 tool 结果是不可拆的整体, 否则会造成400错误. \n"
"- 不要为了 "整齐" 重排顺序. \n" "- 不要为了 \"整齐\" 重排顺序. \n"
"\n" "\n"
"## 拿不准就问\n" "## 拿不准就问\n"
"如果删掉某个点会让后面的回答失去上下文, 把这个后果指出来, 让用户决定. \n" "如果删掉某个点会让后面的回答失去上下文, 把这个后果指出来, 让用户决定. \n"
-8
View File
@@ -37,11 +37,3 @@
#define C_BRIGHT_MAGENTA "\033[95m" #define C_BRIGHT_MAGENTA "\033[95m"
#define C_BRIGHT_CYAN "\033[96m" #define C_BRIGHT_CYAN "\033[96m"
#define C_BRIGHT_WHITE "\033[97m" #define C_BRIGHT_WHITE "\033[97m"
#define C_OFF "\033[0m" // 复原
#define C_BOLD "\033[1m" // 粗体
#define C_DIM "\033[2m" // 半亮度
#define C_ITALIC "\033[3m" // 斜体
#define C_CYAN "\033[36m" //
#define C_GREEN "\033[32m"
#define C_RED "\033[31m"