- shared/ ports the worksheet's ledger math, time parsing, and reference tables (cultivars/processes/roast-levels/machine bands) as browser-safe ESM, imported by both the server and the browser so the arithmetic can't drift between them. - server/prefill.js runs a zero-tool Pi Coding Agent SDK turn to extract page facts from a bean product URL, then derives worksheet field IDs deterministically from reference-data.js — the model never invents a first-crack anchor or a modifier. - server/alog.js ports the Python alog_parser.py's format handling, including the tokenizer-based Python-dict-literal-to-JSON conversion the real files need. - public/ is the worksheet reproduced as a live HTML form: worksheet.css is a verbatim copy of the paper worksheet's print CSS, print.js bakes values into the print layout so the same DOM renders both on screen and on paper. - Ledger math verified against both of the paper worksheet's worked examples; alog parser verified against all 14 real logs in ref/roasts/. Co-Authored-By: Claude Sonnet 5 <[email protected]>
16 lines
418 B
JSON
16 lines
418 B
JSON
{
|
|
"name": "roast-planner-webapp",
|
|
"version": "0.1.0",
|
|
"private": true,
|
|
"type": "module",
|
|
"description": "Fillable web version of the manual roast plan worksheet, with URL prefill and .alog reference curves.",
|
|
"scripts": {
|
|
"start": "node server/index.js",
|
|
"dev": "node --watch server/index.js"
|
|
},
|
|
"dependencies": {
|
|
"express": "^5.0.1",
|
|
"@earendil-works/pi-coding-agent": "^0.82.1"
|
|
}
|
|
}
|