app

package
v0.1.12 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 30, 2026 License: Apache-2.0 Imports: 20 Imported by: 0

Documentation

Index

Constants

View Source
const APIVersion = "v1"

Variables

This section is empty.

Functions

This section is empty.

Types

type AnalyzeRequest

type AnalyzeRequest struct {
	APIVersion   string `json:"api_version,omitempty"`
	RequestID    string `json:"request_id,omitempty"`
	Path         string `json:"path,omitempty"`
	Recursive    bool   `json:"recursive,omitempty"`
	CostEstimate bool   `json:"cost_estimate,omitempty"`
	Provider     string `json:"provider,omitempty"`
	Model        string `json:"model,omitempty"`
	BatchSize    int    `json:"batch_size,omitempty"`
	Detail       string `json:"detail,omitempty"`
}

AnalyzeRequest defines a machine-readable analyze request.

type AnalyzeResponse

type AnalyzeResponse struct {
	APIVersion             string               `json:"api_version"`
	RequestID              string               `json:"request_id,omitempty"`
	Success                bool                 `json:"success"`
	FailureCode            FailureCode          `json:"failure_code,omitempty"`
	Error                  string               `json:"error,omitempty"`
	Path                   string               `json:"path"`
	TotalFiles             int                  `json:"total_files"`
	TotalFunctions         int                  `json:"total_functions"`
	TotalLines             int                  `json:"total_lines"`
	ByLanguage             map[string]LangStats `json:"by_language"`
	ExactFunctionFiles     int                  `json:"exact_function_files,omitempty"`
	HeuristicFunctionFiles int                  `json:"heuristic_function_files,omitempty"`
	Provider               string               `json:"provider,omitempty"`
	Model                  string               `json:"model,omitempty"`
	EstimatedRequests      int                  `json:"estimated_requests,omitempty"`
	EstimatedBatchCount    int                  `json:"estimated_batch_count,omitempty"`
	EstimatedChunkCount    int                  `json:"estimated_chunk_count,omitempty"`
	EstimatedInputTokens   int                  `json:"estimated_input_tokens,omitempty"`
	EstimatedOutputTokens  int                  `json:"estimated_output_tokens,omitempty"`
	EstimatedTokens        int                  `json:"estimated_tokens,omitempty"`
	EstimatedCost          float64              `json:"estimated_cost_usd,omitempty"`
	InputCostPerMTokens    float64              `json:"input_cost_per_million_usd,omitempty"`
	OutputCostPerMTokens   float64              `json:"output_cost_per_million_usd,omitempty"`
	CostEstimateOffline    bool                 `json:"cost_estimate_offline,omitempty"`
	Warnings               []string             `json:"warnings,omitempty"`
	Usage                  *llm.UsageMetrics    `json:"usage,omitempty"`
	Files                  []FileAnalysis       `json:"files,omitempty"`
}

AnalyzeResponse contains analysis details for a codebase.

func NewAnalyzeFailureResponse

func NewAnalyzeFailureResponse(req AnalyzeRequest, err error, targetPath string) *AnalyzeResponse

NewAnalyzeFailureResponse builds a structured machine-readable failure envelope.

type Artifact

type Artifact struct {
	SourcePath       string      `json:"source_path"`
	Language         string      `json:"language"`
	TestPath         string      `json:"test_path,omitempty"`
	TestCode         string      `json:"test_code,omitempty"`
	FunctionsTested  []string    `json:"functions_tested,omitempty"`
	Generated        bool        `json:"generated"`
	FailureCode      FailureCode `json:"failure_code,omitempty"`
	Error            string      `json:"error,omitempty"`
	ValidationFailed bool        `json:"validation_failed,omitempty"`
}

Artifact is a machine-readable generated artifact.

type FailureCode

type FailureCode string

FailureCode provides a stable machine-readable failure taxonomy.

const (
	FailureCodeInvalidRequest          FailureCode = "invalid_request"
	FailureCodeNoSourceFiles           FailureCode = "no_source_files"
	FailureCodeUnsupportedLanguage     FailureCode = "unsupported_language"
	FailureCodeMissingAPIKey           FailureCode = "missing_api_key"
	FailureCodeProviderTimeout         FailureCode = "provider_timeout"
	FailureCodeProviderRateLimited     FailureCode = "provider_rate_limited"
	FailureCodeMalformedProviderOutput FailureCode = "malformed_provider_output"
	FailureCodeValidationFailed        FailureCode = "validation_failed"
	FailureCodeWriteFailed             FailureCode = "write_failed"
	FailureCodeScanFailed              FailureCode = "scan_failed"
	FailureCodeCancelled               FailureCode = "cancelled"
	FailureCodeInternalError           FailureCode = "internal_error"
)

type FileAnalysis

type FileAnalysis struct {
	Path              string  `json:"path"`
	Language          string  `json:"language"`
	Lines             int     `json:"lines"`
	Functions         int     `json:"functions"`
	FunctionCountMode string  `json:"function_count_mode,omitempty"`
	Tokens            int     `json:"estimated_tokens,omitempty"`
	EstimatedCost     float64 `json:"estimated_cost_usd,omitempty"`
}

FileAnalysis captures per-file analysis output.

type GenerateRequest

