> ## Documentation Index
> Fetch the complete documentation index at: https://docs.qoder.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Environment スキーマ

> Environment オブジェクトと設定構造。

## Environment オブジェクト

作成、取得、一覧、更新、アーカイブの各エンドポイントで返される構造です。

| フィールド         | 型                                         | 説明                                                                                     |
| ------------- | ----------------------------------------- | -------------------------------------------------------------------------------------- |
| `id`          | string                                    | Environment ID（`env_` プレフィックス付き）                                                       |
| `type`        | string                                    | 固定値 `"environment"`                                                                    |
| `name`        | string                                    | Environment 名                                                                          |
| `description` | string                                    | Environment の説明                                                                        |
| `config`      | [Environment config](#environment-config) | Environment 設定                                                                         |
| `metadata`    | object                                    | [Metadata オブジェクト](/ja/cloud-agents/api/conventions/schemas#metadata-オブジェクト)、デフォルト `{}` |
| `archived_at` | string \| null                            | UTC アーカイブ時刻。未アーカイブ時は `null`                                                            |
| `created_at`  | string                                    | UTC 作成時刻                                                                               |
| `updated_at`  | string                                    | UTC 最終更新時刻                                                                             |

## Environment config

| フィールド          | 型                                                 | 必須  | 説明                                                                                 |
| -------------- | ------------------------------------------------- | --- | ---------------------------------------------------------------------------------- |
| `type`         | string                                            | はい  | `"cloud"` または `"self_hosted"`                                                      |
| `networking`   | [Environment networking](#environment-networking) | いいえ | ネットワークアクセス設定                                                                       |
| `packages`     | [Environment packages](#environment-packages)     | いいえ | Environment に関連付けられたパッケージ宣言                                                        |
| `setup_script` | string                                            | いいえ | ユーザーセットアップスクリプトのテキスト。詳細は [Environment setup script](#environment-setup-script) を参照 |

`self_hosted` の場合、config は厳密に以下の形式でなければなりません：

```json theme={null}
{"type": "self_hosted"}
```

その他の config フィールドは `type` が `"cloud"` の場合のみ有効です。

## Environment packages

`packages` はパッケージマネージャーからパッケージ仕様文字列の配列へのマッピングです。Cloud Environment のレスポンスには `type` と `apt`、`npm`、`pip` が含まれます。省略された配列は `[]` として返されます。

| キー     | 型          | 説明                        | 例                                    |
| ------ | ---------- | ------------------------- | ------------------------------------ |
| `type` | string     | レスポンスでは固定値 `"packages"`   | `"packages"`                         |
| `apt`  | string の配列 | Debian/Ubuntu システムパッケージ宣言 | `["git", "curl", "build-essential"]` |
| `npm`  | string の配列 | Node.js パッケージ宣言           | `["typescript@5.0.0", "eslint"]`     |
| `pip`  | string の配列 | Python パッケージ宣言            | `["pandas", "PyYAML==6.0.1"]`        |

## Environment setup script

`setup_script` はサンドボックスの準備段階で `packages` のインストール完了後に実行されるシェルスクリプトで、`/bin/bash -lc` で実行されます。リポジトリのクローン、設定ファイルの書き込み、キャッシュのウォームアップなど、`packages` では表現できない初期化手順に使用します。

| 制約      | 値                                |
| ------- | -------------------------------- |
| 型       | string                           |
| 最大長     | 64 KB                            |
| インタープリタ | `/bin/bash -lc`                  |
| タイムアウト  | 10 分                             |
| 実行タイミング | サンドボックス準備段階、`packages` インストール完了後 |

実行成功時にはサンドボックス内に完了マーカーが書き込まれ、同一サンドボックス内では再実行されません。サンドボックスが再作成された場合は再度実行されます。

スクリプトがゼロ以外の終了ステータスで終了すると、セッションの起動が失敗します。エラーレスポンスには `setup_script` の終了コードと stderr の抜粋が含まれ、障害の原因を特定するのに役立ちます。

```json theme={null}
{
  "config": {
    "type": "cloud",
    "networking": {"type": "unrestricted"},
    "setup_script": "set -euo pipefail\n[ -d /workspace/.git ] || git clone https://github.com/me/repo /workspace\ncd /workspace && pnpm install --frozen-lockfile"
  }
}
```

## Environment networking

| フィールド                    | 型          | 必須  | 説明                                              |
| ------------------------ | ---------- | --- | ----------------------------------------------- |
| `type`                   | string     | はい  | 有効な値：`limited`、`unrestricted`                   |
| `allowed_hosts`          | string の配列 | いいえ | config とともに返されるホスト許可リスト。デフォルト `[]`              |
| `allow_package_managers` | boolean    | いいえ | config とともに返されるパッケージマネージャーアクセスフラグ。デフォルト `false` |
| `allow_mcp_servers`      | boolean    | いいえ | config とともに返される MCP サーバーアクセスフラグ。デフォルト `false`   |

## 関連

<CardGroup cols={2}>
  <Card title="クラウド環境" icon="server" href="/ja/cloud-agents/environments">
    Agent が実行されるコンテナ、ネットワーク、依存関係を選択する。
  </Card>
</CardGroup>
