docs: add comprehensive documentation for shared packages

- Added README.md for all 6 shared packages:
  - @automaker/types: Type definitions and interfaces
  - @automaker/utils: Utility functions (logger, error handling, images)
  - @automaker/platform: Platform utilities (paths, subprocess, security)
  - @automaker/model-resolver: Claude model resolution
  - @automaker/dependency-resolver: Feature dependency ordering
  - @automaker/git-utils: Git operations and diff generation

- Removed MIT license from all package.json files (using custom dual license)

- Created comprehensive LLM guide (docs/llm-shared-packages.md):
  - When to use each package
  - Import patterns and examples
  - Common usage patterns
  - Migration checklist
  - Do's and don'ts for LLMs

Documentation helps developers and AI assistants understand package purpose,
usage, and best practices.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
This commit is contained in:
Kacper
2025-12-19 23:52:42 +01:00
parent 060a789b45
commit 7ad7b63da2
13 changed files with 1351 additions and 6 deletions

154
libs/utils/README.md Normal file
View File

@@ -0,0 +1,154 @@
# @automaker/utils
Shared utility functions for AutoMaker.
## Overview
This package provides common utility functions used across AutoMaker's server and UI. It includes error handling, logging, conversation utilities, image handling, and prompt building.
## Installation
```bash
npm install @automaker/utils
```
## Exports
### Logger
Structured logging with context.
```typescript
import { createLogger, LogLevel } from '@automaker/utils';
const logger = createLogger('MyComponent');
logger.info('Processing request');
logger.error('Failed to process:', error);
logger.debug('Debug information', { data });
```
### Error Handler
Error classification and user-friendly messages.
```typescript
import {
isAbortError,
isCancellationError,
isAuthenticationError,
classifyError,
getUserFriendlyErrorMessage
} from '@automaker/utils';
try {
await operation();
} catch (error) {
if (isAbortError(error)) {
console.log('Operation was aborted');
}
const errorInfo = classifyError(error);
const message = getUserFriendlyErrorMessage(error);
}
```
### Conversation Utils
Message formatting and conversion.
```typescript
import {
extractTextFromContent,
normalizeContentBlocks,
formatHistoryAsText,
convertHistoryToMessages
} from '@automaker/utils';
const text = extractTextFromContent(contentBlocks);
const normalized = normalizeContentBlocks(content);
const formatted = formatHistoryAsText(messages);
const converted = convertHistoryToMessages(history);
```
### Image Handler
Image processing for Claude prompts.
```typescript
import {
getMimeTypeForImage,
readImageAsBase64,
convertImagesToContentBlocks,
formatImagePathsForPrompt
} from '@automaker/utils';
const mimeType = getMimeTypeForImage('screenshot.png');
const base64 = await readImageAsBase64('/path/to/image.jpg');
const blocks = await convertImagesToContentBlocks(imagePaths, basePath);
const formatted = formatImagePathsForPrompt(imagePaths);
```
### Prompt Builder
Build prompts with images for Claude.
```typescript
import { buildPromptWithImages } from '@automaker/utils';
const result = await buildPromptWithImages({
basePrompt: 'Analyze this screenshot',
imagePaths: ['/path/to/screenshot.png'],
basePath: '/project/path'
});
console.log(result.prompt); // Prompt with image references
console.log(result.images); // Image data for Claude
```
### File System Utils
Common file system operations.
```typescript
import {
ensureDir,
fileExists,
readJsonFile,
writeJsonFile
} from '@automaker/utils';
await ensureDir('/path/to/dir');
const exists = await fileExists('/path/to/file');
const data = await readJsonFile('/config.json');
await writeJsonFile('/config.json', data);
```
## Usage Example
```typescript
import { createLogger, classifyError, buildPromptWithImages } from '@automaker/utils';
const logger = createLogger('FeatureExecutor');
async function executeWithImages(prompt: string, images: string[]) {
try {
logger.info('Building prompt with images');
const result = await buildPromptWithImages({
basePrompt: prompt,
imagePaths: images,
basePath: process.cwd()
});
logger.debug('Prompt built successfully', { imageCount: result.images.length });
return result;
} catch (error) {
const errorInfo = classifyError(error);
logger.error('Failed to build prompt:', errorInfo.message);
throw error;
}
}
```
## Dependencies
- `@automaker/types` - Type definitions
## Used By
- `@automaker/server`
- `@automaker/ui`

View File

@@ -10,7 +10,6 @@
},
"keywords": ["automaker", "utils"],
"author": "",
"license": "MIT",
"dependencies": {
"@automaker/types": "^1.0.0"
},