{"_id":"@openmaic/dsl","_rev":"19-a862b56139b55281b4c3d2514098b355","name":"@openmaic/dsl","dist-tags":{"placeholder":"0.0.1","latest":"0.11.2"},"versions":{"0.0.1":{"name":"@openmaic/dsl","version":"0.0.1","keywords":["maic","dsl","slide","schema","contract"],"license":"MIT","_id":"@openmaic/dsl@0.0.1","maintainers":[{"name":"wyuc","email":"wangyucheng@cogevol.com"}],"dist":{"shasum":"8506ffd0ca41c98dcb4ba8e93ad668b4407fa969","tarball":"https://registry.npmjs.org/@openmaic/dsl/-/dsl-0.0.1.tgz","fileCount":23,"integrity":"sha512-82mb9SZl2vyaFHUb5yUDzg4ieifopjbA+o3XsLB5+sVoV9PcXOj7oIjOffO650Opo5/UwX/0AX9t/Hff/s3MnQ==","signatures":[{"sig":"MEYCIQCo0ogF0x5BFnDRJ69ZneBSejSznsmPC4W0BUFIqPqwPgIhANoyJll0cFzEohw0vhLbVXS70uTgLMxy7Iz+qFVidW2s","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":66005},"main":"./dist/index.js","type":"module","_from":"file:openmaic-dsl-0.0.1.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"dev":"tsc -p tsconfig.json --watch","test":"vitest run","build":"rm -rf dist && tsc -p tsconfig.json","clean":"rm -rf dist","typecheck":"tsc -p tsconfig.json --noEmit","test:watch":"vitest"},"_npmUser":{"name":"wyuc","email":"wangyucheng@cogevol.com"},"_resolved":"/tmp/5e2149c50a3acb22b53b176f3583135f/openmaic-dsl-0.0.1.tgz","_integrity":"sha512-82mb9SZl2vyaFHUb5yUDzg4ieifopjbA+o3XsLB5+sVoV9PcXOj7oIjOffO650Opo5/UwX/0AX9t/Hff/s3MnQ==","_npmVersion":"10.9.7","description":"The MAIC slide DSL: the pure, dependency-free contract (types + JSON Schema + validators + version/migration helpers) that @openmaic/renderer and @openmaic/importer both depend on.","directories":{},"sideEffects":false,"_nodeVersion":"22.22.2","publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.8","typescript":"^5"},"_npmOperationalInternal":{"tmp":"tmp/dsl_0.0.1_1782285509285_0.26636746534368316","host":"s3://npm-registry-packages-npm-production"}},"0.0.2":{"name":"@openmaic/dsl","version":"0.0.2","keywords":["maic","dsl","slide","schema","contract"],"license":"MIT","_id":"@openmaic/dsl@0.0.2","maintainers":[{"name":"wyuc","email":"wangyucheng@cogevol.com"}],"homepage":"https://github.com/THU-MAIC/OpenMAIC#readme","bugs":{"url":"https://github.com/THU-MAIC/OpenMAIC/issues"},"dist":{"shasum":"de5caf48c6ed7f487d67fc26c39fa6268b5f3493","tarball":"https://registry.npmjs.org/@openmaic/dsl/-/dsl-0.0.2.tgz","fileCount":23,"integrity":"sha512-ge65iA8cLVoERKazJ6ydIT54Q88fQGM8vS+JnyVeG5on6cAfH/KA/AYODE1oCV/W1PcjAvcfasogxjz07c/Ecg==","signatures":[{"sig":"MEQCIC9EQphoI/ImaKOPkMlkPxpoZ89VrlM5cECOFHv62riNAiBDddXaamwQF+cWTfM5zAWY+NjSuRD7bA8wgrDZnoOA2A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@openmaic%2fdsl@0.0.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":66140},"main":"./dist/index.js","type":"module","_from":"file:openmaic-dsl-0.0.2.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"}},"scripts":{"dev":"tsc -p tsconfig.json --watch","test":"vitest run","build":"rm -rf dist && tsc -p tsconfig.json","clean":"rm -rf dist","typecheck":"tsc -p tsconfig.json --noEmit","test:watch":"vitest"},"_npmUser":{"name":"wyuc","email":"wangyucheng@cogevol.com"},"_resolved":"/tmp/ab7861dfd123cbeb07323e5a43678731/openmaic-dsl-0.0.2.tgz","_integrity":"sha512-ge65iA8cLVoERKazJ6ydIT54Q88fQGM8vS+JnyVeG5on6cAfH/KA/AYODE1oCV/W1PcjAvcfasogxjz07c/Ecg==","repository":{"url":"git+https://github.com/THU-MAIC/OpenMAIC.git","type":"git","directory":"packages/@openmaic/dsl"},"_npmVersion":"10.9.8","description":"The MAIC slide DSL: the pure, dependency-free contract (types + JSON Schema + validators + version/migration helpers) that @openmaic/renderer and @openmaic/importer both depend on.","directories":{},"sideEffects":false,"_nodeVersion":"22.23.0","publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.1.8","typescript":"^5"},"_npmOperationalInternal":{"tmp":"tmp/dsl_0.0.2_1782723293090_0.617803348046877","host":"s3://npm-registry-packages-npm-production"}},"0.1.0":{"name":"@openmaic/dsl","version":"0.1.0","keywords":["maic","dsl","slide","schema","contract"],"license":"MIT","_id":"@openmaic/dsl@0.1.0","maintainers":[{"name":"wyuc","email":"wangyucheng@cogevol.com"}],"homepage":"https://github.com/THU-MAIC/OpenMAIC#readme","bugs":{"url":"https://github.com/THU-MAIC/OpenMAIC/issues"},"dist":{"shasum":"032be184930a943b72301850ed8522b176f3d4b1","tarball":"https://registry.npmjs.org/@openmaic/dsl/-/dsl-0.1.0.tgz","fileCount":38,"integrity":"sha512-bxokJUmO7pSpyjUJgvg7xYSDzEI8ILcgi8pQXvIklD5wy92FuhVNZWIp02tP63xwnDzOWkckmwXy7WBtpEmaxA==","signatures":[{"sig":"MEQCIEZb0/1Z8utJwOnVjBK4s08IBYmXHEutsVdPNjZ+Xfu4AiAG2oUEmAFrd7ola29QbLxWIXghsxUbglWMsE77Iq6HJA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@openmaic%2fdsl@0.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":238943},"main":"./dist/index.js","type":"module","_from":"file:openmaic-dsl-0.1.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./schema/*":"./dist/schema/*"},"scripts":{"dev":"tsc -p tsconfig.json --watch","test":"vitest run","build":"rm -rf dist && tsc -p tsconfig.json && node scripts/gen-schema.mjs","clean":"rm -rf dist","typecheck":"tsc -p tsconfig.json --noEmit","test:watch":"vitest","build:schema":"node scripts/gen-schema.mjs"},"_npmUser":{"name":"wyuc","email":"wangyucheng@cogevol.com"},"_resolved":"/tmp/d1a065ac428d750a28758ee25b427c2a/openmaic-dsl-0.1.0.tgz","_integrity":"sha512-bxokJUmO7pSpyjUJgvg7xYSDzEI8ILcgi8pQXvIklD5wy92FuhVNZWIp02tP63xwnDzOWkckmwXy7WBtpEmaxA==","repository":{"url":"git+https://github.com/THU-MAIC/OpenMAIC.git","type":"git","directory":"packages/@openmaic/dsl"},"_npmVersion":"10.9.8","description":"The MAIC slide DSL: the pure, dependency-free contract (types + JSON Schema + validators + version/migration helpers) that @openmaic/renderer and @openmaic/importer both depend on.","directories":{},"sideEffects":false,"_nodeVersion":"22.23.0","publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"ajv":"^8.17.1","vitest":"^4.1.8","typescript":"^5","ts-json-schema-generator":"~2.4.0"},"_npmOperationalInternal":{"tmp":"tmp/dsl_0.1.0_1782839244647_0.764015735324618","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@openmaic/dsl","version":"0.2.0","keywords":["maic","dsl","slide","schema","contract"],"license":"MIT","_id":"@openmaic/dsl@0.2.0","maintainers":[{"name":"wyuc","email":"wangyucheng@cogevol.com"}],"homepage":"https://github.com/THU-MAIC/OpenMAIC#readme","bugs":{"url":"https://github.com/THU-MAIC/OpenMAIC/issues"},"dist":{"shasum":"827e16a03e14c2f61ab0eaf2d42adc2783ca32e4","tarball":"https://registry.npmjs.org/@openmaic/dsl/-/dsl-0.2.0.tgz","fileCount":38,"integrity":"sha512-pRXD0Cz1PJflo5X7PzOWuP+7msAYsr0s8AczxaJkrE3UVMFOWil9eXVRN/jLjMCUhihXpkbwpqCmn33k186E1w==","signatures":[{"sig":"MEYCIQCZyEzwywVgK3I45FGWz2Q20eyhHbI8euRnOixqkRScQwIhAPm/R0vBPGqvRRt9hq8ENBAE1RJxuReji1mEhQMawF7q","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@openmaic%2fdsl@0.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":256749},"main":"./dist/index.js","type":"module","_from":"file:openmaic-dsl-0.2.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./schema/*":"./dist/schema/*"},"scripts":{"dev":"tsc -p tsconfig.json --watch","test":"vitest run","build":"rm -rf dist && tsc -p tsconfig.json && node scripts/gen-schema.mjs","clean":"rm -rf dist","typecheck":"tsc -p tsconfig.json --noEmit","test:watch":"vitest","build:schema":"node scripts/gen-schema.mjs"},"_npmUser":{"name":"wyuc","email":"wangyucheng@cogevol.com"},"_resolved":"/tmp/b765eb02fb73d5cb281e3b68e9e4ecbf/openmaic-dsl-0.2.0.tgz","_integrity":"sha512-pRXD0Cz1PJflo5X7PzOWuP+7msAYsr0s8AczxaJkrE3UVMFOWil9eXVRN/jLjMCUhihXpkbwpqCmn33k186E1w==","repository":{"url":"git+https://github.com/THU-MAIC/OpenMAIC.git","type":"git","directory":"packages/@openmaic/dsl"},"_npmVersion":"10.9.8","description":"The MAIC slide DSL: the pure, dependency-free contract (types + JSON Schema + validators + version/migration helpers) that @openmaic/renderer and @openmaic/importer both depend on.","directories":{},"sideEffects":false,"_nodeVersion":"22.23.1","publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"ajv":"^8.17.1","vitest":"^4.1.8","typescript":"^5","ts-json-schema-generator":"~2.4.0"},"_npmOperationalInternal":{"tmp":"tmp/dsl_0.2.0_1782903376177_0.22981962045292392","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@openmaic/dsl","version":"0.3.0","keywords":["maic","dsl","slide","schema","contract"],"license":"MIT","_id":"@openmaic/dsl@0.3.0","maintainers":[{"name":"wyuc","email":"wangyucheng@cogevol.com"}],"homepage":"https://github.com/THU-MAIC/OpenMAIC#readme","bugs":{"url":"https://github.com/THU-MAIC/OpenMAIC/issues"},"dist":{"shasum":"57801a9c780dca13c79ac7d5244c2851f756a76c","tarball":"https://registry.npmjs.org/@openmaic/dsl/-/dsl-0.3.0.tgz","fileCount":42,"integrity":"sha512-Pbec1En43b5dBCD5BTDdqEN/ayRjDz3PoOUBSXq3oelLz0uBBjvK/LQRtwF3UznH5iU3Esg6vNc21JEP/oDEQQ==","signatures":[{"sig":"MEUCIQCaEQvblmaWesLc/G+hpnQEv1ETCQzd4K4xHr4VCuvmAAIgZnsHyLJTmw17OGq9IHYAAI8GiBbk0zIhZVY79w06X1M=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@openmaic%2fdsl@0.3.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":286231},"main":"./dist/index.js","type":"module","_from":"file:openmaic-dsl-0.3.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./schema/*":"./dist/schema/*"},"scripts":{"dev":"tsc -p tsconfig.json --watch","test":"vitest run","build":"rm -rf dist && tsc -p tsconfig.json && node scripts/gen-schema.mjs","clean":"rm -rf dist","typecheck":"tsc -p tsconfig.json --noEmit","test:watch":"vitest","build:schema":"node scripts/gen-schema.mjs"},"_npmUser":{"name":"wyuc","email":"wangyucheng@cogevol.com"},"_resolved":"/tmp/685f5be771ba2f2aec960ec104e8db42/openmaic-dsl-0.3.0.tgz","_integrity":"sha512-Pbec1En43b5dBCD5BTDdqEN/ayRjDz3PoOUBSXq3oelLz0uBBjvK/LQRtwF3UznH5iU3Esg6vNc21JEP/oDEQQ==","repository":{"url":"git+https://github.com/THU-MAIC/OpenMAIC.git","type":"git","directory":"packages/@openmaic/dsl"},"_npmVersion":"10.9.8","description":"The MAIC slide DSL: the pure, dependency-free contract (types + JSON Schema + validators + version/migration helpers) that @openmaic/renderer and @openmaic/importer both depend on.","directories":{},"sideEffects":false,"_nodeVersion":"22.23.1","publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"ajv":"^8.17.1","vitest":"^4.1.8","typescript":"^5","ts-json-schema-generator":"~2.4.0"},"_npmOperationalInternal":{"tmp":"tmp/dsl_0.3.0_1783059764807_0.5759277368155391","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"@openmaic/dsl","version":"0.4.0","keywords":["maic","dsl","slide","schema","contract"],"license":"MIT","_id":"@openmaic/dsl@0.4.0","maintainers":[{"name":"wyuc","email":"wangyucheng@cogevol.com"}],"homepage":"https://github.com/THU-MAIC/OpenMAIC#readme","bugs":{"url":"https://github.com/THU-MAIC/OpenMAIC/issues"},"dist":{"shasum":"f9aac3c806ea0f5545a9a75e082df2877b42fc4d","tarball":"https://registry.npmjs.org/@openmaic/dsl/-/dsl-0.4.0.tgz","fileCount":42,"integrity":"sha512-qxs2lz+WBNAuzFqb/PBATb+sdLG7LcecPHQkRtnNEnRzGGQ4NcRWy1X73y6WGEV3c1FaYuva87jMn2f/77LrdQ==","signatures":[{"sig":"MEUCIQCEycMxrq/2ZGy9SAmMhlo7J/co7DgcQx+Ga0kIstkDbwIgTUw7u55Cofq5TC8VA8ei1R4Im6C6DhcyWlUPos75Prs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@openmaic%2fdsl@0.4.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":291081},"main":"./dist/index.js","type":"module","_from":"file:openmaic-dsl-0.4.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./schema/*":"./dist/schema/*"},"scripts":{"dev":"tsc -p tsconfig.json --watch","test":"vitest run","build":"rm -rf dist && tsc -p tsconfig.json && node scripts/gen-schema.mjs","clean":"rm -rf dist","typecheck":"tsc -p tsconfig.json --noEmit","test:watch":"vitest","build:schema":"node scripts/gen-schema.mjs"},"_npmUser":{"name":"wyuc","email":"wangyucheng@cogevol.com"},"_resolved":"/tmp/3d2817865241c68fadd24aae3651a5d1/openmaic-dsl-0.4.0.tgz","_integrity":"sha512-qxs2lz+WBNAuzFqb/PBATb+sdLG7LcecPHQkRtnNEnRzGGQ4NcRWy1X73y6WGEV3c1FaYuva87jMn2f/77LrdQ==","repository":{"url":"git+https://github.com/THU-MAIC/OpenMAIC.git","type":"git","directory":"packages/@openmaic/dsl"},"_npmVersion":"10.9.8","description":"The MAIC slide DSL: the pure, dependency-free contract (types + JSON Schema + validators + version/migration helpers) that @openmaic/renderer and @openmaic/importer both depend on.","directories":{},"sideEffects":false,"_nodeVersion":"22.23.1","publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"ajv":"^8.17.1","vitest":"^4.1.8","typescript":"^5","ts-json-schema-generator":"~2.4.0"},"_npmOperationalInternal":{"tmp":"tmp/dsl_0.4.0_1783228649696_0.6577670662468411","host":"s3://npm-registry-packages-npm-production"}},"0.5.0":{"name":"@openmaic/dsl","version":"0.5.0","keywords":["maic","dsl","slide","schema","contract"],"license":"MIT","_id":"@openmaic/dsl@0.5.0","maintainers":[{"name":"wyuc","email":"wangyucheng@cogevol.com"}],"homepage":"https://github.com/THU-MAIC/OpenMAIC#readme","bugs":{"url":"https://github.com/THU-MAIC/OpenMAIC/issues"},"dist":{"shasum":"09677931ee511c22c7df575cbeadd3ec97ba7aee","tarball":"https://registry.npmjs.org/@openmaic/dsl/-/dsl-0.5.0.tgz","fileCount":50,"integrity":"sha512-FGkkJvwGp/MOKHkktev6idt9rYCxnjYEhie8gdIxmzoQIU8Rg1mbsTfAMvcfxAJ0UwjEveZ0egZO8E7a4qk8Bw==","signatures":[{"sig":"MEQCIF4np46uwH8cTYS9f/PYnfFrsqqgd2Yd+EWd3eNlwzN4AiA96RXLkF7KF0L5cvum17sR7fH80fKbpujsvVgdL1rsFQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@openmaic%2fdsl@0.5.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":374479},"main":"./dist/index.js","type":"module","_from":"file:openmaic-dsl-0.5.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./schema/*":"./dist/schema/*"},"scripts":{"dev":"tsc -p tsconfig.json --watch","test":"vitest run","build":"rm -rf dist && tsc -p tsconfig.json && node scripts/gen-schema.mjs","clean":"rm -rf dist","typecheck":"tsc -p tsconfig.json --noEmit","test:watch":"vitest","build:schema":"node scripts/gen-schema.mjs"},"_npmUser":{"name":"wyuc","email":"wangyucheng@cogevol.com"},"_resolved":"/tmp/2f7cd49357733e841bd82911b69a1fe6/openmaic-dsl-0.5.0.tgz","_integrity":"sha512-FGkkJvwGp/MOKHkktev6idt9rYCxnjYEhie8gdIxmzoQIU8Rg1mbsTfAMvcfxAJ0UwjEveZ0egZO8E7a4qk8Bw==","repository":{"url":"git+https://github.com/THU-MAIC/OpenMAIC.git","type":"git","directory":"packages/@openmaic/dsl"},"_npmVersion":"10.9.8","description":"The MAIC slide DSL: the pure, dependency-free contract (types + JSON Schema + validators + version/migration helpers) that @openmaic/renderer and @openmaic/importer both depend on.","directories":{},"sideEffects":false,"_nodeVersion":"22.23.1","publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"ajv":"^8.17.1","vitest":"^4.1.8","typescript":"^5","ts-json-schema-generator":"~2.4.0"},"_npmOperationalInternal":{"tmp":"tmp/dsl_0.5.0_1785384118342_0.39868135326893595","host":"s3://npm-registry-packages-npm-production"}},"0.6.0":{"name":"@openmaic/dsl","version":"0.6.0","keywords":["maic","dsl","slide","schema","contract"],"license":"MIT","_id":"@openmaic/dsl@0.6.0","maintainers":[{"name":"wyuc","email":"wangyucheng@cogevol.com"}],"homepage":"https://github.com/THU-MAIC/OpenMAIC#readme","bugs":{"url":"https://github.com/THU-MAIC/OpenMAIC/issues"},"dist":{"shasum":"e900f311f55b71bbbd270d9f1556c42dad6654de","tarball":"https://registry.npmjs.org/@openmaic/dsl/-/dsl-0.6.0.tgz","fileCount":50,"integrity":"sha512-2zPLFdkgDf5OYSSzAyAZ38NQuYq2W31PoumiMzHhhwhJ0gbZ49MGBNwBA4QXwz8uHgpRZKR/Ik6jyahVMcL0Pg==","signatures":[{"sig":"MEUCIQD61Dz/CwqzT1lOGk3OvqKDLO/jp4qjORaqaf1WDezULAIgHnXM0WZduvt8KiJcLrFi3A7MC2OfMF2rkwNTZOOxyLU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@openmaic%2fdsl@0.6.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":376205},"main":"./dist/index.js","type":"module","_from":"file:openmaic-dsl-0.6.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./schema/*":"./dist/schema/*"},"scripts":{"dev":"tsc -p tsconfig.json --watch","test":"vitest run","build":"rm -rf dist && tsc -p tsconfig.json && node scripts/gen-schema.mjs","clean":"rm -rf dist","typecheck":"tsc -p tsconfig.json --noEmit","test:watch":"vitest","build:schema":"node scripts/gen-schema.mjs"},"_npmUser":{"name":"wyuc","email":"wangyucheng@cogevol.com"},"_resolved":"/tmp/12c42c9e2aa3edd19fea73f48c2b290a/openmaic-dsl-0.6.0.tgz","_integrity":"sha512-2zPLFdkgDf5OYSSzAyAZ38NQuYq2W31PoumiMzHhhwhJ0gbZ49MGBNwBA4QXwz8uHgpRZKR/Ik6jyahVMcL0Pg==","repository":{"url":"git+https://github.com/THU-MAIC/OpenMAIC.git","type":"git","directory":"packages/@openmaic/dsl"},"_npmVersion":"10.9.8","description":"The MAIC slide DSL: the pure, dependency-free contract (types + JSON Schema + validators + version/migration helpers) that @openmaic/renderer and @openmaic/importer both depend on.","directories":{},"sideEffects":false,"_nodeVersion":"22.23.1","publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"ajv":"^8.17.1","vitest":"^4.1.8","typescript":"^5","ts-json-schema-generator":"~2.4.0"},"_npmOperationalInternal":{"tmp":"tmp/dsl_0.6.0_1785637758990_0.30066722486259523","host":"s3://npm-registry-packages-npm-production"}},"0.6.1":{"name":"@openmaic/dsl","version":"0.6.1","keywords":["maic","dsl","slide","schema","contract"],"license":"MIT","_id":"@openmaic/dsl@0.6.1","maintainers":[{"name":"wyuc","email":"wangyucheng@cogevol.com"}],"homepage":"https://github.com/THU-MAIC/OpenMAIC#readme","bugs":{"url":"https://github.com/THU-MAIC/OpenMAIC/issues"},"dist":{"shasum":"67df2b9953b4b196a2608029fd872a5fb1e3066d","tarball":"https://registry.npmjs.org/@openmaic/dsl/-/dsl-0.6.1.tgz","fileCount":50,"integrity":"sha512-/kdMtuZ8s/ZoNhegCqFA3X03WBFNWmj9lmmipf1xpc3B5rtGOjb5sYG3tWcIUJrbYkqBu+s0W2UGpAAzW7kUqA==","signatures":[{"sig":"MEQCIHyZl88oT+EoMllOZaNncMQ3ZB01BY/hdpDYz7Svk7F0AiBSQFvoj4qVDFHMcgoHOEtxeGMYuzK5T8lxO4t12fpu0w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@openmaic%2fdsl@0.6.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":383383},"main":"./dist/index.js","type":"module","_from":"file:openmaic-dsl-0.6.1.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./schema/*":"./dist/schema/*"},"scripts":{"dev":"tsc -p tsconfig.json --watch","test":"vitest run","build":"rm -rf dist && tsc -p tsconfig.json && node scripts/gen-schema.mjs","clean":"rm -rf dist","typecheck":"tsc -p tsconfig.json --noEmit","test:watch":"vitest","build:schema":"node scripts/gen-schema.mjs"},"_npmUser":{"name":"wyuc","email":"wangyucheng@cogevol.com"},"_resolved":"/tmp/62de1be9edf391c64aecc9e5365eca23/openmaic-dsl-0.6.1.tgz","_integrity":"sha512-/kdMtuZ8s/ZoNhegCqFA3X03WBFNWmj9lmmipf1xpc3B5rtGOjb5sYG3tWcIUJrbYkqBu+s0W2UGpAAzW7kUqA==","repository":{"url":"git+https://github.com/THU-MAIC/OpenMAIC.git","type":"git","directory":"packages/@openmaic/dsl"},"_npmVersion":"10.9.8","description":"The MAIC slide DSL: the pure, dependency-free contract (types + JSON Schema + validators + version/migration helpers) that @openmaic/renderer and @openmaic/importer both depend on.","directories":{},"sideEffects":false,"_nodeVersion":"22.23.1","publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"ajv":"^8.17.1","vitest":"^4.1.8","typescript":"^5","ts-json-schema-generator":"~2.4.0"},"_npmOperationalInternal":{"tmp":"tmp/dsl_0.6.1_1785653628019_0.2344033796937386","host":"s3://npm-registry-packages-npm-production"}},"0.6.2":{"name":"@openmaic/dsl","version":"0.6.2","keywords":["maic","dsl","slide","schema","contract"],"license":"MIT","_id":"@openmaic/dsl@0.6.2","maintainers":[{"name":"wyuc","email":"wangyucheng@cogevol.com"}],"homepage":"https://github.com/THU-MAIC/OpenMAIC#readme","bugs":{"url":"https://github.com/THU-MAIC/OpenMAIC/issues"},"dist":{"shasum":"459458dc65f9d0f2e425f54df8ad050668c13354","tarball":"https://registry.npmjs.org/@openmaic/dsl/-/dsl-0.6.2.tgz","fileCount":50,"integrity":"sha512-n0PjcatcjNLrm8ywm5UmJrwZH2wDottd9i+aiHojOLD8YaNZwZBu5h2fjtAJ25V4+78a/AQ/EwGiZIPDayK7zg==","signatures":[{"sig":"MEQCIEiWlVXjbn9dObSDJ9WMYgxdsgnR1NFm0fVx6Y+pjaftAiBtkQrda5dZwOm9IdnvrU4zdGChRAKdw1VGJiLShnZMVg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@openmaic%2fdsl@0.6.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":387015},"main":"./dist/index.js","type":"module","_from":"file:openmaic-dsl-0.6.2.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./schema/*":"./dist/schema/*"},"scripts":{"dev":"tsc -p tsconfig.json --watch","test":"vitest run","build":"rm -rf dist && tsc -p tsconfig.json && node scripts/gen-schema.mjs","clean":"rm -rf dist","typecheck":"tsc -p tsconfig.json --noEmit","test:watch":"vitest","build:schema":"node scripts/gen-schema.mjs"},"_npmUser":{"name":"wyuc","email":"wangyucheng@cogevol.com"},"_resolved":"/tmp/431533c17bf6d83d06f18b2c25754543/openmaic-dsl-0.6.2.tgz","_integrity":"sha512-n0PjcatcjNLrm8ywm5UmJrwZH2wDottd9i+aiHojOLD8YaNZwZBu5h2fjtAJ25V4+78a/AQ/EwGiZIPDayK7zg==","repository":{"url":"git+https://github.com/THU-MAIC/OpenMAIC.git","type":"git","directory":"packages/@openmaic/dsl"},"_npmVersion":"10.9.8","description":"The MAIC slide DSL: the pure, dependency-free contract (types + JSON Schema + validators + version/migration helpers) that @openmaic/renderer and @openmaic/importer both depend on.","directories":{},"sideEffects":false,"_nodeVersion":"22.23.1","publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"ajv":"^8.17.1","vitest":"^4.1.8","typescript":"^5","ts-json-schema-generator":"~2.4.0"},"_npmOperationalInternal":{"tmp":"tmp/dsl_0.6.2_1785725546825_0.7632502434962389","host":"s3://npm-registry-packages-npm-production"}},"0.6.3":{"name":"@openmaic/dsl","version":"0.6.3","keywords":["maic","dsl","slide","schema","contract"],"license":"MIT","_id":"@openmaic/dsl@0.6.3","maintainers":[{"name":"wyuc","email":"wangyucheng@cogevol.com"}],"homepage":"https://github.com/THU-MAIC/OpenMAIC#readme","bugs":{"url":"https://github.com/THU-MAIC/OpenMAIC/issues"},"dist":{"shasum":"35186f82f306ce6d2cccaac5b3f3c3dcac441187","tarball":"https://registry.npmjs.org/@openmaic/dsl/-/dsl-0.6.3.tgz","fileCount":50,"integrity":"sha512-0QrozUTWdD4tPhsqOC+KkNWsuWB4RbEPFeAQ4IGSA2OTjlLP4FQ96Os6FnZRejoWvnsaNtMsFsDbDFvTk37BHw==","signatures":[{"sig":"MEQCIQCLAxkfTB9ybTn+zzUhpW6XYC5MY7veCzxH137ldOqncwIfUzP2DMiOvU+L5/4Zxf7p6VzqN6qtRH9B7p/nM0dMEQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@openmaic%2fdsl@0.6.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":387526},"main":"./dist/index.js","type":"module","_from":"file:/home/runner/work/_temp/openmaic-package-tarballs/openmaic-dsl-0.6.3.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./schema/*":"./dist/schema/*"},"scripts":{"dev":"tsc -p tsconfig.json --watch","test":"vitest run","build":"rm -rf dist && tsc -p tsconfig.json && node scripts/gen-schema.mjs","clean":"rm -rf dist","typecheck":"tsc -p tsconfig.json --noEmit","test:watch":"vitest","build:schema":"node scripts/gen-schema.mjs"},"_npmUser":{"name":"wyuc","email":"wangyucheng@cogevol.com"},"_resolved":"/home/runner/work/_temp/openmaic-package-tarballs/openmaic-dsl-0.6.3.tgz","_integrity":"sha512-0QrozUTWdD4tPhsqOC+KkNWsuWB4RbEPFeAQ4IGSA2OTjlLP4FQ96Os6FnZRejoWvnsaNtMsFsDbDFvTk37BHw==","repository":{"url":"git+https://github.com/THU-MAIC/OpenMAIC.git","type":"git","directory":"packages/@openmaic/dsl"},"_npmVersion":"10.9.8","description":"The MAIC slide DSL: the pure, dependency-free contract (types + JSON Schema + validators + version/migration helpers) that @openmaic/renderer and @openmaic/importer both depend on.","directories":{},"sideEffects":false,"_nodeVersion":"22.23.1","publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"ajv":"^8.17.1","vitest":"^4.1.8","typescript":"^5","ts-json-schema-generator":"~2.4.0"},"_npmOperationalInternal":{"tmp":"tmp/dsl_0.6.3_1786013741736_0.24599139451784335","host":"s3://npm-registry-packages-npm-production"}},"0.7.0":{"name":"@openmaic/dsl","version":"0.7.0","keywords":["maic","dsl","slide","schema","contract"],"license":"MIT","_id":"@openmaic/dsl@0.7.0","maintainers":[{"name":"wyuc","email":"wangyucheng@cogevol.com"}],"homepage":"https://github.com/THU-MAIC/OpenMAIC#readme","bugs":{"url":"https://github.com/THU-MAIC/OpenMAIC/issues"},"dist":{"shasum":"57ab2fc1b61f016353afc8bdbacbd65499bb2f9c","tarball":"https://registry.npmjs.org/@openmaic/dsl/-/dsl-0.7.0.tgz","fileCount":58,"integrity":"sha512-cG7am+Umy4Ua2Z+ZyHED/LKBqIqNaFafTd0CbaPW1Z86eLLr8I++AVMEY4rHRkSROMys72X/N7BiNHADTNRJjA==","signatures":[{"sig":"MEQCIERqLjJNJLl+oLfvTML9/lv9zwN5TtydWkiBlFy/g0tYAiBI8W4d9a2nGU6fDEqFeNdU9CtjmBltRyBxzsoLrUeZtQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@openmaic%2fdsl@0.7.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":448579},"main":"./dist/index.js","type":"module","_from":"file:/home/runner/work/_temp/openmaic-package-tarballs/openmaic-dsl-0.7.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./schema/*":"./dist/schema/*"},"scripts":{"dev":"tsc -p tsconfig.json --watch","test":"vitest run","build":"rm -rf dist && tsc -p tsconfig.json && node scripts/gen-schema.mjs","clean":"rm -rf dist","typecheck":"tsc -p tsconfig.json --noEmit","test:watch":"vitest","build:schema":"node scripts/gen-schema.mjs"},"_npmUser":{"name":"wyuc","email":"wangyucheng@cogevol.com"},"_resolved":"/home/runner/work/_temp/openmaic-package-tarballs/openmaic-dsl-0.7.0.tgz","_integrity":"sha512-cG7am+Umy4Ua2Z+ZyHED/LKBqIqNaFafTd0CbaPW1Z86eLLr8I++AVMEY4rHRkSROMys72X/N7BiNHADTNRJjA==","repository":{"url":"git+https://github.com/THU-MAIC/OpenMAIC.git","type":"git","directory":"packages/@openmaic/dsl"},"_npmVersion":"10.9.8","description":"The MAIC slide DSL: the pure, dependency-free contract (types + JSON Schema + validators + version/migration helpers) that @openmaic/renderer and @openmaic/importer both depend on.","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"ajv":"^8.17.1","vitest":"^4.1.8","typescript":"^5","ts-json-schema-generator":"~2.4.0"},"_npmOperationalInternal":{"tmp":"tmp/dsl_0.7.0_1786018306584_0.5664928921685757","host":"s3://npm-registry-packages-npm-production"}},"0.8.0":{"name":"@openmaic/dsl","version":"0.8.0","keywords":["maic","dsl","slide","schema","contract"],"license":"MIT","_id":"@openmaic/dsl@0.8.0","maintainers":[{"name":"wyuc","email":"wangyucheng@cogevol.com"}],"homepage":"https://github.com/THU-MAIC/OpenMAIC#readme","bugs":{"url":"https://github.com/THU-MAIC/OpenMAIC/issues"},"dist":{"shasum":"b95d76ef898b8ed00c71f08b7508d07493a4c885","tarball":"https://registry.npmjs.org/@openmaic/dsl/-/dsl-0.8.0.tgz","fileCount":58,"integrity":"sha512-zPPA1147Pw9Uu2ufTgJiHBNlMF9u0v5e/FvS0a78RzGxyeylbfc/lqHFw8cpVwLhpP798zWRJapdvKrXMpxe4w==","signatures":[{"sig":"MEUCIDiiYp8K0b7lHOZ3yP83gK4/2gOeASMLvKkJGmraq5kTAiEA+JOpQveyd7EY3m/FYnYtktbDEQoecgL/h4voIuRWZW4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@openmaic%2fdsl@0.8.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":448455},"main":"./dist/index.js","type":"module","_from":"file:/home/runner/work/_temp/openmaic-package-tarballs/openmaic-dsl-0.8.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./schema/*":"./dist/schema/*"},"scripts":{"dev":"tsc -p tsconfig.json --watch","test":"vitest run","build":"rm -rf dist && tsc -p tsconfig.json && node scripts/gen-schema.mjs","clean":"rm -rf dist","typecheck":"tsc -p tsconfig.json --noEmit","test:watch":"vitest","build:schema":"node scripts/gen-schema.mjs"},"_npmUser":{"name":"wyuc","email":"wangyucheng@cogevol.com"},"_resolved":"/home/runner/work/_temp/openmaic-package-tarballs/openmaic-dsl-0.8.0.tgz","_integrity":"sha512-zPPA1147Pw9Uu2ufTgJiHBNlMF9u0v5e/FvS0a78RzGxyeylbfc/lqHFw8cpVwLhpP798zWRJapdvKrXMpxe4w==","repository":{"url":"git+https://github.com/THU-MAIC/OpenMAIC.git","type":"git","directory":"packages/@openmaic/dsl"},"_npmVersion":"10.9.8","description":"The MAIC slide DSL: the pure, dependency-free contract (types + JSON Schema + validators + version/migration helpers) that @openmaic/renderer and @openmaic/importer both depend on.","directories":{},"sideEffects":false,"_nodeVersion":"22.23.1","publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"ajv":"^8.17.1","vitest":"^4.1.8","typescript":"^5","ts-json-schema-generator":"~2.4.0"},"_npmOperationalInternal":{"tmp":"tmp/dsl_0.8.0_1786332136246_0.514544373288335","host":"s3://npm-registry-packages-npm-production"}},"0.9.0":{"name":"@openmaic/dsl","version":"0.9.0","keywords":["maic","dsl","slide","schema","contract"],"license":"MIT","_id":"@openmaic/dsl@0.9.0","maintainers":[{"name":"wyuc","email":"wangyucheng@cogevol.com"}],"homepage":"https://github.com/THU-MAIC/OpenMAIC#readme","bugs":{"url":"https://github.com/THU-MAIC/OpenMAIC/issues"},"dist":{"shasum":"2e59ccd01e40beeba77867e40eee525ab747d8ae","tarball":"https://registry.npmjs.org/@openmaic/dsl/-/dsl-0.9.0.tgz","fileCount":58,"integrity":"sha512-n54vtNswu2Z69gL+tfGEuCU0lfEi2AlWuHYPI2S9rFL8ZGbC2FaH1OkB2DOL/FJbgcqXlq3FkWFz/dOctn+0vw==","signatures":[{"sig":"MEQCIAPvmawZXrv8dfsG37tjQDpbqGyADphaioI3qErqHgWcAiAXNS5qIyzL9oD+q+KhyUMCw7C7W8DG+K8Y75oJOvt61Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@openmaic%2fdsl@0.9.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":449775},"main":"./dist/index.js","type":"module","_from":"file:/home/runner/work/_temp/openmaic-package-tarballs/openmaic-dsl-0.9.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./schema/*":"./dist/schema/*"},"scripts":{"dev":"tsc -p tsconfig.json --watch","test":"vitest run","build":"rm -rf dist && tsc -p tsconfig.json && node scripts/gen-schema.mjs","clean":"rm -rf dist","typecheck":"tsc -p tsconfig.json --noEmit","test:watch":"vitest","build:schema":"node scripts/gen-schema.mjs"},"_npmUser":{"name":"wyuc","email":"wangyucheng@cogevol.com"},"_resolved":"/home/runner/work/_temp/openmaic-package-tarballs/openmaic-dsl-0.9.0.tgz","_integrity":"sha512-n54vtNswu2Z69gL+tfGEuCU0lfEi2AlWuHYPI2S9rFL8ZGbC2FaH1OkB2DOL/FJbgcqXlq3FkWFz/dOctn+0vw==","repository":{"url":"git+https://github.com/THU-MAIC/OpenMAIC.git","type":"git","directory":"packages/@openmaic/dsl"},"_npmVersion":"10.9.8","description":"The MAIC slide DSL: the pure, dependency-free contract (types + JSON Schema + validators + version/migration helpers) that @openmaic/renderer and @openmaic/importer both depend on.","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"ajv":"^8.17.1","vitest":"^4.1.8","typescript":"^5","ts-json-schema-generator":"~2.4.0"},"_npmOperationalInternal":{"tmp":"tmp/dsl_0.9.0_1786787134929_0.8718976739489299","host":"s3://npm-registry-packages-npm-production"}},"0.10.0":{"name":"@openmaic/dsl","version":"0.10.0","keywords":["maic","dsl","slide","schema","contract"],"license":"MIT","_id":"@openmaic/dsl@0.10.0","maintainers":[{"name":"wyuc","email":"wangyucheng@cogevol.com"}],"homepage":"https://github.com/THU-MAIC/OpenMAIC#readme","bugs":{"url":"https://github.com/THU-MAIC/OpenMAIC/issues"},"dist":{"shasum":"5327c69eb040207e4dd3bb047e04076e09a6ad0e","tarball":"https://registry.npmjs.org/@openmaic/dsl/-/dsl-0.10.0.tgz","fileCount":66,"integrity":"sha512-wqr6xeVae94GF68SAbGzy/aMhSUgx+LNhxxeB9N4dQ5KxLYXgK2N0Rgu7SKsCLEK3+3H0DQWaC6usfrTcp+xZw==","signatures":[{"sig":"MEUCIC4P3K0RMUBOWK4tnGT/YKf4Rsj9ZaS3veaqv+Q+38QDAiEAisUapLTFAnejzAKUNxZ4GbRBxgbA3tw5LeAlz0RoKF8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@openmaic%2fdsl@0.10.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":472379},"main":"./dist/index.js","type":"module","_from":"file:/home/runner/work/_temp/openmaic-package-tarballs/openmaic-dsl-0.10.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./schema/*":"./dist/schema/*"},"scripts":{"dev":"tsc -p tsconfig.json --watch","test":"vitest run","build":"rm -rf dist && tsc -p tsconfig.json && node scripts/gen-schema.mjs","clean":"rm -rf dist","typecheck":"tsc -p tsconfig.json --noEmit","test:watch":"vitest","build:schema":"node scripts/gen-schema.mjs"},"_npmUser":{"name":"wyuc","email":"wangyucheng@cogevol.com"},"_resolved":"/home/runner/work/_temp/openmaic-package-tarballs/openmaic-dsl-0.10.0.tgz","_integrity":"sha512-wqr6xeVae94GF68SAbGzy/aMhSUgx+LNhxxeB9N4dQ5KxLYXgK2N0Rgu7SKsCLEK3+3H0DQWaC6usfrTcp+xZw==","repository":{"url":"git+https://github.com/THU-MAIC/OpenMAIC.git","type":"git","directory":"packages/@openmaic/dsl"},"_npmVersion":"10.9.8","description":"The MAIC slide DSL: the pure, dependency-free contract (types + JSON Schema + validators + version/migration helpers) that @openmaic/renderer and @openmaic/importer both depend on.","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"ajv":"^8.17.1","vitest":"^4.1.8","typescript":"^5","ts-json-schema-generator":"~2.4.0"},"_npmOperationalInternal":{"tmp":"tmp/dsl_0.10.0_1787143821977_0.13712377337902515","host":"s3://npm-registry-packages-npm-production"}},"0.10.1":{"name":"@openmaic/dsl","version":"0.10.1","keywords":["maic","dsl","slide","schema","contract"],"license":"MIT","_id":"@openmaic/dsl@0.10.1","maintainers":[{"name":"wyuc","email":"wangyucheng@cogevol.com"}],"homepage":"https://github.com/THU-MAIC/OpenMAIC#readme","bugs":{"url":"https://github.com/THU-MAIC/OpenMAIC/issues"},"dist":{"shasum":"1ab4ca639ae532ce529e406b5efc0f74785520b7","tarball":"https://registry.npmjs.org/@openmaic/dsl/-/dsl-0.10.1.tgz","fileCount":66,"integrity":"sha512-Ebyav9Dx2a5rgnIXDtJ151rnQO8KQ4DJqHhj22O8LTCZxaTCj0WeiN6WRoiyZuPnfwlErRY1Sw8IxGrMr0WZEA==","signatures":[{"sig":"MEYCIQCnPvvXXgjx3ZHAe4WbI07i8C0uGSi/pnY0fT2P2JM2jAIhALLfDXvVbS5dY9mp2vxWQzBw1FdewhO7AsFE79VnHSoy","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@openmaic%2fdsl@0.10.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":472671},"main":"./dist/index.js","type":"module","_from":"file:/home/runner/work/_temp/openmaic-package-tarballs/openmaic-dsl-0.10.1.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./schema/*":"./dist/schema/*"},"scripts":{"dev":"tsc -p tsconfig.json --watch","test":"vitest run","build":"rm -rf dist && tsc -p tsconfig.json && node scripts/gen-schema.mjs","clean":"rm -rf dist","typecheck":"tsc -p tsconfig.json --noEmit","test:watch":"vitest","build:schema":"node scripts/gen-schema.mjs"},"_npmUser":{"name":"wyuc","email":"wangyucheng@cogevol.com"},"_resolved":"/home/runner/work/_temp/openmaic-package-tarballs/openmaic-dsl-0.10.1.tgz","_integrity":"sha512-Ebyav9Dx2a5rgnIXDtJ151rnQO8KQ4DJqHhj22O8LTCZxaTCj0WeiN6WRoiyZuPnfwlErRY1Sw8IxGrMr0WZEA==","repository":{"url":"git+https://github.com/THU-MAIC/OpenMAIC.git","type":"git","directory":"packages/@openmaic/dsl"},"_npmVersion":"10.9.8","description":"The MAIC slide DSL: the pure, dependency-free contract (types + JSON Schema + validators + version/migration helpers) that @openmaic/renderer and @openmaic/importer both depend on.","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"ajv":"^8.17.1","vitest":"^4.1.8","typescript":"^5","ts-json-schema-generator":"~2.4.0"},"_npmOperationalInternal":{"tmp":"tmp/dsl_0.10.1_1787553674517_0.34372666188306855","host":"s3://npm-registry-packages-npm-production"}},"0.11.0":{"name":"@openmaic/dsl","version":"0.11.0","keywords":["maic","dsl","slide","schema","contract"],"license":"MIT","_id":"@openmaic/dsl@0.11.0","maintainers":[{"name":"wyuc","email":"wangyucheng@cogevol.com"}],"homepage":"https://github.com/THU-MAIC/OpenMAIC#readme","bugs":{"url":"https://github.com/THU-MAIC/OpenMAIC/issues"},"dist":{"shasum":"3ea02d7b9c60c1455a09f83b7ad66ef8fd0c2430","tarball":"https://registry.npmjs.org/@openmaic/dsl/-/dsl-0.11.0.tgz","fileCount":70,"integrity":"sha512-eEULppcYSRxE3YvB3mVVxP3hgW8T3ihyPWbIh3En8iA1y+QiRL9KH0IfeyBH3MuXDgscpK4j17QxcbtJv4gpmA==","signatures":[{"sig":"MEYCIQCQkOavPnmlDmK5whoLKcE9EAGOVljw9VfeFiJENEC46QIhANauDadSfAovAUQscE495c5VF3OMI+uLocHCsT4Qp+NO","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@openmaic%2fdsl@0.11.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":489769},"main":"./dist/index.js","type":"module","_from":"file:/home/runner/work/_temp/openmaic-package-tarballs/openmaic-dsl-0.11.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./schema/*":"./dist/schema/*"},"scripts":{"dev":"tsc -p tsconfig.json --watch","test":"vitest run","build":"rm -rf dist && tsc -p tsconfig.json && node scripts/gen-schema.mjs","clean":"rm -rf dist","typecheck":"tsc -p tsconfig.json --noEmit","test:watch":"vitest","build:schema":"node scripts/gen-schema.mjs"},"_npmUser":{"name":"wyuc","email":"wangyucheng@cogevol.com"},"_resolved":"/home/runner/work/_temp/openmaic-package-tarballs/openmaic-dsl-0.11.0.tgz","_integrity":"sha512-eEULppcYSRxE3YvB3mVVxP3hgW8T3ihyPWbIh3En8iA1y+QiRL9KH0IfeyBH3MuXDgscpK4j17QxcbtJv4gpmA==","repository":{"url":"git+https://github.com/THU-MAIC/OpenMAIC.git","type":"git","directory":"packages/@openmaic/dsl"},"_npmVersion":"10.9.8","description":"The MAIC slide DSL: the pure, dependency-free contract (types + JSON Schema + validators + version/migration helpers) that @openmaic/renderer and @openmaic/importer both depend on.","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"ajv":"^8.17.1","vitest":"^4.1.8","typescript":"^5","ts-json-schema-generator":"~2.4.0"},"_npmOperationalInternal":{"tmp":"tmp/dsl_0.11.0_1787897753236_0.7396164423791949","host":"s3://npm-registry-packages-npm-production"}},"0.11.1":{"name":"@openmaic/dsl","version":"0.11.1","keywords":["maic","dsl","slide","schema","contract"],"license":"MIT","_id":"@openmaic/dsl@0.11.1","maintainers":[{"name":"wyuc","email":"wangyucheng@cogevol.com"}],"homepage":"https://github.com/THU-MAIC/OpenMAIC#readme","bugs":{"url":"https://github.com/THU-MAIC/OpenMAIC/issues"},"dist":{"shasum":"1ad8364bdaf56c2e74ac88f9e0cc1ab1fb42075c","tarball":"https://registry.npmjs.org/@openmaic/dsl/-/dsl-0.11.1.tgz","fileCount":70,"integrity":"sha512-MQUE766TScxaYhMUy3myt9a5dwN1j78PPR5DZBH0vsOSm1t2tE88dDwD0UVLAu26s7b6J0Yz7+FHFgZQWktqng==","signatures":[{"sig":"MEQCIB//jgmvW/oD3mCNaOIaWT24daI4Wk9wK8pGNZkLjvDtAiAgPKgSHjyAifmgN8l+XzQbENMQQo3CVB/OtV6u1M31IQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@openmaic%2fdsl@0.11.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":489883},"main":"./dist/index.js","type":"module","_from":"file:/home/runner/work/_temp/openmaic-package-tarballs/openmaic-dsl-0.11.1.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./schema/*":"./dist/schema/*"},"scripts":{"dev":"tsc -p tsconfig.json --watch","test":"vitest run","build":"node -e \"require('fs').rmSync('dist',{recursive:true,force:true})\" && tsc -p tsconfig.json && node scripts/gen-schema.mjs","clean":"node -e \"require('fs').rmSync('dist',{recursive:true,force:true})\"","typecheck":"tsc -p tsconfig.json --noEmit","test:watch":"vitest","build:schema":"node scripts/gen-schema.mjs"},"_npmUser":{"name":"wyuc","email":"wangyucheng@cogevol.com"},"_resolved":"/home/runner/work/_temp/openmaic-package-tarballs/openmaic-dsl-0.11.1.tgz","_integrity":"sha512-MQUE766TScxaYhMUy3myt9a5dwN1j78PPR5DZBH0vsOSm1t2tE88dDwD0UVLAu26s7b6J0Yz7+FHFgZQWktqng==","repository":{"url":"git+https://github.com/THU-MAIC/OpenMAIC.git","type":"git","directory":"packages/@openmaic/dsl"},"_npmVersion":"10.9.8","description":"The MAIC slide DSL: the pure, dependency-free contract (types + JSON Schema + validators + version/migration helpers) that @openmaic/renderer and @openmaic/importer both depend on.","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"ajv":"^8.17.1","vitest":"^4.1.8","typescript":"^5","ts-json-schema-generator":"~2.4.0"},"_npmOperationalInternal":{"tmp":"tmp/dsl_0.11.1_1788313775203_0.8979112599319068","host":"s3://npm-registry-packages-npm-production"}},"0.11.2":{"_id":"@openmaic/dsl@0.11.2","bugs":{"url":"https://github.com/THU-MAIC/OpenMAIC/issues"},"dist":{"shasum":"3b7b137ae2c4802e02781154e5b1f2125c619b85","tarball":"https://registry.npmjs.org/@openmaic/dsl/-/dsl-0.11.2.tgz","fileCount":70,"integrity":"sha512-5XSktj2Yl7CoSUH+UPX7ptCuaS1pKnvgLl7ekIKMatso1pknouM28biRyFTRihgTwLCypK7mSCuxsyT007kNMQ==","signatures":[{"sig":"MEUCIQC3rs5D5mNiMnR6dbcocmCLlpzdwNN/pXuOkXMdV7oBSAIgItbBPdaUvqMMajMSVnudH9SffJs9jn804TjgvjMZjAk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQCIktdI0cIyljNs9A0Q+QFccrC5WIhbGTyP+yf4m7kNwQIhAK6hOkv91Q+KicxQbOnzCGf4TUC4ESYUBIZoGdl0Rj1v"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@openmaic%2fdsl@0.11.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":500691},"main":"./dist/index.js","name":"@openmaic/dsl","type":"module","_from":"file:/home/runner/work/_temp/openmaic-package-tarballs/openmaic-dsl-0.11.2.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./schema/*":"./dist/schema/*"},"license":"MIT","scripts":{"dev":"tsc -p tsconfig.json --watch","test":"vitest run","build":"node -e \"require('fs').rmSync('dist',{recursive:true,force:true})\" && tsc -p tsconfig.json && node scripts/gen-schema.mjs","clean":"node -e \"require('fs').rmSync('dist',{recursive:true,force:true})\"","typecheck":"tsc -p tsconfig.json --noEmit","test:watch":"vitest","build:schema":"node scripts/gen-schema.mjs"},"version":"0.11.2","_npmUser":{"name":"wyuc","email":"wangyucheng@cogevol.com"},"homepage":"https://github.com/THU-MAIC/OpenMAIC#readme","keywords":["maic","dsl","slide","schema","contract"],"_resolved":"/home/runner/work/_temp/openmaic-package-tarballs/openmaic-dsl-0.11.2.tgz","_integrity":"sha512-5XSktj2Yl7CoSUH+UPX7ptCuaS1pKnvgLl7ekIKMatso1pknouM28biRyFTRihgTwLCypK7mSCuxsyT007kNMQ==","repository":{"url":"git+https://github.com/THU-MAIC/OpenMAIC.git","type":"git","directory":"packages/@openmaic/dsl"},"_npmVersion":"10.9.8","description":"The MAIC slide DSL: the pure, dependency-free contract (types + JSON Schema + validators + version/migration helpers) that @openmaic/renderer and @openmaic/importer both depend on.","directories":{},"maintainers":[{"name":"wyuc","email":"wangyucheng@cogevol.com"}],"sideEffects":false,"_nodeVersion":"22.23.2","publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"_hasShrinkwrap":false,"devDependencies":{"ajv":"^8.17.1","vitest":"^4.1.8","typescript":"^5","ts-json-schema-generator":"~2.4.0"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/dsl_0.11.2_1789653240652_0.024076045090727805"}}},"time":{"created":"2026-06-24T07:18:29.100Z","modified":"2026-09-17T13:54:01.173Z","0.0.1":"2026-06-24T07:18:29.432Z","0.0.2":"2026-06-29T08:54:53.226Z","0.1.0":"2026-06-30T17:07:24.773Z","0.2.0":"2026-07-01T10:56:16.340Z","0.3.0":"2026-07-03T06:22:44.984Z","0.4.0":"2026-07-05T05:17:29.814Z","0.5.0":"2026-07-30T04:01:58.509Z","0.6.0":"2026-08-02T02:29:19.133Z","0.6.1":"2026-08-02T06:53:48.149Z","0.6.2":"2026-08-03T02:52:26.980Z","0.6.3":"2026-08-06T10:55:41.897Z","0.7.0":"2026-08-06T12:11:46.736Z","0.8.0":"2026-08-10T03:22:16.425Z","0.9.0":"2026-08-15T09:45:35.086Z","0.10.0":"2026-08-19T12:50:22.132Z","0.10.1":"2026-08-24T06:41:14.664Z","0.11.0":"2026-08-28T06:15:53.369Z","0.11.1":"2026-09-02T01:49:35.359Z","0.11.2":"2026-09-17T13:54:00.762Z"},"bugs":{"url":"https://github.com/THU-MAIC/OpenMAIC/issues"},"license":"MIT","homepage":"https://github.com/THU-MAIC/OpenMAIC#readme","keywords":["maic","dsl","slide","schema","contract"],"repository":{"url":"git+https://github.com/THU-MAIC/OpenMAIC.git","type":"git","directory":"packages/@openmaic/dsl"},"description":"The MAIC slide DSL: the pure, dependency-free contract (types + JSON Schema + validators + version/migration helpers) that @openmaic/renderer and @openmaic/importer both depend on.","maintainers":[{"name":"wyuc","email":"wangyucheng@cogevol.com"}],"readme":"# @openmaic/dsl\n\nThe **contract keystone** of the MAIC SDK family. `@openmaic/dsl` is *pure spec* — the\nslide object-model types, build-time JSON Schema artifacts, pure validators / type-guards,\nand version/migration helpers — with **zero runtime dependencies** (no React, no\npptx, no echarts).\n\nThat purity is the whole point: the renderer, the importer, and any future\npackage can depend on `@openmaic/dsl` without pulling in junk.\n\n## Dependency arrows (acyclic)\n\n```\n@openmaic/dsl       ->  (nothing)\n@openmaic/renderer  ->  @openmaic/dsl\n@openmaic/importer  ->  @openmaic/dsl\n@openmaic/exporter  ->  @openmaic/dsl     (reserved, future)\n```\n\n`@openmaic/dsl` is the only package everything else depends on, and it depends on\nnothing.\n\n## What's in here\n\n| Module        | Contents                                                            |\n| ------------- | ------------------------------------------------------------------- |\n| `slides.ts`   | The slide object model: `Slide`, `PPTElement` and all variants, theme, background, animation, table/chart/code types, plus `ElementTypes` / `ShapePathFormulasKeys` enums. |\n| `stage.ts`    | The lesson skeleton: `Stage`, generic `Scene<TAction, TContent>`, `SceneType`, `StageMode`, `Whiteboard`, `VideoManifest`, `SlideContent`, `QuizContent`, `MultiAgentConfig`, `GeneratedAgentConfig`, plus `isSlideContent` / `isQuizContent` guards. |\n| `action.ts`   | The playback verb set: `Action` and all variants (spotlight, laser, speech, the `Wb*` whiteboard family, `play_video`, `discussion`, and the `widget_*` interaction actions), `ActionType`, the frozen `ACTION_TYPES` set + `isActionType` guard, the `FIRE_AND_FORGET_ACTIONS` / `SLIDE_ONLY_ACTIONS` / `SYNC_ACTIONS` category lists, plus the `PercentageGeometry` overlay type. |\n| `guards.ts`   | Pure discriminant type-guards (`isTextElement`, …) and `PPT_ELEMENT_TYPES`. |\n| `validate.ts` | Pure, zero-dep structural validators — `validateStage` / `validateScene` / `validateAction` returning an error-collecting `ValidationResult`. |\n| `normalize.ts` | Pure, zero-dep defaulters — `normalizeElement` / `normalizeSlide` / `normalizeScene` / `normalizeStage` and the canonical `ELEMENT_DEFAULTS`. Fills required-field defaults, derives geometry, fails loud on malformed input; the repair counterpart to `validate*`. `normalizeSlideWith({ onInvalid: 'drop', onDropped })` builds a map-safe `normalizeSlide` variant so producers normalizing wild-world input (imported decks, model output) can degrade per element instead of failing the document; `normalizeSlide` itself stays unary (`slides.map(normalizeSlide)` keeps working). |\n| `asset-manifest.ts` | Pure document asset enumeration: `enumerateAssetManifest`, `AssetManifest`, entry kinds and optional caller-supplied metadata enrichment. |\n| `slide-media-slots.ts` | Canonical read-only role descriptors for every media-bearing slide slot. |\n| `version.ts`  | Serialized-contract version + migration registry: `DSL_VERSION`, the `DSL_MIGRATIONS` ladder, and the pure `migrate` / `dslVersionOf` / `needsMigration` runner. |\n\n```ts\nimport type { Slide, PPTElement, Action } from '@openmaic/dsl';\nimport { isTextElement, DSL_VERSION, SYNC_ACTIONS } from '@openmaic/dsl';\n```\n\n## Asset manifest (0.10)\n\n`enumerateAssetManifest(document, options?)` is the standard, IO-free answer to\nwhich asset references a stage document touches. It walks stage whiteboards,\nscene canvases, scene whiteboards, speech actions, and video-manifest keys. It\nrecognizes slide backgrounds; image, audio, and video sources; video\n`mediaRef`s and posters; and speech `audioId`s.\n\n```ts\nimport {\n  enumerateAssetManifest,\n  type AssetManifest,\n  type AssetManifestMetadata,\n} from '@openmaic/dsl';\n\nconst manifest: AssetManifest = enumerateAssetManifest(document, {\n  metadata(ref, kind): AssetManifestMetadata | undefined {\n    return metadataAlreadyKnownByTheCaller(ref, kind);\n  },\n});\n```\n\n`manifest.entries` contains one entry per distinct `(ref, kind)` pair in\nfirst-occurrence document order. If one ref appears in several roles, each role\ngets its own entry; the first occurrence of each pair fixes its deterministic\nordering slot without losing ownership information.\nOptional metadata (`byteSize`, `mimeType`, `durationSeconds`, `voice`, and\n`prompt`) is copied from the callback once per distinct `(ref, kind)` pair. The enumerator\nitself performs no IO and never mutates the document. The callback is an\nexplicit caller boundary: it may consult caller-owned state, but it must not\nmutate the document.\n\n`manifest.referenceCounts` counts logical owners, not raw slots. A video\nelement using the same ref in both `src` and `mediaRef` is one owner; its poster\nis separate. Owner keys use traversal positions rather than user-controlled\nscene, slide, element, or action IDs, so duplicate IDs do not collapse distinct\nowners. Consumers deciding whether bytes may be replaced in place should use\nthese counts instead of rebuilding an ID-keyed walk.\n\n## Runtime layer (schema + validators + normalizers)\n\nThe contract is enforceable two ways — a zero-dependency in-process validator\nand a cross-language JSON Schema — both generated from / aligned to the same\npublic TS types, and both honoring the zero-runtime-dependency invariant; a\nthird zero-dependency `normalize*` family repairs a document to satisfy them:\n\n1. **JSON Schema artifacts (cross-language mirror)** — `Stage`, the default\n   `Scene<Action, SceneContent>`, and `Action` are emitted as standalone JSON\n   Schema at build time and shipped. This is the language-neutral mirror of the\n   contract for non-TS consumers, and the place to go for exhaustive value-level\n   (type / format) checking:\n\n   ```ts\n   import stageSchema from '@openmaic/dsl/schema/stage.schema.json' with { type: 'json' };\n   import sceneSchema from '@openmaic/dsl/schema/scene.schema.json' with { type: 'json' };\n   import actionSchema from '@openmaic/dsl/schema/action.schema.json' with { type: 'json' };\n   // feed to any JSON Schema validator (ajv, or a non-TS / non-JS consumer)\n   ```\n\n   The schema is generated from the TS types (the single source of truth) by\n   `ts-json-schema-generator`, a **devDependency** — it never enters the runtime\n   dependency set.\n\n2. **Pure validators (in-process boundary)** — `validate*` are hand-written,\n   zero-dependency checks layered on the guards: object shape, required fields\n   (including each action variant's, e.g. a `spotlight`'s `elementId`), known\n   discriminants, and the scene `type` <-> `content` binding the public `Scene`\n   type enforces. Because they add no dependency, in-process (TS / JS) producers\n   and consumers — generators, importers, the runtime engine — can rely on them\n   directly without shipping a schema validator. They are a structural subset of\n   the schema (presence + discriminants; the schema additionally checks each\n   field's value shape), and describe the same contract. Both are kept in lockstep\n   by a test that pins the validators' per-variant required fields to the\n   generated schema.\n\n   ```ts\n   import { validateStage, validateScene, validateAction } from '@openmaic/dsl';\n\n   const result = validateScene(input);\n   if (!result.valid) throw new Error(result.errors.map((e) => `${e.path}: ${e.message}`).join('; '));\n   ```\n\n   `ValidationResult` is `{ valid: true } | { valid: false; errors: { path; message }[] }` —\n   it collects every issue rather than failing on the first.\n\n3. **Pure normalizers (repair boundary)** — where `validate*` *reports* on a\n   document, `normalize*` *repairs* one, so producers stop carrying their own\n   imperative \"fix up the output\" pass. `normalizeElement` (and the\n   `normalizeSlide` / `normalizeScene` / `normalizeStage` walkers) fill the\n   required fields a producer may have left off, derive geometry-dependent fields\n   (a line's `start` / `end`, a shape's `viewBox` / `path`), and **fail loud** on\n   a present-but-wrong-typed field — returning a fully-defaulted document that\n   then satisfies the validators. Pure and non-mutating; idempotent.\n\n   The *static* defaults (`ELEMENT_DEFAULTS`) are the single source of truth and\n   also ride out on the JSON Schema as `@default` annotations (so non-TS\n   consumers ship them too); a test pins the two together. `normalize*` owns only\n   the producer-independent defaults — media-specific reconciliation (e.g.\n   fitting an image box to a resolved asset's real dimensions) stays a producer\n   concern.\n\n   Scope: `normalize*` owns element **content** (the per-variant required fields\n   + derivable geometry). It does **not** fill or check the base identity /\n   geometry every element shares (`id`, `left` / `top` / `width` / `height` /\n   `rotate`) — those are producer-supplied (the `id` is often assigned\n   downstream) and carry no content default. `normalize*` and `validate*` are\n   complementary: normalize repairs content, validate / the schema check the\n   full structure.\n\n   ```ts\n   import { normalizeElement, normalizeScene, ELEMENT_DEFAULTS } from '@openmaic/dsl';\n\n   const el = normalizeElement(rawElement); // required fields filled, geometry derived\n   const scene = normalizeScene(rawScene); //  walks the slide canvas + whiteboards\n   ```\n\n## Version & migration\n\nTwo version numbers live in this package and do **not** track each other:\n\n- the **npm package version** (`package.json`) — the semver of the *code/API*\n  artifact; bumps when exports or behavior change.\n- **`DSL_VERSION`** — the version of the *serialized* slide contract (the\n  on-disk document shape). It bumps only when a persisted document's shape\n  changes, independent of package releases. (A third, finer axis —\n  `SlideContent.schemaVersion` — versions the PPTist canvas *inside* a slide and\n  is migrated app-side; it is orthogonal to `DSL_VERSION`.)\n\n`version.ts` owns the document-level migration mechanism, zero-dependency and\npure like the validators:\n\n```ts\nimport { DSL_VERSION, migrate, dslVersionOf, needsMigration } from '@openmaic/dsl';\n\nconst current = migrate(doc); // walks doc from its written version up to DSL_VERSION\n```\n\n- `DSL_MIGRATIONS` is an ordered ladder of `{ from, to, migrate }` steps; each\n  step's `to` is the next step's `from`, and the last reaches `DSL_VERSION`.\n- `migrate(doc)` reads the document's version from its `dslVersion` envelope\n  field (absent ⇒ treated as legacy/unversioned), walks the ladder applying each\n  pure transform, and stamps the result. It is **idempotent** (a current\n  document is returned as-is), **forward-compatible** (a document stamped newer\n  than `DSL_VERSION` is returned untouched, never silently downgraded), and\n  **fail-loud** (a gap in the ladder throws rather than yielding a half-migrated\n  document).\n\nThe first ladder entry is a no-op transform that stamps legacy documents up to\nthe current `DSL_VERSION`: promoting `Action` into the contract and adding\nvalidators did not change any serialized shape, so the current on-disk shape\nalready *is* `0.1.0`. The entry wires the pipeline end to end and gives real\ndocuments a version to migrate forward from; the first real transform is\nappended (and `DSL_VERSION` bumped) when the serialized shape first changes.\n\nPromoting `interactive` and `pbl` into the contract does **not** bump\n`DSL_VERSION`: it widens accepted content without changing stored bytes or the\nmeaning of an existing field. This follows the additive-field precedent in\nthe `GeneratedAgentConfig` compatibility note in `stage.ts`; schema-pinned\nconsumers still need the new package version to accept documents carrying the\nnewly described shapes.\n\nWhich aggregate carries the `dslVersion` field — a whole `Stage`, a single Scene\nrow, or a bundle — is left to the store that first consumes this pipeline; the\nrunner only needs the envelope field.\n\n## Runtime envelope (#869)\n\nLearner-produced runtime data (chat, quiz attempts, playback facts) is persisted\noutside the document, per learner, through a `RuntimeStore` (`@openmaic/storage`).\nThis package owns the envelope: `RuntimeSession` (identity + lifecycle, keyed by\nstage/learner/kind) and `RuntimeRecord<TPayload>` (ordered facts; the\nstore-assigned `seq` is the replay ordering key). Core-kind payload skeletons\n(`chat`, `quizAttempt`) live here; payload internals are app-owned, validated at\nthe store boundary via injected validators (`runtime.ts` guards + `validate.ts`).\nA `RuntimeSession` carries its **own** version envelope field,\n`runtimeDslVersion` — mechanically disjoint from a document's `dslVersion` — and\nrides its **own** version line: `RUNTIME_DSL_VERSION` and a dedicated\n`RUNTIME_DSL_MIGRATIONS` ladder, walked by `migrateRuntime` (not `migrate`), with\n`runtimeDslVersionOf` / `needsRuntimeMigration` as the runtime-line counterparts\nof `dslVersionOf` / `needsMigration`.\n\nUnlike the document line, the runtime line has **no unversioned epoch**. Real\npre-versioning documents exist, so `migrate` lifts an unstamped document from\n`UNVERSIONED_DSL_VERSION` via its first ladder entry. Nothing legitimately\npredates the runtime envelope, though — it is a brand-new contract, and the\nfuture `RuntimeStore` stamps `RUNTIME_DSL_VERSION` at write time. So a\n`RuntimeSession` is **born stamped** (`runtimeDslVersion` is a **required** field,\nnot optional), `RUNTIME_DSL_MIGRATIONS` ships **empty** (no legacy-lift entry;\nthe first real runtime shape change appends a step from the pinned\n`INITIAL_RUNTIME_DSL_VERSION` and bumps `RUNTIME_DSL_VERSION`), and an unstamped\nobject reaching any runtime-line function (`migrateRuntime`,\n`needsRuntimeMigration`, `runtimeDslVersionOf`) **throws** — it is a misrouted\nlegacy document or an unstamped producer write, not legacy data to lift.\n(Non-objects stay exempt: they are not migratable aggregates and read as\nunversioned on every line.) An empty ladder is still fully functional — a\nstamped-current session early-returns as already current, and a session stamped\nat an unknown older version hits the \"no migration path\" fail-loud.\n\nThe two lines stamp **different fields**, so neither ladder reads the other's\nversion — but disjoint fields alone are not enough: a session lacking\n`dslVersion` would still read as *unversioned* to the document runner and be\nlifted onto the wrong line. The **cross-line guard** —\nenforced in the shared envelope reader, so the plain `dslVersionOf` /\n`runtimeDslVersionOf` reads, the `needs*Migration` predicates, and the runners\nall give one answer per envelope — closes this with three-case semantics: (1) own line's stamp present → migrate normally\non the own line, regardless of the other key; (2) both stamps absent → genuine\nlegacy data, walk the own ladder; (3) own stamp absent but the sibling line's\nstamp present → **throw**. Case (3) is undecidable from the envelope — the\nother line's aggregate misrouted here is byte-identical to this line's data\ncarrying a stray foreign stamp; migrating would mangle the former, returning it\nunchanged would permanently orphan the latter from its own line — so it is\ntreated like a malformed stamp and fails loud. `validateRuntimeSession`\nlikewise rejects a session **missing** its `runtimeDslVersion` (born stamped, no\nlegacy epoch) and a **stray** `dslVersion` on a session at the door. The runner\nmechanism (contiguous ladder, idempotent, forward-compatible, fail-loud) is\nshared; only the ladder, target version, own stamp field, and the sibling field\nthe guard checks differ.\n\n## Status\n\nBoth consumers are now wired to `@openmaic/dsl` and no longer vendor their own copy\nof the slide types:\n\n- **`@openmaic/importer`**: imports all slide types from `@openmaic/dsl`; vendored\n  `openmaic/types/slides.ts` deleted. The importer emits complete DSL `Slide`\n  objects directly (the old partial \"draft slide\" + post-fill step is gone).\n- **`@openmaic/renderer`**: imports all slide types from `@openmaic/dsl`; vendored\n  `types/slides.ts` deleted. `@openmaic/dsl` is a regular dependency, kept external\n  in the rollup build so consumers share one copy. The public\n  `@openmaic/renderer/types` surface now re-exports the DSL types.\n\n### Roadmap\n\n- [x] Wire `@openmaic/importer` to import types from `@openmaic/dsl` (vendored copy deleted).\n- [x] Wire `@openmaic/renderer` to import types from `@openmaic/dsl` (vendored copy deleted).\n- [x] Add the JSON Schema for the slide contract + a pure schema validator\n      (build-time `dist/schema/*.json` via a devDep generator; zero-dep\n      `validate*` functions). See **Runtime layer** below.\n- [x] Promote the `stage` / `scene` / `scene-content` types into the DSL (the\n      universal skeleton now lives in `stage.ts`).\n- [x] Bring the `Action` playback verb set into the DSL (`action.ts`); the\n      widget interaction actions graduated into the contract once they decoupled\n      from widget configs, so the standard `Action` union now covers them too.\n      `Scene<TAction>` defaults to that union.\n- [x] Promote interactive and PBL content into the persisted contract, with a\n      minimal widget-config extension point and the PBL design/seed skeleton.\n- [x] Activate the migration registry: `version.ts` ships the `DSL_MIGRATIONS`\n      ladder and a pure `migrate` runner (idempotent, forward-compatible,\n      fail-loud), no longer a stub. See **Version & migration** above.\n- [x] Own element defaulting in the contract: `normalize.ts` ships the pure\n      `normalize*` family + `ELEMENT_DEFAULTS`, and the static defaults ride out\n      on the JSON Schema as `@default` annotations. Producers drop their\n      imperative \"fix up the output\" passes. See **Runtime layer** above.\n- [ ] Reserve `@openmaic/exporter` as the 4th family member.\n\n### Stage / Scene split\n\n`stage.ts` owns the **universal lesson skeleton**: `Stage`, the compatibility\ndefault `SceneContent` (`SlideContent | QuizContent`), and a generic\n\n```ts\ninterface Scene<TAction = Action, TContent extends { type: SceneType } = SlideContent | QuizContent>\n```\n\n`TAction` defaults to the contract's standard `Action` union (defined in\n`action.ts`), so a scene carries playback actions out of the box; skeleton-only\nconsumers that reject actions opt out with `Scene<never, …>`. `InteractiveContent`\nand `PBLContent` are contract-owned and compose into concrete scene unions through\nthe generic; apps may also specialize widget configs and action unions:\n\n```ts\nimport type { Action, InteractiveContent, PBLContent, Scene, SceneContent, WidgetConfigBase } from '@openmaic/dsl';\ninterface AppWidgetConfig extends WidgetConfigBase { featurePayload?: unknown }\ntype AppContent = SceneContent | InteractiveContent<AppWidgetConfig> | PBLContent;\ntype AppScene = Scene<Action, AppContent>;\n```\n\nThe contract owns `WidgetType`, the minimal `WidgetConfigBase`,\n`InteractiveContent`, `PBLContent`, and the design-time `PBLProject` plus its\ncanonical planner-seeded skeleton. Rich per-widget payloads and PBL learner\nruntime overlays stay app-side. The widget actions (`widget_highlight`,\n`widget_setState`, …) remain config-free playback verbs in `action.ts`.\n\n## Divergence reconciled (seed provenance)\n\nThe seed is the app's `lib/types/slides.ts`, but before this package existed the\ncontract had been copy-pasted into three places that **drifted apart**. This\npackage is the **canonical superset**: every field that existed in any copy is\nkept, so consumers can adopt the DSL without losing data. Merged-in fields are\nannotated `@since-merge` in `slides.ts`.\n\n| Field                                   | app `lib/types` | renderer copy | importer copy | DSL decision |\n| --------------------------------------- | :-------------: | :-----------: | :-----------: | ------------ |\n| `PPTTextElement.vAlign`                 |        —        |       ✓       |       ✓       | kept |\n| `PPTImageElement.softEdge`              |        —        |       ✓       |       ✓       | kept |\n| `TableCellBorder` + `TableCell.borders` |        —        |       ✓       |       ✓       | kept |\n| `TableCell.padding`                     |        —        |       ✓       |       ✓       | kept |\n| `TableCell.vAlign`                      |        —        |  `top/middle/bottom`  | `up/mid/down/top/middle/bottom` | canonical = `top/middle/bottom`; importer already normalizes its `up/mid/down` aliases in `transformParsedToSlides` |\n| `PPTTableElement.rowHeights`            |        —        |       ✓       |       ✓       | kept |\n| `Slide.script` (speaker notes)          |        —        |       —       |       ✓       | kept |\n| `Slide.viewportSize/viewportRatio/theme`|    required     |   required    |   optional    | canonical = **required**; importer now fills them at construction in `transformParsedToSlides` (no partial/draft stage) |\n| `SlideData` (deprecated)                |        ✓        |       —       |       ✓       | kept, `@deprecated` |\n\nThe importer conforms to the canonical contract: it normalizes cell `vAlign`\naliases and emits the required `Slide` fields on output. The renderer consumes\nthe same superset (it gains access to `script` and the importer-origin fields it\ndidn't previously declare).\n\n## Build\n\nPure TypeScript compiled with `tsc` to ESM + `.d.ts`, then the JSON Schema\nartifacts are generated into `dist/schema/`:\n\n```bash\npnpm --filter @openmaic/dsl build         # -> dist/ (index.js, index.d.ts, …) + dist/schema/*.json\npnpm --filter @openmaic/dsl build:schema  # regenerate only dist/schema/*.json\npnpm --filter @openmaic/dsl typecheck\npnpm --filter @openmaic/dsl test\n```\n\n## License\n\nMIT, matching the rest of the family (`@openmaic/dsl`, `@openmaic/importer`,\n`@openmaic/renderer`) and the OpenMAIC root, so the license policy is uniform\nacross the SDK.\n","readmeFilename":"README.md"}