{"_id":"@shaferllc/keel","_rev":"40-139333bcc5f36f5251cb63b26b777223","name":"@shaferllc/keel","dist-tags":{"latest":"0.87.0"},"versions":{"0.12.0":{"name":"@shaferllc/keel","version":"0.12.0","keywords":["framework","typescript","nodejs","hono","service-container","web-framework","edge","cloudflare-workers"],"author":{"name":"Tom Shafer"},"license":"MIT","_id":"@shaferllc/keel@0.12.0","maintainers":[{"name":"tshafer","email":"tj@tjshafer.com"}],"homepage":"https://github.com/shaferllc/keel#readme","bugs":{"url":"https://github.com/shaferllc/keel/issues"},"dist":{"shasum":"a10c2338adb89ce66876488662d42bbeaf20625f","tarball":"https://registry.npmjs.org/@shaferllc/keel/-/keel-0.12.0.tgz","fileCount":29,"integrity":"sha512-tXHdCmDu816SkkHAJajShIIO9utDYISsmS75SGmOWjpdQcpG0hiBx6FvEJGzkuyRITWZwK4dnCfzTZEBUJtEdQ==","signatures":[{"sig":"MEQCIDn/gWG/pF78iuf69I7Z+LoeXApppZ00yFOx0E86jm3vAiB/4raefmMtLwEi092ozG4GUpW3nL3tumwDm22yy8f+Zw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":76809},"type":"module","exports":{"./core":{"types":"./dist/core/index.d.ts","import":"./dist/core/index.js"}},"gitHead":"404a3a7eb0c5ee6b6df374b3e98f4bd4c7d24f0c","scripts":{"dev":"tsx watch bin/keel.ts serve","keel":"tsx bin/keel.ts","test":"node --import tsx --test tests/*.test.ts","build":"rm -rf dist && tsc -p tsconfig.build.json","serve":"tsx bin/keel.ts serve","prepare":"npm run build","typecheck":"tsc --noEmit","test:coverage":"node --import tsx --test --experimental-test-coverage --test-coverage-exclude='tests/**' tests/*.test.ts"},"_npmUser":{"name":"tshafer","email":"tj@tjshafer.com"},"repository":{"url":"git+https://github.com/shaferllc/keel.git","type":"git"},"_npmVersion":"10.9.8","description":"The house framework for Node.js — a service container, providers, routing, JSX views, and a code-generating console.","directories":{},"_nodeVersion":"22.22.3","dependencies":{"hono":"^4.6.14","dotenv":"^16.4.7"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","zod":"^4.4.3","commander":"^12.1.0","typescript":"^5.7.2","@types/node":"^26.1.1","@hono/node-server":"^1.13.7"},"_npmOperationalInternal":{"tmp":"tmp/keel_0.12.0_1783714246712_0.8848524366718107","host":"s3://npm-registry-packages-npm-production"}},"0.35.0":{"name":"@shaferllc/keel","version":"0.35.0","keywords":["framework","typescript","nodejs","hono","service-container","web-framework","edge","cloudflare-workers"],"author":{"name":"Tom Shafer"},"license":"MIT","_id":"@shaferllc/keel@0.35.0","maintainers":[{"name":"tshafer","email":"tj@tjshafer.com"}],"homepage":"https://github.com/shaferllc/keel#readme","bugs":{"url":"https://github.com/shaferllc/keel/issues"},"dist":{"shasum":"7593d25f4eb8023096606e3bf1a2e5d437bd95c4","tarball":"https://registry.npmjs.org/@shaferllc/keel/-/keel-0.35.0.tgz","fileCount":63,"integrity":"sha512-88LREMT5fPXnH3o2aVT411z35KtTYtP8SsBSnWW1RcjujLhqrNpzIK50Jx5349CnineZnn/8ClOILnimZ8sr6g==","signatures":[{"sig":"MEYCIQD8tHJzJ/g5iP/R6RhPCgNKVdt3UKpeVWYc3zMofrQHyQIhAMbJBB1o4+fW8thGQYieeh365j5inMes3DVABmFIxE98","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":200520},"type":"module","exports":{"./core":{"types":"./dist/core/index.d.ts","import":"./dist/core/index.js"}},"gitHead":"59adf9f74a8e4a784b137a0006133ba76a55747c","scripts":{"dev":"tsx watch bin/keel.ts serve","keel":"tsx bin/keel.ts","test":"node --import tsx --test tests/*.test.ts","build":"rm -rf dist && tsc -p tsconfig.build.json","serve":"tsx bin/keel.ts serve","prepare":"npm run build","typecheck":"tsc --noEmit","test:coverage":"node --import tsx --test --experimental-test-coverage --test-coverage-exclude='tests/**' tests/*.test.ts"},"_npmUser":{"name":"tshafer","email":"tj@tjshafer.com"},"repository":{"url":"git+https://github.com/shaferllc/keel.git","type":"git"},"_npmVersion":"10.9.8","description":"The house framework for Node.js — a service container, providers, routing, JSX views, and a code-generating console.","directories":{},"_nodeVersion":"22.22.3","dependencies":{"hono":"^4.6.14","dotenv":"^16.4.7"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","zod":"^4.4.3","commander":"^12.1.0","typescript":"^5.7.2","@types/node":"^26.1.1","@hono/node-server":"^1.13.7"},"_npmOperationalInternal":{"tmp":"tmp/keel_0.35.0_1783731016747_0.47697469246223423","host":"s3://npm-registry-packages-npm-production"}},"0.36.0":{"name":"@shaferllc/keel","version":"0.36.0","keywords":["framework","typescript","nodejs","hono","service-container","web-framework","edge","cloudflare-workers"],"author":{"name":"Tom Shafer"},"license":"MIT","_id":"@shaferllc/keel@0.36.0","maintainers":[{"name":"tshafer","email":"tj@tjshafer.com"}],"homepage":"https://github.com/shaferllc/keel#readme","bugs":{"url":"https://github.com/shaferllc/keel/issues"},"dist":{"shasum":"a7f7e6bdca6b806327cd858b89ff3579df8bc342","tarball":"https://registry.npmjs.org/@shaferllc/keel/-/keel-0.36.0.tgz","fileCount":65,"integrity":"sha512-QywU3Cr/fDVtTxYIE8sd8U0iBNmArbU5pEycmsYdWZ5mhPgLq4678lEh0B/qhGxN3HCKb1UP80IQt7G4d9xbRA==","signatures":[{"sig":"MEYCIQDabpIl8k0+uJtR+y+V8t3YZZ+xmnmABE/b8J3Eojq7LgIhAK7Wtdb2fElF58UVZfK/vVZvXLyOxcezyOwgqY584Xdi","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":209960},"type":"module","exports":{"./core":{"types":"./dist/core/index.d.ts","import":"./dist/core/index.js"}},"gitHead":"edc8091414d52a095a56a43956a252f732cebf8f","scripts":{"dev":"tsx watch bin/keel.ts serve","keel":"tsx bin/keel.ts","test":"node --import tsx --test tests/*.test.ts","build":"rm -rf dist && tsc -p tsconfig.build.json","serve":"tsx bin/keel.ts serve","prepare":"npm run build","typecheck":"tsc --noEmit","test:coverage":"node --import tsx --test --experimental-test-coverage --test-coverage-exclude='tests/**' tests/*.test.ts","typecheck:docs":"npm run build && tsc -p tsconfig.docs.json"},"_npmUser":{"name":"tshafer","email":"tj@tjshafer.com"},"repository":{"url":"git+https://github.com/shaferllc/keel.git","type":"git"},"_npmVersion":"10.9.8","description":"The house framework for Node.js — a service container, providers, routing, JSX views, and a code-generating console.","directories":{},"_nodeVersion":"22.22.3","dependencies":{"hono":"^4.6.14","dotenv":"^16.4.7"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","zod":"^4.4.3","commander":"^12.1.0","typescript":"^5.7.2","@types/node":"^26.1.1","@hono/node-server":"^1.13.7"},"_npmOperationalInternal":{"tmp":"tmp/keel_0.36.0_1783747016104_0.7411957615117957","host":"s3://npm-registry-packages-npm-production"}},"0.58.0":{"name":"@shaferllc/keel","version":"0.58.0","keywords":["framework","typescript","nodejs","hono","service-container","web-framework","edge","cloudflare-workers"],"author":{"name":"Tom Shafer"},"license":"MIT","_id":"@shaferllc/keel@0.58.0","maintainers":[{"name":"tshafer","email":"tj@tjshafer.com"}],"homepage":"https://github.com/shaferllc/keel#readme","bugs":{"url":"https://github.com/shaferllc/keel/issues"},"dist":{"shasum":"0ef77b935893c65e32ccc3e4c635bdc2e089f75e","tarball":"https://registry.npmjs.org/@shaferllc/keel/-/keel-0.58.0.tgz","fileCount":91,"integrity":"sha512-y1fB3KvhZHqeXMkstjgKAWd1WlV/DfkBmr9heeFeDICk6AJ/x4puFiwQ54G+6oCfcx24ToShJw0hx9Na+W/asQ==","signatures":[{"sig":"MEQCIDvWJaBen9xGLDB3TZN3zpY37GCag2l43C0hSAu9hQ+5AiB2TL0x06sfc6uPhYREkEONG8A/3FKR1gbu1k25fyjhog==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":408706},"type":"module","exports":{"./core":{"types":"./dist/core/index.d.ts","import":"./dist/core/index.js"},"./vite":{"types":"./dist/vite/index.d.ts","import":"./dist/vite/index.js"}},"gitHead":"1c8c39814731ede69c3a76c34670c2b7776987f8","scripts":{"dev":"tsx watch bin/keel.ts serve","keel":"tsx bin/keel.ts","test":"node --import tsx --test tests/*.test.ts","build":"rm -rf dist && tsc -p tsconfig.build.json","serve":"tsx bin/keel.ts serve","prepare":"npm run build","typecheck":"tsc --noEmit","dev:client":"vite","build:client":"vite build","test:coverage":"node --import tsx --test --experimental-test-coverage --test-coverage-exclude='tests/**' tests/*.test.ts","typecheck:docs":"npm run build && tsc -p tsconfig.docs.json"},"_npmUser":{"name":"tshafer","email":"tj@tjshafer.com"},"repository":{"url":"git+https://github.com/shaferllc/keel.git","type":"git"},"_npmVersion":"10.9.8","description":"The house framework for Node.js — a service container, providers, routing, JSX views, and a code-generating console.","directories":{},"_nodeVersion":"22.22.3","dependencies":{"hono":"^4.6.14","dotenv":"^16.4.7"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","zod":"^4.4.3","vite":"^6.4.3","commander":"^12.1.0","typescript":"^5.7.2","@types/node":"^26.1.1","@hono/node-server":"^1.13.7"},"peerDependencies":{"vite":"^5 || ^6 || ^7"},"peerDependenciesMeta":{"vite":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/keel_0.58.0_1783793567768_0.43775085393753055","host":"s3://npm-registry-packages-npm-production"}},"0.59.0":{"name":"@shaferllc/keel","version":"0.59.0","keywords":["framework","typescript","nodejs","hono","service-container","web-framework","edge","cloudflare-workers"],"author":{"name":"Tom Shafer"},"license":"MIT","_id":"@shaferllc/keel@0.59.0","maintainers":[{"name":"tshafer","email":"tj@tjshafer.com"}],"homepage":"https://github.com/shaferllc/keel#readme","bugs":{"url":"https://github.com/shaferllc/keel/issues"},"dist":{"shasum":"8db63cec286b8ac78093d0433f89734f26bbf747","tarball":"https://registry.npmjs.org/@shaferllc/keel/-/keel-0.59.0.tgz","fileCount":91,"integrity":"sha512-X7zDGzcbSRwpzeboavTwrOd5EnPNDB/4Qv80m9jQhvVwajx/rcUGfzTBkZyPAaTl5z2wHu1Tlwjo8Pve51foeQ==","signatures":[{"sig":"MEUCIQDzc1D9uvO+nfEbjsqJdoyi63zGthd7Se9YEX0hC4malQIgV9zRzrq97WOsmuNL/gCi/D5+fJ9xduGsQkuEVcgUTPE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":417417},"type":"module","exports":{"./core":{"types":"./dist/core/index.d.ts","import":"./dist/core/index.js"},"./vite":{"types":"./dist/vite/index.d.ts","import":"./dist/vite/index.js"}},"gitHead":"f92aa1a29c1d297da16f0810cbd8e8d2331588cd","scripts":{"dev":"tsx watch bin/keel.ts serve","keel":"tsx bin/keel.ts","test":"node --import tsx --test tests/*.test.ts","build":"rm -rf dist && tsc -p tsconfig.build.json","serve":"tsx bin/keel.ts serve","prepare":"npm run build","typecheck":"tsc --noEmit","dev:client":"vite","build:client":"vite build","test:coverage":"node --import tsx --test --experimental-test-coverage --test-coverage-exclude='tests/**' tests/*.test.ts","typecheck:docs":"npm run build && tsc -p tsconfig.docs.json"},"_npmUser":{"name":"tshafer","email":"tj@tjshafer.com"},"repository":{"url":"git+https://github.com/shaferllc/keel.git","type":"git"},"_npmVersion":"10.9.8","description":"The house framework for Node.js — a service container, providers, routing, JSX views, and a code-generating console.","directories":{},"_nodeVersion":"22.22.3","dependencies":{"hono":"^4.6.14","dotenv":"^16.4.7"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","zod":"^4.4.3","vite":"^6.4.3","commander":"^12.1.0","typescript":"^5.7.2","@types/node":"^26.1.1","@hono/node-server":"^1.13.7"},"peerDependencies":{"vite":"^5 || ^6 || ^7"},"peerDependenciesMeta":{"vite":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/keel_0.59.0_1783795097674_0.10411609410563738","host":"s3://npm-registry-packages-npm-production"}},"0.66.0":{"name":"@shaferllc/keel","version":"0.66.0","keywords":["framework","typescript","nodejs","hono","service-container","web-framework","edge","cloudflare-workers"],"author":{"name":"Tom Shafer"},"license":"MIT","_id":"@shaferllc/keel@0.66.0","maintainers":[{"name":"tshafer","email":"tj@tjshafer.com"}],"homepage":"https://github.com/shaferllc/keel#readme","bugs":{"url":"https://github.com/shaferllc/keel/issues"},"dist":{"shasum":"c61f26b79c058c64720efa40404fcd86d45418ae","tarball":"https://registry.npmjs.org/@shaferllc/keel/-/keel-0.66.0.tgz","fileCount":107,"integrity":"sha512-spzHpLKPQ+YytoZdsmdTBBQZjbdbLsldfp4Ijo8fOHhM9PjICkVnMAw0P7zHiSsEtof79TKDPl2OvjjBLQUMfw==","signatures":[{"sig":"MEUCIQDVG9eV109Mf+inFRdkKFaEgA+Aqrfr8LWYnSFrACM2OwIgDrCvXGCPNgvSMFbhD8Bq1/2mCNXCv36d0Tjciz9lO0w=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":500835},"type":"module","exports":{"./core":{"types":"./dist/core/index.d.ts","import":"./dist/core/index.js"},"./vite":{"types":"./dist/vite/index.d.ts","import":"./dist/vite/index.js"},"./db/d1":{"types":"./dist/db/d1.d.ts","import":"./dist/db/d1.js"},"./db/pg":{"types":"./dist/db/pg.d.ts","import":"./dist/db/pg.js"},"./db/libsql":{"types":"./dist/db/libsql.d.ts","import":"./dist/db/libsql.js"}},"gitHead":"d184b0c4721ba2d0f8d465b485a679187907a949","scripts":{"dev":"tsx watch bin/keel.ts serve","keel":"tsx bin/keel.ts","test":"node --import tsx --test tests/*.test.ts","build":"rm -rf dist && tsc -p tsconfig.build.json","serve":"tsx bin/keel.ts serve","prepare":"npm run build","typecheck":"tsc --noEmit","dev:client":"vite","build:client":"vite build","test:coverage":"node --import tsx --test --experimental-test-coverage --test-coverage-exclude='tests/**' tests/*.test.ts","typecheck:docs":"npm run build && tsc -p tsconfig.docs.json"},"_npmUser":{"name":"tshafer","email":"tj@tjshafer.com"},"repository":{"url":"git+https://github.com/shaferllc/keel.git","type":"git"},"_npmVersion":"10.9.8","description":"The house framework for Node.js — a service container, providers, routing, JSX views, and a code-generating console.","directories":{},"_nodeVersion":"22.22.3","dependencies":{"hono":"^4.6.14","dotenv":"^16.4.7"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","zod":"^4.4.3","vite":"^6.4.3","commander":"^12.1.0","typescript":"^5.7.2","@types/node":"^26.1.1","@hono/node-server":"^1.13.7"},"peerDependencies":{"vite":"^5 || ^6 || ^7"},"peerDependenciesMeta":{"vite":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/keel_0.66.0_1783800477180_0.12445503850287598","host":"s3://npm-registry-packages-npm-production"}},"0.68.0":{"name":"@shaferllc/keel","version":"0.68.0","keywords":["framework","typescript","nodejs","hono","service-container","web-framework","edge","cloudflare-workers","mcp","model-context-protocol","ai","llms-txt"],"author":{"name":"Tom Shafer"},"license":"MIT","_id":"@shaferllc/keel@0.68.0","maintainers":[{"name":"tshafer","email":"tj@tjshafer.com"}],"homepage":"https://github.com/shaferllc/keel#readme","bugs":{"url":"https://github.com/shaferllc/keel/issues"},"bin":{"keel-mcp":"bin/keel-mcp.mjs"},"dist":{"shasum":"ce4b3627574233765dca77a508d08bee47da6d6e","tarball":"https://registry.npmjs.org/@shaferllc/keel/-/keel-0.68.0.tgz","fileCount":219,"integrity":"sha512-DujV/Y6jrHrPOyHoSWtWRd0VOEEwoRDKG15oPT2393ZVnz9/us7QZ1VChcxy5rihvlZBWWzNo7HP/oEM8lsZFg==","signatures":[{"sig":"MEQCIHrXBZG60qqSFbY3Aq8j6DVoeoknYNXXbNubE8a2OBBaAiAqoAw7k0bOhnPAbut83Qx+8K+R1qVtg7XpU5TzUichGw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1947713},"type":"module","exports":{"./mcp":{"types":"./dist/mcp/server.d.ts","import":"./dist/mcp/server.js"},"./core":{"types":"./dist/core/index.d.ts","import":"./dist/core/index.js"},"./vite":{"types":"./dist/vite/index.d.ts","import":"./dist/vite/index.js"},"./db/d1":{"types":"./dist/db/d1.d.ts","import":"./dist/db/d1.js"},"./db/pg":{"types":"./dist/db/pg.d.ts","import":"./dist/db/pg.js"},"./db/libsql":{"types":"./dist/db/libsql.d.ts","import":"./dist/db/libsql.js"}},"gitHead":"d35df157603f1980ce2fff099e9446a8840e806c","scripts":{"dev":"tsx watch bin/keel.ts serve","mcp":"tsx bin/keel-mcp.ts","keel":"tsx bin/keel.ts","test":"node --import tsx --test tests/*.test.ts","build":"npm run build:ai && rm -rf dist && tsc -p tsconfig.build.json","serve":"tsx bin/keel.ts serve","prepare":"npm run build","build:ai":"tsx scripts/build-ai.ts","typecheck":"tsc --noEmit","dev:client":"vite","build:client":"vite build","test:coverage":"node --import tsx --test --experimental-test-coverage --test-coverage-exclude='tests/**' tests/*.test.ts","typecheck:docs":"npm run build && tsc -p tsconfig.docs.json"},"_npmUser":{"name":"tshafer","email":"tj@tjshafer.com"},"repository":{"url":"git+https://github.com/shaferllc/keel.git","type":"git"},"_npmVersion":"10.9.8","description":"The house framework for Node.js — a service container, providers, routing, JSX views, and a code-generating console.","directories":{},"_nodeVersion":"22.22.3","dependencies":{"zod":"^4.4.3","hono":"^4.6.14","dotenv":"^16.4.7","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vite":"^6.4.3","commander":"^12.1.0","typescript":"^5.7.2","@types/node":"^26.1.1","@hono/node-server":"^1.13.7"},"peerDependencies":{"vite":"^5 || ^6 || ^7"},"peerDependenciesMeta":{"vite":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/keel_0.68.0_1783826443125_0.2479665311284971","host":"s3://npm-registry-packages-npm-production"}},"0.74.0":{"name":"@shaferllc/keel","version":"0.74.0","keywords":["framework","typescript","nodejs","hono","service-container","web-framework","edge","cloudflare-workers","mcp","model-context-protocol","ai","llms-txt"],"author":{"name":"Tom Shafer"},"license":"MIT","_id":"@shaferllc/keel@0.74.0","maintainers":[{"name":"tshafer","email":"tj@tjshafer.com"}],"homepage":"https://github.com/shaferllc/keel#readme","bugs":{"url":"https://github.com/shaferllc/keel/issues"},"bin":{"keel-mcp":"bin/keel-mcp.mjs"},"dist":{"shasum":"c618b402e75cb8aaa46abb856a28ebc12d0d0bdf","tarball":"https://registry.npmjs.org/@shaferllc/keel/-/keel-0.74.0.tgz","fileCount":309,"integrity":"sha512-U8mrghfMXqvmA1aKuj2ombR/N4+2S2G9KxSvhvIr/RQM3UNdHPSoVujX0/pHNuPWcEvYBK5DweoSi0ZBkOEs3g==","signatures":[{"sig":"MEQCIFfzigRKxN546JAzBDJceHWmkyZc0WglN2mWkkdvWPItAiB8KU7BB4Gqnsxjqam4aWxHZcKyk+ss9OibHG2FPtQQYw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2435602},"type":"module","exports":{"./api":{"types":"./dist/api/index.d.ts","import":"./dist/api/index.js"},"./mcp":{"types":"./dist/mcp/server.d.ts","import":"./dist/mcp/server.js"},"./core":{"types":"./dist/core/index.d.ts","import":"./dist/core/index.js"},"./vite":{"types":"./dist/vite/index.d.ts","import":"./dist/vite/index.js"},"./db/d1":{"types":"./dist/db/d1.d.ts","import":"./dist/db/d1.js"},"./db/pg":{"types":"./dist/db/pg.d.ts","import":"./dist/db/pg.js"},"./watch":{"types":"./dist/watch/index.d.ts","import":"./dist/watch/index.js"},"./openapi":{"types":"./dist/openapi/index.d.ts","import":"./dist/openapi/index.js"},"./db/libsql":{"types":"./dist/db/libsql.d.ts","import":"./dist/db/libsql.js"}},"gitHead":"aaa525b0813908cdbdf644ebe1161bc731761bd9","scripts":{"dev":"tsx watch bin/keel.ts serve","mcp":"tsx bin/keel-mcp.ts","keel":"tsx bin/keel.ts","test":"node --import tsx --test tests/*.test.ts","build":"npm run build:ai && npm run build:watch-ui && rm -rf dist && tsc -p tsconfig.build.json && npm run build:watch-copy","serve":"tsx bin/keel.ts serve","prepare":"npm run build","build:ai":"tsx scripts/build-ai.ts","typecheck":"tsc --noEmit","dev:client":"vite","build:client":"vite build","test:coverage":"node --import tsx --test --experimental-test-coverage --test-coverage-exclude='tests/**' tests/*.test.ts","build:watch-ui":"vite build --config src/watch/ui/vite.config.ts","typecheck:docs":"npm run build && tsc -p tsconfig.docs.json","build:watch-copy":"mkdir -p dist/watch/ui && cp -R src/watch/ui/dist dist/watch/ui/dist && cp src/watch/watch.config.stub dist/watch/ && cp src/openapi/openapi.config.stub dist/openapi/ && cp src/api/api.config.stub dist/api/"},"_npmUser":{"name":"tshafer","email":"tj@tjshafer.com"},"repository":{"url":"git+https://github.com/shaferllc/keel.git","type":"git"},"_npmVersion":"10.9.8","description":"The house framework for Node.js — a service container, providers, routing, JSX views, and a code-generating console.","directories":{},"_nodeVersion":"22.22.3","dependencies":{"zod":"^4.4.3","hono":"^4.6.14","dotenv":"^16.4.7","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vite":"^6.4.3","preact":"^10.29.7","commander":"^12.1.0","typescript":"^5.7.2","@types/node":"^26.1.1","@libsql/client":"^0.17.4","@hono/node-server":"^1.13.7"},"peerDependencies":{"vite":"^5 || ^6 || ^7"},"peerDependenciesMeta":{"vite":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/keel_0.74.0_1783835197089_0.9706960050936155","host":"s3://npm-registry-packages-npm-production"}},"0.77.0":{"name":"@shaferllc/keel","version":"0.77.0","keywords":["framework","typescript","nodejs","hono","service-container","web-framework","edge","cloudflare-workers","mcp","model-context-protocol","ai","llms-txt"],"author":{"name":"Tom Shafer"},"license":"MIT","_id":"@shaferllc/keel@0.77.0","maintainers":[{"name":"tshafer","email":"tj@tjshafer.com"}],"homepage":"https://github.com/shaferllc/keel#readme","bugs":{"url":"https://github.com/shaferllc/keel/issues"},"bin":{"keel-mcp":"bin/keel-mcp.mjs"},"dist":{"shasum":"6b13a97693a7cf40d1d8c88defccb7807776bc28","tarball":"https://registry.npmjs.org/@shaferllc/keel/-/keel-0.77.0.tgz","fileCount":312,"integrity":"sha512-1/3XkaJ9t110s8h+LWXBPGs9O0Cg4Rl0sPxhB3ImfyUBizMnAP74F4s6QDMQh1Bwwe3J9FP6CDNEX2FJvPSiWA==","signatures":[{"sig":"MEUCIQCFhIg485zna1rNvQGirOSy29E2fJ8tTTTMDMpMyObMHgIgIAWwtVD/N+/r9fjK8UPX7OfLnh+awPfGoCKe+MQGcx4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2461455},"type":"module","exports":{"./api":{"types":"./dist/api/index.d.ts","import":"./dist/api/index.js"},"./cli":{"types":"./dist/core/cli/index.d.ts","import":"./dist/core/cli/index.js"},"./mcp":{"types":"./dist/mcp/server.d.ts","import":"./dist/mcp/server.js"},"./core":{"types":"./dist/core/index.d.ts","import":"./dist/core/index.js"},"./vite":{"types":"./dist/vite/index.d.ts","import":"./dist/vite/index.js"},"./db/d1":{"types":"./dist/db/d1.d.ts","import":"./dist/db/d1.js"},"./db/pg":{"types":"./dist/db/pg.d.ts","import":"./dist/db/pg.js"},"./watch":{"types":"./dist/watch/index.d.ts","import":"./dist/watch/index.js"},"./openapi":{"types":"./dist/openapi/index.d.ts","import":"./dist/openapi/index.js"},"./db/libsql":{"types":"./dist/db/libsql.d.ts","import":"./dist/db/libsql.js"}},"gitHead":"9074e2a57f452075823559d1fa75bf8494e0b2d4","scripts":{"dev":"tsx watch bin/keel.ts serve","mcp":"tsx bin/keel-mcp.ts","keel":"tsx bin/keel.ts","test":"node --import tsx --test tests/*.test.ts","build":"npm run build:ai && npm run build:watch-ui && rm -rf dist && tsc -p tsconfig.build.json && npm run build:watch-copy","serve":"tsx bin/keel.ts serve","prepare":"npm run build","version":"npm run build:ai && git add docs/ai-manifest.json llms.txt llms-full.txt","build:ai":"tsx scripts/build-ai.ts","typecheck":"tsc --noEmit && npm run typecheck:tests","dev:client":"vite","build:client":"vite build","test:coverage":"node --import tsx --test --experimental-test-coverage --test-coverage-exclude='tests/**' tests/*.test.ts","build:watch-ui":"vite build --config src/watch/ui/vite.config.ts","typecheck:docs":"npm run build && tsc -p tsconfig.docs.json","verify:release":"bash scripts/verify-release.sh","typecheck:tests":"tsc --noEmit -p tsconfig.tests.json","build:watch-copy":"mkdir -p dist/watch/ui && cp -R src/watch/ui/dist dist/watch/ui/dist && cp src/watch/watch.config.stub dist/watch/ && cp src/openapi/openapi.config.stub dist/openapi/ && cp src/api/api.config.stub dist/api/"},"_npmUser":{"name":"tshafer","email":"tj@tjshafer.com"},"repository":{"url":"git+https://github.com/shaferllc/keel.git","type":"git"},"_npmVersion":"10.9.8","description":"The house framework for Node.js — a service container, providers, routing, JSX views, and a code-generating console.","directories":{},"_nodeVersion":"22.22.3","dependencies":{"zod":"^4.4.3","hono":"^4.6.14","dotenv":"^16.4.7","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vite":"^6.4.3","preact":"^10.29.7","typescript":"^5.7.2","@types/node":"^26.1.1","@libsql/client":"^0.17.4","@hono/node-server":"^1.13.7"},"peerDependencies":{"vite":"^5 || ^6 || ^7","@hono/node-server":"^1.13.7"},"peerDependenciesMeta":{"vite":{"optional":true},"@hono/node-server":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/keel_0.77.0_1783838145281_0.5051565846918196","host":"s3://npm-registry-packages-npm-production"}},"0.78.0":{"name":"@shaferllc/keel","version":"0.78.0","keywords":["framework","typescript","nodejs","hono","service-container","web-framework","edge","cloudflare-workers","mcp","model-context-protocol","ai","llms-txt"],"author":{"name":"Tom Shafer"},"license":"MIT","_id":"@shaferllc/keel@0.78.0","maintainers":[{"name":"tshafer","email":"tj@tjshafer.com"}],"homepage":"https://github.com/shaferllc/keel#readme","bugs":{"url":"https://github.com/shaferllc/keel/issues"},"bin":{"keel-mcp":"bin/keel-mcp.mjs"},"dist":{"shasum":"3a73bb4ca128beb2f8805919895b6c73330a5025","tarball":"https://registry.npmjs.org/@shaferllc/keel/-/keel-0.78.0.tgz","fileCount":312,"integrity":"sha512-ANvivttCYV9YwrBY26J3cGMH4LmXdRNUX4yVrgcEu1FL7B+g816A00biy3ejHPKK+mweEemxgWQbbonOrlKA9w==","signatures":[{"sig":"MEUCIENspDqQHhnP9Qk9CaTJAi/eeCziQhkWGoxzQBo6HE/AAiEAjCKiIW7gHLhNw3HMHg8hUExMdYvqzIdotWmjLFBbrvU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2461580},"type":"module","exports":{"./api":{"types":"./dist/api/index.d.ts","import":"./dist/api/index.js"},"./cli":{"types":"./dist/core/cli/index.d.ts","import":"./dist/core/cli/index.js"},"./mcp":{"types":"./dist/mcp/server.d.ts","import":"./dist/mcp/server.js"},"./core":{"types":"./dist/core/index.d.ts","import":"./dist/core/index.js"},"./vite":{"types":"./dist/vite/index.d.ts","import":"./dist/vite/index.js"},"./db/d1":{"types":"./dist/db/d1.d.ts","import":"./dist/db/d1.js"},"./db/pg":{"types":"./dist/db/pg.d.ts","import":"./dist/db/pg.js"},"./watch":{"types":"./dist/watch/index.d.ts","import":"./dist/watch/index.js"},"./openapi":{"types":"./dist/openapi/index.d.ts","import":"./dist/openapi/index.js"},"./db/libsql":{"types":"./dist/db/libsql.d.ts","import":"./dist/db/libsql.js"}},"gitHead":"f2a7acd4ac67a00c1f1bf20dc39b928f589b1f29","scripts":{"mcp":"tsx bin/keel-mcp.ts","test":"node --import tsx --test tests/*.test.ts","build":"npm run build:ai && npm run build:watch-ui && rm -rf dist && tsc -p tsconfig.build.json && npm run build:watch-copy","prepare":"npm run build","version":"npm run build:ai && git add docs/ai-manifest.json llms.txt llms-full.txt","build:ai":"tsx scripts/build-ai.ts","typecheck":"tsc --noEmit && npm run typecheck:tests","test:coverage":"node --import tsx --test --experimental-test-coverage --test-coverage-exclude='tests/**' tests/*.test.ts","build:watch-ui":"vite build --config src/watch/ui/vite.config.ts","typecheck:docs":"npm run build && tsc -p tsconfig.docs.json","verify:release":"bash scripts/verify-release.sh","typecheck:tests":"tsc --noEmit -p tsconfig.tests.json","build:watch-copy":"mkdir -p dist/watch/ui && cp -R src/watch/ui/dist dist/watch/ui/dist && cp src/watch/watch.config.stub dist/watch/ && cp src/openapi/openapi.config.stub dist/openapi/ && cp src/api/api.config.stub dist/api/"},"_npmUser":{"name":"tshafer","email":"tj@tjshafer.com"},"repository":{"url":"git+https://github.com/shaferllc/keel.git","type":"git"},"_npmVersion":"10.9.8","description":"The house framework for Node.js — a service container, providers, routing, JSX views, and a code-generating console.","directories":{},"_nodeVersion":"22.22.3","dependencies":{"zod":"^4.4.3","hono":"^4.6.14","dotenv":"^16.4.7","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vite":"^6.4.3","preact":"^10.29.7","typescript":"^5.7.2","@types/node":"^26.1.1","@libsql/client":"^0.17.4","@hono/node-server":"^1.13.7"},"peerDependencies":{"vite":"^5 || ^6 || ^7","@hono/node-server":"^1.13.7"},"peerDependenciesMeta":{"vite":{"optional":true},"@hono/node-server":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/keel_0.78.0_1783838441062_0.6677580097028999","host":"s3://npm-registry-packages-npm-production"}},"0.78.2":{"name":"@shaferllc/keel","version":"0.78.2","keywords":["framework","typescript","nodejs","hono","service-container","web-framework","edge","cloudflare-workers","mcp","model-context-protocol","ai","llms-txt"],"author":{"name":"Tom Shafer"},"license":"MIT","_id":"@shaferllc/keel@0.78.2","maintainers":[{"name":"tshafer","email":"tj@tjshafer.com"}],"homepage":"https://github.com/shaferllc/keel#readme","bugs":{"url":"https://github.com/shaferllc/keel/issues"},"bin":{"keel-mcp":"bin/keel-mcp.mjs"},"dist":{"shasum":"e3f0cbeb2ef26ebc90616e5506c254be3845f72f","tarball":"https://registry.npmjs.org/@shaferllc/keel/-/keel-0.78.2.tgz","fileCount":312,"integrity":"sha512-/aeGiT3eEiL0j+kB/VHWnYQWApn8aF3+o5+Ex/pwtYAEL8UGWlbnPnqvri2+4qn1gkKHOQ5FuqlyyPNuffI8EA==","signatures":[{"sig":"MEUCIHlWHReH+4/N088mcmchk+ont/z+ilT0xN8OaLC84YHSAiEA+opCdQQK+nyM0bdOlEO7l8whgEM5eKdhPN/d8gO5Qy8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@shaferllc%2fkeel@0.78.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2461620},"type":"module","exports":{"./api":{"types":"./dist/api/index.d.ts","import":"./dist/api/index.js"},"./cli":{"types":"./dist/core/cli/index.d.ts","import":"./dist/core/cli/index.js"},"./mcp":{"types":"./dist/mcp/server.d.ts","import":"./dist/mcp/server.js"},"./core":{"types":"./dist/core/index.d.ts","import":"./dist/core/index.js"},"./vite":{"types":"./dist/vite/index.d.ts","import":"./dist/vite/index.js"},"./db/d1":{"types":"./dist/db/d1.d.ts","import":"./dist/db/d1.js"},"./db/pg":{"types":"./dist/db/pg.d.ts","import":"./dist/db/pg.js"},"./watch":{"types":"./dist/watch/index.d.ts","import":"./dist/watch/index.js"},"./openapi":{"types":"./dist/openapi/index.d.ts","import":"./dist/openapi/index.js"},"./db/libsql":{"types":"./dist/db/libsql.d.ts","import":"./dist/db/libsql.js"},"./package.json":"./package.json"},"gitHead":"ad556cda11966b4634911eea273cf374d26f60a5","scripts":{"mcp":"tsx bin/keel-mcp.ts","test":"node --import tsx --test tests/*.test.ts","build":"npm run build:ai && npm run build:watch-ui && rm -rf dist && tsc -p tsconfig.build.json && npm run build:watch-copy","prepare":"npm run build","version":"npm run build:ai && git add docs/ai-manifest.json llms.txt llms-full.txt","build:ai":"tsx scripts/build-ai.ts","typecheck":"tsc --noEmit && npm run typecheck:tests","test:coverage":"node --import tsx --test --experimental-test-coverage --test-coverage-exclude='tests/**' tests/*.test.ts","build:watch-ui":"vite build --config src/watch/ui/vite.config.ts","typecheck:docs":"npm run build && tsc -p tsconfig.docs.json","verify:release":"bash scripts/verify-release.sh","typecheck:tests":"tsc --noEmit -p tsconfig.tests.json","build:watch-copy":"mkdir -p dist/watch/ui && cp -R src/watch/ui/dist dist/watch/ui/dist && cp src/watch/watch.config.stub dist/watch/ && cp src/openapi/openapi.config.stub dist/openapi/ && cp src/api/api.config.stub dist/api/"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:00e8e890-1f6d-485c-b130-c69d62e7f3b9"}},"repository":{"url":"git+https://github.com/shaferllc/keel.git","type":"git"},"_npmVersion":"12.0.1","description":"The house framework for Node.js — a service container, providers, routing, JSX views, and a code-generating console.","directories":{},"_nodeVersion":"22.23.1","dependencies":{"zod":"^4.4.3","hono":"^4.6.14","dotenv":"^16.4.7","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vite":"^6.4.3","preact":"^10.29.7","typescript":"^5.7.2","@types/node":"^26.1.1","@libsql/client":"^0.17.4","@hono/node-server":"^1.13.7"},"peerDependencies":{"vite":"^5 || ^6 || ^7","@hono/node-server":"^1.13.7"},"peerDependenciesMeta":{"vite":{"optional":true},"@hono/node-server":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/keel_0.78.2_1783839195506_0.8635704561787312","host":"s3://npm-registry-packages-npm-production"}},"0.79.0":{"name":"@shaferllc/keel","version":"0.79.0","keywords":["framework","typescript","nodejs","hono","service-container","web-framework","edge","cloudflare-workers","mcp","model-context-protocol","ai","llms-txt"],"author":{"name":"Tom Shafer"},"license":"MIT","_id":"@shaferllc/keel@0.79.0","maintainers":[{"name":"tshafer","email":"tj@tjshafer.com"}],"homepage":"https://github.com/shaferllc/keel#readme","bugs":{"url":"https://github.com/shaferllc/keel/issues"},"bin":{"keel-mcp":"bin/keel-mcp.mjs"},"dist":{"shasum":"f7e373f5022f3c9009e60fa3c481833070cc25a9","tarball":"https://registry.npmjs.org/@shaferllc/keel/-/keel-0.79.0.tgz","fileCount":315,"integrity":"sha512-F/COtzySWIO0luKo4nVfGcEx/28yLIdhcv4BeZmfdvvUnOL3l1XH0bucQXPLQBK0isLWg/1kszn1o9mgh8HXIw==","signatures":[{"sig":"MEUCIQDw1e0wS5iycGp74R4IxBFTwSxKAUjEUx4u+ewjV3MNVAIgCDc2TU4Llq7kRcW7//mYligzwvJRcHqxjkDWY0DAsVg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@shaferllc%2fkeel@0.79.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2479791},"type":"module","exports":{"./api":{"types":"./dist/api/index.d.ts","import":"./dist/api/index.js"},"./cli":{"types":"./dist/core/cli/index.d.ts","import":"./dist/core/cli/index.js"},"./mcp":{"types":"./dist/mcp/server.d.ts","import":"./dist/mcp/server.js"},"./core":{"types":"./dist/core/index.d.ts","import":"./dist/core/index.js"},"./vite":{"types":"./dist/vite/index.d.ts","import":"./dist/vite/index.js"},"./db/d1":{"types":"./dist/db/d1.d.ts","import":"./dist/db/d1.js"},"./db/pg":{"types":"./dist/db/pg.d.ts","import":"./dist/db/pg.js"},"./watch":{"types":"./dist/watch/index.d.ts","import":"./dist/watch/index.js"},"./openapi":{"types":"./dist/openapi/index.d.ts","import":"./dist/openapi/index.js"},"./db/libsql":{"types":"./dist/db/libsql.d.ts","import":"./dist/db/libsql.js"},"./package.json":"./package.json"},"gitHead":"9554ce3fb48821003c6d50fb57f62309f7f0a0ba","scripts":{"mcp":"tsx bin/keel-mcp.ts","test":"node --import tsx --test tests/*.test.ts","build":"npm run build:ai && npm run build:watch-ui && rm -rf dist && tsc -p tsconfig.build.json && npm run build:watch-copy","prepare":"npm run build","version":"npm run build:ai && git add docs/ai-manifest.json llms.txt llms-full.txt","build:ai":"tsx scripts/build-ai.ts","typecheck":"tsc --noEmit && npm run typecheck:tests","test:coverage":"node --import tsx --test --experimental-test-coverage --test-coverage-exclude='tests/**' tests/*.test.ts","build:watch-ui":"vite build --config src/watch/ui/vite.config.ts","typecheck:docs":"npm run build && tsc -p tsconfig.docs.json","verify:release":"bash scripts/verify-release.sh","typecheck:tests":"tsc --noEmit -p tsconfig.tests.json","build:watch-copy":"mkdir -p dist/watch/ui && cp -R src/watch/ui/dist dist/watch/ui/dist && cp src/watch/watch.config.stub dist/watch/ && cp src/openapi/openapi.config.stub dist/openapi/ && cp src/api/api.config.stub dist/api/"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:00e8e890-1f6d-485c-b130-c69d62e7f3b9"}},"repository":{"url":"git+https://github.com/shaferllc/keel.git","type":"git"},"_npmVersion":"12.0.1","description":"The house framework for Node.js — a service container, providers, routing, JSX views, and a code-generating console.","directories":{},"_nodeVersion":"22.23.1","dependencies":{"zod":"^4.4.3","hono":"^4.6.14","dotenv":"^16.4.7","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vite":"^6.4.3","preact":"^10.29.7","typescript":"^5.7.2","@types/node":"^26.1.1","@libsql/client":"^0.17.4","@hono/node-server":"^1.13.7"},"peerDependencies":{"vite":"^5 || ^6 || ^7","@hono/node-server":"^1.13.7"},"peerDependenciesMeta":{"vite":{"optional":true},"@hono/node-server":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/keel_0.79.0_1783840227018_0.3976793090111217","host":"s3://npm-registry-packages-npm-production"}},"0.80.0":{"name":"@shaferllc/keel","version":"0.80.0","keywords":["framework","typescript","nodejs","hono","service-container","web-framework","edge","cloudflare-workers","mcp","model-context-protocol","ai","llms-txt"],"author":{"name":"Tom Shafer"},"license":"MIT","_id":"@shaferllc/keel@0.80.0","maintainers":[{"name":"tshafer","email":"tj@tjshafer.com"}],"homepage":"https://github.com/shaferllc/keel#readme","bugs":{"url":"https://github.com/shaferllc/keel/issues"},"bin":{"keel-mcp":"bin/keel-mcp.mjs"},"dist":{"shasum":"376df4a8a36f40991c4c74d7593a792d5ec07b81","tarball":"https://registry.npmjs.org/@shaferllc/keel/-/keel-0.80.0.tgz","fileCount":353,"integrity":"sha512-mzeyo8tOFFjK8ACU40OWLV1swNvyEWxxnsdxC5PnU9ri67cyWGlCTisIKGW/I9/APSpELqEpK5G8W1hpUi0D2A==","signatures":[{"sig":"MEUCIQCkZL9NoA5kEUKJ25M1RxZfvBkw9HGnLYprfGh4jprzvAIgAS0fFfNhmsJbN6ork+rc8dIBQgAOGXXS0Ry7iU0nvBk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@shaferllc%2fkeel@0.80.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2593805},"type":"module","exports":{"./api":{"types":"./dist/api/index.d.ts","import":"./dist/api/index.js"},"./cli":{"types":"./dist/core/cli/index.d.ts","import":"./dist/core/cli/index.js"},"./mcp":{"types":"./dist/mcp/server.d.ts","import":"./dist/mcp/server.js"},"./core":{"types":"./dist/core/index.d.ts","import":"./dist/core/index.js"},"./vite":{"types":"./dist/vite/index.d.ts","import":"./dist/vite/index.js"},"./db/d1":{"types":"./dist/db/d1.d.ts","import":"./dist/db/d1.js"},"./db/pg":{"types":"./dist/db/pg.d.ts","import":"./dist/db/pg.js"},"./watch":{"types":"./dist/watch/index.d.ts","import":"./dist/watch/index.js"},"./billing":{"types":"./dist/billing/index.d.ts","import":"./dist/billing/index.js"},"./openapi":{"types":"./dist/openapi/index.d.ts","import":"./dist/openapi/index.js"},"./db/libsql":{"types":"./dist/db/libsql.d.ts","import":"./dist/db/libsql.js"},"./package.json":"./package.json"},"gitHead":"26890a80dbfde766fa53e8c6e2e785bd38c8dcc2","scripts":{"mcp":"tsx bin/keel-mcp.ts","test":"node --import tsx --test tests/*.test.ts","build":"npm run build:ai && npm run build:watch-ui && rm -rf dist && tsc -p tsconfig.build.json && npm run build:watch-copy","prepare":"npm run build","version":"npm run build:ai && git add docs/ai-manifest.json llms.txt llms-full.txt","build:ai":"tsx scripts/build-ai.ts","typecheck":"tsc --noEmit && npm run typecheck:tests","test:coverage":"node --import tsx --test --experimental-test-coverage --test-coverage-exclude='tests/**' tests/*.test.ts","build:watch-ui":"vite build --config src/watch/ui/vite.config.ts","typecheck:docs":"npm run build && tsc -p tsconfig.docs.json","verify:release":"bash scripts/verify-release.sh","typecheck:tests":"tsc --noEmit -p tsconfig.tests.json","build:watch-copy":"mkdir -p dist/watch/ui && cp -R src/watch/ui/dist dist/watch/ui/dist && cp src/watch/watch.config.stub dist/watch/ && cp src/openapi/openapi.config.stub dist/openapi/ && cp src/api/api.config.stub dist/api/ && cp src/billing/billing.config.stub dist/billing/"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:00e8e890-1f6d-485c-b130-c69d62e7f3b9"}},"repository":{"url":"git+https://github.com/shaferllc/keel.git","type":"git"},"_npmVersion":"12.0.1","description":"The house framework for Node.js — a service container, providers, routing, JSX views, and a code-generating console.","directories":{},"_nodeVersion":"22.23.1","dependencies":{"zod":"^4.4.3","hono":"^4.6.14","dotenv":"^16.4.7","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vite":"^6.4.3","preact":"^10.29.7","typescript":"^5.7.2","@types/node":"^26.1.1","@libsql/client":"^0.17.4","@hono/node-server":"^1.13.7"},"peerDependencies":{"vite":"^5 || ^6 || ^7","@hono/node-server":"^1.13.7"},"peerDependenciesMeta":{"vite":{"optional":true},"@hono/node-server":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/keel_0.80.0_1783872912643_0.9877007077782332","host":"s3://npm-registry-packages-npm-production"}},"0.81.0":{"name":"@shaferllc/keel","version":"0.81.0","keywords":["framework","typescript","nodejs","hono","service-container","web-framework","edge","cloudflare-workers","mcp","model-context-protocol","ai","llms-txt"],"author":{"name":"Tom Shafer"},"license":"MIT","_id":"@shaferllc/keel@0.81.0","maintainers":[{"name":"tshafer","email":"tj@tjshafer.com"}],"homepage":"https://github.com/shaferllc/keel#readme","bugs":{"url":"https://github.com/shaferllc/keel/issues"},"bin":{"keel-mcp":"bin/keel-mcp.mjs"},"dist":{"shasum":"8501ede5f0b53280ad467cee7cfbcacfaaacb04d","tarball":"https://registry.npmjs.org/@shaferllc/keel/-/keel-0.81.0.tgz","fileCount":380,"integrity":"sha512-cz811RxzDuO2WvGInRYa4ZbQwPTCFcFaaPXpfx0C+p2ohX0VUj1sfN+lZqIy2+vEZICYUnU8jw9q7l0V2GiNBQ==","signatures":[{"sig":"MEUCIQDK2xuCqH2dr8TLDEFGThmz1+pVnLrjS3UCLFSmOZ+yHQIgWawUGMF+aYVzo9dByZtm61bVxrHOYH9FR8KFQJGDUew=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@shaferllc%2fkeel@0.81.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2739012},"type":"module","exports":{"./api":{"types":"./dist/api/index.d.ts","import":"./dist/api/index.js"},"./cli":{"types":"./dist/core/cli/index.d.ts","import":"./dist/core/cli/index.js"},"./mcp":{"types":"./dist/mcp/server.d.ts","import":"./dist/mcp/server.js"},"./core":{"types":"./dist/core/index.d.ts","import":"./dist/core/index.js"},"./vite":{"types":"./dist/vite/index.d.ts","import":"./dist/vite/index.js"},"./db/d1":{"types":"./dist/db/d1.d.ts","import":"./dist/db/d1.js"},"./db/pg":{"types":"./dist/db/pg.d.ts","import":"./dist/db/pg.js"},"./watch":{"types":"./dist/watch/index.d.ts","import":"./dist/watch/index.js"},"./billing":{"types":"./dist/billing/index.d.ts","import":"./dist/billing/index.js"},"./openapi":{"types":"./dist/openapi/index.d.ts","import":"./dist/openapi/index.js"},"./accounts":{"types":"./dist/accounts/index.d.ts","import":"./dist/accounts/index.js"},"./db/libsql":{"types":"./dist/db/libsql.d.ts","import":"./dist/db/libsql.js"},"./package.json":"./package.json"},"gitHead":"0d636906b0908fe7fbdf99153fb2bec39fb7a843","scripts":{"mcp":"tsx bin/keel-mcp.ts","test":"node --import tsx --test tests/*.test.ts","build":"npm run build:ai && npm run build:watch-ui && rm -rf dist && tsc -p tsconfig.build.json && npm run build:watch-copy","prepare":"npm run build","version":"npm run build:ai && git add docs/ai-manifest.json llms.txt llms-full.txt","build:ai":"tsx scripts/build-ai.ts","typecheck":"tsc --noEmit && npm run typecheck:tests","test:coverage":"node --import tsx --test --experimental-test-coverage --test-coverage-exclude='tests/**' tests/*.test.ts","build:watch-ui":"vite build --config src/watch/ui/vite.config.ts","typecheck:docs":"npm run build && tsc -p tsconfig.docs.json","verify:release":"bash scripts/verify-release.sh","typecheck:tests":"tsc --noEmit -p tsconfig.tests.json","build:watch-copy":"mkdir -p dist/watch/ui && cp -R src/watch/ui/dist dist/watch/ui/dist && cp src/watch/watch.config.stub dist/watch/ && cp src/openapi/openapi.config.stub dist/openapi/ && cp src/api/api.config.stub dist/api/ && cp src/billing/billing.config.stub dist/billing/ && cp src/accounts/accounts.config.stub dist/accounts/"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:00e8e890-1f6d-485c-b130-c69d62e7f3b9"}},"repository":{"url":"git+https://github.com/shaferllc/keel.git","type":"git"},"_npmVersion":"12.0.1","description":"The house framework for Node.js — a service container, providers, routing, JSX views, and a code-generating console.","directories":{},"_nodeVersion":"22.23.1","dependencies":{"zod":"^4.4.3","hono":"^4.6.14","dotenv":"^16.4.7","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vite":"^6.4.3","preact":"^10.29.7","typescript":"^5.7.2","@types/node":"^26.1.1","@libsql/client":"^0.17.4","@hono/node-server":"^1.13.7"},"peerDependencies":{"vite":"^5 || ^6 || ^7","@hono/node-server":"^1.13.7"},"peerDependenciesMeta":{"vite":{"optional":true},"@hono/node-server":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/keel_0.81.0_1783875906725_0.07554992659539006","host":"s3://npm-registry-packages-npm-production"}},"0.81.1":{"name":"@shaferllc/keel","version":"0.81.1","keywords":["framework","typescript","nodejs","hono","service-container","web-framework","edge","cloudflare-workers","mcp","model-context-protocol","ai","llms-txt"],"author":{"name":"Tom Shafer"},"license":"MIT","_id":"@shaferllc/keel@0.81.1","maintainers":[{"name":"tshafer","email":"tj@tjshafer.com"}],"homepage":"https://github.com/shaferllc/keel#readme","bugs":{"url":"https://github.com/shaferllc/keel/issues"},"bin":{"keel-mcp":"bin/keel-mcp.mjs"},"dist":{"shasum":"ef86ea6bb2ddf79e05cb29091b99c7dec720e0ca","tarball":"https://registry.npmjs.org/@shaferllc/keel/-/keel-0.81.1.tgz","fileCount":401,"integrity":"sha512-PSKXUqSkrjCafMwkv6+n2+zmlKB8YI5R7H2vnz0Av1FnoaZVn3Qlk4WyNgX84wvOeA3RPEb+mlqlaWQ6H2XUvg==","signatures":[{"sig":"MEUCIQCsBk12thwQF/1MHbmks36koU+ySfGwK6nMxpyPVssk5wIgNnoEO/rtMXKzQxypKNp1SP+9SIgZ+E4s6DJndO6w2V4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@shaferllc%2fkeel@0.81.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2811441},"type":"module","exports":{"./api":{"types":"./dist/api/index.d.ts","import":"./dist/api/index.js"},"./cli":{"types":"./dist/core/cli/index.d.ts","import":"./dist/core/cli/index.js"},"./mcp":{"types":"./dist/mcp/server.d.ts","import":"./dist/mcp/server.js"},"./core":{"types":"./dist/core/index.d.ts","import":"./dist/core/index.js"},"./vite":{"types":"./dist/vite/index.d.ts","import":"./dist/vite/index.js"},"./db/d1":{"types":"./dist/db/d1.d.ts","import":"./dist/db/d1.js"},"./db/pg":{"types":"./dist/db/pg.d.ts","import":"./dist/db/pg.js"},"./teams":{"types":"./dist/teams/index.d.ts","import":"./dist/teams/index.js"},"./watch":{"types":"./dist/watch/index.d.ts","import":"./dist/watch/index.js"},"./billing":{"types":"./dist/billing/index.d.ts","import":"./dist/billing/index.js"},"./openapi":{"types":"./dist/openapi/index.d.ts","import":"./dist/openapi/index.js"},"./accounts":{"types":"./dist/accounts/index.d.ts","import":"./dist/accounts/index.js"},"./db/libsql":{"types":"./dist/db/libsql.d.ts","import":"./dist/db/libsql.js"},"./package.json":"./package.json"},"gitHead":"e592c23d07b1aa7e59f42ad0e175bcf1454aa15a","scripts":{"mcp":"tsx bin/keel-mcp.ts","test":"node --import tsx --test tests/*.test.ts","build":"npm run build:ai && npm run build:watch-ui && rm -rf dist && tsc -p tsconfig.build.json && npm run build:watch-copy","prepare":"npm run build","version":"npm run build:ai && git add docs/ai-manifest.json llms.txt llms-full.txt","build:ai":"tsx scripts/build-ai.ts","typecheck":"tsc --noEmit && npm run typecheck:tests","test:coverage":"node --import tsx --test --experimental-test-coverage --test-coverage-exclude='tests/**' tests/*.test.ts","build:watch-ui":"vite build --config src/watch/ui/vite.config.ts","typecheck:docs":"npm run build && tsc -p tsconfig.docs.json","verify:release":"bash scripts/verify-release.sh","typecheck:tests":"tsc --noEmit -p tsconfig.tests.json","build:watch-copy":"mkdir -p dist/watch/ui && cp -R src/watch/ui/dist dist/watch/ui/dist && cp src/watch/watch.config.stub dist/watch/ && cp src/openapi/openapi.config.stub dist/openapi/ && cp src/api/api.config.stub dist/api/ && cp src/billing/billing.config.stub dist/billing/ && cp src/accounts/accounts.config.stub dist/accounts/ && cp src/teams/teams.config.stub dist/teams/"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:00e8e890-1f6d-485c-b130-c69d62e7f3b9"}},"repository":{"url":"git+https://github.com/shaferllc/keel.git","type":"git"},"_npmVersion":"12.0.1","description":"The house framework for Node.js — a service container, providers, routing, JSX views, and a code-generating console.","directories":{},"_nodeVersion":"22.23.1","dependencies":{"zod":"^4.4.3","hono":"^4.6.14","dotenv":"^16.4.7","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vite":"^6.4.3","preact":"^10.29.7","typescript":"^5.7.2","@types/node":"^26.1.1","@libsql/client":"^0.17.4","@hono/node-server":"^1.13.7"},"peerDependencies":{"vite":"^5 || ^6 || ^7","@hono/node-server":"^1.13.7"},"peerDependenciesMeta":{"vite":{"optional":true},"@hono/node-server":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/keel_0.81.1_1783876340436_0.318908284827937","host":"s3://npm-registry-packages-npm-production"}},"0.81.2":{"name":"@shaferllc/keel","version":"0.81.2","keywords":["framework","typescript","nodejs","hono","service-container","web-framework","edge","cloudflare-workers","mcp","model-context-protocol","ai","llms-txt"],"author":{"name":"Tom Shafer"},"license":"MIT","_id":"@shaferllc/keel@0.81.2","maintainers":[{"name":"tshafer","email":"tj@tjshafer.com"}],"homepage":"https://github.com/shaferllc/keel#readme","bugs":{"url":"https://github.com/shaferllc/keel/issues"},"bin":{"keel-mcp":"bin/keel-mcp.mjs"},"dist":{"shasum":"1bd879b17e18f34a925ecf7b8ed47f13f18a5051","tarball":"https://registry.npmjs.org/@shaferllc/keel/-/keel-0.81.2.tgz","fileCount":402,"integrity":"sha512-/CVeG1hOIQQ8EdjWrGZWALzD4ZnPWCKHPpuM3ev3Wl0Tgd7NzBC5JDp/WGdwvoZl2aaiGygXsZmeSVl7ybUEYw==","signatures":[{"sig":"MEYCIQDp1gtR6z8BoipwrA3gSH1v7wK8JgUQxhbJG7kUyU2wSQIhAJvD5WIZSTOMCOB/bPim3xxpbu0eM84+SLud3pHWD6PT","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@shaferllc%2fkeel@0.81.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2918729},"type":"module","exports":{"./api":{"types":"./dist/api/index.d.ts","import":"./dist/api/index.js"},"./cli":{"types":"./dist/core/cli/index.d.ts","import":"./dist/core/cli/index.js"},"./mcp":{"types":"./dist/mcp/server.d.ts","import":"./dist/mcp/server.js"},"./core":{"types":"./dist/core/index.d.ts","import":"./dist/core/index.js"},"./vite":{"types":"./dist/vite/index.d.ts","import":"./dist/vite/index.js"},"./db/d1":{"types":"./dist/db/d1.d.ts","import":"./dist/db/d1.js"},"./db/pg":{"types":"./dist/db/pg.d.ts","import":"./dist/db/pg.js"},"./teams":{"types":"./dist/teams/index.d.ts","import":"./dist/teams/index.js"},"./watch":{"types":"./dist/watch/index.d.ts","import":"./dist/watch/index.js"},"./billing":{"types":"./dist/billing/index.d.ts","import":"./dist/billing/index.js"},"./openapi":{"types":"./dist/openapi/index.d.ts","import":"./dist/openapi/index.js"},"./accounts":{"types":"./dist/accounts/index.d.ts","import":"./dist/accounts/index.js"},"./db/libsql":{"types":"./dist/db/libsql.d.ts","import":"./dist/db/libsql.js"},"./package.json":"./package.json"},"gitHead":"d91645dc73fd4953f7d2bb13a106604176ec4a54","scripts":{"mcp":"tsx bin/keel-mcp.ts","test":"node --import tsx --test tests/*.test.ts","build":"npm run build:ai && npm run build:watch-ui && rm -rf dist && tsc -p tsconfig.build.json && npm run build:watch-copy","prepare":"npm run build","version":"npm run build:ai && git add docs/ai-manifest.json llms.txt llms-full.txt","build:ai":"tsx scripts/build-ai.ts","typecheck":"tsc --noEmit && npm run typecheck:tests","test:coverage":"node --import tsx --test --experimental-test-coverage --test-coverage-exclude='tests/**' tests/*.test.ts","build:watch-ui":"vite build --config src/watch/ui/vite.config.ts","typecheck:docs":"npm run build && tsc -p tsconfig.docs.json","verify:release":"bash scripts/verify-release.sh","typecheck:tests":"tsc --noEmit -p tsconfig.tests.json","build:watch-copy":"mkdir -p dist/watch/ui && cp -R src/watch/ui/dist dist/watch/ui/dist && cp src/watch/watch.config.stub dist/watch/ && cp src/openapi/openapi.config.stub dist/openapi/ && cp src/api/api.config.stub dist/api/ && cp src/billing/billing.config.stub dist/billing/ && cp src/accounts/accounts.config.stub dist/accounts/ && cp src/teams/teams.config.stub dist/teams/"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:00e8e890-1f6d-485c-b130-c69d62e7f3b9"}},"repository":{"url":"git+https://github.com/shaferllc/keel.git","type":"git"},"_npmVersion":"12.0.1","description":"The house framework for Node.js — a service container, providers, routing, JSX views, and a code-generating console.","directories":{},"_nodeVersion":"22.23.1","dependencies":{"zod":"^4.4.3","hono":"^4.6.14","dotenv":"^16.4.7","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vite":"^6.4.3","preact":"^10.29.7","typescript":"^5.7.2","@types/node":"^26.1.1","@libsql/client":"^0.17.4","@hono/node-server":"^1.13.7"},"peerDependencies":{"vite":"^5 || ^6 || ^7","@hono/node-server":"^1.13.7"},"peerDependenciesMeta":{"vite":{"optional":true},"@hono/node-server":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/keel_0.81.2_1783876947345_0.9956305773796648","host":"s3://npm-registry-packages-npm-production"}},"0.82.0":{"name":"@shaferllc/keel","version":"0.82.0","keywords":["framework","typescript","nodejs","hono","service-container","web-framework","edge","cloudflare-workers","mcp","model-context-protocol","ai","llms-txt"],"author":{"name":"Tom Shafer"},"license":"MIT","_id":"@shaferllc/keel@0.82.0","maintainers":[{"name":"tshafer","email":"tj@tjshafer.com"}],"homepage":"https://github.com/shaferllc/keel#readme","bugs":{"url":"https://github.com/shaferllc/keel/issues"},"bin":{"keel-mcp":"bin/keel-mcp.mjs"},"dist":{"shasum":"6376ec86da65626fd1afd9ea8dfe0d6d5831d4bd","tarball":"https://registry.npmjs.org/@shaferllc/keel/-/keel-0.82.0.tgz","fileCount":402,"integrity":"sha512-H3PIaaXzlABhm72BEV3R07eQt+WtGRG1NmDLrUwQqhL524Fdf8SlP3jNeqOzMt7rQtzXto4h3YbFv12rFNtJVA==","signatures":[{"sig":"MEYCIQDVEfZsBc0Rp8vUhOt9E6kpY0QWJklDAYA32fSp2zH6OgIhAORggspFsl76jp3uPUj+gsyRq2JWC792RgLGxpKdeQqK","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@shaferllc%2fkeel@0.82.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2945079},"type":"module","exports":{"./api":{"types":"./dist/api/index.d.ts","import":"./dist/api/index.js"},"./cli":{"types":"./dist/core/cli/index.d.ts","import":"./dist/core/cli/index.js"},"./mcp":{"types":"./dist/mcp/server.d.ts","import":"./dist/mcp/server.js"},"./core":{"types":"./dist/core/index.d.ts","import":"./dist/core/index.js"},"./vite":{"types":"./dist/vite/index.d.ts","import":"./dist/vite/index.js"},"./db/d1":{"types":"./dist/db/d1.d.ts","import":"./dist/db/d1.js"},"./db/pg":{"types":"./dist/db/pg.d.ts","import":"./dist/db/pg.js"},"./teams":{"types":"./dist/teams/index.d.ts","import":"./dist/teams/index.js"},"./watch":{"types":"./dist/watch/index.d.ts","import":"./dist/watch/index.js"},"./billing":{"types":"./dist/billing/index.d.ts","import":"./dist/billing/index.js"},"./openapi":{"types":"./dist/openapi/index.d.ts","import":"./dist/openapi/index.js"},"./accounts":{"types":"./dist/accounts/index.d.ts","import":"./dist/accounts/index.js"},"./db/libsql":{"types":"./dist/db/libsql.d.ts","import":"./dist/db/libsql.js"},"./package.json":"./package.json"},"gitHead":"bd59ca5e79966739a94dac55994cc25acc946d36","scripts":{"mcp":"tsx bin/keel-mcp.ts","test":"node --import tsx --test tests/*.test.ts","build":"npm run build:ai && npm run build:watch-ui && rm -rf dist && tsc -p tsconfig.build.json && npm run build:watch-copy","prepare":"npm run build","version":"npm run build:ai && git add docs/ai-manifest.json llms.txt llms-full.txt","build:ai":"tsx scripts/build-ai.ts","typecheck":"tsc --noEmit && npm run typecheck:tests","test:coverage":"node --import tsx --test --experimental-test-coverage --test-coverage-exclude='tests/**' tests/*.test.ts","build:watch-ui":"vite build --config src/watch/ui/vite.config.ts","typecheck:docs":"npm run build && tsc -p tsconfig.docs.json","verify:release":"bash scripts/verify-release.sh","typecheck:tests":"tsc --noEmit -p tsconfig.tests.json","build:watch-copy":"mkdir -p dist/watch/ui && cp -R src/watch/ui/dist dist/watch/ui/dist && cp src/watch/watch.config.stub dist/watch/ && cp src/openapi/openapi.config.stub dist/openapi/ && cp src/api/api.config.stub dist/api/ && cp src/billing/billing.config.stub dist/billing/ && cp src/accounts/accounts.config.stub dist/accounts/ && cp src/teams/teams.config.stub dist/teams/"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:00e8e890-1f6d-485c-b130-c69d62e7f3b9"}},"repository":{"url":"git+https://github.com/shaferllc/keel.git","type":"git"},"_npmVersion":"12.0.1","description":"The house framework for Node.js — a service container, providers, routing, JSX views, and a code-generating console.","directories":{},"_nodeVersion":"22.23.1","dependencies":{"zod":"^4.4.3","hono":"^4.6.14","dotenv":"^16.4.7","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vite":"^6.4.3","preact":"^10.29.7","typescript":"^5.7.2","@types/node":"^26.1.1","@libsql/client":"^0.17.4","@hono/node-server":"^1.13.7"},"peerDependencies":{"vite":"^5 || ^6 || ^7","@hono/node-server":"^1.13.7"},"peerDependenciesMeta":{"vite":{"optional":true},"@hono/node-server":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/keel_0.82.0_1783877812026_0.28452374776878653","host":"s3://npm-registry-packages-npm-production"}},"0.83.0":{"name":"@shaferllc/keel","version":"0.83.0","keywords":["framework","typescript","nodejs","hono","service-container","web-framework","edge","cloudflare-workers","mcp","model-context-protocol","ai","llms-txt"],"author":{"name":"Tom Shafer"},"license":"MIT","_id":"@shaferllc/keel@0.83.0","maintainers":[{"name":"tshafer","email":"tj@tjshafer.com"}],"homepage":"https://github.com/shaferllc/keel#readme","bugs":{"url":"https://github.com/shaferllc/keel/issues"},"bin":{"keel-mcp":"bin/keel-mcp.mjs"},"dist":{"shasum":"99b193489477e199a4be5a0aa6c561a47b788365","tarball":"https://registry.npmjs.org/@shaferllc/keel/-/keel-0.83.0.tgz","fileCount":512,"integrity":"sha512-J4s8SnNe4P1Lc/BdSDnakRcLh7NOMS6rhE3+QmtsoiGr4xRtArhU4o+MlT6RZM0Ta6hmsPRG8JniHZIVuVn6Vw==","signatures":[{"sig":"MEYCIQDRI1TQCSwhQeOUMXgfXZ8BLtxOZwYLT2+C7H7KLXnANAIhAMw6PYyfT/xf8CXDIzp9ulr1AElY2XGfk20/KRendUoF","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@shaferllc%2fkeel@0.83.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3052817},"type":"module","exports":{"./api":{"types":"./dist/api/index.d.ts","import":"./dist/api/index.js"},"./cli":{"types":"./dist/core/cli/index.d.ts","import":"./dist/core/cli/index.js"},"./mcp":{"types":"./dist/mcp/server.d.ts","import":"./dist/mcp/server.js"},"./core":{"types":"./dist/core/index.d.ts","import":"./dist/core/index.js"},"./vite":{"types":"./dist/vite/index.d.ts","import":"./dist/vite/index.js"},"./db/d1":{"types":"./dist/db/d1.d.ts","import":"./dist/db/d1.js"},"./db/pg":{"types":"./dist/db/pg.d.ts","import":"./dist/db/pg.js"},"./teams":{"types":"./dist/teams/index.d.ts","import":"./dist/teams/index.js"},"./watch":{"types":"./dist/watch/index.d.ts","import":"./dist/watch/index.js"},"./billing":{"types":"./dist/billing/index.d.ts","import":"./dist/billing/index.js"},"./openapi":{"types":"./dist/openapi/index.d.ts","import":"./dist/openapi/index.js"},"./accounts":{"types":"./dist/accounts/index.d.ts","import":"./dist/accounts/index.js"},"./db/libsql":{"types":"./dist/db/libsql.d.ts","import":"./dist/db/libsql.js"},"./db/d1-http":{"types":"./dist/db/d1-http.d.ts","import":"./dist/db/d1-http.js"},"./package.json":"./package.json"},"gitHead":"6454277178eb73fbd7b78696d7bc55f42b9c6f71","scripts":{"mcp":"tsx bin/keel-mcp.ts","test":"node --import tsx --test tests/*.test.ts","build":"npm run build:ai && npm run build:watch-ui && rm -rf dist && tsc -p tsconfig.build.json && npm run build:watch-copy","prepare":"npm run build","version":"npm run build:ai && git add docs/ai-manifest.json llms.txt llms-full.txt","build:ai":"tsx scripts/build-ai.ts","typecheck":"tsc --noEmit && npm run typecheck:tests","test:coverage":"node --import tsx --test --experimental-test-coverage --test-coverage-exclude='tests/**' tests/*.test.ts","build:watch-ui":"vite build --config src/watch/ui/vite.config.ts","typecheck:docs":"npm run build && tsc -p tsconfig.docs.json","verify:release":"bash scripts/verify-release.sh","typecheck:tests":"tsc --noEmit -p tsconfig.tests.json","build:watch-copy":"mkdir -p dist/watch/ui && cp -R src/watch/ui/dist dist/watch/ui/dist && cp src/watch/watch.config.stub dist/watch/ && cp src/openapi/openapi.config.stub dist/openapi/ && cp src/api/api.config.stub dist/api/ && cp src/billing/billing.config.stub dist/billing/ && cp src/accounts/accounts.config.stub dist/accounts/ && cp src/teams/teams.config.stub dist/teams/"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:00e8e890-1f6d-485c-b130-c69d62e7f3b9"}},"repository":{"url":"git+https://github.com/shaferllc/keel.git","type":"git"},"_npmVersion":"12.0.1","description":"The house framework for Node.js — a service container, providers, routing, JSX views, and a code-generating console.","directories":{},"_nodeVersion":"22.23.1","dependencies":{"zod":"^4.4.3","hono":"^4.6.14","dotenv":"^16.4.7","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vite":"^6.4.3","preact":"^10.29.7","typescript":"^5.7.2","@types/node":"^26.1.1","@libsql/client":"^0.17.4","@hono/node-server":"^1.13.7"},"peerDependencies":{"vite":"^5 || ^6 || ^7","@hono/node-server":"^1.13.7"},"peerDependenciesMeta":{"vite":{"optional":true},"@hono/node-server":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/keel_0.83.0_1783878776093_0.4220489438388544","host":"s3://npm-registry-packages-npm-production"}},"0.83.1":{"name":"@shaferllc/keel","version":"0.83.1","keywords":["framework","typescript","nodejs","hono","service-container","web-framework","edge","cloudflare-workers","mcp","model-context-protocol","ai","llms-txt"],"author":{"name":"Tom Shafer"},"license":"MIT","_id":"@shaferllc/keel@0.83.1","maintainers":[{"name":"tshafer","email":"tj@tjshafer.com"}],"homepage":"https://github.com/shaferllc/keel#readme","bugs":{"url":"https://github.com/shaferllc/keel/issues"},"bin":{"keel-mcp":"bin/keel-mcp.mjs"},"dist":{"shasum":"8a8bdb8f2154f15ee560edbe2af3e9328e2b0c18","tarball":"https://registry.npmjs.org/@shaferllc/keel/-/keel-0.83.1.tgz","fileCount":512,"integrity":"sha512-5R1+09eGtWOS76yrfJ0lsFwI0PopPQi/q+iut5TZWHVVLhQ7LKOSTQskY4PAO6/0w+6APZPTOHQTw7hzQVZ9ng==","signatures":[{"sig":"MEUCIQCQq4jgHgJF+FGPvmZ1s6U2IpaNp7nBRUPISKj/a2N++gIgKg3CCsptnAlfb1RqxrLKkvjHaEaF/7WmwRyeKK6bSyQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@shaferllc%2fkeel@0.83.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3054823},"type":"module","exports":{"./api":{"types":"./dist/api/index.d.ts","import":"./dist/api/index.js"},"./cli":{"types":"./dist/core/cli/index.d.ts","import":"./dist/core/cli/index.js"},"./mcp":{"types":"./dist/mcp/server.d.ts","import":"./dist/mcp/server.js"},"./core":{"types":"./dist/core/index.d.ts","import":"./dist/core/index.js"},"./vite":{"types":"./dist/vite/index.d.ts","import":"./dist/vite/index.js"},"./db/d1":{"types":"./dist/db/d1.d.ts","import":"./dist/db/d1.js"},"./db/pg":{"types":"./dist/db/pg.d.ts","import":"./dist/db/pg.js"},"./teams":{"types":"./dist/teams/index.d.ts","import":"./dist/teams/index.js"},"./watch":{"types":"./dist/watch/index.d.ts","import":"./dist/watch/index.js"},"./billing":{"types":"./dist/billing/index.d.ts","import":"./dist/billing/index.js"},"./openapi":{"types":"./dist/openapi/index.d.ts","import":"./dist/openapi/index.js"},"./accounts":{"types":"./dist/accounts/index.d.ts","import":"./dist/accounts/index.js"},"./db/libsql":{"types":"./dist/db/libsql.d.ts","import":"./dist/db/libsql.js"},"./db/d1-http":{"types":"./dist/db/d1-http.d.ts","import":"./dist/db/d1-http.js"},"./package.json":"./package.json"},"gitHead":"535b57b31ce128e888a565d2c914fff24817e753","scripts":{"mcp":"tsx bin/keel-mcp.ts","test":"node --import tsx --test tests/*.test.ts","build":"npm run build:ai && npm run build:watch-ui && rm -rf dist && tsc -p tsconfig.build.json && npm run build:watch-copy","prepare":"npm run build","version":"npm run build:ai && git add docs/ai-manifest.json llms.txt llms-full.txt","build:ai":"tsx scripts/build-ai.ts","typecheck":"tsc --noEmit && npm run typecheck:tests","test:coverage":"node --import tsx --test --experimental-test-coverage --test-coverage-exclude='tests/**' tests/*.test.ts","build:watch-ui":"vite build --config src/watch/ui/vite.config.ts","typecheck:docs":"npm run build && tsc -p tsconfig.docs.json","verify:release":"bash scripts/verify-release.sh","typecheck:tests":"tsc --noEmit -p tsconfig.tests.json","build:watch-copy":"mkdir -p dist/watch/ui && cp -R src/watch/ui/dist dist/watch/ui/dist && cp src/watch/watch.config.stub dist/watch/ && cp src/openapi/openapi.config.stub dist/openapi/ && cp src/api/api.config.stub dist/api/ && cp src/billing/billing.config.stub dist/billing/ && cp src/accounts/accounts.config.stub dist/accounts/ && cp src/teams/teams.config.stub dist/teams/"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:00e8e890-1f6d-485c-b130-c69d62e7f3b9"}},"repository":{"url":"git+https://github.com/shaferllc/keel.git","type":"git"},"_npmVersion":"12.0.1","description":"The house framework for Node.js — a service container, providers, routing, JSX views, and a code-generating console.","directories":{},"_nodeVersion":"22.23.1","dependencies":{"zod":"^4.4.3","hono":"^4.6.14","dotenv":"^16.4.7","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vite":"^6.4.3","preact":"^10.29.7","typescript":"^5.7.2","@types/node":"^26.1.1","@libsql/client":"^0.17.4","@hono/node-server":"^1.13.7"},"peerDependencies":{"vite":"^5 || ^6 || ^7","@hono/node-server":"^1.13.7"},"peerDependenciesMeta":{"vite":{"optional":true},"@hono/node-server":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/keel_0.83.1_1783879372593_0.16451712265539764","host":"s3://npm-registry-packages-npm-production"}},"0.83.2":{"name":"@shaferllc/keel","version":"0.83.2","keywords":["framework","typescript","nodejs","hono","service-container","web-framework","edge","cloudflare-workers","mcp","model-context-protocol","ai","llms-txt"],"author":{"name":"Tom Shafer"},"license":"MIT","_id":"@shaferllc/keel@0.83.2","maintainers":[{"name":"tshafer","email":"tj@tjshafer.com"}],"homepage":"https://github.com/shaferllc/keel#readme","bugs":{"url":"https://github.com/shaferllc/keel/issues"},"bin":{"keel-mcp":"bin/keel-mcp.mjs"},"dist":{"shasum":"8c8d673d0c74c6035df0120df02cde163f4ac8ef","tarball":"https://registry.npmjs.org/@shaferllc/keel/-/keel-0.83.2.tgz","fileCount":523,"integrity":"sha512-Zi980S7Ry6Bqy0haAaeVcpfN6i88tXU3ThdHKLiNw8XHxh1l9OYiri/e/pz7MDheMD9tUAlDXI2iCrbt+DtBUg==","signatures":[{"sig":"MEUCIFy/pYMvIktVmc1wtpBoxVupqvHBi1I5NTWU5go5fzTrAiEAoOOWp6eBUdX2/4X5HWzCA2rB3X2RLYkerZJDEkCHI7M=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@shaferllc%2fkeel@0.83.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3078589},"type":"module","exports":{"./api":{"types":"./dist/api/index.d.ts","import":"./dist/api/index.js"},"./cli":{"types":"./dist/core/cli/index.d.ts","import":"./dist/core/cli/index.js"},"./mcp":{"types":"./dist/mcp/server.d.ts","import":"./dist/mcp/server.js"},"./core":{"types":"./dist/core/index.d.ts","import":"./dist/core/index.js"},"./vite":{"types":"./dist/vite/index.d.ts","import":"./dist/vite/index.js"},"./db/d1":{"types":"./dist/db/d1.d.ts","import":"./dist/db/d1.js"},"./db/pg":{"types":"./dist/db/pg.d.ts","import":"./dist/db/pg.js"},"./teams":{"types":"./dist/teams/index.d.ts","import":"./dist/teams/index.js"},"./watch":{"types":"./dist/watch/index.d.ts","import":"./dist/watch/index.js"},"./billing":{"types":"./dist/billing/index.d.ts","import":"./dist/billing/index.js"},"./openapi":{"types":"./dist/openapi/index.d.ts","import":"./dist/openapi/index.js"},"./accounts":{"types":"./dist/accounts/index.d.ts","import":"./dist/accounts/index.js"},"./db/libsql":{"types":"./dist/db/libsql.d.ts","import":"./dist/db/libsql.js"},"./db/d1-http":{"types":"./dist/db/d1-http.d.ts","import":"./dist/db/d1-http.js"},"./package.json":"./package.json"},"gitHead":"329d6a4cb3bb471f4b589ac678160e5e8e883c7d","scripts":{"mcp":"tsx bin/keel-mcp.ts","test":"node --import tsx --test tests/*.test.ts","build":"npm run build:ai && npm run build:watch-ui && rm -rf dist && tsc -p tsconfig.build.json && npm run build:watch-copy","prepare":"npm run build","version":"npm run build:ai && git add docs/ai-manifest.json llms.txt llms-full.txt","build:ai":"tsx scripts/build-ai.ts","typecheck":"tsc --noEmit && npm run typecheck:tests","test:coverage":"node --import tsx --test --experimental-test-coverage --test-coverage-exclude='tests/**' tests/*.test.ts","build:watch-ui":"vite build --config src/watch/ui/vite.config.ts","typecheck:docs":"npm run build && tsc -p tsconfig.docs.json","verify:release":"bash scripts/verify-release.sh","typecheck:tests":"tsc --noEmit -p tsconfig.tests.json","build:watch-copy":"mkdir -p dist/watch/ui && cp -R src/watch/ui/dist dist/watch/ui/dist && cp src/watch/watch.config.stub dist/watch/ && cp src/openapi/openapi.config.stub dist/openapi/ && cp src/api/api.config.stub dist/api/ && cp src/billing/billing.config.stub dist/billing/ && cp src/accounts/accounts.config.stub dist/accounts/ && cp src/teams/teams.config.stub dist/teams/"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:00e8e890-1f6d-485c-b130-c69d62e7f3b9"}},"repository":{"url":"git+https://github.com/shaferllc/keel.git","type":"git"},"_npmVersion":"12.0.1","description":"The house framework for Node.js — a service container, providers, routing, JSX views, and a code-generating console.","directories":{},"_nodeVersion":"22.23.1","dependencies":{"zod":"^4.4.3","hono":"^4.6.14","dotenv":"^16.4.7","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vite":"^6.4.3","preact":"^10.29.7","typescript":"^5.7.2","@types/node":"^26.1.1","@libsql/client":"^0.17.4","@hono/node-server":"^1.13.7"},"peerDependencies":{"vite":"^5 || ^6 || ^7","@hono/node-server":"^1.13.7"},"peerDependenciesMeta":{"vite":{"optional":true},"@hono/node-server":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/keel_0.83.2_1783907900277_0.14524235185738865","host":"s3://npm-registry-packages-npm-production"}},"0.83.3":{"name":"@shaferllc/keel","version":"0.83.3","keywords":["framework","typescript","nodejs","hono","service-container","web-framework","edge","cloudflare-workers","mcp","model-context-protocol","ai","llms-txt"],"author":{"name":"Tom Shafer"},"license":"MIT","_id":"@shaferllc/keel@0.83.3","maintainers":[{"name":"tshafer","email":"tj@tjshafer.com"}],"homepage":"https://github.com/shaferllc/keel#readme","bugs":{"url":"https://github.com/shaferllc/keel/issues"},"bin":{"keel-mcp":"bin/keel-mcp.mjs"},"dist":{"shasum":"21cae33778c8045bb3f51a10dafcc63e413ca76a","tarball":"https://registry.npmjs.org/@shaferllc/keel/-/keel-0.83.3.tgz","fileCount":541,"integrity":"sha512-rt4InbfTfwBK3iNkEf7x5Ww1s3aYn1onwNecRUocGqZIWQOmhPCO3o3LXquitQkZcgkkCV4XhrPy5smEpCKpUQ==","signatures":[{"sig":"MEUCIQDYtWK7e6QIkPeP0dRBOfahiYsNc0WK5MVbGfUFAP7thgIgLLWbHuL51/w6AsTqdcEIyKMoPGCBElJSqBD/RtDOIJc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@shaferllc%2fkeel@0.83.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3101919},"type":"module","exports":{"./api":{"types":"./dist/api/index.d.ts","import":"./dist/api/index.js"},"./cli":{"types":"./dist/core/cli/index.d.ts","import":"./dist/core/cli/index.js"},"./mcp":{"types":"./dist/mcp/server.d.ts","import":"./dist/mcp/server.js"},"./core":{"types":"./dist/core/index.d.ts","import":"./dist/core/index.js"},"./vite":{"types":"./dist/vite/index.d.ts","import":"./dist/vite/index.js"},"./db/d1":{"types":"./dist/db/d1.d.ts","import":"./dist/db/d1.js"},"./db/pg":{"types":"./dist/db/pg.d.ts","import":"./dist/db/pg.js"},"./gates":{"types":"./dist/gates/index.d.ts","import":"./dist/gates/index.js"},"./teams":{"types":"./dist/teams/index.d.ts","import":"./dist/teams/index.js"},"./watch":{"types":"./dist/watch/index.d.ts","import":"./dist/watch/index.js"},"./billing":{"types":"./dist/billing/index.d.ts","import":"./dist/billing/index.js"},"./hosting":{"types":"./dist/hosting/index.d.ts","import":"./dist/hosting/index.js"},"./openapi":{"types":"./dist/openapi/index.d.ts","import":"./dist/openapi/index.js"},"./accounts":{"types":"./dist/accounts/index.d.ts","import":"./dist/accounts/index.js"},"./db/libsql":{"types":"./dist/db/libsql.d.ts","import":"./dist/db/libsql.js"},"./db/d1-http":{"types":"./dist/db/d1-http.d.ts","import":"./dist/db/d1-http.js"},"./package.json":"./package.json"},"gitHead":"22c9e7d7b99d6d816fe6c14dee8791e927de854d","scripts":{"mcp":"tsx bin/keel-mcp.ts","test":"node --import tsx --test tests/*.test.ts","build":"npm run build:ai && npm run build:watch-ui && rm -rf dist && tsc -p tsconfig.build.json && npm run build:watch-copy","prepare":"npm run build","version":"npm run build:ai && git add docs/ai-manifest.json llms.txt llms-full.txt","build:ai":"tsx scripts/build-ai.ts","typecheck":"tsc --noEmit && npm run typecheck:tests","test:coverage":"node --import tsx --test --experimental-test-coverage --test-coverage-exclude='tests/**' tests/*.test.ts","build:watch-ui":"vite build --config src/watch/ui/vite.config.ts","typecheck:docs":"npm run build && tsc -p tsconfig.docs.json","verify:release":"bash scripts/verify-release.sh","typecheck:tests":"tsc --noEmit -p tsconfig.tests.json","build:watch-copy":"mkdir -p dist/watch/ui && cp -R src/watch/ui/dist dist/watch/ui/dist && cp src/watch/watch.config.stub dist/watch/ && cp src/openapi/openapi.config.stub dist/openapi/ && cp src/api/api.config.stub dist/api/ && cp src/billing/billing.config.stub dist/billing/ && cp src/accounts/accounts.config.stub dist/accounts/ && cp src/teams/teams.config.stub dist/teams/"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:00e8e890-1f6d-485c-b130-c69d62e7f3b9"}},"repository":{"url":"git+https://github.com/shaferllc/keel.git","type":"git"},"_npmVersion":"12.0.1","description":"The house framework for Node.js — a service container, providers, routing, JSX views, and a code-generating console.","directories":{},"_nodeVersion":"22.23.1","dependencies":{"zod":"^4.4.3","hono":"^4.6.14","dotenv":"^16.4.7","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vite":"^6.4.3","preact":"^10.29.7","typescript":"^5.7.2","@types/node":"^26.1.1","@libsql/client":"^0.17.4","@hono/node-server":"^1.13.7"},"peerDependencies":{"vite":"^5 || ^6 || ^7","@hono/node-server":"^1.13.7"},"peerDependenciesMeta":{"vite":{"optional":true},"@hono/node-server":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/keel_0.83.3_1783908065668_0.6632624563149254","host":"s3://npm-registry-packages-npm-production"}},"0.83.4":{"name":"@shaferllc/keel","version":"0.83.4","keywords":["framework","typescript","nodejs","hono","service-container","web-framework","edge","cloudflare-workers","mcp","model-context-protocol","ai","llms-txt"],"author":{"name":"Tom Shafer"},"license":"MIT","_id":"@shaferllc/keel@0.83.4","maintainers":[{"name":"tshafer","email":"tj@tjshafer.com"}],"homepage":"https://github.com/shaferllc/keel#readme","bugs":{"url":"https://github.com/shaferllc/keel/issues"},"bin":{"keel-mcp":"bin/keel-mcp.mjs"},"dist":{"shasum":"00f0dc90c092f0aa5a924784cbaceeef767e78d5","tarball":"https://registry.npmjs.org/@shaferllc/keel/-/keel-0.83.4.tgz","fileCount":545,"integrity":"sha512-/ZTJ8Zq8wQMraFNSuJd/Eeo3YGZgOWFR2mtwWvdaPQ534ft04SVUKI+9EA+RcSKRgxRmgqFNeDoBtQyTi8V2kw==","signatures":[{"sig":"MEUCIQCm8yEy2gsNAYdHUu5iBRECNdivyCN/vJPbgGiULK8Q2QIgHa+4ey+d6y2UcFa9a6oXN4yVJsc4PzziF3RtDv6JTHk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@shaferllc%2fkeel@0.83.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3124365},"type":"module","exports":{"./api":{"types":"./dist/api/index.d.ts","import":"./dist/api/index.js"},"./cli":{"types":"./dist/core/cli/index.d.ts","import":"./dist/core/cli/index.js"},"./mcp":{"types":"./dist/mcp/server.d.ts","import":"./dist/mcp/server.js"},"./core":{"types":"./dist/core/index.d.ts","import":"./dist/core/index.js"},"./vite":{"types":"./dist/vite/index.d.ts","import":"./dist/vite/index.js"},"./db/d1":{"types":"./dist/db/d1.d.ts","import":"./dist/db/d1.js"},"./db/pg":{"types":"./dist/db/pg.d.ts","import":"./dist/db/pg.js"},"./gates":{"types":"./dist/gates/index.d.ts","import":"./dist/gates/index.js"},"./teams":{"types":"./dist/teams/index.d.ts","import":"./dist/teams/index.js"},"./watch":{"types":"./dist/watch/index.d.ts","import":"./dist/watch/index.js"},"./billing":{"types":"./dist/billing/index.d.ts","import":"./dist/billing/index.js"},"./hosting":{"types":"./dist/hosting/index.d.ts","import":"./dist/hosting/index.js"},"./openapi":{"types":"./dist/openapi/index.d.ts","import":"./dist/openapi/index.js"},"./accounts":{"types":"./dist/accounts/index.d.ts","import":"./dist/accounts/index.js"},"./db/libsql":{"types":"./dist/db/libsql.d.ts","import":"./dist/db/libsql.js"},"./db/d1-http":{"types":"./dist/db/d1-http.d.ts","import":"./dist/db/d1-http.js"},"./package.json":"./package.json"},"gitHead":"f4029fd4a39e6d6ff65df9dc097a0003a5517b01","scripts":{"mcp":"tsx bin/keel-mcp.ts","test":"node --import tsx --test tests/*.test.ts","build":"npm run build:ai && npm run build:watch-ui && rm -rf dist && tsc -p tsconfig.build.json && npm run build:watch-copy","prepare":"npm run build","version":"npm run build:ai && git add docs/ai-manifest.json llms.txt llms-full.txt","build:ai":"tsx scripts/build-ai.ts","typecheck":"tsc --noEmit && npm run typecheck:tests","test:coverage":"node --import tsx --test --experimental-test-coverage --test-coverage-exclude='tests/**' tests/*.test.ts","build:watch-ui":"vite build --config src/watch/ui/vite.config.ts","typecheck:docs":"npm run build && tsc -p tsconfig.docs.json","verify:release":"bash scripts/verify-release.sh","typecheck:tests":"tsc --noEmit -p tsconfig.tests.json","build:watch-copy":"mkdir -p dist/watch/ui && cp -R src/watch/ui/dist dist/watch/ui/dist && cp src/watch/watch.config.stub dist/watch/ && cp src/openapi/openapi.config.stub dist/openapi/ && cp src/api/api.config.stub dist/api/ && cp src/billing/billing.config.stub dist/billing/ && cp src/accounts/accounts.config.stub dist/accounts/ && cp src/teams/teams.config.stub dist/teams/"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:00e8e890-1f6d-485c-b130-c69d62e7f3b9"}},"repository":{"url":"git+https://github.com/shaferllc/keel.git","type":"git"},"_npmVersion":"12.0.1","description":"The house framework for Node.js — a service container, providers, routing, JSX views, and a code-generating console.","directories":{},"_nodeVersion":"22.23.1","dependencies":{"zod":"^4.4.3","hono":"^4.6.14","dotenv":"^16.4.7","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vite":"^6.4.3","preact":"^10.29.7","typescript":"^5.7.2","@types/node":"^26.1.1","@libsql/client":"^0.17.4","@hono/node-server":"^1.13.7"},"peerDependencies":{"vite":"^5 || ^6 || ^7","@hono/node-server":"^1.13.7"},"peerDependenciesMeta":{"vite":{"optional":true},"@hono/node-server":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/keel_0.83.4_1783908652536_0.2317467875112944","host":"s3://npm-registry-packages-npm-production"}},"0.83.5":{"name":"@shaferllc/keel","version":"0.83.5","keywords":["framework","typescript","nodejs","hono","service-container","web-framework","edge","cloudflare-workers","mcp","model-context-protocol","ai","llms-txt"],"author":{"name":"Tom Shafer"},"license":"MIT","_id":"@shaferllc/keel@0.83.5","maintainers":[{"name":"tshafer","email":"tj@tjshafer.com"}],"homepage":"https://github.com/shaferllc/keel#readme","bugs":{"url":"https://github.com/shaferllc/keel/issues"},"bin":{"keel-mcp":"bin/keel-mcp.mjs"},"dist":{"shasum":"557aaf9a1ba49b4303b1062549a26773c5e1133c","tarball":"https://registry.npmjs.org/@shaferllc/keel/-/keel-0.83.5.tgz","fileCount":545,"integrity":"sha512-wYt/otkslZqj8+JHLe6kdGQMSeCcOCgqqwTDacXCQHrdibb33DW11Ulal2VaIhxZZ8VFnlevx3UinqW22o8kmw==","signatures":[{"sig":"MEUCIC7eBGoqlvsn96iFb+oMJRFjH7QqnMpYUGp7htht/KhGAiEA97Wvyio/Ki298dPGmk3Iy1+esRgbCPmKF9gNFguQ97I=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@shaferllc%2fkeel@0.83.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3132241},"type":"module","exports":{"./api":{"types":"./dist/api/index.d.ts","import":"./dist/api/index.js"},"./cli":{"types":"./dist/core/cli/index.d.ts","import":"./dist/core/cli/index.js"},"./mcp":{"types":"./dist/mcp/server.d.ts","import":"./dist/mcp/server.js"},"./core":{"types":"./dist/core/index.d.ts","import":"./dist/core/index.js"},"./vite":{"types":"./dist/vite/index.d.ts","import":"./dist/vite/index.js"},"./db/d1":{"types":"./dist/db/d1.d.ts","import":"./dist/db/d1.js"},"./db/pg":{"types":"./dist/db/pg.d.ts","import":"./dist/db/pg.js"},"./gates":{"types":"./dist/gates/index.d.ts","import":"./dist/gates/index.js"},"./teams":{"types":"./dist/teams/index.d.ts","import":"./dist/teams/index.js"},"./watch":{"types":"./dist/watch/index.d.ts","import":"./dist/watch/index.js"},"./billing":{"types":"./dist/billing/index.d.ts","import":"./dist/billing/index.js"},"./hosting":{"types":"./dist/hosting/index.d.ts","import":"./dist/hosting/index.js"},"./openapi":{"types":"./dist/openapi/index.d.ts","import":"./dist/openapi/index.js"},"./accounts":{"types":"./dist/accounts/index.d.ts","import":"./dist/accounts/index.js"},"./db/libsql":{"types":"./dist/db/libsql.d.ts","import":"./dist/db/libsql.js"},"./db/d1-http":{"types":"./dist/db/d1-http.d.ts","import":"./dist/db/d1-http.js"},"./package.json":"./package.json"},"gitHead":"f56e1b75c2d976ad9a238ff48c11b74770a9a9f3","scripts":{"mcp":"tsx bin/keel-mcp.ts","test":"node --import tsx --test tests/*.test.ts","build":"npm run build:ai && npm run build:watch-ui && rm -rf dist && tsc -p tsconfig.build.json && npm run build:watch-copy","prepare":"npm run build","version":"npm run build:ai && git add docs/ai-manifest.json llms.txt llms-full.txt","build:ai":"tsx scripts/build-ai.ts","typecheck":"tsc --noEmit && npm run typecheck:tests","test:coverage":"node --import tsx --test --experimental-test-coverage --test-coverage-exclude='tests/**' tests/*.test.ts","build:watch-ui":"vite build --config src/watch/ui/vite.config.ts","typecheck:docs":"npm run build && tsc -p tsconfig.docs.json","verify:release":"bash scripts/verify-release.sh","typecheck:tests":"tsc --noEmit -p tsconfig.tests.json","build:watch-copy":"mkdir -p dist/watch/ui && cp -R src/watch/ui/dist dist/watch/ui/dist && cp src/watch/watch.config.stub dist/watch/ && cp src/openapi/openapi.config.stub dist/openapi/ && cp src/api/api.config.stub dist/api/ && cp src/billing/billing.config.stub dist/billing/ && cp src/accounts/accounts.config.stub dist/accounts/ && cp src/teams/teams.config.stub dist/teams/"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:00e8e890-1f6d-485c-b130-c69d62e7f3b9"}},"repository":{"url":"git+https://github.com/shaferllc/keel.git","type":"git"},"_npmVersion":"12.0.1","description":"The house framework for Node.js — a service container, providers, routing, JSX views, and a code-generating console.","directories":{},"_nodeVersion":"22.23.1","dependencies":{"zod":"^4.4.3","hono":"^4.6.14","dotenv":"^16.4.7","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vite":"^6.4.3","preact":"^10.29.7","typescript":"^5.7.2","@types/node":"^26.1.1","@libsql/client":"^0.17.4","@hono/node-server":"^1.13.7"},"peerDependencies":{"vite":"^5 || ^6 || ^7","@hono/node-server":"^1.13.7"},"peerDependenciesMeta":{"vite":{"optional":true},"@hono/node-server":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/keel_0.83.5_1783950321263_0.2761498507337574","host":"s3://npm-registry-packages-npm-production"}},"0.83.6":{"name":"@shaferllc/keel","version":"0.83.6","keywords":["framework","typescript","nodejs","hono","service-container","web-framework","edge","cloudflare-workers","mcp","model-context-protocol","ai","llms-txt"],"author":{"name":"Tom Shafer"},"license":"MIT","_id":"@shaferllc/keel@0.83.6","maintainers":[{"name":"tshafer","email":"tj@tjshafer.com"}],"homepage":"https://github.com/shaferllc/keel#readme","bugs":{"url":"https://github.com/shaferllc/keel/issues"},"bin":{"keel-mcp":"bin/keel-mcp.mjs"},"dist":{"shasum":"71c453fb5c25becf24deb44441511b63fc3e0383","tarball":"https://registry.npmjs.org/@shaferllc/keel/-/keel-0.83.6.tgz","fileCount":546,"integrity":"sha512-D4VS7KZsFKrYRmU3VeHAfodsDe+amjFk3RmxkbKUz5cErtWb+Be2g5GtY3aN6KNA+kEvREYg/GkUYJTTAKkyig==","signatures":[{"sig":"MEYCIQCIpRdAAMlsM4gh/Tk6CGb3h3waMrax4ngmwcdsbPVP0QIhAPBxmtrY5/1Uae3S21f4rcEfgtjK9wQjn5jPAgKuHFsA","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@shaferllc%2fkeel@0.83.6","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3146129},"type":"module","exports":{"./api":{"types":"./dist/api/index.d.ts","import":"./dist/api/index.js"},"./cli":{"types":"./dist/core/cli/index.d.ts","import":"./dist/core/cli/index.js"},"./mcp":{"types":"./dist/mcp/server.d.ts","import":"./dist/mcp/server.js"},"./core":{"types":"./dist/core/index.d.ts","import":"./dist/core/index.js"},"./vite":{"types":"./dist/vite/index.d.ts","import":"./dist/vite/index.js"},"./db/d1":{"types":"./dist/db/d1.d.ts","import":"./dist/db/d1.js"},"./db/pg":{"types":"./dist/db/pg.d.ts","import":"./dist/db/pg.js"},"./gates":{"types":"./dist/gates/index.d.ts","import":"./dist/gates/index.js"},"./teams":{"types":"./dist/teams/index.d.ts","import":"./dist/teams/index.js"},"./watch":{"types":"./dist/watch/index.d.ts","import":"./dist/watch/index.js"},"./billing":{"types":"./dist/billing/index.d.ts","import":"./dist/billing/index.js"},"./hosting":{"types":"./dist/hosting/index.d.ts","import":"./dist/hosting/index.js"},"./openapi":{"types":"./dist/openapi/index.d.ts","import":"./dist/openapi/index.js"},"./accounts":{"types":"./dist/accounts/index.d.ts","import":"./dist/accounts/index.js"},"./db/libsql":{"types":"./dist/db/libsql.d.ts","import":"./dist/db/libsql.js"},"./db/d1-http":{"types":"./dist/db/d1-http.d.ts","import":"./dist/db/d1-http.js"},"./package.json":"./package.json"},"gitHead":"71a790def90b3789c7feb41a1dea188f1781b1ef","scripts":{"mcp":"tsx bin/keel-mcp.ts","test":"node --import tsx --test tests/*.test.ts","build":"npm run build:ai && npm run build:watch-ui && rm -rf dist && tsc -p tsconfig.build.json && npm run build:watch-copy","prepare":"npm run build","version":"npm run build:ai && git add docs/ai-manifest.json llms.txt llms-full.txt","build:ai":"tsx scripts/build-ai.ts","typecheck":"tsc --noEmit && npm run typecheck:tests","test:coverage":"node --import tsx --test --experimental-test-coverage --test-coverage-exclude='tests/**' tests/*.test.ts","build:watch-ui":"vite build --config src/watch/ui/vite.config.ts","typecheck:docs":"npm run build && tsc -p tsconfig.docs.json","verify:release":"bash scripts/verify-release.sh","typecheck:tests":"tsc --noEmit -p tsconfig.tests.json","build:watch-copy":"mkdir -p dist/watch/ui && cp -R src/watch/ui/dist dist/watch/ui/dist && cp src/watch/watch.config.stub dist/watch/ && cp src/openapi/openapi.config.stub dist/openapi/ && cp src/api/api.config.stub dist/api/ && cp src/billing/billing.config.stub dist/billing/ && cp src/accounts/accounts.config.stub dist/accounts/ && cp src/teams/teams.config.stub dist/teams/"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:00e8e890-1f6d-485c-b130-c69d62e7f3b9"}},"repository":{"url":"git+https://github.com/shaferllc/keel.git","type":"git"},"_npmVersion":"12.0.1","description":"The house framework for Node.js — a service container, providers, routing, JSX views, and a code-generating console.","directories":{},"_nodeVersion":"22.23.1","dependencies":{"zod":"^4.4.3","hono":"^4.6.14","dotenv":"^16.4.7","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vite":"^6.4.3","preact":"^10.29.7","typescript":"^5.7.2","@types/node":"^26.1.1","@libsql/client":"^0.17.4","@hono/node-server":"^1.13.7"},"peerDependencies":{"vite":"^5 || ^6 || ^7","@hono/node-server":"^1.13.7"},"peerDependenciesMeta":{"vite":{"optional":true},"@hono/node-server":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/keel_0.83.6_1783950516244_0.5431040900054303","host":"s3://npm-registry-packages-npm-production"}},"0.83.7":{"name":"@shaferllc/keel","version":"0.83.7","keywords":["framework","typescript","nodejs","hono","service-container","web-framework","edge","cloudflare-workers","mcp","model-context-protocol","ai","llms-txt"],"author":{"name":"Tom Shafer"},"license":"MIT","_id":"@shaferllc/keel@0.83.7","maintainers":[{"name":"tshafer","email":"tj@tjshafer.com"}],"homepage":"https://github.com/shaferllc/keel#readme","bugs":{"url":"https://github.com/shaferllc/keel/issues"},"bin":{"keel-mcp":"bin/keel-mcp.mjs"},"dist":{"shasum":"509a558288ef1807802c5ba89659ccdf133c57f0","tarball":"https://registry.npmjs.org/@shaferllc/keel/-/keel-0.83.7.tgz","fileCount":547,"integrity":"sha512-YDsV8GexZ66sn7GIglj1TNh2gVjlTFyc/qLX5a0+xA/tDpqupli8xQpRZvcKoTEBT98VKdaGQ47+ZSdAQzC7Ew==","signatures":[{"sig":"MEUCIQDyd9wlZ0iJe065Wu9acKA7BSQqIVQP9gcIetO+4HS98AIgC5PDAmsA7xVPY8Cq0xfqvQd5Rnbufm3hHtBtz4et3/U=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@shaferllc%2fkeel@0.83.7","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3159100},"type":"module","exports":{"./api":{"types":"./dist/api/index.d.ts","import":"./dist/api/index.js"},"./cli":{"types":"./dist/core/cli/index.d.ts","import":"./dist/core/cli/index.js"},"./mcp":{"types":"./dist/mcp/server.d.ts","import":"./dist/mcp/server.js"},"./core":{"types":"./dist/core/index.d.ts","import":"./dist/core/index.js"},"./vite":{"types":"./dist/vite/index.d.ts","import":"./dist/vite/index.js"},"./db/d1":{"types":"./dist/db/d1.d.ts","import":"./dist/db/d1.js"},"./db/pg":{"types":"./dist/db/pg.d.ts","import":"./dist/db/pg.js"},"./gates":{"types":"./dist/gates/index.d.ts","import":"./dist/gates/index.js"},"./teams":{"types":"./dist/teams/index.d.ts","import":"./dist/teams/index.js"},"./watch":{"types":"./dist/watch/index.d.ts","import":"./dist/watch/index.js"},"./billing":{"types":"./dist/billing/index.d.ts","import":"./dist/billing/index.js"},"./hosting":{"types":"./dist/hosting/index.d.ts","import":"./dist/hosting/index.js"},"./openapi":{"types":"./dist/openapi/index.d.ts","import":"./dist/openapi/index.js"},"./accounts":{"types":"./dist/accounts/index.d.ts","import":"./dist/accounts/index.js"},"./db/libsql":{"types":"./dist/db/libsql.d.ts","import":"./dist/db/libsql.js"},"./db/d1-http":{"types":"./dist/db/d1-http.d.ts","import":"./dist/db/d1-http.js"},"./package.json":"./package.json"},"gitHead":"7bc808232fffaf3e482d18830aaff367060669a8","scripts":{"mcp":"tsx bin/keel-mcp.ts","test":"node --import tsx --test tests/*.test.ts","build":"npm run build:ai && npm run build:watch-ui && rm -rf dist && tsc -p tsconfig.build.json && npm run build:watch-copy","prepare":"npm run build","version":"npm run build:ai && git add docs/ai-manifest.json llms.txt llms-full.txt","build:ai":"tsx scripts/build-ai.ts","typecheck":"tsc --noEmit && npm run typecheck:tests","test:coverage":"node --import tsx --test --experimental-test-coverage --test-coverage-exclude='tests/**' tests/*.test.ts","build:watch-ui":"vite build --config src/watch/ui/vite.config.ts","typecheck:docs":"npm run build && tsc -p tsconfig.docs.json","verify:release":"bash scripts/verify-release.sh","typecheck:tests":"tsc --noEmit -p tsconfig.tests.json","build:watch-copy":"mkdir -p dist/watch/ui && cp -R src/watch/ui/dist dist/watch/ui/dist && cp src/watch/watch.config.stub dist/watch/ && cp src/openapi/openapi.config.stub dist/openapi/ && cp src/api/api.config.stub dist/api/ && cp src/billing/billing.config.stub dist/billing/ && cp src/accounts/accounts.config.stub dist/accounts/ && cp src/teams/teams.config.stub dist/teams/"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:00e8e890-1f6d-485c-b130-c69d62e7f3b9"}},"repository":{"url":"git+https://github.com/shaferllc/keel.git","type":"git"},"_npmVersion":"12.0.1","description":"The house framework for Node.js — a service container, providers, routing, JSX views, and a code-generating console.","directories":{},"_nodeVersion":"22.23.1","dependencies":{"zod":"^4.4.3","hono":"^4.6.14","dotenv":"^16.4.7","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vite":"^6.4.3","preact":"^10.29.7","typescript":"^5.7.2","@types/node":"^26.1.1","@libsql/client":"^0.17.4","@hono/node-server":"^1.13.7"},"peerDependencies":{"vite":"^5 || ^6 || ^7","@hono/node-server":"^1.13.7"},"peerDependenciesMeta":{"vite":{"optional":true},"@hono/node-server":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/keel_0.83.7_1783951164373_0.7722210740863236","host":"s3://npm-registry-packages-npm-production"}},"0.83.8":{"name":"@shaferllc/keel","version":"0.83.8","keywords":["framework","typescript","nodejs","hono","service-container","web-framework","edge","cloudflare-workers","mcp","model-context-protocol","ai","llms-txt"],"author":{"name":"Tom Shafer"},"license":"MIT","_id":"@shaferllc/keel@0.83.8","maintainers":[{"name":"tshafer","email":"tj@tjshafer.com"}],"homepage":"https://github.com/shaferllc/keel#readme","bugs":{"url":"https://github.com/shaferllc/keel/issues"},"bin":{"keel-mcp":"bin/keel-mcp.mjs"},"dist":{"shasum":"133cbdae7a34ed50d15aa22b8d92700c339d5a2d","tarball":"https://registry.npmjs.org/@shaferllc/keel/-/keel-0.83.8.tgz","fileCount":549,"integrity":"sha512-OHg/vQoTSpYfgU5z03iVGbyRqh5UhF7ZGtTKlOo/CMjQtzwQtF812/nQuYn3AWKdYedMWM3LEV4fsC9/w+Q0YQ==","signatures":[{"sig":"MEYCIQCOS4WhVUx1JMxf3duz2ObN8uf8/mFg6YpB+nM0MyThbgIhALiBwCQKCxM63V9bz1kMPYHk4lKuysS+NdlQqc14NPzF","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@shaferllc%2fkeel@0.83.8","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3161489},"type":"module","exports":{"./api":{"types":"./dist/api/index.d.ts","import":"./dist/api/index.js"},"./cli":{"types":"./dist/core/cli/index.d.ts","import":"./dist/core/cli/index.js"},"./mcp":{"types":"./dist/mcp/server.d.ts","import":"./dist/mcp/server.js"},"./core":{"types":"./dist/core/index.d.ts","import":"./dist/core/index.js"},"./vite":{"types":"./dist/vite/index.d.ts","import":"./dist/vite/index.js"},"./db/d1":{"types":"./dist/db/d1.d.ts","import":"./dist/db/d1.js"},"./db/pg":{"types":"./dist/db/pg.d.ts","import":"./dist/db/pg.js"},"./gates":{"types":"./dist/gates/index.d.ts","import":"./dist/gates/index.js"},"./teams":{"types":"./dist/teams/index.d.ts","import":"./dist/teams/index.js"},"./watch":{"types":"./dist/watch/index.d.ts","import":"./dist/watch/index.js"},"./billing":{"types":"./dist/billing/index.d.ts","import":"./dist/billing/index.js"},"./hosting":{"types":"./dist/hosting/index.d.ts","import":"./dist/hosting/index.js"},"./openapi":{"types":"./dist/openapi/index.d.ts","import":"./dist/openapi/index.js"},"./accounts":{"types":"./dist/accounts/index.d.ts","import":"./dist/accounts/index.js"},"./db/libsql":{"types":"./dist/db/libsql.d.ts","import":"./dist/db/libsql.js"},"./db/d1-http":{"types":"./dist/db/d1-http.d.ts","import":"./dist/db/d1-http.js"},"./package.json":"./package.json"},"gitHead":"e3936aa8108a6cc359e1ef0efb63d1d430acb753","scripts":{"mcp":"tsx bin/keel-mcp.ts","test":"node --import tsx --test tests/*.test.ts","build":"npm run build:ai && npm run build:watch-ui && rm -rf dist && tsc -p tsconfig.build.json && npm run build:watch-copy","prepare":"npm run build","version":"npm run build:ai && git add docs/ai-manifest.json llms.txt llms-full.txt","build:ai":"tsx scripts/build-ai.ts","typecheck":"tsc --noEmit && npm run typecheck:tests","test:coverage":"node --import tsx --test --experimental-test-coverage --test-coverage-exclude='tests/**' tests/*.test.ts","build:watch-ui":"vite build --config src/watch/ui/vite.config.ts","typecheck:docs":"npm run build && tsc -p tsconfig.docs.json","verify:release":"bash scripts/verify-release.sh","typecheck:tests":"tsc --noEmit -p tsconfig.tests.json","build:watch-copy":"mkdir -p dist/watch/ui && cp -R src/watch/ui/dist dist/watch/ui/dist && cp src/watch/watch.config.stub dist/watch/ && cp src/openapi/openapi.config.stub dist/openapi/ && cp src/api/api.config.stub dist/api/ && cp src/billing/billing.config.stub dist/billing/ && cp src/accounts/accounts.config.stub dist/accounts/ && cp src/teams/teams.config.stub dist/teams/"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:00e8e890-1f6d-485c-b130-c69d62e7f3b9"}},"repository":{"url":"git+https://github.com/shaferllc/keel.git","type":"git"},"_npmVersion":"12.0.1","description":"The house framework for Node.js — a service container, providers, routing, JSX views, and a code-generating console.","directories":{},"_nodeVersion":"22.23.1","dependencies":{"zod":"^4.4.3","hono":"^4.6.14","dotenv":"^16.4.7","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vite":"^6.4.3","preact":"^10.29.7","typescript":"^5.7.2","@types/node":"^26.1.1","@libsql/client":"^0.17.4","@hono/node-server":"^1.13.7"},"peerDependencies":{"vite":"^5 || ^6 || ^7","@hono/node-server":"^1.13.7"},"peerDependenciesMeta":{"vite":{"optional":true},"@hono/node-server":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/keel_0.83.8_1783952379470_0.02210304674934349","host":"s3://npm-registry-packages-npm-production"}},"0.83.9":{"name":"@shaferllc/keel","version":"0.83.9","keywords":["framework","typescript","nodejs","hono","service-container","web-framework","edge","cloudflare-workers","mcp","model-context-protocol","ai","llms-txt"],"author":{"name":"Tom Shafer"},"license":"MIT","_id":"@shaferllc/keel@0.83.9","maintainers":[{"name":"tshafer","email":"tj@tjshafer.com"}],"homepage":"https://github.com/shaferllc/keel#readme","bugs":{"url":"https://github.com/shaferllc/keel/issues"},"bin":{"keel-mcp":"bin/keel-mcp.mjs"},"dist":{"shasum":"662cda4f67573e2ab90f2ba1f0ad289ef50856f2","tarball":"https://registry.npmjs.org/@shaferllc/keel/-/keel-0.83.9.tgz","fileCount":567,"integrity":"sha512-MfAXqKNW/YKfrK+6WvTXWTK5TquFxtc2KylQQ+lN50vwZ5AlAqvaV+6ax7+kFy/rIJ/Jxk3kEAI8Uog9mKHvqQ==","signatures":[{"sig":"MEMCIEIdh2erh9XbPEZjcKlpWUQHflWUsRNSthBpjc+UoncfAh8V5ersGCnfz8Nc/nl09YWYX/6geB6tBR+HdIfkgaVn","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@shaferllc%2fkeel@0.83.9","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3206494},"type":"module","exports":{"./api":{"types":"./dist/api/index.d.ts","import":"./dist/api/index.js"},"./cli":{"types":"./dist/core/cli/index.d.ts","import":"./dist/core/cli/index.js"},"./mcp":{"types":"./dist/mcp/server.d.ts","import":"./dist/mcp/server.js"},"./core":{"types":"./dist/core/index.d.ts","import":"./dist/core/index.js"},"./vite":{"types":"./dist/vite/index.d.ts","import":"./dist/vite/index.js"},"./db/d1":{"types":"./dist/db/d1.d.ts","import":"./dist/db/d1.js"},"./db/pg":{"types":"./dist/db/pg.d.ts","import":"./dist/db/pg.js"},"./gates":{"types":"./dist/gates/index.d.ts","import":"./dist/gates/index.js"},"./teams":{"types":"./dist/teams/index.d.ts","import":"./dist/teams/index.js"},"./watch":{"types":"./dist/watch/index.d.ts","import":"./dist/watch/index.js"},"./billing":{"types":"./dist/billing/index.d.ts","import":"./dist/billing/index.js"},"./hosting":{"types":"./dist/hosting/index.d.ts","import":"./dist/hosting/index.js"},"./openapi":{"types":"./dist/openapi/index.d.ts","import":"./dist/openapi/index.js"},"./accounts":{"types":"./dist/accounts/index.d.ts","import":"./dist/accounts/index.js"},"./db/libsql":{"types":"./dist/db/libsql.d.ts","import":"./dist/db/libsql.js"},"./db/d1-http":{"types":"./dist/db/d1-http.d.ts","import":"./dist/db/d1-http.js"},"./package.json":"./package.json"},"gitHead":"ce75241aefc30a32993617c0e6abfa3fe77a05a2","scripts":{"mcp":"tsx bin/keel-mcp.ts","test":"node --import tsx --test tests/*.test.ts","build":"npm run build:ai && npm run build:watch-ui && rm -rf dist && tsc -p tsconfig.build.json && npm run build:watch-copy","prepare":"npm run build","version":"npm run build:ai && git add docs/ai-manifest.json llms.txt llms-full.txt","build:ai":"tsx scripts/build-ai.ts","typecheck":"tsc --noEmit && npm run typecheck:tests","test:coverage":"node --import tsx --test --experimental-test-coverage --test-coverage-exclude='tests/**' tests/*.test.ts","build:watch-ui":"vite build --config src/watch/ui/vite.config.ts","typecheck:docs":"npm run build && tsc -p tsconfig.docs.json","verify:release":"bash scripts/verify-release.sh","typecheck:tests":"tsc --noEmit -p tsconfig.tests.json","build:watch-copy":"mkdir -p dist/watch/ui && cp -R src/watch/ui/dist dist/watch/ui/dist && cp src/watch/watch.config.stub dist/watch/ && cp src/openapi/openapi.config.stub dist/openapi/ && cp src/api/api.config.stub dist/api/ && cp src/billing/billing.config.stub dist/billing/ && cp src/accounts/accounts.config.stub dist/accounts/ && cp src/teams/teams.config.stub dist/teams/"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:00e8e890-1f6d-485c-b130-c69d62e7f3b9"}},"repository":{"url":"git+https://github.com/shaferllc/keel.git","type":"git"},"_npmVersion":"12.0.1","description":"The house framework for Node.js — a service container, providers, routing, JSX views, and a code-generating console.","directories":{},"_nodeVersion":"22.23.1","dependencies":{"zod":"^4.4.3","hono":"^4.6.14","dotenv":"^16.4.7","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vite":"^6.4.3","preact":"^10.29.7","typescript":"^5.7.2","@types/node":"^26.1.1","@libsql/client":"^0.17.4","@hono/node-server":"^1.13.7"},"peerDependencies":{"vite":"^5 || ^6 || ^7","@hono/node-server":"^1.13.7"},"peerDependenciesMeta":{"vite":{"optional":true},"@hono/node-server":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/keel_0.83.9_1783954395719_0.3964083972205865","host":"s3://npm-registry-packages-npm-production"}},"0.83.10":{"name":"@shaferllc/keel","version":"0.83.10","keywords":["framework","typescript","nodejs","hono","service-container","web-framework","edge","cloudflare-workers","mcp","model-context-protocol","ai","llms-txt"],"author":{"name":"Tom Shafer"},"license":"MIT","_id":"@shaferllc/keel@0.83.10","maintainers":[{"name":"tshafer","email":"tj@tjshafer.com"}],"homepage":"https://github.com/shaferllc/keel#readme","bugs":{"url":"https://github.com/shaferllc/keel/issues"},"bin":{"keel-mcp":"bin/keel-mcp.mjs"},"dist":{"shasum":"d7171d950f72a6c69d1541552159c62a430c75a3","tarball":"https://registry.npmjs.org/@shaferllc/keel/-/keel-0.83.10.tgz","fileCount":572,"integrity":"sha512-PfB4yakgvyu4jUAeneHxxyvSDEju1IRM5+Su1NQlvRKZkSkfsfMWDs4LRQl72a/itS1DLE1gmuJBuf0dSrhk9A==","signatures":[{"sig":"MEQCID7PkfP+Pqi2Cmr/C0OD3s2IK4omTakRsnw3a3nR5XI+AiBrfLhX4q1xb1dq8Odzo3wMhqB2uTQCcLz0IMszsS4ZGA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@shaferllc%2fkeel@0.83.10","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3226605},"type":"module","exports":{"./api":{"types":"./dist/api/index.d.ts","import":"./dist/api/index.js"},"./cli":{"types":"./dist/core/cli/index.d.ts","import":"./dist/core/cli/index.js"},"./mcp":{"types":"./dist/mcp/server.d.ts","import":"./dist/mcp/server.js"},"./core":{"types":"./dist/core/index.d.ts","import":"./dist/core/index.js"},"./vite":{"types":"./dist/vite/index.d.ts","import":"./dist/vite/index.js"},"./db/d1":{"types":"./dist/db/d1.d.ts","import":"./dist/db/d1.js"},"./db/pg":{"types":"./dist/db/pg.d.ts","import":"./dist/db/pg.js"},"./gates":{"types":"./dist/gates/index.d.ts","import":"./dist/gates/index.js"},"./teams":{"types":"./dist/teams/index.d.ts","import":"./dist/teams/index.js"},"./watch":{"types":"./dist/watch/index.d.ts","import":"./dist/watch/index.js"},"./billing":{"types":"./dist/billing/index.d.ts","import":"./dist/billing/index.js"},"./hosting":{"types":"./dist/hosting/index.d.ts","import":"./dist/hosting/index.js"},"./openapi":{"types":"./dist/openapi/index.d.ts","import":"./dist/openapi/index.js"},"./accounts":{"types":"./dist/accounts/index.d.ts","import":"./dist/accounts/index.js"},"./db/libsql":{"types":"./dist/db/libsql.d.ts","import":"./dist/db/libsql.js"},"./db/d1-http":{"types":"./dist/db/d1-http.d.ts","import":"./dist/db/d1-http.js"},"./package.json":"./package.json"},"gitHead":"3f5fead29dde23acfc7b235e50426de182e0e43c","scripts":{"mcp":"tsx bin/keel-mcp.ts","test":"node --import tsx --test tests/*.test.ts","build":"npm run build:ai && npm run build:watch-ui && rm -rf dist && tsc -p tsconfig.build.json && npm run build:watch-copy","prepare":"npm run build","version":"npm run build:ai && git add docs/ai-manifest.json llms.txt llms-full.txt","build:ai":"tsx scripts/build-ai.ts","typecheck":"tsc --noEmit && npm run typecheck:tests","test:coverage":"node --import tsx --test --experimental-test-coverage --test-coverage-exclude='tests/**' tests/*.test.ts","build:watch-ui":"vite build --config src/watch/ui/vite.config.ts","typecheck:docs":"npm run build && tsc -p tsconfig.docs.json","verify:release":"bash scripts/verify-release.sh","typecheck:tests":"tsc --noEmit -p tsconfig.tests.json","build:watch-copy":"mkdir -p dist/watch/ui && cp -R src/watch/ui/dist dist/watch/ui/dist && cp src/watch/watch.config.stub dist/watch/ && cp src/openapi/openapi.config.stub dist/openapi/ && cp src/api/api.config.stub dist/api/ && cp src/billing/billing.config.stub dist/billing/ && cp src/accounts/accounts.config.stub dist/accounts/ && cp src/teams/teams.config.stub dist/teams/"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:00e8e890-1f6d-485c-b130-c69d62e7f3b9"}},"repository":{"url":"git+https://github.com/shaferllc/keel.git","type":"git"},"_npmVersion":"12.0.1","description":"The house framework for Node.js — a service container, providers, routing, JSX views, and a code-generating console.","directories":{},"_nodeVersion":"22.23.1","dependencies":{"zod":"^4.4.3","hono":"^4.6.14","dotenv":"^16.4.7","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vite":"^6.4.3","preact":"^10.29.7","typescript":"^5.7.2","@types/node":"^26.1.1","@libsql/client":"^0.17.4","@hono/node-server":"^1.13.7"},"peerDependencies":{"vite":"^5 || ^6 || ^7","@hono/node-server":"^1.13.7"},"peerDependenciesMeta":{"vite":{"optional":true},"@hono/node-server":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/keel_0.83.10_1783955224704_0.3291960456022376","host":"s3://npm-registry-packages-npm-production"}},"0.83.11":{"name":"@shaferllc/keel","version":"0.83.11","keywords":["framework","typescript","nodejs","hono","service-container","web-framework","edge","cloudflare-workers","mcp","model-context-protocol","ai","llms-txt"],"author":{"name":"Tom Shafer"},"license":"MIT","_id":"@shaferllc/keel@0.83.11","maintainers":[{"name":"tshafer","email":"tj@tjshafer.com"}],"homepage":"https://github.com/shaferllc/keel#readme","bugs":{"url":"https://github.com/shaferllc/keel/issues"},"bin":{"keel-mcp":"bin/keel-mcp.mjs"},"dist":{"shasum":"43858a23ef746c252a778a080c34f55db443136c","tarball":"https://registry.npmjs.org/@shaferllc/keel/-/keel-0.83.11.tgz","fileCount":572,"integrity":"sha512-PvaR41PJ040jblqHoe3Qz1AgZ/rRGUgy/wHPAu6//w8owvkYo4oDuU7ot5XXHYz8TOiCMNdDiEoQNAIhxVP91w==","signatures":[{"sig":"MEUCIQDTv6gREcx4Su9yTzQ/UxlXMrNExtBHwVuplEmhqwIFnAIgeJ0iRZ58pO/ly6Z03i1t6bw3+ROnwC6sn2b3ZSCdNS0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@shaferllc%2fkeel@0.83.11","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3228218},"type":"module","exports":{"./api":{"types":"./dist/api/index.d.ts","import":"./dist/api/index.js"},"./cli":{"types":"./dist/core/cli/index.d.ts","import":"./dist/core/cli/index.js"},"./mcp":{"types":"./dist/mcp/server.d.ts","import":"./dist/mcp/server.js"},"./core":{"types":"./dist/core/index.d.ts","import":"./dist/core/index.js"},"./vite":{"types":"./dist/vite/index.d.ts","import":"./dist/vite/index.js"},"./db/d1":{"types":"./dist/db/d1.d.ts","import":"./dist/db/d1.js"},"./db/pg":{"types":"./dist/db/pg.d.ts","import":"./dist/db/pg.js"},"./gates":{"types":"./dist/gates/index.d.ts","import":"./dist/gates/index.js"},"./teams":{"types":"./dist/teams/index.d.ts","import":"./dist/teams/index.js"},"./watch":{"types":"./dist/watch/index.d.ts","import":"./dist/watch/index.js"},"./billing":{"types":"./dist/billing/index.d.ts","import":"./dist/billing/index.js"},"./hosting":{"types":"./dist/hosting/index.d.ts","import":"./dist/hosting/index.js"},"./openapi":{"types":"./dist/openapi/index.d.ts","import":"./dist/openapi/index.js"},"./accounts":{"types":"./dist/accounts/index.d.ts","import":"./dist/accounts/index.js"},"./db/libsql":{"types":"./dist/db/libsql.d.ts","import":"./dist/db/libsql.js"},"./db/d1-http":{"types":"./dist/db/d1-http.d.ts","import":"./dist/db/d1-http.js"},"./package.json":"./package.json"},"gitHead":"904d97c9679ccacd8bb017192bd74f9da8168474","scripts":{"mcp":"tsx bin/keel-mcp.ts","test":"node --import tsx --test tests/*.test.ts","build":"npm run build:ai && npm run build:watch-ui && rm -rf dist && tsc -p tsconfig.build.json && npm run build:watch-copy","prepare":"npm run build","version":"npm run build:ai && git add docs/ai-manifest.json llms.txt llms-full.txt","build:ai":"tsx scripts/build-ai.ts","typecheck":"tsc --noEmit && npm run typecheck:tests","test:coverage":"node --import tsx --test --experimental-test-coverage --test-coverage-exclude='tests/**' tests/*.test.ts","build:watch-ui":"vite build --config src/watch/ui/vite.config.ts","typecheck:docs":"npm run build && tsc -p tsconfig.docs.json","verify:release":"bash scripts/verify-release.sh","typecheck:tests":"tsc --noEmit -p tsconfig.tests.json","build:watch-copy":"mkdir -p dist/watch/ui && cp -R src/watch/ui/dist dist/watch/ui/dist && cp src/watch/watch.config.stub dist/watch/ && cp src/openapi/openapi.config.stub dist/openapi/ && cp src/api/api.config.stub dist/api/ && cp src/billing/billing.config.stub dist/billing/ && cp src/accounts/accounts.config.stub dist/accounts/ && cp src/teams/teams.config.stub dist/teams/"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:00e8e890-1f6d-485c-b130-c69d62e7f3b9"}},"repository":{"url":"git+https://github.com/shaferllc/keel.git","type":"git"},"_npmVersion":"12.0.1","description":"The house framework for Node.js — a service container, providers, routing, JSX views, and a code-generating console.","directories":{},"_nodeVersion":"22.23.1","dependencies":{"uqr":"^0.1.3","zod":"^4.4.3","hono":"^4.6.14","dotenv":"^16.4.7","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vite":"^6.4.3","preact":"^10.29.7","typescript":"^5.7.2","@types/node":"^26.1.1","@libsql/client":"^0.17.4","@hono/node-server":"^1.13.7"},"peerDependencies":{"vite":"^5 || ^6 || ^7","@hono/node-server":"^1.13.7"},"peerDependenciesMeta":{"vite":{"optional":true},"@hono/node-server":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/keel_0.83.11_1783955432485_0.7468616196013069","host":"s3://npm-registry-packages-npm-production"}},"0.83.12":{"name":"@shaferllc/keel","version":"0.83.12","keywords":["framework","typescript","nodejs","hono","service-container","web-framework","edge","cloudflare-workers","mcp","model-context-protocol","ai","llms-txt"],"author":{"name":"Tom Shafer"},"license":"MIT","_id":"@shaferllc/keel@0.83.12","maintainers":[{"name":"tshafer","email":"tj@tjshafer.com"}],"homepage":"https://github.com/shaferllc/keel#readme","bugs":{"url":"https://github.com/shaferllc/keel/issues"},"bin":{"keel-mcp":"bin/keel-mcp.mjs"},"dist":{"shasum":"483db566cd769b3eaf6f17dabd7ad89257d3a09a","tarball":"https://registry.npmjs.org/@shaferllc/keel/-/keel-0.83.12.tgz","fileCount":572,"integrity":"sha512-pgg6gaRsXgFjh+/aYes4lGiWW1bD8CDlMLqxW1r1yXaimj9h2tSjJQmPo81ufeIQnBLPcFy/AH88nKfS2fIkEA==","signatures":[{"sig":"MEQCIAE3Yf+aVkbZitdDQHA4bwa1nvpGCHp9OnWISEHTgN8JAiApAMSt8TQcBKwLn3TuEuDSp4KUhIo5Io6XgtKHvV28ng==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@shaferllc%2fkeel@0.83.12","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3228463},"type":"module","exports":{"./api":{"types":"./dist/api/index.d.ts","import":"./dist/api/index.js"},"./cli":{"types":"./dist/core/cli/index.d.ts","import":"./dist/core/cli/index.js"},"./mcp":{"types":"./dist/mcp/server.d.ts","import":"./dist/mcp/server.js"},"./core":{"types":"./dist/core/index.d.ts","import":"./dist/core/index.js"},"./vite":{"types":"./dist/vite/index.d.ts","import":"./dist/vite/index.js"},"./db/d1":{"types":"./dist/db/d1.d.ts","import":"./dist/db/d1.js"},"./db/pg":{"types":"./dist/db/pg.d.ts","import":"./dist/db/pg.js"},"./gates":{"types":"./dist/gates/index.d.ts","import":"./dist/gates/index.js"},"./teams":{"types":"./dist/teams/index.d.ts","import":"./dist/teams/index.js"},"./watch":{"types":"./dist/watch/index.d.ts","import":"./dist/watch/index.js"},"./billing":{"types":"./dist/billing/index.d.ts","import":"./dist/billing/index.js"},"./hosting":{"types":"./dist/hosting/index.d.ts","import":"./dist/hosting/index.js"},"./openapi":{"types":"./dist/openapi/index.d.ts","import":"./dist/openapi/index.js"},"./accounts":{"types":"./dist/accounts/index.d.ts","import":"./dist/accounts/index.js"},"./db/libsql":{"types":"./dist/db/libsql.d.ts","import":"./dist/db/libsql.js"},"./db/d1-http":{"types":"./dist/db/d1-http.d.ts","import":"./dist/db/d1-http.js"},"./package.json":"./package.json"},"gitHead":"fe35137310dd0198447a5b807db50dda6d7dde4c","scripts":{"mcp":"tsx bin/keel-mcp.ts","test":"node --import tsx --test tests/*.test.ts","build":"npm run build:ai && npm run build:watch-ui && rm -rf dist && tsc -p tsconfig.build.json && npm run build:watch-copy","prepare":"npm run build","version":"npm run build:ai && git add docs/ai-manifest.json llms.txt llms-full.txt","build:ai":"tsx scripts/build-ai.ts","typecheck":"tsc --noEmit && npm run typecheck:tests","test:coverage":"node --import tsx --test --experimental-test-coverage --test-coverage-exclude='tests/**' tests/*.test.ts","build:watch-ui":"vite build --config src/watch/ui/vite.config.ts","typecheck:docs":"npm run build && tsc -p tsconfig.docs.json","verify:release":"bash scripts/verify-release.sh","typecheck:tests":"tsc --noEmit -p tsconfig.tests.json","build:watch-copy":"mkdir -p dist/watch/ui && cp -R src/watch/ui/dist dist/watch/ui/dist && cp src/watch/watch.config.stub dist/watch/ && cp src/openapi/openapi.config.stub dist/openapi/ && cp src/api/api.config.stub dist/api/ && cp src/billing/billing.config.stub dist/billing/ && cp src/accounts/accounts.config.stub dist/accounts/ && cp src/teams/teams.config.stub dist/teams/"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:00e8e890-1f6d-485c-b130-c69d62e7f3b9"}},"repository":{"url":"git+https://github.com/shaferllc/keel.git","type":"git"},"_npmVersion":"12.0.1","description":"The house framework for Node.js — a service container, providers, routing, JSX views, and a code-generating console.","directories":{},"_nodeVersion":"22.23.1","dependencies":{"uqr":"^0.1.3","zod":"^4.4.3","hono":"^4.6.14","dotenv":"^16.4.7","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vite":"^6.4.3","preact":"^10.29.7","typescript":"^5.7.2","@types/node":"^26.1.1","@libsql/client":"^0.17.4","@hono/node-server":"^1.13.7"},"peerDependencies":{"vite":"^5 || ^6 || ^7","@hono/node-server":"^1.13.7"},"peerDependenciesMeta":{"vite":{"optional":true},"@hono/node-server":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/keel_0.83.12_1783955615597_0.1553266927641832","host":"s3://npm-registry-packages-npm-production"}},"0.83.13":{"name":"@shaferllc/keel","version":"0.83.13","keywords":["framework","typescript","nodejs","hono","service-container","web-framework","edge","cloudflare-workers","mcp","model-context-protocol","ai","llms-txt"],"author":{"name":"Tom Shafer"},"license":"MIT","_id":"@shaferllc/keel@0.83.13","maintainers":[{"name":"tshafer","email":"tj@tjshafer.com"}],"homepage":"https://github.com/shaferllc/keel#readme","bugs":{"url":"https://github.com/shaferllc/keel/issues"},"bin":{"keel-mcp":"bin/keel-mcp.mjs"},"dist":{"shasum":"9d3beab62cbe5cfdc064494e1a0f1eae1e5d0b49","tarball":"https://registry.npmjs.org/@shaferllc/keel/-/keel-0.83.13.tgz","fileCount":572,"integrity":"sha512-yAG/slz51zrNY2KJc82xeLmUWo08M28MQMl8Spnb8zKA2IqvUgn8BdpbA7Fsg9kdgw9C7pafxKtaS+NQErTk+w==","signatures":[{"sig":"MEUCIAzBveM9/5c4tf4Iv3gRyd8jHEuOFQ9d7T/E7DS+K/a6AiEA5Lf0krZmznupjx9iySMrxOe3mHWJX5yIrUgaqCCvy7k=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@shaferllc%2fkeel@0.83.13","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3231028},"type":"module","exports":{"./api":{"types":"./dist/api/index.d.ts","import":"./dist/api/index.js"},"./cli":{"types":"./dist/core/cli/index.d.ts","import":"./dist/core/cli/index.js"},"./mcp":{"types":"./dist/mcp/server.d.ts","import":"./dist/mcp/server.js"},"./core":{"types":"./dist/core/index.d.ts","import":"./dist/core/index.js"},"./vite":{"types":"./dist/vite/index.d.ts","import":"./dist/vite/index.js"},"./db/d1":{"types":"./dist/db/d1.d.ts","import":"./dist/db/d1.js"},"./db/pg":{"types":"./dist/db/pg.d.ts","import":"./dist/db/pg.js"},"./gates":{"types":"./dist/gates/index.d.ts","import":"./dist/gates/index.js"},"./teams":{"types":"./dist/teams/index.d.ts","import":"./dist/teams/index.js"},"./watch":{"types":"./dist/watch/index.d.ts","import":"./dist/watch/index.js"},"./billing":{"types":"./dist/billing/index.d.ts","import":"./dist/billing/index.js"},"./hosting":{"types":"./dist/hosting/index.d.ts","import":"./dist/hosting/index.js"},"./openapi":{"types":"./dist/openapi/index.d.ts","import":"./dist/openapi/index.js"},"./accounts":{"types":"./dist/accounts/index.d.ts","import":"./dist/accounts/index.js"},"./db/libsql":{"types":"./dist/db/libsql.d.ts","import":"./dist/db/libsql.js"},"./db/d1-http":{"types":"./dist/db/d1-http.d.ts","import":"./dist/db/d1-http.js"},"./package.json":"./package.json"},"gitHead":"423809f53cd5e9fae8bdc14844de7abce8908dcc","scripts":{"mcp":"tsx bin/keel-mcp.ts","test":"node --import tsx --test tests/*.test.ts","build":"npm run build:ai && npm run build:watch-ui && rm -rf dist && tsc -p tsconfig.build.json && npm run build:watch-copy","prepare":"npm run build","version":"npm run build:ai && git add docs/ai-manifest.json llms.txt llms-full.txt","build:ai":"tsx scripts/build-ai.ts","typecheck":"tsc --noEmit && npm run typecheck:tests","test:coverage":"node --import tsx --test --experimental-test-coverage --test-coverage-exclude='tests/**' tests/*.test.ts","build:watch-ui":"vite build --config src/watch/ui/vite.config.ts","typecheck:docs":"npm run build && tsc -p tsconfig.docs.json","verify:release":"bash scripts/verify-release.sh","typecheck:tests":"tsc --noEmit -p tsconfig.tests.json","build:watch-copy":"mkdir -p dist/watch/ui && cp -R src/watch/ui/dist dist/watch/ui/dist && cp src/watch/watch.config.stub dist/watch/ && cp src/openapi/openapi.config.stub dist/openapi/ && cp src/api/api.config.stub dist/api/ && cp src/billing/billing.config.stub dist/billing/ && cp src/accounts/accounts.config.stub dist/accounts/ && cp src/teams/teams.config.stub dist/teams/"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:00e8e890-1f6d-485c-b130-c69d62e7f3b9"}},"repository":{"url":"git+https://github.com/shaferllc/keel.git","type":"git"},"_npmVersion":"12.0.1","description":"The house framework for Node.js — a service container, providers, routing, JSX views, and a code-generating console.","directories":{},"_nodeVersion":"22.23.1","dependencies":{"uqr":"^0.1.3","zod":"^4.4.3","hono":"^4.6.14","dotenv":"^16.4.7","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vite":"^6.4.3","preact":"^10.29.7","typescript":"^5.7.2","@types/node":"^26.1.1","@libsql/client":"^0.17.4","@hono/node-server":"^1.13.7"},"peerDependencies":{"vite":"^5 || ^6 || ^7","@hono/node-server":"^1.13.7"},"peerDependenciesMeta":{"vite":{"optional":true},"@hono/node-server":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/keel_0.83.13_1783955877783_0.01309448937160873","host":"s3://npm-registry-packages-npm-production"}},"0.83.14":{"name":"@shaferllc/keel","version":"0.83.14","keywords":["framework","typescript","nodejs","hono","service-container","web-framework","edge","cloudflare-workers","mcp","model-context-protocol","ai","llms-txt"],"author":{"name":"Tom Shafer"},"license":"MIT","_id":"@shaferllc/keel@0.83.14","maintainers":[{"name":"tshafer","email":"tj@tjshafer.com"}],"homepage":"https://github.com/shaferllc/keel#readme","bugs":{"url":"https://github.com/shaferllc/keel/issues"},"bin":{"keel-mcp":"bin/keel-mcp.mjs"},"dist":{"shasum":"120518b4ac080c46bacbda9e35f6f624dbda0b44","tarball":"https://registry.npmjs.org/@shaferllc/keel/-/keel-0.83.14.tgz","fileCount":572,"integrity":"sha512-zTgjFAZpDTjRUpOs7oe8ciM+ZMweRSbhH3rm2WD1jRxqZe00UMeVdFk1ZuMQYUzDf2xgQ64dkPt+yWYXUUVGYw==","signatures":[{"sig":"MEUCIQCYeTDx0F+sR2tPoEq7mPHnpwOld/Gc0d+r4UpM0fdc7gIgR7rGbgAAGSdm8jsdgBX6f9S9VklzKxK7UWhqAz8D4lw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@shaferllc%2fkeel@0.83.14","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3231313},"type":"module","exports":{"./api":{"types":"./dist/api/index.d.ts","import":"./dist/api/index.js"},"./cli":{"types":"./dist/core/cli/index.d.ts","import":"./dist/core/cli/index.js"},"./mcp":{"types":"./dist/mcp/server.d.ts","import":"./dist/mcp/server.js"},"./core":{"types":"./dist/core/index.d.ts","import":"./dist/core/index.js"},"./vite":{"types":"./dist/vite/index.d.ts","import":"./dist/vite/index.js"},"./db/d1":{"types":"./dist/db/d1.d.ts","import":"./dist/db/d1.js"},"./db/pg":{"types":"./dist/db/pg.d.ts","import":"./dist/db/pg.js"},"./gates":{"types":"./dist/gates/index.d.ts","import":"./dist/gates/index.js"},"./teams":{"types":"./dist/teams/index.d.ts","import":"./dist/teams/index.js"},"./watch":{"types":"./dist/watch/index.d.ts","import":"./dist/watch/index.js"},"./billing":{"types":"./dist/billing/index.d.ts","import":"./dist/billing/index.js"},"./hosting":{"types":"./dist/hosting/index.d.ts","import":"./dist/hosting/index.js"},"./openapi":{"types":"./dist/openapi/index.d.ts","import":"./dist/openapi/index.js"},"./accounts":{"types":"./dist/accounts/index.d.ts","import":"./dist/accounts/index.js"},"./db/libsql":{"types":"./dist/db/libsql.d.ts","import":"./dist/db/libsql.js"},"./db/d1-http":{"types":"./dist/db/d1-http.d.ts","import":"./dist/db/d1-http.js"},"./package.json":"./package.json"},"gitHead":"36a88fd65f645205469f4f7d425467f71fb0f758","scripts":{"mcp":"tsx bin/keel-mcp.ts","test":"node --import tsx --test tests/*.test.ts","build":"npm run build:ai && npm run build:watch-ui && rm -rf dist && tsc -p tsconfig.build.json && npm run build:watch-copy","prepare":"npm run build","version":"npm run build:ai && git add docs/ai-manifest.json llms.txt llms-full.txt","build:ai":"tsx scripts/build-ai.ts","typecheck":"tsc --noEmit && npm run typecheck:tests","test:coverage":"node --import tsx --test --experimental-test-coverage --test-coverage-exclude='tests/**' tests/*.test.ts","build:watch-ui":"vite build --config src/watch/ui/vite.config.ts","typecheck:docs":"npm run build && tsc -p tsconfig.docs.json","verify:release":"bash scripts/verify-release.sh","typecheck:tests":"tsc --noEmit -p tsconfig.tests.json","build:watch-copy":"mkdir -p dist/watch/ui && cp -R src/watch/ui/dist dist/watch/ui/dist && cp src/watch/watch.config.stub dist/watch/ && cp src/openapi/openapi.config.stub dist/openapi/ && cp src/api/api.config.stub dist/api/ && cp src/billing/billing.config.stub dist/billing/ && cp src/accounts/accounts.config.stub dist/accounts/ && cp src/teams/teams.config.stub dist/teams/"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:00e8e890-1f6d-485c-b130-c69d62e7f3b9"}},"repository":{"url":"git+https://github.com/shaferllc/keel.git","type":"git"},"_npmVersion":"12.0.1","description":"The house framework for Node.js — a service container, providers, routing, JSX views, and a code-generating console.","directories":{},"_nodeVersion":"22.23.1","dependencies":{"uqr":"^0.1.3","zod":"^4.4.3","hono":"^4.6.14","dotenv":"^16.4.7","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vite":"^6.4.3","preact":"^10.29.7","typescript":"^5.7.2","@types/node":"^26.1.1","@libsql/client":"^0.17.4","@hono/node-server":"^1.13.7"},"peerDependencies":{"vite":"^5 || ^6 || ^7","@hono/node-server":"^1.13.7"},"peerDependenciesMeta":{"vite":{"optional":true},"@hono/node-server":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/keel_0.83.14_1783956069713_0.7998513088497281","host":"s3://npm-registry-packages-npm-production"}},"0.83.15":{"name":"@shaferllc/keel","version":"0.83.15","keywords":["framework","typescript","nodejs","hono","service-container","web-framework","edge","cloudflare-workers","mcp","model-context-protocol","ai","llms-txt"],"author":{"name":"Tom Shafer"},"license":"MIT","_id":"@shaferllc/keel@0.83.15","maintainers":[{"name":"tshafer","email":"tj@tjshafer.com"}],"homepage":"https://github.com/shaferllc/keel#readme","bugs":{"url":"https://github.com/shaferllc/keel/issues"},"bin":{"keel-mcp":"bin/keel-mcp.mjs"},"dist":{"shasum":"e3d79474dd5c093ceeaab0f813bd2f17cb7c2d32","tarball":"https://registry.npmjs.org/@shaferllc/keel/-/keel-0.83.15.tgz","fileCount":574,"integrity":"sha512-xHfqjYnlzDj7NTUVQbxaYGsHgLmfGD2H2+9JZUrN1Du+8i2AOl4Dx2CYUlOVti2wla9C6bjjOAIgIbKDEHerwg==","signatures":[{"sig":"MEUCID+sZs0svnS75pn54HtBOj/ZvEh3tvCjO+qtBOYFvOURAiEAr/ftMdLC6zb0RmTWdEVxf9r4UX0pJoyaXMfnkveu1aw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@shaferllc%2fkeel@0.83.15","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3239891},"type":"module","exports":{"./api":{"types":"./dist/api/index.d.ts","import":"./dist/api/index.js"},"./cli":{"types":"./dist/core/cli/index.d.ts","import":"./dist/core/cli/index.js"},"./mcp":{"types":"./dist/mcp/server.d.ts","import":"./dist/mcp/server.js"},"./core":{"types":"./dist/core/index.d.ts","import":"./dist/core/index.js"},"./vite":{"types":"./dist/vite/index.d.ts","import":"./dist/vite/index.js"},"./db/d1":{"types":"./dist/db/d1.d.ts","import":"./dist/db/d1.js"},"./db/pg":{"types":"./dist/db/pg.d.ts","import":"./dist/db/pg.js"},"./gates":{"types":"./dist/gates/index.d.ts","import":"./dist/gates/index.js"},"./teams":{"types":"./dist/teams/index.d.ts","import":"./dist/teams/index.js"},"./watch":{"types":"./dist/watch/index.d.ts","import":"./dist/watch/index.js"},"./billing":{"types":"./dist/billing/index.d.ts","import":"./dist/billing/index.js"},"./hosting":{"types":"./dist/hosting/index.d.ts","import":"./dist/hosting/index.js"},"./openapi":{"types":"./dist/openapi/index.d.ts","import":"./dist/openapi/index.js"},"./accounts":{"types":"./dist/accounts/index.d.ts","import":"./dist/accounts/index.js"},"./db/libsql":{"types":"./dist/db/libsql.d.ts","import":"./dist/db/libsql.js"},"./db/d1-http":{"types":"./dist/db/d1-http.d.ts","import":"./dist/db/d1-http.js"},"./package.json":"./package.json"},"gitHead":"5d6e951ed77258d12784f07973597a11fc4a7187","scripts":{"mcp":"tsx bin/keel-mcp.ts","test":"node --import tsx --test tests/*.test.ts","build":"npm run build:ai && npm run build:watch-ui && rm -rf dist && tsc -p tsconfig.build.json && npm run build:watch-copy","prepare":"npm run build","version":"npm run build:ai && git add docs/ai-manifest.json llms.txt llms-full.txt","build:ai":"tsx scripts/build-ai.ts","typecheck":"tsc --noEmit && npm run typecheck:tests","test:coverage":"node --import tsx --test --experimental-test-coverage --test-coverage-exclude='tests/**' tests/*.test.ts","build:watch-ui":"vite build --config src/watch/ui/vite.config.ts","typecheck:docs":"npm run build && tsc -p tsconfig.docs.json","verify:release":"bash scripts/verify-release.sh","typecheck:tests":"tsc --noEmit -p tsconfig.tests.json","build:watch-copy":"mkdir -p dist/watch/ui && cp -R src/watch/ui/dist dist/watch/ui/dist && cp src/watch/watch.config.stub dist/watch/ && cp src/openapi/openapi.config.stub dist/openapi/ && cp src/api/api.config.stub dist/api/ && cp src/billing/billing.config.stub dist/billing/ && cp src/accounts/accounts.config.stub dist/accounts/ && cp src/teams/teams.config.stub dist/teams/"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:00e8e890-1f6d-485c-b130-c69d62e7f3b9"}},"repository":{"url":"git+https://github.com/shaferllc/keel.git","type":"git"},"_npmVersion":"12.0.1","description":"The house framework for Node.js — a service container, providers, routing, JSX views, and a code-generating console.","directories":{},"_nodeVersion":"22.23.1","dependencies":{"uqr":"^0.1.3","zod":"^4.4.3","hono":"^4.6.14","dotenv":"^16.4.7","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vite":"^6.4.3","preact":"^10.29.7","typescript":"^5.7.2","@types/node":"^26.1.1","@libsql/client":"^0.17.4","@hono/node-server":"^1.13.7"},"peerDependencies":{"vite":"^5 || ^6 || ^7","@hono/node-server":"^1.13.7"},"peerDependenciesMeta":{"vite":{"optional":true},"@hono/node-server":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/keel_0.83.15_1783956417270_0.008285913545837298","host":"s3://npm-registry-packages-npm-production"}},"0.83.16":{"name":"@shaferllc/keel","version":"0.83.16","keywords":["framework","typescript","nodejs","hono","service-container","web-framework","edge","cloudflare-workers","mcp","model-context-protocol","ai","llms-txt"],"author":{"name":"Tom Shafer"},"license":"MIT","_id":"@shaferllc/keel@0.83.16","maintainers":[{"name":"tshafer","email":"tj@tjshafer.com"}],"homepage":"https://github.com/shaferllc/keel#readme","bugs":{"url":"https://github.com/shaferllc/keel/issues"},"bin":{"keel-mcp":"bin/keel-mcp.mjs"},"dist":{"shasum":"a36cdd8cbed3eb57c21c641c1db2a4a31235a8a2","tarball":"https://registry.npmjs.org/@shaferllc/keel/-/keel-0.83.16.tgz","fileCount":575,"integrity":"sha512-afEEYTYaIGvHr2eAifLoM8SmBkbj8GaD4syr8mT0kdTgBzXMFUd+nYk+XUlCB/xZn3AgUXSZoIanrfgNwm1EFw==","signatures":[{"sig":"MEUCIGxr41qUl3Km+65ZppM5oyZjBmWp+DxBLBAi7WqQqiwjAiEAgEaeQQHoU0rWJG1JzyX/dJHvVTyqs1bAmzzobztGliU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@shaferllc%2fkeel@0.83.16","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3244006},"type":"module","exports":{"./api":{"types":"./dist/api/index.d.ts","import":"./dist/api/index.js"},"./cli":{"types":"./dist/core/cli/index.d.ts","import":"./dist/core/cli/index.js"},"./mcp":{"types":"./dist/mcp/server.d.ts","import":"./dist/mcp/server.js"},"./core":{"types":"./dist/core/index.d.ts","import":"./dist/core/index.js"},"./vite":{"types":"./dist/vite/index.d.ts","import":"./dist/vite/index.js"},"./db/d1":{"types":"./dist/db/d1.d.ts","import":"./dist/db/d1.js"},"./db/pg":{"types":"./dist/db/pg.d.ts","import":"./dist/db/pg.js"},"./gates":{"types":"./dist/gates/index.d.ts","import":"./dist/gates/index.js"},"./teams":{"types":"./dist/teams/index.d.ts","import":"./dist/teams/index.js"},"./watch":{"types":"./dist/watch/index.d.ts","import":"./dist/watch/index.js"},"./billing":{"types":"./dist/billing/index.d.ts","import":"./dist/billing/index.js"},"./hosting":{"types":"./dist/hosting/index.d.ts","import":"./dist/hosting/index.js"},"./openapi":{"types":"./dist/openapi/index.d.ts","import":"./dist/openapi/index.js"},"./accounts":{"types":"./dist/accounts/index.d.ts","import":"./dist/accounts/index.js"},"./db/libsql":{"types":"./dist/db/libsql.d.ts","import":"./dist/db/libsql.js"},"./db/d1-http":{"types":"./dist/db/d1-http.d.ts","import":"./dist/db/d1-http.js"},"./package.json":"./package.json"},"gitHead":"975f5ceed2125384f4f19d2f6d123f1f2bfa2598","scripts":{"mcp":"tsx bin/keel-mcp.ts","test":"node --import tsx --test tests/*.test.ts","build":"npm run build:ai && npm run build:watch-ui && rm -rf dist && tsc -p tsconfig.build.json && npm run build:watch-copy","prepare":"npm run build","version":"npm run build:ai && git add docs/ai-manifest.json llms.txt llms-full.txt","build:ai":"tsx scripts/build-ai.ts","typecheck":"tsc --noEmit && npm run typecheck:tests","test:coverage":"node --import tsx --test --experimental-test-coverage --test-coverage-exclude='tests/**' tests/*.test.ts","build:watch-ui":"vite build --config src/watch/ui/vite.config.ts","typecheck:docs":"npm run build && tsc -p tsconfig.docs.json","verify:release":"bash scripts/verify-release.sh","typecheck:tests":"tsc --noEmit -p tsconfig.tests.json","build:watch-copy":"mkdir -p dist/watch/ui && cp -R src/watch/ui/dist dist/watch/ui/dist && cp src/watch/watch.config.stub dist/watch/ && cp src/openapi/openapi.config.stub dist/openapi/ && cp src/api/api.config.stub dist/api/ && cp src/billing/billing.config.stub dist/billing/ && cp src/accounts/accounts.config.stub dist/accounts/ && cp src/teams/teams.config.stub dist/teams/"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:00e8e890-1f6d-485c-b130-c69d62e7f3b9"}},"repository":{"url":"git+https://github.com/shaferllc/keel.git","type":"git"},"_npmVersion":"12.0.1","description":"The house framework for Node.js — a service container, providers, routing, JSX views, and a code-generating console.","directories":{},"_nodeVersion":"22.23.1","dependencies":{"uqr":"^0.1.3","zod":"^4.4.3","hono":"^4.6.14","dotenv":"^16.4.7","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vite":"^6.4.3","preact":"^10.29.7","typescript":"^5.7.2","@types/node":"^26.1.1","@libsql/client":"^0.17.4","@hono/node-server":"^1.13.7"},"peerDependencies":{"vite":"^5 || ^6 || ^7","@hono/node-server":"^1.13.7"},"peerDependenciesMeta":{"vite":{"optional":true},"@hono/node-server":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/keel_0.83.16_1783956892025_0.5853893346155354","host":"s3://npm-registry-packages-npm-production"}},"0.83.17":{"name":"@shaferllc/keel","version":"0.83.17","keywords":["framework","typescript","nodejs","hono","service-container","web-framework","edge","cloudflare-workers","mcp","model-context-protocol","ai","llms-txt"],"author":{"name":"Tom Shafer"},"license":"MIT","_id":"@shaferllc/keel@0.83.17","maintainers":[{"name":"tshafer","email":"tj@tjshafer.com"}],"homepage":"https://github.com/shaferllc/keel#readme","bugs":{"url":"https://github.com/shaferllc/keel/issues"},"bin":{"keel-mcp":"bin/keel-mcp.mjs"},"dist":{"shasum":"3fe6947846bf18cb81f53232744a2a0520f2cd8a","tarball":"https://registry.npmjs.org/@shaferllc/keel/-/keel-0.83.17.tgz","fileCount":615,"integrity":"sha512-KR+49d+Sm6mbytRsBoBWa2g0VD9KW92ddoe6+y4fwzEm4aNcRYKKAHzBvMiSEXSz4Jb7jmC5vqACnULJUmjCeA==","signatures":[{"sig":"MEUCIBmUR8+cI2bGw/m2mWIbSDPpLvplSym6bphmyMG+pGWjAiEApC0m2y91sCXYdi98BiaDyEFYBwcGbqvYI8AroGbDK7U=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@shaferllc%2fkeel@0.83.17","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3310041},"type":"module","exports":{"./ui":{"types":"./dist/ui/index.d.ts","import":"./dist/ui/index.js"},"./api":{"types":"./dist/api/index.d.ts","import":"./dist/api/index.js"},"./cli":{"types":"./dist/core/cli/index.d.ts","import":"./dist/core/cli/index.js"},"./mcp":{"types":"./dist/mcp/server.d.ts","import":"./dist/mcp/server.js"},"./core":{"types":"./dist/core/index.d.ts","import":"./dist/core/index.js"},"./vite":{"types":"./dist/vite/index.d.ts","import":"./dist/vite/index.js"},"./db/d1":{"types":"./dist/db/d1.d.ts","import":"./dist/db/d1.js"},"./db/pg":{"types":"./dist/db/pg.d.ts","import":"./dist/db/pg.js"},"./gates":{"types":"./dist/gates/index.d.ts","import":"./dist/gates/index.js"},"./teams":{"types":"./dist/teams/index.d.ts","import":"./dist/teams/index.js"},"./watch":{"types":"./dist/watch/index.d.ts","import":"./dist/watch/index.js"},"./ui/css":"./dist/ui/css.css","./billing":{"types":"./dist/billing/index.d.ts","import":"./dist/billing/index.js"},"./hosting":{"types":"./dist/hosting/index.d.ts","import":"./dist/hosting/index.js"},"./openapi":{"types":"./dist/openapi/index.d.ts","import":"./dist/openapi/index.js"},"./accounts":{"types":"./dist/accounts/index.d.ts","import":"./dist/accounts/index.js"},"./db/libsql":{"types":"./dist/db/libsql.d.ts","import":"./dist/db/libsql.js"},"./db/d1-http":{"types":"./dist/db/d1-http.d.ts","import":"./dist/db/d1-http.js"},"./package.json":"./package.json"},"gitHead":"37c04c11bb19a779b7faf988eb4b0d09037541fd","scripts":{"mcp":"tsx bin/keel-mcp.ts","test":"node --import tsx --test tests/*.test.ts","build":"npm run build:ai && npm run build:watch-ui && rm -rf dist && tsc -p tsconfig.build.json && npm run build:watch-copy && npm run build:ui-css","prepare":"npm run build","version":"npm run build:ai && git add docs/ai-manifest.json llms.txt llms-full.txt","build:ai":"tsx scripts/build-ai.ts","typecheck":"tsc --noEmit && npm run typecheck:tests","build:ui-css":"mkdir -p dist/ui && cp src/ui/theme.css src/ui/components.css src/ui/css.css dist/ui/","test:coverage":"node --import tsx --test --experimental-test-coverage --test-coverage-exclude='tests/**' tests/*.test.ts","build:watch-ui":"vite build --config src/watch/ui/vite.config.ts","typecheck:docs":"npm run build && tsc -p tsconfig.docs.json","verify:release":"bash scripts/verify-release.sh","typecheck:tests":"tsc --noEmit -p tsconfig.tests.json","build:watch-copy":"mkdir -p dist/watch/ui && cp -R src/watch/ui/dist dist/watch/ui/dist && cp src/watch/watch.config.stub dist/watch/ && cp src/openapi/openapi.config.stub dist/openapi/ && cp src/api/api.config.stub dist/api/ && cp src/billing/billing.config.stub dist/billing/ && cp src/accounts/accounts.config.stub dist/accounts/ && cp src/teams/teams.config.stub dist/teams/"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:00e8e890-1f6d-485c-b130-c69d62e7f3b9"}},"repository":{"url":"git+https://github.com/shaferllc/keel.git","type":"git"},"_npmVersion":"12.0.1","description":"The house framework for Node.js — a service container, providers, routing, JSX views, and a code-generating console.","directories":{},"_nodeVersion":"22.23.1","dependencies":{"uqr":"^0.1.3","zod":"^4.4.3","hono":"^4.6.14","dotenv":"^16.4.7","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vite":"^6.4.3","preact":"^10.29.7","typescript":"^5.7.2","@types/node":"^26.1.1","@libsql/client":"^0.17.4","@hono/node-server":"^1.13.7"},"peerDependencies":{"vite":"^5 || ^6 || ^7","@hono/node-server":"^1.13.7"},"peerDependenciesMeta":{"vite":{"optional":true},"@hono/node-server":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/keel_0.83.17_1783961415311_0.26712179443070894","host":"s3://npm-registry-packages-npm-production"}},"0.84.0":{"name":"@shaferllc/keel","version":"0.84.0","keywords":["framework","typescript","nodejs","hono","service-container","web-framework","edge","cloudflare-workers","mcp","model-context-protocol","ai","llms-txt"],"author":{"name":"Tom Shafer"},"license":"MIT","_id":"@shaferllc/keel@0.84.0","maintainers":[{"name":"tshafer","email":"tj@tjshafer.com"}],"homepage":"https://github.com/shaferllc/keel#readme","bugs":{"url":"https://github.com/shaferllc/keel/issues"},"bin":{"keel-mcp":"bin/keel-mcp.mjs"},"dist":{"shasum":"301a08b6ae7e3de12eb12521ba0580963b9d5edc","tarball":"https://registry.npmjs.org/@shaferllc/keel/-/keel-0.84.0.tgz","fileCount":618,"integrity":"sha512-tQaQAgM820p8/+Qf7eitzs4fkXRPMAULoLXHpk1FL1OhuZmfDidFl8rZ4vLW2oGjYCDbfvO794nBkseVDoVnvQ==","signatures":[{"sig":"MEUCIQC+lwl8Wt8Ig/8j9WqInPRDKHxRcOBpWj0B8FJ5dhjAYgIgWQ5TG1sB3iIosSOcvQL9Qbt1n17KbDGG8ACLeVz2qVI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@shaferllc%2fkeel@0.84.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3425249},"type":"module","exports":{"./ui":{"types":"./dist/ui/index.d.ts","import":"./dist/ui/index.js"},"./api":{"types":"./dist/api/index.d.ts","import":"./dist/api/index.js"},"./cli":{"types":"./dist/core/cli/index.d.ts","import":"./dist/core/cli/index.js"},"./mcp":{"types":"./dist/mcp/server.d.ts","import":"./dist/mcp/server.js"},"./core":{"types":"./dist/core/index.d.ts","import":"./dist/core/index.js"},"./vite":{"types":"./dist/vite/index.d.ts","import":"./dist/vite/index.js"},"./db/d1":{"types":"./dist/db/d1.d.ts","import":"./dist/db/d1.js"},"./db/pg":{"types":"./dist/db/pg.d.ts","import":"./dist/db/pg.js"},"./gates":{"types":"./dist/gates/index.d.ts","import":"./dist/gates/index.js"},"./teams":{"types":"./dist/teams/index.d.ts","import":"./dist/teams/index.js"},"./watch":{"types":"./dist/watch/index.d.ts","import":"./dist/watch/index.js"},"./ui/css":"./dist/ui/css.css","./billing":{"types":"./dist/billing/index.d.ts","import":"./dist/billing/index.js"},"./hosting":{"types":"./dist/hosting/index.d.ts","import":"./dist/hosting/index.js"},"./openapi":{"types":"./dist/openapi/index.d.ts","import":"./dist/openapi/index.js"},"./accounts":{"types":"./dist/accounts/index.d.ts","import":"./dist/accounts/index.js"},"./db/libsql":{"types":"./dist/db/libsql.d.ts","import":"./dist/db/libsql.js"},"./db/d1-http":{"types":"./dist/db/d1-http.d.ts","import":"./dist/db/d1-http.js"},"./package.json":"./package.json"},"gitHead":"92bca5cc15c9db1191e8f35ebf7306c3b969958b","scripts":{"mcp":"tsx bin/keel-mcp.ts","test":"node --import tsx --test tests/*.test.ts","build":"npm run build:ai && npm run build:watch-ui && rm -rf dist && tsc -p tsconfig.build.json && npm run build:watch-copy && npm run build:ui-css","prepare":"npm run build","version":"npm run build:ai && git add docs/ai-manifest.json llms.txt llms-full.txt","build:ai":"tsx scripts/build-ai.ts","typecheck":"tsc --noEmit && npm run typecheck:tests","build:ui-css":"mkdir -p dist/ui && cp src/ui/theme.css src/ui/components.css src/ui/css.css dist/ui/","test:coverage":"node --import tsx --test --experimental-test-coverage --test-coverage-exclude='tests/**' tests/*.test.ts","build:watch-ui":"vite build --config src/watch/ui/vite.config.ts","typecheck:docs":"npm run build && tsc -p tsconfig.docs.json","verify:release":"bash scripts/verify-release.sh","typecheck:tests":"tsc --noEmit -p tsconfig.tests.json","build:watch-copy":"mkdir -p dist/watch/ui && cp -R src/watch/ui/dist dist/watch/ui/dist && cp src/watch/watch.config.stub dist/watch/ && cp src/openapi/openapi.config.stub dist/openapi/ && cp src/api/api.config.stub dist/api/ && cp src/billing/billing.config.stub dist/billing/ && cp src/accounts/accounts.config.stub dist/accounts/ && cp src/teams/teams.config.stub dist/teams/"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:00e8e890-1f6d-485c-b130-c69d62e7f3b9"}},"repository":{"url":"git+https://github.com/shaferllc/keel.git","type":"git"},"_npmVersion":"12.0.1","description":"The house framework for Node.js — a service container, providers, routing, JSX views, and a code-generating console.","directories":{},"_nodeVersion":"22.23.1","dependencies":{"uqr":"^0.1.3","zod":"^4.4.3","hono":"^4.6.14","dotenv":"^16.4.7","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vite":"^6.4.3","preact":"^10.29.7","typescript":"^5.7.2","@types/node":"^26.1.1","@libsql/client":"^0.17.4","@hono/node-server":"^1.13.7"},"peerDependencies":{"vite":"^5 || ^6 || ^7","@hono/node-server":"^1.13.7"},"peerDependenciesMeta":{"vite":{"optional":true},"@hono/node-server":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/keel_0.84.0_1784128434047_0.38331931273473474","host":"s3://npm-registry-packages-npm-production"}},"0.85.0":{"name":"@shaferllc/keel","version":"0.85.0","keywords":["framework","typescript","nodejs","hono","service-container","web-framework","edge","cloudflare-workers","mcp","model-context-protocol","ai","llms-txt"],"author":{"name":"Tom Shafer"},"license":"MIT","_id":"@shaferllc/keel@0.85.0","maintainers":[{"name":"tshafer","email":"tj@tjshafer.com"}],"homepage":"https://github.com/shaferllc/keel#readme","bugs":{"url":"https://github.com/shaferllc/keel/issues"},"bin":{"keel-mcp":"bin/keel-mcp.mjs"},"dist":{"shasum":"2dfc88d3e2cde455b317126cba2d2c61c3d2db51","tarball":"https://registry.npmjs.org/@shaferllc/keel/-/keel-0.85.0.tgz","fileCount":624,"integrity":"sha512-/jP9Ce7Bcl6NcbMZp+L3GenqZKf4et8v1VRdtyQMeDWj3Sk6gH29WLngrV4sSCaBDmnUVJhzY81xDk3xeCqjtw==","signatures":[{"sig":"MEUCIQC0TxNBVkYqlFsNwzdzgNwhnIpejTUZ1w+wuUP3tiJ6sAIgMs8CMD91WXTT3vARxHG4JTyRClsTWzeXp1QBFvZ9Sf8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@shaferllc%2fkeel@0.85.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3481682},"type":"module","exports":{"./ui":{"types":"./dist/ui/index.d.ts","import":"./dist/ui/index.js"},"./api":{"types":"./dist/api/index.d.ts","import":"./dist/api/index.js"},"./cli":{"types":"./dist/core/cli/index.d.ts","import":"./dist/core/cli/index.js"},"./mcp":{"types":"./dist/mcp/server.d.ts","import":"./dist/mcp/server.js"},"./core":{"types":"./dist/core/index.d.ts","import":"./dist/core/index.js"},"./vite":{"types":"./dist/vite/index.d.ts","import":"./dist/vite/index.js"},"./db/d1":{"types":"./dist/db/d1.d.ts","import":"./dist/db/d1.js"},"./db/pg":{"types":"./dist/db/pg.d.ts","import":"./dist/db/pg.js"},"./gates":{"types":"./dist/gates/index.d.ts","import":"./dist/gates/index.js"},"./teams":{"types":"./dist/teams/index.d.ts","import":"./dist/teams/index.js"},"./watch":{"types":"./dist/watch/index.d.ts","import":"./dist/watch/index.js"},"./ui/css":"./dist/ui/css.css","./billing":{"types":"./dist/billing/index.d.ts","import":"./dist/billing/index.js"},"./hosting":{"types":"./dist/hosting/index.d.ts","import":"./dist/hosting/index.js"},"./openapi":{"types":"./dist/openapi/index.d.ts","import":"./dist/openapi/index.js"},"./accounts":{"types":"./dist/accounts/index.d.ts","import":"./dist/accounts/index.js"},"./db/libsql":{"types":"./dist/db/libsql.d.ts","import":"./dist/db/libsql.js"},"./db/d1-http":{"types":"./dist/db/d1-http.d.ts","import":"./dist/db/d1-http.js"},"./storage/r2":{"types":"./dist/storage/r2.d.ts","import":"./dist/storage/r2.js"},"./storage/s3":{"types":"./dist/storage/s3.d.ts","import":"./dist/storage/s3.js"},"./package.json":"./package.json","./storage/local":{"types":"./dist/storage/local.d.ts","import":"./dist/storage/local.js"}},"gitHead":"18f35fdc2ed474943d7d26688ce6b085c98c9489","scripts":{"mcp":"tsx bin/keel-mcp.ts","test":"node --import tsx --test tests/*.test.ts","build":"npm run build:ai && npm run build:watch-ui && rm -rf dist && tsc -p tsconfig.build.json && npm run build:watch-copy && npm run build:ui-css","prepare":"npm run build","version":"npm run build:ai && git add docs/ai-manifest.json llms.txt llms-full.txt","build:ai":"tsx scripts/build-ai.ts","typecheck":"tsc --noEmit && npm run typecheck:tests","build:ui-css":"mkdir -p dist/ui && cp src/ui/theme.css src/ui/components.css src/ui/css.css dist/ui/","test:coverage":"node --import tsx --test --experimental-test-coverage --test-coverage-exclude='tests/**' tests/*.test.ts","build:watch-ui":"vite build --config src/watch/ui/vite.config.ts","typecheck:docs":"npm run build && tsc -p tsconfig.docs.json","verify:release":"bash scripts/verify-release.sh","typecheck:tests":"tsc --noEmit -p tsconfig.tests.json","build:watch-copy":"mkdir -p dist/watch/ui && cp -R src/watch/ui/dist dist/watch/ui/dist && cp src/watch/watch.config.stub dist/watch/ && cp src/openapi/openapi.config.stub dist/openapi/ && cp src/api/api.config.stub dist/api/ && cp src/billing/billing.config.stub dist/billing/ && cp src/accounts/accounts.config.stub dist/accounts/ && cp src/teams/teams.config.stub dist/teams/"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:00e8e890-1f6d-485c-b130-c69d62e7f3b9"}},"repository":{"url":"git+https://github.com/shaferllc/keel.git","type":"git"},"_npmVersion":"12.0.1","description":"The house framework for Node.js — a service container, providers, routing, JSX views, and a code-generating console.","directories":{},"_nodeVersion":"22.23.1","dependencies":{"uqr":"^0.1.3","zod":"^4.4.3","hono":"^4.6.14","dotenv":"^16.4.7","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vite":"^6.4.3","preact":"^10.29.7","typescript":"^5.7.2","@types/node":"^26.1.1","@libsql/client":"^0.17.4","@hono/node-server":"^1.13.7"},"peerDependencies":{"vite":"^5 || ^6 || ^7","@hono/node-server":"^1.13.7"},"peerDependenciesMeta":{"vite":{"optional":true},"@hono/node-server":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/keel_0.85.0_1784640753873_0.9787431629089134","host":"s3://npm-registry-packages-npm-production"}},"0.85.1":{"name":"@shaferllc/keel","version":"0.85.1","keywords":["framework","typescript","nodejs","hono","service-container","web-framework","edge","cloudflare-workers","mcp","model-context-protocol","ai","llms-txt"],"author":{"name":"Tom Shafer"},"license":"MIT","_id":"@shaferllc/keel@0.85.1","maintainers":[{"name":"tshafer","email":"tj@tjshafer.com"}],"homepage":"https://github.com/shaferllc/keel#readme","bugs":{"url":"https://github.com/shaferllc/keel/issues"},"bin":{"keel-mcp":"bin/keel-mcp.mjs"},"dist":{"shasum":"389bb1461ca79a978810c5a29d5996878e8745f5","tarball":"https://registry.npmjs.org/@shaferllc/keel/-/keel-0.85.1.tgz","fileCount":624,"integrity":"sha512-b2JcLpIy9wI/YRlBrMmfma/WfuvSET4dya/RfS/NWxsp3znHHK2qTS6ddFhCx06+S9jOEorgTxGOC27RLYCaBQ==","signatures":[{"sig":"MEUCIQC8h9QWU/8EgAwwUnO1iANmkVh2SJZsjJjMj9LyDkzSjAIgV/ErCJ09PwptzJPOs1ILktqsyUdFRuF7VdpK4AD/DJE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@shaferllc%2fkeel@0.85.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3492385},"type":"module","exports":{"./ui":{"types":"./dist/ui/index.d.ts","import":"./dist/ui/index.js"},"./api":{"types":"./dist/api/index.d.ts","import":"./dist/api/index.js"},"./cli":{"types":"./dist/core/cli/index.d.ts","import":"./dist/core/cli/index.js"},"./mcp":{"types":"./dist/mcp/server.d.ts","import":"./dist/mcp/server.js"},"./core":{"types":"./dist/core/index.d.ts","import":"./dist/core/index.js"},"./vite":{"types":"./dist/vite/index.d.ts","import":"./dist/vite/index.js"},"./db/d1":{"types":"./dist/db/d1.d.ts","import":"./dist/db/d1.js"},"./db/pg":{"types":"./dist/db/pg.d.ts","import":"./dist/db/pg.js"},"./gates":{"types":"./dist/gates/index.d.ts","import":"./dist/gates/index.js"},"./teams":{"types":"./dist/teams/index.d.ts","import":"./dist/teams/index.js"},"./watch":{"types":"./dist/watch/index.d.ts","import":"./dist/watch/index.js"},"./ui/css":"./dist/ui/css.css","./billing":{"types":"./dist/billing/index.d.ts","import":"./dist/billing/index.js"},"./hosting":{"types":"./dist/hosting/index.d.ts","import":"./dist/hosting/index.js"},"./openapi":{"types":"./dist/openapi/index.d.ts","import":"./dist/openapi/index.js"},"./accounts":{"types":"./dist/accounts/index.d.ts","import":"./dist/accounts/index.js"},"./db/libsql":{"types":"./dist/db/libsql.d.ts","import":"./dist/db/libsql.js"},"./db/d1-http":{"types":"./dist/db/d1-http.d.ts","import":"./dist/db/d1-http.js"},"./storage/r2":{"types":"./dist/storage/r2.d.ts","import":"./dist/storage/r2.js"},"./storage/s3":{"types":"./dist/storage/s3.d.ts","import":"./dist/storage/s3.js"},"./package.json":"./package.json","./storage/local":{"types":"./dist/storage/local.d.ts","import":"./dist/storage/local.js"}},"gitHead":"d9a8ba5e7bb4a043ce48385f4a8d196b71979c5d","scripts":{"mcp":"tsx bin/keel-mcp.ts","test":"node --import tsx --test tests/*.test.ts","build":"npm run build:ai && npm run build:watch-ui && rm -rf dist && tsc -p tsconfig.build.json && npm run build:watch-copy && npm run build:ui-css","prepare":"npm run build","version":"npm run build:ai && git add docs/ai-manifest.json llms.txt llms-full.txt","build:ai":"tsx scripts/build-ai.ts","typecheck":"tsc --noEmit && npm run typecheck:tests","build:ui-css":"mkdir -p dist/ui && cp src/ui/theme.css src/ui/components.css src/ui/css.css dist/ui/","test:coverage":"node --import tsx --test --experimental-test-coverage --test-coverage-exclude='tests/**' tests/*.test.ts","build:watch-ui":"vite build --config src/watch/ui/vite.config.ts","typecheck:docs":"npm run build && tsc -p tsconfig.docs.json","verify:release":"bash scripts/verify-release.sh","typecheck:tests":"tsc --noEmit -p tsconfig.tests.json","build:watch-copy":"mkdir -p dist/watch/ui && cp -R src/watch/ui/dist dist/watch/ui/dist && cp src/watch/watch.config.stub dist/watch/ && cp src/openapi/openapi.config.stub dist/openapi/ && cp src/api/api.config.stub dist/api/ && cp src/billing/billing.config.stub dist/billing/ && cp src/accounts/accounts.config.stub dist/accounts/ && cp src/teams/teams.config.stub dist/teams/"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:00e8e890-1f6d-485c-b130-c69d62e7f3b9"}},"repository":{"url":"git+https://github.com/shaferllc/keel.git","type":"git"},"_npmVersion":"12.0.1","description":"The house framework for Node.js — a service container, providers, routing, JSX views, and a code-generating console.","directories":{},"_nodeVersion":"22.23.1","dependencies":{"uqr":"^0.1.3","zod":"^4.4.3","hono":"^4.6.14","dotenv":"^16.4.7","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vite":"^6.4.3","preact":"^10.29.7","typescript":"^5.7.2","@types/node":"^26.1.1","@libsql/client":"^0.17.4","@hono/node-server":"^1.13.7"},"peerDependencies":{"vite":"^5 || ^6 || ^7","@hono/node-server":"^1.13.7"},"peerDependenciesMeta":{"vite":{"optional":true},"@hono/node-server":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/keel_0.85.1_1784643814570_0.6113448702783699","host":"s3://npm-registry-packages-npm-production"}},"0.86.0":{"name":"@shaferllc/keel","version":"0.86.0","keywords":["framework","typescript","nodejs","hono","service-container","web-framework","edge","cloudflare-workers","mcp","model-context-protocol","ai","llms-txt"],"author":{"name":"Tom Shafer"},"license":"MIT","_id":"@shaferllc/keel@0.86.0","maintainers":[{"name":"tshafer","email":"tj@tjshafer.com"}],"homepage":"https://github.com/shaferllc/keel#readme","bugs":{"url":"https://github.com/shaferllc/keel/issues"},"bin":{"keel-mcp":"bin/keel-mcp.mjs"},"dist":{"shasum":"464b1987deb3a7743eff1157c7b7f319efc70b1d","tarball":"https://registry.npmjs.org/@shaferllc/keel/-/keel-0.86.0.tgz","fileCount":628,"integrity":"sha512-C2KiCVh79/ZkcDiktNtodRX2O1RvilUfJbdWy55M6facbryzLaAbbrccSItMq7dPdiwSUa/+hLtpKHi+tpc1bQ==","signatures":[{"sig":"MEUCIQDxWBVK/yyQ6h693YYaHHklPcMwxh5oUF2Loe7G7i4LwwIgHqtaPUcjg13nGminY1rU5dR0ma7jkK9DqYjAafgsHpM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@shaferllc%2fkeel@0.86.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3542684},"type":"module","exports":{"./ui":{"types":"./dist/ui/index.d.ts","import":"./dist/ui/index.js"},"./api":{"types":"./dist/api/index.d.ts","import":"./dist/api/index.js"},"./cli":{"types":"./dist/core/cli/index.d.ts","import":"./dist/core/cli/index.js"},"./mcp":{"types":"./dist/mcp/server.d.ts","import":"./dist/mcp/server.js"},"./core":{"types":"./dist/core/index.d.ts","import":"./dist/core/index.js"},"./vite":{"types":"./dist/vite/index.d.ts","import":"./dist/vite/index.js"},"./db/d1":{"types":"./dist/db/d1.d.ts","import":"./dist/db/d1.js"},"./db/pg":{"types":"./dist/db/pg.d.ts","import":"./dist/db/pg.js"},"./gates":{"types":"./dist/gates/index.d.ts","import":"./dist/gates/index.js"},"./teams":{"types":"./dist/teams/index.d.ts","import":"./dist/teams/index.js"},"./watch":{"types":"./dist/watch/index.d.ts","import":"./dist/watch/index.js"},"./ui/css":"./dist/ui/css.css","./billing":{"types":"./dist/billing/index.d.ts","import":"./dist/billing/index.js"},"./hosting":{"types":"./dist/hosting/index.d.ts","import":"./dist/hosting/index.js"},"./openapi":{"types":"./dist/openapi/index.d.ts","import":"./dist/openapi/index.js"},"./accounts":{"types":"./dist/accounts/index.d.ts","import":"./dist/accounts/index.js"},"./db/libsql":{"types":"./dist/db/libsql.d.ts","import":"./dist/db/libsql.js"},"./db/d1-http":{"types":"./dist/db/d1-http.d.ts","import":"./dist/db/d1-http.js"},"./storage/r2":{"types":"./dist/storage/r2.d.ts","import":"./dist/storage/r2.js"},"./storage/s3":{"types":"./dist/storage/s3.d.ts","import":"./dist/storage/s3.js"},"./package.json":"./package.json","./storage/local":{"types":"./dist/storage/local.d.ts","import":"./dist/storage/local.js"}},"gitHead":"07377babe77c33c13fec75ddd7ff92e1ff4d6868","scripts":{"mcp":"tsx bin/keel-mcp.ts","test":"node --import tsx --test tests/*.test.ts","build":"npm run build:ai && npm run build:watch-ui && rm -rf dist && tsc -p tsconfig.build.json && npm run build:watch-copy && npm run build:ui-css","prepare":"npm run build","version":"npm run build:ai && git add docs/ai-manifest.json llms.txt llms-full.txt","build:ai":"tsx scripts/build-ai.ts","typecheck":"tsc --noEmit && npm run typecheck:tests","build:ui-css":"mkdir -p dist/ui && cp src/ui/theme.css src/ui/components.css src/ui/css.css dist/ui/","test:coverage":"node --import tsx --test --experimental-test-coverage --test-coverage-exclude='tests/**' tests/*.test.ts","build:watch-ui":"vite build --config src/watch/ui/vite.config.ts","typecheck:docs":"npm run build && tsc -p tsconfig.docs.json","verify:release":"bash scripts/verify-release.sh","typecheck:tests":"tsc --noEmit -p tsconfig.tests.json","build:watch-copy":"mkdir -p dist/watch/ui && cp -R src/watch/ui/dist dist/watch/ui/dist && cp src/watch/watch.config.stub dist/watch/ && cp src/openapi/openapi.config.stub dist/openapi/ && cp src/api/api.config.stub dist/api/ && cp src/billing/billing.config.stub dist/billing/ && cp src/accounts/accounts.config.stub dist/accounts/ && cp src/teams/teams.config.stub dist/teams/"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:00e8e890-1f6d-485c-b130-c69d62e7f3b9"}},"repository":{"url":"git+https://github.com/shaferllc/keel.git","type":"git"},"_npmVersion":"12.0.1","description":"The house framework for Node.js — a service container, providers, routing, JSX views, and a code-generating console.","directories":{},"_nodeVersion":"22.23.1","dependencies":{"uqr":"^0.1.3","zod":"^4.4.3","hono":"^4.6.14","dotenv":"^16.4.7","@modelcontextprotocol/sdk":"^1.29.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.2","vite":"^6.4.3","preact":"^10.29.7","typescript":"^5.7.2","@types/node":"^26.1.1","@libsql/client":"^0.17.4","@hono/node-server":"^1.13.7"},"peerDependencies":{"vite":"^5 || ^6 || ^7","@hono/node-server":"^1.13.7"},"peerDependenciesMeta":{"vite":{"optional":true},"@hono/node-server":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/keel_0.86.0_1784646430664_0.8401268382254952","host":"s3://npm-registry-packages-npm-production"}},"0.87.0":{"name":"@shaferllc/keel","version":"0.87.0","type":"module","description":"The house framework for Node.js — a service container, providers, routing, JSX views, and a code-generating console.","license":"MIT","author":{"name":"Tom Shafer"},"homepage":"https://github.com/shaferllc/keel#readme","repository":{"type":"git","url":"git+https://github.com/shaferllc/keel.git"},"keywords":["framework","typescript","nodejs","hono","service-container","web-framework","edge","cloudflare-workers","mcp","model-context-protocol","ai","llms-txt"],"exports":{"./core":{"types":"./dist/core/index.d.ts","import":"./dist/core/index.js"},"./vite":{"types":"./dist/vite/index.d.ts","import":"./dist/vite/index.js"},"./db/d1":{"types":"./dist/db/d1.d.ts","import":"./dist/db/d1.js"},"./db/d1-http":{"types":"./dist/db/d1-http.d.ts","import":"./dist/db/d1-http.js"},"./db/pg":{"types":"./dist/db/pg.d.ts","import":"./dist/db/pg.js"},"./db/libsql":{"types":"./dist/db/libsql.d.ts","import":"./dist/db/libsql.js"},"./storage/local":{"types":"./dist/storage/local.d.ts","import":"./dist/storage/local.js"},"./storage/s3":{"types":"./dist/storage/s3.d.ts","import":"./dist/storage/s3.js"},"./storage/r2":{"types":"./dist/storage/r2.d.ts","import":"./dist/storage/r2.js"},"./mcp":{"types":"./dist/mcp/server.d.ts","import":"./dist/mcp/server.js"},"./watch":{"types":"./dist/watch/index.d.ts","import":"./dist/watch/index.js"},"./openapi":{"types":"./dist/openapi/index.d.ts","import":"./dist/openapi/index.js"},"./api":{"types":"./dist/api/index.d.ts","import":"./dist/api/index.js"},"./accounts":{"types":"./dist/accounts/index.d.ts","import":"./dist/accounts/index.js"},"./teams":{"types":"./dist/teams/index.d.ts","import":"./dist/teams/index.js"},"./billing":{"types":"./dist/billing/index.d.ts","import":"./dist/billing/index.js"},"./gates":{"types":"./dist/gates/index.d.ts","import":"./dist/gates/index.js"},"./hosting":{"types":"./dist/hosting/index.d.ts","import":"./dist/hosting/index.js"},"./ui":{"types":"./dist/ui/index.d.ts","import":"./dist/ui/index.js"},"./ui/css":"./dist/ui/css.css","./ui/fonts":"./dist/ui/fonts.css","./ui/fonts/*":"./dist/ui/fonts/*","./cli":{"types":"./dist/core/cli/index.d.ts","import":"./dist/core/cli/index.js"},"./package.json":"./package.json"},"bin":{"keel-mcp":"bin/keel-mcp.mjs"},"publishConfig":{"access":"public"},"scripts":{"mcp":"tsx bin/keel-mcp.ts","typecheck":"tsc --noEmit && npm run typecheck:tests","typecheck:docs":"npm run build && tsc -p tsconfig.docs.json","test":"node --import tsx --test tests/*.test.ts","test:coverage":"node --import tsx --test --experimental-test-coverage --test-coverage-exclude='tests/**' tests/*.test.ts","build:ai":"tsx scripts/build-ai.ts","build:watch-ui":"vite build --config src/watch/ui/vite.config.ts","build:watch-copy":"mkdir -p dist/watch/ui && cp -R src/watch/ui/dist dist/watch/ui/dist && cp src/watch/watch.config.stub dist/watch/ && cp src/openapi/openapi.config.stub dist/openapi/ && cp src/api/api.config.stub dist/api/ && cp src/billing/billing.config.stub dist/billing/ && cp src/accounts/accounts.config.stub dist/accounts/ && cp src/teams/teams.config.stub dist/teams/","build:ui-css":"mkdir -p dist/ui/fonts && cp src/ui/theme.css src/ui/components.css src/ui/css.css src/ui/fonts.css dist/ui/ && cp src/ui/fonts/* dist/ui/fonts/","build:specimen":"tsx scripts/build-specimen.ts","build":"npm run build:ai && npm run build:watch-ui && rm -rf dist && tsc -p tsconfig.build.json && npm run build:watch-copy && npm run build:ui-css","prepare":"npm run build","typecheck:tests":"tsc --noEmit -p tsconfig.tests.json","verify:release":"bash scripts/verify-release.sh","version":"npm run build:ai && git add docs/ai-manifest.json llms.txt llms-full.txt"},"dependencies":{"@modelcontextprotocol/sdk":"^1.29.0","dotenv":"^16.4.7","hono":"^4.6.14","uqr":"^0.1.3","zod":"^4.4.3"},"peerDependencies":{"@hono/node-server":"^1.13.7","vite":"^5 || ^6 || ^7"},"peerDependenciesMeta":{"vite":{"optional":true},"@hono/node-server":{"optional":true}},"devDependencies":{"@hono/node-server":"^1.13.7","@libsql/client":"^0.17.4","@types/node":"^26.1.1","preact":"^10.29.7","tsx":"^4.19.2","typescript":"^5.7.2","vite":"^6.4.3"},"gitHead":"8060eaf97fdb3468a764933754fd63729b96c1a3","_id":"@shaferllc/keel@0.87.0","bugs":{"url":"https://github.com/shaferllc/keel/issues"},"_nodeVersion":"22.23.1","_npmVersion":"12.0.1","dist":{"integrity":"sha512-BZUs9mgLnCh68blH+EvTmwfpKjES1B2CZedPQSw0qBe2wviF3JnZ+hQJ2MRDGcx6Hx7FCfvDMEssN7IVyClaLg==","shasum":"0298d3d5294878324f2a7041ba7bba6167587934","tarball":"https://registry.npmjs.org/@shaferllc/keel/-/keel-0.87.0.tgz","fileCount":650,"unpackedSize":3748202,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@shaferllc%2fkeel@0.87.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCICwOluR8muyQUXciEhbf11OfCA0FA8IoJLpq1rsGVA5RAiEA17UYq6eMwrsJB76YXowqAuIobZeaGhw165hpQXkhrv8="}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:00e8e890-1f6d-485c-b130-c69d62e7f3b9"}},"directories":{},"maintainers":[{"name":"tshafer","email":"tj@tjshafer.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/keel_0.87.0_1784813364941_0.6550643479628828"},"_hasShrinkwrap":false}},"time":{"created":"2026-07-10T20:10:46.538Z","modified":"2026-07-23T13:29:25.446Z","0.12.0":"2026-07-10T20:10:46.873Z","0.35.0":"2026-07-11T00:50:16.923Z","0.36.0":"2026-07-11T05:16:56.253Z","0.58.0":"2026-07-11T18:12:47.920Z","0.59.0":"2026-07-11T18:38:17.830Z","0.66.0":"2026-07-11T20:07:57.352Z","0.68.0":"2026-07-12T03:20:43.346Z","0.74.0":"2026-07-12T05:46:37.268Z","0.77.0":"2026-07-12T06:35:45.470Z","0.78.0":"2026-07-12T06:40:41.224Z","0.78.2":"2026-07-12T06:53:15.659Z","0.79.0":"2026-07-12T07:10:27.212Z","0.80.0":"2026-07-12T16:15:12.854Z","0.81.0":"2026-07-12T17:05:06.916Z","0.81.1":"2026-07-12T17:12:20.639Z","0.81.2":"2026-07-12T17:22:27.570Z","0.82.0":"2026-07-12T17:36:52.244Z","0.83.0":"2026-07-12T17:52:56.296Z","0.83.1":"2026-07-12T18:02:52.813Z","0.83.2":"2026-07-13T01:58:20.456Z","0.83.3":"2026-07-13T02:01:05.813Z","0.83.4":"2026-07-13T02:10:52.771Z","0.83.5":"2026-07-13T13:45:21.457Z","0.83.6":"2026-07-13T13:48:36.396Z","0.83.7":"2026-07-13T13:59:24.603Z","0.83.8":"2026-07-13T14:19:39.681Z","0.83.9":"2026-07-13T14:53:15.893Z","0.83.10":"2026-07-13T15:07:04.908Z","0.83.11":"2026-07-13T15:10:32.706Z","0.83.12":"2026-07-13T15:13:35.777Z","0.83.13":"2026-07-13T15:17:57.933Z","0.83.14":"2026-07-13T15:21:09.968Z","0.83.15":"2026-07-13T15:26:57.482Z","0.83.16":"2026-07-13T15:34:52.184Z","0.83.17":"2026-07-13T16:50:15.511Z","0.84.0":"2026-07-15T15:13:54.243Z","0.85.0":"2026-07-21T13:32:34.044Z","0.85.1":"2026-07-21T14:23:34.775Z","0.86.0":"2026-07-21T15:07:10.858Z","0.87.0":"2026-07-23T13:29:25.112Z"},"bugs":{"url":"https://github.com/shaferllc/keel/issues"},"author":{"name":"Tom Shafer"},"license":"MIT","homepage":"https://github.com/shaferllc/keel#readme","keywords":["framework","typescript","nodejs","hono","service-container","web-framework","edge","cloudflare-workers","mcp","model-context-protocol","ai","llms-txt"],"repository":{"type":"git","url":"git+https://github.com/shaferllc/keel.git"},"description":"The house framework for Node.js — a service container, providers, routing, JSX views, and a code-generating console.","maintainers":[{"name":"tshafer","email":"tj@tjshafer.com"}],"readme":"<div align=\"center\">\n\n# Keel ⚓\n\n**The house framework for Node.js.**\n\nTypeScript · a real service container · convention-driven structure · a code-generating console.\n\n[![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](./LICENSE)\n[![Node](https://img.shields.io/badge/node-%E2%89%A522-brightgreen.svg)](https://nodejs.org)\n[![TypeScript](https://img.shields.io/badge/TypeScript-5.7-3178c6.svg)](https://www.typescriptlang.org)\n\n[Getting Started](./docs/getting-started.md) ·\n[Container](./docs/container.md) ·\n[Routing](./docs/routing.md) ·\n[Providers](./docs/providers.md) ·\n[Console](./docs/console.md)\n\n</div>\n\n---\n\nKeel gives you the ergonomics that make you productive — a service container,\nservice providers, dot-notation config, expressive routing, and a\ncode-generating console — on a modern TypeScript stack. [Hono](https://hono.dev)\npowers the HTTP layer under the hood; everything above it is Keel's.\n\nIt is a **house framework**: small enough to read in an afternoon, opinionated\nenough to ship on, and yours to extend.\n\n```ts\n// routes/web.ts\nrouter.get(\"/\", [HomeController, \"index\"]);\nrouter.get(\"/hello/:name\", (c) => c.text(`Hello, ${c.req.param(\"name\")}!`));\n```\n\n```ts\n// A controller — resolved from the container, so it gets dependency injection\nexport class HomeController {\n  constructor(private app: Container) {}\n\n  index(c: Ctx) {\n    return c.json({ app: config(\"app.name\") });\n  }\n}\n```\n\n## Why Keel?\n\n- **A real service container.** `bind` / `singleton` / `instance` / `make`.\n  Everything resolves through it — the pattern that keeps apps testable and\n  composable.\n- **Service providers.** A `register()` → `boot()` lifecycle to configure the\n  app in one place.\n- **Convention over configuration.** `app/`, `config/`, `routes/`, `bootstrap/`\n  — you always know where things live.\n- **A code-generating console.** `keel serve`, `keel routes`, and `make:*`\n  generators.\n- **Typed end to end.** Strict TypeScript, no build step in dev (powered by\n  `tsx`).\n- **Thin and legible.** The whole framework is a few hundred lines in\n  `src/core/`. No magic you can't read.\n\n## Two pieces: the framework and your app\n\nKeel is a **library** you install. New apps come from the generator (templates\nship inside the package so they cannot lag the framework):\n\n```bash\nnpm create keeljs@latest my-app\ncd my-app && npm install && npm run dev\n```\n\nEnd-to-end (local → Cloudflare or optional Keel Cloud):\n[From install to deploy](./docs/from-install-to-deploy.md).\n\n**Deploy on `*.keeljs.cloud` from your IDE** (same `keel-mcp` + a Cloud token):\n[Keel Cloud — deploy from MCP](./docs/keel-cloud.md).\n\n| Repo | Role |\n|------|------|\n| [`shaferllc/keel`](https://github.com/shaferllc/keel) (this repo) | The framework. Published as `@shaferllc/keel`. |\n| Your app (via `create-keeljs`) | Routes, models, views — depends on `@shaferllc/keel`. |\n\n## Install in your app\n\n```bash\nnpm create keeljs@latest my-app\n# or, into an existing project:\nnpm install @shaferllc/keel\n```\n\n```ts\nimport { Application, Router, config } from \"@shaferllc/keel/core\";\n```\n\n## Hack on the framework itself\n\n```bash\ngit clone https://github.com/shaferllc/keel.git\ncd keel\nnpm install\nnpm test\nnpm run typecheck\nnpm run build\nnpm run verify:release\n```\n\nPoint a generated kit at your checkout with\n`\"@shaferllc/keel\": \"file:../keel\"` while developing.\n\n## The console\n\n```bash\nkeel routes                         # list every registered route\nkeel serve --port 8080              # start the server on a chosen port\nkeel make:controller Post           # -> app/Controllers/PostController.ts\nkeel make:provider Billing          # -> app/Providers/BillingServiceProvider.ts\nkeel make:middleware Auth           # -> app/Http/Middleware/authMiddleware.ts\nkeel make:page users/[id]           # -> resources/pages/users/[id].tsx\nkeel make:command greet             # -> app/Commands/greet.ts\nkeel repl                           # a shell with the app booted\nkeel mcp                            # start the MCP server (docs + API for AI agents)\n```\n\nThese run in **your app**, from its own `bin/keel.ts` — which is a few lines that\nhand the console your application factory (see the [console guide](./docs/console.md)).\n\n## Built for AI ⚓🤖\n\nKeel is designed to be **written with an AI agent**. Alongside the human docs it\nships a machine-readable surface that stays generated-in-sync, never stale:\n\n- **An MCP server.** `keel-mcp` exposes Keel's docs, its full public API (380+\n  exports), the generators, and its conventions to any [MCP](https://modelcontextprotocol.io)\n  client — and with `KEEL_CLOUD_TOKEN`, **deploys sites to `*.keeljs.cloud`**\n  (`create_site` → preview → publish). See [Keel Cloud](./docs/keel-cloud.md).\n  Connect it anywhere:\n  ```bash\n  curl -fsSL https://keeljs.com/install.sh | bash\n  # or: npx -y keel-mcp@latest init\n  # Cloud: … | bash -s -- --token \"$KEEL_CLOUD_TOKEN\" --claude\n  ```\n  Tools: `keel_overview`, `keel_search_docs`, `keel_read_doc`, `keel_search_api`,\n  `keel_list_generators`, `keel_scaffold`, plus `keel_cloud_*` when a token is set.\n  Resources: `keel://overview`, `keel://llms-full`, `keel://docs/<slug>`.\n- **[`AGENTS.md`](./AGENTS.md).** The agent playbook — the one import rule, the\n  folder map, the container/provider model, a \"how to add X\" table, and the\n  guardrails. `CLAUDE.md` points to it.\n- **[`llms.txt`](./llms.txt) + [`llms-full.txt`](./llms-full.txt).** A\n  [spec-compliant](https://llmstxt.org) doc index and a one-file concatenation of\n  every guide, both shipped in the npm package for drop-in context.\n- **Generators an agent can drive.** `keel_scaffold` (or `keel make:*`) emits the\n  correct stub with the right imports and path for every construct.\n\nFull guide: **[docs/ai.md](./docs/ai.md)**. Regenerate the surface after doc or\nexport changes with `npm run build:ai` (also runs automatically on `npm run build`).\n\n## Project layout\n\n```\nsrc/core/            The framework\n├─ container.ts      Service container — bind / singleton / instance / make\n├─ application.ts    Kernel: env + config loading + provider lifecycle\n├─ config.ts         Dot-notation config repository + env() helper\n├─ provider.ts       ServiceProvider base class (register / boot)\n├─ http/\n│  ├─ router.ts      Route facade (closures or [Controller, method] tuples)\n│  └─ kernel.ts      Global middleware + compiles routes onto Hono\n├─ cli/              The console: commands, generators, the kernel that runs them\n└─ index.ts          Public surface — apps import \"@shaferllc/keel/core\"\n\nsrc/db/              Database adapters (D1, Postgres, libSQL)\nsrc/api/             CRUD REST resources from a model\nsrc/openapi/         Generates an OpenAPI spec from the routes\nsrc/billing/         Subscription billing — Stripe + Paddle\nsrc/gates/           Signup gates — invite codes & email allowlist\nsrc/hosting/         Cloudflare / dump / secrets helpers for hosted apps\nsrc/watch/           The debug dashboard\nsrc/mcp/             The MCP server (docs + API for AI agents)\nsrc/vite/            The Vite plugin\n\ntests/               767 tests\ndocs/                Every guide, plus type-checked examples of each\nscripts/             build-ai (llms.txt, the MCP manifest), verify-release\n```\n\n**There is no `app/` here.** Your application code — controllers, providers,\nroutes, config — lives in *your* repo, not the framework's. The\n[starter app](https://github.com/shaferllc/keel-app) has the layout.\n\n## The request lifecycle\n\n1. `bin/keel.ts serve` calls `createApplication()` in `bootstrap/app.ts`.\n2. The `Application` loads `.env`, then every `config/*.ts` file, then runs each\n   provider's `register()` and `boot()`.\n3. The HTTP kernel (`app/Http/Kernel.ts`) applies global middleware and compiles\n   the collected routes onto a Hono instance.\n4. `@hono/node-server` serves it. Each request flows through middleware →\n   route handler (a closure or a container-resolved controller) → response.\n\nSee [docs/architecture.md](./docs/architecture.md) for the full picture.\n\n## Documentation\n\n| Guide | What it covers |\n|-------|----------------|\n| [Getting Started](./docs/getting-started.md) | First route, controller, view, config |\n| [From install to deploy](./docs/from-install-to-deploy.md) | create-keeljs → local → Cloudflare or Keel Cloud |\n| [Keel Cloud](./docs/keel-cloud.md) | Deploy `*.keeljs.cloud` from `keel-mcp` (create → preview → publish) |\n| [Starter kits](./docs/starter-kits.md) | Presets (`minimal` / `api` / `app` / `saas`) |\n| [The Service Container](./docs/container.md) | Binding and resolving services, DI |\n| [Service Providers](./docs/providers.md) | Plugin system: register/boot lifecycle, options |\n| [Configuration](./docs/configuration.md) | `config/*.ts`, dot-notation, `env()` |\n| [Routing](./docs/routing.md) | Closures, controller tuples, groups, resources, domains |\n| [URL Builder](./docs/url-builder.md) | Named-route URLs, signed URLs |\n| [Hashing & Encryption](./docs/hashing.md) | Password hashing, AES value encryption |\n| [Controllers](./docs/controllers.md) | Classes, DI, single-action, lazy-loaded |\n| [Request & Response](./docs/request-response.md) | Input, cookies, output, `abort()` |\n| [Request Decorators](./docs/decorators.md) | Lazy, memoized per-request values |\n| [Lifecycle Hooks](./docs/hooks.md) | onReady/onShutdown, graceful shutdown, onRoute |\n| [Sessions](./docs/sessions.md) | Cookie-backed sessions, flash messages |\n| [Authentication](./docs/authentication.md) | Session auth, guards, user provider |\n| [Gates](./docs/gates.md) | Signup gating — invite codes & email allowlist |\n| [Hosting](./docs/hosting.md) | Cloudflare, SQL dump, secrets for hosted Workers |\n| [Authorization](./docs/authorization.md) | Ability gates & policies, `can`/`authorize` |\n| [Database](./docs/database.md) | Driver-agnostic query builder |\n| [Models](./docs/models.md) | Active-record: find/create/save, casts, relations |\n| [Migrations](./docs/migrations.md) | Schema builder + migrator, dialect-aware |\n| [Factories & Seeders](./docs/factories.md) | Built-in Faker, model factories, seeders |\n| [Mail](./docs/mail.md) | Fluent mailer, pluggable transports, `sendLater()`, attachments |\n| [Queues & Jobs](./docs/queues.md) | Dispatch jobs, retries + backoff, dead-letter, workers |\n| [Task Scheduling](./docs/scheduling.md) | Cron-style recurring tasks, one trigger |\n| [Notifications](./docs/notifications.md) | Multi-channel (mail/db), queueable |\n| [Broadcasting](./docs/broadcasting.md) | Real-time channels, pluggable, presence auth |\n| [API Resources](./docs/api-resources.md) | CRUD REST API from a model; deny-by-default access, row-level scope |\n| [Transformers](./docs/transformers.md) | Shape models into API JSON; conditional fields, relations |\n| [Events](./docs/events.md) | Emit/listen decoupling, async listeners |\n| [Service Broker](./docs/broker.md) | Moleculer-style services, call/emit, pluggable transport |\n| [Cache](./docs/cache.md) | TTLs, the remember pattern, pluggable stores |\n| [Locks](./docs/locks.md) | Distributed locks with ownership + TTL, pluggable stores |\n| [Redis](./docs/redis.md) | Pluggable client, memory driver, cache adapter |\n| [Logger](./docs/logger.md) | Structured logging, sinks, per-request `reqId`, redaction |\n| [Static Files](./docs/static-files.md) | serveStatic(), caching, dot-file safety |\n| [Storage](./docs/storage.md) | Pluggable disks (local/S3/R2), signed URLs, direct uploads |\n| [Health Checks](./docs/health.md) | `/health/live` + `/health/ready`, pluggable checks |\n| [Telemetry](./docs/telemetry.md) | Tracing, W3C context, OTLP export — no SDK |\n| [Internationalization](./docs/i18n.md) | ICU messages, `Intl` formatters, locale detection |\n| [Pages](./docs/pages.md) | Page-based routing — a file is a route |\n| [Packages](./docs/packages.md) | Redistributable slices of an app: routes, migrations, commands |\n| [Billing](./docs/billing.md) | Subscriptions, charges & webhooks — Stripe + Paddle |\n| [Watch](./docs/watch.md) | Debug dashboard — requests, queries, jobs, logs at `/watch` |\n| [Views](./docs/views.md) | Hono JSX components, layouts, the View service |\n| [UI](./docs/ui.md) | Design kit — tokens, components (`@shaferllc/keel/ui`) |\n| [Templates](./docs/templates.md) | `{{ }}` + `@`-tag templating engine, edge-safe |\n| [Middleware](./docs/middleware.md) | Global middleware, writing your own |\n| [Rate Limiting](./docs/rate-limiting.md) | rateLimiter() middleware, per-key buckets |\n| [Errors](./docs/errors.md) | HTTP exceptions, debug page, custom handlers |\n| [Testing](./docs/testing.md) | Inject requests, fakes, spies, time travel, db assertions |\n| [Debugging](./docs/debugging.md) | dump() and dd() (dump-and-die) |\n| [Validation](./docs/validation.md) | `validate()` with Zod, auto-422 field errors |\n| [Inertia](./docs/inertia.md) | Server-side Inertia.js adapter |\n| [Vite](./docs/vite.md) | Frontend build: HMR in dev, hashed manifest in prod |\n| [The Console](./docs/console.md) | Typed commands, prompts, terminal UI, REPL, `make:*` |\n| [Architecture](./docs/architecture.md) | Container, kernel, request lifecycle |\n| [Built on Hono](./docs/hono.md) | The Hono layer underneath, and using it directly |\n| [Building with AI](./docs/ai.md) | MCP server, `AGENTS.md`, `llms.txt`, agent workflow |\n\n## Testing\n\nThe core has a test suite (Node's built-in runner + `tsx`, no extra tooling):\n\n```bash\nnpm test              # run the suite\nnpm run test:coverage # with v8 coverage\n```\n\nUnit tests cover the container, config, view, exceptions, and validation; an\nintegration suite drives the HTTP kernel end-to-end (routing, request/response\nhelpers, error rendering, middleware, validation). Coverage sits at **~99%\nlines / ~91% branches**.\n\n## Requirements\n\n- Node.js **≥ 22**\n- No database or build step required for the MVP core.\n\n## Roadmap\n\nThe MVP core and the major subsystems are shipped. Recent focus is Keel Cloud\nsupport (gates, hosting, MCP Cloud tools, billing portal) and starter kits.\nSee [CHANGELOG.md](./CHANGELOG.md) for release history.\n\n## Contributing\n\nIssues and PRs welcome. Run `npm run typecheck` before opening a PR.\n\n## License\n\n[MIT](./LICENSE) © 2026 Tom Shafer\n","readmeFilename":"README.md"}