//go:build windows

// Package proxy provides process I/O proxying and monitoring capabilities
package proxy

import (
	"errors"
	"time"
)

// Status represents the status information that is periodically written
type Status struct {
	RunID          int       `yaml:"run_id"`
	PID            int       `yaml:"pid"`
	Status         string    `yaml:"status"`
	ExitCode       int       `yaml:"exit_code"`
	StartedAt      time.Time `yaml:"started_at"`
	EndedAt        time.Time `yaml:"ended_at,omitempty"`
	LastActivityAt time.Time `yaml:"last_activity_at,omitempty"`
}

// Options configures the proxy behavior
type Options struct {
	SessionDir string   // Directory to store run-specific data
	StatusPath string   // Path to status file
	LogPath    string   // Path to log file (empty if logging disabled)
	SocketPath string   // Unix socket path for output streaming
	Command    []string // Command to execute
	Foreground bool     // If true, run in foreground mode (direct I/O, no pipes)
}

var errWindowsNotSupported = errors.New("proxy functionality is not supported on Windows due to Unix socket requirement")

// BuildProxyCommand builds command arguments for running amux proxy
// Returns the arguments to pass to exec.Command (without the binary path)
func BuildProxyCommand(sessionID string, command []string, enableLog bool) ([]string, error) {
	return nil, errWindowsNotSupported
}

// BuildProxyCommandWithOptions builds command arguments with additional options
func BuildProxyCommandWithOptions(sessionID string, command []string, enableLog bool, foreground bool) ([]string, error) {
	return nil, errWindowsNotSupported
}
