完善注释
This commit is contained in:
parent
998218161a
commit
a26b07ba67
|
|
@ -1,57 +1,75 @@
|
||||||
/** Optional util.format detail; call sites pass caught exceptions. */
|
/**
|
||||||
|
* Logger 第二参数的可选类型。
|
||||||
|
* 调用方通过 util.format 追加详情,实践中多为 catch 到的异常对象。
|
||||||
|
*/
|
||||||
export type LoggerDetail = Error | NodeJS.ErrnoException
|
export type LoggerDetail = Error | NodeJS.ErrnoException
|
||||||
|
|
||||||
|
/** 将 unknown 收窄为 LoggerDetail,供 catch 块传给 logger 使用。 */
|
||||||
export function toLoggerDetail(detail: unknown): LoggerDetail | undefined {
|
export function toLoggerDetail(detail: unknown): LoggerDetail | undefined {
|
||||||
return detail instanceof Error ? detail : undefined
|
return detail instanceof Error ? detail : undefined
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** 宿主注入的日志接口,与 DebugLogger(util.format)对齐。 */
|
||||||
export interface Logger {
|
export interface Logger {
|
||||||
info: (message: string, detail?: LoggerDetail) => void
|
info: (message: string, detail?: LoggerDetail) => void // 信息
|
||||||
error: (message: string, detail?: LoggerDetail) => void
|
error: (message: string, detail?: LoggerDetail) => void // 错误
|
||||||
warn: (message: string, detail?: LoggerDetail) => void
|
warn: (message: string, detail?: LoggerDetail) => void // 警告
|
||||||
debug: (message: string, detail?: LoggerDetail) => void
|
debug: (message: string, detail?: LoggerDetail) => void // 调试
|
||||||
silly: (message: string, detail?: LoggerDetail) => void
|
silly: (message: string, detail?: LoggerDetail) => void // 最细粒度调试
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Bridge 连接失败时的 error_type 枚举。
|
||||||
|
* 由 bridgeClient 在 getUserId / getOAuthToken / WebSocket 创建失败时上报。
|
||||||
|
*/
|
||||||
export type ChromeBridgeConnectionErrorType =
|
export type ChromeBridgeConnectionErrorType =
|
||||||
| 'no_user_id'
|
| 'no_user_id' // 无法获取用户 UUID
|
||||||
| 'no_oauth_token'
|
| 'no_oauth_token' // 无法获取 OAuth token
|
||||||
| 'websocket_error'
|
| 'websocket_error' // WebSocket 创建或运行异常
|
||||||
|
|
||||||
/** Metadata shapes emitted by bridgeClient trackEvent calls. */
|
/** 工具调用相关遥测元数据(started / completed / timeout / error)。 */
|
||||||
export type ChromeBridgeToolCallMetadata = {
|
export type ChromeBridgeToolCallMetadata = {
|
||||||
tool_name: string
|
tool_name: string // MCP 工具名
|
||||||
tool_use_id: string
|
tool_use_id: string // 本次调用的 UUID
|
||||||
duration_ms?: number
|
duration_ms?: number // 耗时(毫秒)
|
||||||
timeout_ms?: number
|
timeout_ms?: number // 超时阈值(毫秒),仅 timeout 事件
|
||||||
error_message?: string
|
error_message?: string // 错误摘要(截断),仅 error 事件
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** Bridge 连接失败遥测元数据。 */
|
||||||
export type ChromeBridgeConnectionFailedMetadata = {
|
export type ChromeBridgeConnectionFailedMetadata = {
|
||||||
duration_ms: number
|
duration_ms: number // 自连接开始到失败的耗时(毫秒)
|
||||||
error_type: ChromeBridgeConnectionErrorType
|
error_type: ChromeBridgeConnectionErrorType // 失败原因分类
|
||||||
reconnect_attempt: number
|
reconnect_attempt: number // 当前重连尝试次数
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** Bridge 开始连接遥测元数据。 */
|
||||||
export type ChromeBridgeConnectionStartedMetadata = {
|
export type ChromeBridgeConnectionStartedMetadata = {
|
||||||
bridge_url: string
|
bridge_url: string // 目标 WebSocket URL(含用户路径)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** Bridge 断开连接遥测元数据。 */
|
||||||
export type ChromeBridgeDisconnectedMetadata = {
|
export type ChromeBridgeDisconnectedMetadata = {
|
||||||
close_code: number
|
close_code: number // WebSocket 关闭码
|
||||||
duration_since_connect_ms: number
|
duration_since_connect_ms: number // 自连接成功到断开的时长(毫秒)
|
||||||
reconnect_attempt: number
|
reconnect_attempt: number // 即将进行的重连序号
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** Bridge 连接成功遥测元数据。 */
|
||||||
export type ChromeBridgeConnectionSucceededMetadata = {
|
export type ChromeBridgeConnectionSucceededMetadata = {
|
||||||
duration_ms: number
|
duration_ms: number // 自开始到连接就绪的耗时(毫秒)
|
||||||
status: 'paired' | 'waiting'
|
status: 'paired' | 'waiting' // paired=已配对扩展;waiting=等待扩展接入
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** Bridge 重连次数耗尽遥测元数据。 */
|
||||||
export type ChromeBridgeReconnectExhaustedMetadata = {
|
export type ChromeBridgeReconnectExhaustedMetadata = {
|
||||||
total_attempts: number
|
total_attempts: number // 累计重连次数上限
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* trackEvent 回调的 metadata 联合类型。
|
||||||
|
* 各变体对应 bridgeClient 内 chrome_bridge_* 事件;null 表示无附加字段。
|
||||||
|
*/
|
||||||
export type ChromeBridgeTrackEventMetadata =
|
export type ChromeBridgeTrackEventMetadata =
|
||||||
| ChromeBridgeToolCallMetadata
|
| ChromeBridgeToolCallMetadata
|
||||||
| ChromeBridgeConnectionFailedMetadata
|
| ChromeBridgeConnectionFailedMetadata
|
||||||
|
|
@ -59,7 +77,7 @@ export type ChromeBridgeTrackEventMetadata =
|
||||||
| ChromeBridgeDisconnectedMetadata
|
| ChromeBridgeDisconnectedMetadata
|
||||||
| ChromeBridgeConnectionSucceededMetadata
|
| ChromeBridgeConnectionSucceededMetadata
|
||||||
| ChromeBridgeReconnectExhaustedMetadata
|
| ChromeBridgeReconnectExhaustedMetadata
|
||||||
| null
|
| null // 无元数据(如 peer_connected / peer_disconnected)
|
||||||
|
|
||||||
export type PermissionMode =
|
export type PermissionMode =
|
||||||
| 'ask'
|
| 'ask'
|
||||||
|
|
@ -103,10 +121,10 @@ export interface ClaudeForChromeContext {
|
||||||
bridgeConfig?: BridgeConfig
|
bridgeConfig?: BridgeConfig
|
||||||
/** If set, permission mode is sent to the extension immediately on bridge connection. */
|
/** If set, permission mode is sent to the extension immediately on bridge connection. */
|
||||||
initialPermissionMode?: PermissionMode
|
initialPermissionMode?: PermissionMode
|
||||||
/** Optional callback to track telemetry events for bridge connections */
|
/** Bridge 遥测回调;eventName 为 chrome_bridge_* 事件名 */
|
||||||
trackEvent?: (
|
trackEvent?: (
|
||||||
eventName: string,
|
eventName: string, // 事件名
|
||||||
metadata: ChromeBridgeTrackEventMetadata,
|
metadata: ChromeBridgeTrackEventMetadata, // 事件元数据
|
||||||
) => void
|
) => void
|
||||||
/** Called when user pairs with an extension via the browser pairing flow. */
|
/** Called when user pairs with an extension via the browser pairing flow. */
|
||||||
onExtensionPaired?: (deviceId: string, name: string) => void
|
onExtensionPaired?: (deviceId: string, name: string) => void
|
||||||
|
|
|
||||||
|
|
@ -8,19 +8,24 @@ import type {
|
||||||
* cross-respawn `scaleCoord` survival. */
|
* cross-respawn `scaleCoord` survival. */
|
||||||
export type ScreenshotDims = Omit<ScreenshotResult, 'base64'>
|
export type ScreenshotDims = Omit<ScreenshotResult, 'base64'>
|
||||||
|
|
||||||
/** Shape mirrors claude-for-chrome-mcp/src/types.ts Logger */
|
/**
|
||||||
|
* Logger 第二参数的可选类型(与 claude-for-chrome-mcp 对齐)。
|
||||||
|
* 实践中多为 catch 到的 Error。
|
||||||
|
*/
|
||||||
export type LoggerDetail = Error | NodeJS.ErrnoException
|
export type LoggerDetail = Error | NodeJS.ErrnoException
|
||||||
|
|
||||||
|
/** 将 unknown 收窄为 LoggerDetail,供 catch 块传给 logger 使用。 */
|
||||||
export function toLoggerDetail(detail: unknown): LoggerDetail | undefined {
|
export function toLoggerDetail(detail: unknown): LoggerDetail | undefined {
|
||||||
return detail instanceof Error ? detail : undefined
|
return detail instanceof Error ? detail : undefined
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** 宿主注入的日志接口(与 claude-for-chrome-mcp/src/types.ts 对齐)。 */
|
||||||
export interface Logger {
|
export interface Logger {
|
||||||
info: (message: string, detail?: LoggerDetail) => void
|
info: (message: string, detail?: LoggerDetail) => void // 信息
|
||||||
error: (message: string, detail?: LoggerDetail) => void
|
error: (message: string, detail?: LoggerDetail) => void // 错误
|
||||||
warn: (message: string, detail?: LoggerDetail) => void
|
warn: (message: string, detail?: LoggerDetail) => void // 警告
|
||||||
debug: (message: string, detail?: LoggerDetail) => void
|
debug: (message: string, detail?: LoggerDetail) => void // 调试
|
||||||
silly: (message: string, detail?: LoggerDetail) => void
|
silly: (message: string, detail?: LoggerDetail) => void // 最细粒度调试
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
||||||
|
|
@ -46,10 +46,9 @@ export type DOMElement = {
|
||||||
dirty: boolean
|
dirty: boolean
|
||||||
// Set by the reconciler's hideInstance/unhideInstance; survives style updates.
|
// Set by the reconciler's hideInstance/unhideInstance; survives style updates.
|
||||||
isHidden?: boolean
|
isHidden?: boolean
|
||||||
// Event handlers set by the reconciler for the capture/bubble dispatcher.
|
// 协调器写入的事件处理器(捕获/冒泡分发用)。
|
||||||
// Stored separately from attributes so handler identity changes don't
|
// 与 attributes 分离,避免 handler 引用变化触发 dirty 破坏 blit 优化。
|
||||||
// mark dirty and defeat the blit optimization.
|
_eventHandlers?: Partial<EventHandlerProps> // 见 event-handlers.ts EventHandlerProps
|
||||||
_eventHandlers?: Partial<EventHandlerProps>
|
|
||||||
|
|
||||||
// Scroll state for overflow: 'scroll' boxes. scrollTop is the number of
|
// Scroll state for overflow: 'scroll' boxes. scrollTop is the number of
|
||||||
// rows the content is scrolled down by. scrollHeight/scrollViewportHeight
|
// rows the content is scrolled down by. scrollHeight/scrollViewportHeight
|
||||||
|
|
|
||||||
|
|
@ -103,7 +103,8 @@ export class TerminalEvent extends Event {
|
||||||
|
|
||||||
import type { EventHandlerProps } from './event-handlers.js'
|
import type { EventHandlerProps } from './event-handlers.js'
|
||||||
|
|
||||||
|
/** 终端事件系统的目标节点(DOM 树节点或根节点)。 */
|
||||||
export type EventTarget = {
|
export type EventTarget = {
|
||||||
parentNode: EventTarget | undefined
|
parentNode: EventTarget | undefined // 父节点,根节点为 undefined
|
||||||
_eventHandlers?: Partial<EventHandlerProps>
|
_eventHandlers?: Partial<EventHandlerProps> // 事件处理器,与 dom.ts DOMElement 同构
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user