@aipanel/core 1.2.11 → 1.2.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.
@@ -108,6 +108,12 @@ export declare const WIDGET_MSG: {
108
108
  readonly MINIMIZE_STATE: "MINIMIZE_STATE_CHANGE";
109
109
  readonly PROMPT_DOCK_VISIBILITY: "PROMPT_DOCK_VISIBILITY_CHANGE";
110
110
  readonly REVIEW_PANEL_TOGGLE: "REVIEW_PANEL_TOGGLE";
111
+ /** 宿主 → iframe:告知侧栏归属期望(mode: "host" | "provider"),Provider 据此决定是否展示自家侧栏 */
112
+ readonly SIDEBAR_MODE: "AIPANEL_SIDEBAR_MODE";
113
+ /** 宿主 → iframe:host 折叠开关驱动 Provider 收起/展开自家侧栏({ collapsed }) */
114
+ readonly SIDEBAR_COLLAPSE: "AIPANEL_SIDEBAR_COLLAPSE";
115
+ /** iframe → 宿主(可选):Provider 内部折叠变化回传({ collapsed }),供宿主同步左上角开关状态 */
116
+ readonly SIDEBAR_STATE: "AIPANEL_SIDEBAR_STATE";
111
117
  /** 无 deepLink 能力的 Provider:通知 iframe 聚焦指定会话 */
112
118
  readonly FOCUS_SESSION: "AIPANEL_FOCUS_SESSION";
113
119
  /** 无 deepLink 能力的 Provider:iframe 确认目标会话已激活且渲染稳定(携带 sessionId) */
@@ -57,6 +57,12 @@ const WIDGET_MSG = {
57
57
  MINIMIZE_STATE: "MINIMIZE_STATE_CHANGE",
58
58
  PROMPT_DOCK_VISIBILITY: "PROMPT_DOCK_VISIBILITY_CHANGE",
59
59
  REVIEW_PANEL_TOGGLE: "REVIEW_PANEL_TOGGLE",
60
+ /** 宿主 → iframe:告知侧栏归属期望(mode: "host" | "provider"),Provider 据此决定是否展示自家侧栏 */
61
+ SIDEBAR_MODE: "AIPANEL_SIDEBAR_MODE",
62
+ /** 宿主 → iframe:host 折叠开关驱动 Provider 收起/展开自家侧栏({ collapsed }) */
63
+ SIDEBAR_COLLAPSE: "AIPANEL_SIDEBAR_COLLAPSE",
64
+ /** iframe → 宿主(可选):Provider 内部折叠变化回传({ collapsed }),供宿主同步左上角开关状态 */
65
+ SIDEBAR_STATE: "AIPANEL_SIDEBAR_STATE",
60
66
  /** 无 deepLink 能力的 Provider:通知 iframe 聚焦指定会话 */
61
67
  FOCUS_SESSION: "AIPANEL_FOCUS_SESSION",
62
68
  /** 无 deepLink 能力的 Provider:iframe 确认目标会话已激活且渲染稳定(携带 sessionId) */
@@ -152,6 +152,30 @@ export interface ProviderCapabilities {
152
152
  * 缺省/false:不支持,客户端隐藏该按钮,避免展示无功能的入口。
153
153
  */
154
154
  reviewPanel?: boolean;
155
+ /**
156
+ * Provider 是否接管会话侧栏(会话列表栏)。
157
+ * 缺省/false:宿主渲染原生会话列表(现状);true:宿主隐藏原生列表,
158
+ * Provider 自家侧栏接管会话导航,折叠开关归属见 ProviderSidebarCapability.collapseControl。
159
+ */
160
+ sidebar?: ProviderSidebarCapability;
161
+ }
162
+ /** Provider 侧栏折叠开关归属(谁提供折叠控制) */
163
+ export type ProviderSidebarCollapseControl = "host" | "provider";
164
+ /** Provider 接管会话侧栏(会话列表栏)的能力描述 */
165
+ export interface ProviderSidebarCapability {
166
+ /**
167
+ * Provider 自身 Web UI 自带会话侧栏并接管(宿主不再渲染原生会话列表)。
168
+ * true:宿主隐藏原生 SessionList,Provider 自家侧栏在 iframe 内渲染并负责会话导航;
169
+ * 缺省/false:宿主渲染原生会话列表(现状),Provider 侧应隐藏自家侧栏避免重复(如 dsh)。
170
+ */
171
+ takeover?: boolean;
172
+ /**
173
+ * 折叠开关归属(仅 takeover=true 时生效):
174
+ * - "host"(缺省):宿主保留左上角开关,切换时向 iframe 发送 SIDEBAR_COLLAPSE,
175
+ * 由 Provider 收起/展开自家侧栏;
176
+ * - "provider":Provider 自带折叠开关,宿主隐藏左上角按钮且不下发折叠消息。
177
+ */
178
+ collapseControl?: ProviderSidebarCollapseControl;
155
179
  }
156
180
  /**
157
181
  * Web Provider 适配器接口
@@ -2,7 +2,7 @@
2
2
  * 通用类型(Provider 无关)
3
3
  * Provider 专属类型已下沉至 @aipanel/provider-opencode。
4
4
  */
5
- import type { SessionPendingKind, SessionStatus } from "./provider";
5
+ import type { ProviderSidebarCollapseControl, SessionPendingKind, SessionStatus } from "./provider";
6
6
  /**
7
7
  * 展示模式类型
8
8
  */
@@ -46,6 +46,8 @@ export interface WidgetOptions {
46
46
  splitMode?: SplitModeOptions;
47
47
  /** Vite 服务 Web 端口(扩展模式多实例场景用) */
48
48
  vitePort?: string;
49
+ /** Vite 服务绑定主机(由服务端/探测下发;缺省回退 DEFAULT_HOSTNAME)。避免与 vite 实际绑定的地址族不一致 */
50
+ viteHost?: string;
49
51
  /** 服务实例唯一标识(扩展模式多实例隔离用) */
50
52
  serviceInstanceId?: string;
51
53
  /** 当前窗口 ID(扩展模式多窗口隔离用) */
@@ -214,6 +216,8 @@ export interface AIPanelServiceInfo {
214
216
  proxyPort: number;
215
217
  /** Vite 开发服务端口(字符串;可能来自 widget 上报或探测 origin) */
216
218
  vitePort: string;
219
+ /** Vite 开发服务主机(源自探测 origin 的 hostname;扩展侧连接用,避免 127.0.0.1 与 ::1 地址族错位) */
220
+ viteHost: string;
217
221
  /** 项目根目录 */
218
222
  projectRoot: string;
219
223
  /** 服务实例唯一 id(多实例隔离) */
@@ -259,6 +263,14 @@ export interface AIPanelWidgetProps {
259
263
  hideBubble?: boolean;
260
264
  /** 是否支持代码审查面板(右上角 </> 按钮);由 Provider capabilities.reviewPanel 决定 */
261
265
  reviewPanelEnabled?: boolean;
266
+ /** Provider 接管会话侧栏(隐藏原生会话列表,Provider 自家侧栏在 iframe 内渲染);由 Provider capabilities.sidebar.takeover 决定 */
267
+ providerSidebar?: boolean;
268
+ /**
269
+ * 侧栏折叠开关归属(默认 "host"):
270
+ * host:宿主保留左上角开关并驱动折叠;provider:宿主隐藏左上角按钮,由 Provider 自带开关控制。
271
+ * 仅 providerSidebar=true 时生效;由 Provider capabilities.sidebar.collapseControl 决定。
272
+ */
273
+ sidebarCollapseControl?: ProviderSidebarCollapseControl;
262
274
  }
263
275
  /**
264
276
  * 挂件组件事件
@@ -125,6 +125,12 @@ const WIDGET_MSG = {
125
125
  MINIMIZE_STATE: "MINIMIZE_STATE_CHANGE",
126
126
  PROMPT_DOCK_VISIBILITY: "PROMPT_DOCK_VISIBILITY_CHANGE",
127
127
  REVIEW_PANEL_TOGGLE: "REVIEW_PANEL_TOGGLE",
128
+ /** 宿主 → iframe:告知侧栏归属期望(mode: "host" | "provider"),Provider 据此决定是否展示自家侧栏 */
129
+ SIDEBAR_MODE: "AIPANEL_SIDEBAR_MODE",
130
+ /** 宿主 → iframe:host 折叠开关驱动 Provider 收起/展开自家侧栏({ collapsed }) */
131
+ SIDEBAR_COLLAPSE: "AIPANEL_SIDEBAR_COLLAPSE",
132
+ /** iframe → 宿主(可选):Provider 内部折叠变化回传({ collapsed }),供宿主同步左上角开关状态 */
133
+ SIDEBAR_STATE: "AIPANEL_SIDEBAR_STATE",
128
134
  /** 无 deepLink 能力的 Provider:通知 iframe 聚焦指定会话 */
129
135
  FOCUS_SESSION: "AIPANEL_FOCUS_SESSION",
130
136
  /** 无 deepLink 能力的 Provider:iframe 确认目标会话已激活且渲染稳定(携带 sessionId) */
@@ -108,6 +108,12 @@ export declare const WIDGET_MSG: {
108
108
  readonly MINIMIZE_STATE: "MINIMIZE_STATE_CHANGE";
109
109
  readonly PROMPT_DOCK_VISIBILITY: "PROMPT_DOCK_VISIBILITY_CHANGE";
110
110
  readonly REVIEW_PANEL_TOGGLE: "REVIEW_PANEL_TOGGLE";
111
+ /** 宿主 → iframe:告知侧栏归属期望(mode: "host" | "provider"),Provider 据此决定是否展示自家侧栏 */
112
+ readonly SIDEBAR_MODE: "AIPANEL_SIDEBAR_MODE";
113
+ /** 宿主 → iframe:host 折叠开关驱动 Provider 收起/展开自家侧栏({ collapsed }) */
114
+ readonly SIDEBAR_COLLAPSE: "AIPANEL_SIDEBAR_COLLAPSE";
115
+ /** iframe → 宿主(可选):Provider 内部折叠变化回传({ collapsed }),供宿主同步左上角开关状态 */
116
+ readonly SIDEBAR_STATE: "AIPANEL_SIDEBAR_STATE";
111
117
  /** 无 deepLink 能力的 Provider:通知 iframe 聚焦指定会话 */
112
118
  readonly FOCUS_SESSION: "AIPANEL_FOCUS_SESSION";
113
119
  /** 无 deepLink 能力的 Provider:iframe 确认目标会话已激活且渲染稳定(携带 sessionId) */
@@ -152,6 +152,30 @@ export interface ProviderCapabilities {
152
152
  * 缺省/false:不支持,客户端隐藏该按钮,避免展示无功能的入口。
153
153
  */
154
154
  reviewPanel?: boolean;
155
+ /**
156
+ * Provider 是否接管会话侧栏(会话列表栏)。
157
+ * 缺省/false:宿主渲染原生会话列表(现状);true:宿主隐藏原生列表,
158
+ * Provider 自家侧栏接管会话导航,折叠开关归属见 ProviderSidebarCapability.collapseControl。
159
+ */
160
+ sidebar?: ProviderSidebarCapability;
161
+ }
162
+ /** Provider 侧栏折叠开关归属(谁提供折叠控制) */
163
+ export type ProviderSidebarCollapseControl = "host" | "provider";
164
+ /** Provider 接管会话侧栏(会话列表栏)的能力描述 */
165
+ export interface ProviderSidebarCapability {
166
+ /**
167
+ * Provider 自身 Web UI 自带会话侧栏并接管(宿主不再渲染原生会话列表)。
168
+ * true:宿主隐藏原生 SessionList,Provider 自家侧栏在 iframe 内渲染并负责会话导航;
169
+ * 缺省/false:宿主渲染原生会话列表(现状),Provider 侧应隐藏自家侧栏避免重复(如 dsh)。
170
+ */
171
+ takeover?: boolean;
172
+ /**
173
+ * 折叠开关归属(仅 takeover=true 时生效):
174
+ * - "host"(缺省):宿主保留左上角开关,切换时向 iframe 发送 SIDEBAR_COLLAPSE,
175
+ * 由 Provider 收起/展开自家侧栏;
176
+ * - "provider":Provider 自带折叠开关,宿主隐藏左上角按钮且不下发折叠消息。
177
+ */
178
+ collapseControl?: ProviderSidebarCollapseControl;
155
179
  }
156
180
  /**
157
181
  * Web Provider 适配器接口
@@ -2,7 +2,7 @@
2
2
  * 通用类型(Provider 无关)
3
3
  * Provider 专属类型已下沉至 @aipanel/provider-opencode。
4
4
  */
5
- import type { SessionPendingKind, SessionStatus } from "./provider";
5
+ import type { ProviderSidebarCollapseControl, SessionPendingKind, SessionStatus } from "./provider";
6
6
  /**
7
7
  * 展示模式类型
8
8
  */
@@ -46,6 +46,8 @@ export interface WidgetOptions {
46
46
  splitMode?: SplitModeOptions;
47
47
  /** Vite 服务 Web 端口(扩展模式多实例场景用) */
48
48
  vitePort?: string;
49
+ /** Vite 服务绑定主机(由服务端/探测下发;缺省回退 DEFAULT_HOSTNAME)。避免与 vite 实际绑定的地址族不一致 */
50
+ viteHost?: string;
49
51
  /** 服务实例唯一标识(扩展模式多实例隔离用) */
50
52
  serviceInstanceId?: string;
51
53
  /** 当前窗口 ID(扩展模式多窗口隔离用) */
@@ -214,6 +216,8 @@ export interface AIPanelServiceInfo {
214
216
  proxyPort: number;
215
217
  /** Vite 开发服务端口(字符串;可能来自 widget 上报或探测 origin) */
216
218
  vitePort: string;
219
+ /** Vite 开发服务主机(源自探测 origin 的 hostname;扩展侧连接用,避免 127.0.0.1 与 ::1 地址族错位) */
220
+ viteHost: string;
217
221
  /** 项目根目录 */
218
222
  projectRoot: string;
219
223
  /** 服务实例唯一 id(多实例隔离) */
@@ -259,6 +263,14 @@ export interface AIPanelWidgetProps {
259
263
  hideBubble?: boolean;
260
264
  /** 是否支持代码审查面板(右上角 </> 按钮);由 Provider capabilities.reviewPanel 决定 */
261
265
  reviewPanelEnabled?: boolean;
266
+ /** Provider 接管会话侧栏(隐藏原生会话列表,Provider 自家侧栏在 iframe 内渲染);由 Provider capabilities.sidebar.takeover 决定 */
267
+ providerSidebar?: boolean;
268
+ /**
269
+ * 侧栏折叠开关归属(默认 "host"):
270
+ * host:宿主保留左上角开关并驱动折叠;provider:宿主隐藏左上角按钮,由 Provider 自带开关控制。
271
+ * 仅 providerSidebar=true 时生效;由 Provider capabilities.sidebar.collapseControl 决定。
272
+ */
273
+ sidebarCollapseControl?: ProviderSidebarCollapseControl;
262
274
  }
263
275
  /**
264
276
  * 挂件组件事件
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aipanel/core",
3
- "version": "1.2.11",
3
+ "version": "1.2.13",
4
4
  "type": "module",
5
5
  "sideEffects": false,
6
6
  "main": "lib/index.cjs",