feat: remove ai cmd
This commit is contained in:
@@ -7,8 +7,6 @@ import (
|
||||
"os"
|
||||
"path/filepath"
|
||||
"time"
|
||||
|
||||
"github.com/rogeecn/renamer/internal/ai/prompt"
|
||||
)
|
||||
|
||||
const ledgerFileName = ".renamer"
|
||||
@@ -28,57 +26,6 @@ type Entry struct {
|
||||
Metadata map[string]any `json:"metadata,omitempty"`
|
||||
}
|
||||
|
||||
const aiMetadataKey = "ai"
|
||||
|
||||
// AIMetadata captures AI-specific ledger metadata for rename batches.
|
||||
type AIMetadata struct {
|
||||
PromptHash string `json:"promptHash"`
|
||||
ResponseHash string `json:"responseHash"`
|
||||
Model string `json:"model"`
|
||||
Policies prompt.NamingPolicyConfig `json:"policies"`
|
||||
BatchSize int `json:"batchSize"`
|
||||
AppliedAt time.Time `json:"appliedAt"`
|
||||
}
|
||||
|
||||
// AttachAIMetadata records AI metadata alongside the ledger entry.
|
||||
func (e *Entry) AttachAIMetadata(meta AIMetadata) {
|
||||
if e.Metadata == nil {
|
||||
e.Metadata = make(map[string]any)
|
||||
}
|
||||
if meta.AppliedAt.IsZero() {
|
||||
meta.AppliedAt = time.Now().UTC()
|
||||
}
|
||||
e.Metadata[aiMetadataKey] = meta
|
||||
}
|
||||
|
||||
// AIMetadata extracts AI metadata from the ledger entry if present.
|
||||
func (e Entry) AIMetadata() (AIMetadata, bool) {
|
||||
if e.Metadata == nil {
|
||||
return AIMetadata{}, false
|
||||
}
|
||||
raw, ok := e.Metadata[aiMetadataKey]
|
||||
if !ok {
|
||||
return AIMetadata{}, false
|
||||
}
|
||||
|
||||
switch value := raw.(type) {
|
||||
case AIMetadata:
|
||||
return value, true
|
||||
case map[string]any:
|
||||
var meta AIMetadata
|
||||
if err := remarshal(value, &meta); err != nil {
|
||||
return AIMetadata{}, false
|
||||
}
|
||||
return meta, true
|
||||
default:
|
||||
var meta AIMetadata
|
||||
if err := remarshal(value, &meta); err != nil {
|
||||
return AIMetadata{}, false
|
||||
}
|
||||
return meta, true
|
||||
}
|
||||
}
|
||||
|
||||
func remarshal(value any, target any) error {
|
||||
data, err := json.Marshal(value)
|
||||
if err != nil {
|
||||
|
||||
Reference in New Issue
Block a user