@hstm-labs/forge-common
v0.2.1
Published
Shared foundation for the Forge monorepo — core type definitions, structured error model, JSON logger, configuration validation, SQLite persistence, and LLM adapter abstractions.
Readme
@hstm-labs/forge-common
Shared foundation for the Forge monorepo — core type definitions, structured error model, JSON logger, configuration validation, SQLite persistence, and LLM adapter abstractions.
Installation
npm install @hstm-labs/forge-commonPublic API
Types
RunStatus,StageStatus,StageName— run lifecycle enumsForgeConfig— workspace configuration shapeGenerationRun,PipelineStageRecord,Artifact— run trackingLLMUsageRecord,RunSummary,Workspace,InitOptions— operational typesBenchmarkStageEntry,BenchmarkReport,BenchmarkRunSummary,BenchmarkComparison— benchmarkingCodeReviewFinding,CodeReviewReport,ReviewDimension— code review
Error Model
ForgeError— structured error class with codes (FORGE-{CATEGORY}-{NUMBER})ErrorCodes— predefined error code constants across 9 categories
Logger
StructuredLogger— JSON-formatted structured logger with child context support
Configuration
validateConfig()— Ajv-based config validationloadConfig()— load and validateforge.config.jsonresolveEnvVars()— environment variable interpolationdiscoverWorkspace()— walk up from cwd to find.forge/directory
LLM Adapters
LLMRegistry— provider registry for adapter lookupMockAdapter— deterministic mock for testingOpenAIAdapter— OpenAI API (supportsbaseURLfor Ollama/local models)AnthropicAdapter— Anthropic Claude APIGeminiAdapter— Google Gemini API
Persistence
SqliteRunStore— SQLite-backed run metadata, stage tracking, artifact manifest, benchmarks
Usage
import {
ForgeError,
ErrorCodes,
StructuredLogger,
loadConfig,
discoverWorkspace,
LLMRegistry,
OpenAIAdapter,
SqliteRunStore,
} from '@hstm-labs/forge-common';
const logger = new StructuredLogger({ level: 'info' });
const workspace = discoverWorkspace(process.cwd());
const config = loadConfig(workspace.configPath);