just-bash - Ajanlar için Bash simülasyon ortamı
(github.com/vercel-labs)- Vercel tarafından geliştirilen "Bash for Agents"
- Güvenli ve sandbox'lanmış bir bash ortamına ihtiyaç duyan yapay zeka ajanları için tasarlanmış TypeScript tabanlı sanal Bash ortamı
- Bellek içi sanal dosya sistemi (InMemoryFs) üzerinde çalışır; gerçek diske erişemeyen bir sandbox çalıştırma ortamı sunar
- Varsayılan olarak ağ erişimi engellenmiştir; gerektiğinde
curlüzerinden izin verilen URL tabanlı güvenli ağ istekleri desteği sağlar - Yalnızca sağlanan dosya sistemine erişebilir ve sonsuz döngü/özyinelemeli çalıştırmayı önleme özelliği içerir
- İkili dosya veya WASM çalıştırma desteklenmez
- API kullanımı sırasında
exec()bazında yalıtılır; bu nedenle ortam değişkenleri, fonksiyonlar ve çalışma dizini çağrılar arasında korunmaz (yalnızca dosya sistemi durumu kalıcıdır) - Oluşturma parametreleri ile başlangıç dosyaları, ortam değişkenleri, çalışma dizini, çalıştırma limitleri gibi ayrıntılı ayarlar yapılabilir
- Lazy dosya yükleme desteği sunar; dosya içerikleri yalnızca gerektiği anda eşzamanlı/eşzamansız fonksiyonlarla üretilebilir
- Özel komut tanımlama (
defineCommand) özelliğiyle TypeScript tabanlı özel komutlar eklenebilirCommandContextüzerindenfs,cwd,env,stdin,execerişimi sağlanır
- 4 farklı dosya sistemi uygulaması sunar
- InMemoryFs: tamamen bellek tabanlı
- OverlayFs: okuma diskten, yazma bellekten
- ReadWriteFs: gerçek disk üzerinde okuma-yazma yapabilir
- MountableFs: birden fazla dosya sistemini yollara göre mount ederek birleşik bir ad alanı oluşturur
- AI SDK entegrasyon aracı olarak
bash-tooldesteği sunargenerateText()ile birleştirilerek yapay zeka modelinin Bash komutlarını güvenli şekilde çalıştırması için tasarlanmıştır
- Vercel Sandbox uyumlu API sağlar
Sandboxsınıfı üzerinden @vercel/sandbox ile aynı arayüzle kullanılabilir- Gerektiğinde gerçek VM tabanlı sandbox'a geçiş kolaydır
- CLI olarak
just-bashkomutunu sunar- OverlayFS tabanlı çalışır ve yürütme sonrasında tüm yazma içerikleri bellekten atılır
--jsonseçeneğiyle programatik sonuç çıktısı desteği sağlar
- Etkileşimli kabuk modu (
pnpm shell) sunar- Varsayılan olarak internet erişimine izin verir,
--no-networkile engellenebilir
- Varsayılan olarak internet erişimine izin verir,
- Desteklenen komutlar
- Dosya işlemleri, metin işleme, veri işleme, sıkıştırma, ağ gibi alanlarda çoğu standart Bash komutunu içerir
jq,sqlite3,python3(Pyodide tabanlı) gibi veri işleme komutları da isteğe bağlı olarak desteklenir- Kabuk özellikleri olarak pipe, yönlendirme, koşullar, döngüler, fonksiyonlar, değişkenler, glob desenleri gibi Bash söz diziminin büyük kısmı uygulanmıştır
- Varsayılan dizin yapısı
/home/user,/bin,/usr/bin,/tmpgibi Unix benzeri bir ortam sunar - Ağ erişim denetimi, URL ve HTTP yöntemi tabanlı beyaz liste yaklaşımını kullanır
dangerouslyAllowFullInternetAccessseçeneğiyle tamamına izin verilebilir
- Python ve SQLite desteği isteğe bağlı olarak etkinleştirilebilir
- Pyodide tabanlı Python ve WASM tabanlı SQLite (sql.js) ile tam sandbox yürütmesi garanti edilir
- Çalıştırma koruma özellikleri ile fonksiyon derinliği, komut sayısı, döngü yineleme sayısı gibi yürütme sınırları yapılandırılabilir
- Apache-2.0 lisansı
Henüz yorum yok.