An open API service indexing awesome lists of open source software.

https://github.com/vaur94/opencode-my-openagents

Multi-language AI coding assistant framework for OpenCode. Hierarchical agent architecture with .NET, Go, Python, and TypeScript support.
https://github.com/vaur94/opencode-my-openagents

agent-framework avalonia csharp dotnet go multi-agent opencode opencode-plugin python typescript

Last synced: about 1 month ago
JSON representation

Multi-language AI coding assistant framework for OpenCode. Hierarchical agent architecture with .NET, Go, Python, and TypeScript support.

Awesome Lists containing this project

README

          

# opencode-my-openagents

[![CI](https://github.com/vaur94/opencode-my-openagents/actions/workflows/ci.yml/badge.svg)](https://github.com/vaur94/opencode-my-openagents/actions/workflows/ci.yml)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
[![TypeScript](https://img.shields.io/badge/TypeScript-ESM-blue.svg)](https://www.typescriptlang.org/)
[![Bun](https://img.shields.io/badge/Runtime-Bun-f9f1e1.svg)](https://bun.sh/)
[![OpenCode Plugin](https://img.shields.io/badge/OpenCode-Plugin-purple.svg)](https://opencode.ai)

[OpenCode](https://github.com/anomalyco/opencode) için çok dilli yapay zeka kodlama asistanı framework'ü. Kurumsal kod standartlarını **Iron Cage** kapsam kilitleme sistemiyle uygular.

---

## OpenCode Nedir?

[OpenCode](https://opencode.ai), terminal tabanlı, vendor-bağımsız bir AI kodlama aracıdır. Birden fazla LLM sağlayıcısıyla çalışır ve plugin ekosistemi sayesinde genişletilebilir. Bu proje, OpenCode'un plugin API'si (`@opencode-ai/plugin`) üzerine inşa edilmiş bir **enterprise-grade** eklentidir.

> **Dokümantasyon:** [opencode.ai/docs](https://opencode.ai/docs) · **Kaynak Kod:** [github.com/anomalyco/opencode](https://github.com/anomalyco/opencode)

---

## Ne İşe Yarar?

Bu plugin, OpenCode oturumlarında AI kodlama asistanlarını **çok dilli proje ortamlarında** yönetir:

- 🔒 **Iron Cage Kapsam Kilitleme** — Alt-agent'lar yalnızca atanmış dosyalara dokunabilir
- 🌐 **Çok Dilli Destek** — .NET, Go, Python, TypeScript için özelleştirilmiş guard ve skill'ler
- 🛡️ **Gerçek Zamanlı Guard Sistemi** — Kod standartlarını ihlal eden tool çağrılarını anında engeller
- 🔧 **MCP Tool Entegrasyonu** — Build kontrolü, AXAML doğrulama, allocation analizi (.NET)
- 📦 **LanguagePack Sözleşmesi** — Yeni dil desteği eklemek için genişletilebilir mimari
- 🚀 **Otomatik Skill Enjeksiyonu** — Dil algılama sonrası markdown skill'lerini sentinel dedup ile enjekte eder

---

## Iron Cage: Kapsam Kilitleme Sistemi

Alt-agent'ların yalnızca yetkili dosyalara erişmesini garanti eden **4 katmanlı savunma** mimarisi:

```
1. ENJEKSİYON → Alt-agent promptuna izin verilen dosyalar + yasaklı yollar enjekte edilir
2. İNTERSEPSİYON → edit/write/bash gibi tool çağrıları gerçek zamanlı denetlenir
3. BACKSTOP → Görev bitiminde tüm değiştirilmiş dosyalar denetlenir
4. KURTARMA → Konuşma sıkıştırması sonrası kapsam JSON capsule'den geri yüklenir
```

Iron Cage, sub-agent'lara Türkçe direktif olarak enjekte edilir ve **bypass mekanizması yoktur**.

---

## Mimari

```
opencode-my-openagents/
├── packages/
│ ├── core/ # Plugin motoru, scope sistemi, routing, guard'lar
│ ├── skill-dotnet/ # .NET guard'ları (3), skill'ler (3), MCP araçları (4)
│ ├── skill-go/ # Go error guard, standards skill
│ ├── skill-python/ # Python typing guard, standards skill
│ └── skill-typescript/ # TypeScript safety guard'ları (2), skill'ler (2)
├── .github/workflows/ # CI, CodeQL, release-please
├── release-please-config.json # Linked-versions monorepo release yapılandırması
├── biome.json # Linter + formatter (ESLint/Prettier yerine)
└── package.json # Bun workspaces root
```

### Paketler

| Paket | Açıklama |
|-------|----------|
| `@openagents/core` | Plugin motoru, Iron Cage scope sistemi, detection, routing, guard engine |
| `@openagents/skill-dotnet` | .NET algılama, 3 guard (API/Avalonia/Core), 3 skill, 4 MCP tool |
| `@openagents/skill-go` | Go algılama, error guard, standards skill |
| `@openagents/skill-python` | Python algılama, typing guard, standards skill |
| `@openagents/skill-typescript` | TypeScript algılama, 2 guard (TypeSafety/Import), 2 skill |

---

## Kurulum

### Gereksinimler

- [Bun](https://bun.sh/) ≥ 1.0
- [OpenCode](https://opencode.ai) (plugin host)

### Hızlı Başlangıç

```bash
# Repo'yu klonla
git clone https://github.com/vaur94/opencode-my-openagents.git
cd opencode-my-openagents

# Bağımlılıkları yükle ve derle
bun install
bun run build

# Testleri çalıştır
bun test
```

### OpenCode'a Ekleme

`opencode.json` dosyanıza bu plugin'i ekleyin:

```json
{
"plugins": {
"opencode-my-openagents": {
"source": "local",
"path": "/path/to/opencode-my-openagents"
}
}
}
```

> Plugin API hakkında detaylı bilgi: [opencode.ai/docs](https://opencode.ai/docs)

---

## Geliştirme

### Komutlar

```bash
bun install # Bağımlılıkları yükle
bun run build # Tüm paketleri derle (tsc -p chain)
bun run typecheck # Tip kontrolü
bun test # Testleri çalıştır (Bun native)
bun run format # Biome ile formatla
bun run lint # Biome ile lint kontrolü
```

### Yeni Dil Desteği Eklemek

1. `packages/skill-/` altında yeni paket oluştur
2. `LanguagePack` sözleşmesini implemente et (`packages/core/src/contracts.ts`)
3. Detector, SkillLoader, GuardRunner ve opsiyonel BuildRunner sağla
4. Root `package.json` workspaces'e ekle
5. `release-please-config.json` ve `.release-please-manifest.json`'a ekle

### Kurallar

- **ESM only** — tüm import'larda `.js` uzantısı. `require()` yasak.
- **Async-first** — tüm I/O `ProcessRunner`/`spawn` ile. `execSync` yasak.
- **Strict typing** — `any` yerine `unknown`. Biome zorlar.
- **Biome** — 2 boşluk indent, tek tırnak, noktalı virgül zorunlu, 100 karakter genişlik.

---

## Katkıda Bulunma

Katkılarınızı bekliyoruz! Lütfen şu adımları izleyin:

1. Repo'yu **fork** edin
2. Feature branch oluşturun (`git checkout -b feature/yeni-ozellik`)
3. Değişikliklerinizi yapın
4. `bun test` ve `bun run typecheck` ile doğrulayın
5. **Conventional Commits** formatında commit atın:
- `feat:` — yeni özellik
- `fix:` — hata düzeltmesi
- `docs:` — dokümantasyon
- `chore:` — bakım işleri
6. Pull Request açın

> **Not:** PR'lar CI pipeline'dan (lint + typecheck + test) geçmelidir. Release'ler [release-please](https://github.com/googleapis/release-please) ile otomatik yönetilir.

---

## Lisans

Bu proje [MIT Lisansı](LICENSE) altında lisanslanmıştır.

---

## Teşekkürler

- [OpenCode](https://opencode.ai) — Plugin API ve host ortamı
- [Biome](https://biomejs.dev/) — Lint ve format aracı
- [Bun](https://bun.sh/) — JavaScript runtime ve paket yöneticisi