{"bin":{"saddle":"dist/cli.js"},"bugs":{"url":"https://github.com/wenathlan/saddle/issues"},"dist":{"shasum":"b01aa54b2be8f12f2276da31549d2477b0c1b6df","tarball":"https://registry.npmjs.org/@wenathlan/saddle/-/saddle-2.1.6.tgz","fileCount":283,"integrity":"sha512-P5t4blGys3LsCtzuPolf7AqZecn8t/AY0OUw2Umag3zyCMyndzX+sro5UcFi8o4b3iKItI1nbr6sue1b+e4G2w==","signatures":[{"sig":"MEYCIQD1/w4a4gRKIpXGEQxHEcVGQ441N5hJjlRPwO/0+J/jiQIhANpvMUyvai7SCqQCSU8ymipi71gv8KsdTqyDHnkTpHDO","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIDedsVlhlU81EqN/S0XHh5dx3vzCjpwrkrAfWwrONqaBAiBSvZZfUP4Ewu1Vxkk/jMqwpEsinRysgXi9UrVX/8+6Vg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":8731448},"main":"./dist/index.js","name":"@wenathlan/saddle","type":"module","types":"./dist/index.d.ts","author":{"name":"Wenathlan"},"module":"./dist/index.js","saddle":{"date":"2026-08-23","note":"merged e2ugh toolchain metadata carried under the saddle name (grand merge: nothing lost, names readapted)","merge":{"base":"pool package.json [S6 saddle-v6, 28 scripts, exports x11]","variants":"pool nested_package.json [v3-blindada: firecracker:boot, docker:run, os/cpu, system libs as deps -> systemLibraries note]","exportsNote":"flat v2 filenames; vm.config.json exported as canonical VM profile schema","optionalDependencies":"server/cli module modes only (express/dockerode/commander per versioncatalog modules); runtime stays zero-dep"},"modes":30,"minDocs":40,"maxFiles":"none (contract 1 of ci.yml removed the hard limit; the tracked-file counter is informational)","observer":"third person observer reports configuration state 2026-08-22","toolchain":{"npm":"12.0.2","llvm":"22.1.8","mesa":"26.2.1","node":"26.7.0","ovmf":"202605","qemu":"11.1.0","tini":"0.19.0","alpine":"3.22","debian":"bookworm-slim","docker":"29.7.2","python":"3.14.7","nodeLts":"24.19.0","pciutils":"3.13.0","typescript":"7.0.2","firecracker":"1.16.1","nodeCurrent":"26.7.0"},"nativeFirst":["node:fs","node:path","node:crypto","node:os","node:events","node:child_process","node:http","node:net","node:fs/promises"],"touchTarget":"44px","architecture":"root-first flat no src lowercase no _/- except mandatory dotted configs","errorCatcher":true,"libraryFirst":true,"githubActions":[{"action":"build-push","version":"v7.3.0"},{"action":"cache","version":"v6.1.0"},{"action":"checkout","version":"v7.0.1"},{"action":"codeql","version":"v4"},{"action":"dependency-review","version":"v5.0.0"},{"action":"dockle","version":"0.4.15"},{"action":"download-artifact","version":"v8.0.1"},{"action":"gh-release","version":"v2"},{"action":"gitleaks","version":"v3.0.0"},{"action":"login","version":"v4.6.0"},{"action":"metadata","version":"v6.2.0"},{"action":"sbom","version":"0.24.0"},{"action":"scorecard","version":"v2.4.4"},{"action":"setup-buildx","version":"v4.3.0"},{"action":"setup-node","version":"v7.0.0"},{"action":"setup-python","version":"v7.0.0"},{"action":"setup-qemu","version":"v4.2.0"},{"action":"snyk-node","version":"master (floating head; the optional snyk gate continues on error and never blocks)"},{"action":"trivy","version":"0.36.0"},{"action":"trivyPin","version":"tag v0.36.0 (the tag-pin doctrine of the family: actions pin by version tag, never by commit sha; the workflows reference trivy-action@v0.36.0)"},{"action":"upload-artifact","version":"v7.0.1"}],"neverLocalhost":true,"contextsPerFile":"20-25","legacyPinsSaddleV6":{"node":"22.12.3","note":"superseded date-first 2026-08-22; kept for provenance","qemu":"9.1.2","docker":"27.3.1","typescript":"5.6.3"},"internalMemoryPriority":true},"browser":"./dist/index.js","engines":{"npm":">=12.0.2","node":">=26.7.0"},"exports":{".":"./dist/index.js","./bot":"./dist/automation.js","./hash":"./dist/foundation.js","./mode":"./dist/modes.js","./media":"./media.ts","./modes":"./dist/modes.js","./tiers":"./tiers.ts","./deploy":"./dist/modes.js","./memory":"./dist/virtual.js","./render":"./render.ts","./worker":"./dist/execution.js","./browser":"./dist/browser.js","./captcha":"./dist/acquisition.js","./compute":"./compute.ts","./quantum":"./quantum.ts","./runners":"./dist/execution.js","./storage":"./dist/virtual.js","./delivery":"./dist/distribution.js","./security":"./security.ts","./sessions":"./dist/foundation.js","./specs/vm":"./vm.config.json","./extension":"./dist/browser.js","./isolation":"./dist/isolation.js","./scheduler":"./scheduler.ts","./specs/gpus":"./gpus.json","./specs/mttg":"./mttg.config","./specs/qemu":"./qemu.config","./virtualcpu":"./virtualcpu.ts","./virtualgpu":"./virtualgpu.ts","./memory-node":"./dist/virtual.js","./memory-plan":"./dist/virtual.js","./performance":"./performance.ts","./server-node":"./dist/server.js","./specs/cores":"./cores.json","./alternatives":"./alternatives.ts","./orchestrator":"./orchestrator.ts","./specs/boards":"./boards.json","./specs/docker":"./docker.config","./storage-node":"./dist/virtual.js","./storage-pool":"./dist/virtual.js","./memory-engine":"./dist/virtual.js","./sessions-file":"./dist/execution.js","./specs/passage":"./passage.config","./virtualmemory":"./virtualmemory.ts","./binary-archive":"./dist/distribution.js","./provider-chain":"./dist/execution.js","./release-assets":"./dist/distribution.js","./release-verify":"./dist/distribution.js","./sessions-store":"./dist/execution.js","./virtualization":"./virtualization.ts","./virtual-browser":"./dist/browser.js","./binary-transform":"./dist/distribution.js","./captcha-evidence":"./dist/acquisition.js","./queue-persistent":"./dist/execution.js","./release-evidence":"./dist/distribution.js","./specs/processors":"./processors.json","./browser-playwright":"./dist/browser.js","./surface-requirements":"./dist/automation.js","./specs/virtualhardware":"./virtualhardware.json"},"gitHead":"1620a9439480fb9bf39461e2b869b8094b26fda3","license":"GPL-3.0-only","private":false,"scripts":{"dev":"node --import tsx --watch ./cli.ts","run":"npm run build:engine && node dist/cli.js","web":"node web/server.ts","lint":"biome lint .","test":"npm run build:engine && node --import tsx --test tests/engine.test.ts tests/extension.test.ts tests/package.test.ts tests/release.test.ts tests/virtualengine.test.ts tests/features.test.ts tests/media.test.ts tests/render.test.ts tests/simulation.test.ts tests/specs.test.ts tests/virtualcpu.test.ts tests/virtualgpu.test.ts tests/virtualmemory.test.ts tests/web.test.ts tests/workflow.test.ts","build":"npm run build:engine","check":"npm run build:engine && node --check dist/index.js && node --check dist/execution.js && node --check dist/cli.js && node --check dist/browser.js && node --check dist/distribution.js","clean":"rm -rf dist coverage .biome __pycache__","start":"node --import tsx ./cli.ts plan","tauri":"npx --yes @tauri-apps/cli@2.11.4","format":"biome format --write .","dev:tsx":"node --import tsx --watch ./cli.ts","prepare":"echo 'saddle grand-merge toolchain 2026-08-23: Node 26.7.0 Current / 24.19.0 LTS, npm 12.0.2, TS 7.0.2, Python 3.14.7, Docker 29.7.2, QEMU 11.1.0, Mesa 26.2.1, LLVM 22.1.8, Firecracker 1.16.1'","py:test":"python3 -m pytest -q || python3 qemubridge.py","web:dev":"vite --host --config web/vite.config.ts","gpu:list":"node --import tsx ./cli.ts gpus","lint:fix":"biome lint --write . && biome check --write .","test:e2e":"node --test tests/*.test.ts","build:tsc":"tsc -p tsconfig.json --noEmitOnError false","py:bridge":"python3 qemubridge.py","test:unit":"node --test tests/*.test.ts","typecheck":"tsc --noEmit","vm:create":"node --import tsx ./cli.ts vm","web:build":"vite build --config web/vite.config.ts","web:check":"npm run build:engine && tsc --project web/tsconfig.json --noEmit","docker:run":"docker run --rm --memory-swap=-1 --shm-size=2g saddle:2.1.6","lint:biome":"biome lint --write .","pack:check":"npm run check && npm run formatcheck && npm test && npm pack --dry-run","test:watch":"node --test --watch tests/*.test.ts","formatcheck":"node --import tsx format.ts","qemu:bridge":"node ./orchestrator.ts --qemu-bridge","test:legacy":"vitest run tests/agent-utils.test.ts tests/cache.test.ts tests/chunking.test.ts tests/core.test.ts tests/errors.test.ts tests/llms-txt.test.ts tests/middleware.test.ts tests/proxy.test.ts tests/tokens.test.ts","vm:validate":"node --import tsx ./cli.ts vmlint","build:engine":"node tests/scripts/buildengine.mjs","docker:build":"docker build -f Dockerfile -t saddle:2.1.6 .","format:biome":"biome format --write .","format:check":"biome check .","qemu:version":"qemu-system-x86_64 --version || echo 'qemu 11.1.0 expected 2026-08-22'","start:engine":"node --import tsx ./cli.ts plan","docker:health":"docker run --rm saddle:2.1.6 qemu-system-x86_64 --version && curl -fsS http://localhost:8080/health || true","test:coverage":"node --test --experimental-test-coverage tests/*.test.ts","prepublishOnly":"npm run pack:check","release:assets":"npm run build:engine && node dist/distribution.js","release:verify":"npm run build:engine && node dist/distribution.js verify","extension:build":"npm run build:engine && node dist/browser.js","target:manifest":"npm run build:engine && node dist/distribution.js target","typecheck:watch":"tsc --noEmit --watch","web:build:pages":"vite build --config web/vite.config.ts","firecracker:boot":"firecracker --api-sock /tmp/fc-saddle.sock --config-file vmconfig.json 2>/dev/null || echo 'firecracker 1.16.1 warm-pool boot 125ms target'","toolchain:verify":"node --version && npx tsc --version && python3 --version && qemu-system-x86_64 --version || true && docker --version","native:check:flat":"node tests/scripts/validateflatnative.mjs","capacitor:sync:ios":"npm run web:build:pages && cap sync ios","capacitor:sync:android":"npm run web:build:pages && cap sync android"},"_npmUser":{"name":"wenathlan","email":"wenathalan@gmail.com"},"homepage":"https://github.com/wenathlan/saddle#readme","keywords":["distributed computing","virtual memory","virtual machine","virtual cpu","virtual gpu","runner","storage","automation","llvmpipe","lavapipe","rusticl","qemu","firecracker","mesa","ghcr"],"overrides":{"uuid":"^11.1.1","xcode":{"uuid":"11.1.1"}},"repository":{"url":"git+https://github.com/wenathlan/saddle.git","type":"git"},"_npmVersion":"11.19.0","description":"binary computing engine that turns distributed storage into a publishable working set carrying the merged virtual-hardware engine (the saddle + e2ugh grand merge)","directories":{},"maintainers":[{"name":"wenathlan","email":"wenathalan@gmail.com"}],"sideEffects":false,"_nodeVersion":"26.7.0","//grand-merge":"v2.0.0 — e2ugh merged into saddle: root TS domains carry both engines; the e2ugh static console and self-hosted API live at the web root; the specs/* exports carry the virtual-hardware envelopes","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"npm@12.0.2","devDependencies":{"add":"^2.0.6","tsx":"^4.23.13","zod":"^4.5.4","clsx":"^2.1.1","cmdk":"^1.1.1","vaul":"^1.1.2","vite":"^8.2.2","axios":"^1.20.0","jsdom":"26.1.0","react":"^19.2.1","nanoid":"^5.1.5","sonner":"^2.0.7","vitest":"^4.1.11","wouter":"^3.11.0","esbuild":"^0.28.2","postcss":"^8.5.28","prettier":"^3.6.2","recharts":"^2.15.2","input-otp":"^1.5.0","react-dom":"^19.2.1","streamdown":"^2.6.0","typescript":"7.0.2","@types/node":"^26.5.0","next-themes":"^0.4.6","tailwindcss":"^4.1.14","@types/react":"^19.2.1","autoprefixer":"^10.5.5","lucide-react":"^0.453.0","framer-motion":"^13.1.1","@biomejs/biome":"^2.5.11","@capacitor/cli":"^8.5.1","@capacitor/ios":"^8.5.1","tailwind-merge":"^3.3.1","tw-animate-css":"^1.4.0","@capacitor/core":"^8.5.1","react-hook-form":"^7.87.0","@types/react-dom":"^19.2.7","react-day-picker":"^9.11.1","@tailwindcss/vite":"^4.1.3","@capacitor/android":"^8.5.1","@types/google.maps":"^3.66.2","@hookform/resolvers":"^5.9.1","tailwindcss-animate":"^1.0.7","@radix-ui/react-slot":"^1.2.3","@radix-ui/react-tabs":"^1.1.13","@vitejs/plugin-react":"^6.1.1","embla-carousel-react":"^8.6.0","@radix-ui/react-label":"^2.1.7","@radix-ui/react-avatar":"^1.1.10","@radix-ui/react-dialog":"^1.1.15","@radix-ui/react-select":"^2.2.6","@radix-ui/react-slider":"^1.3.6","@radix-ui/react-switch":"^1.2.6","@radix-ui/react-toggle":"^1.1.10","react-resizable-panels":"^4.12.4","@radix-ui/react-menubar":"^1.1.16","@radix-ui/react-popover":"^1.1.15","@radix-ui/react-tooltip":"^1.2.8","@tailwindcss/typography":"^0.5.15","@radix-ui/react-checkbox":"^1.3.3","@radix-ui/react-progress":"^1.1.7","class-variance-authority":"^0.7.1","@radix-ui/react-accordion":"^1.2.12","@radix-ui/react-separator":"^1.1.7","vite-plugin-manus-runtime":"^0.0.59","@radix-ui/react-hover-card":"^1.1.15","@radix-ui/react-collapsible":"^1.1.12","@radix-ui/react-radio-group":"^1.3.8","@radix-ui/react-scroll-area":"^1.2.10","@radix-ui/react-alert-dialog":"^1.1.15","@radix-ui/react-aspect-ratio":"^1.1.7","@radix-ui/react-context-menu":"^2.2.16","@radix-ui/react-toggle-group":"^1.1.11","@radix-ui/react-dropdown-menu":"^2.1.16","@radix-ui/react-navigation-menu":"^1.2.14"},"systemLibraries":{"llvm":"22.1.8","mesa":"26.2.1","note":"system libraries, not npm packages (declared by nested_package.json v3 as dependencies; kept here as build-time system requirements only)","qemu":"11.1.0","docker":"29.7.2","firecracker":"1.16.1"},"peerDependencies":{"playwright":"^1.63.0"},"optionalDependencies":{"express":"^5.1.0","commander":"^13.1.0","dockerode":"^5.0.1"},"peerDependenciesMeta":{"playwright":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/saddle_2.1.6_1788896495692_0.536967656759511","host":"s3://npm-registry-packages-npm-production"},"_id":"@wenathlan/saddle@2.1.6","version":"2.1.6"}