@amirdaraee/namewise 0.4.1 → 0.5.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (45) hide show
  1. package/CHANGELOG.md +102 -0
  2. package/dist/cli/commands.d.ts.map +1 -1
  3. package/dist/cli/commands.js +14 -7
  4. package/dist/cli/commands.js.map +1 -1
  5. package/dist/cli/rename.js +1 -1
  6. package/dist/cli/rename.js.map +1 -1
  7. package/dist/parsers/factory.d.ts +2 -1
  8. package/dist/parsers/factory.d.ts.map +1 -1
  9. package/dist/parsers/factory.js +9 -6
  10. package/dist/parsers/factory.js.map +1 -1
  11. package/dist/parsers/pdf-parser.d.ts +1 -0
  12. package/dist/parsers/pdf-parser.d.ts.map +1 -1
  13. package/dist/parsers/pdf-parser.js +20 -1
  14. package/dist/parsers/pdf-parser.js.map +1 -1
  15. package/dist/services/claude-service.d.ts.map +1 -1
  16. package/dist/services/claude-service.js +57 -17
  17. package/dist/services/claude-service.js.map +1 -1
  18. package/dist/services/lmstudio-service.d.ts.map +1 -1
  19. package/dist/services/lmstudio-service.js +7 -0
  20. package/dist/services/lmstudio-service.js.map +1 -1
  21. package/dist/services/ollama-service.d.ts +1 -0
  22. package/dist/services/ollama-service.d.ts.map +1 -1
  23. package/dist/services/ollama-service.js +54 -15
  24. package/dist/services/ollama-service.js.map +1 -1
  25. package/dist/services/openai-service.d.ts.map +1 -1
  26. package/dist/services/openai-service.js +57 -18
  27. package/dist/services/openai-service.js.map +1 -1
  28. package/dist/utils/pdf-to-image.d.ts +11 -0
  29. package/dist/utils/pdf-to-image.d.ts.map +1 -0
  30. package/dist/utils/pdf-to-image.js +91 -0
  31. package/dist/utils/pdf-to-image.js.map +1 -0
  32. package/eng.traineddata +0 -0
  33. package/package.json +5 -2
  34. package/src/cli/commands.ts +14 -7
  35. package/src/cli/rename.ts +1 -1
  36. package/src/parsers/factory.ts +11 -7
  37. package/src/parsers/pdf-parser.ts +22 -1
  38. package/src/services/claude-service.ts +61 -18
  39. package/src/services/lmstudio-service.ts +9 -0
  40. package/src/services/ollama-service.ts +68 -15
  41. package/src/services/openai-service.ts +61 -19
  42. package/src/utils/pdf-to-image.ts +124 -0
  43. package/tests/integration/end-to-end.test.ts +9 -9
  44. package/tests/unit/cli/commands.test.ts +9 -3
  45. package/tests/unit/utils/pdf-to-image.test.ts +127 -0
