@yfwu2020/dsh-selection-explain 0.11.1 → 0.13.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (44) hide show
  1. package/README.md +25 -5
  2. package/lib/chat-context.js +86 -0
  3. package/lib/chat-context.js.map +1 -0
  4. package/lib/client.js +1978 -168
  5. package/lib/client.js.map +4 -4
  6. package/lib/config-values.js +6 -0
  7. package/lib/config-values.js.map +1 -1
  8. package/lib/host/analyze.js +199 -47
  9. package/lib/host/analyze.js.map +1 -1
  10. package/lib/host/chat-context.js +160 -0
  11. package/lib/host/chat-context.js.map +1 -0
  12. package/lib/host/chat-materials.js +64 -0
  13. package/lib/host/chat-materials.js.map +1 -0
  14. package/lib/host/config.js +8 -1
  15. package/lib/host/config.js.map +1 -1
  16. package/lib/host/history-attachments.js +17 -53
  17. package/lib/host/history-attachments.js.map +1 -1
  18. package/lib/host/history-store.js +93 -68
  19. package/lib/host/history-store.js.map +1 -1
  20. package/lib/host/http.js +2 -1
  21. package/lib/host/http.js.map +1 -1
  22. package/lib/host/plugin.js +31 -0
  23. package/lib/host/plugin.js.map +1 -1
  24. package/lib/host/promote.js +0 -1
  25. package/lib/host/promote.js.map +1 -1
  26. package/lib/host/settings-store.js +17 -18
  27. package/lib/host/settings-store.js.map +1 -1
  28. package/lib/host/shot.js +968 -0
  29. package/lib/host/shot.js.map +1 -0
  30. package/lib/prompts.js +54 -1
  31. package/lib/prompts.js.map +1 -1
  32. package/lib/settings.js +14 -1
  33. package/lib/settings.js.map +1 -1
  34. package/lib/types/chat-context.d.ts +53 -0
  35. package/lib/types/config-values.d.ts +30 -0
  36. package/lib/types/host/chat-context.d.ts +31 -0
  37. package/lib/types/host/chat-materials.d.ts +16 -0
  38. package/lib/types/host/config.d.ts +16 -2
  39. package/lib/types/host/history-attachments.d.ts +7 -40
  40. package/lib/types/host/history-store.d.ts +1 -0
  41. package/lib/types/host/shot.d.ts +73 -0
  42. package/lib/types/host/types.d.ts +17 -0
  43. package/lib/types/prompts.d.ts +21 -0
  44. package/package.json +4 -2
@@ -13,6 +13,19 @@ export interface AnalyzeBody {
13
13
  stage?: unknown;
14
14
  /** 'code' | 'text':选中文字是不是代码(代码走「注释」提示词:代码块 + 逐句注释 + 小结)。 */
15
15
  kind?: unknown;
16
+ /**
17
+ * 截图提问的**第二次调用**:只取标题。
18
+ * 前缀与回答那次完全一致(system + 图 + 提问),只在最后追加一句"只输出标题",
19
+ * 目的是让图那部分命中前缀缓存。
20
+ */
21
+ titleOnly?: unknown;
22
+ /**
23
+ * 截图取景范围:screen / window / margin / selection。
24
+ * 提示词据此换口径(仅选区没有红框,留白/全屏/整窗的"框外是什么"不同)。
25
+ */
26
+ shotScope?: unknown;
27
+ /** 截图最终图里有没有红框(仅选区为 false)。 */
28
+ shotFrame?: unknown;
16
29
  /** 本会话已用过的工具结果摘要(追问时带上,避免重复联网)。 */
17
30
  toolDigest?: unknown;
18
31
  /** 小窗对话历史(A′):整段对话的持久化条目。 */
@@ -34,6 +47,10 @@ export interface AnalyzeBody {
34
47
  question?: unknown;
35
48
  /** 追问模式下的历史轮次:[{ role: 'user' | 'assistant', text }]。 */
36
49
  history?: unknown;
50
+ historyStart?: unknown;
51
+ contextState?: unknown;
52
+ materials?: unknown;
53
+ initialExplanation?: unknown;
37
54
  /**
38
55
  * 这一轮追问带的附件:[{ kind: 'image' | 'file', ref }],ref 是 /api/attach 存好之后的持久引用。
39
56
  * 图片 → ImageBlock(模型直接看);文件 → FileBlock(dsh-llm 投影成"名字 + 字节数 + 只读路径"一行)。
@@ -23,4 +23,25 @@ export declare const CODE_PROMPT: string;
23
23
  /** 只输出「详解」一节时用(第二阶段,带完整会话背景)。 */
24
24
  export declare const DETAIL_PROMPT: string;
25
25
  /** 追问模式(对话小窗)的系统提示词:不再要求两节结构,就是围绕这段文字聊天。 */
26
+ /**
27
+ * 截图提问(独立模式)。
28
+ *
29
+ * 和"追问"不是一回事:那条路的前提是"用户选中了一段文字,前文是它的解读";
30
+ * 这条路没有选中文字,只有**一张截图**(整窗 + 红框标出用户关心的那块)和一句问题。
31
+ * 所以:不要解读"这段文字",不要复述翻译,直接看图回答;红框是"我指的东西"。
32
+ */
33
+ /**
34
+ * 截图提问:取标题(第二次调用,紧跟在回答之后)。
35
+ *
36
+ * 为什么单独一次:把"起名字"塞进回答的格式里,模型经常不照做(实测);
37
+ * 单独问一句它反而稳。而且这条请求的**前缀与回答那次逐字节相同**
38
+ * (同样的 system、同样的图、同样的提问),图那部分应当命中前缀缓存。
39
+ */
40
+ export type ShotPromptScope = 'screen' | 'window' | 'margin' | 'selection';
41
+ /** 按取景范围生成标题提示词(没有框时改用“这张图里的…”口径,不把注意力引到不存在的标记上)。 */
42
+ export declare function shotTitlePromptFor(scope: ShotPromptScope, frame: boolean): string;
43
+ export declare const SHOT_TITLE_PROMPT: string;
44
+ /** 按取景范围生成回答用的 system prompt。 */
45
+ export declare function shotPromptFor(scope: ShotPromptScope, frame: boolean): string;
46
+ export declare const SHOT_PROMPT: string;
26
47
  export declare const CHAT_SYSTEM_PROMPT: string;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@yfwu2020/dsh-selection-explain",
3
- "version": "0.11.1",
3
+ "version": "0.13.0",
4
4
  "description": "DSH 划词解读:选中文字浮出按钮,点击弹窗流式显示专业中英翻译 + 该文字在当前上下文中的含义详解",
5
5
  "type": "module",
6
6
  "main": "./lib/index.js",
@@ -78,7 +78,9 @@
78
78
  "patch": "./cordis.patch.yml"
79
79
  },
80
80
  "client": {
81
- "inject": [],
81
+ "inject": [
82
+ "@deepseek-ai/dsh-client-shortcuts"
83
+ ],
82
84
  "platform": "web"
83
85
  }
84
86
  },