Skip to content

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}`)
}

AweeClaw AI 应用构建平台