billion-context-omp 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +61 -0
- package/README.zh-CN.md +61 -0
- package/dist/index.d.ts +59 -0
- package/dist/index.js +56 -0
- package/dist/index.js.map +1 -0
- package/package.json +67 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 ranxianglei
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
[English](./README.md) | [中文](./README.zh-CN.md)
|
|
2
|
+
|
|
3
|
+
# billion-context-omp
|
|
4
|
+
|
|
5
|
+
[oh-my-pi (omp)](https://github.com/can1357/oh-my-pi) client extension for [billion-context](https://www.npmjs.com/package/billion-context).
|
|
6
|
+
|
|
7
|
+
`billion-context` is a Node.js proxy that sits between any AI agent and its model API, rewriting Anthropic/OpenAI streams with [acp-kernel](https://github.com/ranxianglei/acp-kernel) compression. `billion-context-omp` wires **omp** — the terminal coding agent — into that pipeline: it builds the `base_url` override that routes omp's traffic through a running `billion-context` proxy, and **self-disables when it detects omp is already behind bili** so two layers of compression never stack.
|
|
8
|
+
|
|
9
|
+
> ⚠️ This is a **skeleton** package. The config-building helpers are placeholders.
|
|
10
|
+
> Wire them to omp's actual provider/`base_url` config shape as you build it out.
|
|
11
|
+
|
|
12
|
+
## Why
|
|
13
|
+
|
|
14
|
+
Long coding sessions blow up context. Once you pass the context window the session degrades or dies, and every provider charges per token. Compression lets a single session run for days — billions of tokens through one window.
|
|
15
|
+
|
|
16
|
+
omp already supports arbitrary providers and custom `base_url`. This package is the thin glue that points those `base_url`s at a bili proxy and keeps the `/bili/` self-detection signal consistent with the rest of the billion-context client family (`billion-context-pi`, `opencode-acp`, …).
|
|
17
|
+
|
|
18
|
+
## Install
|
|
19
|
+
|
|
20
|
+
```bash
|
|
21
|
+
npm install billion-context-omp
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
## Quickstart
|
|
25
|
+
|
|
26
|
+
```ts
|
|
27
|
+
import { BillionContextOmp } from 'billion-context-omp';
|
|
28
|
+
|
|
29
|
+
const omp = new BillionContextOmp({ endpoint: 'http://localhost:8787' });
|
|
30
|
+
|
|
31
|
+
// Route a provider through bili:
|
|
32
|
+
omp.buildBaseUrl('https://api.openai.com/v1');
|
|
33
|
+
// => 'http://localhost:8787/bili/https://api.openai.com/v1'
|
|
34
|
+
|
|
35
|
+
// Detect an already-routed URL (use to self-disable / avoid double compression):
|
|
36
|
+
omp.isBiliBaseUrl('http://localhost:8787/bili/https://api.openai.com/v1'); // => true
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
## API
|
|
40
|
+
|
|
41
|
+
### `new BillionContextOmp(options?)`
|
|
42
|
+
|
|
43
|
+
| option | type | description |
|
|
44
|
+
| ---------- | -------- | ---------------------------------------- |
|
|
45
|
+
| `endpoint` | `string` | Origin of a running billion-context proxy. |
|
|
46
|
+
|
|
47
|
+
### `omp.buildBaseUrl(upstream): string`
|
|
48
|
+
|
|
49
|
+
Wrap an upstream `base_url` as `${endpoint}/bili/${upstream}`. Throws if no endpoint is configured. Passes through unchanged if already routed.
|
|
50
|
+
|
|
51
|
+
### `omp.isBiliBaseUrl(baseUrl): boolean`
|
|
52
|
+
|
|
53
|
+
True when the URL already carries the `/bili/` prefix — use this to self-disable when omp's `base_url` is already pointing at bili.
|
|
54
|
+
|
|
55
|
+
### `omp.buildConfig(providers): Record<provider, { base_url }>`
|
|
56
|
+
|
|
57
|
+
Build base_url overrides for multiple omp providers at once. _(Skeleton.)_
|
|
58
|
+
|
|
59
|
+
## License
|
|
60
|
+
|
|
61
|
+
MIT © [ranxianglei](https://github.com/ranxianglei)
|
package/README.zh-CN.md
ADDED
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
[English](./README.md) | [中文](./README.zh-CN.md)
|
|
2
|
+
|
|
3
|
+
# billion-context-omp
|
|
4
|
+
|
|
5
|
+
[oh-my-pi (omp)](https://github.com/can1357/oh-my-pi) 的 [billion-context](https://www.npmjs.com/package/billion-context) 客户端扩展。
|
|
6
|
+
|
|
7
|
+
`billion-context` 是一个 Node.js 代理,架在任意 AI 助手与其模型 API 之间,用 [acp-kernel](https://github.com/ranxianglei/acp-kernel) 压缩重写 Anthropic/OpenAI 流。`billion-context-omp` 把 **omp** —— 终端编程助手 —— 接入这条链路:它生成 `base_url` 覆盖,把 omp 的流量路由到运行中的 `billion-context` 代理,并在**检测到 omp 已经位于 bili 之后时自动停用**,避免两层压缩叠加。
|
|
8
|
+
|
|
9
|
+
> ⚠️ 这是一个**骨架**包,配置构建辅助函数目前是占位实现。
|
|
10
|
+
> 请按 omp 实际的 provider / `base_url` 配置形态对接后再行扩展。
|
|
11
|
+
|
|
12
|
+
## 为什么
|
|
13
|
+
|
|
14
|
+
长编程会话会把上下文撑爆。一旦超过上下文窗口,会话质量下降甚至崩掉,而各家 provider 按 token 计费。压缩能让**一个会话连跑数天** —— 海量 token 穿过同一个窗口。
|
|
15
|
+
|
|
16
|
+
omp 本就支持任意 provider 和自定义 `base_url`。本包提供薄薄一层胶水,把这些 `base_url` 指向 bili 代理,并保持 `/bili/` 自检信号与 billion-context 客户端家族(`billion-context-pi`、`opencode-acp` 等)一致。
|
|
17
|
+
|
|
18
|
+
## 安装
|
|
19
|
+
|
|
20
|
+
```bash
|
|
21
|
+
npm install billion-context-omp
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
## 快速开始
|
|
25
|
+
|
|
26
|
+
```ts
|
|
27
|
+
import { BillionContextOmp } from 'billion-context-omp';
|
|
28
|
+
|
|
29
|
+
const omp = new BillionContextOmp({ endpoint: 'http://localhost:8787' });
|
|
30
|
+
|
|
31
|
+
// 让某个 provider 走 bili:
|
|
32
|
+
omp.buildBaseUrl('https://api.openai.com/v1');
|
|
33
|
+
// => 'http://localhost:8787/bili/https://api.openai.com/v1'
|
|
34
|
+
|
|
35
|
+
// 检测已路由的 URL(用于自我停用 / 避免双重压缩):
|
|
36
|
+
omp.isBiliBaseUrl('http://localhost:8787/bili/https://api.openai.com/v1'); // => true
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
## API
|
|
40
|
+
|
|
41
|
+
### `new BillionContextOmp(options?)`
|
|
42
|
+
|
|
43
|
+
| 选项 | 类型 | 说明 |
|
|
44
|
+
| ---------- | -------- | --------------------------------- |
|
|
45
|
+
| `endpoint` | `string` | 运行中的 billion-context 代理地址。 |
|
|
46
|
+
|
|
47
|
+
### `omp.buildBaseUrl(upstream): string`
|
|
48
|
+
|
|
49
|
+
把上游 `base_url` 包成 `${endpoint}/bili/${upstream}`。未配置 endpoint 时抛错。若已是路由过的 URL 则原样返回。
|
|
50
|
+
|
|
51
|
+
### `omp.isBiliBaseUrl(baseUrl): boolean`
|
|
52
|
+
|
|
53
|
+
URL 含 `/bili/` 前缀时返回 true —— omp 的 `base_url` 已指向 bili 时用此方法自我停用。
|
|
54
|
+
|
|
55
|
+
### `omp.buildConfig(providers): Record<provider, { base_url }>`
|
|
56
|
+
|
|
57
|
+
一次性为多个 omp provider 生成 base_url 覆盖。_(骨架。)_
|
|
58
|
+
|
|
59
|
+
## License
|
|
60
|
+
|
|
61
|
+
MIT © [ranxianglei](https://github.com/ranxianglei)
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* billion-context-omp
|
|
4
|
+
*
|
|
5
|
+
* oh-my-pi (omp) client extension for billion-context.
|
|
6
|
+
*
|
|
7
|
+
* `billion-context` is a Node.js proxy that sits between an AI agent and its
|
|
8
|
+
* model API, rewriting Anthropic/OpenAI streams with acp-kernel compression.
|
|
9
|
+
* This package wires [omp](https://github.com/can1357/oh-my-pi) — the terminal
|
|
10
|
+
* coding agent — into that pipeline: it builds the base_url override that
|
|
11
|
+
* routes omp's traffic through a running billion-context proxy, and
|
|
12
|
+
* self-disables when it detects omp is *already* behind bili (so two layers of
|
|
13
|
+
* compression never stack).
|
|
14
|
+
*
|
|
15
|
+
* > Skeleton package. The config-building helpers below are placeholders; wire
|
|
16
|
+
* > them to omp's actual provider/base_url config shape as you build it out.
|
|
17
|
+
*/
|
|
18
|
+
/** Marker path segment bili rewrites upstream URLs under. */
|
|
19
|
+
declare const BILI_PREFIX = "/bili/";
|
|
20
|
+
interface BillionContextOmpOptions {
|
|
21
|
+
/**
|
|
22
|
+
* Origin of a running billion-context proxy, e.g. `http://localhost:8787`.
|
|
23
|
+
*/
|
|
24
|
+
endpoint?: string;
|
|
25
|
+
}
|
|
26
|
+
interface OmpProviderOverride {
|
|
27
|
+
/** The provider key to override in omp's config (e.g. `openai`, `anthropic`). */
|
|
28
|
+
provider: string;
|
|
29
|
+
/** Original upstream base URL, e.g. `https://api.openai.com/v1`. */
|
|
30
|
+
upstream: string;
|
|
31
|
+
}
|
|
32
|
+
declare class BillionContextOmp {
|
|
33
|
+
private readonly endpoint?;
|
|
34
|
+
constructor(options?: BillionContextOmpOptions);
|
|
35
|
+
/**
|
|
36
|
+
* Detect whether a base_url is already pointing at a billion-context proxy.
|
|
37
|
+
* Client extensions use this to self-disable and avoid double compression.
|
|
38
|
+
*/
|
|
39
|
+
isBiliBaseUrl(baseUrl: string): boolean;
|
|
40
|
+
/**
|
|
41
|
+
* Build the base_url omp should use so its traffic flows through bili.
|
|
42
|
+
* Result shape: `${endpoint}/bili/${upstream}`.
|
|
43
|
+
*/
|
|
44
|
+
buildBaseUrl(upstream: string): string;
|
|
45
|
+
/**
|
|
46
|
+
* Produce the provider overrides omp should merge into its config to route
|
|
47
|
+
* every listed provider through bili.
|
|
48
|
+
*
|
|
49
|
+
* Skeleton — returns base_url overrides only; extend with headers / auth
|
|
50
|
+
* passthrough / model-list tweaks as needed.
|
|
51
|
+
*/
|
|
52
|
+
buildConfig(providers: OmpProviderOverride[]): Record<string, {
|
|
53
|
+
base_url: string;
|
|
54
|
+
}>;
|
|
55
|
+
/** Whether the client is configured against a proxy endpoint. */
|
|
56
|
+
get hasEndpoint(): boolean;
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
export { BILI_PREFIX, BillionContextOmp, type BillionContextOmpOptions, type OmpProviderOverride, BillionContextOmp as default };
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
|
|
3
|
+
// src/index.ts
|
|
4
|
+
var BILI_PREFIX = "/bili/";
|
|
5
|
+
var BillionContextOmp = class {
|
|
6
|
+
endpoint;
|
|
7
|
+
constructor(options = {}) {
|
|
8
|
+
this.endpoint = options.endpoint?.replace(/\/$/, "");
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Detect whether a base_url is already pointing at a billion-context proxy.
|
|
12
|
+
* Client extensions use this to self-disable and avoid double compression.
|
|
13
|
+
*/
|
|
14
|
+
isBiliBaseUrl(baseUrl) {
|
|
15
|
+
return baseUrl.includes(BILI_PREFIX);
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Build the base_url omp should use so its traffic flows through bili.
|
|
19
|
+
* Result shape: `${endpoint}/bili/${upstream}`.
|
|
20
|
+
*/
|
|
21
|
+
buildBaseUrl(upstream) {
|
|
22
|
+
if (!this.endpoint) {
|
|
23
|
+
throw new Error(
|
|
24
|
+
"billion-context-omp: cannot build base_url \u2014 no proxy endpoint configured"
|
|
25
|
+
);
|
|
26
|
+
}
|
|
27
|
+
if (this.isBiliBaseUrl(upstream)) return upstream;
|
|
28
|
+
const clean = upstream.replace(/\/$/, "");
|
|
29
|
+
return `${this.endpoint}${BILI_PREFIX}${clean}`;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Produce the provider overrides omp should merge into its config to route
|
|
33
|
+
* every listed provider through bili.
|
|
34
|
+
*
|
|
35
|
+
* Skeleton — returns base_url overrides only; extend with headers / auth
|
|
36
|
+
* passthrough / model-list tweaks as needed.
|
|
37
|
+
*/
|
|
38
|
+
buildConfig(providers) {
|
|
39
|
+
const out = {};
|
|
40
|
+
for (const { provider, upstream } of providers) {
|
|
41
|
+
out[provider] = { base_url: this.buildBaseUrl(upstream) };
|
|
42
|
+
}
|
|
43
|
+
return out;
|
|
44
|
+
}
|
|
45
|
+
/** Whether the client is configured against a proxy endpoint. */
|
|
46
|
+
get hasEndpoint() {
|
|
47
|
+
return this.endpoint !== void 0;
|
|
48
|
+
}
|
|
49
|
+
};
|
|
50
|
+
var index_default = BillionContextOmp;
|
|
51
|
+
export {
|
|
52
|
+
BILI_PREFIX,
|
|
53
|
+
BillionContextOmp,
|
|
54
|
+
index_default as default
|
|
55
|
+
};
|
|
56
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/index.ts"],"sourcesContent":["#!/usr/bin/env node\n/**\n * billion-context-omp\n *\n * oh-my-pi (omp) client extension for billion-context.\n *\n * `billion-context` is a Node.js proxy that sits between an AI agent and its\n * model API, rewriting Anthropic/OpenAI streams with acp-kernel compression.\n * This package wires [omp](https://github.com/can1357/oh-my-pi) — the terminal\n * coding agent — into that pipeline: it builds the base_url override that\n * routes omp's traffic through a running billion-context proxy, and\n * self-disables when it detects omp is *already* behind bili (so two layers of\n * compression never stack).\n *\n * > Skeleton package. The config-building helpers below are placeholders; wire\n * > them to omp's actual provider/base_url config shape as you build it out.\n */\n\n/** Marker path segment bili rewrites upstream URLs under. */\nexport const BILI_PREFIX = '/bili/';\n\nexport interface BillionContextOmpOptions {\n /**\n * Origin of a running billion-context proxy, e.g. `http://localhost:8787`.\n */\n endpoint?: string;\n}\n\nexport interface OmpProviderOverride {\n /** The provider key to override in omp's config (e.g. `openai`, `anthropic`). */\n provider: string;\n /** Original upstream base URL, e.g. `https://api.openai.com/v1`. */\n upstream: string;\n}\n\nexport class BillionContextOmp {\n private readonly endpoint?: string;\n\n constructor(options: BillionContextOmpOptions = {}) {\n this.endpoint = options.endpoint?.replace(/\\/$/, '');\n }\n\n /**\n * Detect whether a base_url is already pointing at a billion-context proxy.\n * Client extensions use this to self-disable and avoid double compression.\n */\n isBiliBaseUrl(baseUrl: string): boolean {\n return baseUrl.includes(BILI_PREFIX);\n }\n\n /**\n * Build the base_url omp should use so its traffic flows through bili.\n * Result shape: `${endpoint}/bili/${upstream}`.\n */\n buildBaseUrl(upstream: string): string {\n if (!this.endpoint) {\n throw new Error(\n 'billion-context-omp: cannot build base_url — no proxy endpoint configured',\n );\n }\n if (this.isBiliBaseUrl(upstream)) return upstream; // already routed\n const clean = upstream.replace(/\\/$/, '');\n return `${this.endpoint}${BILI_PREFIX}${clean}`;\n }\n\n /**\n * Produce the provider overrides omp should merge into its config to route\n * every listed provider through bili.\n *\n * Skeleton — returns base_url overrides only; extend with headers / auth\n * passthrough / model-list tweaks as needed.\n */\n buildConfig(providers: OmpProviderOverride[]): Record<string, { base_url: string }> {\n const out: Record<string, { base_url: string }> = {};\n for (const { provider, upstream } of providers) {\n out[provider] = { base_url: this.buildBaseUrl(upstream) };\n }\n return out;\n }\n\n /** Whether the client is configured against a proxy endpoint. */\n get hasEndpoint(): boolean {\n return this.endpoint !== undefined;\n }\n}\n\nexport default BillionContextOmp;\n"],"mappings":";;;AAmBO,IAAM,cAAc;AAgBpB,IAAM,oBAAN,MAAwB;AAAA,EACZ;AAAA,EAEjB,YAAY,UAAoC,CAAC,GAAG;AAClD,SAAK,WAAW,QAAQ,UAAU,QAAQ,OAAO,EAAE;AAAA,EACrD;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,cAAc,SAA0B;AACtC,WAAO,QAAQ,SAAS,WAAW;AAAA,EACrC;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,aAAa,UAA0B;AACrC,QAAI,CAAC,KAAK,UAAU;AAClB,YAAM,IAAI;AAAA,QACR;AAAA,MACF;AAAA,IACF;AACA,QAAI,KAAK,cAAc,QAAQ,EAAG,QAAO;AACzC,UAAM,QAAQ,SAAS,QAAQ,OAAO,EAAE;AACxC,WAAO,GAAG,KAAK,QAAQ,GAAG,WAAW,GAAG,KAAK;AAAA,EAC/C;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA,YAAY,WAAwE;AAClF,UAAM,MAA4C,CAAC;AACnD,eAAW,EAAE,UAAU,SAAS,KAAK,WAAW;AAC9C,UAAI,QAAQ,IAAI,EAAE,UAAU,KAAK,aAAa,QAAQ,EAAE;AAAA,IAC1D;AACA,WAAO;AAAA,EACT;AAAA;AAAA,EAGA,IAAI,cAAuB;AACzB,WAAO,KAAK,aAAa;AAAA,EAC3B;AACF;AAEA,IAAO,gBAAQ;","names":[]}
|
package/package.json
ADDED
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "billion-context-omp",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "oh-my-pi (omp) client extension for billion-context. Routes omp's model traffic through a running billion-context proxy for incremental, reversible, prefix-cache-friendly context compression — and self-disables when it detects omp is already behind bili.",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"main": "dist/index.js",
|
|
7
|
+
"module": "dist/index.js",
|
|
8
|
+
"types": "dist/index.d.ts",
|
|
9
|
+
"exports": {
|
|
10
|
+
".": {
|
|
11
|
+
"types": "./dist/index.d.ts",
|
|
12
|
+
"import": "./dist/index.js"
|
|
13
|
+
}
|
|
14
|
+
},
|
|
15
|
+
"bin": {
|
|
16
|
+
"bili-omp": "./dist/index.js"
|
|
17
|
+
},
|
|
18
|
+
"sideEffects": false,
|
|
19
|
+
"files": [
|
|
20
|
+
"dist",
|
|
21
|
+
"README.md",
|
|
22
|
+
"README.zh-CN.md",
|
|
23
|
+
"LICENSE"
|
|
24
|
+
],
|
|
25
|
+
"scripts": {
|
|
26
|
+
"build": "tsup",
|
|
27
|
+
"typecheck": "tsc --noEmit --project tsconfig.build.json",
|
|
28
|
+
"prepublishOnly": "npm run build"
|
|
29
|
+
},
|
|
30
|
+
"keywords": [
|
|
31
|
+
"context",
|
|
32
|
+
"compression",
|
|
33
|
+
"proxy",
|
|
34
|
+
"acp",
|
|
35
|
+
"acp-kernel",
|
|
36
|
+
"ai",
|
|
37
|
+
"agent",
|
|
38
|
+
"omp",
|
|
39
|
+
"oh-my-pi",
|
|
40
|
+
"pi",
|
|
41
|
+
"coding-agent",
|
|
42
|
+
"cli",
|
|
43
|
+
"anthropic",
|
|
44
|
+
"openai"
|
|
45
|
+
],
|
|
46
|
+
"license": "MIT",
|
|
47
|
+
"author": "ranxianglei",
|
|
48
|
+
"repository": {
|
|
49
|
+
"type": "git",
|
|
50
|
+
"url": "git+https://github.com/ranxianglei/billion-context-omp.git"
|
|
51
|
+
},
|
|
52
|
+
"homepage": "https://github.com/ranxianglei/billion-context-omp#readme",
|
|
53
|
+
"bugs": {
|
|
54
|
+
"url": "https://github.com/ranxianglei/billion-context-omp/issues"
|
|
55
|
+
},
|
|
56
|
+
"devDependencies": {
|
|
57
|
+
"tsup": "^8.0.0",
|
|
58
|
+
"typescript": "^5.5.0"
|
|
59
|
+
},
|
|
60
|
+
"engines": {
|
|
61
|
+
"node": ">=20"
|
|
62
|
+
},
|
|
63
|
+
"publishConfig": {
|
|
64
|
+
"access": "public",
|
|
65
|
+
"registry": "https://registry.npmjs.org"
|
|
66
|
+
}
|
|
67
|
+
}
|