# `PromptRunner.Packet`
[🔗](https://github.com/nshkrdotcom/prompt_runner_sdk/blob/v0.12.1/lib/prompt_runner/packet.ex#L1)

Packet manifest loader and generator.

# `repo_config`

```elixir
@type repo_config() :: %{name: String.t(), path: String.t(), default: boolean()}
```

# `t`

```elixir
@type t() :: %PromptRunner.Packet{
  body: String.t(),
  manifest_path: String.t(),
  name: String.t(),
  options: map(),
  phase_names: map(),
  profile: map(),
  profile_name: String.t() | nil,
  prompt_dir: String.t(),
  prompt_path: String.t(),
  repos: [repo_config()],
  root: String.t()
}
```

# `add_repo`

```elixir
@spec add_repo(String.t(), String.t(), String.t(), keyword()) ::
  {:ok, t()} | {:error, term()}
```

# `checklist_sync`

```elixir
@spec checklist_sync(String.t()) ::
  {:ok, %{paths: [String.t()], warnings: [map()]}} | {:error, term()}
```

# `doctor`

```elixir
@spec doctor(String.t()) :: {:ok, map()} | {:error, term()}
```

# `exists?`

```elixir
@spec exists?(String.t()) :: boolean()
```

# `explain`

```elixir
@spec explain(String.t()) :: {:ok, map()} | {:error, term()}
```

# `load`

```elixir
@spec load(String.t()) :: {:ok, t()} | {:error, term()}
```

# `manifest_file`

```elixir
@spec manifest_file(String.t()) :: String.t()
```

# `new`

```elixir
@spec new(
  String.t(),
  keyword()
) :: {:ok, t()} | {:error, term()}
```

# `preflight`

```elixir
@spec preflight(String.t()) ::
  {:ok, map()} | {:error, {:preflight_failed, map()}} | {:error, term()}
```

---

*Consult [api-reference.md](api-reference.md) for complete listing*
