Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 20 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -105,6 +105,26 @@ LLM 서비스의 스펙과 타입을 정의하는 패키지입니다.

LLM 브릿지를 로드하는 인터페이스 정의는 `docs/BRIDGE_LOADER_SPEC.md` 문서를 참고하세요.

### 모듈 사용법

CommonJS와 ES Module 환경 모두에서 패키지를 그대로 사용할 수 있도록 듀얼 번들을 제공합니다.

```javascript
// CommonJS
const { DependencyBridgeLoader } = require('llm-bridge-loader');
const { default: OpenAIBridge } = require('openai-llm-bridge');
```

```javascript
// ES Module
import { DependencyBridgeLoader } from 'llm-bridge-loader';
import OpenAIBridge from 'openai-llm-bridge';
```

각 패키지의 `esm/` 디렉터리에는 `package.json`이 포함되어 Node.js가 ES Module로 정확히 인식합니다. `pnpm --filter <패키지> build` 스크립트는 `dist/`(CJS)와 `esm/`(ESM)을 동시에 갱신하며, CI에서도 빌드 후 일반 테스트(`pnpm test:ci`)를 바로 수행하도록 구성했습니다.

압축 아카이브 형태의 브리지를 로드하려면 `ArchiveBridgeLoader`를 사용할 수 있습니다.

## 라이선스

