polish-cli
Version:
AI-powered file organization for Obsidian with automatic markdown conversion
121 lines • 2.75 kB
TypeScript
export interface Config {
vault: VaultConfig;
originals: OriginalsConfig;
sources: SourceConfig[];
processing: ProcessingConfig;
tagging: TaggingConfig;
api: ApiConfig;
}
export interface VaultConfig {
path: string;
structure: {
documents: string;
media: string;
code: string;
references: string;
};
}
export interface OriginalsConfig {
path: string;
organizationStyle: 'type-based' | 'project-based' | 'date-based';
createYearFolders: boolean;
}
export interface SourceConfig {
path: string;
includeSubfolders: boolean;
}
export interface ProcessingConfig {
extractText: boolean;
maxFileSize: string;
supportedFormats: string[];
}
export interface TaggingConfig {
maxTags: number;
autoGenerateTypeTags: boolean;
autoGenerateDateTags: boolean;
customTagPatterns: Record<string, string>;
}
export interface ApiConfig {
mode: 'claude-code' | 'api' | 'hybrid' | 'local';
apiKey?: string;
model?: string;
maxTokens?: number;
temperature?: number;
}
export interface FileInfo {
path: string;
name: string;
extension: string;
size: number;
createdAt: Date;
modifiedAt: Date;
type: FileType;
}
export declare enum FileType {
Document = "document",
Image = "image",
Code = "code",
Data = "data",
Archive = "archive",
Media = "media",
Unknown = "unknown"
}
export interface ProcessedFile {
original: FileInfo;
markdownPath: string;
originalNewPath: string;
content: string;
frontmatter: Frontmatter;
tags: string[];
category: string;
}
export interface Frontmatter {
title: string;
originalFile: string;
fileType: string;
created: string;
processed: string;
tags: string[];
[key: string]: unknown;
}
export interface OrganizationResult {
processed: ProcessedFile[];
failed: Array<{
file: FileInfo;
error: string;
}>;
summary: {
total: number;
successful: number;
failed: number;
duration: number;
};
}
export interface TagSuggestion {
tag: string;
confidence: number;
source: 'filename' | 'content' | 'type' | 'context';
}
export interface CategorySuggestion {
category: string;
confidence: number;
reasoning: string;
}
export interface Profile {
name: string;
description?: string;
config: Config;
createdAt: string;
lastUsed: string;
}
export interface ProfileSummary {
name: string;
description?: string;
vaultPath: string;
originalsPath: string;
sourceCount: number;
isActive: boolean;
createdAt: string;
lastUsed: string;
}
//# sourceMappingURL=index.d.ts.map