style: 改进 SGV 相关声明
This commit is contained in:
1 parent
3dd2231c70
commit
016a45bc6e
7 files changed
+389
-297
No files matched your search
@@ -0,0 +1,4 @@
|
|||||||
|
BasedOnStyle: LLVM
|
||||||
|
IndentWidth: 4
|
||||||
|
TabWidth: 4
|
||||||
|
UseTab: Never
|
||||||
+362
-253
File diff suppressed because it is too large.
Load diff
+4
-4
@@ -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
@@ -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
@@ -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
@@ -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"
|
||||||
|
|||||||
@@ -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"
|
|
||||||
Reference in new issue
Block a user