# internal/adapters/process

Package process runs external commands with streaming capture, watchdogs, and diagnostics.

## ErrTimeout

```go
var (
	// ErrTimeout wraps absolute process timeout failures.
	ErrTimeout = errors.New("process timeout")
	// ErrIdle wraps idle timeout failures.
	ErrIdle = errors.New("process idle timeout")
)
```

## ErrIdle

```go
var (
	// ErrTimeout wraps absolute process timeout failures.
	ErrTimeout = errors.New("process timeout")
	// ErrIdle wraps idle timeout failures.
	ErrIdle = errors.New("process idle timeout")
)
```

## Runner

```go
type Runner struct {
	DiagnosticsDir string
	DiagnosticName string
	Progress       io.Writer
	ProgressLabel  string
}
```

Runner executes external commands and writes optional diagnostics.

- `DiagnosticsDir: string`: 
- `DiagnosticName: string`: 
- `Progress: io.Writer`: 
- `ProgressLabel: string`: 

## Run

```go
func (r Runner) Run(ctx context.Context, req execution.Request) (execution.Result, error)
```

Run executes req with streaming stdout/stderr capture and watchdogs.
