# internal/core/execution

Package execution defines command execution requests and results.

## EnvModeInherit

```go
const (
	// EnvModeInherit preserves the existing inherited environment behavior.
	EnvModeInherit EnvMode = ""
	// EnvModeExact runs with Request.Env exactly.
	EnvModeExact EnvMode = "exact"
)
```

## EnvModeExact

```go
const (
	// EnvModeInherit preserves the existing inherited environment behavior.
	EnvModeInherit EnvMode = ""
	// EnvModeExact runs with Request.Env exactly.
	EnvModeExact EnvMode = "exact"
)
```

## EnvMode

```go
type EnvMode string
```

EnvMode controls whether a process inherits the host environment.

## Request

```go
type Request struct {
	Command                string
	Args                   []string
	Input                  string
	CWD                    string
	Env                    []string
	EnvMode                EnvMode
	DiagnosticName         string
	Timeout                time.Duration
	IdleTimeout            time.Duration
	TerminateGrace         time.Duration
	MaxCaptureBytes        int
	ProgressInterval       time.Duration
	SuppressProgressStderr bool
	StdoutEventInspector   func(string) string
}
```

Request describes a command execution requested by an application use case.

- `Command: string`: 
- `Args: []string`: 
- `Input: string`: 
- `CWD: string`: 
- `Env: []string`: 
- `EnvMode: EnvMode`: 
- `DiagnosticName: string`: 
- `Timeout: time.Duration`: 
- `IdleTimeout: time.Duration`: 
- `TerminateGrace: time.Duration`: 
- `MaxCaptureBytes: int`: 
- `ProgressInterval: time.Duration`: 
- `SuppressProgressStderr: bool`: 
- `StdoutEventInspector: func(string) string`: 

## Result

```go
type Result struct {
	ExitCode          int
	Output            string
	Stdout            string
	Stderr            string
	DiagnosticPath    string
	TimedOut          bool
	KillReason        string
	WallElapsed       time.Duration
	TimeSinceLastByte time.Duration
	IdleTimeout       time.Duration
	AbsoluteTimeout   time.Duration
	DroppedBytes      int
	StdoutEvents      map[string]int
}
```

Result captures the observable outcome of a command execution.

- `ExitCode: int`: 
- `Output: string`: 
- `Stdout: string`: 
- `Stderr: string`: 
- `DiagnosticPath: string`: 
- `TimedOut: bool`: 
- `KillReason: string`: 
- `WallElapsed: time.Duration`: 
- `TimeSinceLastByte: time.Duration`: 
- `IdleTimeout: time.Duration`: 
- `AbsoluteTimeout: time.Duration`: 
- `DroppedBytes: int`: 
- `StdoutEvents: map[string]int`:
