feat(annotate): 框内文字标记[1]为最可能目标;用户消息内提示精简为一行(已定位直接作答),完整协议细节下沉知识包
This commit is contained in:
@@ -793,8 +793,8 @@ const KNOWLEDGE_PACK = [
|
||||
' /api/worktable/git(git 状态)、/api/worktable/site(静态托管)。',
|
||||
'- 改完插件在 01_content 目录执行 npm run build;重启 dsh web 或浏览器 F5 生效。',
|
||||
'- 所有产出文件一律放进本任务标注的项目文件夹,保持用户目录干净。',
|
||||
'- 标注协议:收到「📌 标注-窗口N …(坐标/元素)…要求:…」= 工作台标注(窗口编号约定:左栏→顶行→主行,从 1 起)。',
|
||||
' 处理:能查看截图或打开对应窗口则先核实位置再回答;不能查看画面时,只问一条最关键的问题确认位置,不要泛泛猜测。',
|
||||
'- 标注协议:收到「📌 标注-窗口N …(坐标/元素/框内文字…)…」= 工作台标注(窗口编号约定:左栏→顶行→主行,从 1 起)。',
|
||||
' 处理:标注已标明框选区域与「最可能目标」时直接作答、不要二次询问(仅当确实无法从标注定位时才问一次);能查看截图或打开窗口则先核实再回答。',
|
||||
].join('\n')
|
||||
|
||||
/** 组装窗口任务提示词(新建/发送两模式共用;导出到 window 供自测校验) */
|
||||
|
||||
@@ -409,7 +409,7 @@ function fillHostInput(text: string): boolean {
|
||||
function confirmAnnot() {
|
||||
const s = annotState
|
||||
const text = '📌 标注-' + s.resp + '\n' + (s.stat || '') + '\n要求:' + (s.draft.trim() || '(未填写)')
|
||||
+ '\n——【工作台标注】这是给 AI 的定位标注:① 能查看截图或打开对应窗口(' + s.resp + ')就先核实位置再回答;② 不能查看画面时,只问一条最关键的问题确认位置,不要泛泛猜测。'
|
||||
+ '\n【工作台标注·已定位,直接作答,无需再问;仅当确实无法从标注定位时才问一次】'
|
||||
const ok = fillHostInput(text)
|
||||
if (!ok) {
|
||||
try {
|
||||
@@ -471,7 +471,7 @@ function AnnotationOverlay() {
|
||||
stat += ',窗口内 (' + rx1 + '%,' + ry1 + '%)→(' + rx2 + '%,' + ry2 + '%)'
|
||||
}
|
||||
const texts = elementsInBox(L, T, R, B)
|
||||
if (texts.length > 0) stat += ',框内文字:' + texts.map((t, i) => '[' + (i + 1) + ']' + t).join(' ')
|
||||
if (texts.length > 0) stat += ',框内文字:' + texts.map((t, i) => '[' + (i + 1) + ']' + t + (i === 0 ? '←最可能目标' : '')).join(' ')
|
||||
} else {
|
||||
stat = '屏幕坐标 (' + Math.round(e.clientX) + ', ' + Math.round(e.clientY) + ')'
|
||||
if (paneEl) {
|
||||
|
||||
Reference in New Issue
Block a user