package/CHANGELOG.md CHANGED
@@ -7,6 +7,108 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ## [0.5.0] - 2025-11-10
11
+
12
+ ### Added
13
+ - **📄 Scanned PDF Support**: Full support for image-only (scanned) PDFs with vision AI
14
+ - Automatic detection of scanned PDFs (documents with minimal or no text)
15
+ - Converts first page to image and sends to AI for content analysis
16
+ - Intelligent image optimization to stay under Claude's 5MB limit
17
+ - Progressive JPEG compression with multiple quality levels (0.85 → 0.3)
18
+ - Automatic dimension scaling if needed (100% → 70% → 50%)
19
+ - Smart size calculation to ensure API compatibility
20
+
21
+ ### Enhanced
22
+ - **🔄 PDF Processing**: Replaced PDF.js with pdf-to-png-converter for better Node.js compatibility
23
+ - Resolves canvas rendering issues in Node.js environment
24
+ - More reliable PDF-to-image conversion
25
+ - Better error handling and debugging
26
+ - **🤖 AI Model**: Updated to Claude Sonnet 4.5 (claude-sonnet-4-5-20250929)
27
+ - Latest Claude model with enhanced vision capabilities
28
+ - Improved accuracy for document analysis
29
+ - Better understanding of complex document layouts
30
+
31
+ ### Technical
32
+ - Replaced `pdfjs-dist` with `pdf-to-png-converter` package
33
+ - Enhanced PDFToImageConverter with size optimization algorithms
34
+ - Added comprehensive test suite for PDF-to-image conversion (12 new tests)
35
+ - Improved error logging with detailed stack traces
36
+
37
+ ### Fixed
38
+ - **🐛 Critical**: Fixed "Image or Canvas expected" errors when processing scanned PDFs
39
+ - **🐛 Critical**: Fixed "image exceeds 5 MB maximum" errors with large scanned documents
40
+ - **🐛 Model**: Fixed deprecated model warnings by updating to latest Claude API
41
+
42
+ ### Examples
43
+ ```bash
44
+ # Process directory with scanned PDFs
45
+ namewise rename ./documents --dry-run
46
+
47
+ # Scanned PDFs are automatically detected and processed:
48
+ # Input: Iran-criminal-record-2.pdf (scanned, no text)
49
+ # Output: iran-criminal-record-certificate.pdf
50
+ #
51
+ # Input: Luxembourg-identity-2025.pdf (scanned, 14.7MB image)
52
+ # Output: luxembourg-identity-card-2025.pdf (optimized to <5MB)
53
+ ```
54
+
55
+ ## [0.4.1] - 2025-09-15
56
+
57
+ ### Enhanced
58
+ - **🔧 Reliability Improvements**: Enhanced stability and consistency across all AI providers
59
+ - **📋 Documentation**: Improved examples and usage documentation
60
+
61
+ ## [0.4.0] - 2025-09-15
62
+
63
+ ### Added
64
+ - **🤖 Local LLM Provider Support**: Full integration with local AI services
65
+ - **Ollama**: Local LLM support with customizable models (llama3.1, codellama, etc.)
66
+ - **LMStudio**: Local model hosting with OpenAI-compatible API
67
+ - Support for custom base URLs and model selection
68
+ - Availability checking and model listing for local providers
69
+
70
+ ### Enhanced
71
+ - **🎯 Intelligent Person Name Detection**: Major AI prompting improvements
72
+ - AI now extracts person names from document content and places them at filename beginning
73
+ - Smart folder name filtering to ignore irrelevant names like "no", "temp", "downloads"
74
+ - Enhanced prompts that focus on document content rather than metadata
75
+ - Support for detecting visa applications, contracts, medical records, certificates
76
+
77
+ ### Architecture
78
+ - **📋 Centralized Prompt System**: Single source of truth for all AI prompts
79
+ - Model-agnostic prompting that works across Claude, OpenAI, LMStudio, and Ollama
80
+ - Consolidated prompt building in `/src/utils/ai-prompts.ts`
81
+ - Consistent behavior across all AI providers
82
+ - Easier maintenance and updates
83
+
84
+ ### Examples
85
+ ```bash
86
+ # Use local Ollama service
87
+ namewise rename ./documents --provider ollama --dry-run
88
+
89
+ # Use LMStudio with custom model
90
+ namewise rename ./files --provider lmstudio --base-url http://localhost:1234 --model codellama
91
+
92
+ # Enhanced person name detection (Sarah example)
93
+ # Input: visitor-visa-application-for-family-in-canada.pdf (in folder "no")
94
+ # Output: sarah-visitor-visa-application-for-family-members-in-canada.pdf
95
+ ```
96
+
97
+ ### Technical
98
+ - Enhanced CLI with new provider options and base URL configuration
99
+ - Added availability checking and model discovery for local providers
100
+
101
+ ## [0.3.1] - 2025-09-05
102
+
103
+ ### Security
104
+ - **🔒 Vulnerability Fix**: Replaced vulnerable `xlsx` package with secure `exceljs`
105
+ - Enhanced Excel file parsing with improved security and reliability
106
+
107
+ ### Infrastructure
108
+ - **⚙️ CI/CD Improvements**: Enhanced GitHub Actions workflows
109
+ - Updated Node.js versions in CI pipelines
110
+ - Improved test workflow reliability and build process
111
+
10
112
  ## [0.3.0] - 2025-09-05
11
113
 
12
114
  ### Added
