chore: establish YCode replication baseline and TODO
This commit is contained in:
commit
6dc59f89ba
1118 files changed
+196002
No files matched your search
@@ -0,0 +1,34 @@
|
||||
// Inspect archived REA results only; this script has no access to the original runtime.
|
||||
import fs from 'node:fs/promises'
|
||||
import path from 'node:path'
|
||||
import crypto from 'node:crypto'
|
||||
const states = [
|
||||
['专家市场', '.tmp/rea-expert-entry-static-20261016'],
|
||||
['我的专家空态', '.tmp/rea-my-experts-static-20261016'],
|
||||
['技能市场', '.tmp/rea-market-skills-20261016', 0],
|
||||
['已安装技能', '.tmp/rea-installed-skills-static-20261016'],
|
||||
['添加技能菜单', '.tmp/rea-add-skill-options-20261016', 0],
|
||||
['连接器市场', '.tmp/rea-market-connectors-static-20261016'],
|
||||
['QQ邮箱未连接详情', '.tmp/rea-connector-detail-20261016', 0],
|
||||
['详情收到Escape后仍打开', '.tmp/rea-connector-detail-20261016', 1],
|
||||
['自定义MCP管理', '.tmp/rea-custom-connectors-static-20261016'],
|
||||
['取证结束已恢复首页', '.tmp/rea-capability-restored-home-20261016']
|
||||
]
|
||||
const results = []
|
||||
for (const [name, directory, frame] of states) {
|
||||
const layout = JSON.parse(await fs.readFile(path.join(directory, 'layout.json'), 'utf8'))
|
||||
const artifact = frame === undefined ? layout.artifact : layout.probe.frames[frame].artifact
|
||||
const file = path.join(directory, frame === undefined ? 'workbuddy.png' : `frame-${String(frame).padStart(3, '0')}.png`)
|
||||
const png = await fs.readFile(file)
|
||||
const sha256 = crypto.createHash('sha256').update(png).digest('hex')
|
||||
if (sha256 !== artifact.sha256) throw Error(`REA PNG mismatch: ${name}`)
|
||||
results.push({ name, evidenceId: layout.evidenceId, file, sha256,
|
||||
observation: frame === undefined ? 'static baseline layout and image' : 'post-action image; baseline layout describes the earlier state',
|
||||
...(frame === undefined ? {} : { step: layout.probe.frames[frame].step_id, probeStatus: layout.probe.status,
|
||||
steps: layout.probe.steps.map(({ step_id, status, error }) => ({ step_id, status, error })), restoration: layout.probe.restoration }) })
|
||||
}
|
||||
const output = '.tmp/capability-assessment-20261016/runtime-index.json'
|
||||
await fs.mkdir(path.dirname(output), { recursive: true })
|
||||
await fs.writeFile(output, JSON.stringify({ originalVersion: '5.8.2', scope: 'REA archived UI observations; not an implementation or pixel-parity verdict',
|
||||
actionsExcluded: ['installation', 'enabling/disabling', 'account authorization', 'configuration save', 'model messages'], results }, null, 2))
|
||||
console.log(JSON.stringify({ output, imagesVerified: results.length, partialFramesRetained: results.filter(result => result.probeStatus === 'failed').length }))
|
||||
Reference in new issue
Block a user