chore: establish YCode replication baseline and TODO

This commit is contained in:
xiaohan.yuan committed 2026-10-17 02:43:49 +08:00
commit 6dc59f89ba
1118 files changed
+196002

No files matched your search

@@ -0,0 +1,39 @@
import fs from 'node:fs/promises'
import path from 'node:path'
import assert from 'node:assert/strict'
import { createHash } from 'node:crypto'
import { parse } from '@babel/parser'
import traverseModule from '@babel/traverse'
const traverse = traverseModule.default, hash = value => createHash('sha256').update(value).digest('hex')
const directory = path.resolve('src/renderer/src/workbuddy/workbench/source-code-assets')
const manifest = JSON.parse(await fs.readFile(path.join(directory, 'manifest.json'), 'utf8'))
assert.equal(manifest.rootSha256, '035254bc76310ea46317433e4840602094543ef323d2d5c5aff7c131729de918')
for (const file of manifest.assets) {
const bytes = await fs.readFile(path.join(directory, file.name))
assert.equal(hash(bytes), file.outputSha256, 'Recovered asset changed: ' + file.name)
if (!file.adapters.length) assert.equal(file.outputSha256, file.sourceSha256, 'Unadapted asset must remain byte-identical')
for (const dependency of manifest.graph[file.name]) assert.ok(manifest.assets.some(file => file.name === dependency), 'Missing closure dependency ' + dependency)
assert.ok(!/contexts|src-0FG|react-z/.test(file.name), 'Pure Monaco graph must not import original app/React globals')
}
const wrapper = await fs.readFile(path.join(directory, 'wrapper.mjs'), 'utf8'), found = new Set()
traverse(parse(wrapper, { sourceType: 'module' }), { AssignmentExpression(p) {
const name = p.node.left.name
if (!manifest.wrapper[name]) return
const body = wrapper.slice(p.node.start, p.node.end)
if (hash(body) === manifest.wrapper[name].sha256) found.add(name)
}, FunctionDeclaration(p) {
const name = p.node.id?.name
if (manifest.wrapper[name] && hash(wrapper.slice(p.node.start, p.node.end)) === manifest.wrapper[name].sha256) found.add(name)
} })
for (const name of Object.keys(manifest.wrapper)) assert.ok(found.has(name), 'Original wrapper body changed: ' + name)
assert.equal(manifest.wrapper.re.sha256, '6d7aeb7714f2f52fd86c37957a12c5774be029b31e96f39a50b7e8e6ec11b9a8')
assert.equal(manifest.wrapper.ee.sha256, 'e8030c9dd9bb94e12f4a3e4816362ec53e52b4380b348c38b42627ff37dbfac4')
const { getLanguageFromFileName } = await import('../src/renderer/src/workbuddy/workbench/source-code-assets/extension.mjs')
assert.equal(getLanguageFromFileName('file.TSX'), 'typescript')
assert.equal(getLanguageFromFileName('file.ps1'), 'powershell')
assert.equal(getLanguageFromFileName('file.unknown'), 'plaintext')
const init = await fs.readFile(path.join(directory, 'monaco-init-CE4MbM4x.js'), 'utf8')
assert.equal((init.match(/YCode local Monaco assets failed to load/g) || []).length, 2)
assert.ok(!init.includes('P.config({paths:{vs:`https://cdn.jsdelivr.net/npm/monaco-editor@0.45.0/min/vs`}})'), 'Original CDN failure path must never execute in YCode')
assert.ok(wrapper.includes('CloseIcon$2=') && manifest.sourceCloseIcon, 'Source close SVG must be retained')
console.log(JSON.stringify({ result: 'PASS', assets: manifest.assets.length, sourceBodies: found.size, exactWrapperCharacters: manifest.wrapper.re.end - manifest.wrapper.re.start, graphDependenciesPresent: true }))