@kevisual/cnb 0.0.76 → 0.0.77
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/agent/routes/knowledge/embedding.ts +166 -0
- package/agent/routes/knowledge/index.ts +2 -1
- package/agent/routes/labels/tags.ts +43 -3
- package/dist/cli-live.js +22 -22
- package/dist/cli.js +828 -362
- package/dist/keep.js +14 -14
- package/dist/npc.js +816 -350
- package/dist/opencode.js +813 -347
- package/dist/routes.d.ts +61 -28
- package/dist/routes.js +809 -343
- package/package.json +2 -2
- package/src/cnb-core.ts +26 -11
- package/src/knowledge/index.ts +81 -22
- package/src/labels/repo-label.ts +16 -0
- package/src/issue/issue-alive/issues-alive.html +0 -2
|
@@ -0,0 +1,166 @@
|
|
|
1
|
+
import { app, cnbManager } from '../../app.ts'
|
|
2
|
+
import z from 'zod'
|
|
3
|
+
import fs from 'node:fs';
|
|
4
|
+
import crypto from 'node:crypto';
|
|
5
|
+
|
|
6
|
+
// pnpm cli embedding getEmbedding -- repo=kevisual/starred-auto text="hello world"
|
|
7
|
+
app.route({
|
|
8
|
+
path: 'embedding',
|
|
9
|
+
key: 'getEmbedding',
|
|
10
|
+
middleware: ['auth'],
|
|
11
|
+
description: '获取文本的向量表示',
|
|
12
|
+
metadata: {
|
|
13
|
+
args: {
|
|
14
|
+
repo: z.string().describe('知识库所属的仓库'),
|
|
15
|
+
text: z.string().describe('需要获取向量表示的文本')
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
}).define(async (ctx) => {
|
|
19
|
+
const cnb = await cnbManager.getContext(ctx)
|
|
20
|
+
const { text, repo } = ctx.args
|
|
21
|
+
|
|
22
|
+
const result = await cnb.knowledgeBase.getEmbedding(repo, text)
|
|
23
|
+
console.log('embedding result', result)
|
|
24
|
+
}).addTo(app)
|
|
25
|
+
|
|
26
|
+
// pnpm cli embedding list-docs -- repo=kevisual/starred-auto
|
|
27
|
+
// pnpm cli embedding list-docs -- repo=kevisual/cnb
|
|
28
|
+
app.route({
|
|
29
|
+
path: 'embedding',
|
|
30
|
+
key: 'list-docs',
|
|
31
|
+
middleware: ['auth'],
|
|
32
|
+
description: '获取知识库中的文档列表',
|
|
33
|
+
metadata: {
|
|
34
|
+
args: {
|
|
35
|
+
repo: z.string().describe('知识库所属的仓库'),
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
}).define(async (ctx) => {
|
|
39
|
+
const cnb = await cnbManager.getContext(ctx)
|
|
40
|
+
const { repo } = ctx.args
|
|
41
|
+
|
|
42
|
+
const result = await cnb.knowledgeBase.listDocuments(repo)
|
|
43
|
+
console.log('list docs result', result)
|
|
44
|
+
}).addTo(app)
|
|
45
|
+
|
|
46
|
+
// pnpm cli embedding add-doc -- repo=kevisual/starred-auto content="hello world"
|
|
47
|
+
// pnpm cli embedding add-doc -- repo=kevisual/cnb content="hello world"
|
|
48
|
+
|
|
49
|
+
app.route({
|
|
50
|
+
path: 'embedding',
|
|
51
|
+
key: 'add-doc',
|
|
52
|
+
middleware: ['auth'],
|
|
53
|
+
description: '向知识库中添加文档,test',
|
|
54
|
+
metadata: {
|
|
55
|
+
args: {
|
|
56
|
+
repo: z.string().describe('知识库所属的仓库'),
|
|
57
|
+
content: z.string().describe('文档内容')
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
}).define(async (ctx) => {
|
|
61
|
+
const cnb = await cnbManager.getContext(ctx)
|
|
62
|
+
let { repo, content } = ctx.args
|
|
63
|
+
const embeddingResult = await cnb.knowledgeBase.getEmbedding(repo, content)
|
|
64
|
+
const embedding = embeddingResult.data.embeddings;
|
|
65
|
+
const path = process.cwd() + '/docs/readme.md'
|
|
66
|
+
const read = fs.readFileSync(path, 'utf-8')
|
|
67
|
+
content = read;
|
|
68
|
+
const size = Buffer.byteLength(content, 'utf-8')
|
|
69
|
+
const gitBlobHashContent = (content: string | Buffer) => {
|
|
70
|
+
const bytes = Buffer.isBuffer(content) ? content : Buffer.from(content);
|
|
71
|
+
return crypto.createHash('md5').update(bytes).digest('hex');
|
|
72
|
+
}
|
|
73
|
+
const result = await cnb.knowledgeBase.addDocument(repo, {
|
|
74
|
+
path: 'docs/readme.md',
|
|
75
|
+
name: 'readme',
|
|
76
|
+
extension: 'md',
|
|
77
|
+
size,
|
|
78
|
+
hash: gitBlobHashContent(content),
|
|
79
|
+
type: 'code',
|
|
80
|
+
url: `https://cnb.cool/kevisual/cnb/-/blob/38f5e7ef1baf583/docs/readme.md`,
|
|
81
|
+
chunks: [
|
|
82
|
+
{
|
|
83
|
+
content,
|
|
84
|
+
hash: gitBlobHashContent(content),
|
|
85
|
+
position: 0,
|
|
86
|
+
embedding: embedding,
|
|
87
|
+
}
|
|
88
|
+
],
|
|
89
|
+
batch_index: 0,
|
|
90
|
+
batch_count: 1,
|
|
91
|
+
is_last_batch: true,
|
|
92
|
+
})
|
|
93
|
+
console.log('add doc result', result)
|
|
94
|
+
}).addTo(app)
|
|
95
|
+
|
|
96
|
+
// pnpm cli cnb-base query -- repo=kevisual/starred-auto query="openlist"
|
|
97
|
+
app.route({
|
|
98
|
+
path: 'cnb-base',
|
|
99
|
+
key: 'query',
|
|
100
|
+
middleware: ['auth'],
|
|
101
|
+
description: '获取知识库基本信息',
|
|
102
|
+
metadata: {
|
|
103
|
+
args: {
|
|
104
|
+
repo: z.string().describe('知识库所属的仓库'),
|
|
105
|
+
query: z.string().describe('查询文本'),
|
|
106
|
+
score_threshold: z.number().optional().describe('相似度阈值,范围0-1,默认为0.5'),
|
|
107
|
+
top_k: z.number().optional().describe('返回最相似的前K条结果,默认为10')
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
}).define(async (ctx) => {
|
|
111
|
+
const cnb = await cnbManager.getContext(ctx)
|
|
112
|
+
const { repo, query, score_threshold, top_k } = ctx.args
|
|
113
|
+
|
|
114
|
+
const result = await cnb.knowledgeBase.queryKnowledgeBase(repo, { query, score_threshold, top_k })
|
|
115
|
+
console.log('get knowledge base result', result)
|
|
116
|
+
}).addTo(app)
|
|
117
|
+
|
|
118
|
+
// pnpm cli cnb-base create-knowledge-base -- repo=kevisual/cnb
|
|
119
|
+
app.route({
|
|
120
|
+
path: 'cnb-base',
|
|
121
|
+
key: 'create-knowledge-base',
|
|
122
|
+
middleware: ['auth'],
|
|
123
|
+
description: '创建知识库',
|
|
124
|
+
metadata: {
|
|
125
|
+
args: {
|
|
126
|
+
repo: z.string().describe('知识库所属的仓库'),
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
}).define(async (ctx) => {
|
|
130
|
+
const cnb = await cnbManager.getContext(ctx)
|
|
131
|
+
const repo = 'kevisual/cnb'
|
|
132
|
+
const model_name = 'hunyuan'
|
|
133
|
+
const include = 'docs/**.md'
|
|
134
|
+
const exclude = ''
|
|
135
|
+
const chunk_size = 300
|
|
136
|
+
const chunk_overlap = 50
|
|
137
|
+
const text_separator = '\n'
|
|
138
|
+
const issue_sync_enabled = false
|
|
139
|
+
const issue_labels = ''
|
|
140
|
+
const issue_exclude_labels = ''
|
|
141
|
+
const issue_state = 'open'
|
|
142
|
+
const baseRes = await cnb.knowledgeBase.getBase(repo)
|
|
143
|
+
console.log(JSON.stringify(baseRes, null, 2))
|
|
144
|
+
if (baseRes.code === 200) {
|
|
145
|
+
// console.log('知识库已存在,删除后重新创建')
|
|
146
|
+
// const res = await cnb.knowledgeBase.deleteBase(repo)
|
|
147
|
+
// console.log('delete knowledge base result', res)
|
|
148
|
+
ctx.body = {
|
|
149
|
+
content: '知识库已存',
|
|
150
|
+
}
|
|
151
|
+
return;
|
|
152
|
+
}
|
|
153
|
+
const result = await cnb.knowledgeBase.createKnowledgeBase(repo, {
|
|
154
|
+
model_name,
|
|
155
|
+
include,
|
|
156
|
+
exclude,
|
|
157
|
+
chunk_size,
|
|
158
|
+
chunk_overlap,
|
|
159
|
+
text_separator,
|
|
160
|
+
issue_sync_enabled,
|
|
161
|
+
issue_labels,
|
|
162
|
+
issue_exclude_labels,
|
|
163
|
+
issue_state
|
|
164
|
+
})
|
|
165
|
+
console.log('create knowledge base result', result)
|
|
166
|
+
}).addTo(app)
|
|
@@ -1 +1,2 @@
|
|
|
1
|
-
import './ai.ts'
|
|
1
|
+
import './ai.ts'
|
|
2
|
+
import './embedding.ts'
|
|
@@ -2,10 +2,10 @@ import { z } from 'zod';
|
|
|
2
2
|
import { app, cnbManager } from '../../app.ts';
|
|
3
3
|
|
|
4
4
|
// 查询仓库的标签列表,并导入到新仓库
|
|
5
|
-
// pnpm cli cnb
|
|
5
|
+
// pnpm cli cnb importLabels -- source=kevisual/cnb target=abearxiong/jour-2026-04-12
|
|
6
6
|
app.route({
|
|
7
7
|
path: 'cnb',
|
|
8
|
-
key: '
|
|
8
|
+
key: 'importLabels',
|
|
9
9
|
description: '从一个仓库导入标签到另一个仓库',
|
|
10
10
|
middleware: ['auth'],
|
|
11
11
|
metadata: {
|
|
@@ -33,4 +33,44 @@ app.route({
|
|
|
33
33
|
labels: res.data,
|
|
34
34
|
});
|
|
35
35
|
ctx.forward(importRes);
|
|
36
|
-
}).addTo(app);
|
|
36
|
+
}).addTo(app);
|
|
37
|
+
|
|
38
|
+
// pnpm cli cnb removeLabels -- repo=abearxiong/jour-2026-04-12 all=true
|
|
39
|
+
app.route({
|
|
40
|
+
path: 'cnb',
|
|
41
|
+
key: 'removeLabels',
|
|
42
|
+
description: '从仓库中删除标签',
|
|
43
|
+
middleware: ['auth'],
|
|
44
|
+
metadata: {
|
|
45
|
+
args: {
|
|
46
|
+
repo: z.string().describe('仓库路径, 如 my-user/my-repo'),
|
|
47
|
+
labels: z.array(z.string()).describe('要删除的标签名称列表'),
|
|
48
|
+
all: z.boolean().describe('是否删除所有标签,默认为 false'),
|
|
49
|
+
},
|
|
50
|
+
}
|
|
51
|
+
}).define(async (ctx) => {
|
|
52
|
+
const cnb = await cnbManager.getContext(ctx);
|
|
53
|
+
const repo = ctx.query?.repo;
|
|
54
|
+
let labels = ctx.query?.labels;
|
|
55
|
+
const all = ctx.query?.all === true;
|
|
56
|
+
if (!repo) {
|
|
57
|
+
ctx.throw(400, '缺少参数 repo');
|
|
58
|
+
}
|
|
59
|
+
if (all) {
|
|
60
|
+
const res = await cnb.labels.repoLabel.getAll(repo);
|
|
61
|
+
if (res.code !== 200) {
|
|
62
|
+
return ctx.forward(res)
|
|
63
|
+
}
|
|
64
|
+
labels = res.data.map((label: { name: string }) => label.name);
|
|
65
|
+
}
|
|
66
|
+
if (!labels || !Array.isArray(labels)) {
|
|
67
|
+
ctx.throw(400, '缺少参数 labels 或 labels 不是数组');
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
// 删除标签列表
|
|
71
|
+
const removeRes = await cnb.labels.repoLabel.removeLabels({
|
|
72
|
+
repo,
|
|
73
|
+
labels,
|
|
74
|
+
});
|
|
75
|
+
ctx.forward(removeRes);
|
|
76
|
+
}).addTo(app);
|
package/dist/cli-live.js
CHANGED
|
@@ -46,7 +46,7 @@ var __export = (target, all) => {
|
|
|
46
46
|
var __esm = (fn, res) => () => (fn && (res = fn(fn = 0)), res);
|
|
47
47
|
var __require = /* @__PURE__ */ createRequire(import.meta.url);
|
|
48
48
|
|
|
49
|
-
// node_modules/.pnpm/@kevisual+ws@8.19.0/node_modules/@kevisual/ws/lib/constants.js
|
|
49
|
+
// ../../node_modules/.pnpm/@kevisual+ws@8.19.0/node_modules/@kevisual/ws/lib/constants.js
|
|
50
50
|
var require_constants = __commonJS((exports, module) => {
|
|
51
51
|
var BINARY_TYPES = ["nodebuffer", "arraybuffer", "fragments"];
|
|
52
52
|
var hasBlob = typeof Blob !== "undefined";
|
|
@@ -66,7 +66,7 @@ var require_constants = __commonJS((exports, module) => {
|
|
|
66
66
|
};
|
|
67
67
|
});
|
|
68
68
|
|
|
69
|
-
// node_modules/.pnpm/@kevisual+ws@8.19.0/node_modules/@kevisual/ws/lib/buffer-util.js
|
|
69
|
+
// ../../node_modules/.pnpm/@kevisual+ws@8.19.0/node_modules/@kevisual/ws/lib/buffer-util.js
|
|
70
70
|
var require_buffer_util = __commonJS((exports, module) => {
|
|
71
71
|
var { EMPTY_BUFFER } = require_constants();
|
|
72
72
|
var FastBuffer = Buffer[Symbol.species];
|
|
@@ -127,7 +127,7 @@ var require_buffer_util = __commonJS((exports, module) => {
|
|
|
127
127
|
};
|
|
128
128
|
});
|
|
129
129
|
|
|
130
|
-
// node_modules/.pnpm/@kevisual+ws@8.19.0/node_modules/@kevisual/ws/lib/limiter.js
|
|
130
|
+
// ../../node_modules/.pnpm/@kevisual+ws@8.19.0/node_modules/@kevisual/ws/lib/limiter.js
|
|
131
131
|
var require_limiter = __commonJS((exports, module) => {
|
|
132
132
|
var kDone = Symbol("kDone");
|
|
133
133
|
var kRun = Symbol("kRun");
|
|
@@ -159,7 +159,7 @@ var require_limiter = __commonJS((exports, module) => {
|
|
|
159
159
|
module.exports = Limiter;
|
|
160
160
|
});
|
|
161
161
|
|
|
162
|
-
// node_modules/.pnpm/@kevisual+ws@8.19.0/node_modules/@kevisual/ws/lib/permessage-deflate.js
|
|
162
|
+
// ../../node_modules/.pnpm/@kevisual+ws@8.19.0/node_modules/@kevisual/ws/lib/permessage-deflate.js
|
|
163
163
|
var require_permessage_deflate = __commonJS((exports, module) => {
|
|
164
164
|
var zlib = __require("zlib");
|
|
165
165
|
var bufferUtil = require_buffer_util();
|
|
@@ -423,7 +423,7 @@ var require_permessage_deflate = __commonJS((exports, module) => {
|
|
|
423
423
|
}
|
|
424
424
|
});
|
|
425
425
|
|
|
426
|
-
// node_modules/.pnpm/@kevisual+ws@8.19.0/node_modules/@kevisual/ws/lib/validation.js
|
|
426
|
+
// ../../node_modules/.pnpm/@kevisual+ws@8.19.0/node_modules/@kevisual/ws/lib/validation.js
|
|
427
427
|
var require_validation = __commonJS((exports, module) => {
|
|
428
428
|
var { isUtf8 } = __require("buffer");
|
|
429
429
|
var { hasBlob } = require_constants();
|
|
@@ -603,7 +603,7 @@ var require_validation = __commonJS((exports, module) => {
|
|
|
603
603
|
}
|
|
604
604
|
});
|
|
605
605
|
|
|
606
|
-
// node_modules/.pnpm/@kevisual+ws@8.19.0/node_modules/@kevisual/ws/lib/receiver.js
|
|
606
|
+
// ../../node_modules/.pnpm/@kevisual+ws@8.19.0/node_modules/@kevisual/ws/lib/receiver.js
|
|
607
607
|
var require_receiver = __commonJS((exports, module) => {
|
|
608
608
|
var { Writable } = __require("stream");
|
|
609
609
|
var PerMessageDeflate = require_permessage_deflate();
|
|
@@ -984,7 +984,7 @@ var require_receiver = __commonJS((exports, module) => {
|
|
|
984
984
|
module.exports = Receiver;
|
|
985
985
|
});
|
|
986
986
|
|
|
987
|
-
// node_modules/.pnpm/@kevisual+ws@8.19.0/node_modules/@kevisual/ws/lib/sender.js
|
|
987
|
+
// ../../node_modules/.pnpm/@kevisual+ws@8.19.0/node_modules/@kevisual/ws/lib/sender.js
|
|
988
988
|
var require_sender = __commonJS((exports, module) => {
|
|
989
989
|
var { Duplex } = __require("stream");
|
|
990
990
|
var { randomFillSync } = __require("crypto");
|
|
@@ -1338,7 +1338,7 @@ var require_sender = __commonJS((exports, module) => {
|
|
|
1338
1338
|
}
|
|
1339
1339
|
});
|
|
1340
1340
|
|
|
1341
|
-
// node_modules/.pnpm/@kevisual+ws@8.19.0/node_modules/@kevisual/ws/lib/event-target.js
|
|
1341
|
+
// ../../node_modules/.pnpm/@kevisual+ws@8.19.0/node_modules/@kevisual/ws/lib/event-target.js
|
|
1342
1342
|
var require_event_target = __commonJS((exports, module) => {
|
|
1343
1343
|
var { kForOnEventAttribute, kListener } = require_constants();
|
|
1344
1344
|
var kCode = Symbol("kCode");
|
|
@@ -1489,7 +1489,7 @@ var require_event_target = __commonJS((exports, module) => {
|
|
|
1489
1489
|
}
|
|
1490
1490
|
});
|
|
1491
1491
|
|
|
1492
|
-
// node_modules/.pnpm/@kevisual+ws@8.19.0/node_modules/@kevisual/ws/lib/extension.js
|
|
1492
|
+
// ../../node_modules/.pnpm/@kevisual+ws@8.19.0/node_modules/@kevisual/ws/lib/extension.js
|
|
1493
1493
|
var require_extension = __commonJS((exports, module) => {
|
|
1494
1494
|
var { tokenChars } = require_validation();
|
|
1495
1495
|
function push(dest, name, elem) {
|
|
@@ -1654,7 +1654,7 @@ var require_extension = __commonJS((exports, module) => {
|
|
|
1654
1654
|
module.exports = { format, parse };
|
|
1655
1655
|
});
|
|
1656
1656
|
|
|
1657
|
-
// node_modules/.pnpm/@kevisual+ws@8.19.0/node_modules/@kevisual/ws/lib/websocket.js
|
|
1657
|
+
// ../../node_modules/.pnpm/@kevisual+ws@8.19.0/node_modules/@kevisual/ws/lib/websocket.js
|
|
1658
1658
|
var require_websocket = __commonJS((exports, module) => {
|
|
1659
1659
|
var EventEmitter = __require("events");
|
|
1660
1660
|
var https = __require("https");
|
|
@@ -2416,7 +2416,7 @@ var require_websocket = __commonJS((exports, module) => {
|
|
|
2416
2416
|
}
|
|
2417
2417
|
});
|
|
2418
2418
|
|
|
2419
|
-
// node_modules/.pnpm/@kevisual+ws@8.19.0/node_modules/@kevisual/ws/lib/stream.js
|
|
2419
|
+
// ../../node_modules/.pnpm/@kevisual+ws@8.19.0/node_modules/@kevisual/ws/lib/stream.js
|
|
2420
2420
|
var require_stream = __commonJS((exports, module) => {
|
|
2421
2421
|
var WebSocket = require_websocket();
|
|
2422
2422
|
var { Duplex } = __require("stream");
|
|
@@ -2519,7 +2519,7 @@ var require_stream = __commonJS((exports, module) => {
|
|
|
2519
2519
|
module.exports = createWebSocketStream;
|
|
2520
2520
|
});
|
|
2521
2521
|
|
|
2522
|
-
// node_modules/.pnpm/@kevisual+ws@8.19.0/node_modules/@kevisual/ws/lib/subprotocol.js
|
|
2522
|
+
// ../../node_modules/.pnpm/@kevisual+ws@8.19.0/node_modules/@kevisual/ws/lib/subprotocol.js
|
|
2523
2523
|
var require_subprotocol = __commonJS((exports, module) => {
|
|
2524
2524
|
var { tokenChars } = require_validation();
|
|
2525
2525
|
function parse(header) {
|
|
@@ -2564,7 +2564,7 @@ var require_subprotocol = __commonJS((exports, module) => {
|
|
|
2564
2564
|
module.exports = { parse };
|
|
2565
2565
|
});
|
|
2566
2566
|
|
|
2567
|
-
// node_modules/.pnpm/@kevisual+ws@8.19.0/node_modules/@kevisual/ws/lib/websocket-server.js
|
|
2567
|
+
// ../../node_modules/.pnpm/@kevisual+ws@8.19.0/node_modules/@kevisual/ws/lib/websocket-server.js
|
|
2568
2568
|
var require_websocket_server = __commonJS((exports, module) => {
|
|
2569
2569
|
var EventEmitter = __require("events");
|
|
2570
2570
|
var http = __require("http");
|
|
@@ -2866,7 +2866,7 @@ var require_websocket_server = __commonJS((exports, module) => {
|
|
|
2866
2866
|
}
|
|
2867
2867
|
});
|
|
2868
2868
|
|
|
2869
|
-
// node_modules/.pnpm/@kevisual+ws@8.19.0/node_modules/@kevisual/ws/wrapper.mjs
|
|
2869
|
+
// ../../node_modules/.pnpm/@kevisual+ws@8.19.0/node_modules/@kevisual/ws/wrapper.mjs
|
|
2870
2870
|
var exports_wrapper = {};
|
|
2871
2871
|
__export(exports_wrapper, {
|
|
2872
2872
|
default: () => wrapper_default,
|
|
@@ -2886,7 +2886,7 @@ var init_wrapper = __esm(() => {
|
|
|
2886
2886
|
wrapper_default = import_websocket.default;
|
|
2887
2887
|
});
|
|
2888
2888
|
|
|
2889
|
-
// node_modules/.pnpm/commander@14.0.3/node_modules/commander/lib/error.js
|
|
2889
|
+
// ../../node_modules/.pnpm/commander@14.0.3/node_modules/commander/lib/error.js
|
|
2890
2890
|
var require_error = __commonJS((exports) => {
|
|
2891
2891
|
class CommanderError extends Error {
|
|
2892
2892
|
constructor(exitCode, code, message) {
|
|
@@ -2910,7 +2910,7 @@ var require_error = __commonJS((exports) => {
|
|
|
2910
2910
|
exports.InvalidArgumentError = InvalidArgumentError;
|
|
2911
2911
|
});
|
|
2912
2912
|
|
|
2913
|
-
// node_modules/.pnpm/commander@14.0.3/node_modules/commander/lib/argument.js
|
|
2913
|
+
// ../../node_modules/.pnpm/commander@14.0.3/node_modules/commander/lib/argument.js
|
|
2914
2914
|
var require_argument = __commonJS((exports) => {
|
|
2915
2915
|
var { InvalidArgumentError } = require_error();
|
|
2916
2916
|
|
|
@@ -2990,7 +2990,7 @@ var require_argument = __commonJS((exports) => {
|
|
|
2990
2990
|
exports.humanReadableArgName = humanReadableArgName;
|
|
2991
2991
|
});
|
|
2992
2992
|
|
|
2993
|
-
// node_modules/.pnpm/commander@14.0.3/node_modules/commander/lib/help.js
|
|
2993
|
+
// ../../node_modules/.pnpm/commander@14.0.3/node_modules/commander/lib/help.js
|
|
2994
2994
|
var require_help = __commonJS((exports) => {
|
|
2995
2995
|
var { humanReadableArgName } = require_argument();
|
|
2996
2996
|
|
|
@@ -3347,7 +3347,7 @@ ${itemIndentStr}`);
|
|
|
3347
3347
|
exports.stripColor = stripColor;
|
|
3348
3348
|
});
|
|
3349
3349
|
|
|
3350
|
-
// node_modules/.pnpm/commander@14.0.3/node_modules/commander/lib/option.js
|
|
3350
|
+
// ../../node_modules/.pnpm/commander@14.0.3/node_modules/commander/lib/option.js
|
|
3351
3351
|
var require_option = __commonJS((exports) => {
|
|
3352
3352
|
var { InvalidArgumentError } = require_error();
|
|
3353
3353
|
|
|
@@ -3531,7 +3531,7 @@ var require_option = __commonJS((exports) => {
|
|
|
3531
3531
|
exports.DualOptions = DualOptions;
|
|
3532
3532
|
});
|
|
3533
3533
|
|
|
3534
|
-
// node_modules/.pnpm/commander@14.0.3/node_modules/commander/lib/suggestSimilar.js
|
|
3534
|
+
// ../../node_modules/.pnpm/commander@14.0.3/node_modules/commander/lib/suggestSimilar.js
|
|
3535
3535
|
var require_suggestSimilar = __commonJS((exports) => {
|
|
3536
3536
|
var maxDistance = 3;
|
|
3537
3537
|
function editDistance(a, b) {
|
|
@@ -3604,7 +3604,7 @@ var require_suggestSimilar = __commonJS((exports) => {
|
|
|
3604
3604
|
exports.suggestSimilar = suggestSimilar;
|
|
3605
3605
|
});
|
|
3606
3606
|
|
|
3607
|
-
// node_modules/.pnpm/commander@14.0.3/node_modules/commander/lib/command.js
|
|
3607
|
+
// ../../node_modules/.pnpm/commander@14.0.3/node_modules/commander/lib/command.js
|
|
3608
3608
|
var require_command = __commonJS((exports) => {
|
|
3609
3609
|
var EventEmitter = __require("node:events").EventEmitter;
|
|
3610
3610
|
var childProcess = __require("node:child_process");
|
|
@@ -4959,7 +4959,7 @@ Expecting one of '${allowedValues.join("', '")}'`);
|
|
|
4959
4959
|
exports.useColor = useColor;
|
|
4960
4960
|
});
|
|
4961
4961
|
|
|
4962
|
-
// node_modules/.pnpm/commander@14.0.3/node_modules/commander/index.js
|
|
4962
|
+
// ../../node_modules/.pnpm/commander@14.0.3/node_modules/commander/index.js
|
|
4963
4963
|
var require_commander = __commonJS((exports) => {
|
|
4964
4964
|
var { Argument } = require_argument();
|
|
4965
4965
|
var { Command } = require_command();
|
|
@@ -5176,7 +5176,7 @@ function createKeepAlive(config) {
|
|
|
5176
5176
|
import { readFileSync } from "node:fs";
|
|
5177
5177
|
import path from "node:path";
|
|
5178
5178
|
|
|
5179
|
-
// node_modules/.pnpm/commander@14.0.3/node_modules/commander/esm.mjs
|
|
5179
|
+
// ../../node_modules/.pnpm/commander@14.0.3/node_modules/commander/esm.mjs
|
|
5180
5180
|
var import__ = __toESM(require_commander(), 1);
|
|
5181
5181
|
var {
|
|
5182
5182
|
program,
|