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,53 @@
|
||||
import assert from 'node:assert/strict'
|
||||
import { readFileSync, writeFileSync } from 'node:fs'
|
||||
import { resolve } from 'node:path'
|
||||
|
||||
const evidencePath = resolve('.tmp/rea-runtime-scripts.json')
|
||||
const outputPath = resolve('src/renderer/src/workbuddy/conversation/streaming-loading-tips.ts')
|
||||
const evidence = JSON.parse(readFileSync(evidencePath, 'utf8'))
|
||||
assert.equal(evidence.evidence_id, 'ev_717fa5e846e64d67ac19c8925d121bff632c0d3aefb3603b10858559cabb2dcb')
|
||||
|
||||
const sourceRecord = evidence.items.find(item => item.file_path.endsWith('src-0FGg1seX.js'))
|
||||
assert.ok(sourceRecord?.source?.artifact?.text, 'REA evidence must contain the recovered conversation module')
|
||||
assert.equal(sourceRecord.source.artifact.sha256, 'f2c6dbae949041b4e2bb456e8a23ae2837f2d7893ac24bf471485f77c7b15178')
|
||||
|
||||
const source = sourceRecord.source.artifact.text
|
||||
const localeFunction = source.indexOf('function normalizeLocale')
|
||||
assert.ok(localeFunction > 0, 'Source locale resolver must be present')
|
||||
|
||||
function extractTips(name, delimiter) {
|
||||
const tick = String.fromCharCode(96)
|
||||
const assignment = source.lastIndexOf(`${name}=${tick}`, localeFunction)
|
||||
assert.ok(assignment >= 0, `Source ${name} tip list must be present`)
|
||||
const contentStart = assignment + name.length + 2
|
||||
const contentEnd = source.indexOf(tick, contentStart)
|
||||
assert.ok(contentEnd > contentStart, `Source ${name} template literal must be closed`)
|
||||
assert.ok(source.startsWith(`${tick}.split(${tick}${delimiter}${tick})`, contentEnd),
|
||||
`Source ${name} list must use its recorded ${JSON.stringify(delimiter)} separator`)
|
||||
|
||||
const values = source.slice(contentStart, contentEnd)
|
||||
.split(delimiter)
|
||||
.filter(Boolean)
|
||||
.map(value => value
|
||||
.replace(/\\u([0-9a-f]{4})/gi, (_match, hex) => String.fromCharCode(Number.parseInt(hex, 16)))
|
||||
.replace(/\\"/g, '"'))
|
||||
assert.ok(values.length > 0, `Source ${name} tip list must not be empty`)
|
||||
return values
|
||||
}
|
||||
|
||||
const englishTips = [...extractTips('dD', '.'), ...extractTips('fD', '(')]
|
||||
const chineseTips = [...extractTips('mD', '.'), ...extractTips('hD', '.')]
|
||||
const output = `// Generated from REA ${evidence.evidence_id}; src-0FGg1seX.js SHA-256 ${sourceRecord.source.artifact.sha256}.\n` +
|
||||
'// WorkBuddy 5.8.2 getLoadingTips() arrays; brand substitution happens in the host component.\n' +
|
||||
'export const SOURCE_LOADING_TIPS = {\n' +
|
||||
` en: ${JSON.stringify(englishTips, null, 2).replaceAll('\n', '\n ')},\n` +
|
||||
` zh: ${JSON.stringify(chineseTips, null, 2).replaceAll('\n', '\n ')}\n` +
|
||||
'} as const\n'
|
||||
|
||||
if (process.argv.includes('--check')) {
|
||||
assert.equal(readFileSync(outputPath, 'utf8'), output, 'Recovered streaming loading tips are stale')
|
||||
console.log(`streaming loading tips check passed (${englishTips.length} en / ${chineseTips.length} zh)`)
|
||||
} else {
|
||||
writeFileSync(outputPath, output, 'utf8')
|
||||
console.log(`recovered streaming loading tips (${englishTips.length} en / ${chineseTips.length} zh) to ${outputPath}`)
|
||||
}
|
||||
Reference in new issue
Block a user