@mujian/js-sdk 0.0.6-beta.72 → 0.0.6-beta.74
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/dist/index.d.ts +2 -1
- package/dist/index.js +94 -84
- package/dist/lite.d.ts +21 -1
- package/dist/lite.js +120 -0
- package/dist/modules/config.d.ts +6 -0
- package/dist/react.js +47 -42
- package/dist/umd/index.js +1 -1
- package/dist/umd/lite.js +1 -1
- package/dist/umd/react.js +1 -1
- package/package.json +5 -1
package/dist/index.d.ts
CHANGED
package/dist/index.js
CHANGED
|
@@ -183,53 +183,58 @@ class MujianSdk {
|
|
|
183
183
|
}
|
|
184
184
|
pendingRequests = new Map();
|
|
185
185
|
_config;
|
|
186
|
-
get
|
|
187
|
-
return this._config;
|
|
186
|
+
get openapi() {
|
|
187
|
+
return this._config?.openapi;
|
|
188
188
|
}
|
|
189
|
+
initPromise = null;
|
|
189
190
|
async init() {
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
call
|
|
196
|
-
|
|
197
|
-
|
|
191
|
+
if (this.initPromise) return this.initPromise;
|
|
192
|
+
this.initPromise = (async ()=>{
|
|
193
|
+
const handshake = new postmate.Model({
|
|
194
|
+
reply: ({ id, complete, data, error })=>{
|
|
195
|
+
const call = this.pendingRequests.get(id);
|
|
196
|
+
if (!call) return;
|
|
197
|
+
if (error) {
|
|
198
|
+
call.reject(error);
|
|
199
|
+
this.pendingRequests.delete(id);
|
|
200
|
+
return;
|
|
201
|
+
}
|
|
202
|
+
call.onData?.(data);
|
|
203
|
+
if (complete) {
|
|
204
|
+
call.onComplete?.();
|
|
205
|
+
call.resolve(data);
|
|
206
|
+
this.pendingRequests.delete(id);
|
|
207
|
+
}
|
|
198
208
|
}
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
209
|
+
});
|
|
210
|
+
try {
|
|
211
|
+
const parent = await handshake;
|
|
212
|
+
this.ready = true;
|
|
213
|
+
this.parent = parent;
|
|
214
|
+
Log.i('mujian sdk client init');
|
|
215
|
+
await this.call(events_EVENT.MUJIAN_INIT);
|
|
216
|
+
const projectInfo = await this.ai.chat.project.getInfo();
|
|
217
|
+
if (projectInfo.config?.customCss) {
|
|
218
|
+
const style = document.createElement('style');
|
|
219
|
+
style.setAttribute('type', 'text/css');
|
|
220
|
+
style.setAttribute('id', 'mujian-custom-css');
|
|
221
|
+
style.textContent = projectInfo.config.customCss;
|
|
222
|
+
document.head.appendChild(style);
|
|
204
223
|
}
|
|
224
|
+
if (projectInfo.config?.customJs) {
|
|
225
|
+
const script = document.createElement("script");
|
|
226
|
+
script.setAttribute('type', "text/javascript");
|
|
227
|
+
script.setAttribute('id', 'mujian-custom-js');
|
|
228
|
+
script.textContent = projectInfo.config.customJs;
|
|
229
|
+
document.head.appendChild(script);
|
|
230
|
+
}
|
|
231
|
+
const config = await getConfig.call(this);
|
|
232
|
+
if (config) this._config = config;
|
|
233
|
+
} catch (error) {
|
|
234
|
+
Log.e('init error', error);
|
|
205
235
|
}
|
|
206
|
-
});
|
|
207
|
-
|
|
208
|
-
const parent = await handshake;
|
|
209
|
-
this.ready = true;
|
|
210
|
-
this.parent = parent;
|
|
211
|
-
Log.i('mujian sdk client init');
|
|
212
|
-
await this.call(events_EVENT.MUJIAN_INIT);
|
|
213
|
-
const projectInfo = await this.ai.chat.project.getInfo();
|
|
214
|
-
if (projectInfo.config?.customCss) {
|
|
215
|
-
const style = document.createElement('style');
|
|
216
|
-
style.setAttribute('type', 'text/css');
|
|
217
|
-
style.setAttribute('id', 'mujian-custom-css');
|
|
218
|
-
style.textContent = projectInfo.config.customCss;
|
|
219
|
-
document.head.appendChild(style);
|
|
220
|
-
}
|
|
221
|
-
if (projectInfo.config?.customJs) {
|
|
222
|
-
const script = document.createElement("script");
|
|
223
|
-
script.setAttribute('type', "text/javascript");
|
|
224
|
-
script.setAttribute('id', 'mujian-custom-js');
|
|
225
|
-
script.textContent = projectInfo.config.customJs;
|
|
226
|
-
document.head.appendChild(script);
|
|
227
|
-
}
|
|
228
|
-
const config = await getConfig.call(this);
|
|
229
|
-
if (config) this._config = config;
|
|
230
|
-
} catch (error) {
|
|
231
|
-
Log.e('init error', error);
|
|
232
|
-
}
|
|
236
|
+
})();
|
|
237
|
+
return this.initPromise;
|
|
233
238
|
}
|
|
234
239
|
emit(event, data) {
|
|
235
240
|
if (!this.ready) throw new Error('Mujian is not initialized');
|
|
@@ -397,53 +402,58 @@ class src_MujianSdk {
|
|
|
397
402
|
}
|
|
398
403
|
pendingRequests = new Map();
|
|
399
404
|
_config;
|
|
400
|
-
get
|
|
401
|
-
return this._config;
|
|
405
|
+
get openapi() {
|
|
406
|
+
return this._config?.openapi;
|
|
402
407
|
}
|
|
408
|
+
initPromise = null;
|
|
403
409
|
async init() {
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
call
|
|
410
|
-
|
|
411
|
-
|
|
410
|
+
if (this.initPromise) return this.initPromise;
|
|
411
|
+
this.initPromise = (async ()=>{
|
|
412
|
+
const handshake = new postmate.Model({
|
|
413
|
+
reply: ({ id, complete, data, error })=>{
|
|
414
|
+
const call = this.pendingRequests.get(id);
|
|
415
|
+
if (!call) return;
|
|
416
|
+
if (error) {
|
|
417
|
+
call.reject(error);
|
|
418
|
+
this.pendingRequests.delete(id);
|
|
419
|
+
return;
|
|
420
|
+
}
|
|
421
|
+
call.onData?.(data);
|
|
422
|
+
if (complete) {
|
|
423
|
+
call.onComplete?.();
|
|
424
|
+
call.resolve(data);
|
|
425
|
+
this.pendingRequests.delete(id);
|
|
426
|
+
}
|
|
412
427
|
}
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
428
|
+
});
|
|
429
|
+
try {
|
|
430
|
+
const parent = await handshake;
|
|
431
|
+
this.ready = true;
|
|
432
|
+
this.parent = parent;
|
|
433
|
+
Log.i('mujian sdk client init');
|
|
434
|
+
await this.call(events_EVENT.MUJIAN_INIT);
|
|
435
|
+
const projectInfo = await this.ai.chat.project.getInfo();
|
|
436
|
+
if (projectInfo.config?.customCss) {
|
|
437
|
+
const style = document.createElement('style');
|
|
438
|
+
style.setAttribute('type', 'text/css');
|
|
439
|
+
style.setAttribute('id', 'mujian-custom-css');
|
|
440
|
+
style.textContent = projectInfo.config.customCss;
|
|
441
|
+
document.head.appendChild(style);
|
|
418
442
|
}
|
|
443
|
+
if (projectInfo.config?.customJs) {
|
|
444
|
+
const script = document.createElement("script");
|
|
445
|
+
script.setAttribute('type', "text/javascript");
|
|
446
|
+
script.setAttribute('id', 'mujian-custom-js');
|
|
447
|
+
script.textContent = projectInfo.config.customJs;
|
|
448
|
+
document.head.appendChild(script);
|
|
449
|
+
}
|
|
450
|
+
const config = await getConfig.call(this);
|
|
451
|
+
if (config) this._config = config;
|
|
452
|
+
} catch (error) {
|
|
453
|
+
Log.e('init error', error);
|
|
419
454
|
}
|
|
420
|
-
});
|
|
421
|
-
|
|
422
|
-
const parent = await handshake;
|
|
423
|
-
this.ready = true;
|
|
424
|
-
this.parent = parent;
|
|
425
|
-
Log.i('mujian sdk client init');
|
|
426
|
-
await this.call(events_EVENT.MUJIAN_INIT);
|
|
427
|
-
const projectInfo = await this.ai.chat.project.getInfo();
|
|
428
|
-
if (projectInfo.config?.customCss) {
|
|
429
|
-
const style = document.createElement('style');
|
|
430
|
-
style.setAttribute('type', 'text/css');
|
|
431
|
-
style.setAttribute('id', 'mujian-custom-css');
|
|
432
|
-
style.textContent = projectInfo.config.customCss;
|
|
433
|
-
document.head.appendChild(style);
|
|
434
|
-
}
|
|
435
|
-
if (projectInfo.config?.customJs) {
|
|
436
|
-
const script = document.createElement("script");
|
|
437
|
-
script.setAttribute('type', "text/javascript");
|
|
438
|
-
script.setAttribute('id', 'mujian-custom-js');
|
|
439
|
-
script.textContent = projectInfo.config.customJs;
|
|
440
|
-
document.head.appendChild(script);
|
|
441
|
-
}
|
|
442
|
-
const config = await getConfig.call(this);
|
|
443
|
-
if (config) this._config = config;
|
|
444
|
-
} catch (error) {
|
|
445
|
-
Log.e('init error', error);
|
|
446
|
-
}
|
|
455
|
+
})();
|
|
456
|
+
return this.initPromise;
|
|
447
457
|
}
|
|
448
458
|
emit(event, data) {
|
|
449
459
|
if (!this.ready) throw new Error('Mujian is not initialized');
|
package/dist/lite.d.ts
CHANGED
|
@@ -14,6 +14,17 @@ declare global {
|
|
|
14
14
|
$mujian_lite: MujianSdkLite;
|
|
15
15
|
}
|
|
16
16
|
}
|
|
17
|
+
/**
|
|
18
|
+
* @class MujianSdkLite
|
|
19
|
+
* @description 幕间 SDK 的轻量级客户端,用于在浏览器中获取 API 配置。
|
|
20
|
+
* @example
|
|
21
|
+
* ```typescript
|
|
22
|
+
* (window as any).$mujian_lite.init().then(() => {
|
|
23
|
+
* console.log((window as any).$mujian_lite.openapi.baseURL); // API 的 URL
|
|
24
|
+
* console.log((window as any).$mujian_lite.openapi.apiKey); // API 的 KEY (当前用户唯一)
|
|
25
|
+
* });
|
|
26
|
+
* ```
|
|
27
|
+
*/
|
|
17
28
|
declare class MujianSdkLite {
|
|
18
29
|
/** @hidden */
|
|
19
30
|
private constructor();
|
|
@@ -21,7 +32,9 @@ declare class MujianSdkLite {
|
|
|
21
32
|
* 事件
|
|
22
33
|
* @enum {string}
|
|
23
34
|
*/
|
|
35
|
+
/** @hidden */
|
|
24
36
|
static EVENT: typeof EVENT;
|
|
37
|
+
/** @hidden */
|
|
25
38
|
static getInstance(): MujianSdkLite;
|
|
26
39
|
/** @hidden */
|
|
27
40
|
private parent;
|
|
@@ -30,11 +43,18 @@ declare class MujianSdkLite {
|
|
|
30
43
|
/**
|
|
31
44
|
* 是否初始化
|
|
32
45
|
*/
|
|
46
|
+
/** @hidden */
|
|
33
47
|
get isReady(): boolean;
|
|
34
48
|
/** @hidden */
|
|
35
49
|
private pendingRequests;
|
|
50
|
+
/** @hidden */
|
|
36
51
|
private _config?;
|
|
37
|
-
|
|
52
|
+
/**
|
|
53
|
+
* 获取 API 配置
|
|
54
|
+
* @returns {{ baseURL: string, apiKey: string }} { baseURL: API 的 URL, apiKey: API 的 KEY }
|
|
55
|
+
*/
|
|
56
|
+
get openapi(): Config['openapi'] | undefined;
|
|
57
|
+
/** @hidden */
|
|
38
58
|
private initPromise;
|
|
39
59
|
/**
|
|
40
60
|
* 初始化
|
package/dist/lite.js
ADDED
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
import postmate from "postmate";
|
|
2
|
+
var events_EVENT = /*#__PURE__*/ function(EVENT) {
|
|
3
|
+
EVENT["MUJIAN_INIT"] = "mujian:init";
|
|
4
|
+
EVENT["MUJIAN_AI_CHAT_STOP"] = "mujian:ai:chat:stop";
|
|
5
|
+
EVENT["MUJIAN_AI_CHAT_COMPLETE"] = "mujian:ai:chat:complete";
|
|
6
|
+
EVENT["MUJIAN_AI_CHAT_APPLY_REGEX"] = "mujian:ai:chat:applyRegex";
|
|
7
|
+
EVENT["MUJIAN_AI_CHAT_RENDER_MESSAGE"] = "mujian:ai:chat:renderMessage";
|
|
8
|
+
EVENT["MUJIAN_AI_TEXT_GENERATE"] = "mujian:ai:text:generate";
|
|
9
|
+
EVENT["MUJIAN_AI_OPENAI_COMPLETIONS_CREATE"] = "mujian:ai:openai:completions:create";
|
|
10
|
+
EVENT["MUJIAN_AI_OPENAI_CHAT_COMPLETIONS_CREATE"] = "mujian:ai:openai:chat:completions:create";
|
|
11
|
+
EVENT["MUJIAN_AI_OPENAI_RESPONSES_CREATE"] = "mujian:ai:openai:responses:create";
|
|
12
|
+
EVENT["MUJIAN_AI_CHAT_MESSAGE_GET_ALL"] = "mujian:ai:chat:message:getAll";
|
|
13
|
+
EVENT["MUJIAN_AI_CHAT_MESSAGE_GET_PAGE"] = "mujian:ai:chat:message:getPage";
|
|
14
|
+
EVENT["MUJIAN_AI_CHAT_PROJECT_GET_INFO"] = "mujian:ai:chat:project:getInfo";
|
|
15
|
+
EVENT["MUJIAN_AI_SETTINGS_PERSONA_GET_ACTIVE"] = "mujian:ai:settings:persona:getActive";
|
|
16
|
+
EVENT["MUJIAN_AI_SETTINGS_PERSONA_SET_ACTIVE"] = "mujian:ai:settings:persona:setActive";
|
|
17
|
+
EVENT["MUJIAN_AI_SETTINGS_MODEL_GET_ALL"] = "mujian:ai:settings:model:getAll";
|
|
18
|
+
EVENT["MUJIAN_AI_SETTINGS_MODEL_SET_ACTIVE"] = "mujian:ai:settings:model:setActive";
|
|
19
|
+
EVENT["MUJIAN_AI_SETTINGS_MODEL_GET_ACTIVE"] = "mujian:ai:settings:model:getActive";
|
|
20
|
+
EVENT["MUJIAN_AI_CHAT_MESSAGE_DELETE_ONE"] = "mujian:ai:chat:message:deleteOne";
|
|
21
|
+
EVENT["MUJIAN_AI_CHAT_MESSAGE_EDIT_ONE"] = "mujian:ai:chat:message:editOne";
|
|
22
|
+
EVENT["MUJIAN_AI_CHAT_MESSAGE_SWIPE"] = "mujian:ai:chat:message:swipe";
|
|
23
|
+
EVENT["MUJIAN_AI_CHAT_MESSAGE_GET_PROMPT"] = "mujian:ai:chat:message:getPrompt";
|
|
24
|
+
EVENT["MUJIAN_AI_OPENAI_IMAGES_GENERATE"] = "mujian:ai:openai:images:generate";
|
|
25
|
+
EVENT["MUJIAN_UTILS_CLIPBOARD_WRITE_TEXT"] = "mujian:utils:clipboard:writeText";
|
|
26
|
+
EVENT["MUJIAN_GET_CONFIG"] = "mujian:getConfig";
|
|
27
|
+
return EVENT;
|
|
28
|
+
}({});
|
|
29
|
+
const Log = {
|
|
30
|
+
i (...msg) {
|
|
31
|
+
console.log('[MujianSDK] ', ...msg);
|
|
32
|
+
},
|
|
33
|
+
e (...msg) {
|
|
34
|
+
console.error('[MujianSDK] ', ...msg);
|
|
35
|
+
}
|
|
36
|
+
};
|
|
37
|
+
class MujianSdkLite {
|
|
38
|
+
constructor(){}
|
|
39
|
+
static EVENT = events_EVENT;
|
|
40
|
+
static getInstance() {
|
|
41
|
+
if (!window.$mujian_lite) window.$mujian_lite = new MujianSdkLite();
|
|
42
|
+
return window.$mujian_lite;
|
|
43
|
+
}
|
|
44
|
+
parent = null;
|
|
45
|
+
ready = false;
|
|
46
|
+
get isReady() {
|
|
47
|
+
return this.ready;
|
|
48
|
+
}
|
|
49
|
+
pendingRequests = new Map();
|
|
50
|
+
_config;
|
|
51
|
+
get openapi() {
|
|
52
|
+
return this._config?.openapi;
|
|
53
|
+
}
|
|
54
|
+
initPromise = null;
|
|
55
|
+
async init() {
|
|
56
|
+
if (this.initPromise) return this.initPromise;
|
|
57
|
+
this.initPromise = (async ()=>{
|
|
58
|
+
const handshake = new postmate.Model({
|
|
59
|
+
reply: ({ id, complete, data, error })=>{
|
|
60
|
+
const call = this.pendingRequests.get(id);
|
|
61
|
+
if (!call) return;
|
|
62
|
+
if (error) {
|
|
63
|
+
call.reject(error);
|
|
64
|
+
this.pendingRequests.delete(id);
|
|
65
|
+
return;
|
|
66
|
+
}
|
|
67
|
+
call.onData?.(data);
|
|
68
|
+
if (complete) {
|
|
69
|
+
call.onComplete?.();
|
|
70
|
+
call.resolve(data);
|
|
71
|
+
this.pendingRequests.delete(id);
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
});
|
|
75
|
+
try {
|
|
76
|
+
const parent = await handshake;
|
|
77
|
+
this.parent = parent;
|
|
78
|
+
this.ready = true;
|
|
79
|
+
Log.i('mujian sdk lite client init');
|
|
80
|
+
await this.call(events_EVENT.MUJIAN_INIT);
|
|
81
|
+
this._config = await this.call(events_EVENT.MUJIAN_GET_CONFIG);
|
|
82
|
+
} catch (error) {
|
|
83
|
+
Log.e('init error', error);
|
|
84
|
+
throw error;
|
|
85
|
+
}
|
|
86
|
+
})();
|
|
87
|
+
return this.initPromise;
|
|
88
|
+
}
|
|
89
|
+
ensureReady() {
|
|
90
|
+
if (!this.ready) throw new Error('MujianLite is not initialized');
|
|
91
|
+
}
|
|
92
|
+
emit(event, data) {
|
|
93
|
+
this.ensureReady();
|
|
94
|
+
this.parent?.emit(event, data);
|
|
95
|
+
}
|
|
96
|
+
nextCallId = 0;
|
|
97
|
+
getCallId() {
|
|
98
|
+
const id = this.nextCallId;
|
|
99
|
+
this.nextCallId += 1;
|
|
100
|
+
return `lite_${id}`;
|
|
101
|
+
}
|
|
102
|
+
async call(event, data, controller) {
|
|
103
|
+
this.ensureReady();
|
|
104
|
+
const callId = this.getCallId();
|
|
105
|
+
return new Promise((resolve, reject)=>{
|
|
106
|
+
this.pendingRequests.set(callId, {
|
|
107
|
+
resolve,
|
|
108
|
+
reject,
|
|
109
|
+
...controller
|
|
110
|
+
});
|
|
111
|
+
this.emit(event, {
|
|
112
|
+
id: callId,
|
|
113
|
+
data
|
|
114
|
+
});
|
|
115
|
+
});
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
MujianSdkLite.getInstance().init();
|
|
119
|
+
const lite = MujianSdkLite;
|
|
120
|
+
export { events_EVENT as EVENT, lite as default };
|
package/dist/modules/config.d.ts
CHANGED
package/dist/react.js
CHANGED
|
@@ -724,53 +724,58 @@ class MujianSdk {
|
|
|
724
724
|
}
|
|
725
725
|
pendingRequests = new Map();
|
|
726
726
|
_config;
|
|
727
|
-
get
|
|
728
|
-
return this._config;
|
|
727
|
+
get openapi() {
|
|
728
|
+
return this._config?.openapi;
|
|
729
729
|
}
|
|
730
|
+
initPromise = null;
|
|
730
731
|
async init() {
|
|
731
|
-
|
|
732
|
-
|
|
733
|
-
|
|
734
|
-
|
|
735
|
-
|
|
736
|
-
call
|
|
737
|
-
|
|
738
|
-
|
|
732
|
+
if (this.initPromise) return this.initPromise;
|
|
733
|
+
this.initPromise = (async ()=>{
|
|
734
|
+
const handshake = new postmate.Model({
|
|
735
|
+
reply: ({ id, complete, data, error })=>{
|
|
736
|
+
const call = this.pendingRequests.get(id);
|
|
737
|
+
if (!call) return;
|
|
738
|
+
if (error) {
|
|
739
|
+
call.reject(error);
|
|
740
|
+
this.pendingRequests.delete(id);
|
|
741
|
+
return;
|
|
742
|
+
}
|
|
743
|
+
call.onData?.(data);
|
|
744
|
+
if (complete) {
|
|
745
|
+
call.onComplete?.();
|
|
746
|
+
call.resolve(data);
|
|
747
|
+
this.pendingRequests.delete(id);
|
|
748
|
+
}
|
|
739
749
|
}
|
|
740
|
-
|
|
741
|
-
|
|
742
|
-
|
|
743
|
-
|
|
744
|
-
|
|
750
|
+
});
|
|
751
|
+
try {
|
|
752
|
+
const parent = await handshake;
|
|
753
|
+
this.ready = true;
|
|
754
|
+
this.parent = parent;
|
|
755
|
+
Log.i('mujian sdk client init');
|
|
756
|
+
await this.call(events_EVENT.MUJIAN_INIT);
|
|
757
|
+
const projectInfo = await this.ai.chat.project.getInfo();
|
|
758
|
+
if (projectInfo.config?.customCss) {
|
|
759
|
+
const style = document.createElement('style');
|
|
760
|
+
style.setAttribute('type', 'text/css');
|
|
761
|
+
style.setAttribute('id', 'mujian-custom-css');
|
|
762
|
+
style.textContent = projectInfo.config.customCss;
|
|
763
|
+
document.head.appendChild(style);
|
|
745
764
|
}
|
|
765
|
+
if (projectInfo.config?.customJs) {
|
|
766
|
+
const script = document.createElement("script");
|
|
767
|
+
script.setAttribute('type', "text/javascript");
|
|
768
|
+
script.setAttribute('id', 'mujian-custom-js');
|
|
769
|
+
script.textContent = projectInfo.config.customJs;
|
|
770
|
+
document.head.appendChild(script);
|
|
771
|
+
}
|
|
772
|
+
const config = await getConfig.call(this);
|
|
773
|
+
if (config) this._config = config;
|
|
774
|
+
} catch (error) {
|
|
775
|
+
Log.e('init error', error);
|
|
746
776
|
}
|
|
747
|
-
});
|
|
748
|
-
|
|
749
|
-
const parent = await handshake;
|
|
750
|
-
this.ready = true;
|
|
751
|
-
this.parent = parent;
|
|
752
|
-
Log.i('mujian sdk client init');
|
|
753
|
-
await this.call(events_EVENT.MUJIAN_INIT);
|
|
754
|
-
const projectInfo = await this.ai.chat.project.getInfo();
|
|
755
|
-
if (projectInfo.config?.customCss) {
|
|
756
|
-
const style = document.createElement('style');
|
|
757
|
-
style.setAttribute('type', 'text/css');
|
|
758
|
-
style.setAttribute('id', 'mujian-custom-css');
|
|
759
|
-
style.textContent = projectInfo.config.customCss;
|
|
760
|
-
document.head.appendChild(style);
|
|
761
|
-
}
|
|
762
|
-
if (projectInfo.config?.customJs) {
|
|
763
|
-
const script = document.createElement("script");
|
|
764
|
-
script.setAttribute('type', "text/javascript");
|
|
765
|
-
script.setAttribute('id', 'mujian-custom-js');
|
|
766
|
-
script.textContent = projectInfo.config.customJs;
|
|
767
|
-
document.head.appendChild(script);
|
|
768
|
-
}
|
|
769
|
-
const config = await getConfig.call(this);
|
|
770
|
-
if (config) this._config = config;
|
|
771
|
-
} catch (error) {
|
|
772
|
-
Log.e('init error', error);
|
|
773
|
-
}
|
|
777
|
+
})();
|
|
778
|
+
return this.initPromise;
|
|
774
779
|
}
|
|
775
780
|
emit(event, data) {
|
|
776
781
|
if (!this.ready) throw new Error('Mujian is not initialized');
|
package/dist/umd/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/*! For license information please see index.js.LICENSE.txt */
|
|
2
|
-
!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.MujianUMD=e():t.MujianUMD=e()}(globalThis,()=>(()=>{"use strict";var t,e={};e.d=(t,i)=>{for(var n in i)e.o(i,n)&&!e.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:i[n]})},e.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),e.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};var i={};e.r(i),e.d(i,{MujianSdk:()=>k,EVENT:()=>u});var n="application/x-postmate-v1+json",a=0,s=function(t){var e=document.createElement("a");e.href=t;var i=e.protocol.length>4?e.protocol:window.location.protocol,n=e.host.length?"80"===e.port||"443"===e.port?e.hostname:e.host:window.location.host;return e.origin||i+"//"+n},r={handshake:1,"handshake-reply":1,call:1,emit:1,reply:1,request:1},o=function(t,e){return("string"!=typeof e||t.origin===e)&&!!t.data&&("object"!=typeof t.data||"postmate"in t.data)&&t.data.type===n&&!!r[t.data.postmate]},c=function(t,e){var i="function"==typeof t[e]?t[e]():t[e];return h.Promise.resolve(i)},l=function(){function t(t){var e=this;this.parent=t.parent,this.frame=t.frame,this.child=t.child,this.childOrigin=t.childOrigin,this.events={},this.listener=function(t){if(!o(t,e.childOrigin))return!1;var i=((t||{}).data||{}).value||{},n=i.data,a=i.name;"emit"===t.data.postmate&&a in e.events&&e.events[a].call(e,n)},this.parent.addEventListener("message",this.listener,!1)}var e=t.prototype;return e.get=function(t){var e=this;return new h.Promise(function(i){var s=++a;e.parent.addEventListener("message",function t(n){n.data.uid===s&&"reply"===n.data.postmate&&(e.parent.removeEventListener("message",t,!1),i(n.data.value))},!1),e.child.postMessage({postmate:"request",type:n,property:t,uid:s},e.childOrigin)})},e.call=function(t,e){this.child.postMessage({postmate:"call",type:n,property:t,data:e},this.childOrigin)},e.on=function(t,e){this.events[t]=e},e.destroy=function(){window.removeEventListener("message",this.listener,!1),this.frame.parentNode.removeChild(this.frame)},t}(),d=function(){function t(t){var e=this;this.model=t.model,this.parent=t.parent,this.parentOrigin=t.parentOrigin,this.child=t.child,this.child.addEventListener("message",function(t){if(o(t,e.parentOrigin)){var i=t.data,a=i.property,s=i.uid,r=i.data;if("call"===t.data.postmate){a in e.model&&"function"==typeof e.model[a]&&e.model[a](r);return}c(e.model,a).then(function(e){return t.source.postMessage({property:a,postmate:"reply",type:n,uid:s,value:e},t.origin)})}})}return t.prototype.emit=function(t,e){this.parent.postMessage({postmate:"emit",type:n,value:{name:t,data:e}},this.parentOrigin)},t}(),h=function(){function t(t){var e=t.container,i=void 0===e?void 0!==i?i:document.body:e,n=t.model,a=t.url,s=t.name,r=t.classListArray;return this.parent=window,this.frame=document.createElement("iframe"),this.frame.name=s||"",this.frame.classList.add.apply(this.frame.classList,void 0===r?[]:r),i.appendChild(this.frame),this.child=this.frame.contentWindow||this.frame.contentDocument.parentWindow,this.model=n||{},this.sendHandshake(a)}return t.prototype.sendHandshake=function(e){var i,a=this,r=s(e),c=0;return new t.Promise(function(t,s){a.parent.addEventListener("message",function e(n){return!!o(n,r)&&("handshake-reply"===n.data.postmate?(clearInterval(i),a.parent.removeEventListener("message",e,!1),a.childOrigin=n.origin,t(new l(a))):s("Failed handshake"))},!1);var d=function(){c++,a.child.postMessage({postmate:"handshake",type:n,model:a.model},r),5===c&&clearInterval(i)},h=function(){d(),i=setInterval(d,500)};a.frame.attachEvent?a.frame.attachEvent("onload",h):a.frame.onload=h,a.frame.src=e})},t}();h.debug=!1,h.Promise=function(){try{return window?window.Promise:Promise}catch(t){return null}}(),h.Model=function(){function t(t){return this.child=window,this.model=t,this.parent=this.child.parent,this.sendHandshakeReply()}return t.prototype.sendHandshakeReply=function(){var t=this;return new h.Promise(function(e,i){t.child.addEventListener("message",function a(s){if(s.data.postmate){if("handshake"===s.data.postmate){t.child.removeEventListener("message",a,!1),s.source.postMessage({postmate:"handshake-reply",type:n},s.origin),t.parentOrigin=s.origin;var r=s.data.model;return r&&Object.keys(r).forEach(function(e){t.model[e]=r[e]}),e(new d(t))}return i("Handshake Reply Failed")}},!1)})},t}();var u=((t={}).MUJIAN_INIT="mujian:init",t.MUJIAN_AI_CHAT_STOP="mujian:ai:chat:stop",t.MUJIAN_AI_CHAT_COMPLETE="mujian:ai:chat:complete",t.MUJIAN_AI_CHAT_APPLY_REGEX="mujian:ai:chat:applyRegex",t.MUJIAN_AI_CHAT_RENDER_MESSAGE="mujian:ai:chat:renderMessage",t.MUJIAN_AI_TEXT_GENERATE="mujian:ai:text:generate",t.MUJIAN_AI_OPENAI_COMPLETIONS_CREATE="mujian:ai:openai:completions:create",t.MUJIAN_AI_OPENAI_CHAT_COMPLETIONS_CREATE="mujian:ai:openai:chat:completions:create",t.MUJIAN_AI_OPENAI_RESPONSES_CREATE="mujian:ai:openai:responses:create",t.MUJIAN_AI_CHAT_MESSAGE_GET_ALL="mujian:ai:chat:message:getAll",t.MUJIAN_AI_CHAT_MESSAGE_GET_PAGE="mujian:ai:chat:message:getPage",t.MUJIAN_AI_CHAT_PROJECT_GET_INFO="mujian:ai:chat:project:getInfo",t.MUJIAN_AI_SETTINGS_PERSONA_GET_ACTIVE="mujian:ai:settings:persona:getActive",t.MUJIAN_AI_SETTINGS_PERSONA_SET_ACTIVE="mujian:ai:settings:persona:setActive",t.MUJIAN_AI_SETTINGS_MODEL_GET_ALL="mujian:ai:settings:model:getAll",t.MUJIAN_AI_SETTINGS_MODEL_SET_ACTIVE="mujian:ai:settings:model:setActive",t.MUJIAN_AI_SETTINGS_MODEL_GET_ACTIVE="mujian:ai:settings:model:getActive",t.MUJIAN_AI_CHAT_MESSAGE_DELETE_ONE="mujian:ai:chat:message:deleteOne",t.MUJIAN_AI_CHAT_MESSAGE_EDIT_ONE="mujian:ai:chat:message:editOne",t.MUJIAN_AI_CHAT_MESSAGE_SWIPE="mujian:ai:chat:message:swipe",t.MUJIAN_AI_CHAT_MESSAGE_GET_PROMPT="mujian:ai:chat:message:getPrompt",t.MUJIAN_AI_OPENAI_IMAGES_GENERATE="mujian:ai:openai:images:generate",t.MUJIAN_UTILS_CLIPBOARD_WRITE_TEXT="mujian:utils:clipboard:writeText",t.MUJIAN_GET_CONFIG="mujian:getConfig",t);let _=async function(t,e,i,n={}){let a,s,r,o;await this.call(u.MUJIAN_AI_CHAT_COMPLETE,{content:t},{onData:n.parseContent?(a="",s="",function(t){let i=(s+=t).split("\n");for(let t of(s=i.pop()||"",i))if(t.startsWith("data: "))try{let i=JSON.parse(t.slice(6));if(i.question_id&&(r=i.question_id),i.reply_id&&(o=i.reply_id),i.isFinished)return void e({isFinished:!0,deltaContent:"",fullContent:a,questionId:r,replyId:o});let n=i?.choices?.[0]?.delta?.content;n?.length>0&&(a+=n,e({isFinished:!1,deltaContent:n,fullContent:a,questionId:r,replyId:o}))}catch(t){e({isFinished:!0,error:t,deltaContent:"",fullContent:a,questionId:r,replyId:o});return}}):e,signal:i})},A=async function(t){return await this.call(u.MUJIAN_AI_CHAT_APPLY_REGEX,t)},m=async function(t){return await this.call(u.MUJIAN_AI_CHAT_RENDER_MESSAGE,t)},p=async function(t,e){return await this.call(u.MUJIAN_AI_CHAT_COMPLETE,{isContinue:!0},{onData:t,signal:e})},E=async function(t,e){return await this.call(u.MUJIAN_AI_CHAT_COMPLETE,{isRegenerate:!0},{onData:t,signal:e})},I=async function(){return await this.call(u.MUJIAN_AI_CHAT_MESSAGE_GET_ALL)},g=async function(t){return await this.call(u.MUJIAN_AI_CHAT_MESSAGE_DELETE_ONE,{messageId:t})},f=async function(t,e){return await this.call(u.MUJIAN_AI_CHAT_MESSAGE_EDIT_ONE,{messageId:t,content:e})},T=async function(t,e){return await this.call(u.MUJIAN_AI_CHAT_MESSAGE_SWIPE,{messageId:t,swipeId:e})},M=async function(t){return await this.call(u.MUJIAN_AI_CHAT_MESSAGE_GET_PROMPT,{messageId:t})};async function y(t,e){return await this.call(u.MUJIAN_AI_CHAT_MESSAGE_GET_PAGE,{fromCursor:t,pageSize:e})}let N=async function(){return await this.call(u.MUJIAN_AI_CHAT_PROJECT_GET_INFO)},C=async function(){return await this.call(u.MUJIAN_AI_SETTINGS_PERSONA_GET_ACTIVE)},w=async function(t){return await this.call(u.MUJIAN_AI_SETTINGS_PERSONA_SET_ACTIVE,{personaId:t})},S=async function(){return await this.call(u.MUJIAN_AI_SETTINGS_MODEL_GET_ACTIVE)},b=async function(t){return await this.call(u.MUJIAN_AI_SETTINGS_MODEL_SET_ACTIVE,{modelId:t})},v=async function(){return await this.call(u.MUJIAN_AI_SETTINGS_MODEL_GET_ALL)};async function O(){return await this.call(u.MUJIAN_GET_CONFIG)}let j=async function(){},P=async function(){};async function J(t){return await this.call(u.MUJIAN_UTILS_CLIPBOARD_WRITE_TEXT,t)}let G={i(...t){console.log("[MujianSDK] ",...t)},e(...t){console.error("[MujianSDK] ",...t)}};class U{constructor(){}static EVENT=u;static getInstance(){return window.$mujian||(window.$mujian=new U),window.$mujian}parent=null;ready=!1;get isReady(){return this.ready}pendingRequests=new Map;_config;get config(){return this._config}async init(){let t=new h.Model({reply:({id:t,complete:e,data:i,error:n})=>{let a=this.pendingRequests.get(t);if(a){if(n){a.reject(n),this.pendingRequests.delete(t);return}a.onData?.(i),e&&(a.onComplete?.(),a.resolve(i),this.pendingRequests.delete(t))}}});try{let e=await t;this.ready=!0,this.parent=e,G.i("mujian sdk client init"),await this.call(u.MUJIAN_INIT);let i=await this.ai.chat.project.getInfo();if(i.config?.customCss){let t=document.createElement("style");t.setAttribute("type","text/css"),t.setAttribute("id","mujian-custom-css"),t.textContent=i.config.customCss,document.head.appendChild(t)}if(i.config?.customJs){let t=document.createElement("script");t.setAttribute("type","text/javascript"),t.setAttribute("id","mujian-custom-js"),t.textContent=i.config.customJs,document.head.appendChild(t)}let n=await O.call(this);n&&(this._config=n)}catch(t){G.e("init error",t)}}emit(t,e){if(!this.ready)throw Error("Mujian is not initialized");this.parent?.emit(t,e)}nextCallId=0;getCallId(){let t=this.nextCallId;return this.nextCallId+=1,t}async call(t,e,i){if(!this.ready)throw Error("Mujian is not initialized");let n=this.getCallId();return new Promise((a,s)=>{this.pendingRequests.set(n,{resolve:a,reject:s,...i}),this.emit(t,{id:n,data:e}),i?.signal?.addEventListener("abort",()=>{this.emit(u.MUJIAN_AI_CHAT_STOP,{id:n})})})}ai={chat:{project:{getInfo:N.bind(this)},settings:{model:{getAll:v.bind(this),getActive:S.bind(this),setActive:b.bind(this)},persona:{getActive:C.bind(this),setActive:w.bind(this)}},complete:_.bind(this),applyRegex:A.bind(this),renderMessage:m.bind(this),continue:p.bind(this),regenerate:E.bind(this),message:{getAll:I.bind(this),deleteOne:g.bind(this),editOne:f.bind(this),swipe:T.bind(this),getPrompt:M.bind(this),getPage:y.bind(this)}},text:{complete:R.bind(this)},openai:{completions:{create:H.create.bind(this)},chat:{completions:{create:L.completions.create.bind(this)}},responses:{create:x.create.bind(this)},images:{generate:D.generate.bind(this)}}};ui={};utils={clipboard:{writeText:J.bind(this)}};hybrid={};player={};game={assets:()=>{console.log("assets")},saves:{saveGame:j.bind(this),loadGame:P.bind(this)},ranking:()=>{console.log("ranking")}}}let R=async function(t){return await this.call(U.EVENT.MUJIAN_AI_TEXT_GENERATE,{content:t})},L={completions:{create:async function(t,e,i,n){return await this.call(U.EVENT.MUJIAN_AI_OPENAI_CHAT_COMPLETIONS_CREATE,{params:t,options:e},{onData:i,signal:n})}}},H={create:async function(t,e,i,n){return await this.call(U.EVENT.MUJIAN_AI_OPENAI_COMPLETIONS_CREATE,{params:t,options:e},{onData:i,signal:n})}},x={create:async function(t,e,i,n){return await this.call(U.EVENT.MUJIAN_AI_OPENAI_RESPONSES_CREATE,{params:t,options:e},{onData:i,signal:n})}},D={generate:async function(t,e,i,n){return await this.call(U.EVENT.MUJIAN_AI_OPENAI_IMAGES_GENERATE,{params:t,options:e},{onData:i,signal:n})}};class k{constructor(){}static EVENT=u;static getInstance(){return window.$mujian||(window.$mujian=new k),window.$mujian}parent=null;ready=!1;get isReady(){return this.ready}pendingRequests=new Map;_config;get config(){return this._config}async init(){let t=new h.Model({reply:({id:t,complete:e,data:i,error:n})=>{let a=this.pendingRequests.get(t);if(a){if(n){a.reject(n),this.pendingRequests.delete(t);return}a.onData?.(i),e&&(a.onComplete?.(),a.resolve(i),this.pendingRequests.delete(t))}}});try{let e=await t;this.ready=!0,this.parent=e,G.i("mujian sdk client init"),await this.call(u.MUJIAN_INIT);let i=await this.ai.chat.project.getInfo();if(i.config?.customCss){let t=document.createElement("style");t.setAttribute("type","text/css"),t.setAttribute("id","mujian-custom-css"),t.textContent=i.config.customCss,document.head.appendChild(t)}if(i.config?.customJs){let t=document.createElement("script");t.setAttribute("type","text/javascript"),t.setAttribute("id","mujian-custom-js"),t.textContent=i.config.customJs,document.head.appendChild(t)}let n=await O.call(this);n&&(this._config=n)}catch(t){G.e("init error",t)}}emit(t,e){if(!this.ready)throw Error("Mujian is not initialized");this.parent?.emit(t,e)}nextCallId=0;getCallId(){let t=this.nextCallId;return this.nextCallId+=1,t}async call(t,e,i){if(!this.ready)throw Error("Mujian is not initialized");let n=this.getCallId();return new Promise((a,s)=>{this.pendingRequests.set(n,{resolve:a,reject:s,...i}),this.emit(t,{id:n,data:e}),i?.signal?.addEventListener("abort",()=>{this.emit(u.MUJIAN_AI_CHAT_STOP,{id:n})})})}ai={chat:{project:{getInfo:N.bind(this)},settings:{model:{getAll:v.bind(this),getActive:S.bind(this),setActive:b.bind(this)},persona:{getActive:C.bind(this),setActive:w.bind(this)}},complete:_.bind(this),applyRegex:A.bind(this),renderMessage:m.bind(this),continue:p.bind(this),regenerate:E.bind(this),message:{getAll:I.bind(this),deleteOne:g.bind(this),editOne:f.bind(this),swipe:T.bind(this),getPrompt:M.bind(this),getPage:y.bind(this)}},text:{complete:R.bind(this)},openai:{completions:{create:H.create.bind(this)},chat:{completions:{create:L.completions.create.bind(this)}},responses:{create:x.create.bind(this)},images:{generate:D.generate.bind(this)}}};ui={};utils={clipboard:{writeText:J.bind(this)}};hybrid={};player={};game={assets:()=>{console.log("assets")},saves:{saveGame:j.bind(this),loadGame:P.bind(this)},ranking:()=>{console.log("ranking")}}}return i})());
|
|
2
|
+
!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.MujianUMD=e():t.MujianUMD=e()}(globalThis,()=>(()=>{"use strict";var t,e={};e.d=(t,i)=>{for(var n in i)e.o(i,n)&&!e.o(t,n)&&Object.defineProperty(t,n,{enumerable:!0,get:i[n]})},e.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),e.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};var i={};e.r(i),e.d(i,{MujianSdk:()=>k,EVENT:()=>u});var n="application/x-postmate-v1+json",a=0,s=function(t){var e=document.createElement("a");e.href=t;var i=e.protocol.length>4?e.protocol:window.location.protocol,n=e.host.length?"80"===e.port||"443"===e.port?e.hostname:e.host:window.location.host;return e.origin||i+"//"+n},r={handshake:1,"handshake-reply":1,call:1,emit:1,reply:1,request:1},o=function(t,e){return("string"!=typeof e||t.origin===e)&&!!t.data&&("object"!=typeof t.data||"postmate"in t.data)&&t.data.type===n&&!!r[t.data.postmate]},c=function(t,e){var i="function"==typeof t[e]?t[e]():t[e];return h.Promise.resolve(i)},l=function(){function t(t){var e=this;this.parent=t.parent,this.frame=t.frame,this.child=t.child,this.childOrigin=t.childOrigin,this.events={},this.listener=function(t){if(!o(t,e.childOrigin))return!1;var i=((t||{}).data||{}).value||{},n=i.data,a=i.name;"emit"===t.data.postmate&&a in e.events&&e.events[a].call(e,n)},this.parent.addEventListener("message",this.listener,!1)}var e=t.prototype;return e.get=function(t){var e=this;return new h.Promise(function(i){var s=++a;e.parent.addEventListener("message",function t(n){n.data.uid===s&&"reply"===n.data.postmate&&(e.parent.removeEventListener("message",t,!1),i(n.data.value))},!1),e.child.postMessage({postmate:"request",type:n,property:t,uid:s},e.childOrigin)})},e.call=function(t,e){this.child.postMessage({postmate:"call",type:n,property:t,data:e},this.childOrigin)},e.on=function(t,e){this.events[t]=e},e.destroy=function(){window.removeEventListener("message",this.listener,!1),this.frame.parentNode.removeChild(this.frame)},t}(),d=function(){function t(t){var e=this;this.model=t.model,this.parent=t.parent,this.parentOrigin=t.parentOrigin,this.child=t.child,this.child.addEventListener("message",function(t){if(o(t,e.parentOrigin)){var i=t.data,a=i.property,s=i.uid,r=i.data;if("call"===t.data.postmate){a in e.model&&"function"==typeof e.model[a]&&e.model[a](r);return}c(e.model,a).then(function(e){return t.source.postMessage({property:a,postmate:"reply",type:n,uid:s,value:e},t.origin)})}})}return t.prototype.emit=function(t,e){this.parent.postMessage({postmate:"emit",type:n,value:{name:t,data:e}},this.parentOrigin)},t}(),h=function(){function t(t){var e=t.container,i=void 0===e?void 0!==i?i:document.body:e,n=t.model,a=t.url,s=t.name,r=t.classListArray;return this.parent=window,this.frame=document.createElement("iframe"),this.frame.name=s||"",this.frame.classList.add.apply(this.frame.classList,void 0===r?[]:r),i.appendChild(this.frame),this.child=this.frame.contentWindow||this.frame.contentDocument.parentWindow,this.model=n||{},this.sendHandshake(a)}return t.prototype.sendHandshake=function(e){var i,a=this,r=s(e),c=0;return new t.Promise(function(t,s){a.parent.addEventListener("message",function e(n){return!!o(n,r)&&("handshake-reply"===n.data.postmate?(clearInterval(i),a.parent.removeEventListener("message",e,!1),a.childOrigin=n.origin,t(new l(a))):s("Failed handshake"))},!1);var d=function(){c++,a.child.postMessage({postmate:"handshake",type:n,model:a.model},r),5===c&&clearInterval(i)},h=function(){d(),i=setInterval(d,500)};a.frame.attachEvent?a.frame.attachEvent("onload",h):a.frame.onload=h,a.frame.src=e})},t}();h.debug=!1,h.Promise=function(){try{return window?window.Promise:Promise}catch(t){return null}}(),h.Model=function(){function t(t){return this.child=window,this.model=t,this.parent=this.child.parent,this.sendHandshakeReply()}return t.prototype.sendHandshakeReply=function(){var t=this;return new h.Promise(function(e,i){t.child.addEventListener("message",function a(s){if(s.data.postmate){if("handshake"===s.data.postmate){t.child.removeEventListener("message",a,!1),s.source.postMessage({postmate:"handshake-reply",type:n},s.origin),t.parentOrigin=s.origin;var r=s.data.model;return r&&Object.keys(r).forEach(function(e){t.model[e]=r[e]}),e(new d(t))}return i("Handshake Reply Failed")}},!1)})},t}();var u=((t={}).MUJIAN_INIT="mujian:init",t.MUJIAN_AI_CHAT_STOP="mujian:ai:chat:stop",t.MUJIAN_AI_CHAT_COMPLETE="mujian:ai:chat:complete",t.MUJIAN_AI_CHAT_APPLY_REGEX="mujian:ai:chat:applyRegex",t.MUJIAN_AI_CHAT_RENDER_MESSAGE="mujian:ai:chat:renderMessage",t.MUJIAN_AI_TEXT_GENERATE="mujian:ai:text:generate",t.MUJIAN_AI_OPENAI_COMPLETIONS_CREATE="mujian:ai:openai:completions:create",t.MUJIAN_AI_OPENAI_CHAT_COMPLETIONS_CREATE="mujian:ai:openai:chat:completions:create",t.MUJIAN_AI_OPENAI_RESPONSES_CREATE="mujian:ai:openai:responses:create",t.MUJIAN_AI_CHAT_MESSAGE_GET_ALL="mujian:ai:chat:message:getAll",t.MUJIAN_AI_CHAT_MESSAGE_GET_PAGE="mujian:ai:chat:message:getPage",t.MUJIAN_AI_CHAT_PROJECT_GET_INFO="mujian:ai:chat:project:getInfo",t.MUJIAN_AI_SETTINGS_PERSONA_GET_ACTIVE="mujian:ai:settings:persona:getActive",t.MUJIAN_AI_SETTINGS_PERSONA_SET_ACTIVE="mujian:ai:settings:persona:setActive",t.MUJIAN_AI_SETTINGS_MODEL_GET_ALL="mujian:ai:settings:model:getAll",t.MUJIAN_AI_SETTINGS_MODEL_SET_ACTIVE="mujian:ai:settings:model:setActive",t.MUJIAN_AI_SETTINGS_MODEL_GET_ACTIVE="mujian:ai:settings:model:getActive",t.MUJIAN_AI_CHAT_MESSAGE_DELETE_ONE="mujian:ai:chat:message:deleteOne",t.MUJIAN_AI_CHAT_MESSAGE_EDIT_ONE="mujian:ai:chat:message:editOne",t.MUJIAN_AI_CHAT_MESSAGE_SWIPE="mujian:ai:chat:message:swipe",t.MUJIAN_AI_CHAT_MESSAGE_GET_PROMPT="mujian:ai:chat:message:getPrompt",t.MUJIAN_AI_OPENAI_IMAGES_GENERATE="mujian:ai:openai:images:generate",t.MUJIAN_UTILS_CLIPBOARD_WRITE_TEXT="mujian:utils:clipboard:writeText",t.MUJIAN_GET_CONFIG="mujian:getConfig",t);let _=async function(t,e,i,n={}){let a,s,r,o;await this.call(u.MUJIAN_AI_CHAT_COMPLETE,{content:t},{onData:n.parseContent?(a="",s="",function(t){let i=(s+=t).split("\n");for(let t of(s=i.pop()||"",i))if(t.startsWith("data: "))try{let i=JSON.parse(t.slice(6));if(i.question_id&&(r=i.question_id),i.reply_id&&(o=i.reply_id),i.isFinished)return void e({isFinished:!0,deltaContent:"",fullContent:a,questionId:r,replyId:o});let n=i?.choices?.[0]?.delta?.content;n?.length>0&&(a+=n,e({isFinished:!1,deltaContent:n,fullContent:a,questionId:r,replyId:o}))}catch(t){e({isFinished:!0,error:t,deltaContent:"",fullContent:a,questionId:r,replyId:o});return}}):e,signal:i})},A=async function(t){return await this.call(u.MUJIAN_AI_CHAT_APPLY_REGEX,t)},m=async function(t){return await this.call(u.MUJIAN_AI_CHAT_RENDER_MESSAGE,t)},p=async function(t,e){return await this.call(u.MUJIAN_AI_CHAT_COMPLETE,{isContinue:!0},{onData:t,signal:e})},E=async function(t,e){return await this.call(u.MUJIAN_AI_CHAT_COMPLETE,{isRegenerate:!0},{onData:t,signal:e})},I=async function(){return await this.call(u.MUJIAN_AI_CHAT_MESSAGE_GET_ALL)},g=async function(t){return await this.call(u.MUJIAN_AI_CHAT_MESSAGE_DELETE_ONE,{messageId:t})},f=async function(t,e){return await this.call(u.MUJIAN_AI_CHAT_MESSAGE_EDIT_ONE,{messageId:t,content:e})},T=async function(t,e){return await this.call(u.MUJIAN_AI_CHAT_MESSAGE_SWIPE,{messageId:t,swipeId:e})},y=async function(t){return await this.call(u.MUJIAN_AI_CHAT_MESSAGE_GET_PROMPT,{messageId:t})};async function M(t,e){return await this.call(u.MUJIAN_AI_CHAT_MESSAGE_GET_PAGE,{fromCursor:t,pageSize:e})}let N=async function(){return await this.call(u.MUJIAN_AI_CHAT_PROJECT_GET_INFO)},C=async function(){return await this.call(u.MUJIAN_AI_SETTINGS_PERSONA_GET_ACTIVE)},w=async function(t){return await this.call(u.MUJIAN_AI_SETTINGS_PERSONA_SET_ACTIVE,{personaId:t})},S=async function(){return await this.call(u.MUJIAN_AI_SETTINGS_MODEL_GET_ACTIVE)},b=async function(t){return await this.call(u.MUJIAN_AI_SETTINGS_MODEL_SET_ACTIVE,{modelId:t})},v=async function(){return await this.call(u.MUJIAN_AI_SETTINGS_MODEL_GET_ALL)};async function O(){return await this.call(u.MUJIAN_GET_CONFIG)}let P=async function(){},j=async function(){};async function J(t){return await this.call(u.MUJIAN_UTILS_CLIPBOARD_WRITE_TEXT,t)}let G={i(...t){console.log("[MujianSDK] ",...t)},e(...t){console.error("[MujianSDK] ",...t)}};class U{constructor(){}static EVENT=u;static getInstance(){return window.$mujian||(window.$mujian=new U),window.$mujian}parent=null;ready=!1;get isReady(){return this.ready}pendingRequests=new Map;_config;get openapi(){return this._config?.openapi}initPromise=null;async init(){return this.initPromise||(this.initPromise=(async()=>{let t=new h.Model({reply:({id:t,complete:e,data:i,error:n})=>{let a=this.pendingRequests.get(t);if(a){if(n){a.reject(n),this.pendingRequests.delete(t);return}a.onData?.(i),e&&(a.onComplete?.(),a.resolve(i),this.pendingRequests.delete(t))}}});try{let e=await t;this.ready=!0,this.parent=e,G.i("mujian sdk client init"),await this.call(u.MUJIAN_INIT);let i=await this.ai.chat.project.getInfo();if(i.config?.customCss){let t=document.createElement("style");t.setAttribute("type","text/css"),t.setAttribute("id","mujian-custom-css"),t.textContent=i.config.customCss,document.head.appendChild(t)}if(i.config?.customJs){let t=document.createElement("script");t.setAttribute("type","text/javascript"),t.setAttribute("id","mujian-custom-js"),t.textContent=i.config.customJs,document.head.appendChild(t)}let n=await O.call(this);n&&(this._config=n)}catch(t){G.e("init error",t)}})()),this.initPromise}emit(t,e){if(!this.ready)throw Error("Mujian is not initialized");this.parent?.emit(t,e)}nextCallId=0;getCallId(){let t=this.nextCallId;return this.nextCallId+=1,t}async call(t,e,i){if(!this.ready)throw Error("Mujian is not initialized");let n=this.getCallId();return new Promise((a,s)=>{this.pendingRequests.set(n,{resolve:a,reject:s,...i}),this.emit(t,{id:n,data:e}),i?.signal?.addEventListener("abort",()=>{this.emit(u.MUJIAN_AI_CHAT_STOP,{id:n})})})}ai={chat:{project:{getInfo:N.bind(this)},settings:{model:{getAll:v.bind(this),getActive:S.bind(this),setActive:b.bind(this)},persona:{getActive:C.bind(this),setActive:w.bind(this)}},complete:_.bind(this),applyRegex:A.bind(this),renderMessage:m.bind(this),continue:p.bind(this),regenerate:E.bind(this),message:{getAll:I.bind(this),deleteOne:g.bind(this),editOne:f.bind(this),swipe:T.bind(this),getPrompt:y.bind(this),getPage:M.bind(this)}},text:{complete:R.bind(this)},openai:{completions:{create:H.create.bind(this)},chat:{completions:{create:L.completions.create.bind(this)}},responses:{create:x.create.bind(this)},images:{generate:D.generate.bind(this)}}};ui={};utils={clipboard:{writeText:J.bind(this)}};hybrid={};player={};game={assets:()=>{console.log("assets")},saves:{saveGame:P.bind(this),loadGame:j.bind(this)},ranking:()=>{console.log("ranking")}}}let R=async function(t){return await this.call(U.EVENT.MUJIAN_AI_TEXT_GENERATE,{content:t})},L={completions:{create:async function(t,e,i,n){return await this.call(U.EVENT.MUJIAN_AI_OPENAI_CHAT_COMPLETIONS_CREATE,{params:t,options:e},{onData:i,signal:n})}}},H={create:async function(t,e,i,n){return await this.call(U.EVENT.MUJIAN_AI_OPENAI_COMPLETIONS_CREATE,{params:t,options:e},{onData:i,signal:n})}},x={create:async function(t,e,i,n){return await this.call(U.EVENT.MUJIAN_AI_OPENAI_RESPONSES_CREATE,{params:t,options:e},{onData:i,signal:n})}},D={generate:async function(t,e,i,n){return await this.call(U.EVENT.MUJIAN_AI_OPENAI_IMAGES_GENERATE,{params:t,options:e},{onData:i,signal:n})}};class k{constructor(){}static EVENT=u;static getInstance(){return window.$mujian||(window.$mujian=new k),window.$mujian}parent=null;ready=!1;get isReady(){return this.ready}pendingRequests=new Map;_config;get openapi(){return this._config?.openapi}initPromise=null;async init(){return this.initPromise||(this.initPromise=(async()=>{let t=new h.Model({reply:({id:t,complete:e,data:i,error:n})=>{let a=this.pendingRequests.get(t);if(a){if(n){a.reject(n),this.pendingRequests.delete(t);return}a.onData?.(i),e&&(a.onComplete?.(),a.resolve(i),this.pendingRequests.delete(t))}}});try{let e=await t;this.ready=!0,this.parent=e,G.i("mujian sdk client init"),await this.call(u.MUJIAN_INIT);let i=await this.ai.chat.project.getInfo();if(i.config?.customCss){let t=document.createElement("style");t.setAttribute("type","text/css"),t.setAttribute("id","mujian-custom-css"),t.textContent=i.config.customCss,document.head.appendChild(t)}if(i.config?.customJs){let t=document.createElement("script");t.setAttribute("type","text/javascript"),t.setAttribute("id","mujian-custom-js"),t.textContent=i.config.customJs,document.head.appendChild(t)}let n=await O.call(this);n&&(this._config=n)}catch(t){G.e("init error",t)}})()),this.initPromise}emit(t,e){if(!this.ready)throw Error("Mujian is not initialized");this.parent?.emit(t,e)}nextCallId=0;getCallId(){let t=this.nextCallId;return this.nextCallId+=1,t}async call(t,e,i){if(!this.ready)throw Error("Mujian is not initialized");let n=this.getCallId();return new Promise((a,s)=>{this.pendingRequests.set(n,{resolve:a,reject:s,...i}),this.emit(t,{id:n,data:e}),i?.signal?.addEventListener("abort",()=>{this.emit(u.MUJIAN_AI_CHAT_STOP,{id:n})})})}ai={chat:{project:{getInfo:N.bind(this)},settings:{model:{getAll:v.bind(this),getActive:S.bind(this),setActive:b.bind(this)},persona:{getActive:C.bind(this),setActive:w.bind(this)}},complete:_.bind(this),applyRegex:A.bind(this),renderMessage:m.bind(this),continue:p.bind(this),regenerate:E.bind(this),message:{getAll:I.bind(this),deleteOne:g.bind(this),editOne:f.bind(this),swipe:T.bind(this),getPrompt:y.bind(this),getPage:M.bind(this)}},text:{complete:R.bind(this)},openai:{completions:{create:H.create.bind(this)},chat:{completions:{create:L.completions.create.bind(this)}},responses:{create:x.create.bind(this)},images:{generate:D.generate.bind(this)}}};ui={};utils={clipboard:{writeText:J.bind(this)}};hybrid={};player={};game={assets:()=>{console.log("assets")},saves:{saveGame:P.bind(this),loadGame:j.bind(this)},ranking:()=>{console.log("ranking")}}}return i})());
|
package/dist/umd/lite.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/*! For license information please see lite.js.LICENSE.txt */
|
|
2
|
-
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.MujianLite=t():e.MujianLite=t()}(globalThis,()=>(()=>{"use strict";var e,t={};t.d=(e,i)=>{for(var n in i)t.o(i,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:i[n]})},t.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),t.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var i={};t.r(i),t.d(i,{EVENT:()=>u,default:()=>_});var n="application/x-postmate-v1+json",a=0,r=function(e){var t=document.createElement("a");t.href=e;var i=t.protocol.length>4?t.protocol:window.location.protocol,n=t.host.length?"80"===t.port||"443"===t.port?t.hostname:t.host:window.location.host;return t.origin||i+"//"+n},s={handshake:1,"handshake-reply":1,call:1,emit:1,reply:1,request:1},o=function(e,t){return("string"!=typeof t||e.origin===t)&&!!e.data&&("object"!=typeof e.data||"postmate"in e.data)&&e.data.type===n&&!!s[e.data.postmate]},d=function(e,t){var i="function"==typeof e[t]?e[t]():e[t];return m.Promise.resolve(i)},l=function(){function e(e){var t=this;this.parent=e.parent,this.frame=e.frame,this.child=e.child,this.childOrigin=e.childOrigin,this.events={},this.listener=function(e){if(!o(e,t.childOrigin))return!1;var i=((e||{}).data||{}).value||{},n=i.data,a=i.name;"emit"===e.data.postmate&&a in t.events&&t.events[a].call(t,n)},this.parent.addEventListener("message",this.listener,!1)}var t=e.prototype;return t.get=function(e){var t=this;return new m.Promise(function(i){var r=++a;t.parent.addEventListener("message",function e(n){n.data.uid===r&&"reply"===n.data.postmate&&(t.parent.removeEventListener("message",e,!1),i(n.data.value))},!1),t.child.postMessage({postmate:"request",type:n,property:e,uid:r},t.childOrigin)})},t.call=function(e,t){this.child.postMessage({postmate:"call",type:n,property:e,data:t},this.childOrigin)},t.on=function(e,t){this.events[e]=t},t.destroy=function(){window.removeEventListener("message",this.listener,!1),this.frame.parentNode.removeChild(this.frame)},e}(),c=function(){function e(e){var t=this;this.model=e.model,this.parent=e.parent,this.parentOrigin=e.parentOrigin,this.child=e.child,this.child.addEventListener("message",function(e){if(o(e,t.parentOrigin)){var i=e.data,a=i.property,r=i.uid,s=i.data;if("call"===e.data.postmate){a in t.model&&"function"==typeof t.model[a]&&t.model[a](s);return}d(t.model,a).then(function(t){return e.source.postMessage({property:a,postmate:"reply",type:n,uid:r,value:t},e.origin)})}})}return e.prototype.emit=function(e,t){this.parent.postMessage({postmate:"emit",type:n,value:{name:e,data:t}},this.parentOrigin)},e}(),m=function(){function e(e){var t=e.container,i=void 0===t?void 0!==i?i:document.body:t,n=e.model,a=e.url,r=e.name,s=e.classListArray;return this.parent=window,this.frame=document.createElement("iframe"),this.frame.name=r||"",this.frame.classList.add.apply(this.frame.classList,void 0===s?[]:s),i.appendChild(this.frame),this.child=this.frame.contentWindow||this.frame.contentDocument.parentWindow,this.model=n||{},this.sendHandshake(a)}return e.prototype.sendHandshake=function(t){var i,a=this,s=r(t),d=0;return new e.Promise(function(e,r){a.parent.addEventListener("message",function t(n){return!!o(n,s)&&("handshake-reply"===n.data.postmate?(clearInterval(i),a.parent.removeEventListener("message",t,!1),a.childOrigin=n.origin,e(new l(a))):r("Failed handshake"))},!1);var c=function(){d++,a.child.postMessage({postmate:"handshake",type:n,model:a.model},s),5===d&&clearInterval(i)},m=function(){c(),i=setInterval(c,500)};a.frame.attachEvent?a.frame.attachEvent("onload",m):a.frame.onload=m,a.frame.src=t})},e}();m.debug=!1,m.Promise=function(){try{return window?window.Promise:Promise}catch(e){return null}}(),m.Model=function(){function e(e){return this.child=window,this.model=e,this.parent=this.child.parent,this.sendHandshakeReply()}return e.prototype.sendHandshakeReply=function(){var e=this;return new m.Promise(function(t,i){e.child.addEventListener("message",function a(r){if(r.data.postmate){if("handshake"===r.data.postmate){e.child.removeEventListener("message",a,!1),r.source.postMessage({postmate:"handshake-reply",type:n},r.origin),e.parentOrigin=r.origin;var s=r.data.model;return s&&Object.keys(s).forEach(function(t){e.model[t]=s[t]}),t(new c(e))}return i("Handshake Reply Failed")}},!1)})},e}();var u=((e={}).MUJIAN_INIT="mujian:init",e.MUJIAN_AI_CHAT_STOP="mujian:ai:chat:stop",e.MUJIAN_AI_CHAT_COMPLETE="mujian:ai:chat:complete",e.MUJIAN_AI_CHAT_APPLY_REGEX="mujian:ai:chat:applyRegex",e.MUJIAN_AI_CHAT_RENDER_MESSAGE="mujian:ai:chat:renderMessage",e.MUJIAN_AI_TEXT_GENERATE="mujian:ai:text:generate",e.MUJIAN_AI_OPENAI_COMPLETIONS_CREATE="mujian:ai:openai:completions:create",e.MUJIAN_AI_OPENAI_CHAT_COMPLETIONS_CREATE="mujian:ai:openai:chat:completions:create",e.MUJIAN_AI_OPENAI_RESPONSES_CREATE="mujian:ai:openai:responses:create",e.MUJIAN_AI_CHAT_MESSAGE_GET_ALL="mujian:ai:chat:message:getAll",e.MUJIAN_AI_CHAT_MESSAGE_GET_PAGE="mujian:ai:chat:message:getPage",e.MUJIAN_AI_CHAT_PROJECT_GET_INFO="mujian:ai:chat:project:getInfo",e.MUJIAN_AI_SETTINGS_PERSONA_GET_ACTIVE="mujian:ai:settings:persona:getActive",e.MUJIAN_AI_SETTINGS_PERSONA_SET_ACTIVE="mujian:ai:settings:persona:setActive",e.MUJIAN_AI_SETTINGS_MODEL_GET_ALL="mujian:ai:settings:model:getAll",e.MUJIAN_AI_SETTINGS_MODEL_SET_ACTIVE="mujian:ai:settings:model:setActive",e.MUJIAN_AI_SETTINGS_MODEL_GET_ACTIVE="mujian:ai:settings:model:getActive",e.MUJIAN_AI_CHAT_MESSAGE_DELETE_ONE="mujian:ai:chat:message:deleteOne",e.MUJIAN_AI_CHAT_MESSAGE_EDIT_ONE="mujian:ai:chat:message:editOne",e.MUJIAN_AI_CHAT_MESSAGE_SWIPE="mujian:ai:chat:message:swipe",e.MUJIAN_AI_CHAT_MESSAGE_GET_PROMPT="mujian:ai:chat:message:getPrompt",e.MUJIAN_AI_OPENAI_IMAGES_GENERATE="mujian:ai:openai:images:generate",e.MUJIAN_UTILS_CLIPBOARD_WRITE_TEXT="mujian:utils:clipboard:writeText",e.MUJIAN_GET_CONFIG="mujian:getConfig",e);let
|
|
2
|
+
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.MujianLite=t():e.MujianLite=t()}(globalThis,()=>(()=>{"use strict";var e,t={};t.d=(e,i)=>{for(var n in i)t.o(i,n)&&!t.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:i[n]})},t.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),t.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var i={};t.r(i),t.d(i,{EVENT:()=>u,default:()=>_});var n="application/x-postmate-v1+json",a=0,r=function(e){var t=document.createElement("a");t.href=e;var i=t.protocol.length>4?t.protocol:window.location.protocol,n=t.host.length?"80"===t.port||"443"===t.port?t.hostname:t.host:window.location.host;return t.origin||i+"//"+n},s={handshake:1,"handshake-reply":1,call:1,emit:1,reply:1,request:1},o=function(e,t){return("string"!=typeof t||e.origin===t)&&!!e.data&&("object"!=typeof e.data||"postmate"in e.data)&&e.data.type===n&&!!s[e.data.postmate]},d=function(e,t){var i="function"==typeof e[t]?e[t]():e[t];return m.Promise.resolve(i)},l=function(){function e(e){var t=this;this.parent=e.parent,this.frame=e.frame,this.child=e.child,this.childOrigin=e.childOrigin,this.events={},this.listener=function(e){if(!o(e,t.childOrigin))return!1;var i=((e||{}).data||{}).value||{},n=i.data,a=i.name;"emit"===e.data.postmate&&a in t.events&&t.events[a].call(t,n)},this.parent.addEventListener("message",this.listener,!1)}var t=e.prototype;return t.get=function(e){var t=this;return new m.Promise(function(i){var r=++a;t.parent.addEventListener("message",function e(n){n.data.uid===r&&"reply"===n.data.postmate&&(t.parent.removeEventListener("message",e,!1),i(n.data.value))},!1),t.child.postMessage({postmate:"request",type:n,property:e,uid:r},t.childOrigin)})},t.call=function(e,t){this.child.postMessage({postmate:"call",type:n,property:e,data:t},this.childOrigin)},t.on=function(e,t){this.events[e]=t},t.destroy=function(){window.removeEventListener("message",this.listener,!1),this.frame.parentNode.removeChild(this.frame)},e}(),c=function(){function e(e){var t=this;this.model=e.model,this.parent=e.parent,this.parentOrigin=e.parentOrigin,this.child=e.child,this.child.addEventListener("message",function(e){if(o(e,t.parentOrigin)){var i=e.data,a=i.property,r=i.uid,s=i.data;if("call"===e.data.postmate){a in t.model&&"function"==typeof t.model[a]&&t.model[a](s);return}d(t.model,a).then(function(t){return e.source.postMessage({property:a,postmate:"reply",type:n,uid:r,value:t},e.origin)})}})}return e.prototype.emit=function(e,t){this.parent.postMessage({postmate:"emit",type:n,value:{name:e,data:t}},this.parentOrigin)},e}(),m=function(){function e(e){var t=e.container,i=void 0===t?void 0!==i?i:document.body:t,n=e.model,a=e.url,r=e.name,s=e.classListArray;return this.parent=window,this.frame=document.createElement("iframe"),this.frame.name=r||"",this.frame.classList.add.apply(this.frame.classList,void 0===s?[]:s),i.appendChild(this.frame),this.child=this.frame.contentWindow||this.frame.contentDocument.parentWindow,this.model=n||{},this.sendHandshake(a)}return e.prototype.sendHandshake=function(t){var i,a=this,s=r(t),d=0;return new e.Promise(function(e,r){a.parent.addEventListener("message",function t(n){return!!o(n,s)&&("handshake-reply"===n.data.postmate?(clearInterval(i),a.parent.removeEventListener("message",t,!1),a.childOrigin=n.origin,e(new l(a))):r("Failed handshake"))},!1);var c=function(){d++,a.child.postMessage({postmate:"handshake",type:n,model:a.model},s),5===d&&clearInterval(i)},m=function(){c(),i=setInterval(c,500)};a.frame.attachEvent?a.frame.attachEvent("onload",m):a.frame.onload=m,a.frame.src=t})},e}();m.debug=!1,m.Promise=function(){try{return window?window.Promise:Promise}catch(e){return null}}(),m.Model=function(){function e(e){return this.child=window,this.model=e,this.parent=this.child.parent,this.sendHandshakeReply()}return e.prototype.sendHandshakeReply=function(){var e=this;return new m.Promise(function(t,i){e.child.addEventListener("message",function a(r){if(r.data.postmate){if("handshake"===r.data.postmate){e.child.removeEventListener("message",a,!1),r.source.postMessage({postmate:"handshake-reply",type:n},r.origin),e.parentOrigin=r.origin;var s=r.data.model;return s&&Object.keys(s).forEach(function(t){e.model[t]=s[t]}),t(new c(e))}return i("Handshake Reply Failed")}},!1)})},e}();var u=((e={}).MUJIAN_INIT="mujian:init",e.MUJIAN_AI_CHAT_STOP="mujian:ai:chat:stop",e.MUJIAN_AI_CHAT_COMPLETE="mujian:ai:chat:complete",e.MUJIAN_AI_CHAT_APPLY_REGEX="mujian:ai:chat:applyRegex",e.MUJIAN_AI_CHAT_RENDER_MESSAGE="mujian:ai:chat:renderMessage",e.MUJIAN_AI_TEXT_GENERATE="mujian:ai:text:generate",e.MUJIAN_AI_OPENAI_COMPLETIONS_CREATE="mujian:ai:openai:completions:create",e.MUJIAN_AI_OPENAI_CHAT_COMPLETIONS_CREATE="mujian:ai:openai:chat:completions:create",e.MUJIAN_AI_OPENAI_RESPONSES_CREATE="mujian:ai:openai:responses:create",e.MUJIAN_AI_CHAT_MESSAGE_GET_ALL="mujian:ai:chat:message:getAll",e.MUJIAN_AI_CHAT_MESSAGE_GET_PAGE="mujian:ai:chat:message:getPage",e.MUJIAN_AI_CHAT_PROJECT_GET_INFO="mujian:ai:chat:project:getInfo",e.MUJIAN_AI_SETTINGS_PERSONA_GET_ACTIVE="mujian:ai:settings:persona:getActive",e.MUJIAN_AI_SETTINGS_PERSONA_SET_ACTIVE="mujian:ai:settings:persona:setActive",e.MUJIAN_AI_SETTINGS_MODEL_GET_ALL="mujian:ai:settings:model:getAll",e.MUJIAN_AI_SETTINGS_MODEL_SET_ACTIVE="mujian:ai:settings:model:setActive",e.MUJIAN_AI_SETTINGS_MODEL_GET_ACTIVE="mujian:ai:settings:model:getActive",e.MUJIAN_AI_CHAT_MESSAGE_DELETE_ONE="mujian:ai:chat:message:deleteOne",e.MUJIAN_AI_CHAT_MESSAGE_EDIT_ONE="mujian:ai:chat:message:editOne",e.MUJIAN_AI_CHAT_MESSAGE_SWIPE="mujian:ai:chat:message:swipe",e.MUJIAN_AI_CHAT_MESSAGE_GET_PROMPT="mujian:ai:chat:message:getPrompt",e.MUJIAN_AI_OPENAI_IMAGES_GENERATE="mujian:ai:openai:images:generate",e.MUJIAN_UTILS_CLIPBOARD_WRITE_TEXT="mujian:utils:clipboard:writeText",e.MUJIAN_GET_CONFIG="mujian:getConfig",e);let p={i(...e){console.log("[MujianSDK] ",...e)},e(...e){console.error("[MujianSDK] ",...e)}};class h{constructor(){}static EVENT=u;static getInstance(){return window.$mujian_lite||(window.$mujian_lite=new h),window.$mujian_lite}parent=null;ready=!1;get isReady(){return this.ready}pendingRequests=new Map;_config;get openapi(){return this._config?.openapi}initPromise=null;async init(){return this.initPromise||(this.initPromise=(async()=>{let e=new m.Model({reply:({id:e,complete:t,data:i,error:n})=>{let a=this.pendingRequests.get(e);if(a){if(n){a.reject(n),this.pendingRequests.delete(e);return}a.onData?.(i),t&&(a.onComplete?.(),a.resolve(i),this.pendingRequests.delete(e))}}});try{let t=await e;this.parent=t,this.ready=!0,p.i("mujian sdk lite client init"),await this.call(u.MUJIAN_INIT),this._config=await this.call(u.MUJIAN_GET_CONFIG)}catch(e){throw p.e("init error",e),e}})()),this.initPromise}ensureReady(){if(!this.ready)throw Error("MujianLite is not initialized")}emit(e,t){this.ensureReady(),this.parent?.emit(e,t)}nextCallId=0;getCallId(){let e=this.nextCallId;return this.nextCallId+=1,`lite_${e}`}async call(e,t,i){this.ensureReady();let n=this.getCallId();return new Promise((a,r)=>{this.pendingRequests.set(n,{resolve:a,reject:r,...i}),this.emit(e,{id:n,data:t})})}}h.getInstance().init();let _=h;return i})());
|
package/dist/umd/react.js
CHANGED
|
@@ -130,7 +130,7 @@ ${n}
|
|
|
130
130
|
<iframe id="${c}" class="w-full" sandbox="${t?"allow-scripts":"allow-scripts allow-same-origin"}" loading="lazy"
|
|
131
131
|
referrerpolicy="no-referrer" allowTransparency="true"
|
|
132
132
|
style="color-scheme: none;background-color: transparent;width:100%;;border:none;" srcdoc="`+l.replace(/"/g,""").replace(/'/g,"'")+`"></iframe>
|
|
133
|
-
</div>`}),n.current&&(n.current.innerHTML=d)},[e]),(0,A.useEffect)(()=>{window.addEventListener("message",function(e){if(e.data?.type==="MJ_ADJUST_IFRAME_HEIGHT"&&e.data?.iframe_id){let t=n.current?.querySelector("#"+e.data.iframe_id);t&&(t.style.height=`${e.data.height}px`)}}),window.addEventListener("resize",()=>{d.forEach(e=>{let t=n.current?.querySelector("#MJ-iframe-"+e);t&&t.contentWindow?.postMessage({type:"MJ_UPDATE_VIEWPORT_HEIGHT"},"*")})})},[]),(0,A.useEffect)(()=>(d.forEach(e=>{let t=n.current?.querySelector("#MJ-iframe-"+e);if(!t)return;let r=()=>{let r=t.parentElement?.querySelector("#MJ-spin-"+e);r&&r.remove()},d=setTimeout(r,5e3);t.addEventListener("load",()=>{clearTimeout(d),r()})}),()=>{d.forEach(e=>{let t=n.current?.querySelector("#MJ-iframe-"+e);if(!t)return;let r=t.parentElement?.querySelector("#MJ-spin-"+t.id);r&&r.remove(),t.removeEventListener("load",()=>{tf.i("iframe loaded",t.id)})})}),[d]),(0,ep.jsx)("div",{className:"mes_text",ref:n})},tw=S().memo(tb,(e,t)=>e.content===t.content);tb.displayName="MdRenderer",tw.displayName="MdRenderer";var ty="application/x-postmate-v1+json",tv=0,tk=function(e){var t=document.createElement("a");t.href=e;var r=t.protocol.length>4?t.protocol:window.location.protocol,n=t.host.length?"80"===t.port||"443"===t.port?t.hostname:t.host:window.location.host;return t.origin||r+"//"+n},tE={handshake:1,"handshake-reply":1,call:1,emit:1,reply:1,request:1},tA=function(e,t){return("string"!=typeof t||e.origin===t)&&!!e.data&&("object"!=typeof e.data||"postmate"in e.data)&&e.data.type===ty&&!!tE[e.data.postmate]},tS=function(e,t){var r="function"==typeof e[t]?e[t]():e[t];return tj.Promise.resolve(r)},tT=function(){function e(e){var t=this;this.parent=e.parent,this.frame=e.frame,this.child=e.child,this.childOrigin=e.childOrigin,this.events={},this.listener=function(e){if(!tA(e,t.childOrigin))return!1;var r=((e||{}).data||{}).value||{},n=r.data,d=r.name;"emit"===e.data.postmate&&d in t.events&&t.events[d].call(t,n)},this.parent.addEventListener("message",this.listener,!1)}var t=e.prototype;return t.get=function(e){var t=this;return new tj.Promise(function(r){var n=++tv;t.parent.addEventListener("message",function e(d){d.data.uid===n&&"reply"===d.data.postmate&&(t.parent.removeEventListener("message",e,!1),r(d.data.value))},!1),t.child.postMessage({postmate:"request",type:ty,property:e,uid:n},t.childOrigin)})},t.call=function(e,t){this.child.postMessage({postmate:"call",type:ty,property:e,data:t},this.childOrigin)},t.on=function(e,t){this.events[e]=t},t.destroy=function(){window.removeEventListener("message",this.listener,!1),this.frame.parentNode.removeChild(this.frame)},e}(),tx=function(){function e(e){var t=this;this.model=e.model,this.parent=e.parent,this.parentOrigin=e.parentOrigin,this.child=e.child,this.child.addEventListener("message",function(e){if(tA(e,t.parentOrigin)){var r=e.data,n=r.property,d=r.uid,a=r.data;if("call"===e.data.postmate){n in t.model&&"function"==typeof t.model[n]&&t.model[n](a);return}tS(t.model,n).then(function(t){return e.source.postMessage({property:n,postmate:"reply",type:ty,uid:d,value:t},e.origin)})}})}return e.prototype.emit=function(e,t){this.parent.postMessage({postmate:"emit",type:ty,value:{name:e,data:t}},this.parentOrigin)},e}(),tj=function(){function e(e){var t=e.container,r=void 0===t?void 0!==r?r:document.body:t,n=e.model,d=e.url,a=e.name,i=e.classListArray;return this.parent=window,this.frame=document.createElement("iframe"),this.frame.name=a||"",this.frame.classList.add.apply(this.frame.classList,void 0===i?[]:i),r.appendChild(this.frame),this.child=this.frame.contentWindow||this.frame.contentDocument.parentWindow,this.model=n||{},this.sendHandshake(d)}return e.prototype.sendHandshake=function(t){var r,n=this,d=tk(t),a=0;return new e.Promise(function(e,i){n.parent.addEventListener("message",function t(a){return!!tA(a,d)&&("handshake-reply"===a.data.postmate?(clearInterval(r),n.parent.removeEventListener("message",t,!1),n.childOrigin=a.origin,e(new tT(n))):i("Failed handshake"))},!1);var u=function(){a++,n.child.postMessage({postmate:"handshake",type:ty,model:n.model},d),5===a&&clearInterval(r)},o=function(){u(),r=setInterval(u,500)};n.frame.attachEvent?n.frame.attachEvent("onload",o):n.frame.onload=o,n.frame.src=t})},e}();tj.debug=!1,tj.Promise=function(){try{return window?window.Promise:Promise}catch(e){return null}}(),tj.Model=function(){function e(e){return this.child=window,this.model=e,this.parent=this.child.parent,this.sendHandshakeReply()}return e.prototype.sendHandshakeReply=function(){var e=this;return new tj.Promise(function(t,r){e.child.addEventListener("message",function n(d){if(d.data.postmate){if("handshake"===d.data.postmate){e.child.removeEventListener("message",n,!1),d.source.postMessage({postmate:"handshake-reply",type:ty},d.origin),e.parentOrigin=d.origin;var a=d.data.model;return a&&Object.keys(a).forEach(function(t){e.model[t]=a[t]}),t(new tx(e))}return r("Handshake Reply Failed")}},!1)})},e}();var tM=((p={}).MUJIAN_INIT="mujian:init",p.MUJIAN_AI_CHAT_STOP="mujian:ai:chat:stop",p.MUJIAN_AI_CHAT_COMPLETE="mujian:ai:chat:complete",p.MUJIAN_AI_CHAT_APPLY_REGEX="mujian:ai:chat:applyRegex",p.MUJIAN_AI_CHAT_RENDER_MESSAGE="mujian:ai:chat:renderMessage",p.MUJIAN_AI_TEXT_GENERATE="mujian:ai:text:generate",p.MUJIAN_AI_OPENAI_COMPLETIONS_CREATE="mujian:ai:openai:completions:create",p.MUJIAN_AI_OPENAI_CHAT_COMPLETIONS_CREATE="mujian:ai:openai:chat:completions:create",p.MUJIAN_AI_OPENAI_RESPONSES_CREATE="mujian:ai:openai:responses:create",p.MUJIAN_AI_CHAT_MESSAGE_GET_ALL="mujian:ai:chat:message:getAll",p.MUJIAN_AI_CHAT_MESSAGE_GET_PAGE="mujian:ai:chat:message:getPage",p.MUJIAN_AI_CHAT_PROJECT_GET_INFO="mujian:ai:chat:project:getInfo",p.MUJIAN_AI_SETTINGS_PERSONA_GET_ACTIVE="mujian:ai:settings:persona:getActive",p.MUJIAN_AI_SETTINGS_PERSONA_SET_ACTIVE="mujian:ai:settings:persona:setActive",p.MUJIAN_AI_SETTINGS_MODEL_GET_ALL="mujian:ai:settings:model:getAll",p.MUJIAN_AI_SETTINGS_MODEL_SET_ACTIVE="mujian:ai:settings:model:setActive",p.MUJIAN_AI_SETTINGS_MODEL_GET_ACTIVE="mujian:ai:settings:model:getActive",p.MUJIAN_AI_CHAT_MESSAGE_DELETE_ONE="mujian:ai:chat:message:deleteOne",p.MUJIAN_AI_CHAT_MESSAGE_EDIT_ONE="mujian:ai:chat:message:editOne",p.MUJIAN_AI_CHAT_MESSAGE_SWIPE="mujian:ai:chat:message:swipe",p.MUJIAN_AI_CHAT_MESSAGE_GET_PROMPT="mujian:ai:chat:message:getPrompt",p.MUJIAN_AI_OPENAI_IMAGES_GENERATE="mujian:ai:openai:images:generate",p.MUJIAN_UTILS_CLIPBOARD_WRITE_TEXT="mujian:utils:clipboard:writeText",p.MUJIAN_GET_CONFIG="mujian:getConfig",p);let tI=async function(e,t,r,n={}){let d,a,i,u;await this.call(tM.MUJIAN_AI_CHAT_COMPLETE,{content:e},{onData:n.parseContent?(d="",a="",function(e){let r=(a+=e).split("\n");for(let e of(a=r.pop()||"",r))if(e.startsWith("data: "))try{let r=JSON.parse(e.slice(6));if(r.question_id&&(i=r.question_id),r.reply_id&&(u=r.reply_id),r.isFinished)return void t({isFinished:!0,deltaContent:"",fullContent:d,questionId:i,replyId:u});let n=r?.choices?.[0]?.delta?.content;n?.length>0&&(d+=n,t({isFinished:!1,deltaContent:n,fullContent:d,questionId:i,replyId:u}))}catch(e){t({isFinished:!0,error:e,deltaContent:"",fullContent:d,questionId:i,replyId:u});return}}):t,signal:r})},tP=async function(e){return await this.call(tM.MUJIAN_AI_CHAT_APPLY_REGEX,e)},tC=async function(e){return await this.call(tM.MUJIAN_AI_CHAT_RENDER_MESSAGE,e)},tO=async function(e,t){return await this.call(tM.MUJIAN_AI_CHAT_COMPLETE,{isContinue:!0},{onData:e,signal:t})},tN=async function(e,t){return await this.call(tM.MUJIAN_AI_CHAT_COMPLETE,{isRegenerate:!0},{onData:e,signal:t})},tL=async function(){return await this.call(tM.MUJIAN_AI_CHAT_MESSAGE_GET_ALL)},tR=async function(e){return await this.call(tM.MUJIAN_AI_CHAT_MESSAGE_DELETE_ONE,{messageId:e})},tz=async function(e,t){return await this.call(tM.MUJIAN_AI_CHAT_MESSAGE_EDIT_ONE,{messageId:e,content:t})},t$=async function(e,t){return await this.call(tM.MUJIAN_AI_CHAT_MESSAGE_SWIPE,{messageId:e,swipeId:t})},tH=async function(e){return await this.call(tM.MUJIAN_AI_CHAT_MESSAGE_GET_PROMPT,{messageId:e})};async function tD(e,t){return await this.call(tM.MUJIAN_AI_CHAT_MESSAGE_GET_PAGE,{fromCursor:e,pageSize:t})}let tU=async function(){return await this.call(tM.MUJIAN_AI_CHAT_PROJECT_GET_INFO)},tB=async function(){return await this.call(tM.MUJIAN_AI_SETTINGS_PERSONA_GET_ACTIVE)},tG=async function(e){return await this.call(tM.MUJIAN_AI_SETTINGS_PERSONA_SET_ACTIVE,{personaId:e})},tF=async function(){return await this.call(tM.MUJIAN_AI_SETTINGS_MODEL_GET_ACTIVE)},tq=async function(e){return await this.call(tM.MUJIAN_AI_SETTINGS_MODEL_SET_ACTIVE,{modelId:e})},tV=async function(){return await this.call(tM.MUJIAN_AI_SETTINGS_MODEL_GET_ALL)},tJ=async function(e){return await this.call(t0.EVENT.MUJIAN_AI_TEXT_GENERATE,{content:e})},tW={completions:{create:async function(e,t,r,n){return await this.call(t0.EVENT.MUJIAN_AI_OPENAI_CHAT_COMPLETIONS_CREATE,{params:e,options:t},{onData:r,signal:n})}}},tY={create:async function(e,t,r,n){return await this.call(t0.EVENT.MUJIAN_AI_OPENAI_COMPLETIONS_CREATE,{params:e,options:t},{onData:r,signal:n})}},tK={create:async function(e,t,r,n){return await this.call(t0.EVENT.MUJIAN_AI_OPENAI_RESPONSES_CREATE,{params:e,options:t},{onData:r,signal:n})}},tX={generate:async function(e,t,r,n){return await this.call(t0.EVENT.MUJIAN_AI_OPENAI_IMAGES_GENERATE,{params:e,options:t},{onData:r,signal:n})}};async function tZ(){return await this.call(tM.MUJIAN_GET_CONFIG)}let tQ=async function(){},t3=async function(){};async function t8(e){return await this.call(tM.MUJIAN_UTILS_CLIPBOARD_WRITE_TEXT,e)}class t0{constructor(){}static EVENT=tM;static getInstance(){return window.$mujian||(window.$mujian=new t0),window.$mujian}parent=null;ready=!1;get isReady(){return this.ready}pendingRequests=new Map;_config;get config(){return this._config}async init(){let e=new tj.Model({reply:({id:e,complete:t,data:r,error:n})=>{let d=this.pendingRequests.get(e);if(d){if(n){d.reject(n),this.pendingRequests.delete(e);return}d.onData?.(r),t&&(d.onComplete?.(),d.resolve(r),this.pendingRequests.delete(e))}}});try{let t=await e;this.ready=!0,this.parent=t,tf.i("mujian sdk client init"),await this.call(tM.MUJIAN_INIT);let r=await this.ai.chat.project.getInfo();if(r.config?.customCss){let e=document.createElement("style");e.setAttribute("type","text/css"),e.setAttribute("id","mujian-custom-css"),e.textContent=r.config.customCss,document.head.appendChild(e)}if(r.config?.customJs){let e=document.createElement("script");e.setAttribute("type","text/javascript"),e.setAttribute("id","mujian-custom-js"),e.textContent=r.config.customJs,document.head.appendChild(e)}let n=await tZ.call(this);n&&(this._config=n)}catch(e){tf.e("init error",e)}}emit(e,t){if(!this.ready)throw Error("Mujian is not initialized");this.parent?.emit(e,t)}nextCallId=0;getCallId(){let e=this.nextCallId;return this.nextCallId+=1,e}async call(e,t,r){if(!this.ready)throw Error("Mujian is not initialized");let n=this.getCallId();return new Promise((d,a)=>{this.pendingRequests.set(n,{resolve:d,reject:a,...r}),this.emit(e,{id:n,data:t}),r?.signal?.addEventListener("abort",()=>{this.emit(tM.MUJIAN_AI_CHAT_STOP,{id:n})})})}ai={chat:{project:{getInfo:tU.bind(this)},settings:{model:{getAll:tV.bind(this),getActive:tF.bind(this),setActive:tq.bind(this)},persona:{getActive:tB.bind(this),setActive:tG.bind(this)}},complete:tI.bind(this),applyRegex:tP.bind(this),renderMessage:tC.bind(this),continue:tO.bind(this),regenerate:tN.bind(this),message:{getAll:tL.bind(this),deleteOne:tR.bind(this),editOne:tz.bind(this),swipe:t$.bind(this),getPrompt:tH.bind(this),getPage:tD.bind(this)}},text:{complete:tJ.bind(this)},openai:{completions:{create:tY.create.bind(this)},chat:{completions:{create:tW.completions.create.bind(this)}},responses:{create:tK.create.bind(this)},images:{generate:tX.generate.bind(this)}}};ui={};utils={clipboard:{writeText:t8.bind(this)}};hybrid={};player={};game={assets:()=>{console.log("assets")},saves:{saveGame:tQ.bind(this),loadGame:t3.bind(this)},ranking:()=>{console.log("ranking")}}}let t1=`
|
|
133
|
+
</div>`}),n.current&&(n.current.innerHTML=d)},[e]),(0,A.useEffect)(()=>{window.addEventListener("message",function(e){if(e.data?.type==="MJ_ADJUST_IFRAME_HEIGHT"&&e.data?.iframe_id){let t=n.current?.querySelector("#"+e.data.iframe_id);t&&(t.style.height=`${e.data.height}px`)}}),window.addEventListener("resize",()=>{d.forEach(e=>{let t=n.current?.querySelector("#MJ-iframe-"+e);t&&t.contentWindow?.postMessage({type:"MJ_UPDATE_VIEWPORT_HEIGHT"},"*")})})},[]),(0,A.useEffect)(()=>(d.forEach(e=>{let t=n.current?.querySelector("#MJ-iframe-"+e);if(!t)return;let r=()=>{let r=t.parentElement?.querySelector("#MJ-spin-"+e);r&&r.remove()},d=setTimeout(r,5e3);t.addEventListener("load",()=>{clearTimeout(d),r()})}),()=>{d.forEach(e=>{let t=n.current?.querySelector("#MJ-iframe-"+e);if(!t)return;let r=t.parentElement?.querySelector("#MJ-spin-"+t.id);r&&r.remove(),t.removeEventListener("load",()=>{tf.i("iframe loaded",t.id)})})}),[d]),(0,ep.jsx)("div",{className:"mes_text",ref:n})},tw=S().memo(tb,(e,t)=>e.content===t.content);tb.displayName="MdRenderer",tw.displayName="MdRenderer";var ty="application/x-postmate-v1+json",tv=0,tk=function(e){var t=document.createElement("a");t.href=e;var r=t.protocol.length>4?t.protocol:window.location.protocol,n=t.host.length?"80"===t.port||"443"===t.port?t.hostname:t.host:window.location.host;return t.origin||r+"//"+n},tE={handshake:1,"handshake-reply":1,call:1,emit:1,reply:1,request:1},tA=function(e,t){return("string"!=typeof t||e.origin===t)&&!!e.data&&("object"!=typeof e.data||"postmate"in e.data)&&e.data.type===ty&&!!tE[e.data.postmate]},tS=function(e,t){var r="function"==typeof e[t]?e[t]():e[t];return tj.Promise.resolve(r)},tT=function(){function e(e){var t=this;this.parent=e.parent,this.frame=e.frame,this.child=e.child,this.childOrigin=e.childOrigin,this.events={},this.listener=function(e){if(!tA(e,t.childOrigin))return!1;var r=((e||{}).data||{}).value||{},n=r.data,d=r.name;"emit"===e.data.postmate&&d in t.events&&t.events[d].call(t,n)},this.parent.addEventListener("message",this.listener,!1)}var t=e.prototype;return t.get=function(e){var t=this;return new tj.Promise(function(r){var n=++tv;t.parent.addEventListener("message",function e(d){d.data.uid===n&&"reply"===d.data.postmate&&(t.parent.removeEventListener("message",e,!1),r(d.data.value))},!1),t.child.postMessage({postmate:"request",type:ty,property:e,uid:n},t.childOrigin)})},t.call=function(e,t){this.child.postMessage({postmate:"call",type:ty,property:e,data:t},this.childOrigin)},t.on=function(e,t){this.events[e]=t},t.destroy=function(){window.removeEventListener("message",this.listener,!1),this.frame.parentNode.removeChild(this.frame)},e}(),tx=function(){function e(e){var t=this;this.model=e.model,this.parent=e.parent,this.parentOrigin=e.parentOrigin,this.child=e.child,this.child.addEventListener("message",function(e){if(tA(e,t.parentOrigin)){var r=e.data,n=r.property,d=r.uid,a=r.data;if("call"===e.data.postmate){n in t.model&&"function"==typeof t.model[n]&&t.model[n](a);return}tS(t.model,n).then(function(t){return e.source.postMessage({property:n,postmate:"reply",type:ty,uid:d,value:t},e.origin)})}})}return e.prototype.emit=function(e,t){this.parent.postMessage({postmate:"emit",type:ty,value:{name:e,data:t}},this.parentOrigin)},e}(),tj=function(){function e(e){var t=e.container,r=void 0===t?void 0!==r?r:document.body:t,n=e.model,d=e.url,a=e.name,i=e.classListArray;return this.parent=window,this.frame=document.createElement("iframe"),this.frame.name=a||"",this.frame.classList.add.apply(this.frame.classList,void 0===i?[]:i),r.appendChild(this.frame),this.child=this.frame.contentWindow||this.frame.contentDocument.parentWindow,this.model=n||{},this.sendHandshake(d)}return e.prototype.sendHandshake=function(t){var r,n=this,d=tk(t),a=0;return new e.Promise(function(e,i){n.parent.addEventListener("message",function t(a){return!!tA(a,d)&&("handshake-reply"===a.data.postmate?(clearInterval(r),n.parent.removeEventListener("message",t,!1),n.childOrigin=a.origin,e(new tT(n))):i("Failed handshake"))},!1);var u=function(){a++,n.child.postMessage({postmate:"handshake",type:ty,model:n.model},d),5===a&&clearInterval(r)},o=function(){u(),r=setInterval(u,500)};n.frame.attachEvent?n.frame.attachEvent("onload",o):n.frame.onload=o,n.frame.src=t})},e}();tj.debug=!1,tj.Promise=function(){try{return window?window.Promise:Promise}catch(e){return null}}(),tj.Model=function(){function e(e){return this.child=window,this.model=e,this.parent=this.child.parent,this.sendHandshakeReply()}return e.prototype.sendHandshakeReply=function(){var e=this;return new tj.Promise(function(t,r){e.child.addEventListener("message",function n(d){if(d.data.postmate){if("handshake"===d.data.postmate){e.child.removeEventListener("message",n,!1),d.source.postMessage({postmate:"handshake-reply",type:ty},d.origin),e.parentOrigin=d.origin;var a=d.data.model;return a&&Object.keys(a).forEach(function(t){e.model[t]=a[t]}),t(new tx(e))}return r("Handshake Reply Failed")}},!1)})},e}();var tM=((p={}).MUJIAN_INIT="mujian:init",p.MUJIAN_AI_CHAT_STOP="mujian:ai:chat:stop",p.MUJIAN_AI_CHAT_COMPLETE="mujian:ai:chat:complete",p.MUJIAN_AI_CHAT_APPLY_REGEX="mujian:ai:chat:applyRegex",p.MUJIAN_AI_CHAT_RENDER_MESSAGE="mujian:ai:chat:renderMessage",p.MUJIAN_AI_TEXT_GENERATE="mujian:ai:text:generate",p.MUJIAN_AI_OPENAI_COMPLETIONS_CREATE="mujian:ai:openai:completions:create",p.MUJIAN_AI_OPENAI_CHAT_COMPLETIONS_CREATE="mujian:ai:openai:chat:completions:create",p.MUJIAN_AI_OPENAI_RESPONSES_CREATE="mujian:ai:openai:responses:create",p.MUJIAN_AI_CHAT_MESSAGE_GET_ALL="mujian:ai:chat:message:getAll",p.MUJIAN_AI_CHAT_MESSAGE_GET_PAGE="mujian:ai:chat:message:getPage",p.MUJIAN_AI_CHAT_PROJECT_GET_INFO="mujian:ai:chat:project:getInfo",p.MUJIAN_AI_SETTINGS_PERSONA_GET_ACTIVE="mujian:ai:settings:persona:getActive",p.MUJIAN_AI_SETTINGS_PERSONA_SET_ACTIVE="mujian:ai:settings:persona:setActive",p.MUJIAN_AI_SETTINGS_MODEL_GET_ALL="mujian:ai:settings:model:getAll",p.MUJIAN_AI_SETTINGS_MODEL_SET_ACTIVE="mujian:ai:settings:model:setActive",p.MUJIAN_AI_SETTINGS_MODEL_GET_ACTIVE="mujian:ai:settings:model:getActive",p.MUJIAN_AI_CHAT_MESSAGE_DELETE_ONE="mujian:ai:chat:message:deleteOne",p.MUJIAN_AI_CHAT_MESSAGE_EDIT_ONE="mujian:ai:chat:message:editOne",p.MUJIAN_AI_CHAT_MESSAGE_SWIPE="mujian:ai:chat:message:swipe",p.MUJIAN_AI_CHAT_MESSAGE_GET_PROMPT="mujian:ai:chat:message:getPrompt",p.MUJIAN_AI_OPENAI_IMAGES_GENERATE="mujian:ai:openai:images:generate",p.MUJIAN_UTILS_CLIPBOARD_WRITE_TEXT="mujian:utils:clipboard:writeText",p.MUJIAN_GET_CONFIG="mujian:getConfig",p);let tI=async function(e,t,r,n={}){let d,a,i,u;await this.call(tM.MUJIAN_AI_CHAT_COMPLETE,{content:e},{onData:n.parseContent?(d="",a="",function(e){let r=(a+=e).split("\n");for(let e of(a=r.pop()||"",r))if(e.startsWith("data: "))try{let r=JSON.parse(e.slice(6));if(r.question_id&&(i=r.question_id),r.reply_id&&(u=r.reply_id),r.isFinished)return void t({isFinished:!0,deltaContent:"",fullContent:d,questionId:i,replyId:u});let n=r?.choices?.[0]?.delta?.content;n?.length>0&&(d+=n,t({isFinished:!1,deltaContent:n,fullContent:d,questionId:i,replyId:u}))}catch(e){t({isFinished:!0,error:e,deltaContent:"",fullContent:d,questionId:i,replyId:u});return}}):t,signal:r})},tP=async function(e){return await this.call(tM.MUJIAN_AI_CHAT_APPLY_REGEX,e)},tC=async function(e){return await this.call(tM.MUJIAN_AI_CHAT_RENDER_MESSAGE,e)},tO=async function(e,t){return await this.call(tM.MUJIAN_AI_CHAT_COMPLETE,{isContinue:!0},{onData:e,signal:t})},tN=async function(e,t){return await this.call(tM.MUJIAN_AI_CHAT_COMPLETE,{isRegenerate:!0},{onData:e,signal:t})},tL=async function(){return await this.call(tM.MUJIAN_AI_CHAT_MESSAGE_GET_ALL)},tR=async function(e){return await this.call(tM.MUJIAN_AI_CHAT_MESSAGE_DELETE_ONE,{messageId:e})},tz=async function(e,t){return await this.call(tM.MUJIAN_AI_CHAT_MESSAGE_EDIT_ONE,{messageId:e,content:t})},t$=async function(e,t){return await this.call(tM.MUJIAN_AI_CHAT_MESSAGE_SWIPE,{messageId:e,swipeId:t})},tH=async function(e){return await this.call(tM.MUJIAN_AI_CHAT_MESSAGE_GET_PROMPT,{messageId:e})};async function tD(e,t){return await this.call(tM.MUJIAN_AI_CHAT_MESSAGE_GET_PAGE,{fromCursor:e,pageSize:t})}let tU=async function(){return await this.call(tM.MUJIAN_AI_CHAT_PROJECT_GET_INFO)},tB=async function(){return await this.call(tM.MUJIAN_AI_SETTINGS_PERSONA_GET_ACTIVE)},tG=async function(e){return await this.call(tM.MUJIAN_AI_SETTINGS_PERSONA_SET_ACTIVE,{personaId:e})},tF=async function(){return await this.call(tM.MUJIAN_AI_SETTINGS_MODEL_GET_ACTIVE)},tq=async function(e){return await this.call(tM.MUJIAN_AI_SETTINGS_MODEL_SET_ACTIVE,{modelId:e})},tV=async function(){return await this.call(tM.MUJIAN_AI_SETTINGS_MODEL_GET_ALL)},tJ=async function(e){return await this.call(t0.EVENT.MUJIAN_AI_TEXT_GENERATE,{content:e})},tW={completions:{create:async function(e,t,r,n){return await this.call(t0.EVENT.MUJIAN_AI_OPENAI_CHAT_COMPLETIONS_CREATE,{params:e,options:t},{onData:r,signal:n})}}},tY={create:async function(e,t,r,n){return await this.call(t0.EVENT.MUJIAN_AI_OPENAI_COMPLETIONS_CREATE,{params:e,options:t},{onData:r,signal:n})}},tK={create:async function(e,t,r,n){return await this.call(t0.EVENT.MUJIAN_AI_OPENAI_RESPONSES_CREATE,{params:e,options:t},{onData:r,signal:n})}},tX={generate:async function(e,t,r,n){return await this.call(t0.EVENT.MUJIAN_AI_OPENAI_IMAGES_GENERATE,{params:e,options:t},{onData:r,signal:n})}};async function tZ(){return await this.call(tM.MUJIAN_GET_CONFIG)}let tQ=async function(){},t3=async function(){};async function t8(e){return await this.call(tM.MUJIAN_UTILS_CLIPBOARD_WRITE_TEXT,e)}class t0{constructor(){}static EVENT=tM;static getInstance(){return window.$mujian||(window.$mujian=new t0),window.$mujian}parent=null;ready=!1;get isReady(){return this.ready}pendingRequests=new Map;_config;get openapi(){return this._config?.openapi}initPromise=null;async init(){return this.initPromise||(this.initPromise=(async()=>{let e=new tj.Model({reply:({id:e,complete:t,data:r,error:n})=>{let d=this.pendingRequests.get(e);if(d){if(n){d.reject(n),this.pendingRequests.delete(e);return}d.onData?.(r),t&&(d.onComplete?.(),d.resolve(r),this.pendingRequests.delete(e))}}});try{let t=await e;this.ready=!0,this.parent=t,tf.i("mujian sdk client init"),await this.call(tM.MUJIAN_INIT);let r=await this.ai.chat.project.getInfo();if(r.config?.customCss){let e=document.createElement("style");e.setAttribute("type","text/css"),e.setAttribute("id","mujian-custom-css"),e.textContent=r.config.customCss,document.head.appendChild(e)}if(r.config?.customJs){let e=document.createElement("script");e.setAttribute("type","text/javascript"),e.setAttribute("id","mujian-custom-js"),e.textContent=r.config.customJs,document.head.appendChild(e)}let n=await tZ.call(this);n&&(this._config=n)}catch(e){tf.e("init error",e)}})()),this.initPromise}emit(e,t){if(!this.ready)throw Error("Mujian is not initialized");this.parent?.emit(e,t)}nextCallId=0;getCallId(){let e=this.nextCallId;return this.nextCallId+=1,e}async call(e,t,r){if(!this.ready)throw Error("Mujian is not initialized");let n=this.getCallId();return new Promise((d,a)=>{this.pendingRequests.set(n,{resolve:d,reject:a,...r}),this.emit(e,{id:n,data:t}),r?.signal?.addEventListener("abort",()=>{this.emit(tM.MUJIAN_AI_CHAT_STOP,{id:n})})})}ai={chat:{project:{getInfo:tU.bind(this)},settings:{model:{getAll:tV.bind(this),getActive:tF.bind(this),setActive:tq.bind(this)},persona:{getActive:tB.bind(this),setActive:tG.bind(this)}},complete:tI.bind(this),applyRegex:tP.bind(this),renderMessage:tC.bind(this),continue:tO.bind(this),regenerate:tN.bind(this),message:{getAll:tL.bind(this),deleteOne:tR.bind(this),editOne:tz.bind(this),swipe:t$.bind(this),getPrompt:tH.bind(this),getPage:tD.bind(this)}},text:{complete:tJ.bind(this)},openai:{completions:{create:tY.create.bind(this)},chat:{completions:{create:tW.completions.create.bind(this)}},responses:{create:tK.create.bind(this)},images:{generate:tX.generate.bind(this)}}};ui={};utils={clipboard:{writeText:t8.bind(this)}};hybrid={};player={};game={assets:()=>{console.log("assets")},saves:{saveGame:tQ.bind(this),loadGame:t3.bind(this)},ranking:()=>{console.log("ranking")}}}let t1=`
|
|
134
134
|
@keyframes spin {
|
|
135
135
|
0% { transform: rotate(0deg); }
|
|
136
136
|
100% { transform: rotate(360deg); }
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mujian/js-sdk",
|
|
3
|
-
"version": "0.0.6-beta.
|
|
3
|
+
"version": "0.0.6-beta.74",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"exports": {
|
|
6
6
|
".": {
|
|
@@ -14,6 +14,10 @@
|
|
|
14
14
|
"types": "./dist/react/index.d.ts",
|
|
15
15
|
"import": "./dist/react.js"
|
|
16
16
|
},
|
|
17
|
+
"./lite": {
|
|
18
|
+
"types": "./dist/lite.d.ts",
|
|
19
|
+
"import": "./dist/lite.js"
|
|
20
|
+
},
|
|
17
21
|
"./react.css": {
|
|
18
22
|
"import": "./dist/react.css"
|
|
19
23
|
}
|