File size: 2,529 Bytes
1dbc34b
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
/**
 * @automaker/utils
 * Shared utility functions for AutoMaker
 */

// Error handling
export {
  isAbortError,
  isCancellationError,
  isAuthenticationError,
  isRateLimitError,
  isQuotaExhaustedError,
  isModelNotFoundError,
  isStreamDisconnectedError,
  extractRetryAfter,
  classifyError,
  getUserFriendlyErrorMessage,
  getErrorMessage,
  logError,
} from './error-handler.js';

// Conversation utilities
export {
  extractTextFromContent,
  normalizeContentBlocks,
  formatHistoryAsText,
  convertHistoryToMessages,
} from './conversation-utils.js';

// Image handling
export {
  getMimeTypeForImage,
  readImageAsBase64,
  convertImagesToContentBlocks,
  formatImagePathsForPrompt,
} from './image-handler.js';

// Prompt building
export {
  buildPromptWithImages,
  type PromptContent,
  type PromptWithImages,
} from './prompt-builder.js';

// Logger
export {
  createLogger,
  getLogLevel,
  setLogLevel,
  setColorsEnabled,
  setTimestampsEnabled,
  LogLevel,
  type Logger,
} from './logger.js';

// File system utilities
export { mkdirSafe, existsSafe } from './fs-utils.js';

// Atomic file operations
export {
  atomicWriteJson,
  readJsonFile,
  updateJsonAtomically,
  readJsonWithRecovery,
  rotateBackups,
  logRecoveryWarning,
  DEFAULT_BACKUP_COUNT,
  type AtomicWriteOptions,
  type ReadJsonRecoveryResult,
  type ReadJsonRecoveryOptions,
} from './atomic-writer.js';

// Path utilities
export { normalizePath, pathsEqual, sanitizeFilename } from './path-utils.js';

// Context file loading
export {
  loadContextFiles,
  getContextFilesSummary,
  type ContextMetadata,
  type ContextFileInfo,
  type ContextFilesResult,
  type ContextFsModule,
  type LoadContextFilesOptions,
  type MemoryFileInfo,
  type TaskContext,
} from './context-loader.js';

// Memory loading
export {
  loadRelevantMemory,
  initializeMemoryFolder,
  appendLearning,
  recordMemoryUsage,
  getMemoryDir,
  parseFrontmatter,
  serializeFrontmatter,
  extractTerms,
  calculateUsageScore,
  countMatches,
  incrementUsageStat,
  formatLearning,
  type MemoryFsModule,
  type MemoryMetadata,
  type MemoryFile,
  type MemoryLoadResult,
  type UsageStats,
  type LearningEntry,
  type SimpleMemoryFile,
} from './memory-loader.js';

// Debounce and throttle utilities
export {
  debounce,
  throttle,
  type DebounceOptions,
  type ThrottleOptions,
  type DebouncedFunction,
} from './debounce.js';

// Git validation utilities
export { isValidBranchName, isValidRemoteName, MAX_BRANCH_NAME_LENGTH } from './git-validation.js';