EENE Dashboard upload to Gitea
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
49
scripts/restore-from-transcript.mjs
Normal file
49
scripts/restore-from-transcript.mjs
Normal file
@@ -0,0 +1,49 @@
|
||||
import fs from 'fs';
|
||||
import path from 'path';
|
||||
|
||||
const jsonl =
|
||||
'C:/Users/한맥/.cursor/projects/d-EENE-Dashboard-0608/agent-transcripts/a31af370-8cc7-4941-8299-96fbb85f1ad8/a31af370-8cc7-4941-8299-96fbb85f1ad8.jsonl';
|
||||
const root = 'd:/EENE_Dashboard_0608';
|
||||
|
||||
const files = new Map();
|
||||
const replaces = [];
|
||||
|
||||
for (const line of fs.readFileSync(jsonl, 'utf8').split('\n')) {
|
||||
if (!line.trim()) continue;
|
||||
try {
|
||||
const o = JSON.parse(line);
|
||||
for (const p of o.message?.content ?? []) {
|
||||
if (p.type !== 'tool_use') continue;
|
||||
const inp = p.input ?? {};
|
||||
const fp = inp.path;
|
||||
if (!fp?.includes('EENE_Dashboard_0608')) continue;
|
||||
if (inp.contents) files.set(fp, inp.contents);
|
||||
if (inp.old_string && inp.new_string && fp.includes('frontend')) {
|
||||
replaces.push({ fp, old: inp.old_string, new: inp.new_string });
|
||||
}
|
||||
}
|
||||
} catch {
|
||||
/* skip */
|
||||
}
|
||||
}
|
||||
|
||||
function toRel(fp) {
|
||||
return fp
|
||||
.replace(/\\/g, '/')
|
||||
.replace(/^d:\/EENE_Dashboard_0608\//i, '')
|
||||
.replace(/^D:\/EENE_Dashboard_0608\//, '');
|
||||
}
|
||||
|
||||
for (const [fp, initial] of files) {
|
||||
let content = initial;
|
||||
for (const r of replaces) {
|
||||
if (r.fp !== fp) continue;
|
||||
if (content.includes(r.old)) content = content.replace(r.old, r.new);
|
||||
}
|
||||
const rel = toRel(fp);
|
||||
if (!rel.startsWith('frontend/') && !rel.startsWith('backend/')) continue;
|
||||
const out = path.join(root, rel);
|
||||
fs.mkdirSync(path.dirname(out), { recursive: true });
|
||||
fs.writeFileSync(out, content, 'utf8');
|
||||
console.log('restored', rel, content.length);
|
||||
}
|
||||
Reference in New Issue
Block a user