@@ -1 +1 @@
1
- {"version":3,"file":"commands.d.ts","sourceRoot":"","sources":["../../src/cli/commands.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAGpC,wBAAgB,aAAa,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAqDpD"}
1
+ {"version":3,"file":"commands.d.ts","sourceRoot":"","sources":["../../src/cli/commands.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAGpC,wBAAgB,aAAa,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA4DpD"}
@@ -3,7 +3,7 @@ export function setupCommands(program) {
3
3
  program
4
4
  .command('rename')
5
5
  .description('🚀 Rename files in a directory based on their content using AI analysis')
6
- .argument('<directory>', 'Directory containing files to rename')
6
+ .argument('[directory]', 'Directory containing files to rename (default: current directory)', '.')
7
7
  .option('-p, --provider <provider>', 'AI provider (claude|openai|ollama|lmstudio)', 'claude')
8
8
  .option('-k, --api-key <key>', 'API key for cloud providers (or set CLAUDE_API_KEY/OPENAI_API_KEY)')
9
9
  .option('-c, --case <convention>', 'Naming convention (kebab-case|snake_case|camelCase|PascalCase|lowercase|UPPERCASE)', 'kebab-case')
@@ -19,14 +19,16 @@ export function setupCommands(program) {
19
19
  🔍 How it works:
20
20
  1. Scans directory for supported files (PDF, DOCX, XLSX, TXT, MD, RTF)
21
21
  2. Extracts content and metadata from each file
22
- 3. Uses AI to analyze content and generate descriptive names
23
- 4. Applies your chosen template and naming convention
24
- 5. Renames files (or shows preview with --dry-run)
22
+ 3. For scanned PDFs with no text, converts to image for AI vision analysis
23
+ 4. Uses AI to analyze content and generate descriptive names
24
+ 5. Applies your chosen template and naming convention
25
+ 6. Renames files (or shows preview with --dry-run)
25
26
 
26
27
  💡 Pro Tips:
27
28
  • Always use --dry-run first to preview changes
28
29
  • Use 'auto' template for smart file type detection
29
30
  • Personal templates work great for documents and photos
31
+ • Scanned PDFs are automatically handled via AI vision (Claude/OpenAI/Ollama)
30
32
  • Set API keys as environment variables for cloud providers
31
33
  • Local LLMs (Ollama/LMStudio) require running servers first
32
34
 
@@ -35,7 +37,11 @@ export function setupCommands(program) {
35
37
  • LMStudio: Enable local server mode (default: http://localhost:1234)
36
38
 
37
39
  📝 Examples:
38
- # Safe preview first
40
+ # Current directory (no directory argument needed)
41
+ namewise rename --dry-run
42
+ namewise rename --provider claude --template document --name "alice"
43
+
44
+ # Specific directory
39
45
  namewise rename ./documents --dry-run
40
46
 
41
47
  # Cloud providers (require API keys)
@@ -43,9 +49,10 @@ export function setupCommands(program) {
43
49
  namewise rename ./media --provider openai --template auto
44
50
 
45
51
  # Local LLMs (no API key needed)
46
- namewise rename ./documents --provider ollama --model llama3.1 --dry-run
52
+ namewise rename --provider ollama --model llama3.1 --dry-run
53
+ namewise rename ./documents --provider ollama --model llama3.1
47
54
  namewise rename ./contracts --provider lmstudio --base-url http://localhost:1234
48
-
55
+
49
56
  # Custom Ollama setup
50
57
  namewise rename ./files --provider ollama --base-url http://192.168.1.100:11434 --model codellama
51
58
  `)
@@ -1 +1 @@
1
- {"version":3,"file":"commands.js","sourceRoot":"","sources":["../../src/cli/commands.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE1C,MAAM,UAAU,aAAa,CAAC,OAAgB;IAC5C,OAAO;SACJ,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,yEAAyE,CAAC;SACtF,QAAQ,CAAC,aAAa,EAAE,sCAAsC,CAAC;SAC/D,MAAM,CAAC,2BAA2B,EAAE,6CAA6C,EAAE,QAAQ,CAAC;SAC5F,MAAM,CAAC,qBAAqB,EAAE,oEAAoE,CAAC;SACnG,MAAM,CAAC,yBAAyB,EAAE,oFAAoF,EAAE,YAAY,CAAC;SACrI,MAAM,CAAC,2BAA2B,EAAE,8EAA8E,EAAE,SAAS,CAAC;SAC9H,MAAM,CAAC,2BAA2B,EAAE,sEAAsE,CAAC;SAC3G,MAAM,CAAC,qBAAqB,EAAE,wDAAwD,EAAE,MAAM,CAAC;SAC/F,MAAM,CAAC,WAAW,EAAE,sEAAsE,EAAE,KAAK,CAAC;SAClG,MAAM,CAAC,mBAAmB,EAAE,oCAAoC,EAAE,IAAI,CAAC;SACvE,MAAM,CAAC,kBAAkB,EAAE,2GAA2G,CAAC;SACvI,MAAM,CAAC,gBAAgB,EAAE,qFAAqF,CAAC;SAC/G,WAAW,CAAC,OAAO,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkCzB,CAAC;SACG,MAAM,CAAC,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE;QACnC,MAAM,WAAW,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IACxC,CAAC,CAAC,CAAC;AACP,CAAC"}
1
+ {"version":3,"file":"commands.js","sourceRoot":"","sources":["../../src/cli/commands.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE1C,MAAM,UAAU,aAAa,CAAC,OAAgB;IAC5C,OAAO;SACJ,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,yEAAyE,CAAC;SACtF,QAAQ,CAAC,aAAa,EAAE,mEAAmE,EAAE,GAAG,CAAC;SACjG,MAAM,CAAC,2BAA2B,EAAE,6CAA6C,EAAE,QAAQ,CAAC;SAC5F,MAAM,CAAC,qBAAqB,EAAE,oEAAoE,CAAC;SACnG,MAAM,CAAC,yBAAyB,EAAE,oFAAoF,EAAE,YAAY,CAAC;SACrI,MAAM,CAAC,2BAA2B,EAAE,8EAA8E,EAAE,SAAS,CAAC;SAC9H,MAAM,CAAC,2BAA2B,EAAE,sEAAsE,CAAC;SAC3G,MAAM,CAAC,qBAAqB,EAAE,wDAAwD,EAAE,MAAM,CAAC;SAC/F,MAAM,CAAC,WAAW,EAAE,sEAAsE,EAAE,KAAK,CAAC;SAClG,MAAM,CAAC,mBAAmB,EAAE,oCAAoC,EAAE,IAAI,CAAC;SACvE,MAAM,CAAC,kBAAkB,EAAE,2GAA2G,CAAC;SACvI,MAAM,CAAC,gBAAgB,EAAE,qFAAqF,CAAC;SAC/G,WAAW,CAAC,OAAO,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyCzB,CAAC;SACG,MAAM,CAAC,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE;QACnC,MAAM,WAAW,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IACxC,CAAC,CAAC,CAAC;AACP,CAAC"}
@@ -54,7 +54,7 @@ export async function renameFiles(directory, options) {
54
54
  }
55
55
  };
56
56
  // Initialize services
57
- const parserFactory = new DocumentParserFactory();
57
+ const parserFactory = new DocumentParserFactory(config);
58
58
  const aiService = AIServiceFactory.create(config.aiProvider, apiKey, config.localLLMConfig);
59
59
  const fileRenamer = new FileRenamer(parserFactory, aiService, config);
60
60
  // Get files to process
@@ -1 +1 @@
1
- {"version":3,"file":"rename.js","sourceRoot":"","sources":["../../src/cli/rename.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"rename.js","sourceRoot":"","sources":["../../src/cli/rename.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
- import { DocumentParser } from '../types/index.js';
1
+ import { DocumentParser, Config } from '../types/index.js';
2
2
  export declare class DocumentParserFactory {
3
3
  private parsers;
4
+ constructor(config?: Config);
4
5
  getParser(filePath: string): DocumentParser | null;
5
6
  getSupportedExtensions(): string[];
6
7
  }
@@ -1 +1 @@
1
- {"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../src/parsers/factory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAMnD,qBAAa,qBAAqB;IAChC,OAAO,CAAC,OAAO,CAKb;IAEF,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,cAAc,GAAG,IAAI;IAIlD,sBAAsB,IAAI,MAAM,EAAE;CAenC"}
1
+ {"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../../src/parsers/factory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAM3D,qBAAa,qBAAqB;IAChC,OAAO,CAAC,OAAO,CAAmB;gBAEtB,MAAM,CAAC,EAAE,MAAM;IAS3B,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,cAAc,GAAG,IAAI;IAIlD,sBAAsB,IAAI,MAAM,EAAE;CAenC"}
@@ -3,12 +3,15 @@ import { WordParser } from './word-parser.js';
3
3
  import { ExcelParser } from './excel-parser.js';
4
4
  import { TextParser } from './text-parser.js';
5
5
  export class DocumentParserFactory {
6
- parsers = [
7
- new PDFParser(),
8
- new WordParser(),
9
- new ExcelParser(),
10
- new TextParser()
11
- ];
6
+ parsers;
7
+ constructor(config) {
8
+ this.parsers = [
9
+ new PDFParser(),
10
+ new WordParser(),
11
+ new ExcelParser(),
12
+ new TextParser()
13
+ ];
14
+ }
12
15
  getParser(filePath) {
13
16
  return this.parsers.find(parser => parser.supports(filePath)) || null;
14
17
  }
@@ -1 +1 @@
1
- {"version":3,"file":"factory.js","sourceRoot":"","sources":["../../src/parsers/factory.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,MAAM,OAAO,qBAAqB;IACxB,OAAO,GAAqB;QAClC,IAAI,SAAS,EAAE;QACf,IAAI,UAAU,EAAE;QAChB,IAAI,WAAW,EAAE;QACjB,IAAI,UAAU,EAAE;KACjB,CAAC;IAEF,SAAS,CAAC,QAAgB;QACxB,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,IAAI,IAAI,CAAC;IACxE,CAAC;IAED,sBAAsB;QACpB,MAAM,UAAU,GAAG,IAAI,GAAG,EAAU,CAAC;QAErC,uDAAuD;QACvD,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACvB,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACxB,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACvB,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACxB,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACvB,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACvB,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACtB,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAEvB,OAAO,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAChC,CAAC;CACF"}
1
+ {"version":3,"file":"factory.js","sourceRoot":"","sources":["../../src/parsers/factory.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,MAAM,OAAO,qBAAqB;IACxB,OAAO,CAAmB;IAElC,YAAY,MAAe;QACzB,IAAI,CAAC,OAAO,GAAG;YACb,IAAI,SAAS,EAAE;YACf,IAAI,UAAU,EAAE;YAChB,IAAI,WAAW,EAAE;YACjB,IAAI,UAAU,EAAE;SACjB,CAAC;IACJ,CAAC;IAED,SAAS,CAAC,QAAgB;QACxB,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,IAAI,IAAI,CAAC;IACxE,CAAC;IAED,sBAAsB;QACpB,MAAM,UAAU,GAAG,IAAI,GAAG,EAAU,CAAC;QAErC,uDAAuD;QACvD,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACvB,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACxB,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACvB,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACxB,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACvB,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACvB,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACtB,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAEvB,OAAO,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAChC,CAAC;CACF"}
@@ -1,5 +1,6 @@
1
1
  import { DocumentParser, ParseResult } from '../types/index.js';
2
2
  export declare class PDFParser implements DocumentParser {
3
+ constructor();
3
4
  supports(filePath: string): boolean;
4
5
  parse(filePath: string): Promise<ParseResult>;
5
6
  private parseDate;
@@ -1 +1 @@
1
- {"version":3,"file":"pdf-parser.d.ts","sourceRoot":"","sources":["../../src/parsers/pdf-parser.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,WAAW,EAAoB,MAAM,mBAAmB,CAAC;AAElF,qBAAa,SAAU,YAAW,cAAc;IAC9C,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;IAI7B,KAAK,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAiDnD,OAAO,CAAC,SAAS;CAmBlB"}
1
+ {"version":3,"file":"pdf-parser.d.ts","sourceRoot":"","sources":["../../src/parsers/pdf-parser.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,WAAW,EAAoB,MAAM,mBAAmB,CAAC;AAGlF,qBAAa,SAAU,YAAW,cAAc;;IAK9C,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;IAI7B,KAAK,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAiEnD,OAAO,CAAC,SAAS;CAmBlB"}
@@ -1,6 +1,10 @@
1
1
  import fs from 'fs';
2
2
  import path from 'path';
3
+ import { PDFToImageConverter } from '../utils/pdf-to-image.js';
3
4
  export class PDFParser {
5
+ constructor() {
6
+ // No constructor parameters needed anymore
7
+ }
4
8
  supports(filePath) {
5
9
  return path.extname(filePath).toLowerCase() === '.pdf';
6
10
  }
@@ -11,7 +15,22 @@ export class PDFParser {
11
15
  const extract = pdfExtraction.default;
12
16
  const dataBuffer = fs.readFileSync(filePath);
13
17
  const data = await extract(dataBuffer, {});
14
- const content = data.text?.trim() || '';
18
+ let content = data.text?.trim() || '';
19
+ // Check if this is a scanned PDF and convert to image for AI analysis
20
+ if (PDFToImageConverter.isScannedPDF(content)) {
21
+ try {
22
+ console.log('🔍 Detected scanned PDF, converting to image for AI analysis...');
23
+ const imageBase64 = await PDFToImageConverter.convertFirstPageToBase64(dataBuffer);
24
+ // Store the image data as a special marker for the AI service to detect
25
+ content = `[SCANNED_PDF_IMAGE]:${imageBase64}`;
26
+ console.log('✅ PDF converted to image successfully');
27
+ }
28
+ catch (conversionError) {
29
+ console.warn('⚠️ PDF to image conversion failed:', conversionError instanceof Error ? conversionError.message : 'Unknown error');
30
+ console.log('💡 PDF-poppler requires system dependencies. Falling back to empty content.');
31
+ // Continue with empty content - AI services will handle this gracefully
32
+ }
33
+ }
15
34
  // Extract PDF metadata if available
16
35
  const metadata = {};
17
36
  // Cast data to any to access potentially existing metadata properties
@@ -1 +1 @@
1
- {"version":3,"file":"pdf-parser.js","sourceRoot":"","sources":["../../src/parsers/pdf-parser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AAGxB,MAAM,OAAO,SAAS;IACpB,QAAQ,CAAC,QAAgB;QACvB,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE,KAAK,MAAM,CAAC;IACzD,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,QAAgB;QAC1B,IAAI,CAAC;YACH,qDAAqD;YACrD,MAAM,aAAa,GAAG,MAAM,MAAM,CAAC,gBAAgB,CAAC,CAAC;YACrD,MAAM,OAAO,GAAG,aAAa,CAAC,OAAO,CAAC;YAEtC,MAAM,UAAU,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;YAC7C,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;YAE3C,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;YAExC,oCAAoC;YACpC,MAAM,QAAQ,GAAqB,EAAE,CAAC;YAEtC,sEAAsE;YACtE,MAAM,OAAO,GAAG,IAAW,CAAC;YAE5B,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;gBACjB,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;oBACtB,QAAQ,CAAC,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;oBACzC,QAAQ,CAAC,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;oBAC3C,QAAQ,CAAC,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;oBAC7C,QAAQ,CAAC,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;oBAE7C,2BAA2B;oBAC3B,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;wBACnC,QAAQ,CAAC,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;oBACzE,CAAC;oBACD,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;wBAC9B,QAAQ,CAAC,gBAAgB,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;oBACxE,CAAC;gBACH,CAAC;gBAED,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;oBACrB,QAAQ,CAAC,KAAK,GAAG,OAAO,CAAC,QAAQ,CAAC;gBACpC,CAAC;YACH,CAAC;YAED,wCAAwC;YACxC,IAAI,OAAO,EAAE,CAAC;gBACZ,QAAQ,CAAC,SAAS,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC;YACnF,CAAC;YAED,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC;QAC/B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,6BAA6B,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC,CAAC;QAC3G,CAAC;IACH,CAAC;IAEO,SAAS,CAAC,OAAe;QAC/B,IAAI,CAAC;YACH,sEAAsE;YACtE,IAAI,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC7B,MAAM,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,iBAAiB;gBACxD,MAAM,IAAI,GAAG,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;gBAC5C,MAAM,KAAK,GAAG,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,mBAAmB;gBACrE,MAAM,GAAG,GAAG,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;gBAC3C,MAAM,IAAI,GAAG,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,GAAG,CAAC,CAAC;gBACpD,MAAM,MAAM,GAAG,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,GAAG,CAAC,CAAC;gBACvD,MAAM,MAAM,GAAG,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,GAAG,CAAC,CAAC;gBAEvD,OAAO,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;YAC1D,CAAC;YACD,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC;QAC3B,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,SAAS,CAAC;QACnB,CAAC;IACH,CAAC;CACF"}
1
+ {"version":3,"file":"pdf-parser.js","sourceRoot":"","sources":["../../src/parsers/pdf-parser.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"claude-service.d.ts","sourceRoot":"","sources":["../../src/services/claude-service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAKzD,qBAAa,aAAc,YAAW,UAAU;IAC9C,IAAI,SAAY;IAChB,OAAO,CAAC,MAAM,CAAY;gBAEd,MAAM,EAAE,MAAM;IAMpB,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,gBAAgB,GAAE,MAAqB,EAAE,QAAQ,GAAE,MAAkB,EAAE,QAAQ,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC;IAoC1K,OAAO,CAAC,gBAAgB;CAuBzB"}
1
+ {"version":3,"file":"claude-service.d.ts","sourceRoot":"","sources":["../../src/services/claude-service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAKzD,qBAAa,aAAc,YAAW,UAAU;IAC9C,IAAI,SAAY;IAChB,OAAO,CAAC,MAAM,CAAY;gBAEd,MAAM,EAAE,MAAM;IAMpB,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,gBAAgB,GAAE,MAAqB,EAAE,QAAQ,GAAE,MAAkB,EAAE,QAAQ,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC;IA+E1K,OAAO,CAAC,gBAAgB;CAuBzB"}
@@ -12,24 +12,64 @@ export class ClaudeService {
12
12
  async generateFileName(content, originalName, namingConvention = 'kebab-case', category = 'general', fileInfo) {
13
13
  const convention = namingConvention;
14
14
  const fileCategory = category;
15
- const prompt = buildFileNamePrompt({
16
- content,
17
- originalName,
18
- namingConvention: convention,
19
- category: fileCategory,
20
- fileInfo
21
- });
15
+ // Check if this is a scanned PDF image
16
+ const isScannedPDF = content.startsWith('[SCANNED_PDF_IMAGE]:');
22
17
  try {
23
- const response = await this.client.messages.create({
24
- model: 'claude-3-haiku-20240307',
25
- max_tokens: 100,
26
- messages: [
27
- {
28
- role: 'user',
29
- content: prompt
30
- }
31
- ]
32
- });
18
+ let response;
19
+ if (isScannedPDF) {
20
+ // Extract base64 image data
21
+ const imageBase64 = content.replace('[SCANNED_PDF_IMAGE]:', '');
22
+ const prompt = buildFileNamePrompt({
23
+ content: 'This is a scanned PDF document converted to an image. Please analyze the image and extract the main content to generate an appropriate filename.',
24
+ originalName,
25
+ namingConvention: convention,
26
+ category: fileCategory,
27
+ fileInfo
28
+ });
29
+ response = await this.client.messages.create({
30
+ model: 'claude-sonnet-4-5-20250929', // Use Claude Sonnet 4.5 for vision capabilities
31
+ max_tokens: 100,
32
+ messages: [
33
+ {
34
+ role: 'user',
35
+ content: [
36
+ {
37
+ type: 'text',
38
+ text: prompt
39
+ },
40
+ {
41
+ type: 'image',
42
+ source: {
43
+ type: 'base64',
44
+ media_type: imageBase64.startsWith('data:image/png') ? 'image/png' : 'image/jpeg',
45
+ data: imageBase64.split(',')[1] // Remove data:image/format;base64, prefix
46
+ }
47
+ }
48
+ ]
49
+ }
50
+ ]
51
+ });
52
+ }
53
+ else {
54
+ // Standard text processing
55
+ const prompt = buildFileNamePrompt({
56
+ content,
57
+ originalName,
58
+ namingConvention: convention,
59
+ category: fileCategory,
60
+ fileInfo
61
+ });
62
+ response = await this.client.messages.create({
63
+ model: 'claude-3-haiku-20240307',
64
+ max_tokens: 100,
65
+ messages: [
66
+ {
67
+ role: 'user',
68
+ content: prompt
69
+ }
70
+ ]
71
+ });
72
+ }
33
73
  const suggestedName = response.content[0].type === 'text'
34
74
  ? response.content[0].text.trim()
35
75
  : 'untitled-document';
@@ -1 +1 @@
1
- {"version":3,"file":"claude-service.js","sourceRoot":"","sources":["../../src/services/claude-service.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,mBAAmB,CAAC;AAE1C,OAAO,EAAE,qBAAqB,EAAoB,MAAM,gCAAgC,CAAC;AAEzF,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAE7D,MAAM,OAAO,aAAa;IACxB,IAAI,GAAG,QAAQ,CAAC;IACR,MAAM,CAAY;IAE1B,YAAY,MAAc;QACxB,IAAI,CAAC,MAAM,GAAG,IAAI,SAAS,CAAC;YAC1B,MAAM,EAAE,MAAM;SACf,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,gBAAgB,CAAC,OAAe,EAAE,YAAoB,EAAE,mBAA2B,YAAY,EAAE,WAAmB,SAAS,EAAE,QAAmB;QACtJ,MAAM,UAAU,GAAG,gBAAoC,CAAC;QACxD,MAAM,YAAY,GAAG,QAAwB,CAAC;QAE9C,MAAM,MAAM,GAAG,mBAAmB,CAAC;YACjC,OAAO;YACP,YAAY;YACZ,gBAAgB,EAAE,UAAU;YAC5B,QAAQ,EAAE,YAAY;YACtB,QAAQ;SACT,CAAC,CAAC;QAEH,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC;gBACjD,KAAK,EAAE,yBAAyB;gBAChC,UAAU,EAAE,GAAG;gBACf,QAAQ,EAAE;oBACR;wBACE,IAAI,EAAE,MAAM;wBACZ,OAAO,EAAE,MAAM;qBAChB;iBACF;aACF,CAAC,CAAC;YAEH,MAAM,aAAa,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM;gBACvD,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE;gBACjC,CAAC,CAAC,mBAAmB,CAAC;YAExB,uDAAuD;YACvD,OAAO,IAAI,CAAC,gBAAgB,CAAC,aAAa,EAAE,UAAU,CAAC,CAAC;QAC1D,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,mBAAmB,EAAE,KAAK,CAAC,CAAC;YAC1C,MAAM,IAAI,KAAK,CAAC,4CAA4C,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC,CAAC;QAC1H,CAAC;IACH,CAAC;IAEO,gBAAgB,CAAC,IAAY,EAAE,UAA4B;QACjE,2DAA2D;QAC3D,MAAM,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;QAErD,8BAA8B;QAC9B,IAAI,OAAO,GAAG,qBAAqB,CAAC,cAAc,EAAE,UAAU,CAAC,CAAC;QAEhE,yCAAyC;QACzC,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,GAAG,qBAAqB,CAAC,mBAAmB,EAAE,UAAU,CAAC,CAAC;QACnE,CAAC;aAAM,IAAI,OAAO,CAAC,MAAM,GAAG,GAAG,EAAE,CAAC;YAChC,wDAAwD;YACxD,OAAO,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;YACpC,4CAA4C;YAC5C,IAAI,UAAU,KAAK,YAAY,EAAE,CAAC;gBAChC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;YAC3C,CAAC;iBAAM,IAAI,UAAU,KAAK,YAAY,EAAE,CAAC;gBACvC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;YAC3C,CAAC;QACH,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;CACF"}
1
+ {"version":3,"file":"claude-service.js","sourceRoot":"","sources":["../../src/services/claude-service.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"lmstudio-service.d.ts","sourceRoot":"","sources":["../../src/services/lmstudio-service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAgCzD,qBAAa,eAAgB,YAAW,UAAU;IAChD,IAAI,SAAc;IAClB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,KAAK,CAAS;gBAGpB,OAAO,SAA0B,EACjC,KAAK,SAAgB;IAMjB,gBAAgB,CACpB,OAAO,EAAE,MAAM,EACf,YAAY,EAAE,MAAM,EACpB,gBAAgB,SAAe,EAC/B,QAAQ,SAAY,EACpB,QAAQ,CAAC,EAAE,QAAQ,GAClB,OAAO,CAAC,MAAM,CAAC;IAgClB,OAAO,CAAC,WAAW;IAgBnB,OAAO,CAAC,gBAAgB;YAUV,WAAW;IAqBnB,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;IAU/B,UAAU,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;CAWtC"}
1
+ {"version":3,"file":"lmstudio-service.d.ts","sourceRoot":"","sources":["../../src/services/lmstudio-service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAgCzD,qBAAa,eAAgB,YAAW,UAAU;IAChD,IAAI,SAAc;IAClB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,KAAK,CAAS;gBAGpB,OAAO,SAA0B,EACjC,KAAK,SAAgB;IAMjB,gBAAgB,CACpB,OAAO,EAAE,MAAM,EACf,YAAY,EAAE,MAAM,EACpB,gBAAgB,SAAe,EAC/B,QAAQ,SAAY,EACpB,QAAQ,CAAC,EAAE,QAAQ,GAClB,OAAO,CAAC,MAAM,CAAC;IAyClB,OAAO,CAAC,WAAW;IAgBnB,OAAO,CAAC,gBAAgB;YAUV,WAAW;IAqBnB,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;IAU/B,UAAU,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;CAWtC"}
@@ -9,6 +9,13 @@ export class LMStudioService {
9
9
  }
10
10
  async generateFileName(content, originalName, namingConvention = 'kebab-case', category = 'general', fileInfo) {
11
11
  try {
12
+ // Check if this is a scanned PDF image
13
+ const isScannedPDF = content.startsWith('[SCANNED_PDF_IMAGE]:');
14
+ if (isScannedPDF) {
15
+ // LM Studio has limited vision support, so we'll fall back to using the original filename
16
+ console.log('⚠️ Scanned PDF detected but LMStudio has limited vision support. Using original filename.');
17
+ return this.sanitizeFilename(originalName);
18
+ }
12
19
  const prompt = this.buildPrompt(content, originalName, namingConvention, category, fileInfo);
13
20
  const response = await this.makeRequest('/v1/chat/completions', {
14
21
  model: this.model,
@@ -1 +1 @@
1
- {"version":3,"file":"lmstudio-service.js","sourceRoot":"","sources":["../../src/services/lmstudio-service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"lmstudio-service.js","sourceRoot":"","sources":["../../src/services/lmstudio-service.ts"],"names":[],"mappings":"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"}
@@ -6,6 +6,7 @@ export declare class OllamaService implements AIProvider {
6
6
  constructor(baseUrl?: string, model?: string);
7
7
  generateFileName(content: string, originalName: string, namingConvention?: string, category?: string, fileInfo?: FileInfo): Promise<string>;
8
8
  private buildPrompt;
9
+ private getVisionModel;
9
10
  private sanitizeFilename;
10
11
  private makeRequest;
11
12
  isAvailable(): Promise<boolean>;
@@ -1 +1 @@
1
- {"version":3,"file":"ollama-service.d.ts","sourceRoot":"","sources":["../../src/services/ollama-service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAoBzD,qBAAa,aAAc,YAAW,UAAU;IAC9C,IAAI,SAAY;IAChB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,KAAK,CAAS;gBAGpB,OAAO,SAA2B,EAClC,KAAK,SAAa;IAMd,gBAAgB,CACpB,OAAO,EAAE,MAAM,EACf,YAAY,EAAE,MAAM,EACpB,gBAAgB,SAAe,EAC/B,QAAQ,SAAY,EACpB,QAAQ,CAAC,EAAE,QAAQ,GAClB,OAAO,CAAC,MAAM,CAAC;IA8BlB,OAAO,CAAC,WAAW;IAgBnB,OAAO,CAAC,gBAAgB;YAUV,WAAW;IAqBnB,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;IAU/B,UAAU,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;CAWtC"}
1
+ {"version":3,"file":"ollama-service.d.ts","sourceRoot":"","sources":["../../src/services/ollama-service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAqBzD,qBAAa,aAAc,YAAW,UAAU;IAC9C,IAAI,SAAY;IAChB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,KAAK,CAAS;gBAGpB,OAAO,SAA2B,EAClC,KAAK,SAAa;IAMd,gBAAgB,CACpB,OAAO,EAAE,MAAM,EACf,YAAY,EAAE,MAAM,EACpB,gBAAgB,SAAe,EAC/B,QAAQ,SAAY,EACpB,QAAQ,CAAC,EAAE,QAAQ,GAClB,OAAO,CAAC,MAAM,CAAC;IAqElB,OAAO,CAAC,WAAW;IAgBnB,OAAO,CAAC,cAAc;IAatB,OAAO,CAAC,gBAAgB;YAUV,WAAW;IAqBnB,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;IAU/B,UAAU,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;CAWtC"}
@@ -9,21 +9,50 @@ export class OllamaService {
9
9
  }
10
10
  async generateFileName(content, originalName, namingConvention = 'kebab-case', category = 'general', fileInfo) {
11
11
  try {
12
- const prompt = this.buildPrompt(content, originalName, namingConvention, category, fileInfo);
13
- const response = await this.makeRequest('/api/chat', {
14
- model: this.model,
15
- messages: [
16
- {
17
- role: 'system',
18
- content: AI_SYSTEM_PROMPT
19
- },
20
- {
21
- role: 'user',
22
- content: prompt
23
- }
24
- ],
25
- stream: false
26
- });
12
+ // Check if this is a scanned PDF image
13
+ const isScannedPDF = content.startsWith('[SCANNED_PDF_IMAGE]:');
14
+ let response;
15
+ if (isScannedPDF) {
16
+ // Extract base64 image data and use a vision model
17
+ const imageBase64 = content.replace('[SCANNED_PDF_IMAGE]:', '');
18
+ const imageData = imageBase64.split(',')[1]; // Remove data:image/format;base64, prefix
19
+ const prompt = this.buildPrompt('This is a scanned PDF document converted to an image. Please analyze the image and extract the main content to generate an appropriate filename.', originalName, namingConvention, category, fileInfo);
20
+ // Use LLaVA model for vision capabilities
21
+ const visionModel = this.getVisionModel();
22
+ response = await this.makeRequest('/api/chat', {
23
+ model: visionModel,
24
+ messages: [
25
+ {
26
+ role: 'system',
27
+ content: AI_SYSTEM_PROMPT
28
+ },
29
+ {
30
+ role: 'user',
31
+ content: prompt,
32
+ images: [imageData]
33
+ }
34
+ ],
35
+ stream: false
36
+ });
37
+ }
38
+ else {
39
+ // Standard text processing
40
+ const prompt = this.buildPrompt(content, originalName, namingConvention, category, fileInfo);
41
+ response = await this.makeRequest('/api/chat', {
42
+ model: this.model,
43
+ messages: [
44
+ {
45
+ role: 'system',
46
+ content: AI_SYSTEM_PROMPT
47
+ },
48
+ {
49
+ role: 'user',
50
+ content: prompt
51
+ }
52
+ ],
53
+ stream: false
54
+ });
55
+ }
27
56
  if (response.message?.content) {
28
57
  return this.sanitizeFilename(response.message.content);
29
58
  }
@@ -45,6 +74,16 @@ export class OllamaService {
45
74
  fileInfo
46
75
  });
47
76
  }
77
+ getVisionModel() {
78
+ // Try to use a vision-capable model, fallback to default if not specified
79
+ const visionModels = ['llava', 'llava:7b', 'llava:13b', 'llava:34b', 'llama3.2-vision', 'qwen2-vl'];
80
+ // If the current model is already a vision model, use it
81
+ if (visionModels.some(vm => this.model.toLowerCase().includes(vm.split(':')[0]))) {
82
+ return this.model;
83
+ }
84
+ // Otherwise, default to llava (most common vision model in Ollama)
85
+ return 'llava';
86
+ }
48
87
  sanitizeFilename(filename) {
49
88
  return filename
50
89
  .trim()
@@ -1 +1 @@
1
- {"version":3,"file":"ollama-service.js","sourceRoot":"","sources":["../../src/services/ollama-service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ollama-service.js","sourceRoot":"","sources":["../../src/services/ollama-service.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"openai-service.d.ts","sourceRoot":"","sources":["../../src/services/openai-service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAKzD,qBAAa,aAAc,YAAW,UAAU;IAC9C,IAAI,SAAY;IAChB,OAAO,CAAC,MAAM,CAAS;gBAEX,MAAM,EAAE,MAAM;IAMpB,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,gBAAgB,GAAE,MAAqB,EAAE,QAAQ,GAAE,MAAkB,EAAE,QAAQ,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC;IAmC1K,OAAO,CAAC,gBAAgB;CAuBzB"}
1
+ {"version":3,"file":"openai-service.d.ts","sourceRoot":"","sources":["../../src/services/openai-service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAKzD,qBAAa,aAAc,YAAW,UAAU;IAC9C,IAAI,SAAY;IAChB,OAAO,CAAC,MAAM,CAAS;gBAEX,MAAM,EAAE,MAAM;IAMpB,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,gBAAgB,GAAE,MAAqB,EAAE,QAAQ,GAAE,MAAkB,EAAE,QAAQ,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC;IA6E1K,OAAO,CAAC,gBAAgB;CAuBzB"}