# Giselle

## 概要

GiselleはAIワークフローを設計・実行するためのオープンソースプラットフォームです。ビジュアルエディタを使用してAIエージェントを構築し、複数のAIモデル（GPT、Claude、Geminiなど）を組み合わせたワークフローを作成できます。チャットやプロンプトチェーンにとどまらない、実行可能なAIシステムの構築を目指しています。

## 主な機能

| 機能カテゴリ | 説明 |
| --- | --- |
| GitHub AI Operations | Issue、PR、デプロイメントをAIで自動化 |
| Visual Agent Builder | ドラッグ＆ドロップで直感的にエージェントを作成・編集 |
| Multi-Model Composition | GPT、Claude、Geminiなど複数のAIモデルをタスクに応じて最適に選択 |
| Knowledge Store | GitHub Vector Store連携でコードやデータを一元的に検索・アクセス |
| Team Collaboration | チーム間で設定を共有し、コンテキストを意識したエージェント設計（開発中） |
| Template Hub | コミュニティ提供のテンプレートからワンクリックでプロジェクト開始（開発中） |

## 技術スタック

### コア

- フレームワーク: Next.js 16（App Router）
- 言語: TypeScript
- ランタイム: Node.js 24+
- パッケージマネージャ: pnpm 10+
- ビルドシステム: Turborepo
- データベース: PostgreSQL（Drizzle ORM）
- ベクターストア: pgvector

### 主要ライブラリ

- UIライブラリ: React 19
- スタイリング: Tailwind CSS 4
- 状態管理: Zustand（エディタ）、SWR（データフェッチ）
- バリデーション: Zod v4
- フォーマット/リント: Biome
- テスト: Vitest
- AI SDK: Vercel AI SDK
- ビジュアルエディタ: React Flow（@xyflow/react）
- UIコンポーネント: Radix UI

## ディレクトリ構成

```
giselle/
├── apps/                           # デプロイ可能なアプリケーション
│   ├── studio.giselles.ai/         # Giselle Cloud（本番環境）
│   └── ui.giselles.ai/             # UIコンポーネントショーケース
├── packages/                       # 公開SDKパッケージ（@giselles-ai/*）
│   ├── protocol/                   # コアドメイン型・スキーマ
│   ├── giselle/                    # エンジン実装（タスク、生成、トリガー）
│   ├── react/                      # Reactフック・コンポーネント
│   ├── nextjs/                     # Next.js統合・ルートハンドラー
│   ├── language-model/             # 言語モデル抽象化
│   ├── language-model-registry/    # プロバイダー別モデル実装
│   ├── rag/                        # RAGパイプライン（チャンキング、埋め込み、クエリ）
│   ├── github-tool/                # GitHub連携ユーティリティ
│   └── ...                         # その他のパッケージ
├── internal-packages/              # 内部共有パッケージ（@giselle-internal/*）
│   ├── workflow-designer-ui/       # ビジュアルワークフローエディタ
│   └── ui/                         # 共有UIコンポーネント（Radixベース）
├── tools/                          # 開発ユーティリティ
├── scripts/                        # 開発スクリプト
├── docs/                           # ドキュメント
├── turbo.json                      # Turborepo設定
├── biome.json                      # Biome（フォーマット/リント）設定
└── pnpm-workspace.yaml             # pnpmワークスペース設定
```

## セットアップ

### 必要条件

- Node.js 24以上
- pnpm 10以上
- PostgreSQL（オプション：ローカル開発用）
- AIプロバイダーAPIキー（OpenAI、Anthropic、Google AIのいずれか1つ以上）

### インストール手順

```bash
# リポジトリをクローン
git clone https://github.com/giselles-ai/giselle.git
cd giselle

# 依存関係をインストール
pnpm install

# 環境ファイルを作成
touch .env.local

# APIキーを追加（少なくとも1つ必要）
echo 'OPENAI_API_KEY="your_openai_api_key_here"' >> .env.local

# 開発サーバーを起動
pnpm turbo dev
```

[http://localhost:3000](http://localhost:3000) を開いてAIエージェントの構築を開始できます。

## 開発

### 基本コマンド

```bash
# 開発サーバー起動
pnpm dev:studio.giselles.ai

# SDKパッケージのビルド
pnpm build-sdk

# 型チェック
pnpm check-types

# フォーマット
pnpm format

# テスト実行
pnpm test

# 未使用ファイル/依存関係の検出
pnpm tidy

# 未使用ファイル/依存関係の削除
pnpm tidy --fix
```

### コード変更後の推奨フロー

1. `pnpm format` - コードフォーマット
2. `pnpm build-sdk` - SDKパッケージのリビルド
3. `pnpm check-types` - 型検証
4. `pnpm tidy` - 未使用コードのチェック
5. `pnpm test` - テスト実行

### フォーマット設定

- インデント: タブ
- クォート: ダブルクォート
- インポート: 自動ソート（Biome）

### テスト

```bash
# 全テスト実行
pnpm test

# 特定パッケージのテスト
pnpm -F @giselles-ai/giselle test

# ウォッチモードでテスト
cd packages/giselle && vitest
```

## ライセンス

Apache License Version 2.0
