Browse Source

refactor: rename packages and update dependencies for consistency

- Change package names from `@dm/*` to `@dm-pkg/*` across all relevant files to standardize naming conventions.
- Update the `bun.lock` and `package.json` files to reflect the new package structure.
- Introduce `unconfig` as a new development dependency in the `buildin/dm` package.
- Modify import paths in example and demo files to align with the new package names.
- Update README and environment configuration files to reflect the changes in package naming.
main
谢亚昕 1 week ago
parent
commit
39970b3a1b
  1. 35
      buildin/dm/package.json
  2. 24
      buildin/dm/src/config.ts
  3. 2
      buildin/dm/src/type.ts
  4. 43
      bun.lock
  5. 2
      package.json
  6. 2
      packages/core/package.json
  7. 2
      packages/core/readme.md
  8. 4
      packages/crypto-wasm/package.json
  9. 4
      packages/dx/package.json
  10. 2
      packages/dx/src/index.ts
  11. 2
      packages/example/.env
  12. 2
      packages/example/.env.example
  13. 4
      packages/example/index.html
  14. 8
      packages/example/package.json
  15. 2
      packages/example/src/xllm-app.ts
  16. 2
      packages/example/src/xllm/capabilities.ts
  17. 2
      packages/example/src/xllm/demos/catalog.ts
  18. 2
      packages/example/src/xllm/demos/conversation-history.ts
  19. 2
      packages/example/src/xllm/demos/thinking.ts
  20. 8
      packages/example/src/xllm/demos/tools-multimodal.ts
  21. 2
      packages/example/src/xllm/demos/types.ts
  22. 2
      packages/example/src/xllm/env.ts
  23. 4
      packages/xllm/README.md
  24. 16
      packages/xllm/docs/LLM-USAGE.md
  25. 4
      packages/xllm/package.json
  26. 2
      tsconfig.base.json

35
buildin/dm/package.json

