aicodingsession

package
v1.88.1 Latest Latest
Warning

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

Go to latest
Published: Mar 26, 2026 License: Apache-2.0 Imports: 1 Imported by: 0

Documentation

Index

Constants

View Source
const (
	// EvidenceID is the identifier for the AI coding session material type
	EvidenceID = "CHAINLOOP_AI_CODING_SESSION"
	// EvidenceSchemaURL is the URL to the JSON schema for AI coding session
	EvidenceSchemaURL = "https://schemas.chainloop.dev/aicodingsession/0.1/ai-coding-session.schema.json"
)

Variables

This section is empty.

Functions

This section is empty.

Types

type Agent

type Agent struct {
	Name    string `json:"name"`
	Version string `json:"version,omitempty"`
}

Agent identifies the AI agent provider.

type CodeChanges

type CodeChanges struct {
	FilesModified int          `json:"files_modified,omitempty"`
	FilesCreated  int          `json:"files_created,omitempty"`
	FilesDeleted  int          `json:"files_deleted,omitempty"`
	LinesAdded    int          `json:"lines_added,omitempty"`
	LinesRemoved  int          `json:"lines_removed,omitempty"`
	Files         []FileChange `json:"files,omitempty"`
}

CodeChanges summarizes code modifications made during the session.

type Conversation

type Conversation struct {
	TotalMessages     int `json:"total_messages,omitempty"`
	UserMessages      int `json:"user_messages,omitempty"`
	AssistantMessages int `json:"assistant_messages,omitempty"`
}

Conversation holds message count statistics.

type Data

type Data struct {
	SchemaVersion string                       `json:"schema_version"`
	Agent         Agent                        `json:"agent"`
	Session       Session                      `json:"session"`
	GitContext    *GitContext                  `json:"git_context,omitempty"`
	CodeChanges   *CodeChanges                 `json:"code_changes,omitempty"`
	Model         *Model                       `json:"model,omitempty"`
	Usage         *Usage                       `json:"usage,omitempty"`
	ToolsUsed     *ToolsUsed                   `json:"tools_used,omitempty"`
	Conversation  *Conversation                `json:"conversation,omitempty"`
	Subagents     []json.RawMessage            `json:"subagents,omitempty"`
	RawSession    map[string][]json.RawMessage `json:"raw_session,omitempty"`
	Warnings      []string                     `json:"warnings,omitempty"`
}

Data is the AI coding session payload.

type Evidence

type Evidence struct {
	ID     string `json:"chainloop.material.evidence.id"`
	Schema string `json:"schema"`
	Data   Data   `json:"data"`
}

Evidence represents the complete evidence structure for AI coding session.

func NewEvidence

func NewEvidence(data Data) *Evidence

NewEvidence creates a new Evidence instance.

type FileChange

type FileChange struct {
	Path   string `json:"path"`
	Status string `json:"status"`
}

FileChange represents a single file modification in the session.

type GitContext

type GitContext struct {
	Repository  string   `json:"repository,omitempty"`
	Branch      string   `json:"branch,omitempty"`
	WorkDir     string   `json:"work_dir,omitempty"`
	CommitStart string   `json:"commit_start,omitempty"`
	CommitEnd   string   `json:"commit_end,omitempty"`
	Commits     []string `json:"commits,omitempty"`
	CommitCount int      `json:"commit_count,omitempty"`
}

GitContext holds repository and commit information at capture time.

type Model

type Model struct {
	Primary    string   `json:"primary,omitempty"`
	Provider   string   `json:"provider,omitempty"`
	ModelsUsed []string `json:"models_used,omitempty"`
}

Model holds information about the AI models used in the session.

type Session

type Session struct {
	ID              string `json:"id"`
	Slug            string `json:"slug,omitempty"`
	StartedAt       string `json:"started_at"`
	EndedAt         string `json:"ended_at,omitempty"`
	DurationSeconds int    `json:"duration_seconds"`
}

Session holds timing and identity information for the coding session.

type ToolSummary

type ToolSummary struct {
	ToolName        string `json:"tool_name"`
	InvocationCount int    `json:"invocation_count"`
}

ToolSummary represents usage statistics for a single tool.

type ToolsUsed

type ToolsUsed struct {
	Summary          []ToolSummary `json:"summary,omitempty"`
	TotalInvocations int           `json:"total_invocations,omitempty"`
}

ToolsUsed summarizes tool usage during the session.

type Usage

type Usage struct {
	InputTokens              int     `json:"input_tokens,omitempty"`
	OutputTokens             int     `json:"output_tokens,omitempty"`
	TotalTokens              int     `json:"total_tokens,omitempty"`
	CacheReadInputTokens     int     `json:"cache_read_input_tokens,omitempty"`
	CacheCreationInputTokens int     `json:"cache_creation_input_tokens,omitempty"`
	EstimatedCostUSD         float64 `json:"estimated_cost_usd,omitempty"`
}

Usage holds token usage and cost information.

Jump to

Keyboard shortcuts

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