type GenerateRequest struct {
	APIVersion     string   `json:"api_version,omitempty"`
	RequestID      string   `json:"request_id,omitempty"`
	Path           string   `json:"path,omitempty"`
	File           string   `json:"file,omitempty"`
	Recursive      bool     `json:"recursive,omitempty"`
	IncludePattern string   `json:"include_pattern,omitempty"`
	ExcludePattern string   `json:"exclude_pattern,omitempty"`
	TestTypes      []string `json:"test_types,omitempty"`
	Framework      string   `json:"framework,omitempty"`
	OutputDir      string   `json:"output_dir,omitempty"`
	DryRun         bool     `json:"dry_run,omitempty"`
	WriteFiles     *bool    `json:"write_files,omitempty"`
	Validate       bool     `json:"validate,omitempty"`
	BatchSize      int      `json:"batch_size,omitempty"`
	Parallelism    int      `json:"parallelism,omitempty"`
	Provider       string   `json:"provider,omitempty"`
	ReportUsage    bool     `json:"report_usage,omitempty"`
	EmitPatch      bool     `json:"emit_patch,omitempty"`
}

GenerateRequest defines a machine-readable test generation request.

func (GenerateRequest) ResolvedDryRun

func (r GenerateRequest) ResolvedDryRun() bool

func (GenerateRequest) ResolvedWriteFiles

func (r GenerateRequest) ResolvedWriteFiles() bool

type GenerateResponse

type GenerateResponse struct {
	APIVersion     string                     `json:"api_version"`
	RequestID      string                     `json:"request_id,omitempty"`
	Success        bool                       `json:"success"`
	FailureCode    FailureCode                `json:"failure_code,omitempty"`
	Error          string                     `json:"error,omitempty"`
	DryRun         bool                       `json:"dry_run"`
	WriteFiles     bool                       `json:"write_files"`
	WriteMode      string                     `json:"write_mode,omitempty"`
	TargetPath     string                     `json:"target_path"`
	SourceFiles    []*models.SourceFile       `json:"source_files,omitempty"`
	Results        []*models.GenerationResult `json:"results"`
	Artifacts      []Artifact                 `json:"artifacts,omitempty"`
	Patches        []PatchOperation           `json:"patches,omitempty"`
	Usage          *llm.UsageMetrics          `json:"usage,omitempty"`
	SuccessCount   int                        `json:"success_count"`
	ErrorCount     int                        `json:"error_count"`
	TotalFunctions int                        `json:"total_functions"`
}

GenerateResponse contains the shared generation result returned to callers.

func NewGenerateFailureResponse

func NewGenerateFailureResponse(req GenerateRequest, err error, targetPath string) *GenerateResponse

NewGenerateFailureResponse builds a structured machine-readable failure envelope.

type LangStats

type LangStats struct {
	Files     int `json:"files"`
	Lines     int `json:"lines"`
	Functions int `json:"functions"`
}

LangStats captures aggregate stats per language.

type PatchOperation

type PatchOperation struct {
	Path    string `json:"path"`
	Action  string `json:"action"`
	Content string `json:"content"`
}

PatchOperation is a structured write operation suitable for agent wrappers.

type Service

type Service struct {
	// contains filtered or unexported fields
}

Service centralizes machine-readable orchestration for CLI, TUI, and future wrappers.

func NewService

func NewService() *Service

NewService creates a Service with production dependencies.

func (*Service) Analyze

func (s *Service) Analyze(_ context.Context, req AnalyzeRequest) (*AnalyzeResponse, error)

Analyze executes codebase analysis via the shared application layer.

func (*Service) Generate

func (s *Service) Generate(ctx context.Context, req GenerateRequest) (*GenerateResponse, error)

Generate executes test generation via the shared application layer.

func (*Service) Validate

func (s *Service) Validate(_ context.Context, req ValidateRequest) (*ValidateResponse, error)

Validate executes validation via the shared application layer.

type ValidateRequest

type ValidateRequest struct {
	APIVersion    string  `json:"api_version,omitempty"`
	RequestID     string  `json:"request_id,omitempty"`
	Path          string  `json:"path,omitempty"`
	Recursive     bool    `json:"recursive,omitempty"`
	MinCoverage   float64 `json:"min_coverage,omitempty"`
	FailOnMissing bool    `json:"fail_on_missing,omitempty"`
	ReportGaps    bool    `json:"report_gaps,omitempty"`
}

ValidateRequest defines a machine-readable validate request.

type ValidateResponse

type ValidateResponse struct {
	APIVersion  string               `json:"api_version"`
	RequestID   string               `json:"request_id,omitempty"`
	Success     bool                 `json:"success"`
	FailureCode FailureCode          `json:"failure_code,omitempty"`
	Error       string               `json:"error,omitempty"`
	TargetPath  string               `json:"target_path"`
	SourceFiles []*models.SourceFile `json:"source_files,omitempty"`
	Result      *validation.Result   `json:"result"`
}

ValidateResponse contains validation output plus scan metadata.

func NewValidateFailureResponse

func NewValidateFailureResponse(req ValidateRequest, err error, targetPath string) *ValidateResponse

NewValidateFailureResponse builds a structured machine-readable failure envelope.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL