@aipanel/provider-opencode 1.2.19 → 1.2.21

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.
@@ -1,8 +1,8 @@
1
1
  import { DEFAULT_OPENCODE_SETTINGS, OPENCODE_STORAGE_KEYS } from "./constants.js";
2
2
  import { WIDGET_MSG } from "@aipanel/core";
3
3
  function mergeSettings(defaultSettings, userSettings) {
4
- if (!userSettings) return defaultSettings;
5
4
  const result = { ...defaultSettings };
5
+ if (!userSettings) return result;
6
6
  if (userSettings.general) {
7
7
  result.general = { ...defaultSettings.general, ...userSettings.general };
8
8
  }
@@ -23,6 +23,9 @@ function mergeSettings(defaultSettings, userSettings) {
23
23
  function generateBridgeScript(options = {}) {
24
24
  const { theme = "auto", language, settings } = options;
25
25
  const mergedSettings = mergeSettings(DEFAULT_OPENCODE_SETTINGS, settings);
26
+ if (language) {
27
+ mergedSettings.general = { ...mergedSettings.general ?? {}, language };
28
+ }
26
29
  return `
27
30
  (function() {
28
31
  // \u7ACB\u5373\u6E05\u7406\u6B8B\u7559\u7684 session tabs \u5B58\u50A8\uFF0C\u5FC5\u987B\u5728 DOMContentLoaded \u4E4B\u524D\u6267\u884C
@@ -74,14 +77,18 @@ function generateBridgeScript(options = {}) {
74
77
  // === \u521D\u59CB\u5316\u914D\u7F6E ===
75
78
  const initialConfig = {
76
79
  theme: ${JSON.stringify(theme)},
77
- language: ${JSON.stringify(language || null)},
78
80
  settings: ${JSON.stringify(mergedSettings)}
79
81
  };
80
82
 
81
83
  // \u521D\u59CB\u5316\u4E3B\u9898
82
84
  if (initialConfig.theme && initialConfig.theme !== "auto") {
83
- localStorage.setItem(THEME_KEY, initialConfig.theme);
84
- document.documentElement.setAttribute("data-color-scheme", initialConfig.theme);
85
+ try {
86
+ localStorage.setItem(THEME_KEY, initialConfig.theme);
87
+ document.documentElement.setAttribute("data-color-scheme", initialConfig.theme);
88
+ } catch (e) {
89
+ // localStorage / DOM \u4E0D\u53EF\u7528\uFF08\u9690\u79C1\u6A21\u5F0F\u3001\u7B2C\u4E09\u65B9\u5B58\u50A8\u62E6\u622A\uFF09\u65F6\u5FFD\u7565\uFF0C
90
+ // \u907F\u514D\u629B\u9519\u4E2D\u65AD\u540E\u7EED message/keydown \u76D1\u542C\u6CE8\u518C\u4E0E READY \u4E0A\u62A5
91
+ }
85
92
  }
86
93
 
87
94
  // \u521D\u59CB\u5316\u8BBE\u7F6E
package/es/types.d.ts CHANGED
@@ -22,6 +22,12 @@ export interface OpenCodeSettings {
22
22
  followup?: "steer" | "suggest" | "none";
23
23
  /** 显示推理摘要 */
24
24
  showReasoningSummaries?: boolean;
25
+ /** 显示文件树 */
26
+ showFileTree?: boolean;
27
+ /** 使用新版布局设计 */
28
+ newLayoutDesigns?: boolean;
29
+ /** 界面语言(由 providerOptions.language 注入) */
30
+ language?: OpenCodeLanguage;
25
31
  /** 默认展开 shell 工具部分 */
26
32
  shellToolPartsExpanded?: boolean;
27
33
  /** 默认展开编辑工具部分 */
@@ -23,8 +23,8 @@ module.exports = __toCommonJS(bridge_script_exports);
23
23
  var import_constants = require("./constants.cjs");
24
24
  var import_core = require("@aipanel/core");
25
25
  function mergeSettings(defaultSettings, userSettings) {
26
- if (!userSettings) return defaultSettings;
27
26
  const result = { ...defaultSettings };
27
+ if (!userSettings) return result;
28
28
  if (userSettings.general) {
29
29
  result.general = { ...defaultSettings.general, ...userSettings.general };
30
30
  }
@@ -45,6 +45,9 @@ function mergeSettings(defaultSettings, userSettings) {
45
45
  function generateBridgeScript(options = {}) {
46
46
  const { theme = "auto", language, settings } = options;
47
47
  const mergedSettings = mergeSettings(import_constants.DEFAULT_OPENCODE_SETTINGS, settings);
48
+ if (language) {
49
+ mergedSettings.general = { ...mergedSettings.general ?? {}, language };
50
+ }
48
51
  return `
49
52
  (function() {
50
53
  // \u7ACB\u5373\u6E05\u7406\u6B8B\u7559\u7684 session tabs \u5B58\u50A8\uFF0C\u5FC5\u987B\u5728 DOMContentLoaded \u4E4B\u524D\u6267\u884C
@@ -96,14 +99,18 @@ function generateBridgeScript(options = {}) {
96
99
  // === \u521D\u59CB\u5316\u914D\u7F6E ===
97
100
  const initialConfig = {
98
101
  theme: ${JSON.stringify(theme)},
99
- language: ${JSON.stringify(language || null)},
100
102
  settings: ${JSON.stringify(mergedSettings)}
101
103
  };
102
104
 
103
105
  // \u521D\u59CB\u5316\u4E3B\u9898
104
106
  if (initialConfig.theme && initialConfig.theme !== "auto") {
105
- localStorage.setItem(THEME_KEY, initialConfig.theme);
106
- document.documentElement.setAttribute("data-color-scheme", initialConfig.theme);
107
+ try {
108
+ localStorage.setItem(THEME_KEY, initialConfig.theme);
109
+ document.documentElement.setAttribute("data-color-scheme", initialConfig.theme);
110
+ } catch (e) {
111
+ // localStorage / DOM \u4E0D\u53EF\u7528\uFF08\u9690\u79C1\u6A21\u5F0F\u3001\u7B2C\u4E09\u65B9\u5B58\u50A8\u62E6\u622A\uFF09\u65F6\u5FFD\u7565\uFF0C
112
+ // \u907F\u514D\u629B\u9519\u4E2D\u65AD\u540E\u7EED message/keydown \u76D1\u542C\u6CE8\u518C\u4E0E READY \u4E0A\u62A5
113
+ }
107
114
  }
108
115
 
109
116
  // \u521D\u59CB\u5316\u8BBE\u7F6E
package/lib/types.d.ts CHANGED
@@ -22,6 +22,12 @@ export interface OpenCodeSettings {
22
22
  followup?: "steer" | "suggest" | "none";
23
23
  /** 显示推理摘要 */
24
24
  showReasoningSummaries?: boolean;
25
+ /** 显示文件树 */
26
+ showFileTree?: boolean;
27
+ /** 使用新版布局设计 */
28
+ newLayoutDesigns?: boolean;
29
+ /** 界面语言(由 providerOptions.language 注入) */
30
+ language?: OpenCodeLanguage;
25
31
  /** 默认展开 shell 工具部分 */
26
32
  shellToolPartsExpanded?: boolean;
27
33
  /** 默认展开编辑工具部分 */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aipanel/provider-opencode",
3
- "version": "1.2.19",
3
+ "version": "1.2.21",
4
4
  "type": "module",
5
5
  "main": "lib/index.cjs",
6
6
  "module": "es/index.js",
@@ -26,11 +26,12 @@
26
26
  "dependencies": {
27
27
  "@opencode-ai/plugin": "^1.18.0",
28
28
  "execa": "^9.6.1",
29
- "@aipanel/core": "1.2.19"
29
+ "@aipanel/core": "1.2.21"
30
30
  },
31
31
  "scripts": {
32
32
  "build": "pagoda-cli build",
33
33
  "typecheck": "tsc -p tsconfig.declaration.json --noEmit",
34
- "test": "vitest run --root ."
34
+ "test": "vitest run --root .",
35
+ "test:coverage": "vitest run --root . --coverage"
35
36
  }
36
37
  }