{"_id":"@aviasole/shapecraft","_rev":"15-1714659b304791a5bc4aabb9bc5066aa","name":"@aviasole/shapecraft","dist-tags":{"latest":"2.9.0"},"versions":{"0.1.0":{"name":"@aviasole/shapecraft","version":"0.1.0","keywords":["llm","structured-output","constrained-generation","json-schema","zod","openai","ollama","llama","ai"],"author":{"name":"Aviasole Technologies"},"license":"Apache-2.0","_id":"@aviasole/shapecraft@0.1.0","maintainers":[{"name":"hadzy1802","email":"hadzy1802@gmail.com"}],"homepage":"https://github.com/aviasoletechnologies/shapecraft#readme","bugs":{"url":"https://github.com/aviasoletechnologies/shapecraft/issues"},"dist":{"shasum":"4dc80aeb8f364650702fe883a436135b78d3b605","tarball":"https://registry.npmjs.org/@aviasole/shapecraft/-/shapecraft-0.1.0.tgz","fileCount":29,"integrity":"sha512-4amifZpoIiMdKTYQBZRQmVTA0pgBzcxs+ZI0LGqyB+DhLIgPBRTkG55PdY6ukM9kHDa6dgjQDxe6CntwmHiQAw==","signatures":[{"sig":"MEUCIQCbRECdthFqnq7K3oJN4/8whsVqJaiF35t74UgIqYMIoAIgSbOXnMOTHPTOjpvVzhnKF2B+jQiNkIxwfDVlPT/nEks=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@aviasole%2fshapecraft@0.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":83810},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"923efd850c94d39b6a6ce12283f9a9d0c8dbeae0","scripts":{"dev":"tsup --watch","lint":"eslint src --ext .ts","test":"vitest run","build":"tsup && tsc --emitDeclarationOnly --declaration --declarationMap --outDir dist","typecheck":"tsc --noEmit","test:watch":"vitest","prepublishOnly":"npm run build && npm run typecheck && npm run test"},"_npmUser":{"name":"hadzy1802","email":"hadzy1802@gmail.com"},"repository":{"url":"git+https://github.com/aviasoletechnologies/shapecraft.git","type":"git"},"_npmVersion":"10.8.2","description":"Structured output generation for LLMs in Node.js — token-level constraints for local models, native JSON modes for cloud APIs","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod-to-json-schema":"^3.23.0"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","vitest":"^1.6.0","typescript":"^5.4.0","@types/node":"^20.0.0"},"peerDependencies":{"zod":">=3.0.0","ollama":">=0.5.0","openai":">=4.0.0","node-llama-cpp":">=3.0.0"},"peerDependenciesMeta":{"ollama":{"optional":true},"openai":{"optional":true},"node-llama-cpp":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/shapecraft_0.1.0_1782821542497_0.993306850528223","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@aviasole/shapecraft","version":"0.1.1","keywords":["llm","structured-output","constrained-generation","json-schema","zod","openai","ollama","llama","ai"],"author":{"name":"Aviasole Technologies"},"license":"Apache-2.0","_id":"@aviasole/shapecraft@0.1.1","maintainers":[{"name":"hadzy1802","email":"hadzy1802@gmail.com"}],"homepage":"https://github.com/aviasoletechnologies/shapecraft#readme","bugs":{"url":"https://github.com/aviasoletechnologies/shapecraft/issues"},"dist":{"shasum":"11bbd5ff68e41688227bcb3fdf700cf562683ab3","tarball":"https://registry.npmjs.org/@aviasole/shapecraft/-/shapecraft-0.1.1.tgz","fileCount":29,"integrity":"sha512-WYoq37FkB+sh8wDZMqEzWoTyBAqzP5FkMIRbTYc+EEtpTCp0m9GVUwfbE41GjDSAkeSxZOl2HVlmhL4T8wxkPQ==","signatures":[{"sig":"MEYCIQCFYBI4wI1j6Y7Wt1zVR4q0XmCTP/nXS/QD8hXghINBZAIhANvLElK+YWqyodmEVX5WJdW/JWRFuilQ5N2NyJBg1XN4","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@aviasole%2fshapecraft@0.1.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":86738},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"e4f2cf9a9c7d0d5bc90097ca325ce37fff821881","scripts":{"dev":"tsup --watch","lint":"eslint src --ext .ts","test":"vitest run","build":"tsup && tsc --emitDeclarationOnly --declaration --declarationMap --outDir dist","typecheck":"tsc --noEmit","test:watch":"vitest","prepublishOnly":"npm run build && npm run typecheck && npm run test"},"_npmUser":{"name":"hadzy1802","email":"hadzy1802@gmail.com"},"repository":{"url":"git+https://github.com/aviasoletechnologies/shapecraft.git","type":"git"},"_npmVersion":"10.8.2","description":"Structured output generation for LLMs in Node.js — token-level constraints for local models, native JSON modes for cloud APIs","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod-to-json-schema":"^3.23.0"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","vitest":"^1.6.0","typescript":"^5.4.0","@types/node":"^20.0.0"},"peerDependencies":{"zod":">=3.0.0","ollama":">=0.5.0","openai":">=4.0.0","groq-sdk":">=0.5.0","node-llama-cpp":">=3.0.0"},"peerDependenciesMeta":{"ollama":{"optional":true},"openai":{"optional":true},"groq-sdk":{"optional":true},"node-llama-cpp":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/shapecraft_0.1.1_1782823970104_0.2677264918954616","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@aviasole/shapecraft","version":"0.1.2","keywords":["llm","structured-output","constrained-generation","json-schema","zod","openai","ollama","llama","ai"],"author":{"name":"Aviasole Technologies"},"license":"Apache-2.0","_id":"@aviasole/shapecraft@0.1.2","maintainers":[{"name":"hadzy1802","email":"hadzy1802@gmail.com"}],"homepage":"https://github.com/aviasoletechnologies/shapecraft#readme","bugs":{"url":"https://github.com/aviasoletechnologies/shapecraft/issues"},"dist":{"shasum":"12d2f8f9a2b7ae7c4372b7a0d4dcf9c7d1b2c72e","tarball":"https://registry.npmjs.org/@aviasole/shapecraft/-/shapecraft-0.1.2.tgz","fileCount":31,"integrity":"sha512-K8vYkTVgBEpOkoqXLWI/bTSGzqqejHl8JPuiV2Fv0omGUQcgbhGefZGfXWiOwJCPISWUZLBfJVjhHSsKoSKhfA==","signatures":[{"sig":"MEQCIHqj0s4S20//HLPOc+Vvu9EmTsOBXXYWegNC2tYcXvSwAiAfv+dK7x+sHytM7QCjVSSogEEVZiQkJC3mZRWGCHcwIQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@aviasole%2fshapecraft@0.1.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":148119},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"913304218a4960edd7681c9a18ec5c237ba9f2f1","scripts":{"dev":"tsup --watch","lint":"eslint src --ext .ts","test":"vitest run","build":"tsup && tsc --emitDeclarationOnly --declaration --declarationMap --outDir dist","typecheck":"tsc --noEmit","test:watch":"vitest","prepublishOnly":"npm run build && npm run typecheck && npm run test"},"_npmUser":{"name":"hadzy1802","email":"hadzy1802@gmail.com"},"repository":{"url":"git+https://github.com/aviasoletechnologies/shapecraft.git","type":"git"},"_npmVersion":"10.8.2","description":"Structured output generation for LLMs in Node.js — token-level constraints for local models, native JSON modes for cloud APIs","directories":{},"_nodeVersion":"20.20.2","dependencies":{"fast-xml-parser":"^5.9.3","zod-to-json-schema":"^3.23.0"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","openai":"^6.45.0","vitest":"^1.6.0","groq-sdk":"^1.3.0","typescript":"^5.4.0","@types/node":"^20.0.0","@anthropic-ai/sdk":"^0.107.0"},"peerDependencies":{"zod":">=3.0.0","ollama":">=0.5.0","openai":">=4.0.0","groq-sdk":">=0.5.0","node-llama-cpp":">=3.0.0","@anthropic-ai/sdk":">=0.20.0"},"peerDependenciesMeta":{"zod":{"optional":true},"ollama":{"optional":true},"openai":{"optional":true},"groq-sdk":{"optional":true},"node-llama-cpp":{"optional":true},"@anthropic-ai/sdk":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/shapecraft_0.1.2_1782983171649_0.8396133097539915","host":"s3://npm-registry-packages-npm-production"}},"2.0.1":{"name":"@aviasole/shapecraft","version":"2.0.1","keywords":["llm","structured-output","constrained-generation","json-schema","zod","openai","ollama","llama","ai"],"author":{"name":"Aviasole Technologies"},"license":"Apache-2.0","_id":"@aviasole/shapecraft@2.0.1","maintainers":[{"name":"hadzy1802","email":"hadzy1802@gmail.com"}],"homepage":"https://github.com/aviasoletechnologies/shapecraft#readme","bugs":{"url":"https://github.com/aviasoletechnologies/shapecraft/issues"},"dist":{"shasum":"832d5a2abb249cd22ed3498e45f45f7cde8b1472","tarball":"https://registry.npmjs.org/@aviasole/shapecraft/-/shapecraft-2.0.1.tgz","fileCount":37,"integrity":"sha512-ey/qsiKCPs1f0i94Iwt8siD9J7/uIXmDSV4QeHoLrfb4yHGDQrGu7w0+qx4ZuuOP6HYyUBq6nsnOtbzNXIovxw==","signatures":[{"sig":"MEUCIHb/dXNj2bygqECIOl2euAnh23Rh7Kd36CyRdoQCKm5yAiEAzXIMYf3J2i72XLRXv0c8dREQxMAhEW2GBZ80W7gtB74=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@aviasole%2fshapecraft@2.0.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":290757},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"5c75898043704f171948ad22a976eee2f7f96e5d","scripts":{"dev":"tsup --watch","lint":"eslint src --ext .ts","test":"vitest run","build":"tsup && tsc --emitDeclarationOnly --declaration --declarationMap --outDir dist","typecheck":"tsc --noEmit","test:watch":"vitest","prepublishOnly":"npm run build && npm run typecheck && npm run test"},"_npmUser":{"name":"hadzy1802","email":"hadzy1802@gmail.com"},"repository":{"url":"git+https://github.com/aviasoletechnologies/shapecraft.git","type":"git"},"_npmVersion":"10.8.2","description":"Structured output generation for LLMs in Node.js — token-level constraints for local models, native JSON modes for cloud APIs","directories":{},"_nodeVersion":"20.20.2","dependencies":{"fast-xml-parser":"^5.9.3","zod-to-json-schema":"^3.23.0"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","openai":"^6.45.0","vitest":"^1.6.0","groq-sdk":"^1.3.0","typescript":"^5.4.0","@types/node":"^20.0.0","@anthropic-ai/sdk":"^0.107.0"},"peerDependencies":{"zod":">=3.0.0","ollama":">=0.5.0","openai":">=4.0.0","groq-sdk":">=0.5.0","node-llama-cpp":">=3.0.0","@anthropic-ai/sdk":">=0.20.0"},"peerDependenciesMeta":{"zod":{"optional":true},"ollama":{"optional":true},"openai":{"optional":true},"groq-sdk":{"optional":true},"node-llama-cpp":{"optional":true},"@anthropic-ai/sdk":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/shapecraft_2.0.1_1783319733623_0.7316132582520198","host":"s3://npm-registry-packages-npm-production"}},"2.0.2":{"name":"@aviasole/shapecraft","version":"2.0.2","keywords":["llm","structured-output","constrained-generation","json-schema","zod","openai","ollama","llama","ai"],"author":{"name":"Aviasole Technologies"},"license":"Apache-2.0","_id":"@aviasole/shapecraft@2.0.2","maintainers":[{"name":"hadzy1802","email":"hadzy1802@gmail.com"}],"homepage":"https://github.com/aviasoletechnologies/shapecraft#readme","bugs":{"url":"https://github.com/aviasoletechnologies/shapecraft/issues"},"dist":{"shasum":"9bb3f85c803a071a065e483c2cd71113eda78254","tarball":"https://registry.npmjs.org/@aviasole/shapecraft/-/shapecraft-2.0.2.tgz","fileCount":43,"integrity":"sha512-LryBTASWqJeXwn+0kmxxlYhzi31kb8++IkPgOtoHQLWpt0vAk6e5c+ukaitJE91/SbRVmW3uda4Q/DlgbkxYIg==","signatures":[{"sig":"MEYCIQDk+VI3kp+qxIbPO2PLtoqyjxnWFGmEa9x1BNqMQskp3gIhALLtF01kG4zWHW1YpSMaZhDT+758GQrY+eNdCaOEWjVS","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@aviasole%2fshapecraft@2.0.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":369707},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"1f19f868a9e33d0f64b57b8e21fb0ee742b6e2f7","scripts":{"dev":"tsup --watch","lint":"eslint src --ext .ts","test":"vitest run","build":"tsup && tsc --emitDeclarationOnly --declaration --declarationMap --outDir dist","typecheck":"tsc --noEmit","test:watch":"vitest","prepublishOnly":"npm run build && npm run typecheck && npm run test"},"_npmUser":{"name":"hadzy1802","email":"hadzy1802@gmail.com"},"repository":{"url":"git+https://github.com/aviasoletechnologies/shapecraft.git","type":"git"},"_npmVersion":"10.8.2","description":"Structured output generation for LLMs in Node.js — token-level constraints for local models, native JSON modes for cloud APIs","directories":{},"_nodeVersion":"20.20.2","dependencies":{"fast-xml-parser":"^5.9.3","zod-to-json-schema":"^3.23.0"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","openai":"^6.45.0","vitest":"^1.6.0","groq-sdk":"^1.3.0","typescript":"^5.4.0","@types/node":"^20.0.0","@anthropic-ai/sdk":"^0.107.0"},"peerDependencies":{"zod":">=3.0.0","ollama":">=0.5.0","openai":">=4.0.0","groq-sdk":">=0.5.0","node-llama-cpp":">=3.0.0","@anthropic-ai/sdk":">=0.20.0"},"peerDependenciesMeta":{"zod":{"optional":true},"ollama":{"optional":true},"openai":{"optional":true},"groq-sdk":{"optional":true},"node-llama-cpp":{"optional":true},"@anthropic-ai/sdk":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/shapecraft_2.0.2_1783511240559_0.8754412010490604","host":"s3://npm-registry-packages-npm-production"}},"2.0.3":{"name":"@aviasole/shapecraft","version":"2.0.3","keywords":["llm","structured-output","constrained-generation","json-schema","zod","openai","ollama","llama","ai"],"author":{"name":"Aviasole Technologies"},"license":"Apache-2.0","_id":"@aviasole/shapecraft@2.0.3","maintainers":[{"name":"hadzy1802","email":"hadzy1802@gmail.com"}],"homepage":"https://github.com/aviasoletechnologies/shapecraft#readme","bugs":{"url":"https://github.com/aviasoletechnologies/shapecraft/issues"},"dist":{"shasum":"85a82ef4f0c26ee0571e5b20b0cd6089f7edae8e","tarball":"https://registry.npmjs.org/@aviasole/shapecraft/-/shapecraft-2.0.3.tgz","fileCount":45,"integrity":"sha512-RL93LX4MwId6NmKn7uQvy6ia5ynavN7IEqzJsYP2U3KPrKWtodA3+mxgeZh8bC3pDE0BuO8tvNEPLjwdzhtbkQ==","signatures":[{"sig":"MEQCIDxd8eum6kEsoiwPPmn4cQfsc2FaD06lCa9BzA4oyIY8AiB9kx7UAgmpU0nW0bDVK4KmXuVTz/NO0dRlG3lmVfQI/w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@aviasole%2fshapecraft@2.0.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":393057},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"15e281daf878ed666d9d88d91118eeb3b9dcc1fa","scripts":{"dev":"tsup --watch","lint":"eslint src --ext .ts","test":"vitest run","build":"tsup && tsc --emitDeclarationOnly --declaration --declarationMap --outDir dist","typecheck":"tsc --noEmit","test:watch":"vitest","prepublishOnly":"npm run build && npm run typecheck && npm run test"},"_npmUser":{"name":"hadzy1802","email":"hadzy1802@gmail.com"},"repository":{"url":"git+https://github.com/aviasoletechnologies/shapecraft.git","type":"git"},"_npmVersion":"10.8.2","description":"Structured output generation for LLMs in Node.js — token-level constraints for local models, native JSON modes for cloud APIs","directories":{},"_nodeVersion":"20.20.2","dependencies":{"fast-xml-parser":"^5.9.3","zod-to-json-schema":"^3.23.0"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","openai":"^6.45.0","vitest":"^1.6.0","groq-sdk":"^1.3.0","typescript":"^5.4.0","@types/node":"^20.0.0","@anthropic-ai/sdk":"^0.107.0"},"peerDependencies":{"zod":">=3.0.0","ollama":">=0.5.0","openai":">=4.0.0","groq-sdk":">=0.5.0","node-llama-cpp":">=3.0.0","@anthropic-ai/sdk":">=0.20.0"},"peerDependenciesMeta":{"zod":{"optional":true},"ollama":{"optional":true},"openai":{"optional":true},"groq-sdk":{"optional":true},"node-llama-cpp":{"optional":true},"@anthropic-ai/sdk":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/shapecraft_2.0.3_1783669141393_0.45182793433849544","host":"s3://npm-registry-packages-npm-production"}},"2.0.4":{"name":"@aviasole/shapecraft","version":"2.0.4","keywords":["llm","structured-output","constrained-generation","json-schema","zod","openai","ollama","llama","ai"],"author":{"name":"Aviasole Technologies"},"license":"Apache-2.0","_id":"@aviasole/shapecraft@2.0.4","maintainers":[{"name":"hadzy1802","email":"hadzy1802@gmail.com"}],"homepage":"https://github.com/aviasoletechnologies/shapecraft#readme","bugs":{"url":"https://github.com/aviasoletechnologies/shapecraft/issues"},"dist":{"shasum":"34b630ee2112434715aa94eb52217a24a20b75cf","tarball":"https://registry.npmjs.org/@aviasole/shapecraft/-/shapecraft-2.0.4.tgz","fileCount":51,"integrity":"sha512-yhfyr5psXUcBdE1HTdcjIhWQfadXsBr5JUIJ1+6PnKf1eGaFVRRiLvi+V09S+gd1PUZvwbPwLDJC/Gw/nVLJfQ==","signatures":[{"sig":"MEUCIQCgupFiMyCXY6fh9xSKJkOtQJHfj0I8B/61xaN8hFR+nAIgG4JkeE5APN/uQTyvkc663lk+XFfSytSsMEgjVQGaf1M=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@aviasole%2fshapecraft@2.0.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":434766},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"}},"gitHead":"88c853abf9d43d4a65c775db3b0ac1c835c90ef4","scripts":{"dev":"tsup --watch","lint":"eslint src --ext .ts","test":"vitest run","build":"tsup && tsc --emitDeclarationOnly --declaration --declarationMap --outDir dist","typecheck":"tsc --noEmit","test:watch":"vitest","prepublishOnly":"npm run build && npm run typecheck && npm run test"},"_npmUser":{"name":"hadzy1802","email":"hadzy1802@gmail.com"},"repository":{"url":"git+https://github.com/aviasoletechnologies/shapecraft.git","type":"git"},"_npmVersion":"10.8.2","description":"Structured output generation for LLMs in Node.js — token-level constraints for local models, native JSON modes for cloud APIs","directories":{},"_nodeVersion":"20.20.2","dependencies":{"fast-xml-parser":"^5.9.3","zod-to-json-schema":"^3.23.0"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","openai":"^6.45.0","vitest":"^1.6.0","groq-sdk":"^1.3.0","typescript":"^5.4.0","@types/node":"^20.0.0","@anthropic-ai/sdk":"^0.107.0"},"peerDependencies":{"zod":">=3.0.0","ollama":">=0.5.0","openai":">=4.0.0","groq-sdk":">=0.5.0","node-llama-cpp":">=3.0.0","@anthropic-ai/sdk":">=0.20.0"},"peerDependenciesMeta":{"zod":{"optional":true},"ollama":{"optional":true},"openai":{"optional":true},"groq-sdk":{"optional":true},"node-llama-cpp":{"optional":true},"@anthropic-ai/sdk":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/shapecraft_2.0.4_1784024699838_0.17178316792948345","host":"s3://npm-registry-packages-npm-production"}},"2.1.0":{"name":"@aviasole/shapecraft","version":"2.1.0","keywords":["llm","structured-output","constrained-generation","json-schema","zod","openai","ollama","llama","ai"],"author":{"name":"Aviasole Technologies"},"license":"Apache-2.0","_id":"@aviasole/shapecraft@2.1.0","maintainers":[{"name":"hadzy1802","email":"hadzy1802@gmail.com"}],"homepage":"https://github.com/aviasoletechnologies/shapecraft#readme","bugs":{"url":"https://github.com/aviasoletechnologies/shapecraft/issues"},"dist":{"shasum":"f53ec2e1051dcf12c3f0144db269b60533d37592","tarball":"https://registry.npmjs.org/@aviasole/shapecraft/-/shapecraft-2.1.0.tgz","fileCount":69,"integrity":"sha512-CMgCvb5oS5Z+kpF1lpQ1T86mNSKopzn7wfmDBKWQIv2L4tPbqRu6zqetOuPiFDAFpDAv7EnPP4+YJXqP2UzAQg==","signatures":[{"sig":"MEYCIQDvrUk10j1G/rxlnMaUT/sS4kicI5b3GVcLDa6eJhzDvAIhAJzFGPOLDlktCs22F6f2B6hC/uGTacpTzW+BtCGaK9hY","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@aviasole%2fshapecraft@2.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":505929},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./fhir":{"types":"./dist/fhir/index.d.ts","import":"./dist/fhir/index.js","require":"./dist/fhir/index.cjs"}},"gitHead":"5a09c5cb643557b9b6b3ea5075f58296647700eb","scripts":{"dev":"tsup --watch","lint":"eslint src --ext .ts","test":"vitest run","build":"tsup && tsc --emitDeclarationOnly --declaration --declarationMap --outDir dist","typecheck":"tsc --noEmit","test:watch":"vitest","prepublishOnly":"npm run build && npm run typecheck && npm run test"},"_npmUser":{"name":"hadzy1802","email":"hadzy1802@gmail.com"},"repository":{"url":"git+https://github.com/aviasoletechnologies/shapecraft.git","type":"git"},"_npmVersion":"10.8.2","description":"Structured output generation for LLMs in Node.js — token-level constraints for local models, native JSON modes for cloud APIs","directories":{},"_nodeVersion":"20.20.2","dependencies":{"fast-xml-parser":"^5.9.3","zod-to-json-schema":"^3.23.0"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","openai":"^6.45.0","vitest":"^1.6.0","groq-sdk":"^1.3.0","typescript":"^5.4.0","@types/node":"^20.0.0","@anthropic-ai/sdk":"^0.107.0"},"peerDependencies":{"zod":">=3.0.0","ollama":">=0.5.0","openai":">=4.0.0","groq-sdk":">=0.5.0","node-llama-cpp":">=3.0.0","@anthropic-ai/sdk":">=0.20.0"},"peerDependenciesMeta":{"zod":{"optional":true},"ollama":{"optional":true},"openai":{"optional":true},"groq-sdk":{"optional":true},"node-llama-cpp":{"optional":true},"@anthropic-ai/sdk":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/shapecraft_2.1.0_1784032335050_0.7817208076030122","host":"s3://npm-registry-packages-npm-production"}},"2.2.0":{"name":"@aviasole/shapecraft","version":"2.2.0","keywords":["llm","structured-output","constrained-generation","json-schema","zod","openai","ollama","llama","ai"],"author":{"name":"Aviasole Technologies"},"license":"Apache-2.0","_id":"@aviasole/shapecraft@2.2.0","maintainers":[{"name":"hadzy1802","email":"hadzy1802@gmail.com"}],"homepage":"https://github.com/aviasoletechnologies/shapecraft#readme","bugs":{"url":"https://github.com/aviasoletechnologies/shapecraft/issues"},"dist":{"shasum":"2c664c97fef408fa17ee9b4c7268972f65e80260","tarball":"https://registry.npmjs.org/@aviasole/shapecraft/-/shapecraft-2.2.0.tgz","fileCount":73,"integrity":"sha512-g0GhsmTMWkPiFQI2lf4uE5/UfuHq03HNlcOlAVTpAPk0C9/3Cm9GUJ47B+tOd8BaHfd8ktVdMMVUuSODuJFeYg==","signatures":[{"sig":"MEUCIQCo5S3fqhrNTGLCPNL8Npfk5A0y1OMVjp1SllXzbw2MigIgdRKRzVqHqZtNyYJZkLEHQ/RRRPup9E+vQASfTNET7y8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@aviasole%2fshapecraft@2.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":621751},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./fhir":{"types":"./dist/fhir/index.d.ts","import":"./dist/fhir/index.js","require":"./dist/fhir/index.cjs"}},"gitHead":"aa74700eb2cc6b0c1d5b0f3899f40c0740f19865","scripts":{"dev":"tsup --watch","lint":"eslint src --ext .ts","test":"vitest run","build":"tsup && tsc --emitDeclarationOnly --declaration --declarationMap --outDir dist","typecheck":"tsc --noEmit","test:watch":"vitest","prepublishOnly":"npm run build && npm run typecheck && npm run test"},"_npmUser":{"name":"hadzy1802","email":"hadzy1802@gmail.com"},"repository":{"url":"git+https://github.com/aviasoletechnologies/shapecraft.git","type":"git"},"_npmVersion":"10.8.2","description":"Structured output generation for LLMs in Node.js — token-level constraints for local models, native JSON modes for cloud APIs","directories":{},"_nodeVersion":"20.20.2","dependencies":{"fast-xml-parser":"^5.9.3","zod-to-json-schema":"^3.23.0"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","openai":"^6.45.0","vitest":"^1.6.0","groq-sdk":"^1.3.0","typescript":"^5.4.0","@types/node":"^20.0.0","@anthropic-ai/sdk":"^0.107.0"},"peerDependencies":{"zod":">=3.0.0","ollama":">=0.5.0","openai":">=4.0.0","groq-sdk":">=0.5.0","node-llama-cpp":">=3.0.0","@anthropic-ai/sdk":">=0.20.0"},"peerDependenciesMeta":{"zod":{"optional":true},"ollama":{"optional":true},"openai":{"optional":true},"groq-sdk":{"optional":true},"node-llama-cpp":{"optional":true},"@anthropic-ai/sdk":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/shapecraft_2.2.0_1784181840047_0.89399994640153","host":"s3://npm-registry-packages-npm-production"}},"2.3.0":{"name":"@aviasole/shapecraft","version":"2.3.0","keywords":["llm","structured-output","constrained-generation","json-schema","zod","openai","ollama","llama","ai"],"author":{"name":"Aviasole Technologies"},"license":"Apache-2.0","_id":"@aviasole/shapecraft@2.3.0","maintainers":[{"name":"hadzy1802","email":"hadzy1802@gmail.com"}],"homepage":"https://github.com/aviasoletechnologies/shapecraft#readme","bugs":{"url":"https://github.com/aviasoletechnologies/shapecraft/issues"},"dist":{"shasum":"bd8549cc3a266a10b0d4b644b504bbc1782b6a37","tarball":"https://registry.npmjs.org/@aviasole/shapecraft/-/shapecraft-2.3.0.tgz","fileCount":73,"integrity":"sha512-1LMsR0qevXKue0prK7tEOc7ldX7rAcqJkmq7VK5E+weeW69GE88hZYabDEVNICHZLnF9yiJfADWkt3nQTzJFhA==","signatures":[{"sig":"MEQCICY+GvKjaqA1/XFG+QITk94nPB23lFH85saG/pygVi/aAiA8fMLec+WDJQiohPsPdVJ4m0x8Vg1VhJcuDGflDASRcg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@aviasole%2fshapecraft@2.3.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":630307},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./fhir":{"types":"./dist/fhir/index.d.ts","import":"./dist/fhir/index.js","require":"./dist/fhir/index.cjs"}},"gitHead":"915e0bcc97e859c9f9038a7e4e5cd83ca1aebff5","scripts":{"dev":"tsup --watch","lint":"eslint src --ext .ts","test":"vitest run","build":"tsup && tsc --emitDeclarationOnly --declaration --declarationMap --outDir dist","typecheck":"tsc --noEmit","test:watch":"vitest","prepublishOnly":"npm run build && npm run typecheck && npm run test"},"_npmUser":{"name":"hadzy1802","email":"hadzy1802@gmail.com"},"repository":{"url":"git+https://github.com/aviasoletechnologies/shapecraft.git","type":"git"},"_npmVersion":"10.8.2","description":"Structured output generation for LLMs in Node.js — token-level constraints for local models, native JSON modes for cloud APIs","directories":{},"_nodeVersion":"20.20.2","dependencies":{"fast-xml-parser":"^5.9.3","zod-to-json-schema":"^3.23.0"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","openai":"^6.45.0","vitest":"^1.6.0","groq-sdk":"^1.3.0","typescript":"^5.4.0","@types/node":"^20.0.0","@anthropic-ai/sdk":"^0.107.0"},"peerDependencies":{"zod":">=3.0.0","ollama":">=0.5.0","openai":">=4.0.0","groq-sdk":">=0.5.0","node-llama-cpp":">=3.0.0","@anthropic-ai/sdk":">=0.20.0"},"peerDependenciesMeta":{"zod":{"optional":true},"ollama":{"optional":true},"openai":{"optional":true},"groq-sdk":{"optional":true},"node-llama-cpp":{"optional":true},"@anthropic-ai/sdk":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/shapecraft_2.3.0_1784271852514_0.04824128244237125","host":"s3://npm-registry-packages-npm-production"}},"2.4.0":{"name":"@aviasole/shapecraft","version":"2.4.0","keywords":["llm","structured-output","constrained-generation","json-schema","zod","openai","ollama","llama","ai"],"author":{"name":"Aviasole Technologies"},"license":"Apache-2.0","_id":"@aviasole/shapecraft@2.4.0","maintainers":[{"name":"hadzy1802","email":"hadzy1802@gmail.com"}],"homepage":"https://github.com/aviasoletechnologies/shapecraft#readme","bugs":{"url":"https://github.com/aviasoletechnologies/shapecraft/issues"},"dist":{"shasum":"fd69cebc6d1b7ce23e3235531bc2b430b1145bdf","tarball":"https://registry.npmjs.org/@aviasole/shapecraft/-/shapecraft-2.4.0.tgz","fileCount":75,"integrity":"sha512-QJH/vHYqGz/xQCpfFY4bBbh0x5PQ5dnKYF8xa4uCko9BwdglOgpwCfxzUVs6vvt6xZcXSeDzGk2JlZFktZoRfQ==","signatures":[{"sig":"MEQCIF9yj81GykYR4YX5MPriiKDyVCWoZPP4rBr+R5AE3dxyAiBIBWs5XA876H5q1SR4F2noMO5krdgBejWi1Qo+eoaoYQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@aviasole%2fshapecraft@2.4.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":679406},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./fhir":{"types":"./dist/fhir/index.d.ts","import":"./dist/fhir/index.js","require":"./dist/fhir/index.cjs"}},"gitHead":"2e189c2c60250958671f19574b406b2745fed422","scripts":{"dev":"tsup --watch","lint":"eslint src --ext .ts","test":"vitest run","build":"tsup && tsc --emitDeclarationOnly --declaration --declarationMap --outDir dist","typecheck":"tsc --noEmit","test:watch":"vitest","prepublishOnly":"npm run build && npm run typecheck && npm run test"},"_npmUser":{"name":"hadzy1802","email":"hadzy1802@gmail.com"},"repository":{"url":"git+https://github.com/aviasoletechnologies/shapecraft.git","type":"git"},"_npmVersion":"10.8.2","description":"Structured output generation for LLMs in Node.js — token-level constraints for local models, native JSON modes for cloud APIs","directories":{},"_nodeVersion":"20.20.2","dependencies":{"fast-xml-parser":"^5.9.3","zod-to-json-schema":"^3.23.0"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","openai":"^6.45.0","vitest":"^1.6.0","groq-sdk":"^1.3.0","typescript":"^5.4.0","@types/node":"^20.0.0","@anthropic-ai/sdk":"^0.107.0"},"peerDependencies":{"zod":">=3.0.0","ollama":">=0.5.0","openai":">=4.0.0","groq-sdk":">=0.5.0","node-llama-cpp":">=3.0.0","@anthropic-ai/sdk":">=0.20.0"},"peerDependenciesMeta":{"zod":{"optional":true},"ollama":{"optional":true},"openai":{"optional":true},"groq-sdk":{"optional":true},"node-llama-cpp":{"optional":true},"@anthropic-ai/sdk":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/shapecraft_2.4.0_1784529716953_0.5531417483223164","host":"s3://npm-registry-packages-npm-production"}},"2.6.0":{"name":"@aviasole/shapecraft","version":"2.6.0","keywords":["llm","structured-output","constrained-generation","json-schema","zod","openai","ollama","llama","ai"],"author":{"name":"Aviasole Technologies"},"license":"Apache-2.0","_id":"@aviasole/shapecraft@2.6.0","maintainers":[{"name":"hadzy1802","email":"hadzy1802@gmail.com"}],"homepage":"https://github.com/aviasoletechnologies/shapecraft#readme","bugs":{"url":"https://github.com/aviasoletechnologies/shapecraft/issues"},"bin":{"shapecraft":"dist/cli.js"},"dist":{"shasum":"4a7799d33351670ba11ca62e403ef1acde1dd285","tarball":"https://registry.npmjs.org/@aviasole/shapecraft/-/shapecraft-2.6.0.tgz","fileCount":91,"integrity":"sha512-av2w4LsO+Cx6nDAzmPflMzfy0P0WKNr+br8ANlzZaiMcEngU6ucn+IfRaoPfH93+dyIDOdfArnMy/VQeOMmSuQ==","signatures":[{"sig":"MEYCIQCWYElIF3StMPRgXhvS4IA5ZlwQ+tqbAH+xvdJcLOP48AIhANk0oeb59uZIrC8FVMuRxw7DDP8S6nA9Lc/c9Lod6ZV8","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@aviasole%2fshapecraft@2.6.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":867022},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./fhir":{"types":"./dist/fhir/index.d.ts","import":"./dist/fhir/index.js","require":"./dist/fhir/index.cjs"}},"gitHead":"832096200b5229589b4bb91dbcd6278804174772","scripts":{"dev":"tsup --watch","lint":"eslint src --ext .ts","test":"vitest run","build":"tsup && tsc --emitDeclarationOnly --declaration --declarationMap --outDir dist","typecheck":"tsc --noEmit","test:watch":"vitest","prepublishOnly":"npm run build && npm run typecheck && npm run test"},"_npmUser":{"name":"hadzy1802","email":"hadzy1802@gmail.com"},"repository":{"url":"git+https://github.com/aviasoletechnologies/shapecraft.git","type":"git"},"_npmVersion":"10.8.2","description":"Structured output generation for LLMs in Node.js — token-level constraints for local models, native JSON modes for cloud APIs","directories":{},"_nodeVersion":"20.20.2","dependencies":{"fast-xml-parser":"^5.9.3","zod-to-json-schema":"^3.23.0"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","openai":"^6.45.0","vitest":"^1.6.0","groq-sdk":"^1.3.0","typescript":"^5.4.0","@types/node":"^20.0.0","@google/genai":"^1.52.0","@anthropic-ai/sdk":"^0.107.0"},"peerDependencies":{"zod":">=3.0.0","ollama":">=0.5.0","openai":">=4.0.0","groq-sdk":">=0.5.0","@google/genai":">=1.0.0","node-llama-cpp":">=3.0.0","@anthropic-ai/sdk":">=0.20.0"},"peerDependenciesMeta":{"zod":{"optional":true},"ollama":{"optional":true},"openai":{"optional":true},"groq-sdk":{"optional":true},"@google/genai":{"optional":true},"node-llama-cpp":{"optional":true},"@anthropic-ai/sdk":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/shapecraft_2.6.0_1785474150383_0.4754012455379486","host":"s3://npm-registry-packages-npm-production"}},"2.7.0":{"name":"@aviasole/shapecraft","version":"2.7.0","keywords":["llm","structured-output","constrained-generation","json-schema","zod","openai","ollama","llama","ai"],"author":{"name":"Aviasole Technologies"},"license":"Apache-2.0","_id":"@aviasole/shapecraft@2.7.0","maintainers":[{"name":"hadzy1802","email":"hadzy1802@gmail.com"}],"homepage":"https://github.com/aviasoletechnologies/shapecraft#readme","bugs":{"url":"https://github.com/aviasoletechnologies/shapecraft/issues"},"bin":{"shapecraft":"dist/cli.js"},"dist":{"shasum":"5306e067c813013fdeb080a30cd9ee91b3437d01","tarball":"https://registry.npmjs.org/@aviasole/shapecraft/-/shapecraft-2.7.0.tgz","fileCount":101,"integrity":"sha512-Z63dT2jAbrQz2YuGimVUjlFhj7vNJE2G6vwv4U65/cF0SkWp82l5Z6AJwD7ej9C+uY/DIo/uNlTjl7HEWL1Skw==","signatures":[{"sig":"MEUCIQCMfxwE1iZuGAu0V3qE2hD3y+MBp2oGtMLT6f7YjNp3YAIgJV1utKNXDzfXCKHcxnEH2AIZL2D4sMBsEIl4qm8iaxU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@aviasole%2fshapecraft@2.7.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1095082},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./fhir":{"types":"./dist/fhir/index.d.ts","import":"./dist/fhir/index.js","require":"./dist/fhir/index.cjs"},"./agentic":{"types":"./dist/agentic/index.d.ts","import":"./dist/agentic/index.js","require":"./dist/agentic/index.cjs"}},"gitHead":"f879f47f378d49f1a9ce300833ebf2d0d355c59b","scripts":{"dev":"tsup --watch","lint":"eslint src --ext .ts","test":"vitest run","build":"tsup && tsc --emitDeclarationOnly --declaration --declarationMap --outDir dist","typecheck":"tsc --noEmit","test:watch":"vitest","prepublishOnly":"npm run build && npm run typecheck && npm run test"},"_npmUser":{"name":"hadzy1802","email":"hadzy1802@gmail.com"},"repository":{"url":"git+https://github.com/aviasoletechnologies/shapecraft.git","type":"git"},"_npmVersion":"10.8.2","description":"Structured output generation for LLMs in Node.js — token-level constraints for local models, native JSON modes for cloud APIs","directories":{},"_nodeVersion":"20.20.2","dependencies":{"fast-xml-parser":"^5.9.3","zod-to-json-schema":"^3.23.0"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","openai":"^6.45.0","vitest":"^1.6.0","groq-sdk":"^1.3.0","typescript":"^5.4.0","@types/node":"^20.0.0","@google/genai":"^1.52.0","@anthropic-ai/sdk":"^0.107.0"},"peerDependencies":{"zod":">=3.0.0","ollama":">=0.5.0","openai":">=4.0.0","groq-sdk":">=0.5.0","@google/genai":">=1.0.0","node-llama-cpp":">=3.0.0","@anthropic-ai/sdk":">=0.20.0"},"peerDependenciesMeta":{"zod":{"optional":true},"ollama":{"optional":true},"openai":{"optional":true},"groq-sdk":{"optional":true},"@google/genai":{"optional":true},"node-llama-cpp":{"optional":true},"@anthropic-ai/sdk":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/shapecraft_2.7.0_1785504946203_0.04821392217669063","host":"s3://npm-registry-packages-npm-production"}},"2.8.0":{"name":"@aviasole/shapecraft","version":"2.8.0","keywords":["llm","structured-output","constrained-generation","json-schema","zod","openai","ollama","llama","ai"],"author":{"name":"Aviasole Technologies"},"license":"Apache-2.0","_id":"@aviasole/shapecraft@2.8.0","maintainers":[{"name":"hadzy1802","email":"hadzy1802@gmail.com"}],"homepage":"https://github.com/aviasoletechnologies/shapecraft#readme","bugs":{"url":"https://github.com/aviasoletechnologies/shapecraft/issues"},"bin":{"shapecraft":"dist/cli.js"},"dist":{"shasum":"cab51414503a54faf2057676842eb868a489eb32","tarball":"https://registry.npmjs.org/@aviasole/shapecraft/-/shapecraft-2.8.0.tgz","fileCount":103,"integrity":"sha512-KXv8fGKiVT9ZfvondFjBSk4C4GbNRxkXOhal5c8oqMk8dRtJ/h2OdbPmvNd9R6a/Ys9Y2dnkoJpu+r/s8VaBdg==","signatures":[{"sig":"MEUCIBFzj96AMjPFFh5PhPha4weuDJg/h+LYJ+bGwlM/tzP6AiEAtflmQ+zpU8vgMfFwyc48i73Vhsnspx4X3Ob/cnht9fY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@aviasole%2fshapecraft@2.8.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1220195},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./fhir":{"types":"./dist/fhir/index.d.ts","import":"./dist/fhir/index.js","require":"./dist/fhir/index.cjs"},"./agentic":{"types":"./dist/agentic/index.d.ts","import":"./dist/agentic/index.js","require":"./dist/agentic/index.cjs"}},"gitHead":"fb455222eb6aefab6540d373ed7d1e96bf29b896","scripts":{"dev":"tsup --watch","lint":"eslint src --ext .ts","test":"vitest run","build":"tsup && tsc --emitDeclarationOnly --declaration --declarationMap --outDir dist","typecheck":"tsc --noEmit","test:watch":"vitest","prepublishOnly":"npm run build && npm run typecheck && npm run test"},"_npmUser":{"name":"hadzy1802","email":"hadzy1802@gmail.com"},"repository":{"url":"git+https://github.com/aviasoletechnologies/shapecraft.git","type":"git"},"_npmVersion":"10.8.2","description":"Structured output generation for LLMs in Node.js — token-level constraints for local models, native JSON modes for cloud APIs","directories":{},"_nodeVersion":"20.20.2","dependencies":{"fast-xml-parser":"^5.9.3","zod-to-json-schema":"^3.23.0"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","openai":"^6.45.0","vitest":"^1.6.0","groq-sdk":"^1.3.0","typescript":"^5.4.0","@types/node":"^20.0.0","@google/genai":"^1.52.0","@anthropic-ai/sdk":"^0.107.0"},"peerDependencies":{"zod":">=3.0.0","ollama":">=0.5.0","openai":">=4.0.0","groq-sdk":">=0.5.0","@google/genai":">=1.0.0","node-llama-cpp":">=3.0.0","@anthropic-ai/sdk":">=0.20.0"},"peerDependenciesMeta":{"zod":{"optional":true},"ollama":{"optional":true},"openai":{"optional":true},"groq-sdk":{"optional":true},"@google/genai":{"optional":true},"node-llama-cpp":{"optional":true},"@anthropic-ai/sdk":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/shapecraft_2.8.0_1785820870855_0.3002713082119468","host":"s3://npm-registry-packages-npm-production"}},"2.9.0":{"name":"@aviasole/shapecraft","version":"2.9.0","description":"Structured output generation for LLMs in Node.js — token-level constraints for local models, native JSON modes for cloud APIs","author":{"name":"Aviasole Technologies"},"license":"Apache-2.0","repository":{"type":"git","url":"git+https://github.com/aviasoletechnologies/shapecraft.git"},"homepage":"https://aviasoletechnologies.github.io/shapecraft/","bugs":{"url":"https://github.com/aviasoletechnologies/shapecraft/issues"},"keywords":["llm","structured-output","constrained-generation","json-schema","zod","openai","ollama","llama","ai"],"type":"module","main":"./dist/index.cjs","module":"./dist/index.js","types":"./dist/index.d.ts","bin":{"shapecraft":"dist/cli.js"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","require":"./dist/index.cjs"},"./fhir":{"types":"./dist/fhir/index.d.ts","import":"./dist/fhir/index.js","require":"./dist/fhir/index.cjs"},"./agentic":{"types":"./dist/agentic/index.d.ts","import":"./dist/agentic/index.js","require":"./dist/agentic/index.cjs"}},"scripts":{"build":"tsup && tsc --emitDeclarationOnly --declaration --declarationMap --outDir dist","dev":"tsup --watch","test":"vitest run","test:watch":"vitest","lint":"eslint src --ext .ts","typecheck":"tsc --noEmit","prepublishOnly":"npm run build && npm run typecheck && npm run test","docs:dev":"npm --prefix docs run docs:dev","docs:build":"npm --prefix docs run docs:build","docs:preview":"npm --prefix docs run docs:preview"},"devDependencies":{"@anthropic-ai/sdk":"^0.107.0","@google/genai":"^1.52.0","@types/node":"^20.0.0","groq-sdk":"^1.3.0","openai":"^6.45.0","tsup":"^8.0.0","typescript":"^5.4.0","vitest":"^1.6.0"},"peerDependencies":{"@anthropic-ai/sdk":">=0.20.0","@google/genai":">=1.0.0","groq-sdk":">=0.5.0","node-llama-cpp":">=3.0.0","ollama":">=0.5.0","openai":">=4.0.0","zod":">=3.0.0"},"peerDependenciesMeta":{"@anthropic-ai/sdk":{"optional":true},"@google/genai":{"optional":true},"node-llama-cpp":{"optional":true},"openai":{"optional":true},"ollama":{"optional":true},"groq-sdk":{"optional":true},"zod":{"optional":true}},"dependencies":{"fast-xml-parser":"^5.9.3","zod-to-json-schema":"^3.23.0"},"_id":"@aviasole/shapecraft@2.9.0","gitHead":"3d32995e92693e290c182dc68d94e5c38773072b","_nodeVersion":"20.20.2","_npmVersion":"10.8.2","dist":{"integrity":"sha512-kaoHcoSEKAlCAZl5HneML1kLVU86be1ddt7eLv15gkBzESO8rk88rVRvzT7KtabWlckX2AlJTUsIlNqj/5dlVg==","shasum":"e7fb5f01d98266beabbda5fb5bdda1004aa8f350","tarball":"https://registry.npmjs.org/@aviasole/shapecraft/-/shapecraft-2.9.0.tgz","fileCount":111,"unpackedSize":1289496,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@aviasole%2fshapecraft@2.9.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIEAb1qFuJjzT6+xk/SU8MVpAp5C/ebAjhEHkaWvHGdqJAiAOxlyLX2o2jyIEEpwIdyNVrROTlicMjY8dFN/31Gljgg=="}]},"_npmUser":{"name":"hadzy1802","email":"hadzy1802@gmail.com"},"directories":{},"maintainers":[{"name":"hadzy1802","email":"hadzy1802@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/shapecraft_2.9.0_1789628449895_0.15685764863598317"},"_hasShrinkwrap":false}},"time":{"created":"2026-06-30T12:12:22.387Z","modified":"2026-09-17T07:00:50.582Z","0.1.0":"2026-06-30T12:12:22.629Z","0.1.1":"2026-06-30T12:52:50.229Z","0.1.2":"2026-07-02T09:06:11.787Z","2.0.1":"2026-07-06T06:35:33.772Z","2.0.2":"2026-07-08T11:47:20.751Z","2.0.3":"2026-07-10T07:39:01.524Z","2.0.4":"2026-07-14T10:24:59.980Z","2.1.0":"2026-07-14T12:32:15.237Z","2.2.0":"2026-07-16T06:04:00.205Z","2.3.0":"2026-07-17T07:04:12.752Z","2.4.0":"2026-07-20T06:41:57.122Z","2.6.0":"2026-07-31T05:02:30.583Z","2.7.0":"2026-07-31T13:35:46.422Z","2.8.0":"2026-08-04T05:21:11.010Z","2.9.0":"2026-09-17T07:00:50.219Z"},"bugs":{"url":"https://github.com/aviasoletechnologies/shapecraft/issues"},"author":{"name":"Aviasole Technologies"},"license":"Apache-2.0","homepage":"https://aviasoletechnologies.github.io/shapecraft/","keywords":["llm","structured-output","constrained-generation","json-schema","zod","openai","ollama","llama","ai"],"repository":{"type":"git","url":"git+https://github.com/aviasoletechnologies/shapecraft.git"},"description":"Structured output generation for LLMs in Node.js — token-level constraints for local models, native JSON modes for cloud APIs","maintainers":[{"name":"hadzy1802","email":"hadzy1802@gmail.com"}],"readme":"<img src=\"assets/logo.png\" alt=\"shapecraft\" width=\"72\" height=\"72\" />\n\n# @aviasole/shapecraft\n\nStructured output generation for LLMs in Node.js. Token-level constraints for local models, native JSON modes for cloud APIs — one unified API.\n\n[![npm](https://img.shields.io/npm/v/@aviasole/shapecraft)](https://www.npmjs.com/package/@aviasole/shapecraft)\n[![CI](https://github.com/aviasoletechnologies/shapecraft/actions/workflows/ci.yml/badge.svg)](https://github.com/aviasoletechnologies/shapecraft/actions/workflows/ci.yml)\n[![License](https://img.shields.io/badge/license-Apache--2.0-blue)](LICENSE)\n\n![shapecraft demo](assets/demo.gif)\n\n## Install\n\n```bash\nnpm install @aviasole/shapecraft zod\n# or: pnpm add @aviasole/shapecraft zod\n```\n\n`zod` is an optional peer dependency, used for the Zod schema examples throughout this README - install it too if you're using Zod schemas (the common path): `npm install zod`.\n\nInstall backend SDK as needed:\n\n```bash\nnpm install openai              # OpenAI, Fireworks, Mistral, OpenRouter, DeepSeek, Together, Cerebras, Grok, openaiCompatible\nnpm install groq-sdk            # Groq\nnpm install @anthropic-ai/sdk   # Anthropic\nnpm install @google/genai       # Gemini\nnpm install node-llama-cpp      # Local .gguf models\n# Ollama: no extra SDK needed\n```\n\n## Quick Start\n\n```typescript\nimport { z } from \"zod\";\nimport { generate, openai } from \"@aviasole/shapecraft\";\n\nconst PersonSchema = z.object({\n  name: z.string(),\n  age: z.number(),\n  email: z.string().email(),\n});\n\nconst model = openai({ model: \"gpt-4o-mini\" });\n\nconst result = await generate(model, PersonSchema, \"Extract: John Doe, 32, john@example.com\");\n\nconsole.log(result.data);           // { name: \"John Doe\", age: 32, email: \"john@example.com\" }\nconsole.log(result.guaranteeLevel); // \"native\"\nconsole.log(result.attempts);       // 1\n```\n\n## Documentation\n\nFull guide and reference docs — schema inputs, backends & guarantee levels, streaming, `createClient()` & middleware, batch generation, result metadata, timeouts, pluggable validation, the staged validation pipeline, FHIR presets, turnaround, skill-based generation, multi-agent orchestration, tool calling, the CLI, and error handling: **[aviasoletechnologies.github.io/shapecraft](https://aviasoletechnologies.github.io/shapecraft/)**\n\n## Backends & Guarantee Levels\n\n| Backend | Guarantee | Mechanism |\n|---|---|---|\n| `openai()` | `native` | Server-side strict JSON schema |\n| `groq()` | `native` | JSON mode |\n| `deepseek()` | `native` | JSON mode (no schema-strict mode, same tier as `groq()`) |\n| `fireworks()` | `native` | Server-side JSON schema mode, plus a real token-level GBNF grammar mode |\n| `mistral()` | `native` | Server-side JSON schema mode |\n| `gemini()` | `native` | Server-side JSON schema mode (`responseJsonSchema`) |\n| `ollama()` | `constrained` | Token-level JSON-schema constraint |\n| `llamaCpp()` | `constrained` | Token-level GBNF grammar (local `.gguf` via node-llama-cpp) |\n| `anthropic()` | `best-effort` | Prompt + parse + retry |\n| `openRouter()` | `best-effort` | Pass-through to many providers - `response_format` support varies by underlying model |\n| `together()` | `native` | Server-side JSON schema mode |\n| `cerebras()` | `native` | Server-side strict JSON schema mode |\n| `grok()` | `native` | Server-side JSON schema mode |\n| `openaiCompatible()` | `best-effort` (override to `native` if your provider enforces it) | Generic factory - see below |\n\n> `llamaCpp()` is `constrained` for a `{ gbnf }` input (token-level). For other schema\n> types (Zod / jsonSchema / …) it currently runs a best-effort prompt path until the\n> JSON-Schema→GBNF converter lands — treat those as best-effort despite the nominal level.\n>\n> `fireworks()` is the one cloud backend where a `{ gbnf }` input is *not* downgraded to\n> best-effort — Fireworks' grammar mode (`response_format: { type: \"grammar\", grammar }`)\n> applies the GBNF grammar as a genuine token-level constraint server-side, the same\n> guarantee `llamaCpp()` gives locally. It reuses the `openai` package pointed at\n> Fireworks' base URL, so no extra SDK dependency is needed.\n>\n> `openRouter()` is deliberately `best-effort`, not `native` like the other cloud\n> backends — it's pass-through across many different underlying providers/models, and\n> `response_format: { type: \"json_schema\" }` enforcement isn't guaranteed for every model\n> it can route to, only the ones that actually support it themselves.\n>\n> `gemini()` uses the official `@google/genai` SDK, not an OpenAI-compatible endpoint\n> (unlike `fireworks()`/`mistral()`/`openRouter()`) — Gemini's OpenAI-compat layer is a\n> migration bridge for OpenAI users, not its primary integration path, and doesn't expose\n> `responseJsonSchema` (plain JSON Schema, what `toJsonSchema()` already produces) —\n> only the older `responseSchema` (Gemini's own Type-enum OpenAPI-subset shape).\n>\n> `together()`/`cerebras()`/`grok()` all reuse the `openai` package pointed at their\n> respective base URLs, same pattern as `fireworks()`/`mistral()`/`openRouter()` - no new\n> SDK dependency. None expose a genuine grammar/constrained-decoding mode, so a `{ gbnf }`\n> input on any of the three is prompt-only best-effort, same as `openai()`/`groq()`.\n\n### `openaiCompatible()`\n\nFor any OpenAI-compatible provider shapecraft doesn't name explicitly - `baseURL`,\n`apiKey`, and `model` are all caller-supplied instead of hardcoded per provider:\n\n```typescript\nimport { openaiCompatible } from \"@aviasole/shapecraft\";\n\nconst custom = openaiCompatible({\n  baseURL: \"https://api.some-provider.example/v1\",\n  apiKey: process.env.SOME_PROVIDER_API_KEY,\n  model: \"some-model-id\",\n  guaranteeLevel: \"native\", // optional - omit to default to \"best-effort\"\n});\n```\n\nDefaults to `guaranteeLevel: \"best-effort\"` since shapecraft can't verify an arbitrary\nendpoint actually enforces `json_schema` server-side. Pass `guaranteeLevel: \"native\"`\nexplicitly if you know your provider does, for accurate reporting. Unlike the named\nbackends, there's no environment-variable fallback for the API key - there's no single\nconventional env-var name for an arbitrary provider, so `apiKey` is required.\n\n```typescript\nimport { openai, groq, fireworks, mistral, gemini, openRouter, deepseek, ollama, anthropic, llamaCpp, together, cerebras, grok, openaiCompatible } from \"@aviasole/shapecraft\";\n\nconst gpt       = openai({ model: \"gpt-4o-mini\" });\nconst fast      = groq({ model: \"llama-3.3-70b-versatile\" });\nconst cloudGbnf = fireworks({ model: \"accounts/fireworks/models/llama-v3p1-70b-instruct\" });\nconst mist      = mistral({ model: \"mistral-large-latest\" });\nconst gem       = gemini({ model: \"gemini-flash-latest\" });\nconst router    = openRouter({ model: \"openai/gpt-4o-mini\" });\nconst deep      = deepseek({ model: \"deepseek-v4-flash\" });\nconst local     = ollama({ model: \"llama3.2\" });\nconst native    = llamaCpp({ modelPath: \"./models/llama-3.2-3b.gguf\" });\nconst claude    = anthropic({ model: \"claude-haiku-4-5-20251001\", maxRetries: 3 });\n```\n\nEvery built-in backend also exposes `capabilities` (`streaming`/`chat`/`structuredOutput`/`toolCalling`/`skillDispatch`) - an explicit, inspectable alternative to duck-typing `typeof model.generateStream === \"function\"` for routing logic. See the [Backends & Guarantee Levels guide](https://aviasoletechnologies.github.io/shapecraft/guide/backends) for the full mechanism breakdown and the `ModelCapabilities` interface, and [what shapecraft guarantees and what it doesn't](https://aviasoletechnologies.github.io/shapecraft/reference/guarantees) for the structural-vs-semantic-correctness distinction.\n\n## How shapecraft compares\n\nOther libraries solve overlapping parts of this problem well. This is what's actually different, not a scorecard:\n\n| Capability | Instructor-js | zod-gpt | Vercel AI SDK (`generateObject`) | shapecraft |\n|---|---|---|---|---|\n| Providers | OpenAI only | OpenAI, Anthropic | OpenAI, Anthropic, Google, and more | OpenAI, Groq, Fireworks, Mistral, OpenRouter, DeepSeek, Together, Cerebras, xAI, Gemini, Anthropic, Ollama, llama.cpp, any OpenAI-compatible endpoint |\n| Local model support | - | - | no grammar-level constraint | Ollama / llama.cpp with token-level GBNF grammar |\n| Per-provider reliability signal | - | - | - | `guaranteeLevel`: `native` / `constrained` / `best-effort` |\n| Retry on schema failure | not documented | fixed 3 attempts, 60s timeout | configurable `maxRetries` | configurable, only on schema-validation failure |\n| Timeout / cancellation | not documented | hardcoded 60s | via provider fetch options | `timeoutMs` / `AbortSignal`, enforced at the core regardless of backend |\n| Streaming | yes | - | yes (`streamObject`) | yes, with per-field incremental validation |\n| Schema input types | Zod only | Zod only | Zod, Valibot, JSON schema | Zod, JSON schema, regex, custom validator, XML, GBNF |\n\nThe gap that actually matters: none of the others tell you *how much* to trust a given provider's structured output, or give local models the same real enforcement cloud providers get. shapecraft's `guaranteeLevel` makes that explicit instead of leaving it as something you find out in production.\n\n## What's included\n\n- **Schema inputs**: Zod, raw JSON Schema, regex pattern, custom validator, XML (with template placeholders and `enforceLiterals`), raw GBNF grammar\n- **Streaming**: `generateStream()` with per-field incremental validation, visible retries on validation failure\n- **`createClient()` & middleware**: a Koa-style onion pipeline for logging, caching, and other cross-cutting concerns\n- **Batch generation**: `generateBatch()`, concurrency-capped, `Promise.allSettled`-style\n- **Result metadata**: `provider`, `model`, `latencyMs` on every result\n- **Timeouts & cancellation**: `timeoutMs` / `AbortSignal`, enforced at the core for every backend\n- **Pluggable JSON Schema validation**: swap in your own validator (or AJV) via `jsonSchemaValidator`\n- **Staged validation pipeline**: `semanticValidator`, `confidenceScorer`, `postProcessors` on top of structural validation\n- **FHIR R4 presets**: `Patient`, `Observation`, `Condition`, `MedicationRequest`, `Encounter`, via `@aviasole/shapecraft/fhir`, including a common `extension?: Extension[]` field\n- **Turnaround**: multi-turn collection via `generate(..., { turnaround: true })`, validated once over the whole transcript\n- **Skill-based generation**: `SkillRegistry` + `generateSkillCall()`/`runSkillLoop()` for model-driven dispatch to typed operations\n- **Multi-agent orchestration**: `defineAgent()` + `runAgents()` for chaining validated `generate()` calls, via `@aviasole/shapecraft/agentic`\n- **Tool calling**: `generateWithTools()` for native provider function-calling with validated arguments and a validated final answer\n- **CLI**: `npx shapecraft validate --schema schema.json --output output.json`\n\nFull docs for all of the above: **[aviasoletechnologies.github.io/shapecraft](https://aviasoletechnologies.github.io/shapecraft/)**\n\n## Error Handling\n\n```typescript\nimport { SchemaViolationError, MaxRetriesExceededError } from \"@aviasole/shapecraft\";\n\ntry {\n  const result = await generate(model, schema, prompt, { maxRetries: 3 });\n} catch (err) {\n  if (err instanceof MaxRetriesExceededError) {\n    console.error(`Failed after ${err.attempts} attempts`);\n  }\n  if (err instanceof SchemaViolationError) {\n    console.error(\"Raw output:\", err.raw);\n    console.error(\"Errors:\", err.validationErrors);\n  }\n}\n```\n\nSee the [Error Handling guide](https://aviasoletechnologies.github.io/shapecraft/guide/error-handling) and [Options reference](https://aviasoletechnologies.github.io/shapecraft/reference/options) for the full list of `generate()` options.\n\n## License\n\nApache-2.0 © Aviasole Technologies\n","readmeFilename":"README.md"}