MIT
Expand Down
6 changes: 4 additions & 2 deletions packages/anthropic-llm-bridge/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -19,15 +19,17 @@
],
"sideEffects": false,
"scripts": {
"build": "pnpm clean && tsc -p tsconfig.json && tsc -p tsconfig.esm.json",
"build": "pnpm clean && pnpm build:cjs && pnpm build:esm",
"dev": "tsc -p tsconfig.json",
"test": "vitest run",
"test:ci": "vitest run --exclude='src/**/*.e2e.test.ts'",
"test:watch": "vitest",
"test:coverage": "vitest run --coverage",
"lint": "eslint src --ext .ts",
"lint:fix": "eslint src --ext .ts --fix",
"clean": "rm -rf dist && rm -rf esm"
"clean": "rimraf dist && rimraf esm",
"build:cjs": "tsc -p tsconfig.json",
"build:esm": "tsc -p tsconfig.esm.json && node ../../scripts/postbuild-esm.cjs"
},
"dependencies": {},
"devDependencies": {
Expand Down
7 changes: 6 additions & 1 deletion packages/anthropic-llm-bridge/tsconfig.esm.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,11 @@
"module": "ESNext",
"moduleResolution": "node",
"outDir": "./esm",
"target": "ES2020"
"target": "ES2020",
"declaration": false,
"declarationMap": false,
"emitDeclarationOnly": false,
"composite": false,
"incremental": false
}
}
6 changes: 4 additions & 2 deletions packages/bedrock-llm-bridge/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
"module": "./esm/index.js",
"types": "./dist/index.d.ts",
"scripts": {
"build": "pnpm clean && tsc -p tsconfig.json && tsc -p tsconfig.esm.json",
"build": "pnpm clean && pnpm build:cjs && pnpm build:esm",
"dev": "tsc -p tsconfig.json",
"test": "vitest run",
"test:ci": "vitest run --exclude='src/**/*.e2e.test.ts'",
Expand All @@ -15,7 +15,9 @@
"test:e2e": "vitest run src/**/*.e2e.test.ts",
"lint": "eslint src --ext .ts",
"lint:fix": "eslint src --ext .ts --fix",
"clean": "rm -rf dist && rm -rf esm"
"clean": "rimraf dist && rimraf esm",
"build:cjs": "tsc -p tsconfig.json",
"build:esm": "tsc -p tsconfig.esm.json && node ../../scripts/postbuild-esm.cjs"
},
"exports": {
".": {
Expand Down
7 changes: 6 additions & 1 deletion packages/bedrock-llm-bridge/tsconfig.esm.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,11 @@
"module": "ESNext",
"moduleResolution": "node",
"outDir": "./esm",
"target": "ES2020"
"target": "ES2020",
"declaration": false,
"declarationMap": false,
"emitDeclarationOnly": false,
"composite": false,
"incremental": false
}
}
11 changes: 5 additions & 6 deletions packages/embedding-bridge-spec/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,15 +2,14 @@
"name": "embedding-bridge-spec",
"version": "0.1.1",
"private": false,
"type": "module",
"main": "./dist/index.js",
"module": "./esm/index.js",
"types": "./dist/types/index.d.ts",
"types": "./dist/index.d.ts",
"exports": {
".": {
"require": "./dist/index.js",
"import": "./esm/index.js",
"types": "./dist/types/index.d.ts"
"types": "./dist/index.d.ts"
}
},
"files": [
Expand All @@ -20,15 +19,15 @@
],
"scripts": {
"build": "pnpm build:clean && pnpm build:types && pnpm build:esm && pnpm build:cjs",
"build:clean": "rimraf dist",
"build:clean": "rimraf dist && rimraf esm",
"build:types": "tsc -p tsconfig.types.json",
"build:esm": "tsc -p tsconfig.esm.json",
"build:esm": "tsc -p tsconfig.esm.json && node ../../scripts/postbuild-esm.cjs",
"build:cjs": "tsc -p tsconfig.cjs.json",
"test": "vitest run",
"test:watch": "vitest",
"lint": "eslint src --ext .ts",
"lint:fix": "eslint src --ext .ts --fix",
"clean": "rimraf dist",
"clean": "rimraf dist && rimraf esm",
"prepublishOnly": "pnpm build"
},
"devDependencies": {
Expand Down
5 changes: 4 additions & 1 deletion packages/embedding-bridge-spec/tsconfig.esm.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,9 @@
"compilerOptions": {
"outDir": "./esm",
"rootDir": "./src",
"module": "ESNext"
"module": "ESNext",
"declaration": false,
"declarationMap": false,
"emitDeclarationOnly": false
}
}
5 changes: 3 additions & 2 deletions packages/embedding-bridge-spec/tsconfig.types.json
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@
{
"extends": "./tsconfig.json",
"compilerOptions": {
"outDir": "./dist/types",
"outDir": "./dist",
"rootDir": "./src",
"declaration": true,
"emitDeclarationOnly": true
"emitDeclarationOnly": true,
"declarationMap": true
}
}
6 changes: 4 additions & 2 deletions packages/google-llm-bridge/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -19,15 +19,17 @@
],
"sideEffects": false,
"scripts": {
"build": "pnpm clean && tsc -p tsconfig.json && tsc -p tsconfig.esm.json",
"build": "pnpm clean && pnpm build:cjs && pnpm build:esm",
"dev": "tsc -p tsconfig.json",
"test": "vitest run",
"test:ci": "vitest run --exclude='src/**/*.e2e.test.ts'",
"test:watch": "vitest",
"test:coverage": "vitest run --coverage",
"lint": "eslint src --ext .ts",
"lint:fix": "eslint src --ext .ts --fix",
"clean": "rm -rf dist && rm -rf esm"
"clean": "rimraf dist && rimraf esm",
"build:cjs": "tsc -p tsconfig.json",
"build:esm": "tsc -p tsconfig.esm.json && node ../../scripts/postbuild-esm.cjs"
},
"dependencies": {},
"devDependencies": {
Expand Down
7 changes: 6 additions & 1 deletion packages/google-llm-bridge/tsconfig.esm.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,11 @@
"module": "ESNext",
"moduleResolution": "node",
"outDir": "./esm",
"target": "ES2020"
"target": "ES2020",
"declaration": false,
"declarationMap": false,
"emitDeclarationOnly": false,
"composite": false,
"incremental": false
}
}
4 changes: 2 additions & 2 deletions packages/llm-bridge-loader/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -20,8 +20,8 @@
"sideEffects": false,
"scripts": {
"build": "pnpm build:clean && pnpm build:esm && pnpm build:cjs",
"build:clean": "rm -rf dist",
"build:esm": "tsc -p tsconfig.esm.json",
"build:clean": "rimraf dist && rimraf esm",
"build:esm": "tsc -p tsconfig.esm.json && node ../../scripts/postbuild-esm.cjs",
"build:cjs": "tsc -p tsconfig.cjs.json",
"dev": "tsc -p tsconfig.json",
"test": "vitest run",
Expand Down
5 changes: 4 additions & 1 deletion packages/llm-bridge-loader/tsconfig.esm.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,10 @@
"compilerOptions": {
"outDir": "./esm",
"rootDir": "./src",
"module": "ESNext"
"module": "ESNext",
"declaration": false,
"declarationMap": false,
"emitDeclarationOnly": false
},
"include": ["src/**/*.ts"],
"exclude": ["node_modules", "dist", "**/*.test.ts", "__tests__"]
Expand Down
13 changes: 6 additions & 7 deletions packages/llm-bridge-spec/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,15 +2,14 @@
"name": "llm-bridge-spec",
"version": "1.0.6",
"private": false,
"type": "module",
"main": "./dist/index.js",
"module": "./esm/index.js",
"types": "./dist/types/index.d.ts",
"types": "./dist/index.d.ts",
"exports": {
".": {
"require": "./dist/index.js",
"import": "./esm/index.js",
"types": "./dist/types/index.d.ts"
"require": "./dist/index.js",
"types": "./dist/index.d.ts"
}
},
"files": [
Expand All @@ -20,15 +19,15 @@
],
"scripts": {
"build": "pnpm build:clean && pnpm build:types && pnpm build:esm && pnpm build:cjs",
"build:clean": "rimraf dist",
"build:clean": "rimraf dist && rimraf esm",
"build:types": "tsc -p tsconfig.types.json",
"build:esm": "tsc -p tsconfig.esm.json",
"build:esm": "tsc -p tsconfig.esm.json && node ../../scripts/postbuild-esm.cjs",
"build:cjs": "tsc -p tsconfig.cjs.json",
"test": "vitest run",
"test:watch": "vitest",
"lint": "eslint src --ext .ts",
"lint:fix": "eslint src --ext .ts --fix",
"clean": "rimraf dist",
"clean": "rimraf dist && rimraf esm",
"prepublishOnly": "pnpm build"
},
"devDependencies": {
Expand Down
5 changes: 4 additions & 1 deletion packages/llm-bridge-spec/tsconfig.cjs.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,9 @@
"compilerOptions": {
"outDir": "./dist",
"rootDir": "./src",
"module": "CommonJS"
"module": "CommonJS",
"declaration": false,
"declarationMap": false,
"emitDeclarationOnly": false
}
}
5 changes: 4 additions & 1 deletion packages/llm-bridge-spec/tsconfig.esm.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,9 @@
"compilerOptions": {
"outDir": "./esm",
"rootDir": "./src",
"module": "ESNext"
"module": "ESNext",
"declaration": false,
"declarationMap": false,
"emitDeclarationOnly": false
}
}
3 changes: 2 additions & 1 deletion packages/llm-bridge-spec/tsconfig.types.json
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@
{
"extends": "./tsconfig.json",
"compilerOptions": {
"outDir": "./dist/types",
"outDir": "./dist",
"rootDir": "./src",
"declaration": true,
"declarationMap": true,
"emitDeclarationOnly": true
}
}
6 changes: 4 additions & 2 deletions packages/ollama-llm-bridge/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,9 @@
],
"sideEffects": false,
"scripts": {
"build": "pnpm clean && tsc -p tsconfig.json && tsc -p tsconfig.esm.json",
"build": "pnpm clean && pnpm build:cjs && pnpm build:esm",
"build:cjs": "tsc -p tsconfig.json",
"build:esm": "tsc -p tsconfig.esm.json && node ../../scripts/postbuild-esm.cjs",
"dev": "tsc -p tsconfig.json",
"test": "vitest run",
"test:ci": "vitest run --exclude='src/**/*.e2e.test.ts'",
Expand All @@ -28,7 +30,7 @@
"test:coverage": "vitest run --coverage",
"lint": "eslint src --ext .ts",
"lint:fix": "eslint src --ext .ts --fix",
"clean": "rm -rf dist && rm -rf esm"
"clean": "rimraf dist && rimraf esm"
},
"keywords": [
"llm",
Expand Down
2 changes: 1 addition & 1 deletion packages/ollama-llm-bridge/src/bridge/ollama-bridge.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ import {
ModelNotSupportedError,
} from 'llm-bridge-spec';
import { ChatResponse, Ollama } from 'ollama';
import { AbstractOllamaModel, ALL_SUPPORTED_MODELS, createModelFromId } from '../models';
import { AbstractOllamaModel, ALL_SUPPORTED_MODELS, createModelFromId } from '../models/index';
import { OllamaBaseConfig } from '../types/config';
import { handleOllamaError } from '../utils/error-handler';

Expand Down
2 changes: 1 addition & 1 deletion packages/ollama-llm-bridge/src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ export {
GptOssConfig,
ALL_SUPPORTED_MODELS,
createModelFromId,
} from './models';
} from './models/index';

