- 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 eklenebilir
CommandContext üzerinden fs, cwd, env, stdin, exec eriş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-tool desteği sunar
generateText() 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
Sandbox sı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-bash komutunu sunar
- OverlayFS tabanlı çalışır ve yürütme sonrasında tüm yazma içerikleri bellekten atılır
--json seç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-network ile engellenebilir
- 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, /tmp gibi Unix benzeri bir ortam sunar
- Ağ erişim denetimi, URL ve HTTP yöntemi tabanlı beyaz liste yaklaşımını kullanır
dangerouslyAllowFullInternetAccess seç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.