- 추적 화살표(spreadsheet_trace.ts): 누를 때마다 한 단계 · 범위는 상자 · 오류 칸 화살 빨강 · 다른 시트 점선 · 지우기 - 수식 계산 창(spreadsheet_eval_steps.ts): 왼쪽부터 한 마디씩 값으로 · 밑줄 · IF 류 첫 인자만 먼저 · 값은 엔진 풀이 - 오류 검사(spreadsheet_errcheck.ts): 순환 · 식 오류 · 숫자처럼 보이는 글 까닭 · ⚠ 메뉴(숫자로 변환 · 계산 단계 · 선행 추적 · 오류 무시) - 격자 초록 세모는 C(sub6) · 잇기는 sub7 — 머리 주석에 잇는 법 - 엔진: evalSafe 내보냄 · formulaToText 에 갈음 · 밑줄 자리 · 계약 파일 목록 줄만 더함 - 시험: test_spreadsheet_analysis.py(3 묶음) · harness_analysis(ORCA) · 시험 틀은 inspect 로 문맥 꺼냄 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01TULoa94ZFL26KU6ZqVpjkF
30 lines
1.1 KiB
JavaScript
30 lines
1.1 KiB
JavaScript
/* 수식 분석 시험 틀 번들 — rolldown(이미 설치) 한 파일 · css 는 <style> 로 넣음 · @ui 별칭.
|
|
* node harness_analysis_bundle.cjs → tmp/spreadsheet_analysis/harness.js (git 밖) */
|
|
const fs = require("fs");
|
|
const path = require("path");
|
|
const ROOT = path.join(__dirname, "..", "..", "..");
|
|
const { build } = require(path.join(ROOT, "config", "node_modules", "rolldown"));
|
|
|
|
build({
|
|
input: path.join(__dirname, "harness_analysis.ts"),
|
|
resolve: { alias: { "@ui": path.join(ROOT, "ui_template") } },
|
|
plugins: [
|
|
{
|
|
name: "css-inline",
|
|
load(id) {
|
|
if (!id.endsWith(".css")) return null;
|
|
const css = JSON.stringify(fs.readFileSync(id, "utf8"));
|
|
const code = `const s = document.createElement("style"); s.textContent = ${css}; document.head.append(s);`;
|
|
return { code, moduleType: "js" };
|
|
},
|
|
},
|
|
],
|
|
output: { file: path.join(ROOT, "tmp", "spreadsheet_analysis", "harness.js"), format: "iife" },
|
|
}).then(
|
|
() => console.log("ok"),
|
|
(e) => {
|
|
console.error(e.message);
|
|
process.exit(1);
|
|
},
|
|
);
|