// 에러 핸들러
export { handleOllamaError, handleFactoryError, validateModel } from './utils/error-handler';
Expand Down
2 changes: 1 addition & 1 deletion packages/ollama-llm-bridge/src/utils/error-handler.ts
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ import {
TimeoutError,
} from 'llm-bridge-spec';
import { ZodError } from 'zod';
import { ALL_SUPPORTED_MODELS } from '../models';
import { ALL_SUPPORTED_MODELS } from '../models/index';

// Type guards for error handling
function hasCause(error: unknown): error is { cause: unknown } {
Expand Down
9 changes: 6 additions & 3 deletions packages/ollama-llm-bridge/tsconfig.esm.json
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,11 @@
"rootDir": "./src",
"module": "ESNext",
"target": "ES2020",
"declaration": true,
"declarationMap": true,
"sourceMap": true
"declaration": false,
"declarationMap": false,
"sourceMap": true,
"emitDeclarationOnly": false,
"composite": false,
"incremental": false
}
}
6 changes: 4 additions & 2 deletions packages/openai-embedding-bridge/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -19,15 +19,17 @@
],
"sideEffects": false,
"scripts": {
"build": "pnpm clean && tsc -p tsconfig.json && tsc -p tsconfig.esm.json",
"build": "pnpm clean && pnpm build:cjs && pnpm build:esm",
"dev": "tsc -p tsconfig.json",
"test": "vitest run",
"test:ci": "vitest run --exclude='src/**/*.e2e.test.ts'",
"test:watch": "vitest",
"test:coverage": "vitest run --coverage",
"lint": "eslint src --ext .ts",
"lint:fix": "eslint src --ext .ts --fix",
"clean": "rm -rf dist && rm -rf esm"
"clean": "rimraf dist && rimraf esm",
"build:cjs": "tsc -p tsconfig.json",
"build:esm": "tsc -p tsconfig.esm.json && node ../../scripts/postbuild-esm.cjs"
},
"dependencies": {},
"devDependencies": {
Expand Down
7 changes: 6 additions & 1 deletion packages/openai-embedding-bridge/tsconfig.esm.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,11 @@
"module": "ESNext",
"moduleResolution": "node",
"outDir": "./esm",
"target": "ES2020"
"target": "ES2020",
"declaration": false,
"declarationMap": false,
"emitDeclarationOnly": false,
"composite": false,
"incremental": false
}
}
6 changes: 4 additions & 2 deletions packages/openai-like-llm-bridge/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -19,15 +19,17 @@
],
"sideEffects": false,
"scripts": {
"build": "pnpm clean && tsc -p tsconfig.json && tsc -p tsconfig.esm.json",
"build": "pnpm clean && pnpm build:cjs && pnpm build:esm",
"dev": "tsc -p tsconfig.json",
"test": "vitest run",
"test:ci": "vitest run --exclude='src/**/*.e2e.test.ts'",
"test:watch": "vitest",
"test:coverage": "vitest run --coverage",
"lint": "eslint src --ext .ts",
"lint:fix": "eslint src --ext .ts --fix",
"clean": "rm -rf dist && rm -rf esm"
"clean": "rimraf dist && rimraf esm",
"build:cjs": "tsc -p tsconfig.json",
"build:esm": "tsc -p tsconfig.esm.json && node ../../scripts/postbuild-esm.cjs"
},
"dependencies": {},
"devDependencies": {
Expand Down
Loading