openmcp-sdk 0.0.1
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/README.md +95 -0
- package/icons/openmcp.png +0 -0
- package/package.json +38 -0
- package/service/common/index.d.ts +5 -0
- package/service/common/index.d.ts.map +1 -0
- package/service/common/index.dto.d.ts +24 -0
- package/service/common/index.dto.d.ts.map +1 -0
- package/service/common/index.dto.js +2 -0
- package/service/common/index.js +17 -0
- package/service/common/router.d.ts +10 -0
- package/service/common/router.d.ts.map +1 -0
- package/service/common/router.js +54 -0
- package/service/hook/adapter.d.ts +67 -0
- package/service/hook/adapter.d.ts.map +1 -0
- package/service/hook/adapter.js +123 -0
- package/service/hook/db.d.ts +46 -0
- package/service/hook/db.d.ts.map +1 -0
- package/service/hook/db.js +179 -0
- package/service/hook/llm.d.ts +13 -0
- package/service/hook/llm.d.ts.map +1 -0
- package/service/hook/llm.js +89 -0
- package/service/hook/setting.d.ts +5 -0
- package/service/hook/setting.d.ts.map +1 -0
- package/service/hook/setting.js +13 -0
- package/service/hook/types.d.ts +90 -0
- package/service/hook/types.d.ts.map +1 -0
- package/service/hook/types.js +2 -0
- package/service/index.d.ts +5 -0
- package/service/index.d.ts.map +1 -0
- package/service/index.js +14 -0
- package/service/llm/llm.controller.d.ts +10 -0
- package/service/llm/llm.controller.d.ts.map +1 -0
- package/service/llm/llm.controller.js +61 -0
- package/service/llm/llm.dto.d.ts +8 -0
- package/service/llm/llm.dto.d.ts.map +1 -0
- package/service/llm/llm.dto.js +2 -0
- package/service/llm/llm.service.d.ts +8 -0
- package/service/llm/llm.service.d.ts.map +1 -0
- package/service/llm/llm.service.js +176 -0
- package/service/mcp/client.controller.d.ts +791 -0
- package/service/mcp/client.controller.d.ts.map +1 -0
- package/service/mcp/client.controller.js +177 -0
- package/service/mcp/client.dto.d.ts +42 -0
- package/service/mcp/client.dto.d.ts.map +1 -0
- package/service/mcp/client.dto.js +2 -0
- package/service/mcp/client.service.d.ts +763 -0
- package/service/mcp/client.service.d.ts.map +1 -0
- package/service/mcp/client.service.js +186 -0
- package/service/mcp/connect.controller.d.ts +17 -0
- package/service/mcp/connect.controller.d.ts.map +1 -0
- package/service/mcp/connect.controller.js +63 -0
- package/service/mcp/connect.service.d.ts +7 -0
- package/service/mcp/connect.service.d.ts.map +1 -0
- package/service/mcp/connect.service.js +76 -0
- package/service/mcp/ocr.controller.d.ts +18 -0
- package/service/mcp/ocr.controller.d.ts.map +1 -0
- package/service/mcp/ocr.controller.js +57 -0
- package/service/mcp/ocr.dto.d.ts +8 -0
- package/service/mcp/ocr.dto.d.ts.map +1 -0
- package/service/mcp/ocr.dto.js +2 -0
- package/service/mcp/ocr.service.d.ts +9 -0
- package/service/mcp/ocr.service.d.ts.map +1 -0
- package/service/mcp/ocr.service.js +143 -0
- package/service/panel/panel.controller.d.ts +32 -0
- package/service/panel/panel.controller.d.ts.map +1 -0
- package/service/panel/panel.controller.js +118 -0
- package/service/panel/panel.dto.d.ts +12 -0
- package/service/panel/panel.dto.d.ts.map +1 -0
- package/service/panel/panel.dto.js +2 -0
- package/service/panel/panel.service.d.ts +6 -0
- package/service/panel/panel.service.d.ts.map +1 -0
- package/service/panel/panel.service.js +95 -0
- package/service/setting/setting.controller.d.ts +23 -0
- package/service/setting/setting.controller.d.ts.map +1 -0
- package/service/setting/setting.controller.js +77 -0
- package/service/setting/setting.dto.d.ts +5 -0
- package/service/setting/setting.dto.d.ts.map +1 -0
- package/service/setting/setting.dto.js +2 -0
- package/service/setting/setting.service.d.ts +8 -0
- package/service/setting/setting.service.d.ts.map +1 -0
- package/service/setting/setting.service.js +121 -0
- package/task-loop.d.ts +105 -0
- package/task-loop.js +10985 -0
- package/task-loop.js.map +1 -0
- package/tools.js +8 -0
@@ -0,0 +1,176 @@
|
|
1
|
+
"use strict";
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
9
|
+
});
|
10
|
+
};
|
11
|
+
var __asyncValues = (this && this.__asyncValues) || function (o) {
|
12
|
+
if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
|
13
|
+
var m = o[Symbol.asyncIterator], i;
|
14
|
+
return m ? m.call(o) : (o = typeof __values === "function" ? __values(o) : o[Symbol.iterator](), i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i);
|
15
|
+
function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }
|
16
|
+
function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }
|
17
|
+
};
|
18
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
19
|
+
exports.currentStream = void 0;
|
20
|
+
exports.streamingChatCompletion = streamingChatCompletion;
|
21
|
+
exports.abortMessageService = abortMessageService;
|
22
|
+
exports.postProcessMessages = postProcessMessages;
|
23
|
+
const openai_1 = require("openai");
|
24
|
+
const db_1 = require("../hook/db");
|
25
|
+
const ocr_service_1 = require("../mcp/ocr.service");
|
26
|
+
exports.currentStream = null;
|
27
|
+
function streamingChatCompletion(data, webview) {
|
28
|
+
return __awaiter(this, void 0, void 0, function* () {
|
29
|
+
var _a, e_1, _b, _c;
|
30
|
+
let { baseURL, apiKey, model, messages, temperature, tools = [] } = data;
|
31
|
+
const client = new openai_1.OpenAI({
|
32
|
+
baseURL,
|
33
|
+
apiKey
|
34
|
+
});
|
35
|
+
if (tools.length === 0) {
|
36
|
+
tools = undefined;
|
37
|
+
}
|
38
|
+
yield postProcessMessages(messages);
|
39
|
+
const stream = yield client.chat.completions.create({
|
40
|
+
model,
|
41
|
+
messages,
|
42
|
+
temperature,
|
43
|
+
tools,
|
44
|
+
tool_choice: 'auto',
|
45
|
+
web_search_options: {},
|
46
|
+
stream: true
|
47
|
+
});
|
48
|
+
// 存储当前的流式传输对象
|
49
|
+
exports.currentStream = stream;
|
50
|
+
try {
|
51
|
+
// 流式传输结果
|
52
|
+
for (var _d = true, stream_1 = __asyncValues(stream), stream_1_1; stream_1_1 = yield stream_1.next(), _a = stream_1_1.done, !_a; _d = true) {
|
53
|
+
_c = stream_1_1.value;
|
54
|
+
_d = false;
|
55
|
+
const chunk = _c;
|
56
|
+
if (!exports.currentStream) {
|
57
|
+
// 如果流被中止,则停止循环
|
58
|
+
// TODO: 为每一个标签页设置不同的 currentStream 管理器
|
59
|
+
stream.controller.abort();
|
60
|
+
// 传输结束
|
61
|
+
webview.postMessage({
|
62
|
+
command: 'llm/chat/completions/done',
|
63
|
+
data: {
|
64
|
+
code: 200,
|
65
|
+
msg: {
|
66
|
+
success: true,
|
67
|
+
stage: 'abort'
|
68
|
+
}
|
69
|
+
}
|
70
|
+
});
|
71
|
+
break;
|
72
|
+
}
|
73
|
+
if (chunk.choices) {
|
74
|
+
const chunkResult = {
|
75
|
+
code: 200,
|
76
|
+
msg: {
|
77
|
+
chunk
|
78
|
+
}
|
79
|
+
};
|
80
|
+
webview.postMessage({
|
81
|
+
command: 'llm/chat/completions/chunk',
|
82
|
+
data: chunkResult
|
83
|
+
});
|
84
|
+
}
|
85
|
+
}
|
86
|
+
}
|
87
|
+
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
88
|
+
finally {
|
89
|
+
try {
|
90
|
+
if (!_d && !_a && (_b = stream_1.return)) yield _b.call(stream_1);
|
91
|
+
}
|
92
|
+
finally { if (e_1) throw e_1.error; }
|
93
|
+
}
|
94
|
+
// 传输结束
|
95
|
+
webview.postMessage({
|
96
|
+
command: 'llm/chat/completions/done',
|
97
|
+
data: {
|
98
|
+
code: 200,
|
99
|
+
msg: {
|
100
|
+
success: true,
|
101
|
+
stage: 'done'
|
102
|
+
}
|
103
|
+
}
|
104
|
+
});
|
105
|
+
});
|
106
|
+
}
|
107
|
+
// 处理中止消息的函数
|
108
|
+
function abortMessageService(data, webview) {
|
109
|
+
if (exports.currentStream) {
|
110
|
+
// 标记流已中止
|
111
|
+
exports.currentStream = null;
|
112
|
+
}
|
113
|
+
return {
|
114
|
+
code: 200,
|
115
|
+
msg: {
|
116
|
+
success: true
|
117
|
+
}
|
118
|
+
};
|
119
|
+
}
|
120
|
+
function postProcessToolMessages(message) {
|
121
|
+
return __awaiter(this, void 0, void 0, function* () {
|
122
|
+
if (typeof message.content === 'string') {
|
123
|
+
return;
|
124
|
+
}
|
125
|
+
for (const content of message.content) {
|
126
|
+
const contentType = content.type;
|
127
|
+
const rawContent = content;
|
128
|
+
if (contentType === 'image') {
|
129
|
+
rawContent.type = 'text';
|
130
|
+
// 此时图片只会存在三个状态
|
131
|
+
// 1. 图片在 ocrDB 中
|
132
|
+
// 2. 图片的 OCR 仍然在进行中
|
133
|
+
// 3. 图片已被删除
|
134
|
+
// rawContent.data 就是 filename
|
135
|
+
const result = yield db_1.ocrDB.findById(rawContent.data);
|
136
|
+
if (result) {
|
137
|
+
rawContent.text = result.text || '';
|
138
|
+
}
|
139
|
+
else if (rawContent._meta) {
|
140
|
+
const workerId = rawContent._meta.workerId;
|
141
|
+
const worker = ocr_service_1.ocrWorkerStorage.get(workerId);
|
142
|
+
if (worker) {
|
143
|
+
const text = yield worker.fut;
|
144
|
+
rawContent.text = text;
|
145
|
+
}
|
146
|
+
}
|
147
|
+
else {
|
148
|
+
rawContent.text = '无效的图片';
|
149
|
+
}
|
150
|
+
delete rawContent._meta;
|
151
|
+
}
|
152
|
+
}
|
153
|
+
message.content = JSON.stringify(message.content);
|
154
|
+
});
|
155
|
+
}
|
156
|
+
function postProcessMessages(messages) {
|
157
|
+
return __awaiter(this, void 0, void 0, function* () {
|
158
|
+
for (const message of messages) {
|
159
|
+
// 去除 extraInfo 属性
|
160
|
+
delete message.extraInfo;
|
161
|
+
switch (message.role) {
|
162
|
+
case 'user':
|
163
|
+
break;
|
164
|
+
case 'assistant':
|
165
|
+
break;
|
166
|
+
case 'system':
|
167
|
+
break;
|
168
|
+
case 'tool':
|
169
|
+
yield postProcessToolMessages(message);
|
170
|
+
break;
|
171
|
+
default:
|
172
|
+
break;
|
173
|
+
}
|
174
|
+
}
|
175
|
+
});
|
176
|
+
}
|