Download docs/js/lisp-machine-legacy.mjs from Snapkitty/snapkitty-clojure-lisp-bridge: direct link, hf CLI and curl.
- Browser
- Download file 2.69 kB
-
https://huggingface.co/Snapkitty/snapkitty-clojure-lisp-bridge/resolve/main/docs/js/lisp-machine-legacy.mjs
- Command line
-
hf download hf://Snapkitty/snapkitty-clojure-lisp-bridge/docs/js/lisp-machine-legacy.mjs
-
curl -L -o lisp-machine-legacy.mjs https://huggingface.co/Snapkitty/snapkitty-clojure-lisp-bridge/resolve/main/docs/js/lisp-machine-legacy.mjs
2.69 kB
| var LispMachine = { | |
| env: {}, | |
| safeOps: { | |
| '+': function(args) { return args.reduce(function(a, b) { return a + b; }, 0); }, | |
| '-': function(args) { return args.slice(1).reduce(function(a, b) { return a - b; }, args[0]); }, | |
| '*': function(args) { return args.reduce(function(a, b) { return a * b; }, 1); }, | |
| '/': function(args) { return args.slice(1).reduce(function(a, b) { return a / b; }, args[0]); }, | |
| 'quote': function(args) { return args[0]; }, | |
| 'list': function(args) { return args; }, | |
| 'car': function(args) { return Array.isArray(args[0]) ? args[0][0] : null; }, | |
| 'cdr': function(args) { return Array.isArray(args[0]) ? args[0].slice(1) : []; }, | |
| 'cons': function(args) { | |
| if (Array.isArray(args[1])) return [args[0]].concat(args[1]); | |
| return [args[0], args[1]]; | |
| }, | |
| 'agent-status': function() { | |
| return 'ENKI: active (sim) — tension proposer\nSENTINEL: active (sim) — claim auditor\nAll local, no remote.'; | |
| }, | |
| 'trust-score': function() { | |
| var events = WozVault.readAuditLog(); | |
| var seals = events.filter(function(e) { return e.type && e.type.indexOf('SEAL') >= 0; }); | |
| var score = Math.min(1, seals.length * 0.1 + 0.5); | |
| return 'trust: ' + Math.round(score * 100) + '%\nevents: ' + events.length + '\nseals: ' + seals.length; | |
| }, | |
| 'draw-agent': function() { | |
| return [ | |
| ' .---.', | |
| ' / \\ [LISP AGENT: AWAKE]', | |
| ' | () () | [TRUST: VERIFIED]', | |
| ' \\ ^ / [ADA CONTRACT: ALLOWED]', | |
| ' ||||| [WOZ VAULT: ONLINE]' | |
| ].join('\n'); | |
| }, | |
| 'woz-vault-count': function() { | |
| return WozVault.readAuditLog().length; | |
| }, | |
| 'seal-state': function() { | |
| var events = WozVault.readAuditLog(); | |
| var seals = events.filter(function(e) { return e.type && e.type.indexOf('SEAL') >= 0; }); | |
| return 'sealed_events: ' + seals.length + '\nlast_seal: ' + (seals.length > 0 ? (seals[seals.length - 1].seal || 'none').slice(0, 16) + '...' : 'none'); | |
| } | |
| }, | |
| eval: function(expr) { | |
| if (expr === null || expr === undefined) return null; | |
| if (typeof expr === 'number') return expr; | |
| if (typeof expr === 'string') { | |
| if (this.env.hasOwnProperty(expr)) return this.env[expr]; | |
| return expr; | |
| } | |
| if (Array.isArray(expr)) { | |
| if (expr.length === 0) return []; | |
| var op = expr[0]; | |
| var args = expr.slice(1).map(this.eval.bind(this)); | |
| if (typeof op === 'string' && this.safeOps[op]) { | |
| return this.safeOps[op](args); | |
| } | |
| return [op].concat(args); | |
| } | |
| return expr; | |
| } | |
| }; | |