@yfwu2020/dsh-selection-explain 0.10.4 → 0.10.6
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.
- package/README.md +13 -11
- package/cordis.patch.yml +1 -1
- package/lib/client.js +10698 -12424
- package/lib/client.js.map +7 -0
- package/lib/config-values.js +55 -0
- package/lib/config-values.js.map +1 -0
- package/lib/host/analyze.js +795 -0
- package/lib/host/analyze.js.map +1 -0
- package/lib/host/config.js +81 -0
- package/lib/host/config.js.map +1 -0
- package/lib/host/constants.js +25 -0
- package/lib/host/constants.js.map +1 -0
- package/lib/host/context.js +237 -0
- package/lib/host/context.js.map +1 -0
- package/lib/host/design-skill.js +42 -0
- package/lib/host/design-skill.js.map +1 -0
- package/lib/host/effort.js +239 -0
- package/lib/host/effort.js.map +1 -0
- package/lib/host/filters.js +132 -0
- package/lib/host/filters.js.map +1 -0
- package/lib/host/history-store.js +404 -0
- package/lib/host/history-store.js.map +1 -0
- package/lib/host/http.js +46 -0
- package/lib/host/http.js.map +1 -0
- package/lib/host/messages.js +14 -0
- package/lib/host/messages.js.map +1 -0
- package/lib/host/mic.js +246 -0
- package/lib/host/mic.js.map +1 -0
- package/lib/host/models.js +246 -0
- package/lib/host/models.js.map +1 -0
- package/lib/host/plugin.js +41 -0
- package/lib/host/plugin.js.map +1 -0
- package/lib/host/promote.js +219 -0
- package/lib/host/promote.js.map +1 -0
- package/lib/host/routes.js +237 -0
- package/lib/host/routes.js.map +1 -0
- package/lib/host/sessions.js +181 -0
- package/lib/host/sessions.js.map +1 -0
- package/lib/host/settings-store.js +140 -0
- package/lib/host/settings-store.js.map +1 -0
- package/lib/host/speech.js +320 -0
- package/lib/host/speech.js.map +1 -0
- package/lib/host/tools.js +179 -0
- package/lib/host/tools.js.map +1 -0
- package/lib/host/types.js +2 -0
- package/lib/host/types.js.map +1 -0
- package/lib/index.js +10 -3765
- package/lib/index.js.map +1 -1
- package/lib/prompts.js +1 -1
- package/lib/settings.js +17 -27
- package/lib/settings.js.map +1 -1
- package/lib/types/config-values.d.ts +175 -0
- package/lib/types/host/analyze.d.ts +10 -0
- package/lib/types/host/config.d.ts +147 -0
- package/lib/types/host/constants.d.ts +24 -0
- package/lib/types/host/context.d.ts +41 -0
- package/lib/types/host/design-skill.d.ts +1 -0
- package/lib/types/host/effort.d.ts +61 -0
- package/lib/types/host/filters.d.ts +20 -0
- package/lib/types/host/history-store.d.ts +13 -0
- package/lib/types/host/http.d.ts +8 -0
- package/lib/types/host/messages.d.ts +13 -0
- package/lib/types/host/mic.d.ts +17 -0
- package/lib/types/host/models.d.ts +57 -0
- package/lib/types/host/plugin.d.ts +3 -0
- package/lib/types/host/promote.d.ts +9 -0
- package/lib/types/host/routes.d.ts +14 -0
- package/lib/types/host/sessions.d.ts +14 -0
- package/lib/types/host/settings-store.d.ts +8 -0
- package/lib/types/host/speech.d.ts +23 -0
- package/lib/types/host/tools.d.ts +39 -0
- package/lib/types/host/types.d.ts +89 -0
- package/lib/types/index.d.ts +12 -441
- package/lib/types/prompts.d.ts +1 -1
- package/lib/types/settings.d.ts +1 -1
- package/package.json +31 -21
- package/assets/code.png +0 -0
- package/assets/detail.png +0 -0
- package/assets/quotes.png +0 -0
- package/assets/stage1.png +0 -0
- package/assets/stage2.png +0 -0
- package/assets/translation.png +0 -0
- package/assets/voice-card-light.png +0 -0
- package/assets/voice-inserted.png +0 -0
- package/assets/voice-settings.png +0 -0
- package/assets/voice.png +0 -0
- package/assets/web.png +0 -0
- package/scripts/build-demo-pages.mjs +0 -350
- package/scripts/build-vcard-lab.mjs +0 -834
- package/scripts/build.sh +0 -147
- package/scripts/crop-png.mjs +0 -142
- package/scripts/dump-prompt.mjs +0 -143
- package/scripts/fixtures/fake-mic-probe.sh +0 -9
- package/scripts/gen-star-path.mjs +0 -71
- package/scripts/measure-cost.mjs +0 -251
- package/scripts/smoke-bridge.mjs +0 -365
- package/scripts/smoke-panel.mjs +0 -1903
- package/scripts/smoke-voice.mjs +0 -774
- package/scripts/test-bridge.mjs +0 -412
- package/scripts/test-client.mjs +0 -6175
- package/scripts/test-effort-map.mjs +0 -129
- package/scripts/test-effort-retry.mjs +0 -109
- package/scripts/test-escape-focus.mjs +0 -101
- package/scripts/test-filters.mjs +0 -146
- package/scripts/test-format.mjs +0 -93
- package/scripts/test-guard.mjs +0 -48
- package/scripts/test-mic-build.mjs +0 -146
- package/scripts/test-mic-idle.mjs +0 -158
- package/scripts/test-model-follow.mjs +0 -193
- package/scripts/test-prompt.mjs +0 -193
- package/scripts/test-route-cache.mjs +0 -138
- package/scripts/test-settings-behavior.mjs +0 -188
- package/scripts/test-settings-host.mjs +0 -48
- package/scripts/test-settings.mjs +0 -329
- package/scripts/test-speech.mjs +0 -220
- package/scripts/test-transcript.mjs +0 -151
- package/src/client/index.js +0 -12580
- package/src/index.ts +0 -4254
- package/src/prompts.ts +0 -144
- package/src/settings.ts +0 -313
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"analyze.js","sourceRoot":"","sources":["../../src/host/analyze.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
import z from '@deepseek-ai/schemastery';
|
|
2
|
+
import { CONFIG_DEFAULTS, CONFIG_LIMITS } from '../config-values.js';
|
|
3
|
+
/** 配置 schema(缺省值即推荐值)。 */
|
|
4
|
+
export const Config = z.object({
|
|
5
|
+
provider: z.string().default(CONFIG_DEFAULTS.provider),
|
|
6
|
+
model: z.string().default(CONFIG_DEFAULTS.model),
|
|
7
|
+
chatProvider: z.string().default(CONFIG_DEFAULTS.chatProvider),
|
|
8
|
+
chatModel: z.string().default(CONFIG_DEFAULTS.chatModel),
|
|
9
|
+
reasoningEffort: z.string().default(CONFIG_DEFAULTS.reasoningEffort),
|
|
10
|
+
/** 首轮单独一档:默认关闭思考,优先快速给出翻译、解读或注释。 */
|
|
11
|
+
translationReasoningEffort: z.string().default(CONFIG_DEFAULTS.translationReasoningEffort),
|
|
12
|
+
/**
|
|
13
|
+
* 小窗对话历史(A′):把整段对话落到插件自己的目录,重划同一个词直接回放。
|
|
14
|
+
* 0 = 关闭历史。只留最近 N 个「划词条目」(每个条目内含它自己的全部追问轮次)。
|
|
15
|
+
*/
|
|
16
|
+
historyMaxEntries: z.number().min(CONFIG_LIMITS.historyMaxEntries.min).max(CONFIG_LIMITS.historyMaxEntries.max).default(CONFIG_DEFAULTS.historyMaxEntries),
|
|
17
|
+
/** 采样温度。**默认 -1 = 不传**(交给供应商默认,与主会话一致)。0~2 之间才真的传。 */
|
|
18
|
+
temperature: z.number().min(CONFIG_LIMITS.temperature.min).max(CONFIG_LIMITS.temperature.max).default(CONFIG_DEFAULTS.temperature),
|
|
19
|
+
/**
|
|
20
|
+
* 单次调用的输出上限(tokens)。**默认 0 = 不限制** —— 不传这个参数,交给模型/供应商自己的上限。
|
|
21
|
+
*
|
|
22
|
+
* 为什么不默认给个数:这是**每次调用**的上限,联网检索后的答案经常要 2~4k tokens,
|
|
23
|
+
* 之前默认 1200 会让回答"悄悄截断在句子中间"(实测);而给死一个更大的数也一样会在别的场景截断。
|
|
24
|
+
* 想限制(控成本/控时延)就填正数,仍然生效。
|
|
25
|
+
*/
|
|
26
|
+
maxTokens: z.number().min(CONFIG_LIMITS.maxTokens.min).max(CONFIG_LIMITS.maxTokens.max).default(CONFIG_DEFAULTS.maxTokens),
|
|
27
|
+
timeoutMs: z.number().min(CONFIG_LIMITS.timeoutMs.min).max(CONFIG_LIMITS.timeoutMs.max).default(CONFIG_DEFAULTS.timeoutMs),
|
|
28
|
+
maxSelectionChars: z.number().min(CONFIG_LIMITS.maxSelectionChars.min).max(CONFIG_LIMITS.maxSelectionChars.max).default(CONFIG_DEFAULTS.maxSelectionChars),
|
|
29
|
+
maxContextChars: z.number().min(CONFIG_LIMITS.maxContextChars.min).max(CONFIG_LIMITS.maxContextChars.max).default(CONFIG_DEFAULTS.maxContextChars),
|
|
30
|
+
maxRequestsPerMinute: z.number().min(CONFIG_LIMITS.maxRequestsPerMinute.min).max(CONFIG_LIMITS.maxRequestsPerMinute.max).default(CONFIG_DEFAULTS.maxRequestsPerMinute),
|
|
31
|
+
sessionContext: z.boolean().default(CONFIG_DEFAULTS.sessionContext),
|
|
32
|
+
sessionContextMaxMessages: z.number().min(CONFIG_LIMITS.sessionContextMaxMessages.min).max(CONFIG_LIMITS.sessionContextMaxMessages.max).default(CONFIG_DEFAULTS.sessionContextMaxMessages),
|
|
33
|
+
sessionContextFastMessages: z.number().min(CONFIG_LIMITS.sessionContextFastMessages.min).max(CONFIG_LIMITS.sessionContextFastMessages.max).default(CONFIG_DEFAULTS.sessionContextFastMessages),
|
|
34
|
+
sessionContextMaxChars: z.number().min(CONFIG_LIMITS.sessionContextMaxChars.min).max(CONFIG_LIMITS.sessionContextMaxChars.max).default(CONFIG_DEFAULTS.sessionContextMaxChars),
|
|
35
|
+
quoteContextRounds: z.number().min(CONFIG_LIMITS.quoteContextRounds.min).max(CONFIG_LIMITS.quoteContextRounds.max).default(CONFIG_DEFAULTS.quoteContextRounds),
|
|
36
|
+
quoteContextMaxCharsPerTurn: z.number().min(CONFIG_LIMITS.quoteContextMaxCharsPerTurn.min).max(CONFIG_LIMITS.quoteContextMaxCharsPerTurn.max).default(CONFIG_DEFAULTS.quoteContextMaxCharsPerTurn),
|
|
37
|
+
quoteContextMaxChars: z.number().min(CONFIG_LIMITS.quoteContextMaxChars.min).max(CONFIG_LIMITS.quoteContextMaxChars.max).default(CONFIG_DEFAULTS.quoteContextMaxChars),
|
|
38
|
+
resultCacheTtlMs: z.number().min(CONFIG_LIMITS.resultCacheTtlMs.min).max(CONFIG_LIMITS.resultCacheTtlMs.max).default(CONFIG_DEFAULTS.resultCacheTtlMs),
|
|
39
|
+
tools: z.boolean().default(CONFIG_DEFAULTS.tools),
|
|
40
|
+
/**
|
|
41
|
+
* 工具白名单(逗号分隔)。
|
|
42
|
+
*
|
|
43
|
+
* 默认改用 **free-search 插件**的工具(`advanced_search` / `platform_search`),不再用 `web_search`:
|
|
44
|
+
* 会话里的 `web_search` 是官方 DeepSeek 搜索(复用 @deepseek-ai/dsh-tool-web 的 schema),
|
|
45
|
+
* 而新装的 dsh-free-search 只注册了 advanced_search / platform_search / free_search_test ——
|
|
46
|
+
* 引擎更多(ddg/bing/searxng/anysearch/exa/tavily/keenable/firecrawl/parallel…)、失败自动换引擎、
|
|
47
|
+
* 还支持时间过滤与平台搜索。
|
|
48
|
+
*/
|
|
49
|
+
toolNames: z.string().default(CONFIG_DEFAULTS.toolNames),
|
|
50
|
+
/**
|
|
51
|
+
* **备用**工具清单:只在"首选里的联网工具一个都不在"时才补进来。
|
|
52
|
+
*
|
|
53
|
+
* 场景:没装 free-search 插件(或它没注册工具)时,会话里通常仍有官方 `web_search`;
|
|
54
|
+
* 不补的话小窗会变成完全不能联网。装了 free-search 就完全用不到这一项。
|
|
55
|
+
*/
|
|
56
|
+
fallbackToolNames: z.string().default(CONFIG_DEFAULTS.fallbackToolNames),
|
|
57
|
+
maxToolRounds: z.number().min(CONFIG_LIMITS.maxToolRounds.min).max(CONFIG_LIMITS.maxToolRounds.max).default(CONFIG_DEFAULTS.maxToolRounds),
|
|
58
|
+
toolResultMaxChars: z.number().min(CONFIG_LIMITS.toolResultMaxChars.min).max(CONFIG_LIMITS.toolResultMaxChars.max).default(CONFIG_DEFAULTS.toolResultMaxChars),
|
|
59
|
+
toolReadRoot: z.string().default(CONFIG_DEFAULTS.toolReadRoot),
|
|
60
|
+
chatReasoningEffort: z.string().default(CONFIG_DEFAULTS.chatReasoningEffort),
|
|
61
|
+
/**
|
|
62
|
+
* 侧边栏 HTML 预览里的划词桥。关掉就不往预览帧里注入桥脚本,
|
|
63
|
+
* 侧边栏网页里选中文字不会再弹「解读」。
|
|
64
|
+
*/
|
|
65
|
+
bridgeSidebarPreview: z.boolean().default(CONFIG_DEFAULTS.bridgeSidebarPreview),
|
|
66
|
+
/** 悬浮胶囊开关(小窗设置页可改)。 */
|
|
67
|
+
pillEnabled: z.boolean().default(CONFIG_DEFAULTS.pillEnabled),
|
|
68
|
+
/** 静置收球时长(毫秒)——默认 10 秒,见 Config 注释。 */
|
|
69
|
+
pillIdleMs: z.number().min(CONFIG_LIMITS.pillIdleMs.min).max(CONFIG_LIMITS.pillIdleMs.max).default(CONFIG_DEFAULTS.pillIdleMs),
|
|
70
|
+
/** 空录音是否收起卡片(默认开,见 Config 注释)。 */
|
|
71
|
+
voiceCancelOnSilence: z.boolean().default(CONFIG_DEFAULTS.voiceCancelOnSilence),
|
|
72
|
+
/** 有字是否自动发送(默认开,见 Config 注释)。 */
|
|
73
|
+
voiceAutoSend: z.boolean().default(CONFIG_DEFAULTS.voiceAutoSend),
|
|
74
|
+
});
|
|
75
|
+
/** Preserve nullish-default semantics without duplicating the defaults. */
|
|
76
|
+
export function resolveConfig(rawConfig = {}) {
|
|
77
|
+
return Object.fromEntries(Object.entries(CONFIG_DEFAULTS).map(([key, fallback]) => [
|
|
78
|
+
key, rawConfig?.[key] ?? fallback,
|
|
79
|
+
]));
|
|
80
|
+
}
|
|
81
|
+
//# sourceMappingURL=config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/host/config.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,MAAM,0BAA0B,CAAA;AACxC,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AAIpE,0BAA0B;AAC1B,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC;IAC7B,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,eAAe,CAAC,QAAQ,CAAC;IACtD,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,eAAe,CAAC,KAAK,CAAC;IAChD,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,eAAe,CAAC,YAAY,CAAC;IAC9D,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,eAAe,CAAC,SAAS,CAAC;IACxD,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,eAAe,CAAC,eAAe,CAAC;IACpE,oCAAoC;IACpC,0BAA0B,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,eAAe,CAAC,0BAA0B,CAAC;IAC1F;;;OAGG;IACH,iBAAiB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,aAAa,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,aAAa,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,eAAe,CAAC,iBAAiB,CAAC;IAC1J,sDAAsD;IACtD,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,aAAa,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,aAAa,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,eAAe,CAAC,WAAW,CAAC;IAClI;;;;;;OAMG;IACH,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,aAAa,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,aAAa,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,eAAe,CAAC,SAAS,CAAC;IAC1H,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,aAAa,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,aAAa,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,eAAe,CAAC,SAAS,CAAC;IAC1H,iBAAiB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,aAAa,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,aAAa,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,eAAe,CAAC,iBAAiB,CAAC;IAC1J,eAAe,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,aAAa,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,aAAa,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,eAAe,CAAC,eAAe,CAAC;IAClJ,oBAAoB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,aAAa,CAAC,oBAAoB,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,aAAa,CAAC,oBAAoB,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,eAAe,CAAC,oBAAoB,CAAC;IACtK,cAAc,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,eAAe,CAAC,cAAc,CAAC;IACnE,yBAAyB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,aAAa,CAAC,yBAAyB,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,aAAa,CAAC,yBAAyB,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,eAAe,CAAC,yBAAyB,CAAC;IAC1L,0BAA0B,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,aAAa,CAAC,0BAA0B,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,aAAa,CAAC,0BAA0B,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,eAAe,CAAC,0BAA0B,CAAC;IAC9L,sBAAsB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,aAAa,CAAC,sBAAsB,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,aAAa,CAAC,sBAAsB,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,eAAe,CAAC,sBAAsB,CAAC;IAC9K,kBAAkB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,aAAa,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,aAAa,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,eAAe,CAAC,kBAAkB,CAAC;IAC9J,2BAA2B,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,aAAa,CAAC,2BAA2B,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,aAAa,CAAC,2BAA2B,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,eAAe,CAAC,2BAA2B,CAAC;IAClM,oBAAoB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,aAAa,CAAC,oBAAoB,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,aAAa,CAAC,oBAAoB,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,eAAe,CAAC,oBAAoB,CAAC;IACtK,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,aAAa,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,aAAa,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,eAAe,CAAC,gBAAgB,CAAC;IACtJ,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,eAAe,CAAC,KAAK,CAAC;IACjD;;;;;;;;OAQG;IACH,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,eAAe,CAAC,SAAS,CAAC;IACxD;;;;;OAKG;IACH,iBAAiB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,eAAe,CAAC,iBAAiB,CAAC;IACxE,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,aAAa,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,aAAa,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,eAAe,CAAC,aAAa,CAAC;IAC1I,kBAAkB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,aAAa,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,aAAa,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,eAAe,CAAC,kBAAkB,CAAC;IAC9J,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,eAAe,CAAC,YAAY,CAAC;IAC9D,mBAAmB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,eAAe,CAAC,mBAAmB,CAAC;IAC5E;;;OAGG;IACH,oBAAoB,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,eAAe,CAAC,oBAAoB,CAAC;IAC/E,uBAAuB;IACvB,WAAW,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,eAAe,CAAC,WAAW,CAAC;IAC7D,uCAAuC;IACvC,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,aAAa,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,aAAa,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,eAAe,CAAC,UAAU,CAAC;IAC9H,kCAAkC;IAClC,oBAAoB,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,eAAe,CAAC,oBAAoB,CAAC;IAC/E,iCAAiC;IACjC,aAAa,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,eAAe,CAAC,aAAa,CAAC;CAClE,CAAC,CAAA;AAEF,2EAA2E;AAC3E,MAAM,UAAU,aAAa,CAAC,YAA6B,EAAE;IAC3D,OAAO,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjF,GAAG,EAAE,SAAS,EAAE,CAAC,GAAmB,CAAC,IAAI,QAAQ;KAClD,CAAC,CAAsB,CAAA;AAC1B,CAAC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/** 插件名(= package.json name,客户端 bundle 的模块 id 也是它)。 */
|
|
2
|
+
export const name = '@yfwu2020/dsh-selection-explain';
|
|
3
|
+
/**
|
|
4
|
+
* 升格时那条「上下文注入」消息的 `source.kind` —— 生产者**自有**的来源标识。
|
|
5
|
+
*
|
|
6
|
+
* 会话格式 v4 起(本机实测内核 0.2.0-rc.2),消息来源必须是生产者自报的 kind;
|
|
7
|
+
* v3 那种 `plugin` 包装(`kind: 'plugin'` 配一个 `plugin` 字段)已经退役,会被
|
|
8
|
+
* v4 准入当场拒掉:
|
|
9
|
+
* SessionFormatError: format v4 message requires a producer-owned source kind
|
|
10
|
+
* 症状极具迷惑性:`↗ 升格` 的 HTTP 请求返回 `ok: true`(那时只写进了内存里的会话面),
|
|
11
|
+
* 随后那轮 opener 运行失败、整个 artifact 一个字都没落盘 —— 新会话只剩表头。
|
|
12
|
+
* 离线测试也照样全绿(校验发生在真实内核里,不在构建期),所以另配了
|
|
13
|
+
* tests/unit/format.test.mjs 钉住这个 shape。
|
|
14
|
+
*
|
|
15
|
+
* 第三方插件的规范形态是 `plugin:<插件名>`:内核 v3→v4 迁移把那种 `plugin` 包装
|
|
16
|
+
* 重写成 `plugin:<完整插件名>`(`producerKind()` 对不在同名表里的插件就是这么算的),
|
|
17
|
+
* 所以这里写的与迁移结果逐字节一致 —— 新旧会话归因相同,且 v3 内核下同样合法
|
|
18
|
+
* (直写的 kind 迁移时原样保留)。
|
|
19
|
+
*/
|
|
20
|
+
export const PLUGIN_SOURCE_KIND = `plugin:${name}`;
|
|
21
|
+
/** 路由注册与模型调用所需的服务。 */
|
|
22
|
+
export const inject = ['webServer', 'llm'];
|
|
23
|
+
/** 路由前缀。 */
|
|
24
|
+
export const API_PREFIX = '/selection-explain/api';
|
|
25
|
+
//# sourceMappingURL=constants.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/host/constants.ts"],"names":[],"mappings":"AAEA,sDAAsD;AACtD,MAAM,CAAC,MAAM,IAAI,GAAG,iCAAiC,CAAA;AAErD;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,UAAU,IAAI,EAAE,CAAA;AAElD,sBAAsB;AACtB,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,WAAW,EAAE,KAAK,CAAC,CAAA;AAE1C,YAAY;AACZ,MAAM,CAAC,MAAM,UAAU,GAAG,wBAAwB,CAAA"}
|
|
@@ -0,0 +1,237 @@
|
|
|
1
|
+
/** 请求里带的会话 id(空串 = 客户端没取到)。 */
|
|
2
|
+
export function sessionIdOf(body) {
|
|
3
|
+
return typeof body.sessionId === 'string' ? body.sessionId.trim() : '';
|
|
4
|
+
}
|
|
5
|
+
/** 空白归一化(用于在会话记录里定位选中文字)。 */
|
|
6
|
+
function normalizeSpace(text) {
|
|
7
|
+
return text.replace(/\s+/g, ' ').trim();
|
|
8
|
+
}
|
|
9
|
+
/** 从消息 content 里取纯文本(只取 text 块;工具调用/结果不进来,避免噪音挤占预算)。 */
|
|
10
|
+
function messageText(content) {
|
|
11
|
+
if (!Array.isArray(content))
|
|
12
|
+
return '';
|
|
13
|
+
const parts = [];
|
|
14
|
+
for (const block of content) {
|
|
15
|
+
if (!block || typeof block !== 'object')
|
|
16
|
+
continue;
|
|
17
|
+
const typed = block;
|
|
18
|
+
if (typed.type === 'text' && typeof typed.text === 'string')
|
|
19
|
+
parts.push(typed.text);
|
|
20
|
+
}
|
|
21
|
+
return parts.join('\n').trim();
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* 把会话的当前模型界面整理成「会话背景」文本。
|
|
25
|
+
*
|
|
26
|
+
* 只保留**真实对话**:用户真正发的话(source.kind === 'user')与助手回复的正文。
|
|
27
|
+
* 三类内容一律剔除,否则会把有效窗口挤没(实测:430 条 surface 事件里绝大多数是
|
|
28
|
+
* 工具调用/结果,且 harness 注入的 system-reminder 单条可达 1.2 万字):
|
|
29
|
+
* - tool/result 与纯工具调用的助手步骤(无正文)
|
|
30
|
+
* - system/message(系统提示词)
|
|
31
|
+
* - source.kind !== 'user' 的用户角色消息(运行环境快照、skill 目录等 harness 注入)
|
|
32
|
+
*/
|
|
33
|
+
export function transcriptOf(events, options) {
|
|
34
|
+
const entries = [];
|
|
35
|
+
for (const event of events) {
|
|
36
|
+
if (!event || typeof event !== 'object')
|
|
37
|
+
continue;
|
|
38
|
+
const typed = event;
|
|
39
|
+
const data = (typed.data ?? {});
|
|
40
|
+
let role = '';
|
|
41
|
+
let content;
|
|
42
|
+
if (typed.type === 'user/message') {
|
|
43
|
+
if (data.source && data.source.kind !== 'user')
|
|
44
|
+
continue; // harness 注入的上下文
|
|
45
|
+
role = '用户';
|
|
46
|
+
content = data.content;
|
|
47
|
+
}
|
|
48
|
+
else if (typed.type === 'assistant/message') {
|
|
49
|
+
role = '助手';
|
|
50
|
+
content = data.message?.content;
|
|
51
|
+
}
|
|
52
|
+
else {
|
|
53
|
+
continue;
|
|
54
|
+
}
|
|
55
|
+
const text = messageText(content);
|
|
56
|
+
if (!text)
|
|
57
|
+
continue;
|
|
58
|
+
entries.push({ role, text, marked: false });
|
|
59
|
+
}
|
|
60
|
+
const needle = normalizeSpace(options.marker);
|
|
61
|
+
let marked = false;
|
|
62
|
+
if (needle.length >= 2) {
|
|
63
|
+
for (const entry of entries) {
|
|
64
|
+
if (normalizeSpace(entry.text).includes(needle)) {
|
|
65
|
+
entry.marked = true;
|
|
66
|
+
marked = true;
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
// 窗口 = 选中文字所在的那条消息 **向上** 数 maxMessages 条(含它自己),
|
|
71
|
+
// 之后的对话不进背景;找不到选中位置时退回「最近 maxMessages 条」。
|
|
72
|
+
// 默认不截断(maxChars = 0):消息整条进背景,不做单条/总量裁剪。
|
|
73
|
+
let anchorIndex = -1;
|
|
74
|
+
if (marked) {
|
|
75
|
+
for (let i = entries.length - 1; i >= 0; i -= 1) {
|
|
76
|
+
if (entries[i]?.marked) {
|
|
77
|
+
anchorIndex = i;
|
|
78
|
+
break;
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
const endIndex = anchorIndex >= 0 ? anchorIndex : entries.length - 1;
|
|
83
|
+
const startIndex = Math.max(0, endIndex - options.maxMessages + 1);
|
|
84
|
+
const picked = entries.slice(startIndex, endIndex + 1).map((entry) => ({ ...entry }));
|
|
85
|
+
// 可选总量上限(配置里显式设 >0 时才生效):超了就丢更早的消息
|
|
86
|
+
if (options.maxChars > 0) {
|
|
87
|
+
let used = picked.reduce((sum, entry) => sum + entry.text.length, 0);
|
|
88
|
+
while (picked.length > 1 && used > options.maxChars) {
|
|
89
|
+
const dropped = picked.shift();
|
|
90
|
+
used -= dropped ? dropped.text.length : 0;
|
|
91
|
+
}
|
|
92
|
+
for (const entry of picked) {
|
|
93
|
+
if (entry.text.length > options.maxChars)
|
|
94
|
+
entry.text = `${entry.text.slice(0, options.maxChars)}…`;
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
if (picked.length === 0)
|
|
98
|
+
return { transcript: '', marked: false };
|
|
99
|
+
const omitted = Math.max(0, entries.length - picked.length);
|
|
100
|
+
if (omitted > 0)
|
|
101
|
+
picked.unshift({ role: '提示', text: `(选中位置之前还有 ${omitted} 条更早的消息,未包含)`, marked: false });
|
|
102
|
+
const transcript = picked.map((entry) => `${entry.marked ? '▶ ' : ' '}${entry.role}:${entry.text}`).join('\n');
|
|
103
|
+
return { transcript, marked: picked.some((entry) => entry.marked) };
|
|
104
|
+
}
|
|
105
|
+
/** 在文本里找到引用文字并套上【】(直接找不到就按"空白等价"再找一次)。 */
|
|
106
|
+
function markQuoteInText(text, marker) {
|
|
107
|
+
if (!text || !marker)
|
|
108
|
+
return text;
|
|
109
|
+
const at = text.indexOf(marker);
|
|
110
|
+
if (at >= 0)
|
|
111
|
+
return `${text.slice(0, at)}【${marker}】${text.slice(at + marker.length)}`;
|
|
112
|
+
// 归一化后匹配:把引用按空白切开,逐段允许任意空白(选中文字常与消息原文差在换行/缩进)
|
|
113
|
+
const tokens = marker.split(/\s+/).filter(Boolean).map((token) => token.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'));
|
|
114
|
+
if (tokens.length === 0)
|
|
115
|
+
return text;
|
|
116
|
+
try {
|
|
117
|
+
const hit = new RegExp(tokens.join('\\s+')).exec(text);
|
|
118
|
+
if (hit && typeof hit.index === 'number') {
|
|
119
|
+
return `${text.slice(0, hit.index)}【${hit[0]}】${text.slice(hit.index + hit[0].length)}`;
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
catch {
|
|
123
|
+
/* 正则构造失败(极端输入):不标记,客户端会把原文另起一段补上 */
|
|
124
|
+
}
|
|
125
|
+
return text;
|
|
126
|
+
}
|
|
127
|
+
/** 围绕引用截断长消息(引用本身必须留下;找不到引用就从头截)。 */
|
|
128
|
+
function clampAroundQuote(text, marker, max) {
|
|
129
|
+
if (text.length <= max)
|
|
130
|
+
return text;
|
|
131
|
+
const at = marker ? text.indexOf(marker) : -1;
|
|
132
|
+
if (at < 0)
|
|
133
|
+
return `${text.slice(0, max)}…(已截断)`;
|
|
134
|
+
const half = Math.max(0, Math.floor((max - marker.length) / 2));
|
|
135
|
+
const from = Math.max(0, at - half);
|
|
136
|
+
const to = Math.min(text.length, at + marker.length + half);
|
|
137
|
+
return `${from > 0 ? '…' : ''}${text.slice(from, to)}${to < text.length ? '…' : ''}`;
|
|
138
|
+
}
|
|
139
|
+
/**
|
|
140
|
+
* **引用上下文**:引用文字所在的那一组对话 ± N 组(一组 = 一条用户消息 + 它的助手回复)。
|
|
141
|
+
*
|
|
142
|
+
* 与 `transcriptOf`(解读用的会话背景)的区别,两条都是为引用量身定的:
|
|
143
|
+
* ① 窗口是**锚点两侧** —— 引用常常是"上面那句"和"下面那句"的对照,只有上文不够;
|
|
144
|
+
* ② 按**轮**取整 —— 上下各至少一整组(用户消息 + AI 回复),不会切在半个回合上。
|
|
145
|
+
* 噪音过滤与 `transcriptOf` 完全一致(工具调用/结果、系统提示、harness 注入一律不进)。
|
|
146
|
+
*/
|
|
147
|
+
export function quoteContextOf(events, marker, options = {}) {
|
|
148
|
+
const roundsAround = Math.max(0, options.roundsAround ?? 1);
|
|
149
|
+
const maxCharsPerTurn = Math.max(200, options.maxCharsPerTurn ?? 2000);
|
|
150
|
+
const maxChars = Math.max(400, options.maxChars ?? 6000);
|
|
151
|
+
const entries = [];
|
|
152
|
+
for (const event of events) {
|
|
153
|
+
if (!event || typeof event !== 'object')
|
|
154
|
+
continue;
|
|
155
|
+
const typed = event;
|
|
156
|
+
const data = (typed.data ?? {});
|
|
157
|
+
let role = '';
|
|
158
|
+
let content;
|
|
159
|
+
if (typed.type === 'user/message') {
|
|
160
|
+
if (data.source && data.source.kind !== 'user')
|
|
161
|
+
continue;
|
|
162
|
+
role = '用户';
|
|
163
|
+
content = data.content;
|
|
164
|
+
}
|
|
165
|
+
else if (typed.type === 'assistant/message') {
|
|
166
|
+
role = '助手';
|
|
167
|
+
content = data.message?.content;
|
|
168
|
+
}
|
|
169
|
+
else {
|
|
170
|
+
continue;
|
|
171
|
+
}
|
|
172
|
+
const text = messageText(content);
|
|
173
|
+
if (!text)
|
|
174
|
+
continue;
|
|
175
|
+
entries.push({ role, text, marked: false });
|
|
176
|
+
}
|
|
177
|
+
if (entries.length === 0)
|
|
178
|
+
return { transcript: '', matched: false, rounds: 0 };
|
|
179
|
+
const needle = normalizeSpace(marker);
|
|
180
|
+
let anchor = -1;
|
|
181
|
+
if (needle.length >= 2) {
|
|
182
|
+
for (let i = entries.length - 1; i >= 0; i -= 1) {
|
|
183
|
+
if (normalizeSpace(entries[i]?.text ?? '').includes(needle)) {
|
|
184
|
+
anchor = i;
|
|
185
|
+
break;
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
if (anchor < 0)
|
|
190
|
+
return { transcript: '', matched: false, rounds: 0 };
|
|
191
|
+
// 按"轮"分组:一条用户消息开一轮(它之前的助手消息归上一轮)
|
|
192
|
+
const roundOf = [];
|
|
193
|
+
let round = -1;
|
|
194
|
+
for (const entry of entries) {
|
|
195
|
+
if (entry.role === '用户' || round < 0)
|
|
196
|
+
round += 1;
|
|
197
|
+
roundOf.push(round);
|
|
198
|
+
}
|
|
199
|
+
const anchorRound = roundOf[anchor] ?? 0;
|
|
200
|
+
const fromRound = Math.max(0, anchorRound - roundsAround);
|
|
201
|
+
const toRound = Math.min(round, anchorRound + roundsAround);
|
|
202
|
+
const picked = [];
|
|
203
|
+
for (let i = 0; i < entries.length; i += 1) {
|
|
204
|
+
const r = roundOf[i] ?? 0;
|
|
205
|
+
if (r < fromRound || r > toRound)
|
|
206
|
+
continue;
|
|
207
|
+
const entry = entries[i];
|
|
208
|
+
const isAnchor = i === anchor;
|
|
209
|
+
const raw = isAnchor ? markQuoteInText(entry.text, marker) : entry.text;
|
|
210
|
+
picked.push({
|
|
211
|
+
role: entry.role,
|
|
212
|
+
text: clampAroundQuote(raw, marker, maxCharsPerTurn),
|
|
213
|
+
marked: isAnchor,
|
|
214
|
+
});
|
|
215
|
+
}
|
|
216
|
+
// 总量上限:超了先丢最早的几组,再丢引用之后的几组(**引用所在那条永远保留**)
|
|
217
|
+
let used = picked.reduce((sum, entry) => sum + entry.text.length, 0);
|
|
218
|
+
let droppedBefore = 0;
|
|
219
|
+
let droppedAfter = 0;
|
|
220
|
+
while (picked.length > 1 && used > maxChars && picked[0] && !picked[0].marked) {
|
|
221
|
+
const first = picked.shift();
|
|
222
|
+
droppedBefore += 1;
|
|
223
|
+
used -= first ? first.text.length : 0;
|
|
224
|
+
}
|
|
225
|
+
while (picked.length > 1 && used > maxChars && picked[picked.length - 1] && !picked[picked.length - 1]?.marked) {
|
|
226
|
+
const last = picked.pop();
|
|
227
|
+
droppedAfter += 1;
|
|
228
|
+
used -= last ? last.text.length : 0;
|
|
229
|
+
}
|
|
230
|
+
if (droppedBefore > 0)
|
|
231
|
+
picked.unshift({ role: '提示', text: `(引用之前还有 ${droppedBefore} 条消息,未包含)`, marked: false });
|
|
232
|
+
if (droppedAfter > 0)
|
|
233
|
+
picked.push({ role: '提示', text: `(引用之后还有 ${droppedAfter} 条消息,未包含)`, marked: false });
|
|
234
|
+
const transcript = picked.map((entry) => `${entry.role}:${entry.text}`).join('\n');
|
|
235
|
+
return { transcript, matched: true, rounds: toRound - fromRound + 1 };
|
|
236
|
+
}
|
|
237
|
+
//# sourceMappingURL=context.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/host/context.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { fileURLToPath } from 'node:url';
|
|
2
|
+
import { stat, readFile } from 'node:fs/promises';
|
|
3
|
+
/**
|
|
4
|
+
* 「网页模式」的设计规范:从插件自带的 `skills/web-design/SKILL.md` 读(按 mtime 缓存)。
|
|
5
|
+
*
|
|
6
|
+
* 做成文件而不是写死在代码里:改规范不用重新构建,用户也能自己替换成喜欢的版本。
|
|
7
|
+
* 读不到就退回一段精简规则(宁可少讲,也不能让请求挂掉)。
|
|
8
|
+
*/
|
|
9
|
+
let designSkillCache = { at: 0, path: '', text: '' };
|
|
10
|
+
const DESIGN_SKILL_FALLBACK = [
|
|
11
|
+
'单列、宽度 100%、不要横向滚动;不引外部资源;一套主题(别深浅混用)。',
|
|
12
|
+
'主标题 20–22px、正文 14px、行高 1.6–1.75;一个主色 + 中性灰阶。',
|
|
13
|
+
'只在内容真是序列时才编号;避免"什么内容都套同一张圆角卡片"这类模板感。',
|
|
14
|
+
].join('\n');
|
|
15
|
+
/** 模块级读文件失败时的告警(host 侧 logger 在 apply 里拿不到,走 console)。 */
|
|
16
|
+
function ctxLoggerWarn(message) {
|
|
17
|
+
try {
|
|
18
|
+
console.warn(`[dsh-selection-explain] ${message}`);
|
|
19
|
+
}
|
|
20
|
+
catch {
|
|
21
|
+
/* noop */
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
export async function loadDesignSkill() {
|
|
25
|
+
const path = fileURLToPath(new URL('../../skills/web-design/SKILL.md', import.meta.url));
|
|
26
|
+
try {
|
|
27
|
+
const info = await stat(path);
|
|
28
|
+
if (designSkillCache.path === path && designSkillCache.at === info.mtimeMs && designSkillCache.text) {
|
|
29
|
+
return designSkillCache.text;
|
|
30
|
+
}
|
|
31
|
+
const raw = await readFile(path, 'utf8');
|
|
32
|
+
// 去掉 frontmatter,只把规则喂给模型
|
|
33
|
+
const body = raw.replace(/^---[\s\S]*?---\s*/, '').trim();
|
|
34
|
+
designSkillCache = { at: info.mtimeMs, path, text: body };
|
|
35
|
+
return body;
|
|
36
|
+
}
|
|
37
|
+
catch (error) {
|
|
38
|
+
ctxLoggerWarn(`读取设计规范失败(${path}):${String(error?.message ?? error)}`);
|
|
39
|
+
return DESIGN_SKILL_FALLBACK;
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
//# sourceMappingURL=design-skill.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"design-skill.js","sourceRoot":"","sources":["../../src/host/design-skill.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AACxC,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAEjD;;;;;GAKG;AACH,IAAI,gBAAgB,GAA+C,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CAAA;AAEhG,MAAM,qBAAqB,GAAG;IAC5B,uCAAuC;IACvC,8CAA8C;IAC9C,sCAAsC;CACvC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AAEZ,0DAA0D;AAC1D,SAAS,aAAa,CAAC,OAAe;IACpC,IAAI,CAAC;QACH,OAAO,CAAC,IAAI,CAAC,2BAA2B,OAAO,EAAE,CAAC,CAAA;IACpD,CAAC;IAAC,MAAM,CAAC;QACP,UAAU;IACZ,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,eAAe;IACnC,MAAM,IAAI,GAAG,aAAa,CAAC,IAAI,GAAG,CAAC,kCAAkC,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAA;IACxF,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,CAAA;QAC7B,IAAI,gBAAgB,CAAC,IAAI,KAAK,IAAI,IAAI,gBAAgB,CAAC,EAAE,KAAK,IAAI,CAAC,OAAO,IAAI,gBAAgB,CAAC,IAAI,EAAE,CAAC;YACpG,OAAO,gBAAgB,CAAC,IAAI,CAAA;QAC9B,CAAC;QACD,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;QACxC,0BAA0B;QAC1B,MAAM,IAAI,GAAG,GAAG,CAAC,OAAO,CAAC,oBAAoB,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAA;QACzD,gBAAgB,GAAG,EAAE,EAAE,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,CAAA;QACzD,OAAO,IAAI,CAAA;IACb,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,aAAa,CAAC,YAAY,IAAI,KAAK,MAAM,CAAE,KAAe,EAAE,OAAO,IAAI,KAAK,CAAC,EAAE,CAAC,CAAA;QAChF,OAAO,qBAAqB,CAAA;IAC9B,CAAC;AACH,CAAC"}
|