@ -1,17 +1,20 @@
{
"name": "dm",
"version": "0.0.1",
"private": true,
"type": "module",
"bin": {
"dm": "dist/index.mjs"
},
"scripts": {
"start": "bun run src/index.ts",
"build": "tsdown --env.NODE_ENV=production"
},
"dependencies": {
"cac": "catalog:",
"tsdown": "catalog:"
}
{
"name": "dm",
"version": "0.0.1",
"private": true,
"type": "module",
"bin": {
"dm": "dist/index.mjs"
},
"scripts": {
"start": "bun run src/index.ts",
"build": "tsdown --env.NODE_ENV=production"
},
"dependencies": {
"cac": "catalog:",
"tsdown": "catalog:"
},
"devDependencies": {
"unconfig": "7.5.0"
}
}

24
buildin/dm/src/config.ts

@ -0,0 +1,24 @@
import { loadConfig as loadConfigFn } from 'unconfig'
import type { DMConfig } from './type'
let tempConfig: Awaited<ReturnType<typeof loadConfigFn<DMConfig>>> | undefined
export const loadConfig = async <T extends DMConfig>() => {
return loadConfigFn<T>({
sources: [
{
files: 'dm.config',
extensions: ['ts', 'mts', 'cts', 'js', 'mjs', 'cjs', 'json', ''],
}
],
merge: false,
})
}
export const getConfig = async () => {
if (!tempConfig) {
tempConfig = await loadConfig()
}
return tempConfig
}

2
buildin/dm/src/type.ts

@ -0,0 +1,2 @@
export interface DMConfig { }

43
bun.lock

@ -8,7 +8,7 @@
"@changesets/cli": "^2.30.0",
"@prettier/plugin-oxc": "^0.1.3",
"@types/node": "^22.7.9",
"dm": "workspace:*",
"dm": "workspace",
"lefthook": "^2.1.5",
"oxlint": "^1.59.0",
"tsdown": "^0.21.8",
@ -26,29 +26,32 @@
"cac": "catalog:",
"tsdown": "catalog:",
},
"devDependencies": {
"unconfig": "7.5.0",
},
},
"packages/core": {
"name": "@dm/core",
"name": "@dm-pkg/core",
"version": "0.0.1-alpha.1",
},
"packages/crypto-wasm": {
"name": "@dm/crypto-wasm",
"name": "@dm-pkg/crypto-wasm",
"version": "0.0.1-alpha.1",
},
"packages/dx": {
"name": "@dm/dx",
"name": "@dm-pkg/dx",
"version": "0.0.1-alpha.1",
"dependencies": {
"@dm/core": "workspace:*",
"@dm-pkg/core": "workspace:*",
},
},
"packages/example": {
"name": "example",
"dependencies": {
"@dm/core": "workspace:*",
"@dm/crypto-wasm": "workspace:*",
"@dm/dx": "workspace:*",
"@dm/xllm": "workspace:*",
"@dm-pkg/core": "workspace:*",
"@dm-pkg/crypto-wasm": "workspace:*",
"@dm-pkg/dx": "workspace:*",
"@dm-pkg/xllm": "workspace:*",
"crypto-js": "4.2.0",
"sm-crypto": "0.4.0",
},
@ -58,7 +61,7 @@
},
},
"packages/xllm": {
"name": "@dm/xllm",
"name": "@dm-pkg/xllm",
"version": "0.0.1-alpha.1",
},
},
@ -113,13 +116,13 @@
"@changesets/write": ["@changesets/write@0.4.0", "https://registry.npmmirror.com/@changesets/write/-/write-0.4.0.tgz", { "dependencies": { "@changesets/types": "^6.1.0", "fs-extra": "^7.0.1", "human-id": "^4.1.1", "prettier": "^2.7.1" } }, "sha512-CdTLvIOPiCNuH71pyDu3rA+Q0n65cmAbXnwWH84rKGiFumFzkmHNT8KHTMEchcxN+Kl8I54xGUhJ7l3E7X396Q=="],
"@dm/core": ["@dm/core@workspace:packages/core"],
"@dm-pkg/core": ["@dm-pkg/core@workspace:packages/core"],
"@dm/crypto-wasm": ["@dm/crypto-wasm@workspace:packages/crypto-wasm"],
"@dm-pkg/crypto-wasm": ["@dm-pkg/crypto-wasm@workspace:packages/crypto-wasm"],
"@dm/dx": ["@dm/dx@workspace:packages/dx"],
"@dm-pkg/dx": ["@dm-pkg/dx@workspace:packages/dx"],
"@dm/xllm": ["@dm/xllm@workspace:packages/xllm"],
"@dm-pkg/xllm": ["@dm-pkg/xllm@workspace:packages/xllm"],
"@emnapi/core": ["@emnapi/core@1.9.2", "https://registry.npmmirror.com/@emnapi/core/-/core-1.9.2.tgz", { "dependencies": { "@emnapi/wasi-threads": "1.2.1", "tslib": "^2.4.0" } }, "sha512-UC+ZhH3XtczQYfOlu3lNEkdW/p4dsJ1r/bP7H8+rhao3TTTMO1ATq/4DdIi23XuGoFY+Cz0JmCbdVl0hz9jZcA=="],
@ -397,6 +400,8 @@
"isexe": ["isexe@2.0.0", "https://registry.npmmirror.com/isexe/-/isexe-2.0.0.tgz", {}, "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw=="],
"jiti": ["jiti@2.7.0", "", { "bin": { "jiti": "lib/jiti-cli.mjs" } }, "sha512-AC/7JofJvZGrrneWNaEnJeOLUx+JlGt7tNa0wZiRPT4MY1wmfKjt2+6O2p2uz2+skll8OZZmJMNqeke7kKbNgQ=="],
"js-yaml": ["js-yaml@4.1.1", "https://registry.npmmirror.com/js-yaml/-/js-yaml-4.1.1.tgz", { "dependencies": { "argparse": "^2.0.1" }, "bin": { "js-yaml": "bin/js-yaml.js" } }, "sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA=="],
"jsbn": ["jsbn@1.1.0", "https://registry.npmmirror.com/jsbn/-/jsbn-1.1.0.tgz", {}, "sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A=="],
@ -503,7 +508,7 @@
"prettier": ["prettier@2.8.8", "https://registry.npmmirror.com/prettier/-/prettier-2.8.8.tgz", { "bin": { "prettier": "bin-prettier.js" } }, "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q=="],
"quansync": ["quansync@0.2.11", "https://registry.npmmirror.com/quansync/-/quansync-0.2.11.tgz", {}, "sha512-AifT7QEbW9Nri4tAwR5M/uzpBuqfZf+zwaEM/QkzEjj7NBuFD2rBuy0K3dE+8wltbezDV7JMA0WfnCPYRSYbXA=="],
"quansync": ["quansync@1.0.0", "https://registry.npmmirror.com/quansync/-/quansync-1.0.0.tgz", {}, "sha512-5xZacEEufv3HSTPQuchrvV6soaiACMFnq1H8wkVioctoH3TRha9Sz66lOxRwPK/qZj7HPiSveih9yAyh98gvqA=="],
"queue-microtask": ["queue-microtask@1.2.3", "https://registry.npmmirror.com/queue-microtask/-/queue-microtask-1.2.3.tgz", {}, "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A=="],
@ -571,6 +576,8 @@
"typescript": ["typescript@6.0.2", "https://registry.npmmirror.com/typescript/-/typescript-6.0.2.tgz", { "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" } }, "sha512-bGdAIrZ0wiGDo5l8c++HWtbaNCWTS4UTv7RaTH/ThVIgjkveJt83m74bBHMJkuCbslY8ixgLBVZJIOiQlQTjfQ=="],
"unconfig": ["unconfig@7.5.0", "", { "dependencies": { "@quansync/fs": "^1.0.0", "defu": "^6.1.4", "jiti": "^2.6.1", "quansync": "^1.0.0", "unconfig-core": "7.5.0" } }, "sha512-oi8Qy2JV4D3UQ0PsopR28CzdQ3S/5A1zwsUwp/rosSbfhJ5z7b90bIyTwi/F7hCLD4SGcZVjDzd4XoUQcEanvA=="],
"unconfig-core": ["unconfig-core@7.5.0", "https://registry.npmmirror.com/unconfig-core/-/unconfig-core-7.5.0.tgz", { "dependencies": { "@quansync/fs": "^1.0.0", "quansync": "^1.0.0" } }, "sha512-Su3FauozOGP44ZmKdHy2oE6LPjk51M/TRRjHv2HNCWiDvfvCoxC2lno6jevMA91MYAdCdwP05QnWdWpSbncX/w=="],
"undici-types": ["undici-types@6.21.0", "https://registry.npmmirror.com/undici-types/-/undici-types-6.21.0.tgz", {}, "sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ=="],
@ -597,16 +604,14 @@
"@manypkg/get-packages/fs-extra": ["fs-extra@8.1.0", "https://registry.npmmirror.com/fs-extra/-/fs-extra-8.1.0.tgz", { "dependencies": { "graceful-fs": "^4.2.0", "jsonfile": "^4.0.0", "universalify": "^0.1.0" } }, "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g=="],
"@quansync/fs/quansync": ["quansync@1.0.0", "https://registry.npmmirror.com/quansync/-/quansync-1.0.0.tgz", {}, "sha512-5xZacEEufv3HSTPQuchrvV6soaiACMFnq1H8wkVioctoH3TRha9Sz66lOxRwPK/qZj7HPiSveih9yAyh98gvqA=="],
"micromatch/picomatch": ["picomatch@2.3.2", "https://registry.npmmirror.com/picomatch/-/picomatch-2.3.2.tgz", {}, "sha512-V7+vQEJ06Z+c5tSye8S+nHUfI51xoXIXjHQ99cQtKUkQqqO1kO/KCJUfZXuB47h/YBlDhah2H3hdUGXn8ie0oA=="],
"package-manager-detector/quansync": ["quansync@0.2.11", "https://registry.npmmirror.com/quansync/-/quansync-0.2.11.tgz", {}, "sha512-AifT7QEbW9Nri4tAwR5M/uzpBuqfZf+zwaEM/QkzEjj7NBuFD2rBuy0K3dE+8wltbezDV7JMA0WfnCPYRSYbXA=="],
"read-yaml-file/js-yaml": ["js-yaml@3.14.2", "https://registry.npmmirror.com/js-yaml/-/js-yaml-3.14.2.tgz", { "dependencies": { "argparse": "^1.0.7", "esprima": "^4.0.0" }, "bin": { "js-yaml": "bin/js-yaml.js" } }, "sha512-PMSmkqxr106Xa156c2M265Z+FTrPl+oxd/rgOQy2tijQeK5TxQ43psO1ZCwhVOSdnn+RzkzlRz/eY4BgJBYVpg=="],
"rolldown/@oxc-project/types": ["@oxc-project/types@0.124.0", "https://registry.npmmirror.com/@oxc-project/types/-/types-0.124.0.tgz", {}, "sha512-VBFWMTBvHxS11Z5Lvlr3IWgrwhMTXV+Md+EQF0Xf60+wAdsGFTBx7X7K/hP4pi8N7dcm1RvcHwDxZ16Qx8keUg=="],
"unconfig-core/quansync": ["quansync@1.0.0", "https://registry.npmmirror.com/quansync/-/quansync-1.0.0.tgz", {}, "sha512-5xZacEEufv3HSTPQuchrvV6soaiACMFnq1H8wkVioctoH3TRha9Sz66lOxRwPK/qZj7HPiSveih9yAyh98gvqA=="],
"read-yaml-file/js-yaml/argparse": ["argparse@1.0.10", "https://registry.npmmirror.com/argparse/-/argparse-1.0.10.tgz", { "dependencies": { "sprintf-js": "~1.0.2" } }, "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg=="],
}
}

