{"_id":"@brixel_ai/artifact-sdk","_rev":"8-9db5e92efb81c98a510f4a4a1cb19aaa","name":"@brixel_ai/artifact-sdk","dist-tags":{"latest":"1.0.7"},"versions":{"1.0.0":{"name":"@brixel_ai/artifact-sdk","version":"1.0.0","keywords":["brixel","artifact","workflow","react","iframe","postmessage"],"author":{"name":"Brixel"},"license":"MIT","_id":"@brixel_ai/artifact-sdk@1.0.0","maintainers":[{"name":"brixel_ai","email":"justin@brixel.ai"}],"homepage":"https://github.com/brixel-ai/brixel-artifact-sdk#readme","bugs":{"url":"https://github.com/brixel-ai/brixel-artifact-sdk/issues"},"dist":{"shasum":"28465c1178a0c99aa41f1f0c132208a7bd503ad4","tarball":"https://registry.npmjs.org/@brixel_ai/artifact-sdk/-/artifact-sdk-1.0.0.tgz","fileCount":7,"integrity":"sha512-Sb8TMkbN1E0O1QUUWrKiHWlmnpbhN+GPgC1IgiiqxLRTW+ByeZzXQI/5xXBO7rgzJ+8M/i8kJHIvho8somrnaw==","signatures":[{"sig":"MEQCICH764GRRK1Qbo755LU5hHKRizy3QBNXzDU53Fxccb1GAiAimKU71VtS3buS+6bNcH2o2B6KtgABCtGKJmPZw1Kb6A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":61952},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","engines":{"npm":">=9","node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"9d0f0c7eddad26a58d62bc419f9fef320bbfac9e","scripts":{"dev":"tsup src/index.ts --format cjs,esm --dts --watch --external react","lint":"eslint src/","build":"tsup src/index.ts --format cjs,esm --dts --external react","clean":"rm -rf dist dist-tarballs","prepack":"npm run build","typecheck":"tsc --noEmit","pack:local":"mkdir -p dist-tarballs && npm pack --pack-destination dist-tarballs","prepublishOnly":"npm run build"},"_npmUser":{"name":"brixel_ai","email":"justin@brixel.ai"},"repository":{"url":"git+https://github.com/brixel-ai/brixel-artifact-sdk.git","type":"git"},"_npmVersion":"11.7.0","description":"SDK for building Brixel Artifacts - interactive React components that integrate with Brixel workflows","directories":{},"_nodeVersion":"22.21.1","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","react":"^19.2.0","eslint":"^9.39.2","typescript":"^5.3.0","@types/react":"^19.0.2","@typescript-eslint/parser":"^8.51.0","@typescript-eslint/eslint-plugin":"^8.51.0"},"peerDependencies":{"react":">=18.0.0"},"peerDependenciesMeta":{"react":{"optional":false}},"_npmOperationalInternal":{"tmp":"tmp/artifact-sdk_1.0.0_1767292057621_0.33210238427592476","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@brixel_ai/artifact-sdk","version":"1.0.1","keywords":["brixel","artifact","workflow","react","iframe","postmessage"],"author":{"name":"Brixel"},"license":"MIT","_id":"@brixel_ai/artifact-sdk@1.0.1","maintainers":[{"name":"brixel_ai","email":"justin@brixel.ai"}],"homepage":"https://github.com/brixel-ai/brixel-artifact-sdk#readme","bugs":{"url":"https://github.com/brixel-ai/brixel-artifact-sdk/issues"},"dist":{"shasum":"f6bf93b2e3b5ff11f88d4ef07c906ca054eb60a0","tarball":"https://registry.npmjs.org/@brixel_ai/artifact-sdk/-/artifact-sdk-1.0.1.tgz","fileCount":7,"integrity":"sha512-nFtJNucawUXODljYpjm8vHIvp0BMhdLnXX2YTrNCtxrjWn6wF++2eTiENXXVN+a9BSy50R32tpVW6AHtd1kPzA==","signatures":[{"sig":"MEQCICB/wawvScFZw76N2FS6de/4bTnNJKwo0tM5KR3NMqJVAiBjAETV8rWKM/ZdbD2GV8sRRoGNKPBB2sdN5uj9gI5j4A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":77423},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","engines":{"npm":">=9","node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"12475b0f945f9fc4ca642cf820d0c66b5f17f923","scripts":{"dev":"tsup src/index.ts --format cjs,esm --dts --watch --external react","lint":"eslint src/","build":"tsup src/index.ts --format cjs,esm --dts --external react","clean":"rm -rf dist dist-tarballs","prepack":"npm run build","typecheck":"tsc --noEmit","pack:local":"mkdir -p dist-tarballs && npm pack --pack-destination dist-tarballs","prepublishOnly":"npm run build"},"_npmUser":{"name":"brixel_ai","email":"justin@brixel.ai"},"repository":{"url":"git+https://github.com/brixel-ai/brixel-artifact-sdk.git","type":"git"},"_npmVersion":"11.7.0","description":"SDK for building Brixel Artifacts - interactive React components that integrate with Brixel workflows","directories":{},"_nodeVersion":"22.21.1","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","react":"^19.2.0","eslint":"^9.39.2","typescript":"^5.3.0","@types/react":"^19.0.2","@typescript-eslint/parser":"^8.51.0","@typescript-eslint/eslint-plugin":"^8.51.0"},"peerDependencies":{"react":">=18.0.0"},"peerDependenciesMeta":{"react":{"optional":false}},"_npmOperationalInternal":{"tmp":"tmp/artifact-sdk_1.0.1_1770990846119_0.6065506654200952","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"@brixel_ai/artifact-sdk","version":"1.0.2","keywords":["brixel","artifact","workflow","react","iframe","postmessage"],"author":{"name":"Brixel"},"license":"MIT","_id":"@brixel_ai/artifact-sdk@1.0.2","maintainers":[{"name":"brixel_ai","email":"justin@brixel.ai"}],"homepage":"https://github.com/brixel-ai/brixel-artifact-sdk#readme","bugs":{"url":"https://github.com/brixel-ai/brixel-artifact-sdk/issues"},"dist":{"shasum":"0d88b0df2e66010b5995739383f605af2e2413e3","tarball":"https://registry.npmjs.org/@brixel_ai/artifact-sdk/-/artifact-sdk-1.0.2.tgz","fileCount":7,"integrity":"sha512-o5wUXUJz1xxAzqyCGEIXD2FjmAgvLo0T0XuJR0oiTvhZXW/Tbqmrs+t9NWPu/iZzBkopwW6ApsUKL3iAyjybbg==","signatures":[{"sig":"MEYCIQCfUxh6oUDAZX2wHCCFH1j8Wwz2g3ASdJU/KZKzpTTiJgIhAM9kV1wimS1vlEcvgGRXba5MuQR7/Dh7vqKO4AjGiiIA","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":69232},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","engines":{"npm":">=9","node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"b07bad8740b44676d019cf1153e7a8d228585401","scripts":{"dev":"tsup src/index.ts --format cjs,esm --dts --watch --external react","lint":"eslint src/","build":"tsup src/index.ts --format cjs,esm --dts --external react","clean":"rm -rf dist dist-tarballs","prepack":"npm run build","typecheck":"tsc --noEmit","pack:local":"mkdir -p dist-tarballs && npm pack --pack-destination dist-tarballs","prepublishOnly":"npm run build"},"_npmUser":{"name":"brixel_ai","email":"justin@brixel.ai"},"repository":{"url":"git+https://github.com/brixel-ai/brixel-artifact-sdk.git","type":"git"},"_npmVersion":"11.7.0","description":"SDK for building Brixel Artifacts - interactive React components that integrate with Brixel workflows","directories":{},"_nodeVersion":"22.21.1","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","react":"^19.2.0","eslint":"^9.39.2","typescript":"^5.3.0","@types/react":"^19.0.2","@typescript-eslint/parser":"^8.51.0","@typescript-eslint/eslint-plugin":"^8.51.0"},"peerDependencies":{"react":">=18.0.0"},"peerDependenciesMeta":{"react":{"optional":false}},"_npmOperationalInternal":{"tmp":"tmp/artifact-sdk_1.0.2_1771453775776_0.32790242229112443","host":"s3://npm-registry-packages-npm-production"}},"1.0.3":{"name":"@brixel_ai/artifact-sdk","version":"1.0.3","keywords":["brixel","artifact","workflow","react","iframe","postmessage"],"author":{"name":"Brixel"},"license":"MIT","_id":"@brixel_ai/artifact-sdk@1.0.3","maintainers":[{"name":"brixel_ai","email":"justin@brixel.ai"}],"homepage":"https://github.com/brixel-ai/brixel-artifact-sdk#readme","bugs":{"url":"https://github.com/brixel-ai/brixel-artifact-sdk/issues"},"dist":{"shasum":"bcedf9081f7f102297012d5e51c04262fdc80ca4","tarball":"https://registry.npmjs.org/@brixel_ai/artifact-sdk/-/artifact-sdk-1.0.3.tgz","fileCount":7,"integrity":"sha512-+rOfvEqhVEXJEmN5buCqtj8GbsSBZYqcqFMfHz2p3EdpDuAPxZsHbQA571Xyw3xRNv4IAwlVa02KCXj/Ej4J8A==","signatures":[{"sig":"MEYCIQDj3pvOJGuvIEv1ie62Frjou67X6VK8Zkod0VmEKmBCpwIhAONOuIFRQqlB3PHjjh3c/aQvBCYXJPVWxeZuuBBXYkqd","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":71078},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","engines":{"npm":">=9","node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"41b0d7f2f62f4f3c3faa965afd716e5a9ad21bbb","scripts":{"dev":"tsup src/index.ts --format cjs,esm --dts --watch --external react","lint":"eslint src/","build":"tsup src/index.ts --format cjs,esm --dts --external react","clean":"rm -rf dist dist-tarballs","prepack":"npm run build","typecheck":"tsc --noEmit","pack:local":"mkdir -p dist-tarballs && npm pack --pack-destination dist-tarballs","prepublishOnly":"npm run build"},"_npmUser":{"name":"brixel_ai","email":"justin@brixel.ai"},"repository":{"url":"git+https://github.com/brixel-ai/brixel-artifact-sdk.git","type":"git"},"_npmVersion":"11.7.0","description":"SDK for building Brixel Artifacts - interactive React components that integrate with Brixel workflows","directories":{},"_nodeVersion":"22.21.1","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","react":"^19.2.0","eslint":"^9.39.2","typescript":"^5.3.0","@types/react":"^19.0.2","@typescript-eslint/parser":"^8.51.0","@typescript-eslint/eslint-plugin":"^8.51.0"},"peerDependencies":{"react":">=18.0.0"},"peerDependenciesMeta":{"react":{"optional":false}},"_npmOperationalInternal":{"tmp":"tmp/artifact-sdk_1.0.3_1771456571297_0.5835839307140216","host":"s3://npm-registry-packages-npm-production"}},"1.0.4":{"name":"@brixel_ai/artifact-sdk","version":"1.0.4","keywords":["brixel","artifact","workflow","react","iframe","postmessage"],"author":{"name":"Brixel"},"license":"MIT","_id":"@brixel_ai/artifact-sdk@1.0.4","maintainers":[{"name":"brixel_ai","email":"justin@brixel.ai"}],"homepage":"https://github.com/brixel-ai/brixel-artifact-sdk#readme","bugs":{"url":"https://github.com/brixel-ai/brixel-artifact-sdk/issues"},"dist":{"shasum":"cef9ca3121814906386bdbdd487cf44d514c6e32","tarball":"https://registry.npmjs.org/@brixel_ai/artifact-sdk/-/artifact-sdk-1.0.4.tgz","fileCount":7,"integrity":"sha512-qbbCOGA8qMLJiN/WE1e47o1R+98UvVoLYJrZeHeo3xTmaM9F5QSJup6LkM1pzYQQGybzWOKUrYM0xYlK61JAqA==","signatures":[{"sig":"MEUCIQCoSNSfKDsY/0QRgKqyBqO5pz4OU43BjkCnnENngWB3/gIgfbkcUShY5iNyWYfPHcGIJhPCT0Gg1SawirU5KURwqb4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":72883},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","engines":{"npm":">=9","node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"41b0d7f2f62f4f3c3faa965afd716e5a9ad21bbb","scripts":{"dev":"tsup src/index.ts --format cjs,esm --dts --watch --external react","lint":"eslint src/","build":"tsup src/index.ts --format cjs,esm --dts --external react","clean":"rm -rf dist dist-tarballs","prepack":"npm run build","typecheck":"tsc --noEmit","pack:local":"mkdir -p dist-tarballs && npm pack --pack-destination dist-tarballs","prepublishOnly":"npm run build"},"_npmUser":{"name":"brixel_ai","email":"justin@brixel.ai"},"repository":{"url":"git+https://github.com/brixel-ai/brixel-artifact-sdk.git","type":"git"},"_npmVersion":"11.7.0","description":"SDK for building Brixel Artifacts - interactive React components that integrate with Brixel workflows","directories":{},"_nodeVersion":"22.21.1","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","react":"^19.2.0","eslint":"^9.39.2","typescript":"^5.3.0","@types/react":"^19.0.2","@typescript-eslint/parser":"^8.51.0","@typescript-eslint/eslint-plugin":"^8.51.0"},"peerDependencies":{"react":">=18.0.0"},"peerDependenciesMeta":{"react":{"optional":false}},"_npmOperationalInternal":{"tmp":"tmp/artifact-sdk_1.0.4_1771504881363_0.3002223982073604","host":"s3://npm-registry-packages-npm-production"}},"1.0.5":{"name":"@brixel_ai/artifact-sdk","version":"1.0.5","keywords":["brixel","artifact","workflow","react","iframe","postmessage"],"author":{"name":"Brixel"},"license":"MIT","_id":"@brixel_ai/artifact-sdk@1.0.5","maintainers":[{"name":"brixel_ai","email":"justin@brixel.ai"}],"homepage":"https://github.com/brixel-ai/brixel-artifact-sdk#readme","bugs":{"url":"https://github.com/brixel-ai/brixel-artifact-sdk/issues"},"dist":{"shasum":"b7fe6a27d02edbbd7ac1aa58d15930762a0370d3","tarball":"https://registry.npmjs.org/@brixel_ai/artifact-sdk/-/artifact-sdk-1.0.5.tgz","fileCount":7,"integrity":"sha512-cQmdXUMCwQxJKuWLT+OfgQSDcx8k1GlkBQPFZbYNZk1K7Icsl5HVldDsvXbN0kyIizoXJIvGEYZTD0836ES63g==","signatures":[{"sig":"MEQCID+uYu7RFCVq5x9G0CBxuVP6DNAZgxk2uzFNHFWBnZkSAiAlohtF2P0Z8PMoUw6QPcBGMtVAi5IF8tCvtu10Xxchgg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":75719},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","engines":{"npm":">=9","node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"bd5f1af4b11d5f16e52b9493e306a79a55896a7d","scripts":{"dev":"tsup src/index.ts --format cjs,esm --dts --watch --external react","lint":"eslint src/","build":"tsup src/index.ts --format cjs,esm --dts --external react","clean":"rm -rf dist dist-tarballs","prepack":"npm run build","typecheck":"tsc --noEmit","pack:local":"mkdir -p dist-tarballs && npm pack --pack-destination dist-tarballs","prepublishOnly":"npm run build"},"_npmUser":{"name":"brixel_ai","email":"justin@brixel.ai"},"repository":{"url":"git+https://github.com/brixel-ai/brixel-artifact-sdk.git","type":"git"},"_npmVersion":"11.7.0","description":"SDK for building Brixel Artifacts - interactive React components that integrate with Brixel workflows","directories":{},"_nodeVersion":"22.21.1","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","react":"^19.2.0","eslint":"^9.39.2","typescript":"^5.3.0","@types/react":"^19.0.2","@typescript-eslint/parser":"^8.51.0","@typescript-eslint/eslint-plugin":"^8.51.0"},"peerDependencies":{"react":">=18.0.0"},"peerDependenciesMeta":{"react":{"optional":false}},"_npmOperationalInternal":{"tmp":"tmp/artifact-sdk_1.0.5_1771506862408_0.30691866006957613","host":"s3://npm-registry-packages-npm-production"}},"1.0.6":{"name":"@brixel_ai/artifact-sdk","version":"1.0.6","keywords":["brixel","artifact","workflow","react","iframe","postmessage"],"author":{"name":"Brixel"},"license":"MIT","_id":"@brixel_ai/artifact-sdk@1.0.6","maintainers":[{"name":"brixel_ai","email":"justin@brixel.ai"}],"homepage":"https://github.com/brixel-ai/brixel-artifact-sdk#readme","bugs":{"url":"https://github.com/brixel-ai/brixel-artifact-sdk/issues"},"dist":{"shasum":"7dd0deccd6e929699d9844570f8896f089caebaf","tarball":"https://registry.npmjs.org/@brixel_ai/artifact-sdk/-/artifact-sdk-1.0.6.tgz","fileCount":7,"integrity":"sha512-ppJGpwRCEGWC43YMYfCblbv+qXg4i1lT2YtLwBwbYkVEmHSiocpE6yEzKTQQhYjzSnfaaouamoFW7Wx81CRnkA==","signatures":[{"sig":"MEQCIAkVYYhnwOEqB8zMuNZqCi9Sap1W7MMUB7WmXlYQRnyAAiAdkfiXewcMGJHt0OohHm7e1Km3D6J4GCofkRuMOA3vMg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":75987},"main":"dist/index.js","types":"dist/index.d.ts","module":"dist/index.mjs","engines":{"npm":">=9","node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"gitHead":"441448fc96408811c93b4bc142cbee3fd74fce96","scripts":{"dev":"tsup src/index.ts --format cjs,esm --dts --watch --external react","lint":"eslint src/","build":"tsup src/index.ts --format cjs,esm --dts --external react","clean":"rm -rf dist dist-tarballs","prepack":"npm run build","typecheck":"tsc --noEmit","pack:local":"mkdir -p dist-tarballs && npm pack --pack-destination dist-tarballs","prepublishOnly":"npm run build"},"_npmUser":{"name":"brixel_ai","email":"justin@brixel.ai"},"repository":{"url":"git+https://github.com/brixel-ai/brixel-artifact-sdk.git","type":"git"},"_npmVersion":"11.7.0","description":"SDK for building Brixel Artifacts - interactive React components that integrate with Brixel workflows","directories":{},"_nodeVersion":"22.21.1","_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.0.0","react":"^19.2.0","eslint":"^9.39.2","typescript":"^5.3.0","@types/react":"^19.0.2","@typescript-eslint/parser":"^8.51.0","@typescript-eslint/eslint-plugin":"^8.51.0"},"peerDependencies":{"react":">=18.0.0"},"peerDependenciesMeta":{"react":{"optional":false}},"_npmOperationalInternal":{"tmp":"tmp/artifact-sdk_1.0.6_1771507259345_0.35309354572936247","host":"s3://npm-registry-packages-npm-production"}},"1.0.7":{"name":"@brixel_ai/artifact-sdk","version":"1.0.7","description":"SDK for building Brixel Artifacts - interactive React components that integrate with Brixel workflows","main":"dist/index.js","module":"dist/index.mjs","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.mjs","require":"./dist/index.js"}},"scripts":{"build":"tsup src/index.ts --format cjs,esm --dts --external react","dev":"tsup src/index.ts --format cjs,esm --dts --watch --external react","lint":"eslint src/","typecheck":"tsc --noEmit","clean":"rm -rf dist dist-tarballs","prepack":"npm run build","pack:local":"mkdir -p dist-tarballs && npm pack --pack-destination dist-tarballs","prepublishOnly":"npm run build"},"peerDependencies":{"react":">=18.0.0"},"peerDependenciesMeta":{"react":{"optional":false}},"engines":{"node":">=18","npm":">=9"},"devDependencies":{"@types/react":"^19.0.2","@typescript-eslint/eslint-plugin":"^8.51.0","@typescript-eslint/parser":"^8.51.0","eslint":"^9.39.2","react":"^19.2.0","tsup":"^8.0.0","typescript":"^5.3.0"},"keywords":["brixel","artifact","workflow","react","iframe","postmessage"],"author":{"name":"Brixel"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/brixel-ai/brixel-artifact-sdk.git"},"homepage":"https://github.com/brixel-ai/brixel-artifact-sdk#readme","bugs":{"url":"https://github.com/brixel-ai/brixel-artifact-sdk/issues"},"gitHead":"e548617a039f74152dcee24ed0ab7237fbe265a2","_id":"@brixel_ai/artifact-sdk@1.0.7","_nodeVersion":"22.21.1","_npmVersion":"11.7.0","dist":{"integrity":"sha512-t+Lv0z7OR/WvXoqtNHyQd8OQbGqkoQr9N03C1mq0Efb0JDCRaeSe2+qSLRzaGn14BJDDaBciCkPSl/l6UHuqnw==","shasum":"81ab20b9ddefa2c1776abb3ba954444ce0906607","tarball":"https://registry.npmjs.org/@brixel_ai/artifact-sdk/-/artifact-sdk-1.0.7.tgz","fileCount":7,"unpackedSize":78909,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQDkEQ1CdpCt3XW6A/5UCWL4o3RnapMDzupejZcYOUT+CQIhAMWbdnEy8Dz2GFxgJjphnNM1QE4cNQzozI34Ng6JGSvv"}]},"_npmUser":{"name":"brixel_ai","email":"justin@brixel.ai"},"directories":{},"maintainers":[{"name":"brixel_ai","email":"justin@brixel.ai"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/artifact-sdk_1.0.7_1771515554677_0.5553697608256125"},"_hasShrinkwrap":false}},"time":{"created":"2026-01-01T18:27:37.530Z","modified":"2026-02-19T15:39:14.928Z","1.0.0":"2026-01-01T18:27:37.777Z","1.0.1":"2026-02-13T13:54:06.267Z","1.0.2":"2026-02-18T22:29:35.906Z","1.0.3":"2026-02-18T23:16:11.470Z","1.0.4":"2026-02-19T12:41:21.521Z","1.0.5":"2026-02-19T13:14:22.543Z","1.0.6":"2026-02-19T13:20:59.513Z","1.0.7":"2026-02-19T15:39:14.824Z"},"bugs":{"url":"https://github.com/brixel-ai/brixel-artifact-sdk/issues"},"author":{"name":"Brixel"},"license":"MIT","homepage":"https://github.com/brixel-ai/brixel-artifact-sdk#readme","keywords":["brixel","artifact","workflow","react","iframe","postmessage"],"repository":{"type":"git","url":"git+https://github.com/brixel-ai/brixel-artifact-sdk.git"},"description":"SDK for building Brixel Artifacts - interactive React components that integrate with Brixel workflows","maintainers":[{"name":"brixel_ai","email":"justin@brixel.ai"}],"readme":"# @brixel_ai/artifact-sdk\n\nSDK for building Brixel Artifacts - interactive React components that integrate with Brixel workflows.\n\n## Installation\n\n```bash\nnpm install @brixel_ai/artifact-sdk\n# or\nyarn add @brixel_ai/artifact-sdk\n# or\npnpm add @brixel_ai/artifact-sdk\n```\n\n## Quick Start\n\n```tsx\nimport { useBrixelArtifact } from \"@brixel_ai/artifact-sdk\";\n\n// Define your input/output types\ninterface Inputs {\n  title: string;\n  options: string[];\n}\n\ninterface Output {\n  selectedOption: string;\n}\n\nfunction MyUITask() {\n  const { inputs, complete, cancel, context, status } = useBrixelArtifact<Inputs, Output>();\n\n  // Loading state while waiting for INIT from host\n  if (!inputs) {\n    return <div>Loading...</div>;\n  }\n\n  return (\n    <div>\n      <h1>{inputs.title}</h1>\n      {inputs.options.map((option) => (\n        <button key={option} onClick={() => complete({ selectedOption: option })}>\n          {option}\n        </button>\n      ))}\n      <button onClick={() => cancel(\"User cancelled\")}>Cancel</button>\n    </div>\n  );\n}\n```\n\n## API Reference\n\n### `useBrixelArtifact<TInputs, TOutput>(options?)`\n\nMain hook for building UI Tasks.\n\n#### Returns\n\n| Property | Type | Description |\n|----------|------|-------------|\n| `inputs` | `TInputs \\| null` | Input data from the host |\n| `context` | `BrixelContext \\| null` | Execution context (run, theme, locale, etc.) |\n| `status` | `TaskStatus` | Current status: `\"initializing\"`, `\"ready\"`, `\"completed\"`, `\"cancelled\"`, `\"error\"` |\n| `renderMode` | `RenderMode \\| null` | `\"display\"` or `\"interaction\"` |\n| `runId` | `string \\| null` | Unique run identifier |\n| `complete` | `(output: TOutput) => void` | Complete the task with output |\n| `cancel` | `(reason?: string) => void` | Cancel the task |\n| `setHeight` | `(height: number \\| \"auto\") => void` | Request iframe resize |\n| `log` | `(level, message, data?) => void` | Send log to host |\n| `isEmbedded` | `boolean` | Whether running inside Brixel iframe |\n\n#### Options\n\n```ts\ninterface UseBrixelTaskOptions {\n  targetOrigin?: string;      // PostMessage target origin (default: \"*\")\n  onInputsUpdate?: (inputs) => void;  // Callback when inputs change\n  onDestroy?: () => void;     // Callback before cleanup\n  debug?: boolean;            // Enable debug logging\n  autoResize?: boolean;       // Auto-send BRIXEL_RESIZE based on content height (default: false)\n}\n```\n\n### Full Parent Space vs `setHeight`\n\nIf your SDK components must always fill the space allocated by the parent, keep `autoResize` disabled (default) and use CSS layout like `height: 100%` in your component root.\n\nUse `setHeight` (or `autoResize: true`) only when the iframe height must be content-driven.\n\n## Development Mode\n\nTest your UI Task locally without Brixel:\n\n```tsx\nimport { simulateBrixelInit } from \"@brixel_ai/artifact-sdk\";\n\n// In your main.tsx or App.tsx\nif (import.meta.env.DEV) {\n  simulateBrixelInit({\n    title: \"Test Survey\",\n    options: [\"Option A\", \"Option B\", \"Option C\"],\n  });\n}\n```\n\n## Render Modes\n\n### Display Mode\n\nFor UI Tasks that only show information without requiring user interaction:\n\n```tsx\nfunction DisplayTask() {\n  const { inputs, context } = useBrixelArtifact<{ message: string }, void>();\n\n  if (!inputs) return null;\n\n  return <div className=\"notification\">{inputs.message}</div>;\n}\n```\n\n### Interaction Mode\n\nFor UI Tasks that require user input and block the workflow:\n\n```tsx\nfunction InteractionTask() {\n  const { inputs, complete, cancel } = useBrixelArtifact<FormInputs, FormOutput>();\n\n  const handleSubmit = (data: FormOutput) => {\n    complete(data); // This unblocks the workflow\n  };\n\n  // ...\n}\n```\n\n## Context Object\n\nThe `context` object provides information about the execution environment:\n\n```ts\ninterface BrixelContext {\n  runId: string;\n  stepId?: string;\n  userId?: string;\n  organizationId?: string;\n  theme: \"light\" | \"dark\" | \"system\";\n  locale: string;\n  conversationId?: string;\n  apiToken?: string;\n  apiBaseUrl?: string;\n}\n```\n\n## Executing Other UI Tasks\n\nThe SDK allows UI Tasks to execute other UI Tasks programmatically using the `executeTask` function.\n`executeTask` returns `{ success, data }`:\n- `success: true` => `data` is the task result\n- `success: false` => `data` is an `ExecuteTaskError`\n\n### Basic Usage\n\n```tsx\nimport { useBrixelArtifact } from \"@brixel_ai/artifact-sdk\";\n\nfunction MyUITask() {\n  const { executeTask } = useBrixelArtifact();\n\n  const handleExecuteTask = async () => {\n    const response = await executeTask<{ message: string }>({\n      taskId: \"78c2482f-b47d-461c-9fd0-509476687be9\",\n      inputs: { name: \"value\" },\n    });\n\n    if (!response.success) {\n      console.error(\"Error:\", response.data);\n      return;\n    }\n\n    console.debug(\"Task executed:\", response.data);\n  };\n\n  return <button onClick={handleExecuteTask}>Execute Task</button>;\n}\n```\n\n### Authentication\n\nThe SDK uses Bearer token authentication. The parent interface should pass `apiToken` via the INIT message context.\n\n#### Passing Token from Parent\n\n```typescript\n// In parent application (console.brixel.ai)\nconst authToken = getCookieValue('token');\n\niframe.contentWindow.postMessage({\n  type: 'BRIXEL_INIT',\n  payload: {\n    runId: 'run-123',\n    inputs: { /* ... */ },\n    context: {\n      organizationId: 'org-123',\n      apiToken: authToken,\n      // ... other context fields\n    }\n  }\n});\n```\n\nThe UI Task automatically receives this token and uses it for `executeTask` calls:\n\n```tsx\nconst { executeTask, context } = useBrixelArtifact();\n\n// Token from context is automatically used\nawait executeTask({\n  taskId: \"task-uuid\",\n  inputs: {}\n});\n\n```\n\n### API URL Auto-Detection\n\nThe SDK automatically detects your environment and uses the appropriate API:\n\n- **Development** (localhost): `http://localhost:8000`\n- **Production**: `https://platform.brixel.ai`\n\nWhen running on localhost, you'll see:\n```\n[Brixel SDK] Using API URL: http://localhost:8000\n```\n\nSee [DEVELOPMENT.md](./DEVELOPMENT.md) for details on local development setup.\n\n## Uploading Files\n\nThe SDK provides an `uploadFile` function to upload files to Brixel using:\n\n- Endpoint: `POST /v1/files/`\n- Form fields:\n  - `file`\n  - `visibility` (always forced to `\"user\"` by the SDK)\n- Header (optional): `X-Organization-Id`\n\n```tsx\nimport { useBrixelArtifact } from \"@brixel_ai/artifact-sdk\";\n\nfunction MyUITask() {\n  const { uploadFile } = useBrixelArtifact();\n\n  const handleUpload = async (file: File) => {\n    const result = await uploadFile({\n      file,\n    });\n\n    if (!result.success) {\n      console.error(\"Upload error:\", result.error);\n      return;\n    }\n\n    console.debug(\"Uploaded file:\", result.data);\n  };\n\n  return <input type=\"file\" onChange={(e) => e.target.files?.[0] && handleUpload(e.target.files[0])} />;\n}\n```\n\n## Getting File Content\n\nThe SDK provides `getFileContent` to retrieve inline file content:\n\n- Endpoint: `GET /v1/files/{brixel_file_id}/content`\n- Headers (optional):\n  - `X-Organization-Id`\n  - `X-Conversation-Id`\n  - `If-None-Match`\n  - `If-Modified-Since`\n\n```tsx\nimport { useBrixelArtifact } from \"@brixel_ai/artifact-sdk\";\n\nfunction MyUITask() {\n  const { getFileContent } = useBrixelArtifact();\n\n  const handlePreview = async (brixelFileId: string) => {\n    const result = await getFileContent({\n      brixelFileId,\n    });\n\n    if (!result.success) {\n      console.error(\"Get content error:\", result.error);\n      return;\n    }\n\n    if (result.notModified) {\n      console.debug(\"File not modified\");\n      return;\n    }\n\n    if (!result.data) return;\n    const url = URL.createObjectURL(result.data.blob);\n    console.debug(\"Preview URL:\", url, \"content-type:\", result.data.contentType);\n  };\n\n  return <button onClick={() => handlePreview(\"your-brixel-file-id\")}>Preview</button>;\n}\n```\n\n## PostMessage Protocol\n\nThe SDK handles the following message types automatically:\n\n### Host → Iframe\n\n- `BRIXEL_INIT`: Initialize with inputs and context\n- `BRIXEL_UPDATE_INPUTS`: Update inputs during execution\n- `BRIXEL_UPDATE_THEME`: Update theme (`\"light\" | \"dark\" | \"system\"`)\n- `BRIXEL_UPDATE_LOCALE`: Update locale (e.g. `\"fr-FR\"`)\n- `BRIXEL_DESTROY`: Cleanup signal\n\n### Iframe → Host\n\n- `BRIXEL_READY`: Iframe is ready to receive INIT\n- `BRIXEL_COMPLETE`: Task completed with output\n- `BRIXEL_CANCEL`: Task cancelled\n- `BRIXEL_RESIZE`: Request height change\n- `BRIXEL_ERROR`: Error occurred\n- `BRIXEL_LOG`: Debug log message\n\n## Building for Production\n\n```bash\nnpm run build\n```\n\nThis produces:\n- `dist/index.js` - CommonJS build\n- `dist/index.mjs` - ES Module build\n- `dist/index.d.ts` - TypeScript declarations\n\n### Packaging locally without `npm link`\n\nTo avoid duplicating React in consuming apps, test the SDK as an npm tarball (same shape as a publish):\n\n```bash\n# in the SDK repo\nnpm run pack:local\n\n# in a consumer app (adjust version if needed)\nnpm install ../brixel-artifact-sdk/dist-tarballs/brixel-artifact-sdk-1.0.0.tgz\n```\n\nThis keeps `node_modules` out of the package and prevents hook errors caused by multiple React copies. Prefer this over `npm link`.\n\n## License\n\nMIT\n","readmeFilename":"README.md"}