@lemoncat7/dsh-knowledge 1.0.11 → 1.0.13
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/lib/api.d.ts +1 -0
- package/lib/api.d.ts.map +1 -1
- package/lib/api.js +27 -3
- package/lib/api.js.map +1 -1
- package/lib/client.js +28 -5
- package/lib/client.js.map +2 -2
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +85 -18
- package/lib/index.js.map +1 -1
- package/lib/runtime.d.ts +15 -0
- package/lib/runtime.d.ts.map +1 -1
- package/lib/runtime.js.map +1 -1
- package/package.json +1 -1
- package/web/app.js +52 -16
package/lib/api.d.ts
CHANGED
|
@@ -13,6 +13,7 @@ export interface KnowledgeApiOptions {
|
|
|
13
13
|
publicApiPrefix: string;
|
|
14
14
|
}>;
|
|
15
15
|
};
|
|
16
|
+
validateModel?(provider: string, model: string): Promise<void>;
|
|
16
17
|
}
|
|
17
18
|
export declare function registerKnowledgeApi(ctx: RuntimeContextLike, provider: LocalKnowledgeProvider, prefix: string, options?: KnowledgeApiOptions): () => void;
|
|
18
19
|
//# sourceMappingURL=api.d.ts.map
|
package/lib/api.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAA;AAC5D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAA;AAGtD,eAAO,MAAM,2BAA2B,wBAAwB,CAAA;AAEhE,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,EAAE,QAAQ,GAAG,aAAa,CAAA;IACnC,OAAO,CAAC,EAAE;QACR,OAAO,IAAI;YAAE,gBAAgB,EAAE,OAAO,CAAC;YAAC,eAAe,EAAE,MAAM,CAAA;SAAE,CAAA;QACjE,MAAM,CAAC,gBAAgB,EAAE,OAAO,GAAG,OAAO,CAAC;YAAE,gBAAgB,EAAE,OAAO,CAAC;YAAC,eAAe,EAAE,MAAM,CAAA;SAAE,CAAC,CAAA;KACnG,CAAA;
|
|
1
|
+
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAA;AAC5D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAA;AAGtD,eAAO,MAAM,2BAA2B,wBAAwB,CAAA;AAEhE,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,EAAE,QAAQ,GAAG,aAAa,CAAA;IACnC,OAAO,CAAC,EAAE;QACR,OAAO,IAAI;YAAE,gBAAgB,EAAE,OAAO,CAAC;YAAC,eAAe,EAAE,MAAM,CAAA;SAAE,CAAA;QACjE,MAAM,CAAC,gBAAgB,EAAE,OAAO,GAAG,OAAO,CAAC;YAAE,gBAAgB,EAAE,OAAO,CAAC;YAAC,eAAe,EAAE,MAAM,CAAA;SAAE,CAAC,CAAA;KACnG,CAAA;IACD,aAAa,CAAC,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;CAC/D;AAED,wBAAgB,oBAAoB,CAClC,GAAG,EAAE,kBAAkB,EACvB,QAAQ,EAAE,sBAAsB,EAChC,MAAM,EAAE,MAAM,EACd,OAAO,GAAE,mBAAwB,GAChC,MAAM,IAAI,CAcZ"}
|
package/lib/api.js
CHANGED
|
@@ -45,6 +45,8 @@ async function dispatch(provider, prefix, options, req, res) {
|
|
|
45
45
|
throw httpError(400, 'writebackProvider must be a string or null');
|
|
46
46
|
if (writebackModel !== undefined && writebackModel !== null && typeof writebackModel !== 'string')
|
|
47
47
|
throw httpError(400, 'writebackModel must be a string or null');
|
|
48
|
+
if (typeof writebackProvider === 'string' && typeof writebackModel === 'string')
|
|
49
|
+
await validateModel(options, writebackProvider, writebackModel);
|
|
48
50
|
return sendJson(res, 200, await provider.updateSettings({
|
|
49
51
|
...writebackPolicy === undefined ? {} : { writebackPolicy },
|
|
50
52
|
...writebackProvider === undefined ? {} : { writebackProvider },
|
|
@@ -93,7 +95,9 @@ async function dispatch(provider, prefix, options, req, res) {
|
|
|
93
95
|
if (method === 'POST' && segments.length === 1) {
|
|
94
96
|
requirePermission(actor.permissions, 'write');
|
|
95
97
|
const body = await readObject(req);
|
|
96
|
-
|
|
98
|
+
const draft = parseKnowledgeBaseDraft(body.draft);
|
|
99
|
+
await validateDraftModel(options, draft);
|
|
100
|
+
return sendJson(res, 201, await provider.createKnowledgeBase(draft));
|
|
97
101
|
}
|
|
98
102
|
const id = segments[1];
|
|
99
103
|
if (id !== undefined && method === 'GET' && segments.length === 2) {
|
|
@@ -106,12 +110,17 @@ async function dispatch(provider, prefix, options, req, res) {
|
|
|
106
110
|
if (id !== undefined && method === 'PUT' && segments.length === 2) {
|
|
107
111
|
requirePermission(actor.permissions, 'write');
|
|
108
112
|
const body = await readObject(req);
|
|
109
|
-
|
|
113
|
+
const draft = parseKnowledgeBaseDraft(body.draft);
|
|
114
|
+
await validateDraftModel(options, draft);
|
|
115
|
+
return sendJson(res, 200, await provider.updateKnowledgeBase(id, draft));
|
|
110
116
|
}
|
|
111
117
|
if (id !== undefined && method === 'PATCH' && segments.length === 2) {
|
|
112
118
|
requirePermission(actor.permissions, 'write');
|
|
113
119
|
const body = await readObject(req);
|
|
114
|
-
|
|
120
|
+
const patch = parseKnowledgeBasePatch(body.patch);
|
|
121
|
+
if (typeof patch.writebackProvider === 'string' && typeof patch.writebackModel === 'string')
|
|
122
|
+
await validateModel(options, patch.writebackProvider, patch.writebackModel);
|
|
123
|
+
return sendJson(res, 200, await provider.patchKnowledgeBase(id, patch));
|
|
115
124
|
}
|
|
116
125
|
if (id !== undefined && method === 'POST' && segments[2] === 'archive' && segments.length === 3) {
|
|
117
126
|
requirePermission(actor.permissions, 'admin');
|
|
@@ -572,6 +581,21 @@ function sendJson(res, status, body) {
|
|
|
572
581
|
});
|
|
573
582
|
res.end(payload);
|
|
574
583
|
}
|
|
584
|
+
async function validateDraftModel(options, draft) {
|
|
585
|
+
if (draft.writebackProvider && draft.writebackModel)
|
|
586
|
+
await validateModel(options, draft.writebackProvider, draft.writebackModel);
|
|
587
|
+
}
|
|
588
|
+
async function validateModel(options, provider, model) {
|
|
589
|
+
if (options.validateModel === undefined)
|
|
590
|
+
return;
|
|
591
|
+
try {
|
|
592
|
+
await options.validateModel(provider, model);
|
|
593
|
+
}
|
|
594
|
+
catch (error) {
|
|
595
|
+
const reason = error instanceof Error ? error.message : String(error);
|
|
596
|
+
throw httpError(400, `当前 DSH 无法使用回写模型 ${provider} / ${model}:${reason}`);
|
|
597
|
+
}
|
|
598
|
+
}
|
|
575
599
|
function sendError(res, error) {
|
|
576
600
|
const status = statusOf(error);
|
|
577
601
|
const message = error instanceof Error ? error.message : 'internal knowledge API error';
|
package/lib/api.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.js","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"api.js","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"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"}
|
package/lib/client.js
CHANGED
|
@@ -50,7 +50,7 @@ function observePluginWorkspace(pluginId, close) {
|
|
|
50
50
|
var import_dsh_client_ui_primitives = require("@deepseek-ai/dsh-client-ui-primitives");
|
|
51
51
|
|
|
52
52
|
// src/client.css
|
|
53
|
-
var client_default = ".dsh-knowledge-trigger {\n flex: none;\n display: flex;\n align-items: center;\n gap: 8px;\n width: calc(100% + 8px);\n height: 34px;\n margin: 4px -4px;\n padding: 6px 2px 6px 10px;\n box-sizing: border-box;\n border: 0;\n border-radius: 12px;\n overflow: hidden;\n background: transparent;\n color: var(--dsw-alias-label-primary);\n cursor: pointer;\n font: inherit;\n font-size: 14px;\n line-height: 22px;\n white-space: nowrap;\n}\n\n.dsh-knowledge-trigger:hover {\n background: var(--dsw-alias-interactive-bg-hover);\n}\n\n.dsh-knowledge-trigger.is-active {\n background: var(--dsw-alias-interactive-bg-selected, var(--dsw-alias-interactive-bg-hover));\n color: var(--dsw-alias-interactive-primary, currentColor);\n}\n\n.dsh-knowledge-trigger--rail {\n width: 36px;\n height: 36px;\n margin: 8px 0 4px;\n padding: 0;\n justify-content: center;\n gap: 0;\n border-radius: 50%;\n}\n\n.dsh-knowledge-workspace {\n --knowledge-pane: var(--xiaohei-plugin-pane-fill, var(--dsw-alias-bg-base, #f7f8f7));\n --knowledge-raised: var(--xiaohei-plugin-raised-fill, var(--dsw-alias-bg-layer-2, #fff));\n --knowledge-control: var(--xiaohei-plugin-control-fill, var(--dsw-alias-bg-layer-1, #fff));\n width: 100%;\n height: 100%;\n min-width: 0;\n min-height: 0;\n display: flex;\n flex-direction: column;\n overflow: hidden;\n background: var(--knowledge-pane);\n}\n\n.dsh-knowledge-workspace-header {\n flex: none;\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 16px;\n min-height: 56px;\n padding: 8px 16px 8px 20px;\n box-sizing: border-box;\n border-bottom: 1px solid var(--dsw-alias-divider-primary, rgba(128, 128, 128, .18));\n background: var(--knowledge-pane);\n}\n\n.dsh-knowledge-workspace-header > div {\n display: flex;\n align-items: center;\n gap: 10px;\n min-width: 0;\n}\n\n.dsh-knowledge-workspace-header [data-xiaohei-workspace-close] {\n -webkit-appearance: none;\n appearance: none;\n display: grid;\n place-items: center;\n box-sizing: border-box;\n flex: none;\n width: 30px;\n height: 30px;\n margin: 0;\n padding: 0;\n border: 1px solid transparent;\n border-radius: 9px;\n color: var(--dsw-alias-label-secondary, #68686f);\n background: transparent;\n font: inherit;\n line-height: 1;\n -webkit-tap-highlight-color: transparent;\n cursor: pointer;\n transition: color 140ms ease, background 140ms ease, border-color 140ms ease, transform 140ms ease;\n}\n\n.dsh-knowledge-workspace-header [data-xiaohei-workspace-close]:hover {\n border-color: var(--dsw-alias-divider-primary, rgba(128, 128, 128, .18));\n color: var(--dsw-alias-label-primary, #171719);\n background: var(--dsw-alias-interactive-bg-hover, rgba(128, 128, 128, .08));\n}\n\n.dsh-knowledge-workspace-header [data-xiaohei-workspace-close]:active { transform: scale(.96); }\n.dsh-knowledge-workspace-header [data-xiaohei-workspace-close]:focus-visible {\n outline: 2px solid var(--dsw-alias-interactive-primary, #335cff);\n outline-offset: 2px;\n}\n.dsh-knowledge-workspace-header [data-xiaohei-workspace-close] > svg {\n display: block;\n pointer-events: none;\n}\n\n.dsh-knowledge-workspace-header > div > span {\n display: grid;\n min-width: 0;\n gap: 2px;\n}\n\n.dsh-knowledge-workspace-header h2,\n.dsh-knowledge-workspace-header p {\n margin: 0;\n}\n\n.dsh-knowledge-workspace-header h2 {\n color: var(--dsw-alias-label-primary);\n font-size: 15px;\n line-height: 22px;\n font-weight: 600;\n}\n\n.dsh-knowledge-workspace-header p {\n color: var(--dsw-alias-label-secondary);\n font-size: 11px;\n line-height: 16px;\n}\n\n.dsh-knowledge-frame {\n flex: 1;\n width: 100%;\n min-height: 0;\n border: 0;\n background: transparent;\n}\n\n.dsh-knowledge-panel-state {\n flex: 1;\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 16px;\n min-height: 0;\n padding: 32px;\n box-sizing: border-box;\n background: transparent;\n color: var(--dsw-alias-label-primary, #171719);\n}\n\n.dsh-knowledge-panel-state-icon {\n flex: none;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 40px;\n height: 40px;\n border-radius: 12px;\n background: var(--dsw-alias-interactive-bg-hover, rgba(128, 128, 128, .1));\n color: var(--dsw-alias-label-secondary, #68686f);\n font-size: 18px;\n font-weight: 600;\n}\n\n.dsh-knowledge-panel-state > div { max-width: 560px; }\n.dsh-knowledge-panel-state h3 { margin: 0 0 6px; font-size: 17px; line-height: 24px; font-weight: 600; }\n.dsh-knowledge-panel-state p { margin: 0; color: var(--dsw-alias-label-secondary, #68686f); font-size: 13px; line-height: 20px; }\n.dsh-knowledge-panel-state button {\n min-width: 72px;\n min-height: 32px;\n margin-top: 16px;\n padding: 6px 14px;\n border: 0;\n border-radius: 10px;\n background: var(--dsw-alias-interactive-primary, #335cff);\n color: #fff;\n cursor: pointer;\n font: inherit;\n}\n.dsh-knowledge-panel-state button:focus-visible {\n outline: 2px solid var(--dsw-alias-interactive-primary, #335cff);\n outline-offset: 2px;\n}\n\n.dsh-knowledge-settings-card {\n list-style: none;\n overflow: hidden;\n border: 1px solid var(--dsw-alias-divider-primary, rgba(128, 128, 128, .18));\n border-radius: 18px;\n background: var(--xiaohei-plugin-raised-fill, var(--dsw-alias-bg-layer-2, #fff));\n color: var(--dsw-alias-label-primary, #171719);\n}\n\n.dsh-knowledge-settings-card--open {\n box-shadow: 0 10px 32px rgba(0, 0, 0, .07);\n}\n\n.dsh-knowledge-settings-header {\n display: flex;\n width: 100%;\n align-items: center;\n justify-content: space-between;\n gap: 20px;\n padding: 18px 20px;\n border: 0;\n background: transparent;\n color: inherit;\n text-align: left;\n cursor: pointer;\n}\n\n.dsh-knowledge-settings-header:hover { background: var(--dsw-alias-interactive-bg-hover, rgba(128, 128, 128, .08)); }\n.dsh-knowledge-settings-header:focus-visible,\n.dsh-knowledge-settings-actions button:focus-visible,\n.dsh-knowledge-settings-load-error button:focus-visible {\n outline: 2px solid var(--dsw-alias-interactive-primary, #335cff);\n outline-offset: 2px;\n}\n.dsh-knowledge-settings-header > span:first-child { display: grid; gap: 3px; }\n.dsh-knowledge-settings-header strong { font-size: 15px; font-weight: 600; }\n.dsh-knowledge-settings-header small,\n.dsh-knowledge-source-picker small,\n.dsh-knowledge-remote-fields small { color: var(--dsw-alias-label-secondary, #68686f); font-size: 12px; }\n.dsh-knowledge-settings-summary { flex: none; color: var(--dsw-alias-label-secondary, #68686f); font-size: 12px; }\n\n.dsh-knowledge-settings-body {\n display: grid;\n gap: 18px;\n padding: 4px 20px 20px;\n border-top: 1px solid var(--dsw-alias-divider-primary, rgba(128, 128, 128, .14));\n}\n\n.dsh-knowledge-source-picker {\n display: grid;\n grid-template-columns: repeat(2, minmax(0, 1fr));\n gap: 10px;\n margin: 18px 0 0;\n padding: 0;\n border: 0;\n}\n\n.dsh-knowledge-source-picker legend { margin-bottom: 8px; font-size: 13px; font-weight: 600; }\n.dsh-knowledge-source-picker label {\n display: flex;\n gap: 10px;\n padding: 13px;\n border: 1px solid var(--dsw-alias-divider-primary, rgba(128, 128, 128, .2));\n border-radius: 14px;\n cursor: pointer;\n}\n.dsh-knowledge-source-picker label.is-selected {\n border-color: var(--dsw-alias-interactive-primary, #335cff);\n background: color-mix(in srgb, var(--dsw-alias-interactive-primary, #335cff) 7%, transparent);\n}\n.dsh-knowledge-source-picker label.is-disabled {\n cursor: default;\n opacity: .55;\n}\n.dsh-knowledge-source-picker label:focus-within {\n outline: 2px solid var(--dsw-alias-interactive-primary, #335cff);\n outline-offset: 2px;\n}\n.dsh-knowledge-source-picker input { margin-top: 2px; accent-color: var(--dsw-alias-interactive-primary, #335cff); }\n.dsh-knowledge-source-picker span { display: grid; gap: 3px; }\n\n.dsh-knowledge-remote-fields { display: grid; grid-template-columns: 1.25fr 1fr; gap: 12px; }\n.dsh-knowledge-remote-fields label,\n.dsh-knowledge-timeout-field { display: grid; gap: 6px; color: var(--dsw-alias-label-secondary, #68686f); font-size: 12px; }\n.dsh-knowledge-remote-fields input,\n.dsh-knowledge-timeout-field input {\n min-height: 38px;\n box-sizing: border-box;\n padding: 8px 11px;\n border: 1px solid var(--dsw-alias-divider-primary, rgba(128, 128, 128, .25));\n border-radius: 10px;\n outline: none;\n background: var(--xiaohei-plugin-control-fill, var(--dsw-alias-bg-layer-1, #fff));\n color: var(--dsw-alias-label-primary, #171719);\n font: inherit;\n}\n.dsh-knowledge-remote-fields input:focus,\n.dsh-knowledge-timeout-field input:focus { border-color: var(--dsw-alias-interactive-primary, #335cff); box-shadow: 0 0 0 3px rgba(51, 92, 255, .12); }\n.dsh-knowledge-timeout-field { max-width: 240px; }\n.dsh-knowledge-field-error { color: #c9362b !important; }\n\n.dsh-knowledge-settings-message,\n.dsh-knowledge-settings-note { margin: 0; color: var(--dsw-alias-label-secondary, #68686f); font-size: 12px; }\n.dsh-knowledge-settings-message.is-success { color: #15803d; }\n.dsh-knowledge-settings-message.is-error { color: #c9362b; }\n.dsh-knowledge-settings-load-error {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 12px;\n margin-top: 18px;\n padding: 12px 14px;\n border-radius: 12px;\n background: color-mix(in srgb, #c9362b 8%, transparent);\n color: #c9362b;\n font-size: 13px;\n}\n.dsh-knowledge-settings-load-error p { margin: 0; }\n.dsh-knowledge-settings-load-error button {\n flex: none;\n min-height: 30px;\n padding: 5px 10px;\n border: 0;\n border-radius: 9px;\n background: var(--xiaohei-plugin-control-fill, var(--dsw-alias-bg-layer-2, #fff));\n color: var(--dsw-alias-label-primary, #171719);\n cursor: pointer;\n font: inherit;\n}\n.dsh-knowledge-settings-actions { display: flex; justify-content: flex-end; gap: 8px; }\n.dsh-knowledge-settings-actions button {\n min-height: 34px;\n padding: 7px 13px;\n border: 0;\n border-radius: 10px;\n background: var(--dsw-alias-interactive-bg-hover, rgba(128, 128, 128, .1));\n color: var(--dsw-alias-label-primary, #171719);\n cursor: pointer;\n font: inherit;\n font-size: 13px;\n}\n.dsh-knowledge-settings-actions button.is-primary { background: var(--dsw-alias-interactive-primary, #335cff); color: #fff; }\n.dsh-knowledge-settings-actions button:disabled { cursor: default; opacity: .45; }\n\n@media (max-width: 720px) {\n .dsh-knowledge-source-picker,\n .dsh-knowledge-remote-fields { grid-template-columns: 1fr; }\n}\n\n.dsh-knowledge-writeback-status {\n display: flex;\n align-items: center;\n gap: 8px;\n min-width: 0;\n color: var(--dsw-alias-label-tertiary, #6b7280);\n font-size: 12px;\n line-height: 1.5;\n}\n.dsh-knowledge-writeback-status strong {\n color: var(--dsw-alias-label-secondary, #374151);\n font-weight: 600;\n}\n";
|
|
53
|
+
var client_default = ".dsh-knowledge-trigger {\n flex: none;\n display: flex;\n align-items: center;\n gap: 8px;\n width: calc(100% + 8px);\n height: 34px;\n margin: 4px -4px;\n padding: 6px 2px 6px 10px;\n box-sizing: border-box;\n border: 0;\n border-radius: 12px;\n overflow: hidden;\n background: transparent;\n color: var(--dsw-alias-label-primary);\n cursor: pointer;\n font: inherit;\n font-size: 14px;\n line-height: 22px;\n white-space: nowrap;\n}\n\n.dsh-knowledge-trigger:hover {\n background: var(--dsw-alias-interactive-bg-hover);\n}\n\n.dsh-knowledge-trigger.is-active {\n background: var(--dsw-alias-interactive-bg-selected, var(--dsw-alias-interactive-bg-hover));\n color: var(--dsw-alias-interactive-primary, currentColor);\n}\n\n.dsh-knowledge-trigger--rail {\n width: 36px;\n height: 36px;\n margin: 8px 0 4px;\n padding: 0;\n justify-content: center;\n gap: 0;\n border-radius: 50%;\n}\n\n.dsh-knowledge-workspace {\n --knowledge-pane: var(--xiaohei-plugin-pane-fill, var(--dsw-alias-bg-base, #f7f8f7));\n --knowledge-raised: var(--xiaohei-plugin-raised-fill, var(--dsw-alias-bg-layer-2, #fff));\n --knowledge-control: var(--xiaohei-plugin-control-fill, var(--dsw-alias-bg-layer-1, #fff));\n width: 100%;\n height: 100%;\n min-width: 0;\n min-height: 0;\n display: flex;\n flex-direction: column;\n overflow: hidden;\n background: var(--knowledge-pane);\n}\n\n.dsh-knowledge-workspace-header {\n flex: none;\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 16px;\n min-height: 56px;\n padding: 8px 16px 8px 20px;\n box-sizing: border-box;\n border-bottom: 1px solid var(--dsw-alias-divider-primary, rgba(128, 128, 128, .18));\n background: var(--knowledge-pane);\n}\n\n.dsh-knowledge-workspace-header > div {\n display: flex;\n align-items: center;\n gap: 10px;\n min-width: 0;\n}\n\n.dsh-knowledge-workspace-header [data-xiaohei-workspace-close] {\n -webkit-appearance: none;\n appearance: none;\n display: grid;\n place-items: center;\n box-sizing: border-box;\n flex: none;\n width: 30px;\n height: 30px;\n margin: 0;\n padding: 0;\n border: 1px solid transparent;\n border-radius: 9px;\n color: var(--dsw-alias-label-secondary, #68686f);\n background: transparent;\n font: inherit;\n line-height: 1;\n -webkit-tap-highlight-color: transparent;\n cursor: pointer;\n transition: color 140ms ease, background 140ms ease, border-color 140ms ease, transform 140ms ease;\n}\n\n.dsh-knowledge-workspace-header [data-xiaohei-workspace-close]:hover {\n border-color: var(--dsw-alias-divider-primary, rgba(128, 128, 128, .18));\n color: var(--dsw-alias-label-primary, #171719);\n background: var(--dsw-alias-interactive-bg-hover, rgba(128, 128, 128, .08));\n}\n\n.dsh-knowledge-workspace-header [data-xiaohei-workspace-close]:active { transform: scale(.96); }\n.dsh-knowledge-workspace-header [data-xiaohei-workspace-close]:focus-visible {\n outline: 2px solid var(--dsw-alias-interactive-primary, #335cff);\n outline-offset: 2px;\n}\n.dsh-knowledge-workspace-header [data-xiaohei-workspace-close] > svg {\n display: block;\n pointer-events: none;\n}\n\n.dsh-knowledge-workspace-header > div > span {\n display: grid;\n min-width: 0;\n gap: 2px;\n}\n\n.dsh-knowledge-workspace-header h2,\n.dsh-knowledge-workspace-header p {\n margin: 0;\n}\n\n.dsh-knowledge-workspace-header h2 {\n color: var(--dsw-alias-label-primary);\n font-size: 15px;\n line-height: 22px;\n font-weight: 600;\n}\n\n.dsh-knowledge-workspace-header p {\n color: var(--dsw-alias-label-secondary);\n font-size: 11px;\n line-height: 16px;\n}\n\n.dsh-knowledge-frame {\n flex: 1;\n width: 100%;\n min-height: 0;\n border: 0;\n background: transparent;\n}\n\n.dsh-knowledge-panel-state {\n flex: 1;\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 16px;\n min-height: 0;\n padding: 32px;\n box-sizing: border-box;\n background: transparent;\n color: var(--dsw-alias-label-primary, #171719);\n}\n\n.dsh-knowledge-panel-state-icon {\n flex: none;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 40px;\n height: 40px;\n border-radius: 12px;\n background: var(--dsw-alias-interactive-bg-hover, rgba(128, 128, 128, .1));\n color: var(--dsw-alias-label-secondary, #68686f);\n font-size: 18px;\n font-weight: 600;\n}\n\n.dsh-knowledge-panel-state > div { max-width: 560px; }\n.dsh-knowledge-panel-state h3 { margin: 0 0 6px; font-size: 17px; line-height: 24px; font-weight: 600; }\n.dsh-knowledge-panel-state p { margin: 0; color: var(--dsw-alias-label-secondary, #68686f); font-size: 13px; line-height: 20px; }\n.dsh-knowledge-panel-state button {\n min-width: 72px;\n min-height: 32px;\n margin-top: 16px;\n padding: 6px 14px;\n border: 0;\n border-radius: 10px;\n background: var(--dsw-alias-interactive-primary, #335cff);\n color: #fff;\n cursor: pointer;\n font: inherit;\n}\n.dsh-knowledge-panel-state button:focus-visible {\n outline: 2px solid var(--dsw-alias-interactive-primary, #335cff);\n outline-offset: 2px;\n}\n\n.dsh-knowledge-settings-card {\n list-style: none;\n overflow: hidden;\n border: 1px solid var(--dsw-alias-divider-primary, rgba(128, 128, 128, .18));\n border-radius: 18px;\n background: var(--xiaohei-plugin-raised-fill, var(--dsw-alias-bg-layer-2, #fff));\n color: var(--dsw-alias-label-primary, #171719);\n}\n\n.dsh-knowledge-settings-card--open {\n box-shadow: 0 10px 32px rgba(0, 0, 0, .07);\n}\n\n.dsh-knowledge-settings-header {\n display: flex;\n width: 100%;\n align-items: center;\n justify-content: space-between;\n gap: 20px;\n padding: 18px 20px;\n border: 0;\n background: transparent;\n color: inherit;\n text-align: left;\n cursor: pointer;\n}\n\n.dsh-knowledge-settings-header:hover { background: var(--dsw-alias-interactive-bg-hover, rgba(128, 128, 128, .08)); }\n.dsh-knowledge-settings-header:focus-visible,\n.dsh-knowledge-settings-actions button:focus-visible,\n.dsh-knowledge-settings-load-error button:focus-visible {\n outline: 2px solid var(--dsw-alias-interactive-primary, #335cff);\n outline-offset: 2px;\n}\n.dsh-knowledge-settings-header > span:first-child { display: grid; gap: 3px; }\n.dsh-knowledge-settings-header strong { font-size: 15px; font-weight: 600; }\n.dsh-knowledge-settings-header small,\n.dsh-knowledge-source-picker small,\n.dsh-knowledge-remote-fields small { color: var(--dsw-alias-label-secondary, #68686f); font-size: 12px; }\n.dsh-knowledge-settings-summary { flex: none; color: var(--dsw-alias-label-secondary, #68686f); font-size: 12px; }\n\n.dsh-knowledge-settings-body {\n display: grid;\n gap: 18px;\n padding: 4px 20px 20px;\n border-top: 1px solid var(--dsw-alias-divider-primary, rgba(128, 128, 128, .14));\n}\n\n.dsh-knowledge-source-picker {\n display: grid;\n grid-template-columns: repeat(2, minmax(0, 1fr));\n gap: 10px;\n margin: 18px 0 0;\n padding: 0;\n border: 0;\n}\n\n.dsh-knowledge-source-picker legend { margin-bottom: 8px; font-size: 13px; font-weight: 600; }\n.dsh-knowledge-source-picker label {\n display: flex;\n gap: 10px;\n padding: 13px;\n border: 1px solid var(--dsw-alias-divider-primary, rgba(128, 128, 128, .2));\n border-radius: 14px;\n cursor: pointer;\n}\n.dsh-knowledge-source-picker label.is-selected {\n border-color: var(--dsw-alias-interactive-primary, #335cff);\n background: color-mix(in srgb, var(--dsw-alias-interactive-primary, #335cff) 7%, transparent);\n}\n.dsh-knowledge-source-picker label.is-disabled {\n cursor: default;\n opacity: .55;\n}\n.dsh-knowledge-source-picker label:focus-within {\n outline: 2px solid var(--dsw-alias-interactive-primary, #335cff);\n outline-offset: 2px;\n}\n.dsh-knowledge-source-picker input { margin-top: 2px; accent-color: var(--dsw-alias-interactive-primary, #335cff); }\n.dsh-knowledge-source-picker span { display: grid; gap: 3px; }\n\n.dsh-knowledge-remote-fields { display: grid; grid-template-columns: 1.25fr 1fr; gap: 12px; }\n.dsh-knowledge-remote-fields label,\n.dsh-knowledge-timeout-field { display: grid; gap: 6px; color: var(--dsw-alias-label-secondary, #68686f); font-size: 12px; }\n.dsh-knowledge-remote-fields input,\n.dsh-knowledge-timeout-field input {\n min-height: 38px;\n box-sizing: border-box;\n padding: 8px 11px;\n border: 1px solid var(--dsw-alias-divider-primary, rgba(128, 128, 128, .25));\n border-radius: 10px;\n outline: none;\n background: var(--xiaohei-plugin-control-fill, var(--dsw-alias-bg-layer-1, #fff));\n color: var(--dsw-alias-label-primary, #171719);\n font: inherit;\n}\n.dsh-knowledge-remote-fields input:focus,\n.dsh-knowledge-timeout-field input:focus { border-color: var(--dsw-alias-interactive-primary, #335cff); box-shadow: 0 0 0 3px rgba(51, 92, 255, .12); }\n.dsh-knowledge-timeout-field { max-width: 240px; }\n.dsh-knowledge-field-error { color: #c9362b !important; }\n\n.dsh-knowledge-settings-message,\n.dsh-knowledge-settings-note { margin: 0; color: var(--dsw-alias-label-secondary, #68686f); font-size: 12px; }\n.dsh-knowledge-settings-message.is-success { color: #15803d; }\n.dsh-knowledge-settings-message.is-error { color: #c9362b; }\n.dsh-knowledge-settings-load-error {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 12px;\n margin-top: 18px;\n padding: 12px 14px;\n border-radius: 12px;\n background: color-mix(in srgb, #c9362b 8%, transparent);\n color: #c9362b;\n font-size: 13px;\n}\n.dsh-knowledge-settings-load-error p { margin: 0; }\n.dsh-knowledge-settings-load-error button {\n flex: none;\n min-height: 30px;\n padding: 5px 10px;\n border: 0;\n border-radius: 9px;\n background: var(--xiaohei-plugin-control-fill, var(--dsw-alias-bg-layer-2, #fff));\n color: var(--dsw-alias-label-primary, #171719);\n cursor: pointer;\n font: inherit;\n}\n.dsh-knowledge-settings-actions { display: flex; justify-content: flex-end; gap: 8px; }\n.dsh-knowledge-settings-actions button {\n min-height: 34px;\n padding: 7px 13px;\n border: 0;\n border-radius: 10px;\n background: var(--dsw-alias-interactive-bg-hover, rgba(128, 128, 128, .1));\n color: var(--dsw-alias-label-primary, #171719);\n cursor: pointer;\n font: inherit;\n font-size: 13px;\n}\n.dsh-knowledge-settings-actions button.is-primary { background: var(--dsw-alias-interactive-primary, #335cff); color: #fff; }\n.dsh-knowledge-settings-actions button:disabled { cursor: default; opacity: .45; }\n\n@media (max-width: 720px) {\n .dsh-knowledge-source-picker,\n .dsh-knowledge-remote-fields { grid-template-columns: 1fr; }\n}\n\n.dsh-knowledge-writeback-status {\n display: flex;\n align-items: center;\n gap: 8px;\n min-width: 0;\n color: var(--dsw-alias-label-tertiary, #6b7280);\n font-size: 12px;\n line-height: 1.5;\n}\n.dsh-knowledge-writeback-status strong {\n color: var(--dsw-alias-label-secondary, #374151);\n font-weight: 600;\n}\n.dsh-knowledge-writeback-status button {\n min-height: 24px;\n padding: 0 9px;\n border: 1px solid var(--dsw-alias-separator, #d1d5db);\n border-radius: 7px;\n color: var(--dsw-alias-label-secondary, #374151);\n background: var(--dsw-alias-button-elevated-fill, #fff);\n cursor: pointer;\n font: inherit;\n}\n.dsh-knowledge-writeback-status button:disabled { cursor: default; opacity: .5; }\n";
|
|
54
54
|
|
|
55
55
|
// src/constants.ts
|
|
56
56
|
var KNOWLEDGE_SETTINGS_NAMESPACE = "dsh-knowledge-connection";
|
|
@@ -181,25 +181,48 @@ function apply(ctx) {
|
|
|
181
181
|
}, (props) => /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(KnowledgeWritebackStatus, { sessionId: String(props.sessionId), turn: props.matched.turn })));
|
|
182
182
|
}
|
|
183
183
|
function KnowledgeWritebackStatus({ sessionId, turn }) {
|
|
184
|
-
const [
|
|
184
|
+
const [state, setState] = (0, import_react2.useState)();
|
|
185
|
+
const [retrying, setRetrying] = (0, import_react2.useState)(false);
|
|
185
186
|
(0, import_react2.useEffect)(() => {
|
|
186
187
|
const controller = new AbortController();
|
|
187
188
|
void fetch(`/knowledge-control/v1/writeback-status?sessionId=${encodeURIComponent(sessionId)}&turn=${turn}`, {
|
|
188
189
|
headers: { accept: "application/json" },
|
|
189
190
|
signal: controller.signal
|
|
190
191
|
}).then(async (response) => response.ok ? response.json() : void 0).then((value) => {
|
|
191
|
-
if (value?.summary)
|
|
192
|
+
if (value?.summary) setState(value);
|
|
192
193
|
}).catch(() => {
|
|
193
194
|
});
|
|
194
195
|
return () => {
|
|
195
196
|
controller.abort();
|
|
196
197
|
};
|
|
197
198
|
}, [sessionId, turn]);
|
|
198
|
-
if (
|
|
199
|
+
if (state === void 0) return null;
|
|
200
|
+
const retry = async () => {
|
|
201
|
+
setRetrying(true);
|
|
202
|
+
try {
|
|
203
|
+
const response = await fetch(`/knowledge-control/v1/writeback-status?sessionId=${encodeURIComponent(sessionId)}&turn=${turn}`, {
|
|
204
|
+
method: "POST",
|
|
205
|
+
headers: { accept: "application/json", "x-dsh-knowledge-client": "conversation-web" }
|
|
206
|
+
});
|
|
207
|
+
if (!response.ok) throw new Error(`retry failed with HTTP ${response.status}`);
|
|
208
|
+
setState(await response.json());
|
|
209
|
+
} catch (error) {
|
|
210
|
+
setState((previous) => previous === void 0 ? previous : {
|
|
211
|
+
...previous,
|
|
212
|
+
error: error instanceof Error ? error.message : String(error),
|
|
213
|
+
retryable: true
|
|
214
|
+
});
|
|
215
|
+
} finally {
|
|
216
|
+
setRetrying(false);
|
|
217
|
+
}
|
|
218
|
+
};
|
|
199
219
|
return /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)("div", { className: "dsh-knowledge-writeback-status", children: [
|
|
200
220
|
/* @__PURE__ */ (0, import_jsx_runtime2.jsx)("span", { children: "\u4E0A\u4E0B\u6587\u6CE8\u5165" }),
|
|
201
221
|
/* @__PURE__ */ (0, import_jsx_runtime2.jsx)("strong", { children: "dsh-knowledge" }),
|
|
202
|
-
/* @__PURE__ */ (0, import_jsx_runtime2.jsx)("span", { children: summary })
|
|
222
|
+
/* @__PURE__ */ (0, import_jsx_runtime2.jsx)("span", { title: state.error, children: state.summary }),
|
|
223
|
+
state.status === "failed" && state.retryable && /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("button", { type: "button", disabled: retrying, onClick: () => {
|
|
224
|
+
void retry();
|
|
225
|
+
}, children: retrying ? "\u91CD\u8BD5\u4E2D\u2026" : "\u91CD\u8BD5" })
|
|
203
226
|
] });
|
|
204
227
|
}
|
|
205
228
|
function createKnowledgeWorkspaceController(client) {
|
package/lib/client.js.map
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../src/client.tsx", "../node_modules/@lemoncat7/dsh-plugin-ui/src/index.tsx", "../src/client.css", "../src/constants.ts", "../src/theme-bridge.ts"],
|
|
4
|
-
"sourcesContent": ["import { useCallback, useEffect, useRef, useState } from 'react'\nimport type { ClientContext } from '@deepseek-ai/dsh-client-runtime/client'\nimport type { PropsRuntime } from '@deepseek-ai/dsh-client-ui-slots'\nimport type {} from '@deepseek-ai/dsh-client-ui-layout/client'\nimport type {} from '@deepseek-ai/dsh-client-ui-sidebar/client'\nimport type {} from '@deepseek-ai/dsh-client-ui-settings-plugins/client'\nimport type {} from '@deepseek-ai/dsh-client-ui-theme/client'\nimport type {} from '@deepseek-ai/dsh-client-ui-conversation/client'\nimport { activatePluginWorkspace, observePluginWorkspace } from '@lemoncat7/dsh-plugin-ui'\nimport {\n IconChevronLeftOutline14, IconDataOutline16,\n} from '@deepseek-ai/dsh-client-ui-primitives'\nimport cssText from './client.css'\nimport { KNOWLEDGE_SETTINGS_NAMESPACE } from './constants.js'\nimport {\n createKnowledgeHostTheme,\n KNOWLEDGE_THEME_PROTOCOL_VERSION,\n KNOWLEDGE_THEME_READY_MESSAGE,\n type ThemeSnapshotLike,\n} from './theme-bridge.js'\n\nconst PLUGIN_ID = '@lemoncat7/dsh-knowledge'\nconst STYLE_ID = `${PLUGIN_ID}/client`\n\ntype SidebarActionProps = PropsRuntime<'sidebar.footer.action'>\ntype ConversationSlotProps = PropsRuntime<'conversation'>\n\ninterface KnowledgeConnectionView {\n backend: 'local' | 'remote'\n remoteUrl?: string\n remoteTimeoutMs: number\n tokenConfigured: boolean\n canSwitchRemote: boolean\n writable: boolean\n managementAvailable: boolean\n managementPath?: string\n}\n\ninterface KnowledgeWorkspaceController {\n isOpen(): boolean\n toggle(): void\n close(): void\n subscribe(listener: () => void): () => void\n}\n\nconst CONNECTION_CONTROL_PATH = '/knowledge-control/v1/connection'\n\n/** Cordis services needed by the browser half. */\nexport const inject = ['slots', 'theme']\n\n/** Register the knowledge launcher in the sidebar's official extension slot. */\nexport function apply(ctx: ClientContext): void {\n ctx.effect(installStyles, 'dsh-knowledge: client styles')\n const workspace = createKnowledgeWorkspaceController(ctx)\n ctx.effect(() => observePluginWorkspace(PLUGIN_ID, workspace.close), 'dsh-knowledge: exclusive workspace')\n ctx.effect(() => () => { workspace.close() }, 'dsh-knowledge: workspace lifecycle')\n ctx.slots.inject('sidebar.footer.action', () => ctx.slots.register({\n name: 'sidebar.footer.action',\n id: 'knowledge',\n order: -10,\n }, props => <KnowledgeLauncher {...props} workspace={workspace} />))\n\n ctx.slots.inject('settings.plugin.item', () => ctx.slots.register({\n name: 'settings.plugin.item',\n key: KNOWLEDGE_SETTINGS_NAMESPACE,\n }, KnowledgeConnectionCard))\n\n ctx.slots.inject('conversation.chat.turnTail', () => ctx.slots.register({\n name: 'conversation.chat.turnTail',\n select: owner => ({ turn: owner.turn.turn }),\n }, props => <KnowledgeWritebackStatus sessionId={String(props.sessionId)} turn={props.matched.turn} />))\n}\n\nfunction KnowledgeWritebackStatus({ sessionId, turn }: { sessionId: string; turn: number }) {\n const [summary, setSummary] = useState<string>()\n useEffect(() => {\n const controller = new AbortController()\n void fetch(`/knowledge-control/v1/writeback-status?sessionId=${encodeURIComponent(sessionId)}&turn=${turn}`, {\n headers: { accept: 'application/json' }, signal: controller.signal,\n }).then(async response => response.ok ? response.json() as Promise<{ summary?: string }> : undefined)\n .then(value => { if (value?.summary) setSummary(value.summary) })\n .catch(() => {})\n return () => { controller.abort() }\n }, [sessionId, turn])\n if (summary === undefined) return null\n return <div className=\"dsh-knowledge-writeback-status\">\n <span>\u4E0A\u4E0B\u6587\u6CE8\u5165</span><strong>dsh-knowledge</strong><span>{summary}</span>\n </div>\n}\n\nfunction createKnowledgeWorkspaceController(client: ClientContext): KnowledgeWorkspaceController {\n const listeners = new Set<() => void>()\n let disposeWorkspace: (() => void) | undefined\n const notify = (): void => { for (const listener of listeners) listener() }\n const close = (): void => {\n if (disposeWorkspace === undefined) return\n const dispose = disposeWorkspace\n disposeWorkspace = undefined\n dispose()\n notify()\n }\n const controller: KnowledgeWorkspaceController = {\n isOpen: () => disposeWorkspace !== undefined,\n toggle: () => {\n if (disposeWorkspace !== undefined) return close()\n activatePluginWorkspace(PLUGIN_ID)\n const dispose = client.slots.register({ name: 'conversation', priority: -1 }, props => (\n <KnowledgeWorkspace {...props} client={client} workspace={controller} />\n ))\n disposeWorkspace = dispose\n notify()\n },\n close,\n subscribe: listener => {\n listeners.add(listener)\n return () => { listeners.delete(listener) }\n },\n }\n return controller\n}\n\nfunction KnowledgeConnectionCard() {\n const [current, setCurrent] = useState<KnowledgeConnectionView>()\n const [loadState, setLoadState] = useState<'loading' | 'ready' | 'error'>('loading')\n const [loadError, setLoadError] = useState('')\n const [open, setOpen] = useState(false)\n const [backend, setBackend] = useState<'local' | 'remote'>('local')\n const [remoteUrl, setRemoteUrl] = useState('')\n const [remoteToken, setRemoteToken] = useState('')\n const [timeout, setTimeoutValue] = useState('10000')\n const [dirty, setDirty] = useState(false)\n const [saving, setSaving] = useState(false)\n const [message, setMessage] = useState<{ kind: 'success' | 'error'; text: string }>()\n\n const load = useCallback(async (signal?: AbortSignal): Promise<void> => {\n setLoadState('loading')\n setLoadError('')\n try {\n const value = await requestConnection('GET', undefined, signal)\n setCurrent(value)\n setLoadState('ready')\n } catch (error) {\n if (signal?.aborted) return\n setLoadError(connectionErrorMessage(error))\n setLoadState('error')\n }\n }, [])\n\n useEffect(() => {\n const controller = new AbortController()\n void load(controller.signal)\n return () => { controller.abort() }\n }, [load])\n\n useEffect(() => {\n if (dirty || current === undefined) return\n setBackend(current.backend)\n setRemoteUrl(current.remoteUrl ?? '')\n setTimeoutValue(String(current.remoteTimeoutMs ?? 10000))\n }, [current, dirty])\n\n const timeoutNumber = Number(timeout)\n const urlError = backend === 'remote' ? validateRemoteUrl(remoteUrl) : undefined\n const tokenError = backend === 'remote' && !current?.tokenConfigured && remoteToken.trim().length === 0\n ? '\u9996\u6B21\u8FDE\u63A5\u5FC5\u987B\u586B\u5199\u5BA2\u6237\u7AEF\u4EE4\u724C\u3002'\n : remoteToken.length > 0 && remoteToken.trim().length < 24 ? '\u4EE4\u724C\u81F3\u5C11\u9700\u8981 24 \u4E2A\u5B57\u7B26\u3002' : undefined\n const timeoutError = !Number.isInteger(timeoutNumber) || timeoutNumber < 100 || timeoutNumber > 120000\n ? '\u8D85\u65F6\u5FC5\u987B\u662F 100 \u5230 120000 \u6BEB\u79D2\u4E4B\u95F4\u7684\u6574\u6570\u3002'\n : undefined\n const invalid = urlError !== undefined || tokenError !== undefined || timeoutError !== undefined\n\n const edit = (action: () => void): void => {\n action()\n setDirty(true)\n setMessage(undefined)\n }\n const reset = (): void => {\n setBackend(current?.backend ?? 'local')\n setRemoteUrl(current?.remoteUrl ?? '')\n setRemoteToken('')\n setTimeoutValue(String(current?.remoteTimeoutMs ?? 10000))\n setDirty(false)\n setMessage(undefined)\n }\n const save = async (): Promise<void> => {\n if (!dirty || invalid || !current?.writable || saving) return\n setSaving(true)\n setMessage(undefined)\n try {\n const next = await requestConnection('PUT', {\n backend,\n remoteTimeoutMs: timeoutNumber,\n ...backend === 'remote' ? { remoteUrl: remoteUrl.trim() } : {},\n ...backend === 'remote' && remoteToken.trim().length > 0 ? { remoteToken: remoteToken.trim() } : {},\n })\n setCurrent(next)\n setRemoteToken('')\n setDirty(false)\n setMessage({\n kind: 'success',\n text: backend === 'remote' ? '\u5DF2\u9A8C\u8BC1\u5E76\u5207\u6362\u81F3\u8FDC\u7A0B\u77E5\u8BC6\u5E93\u3002' : '\u5DF2\u5207\u6362\u81F3\u672C\u5730\u77E5\u8BC6\u5E93\u3002',\n })\n } catch (error) {\n setMessage({ kind: 'error', text: connectionErrorMessage(error) })\n } finally {\n setSaving(false)\n }\n }\n\n return (\n <li className={`dsh-knowledge-settings-card${open ? ' dsh-knowledge-settings-card--open' : ''}`}>\n <button type=\"button\" className=\"dsh-knowledge-settings-header\" aria-expanded={open} onClick={() => { setOpen(value => !value) }}>\n <span>\n <strong>\u77E5\u8BC6\u5E93\u8FDE\u63A5</strong>\n <small>\u9009\u62E9\u672C\u673A\u77E5\u8BC6\u5E93\uFF0C\u6216\u8FDE\u63A5\u4E00\u53F0\u4E2D\u592E DSH \u77E5\u8BC6\u5E93</small>\n </span>\n <span className=\"dsh-knowledge-settings-summary\">{loadState === 'loading' ? '\u8BFB\u53D6\u4E2D' : loadState === 'error' ? '\u8FDE\u63A5\u5165\u53E3' : current?.backend === 'remote' ? '\u8FDC\u7A0B' : '\u672C\u5730'} \u00B7 {open ? '\u6536\u8D77' : '\u8BBE\u7F6E'}</span>\n </button>\n {open && <div className=\"dsh-knowledge-settings-body\">\n {loadState === 'loading' ? <p className=\"dsh-knowledge-settings-note\" role=\"status\">\u6B63\u5728\u8BFB\u53D6\u8FDE\u63A5\u914D\u7F6E\u2026</p>\n : loadState === 'error' ? <div className=\"dsh-knowledge-settings-load-error\" role=\"alert\">\n <p>{loadError}</p>\n <button type=\"button\" onClick={() => { void load() }}>\u91CD\u65B0\u8BFB\u53D6</button>\n </div> : <>\n <fieldset className=\"dsh-knowledge-source-picker\">\n <legend>\u77E5\u8BC6\u5E93\u6765\u6E90</legend>\n <label className={backend === 'local' ? 'is-selected' : ''}>\n <input type=\"radio\" name=\"dsh-knowledge-backend\" checked={backend === 'local'} onChange={() => edit(() => { setBackend('local') })} />\n <span><strong>\u672C\u5730</strong><small>\u6570\u636E\u4FDD\u5B58\u5728\u5F53\u524D DSH \u7684 SQLite \u4E2D</small></span>\n </label>\n <label className={`${backend === 'remote' ? 'is-selected' : ''}${!current?.canSwitchRemote ? ' is-disabled' : ''}`}>\n <input type=\"radio\" name=\"dsh-knowledge-backend\" checked={backend === 'remote'} disabled={!current?.canSwitchRemote} onChange={() => edit(() => { setBackend('remote') })} />\n <span><strong>\u8FDC\u7A0B</strong><small>\u53EC\u56DE\u548C\u56DE\u5199\u7EDF\u4E00\u4F7F\u7528\u4E2D\u592E\u77E5\u8BC6\u5E93</small></span>\n </label>\n </fieldset>\n {!current?.canSwitchRemote && <p className=\"dsh-knowledge-settings-note\">\u5F53\u524D\u5B9E\u4F8B\u662F\u4E2D\u592E\u77E5\u8BC6\u5E93\u670D\u52A1\uFF0C\u4E0D\u80FD\u518D\u5207\u6362\u5230\u53E6\u4E00\u53F0\u8FDC\u7A0B\u670D\u52A1\u3002</p>}\n {backend === 'remote' && <div className=\"dsh-knowledge-remote-fields\">\n <label htmlFor=\"dsh-knowledge-remote-url\">\u670D\u52A1\u5668\u5730\u5740\n <input id=\"dsh-knowledge-remote-url\" type=\"url\" value={remoteUrl} placeholder=\"https://example.com/knowledge-api/v1\" autoComplete=\"url\" onChange={event => edit(() => { setRemoteUrl(event.target.value) })} aria-invalid={urlError !== undefined} aria-describedby={urlError ? 'dsh-knowledge-url-error' : undefined} />\n {urlError && <small id=\"dsh-knowledge-url-error\" className=\"dsh-knowledge-field-error\">{urlError}</small>}\n </label>\n <label htmlFor=\"dsh-knowledge-remote-token\">\u5BA2\u6237\u7AEF\u4EE4\u724C\n <input id=\"dsh-knowledge-remote-token\" type=\"password\" value={remoteToken} placeholder={current?.tokenConfigured ? '\u5DF2\u4FDD\u5B58\uFF1B\u7559\u7A7A\u5219\u4FDD\u6301\u4E0D\u53D8' : '\u7C98\u8D34\u5BA2\u6237\u7AEF\u4EE4\u724C'} autoComplete=\"new-password\" onChange={event => edit(() => { setRemoteToken(event.target.value) })} aria-invalid={tokenError !== undefined} aria-describedby=\"dsh-knowledge-token-help\" />\n <small id=\"dsh-knowledge-token-help\" className={tokenError ? 'dsh-knowledge-field-error' : undefined}>{tokenError ?? (current?.tokenConfigured ? '\u4EE4\u724C\u5DF2\u5B89\u5168\u4FDD\u5B58\uFF0C\u9875\u9762\u65E0\u6CD5\u8BFB\u53D6\uFF1B\u8F93\u5165\u65B0\u4EE4\u724C\u53EF\u8986\u76D6\u3002' : '\u4EE4\u724C\u4FDD\u5B58\u540E\u4E0D\u53EF\u8BFB\u53D6\uFF0C\u53EA\u80FD\u8986\u76D6\u3002')}</small>\n </label>\n </div>}\n <label className=\"dsh-knowledge-timeout-field\" htmlFor=\"dsh-knowledge-timeout\">\u8BF7\u6C42\u8D85\u65F6\uFF08\u6BEB\u79D2\uFF09\n <input id=\"dsh-knowledge-timeout\" type=\"number\" min=\"100\" max=\"120000\" step=\"100\" value={timeout} onChange={event => edit(() => { setTimeoutValue(event.target.value) })} aria-invalid={timeoutError !== undefined} />\n {timeoutError && <small className=\"dsh-knowledge-field-error\">{timeoutError}</small>}\n </label>\n {!current?.writable && <p className=\"dsh-knowledge-settings-note\">\u5F53\u524D\u63D2\u4EF6\u6CA1\u6709\u914D\u7F6E\u6301\u4E45\u5316\u8DEF\u5F84\uFF0C\u65E0\u6CD5\u4FDD\u5B58\u8FDE\u63A5\u3002</p>}\n {message && <p className={`dsh-knowledge-settings-message is-${message.kind}`} role={message.kind === 'error' ? 'alert' : 'status'} aria-live=\"polite\">{message.text}</p>}\n <div className=\"dsh-knowledge-settings-actions\">\n <button type=\"button\" onClick={reset} disabled={!dirty || saving}>\u653E\u5F03\u66F4\u6539</button>\n <button type=\"button\" className=\"is-primary\" onClick={() => { void save() }} disabled={!dirty || invalid || saving || !current?.writable}>{saving ? '\u6B63\u5728\u9A8C\u8BC1\u2026' : '\u9A8C\u8BC1\u5E76\u8FDE\u63A5'}</button>\n </div>\n </>}\n </div>}\n </li>\n )\n}\n\nfunction validateRemoteUrl(value: string): string | undefined {\n try {\n const url = new URL(value.trim())\n const loopback = url.hostname === 'localhost' || url.hostname === '127.0.0.1' || url.hostname === '::1'\n if (url.protocol !== 'https:' && !(url.protocol === 'http:' && loopback)) return '\u8FDC\u7A0B\u77E5\u8BC6\u5E93\u5FC5\u987B\u4F7F\u7528 HTTPS\u3002'\n return undefined\n } catch { return '\u8BF7\u8F93\u5165\u5B8C\u6574\u7684\u77E5\u8BC6\u5E93 API \u5730\u5740\u3002' }\n}\n\nfunction connectionErrorMessage(error: unknown): string {\n const message = error instanceof Error ? error.message : String(error)\n if (message.includes('Failed to fetch')) return '\u65E0\u6CD5\u8BBF\u95EE\u63D2\u4EF6\u8FDE\u63A5\u63A5\u53E3\uFF0C\u8BF7\u786E\u8BA4\u63D2\u4EF6\u670D\u52A1\u5DF2\u52A0\u8F7D\u3002'\n return message || '\u8FDE\u63A5\u914D\u7F6E\u64CD\u4F5C\u5931\u8D25\uFF0C\u8BF7\u68C0\u67E5\u5730\u5740\u3001\u4EE4\u724C\u548C DSH \u65E5\u5FD7\u3002'\n}\n\nasync function requestConnection(\n method: 'GET' | 'PUT',\n body?: Record<string, unknown>,\n signal?: AbortSignal,\n): Promise<KnowledgeConnectionView> {\n const response = await fetch(CONNECTION_CONTROL_PATH, {\n method,\n headers: { accept: 'application/json', ...body === undefined ? {} : { 'content-type': 'application/json' } },\n ...body === undefined ? {} : { body: JSON.stringify(body) },\n ...signal === undefined ? {} : { signal },\n })\n const payload = await response.json().catch(() => undefined) as unknown\n if (!response.ok) {\n const message = payload !== null && typeof payload === 'object' && typeof (payload as { error?: unknown }).error === 'string'\n ? (payload as { error: string }).error\n : `\u8FDE\u63A5\u63A5\u53E3\u8FD4\u56DE HTTP ${response.status}`\n throw new Error(message)\n }\n if (!isConnectionView(payload)) throw new Error('\u63D2\u4EF6\u8FDE\u63A5\u63A5\u53E3\u8FD4\u56DE\u4E86\u65E0\u6548\u6570\u636E\u3002')\n return payload\n}\n\nfunction isConnectionView(value: unknown): value is KnowledgeConnectionView {\n if (value === null || typeof value !== 'object') return false\n const item = value as Partial<KnowledgeConnectionView>\n return (item.backend === 'local' || item.backend === 'remote')\n && Number.isInteger(item.remoteTimeoutMs)\n && typeof item.tokenConfigured === 'boolean'\n && typeof item.canSwitchRemote === 'boolean'\n && typeof item.writable === 'boolean'\n && typeof item.managementAvailable === 'boolean'\n && (!item.managementAvailable || isManagementPath(item.managementPath))\n}\n\nfunction isManagementPath(value: unknown): value is string {\n return typeof value === 'string' && value.startsWith('/') && !value.startsWith('//')\n}\n\nfunction KnowledgeLauncher({ wide, workspace }: SidebarActionProps & { workspace: KnowledgeWorkspaceController }) {\n const [open, setOpen] = useState(workspace.isOpen())\n\n useEffect(() => workspace.subscribe(() => { setOpen(workspace.isOpen()) }), [workspace])\n\n return (\n <button\n type=\"button\"\n className={`dsh-knowledge-trigger${wide ? '' : ' dsh-knowledge-trigger--rail'}${open ? ' is-active' : ''}`}\n aria-label={open ? '\u8FD4\u56DE\u5BF9\u8BDD' : '\u77E5\u8BC6\u5E93'}\n aria-pressed={open}\n title={wide ? undefined : open ? '\u8FD4\u56DE\u5BF9\u8BDD' : '\u77E5\u8BC6\u5E93'}\n onClick={() => { workspace.toggle() }}\n >\n <IconDataOutline16 size={wide ? 16 : 18} />\n {wide && <span>{open ? '\u8FD4\u56DE\u5BF9\u8BDD' : '\u77E5\u8BC6\u5E93'}</span>}\n </button>\n )\n}\n\nfunction KnowledgeWorkspace({\n sessionId,\n useSessions,\n client,\n workspace,\n}: ConversationSlotProps & { client: ClientContext; workspace: KnowledgeWorkspaceController }) {\n const [panelState, setPanelState] = useState<'loading' | 'ready' | 'unavailable' | 'error'>('loading')\n const [managementPath, setManagementPath] = useState<string>()\n const [panelError, setPanelError] = useState('')\n const projectId = useSessions(state => sessionId === undefined ? undefined : state.byId[sessionId]?.cwd)\n const knowledgeUrl = managementPath === undefined ? undefined : knowledgePanelUrl(managementPath, sessionId, projectId)\n const frame = useRef<HTMLIFrameElement | null>(null)\n const themeFrame = useRef(0)\n\n const loadManagement = useCallback(async (): Promise<void> => {\n setPanelState('loading')\n setPanelError('')\n try {\n const connection = await requestConnection('GET')\n if (!connection.managementAvailable || connection.managementPath === undefined) {\n setManagementPath(undefined)\n setPanelState('unavailable')\n return\n }\n setManagementPath(connection.managementPath)\n setPanelState('ready')\n } catch (error) {\n setManagementPath(undefined)\n setPanelError(connectionErrorMessage(error))\n setPanelState('error')\n }\n }, [])\n\n useEffect(() => {\n void loadManagement()\n }, [loadManagement])\n\n const sendTheme = useCallback((): void => {\n const currentFrame = frame.current\n if (currentFrame === null) return\n const target = currentFrame.contentWindow\n if (target === null) return\n const computed = getComputedStyle(document.body)\n target.postMessage(\n createKnowledgeHostTheme(computed, client.theme.getTheme()),\n frameOrigin(currentFrame) ?? '*',\n )\n }, [client])\n\n const scheduleTheme = useCallback((): void => {\n if (themeFrame.current !== 0) window.cancelAnimationFrame(themeFrame.current)\n themeFrame.current = window.requestAnimationFrame(() => {\n themeFrame.current = 0\n sendTheme()\n })\n }, [sendTheme])\n\n useEffect(() => {\n const off = client.on('theme/change', scheduleTheme)\n const onMessage = (event: MessageEvent): void => {\n const currentFrame = frame.current\n if (event.source !== currentFrame?.contentWindow) return\n const expectedOrigin = frameOrigin(currentFrame)\n if (expectedOrigin !== undefined && event.origin !== expectedOrigin) return\n const data = event.data as { type?: unknown; version?: unknown } | null\n if (data?.type === KNOWLEDGE_THEME_READY_MESSAGE && data.version === KNOWLEDGE_THEME_PROTOCOL_VERSION) sendTheme()\n }\n window.addEventListener('message', onMessage)\n scheduleTheme()\n return () => {\n off()\n window.removeEventListener('message', onMessage)\n if (themeFrame.current !== 0) window.cancelAnimationFrame(themeFrame.current)\n }\n }, [client, scheduleTheme, sendTheme])\n\n return (\n <section className=\"dsh-knowledge-workspace\" data-xiaohei-surface=\"plugin-workspace\" aria-labelledby=\"dsh-knowledge-workspace-title\">\n <header className=\"dsh-knowledge-workspace-header\">\n <div>\n <button type=\"button\" data-xiaohei-workspace-close onClick={workspace.close} aria-label=\"\u8FD4\u56DE\u4F1A\u8BDD\" title=\"\u8FD4\u56DE\u4F1A\u8BDD\"><IconChevronLeftOutline14 size={15} /></button>\n <IconDataOutline16 size={18} />\n <span><h2 id=\"dsh-knowledge-workspace-title\">\u77E5\u8BC6\u5E93</h2><p>\u6587\u6863\u3001\u5BA1\u6838\u3001\u6302\u8F7D\u4E0E\u8BBF\u95EE\u7BA1\u7406</p></span>\n </div>\n </header>\n {panelState === 'ready' && knowledgeUrl !== undefined\n ? <iframe ref={frame} className=\"dsh-knowledge-frame\" src={knowledgeUrl} title=\"\u77E5\u8BC6\u5E93\u7BA1\u7406\u53F0\" onLoad={sendTheme} />\n : <div className=\"dsh-knowledge-panel-state\" role={panelState === 'error' ? 'alert' : 'status'} aria-live=\"polite\">\n <span className=\"dsh-knowledge-panel-state-icon\" aria-hidden=\"true\">{panelState === 'loading' ? '\u00B7\u00B7\u00B7' : panelState === 'error' ? '!' : '\u2014'}</span>\n <div>\n <h3>{panelState === 'loading' ? '\u6B63\u5728\u6253\u5F00\u77E5\u8BC6\u5E93\u2026' : panelState === 'error' ? '\u6682\u65F6\u65E0\u6CD5\u6253\u5F00\u77E5\u8BC6\u5E93' : '\u8FD9\u53F0 DSH \u672A\u542F\u7528\u77E5\u8BC6\u5E93\u7BA1\u7406\u53F0'}</h3>\n <p>{panelState === 'loading'\n ? '\u6B63\u5728\u786E\u8BA4\u5F53\u524D\u5B9E\u4F8B\u662F\u5426\u63D0\u4F9B\u7BA1\u7406\u9875\u9762\u3002'\n : panelState === 'error'\n ? panelError\n : '\u672C\u5730\u53EC\u56DE\u548C\u56DE\u5199\u4ECD\u53EF\u4F7F\u7528\u3002\u5F53\u524D profile \u5DF2\u663E\u5F0F\u5173\u95ED exposeWeb\uFF1B\u91CD\u65B0\u542F\u7528\u540E\u5373\u53EF\u5728\u8FD9\u91CC\u7BA1\u7406\u3002\u4F7F\u7528\u8FDC\u7A0B\u77E5\u8BC6\u5E93\u65F6\uFF0C\u8BF7\u524D\u5F80\u4E2D\u592E DSH \u7684\u77E5\u8BC6\u5E93\u7BA1\u7406\u53F0\u3002'}</p>\n {panelState === 'error' && <button type=\"button\" onClick={() => { void loadManagement() }}>\u91CD\u8BD5</button>}\n </div>\n </div>}\n </section>\n )\n}\n\nfunction knowledgePanelUrl(managementPath: string, sessionId?: string, projectId?: string): string {\n const params = new URLSearchParams()\n if (sessionId !== undefined) params.set('sessionId', sessionId)\n if (projectId !== undefined) params.set('projectId', projectId)\n const query = params.toString()\n return query.length === 0 ? managementPath : `${managementPath}${managementPath.includes('?') ? '&' : '?'}${query}`\n}\n\nfunction frameOrigin(frame: HTMLIFrameElement): string | undefined {\n try {\n const origin = new URL(frame.src).origin\n return origin === 'null' ? undefined : origin\n } catch {\n return undefined\n }\n}\n\nfunction installStyles(): () => void {\n const previous = document.querySelector<HTMLStyleElement>(`style[data-plugin-css=\"${STYLE_ID}\"]`)\n previous?.remove()\n const style = document.createElement('style')\n style.dataset.plugin = PLUGIN_ID\n style.dataset.pluginCss = STYLE_ID\n style.textContent = cssText\n document.head.appendChild(style)\n return () => { style.remove() }\n}\n", null, ".dsh-knowledge-trigger {\n flex: none;\n display: flex;\n align-items: center;\n gap: 8px;\n width: calc(100% + 8px);\n height: 34px;\n margin: 4px -4px;\n padding: 6px 2px 6px 10px;\n box-sizing: border-box;\n border: 0;\n border-radius: 12px;\n overflow: hidden;\n background: transparent;\n color: var(--dsw-alias-label-primary);\n cursor: pointer;\n font: inherit;\n font-size: 14px;\n line-height: 22px;\n white-space: nowrap;\n}\n\n.dsh-knowledge-trigger:hover {\n background: var(--dsw-alias-interactive-bg-hover);\n}\n\n.dsh-knowledge-trigger.is-active {\n background: var(--dsw-alias-interactive-bg-selected, var(--dsw-alias-interactive-bg-hover));\n color: var(--dsw-alias-interactive-primary, currentColor);\n}\n\n.dsh-knowledge-trigger--rail {\n width: 36px;\n height: 36px;\n margin: 8px 0 4px;\n padding: 0;\n justify-content: center;\n gap: 0;\n border-radius: 50%;\n}\n\n.dsh-knowledge-workspace {\n --knowledge-pane: var(--xiaohei-plugin-pane-fill, var(--dsw-alias-bg-base, #f7f8f7));\n --knowledge-raised: var(--xiaohei-plugin-raised-fill, var(--dsw-alias-bg-layer-2, #fff));\n --knowledge-control: var(--xiaohei-plugin-control-fill, var(--dsw-alias-bg-layer-1, #fff));\n width: 100%;\n height: 100%;\n min-width: 0;\n min-height: 0;\n display: flex;\n flex-direction: column;\n overflow: hidden;\n background: var(--knowledge-pane);\n}\n\n.dsh-knowledge-workspace-header {\n flex: none;\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 16px;\n min-height: 56px;\n padding: 8px 16px 8px 20px;\n box-sizing: border-box;\n border-bottom: 1px solid var(--dsw-alias-divider-primary, rgba(128, 128, 128, .18));\n background: var(--knowledge-pane);\n}\n\n.dsh-knowledge-workspace-header > div {\n display: flex;\n align-items: center;\n gap: 10px;\n min-width: 0;\n}\n\n.dsh-knowledge-workspace-header [data-xiaohei-workspace-close] {\n -webkit-appearance: none;\n appearance: none;\n display: grid;\n place-items: center;\n box-sizing: border-box;\n flex: none;\n width: 30px;\n height: 30px;\n margin: 0;\n padding: 0;\n border: 1px solid transparent;\n border-radius: 9px;\n color: var(--dsw-alias-label-secondary, #68686f);\n background: transparent;\n font: inherit;\n line-height: 1;\n -webkit-tap-highlight-color: transparent;\n cursor: pointer;\n transition: color 140ms ease, background 140ms ease, border-color 140ms ease, transform 140ms ease;\n}\n\n.dsh-knowledge-workspace-header [data-xiaohei-workspace-close]:hover {\n border-color: var(--dsw-alias-divider-primary, rgba(128, 128, 128, .18));\n color: var(--dsw-alias-label-primary, #171719);\n background: var(--dsw-alias-interactive-bg-hover, rgba(128, 128, 128, .08));\n}\n\n.dsh-knowledge-workspace-header [data-xiaohei-workspace-close]:active { transform: scale(.96); }\n.dsh-knowledge-workspace-header [data-xiaohei-workspace-close]:focus-visible {\n outline: 2px solid var(--dsw-alias-interactive-primary, #335cff);\n outline-offset: 2px;\n}\n.dsh-knowledge-workspace-header [data-xiaohei-workspace-close] > svg {\n display: block;\n pointer-events: none;\n}\n\n.dsh-knowledge-workspace-header > div > span {\n display: grid;\n min-width: 0;\n gap: 2px;\n}\n\n.dsh-knowledge-workspace-header h2,\n.dsh-knowledge-workspace-header p {\n margin: 0;\n}\n\n.dsh-knowledge-workspace-header h2 {\n color: var(--dsw-alias-label-primary);\n font-size: 15px;\n line-height: 22px;\n font-weight: 600;\n}\n\n.dsh-knowledge-workspace-header p {\n color: var(--dsw-alias-label-secondary);\n font-size: 11px;\n line-height: 16px;\n}\n\n.dsh-knowledge-frame {\n flex: 1;\n width: 100%;\n min-height: 0;\n border: 0;\n background: transparent;\n}\n\n.dsh-knowledge-panel-state {\n flex: 1;\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 16px;\n min-height: 0;\n padding: 32px;\n box-sizing: border-box;\n background: transparent;\n color: var(--dsw-alias-label-primary, #171719);\n}\n\n.dsh-knowledge-panel-state-icon {\n flex: none;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 40px;\n height: 40px;\n border-radius: 12px;\n background: var(--dsw-alias-interactive-bg-hover, rgba(128, 128, 128, .1));\n color: var(--dsw-alias-label-secondary, #68686f);\n font-size: 18px;\n font-weight: 600;\n}\n\n.dsh-knowledge-panel-state > div { max-width: 560px; }\n.dsh-knowledge-panel-state h3 { margin: 0 0 6px; font-size: 17px; line-height: 24px; font-weight: 600; }\n.dsh-knowledge-panel-state p { margin: 0; color: var(--dsw-alias-label-secondary, #68686f); font-size: 13px; line-height: 20px; }\n.dsh-knowledge-panel-state button {\n min-width: 72px;\n min-height: 32px;\n margin-top: 16px;\n padding: 6px 14px;\n border: 0;\n border-radius: 10px;\n background: var(--dsw-alias-interactive-primary, #335cff);\n color: #fff;\n cursor: pointer;\n font: inherit;\n}\n.dsh-knowledge-panel-state button:focus-visible {\n outline: 2px solid var(--dsw-alias-interactive-primary, #335cff);\n outline-offset: 2px;\n}\n\n.dsh-knowledge-settings-card {\n list-style: none;\n overflow: hidden;\n border: 1px solid var(--dsw-alias-divider-primary, rgba(128, 128, 128, .18));\n border-radius: 18px;\n background: var(--xiaohei-plugin-raised-fill, var(--dsw-alias-bg-layer-2, #fff));\n color: var(--dsw-alias-label-primary, #171719);\n}\n\n.dsh-knowledge-settings-card--open {\n box-shadow: 0 10px 32px rgba(0, 0, 0, .07);\n}\n\n.dsh-knowledge-settings-header {\n display: flex;\n width: 100%;\n align-items: center;\n justify-content: space-between;\n gap: 20px;\n padding: 18px 20px;\n border: 0;\n background: transparent;\n color: inherit;\n text-align: left;\n cursor: pointer;\n}\n\n.dsh-knowledge-settings-header:hover { background: var(--dsw-alias-interactive-bg-hover, rgba(128, 128, 128, .08)); }\n.dsh-knowledge-settings-header:focus-visible,\n.dsh-knowledge-settings-actions button:focus-visible,\n.dsh-knowledge-settings-load-error button:focus-visible {\n outline: 2px solid var(--dsw-alias-interactive-primary, #335cff);\n outline-offset: 2px;\n}\n.dsh-knowledge-settings-header > span:first-child { display: grid; gap: 3px; }\n.dsh-knowledge-settings-header strong { font-size: 15px; font-weight: 600; }\n.dsh-knowledge-settings-header small,\n.dsh-knowledge-source-picker small,\n.dsh-knowledge-remote-fields small { color: var(--dsw-alias-label-secondary, #68686f); font-size: 12px; }\n.dsh-knowledge-settings-summary { flex: none; color: var(--dsw-alias-label-secondary, #68686f); font-size: 12px; }\n\n.dsh-knowledge-settings-body {\n display: grid;\n gap: 18px;\n padding: 4px 20px 20px;\n border-top: 1px solid var(--dsw-alias-divider-primary, rgba(128, 128, 128, .14));\n}\n\n.dsh-knowledge-source-picker {\n display: grid;\n grid-template-columns: repeat(2, minmax(0, 1fr));\n gap: 10px;\n margin: 18px 0 0;\n padding: 0;\n border: 0;\n}\n\n.dsh-knowledge-source-picker legend { margin-bottom: 8px; font-size: 13px; font-weight: 600; }\n.dsh-knowledge-source-picker label {\n display: flex;\n gap: 10px;\n padding: 13px;\n border: 1px solid var(--dsw-alias-divider-primary, rgba(128, 128, 128, .2));\n border-radius: 14px;\n cursor: pointer;\n}\n.dsh-knowledge-source-picker label.is-selected {\n border-color: var(--dsw-alias-interactive-primary, #335cff);\n background: color-mix(in srgb, var(--dsw-alias-interactive-primary, #335cff) 7%, transparent);\n}\n.dsh-knowledge-source-picker label.is-disabled {\n cursor: default;\n opacity: .55;\n}\n.dsh-knowledge-source-picker label:focus-within {\n outline: 2px solid var(--dsw-alias-interactive-primary, #335cff);\n outline-offset: 2px;\n}\n.dsh-knowledge-source-picker input { margin-top: 2px; accent-color: var(--dsw-alias-interactive-primary, #335cff); }\n.dsh-knowledge-source-picker span { display: grid; gap: 3px; }\n\n.dsh-knowledge-remote-fields { display: grid; grid-template-columns: 1.25fr 1fr; gap: 12px; }\n.dsh-knowledge-remote-fields label,\n.dsh-knowledge-timeout-field { display: grid; gap: 6px; color: var(--dsw-alias-label-secondary, #68686f); font-size: 12px; }\n.dsh-knowledge-remote-fields input,\n.dsh-knowledge-timeout-field input {\n min-height: 38px;\n box-sizing: border-box;\n padding: 8px 11px;\n border: 1px solid var(--dsw-alias-divider-primary, rgba(128, 128, 128, .25));\n border-radius: 10px;\n outline: none;\n background: var(--xiaohei-plugin-control-fill, var(--dsw-alias-bg-layer-1, #fff));\n color: var(--dsw-alias-label-primary, #171719);\n font: inherit;\n}\n.dsh-knowledge-remote-fields input:focus,\n.dsh-knowledge-timeout-field input:focus { border-color: var(--dsw-alias-interactive-primary, #335cff); box-shadow: 0 0 0 3px rgba(51, 92, 255, .12); }\n.dsh-knowledge-timeout-field { max-width: 240px; }\n.dsh-knowledge-field-error { color: #c9362b !important; }\n\n.dsh-knowledge-settings-message,\n.dsh-knowledge-settings-note { margin: 0; color: var(--dsw-alias-label-secondary, #68686f); font-size: 12px; }\n.dsh-knowledge-settings-message.is-success { color: #15803d; }\n.dsh-knowledge-settings-message.is-error { color: #c9362b; }\n.dsh-knowledge-settings-load-error {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 12px;\n margin-top: 18px;\n padding: 12px 14px;\n border-radius: 12px;\n background: color-mix(in srgb, #c9362b 8%, transparent);\n color: #c9362b;\n font-size: 13px;\n}\n.dsh-knowledge-settings-load-error p { margin: 0; }\n.dsh-knowledge-settings-load-error button {\n flex: none;\n min-height: 30px;\n padding: 5px 10px;\n border: 0;\n border-radius: 9px;\n background: var(--xiaohei-plugin-control-fill, var(--dsw-alias-bg-layer-2, #fff));\n color: var(--dsw-alias-label-primary, #171719);\n cursor: pointer;\n font: inherit;\n}\n.dsh-knowledge-settings-actions { display: flex; justify-content: flex-end; gap: 8px; }\n.dsh-knowledge-settings-actions button {\n min-height: 34px;\n padding: 7px 13px;\n border: 0;\n border-radius: 10px;\n background: var(--dsw-alias-interactive-bg-hover, rgba(128, 128, 128, .1));\n color: var(--dsw-alias-label-primary, #171719);\n cursor: pointer;\n font: inherit;\n font-size: 13px;\n}\n.dsh-knowledge-settings-actions button.is-primary { background: var(--dsw-alias-interactive-primary, #335cff); color: #fff; }\n.dsh-knowledge-settings-actions button:disabled { cursor: default; opacity: .45; }\n\n@media (max-width: 720px) {\n .dsh-knowledge-source-picker,\n .dsh-knowledge-remote-fields { grid-template-columns: 1fr; }\n}\n\n.dsh-knowledge-writeback-status {\n display: flex;\n align-items: center;\n gap: 8px;\n min-width: 0;\n color: var(--dsw-alias-label-tertiary, #6b7280);\n font-size: 12px;\n line-height: 1.5;\n}\n.dsh-knowledge-writeback-status strong {\n color: var(--dsw-alias-label-secondary, #374151);\n font-weight: 600;\n}\n", "/** Host settings namespace that makes the knowledge connection card discoverable. */\nexport const KNOWLEDGE_SETTINGS_NAMESPACE = 'dsh-knowledge-connection'\n", "export const KNOWLEDGE_THEME_MESSAGE = '@lemoncat7/dsh-knowledge/host-theme'\nexport const KNOWLEDGE_THEME_READY_MESSAGE = '@lemoncat7/dsh-knowledge/host-theme-ready'\nexport const KNOWLEDGE_THEME_PROTOCOL_VERSION = 1\n\nexport type KnowledgeColorScheme = 'light' | 'dark'\n\nexport interface KnowledgeHostThemeMessage {\n type: typeof KNOWLEDGE_THEME_MESSAGE\n version: typeof KNOWLEDGE_THEME_PROTOCOL_VERSION\n colorScheme: KnowledgeColorScheme\n tokens: Record<string, string>\n}\n\nexport interface ThemeSnapshotLike {\n active: {\n colorScheme: KnowledgeColorScheme\n tokens: Readonly<Record<string, string>>\n }\n}\n\ninterface ComputedStyleLike {\n getPropertyValue(name: string): string\n}\n\nconst TOKEN_SOURCES = {\n '--bg': ['--xiaohei-plugin-workspace-fill', '--dsw-alias-bg-layer-1', '--dsw-alias-bg-base'],\n '--surface': ['--xiaohei-plugin-pane-fill', '--dsw-alias-bg-layer-2', '--dsw-alias-bg-layer-1'],\n '--surface-raised': ['--xiaohei-plugin-raised-fill', '--dsw-alias-bg-layer-3', '--dsw-alias-bg-overlay', '--dsw-alias-bg-layer-2'],\n '--surface-soft': ['--xiaohei-plugin-control-fill', '--dsw-alias-bg-module-platform', '--dsw-alias-bg-layer-3', '--dsw-alias-bg-layer-2'],\n '--surface-hover': ['--dsw-alias-interactive-bg-hover', '--dsw-alias-bg-layer-3'],\n '--text': ['--dsw-alias-label-primary'],\n '--text-secondary': ['--dsw-alias-label-secondary', '--dsw-alias-label-primary-dimmed'],\n '--text-tertiary': ['--dsw-alias-label-tertiary', '--dsw-alias-label-caption'],\n '--border': ['--dsw-alias-border-l2', '--dsw-alias-divider-primary', '--dsw-alias-border-l1'],\n '--border-strong': ['--dsw-alias-border-l3', '--dsw-alias-border-l2'],\n '--accent': ['--dsw-alias-button-primary-fill', '--dsw-alias-brand-primary'],\n '--accent-hover': ['--dsw-alias-button-primary-hover', '--dsw-alias-brand-primary'],\n '--accent-soft': ['--dsw-alias-interactive-bg-active', '--dsw-alias-interactive-bg-hover-accent'],\n '--on-accent': ['--dsw-alias-label-primary-foreground', '--dsw-alias-brand-primary-invert'],\n '--success': ['--dsw-alias-state-success-primary'],\n '--success-soft': ['--dsw-alias-state-success-tertiary'],\n '--warning': ['--dsw-alias-state-warn-primary', '--dsw-alias-state-warn-label'],\n '--warning-soft': ['--dsw-alias-state-warn-tertiary'],\n '--danger': ['--dsw-alias-state-error-primary'],\n '--danger-soft': ['--dsw-alias-state-error-tertiary'],\n '--shadow': ['--dsw-shadow-lv3', '--dsw-shadow-lv2'],\n} as const\n\nconst FALLBACK_TOKENS: Record<KnowledgeColorScheme, Readonly<Record<string, string>>> = {\n light: {\n '--bg': '#f5f5f7', '--surface': '#ffffff', '--surface-raised': '#ffffff',\n '--surface-soft': '#f0f0f3', '--surface-hover': '#f5f5f8',\n '--text': '#1d1d1f', '--text-secondary': '#4c4c50', '--text-tertiary': '#6e6e73',\n '--border': '#dedee3', '--border-strong': '#c7c7cc',\n '--accent': '#086bd8', '--accent-hover': '#005ab8', '--accent-soft': '#e8f2ff', '--on-accent': '#ffffff',\n '--success': '#18794e', '--success-soft': '#e8f5ee', '--warning': '#986800', '--warning-soft': '#fff4cf',\n '--danger': '#c9343a', '--danger-soft': '#fdebec', '--shadow': '0 18px 48px rgb(30 45 70 / 10%)',\n },\n dark: {\n '--bg': '#101012', '--surface': '#1c1c1e', '--surface-raised': '#242426',\n '--surface-soft': '#2c2c2e', '--surface-hover': '#303033',\n '--text': '#f5f5f7', '--text-secondary': '#c7c7cc', '--text-tertiary': '#98989d',\n '--border': '#353538', '--border-strong': '#4a4a4f',\n '--accent': '#64a8ff', '--accent-hover': '#82b8ff', '--accent-soft': '#17365d', '--on-accent': '#0c1b2c',\n '--success': '#62c596', '--success-soft': '#163a2a', '--warning': '#e7bc62', '--warning-soft': '#423414',\n '--danger': '#ff858a', '--danger-soft': '#4b2227', '--shadow': '0 16px 40px rgb(0 0 0 / 28%)',\n },\n}\n\n/** Translate DSH's public semantic palette into the knowledge console's tokens. */\nexport function createKnowledgeHostTheme(\n computed: ComputedStyleLike,\n snapshot: ThemeSnapshotLike,\n): KnowledgeHostThemeMessage {\n const tokens: Record<string, string> = {}\n for (const [target, sources] of Object.entries(TOKEN_SOURCES)) {\n const value = firstDefinedToken(computed, snapshot.active.tokens, sources)\n tokens[target] = value ?? FALLBACK_TOKENS[snapshot.active.colorScheme][target]!\n }\n return {\n type: KNOWLEDGE_THEME_MESSAGE,\n version: KNOWLEDGE_THEME_PROTOCOL_VERSION,\n colorScheme: snapshot.active.colorScheme,\n tokens,\n }\n}\n\nfunction firstDefinedToken(\n computed: ComputedStyleLike,\n snapshotTokens: Readonly<Record<string, string>>,\n sources: readonly string[],\n): string | undefined {\n for (const source of sources) {\n const computedValue = computed.getPropertyValue(source).trim()\n if (computedValue.length > 0) return computedValue\n const snapshotValue = snapshotTokens[source]?.trim()\n if (snapshotValue !== undefined && snapshotValue.length > 0) return snapshotValue\n }\n return undefined\n}\n"],
|
|
5
|
-
"mappings": "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",
|
|
4
|
+
"sourcesContent": ["import { useCallback, useEffect, useRef, useState } from 'react'\nimport type { ClientContext } from '@deepseek-ai/dsh-client-runtime/client'\nimport type { PropsRuntime } from '@deepseek-ai/dsh-client-ui-slots'\nimport type {} from '@deepseek-ai/dsh-client-ui-layout/client'\nimport type {} from '@deepseek-ai/dsh-client-ui-sidebar/client'\nimport type {} from '@deepseek-ai/dsh-client-ui-settings-plugins/client'\nimport type {} from '@deepseek-ai/dsh-client-ui-theme/client'\nimport type {} from '@deepseek-ai/dsh-client-ui-conversation/client'\nimport { activatePluginWorkspace, observePluginWorkspace } from '@lemoncat7/dsh-plugin-ui'\nimport {\n IconChevronLeftOutline14, IconDataOutline16,\n} from '@deepseek-ai/dsh-client-ui-primitives'\nimport cssText from './client.css'\nimport { KNOWLEDGE_SETTINGS_NAMESPACE } from './constants.js'\nimport {\n createKnowledgeHostTheme,\n KNOWLEDGE_THEME_PROTOCOL_VERSION,\n KNOWLEDGE_THEME_READY_MESSAGE,\n type ThemeSnapshotLike,\n} from './theme-bridge.js'\n\nconst PLUGIN_ID = '@lemoncat7/dsh-knowledge'\nconst STYLE_ID = `${PLUGIN_ID}/client`\n\ntype SidebarActionProps = PropsRuntime<'sidebar.footer.action'>\ntype ConversationSlotProps = PropsRuntime<'conversation'>\n\ninterface KnowledgeConnectionView {\n backend: 'local' | 'remote'\n remoteUrl?: string\n remoteTimeoutMs: number\n tokenConfigured: boolean\n canSwitchRemote: boolean\n writable: boolean\n managementAvailable: boolean\n managementPath?: string\n}\n\ninterface KnowledgeWorkspaceController {\n isOpen(): boolean\n toggle(): void\n close(): void\n subscribe(listener: () => void): () => void\n}\n\nconst CONNECTION_CONTROL_PATH = '/knowledge-control/v1/connection'\n\n/** Cordis services needed by the browser half. */\nexport const inject = ['slots', 'theme']\n\n/** Register the knowledge launcher in the sidebar's official extension slot. */\nexport function apply(ctx: ClientContext): void {\n ctx.effect(installStyles, 'dsh-knowledge: client styles')\n const workspace = createKnowledgeWorkspaceController(ctx)\n ctx.effect(() => observePluginWorkspace(PLUGIN_ID, workspace.close), 'dsh-knowledge: exclusive workspace')\n ctx.effect(() => () => { workspace.close() }, 'dsh-knowledge: workspace lifecycle')\n ctx.slots.inject('sidebar.footer.action', () => ctx.slots.register({\n name: 'sidebar.footer.action',\n id: 'knowledge',\n order: -10,\n }, props => <KnowledgeLauncher {...props} workspace={workspace} />))\n\n ctx.slots.inject('settings.plugin.item', () => ctx.slots.register({\n name: 'settings.plugin.item',\n key: KNOWLEDGE_SETTINGS_NAMESPACE,\n }, KnowledgeConnectionCard))\n\n ctx.slots.inject('conversation.chat.turnTail', () => ctx.slots.register({\n name: 'conversation.chat.turnTail',\n select: owner => ({ turn: owner.turn.turn }),\n }, props => <KnowledgeWritebackStatus sessionId={String(props.sessionId)} turn={props.matched.turn} />))\n}\n\nfunction KnowledgeWritebackStatus({ sessionId, turn }: { sessionId: string; turn: number }) {\n type Status = { status: 'running' | 'completed' | 'failed'; summary: string; error?: string; retryable: boolean }\n const [state, setState] = useState<Status>()\n const [retrying, setRetrying] = useState(false)\n useEffect(() => {\n const controller = new AbortController()\n void fetch(`/knowledge-control/v1/writeback-status?sessionId=${encodeURIComponent(sessionId)}&turn=${turn}`, {\n headers: { accept: 'application/json' }, signal: controller.signal,\n }).then(async response => response.ok ? response.json() as Promise<Status> : undefined)\n .then(value => { if (value?.summary) setState(value) })\n .catch(() => {})\n return () => { controller.abort() }\n }, [sessionId, turn])\n if (state === undefined) return null\n const retry = async (): Promise<void> => {\n setRetrying(true)\n try {\n const response = await fetch(`/knowledge-control/v1/writeback-status?sessionId=${encodeURIComponent(sessionId)}&turn=${turn}`, {\n method: 'POST', headers: { accept: 'application/json', 'x-dsh-knowledge-client': 'conversation-web' },\n })\n if (!response.ok) throw new Error(`retry failed with HTTP ${response.status}`)\n setState(await response.json() as Status)\n } catch (error) {\n setState(previous => previous === undefined ? previous : {\n ...previous, error: error instanceof Error ? error.message : String(error), retryable: true,\n })\n } finally { setRetrying(false) }\n }\n return <div className=\"dsh-knowledge-writeback-status\">\n <span>\u4E0A\u4E0B\u6587\u6CE8\u5165</span><strong>dsh-knowledge</strong><span title={state.error}>{state.summary}</span>\n {state.status === 'failed' && state.retryable && <button type=\"button\" disabled={retrying} onClick={() => { void retry() }}>{retrying ? '\u91CD\u8BD5\u4E2D\u2026' : '\u91CD\u8BD5'}</button>}\n </div>\n}\n\nfunction createKnowledgeWorkspaceController(client: ClientContext): KnowledgeWorkspaceController {\n const listeners = new Set<() => void>()\n let disposeWorkspace: (() => void) | undefined\n const notify = (): void => { for (const listener of listeners) listener() }\n const close = (): void => {\n if (disposeWorkspace === undefined) return\n const dispose = disposeWorkspace\n disposeWorkspace = undefined\n dispose()\n notify()\n }\n const controller: KnowledgeWorkspaceController = {\n isOpen: () => disposeWorkspace !== undefined,\n toggle: () => {\n if (disposeWorkspace !== undefined) return close()\n activatePluginWorkspace(PLUGIN_ID)\n const dispose = client.slots.register({ name: 'conversation', priority: -1 }, props => (\n <KnowledgeWorkspace {...props} client={client} workspace={controller} />\n ))\n disposeWorkspace = dispose\n notify()\n },\n close,\n subscribe: listener => {\n listeners.add(listener)\n return () => { listeners.delete(listener) }\n },\n }\n return controller\n}\n\nfunction KnowledgeConnectionCard() {\n const [current, setCurrent] = useState<KnowledgeConnectionView>()\n const [loadState, setLoadState] = useState<'loading' | 'ready' | 'error'>('loading')\n const [loadError, setLoadError] = useState('')\n const [open, setOpen] = useState(false)\n const [backend, setBackend] = useState<'local' | 'remote'>('local')\n const [remoteUrl, setRemoteUrl] = useState('')\n const [remoteToken, setRemoteToken] = useState('')\n const [timeout, setTimeoutValue] = useState('10000')\n const [dirty, setDirty] = useState(false)\n const [saving, setSaving] = useState(false)\n const [message, setMessage] = useState<{ kind: 'success' | 'error'; text: string }>()\n\n const load = useCallback(async (signal?: AbortSignal): Promise<void> => {\n setLoadState('loading')\n setLoadError('')\n try {\n const value = await requestConnection('GET', undefined, signal)\n setCurrent(value)\n setLoadState('ready')\n } catch (error) {\n if (signal?.aborted) return\n setLoadError(connectionErrorMessage(error))\n setLoadState('error')\n }\n }, [])\n\n useEffect(() => {\n const controller = new AbortController()\n void load(controller.signal)\n return () => { controller.abort() }\n }, [load])\n\n useEffect(() => {\n if (dirty || current === undefined) return\n setBackend(current.backend)\n setRemoteUrl(current.remoteUrl ?? '')\n setTimeoutValue(String(current.remoteTimeoutMs ?? 10000))\n }, [current, dirty])\n\n const timeoutNumber = Number(timeout)\n const urlError = backend === 'remote' ? validateRemoteUrl(remoteUrl) : undefined\n const tokenError = backend === 'remote' && !current?.tokenConfigured && remoteToken.trim().length === 0\n ? '\u9996\u6B21\u8FDE\u63A5\u5FC5\u987B\u586B\u5199\u5BA2\u6237\u7AEF\u4EE4\u724C\u3002'\n : remoteToken.length > 0 && remoteToken.trim().length < 24 ? '\u4EE4\u724C\u81F3\u5C11\u9700\u8981 24 \u4E2A\u5B57\u7B26\u3002' : undefined\n const timeoutError = !Number.isInteger(timeoutNumber) || timeoutNumber < 100 || timeoutNumber > 120000\n ? '\u8D85\u65F6\u5FC5\u987B\u662F 100 \u5230 120000 \u6BEB\u79D2\u4E4B\u95F4\u7684\u6574\u6570\u3002'\n : undefined\n const invalid = urlError !== undefined || tokenError !== undefined || timeoutError !== undefined\n\n const edit = (action: () => void): void => {\n action()\n setDirty(true)\n setMessage(undefined)\n }\n const reset = (): void => {\n setBackend(current?.backend ?? 'local')\n setRemoteUrl(current?.remoteUrl ?? '')\n setRemoteToken('')\n setTimeoutValue(String(current?.remoteTimeoutMs ?? 10000))\n setDirty(false)\n setMessage(undefined)\n }\n const save = async (): Promise<void> => {\n if (!dirty || invalid || !current?.writable || saving) return\n setSaving(true)\n setMessage(undefined)\n try {\n const next = await requestConnection('PUT', {\n backend,\n remoteTimeoutMs: timeoutNumber,\n ...backend === 'remote' ? { remoteUrl: remoteUrl.trim() } : {},\n ...backend === 'remote' && remoteToken.trim().length > 0 ? { remoteToken: remoteToken.trim() } : {},\n })\n setCurrent(next)\n setRemoteToken('')\n setDirty(false)\n setMessage({\n kind: 'success',\n text: backend === 'remote' ? '\u5DF2\u9A8C\u8BC1\u5E76\u5207\u6362\u81F3\u8FDC\u7A0B\u77E5\u8BC6\u5E93\u3002' : '\u5DF2\u5207\u6362\u81F3\u672C\u5730\u77E5\u8BC6\u5E93\u3002',\n })\n } catch (error) {\n setMessage({ kind: 'error', text: connectionErrorMessage(error) })\n } finally {\n setSaving(false)\n }\n }\n\n return (\n <li className={`dsh-knowledge-settings-card${open ? ' dsh-knowledge-settings-card--open' : ''}`}>\n <button type=\"button\" className=\"dsh-knowledge-settings-header\" aria-expanded={open} onClick={() => { setOpen(value => !value) }}>\n <span>\n <strong>\u77E5\u8BC6\u5E93\u8FDE\u63A5</strong>\n <small>\u9009\u62E9\u672C\u673A\u77E5\u8BC6\u5E93\uFF0C\u6216\u8FDE\u63A5\u4E00\u53F0\u4E2D\u592E DSH \u77E5\u8BC6\u5E93</small>\n </span>\n <span className=\"dsh-knowledge-settings-summary\">{loadState === 'loading' ? '\u8BFB\u53D6\u4E2D' : loadState === 'error' ? '\u8FDE\u63A5\u5165\u53E3' : current?.backend === 'remote' ? '\u8FDC\u7A0B' : '\u672C\u5730'} \u00B7 {open ? '\u6536\u8D77' : '\u8BBE\u7F6E'}</span>\n </button>\n {open && <div className=\"dsh-knowledge-settings-body\">\n {loadState === 'loading' ? <p className=\"dsh-knowledge-settings-note\" role=\"status\">\u6B63\u5728\u8BFB\u53D6\u8FDE\u63A5\u914D\u7F6E\u2026</p>\n : loadState === 'error' ? <div className=\"dsh-knowledge-settings-load-error\" role=\"alert\">\n <p>{loadError}</p>\n <button type=\"button\" onClick={() => { void load() }}>\u91CD\u65B0\u8BFB\u53D6</button>\n </div> : <>\n <fieldset className=\"dsh-knowledge-source-picker\">\n <legend>\u77E5\u8BC6\u5E93\u6765\u6E90</legend>\n <label className={backend === 'local' ? 'is-selected' : ''}>\n <input type=\"radio\" name=\"dsh-knowledge-backend\" checked={backend === 'local'} onChange={() => edit(() => { setBackend('local') })} />\n <span><strong>\u672C\u5730</strong><small>\u6570\u636E\u4FDD\u5B58\u5728\u5F53\u524D DSH \u7684 SQLite \u4E2D</small></span>\n </label>\n <label className={`${backend === 'remote' ? 'is-selected' : ''}${!current?.canSwitchRemote ? ' is-disabled' : ''}`}>\n <input type=\"radio\" name=\"dsh-knowledge-backend\" checked={backend === 'remote'} disabled={!current?.canSwitchRemote} onChange={() => edit(() => { setBackend('remote') })} />\n <span><strong>\u8FDC\u7A0B</strong><small>\u53EC\u56DE\u548C\u56DE\u5199\u7EDF\u4E00\u4F7F\u7528\u4E2D\u592E\u77E5\u8BC6\u5E93</small></span>\n </label>\n </fieldset>\n {!current?.canSwitchRemote && <p className=\"dsh-knowledge-settings-note\">\u5F53\u524D\u5B9E\u4F8B\u662F\u4E2D\u592E\u77E5\u8BC6\u5E93\u670D\u52A1\uFF0C\u4E0D\u80FD\u518D\u5207\u6362\u5230\u53E6\u4E00\u53F0\u8FDC\u7A0B\u670D\u52A1\u3002</p>}\n {backend === 'remote' && <div className=\"dsh-knowledge-remote-fields\">\n <label htmlFor=\"dsh-knowledge-remote-url\">\u670D\u52A1\u5668\u5730\u5740\n <input id=\"dsh-knowledge-remote-url\" type=\"url\" value={remoteUrl} placeholder=\"https://example.com/knowledge-api/v1\" autoComplete=\"url\" onChange={event => edit(() => { setRemoteUrl(event.target.value) })} aria-invalid={urlError !== undefined} aria-describedby={urlError ? 'dsh-knowledge-url-error' : undefined} />\n {urlError && <small id=\"dsh-knowledge-url-error\" className=\"dsh-knowledge-field-error\">{urlError}</small>}\n </label>\n <label htmlFor=\"dsh-knowledge-remote-token\">\u5BA2\u6237\u7AEF\u4EE4\u724C\n <input id=\"dsh-knowledge-remote-token\" type=\"password\" value={remoteToken} placeholder={current?.tokenConfigured ? '\u5DF2\u4FDD\u5B58\uFF1B\u7559\u7A7A\u5219\u4FDD\u6301\u4E0D\u53D8' : '\u7C98\u8D34\u5BA2\u6237\u7AEF\u4EE4\u724C'} autoComplete=\"new-password\" onChange={event => edit(() => { setRemoteToken(event.target.value) })} aria-invalid={tokenError !== undefined} aria-describedby=\"dsh-knowledge-token-help\" />\n <small id=\"dsh-knowledge-token-help\" className={tokenError ? 'dsh-knowledge-field-error' : undefined}>{tokenError ?? (current?.tokenConfigured ? '\u4EE4\u724C\u5DF2\u5B89\u5168\u4FDD\u5B58\uFF0C\u9875\u9762\u65E0\u6CD5\u8BFB\u53D6\uFF1B\u8F93\u5165\u65B0\u4EE4\u724C\u53EF\u8986\u76D6\u3002' : '\u4EE4\u724C\u4FDD\u5B58\u540E\u4E0D\u53EF\u8BFB\u53D6\uFF0C\u53EA\u80FD\u8986\u76D6\u3002')}</small>\n </label>\n </div>}\n <label className=\"dsh-knowledge-timeout-field\" htmlFor=\"dsh-knowledge-timeout\">\u8BF7\u6C42\u8D85\u65F6\uFF08\u6BEB\u79D2\uFF09\n <input id=\"dsh-knowledge-timeout\" type=\"number\" min=\"100\" max=\"120000\" step=\"100\" value={timeout} onChange={event => edit(() => { setTimeoutValue(event.target.value) })} aria-invalid={timeoutError !== undefined} />\n {timeoutError && <small className=\"dsh-knowledge-field-error\">{timeoutError}</small>}\n </label>\n {!current?.writable && <p className=\"dsh-knowledge-settings-note\">\u5F53\u524D\u63D2\u4EF6\u6CA1\u6709\u914D\u7F6E\u6301\u4E45\u5316\u8DEF\u5F84\uFF0C\u65E0\u6CD5\u4FDD\u5B58\u8FDE\u63A5\u3002</p>}\n {message && <p className={`dsh-knowledge-settings-message is-${message.kind}`} role={message.kind === 'error' ? 'alert' : 'status'} aria-live=\"polite\">{message.text}</p>}\n <div className=\"dsh-knowledge-settings-actions\">\n <button type=\"button\" onClick={reset} disabled={!dirty || saving}>\u653E\u5F03\u66F4\u6539</button>\n <button type=\"button\" className=\"is-primary\" onClick={() => { void save() }} disabled={!dirty || invalid || saving || !current?.writable}>{saving ? '\u6B63\u5728\u9A8C\u8BC1\u2026' : '\u9A8C\u8BC1\u5E76\u8FDE\u63A5'}</button>\n </div>\n </>}\n </div>}\n </li>\n )\n}\n\nfunction validateRemoteUrl(value: string): string | undefined {\n try {\n const url = new URL(value.trim())\n const loopback = url.hostname === 'localhost' || url.hostname === '127.0.0.1' || url.hostname === '::1'\n if (url.protocol !== 'https:' && !(url.protocol === 'http:' && loopback)) return '\u8FDC\u7A0B\u77E5\u8BC6\u5E93\u5FC5\u987B\u4F7F\u7528 HTTPS\u3002'\n return undefined\n } catch { return '\u8BF7\u8F93\u5165\u5B8C\u6574\u7684\u77E5\u8BC6\u5E93 API \u5730\u5740\u3002' }\n}\n\nfunction connectionErrorMessage(error: unknown): string {\n const message = error instanceof Error ? error.message : String(error)\n if (message.includes('Failed to fetch')) return '\u65E0\u6CD5\u8BBF\u95EE\u63D2\u4EF6\u8FDE\u63A5\u63A5\u53E3\uFF0C\u8BF7\u786E\u8BA4\u63D2\u4EF6\u670D\u52A1\u5DF2\u52A0\u8F7D\u3002'\n return message || '\u8FDE\u63A5\u914D\u7F6E\u64CD\u4F5C\u5931\u8D25\uFF0C\u8BF7\u68C0\u67E5\u5730\u5740\u3001\u4EE4\u724C\u548C DSH \u65E5\u5FD7\u3002'\n}\n\nasync function requestConnection(\n method: 'GET' | 'PUT',\n body?: Record<string, unknown>,\n signal?: AbortSignal,\n): Promise<KnowledgeConnectionView> {\n const response = await fetch(CONNECTION_CONTROL_PATH, {\n method,\n headers: { accept: 'application/json', ...body === undefined ? {} : { 'content-type': 'application/json' } },\n ...body === undefined ? {} : { body: JSON.stringify(body) },\n ...signal === undefined ? {} : { signal },\n })\n const payload = await response.json().catch(() => undefined) as unknown\n if (!response.ok) {\n const message = payload !== null && typeof payload === 'object' && typeof (payload as { error?: unknown }).error === 'string'\n ? (payload as { error: string }).error\n : `\u8FDE\u63A5\u63A5\u53E3\u8FD4\u56DE HTTP ${response.status}`\n throw new Error(message)\n }\n if (!isConnectionView(payload)) throw new Error('\u63D2\u4EF6\u8FDE\u63A5\u63A5\u53E3\u8FD4\u56DE\u4E86\u65E0\u6548\u6570\u636E\u3002')\n return payload\n}\n\nfunction isConnectionView(value: unknown): value is KnowledgeConnectionView {\n if (value === null || typeof value !== 'object') return false\n const item = value as Partial<KnowledgeConnectionView>\n return (item.backend === 'local' || item.backend === 'remote')\n && Number.isInteger(item.remoteTimeoutMs)\n && typeof item.tokenConfigured === 'boolean'\n && typeof item.canSwitchRemote === 'boolean'\n && typeof item.writable === 'boolean'\n && typeof item.managementAvailable === 'boolean'\n && (!item.managementAvailable || isManagementPath(item.managementPath))\n}\n\nfunction isManagementPath(value: unknown): value is string {\n return typeof value === 'string' && value.startsWith('/') && !value.startsWith('//')\n}\n\nfunction KnowledgeLauncher({ wide, workspace }: SidebarActionProps & { workspace: KnowledgeWorkspaceController }) {\n const [open, setOpen] = useState(workspace.isOpen())\n\n useEffect(() => workspace.subscribe(() => { setOpen(workspace.isOpen()) }), [workspace])\n\n return (\n <button\n type=\"button\"\n className={`dsh-knowledge-trigger${wide ? '' : ' dsh-knowledge-trigger--rail'}${open ? ' is-active' : ''}`}\n aria-label={open ? '\u8FD4\u56DE\u5BF9\u8BDD' : '\u77E5\u8BC6\u5E93'}\n aria-pressed={open}\n title={wide ? undefined : open ? '\u8FD4\u56DE\u5BF9\u8BDD' : '\u77E5\u8BC6\u5E93'}\n onClick={() => { workspace.toggle() }}\n >\n <IconDataOutline16 size={wide ? 16 : 18} />\n {wide && <span>{open ? '\u8FD4\u56DE\u5BF9\u8BDD' : '\u77E5\u8BC6\u5E93'}</span>}\n </button>\n )\n}\n\nfunction KnowledgeWorkspace({\n sessionId,\n useSessions,\n client,\n workspace,\n}: ConversationSlotProps & { client: ClientContext; workspace: KnowledgeWorkspaceController }) {\n const [panelState, setPanelState] = useState<'loading' | 'ready' | 'unavailable' | 'error'>('loading')\n const [managementPath, setManagementPath] = useState<string>()\n const [panelError, setPanelError] = useState('')\n const projectId = useSessions(state => sessionId === undefined ? undefined : state.byId[sessionId]?.cwd)\n const knowledgeUrl = managementPath === undefined ? undefined : knowledgePanelUrl(managementPath, sessionId, projectId)\n const frame = useRef<HTMLIFrameElement | null>(null)\n const themeFrame = useRef(0)\n\n const loadManagement = useCallback(async (): Promise<void> => {\n setPanelState('loading')\n setPanelError('')\n try {\n const connection = await requestConnection('GET')\n if (!connection.managementAvailable || connection.managementPath === undefined) {\n setManagementPath(undefined)\n setPanelState('unavailable')\n return\n }\n setManagementPath(connection.managementPath)\n setPanelState('ready')\n } catch (error) {\n setManagementPath(undefined)\n setPanelError(connectionErrorMessage(error))\n setPanelState('error')\n }\n }, [])\n\n useEffect(() => {\n void loadManagement()\n }, [loadManagement])\n\n const sendTheme = useCallback((): void => {\n const currentFrame = frame.current\n if (currentFrame === null) return\n const target = currentFrame.contentWindow\n if (target === null) return\n const computed = getComputedStyle(document.body)\n target.postMessage(\n createKnowledgeHostTheme(computed, client.theme.getTheme()),\n frameOrigin(currentFrame) ?? '*',\n )\n }, [client])\n\n const scheduleTheme = useCallback((): void => {\n if (themeFrame.current !== 0) window.cancelAnimationFrame(themeFrame.current)\n themeFrame.current = window.requestAnimationFrame(() => {\n themeFrame.current = 0\n sendTheme()\n })\n }, [sendTheme])\n\n useEffect(() => {\n const off = client.on('theme/change', scheduleTheme)\n const onMessage = (event: MessageEvent): void => {\n const currentFrame = frame.current\n if (event.source !== currentFrame?.contentWindow) return\n const expectedOrigin = frameOrigin(currentFrame)\n if (expectedOrigin !== undefined && event.origin !== expectedOrigin) return\n const data = event.data as { type?: unknown; version?: unknown } | null\n if (data?.type === KNOWLEDGE_THEME_READY_MESSAGE && data.version === KNOWLEDGE_THEME_PROTOCOL_VERSION) sendTheme()\n }\n window.addEventListener('message', onMessage)\n scheduleTheme()\n return () => {\n off()\n window.removeEventListener('message', onMessage)\n if (themeFrame.current !== 0) window.cancelAnimationFrame(themeFrame.current)\n }\n }, [client, scheduleTheme, sendTheme])\n\n return (\n <section className=\"dsh-knowledge-workspace\" data-xiaohei-surface=\"plugin-workspace\" aria-labelledby=\"dsh-knowledge-workspace-title\">\n <header className=\"dsh-knowledge-workspace-header\">\n <div>\n <button type=\"button\" data-xiaohei-workspace-close onClick={workspace.close} aria-label=\"\u8FD4\u56DE\u4F1A\u8BDD\" title=\"\u8FD4\u56DE\u4F1A\u8BDD\"><IconChevronLeftOutline14 size={15} /></button>\n <IconDataOutline16 size={18} />\n <span><h2 id=\"dsh-knowledge-workspace-title\">\u77E5\u8BC6\u5E93</h2><p>\u6587\u6863\u3001\u5BA1\u6838\u3001\u6302\u8F7D\u4E0E\u8BBF\u95EE\u7BA1\u7406</p></span>\n </div>\n </header>\n {panelState === 'ready' && knowledgeUrl !== undefined\n ? <iframe ref={frame} className=\"dsh-knowledge-frame\" src={knowledgeUrl} title=\"\u77E5\u8BC6\u5E93\u7BA1\u7406\u53F0\" onLoad={sendTheme} />\n : <div className=\"dsh-knowledge-panel-state\" role={panelState === 'error' ? 'alert' : 'status'} aria-live=\"polite\">\n <span className=\"dsh-knowledge-panel-state-icon\" aria-hidden=\"true\">{panelState === 'loading' ? '\u00B7\u00B7\u00B7' : panelState === 'error' ? '!' : '\u2014'}</span>\n <div>\n <h3>{panelState === 'loading' ? '\u6B63\u5728\u6253\u5F00\u77E5\u8BC6\u5E93\u2026' : panelState === 'error' ? '\u6682\u65F6\u65E0\u6CD5\u6253\u5F00\u77E5\u8BC6\u5E93' : '\u8FD9\u53F0 DSH \u672A\u542F\u7528\u77E5\u8BC6\u5E93\u7BA1\u7406\u53F0'}</h3>\n <p>{panelState === 'loading'\n ? '\u6B63\u5728\u786E\u8BA4\u5F53\u524D\u5B9E\u4F8B\u662F\u5426\u63D0\u4F9B\u7BA1\u7406\u9875\u9762\u3002'\n : panelState === 'error'\n ? panelError\n : '\u672C\u5730\u53EC\u56DE\u548C\u56DE\u5199\u4ECD\u53EF\u4F7F\u7528\u3002\u5F53\u524D profile \u5DF2\u663E\u5F0F\u5173\u95ED exposeWeb\uFF1B\u91CD\u65B0\u542F\u7528\u540E\u5373\u53EF\u5728\u8FD9\u91CC\u7BA1\u7406\u3002\u4F7F\u7528\u8FDC\u7A0B\u77E5\u8BC6\u5E93\u65F6\uFF0C\u8BF7\u524D\u5F80\u4E2D\u592E DSH \u7684\u77E5\u8BC6\u5E93\u7BA1\u7406\u53F0\u3002'}</p>\n {panelState === 'error' && <button type=\"button\" onClick={() => { void loadManagement() }}>\u91CD\u8BD5</button>}\n </div>\n </div>}\n </section>\n )\n}\n\nfunction knowledgePanelUrl(managementPath: string, sessionId?: string, projectId?: string): string {\n const params = new URLSearchParams()\n if (sessionId !== undefined) params.set('sessionId', sessionId)\n if (projectId !== undefined) params.set('projectId', projectId)\n const query = params.toString()\n return query.length === 0 ? managementPath : `${managementPath}${managementPath.includes('?') ? '&' : '?'}${query}`\n}\n\nfunction frameOrigin(frame: HTMLIFrameElement): string | undefined {\n try {\n const origin = new URL(frame.src).origin\n return origin === 'null' ? undefined : origin\n } catch {\n return undefined\n }\n}\n\nfunction installStyles(): () => void {\n const previous = document.querySelector<HTMLStyleElement>(`style[data-plugin-css=\"${STYLE_ID}\"]`)\n previous?.remove()\n const style = document.createElement('style')\n style.dataset.plugin = PLUGIN_ID\n style.dataset.pluginCss = STYLE_ID\n style.textContent = cssText\n document.head.appendChild(style)\n return () => { style.remove() }\n}\n", null, ".dsh-knowledge-trigger {\n flex: none;\n display: flex;\n align-items: center;\n gap: 8px;\n width: calc(100% + 8px);\n height: 34px;\n margin: 4px -4px;\n padding: 6px 2px 6px 10px;\n box-sizing: border-box;\n border: 0;\n border-radius: 12px;\n overflow: hidden;\n background: transparent;\n color: var(--dsw-alias-label-primary);\n cursor: pointer;\n font: inherit;\n font-size: 14px;\n line-height: 22px;\n white-space: nowrap;\n}\n\n.dsh-knowledge-trigger:hover {\n background: var(--dsw-alias-interactive-bg-hover);\n}\n\n.dsh-knowledge-trigger.is-active {\n background: var(--dsw-alias-interactive-bg-selected, var(--dsw-alias-interactive-bg-hover));\n color: var(--dsw-alias-interactive-primary, currentColor);\n}\n\n.dsh-knowledge-trigger--rail {\n width: 36px;\n height: 36px;\n margin: 8px 0 4px;\n padding: 0;\n justify-content: center;\n gap: 0;\n border-radius: 50%;\n}\n\n.dsh-knowledge-workspace {\n --knowledge-pane: var(--xiaohei-plugin-pane-fill, var(--dsw-alias-bg-base, #f7f8f7));\n --knowledge-raised: var(--xiaohei-plugin-raised-fill, var(--dsw-alias-bg-layer-2, #fff));\n --knowledge-control: var(--xiaohei-plugin-control-fill, var(--dsw-alias-bg-layer-1, #fff));\n width: 100%;\n height: 100%;\n min-width: 0;\n min-height: 0;\n display: flex;\n flex-direction: column;\n overflow: hidden;\n background: var(--knowledge-pane);\n}\n\n.dsh-knowledge-workspace-header {\n flex: none;\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 16px;\n min-height: 56px;\n padding: 8px 16px 8px 20px;\n box-sizing: border-box;\n border-bottom: 1px solid var(--dsw-alias-divider-primary, rgba(128, 128, 128, .18));\n background: var(--knowledge-pane);\n}\n\n.dsh-knowledge-workspace-header > div {\n display: flex;\n align-items: center;\n gap: 10px;\n min-width: 0;\n}\n\n.dsh-knowledge-workspace-header [data-xiaohei-workspace-close] {\n -webkit-appearance: none;\n appearance: none;\n display: grid;\n place-items: center;\n box-sizing: border-box;\n flex: none;\n width: 30px;\n height: 30px;\n margin: 0;\n padding: 0;\n border: 1px solid transparent;\n border-radius: 9px;\n color: var(--dsw-alias-label-secondary, #68686f);\n background: transparent;\n font: inherit;\n line-height: 1;\n -webkit-tap-highlight-color: transparent;\n cursor: pointer;\n transition: color 140ms ease, background 140ms ease, border-color 140ms ease, transform 140ms ease;\n}\n\n.dsh-knowledge-workspace-header [data-xiaohei-workspace-close]:hover {\n border-color: var(--dsw-alias-divider-primary, rgba(128, 128, 128, .18));\n color: var(--dsw-alias-label-primary, #171719);\n background: var(--dsw-alias-interactive-bg-hover, rgba(128, 128, 128, .08));\n}\n\n.dsh-knowledge-workspace-header [data-xiaohei-workspace-close]:active { transform: scale(.96); }\n.dsh-knowledge-workspace-header [data-xiaohei-workspace-close]:focus-visible {\n outline: 2px solid var(--dsw-alias-interactive-primary, #335cff);\n outline-offset: 2px;\n}\n.dsh-knowledge-workspace-header [data-xiaohei-workspace-close] > svg {\n display: block;\n pointer-events: none;\n}\n\n.dsh-knowledge-workspace-header > div > span {\n display: grid;\n min-width: 0;\n gap: 2px;\n}\n\n.dsh-knowledge-workspace-header h2,\n.dsh-knowledge-workspace-header p {\n margin: 0;\n}\n\n.dsh-knowledge-workspace-header h2 {\n color: var(--dsw-alias-label-primary);\n font-size: 15px;\n line-height: 22px;\n font-weight: 600;\n}\n\n.dsh-knowledge-workspace-header p {\n color: var(--dsw-alias-label-secondary);\n font-size: 11px;\n line-height: 16px;\n}\n\n.dsh-knowledge-frame {\n flex: 1;\n width: 100%;\n min-height: 0;\n border: 0;\n background: transparent;\n}\n\n.dsh-knowledge-panel-state {\n flex: 1;\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 16px;\n min-height: 0;\n padding: 32px;\n box-sizing: border-box;\n background: transparent;\n color: var(--dsw-alias-label-primary, #171719);\n}\n\n.dsh-knowledge-panel-state-icon {\n flex: none;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 40px;\n height: 40px;\n border-radius: 12px;\n background: var(--dsw-alias-interactive-bg-hover, rgba(128, 128, 128, .1));\n color: var(--dsw-alias-label-secondary, #68686f);\n font-size: 18px;\n font-weight: 600;\n}\n\n.dsh-knowledge-panel-state > div { max-width: 560px; }\n.dsh-knowledge-panel-state h3 { margin: 0 0 6px; font-size: 17px; line-height: 24px; font-weight: 600; }\n.dsh-knowledge-panel-state p { margin: 0; color: var(--dsw-alias-label-secondary, #68686f); font-size: 13px; line-height: 20px; }\n.dsh-knowledge-panel-state button {\n min-width: 72px;\n min-height: 32px;\n margin-top: 16px;\n padding: 6px 14px;\n border: 0;\n border-radius: 10px;\n background: var(--dsw-alias-interactive-primary, #335cff);\n color: #fff;\n cursor: pointer;\n font: inherit;\n}\n.dsh-knowledge-panel-state button:focus-visible {\n outline: 2px solid var(--dsw-alias-interactive-primary, #335cff);\n outline-offset: 2px;\n}\n\n.dsh-knowledge-settings-card {\n list-style: none;\n overflow: hidden;\n border: 1px solid var(--dsw-alias-divider-primary, rgba(128, 128, 128, .18));\n border-radius: 18px;\n background: var(--xiaohei-plugin-raised-fill, var(--dsw-alias-bg-layer-2, #fff));\n color: var(--dsw-alias-label-primary, #171719);\n}\n\n.dsh-knowledge-settings-card--open {\n box-shadow: 0 10px 32px rgba(0, 0, 0, .07);\n}\n\n.dsh-knowledge-settings-header {\n display: flex;\n width: 100%;\n align-items: center;\n justify-content: space-between;\n gap: 20px;\n padding: 18px 20px;\n border: 0;\n background: transparent;\n color: inherit;\n text-align: left;\n cursor: pointer;\n}\n\n.dsh-knowledge-settings-header:hover { background: var(--dsw-alias-interactive-bg-hover, rgba(128, 128, 128, .08)); }\n.dsh-knowledge-settings-header:focus-visible,\n.dsh-knowledge-settings-actions button:focus-visible,\n.dsh-knowledge-settings-load-error button:focus-visible {\n outline: 2px solid var(--dsw-alias-interactive-primary, #335cff);\n outline-offset: 2px;\n}\n.dsh-knowledge-settings-header > span:first-child { display: grid; gap: 3px; }\n.dsh-knowledge-settings-header strong { font-size: 15px; font-weight: 600; }\n.dsh-knowledge-settings-header small,\n.dsh-knowledge-source-picker small,\n.dsh-knowledge-remote-fields small { color: var(--dsw-alias-label-secondary, #68686f); font-size: 12px; }\n.dsh-knowledge-settings-summary { flex: none; color: var(--dsw-alias-label-secondary, #68686f); font-size: 12px; }\n\n.dsh-knowledge-settings-body {\n display: grid;\n gap: 18px;\n padding: 4px 20px 20px;\n border-top: 1px solid var(--dsw-alias-divider-primary, rgba(128, 128, 128, .14));\n}\n\n.dsh-knowledge-source-picker {\n display: grid;\n grid-template-columns: repeat(2, minmax(0, 1fr));\n gap: 10px;\n margin: 18px 0 0;\n padding: 0;\n border: 0;\n}\n\n.dsh-knowledge-source-picker legend { margin-bottom: 8px; font-size: 13px; font-weight: 600; }\n.dsh-knowledge-source-picker label {\n display: flex;\n gap: 10px;\n padding: 13px;\n border: 1px solid var(--dsw-alias-divider-primary, rgba(128, 128, 128, .2));\n border-radius: 14px;\n cursor: pointer;\n}\n.dsh-knowledge-source-picker label.is-selected {\n border-color: var(--dsw-alias-interactive-primary, #335cff);\n background: color-mix(in srgb, var(--dsw-alias-interactive-primary, #335cff) 7%, transparent);\n}\n.dsh-knowledge-source-picker label.is-disabled {\n cursor: default;\n opacity: .55;\n}\n.dsh-knowledge-source-picker label:focus-within {\n outline: 2px solid var(--dsw-alias-interactive-primary, #335cff);\n outline-offset: 2px;\n}\n.dsh-knowledge-source-picker input { margin-top: 2px; accent-color: var(--dsw-alias-interactive-primary, #335cff); }\n.dsh-knowledge-source-picker span { display: grid; gap: 3px; }\n\n.dsh-knowledge-remote-fields { display: grid; grid-template-columns: 1.25fr 1fr; gap: 12px; }\n.dsh-knowledge-remote-fields label,\n.dsh-knowledge-timeout-field { display: grid; gap: 6px; color: var(--dsw-alias-label-secondary, #68686f); font-size: 12px; }\n.dsh-knowledge-remote-fields input,\n.dsh-knowledge-timeout-field input {\n min-height: 38px;\n box-sizing: border-box;\n padding: 8px 11px;\n border: 1px solid var(--dsw-alias-divider-primary, rgba(128, 128, 128, .25));\n border-radius: 10px;\n outline: none;\n background: var(--xiaohei-plugin-control-fill, var(--dsw-alias-bg-layer-1, #fff));\n color: var(--dsw-alias-label-primary, #171719);\n font: inherit;\n}\n.dsh-knowledge-remote-fields input:focus,\n.dsh-knowledge-timeout-field input:focus { border-color: var(--dsw-alias-interactive-primary, #335cff); box-shadow: 0 0 0 3px rgba(51, 92, 255, .12); }\n.dsh-knowledge-timeout-field { max-width: 240px; }\n.dsh-knowledge-field-error { color: #c9362b !important; }\n\n.dsh-knowledge-settings-message,\n.dsh-knowledge-settings-note { margin: 0; color: var(--dsw-alias-label-secondary, #68686f); font-size: 12px; }\n.dsh-knowledge-settings-message.is-success { color: #15803d; }\n.dsh-knowledge-settings-message.is-error { color: #c9362b; }\n.dsh-knowledge-settings-load-error {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 12px;\n margin-top: 18px;\n padding: 12px 14px;\n border-radius: 12px;\n background: color-mix(in srgb, #c9362b 8%, transparent);\n color: #c9362b;\n font-size: 13px;\n}\n.dsh-knowledge-settings-load-error p { margin: 0; }\n.dsh-knowledge-settings-load-error button {\n flex: none;\n min-height: 30px;\n padding: 5px 10px;\n border: 0;\n border-radius: 9px;\n background: var(--xiaohei-plugin-control-fill, var(--dsw-alias-bg-layer-2, #fff));\n color: var(--dsw-alias-label-primary, #171719);\n cursor: pointer;\n font: inherit;\n}\n.dsh-knowledge-settings-actions { display: flex; justify-content: flex-end; gap: 8px; }\n.dsh-knowledge-settings-actions button {\n min-height: 34px;\n padding: 7px 13px;\n border: 0;\n border-radius: 10px;\n background: var(--dsw-alias-interactive-bg-hover, rgba(128, 128, 128, .1));\n color: var(--dsw-alias-label-primary, #171719);\n cursor: pointer;\n font: inherit;\n font-size: 13px;\n}\n.dsh-knowledge-settings-actions button.is-primary { background: var(--dsw-alias-interactive-primary, #335cff); color: #fff; }\n.dsh-knowledge-settings-actions button:disabled { cursor: default; opacity: .45; }\n\n@media (max-width: 720px) {\n .dsh-knowledge-source-picker,\n .dsh-knowledge-remote-fields { grid-template-columns: 1fr; }\n}\n\n.dsh-knowledge-writeback-status {\n display: flex;\n align-items: center;\n gap: 8px;\n min-width: 0;\n color: var(--dsw-alias-label-tertiary, #6b7280);\n font-size: 12px;\n line-height: 1.5;\n}\n.dsh-knowledge-writeback-status strong {\n color: var(--dsw-alias-label-secondary, #374151);\n font-weight: 600;\n}\n.dsh-knowledge-writeback-status button {\n min-height: 24px;\n padding: 0 9px;\n border: 1px solid var(--dsw-alias-separator, #d1d5db);\n border-radius: 7px;\n color: var(--dsw-alias-label-secondary, #374151);\n background: var(--dsw-alias-button-elevated-fill, #fff);\n cursor: pointer;\n font: inherit;\n}\n.dsh-knowledge-writeback-status button:disabled { cursor: default; opacity: .5; }\n", "/** Host settings namespace that makes the knowledge connection card discoverable. */\nexport const KNOWLEDGE_SETTINGS_NAMESPACE = 'dsh-knowledge-connection'\n", "export const KNOWLEDGE_THEME_MESSAGE = '@lemoncat7/dsh-knowledge/host-theme'\nexport const KNOWLEDGE_THEME_READY_MESSAGE = '@lemoncat7/dsh-knowledge/host-theme-ready'\nexport const KNOWLEDGE_THEME_PROTOCOL_VERSION = 1\n\nexport type KnowledgeColorScheme = 'light' | 'dark'\n\nexport interface KnowledgeHostThemeMessage {\n type: typeof KNOWLEDGE_THEME_MESSAGE\n version: typeof KNOWLEDGE_THEME_PROTOCOL_VERSION\n colorScheme: KnowledgeColorScheme\n tokens: Record<string, string>\n}\n\nexport interface ThemeSnapshotLike {\n active: {\n colorScheme: KnowledgeColorScheme\n tokens: Readonly<Record<string, string>>\n }\n}\n\ninterface ComputedStyleLike {\n getPropertyValue(name: string): string\n}\n\nconst TOKEN_SOURCES = {\n '--bg': ['--xiaohei-plugin-workspace-fill', '--dsw-alias-bg-layer-1', '--dsw-alias-bg-base'],\n '--surface': ['--xiaohei-plugin-pane-fill', '--dsw-alias-bg-layer-2', '--dsw-alias-bg-layer-1'],\n '--surface-raised': ['--xiaohei-plugin-raised-fill', '--dsw-alias-bg-layer-3', '--dsw-alias-bg-overlay', '--dsw-alias-bg-layer-2'],\n '--surface-soft': ['--xiaohei-plugin-control-fill', '--dsw-alias-bg-module-platform', '--dsw-alias-bg-layer-3', '--dsw-alias-bg-layer-2'],\n '--surface-hover': ['--dsw-alias-interactive-bg-hover', '--dsw-alias-bg-layer-3'],\n '--text': ['--dsw-alias-label-primary'],\n '--text-secondary': ['--dsw-alias-label-secondary', '--dsw-alias-label-primary-dimmed'],\n '--text-tertiary': ['--dsw-alias-label-tertiary', '--dsw-alias-label-caption'],\n '--border': ['--dsw-alias-border-l2', '--dsw-alias-divider-primary', '--dsw-alias-border-l1'],\n '--border-strong': ['--dsw-alias-border-l3', '--dsw-alias-border-l2'],\n '--accent': ['--dsw-alias-button-primary-fill', '--dsw-alias-brand-primary'],\n '--accent-hover': ['--dsw-alias-button-primary-hover', '--dsw-alias-brand-primary'],\n '--accent-soft': ['--dsw-alias-interactive-bg-active', '--dsw-alias-interactive-bg-hover-accent'],\n '--on-accent': ['--dsw-alias-label-primary-foreground', '--dsw-alias-brand-primary-invert'],\n '--success': ['--dsw-alias-state-success-primary'],\n '--success-soft': ['--dsw-alias-state-success-tertiary'],\n '--warning': ['--dsw-alias-state-warn-primary', '--dsw-alias-state-warn-label'],\n '--warning-soft': ['--dsw-alias-state-warn-tertiary'],\n '--danger': ['--dsw-alias-state-error-primary'],\n '--danger-soft': ['--dsw-alias-state-error-tertiary'],\n '--shadow': ['--dsw-shadow-lv3', '--dsw-shadow-lv2'],\n} as const\n\nconst FALLBACK_TOKENS: Record<KnowledgeColorScheme, Readonly<Record<string, string>>> = {\n light: {\n '--bg': '#f5f5f7', '--surface': '#ffffff', '--surface-raised': '#ffffff',\n '--surface-soft': '#f0f0f3', '--surface-hover': '#f5f5f8',\n '--text': '#1d1d1f', '--text-secondary': '#4c4c50', '--text-tertiary': '#6e6e73',\n '--border': '#dedee3', '--border-strong': '#c7c7cc',\n '--accent': '#086bd8', '--accent-hover': '#005ab8', '--accent-soft': '#e8f2ff', '--on-accent': '#ffffff',\n '--success': '#18794e', '--success-soft': '#e8f5ee', '--warning': '#986800', '--warning-soft': '#fff4cf',\n '--danger': '#c9343a', '--danger-soft': '#fdebec', '--shadow': '0 18px 48px rgb(30 45 70 / 10%)',\n },\n dark: {\n '--bg': '#101012', '--surface': '#1c1c1e', '--surface-raised': '#242426',\n '--surface-soft': '#2c2c2e', '--surface-hover': '#303033',\n '--text': '#f5f5f7', '--text-secondary': '#c7c7cc', '--text-tertiary': '#98989d',\n '--border': '#353538', '--border-strong': '#4a4a4f',\n '--accent': '#64a8ff', '--accent-hover': '#82b8ff', '--accent-soft': '#17365d', '--on-accent': '#0c1b2c',\n '--success': '#62c596', '--success-soft': '#163a2a', '--warning': '#e7bc62', '--warning-soft': '#423414',\n '--danger': '#ff858a', '--danger-soft': '#4b2227', '--shadow': '0 16px 40px rgb(0 0 0 / 28%)',\n },\n}\n\n/** Translate DSH's public semantic palette into the knowledge console's tokens. */\nexport function createKnowledgeHostTheme(\n computed: ComputedStyleLike,\n snapshot: ThemeSnapshotLike,\n): KnowledgeHostThemeMessage {\n const tokens: Record<string, string> = {}\n for (const [target, sources] of Object.entries(TOKEN_SOURCES)) {\n const value = firstDefinedToken(computed, snapshot.active.tokens, sources)\n tokens[target] = value ?? FALLBACK_TOKENS[snapshot.active.colorScheme][target]!\n }\n return {\n type: KNOWLEDGE_THEME_MESSAGE,\n version: KNOWLEDGE_THEME_PROTOCOL_VERSION,\n colorScheme: snapshot.active.colorScheme,\n tokens,\n }\n}\n\nfunction firstDefinedToken(\n computed: ComputedStyleLike,\n snapshotTokens: Readonly<Record<string, string>>,\n sources: readonly string[],\n): string | undefined {\n for (const source of sources) {\n const computedValue = computed.getPropertyValue(source).trim()\n if (computedValue.length > 0) return computedValue\n const snapshotValue = snapshotTokens[source]?.trim()\n if (snapshotValue !== undefined && snapshotValue.length > 0) return snapshotValue\n }\n return undefined\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": ["import_react", "import_jsx_runtime"]
|
|
7
7
|
}
|
package/lib/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAClD,OAAO,MAAM,MAAM,0BAA0B,CAAA;AAY7C,OAAO,EAAE,MAAM,IAAI,YAAY,EAAiB,KAAK,MAAM,IAAI,eAAe,EAAE,MAAM,aAAa,CAAA;AAgBnG,eAAO,MAAM,MAAM,sBAAe,CAAA;AAClC,MAAM,MAAM,MAAM,GAAG,eAAe,CAAA;AACpC,cAAc,aAAa,CAAA;AAC3B,cAAc,eAAe,CAAA;AAC7B,OAAO,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAA;AAC5D,OAAO,EAAE,uBAAuB,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAA;AAEnF,yCAAyC;AACzC,eAAO,MAAM,IAAI,kBAAkB,CAAA;AAEnC,yFAAyF;AACzF,eAAO,MAAM,MAAM,UAAmB,CAAA;AAEtC,4FAA4F;AAC5F,wBAAgB,KAAK,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,eAAe,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAClD,OAAO,MAAM,MAAM,0BAA0B,CAAA;AAY7C,OAAO,EAAE,MAAM,IAAI,YAAY,EAAiB,KAAK,MAAM,IAAI,eAAe,EAAE,MAAM,aAAa,CAAA;AAgBnG,eAAO,MAAM,MAAM,sBAAe,CAAA;AAClC,MAAM,MAAM,MAAM,GAAG,eAAe,CAAA;AACpC,cAAc,aAAa,CAAA;AAC3B,cAAc,eAAe,CAAA;AAC7B,OAAO,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAA;AAC5D,OAAO,EAAE,uBAAuB,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAA;AAEnF,yCAAyC;AACzC,eAAO,MAAM,IAAI,kBAAkB,CAAA;AAEnC,yFAAyF;AACzF,eAAO,MAAM,MAAM,UAAmB,CAAA;AAEtC,4FAA4F;AAC5F,wBAAgB,KAAK,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,eAAe,GAAG,IAAI,CAwRjE"}
|
package/lib/index.js
CHANGED
|
@@ -64,6 +64,8 @@ export function apply(ctx, config) {
|
|
|
64
64
|
let activeConnection = initialConnection;
|
|
65
65
|
const coordinator = new ExtractionCoordinator(runtime, provider, resolved);
|
|
66
66
|
const writebackStatuses = new Map();
|
|
67
|
+
const writebackSources = new Map();
|
|
68
|
+
let runWriteback;
|
|
67
69
|
const handleCodec = new KnowledgeHandleCodec(randomBytes(32));
|
|
68
70
|
const managementEmbedToken = randomBytes(32).toString('base64url');
|
|
69
71
|
registerKnowledgeRecall(runtime, provider, resolved, handleCodec);
|
|
@@ -163,6 +165,7 @@ export function apply(ctx, config) {
|
|
|
163
165
|
disposeManagementApi = registerKnowledgeApi(httpRuntime, managementProvider, LOCAL_MANAGEMENT_API_PREFIX, {
|
|
164
166
|
authMode: 'same-origin',
|
|
165
167
|
service: { current: publicApiView, update: updatePublicApi },
|
|
168
|
+
validateModel: async (provider, model) => { await runtime.llm.resolveModelInfo(provider, model); },
|
|
166
169
|
});
|
|
167
170
|
}
|
|
168
171
|
};
|
|
@@ -189,22 +192,54 @@ export function apply(ctx, config) {
|
|
|
189
192
|
const disposeWritebackStatus = httpRuntime.webServer?.register({
|
|
190
193
|
kind: 'exact',
|
|
191
194
|
path: '/knowledge-control/v1/writeback-status',
|
|
192
|
-
handler(req, res) {
|
|
193
|
-
if (req.method !== 'GET') {
|
|
194
|
-
res.writeHead(405, { allow: 'GET' }).end();
|
|
195
|
+
async handler(req, res) {
|
|
196
|
+
if (req.method !== 'GET' && req.method !== 'POST') {
|
|
197
|
+
res.writeHead(405, { allow: 'GET, POST' }).end();
|
|
195
198
|
return;
|
|
196
199
|
}
|
|
197
200
|
const url = new URL(req.url ?? '/', 'http://localhost');
|
|
198
201
|
const key = `${url.searchParams.get('sessionId') ?? ''}:${url.searchParams.get('turn') ?? ''}`;
|
|
199
|
-
|
|
200
|
-
|
|
202
|
+
let state = writebackStatuses.get(key);
|
|
203
|
+
if (req.method === 'POST') {
|
|
204
|
+
if (req.headers['x-dsh-knowledge-client'] !== 'conversation-web') {
|
|
205
|
+
res.writeHead(403, { 'content-type': 'application/json; charset=utf-8' }).end(JSON.stringify({ error: 'missing knowledge client header' }));
|
|
206
|
+
return;
|
|
207
|
+
}
|
|
208
|
+
const source = writebackSources.get(key);
|
|
209
|
+
if (state?.status !== 'failed' || !state.retryable || source === undefined) {
|
|
210
|
+
res.writeHead(409, { 'content-type': 'application/json; charset=utf-8' }).end(JSON.stringify({ error: 'writeback is not retryable' }));
|
|
211
|
+
return;
|
|
212
|
+
}
|
|
213
|
+
state = await runWriteback(source.agent, source.turn, new AbortController().signal);
|
|
214
|
+
}
|
|
215
|
+
res.writeHead(state === undefined ? 404 : 200, {
|
|
201
216
|
'content-type': 'application/json; charset=utf-8',
|
|
202
217
|
'cache-control': 'no-store',
|
|
203
|
-
}).end(JSON.stringify(
|
|
218
|
+
}).end(JSON.stringify(state === undefined ? { status: 'missing' } : state));
|
|
204
219
|
},
|
|
205
220
|
});
|
|
206
221
|
if (disposeWritebackStatus !== undefined)
|
|
207
222
|
httpRuntime.effect(() => disposeWritebackStatus, 'dsh-knowledge.writeback-status');
|
|
223
|
+
const disposeModelCatalog = httpRuntime.webServer?.register({
|
|
224
|
+
kind: 'exact',
|
|
225
|
+
path: '/knowledge-control/v1/models',
|
|
226
|
+
async handler(req, res) {
|
|
227
|
+
if (req.method !== 'GET') {
|
|
228
|
+
res.writeHead(405, { allow: 'GET' }).end();
|
|
229
|
+
return;
|
|
230
|
+
}
|
|
231
|
+
const providers = await Promise.all(runtime.llm.listProviders().map(async (provider) => ({
|
|
232
|
+
...provider,
|
|
233
|
+
models: await runtime.llm.listModels(provider.id).catch(error => {
|
|
234
|
+
runtime.logger.warn(`dsh-knowledge: failed to list models for ${provider.id}: ${error instanceof Error ? error.message : String(error)}`);
|
|
235
|
+
return [];
|
|
236
|
+
}),
|
|
237
|
+
})));
|
|
238
|
+
res.writeHead(200, { 'content-type': 'application/json; charset=utf-8', 'cache-control': 'no-store' }).end(JSON.stringify({ providers }));
|
|
239
|
+
},
|
|
240
|
+
});
|
|
241
|
+
if (disposeModelCatalog !== undefined)
|
|
242
|
+
httpRuntime.effect(() => disposeModelCatalog, 'dsh-knowledge.model-catalog');
|
|
208
243
|
};
|
|
209
244
|
if (runtime.inject !== undefined) {
|
|
210
245
|
runtime.inject(['webServer'], registerHttpSurfaces);
|
|
@@ -216,13 +251,20 @@ export function apply(ctx, config) {
|
|
|
216
251
|
runtime.logger.warn('dsh-knowledge: webServer is unavailable; management and connection settings are disabled');
|
|
217
252
|
}
|
|
218
253
|
if (resolved.extractionEnabled) {
|
|
219
|
-
|
|
220
|
-
|
|
254
|
+
runWriteback = async (agent, turn, signal) => {
|
|
255
|
+
const key = `${agent.session.id}:${turn}`;
|
|
256
|
+
writebackStatuses.set(key, { status: 'running', summary: '知识库回写 · 正在重试', retryable: false });
|
|
257
|
+
let state;
|
|
221
258
|
try {
|
|
222
259
|
const result = await coordinator.run(agent.session, turn, signal);
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
260
|
+
let summary;
|
|
261
|
+
if (result.status === 'duplicate') {
|
|
262
|
+
const job = await provider.extractionJob(key, signal);
|
|
263
|
+
if (job?.status === 'failed')
|
|
264
|
+
throw new Error(job.lastError ?? '知识库回写失败');
|
|
265
|
+
summary = '知识库回写 · 已处理';
|
|
266
|
+
}
|
|
267
|
+
else if (result.status === 'unmounted')
|
|
226
268
|
summary = '知识库回写 · 未挂载可写知识库';
|
|
227
269
|
else if (result.status === 'skipped')
|
|
228
270
|
summary = '知识库回写 · 当前回答无可提取内容';
|
|
@@ -233,20 +275,36 @@ export function apply(ctx, config) {
|
|
|
233
275
|
const parts = [base.directCount > 0 ? `直写 ${base.directCount}` : '', base.auditCount > 0 ? `待审 ${base.auditCount}` : ''].filter(Boolean);
|
|
234
276
|
return `${base.name}:${parts.join('、')}`;
|
|
235
277
|
}).join(';')}`;
|
|
278
|
+
state = { status: 'completed', summary, retryable: false };
|
|
279
|
+
writebackSources.delete(key);
|
|
236
280
|
}
|
|
237
281
|
catch (error) {
|
|
238
282
|
if (signal.aborted)
|
|
239
|
-
|
|
283
|
+
throw error;
|
|
240
284
|
const message = error instanceof Error ? error.message : String(error);
|
|
241
285
|
runtime.logger.warn(`dsh-knowledge: synchronous writeback failed: ${message}`);
|
|
242
|
-
|
|
286
|
+
const job = await provider.extractionJob(key).catch(() => undefined);
|
|
287
|
+
const retryable = job?.status === 'failed' && job.attempts < 3;
|
|
288
|
+
const summary = message.includes('max-tokens')
|
|
243
289
|
? '知识库回写 · 失败:提取结果超过模型输出上限'
|
|
244
|
-
: '知识库回写 ·
|
|
290
|
+
: '知识库回写 · 失败';
|
|
291
|
+
state = { status: 'failed', summary, error: message, retryable };
|
|
292
|
+
if (retryable)
|
|
293
|
+
writebackSources.set(key, { agent: snapshotAgent(agent), turn });
|
|
294
|
+
else
|
|
295
|
+
writebackSources.delete(key);
|
|
245
296
|
}
|
|
246
|
-
writebackStatuses.set(
|
|
247
|
-
if (writebackStatuses.size > 1000)
|
|
248
|
-
writebackStatuses.
|
|
249
|
-
|
|
297
|
+
writebackStatuses.set(key, state);
|
|
298
|
+
if (writebackStatuses.size > 1000) {
|
|
299
|
+
const oldest = writebackStatuses.keys().next().value;
|
|
300
|
+
writebackStatuses.delete(oldest);
|
|
301
|
+
writebackSources.delete(oldest);
|
|
302
|
+
}
|
|
303
|
+
runtime.logger.info(`dsh-knowledge: ${state.summary}`);
|
|
304
|
+
return state;
|
|
305
|
+
};
|
|
306
|
+
runtime.on('agent/turn-stopping', async ({ agent, turn, signal }) => {
|
|
307
|
+
await runWriteback(agent, turn, signal).catch(() => { });
|
|
250
308
|
});
|
|
251
309
|
}
|
|
252
310
|
runtime.effect(() => async () => {
|
|
@@ -256,6 +314,15 @@ export function apply(ctx, config) {
|
|
|
256
314
|
}, 'dsh-knowledge.close');
|
|
257
315
|
runtime.logger.info(`dsh-knowledge: ${provider.mode} provider ready`);
|
|
258
316
|
}
|
|
317
|
+
function snapshotAgent(agent) {
|
|
318
|
+
return {
|
|
319
|
+
session: {
|
|
320
|
+
id: agent.session.id,
|
|
321
|
+
header: { ...agent.session.header },
|
|
322
|
+
events: [...agent.session.events],
|
|
323
|
+
},
|
|
324
|
+
};
|
|
325
|
+
}
|
|
259
326
|
function publicConnectionError(error) {
|
|
260
327
|
if (error instanceof RemoteProviderError) {
|
|
261
328
|
if (error.status === 401)
|
package/lib/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/lib/runtime.d.ts
CHANGED
|
@@ -108,6 +108,21 @@ export interface GenerateOptionsLike {
|
|
|
108
108
|
}
|
|
109
109
|
export interface LlmLike {
|
|
110
110
|
stream(options: GenerateOptionsLike): AsyncIterable<StreamChunkLike>;
|
|
111
|
+
listProviders(): Array<{
|
|
112
|
+
id: string;
|
|
113
|
+
name: string;
|
|
114
|
+
}>;
|
|
115
|
+
listModels(provider: string): Promise<Array<{
|
|
116
|
+
provider: string;
|
|
117
|
+
id: string;
|
|
118
|
+
name: string;
|
|
119
|
+
description?: string;
|
|
120
|
+
}>>;
|
|
121
|
+
resolveModelInfo(provider: string, model: string, signal?: AbortSignal): Promise<{
|
|
122
|
+
provider: string;
|
|
123
|
+
id: string;
|
|
124
|
+
name: string;
|
|
125
|
+
}>;
|
|
111
126
|
}
|
|
112
127
|
export interface WebServerLike {
|
|
113
128
|
register(route: {
|
package/lib/runtime.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"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"}
|
package/lib/runtime.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtime.js","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;
|
|
1
|
+
{"version":3,"file":"runtime.js","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AA0IxC,MAAM,UAAU,WAAW,CAAC,OAAoB;IAC9C,OAAO,OAAO,CAAC,OAAO;SACnB,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,MAAM,IAAI,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ,CAAC;SACxE,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,IAAI,EAAE,CAAC;SAC9B,IAAI,CAAC,IAAI,CAAC;SACV,IAAI,EAAE,CAAA;AACX,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,IAAY;IAC9C,OAAO;QACL,EAAE,EAAE,UAAU,EAAE;QAChB,IAAI,EAAE,MAAM;QACZ,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;QACjC,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,eAAe,EAAE,IAAI,EAAE,QAAQ,EAAE;KACpE,CAAA;AACH,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lemoncat7/dsh-knowledge",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.13",
|
|
4
4
|
"description": "Local and remote knowledge bases for DeepSeek Harness, with scoped recall, controlled write-back, and a Web management console",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"deepseek-harness",
|
package/web/app.js
CHANGED
|
@@ -64,6 +64,7 @@ const state = {
|
|
|
64
64
|
candidateTargets: new Map(),
|
|
65
65
|
candidateStatus: 'pending',
|
|
66
66
|
settings: { writebackPolicy: 'conservative', updatedAt: '' },
|
|
67
|
+
modelCatalog: null,
|
|
67
68
|
settingsSaving: false,
|
|
68
69
|
tokens: [],
|
|
69
70
|
service: { publicApiEnabled: false, publicApiPrefix: '/knowledge-api/v1', remote: false },
|
|
@@ -818,20 +819,20 @@ function renderKnowledgeBases() {
|
|
|
818
819
|
)
|
|
819
820
|
}
|
|
820
821
|
|
|
821
|
-
function openGlobalWritebackModelEditor() {
|
|
822
|
+
async function openGlobalWritebackModelEditor() {
|
|
823
|
+
await loadModelCatalog()
|
|
822
824
|
const custom = element('input', { type: 'checkbox', checked: Boolean(state.settings.writebackProvider && state.settings.writebackModel) })
|
|
823
|
-
const
|
|
824
|
-
const model = formField('模型名称(Model)', 'input', state.settings.writebackModel || '', { maxlength: 200 })
|
|
825
|
+
const route = modelRouteFields(state.settings.writebackProvider || '', state.settings.writebackModel || '')
|
|
825
826
|
const form = element('form', { class: 'form-grid' },
|
|
826
827
|
element('label', { class: 'check-option span-2' }, custom, element('span', {}, element('strong', {}, '使用全局默认模型'), element('small', {}, '关闭后,未单独配置的知识库跟随当前会话模型。'))),
|
|
827
|
-
provider.wrapper, model.wrapper,
|
|
828
|
+
route.provider.wrapper, route.model.wrapper,
|
|
828
829
|
)
|
|
829
|
-
const sync = () => { provider.input.disabled = model.input.disabled = !custom.checked; provider.input.required = model.input.required = custom.checked }
|
|
830
|
+
const sync = () => { route.provider.input.disabled = route.model.input.disabled = !custom.checked; route.provider.input.required = route.model.input.required = custom.checked }
|
|
830
831
|
custom.addEventListener('change', sync); sync()
|
|
831
832
|
openSheet({ title: '默认回写模型', description: '知识库自己的模型优先于这里;这里留空则跟随当前会话。', body: form, primaryLabel: '保存', onPrimary: async () => {
|
|
832
833
|
if (!form.reportValidity()) return false
|
|
833
834
|
state.settings = await api('settings', { method: 'PUT', body: { patch: custom.checked
|
|
834
|
-
? { writebackProvider: provider.input.value
|
|
835
|
+
? { writebackProvider: route.provider.input.value, writebackModel: route.model.input.value }
|
|
835
836
|
: { writebackProvider: null, writebackModel: null } } })
|
|
836
837
|
showToast('默认回写模型已更新。'); renderShell(); return true
|
|
837
838
|
} })
|
|
@@ -1399,7 +1400,8 @@ function parseTags(value) {
|
|
|
1399
1400
|
return [...new Set(value.split(/[,,]/).map(tag => tag.trim().toLowerCase()).filter(Boolean))]
|
|
1400
1401
|
}
|
|
1401
1402
|
|
|
1402
|
-
function openKnowledgeBaseEditor(base) {
|
|
1403
|
+
async function openKnowledgeBaseEditor(base) {
|
|
1404
|
+
await loadModelCatalog()
|
|
1403
1405
|
const source = base || { name: '', description: '', defaultTags: [], extractionInstructions: '', writebackPolicy: 'conservative' }
|
|
1404
1406
|
const form = element('form', { class: 'form-grid' })
|
|
1405
1407
|
const name = formField('名称', 'input', source.name, { required: true, maxlength: 100, placeholder: '例如:项目规范' })
|
|
@@ -1411,14 +1413,13 @@ function openKnowledgeBaseEditor(base) {
|
|
|
1411
1413
|
{ value: 'proactive', label: '主动(更积极沉淀)' },
|
|
1412
1414
|
], source.writebackPolicy || 'conservative')
|
|
1413
1415
|
const customModel = element('input', { type: 'checkbox', checked: Boolean(source.writebackProvider && source.writebackModel) })
|
|
1414
|
-
const
|
|
1415
|
-
const model = formField('模型名称(Model)', 'input', source.writebackModel || '', { maxlength: 200, placeholder: '例如:kimi-k2.7-code' })
|
|
1416
|
+
const route = modelRouteFields(source.writebackProvider || '', source.writebackModel || '')
|
|
1416
1417
|
const modelHint = element('div', { class: 'field-hint span-2' }, '默认跟随当前会话模型。指定后,仅这个知识库使用专用模型回写。')
|
|
1417
1418
|
const updateModelFields = () => {
|
|
1418
|
-
provider.input.disabled = !customModel.checked
|
|
1419
|
-
model.input.disabled = !customModel.checked
|
|
1420
|
-
provider.input.required = customModel.checked
|
|
1421
|
-
model.input.required = customModel.checked
|
|
1419
|
+
route.provider.input.disabled = !customModel.checked
|
|
1420
|
+
route.model.input.disabled = !customModel.checked
|
|
1421
|
+
route.provider.input.required = customModel.checked
|
|
1422
|
+
route.model.input.required = customModel.checked
|
|
1422
1423
|
}
|
|
1423
1424
|
customModel.addEventListener('change', updateModelFields)
|
|
1424
1425
|
updateModelFields()
|
|
@@ -1429,7 +1430,7 @@ function openKnowledgeBaseEditor(base) {
|
|
|
1429
1430
|
element('strong', {}, '为这个知识库指定回写模型'),
|
|
1430
1431
|
element('small', {}, '关闭时自动使用当前会话正在使用的模型。'),
|
|
1431
1432
|
)),
|
|
1432
|
-
provider.wrapper, model.wrapper, modelHint,
|
|
1433
|
+
route.provider.wrapper, route.model.wrapper, modelHint,
|
|
1433
1434
|
)
|
|
1434
1435
|
openSheet({
|
|
1435
1436
|
title: base ? '编辑知识库' : '创建知识库',
|
|
@@ -1444,8 +1445,8 @@ function openKnowledgeBaseEditor(base) {
|
|
|
1444
1445
|
defaultTags: parseTags(tags.input.value),
|
|
1445
1446
|
extractionInstructions: instructions.input.value.trim(),
|
|
1446
1447
|
writebackPolicy: policy.input.value,
|
|
1447
|
-
writebackProvider: customModel.checked ? provider.input.value
|
|
1448
|
-
writebackModel: customModel.checked ? model.input.value
|
|
1448
|
+
writebackProvider: customModel.checked ? route.provider.input.value : '',
|
|
1449
|
+
writebackModel: customModel.checked ? route.model.input.value : '',
|
|
1449
1450
|
}
|
|
1450
1451
|
if (base) await api(`knowledge-bases/${encodeURIComponent(base.id)}`, { method: 'PUT', body: { draft } })
|
|
1451
1452
|
else await api('knowledge-bases', { method: 'POST', body: { draft } })
|
|
@@ -1741,6 +1742,41 @@ function selectField(label, options, value) {
|
|
|
1741
1742
|
return { input, wrapper: element('div', { class: 'field' }, element('label', {}, label), input) }
|
|
1742
1743
|
}
|
|
1743
1744
|
|
|
1745
|
+
async function loadModelCatalog() {
|
|
1746
|
+
if (state.modelCatalog !== null) return state.modelCatalog
|
|
1747
|
+
try {
|
|
1748
|
+
const response = await fetch('/knowledge-control/v1/models', { headers: { accept: 'application/json' } })
|
|
1749
|
+
if (!response.ok) throw new Error(`HTTP ${response.status}`)
|
|
1750
|
+
const payload = await response.json()
|
|
1751
|
+
state.modelCatalog = Array.isArray(payload.providers) ? payload.providers : []
|
|
1752
|
+
} catch (error) {
|
|
1753
|
+
state.modelCatalog = []
|
|
1754
|
+
showToast(`无法读取当前 DSH 的模型目录:${error instanceof Error ? error.message : String(error)}`, 'error')
|
|
1755
|
+
}
|
|
1756
|
+
return state.modelCatalog
|
|
1757
|
+
}
|
|
1758
|
+
|
|
1759
|
+
function modelRouteFields(currentProvider, currentModel) {
|
|
1760
|
+
const providers = [...(state.modelCatalog || [])]
|
|
1761
|
+
if (currentProvider && !providers.some(item => item.id === currentProvider)) {
|
|
1762
|
+
providers.push({ id: currentProvider, name: `${currentProvider}(当前配置)`, models: [] })
|
|
1763
|
+
}
|
|
1764
|
+
const provider = selectField('模型提供方', providers.map(item => ({ value: item.id, label: item.name || item.id })), currentProvider || providers[0]?.id || '')
|
|
1765
|
+
const model = selectField('回写模型', [], '')
|
|
1766
|
+
const refreshModels = preferred => {
|
|
1767
|
+
const selected = providers.find(item => item.id === provider.input.value)
|
|
1768
|
+
const models = [...(selected?.models || [])]
|
|
1769
|
+
if (preferred && !models.some(item => item.id === preferred)) models.push({ id: preferred, name: `${preferred}(当前配置)` })
|
|
1770
|
+
model.input.replaceChildren(...models.map(item => element('option', {
|
|
1771
|
+
value: item.id, selected: item.id === preferred,
|
|
1772
|
+
}, item.name && item.name !== item.id ? `${item.name} · ${item.id}` : item.id)))
|
|
1773
|
+
if (preferred && models.some(item => item.id === preferred)) model.input.value = preferred
|
|
1774
|
+
}
|
|
1775
|
+
provider.input.addEventListener('change', () => refreshModels(''))
|
|
1776
|
+
refreshModels(currentModel)
|
|
1777
|
+
return { provider, model }
|
|
1778
|
+
}
|
|
1779
|
+
|
|
1744
1780
|
async function reviewCandidate(candidate, decision, resolution) {
|
|
1745
1781
|
const approve = decision === 'approve'
|
|
1746
1782
|
openConfirm({
|