feat: remove ai cmd

This commit is contained in:
2025-11-05 09:44:42 +08:00
parent ad8ca2b1f7
commit bf7cfc8224
24 changed files with 0 additions and 3112 deletions

View File

@@ -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 {