3.0 KiB
3.0 KiB
Data Model – Insert Command
Entity: InsertRequest
- Fields
WorkingDir string— Absolute path derived from CLI--pathor current directory.PositionToken string— Raw user input (^,$, positive int, negative int) describing insertion point.InsertText string— Unicode string to insert.IncludeDirs bool— Mirrors--include-dirsscope flag.Recursive bool— Mirrors--recursive.IncludeHidden bool— True only when--hiddensupplied.ExtensionFilter []string— Normalized tokens from--extensions.DryRun bool— Preview-only execution state.AutoConfirm bool— Captures--yesfor non-interactive runs.Timestamp time.Time— Invocation timestamp for ledger correlation.
- Validation Rules
- Reject empty
InsertText, path separators, or control characters. - Ensure
PositionTokenparses to a valid rune index relative to the stem (^= 0,$= len, positive 1-based, negative = offset from end). - Confirm resulting filename is non-empty and does not change extension semantics.
- Reject empty
- Relationships
- Consumed by insert engine to plan operations.
- Serialized into ledger metadata with
InsertSummary.
Entity: InsertSummary
- Fields
TotalCandidates int— Items inspected after scope filtering.TotalChanged int— Entries that will change after insertion.NoChange int— Entries already containing target string at position (if applicable).Conflicts []Conflict— Target collisions or invalid positions.Warnings []string— Validation notices (duplicates, trimmed tokens, skipped hidden items).Entries []PreviewEntry— Ordered original/proposed mappings with status.LedgerMetadata map[string]any— Snapshot persisted with ledger entry (position, text, scope flags).
- Validation Rules
- Conflicts must be empty before apply.
TotalChanged + NoChangeequals count of entries with statuschangedorno_change.- Entries sorted deterministically by original path.
- Relationships
- Emitted to preview renderer and ledger writer.
- Input for undo verification.
Entity: Conflict
- Fields
OriginalPath stringProposedPath stringReason string— (duplicate_target,invalid_position,existing_file, etc.)
- Validation Rules
ProposedPathunique among planned operations.- Reason restricted to known enum values for messaging.
- Relationships
- Reported in preview output and used to block apply.
Entity: PreviewEntry
- Fields
OriginalPath stringProposedPath stringStatus string—changed,no_change,skipped.InsertedText string— Text segment inserted (for auditing).
- Validation Rules
ProposedPathequalsOriginalPathwhenStatus == "no_change".InsertedTextempty only forno_changeorskipped.
- Relationships
- Displayed in preview output.
- Persisted with ledger metadata for undo playback.