2
package.json

@ -1,5 +1,5 @@
{
"name": "dm-root",
"name": "dm-pkg-root",
"private": true,
"type": "module",
"workspaces": [

2
packages/core/package.json

@ -1,5 +1,5 @@
{
"name": "@dm/core",
"name": "@dm-pkg/core",
"type": "module",
"version": "0.0.1-alpha.1",
"scripts": {

2
packages/core/readme.md

@ -1,4 +1,4 @@
## @dm/core
## @dm-pkg/core
代码基础包

4
packages/crypto-wasm/package.json

@ -1,10 +1,10 @@
{
"name": "@dm/crypto-wasm",
"name": "@dm-pkg/crypto-wasm",
"type": "module",
"description": "SM4 encrypt/decrypt for WebAssembly (wasm-bindgen)",
"version": "0.0.1-alpha.1",
"scripts": {
"build": "dm wasm --cmd 'wasm-pack build --scope dm-wasm'"
"build": "dm wasm --cmd 'wasm-pack build --scope dm-pkg-wasm'"
},
"files": [
"./pkg/crypto_bg.js",

4
packages/dx/package.json

@ -1,5 +1,5 @@
{
"name": "@dm/dx",
"name": "@dm-pkg/dx",
"type": "module",
"version": "0.0.1-alpha.1",
"scripts": {
@ -21,6 +21,6 @@
"./package.json": "./package.json"
},
"dependencies": {
"@dm/core": "workspace:*"
"@dm-pkg/core": "workspace:*"
}
}

2
packages/dx/src/index.ts

@ -1,3 +1,3 @@
import fire from "@dm/core";
import fire from "@dm-pkg/core";
export default fire

2
packages/example/.env

@ -11,6 +11,6 @@ VITE_XLLM_BASE_URL_2=https://api.deepseek.com
VITE_XLLM_DEMO_IMAGE_URL=
VITE_XLLM_TOOL_ERROR_STRATEGY=throw
VITE_XLLM_FORCE_TOOL_FAILURE=0
# DeepSeek 思考模式:enabled | disabled;强度 high | medium | low | max | xhigh(@dm/xllm 会映射为 high/max)
# DeepSeek 思考模式:enabled | disabled;强度 high | medium | low | max | xhigh(@dm-pkg/xllm 会映射为 high/max)
VITE_XLLM_THINKING=enabled
VITE_XLLM_REASONING_EFFORT=high

2
packages/example/.env.example

@ -9,6 +9,6 @@ VITE_XLLM_BASE_URL_2=
VITE_XLLM_DEMO_IMAGE_URL=
VITE_XLLM_TOOL_ERROR_STRATEGY=throw
VITE_XLLM_FORCE_TOOL_FAILURE=0
# DeepSeek 思考模式:enabled | disabled;强度 high | medium | low | max | xhigh(@dm/xllm 会映射为 high/max)
# DeepSeek 思考模式:enabled | disabled;强度 high | medium | low | max | xhigh(@dm-pkg/xllm 会映射为 high/max)
VITE_XLLM_THINKING=enabled
VITE_XLLM_REASONING_EFFORT=high

4
packages/example/index.html

@ -4,7 +4,7 @@
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>@dm/xllm 示例</title>
<title>@dm-pkg/xllm 示例</title>
<style>
:root {
font-family: system-ui, "Segoe UI", sans-serif;
@ -130,4 +130,4 @@
<script type="module" src="src/index.ts"></script>
</body>
</html>
</html>

8
packages/example/package.json

@ -5,10 +5,10 @@
"dev": "vite"
},
"dependencies": {
"@dm/crypto-wasm": "workspace:*",
"@dm/core": "workspace:*",
"@dm/dx": "workspace:*",
"@dm/xllm": "workspace:*",
"@dm-pkg/crypto-wasm": "workspace:*",
"@dm-pkg/core": "workspace:*",
"@dm-pkg/dx": "workspace:*",
"@dm-pkg/xllm": "workspace:*",
"crypto-js": "4.2.0",
"sm-crypto": "0.4.0"
},

2
packages/example/src/xllm-app.ts

@ -17,7 +17,7 @@ export function mountXllmExampleApp(root: HTMLElement): void {
const header = document.createElement("header");
header.className = "xllm-header";
const h1 = document.createElement("h1");
h1.textContent = "@dm/xllm 示例";
h1.textContent = "@dm-pkg/xllm 示例";
header.appendChild(h1);
const sub = document.createElement("p");

2
packages/example/src/xllm/capabilities.ts

@ -1,4 +1,4 @@
import type { XProviderName } from "@dm/xllm";
import type { XProviderName } from "@dm-pkg/xllm";
export type ModelCapabilities = {
multimodalInput: boolean;

2
packages/example/src/xllm/demos/catalog.ts

@ -1,4 +1,4 @@
import { createXllm, type XProviderName } from "@dm/xllm";
import { createXllm, type XProviderName } from "@dm-pkg/xllm";
import { hasPrimaryConfig, primaryApiKey, primaryBaseUrl, primaryModel, primaryProvider } from "../env";
import { runConversationHistoryDemo } from "./conversation-history";
import { runGenerateDemo } from "./generate";

2
packages/example/src/xllm/demos/conversation-history.ts

@ -1,4 +1,4 @@
import type { XMessage } from "@dm/xllm";
import type { XMessage } from "@dm-pkg/xllm";
import type { DemoLog, XllmClient } from "./types";
/**

2
packages/example/src/xllm/demos/thinking.ts

@ -1,4 +1,4 @@
import type { XMessage, XProviderName } from "@dm/xllm";
import type { XMessage, XProviderName } from "@dm-pkg/xllm";
import { xllmReasoningEffort, xllmThinkingType } from "../env";
import type { DemoLog, XllmClient } from "./types";

8
packages/example/src/xllm/demos/tools-multimodal.ts

@ -1,4 +1,4 @@
import type { XProviderName } from "@dm/xllm";
import type { XProviderName } from "@dm-pkg/xllm";
import { demoImageUrl, forceToolFailure, toolErrorStrategy } from "../env";
import { resolveCapabilities } from "../capabilities";
import type { DemoLog, XllmClient } from "./types";
@ -55,9 +55,9 @@ export async function runToolsMultimodalDemo(
}
const city =
typeof args === "object" &&
args !== null &&
"city" in args &&
typeof (args as { city?: unknown }).city === "string"
args !== null &&
"city" in args &&
typeof (args as { city?: unknown }).city === "string"
? (args as { city: string }).city
: "未知城市";
return {

2
packages/example/src/xllm/demos/types.ts

@ -1,4 +1,4 @@
import type { createXllm } from "@dm/xllm";
import type { createXllm } from "@dm-pkg/xllm";
export type DemoLog = (line: string) => void;

2
packages/example/src/xllm/env.ts

@ -1,4 +1,4 @@
import type { XProviderName, XReasoningEffortInput, XToolErrorStrategy } from "@dm/xllm";
import type { XProviderName, XReasoningEffortInput, XToolErrorStrategy } from "@dm-pkg/xllm";
const env = (import.meta as unknown as { env?: Record<string, string | undefined> }).env ?? {};

4
packages/xllm/README.md

@ -1,4 +1,4 @@
# @dm/xllm
# @dm-pkg/xllm
面向大模型 / Agent 的完整 API 与协议说明见 **[docs/LLM-USAGE.md](./docs/LLM-USAGE.md)**。
@ -12,7 +12,7 @@
## 快速开始
```ts
import { createXllm } from "@dm/xllm";
import { createXllm } from "@dm-pkg/xllm";
const xllm = createXllm({
provider: "deepseek",

16
packages/xllm/docs/LLM-USAGE.md

@ -1,4 +1,4 @@
# @dm/xllm — 面向大模型 / Agent 的使用说明
# @dm-pkg/xllm — 面向大模型 / Agent 的使用说明
本文档供 **大模型、代码助手、自动化 Agent** 在编写或修改调用代码时作为单一事实来源。API 以当前包导出为准(入口:`packages/xllm/src/index.ts`)。
@ -6,10 +6,10 @@
## 1. 包与运行时
- **包名**:`@dm/xllm`
- **包名**:`@dm-pkg/xllm`
- **模块**:ESM(`"type": "module"`)
- **运行环境**:需存在全局 `fetch`(现代 Node、浏览器、Bun 等)。无 `fetch` 时抛 `XllmError`(`NETWORK_ERROR`)。
- **安装(monorepo)**:在依赖包中 `bun add @dm/xllm@workspace:*` 或等价 workspace 引用。
- **安装(monorepo)**:在依赖包中 `bun add @dm-pkg/xllm@workspace:*` 或等价 workspace 引用。
---
@ -18,7 +18,7 @@
### 2.1 运行时导出
```ts
import { createXllm, XllmError, registerAdapter, getRegisteredProviderNames } from "@dm/xllm";
import { createXllm, XllmError, registerAdapter, getRegisteredProviderNames } from "@dm-pkg/xllm";
```
### 2.2 类型导出(`export type`)
@ -92,7 +92,7 @@ const xllm = createXllm(options?: XClientOptions): XllmClient;
### 5.0 运行时注册 API
```ts
import { registerAdapter, getRegisteredProviderNames } from "@dm/xllm";
import { registerAdapter, getRegisteredProviderNames } from "@dm-pkg/xllm";
```
| 函数 | 签名 | 用途 |
@ -103,7 +103,7 @@ import { registerAdapter, getRegisteredProviderNames } from "@dm/xllm";
**示例**:
```ts
import { registerAdapter, createXllm } from "@dm/xllm";
import { registerAdapter, createXllm } from "@dm-pkg/xllm";
import { myCustomAdapter } from "./my-custom-adapter";
registerAdapter(myCustomAdapter);
@ -302,8 +302,8 @@ const xllm = createXllm({
通过 `registerAdapter()` 可在运行时注册自定义 `ProviderAdapter`,无需修改库源码:
```ts
import { registerAdapter, getRegisteredProviderNames, createXllm } from "@dm/xllm";
import type { ProviderAdapter } from "@dm/xllm";
import { registerAdapter, getRegisteredProviderNames, createXllm } from "@dm-pkg/xllm";
import type { ProviderAdapter } from "@dm-pkg/xllm";
const myAdapter: ProviderAdapter = {
name: "my-provider",

4
packages/xllm/package.json

@ -1,5 +1,5 @@
{
"name": "@dm/xllm",
"name": "@dm-pkg/xllm",
"type": "module",
"version": "0.0.1-alpha.1",
"scripts": {
@ -20,4 +20,4 @@
},
"./package.json": "./package.json"
}
}
}

2
tsconfig.base.json

@ -23,7 +23,7 @@
"verbatimModuleSyntax": false,
"baseUrl": ".",
"paths": {
"@dm/*": [
"@dm-pkg/*": [
"packages/*/src/index.ts"
]
}

Loading…
Cancel
Save