Skip to content

AgentFileDiff ​

面向 Agent 变更审阅的双端文件差异:单栏/并排布局、行内变更、折叠上下文、行选择与接受拒绝操作。

案例 ​

AgentFileDiffH5 与 Wevu 使用同一公共 API
实时状态
发布检查工作流AgentFileDiff
src/runtime/create-agent-stream.tsRunning
+2−1
@@ -16,5 +16,6 @@ createAgentStream
3 行变更

基础用法 ​

vue
<script setup lang="ts">
import type { AgentDiffLine, AgentDiffView } from '@/components/agent-ui'
import { shallowRef } from 'vue'
import { AgentFileDiff } from '@/components/agent-ui'

const view = shallowRef<AgentDiffView>('unified')
const lines: AgentDiffLine[] = [
  { content: '@@ -16,5 +16,6 @@ createAgentStream', type: 'hunk' },
  { content: '  const status = shallowRef<\'idle\' | \'done\'>(\'idle\')', oldNumber: 17, type: 'remove' },
  { content: '  const status = shallowRef<AgentStreamStatus>(\'streaming\')', newNumber: 17, type: 'add' },
  { content: '  const scheduler = target === \'weapp\' ? \'time-slice\' : \'raf\'', newNumber: 18, type: 'add' },
  { collapsedLines: 18, content: '@@ More unchanged context', type: 'hunk' }
]
</script>

<template>
  <AgentFileDiff
    v-model:view="view"
    filename="src/runtime/create-agent-stream.ts"
    :lines="lines"
    @accept="applyChanges"
    @reject="discardChanges"
  />
</template>

Props ​

PropTypeDefault说明
classNameClassValueundefined通过目标对应的 cn 合并根节点样式
filenamestringrequired文件路径;头部会区分目录和文件名
linesAgentDiffLine[][]差异行;支持 add、remove、context、hunk
additionsnumber自动统计覆盖新增行计数
deletionsnumber自动统计覆盖删除行计数
openbooleanundefined受控展开状态
defaultOpenbooleantrue非受控默认展开状态
viewAgentDiffViewundefined受控 unified / split 视图
defaultViewAgentDiffViewunified非受控默认视图
wrapbooleanundefined受控代码换行状态
defaultWrapbooleanfalse非受控默认换行状态
lineNumbersbooleanundefined受控行号状态
defaultLineNumbersbooleantrue非受控默认行号状态
indicatorsbars | classic | nonebars变更指示方式
inlineChangesbooleantrue高亮成对删除/新增行中的变化片段
showToolbarbooleantrue显示布局、换行和行号控制
showActionsbooleantrue显示接受/拒绝操作
disabledbooleanfalse禁用审阅操作
labelsPartial<AgentFileDiffLabels>{}覆盖界面文案
statusAgentAdvancedStatuscompletedAgent 状态

Events ​

EventPayload说明
acceptvoid接受当前文件变更
rejectvoid拒绝当前文件变更
selectAgentDiffSelection选择单栏行或并排侧的行
expand(line, index)请求展开 hunk 中折叠的上下文
update:openboolean展开状态变化
update:viewAgentDiffView单栏/并排视图变化
update:wrapboolean换行状态变化
update:lineNumbersboolean行号状态变化

Slots ​

SlotProps说明
line{ line, index, side }覆盖代码内容渲染;用于接入已有 token 高亮器

平台差异

TargetImport
H5Named export from @/components/agent-ui
weapp默认导出自 @/components/agent-ui/AgentFileDiff.vue;类型来自 @/components/agent-ui/file-diff