@aipanel/provider-deepseek 1.2.5 → 1.2.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/es/bridge-script.d.ts +2 -0
- package/es/bridge-script.js +14 -1
- package/es/constants.d.ts +2 -0
- package/es/constants.js +8 -2
- package/es/profile.d.ts +10 -0
- package/es/profile.js +11 -3
- package/es/provider.d.ts +1 -1
- package/es/provider.js +12 -5
- package/es/types.d.ts +12 -0
- package/lib/bridge-script.cjs +14 -1
- package/lib/bridge-script.d.ts +2 -0
- package/lib/constants.cjs +8 -2
- package/lib/constants.d.ts +2 -0
- package/lib/profile.cjs +11 -3
- package/lib/profile.d.ts +10 -0
- package/lib/provider.cjs +12 -5
- package/lib/provider.d.ts +1 -1
- package/lib/types.d.ts +12 -0
- package/package.json +2 -2
package/es/bridge-script.d.ts
CHANGED
package/es/bridge-script.js
CHANGED
|
@@ -1,13 +1,26 @@
|
|
|
1
1
|
import { WIDGET_MSG } from "@aipanel/core";
|
|
2
2
|
import { DSH_STORAGE_KEYS } from "./constants.js";
|
|
3
3
|
function generateBridgeScript(options = {}) {
|
|
4
|
-
const { theme = "auto" } = options;
|
|
4
|
+
const { theme = "auto", diagnosticsEnabled = false } = options;
|
|
5
5
|
return `
|
|
6
6
|
(function() {
|
|
7
7
|
const CURRENT_SESSION_KEY = ${JSON.stringify(DSH_STORAGE_KEYS.CURRENT_SESSION)};
|
|
8
8
|
const SELECTION_KEY = ${JSON.stringify(DSH_STORAGE_KEYS.SELECTION)};
|
|
9
|
+
const DIAGNOSTICS_KEY = ${JSON.stringify(DSH_STORAGE_KEYS.DIAGNOSTICS_ENABLED)};
|
|
10
|
+
const DIAGNOSTICS_ENABLED = ${JSON.stringify(diagnosticsEnabled)};
|
|
9
11
|
const THEME = ${JSON.stringify(theme)};
|
|
10
12
|
|
|
13
|
+
// \u8BCA\u65AD\u529F\u80FD\u5F00\u5173\uFF1A\u540C\u6B65\u5199\u5165\uFF08\u4E0D\u4F9D\u8D56 DOM\uFF09\uFF0C\u4FDD\u8BC1 dsh-client apply \u65F6\u5373\u53EF\u8BFB\u5230\u6807\u8BB0\u3002
|
|
14
|
+
// bridge \u811A\u672C\u6CE8\u5165\u4E8E <head>\uFF0Cdsh-client \u63D2\u4EF6\u5728\u9875\u9762\u811A\u672C/React \u521D\u59CB\u5316\u540E\u624D apply\uFF0C
|
|
15
|
+
// \u82E5\u7B49 DOMContentLoaded \u518D\u5199\u5219\u5B58\u5728\u65F6\u5E8F\u7ADE\u4E89\uFF0C\u89C6\u56FE\u53EF\u80FD\u6F0F\u6CE8\u518C\u3002
|
|
16
|
+
try {
|
|
17
|
+
if (DIAGNOSTICS_ENABLED) {
|
|
18
|
+
localStorage.setItem(DIAGNOSTICS_KEY, "1");
|
|
19
|
+
} else {
|
|
20
|
+
localStorage.removeItem(DIAGNOSTICS_KEY);
|
|
21
|
+
}
|
|
22
|
+
} catch (e) { /* ignore */ }
|
|
23
|
+
|
|
11
24
|
// \u6865\u63A5\u5C42\u901A\u77E5 dsh-client \u7684\u9009\u4E2D\u5143\u7D20\u63D2\u5165\u4E8B\u4EF6\uFF08\u4E0E opencode \u4E00\u81F4\uFF1A\u9009\u4E2D\u5373\u8FFD\u52A0\u5230\u5BF9\u8BDD\u6846\uFF09
|
|
12
25
|
const INSERT_ELEMENT_EVENT = "aipanel:insert-element";
|
|
13
26
|
|
package/es/constants.d.ts
CHANGED
|
@@ -20,6 +20,8 @@ export declare const DSH_STORAGE_KEYS: {
|
|
|
20
20
|
readonly CURRENT_SESSION: "dsh.sessions.current";
|
|
21
21
|
/** 选中的页面元素(bridge 写入,dsh-client 的 @aipanel source 读取) */
|
|
22
22
|
readonly SELECTION: "dsh.bridge.selection";
|
|
23
|
+
/** 诊断功能开关标记(bridge 按 provider 配置写入,dsh-client 据此决定是否注册诊断视图) */
|
|
24
|
+
readonly DIAGNOSTICS_ENABLED: "dsh.bridge.diagnostics.enabled";
|
|
23
25
|
};
|
|
24
26
|
/** ==================== Provider 专属配置默认值 ==================== */
|
|
25
27
|
export declare const DEFAULT_DEEPSEEK_PROVIDER_OPTIONS: DeepSeekProviderOptions;
|
package/es/constants.js
CHANGED
|
@@ -7,10 +7,16 @@ const DSH_STORAGE_KEYS = {
|
|
|
7
7
|
/** 当前选中会话(SPA 启动时据此恢复选中,无 URL 深链) */
|
|
8
8
|
CURRENT_SESSION: "dsh.sessions.current",
|
|
9
9
|
/** 选中的页面元素(bridge 写入,dsh-client 的 @aipanel source 读取) */
|
|
10
|
-
SELECTION: "dsh.bridge.selection"
|
|
10
|
+
SELECTION: "dsh.bridge.selection",
|
|
11
|
+
/** 诊断功能开关标记(bridge 按 provider 配置写入,dsh-client 据此决定是否注册诊断视图) */
|
|
12
|
+
DIAGNOSTICS_ENABLED: "dsh.bridge.diagnostics.enabled"
|
|
11
13
|
};
|
|
12
14
|
const DEFAULT_DEEPSEEK_PROVIDER_OPTIONS = {
|
|
13
|
-
agentPreset: "code"
|
|
15
|
+
agentPreset: "code",
|
|
16
|
+
// 对齐 opencode 的 enableLsp(默认 true):诊断功能默认开启
|
|
17
|
+
enableDiagnostics: true,
|
|
18
|
+
// 对齐 opencode:自动诊断默认开启
|
|
19
|
+
autoDiagnose: true
|
|
14
20
|
};
|
|
15
21
|
export {
|
|
16
22
|
DEFAULT_DEEPSEEK_PROVIDER_OPTIONS,
|
package/es/profile.d.ts
CHANGED
|
@@ -6,6 +6,16 @@ export declare function buildDshOverlay(options: {
|
|
|
6
6
|
pluginAvailable?: boolean;
|
|
7
7
|
/** client 插件(@aipanel/dsh-client)是否可被 dsh 解析(provider 已同步到 dsh profile);false 时停用该行,避免 fail-loud */
|
|
8
8
|
clientAvailable?: boolean;
|
|
9
|
+
/**
|
|
10
|
+
* 编辑后自动诊断开关(provider option autoDiagnose)。
|
|
11
|
+
* undefined 时不写入 overlay,由 dsh-plugin 回退到 OPENCODE_ENABLE_LINT=1(与 opencode 一致)。
|
|
12
|
+
*/
|
|
13
|
+
autoDiagnose?: boolean;
|
|
14
|
+
/**
|
|
15
|
+
* 诊断功能总开关(provider option enableDiagnostics)。
|
|
16
|
+
* true(默认,对齐 opencode enableLsp)时 host 插件注册 run_diagnostics 工具与自动诊断逻辑。
|
|
17
|
+
*/
|
|
18
|
+
enableDiagnostics?: boolean;
|
|
9
19
|
}): string;
|
|
10
20
|
/** 将 overlay 写入项目缓存目录(AIPANEL_CACHE_DIR 下按 provider 分二级目录),不污染用户项目根目录。 */
|
|
11
21
|
export declare function writeDshOverlay(workspaceCwd: string, overlay: string): string;
|
package/es/profile.js
CHANGED
|
@@ -8,7 +8,14 @@ import {
|
|
|
8
8
|
} from "@aipanel/core/node";
|
|
9
9
|
const log = createLogger("DeepSeekProfile");
|
|
10
10
|
function buildDshOverlay(options) {
|
|
11
|
-
const {
|
|
11
|
+
const {
|
|
12
|
+
vitePort,
|
|
13
|
+
cwd,
|
|
14
|
+
pluginAvailable = true,
|
|
15
|
+
clientAvailable = true,
|
|
16
|
+
autoDiagnose,
|
|
17
|
+
enableDiagnostics = true
|
|
18
|
+
} = options;
|
|
12
19
|
const mcpUrl = `http://127.0.0.1:${vitePort}${MCP_API_PATH}`;
|
|
13
20
|
const rows = [];
|
|
14
21
|
rows.push(
|
|
@@ -27,12 +34,13 @@ function buildDshOverlay(options) {
|
|
|
27
34
|
" - id: aipanel",
|
|
28
35
|
" name: '@aipanel/dsh-plugin'",
|
|
29
36
|
...pluginAvailable ? [] : [" disabled: true"],
|
|
30
|
-
" inject: [tools
|
|
37
|
+
" inject: [tools]",
|
|
31
38
|
" config:",
|
|
32
39
|
` cwd: ${JSON.stringify(cwd)}`,
|
|
33
40
|
` vitePort: ${vitePort}`,
|
|
34
41
|
` contextApiPath: ${JSON.stringify(CONTEXT_API_PATH)}`,
|
|
35
|
-
|
|
42
|
+
` enableDiagnostics: ${enableDiagnostics ? "true" : "false"}`,
|
|
43
|
+
...autoDiagnose !== void 0 ? [` autoDiagnose: ${autoDiagnose ? "true" : "false"}`] : []
|
|
36
44
|
].join("\n")
|
|
37
45
|
);
|
|
38
46
|
rows.push(
|
package/es/provider.d.ts
CHANGED
|
@@ -30,7 +30,7 @@ export declare class DeepSeekWebProvider implements WebProvider {
|
|
|
30
30
|
constructor(config: DeepSeekWebProviderConfig, deps: DeepSeekWebProviderDeps, options?: Record<string, unknown>);
|
|
31
31
|
/** 代理注入到 HTML 的桥接脚本(Provider 资产) */
|
|
32
32
|
get bridgeScript(): string | undefined;
|
|
33
|
-
/**
|
|
33
|
+
/** 初始化桥接配置(主题、诊断开关等) */
|
|
34
34
|
applyConfig(config: ProviderConfig): void;
|
|
35
35
|
checkEnvironment(): Promise<ProviderEnvironmentInfo>;
|
|
36
36
|
start(options: ProviderStartOptions): Promise<ProviderStartResult>;
|
package/es/provider.js
CHANGED
|
@@ -36,9 +36,12 @@ class DeepSeekWebProvider {
|
|
|
36
36
|
get bridgeScript() {
|
|
37
37
|
return generateBridgeScript(this.bridgeOptions);
|
|
38
38
|
}
|
|
39
|
-
/**
|
|
39
|
+
/** 初始化桥接配置(主题、诊断开关等) */
|
|
40
40
|
applyConfig(config) {
|
|
41
|
-
this.bridgeOptions = {
|
|
41
|
+
this.bridgeOptions = {
|
|
42
|
+
theme: config.theme ?? "auto",
|
|
43
|
+
diagnosticsEnabled: this.opts.enableDiagnostics ?? false
|
|
44
|
+
};
|
|
42
45
|
}
|
|
43
46
|
async checkEnvironment() {
|
|
44
47
|
if (!await checkDeepSeekInstalled()) {
|
|
@@ -95,7 +98,9 @@ or run without installing:
|
|
|
95
98
|
vitePort: options.vitePort,
|
|
96
99
|
cwd: options.cwd,
|
|
97
100
|
pluginAvailable,
|
|
98
|
-
clientAvailable
|
|
101
|
+
clientAvailable,
|
|
102
|
+
autoDiagnose: this.opts.autoDiagnose,
|
|
103
|
+
enableDiagnostics: this.opts.enableDiagnostics
|
|
99
104
|
});
|
|
100
105
|
const patchPath = writeDshOverlay(options.cwd, overlay);
|
|
101
106
|
const proc = startDeepSeekWeb({
|
|
@@ -288,9 +293,11 @@ function resolveDeepSeekOptions(options) {
|
|
|
288
293
|
return {
|
|
289
294
|
...DEFAULT_DEEPSEEK_PROVIDER_OPTIONS,
|
|
290
295
|
home: po.home ?? options.home,
|
|
291
|
-
agentPreset: po.agentPreset ?? options.agentPreset,
|
|
296
|
+
agentPreset: po.agentPreset ?? options.agentPreset ?? DEFAULT_DEEPSEEK_PROVIDER_OPTIONS.agentPreset,
|
|
292
297
|
permissionPreset: po.permissionPreset ?? options.permissionPreset,
|
|
293
|
-
busyEnter: po.busyEnter ?? options.busyEnter
|
|
298
|
+
busyEnter: po.busyEnter ?? options.busyEnter,
|
|
299
|
+
autoDiagnose: po.autoDiagnose ?? options.autoDiagnose ?? DEFAULT_DEEPSEEK_PROVIDER_OPTIONS.autoDiagnose,
|
|
300
|
+
enableDiagnostics: po.enableDiagnostics ?? options.enableDiagnostics ?? DEFAULT_DEEPSEEK_PROVIDER_OPTIONS.enableDiagnostics
|
|
294
301
|
};
|
|
295
302
|
}
|
|
296
303
|
export {
|
package/es/types.d.ts
CHANGED
|
@@ -19,6 +19,18 @@ export type DeepSeekProviderOptions = {
|
|
|
19
19
|
permissionPreset?: DeepSeekPermissionPreset;
|
|
20
20
|
/** 繁忙时 Enter 键行为(dsh settings ui-conversation.busyEnter) */
|
|
21
21
|
busyEnter?: DeepSeekBusyEnter;
|
|
22
|
+
/**
|
|
23
|
+
* 编辑后自动诊断(对应 opencode providerOptions.enableLsp 的质量门禁语义):
|
|
24
|
+
* write/edit/apply_patch 执行后自动补跑 ESLint + vue-tsc 并把结果并入工具输出。
|
|
25
|
+
* 与 opencode 一致默认开启;需与 enableDiagnostics 配合(总开关关闭时整体不注入)。
|
|
26
|
+
*/
|
|
27
|
+
autoDiagnose?: boolean;
|
|
28
|
+
/**
|
|
29
|
+
* 诊断功能总开关:与 opencode 的 enableLsp 一致,默认开启。
|
|
30
|
+
* 关闭时(enableDiagnostics: false)不注入任何诊断相关插件逻辑——
|
|
31
|
+
* run_diagnostics 审查工具、编辑后自动诊断、会话诊断卡片视图都不注册。
|
|
32
|
+
*/
|
|
33
|
+
enableDiagnostics?: boolean;
|
|
22
34
|
/**
|
|
23
35
|
* Provider 允许自定义扩展字段
|
|
24
36
|
* [key: string]: unknown;
|
package/lib/bridge-script.cjs
CHANGED
|
@@ -23,13 +23,26 @@ module.exports = __toCommonJS(bridge_script_exports);
|
|
|
23
23
|
var import_core = require("@aipanel/core");
|
|
24
24
|
var import_constants = require("./constants.cjs");
|
|
25
25
|
function generateBridgeScript(options = {}) {
|
|
26
|
-
const { theme = "auto" } = options;
|
|
26
|
+
const { theme = "auto", diagnosticsEnabled = false } = options;
|
|
27
27
|
return `
|
|
28
28
|
(function() {
|
|
29
29
|
const CURRENT_SESSION_KEY = ${JSON.stringify(import_constants.DSH_STORAGE_KEYS.CURRENT_SESSION)};
|
|
30
30
|
const SELECTION_KEY = ${JSON.stringify(import_constants.DSH_STORAGE_KEYS.SELECTION)};
|
|
31
|
+
const DIAGNOSTICS_KEY = ${JSON.stringify(import_constants.DSH_STORAGE_KEYS.DIAGNOSTICS_ENABLED)};
|
|
32
|
+
const DIAGNOSTICS_ENABLED = ${JSON.stringify(diagnosticsEnabled)};
|
|
31
33
|
const THEME = ${JSON.stringify(theme)};
|
|
32
34
|
|
|
35
|
+
// \u8BCA\u65AD\u529F\u80FD\u5F00\u5173\uFF1A\u540C\u6B65\u5199\u5165\uFF08\u4E0D\u4F9D\u8D56 DOM\uFF09\uFF0C\u4FDD\u8BC1 dsh-client apply \u65F6\u5373\u53EF\u8BFB\u5230\u6807\u8BB0\u3002
|
|
36
|
+
// bridge \u811A\u672C\u6CE8\u5165\u4E8E <head>\uFF0Cdsh-client \u63D2\u4EF6\u5728\u9875\u9762\u811A\u672C/React \u521D\u59CB\u5316\u540E\u624D apply\uFF0C
|
|
37
|
+
// \u82E5\u7B49 DOMContentLoaded \u518D\u5199\u5219\u5B58\u5728\u65F6\u5E8F\u7ADE\u4E89\uFF0C\u89C6\u56FE\u53EF\u80FD\u6F0F\u6CE8\u518C\u3002
|
|
38
|
+
try {
|
|
39
|
+
if (DIAGNOSTICS_ENABLED) {
|
|
40
|
+
localStorage.setItem(DIAGNOSTICS_KEY, "1");
|
|
41
|
+
} else {
|
|
42
|
+
localStorage.removeItem(DIAGNOSTICS_KEY);
|
|
43
|
+
}
|
|
44
|
+
} catch (e) { /* ignore */ }
|
|
45
|
+
|
|
33
46
|
// \u6865\u63A5\u5C42\u901A\u77E5 dsh-client \u7684\u9009\u4E2D\u5143\u7D20\u63D2\u5165\u4E8B\u4EF6\uFF08\u4E0E opencode \u4E00\u81F4\uFF1A\u9009\u4E2D\u5373\u8FFD\u52A0\u5230\u5BF9\u8BDD\u6846\uFF09
|
|
34
47
|
const INSERT_ELEMENT_EVENT = "aipanel:insert-element";
|
|
35
48
|
|
package/lib/bridge-script.d.ts
CHANGED
package/lib/constants.cjs
CHANGED
|
@@ -35,10 +35,16 @@ const DSH_STORAGE_KEYS = {
|
|
|
35
35
|
/** 当前选中会话(SPA 启动时据此恢复选中,无 URL 深链) */
|
|
36
36
|
CURRENT_SESSION: "dsh.sessions.current",
|
|
37
37
|
/** 选中的页面元素(bridge 写入,dsh-client 的 @aipanel source 读取) */
|
|
38
|
-
SELECTION: "dsh.bridge.selection"
|
|
38
|
+
SELECTION: "dsh.bridge.selection",
|
|
39
|
+
/** 诊断功能开关标记(bridge 按 provider 配置写入,dsh-client 据此决定是否注册诊断视图) */
|
|
40
|
+
DIAGNOSTICS_ENABLED: "dsh.bridge.diagnostics.enabled"
|
|
39
41
|
};
|
|
40
42
|
const DEFAULT_DEEPSEEK_PROVIDER_OPTIONS = {
|
|
41
|
-
agentPreset: "code"
|
|
43
|
+
agentPreset: "code",
|
|
44
|
+
// 对齐 opencode 的 enableLsp(默认 true):诊断功能默认开启
|
|
45
|
+
enableDiagnostics: true,
|
|
46
|
+
// 对齐 opencode:自动诊断默认开启
|
|
47
|
+
autoDiagnose: true
|
|
42
48
|
};
|
|
43
49
|
// Annotate the CommonJS export names for ESM import in node:
|
|
44
50
|
0 && (module.exports = {
|
package/lib/constants.d.ts
CHANGED
|
@@ -20,6 +20,8 @@ export declare const DSH_STORAGE_KEYS: {
|
|
|
20
20
|
readonly CURRENT_SESSION: "dsh.sessions.current";
|
|
21
21
|
/** 选中的页面元素(bridge 写入,dsh-client 的 @aipanel source 读取) */
|
|
22
22
|
readonly SELECTION: "dsh.bridge.selection";
|
|
23
|
+
/** 诊断功能开关标记(bridge 按 provider 配置写入,dsh-client 据此决定是否注册诊断视图) */
|
|
24
|
+
readonly DIAGNOSTICS_ENABLED: "dsh.bridge.diagnostics.enabled";
|
|
23
25
|
};
|
|
24
26
|
/** ==================== Provider 专属配置默认值 ==================== */
|
|
25
27
|
export declare const DEFAULT_DEEPSEEK_PROVIDER_OPTIONS: DeepSeekProviderOptions;
|
package/lib/profile.cjs
CHANGED
|
@@ -36,7 +36,14 @@ var import_path = __toESM(require("path"));
|
|
|
36
36
|
var import_node = require("@aipanel/core/node");
|
|
37
37
|
const log = (0, import_node.createLogger)("DeepSeekProfile");
|
|
38
38
|
function buildDshOverlay(options) {
|
|
39
|
-
const {
|
|
39
|
+
const {
|
|
40
|
+
vitePort,
|
|
41
|
+
cwd,
|
|
42
|
+
pluginAvailable = true,
|
|
43
|
+
clientAvailable = true,
|
|
44
|
+
autoDiagnose,
|
|
45
|
+
enableDiagnostics = true
|
|
46
|
+
} = options;
|
|
40
47
|
const mcpUrl = `http://127.0.0.1:${vitePort}${import_node.MCP_API_PATH}`;
|
|
41
48
|
const rows = [];
|
|
42
49
|
rows.push(
|
|
@@ -55,12 +62,13 @@ function buildDshOverlay(options) {
|
|
|
55
62
|
" - id: aipanel",
|
|
56
63
|
" name: '@aipanel/dsh-plugin'",
|
|
57
64
|
...pluginAvailable ? [] : [" disabled: true"],
|
|
58
|
-
" inject: [tools
|
|
65
|
+
" inject: [tools]",
|
|
59
66
|
" config:",
|
|
60
67
|
` cwd: ${JSON.stringify(cwd)}`,
|
|
61
68
|
` vitePort: ${vitePort}`,
|
|
62
69
|
` contextApiPath: ${JSON.stringify(import_node.CONTEXT_API_PATH)}`,
|
|
63
|
-
|
|
70
|
+
` enableDiagnostics: ${enableDiagnostics ? "true" : "false"}`,
|
|
71
|
+
...autoDiagnose !== void 0 ? [` autoDiagnose: ${autoDiagnose ? "true" : "false"}`] : []
|
|
64
72
|
].join("\n")
|
|
65
73
|
);
|
|
66
74
|
rows.push(
|
package/lib/profile.d.ts
CHANGED
|
@@ -6,6 +6,16 @@ export declare function buildDshOverlay(options: {
|
|
|
6
6
|
pluginAvailable?: boolean;
|
|
7
7
|
/** client 插件(@aipanel/dsh-client)是否可被 dsh 解析(provider 已同步到 dsh profile);false 时停用该行,避免 fail-loud */
|
|
8
8
|
clientAvailable?: boolean;
|
|
9
|
+
/**
|
|
10
|
+
* 编辑后自动诊断开关(provider option autoDiagnose)。
|
|
11
|
+
* undefined 时不写入 overlay,由 dsh-plugin 回退到 OPENCODE_ENABLE_LINT=1(与 opencode 一致)。
|
|
12
|
+
*/
|
|
13
|
+
autoDiagnose?: boolean;
|
|
14
|
+
/**
|
|
15
|
+
* 诊断功能总开关(provider option enableDiagnostics)。
|
|
16
|
+
* true(默认,对齐 opencode enableLsp)时 host 插件注册 run_diagnostics 工具与自动诊断逻辑。
|
|
17
|
+
*/
|
|
18
|
+
enableDiagnostics?: boolean;
|
|
9
19
|
}): string;
|
|
10
20
|
/** 将 overlay 写入项目缓存目录(AIPANEL_CACHE_DIR 下按 provider 分二级目录),不污染用户项目根目录。 */
|
|
11
21
|
export declare function writeDshOverlay(workspaceCwd: string, overlay: string): string;
|
package/lib/provider.cjs
CHANGED
|
@@ -52,9 +52,12 @@ class DeepSeekWebProvider {
|
|
|
52
52
|
get bridgeScript() {
|
|
53
53
|
return (0, import_bridge_script.generateBridgeScript)(this.bridgeOptions);
|
|
54
54
|
}
|
|
55
|
-
/**
|
|
55
|
+
/** 初始化桥接配置(主题、诊断开关等) */
|
|
56
56
|
applyConfig(config) {
|
|
57
|
-
this.bridgeOptions = {
|
|
57
|
+
this.bridgeOptions = {
|
|
58
|
+
theme: config.theme ?? "auto",
|
|
59
|
+
diagnosticsEnabled: this.opts.enableDiagnostics ?? false
|
|
60
|
+
};
|
|
58
61
|
}
|
|
59
62
|
async checkEnvironment() {
|
|
60
63
|
if (!await (0, import_system.checkDeepSeekInstalled)()) {
|
|
@@ -111,7 +114,9 @@ or run without installing:
|
|
|
111
114
|
vitePort: options.vitePort,
|
|
112
115
|
cwd: options.cwd,
|
|
113
116
|
pluginAvailable,
|
|
114
|
-
clientAvailable
|
|
117
|
+
clientAvailable,
|
|
118
|
+
autoDiagnose: this.opts.autoDiagnose,
|
|
119
|
+
enableDiagnostics: this.opts.enableDiagnostics
|
|
115
120
|
});
|
|
116
121
|
const patchPath = (0, import_profile.writeDshOverlay)(options.cwd, overlay);
|
|
117
122
|
const proc = (0, import_deepseek_web.startDeepSeekWeb)({
|
|
@@ -304,9 +309,11 @@ function resolveDeepSeekOptions(options) {
|
|
|
304
309
|
return {
|
|
305
310
|
...import_constants.DEFAULT_DEEPSEEK_PROVIDER_OPTIONS,
|
|
306
311
|
home: po.home ?? options.home,
|
|
307
|
-
agentPreset: po.agentPreset ?? options.agentPreset,
|
|
312
|
+
agentPreset: po.agentPreset ?? options.agentPreset ?? import_constants.DEFAULT_DEEPSEEK_PROVIDER_OPTIONS.agentPreset,
|
|
308
313
|
permissionPreset: po.permissionPreset ?? options.permissionPreset,
|
|
309
|
-
busyEnter: po.busyEnter ?? options.busyEnter
|
|
314
|
+
busyEnter: po.busyEnter ?? options.busyEnter,
|
|
315
|
+
autoDiagnose: po.autoDiagnose ?? options.autoDiagnose ?? import_constants.DEFAULT_DEEPSEEK_PROVIDER_OPTIONS.autoDiagnose,
|
|
316
|
+
enableDiagnostics: po.enableDiagnostics ?? options.enableDiagnostics ?? import_constants.DEFAULT_DEEPSEEK_PROVIDER_OPTIONS.enableDiagnostics
|
|
310
317
|
};
|
|
311
318
|
}
|
|
312
319
|
// Annotate the CommonJS export names for ESM import in node:
|
package/lib/provider.d.ts
CHANGED
|
@@ -30,7 +30,7 @@ export declare class DeepSeekWebProvider implements WebProvider {
|
|
|
30
30
|
constructor(config: DeepSeekWebProviderConfig, deps: DeepSeekWebProviderDeps, options?: Record<string, unknown>);
|
|
31
31
|
/** 代理注入到 HTML 的桥接脚本(Provider 资产) */
|
|
32
32
|
get bridgeScript(): string | undefined;
|
|
33
|
-
/**
|
|
33
|
+
/** 初始化桥接配置(主题、诊断开关等) */
|
|
34
34
|
applyConfig(config: ProviderConfig): void;
|
|
35
35
|
checkEnvironment(): Promise<ProviderEnvironmentInfo>;
|
|
36
36
|
start(options: ProviderStartOptions): Promise<ProviderStartResult>;
|
package/lib/types.d.ts
CHANGED
|
@@ -19,6 +19,18 @@ export type DeepSeekProviderOptions = {
|
|
|
19
19
|
permissionPreset?: DeepSeekPermissionPreset;
|
|
20
20
|
/** 繁忙时 Enter 键行为(dsh settings ui-conversation.busyEnter) */
|
|
21
21
|
busyEnter?: DeepSeekBusyEnter;
|
|
22
|
+
/**
|
|
23
|
+
* 编辑后自动诊断(对应 opencode providerOptions.enableLsp 的质量门禁语义):
|
|
24
|
+
* write/edit/apply_patch 执行后自动补跑 ESLint + vue-tsc 并把结果并入工具输出。
|
|
25
|
+
* 与 opencode 一致默认开启;需与 enableDiagnostics 配合(总开关关闭时整体不注入)。
|
|
26
|
+
*/
|
|
27
|
+
autoDiagnose?: boolean;
|
|
28
|
+
/**
|
|
29
|
+
* 诊断功能总开关:与 opencode 的 enableLsp 一致,默认开启。
|
|
30
|
+
* 关闭时(enableDiagnostics: false)不注入任何诊断相关插件逻辑——
|
|
31
|
+
* run_diagnostics 审查工具、编辑后自动诊断、会话诊断卡片视图都不注册。
|
|
32
|
+
*/
|
|
33
|
+
enableDiagnostics?: boolean;
|
|
22
34
|
/**
|
|
23
35
|
* Provider 允许自定义扩展字段
|
|
24
36
|
* [key: string]: unknown;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aipanel/provider-deepseek",
|
|
3
|
-
"version": "1.2.
|
|
3
|
+
"version": "1.2.6",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"main": "lib/index.cjs",
|
|
6
6
|
"module": "es/index.js",
|
|
@@ -22,7 +22,7 @@
|
|
|
22
22
|
},
|
|
23
23
|
"dependencies": {
|
|
24
24
|
"execa": "^9.6.1",
|
|
25
|
-
"@aipanel/core": "1.2.
|
|
25
|
+
"@aipanel/core": "1.2.6"
|
|
26
26
|
},
|
|
27
27
|
"devDependencies": {
|
|
28
28
|
"esbuild": "^0.25.0"
|