Download docs/js/lisp-expand.mjs from Snapkitty/snapkitty-clojure-lisp-bridge: direct link, hf CLI and curl.
- Browser
- Download file 2.94 kB
-
https://huggingface.co/Snapkitty/snapkitty-clojure-lisp-bridge/resolve/main/docs/js/lisp-expand.mjs
- Command line
-
hf download hf://Snapkitty/snapkitty-clojure-lisp-bridge/docs/js/lisp-expand.mjs
-
curl -L -o lisp-expand.mjs https://huggingface.co/Snapkitty/snapkitty-clojure-lisp-bridge/resolve/main/docs/js/lisp-expand.mjs
2.94 kB
| var LispExpand = { | |
| expansions: { | |
| '(agent trust audit)': [ | |
| '(progn', | |
| ' (let ((agent-state (agent-status)))', | |
| ' (let ((trust-score (trust-score)))', | |
| ' (let ((audit-data (audit-log)))', | |
| ' (list agent-state trust-score audit-data)))))' | |
| ].join('\n'), | |
| '(agent status)': '(agent-status)', | |
| '(trust score)': '(trust-score)', | |
| '(seal state)': '(seal-state)', | |
| '(vault count)': '(woz-vault-count)', | |
| '(boot system)': '(boot)', | |
| '(run debate topic)': '(debate topic)', | |
| '(export snapshot)': '(export-snapshot)', | |
| '(draw agent)': '(draw-agent)', | |
| '(eval expr)': '(eval expr)' | |
| }, | |
| expand: function(exprStr) { | |
| var key = exprStr.toLowerCase().trim(); | |
| var expansion = this.expansions[key]; | |
| if (expansion) { | |
| return { | |
| input: exprStr, | |
| expansion: expansion, | |
| steps: expansion.split('\n').length, | |
| safe: true | |
| }; | |
| } | |
| // Try generic expansion | |
| var parsed = SExprParser.parse(exprStr); | |
| if (parsed && Array.isArray(parsed)) { | |
| var expanded = this._expandForm(parsed); | |
| return { | |
| input: exprStr, | |
| expansion: expanded, | |
| steps: 1, | |
| safe: true | |
| }; | |
| } | |
| return { | |
| input: exprStr, | |
| expansion: exprStr, | |
| steps: 1, | |
| safe: true | |
| }; | |
| }, | |
| _expandForm: function(form) { | |
| if (!Array.isArray(form) || form.length === 0) return SExprParser.toString(form); | |
| var op = form[0]; | |
| var args = form.slice(1); | |
| if (op === '+' || op === '-' || op === '*' || op === '/') { | |
| return '(calc ' + op + ' ' + args.map(SExprParser.toString).join(' ') + ')'; | |
| } | |
| if (op === 'agent-status' || op === 'trust-score' || op === 'seal-state' || op === 'woz-vault-count' || op === 'draw-agent') { | |
| return '(' + op + ')'; | |
| } | |
| return SExprParser.toString(form); | |
| }, | |
| render: function(r) { | |
| return [ | |
| 'ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ', | |
| 'β LISP EXPAND β', | |
| 'β βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ£', | |
| 'β INPUT: ' + r.input.padEnd(45) + 'β', | |
| 'β EXPANSION: ' + r.expansion.substring(0, 45).padEnd(45) + 'β', | |
| 'β STEPS: ' + String(r.steps).padEnd(45) + 'β', | |
| 'β SAFE: ' + String(r.safe).padEnd(45) + 'β', | |
| 'ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ' | |
| ].join('\n'); | |
| } | |
| }; | |