Free, open tools for AI safety
샌드박스 AI 에이전트, 숨은 옵저버로 행동 관찰·평가, 오픈소스·로컬, 검증 가능한 증거 제공
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
메이커가 쓴 소개는 위의 한 줄이 전부입니다. 더 자세한 내용은 저장소 README에서 읽을 수 있습니다. 저장소 README ↗
README 전체를 불러오는 중입니다.
README 전문 보기 ↗A personal shadcn-compatible registry for careful interface pieces: components, full pages, backend snippets, and inspiration studies.
pnpm install
pnpm dev
The app runs on http://localhost:3000.
/r/registry.json/r/<name>.json@compronentsAdd an installable component by updating:
src/registry/<name>.tsxsrc/lib/registry.tssrc/components/demos/<name>.tsxsrc/components/demos/index.tsxsrc/lib/component-meta.tsIf the component needs bespoke editing controls, add:
src/components/studios/<name>.tsxsrc/components/studios/index.tsxstudioPath and editable metadata in src/lib/component-meta.tsSource sites in ~/Documents/full-pages/CGMWT*/ are ported into the registry as
real, editable React page templates. See PAGE-PORTS.md for
the status table (done / next / later), the per-source recipe, and the gotchas
(scroll container, CSS tokenizer, WebGL CORS, transition overlay, global-selector
scoping, bounded iframe preview).
dining-room-page (Salle Blanche), film-studio-page (Negative Films),
plus pre-existing archive-commerce-page, interior-studio-page,
march-2025-template.dark-catalog-page (deadlock-studios).Component assets are stored in Vercel Blob and served through the local asset route:
/assets/<asset-path>
The public route resolves each asset in this order:
<asset-path>src/lib/assets.tsRequired environment variables:
BLOB_READ_WRITE_TOKEN=vercel_blob_rw_...
REGISTRY_ASSET_ADMIN_TOKEN=long-random-admin-token
Optional:
REGISTRY_ASSET_MAX_BYTES=26214400
The current project is linked to the compronents-registry-assets Blob store.
For a fresh checkout, pull the Vercel-provisioned environment before uploading:
vercel link --yes --project compronents
vercel env pull .env.local --yes
If the project has no Blob store yet, create and link one first:
vercel blob store add compronents-registry-assets
vercel env pull .env.local --yes
When prompted, link the store to compronents for Production, Preview, and
Development. Do not commit .env.local or print token values.
For the curl examples below, load the ignored local env into the current shell:
set -a
source .env.local
set +a
Use stable nested pathnames so component source can keep using
/assets/<asset-path>. The Blob upload must not add a random suffix.
For the existing Animated Footer hand assets:
vercel blob put public/blank-hand-right.png \
--pathname animated-footer/blank-hand-right.png \
--force true \
--add-random-suffix false \
--content-type image/png
vercel blob put public/blank-hand-left.png \
--pathname animated-footer/blank-hand-left.png \
--force true \
--add-random-suffix false \
--content-type image/png
You can also upload through the admin-protected app API:
curl -X POST http://localhost:3000/api/registry-assets \
-H "Authorization: Bearer $REGISTRY_ASSET_ADMIN_TOKEN" \
-F "pathname=animated-footer/blank-hand-right.png" \
-F "file=@public/blank-hand-right.png" \
-F "allowOverwrite=true"
For production API uploads, use the hosted API with the same bearer token:
curl -X POST https://ui.aryank.space/api/registry-assets \
-H "Authorization: Bearer $REGISTRY_ASSET_ADMIN_TOKEN" \
-F "pathname=animated-footer/blank-hand-right.png" \
-F "file=@public/blank-hand-right.png" \
-F "allowOverwrite=true"
List the Blob objects:
vercel blob list --prefix animated-footer --limit 10
Verify the app route resolves to Blob:
curl -I https://ui.aryank.space/assets/animated-footer/blank-hand-right.png
curl -I https://ui.aryank.space/assets/animated-footer/blank-hand-left.png
The Location header should point at
https://<store-id>.public.blob.vercel-storage.com/....
The protected API should report configured: true:
curl https://ui.aryank.space/api/registry-assets?prefix=animated-footer \
-H "Authorization: Bearer $REGISTRY_ASSET_ADMIN_TOKEN"
Delete an asset when needed:
curl -X DELETE http://localhost:3000/api/registry-assets/animated-footer/blank-hand-right.png \
-H "Authorization: Bearer $REGISTRY_ASSET_ADMIN_TOKEN"
For any new component asset:
public/.src/lib/assets.ts.<component-name>/<file-name>.<ext>.vercel blob put ... --pathname <asset-path> --force true./assets/<asset-path> redirects to Blob on production.If a Blob store or new env variable was just linked to the Vercel project,
redeploy once with vercel deploy --prod --yes so production functions receive
the new environment.
The installable component defaults to the hosted Compronents asset route, so consumer projects receive stable public URLs while this app can swap the backing store to Blob without changing component source.