Documentation
¶
Index ¶
- func CheckGoModExists() bool
- func ExtractPlanJSON(response string) (string, error)
- func FormatFileSize(bytes int64) string
- func FormatPlan(plan *Plan) string
- func GetSessionFileSize(sessionPath string) (int64, error)
- func IsAPIKeyAvailable(provider string) bool
- func RunGoFmt(filePath string) (string, error)
- func RunGoTest(filePath string) (string, bool, error)
- func RunInteractive(model string, provider api.Provider, autoApprove, planMode bool)
- func RunInteractiveWithResume(model string, provider api.Provider, autoApprove, planMode bool)
- func RunOnce(query string, model string)
- type Agent
- type ErrorInfo
- type HeadlessResult
- func NewErrorResult(provider, model string, errType, errMsg string, durationMs int64) *HeadlessResult
- func NewSuccessResult(provider, model, response string, toolCalls []ToolCallResult, durationMs int64) *HeadlessResult
- func RunHeadless(query string, model string, provider api.Provider) *HeadlessResult
- type ParallelExecutor
- type Plan
- type PlanStep
- type SessionStats
- func (s *SessionStats) AddTokens(input, output int)
- func (s *SessionStats) AddToolExecution(toolName string)
- func (s *SessionStats) ElapsedTime() time.Duration
- func (s *SessionStats) EstimatedCost() float64
- func (s *SessionStats) FormatElapsedTime() string
- func (s *SessionStats) TotalMessages() int
- func (s *SessionStats) TotalTokens() int
- func (s *SessionStats) TotalToolExecutions() int
- type TokenUsage
- type ToolCallResult
- type VerifyResult
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func ExtractPlanJSON ¶ added in v0.29.0
ExtractPlanJSON はレスポンスからPlan JSONを抽出
func FormatFileSize ¶ added in v0.29.0
FormatFileSize はファイルサイズを人間が読める形式で返す
func GetSessionFileSize ¶ added in v0.29.0
GetSessionFileSize はセッションファイルのサイズを返す(bytes)
func IsAPIKeyAvailable ¶ added in v0.29.0
IsAPIKeyAvailable は指定されたプロバイダーのAPIキーが利用可能かチェック
func RunInteractive ¶
Types ¶
type Agent ¶
type Agent struct {
Model string // 初期モデル(後方互換性のため保持)
CurrentModel string // 現在のモデル(再起動なしで切り替え可能)
CurrentProvider api.Provider
ProviderName string
History []api.Message
SystemPrompt string
AutoApprove bool // --auto-approve フラグ
PlanMode bool // --plan フラグ(Plan Mode有効化)
Stats *SessionStats // セッション統計情報
// contains filtered or unexported fields
}
Agent はCLIエージェント
func (*Agent) CompressHistory ¶ added in v0.29.0
CompressHistory は会話履歴を圧縮する
func (*Agent) RunPlanMode ¶ added in v0.29.0
RunPlanMode はPlan Modeで計画を生成・承認・実行
func (*Agent) SwitchProvider ¶ added in v0.29.0
SwitchProvider はプロバイダーを切り替える
type ErrorInfo ¶ added in v0.29.0
type ErrorInfo struct {
Type string `json:"type"` // エラータイプ(api_error, tool_error, etc.)
Message string `json:"message"` // エラーメッセージ
Code int `json:"code,omitempty"` // エラーコード(HTTPステータスなど)
}
ErrorInfo はエラー情報
type HeadlessResult ¶ added in v0.29.0
type HeadlessResult struct {
Status string `json:"status"` // "success" or "error"
Provider string `json:"provider"` // LLMプロバイダー名
Model string `json:"model"` // モデル名
Response string `json:"response"` // AIの最終回答
ToolCalls []ToolCallResult `json:"tool_calls,omitempty"` // 実行されたツール呼び出し
Tokens *TokenUsage `json:"tokens,omitempty"` // トークン使用量
DurationMs int64 `json:"duration_ms"` // 実行時間(ミリ秒)
Timestamp string `json:"timestamp"` // タイムスタンプ(RFC3339)
Error *ErrorInfo `json:"error,omitempty"` // エラー情報
}
HeadlessResult はHeadlessモードの実行結果
func NewErrorResult ¶ added in v0.29.0
func NewErrorResult(provider, model string, errType, errMsg string, durationMs int64) *HeadlessResult
NewErrorResult はエラー結果を生成
func NewSuccessResult ¶ added in v0.29.0
func NewSuccessResult(provider, model, response string, toolCalls []ToolCallResult, durationMs int64) *HeadlessResult
NewSuccessResult は成功結果を生成
func RunHeadless ¶ added in v0.29.0
func RunHeadless(query string, model string, provider api.Provider) *HeadlessResult
RunHeadless はHeadlessモードでクエリを実行
func (*HeadlessResult) ToJSON ¶ added in v0.29.0
func (r *HeadlessResult) ToJSON() (string, error)
ToJSON は HeadlessResult を JSON 文字列に変換
type ParallelExecutor ¶ added in v0.29.0
type ParallelExecutor struct {
// contains filtered or unexported fields
}
ParallelExecutor は複数ステップの並列実行を管理
func NewParallelExecutor ¶ added in v0.29.0
func NewParallelExecutor(agent *Agent, plan *Plan) *ParallelExecutor
NewParallelExecutor は新しいParallelExecutorを作成
func (*ParallelExecutor) ExecuteSteps ¶ added in v0.29.0
func (e *ParallelExecutor) ExecuteSteps(ctx context.Context, stepIDs []int) error
ExecuteSteps は複数のステップを並列実行
type Plan ¶ added in v0.29.0
type Plan struct {
Steps []PlanStep `json:"steps"`
}
Plan は実行計画を表す
func (*Plan) CanExecute ¶ added in v0.29.0
CanExecute はステップが実行可能かチェック
func (*Plan) GetNextStep ¶ added in v0.29.0
GetNextStep は次に実行すべきステップIDを取得
func (*Plan) GetParallelSteps ¶ added in v0.29.0
GetParallelSteps は並列実行可能なステップを取得
func (*Plan) IsCompleted ¶ added in v0.29.0
IsCompleted はすべてのステップが完了したかチェック
func (*Plan) UpdateStatus ¶ added in v0.29.0
UpdateStatus はステップのステータスを更新
type PlanStep ¶ added in v0.29.0
type PlanStep struct {
ID int `json:"id"`
Description string `json:"description"`
Tools []string `json:"tools"` // 使用予定ツール
DependsOn []int `json:"depends_on"` // 依存するステップID
Parallel bool `json:"parallel"` // 並列実行可能か
Status string `json:"status"` // "pending", "running", "completed", "failed"
Result string `json:"result"` // 実行結果
}
PlanStep は計画の1ステップを表す
type SessionStats ¶ added in v0.29.0
type SessionStats struct {
StartTime time.Time
UserMessages int
AssistantMessages int
ToolExecutions map[string]int // ツール名 -> 実行回数
InputTokens int
OutputTokens int
Provider string // "deepseek", "openai", "claude", "gemini", "groq", "ollama"
}
SessionStats はセッション統計情報
func NewSessionStats ¶ added in v0.29.0
func NewSessionStats(provider string) *SessionStats
NewSessionStats は新しいSessionStatsを作成
func (*SessionStats) AddTokens ¶ added in v0.29.0
func (s *SessionStats) AddTokens(input, output int)
AddTokens はトークン使用量を追加
func (*SessionStats) AddToolExecution ¶ added in v0.29.0
func (s *SessionStats) AddToolExecution(toolName string)
AddToolExecution はツール実行をカウント
func (*SessionStats) ElapsedTime ¶ added in v0.29.0
func (s *SessionStats) ElapsedTime() time.Duration
ElapsedTime はセッション開始からの経過時間を返す
func (*SessionStats) EstimatedCost ¶ added in v0.29.0
func (s *SessionStats) EstimatedCost() float64
EstimatedCost は推定コストを計算(USD)
func (*SessionStats) FormatElapsedTime ¶ added in v0.29.0
func (s *SessionStats) FormatElapsedTime() string
FormatElapsedTime は経過時間を人間が読める形式で返す
func (*SessionStats) TotalMessages ¶ added in v0.29.0
func (s *SessionStats) TotalMessages() int
TotalMessages は合計メッセージ数を返す
func (*SessionStats) TotalTokens ¶ added in v0.29.0
func (s *SessionStats) TotalTokens() int
TotalTokens は合計トークン数を返す
func (*SessionStats) TotalToolExecutions ¶ added in v0.29.0
func (s *SessionStats) TotalToolExecutions() int
TotalToolExecutions は合計ツール実行回数を返す
type TokenUsage ¶ added in v0.29.0
type TokenUsage struct {
Input int `json:"input"` // 入力トークン数
Output int `json:"output"` // 出力トークン数
Total int `json:"total"` // 合計トークン数
}
TokenUsage はトークン使用量
type ToolCallResult ¶ added in v0.29.0
type ToolCallResult struct {
Tool string `json:"tool"` // ツール名
Args map[string]string `json:"args"` // 引数
Output string `json:"output"` // 出力
Success bool `json:"success"` // 成功フラグ
}
ToolCallResult は個別のツール呼び出し結果
type VerifyResult ¶
type VerifyResult struct {
NeedsVerify bool // 検証が必要か
FileType string // "go", "js", "py" など
ChangedFiles []string // 変更されたファイル
FmtResult string // go fmt の結果
TestResult string // go test の結果
TestPassed bool // テスト成功したか
}
VerifyResult は検証結果
func ShouldVerify ¶
func ShouldVerify(filePath string) *VerifyResult
ShouldVerify は変更されたファイルが検証対象かを判定