ScenarioModuleContext
场景模块运行时上下文,提供工具注册、IPC、数据通信、SQL 执行等能力。
typescript
interface ScenarioModuleContext {
scenarioId: string
workspacePath: string | null
logger: ScenarioLogger
registerIpcHandler(channel: string, handler: ScenarioIpcHandler): void
publishData(channel: string, data: unknown): void
subscribeData(channel: string, callback: (data: unknown) => void): void
getSharedData(key: string): unknown
querySql(query: string, connectionId?: string): Promise<ScenarioSqlResult>
}
interface ScenarioLogger {
info(message: string, ...args: unknown[]): void
warn(message: string, ...args: unknown[]): void
error(message: string, ...args: unknown[]): void
debug(message: string, ...args: unknown[]): void
}
interface ScenarioSqlResult {
success: boolean
data?: Record<string, unknown>[]
error?: string
}使用示例
typescript
async onActivate(context: ScenarioModuleContext) {
// 日志
context.logger.info('场景已激活')
// 注册 IPC
context.registerIpcHandler('my-scenario:get-data', async (payload) => {
return { data: 'result' }
})
// 发布数据
context.publishData('scenario:ready', { status: 'active' })
// 查询数据库
const result = await context.querySql('SELECT * FROM tasks')
context.logger.info(`任务数: ${result.data?.length}`)
}
