@mujian/js-sdk 0.0.6-beta.6 → 0.0.6-beta.61

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.
Files changed (34) hide show
  1. package/dist/events/index.d.ts +26 -2
  2. package/dist/index.d.ts +13 -39
  3. package/dist/index.js +309 -16
  4. package/dist/modules/ai/chat/chat.d.ts +41 -4
  5. package/dist/modules/ai/chat/index.d.ts +1 -1
  6. package/dist/modules/ai/chat/message/index.d.ts +4 -0
  7. package/dist/modules/ai/index.d.ts +3 -2
  8. package/dist/modules/ai/openai/chat.d.ts +25 -0
  9. package/dist/modules/ai/openai/completions.d.ts +19 -0
  10. package/dist/modules/ai/openai/images.d.ts +19 -0
  11. package/dist/modules/ai/openai/index.d.ts +4 -0
  12. package/dist/modules/ai/openai/responses.d.ts +20 -0
  13. package/dist/modules/ai/text/index.d.ts +9 -2
  14. package/dist/modules/utils/clipboard.d.ts +5 -0
  15. package/dist/modules/utils/index.d.ts +4 -0
  16. package/dist/react/chat/useChat/index.d.ts +7 -3
  17. package/dist/react/chat/useChat/inner/chatStreaming.d.ts +2 -1
  18. package/dist/react/components/MdRenderer/index.d.ts +3 -3
  19. package/dist/react/components/MdRenderer/utils/height.d.ts +0 -0
  20. package/dist/react/components/MdRenderer/utils/iframe.d.ts +9 -0
  21. package/dist/react/components/MdRenderer/utils/scripts.d.ts +4 -0
  22. package/dist/react/components/MujianSpinner/index.d.ts +7 -0
  23. package/dist/react/components/index.d.ts +1 -0
  24. package/dist/react.css +65 -4
  25. package/dist/react.js +619 -87
  26. package/dist/types/index.d.ts +37 -0
  27. package/dist/umd/index.js +772 -0
  28. package/dist/umd/index.js.LICENSE.txt +7 -0
  29. package/dist/umd/react.css +343 -0
  30. package/dist/umd/react.js +8832 -0
  31. package/dist/umd/react.js.LICENSE.txt +31 -0
  32. package/dist/utils/log.d.ts +4 -0
  33. package/package.json +4 -1
  34. /package/dist/react/components/MdRenderer/{utils.d.ts → utils/md.d.ts} +0 -0
@@ -21,13 +21,29 @@ export declare enum EVENT {
21
21
  */
22
22
  MUJIAN_AI_CHAT_APPLY_REGEX = "mujian:ai:chat:applyRegex",
23
23
  /**
24
- * 生成文本
24
+ * 文本补全
25
25
  */
26
26
  MUJIAN_AI_TEXT_GENERATE = "mujian:ai:text:generate",
27
+ /**
28
+ * OpenAI 文本补全
29
+ */
30
+ MUJIAN_AI_OPENAI_COMPLETIONS_CREATE = "mujian:ai:openai:completions:create",
31
+ /**
32
+ * OpenAI 聊天补全
33
+ */
34
+ MUJIAN_AI_OPENAI_CHAT_COMPLETIONS_CREATE = "mujian:ai:openai:chat:completions:create",
35
+ /**
36
+ * OpenAI 响应创建
37
+ */
38
+ MUJIAN_AI_OPENAI_RESPONSES_CREATE = "mujian:ai:openai:responses:create",
27
39
  /**
28
40
  * 获取对话
29
41
  */
30
42
  MUJIAN_AI_CHAT_MESSAGE_GET_ALL = "mujian:ai:chat:message:getAll",
43
+ /**
44
+ * 获取对话分页
45
+ */
46
+ MUJIAN_AI_CHAT_MESSAGE_GET_PAGE = "mujian:ai:chat:message:getPage",
31
47
  /**
32
48
  * 获取项目信息
33
49
  */
@@ -67,5 +83,13 @@ export declare enum EVENT {
67
83
  /**
68
84
  * 获取消息提示词
69
85
  */
70
- MUJIAN_AI_CHAT_MESSAGE_GET_PROMPT = "mujian:ai:chat:message:getPrompt"
86
+ MUJIAN_AI_CHAT_MESSAGE_GET_PROMPT = "mujian:ai:chat:message:getPrompt",
87
+ /**
88
+ * 生成图像
89
+ */
90
+ MUJIAN_AI_OPENAI_IMAGES_GENERATE = "mujian:ai:openai:images:generate",
91
+ /**
92
+ * 写入剪贴版
93
+ */
94
+ MUJIAN_UTILS_CLIPBOARD_WRITE_TEXT = "mujian:utils:clipboard:writeText"
71
95
  }
package/dist/index.d.ts CHANGED
@@ -14,7 +14,13 @@ declare global {
14
14
  }
15
15
  }
16
16
  declare class MujianSdk {
17
+ /** @hidden */
17
18
  private constructor();
19
+ /**
20
+ * 事件
21
+ * @enum {string}
22
+ */
23
+ static EVENT: typeof EVENT;
18
24
  /** @hidden */
19
25
  static getInstance(): MujianSdk;
20
26
  /** @hidden */
@@ -40,47 +46,15 @@ declare class MujianSdk {
40
46
  /** @hidden */
41
47
  call<Req, Resp>(event: EVENT, data?: Req, controller?: Pick<Call<Resp>, 'onData' | 'onComplete' | 'signal'>): Promise<Resp>;
42
48
  /**
43
- * AI
49
+ * @namespace ai
50
+ * @description AI
44
51
  */
45
- ai: {
46
- chat: {
47
- project: {
48
- getInfo: () => Promise<import("./types").ProjectInfo>;
49
- };
50
- settings: {
51
- model: {
52
- getAll: () => Promise<import("./types").ModelInfo[]>;
53
- getActive: () => Promise<string>;
54
- setActive: (modelId: string) => Promise<string>;
55
- };
56
- persona: {
57
- getActive: () => Promise<import("./types").PersonaInfo>;
58
- setActive: (personaId: string) => Promise<void>;
59
- };
60
- };
61
- complete: (message: string, onData: (data: string) => void, signal?: AbortSignal | undefined) => Promise<string>;
62
- applyRegex: (props: {
63
- message: import("./react").Message;
64
- index: number;
65
- depth: number;
66
- }) => Promise<import("./react").Message>;
67
- continue: (onData: (data: string) => void, signal?: AbortSignal | undefined) => Promise<string>;
68
- regenerate: (onData: (data: string) => void, signal?: AbortSignal | undefined) => Promise<string>;
69
- message: {
70
- getAll: () => Promise<import("./react").Message[]>;
71
- deleteOne: (messageId: string) => Promise<unknown>;
72
- editOne: (messageId: string, content: string) => Promise<unknown>;
73
- swipe: (messageId: string, swipeId: number) => Promise<unknown>;
74
- getPrompt: (messageId: string) => Promise<unknown>;
75
- };
76
- };
77
- text: {
78
- complete: () => Promise<void>;
79
- };
80
- };
52
+ ai: any;
81
53
  ui: {};
82
- util: {
83
- cn: () => void;
54
+ utils: {
55
+ clipboard: {
56
+ writeText: (text: string) => Promise<unknown>;
57
+ };
84
58
  };
85
59
  hybrid: {};
86
60
  player: {};
package/dist/index.js CHANGED
@@ -5,7 +5,11 @@ var events_EVENT = /*#__PURE__*/ function(EVENT) {
5
5
  EVENT["MUJIAN_AI_CHAT_COMPLETE"] = "mujian:ai:chat:complete";
6
6
  EVENT["MUJIAN_AI_CHAT_APPLY_REGEX"] = "mujian:ai:chat:applyRegex";
7
7
  EVENT["MUJIAN_AI_TEXT_GENERATE"] = "mujian:ai:text:generate";
8
+ EVENT["MUJIAN_AI_OPENAI_COMPLETIONS_CREATE"] = "mujian:ai:openai:completions:create";
9
+ EVENT["MUJIAN_AI_OPENAI_CHAT_COMPLETIONS_CREATE"] = "mujian:ai:openai:chat:completions:create";
10
+ EVENT["MUJIAN_AI_OPENAI_RESPONSES_CREATE"] = "mujian:ai:openai:responses:create";
8
11
  EVENT["MUJIAN_AI_CHAT_MESSAGE_GET_ALL"] = "mujian:ai:chat:message:getAll";
12
+ EVENT["MUJIAN_AI_CHAT_MESSAGE_GET_PAGE"] = "mujian:ai:chat:message:getPage";
9
13
  EVENT["MUJIAN_AI_CHAT_PROJECT_GET_INFO"] = "mujian:ai:chat:project:getInfo";
10
14
  EVENT["MUJIAN_AI_SETTINGS_PERSONA_GET_ACTIVE"] = "mujian:ai:settings:persona:getActive";
11
15
  EVENT["MUJIAN_AI_SETTINGS_PERSONA_SET_ACTIVE"] = "mujian:ai:settings:persona:setActive";
@@ -16,13 +20,59 @@ var events_EVENT = /*#__PURE__*/ function(EVENT) {
16
20
  EVENT["MUJIAN_AI_CHAT_MESSAGE_EDIT_ONE"] = "mujian:ai:chat:message:editOne";
17
21
  EVENT["MUJIAN_AI_CHAT_MESSAGE_SWIPE"] = "mujian:ai:chat:message:swipe";
18
22
  EVENT["MUJIAN_AI_CHAT_MESSAGE_GET_PROMPT"] = "mujian:ai:chat:message:getPrompt";
23
+ EVENT["MUJIAN_AI_OPENAI_IMAGES_GENERATE"] = "mujian:ai:openai:images:generate";
24
+ EVENT["MUJIAN_UTILS_CLIPBOARD_WRITE_TEXT"] = "mujian:utils:clipboard:writeText";
19
25
  return EVENT;
20
26
  }({});
21
- const chat_complete = async function(message, onData, signal) {
22
- return await this.call(events_EVENT.MUJIAN_AI_CHAT_COMPLETE, {
27
+ function wrapOnData(onData) {
28
+ let fullContent = '';
29
+ let buffer = '';
30
+ let questionId;
31
+ let replyId;
32
+ return function(data) {
33
+ buffer += data;
34
+ const lines = buffer.split('\n');
35
+ buffer = lines.pop() || '';
36
+ for (const line of lines)if (line.startsWith('data: ')) try {
37
+ const parsedData = JSON.parse(line.slice(6));
38
+ if (parsedData.question_id) questionId = parsedData.question_id;
39
+ if (parsedData.reply_id) replyId = parsedData.reply_id;
40
+ if (parsedData.isFinished) return void onData({
41
+ isFinished: true,
42
+ deltaContent: '',
43
+ fullContent,
44
+ questionId,
45
+ replyId
46
+ });
47
+ const deltaContent = parsedData?.choices?.[0]?.delta?.content;
48
+ if (deltaContent?.length > 0) {
49
+ fullContent += deltaContent;
50
+ onData({
51
+ isFinished: false,
52
+ deltaContent: deltaContent,
53
+ fullContent,
54
+ questionId,
55
+ replyId
56
+ });
57
+ }
58
+ } catch (e) {
59
+ onData({
60
+ isFinished: true,
61
+ error: e,
62
+ deltaContent: '',
63
+ fullContent,
64
+ questionId,
65
+ replyId
66
+ });
67
+ return;
68
+ }
69
+ };
70
+ }
71
+ const chat_complete = async function(message, onData, signal, option = {}) {
72
+ await this.call(events_EVENT.MUJIAN_AI_CHAT_COMPLETE, {
23
73
  content: message
24
74
  }, {
25
- onData,
75
+ onData: option.parseContent ? wrapOnData(onData) : onData,
26
76
  signal
27
77
  });
28
78
  };
@@ -70,6 +120,12 @@ const getPrompt = async function(messageId) {
70
120
  messageId
71
121
  });
72
122
  };
123
+ async function getPage(fromCursor, pageSize) {
124
+ return await this.call(events_EVENT.MUJIAN_AI_CHAT_MESSAGE_GET_PAGE, {
125
+ fromCursor,
126
+ pageSize
127
+ });
128
+ }
73
129
  const getInfo = async function() {
74
130
  return await this.call(events_EVENT.MUJIAN_AI_CHAT_PROJECT_GET_INFO);
75
131
  };
@@ -92,15 +148,22 @@ const model_setActive = async function(modelId) {
92
148
  const model_getAll = async function() {
93
149
  return await this.call(events_EVENT.MUJIAN_AI_SETTINGS_MODEL_GET_ALL);
94
150
  };
95
- const generate = async function() {
96
- return await this.call(events_EVENT.MUJIAN_AI_TEXT_GENERATE, {
97
- content: 'q'
98
- });
99
- };
100
151
  const saveGame = async function() {};
101
152
  const loadGame = async function() {};
153
+ async function writeText(text) {
154
+ return await this.call(events_EVENT.MUJIAN_UTILS_CLIPBOARD_WRITE_TEXT, text);
155
+ }
156
+ const Log = {
157
+ i (...msg) {
158
+ console.log('[MujianSDK] ', ...msg);
159
+ },
160
+ e (...msg) {
161
+ console.error('[MujianSDK] ', ...msg);
162
+ }
163
+ };
102
164
  class MujianSdk {
103
165
  constructor(){}
166
+ static EVENT = events_EVENT;
104
167
  static getInstance() {
105
168
  if (!window.$mujian) window.$mujian = new MujianSdk();
106
169
  return window.$mujian;
@@ -113,9 +176,14 @@ class MujianSdk {
113
176
  pendingRequests = new Map();
114
177
  async init() {
115
178
  const handshake = new postmate.Model({
116
- reply: ({ id, complete, data })=>{
179
+ reply: ({ id, complete, data, error })=>{
117
180
  const call = this.pendingRequests.get(id);
118
181
  if (!call) return;
182
+ if (error) {
183
+ call.reject(error);
184
+ this.pendingRequests.delete(id);
185
+ return;
186
+ }
119
187
  call.onData?.(data);
120
188
  if (complete) {
121
189
  call.onComplete?.();
@@ -128,10 +196,18 @@ class MujianSdk {
128
196
  const parent = await handshake;
129
197
  this.ready = true;
130
198
  this.parent = parent;
131
- console.log('mujian sdk client init');
199
+ Log.i('mujian sdk client init');
132
200
  await this.call(events_EVENT.MUJIAN_INIT);
201
+ const projectInfo = await this.ai.chat.project.getInfo();
202
+ if (projectInfo.config?.customCss) {
203
+ const style = document.createElement('style');
204
+ style.setAttribute('type', 'text/css');
205
+ style.setAttribute('id', 'mujian-custom-css');
206
+ style.textContent = projectInfo.config.customCss;
207
+ document.head.appendChild(style);
208
+ }
133
209
  } catch (error) {
134
- console.log('init error', error);
210
+ Log.e('init error', error);
135
211
  }
136
212
  }
137
213
  emit(event, data) {
@@ -189,17 +265,234 @@ class MujianSdk {
189
265
  deleteOne: messageDeleteOne.bind(this),
190
266
  editOne: messageEditOne.bind(this),
191
267
  swipe: messageSwipe.bind(this),
192
- getPrompt: getPrompt.bind(this)
268
+ getPrompt: getPrompt.bind(this),
269
+ getPage: getPage.bind(this)
193
270
  }
194
271
  },
195
272
  text: {
196
273
  complete: generate.bind(this)
274
+ },
275
+ openai: {
276
+ completions: {
277
+ create: completions.create.bind(this)
278
+ },
279
+ chat: {
280
+ completions: {
281
+ create: chat.completions.create.bind(this)
282
+ }
283
+ },
284
+ responses: {
285
+ create: responses.create.bind(this)
286
+ },
287
+ images: {
288
+ generate: images_images.generate.bind(this)
289
+ }
290
+ }
291
+ };
292
+ ui = {};
293
+ utils = {
294
+ clipboard: {
295
+ writeText: writeText.bind(this)
296
+ }
297
+ };
298
+ hybrid = {};
299
+ player = {};
300
+ game = {
301
+ assets: ()=>{
302
+ console.log('assets');
303
+ },
304
+ saves: {
305
+ saveGame: saveGame.bind(this),
306
+ loadGame: loadGame.bind(this)
307
+ },
308
+ ranking: ()=>{
309
+ console.log('ranking');
310
+ }
311
+ };
312
+ }
313
+ const generate = async function(content) {
314
+ return await this.call(MujianSdk.EVENT.MUJIAN_AI_TEXT_GENERATE, {
315
+ content
316
+ });
317
+ };
318
+ const chat = {
319
+ completions: {
320
+ create: async function(params, options, onData, signal) {
321
+ return await this.call(MujianSdk.EVENT.MUJIAN_AI_OPENAI_CHAT_COMPLETIONS_CREATE, {
322
+ params,
323
+ options
324
+ }, {
325
+ onData,
326
+ signal
327
+ });
328
+ }
329
+ }
330
+ };
331
+ const completions = {
332
+ create: async function(params, options, onData, signal) {
333
+ return await this.call(MujianSdk.EVENT.MUJIAN_AI_OPENAI_COMPLETIONS_CREATE, {
334
+ params,
335
+ options
336
+ }, {
337
+ onData,
338
+ signal
339
+ });
340
+ }
341
+ };
342
+ const responses = {
343
+ create: async function(params, options, onData, signal) {
344
+ return await this.call(MujianSdk.EVENT.MUJIAN_AI_OPENAI_RESPONSES_CREATE, {
345
+ params,
346
+ options
347
+ }, {
348
+ onData,
349
+ signal
350
+ });
351
+ }
352
+ };
353
+ const images_images = {
354
+ generate: async function(params, options, onData, signal) {
355
+ return await this.call(MujianSdk.EVENT.MUJIAN_AI_OPENAI_IMAGES_GENERATE, {
356
+ params,
357
+ options
358
+ }, {
359
+ onData,
360
+ signal
361
+ });
362
+ }
363
+ };
364
+ class src_MujianSdk {
365
+ constructor(){}
366
+ static EVENT = events_EVENT;
367
+ static getInstance() {
368
+ if (!window.$mujian) window.$mujian = new src_MujianSdk();
369
+ return window.$mujian;
370
+ }
371
+ parent = null;
372
+ ready = false;
373
+ get isReady() {
374
+ return this.ready;
375
+ }
376
+ pendingRequests = new Map();
377
+ async init() {
378
+ const handshake = new postmate.Model({
379
+ reply: ({ id, complete, data, error })=>{
380
+ const call = this.pendingRequests.get(id);
381
+ if (!call) return;
382
+ if (error) {
383
+ call.reject(error);
384
+ this.pendingRequests.delete(id);
385
+ return;
386
+ }
387
+ call.onData?.(data);
388
+ if (complete) {
389
+ call.onComplete?.();
390
+ call.resolve(data);
391
+ this.pendingRequests.delete(id);
392
+ }
393
+ }
394
+ });
395
+ try {
396
+ const parent = await handshake;
397
+ this.ready = true;
398
+ this.parent = parent;
399
+ Log.i('mujian sdk client init');
400
+ await this.call(events_EVENT.MUJIAN_INIT);
401
+ const projectInfo = await this.ai.chat.project.getInfo();
402
+ if (projectInfo.config?.customCss) {
403
+ const style = document.createElement('style');
404
+ style.setAttribute('type', 'text/css');
405
+ style.setAttribute('id', 'mujian-custom-css');
406
+ style.textContent = projectInfo.config.customCss;
407
+ document.head.appendChild(style);
408
+ }
409
+ } catch (error) {
410
+ Log.e('init error', error);
411
+ }
412
+ }
413
+ emit(event, data) {
414
+ if (!this.ready) throw new Error('Mujian is not initialized');
415
+ this.parent?.emit(event, data);
416
+ }
417
+ nextCallId = 0;
418
+ getCallId() {
419
+ const id = this.nextCallId;
420
+ this.nextCallId += 1;
421
+ return id;
422
+ }
423
+ async call(event, data, controller) {
424
+ if (!this.ready) throw new Error('Mujian is not initialized');
425
+ const callId = this.getCallId();
426
+ return new Promise((resolve, reject)=>{
427
+ this.pendingRequests.set(callId, {
428
+ resolve,
429
+ reject,
430
+ ...controller
431
+ });
432
+ this.emit(event, {
433
+ id: callId,
434
+ data
435
+ });
436
+ controller?.signal?.addEventListener('abort', ()=>{
437
+ this.emit(events_EVENT.MUJIAN_AI_CHAT_STOP, {
438
+ id: callId
439
+ });
440
+ });
441
+ });
442
+ }
443
+ ai = {
444
+ chat: {
445
+ project: {
446
+ getInfo: getInfo.bind(this)
447
+ },
448
+ settings: {
449
+ model: {
450
+ getAll: model_getAll.bind(this),
451
+ getActive: model_getActive.bind(this),
452
+ setActive: model_setActive.bind(this)
453
+ },
454
+ persona: {
455
+ getActive: getActive.bind(this),
456
+ setActive: setActive.bind(this)
457
+ }
458
+ },
459
+ complete: chat_complete.bind(this),
460
+ applyRegex: applyRegex.bind(this),
461
+ continue: continueComplete.bind(this),
462
+ regenerate: regenerate.bind(this),
463
+ message: {
464
+ getAll: getAll.bind(this),
465
+ deleteOne: messageDeleteOne.bind(this),
466
+ editOne: messageEditOne.bind(this),
467
+ swipe: messageSwipe.bind(this),
468
+ getPrompt: getPrompt.bind(this),
469
+ getPage: getPage.bind(this)
470
+ }
471
+ },
472
+ text: {
473
+ complete: generate.bind(this)
474
+ },
475
+ openai: {
476
+ completions: {
477
+ create: completions.create.bind(this)
478
+ },
479
+ chat: {
480
+ completions: {
481
+ create: chat.completions.create.bind(this)
482
+ }
483
+ },
484
+ responses: {
485
+ create: responses.create.bind(this)
486
+ },
487
+ images: {
488
+ generate: images_images.generate.bind(this)
489
+ }
197
490
  }
198
491
  };
199
492
  ui = {};
200
- util = {
201
- cn: ()=>{
202
- console.log('cn');
493
+ utils = {
494
+ clipboard: {
495
+ writeText: writeText.bind(this)
203
496
  }
204
497
  };
205
498
  hybrid = {};
@@ -217,4 +510,4 @@ class MujianSdk {
217
510
  }
218
511
  };
219
512
  }
220
- export { events_EVENT as EVENT, MujianSdk };
513
+ export { events_EVENT as EVENT, src_MujianSdk as MujianSdk };
@@ -1,15 +1,52 @@
1
1
  import type { MujianSdk } from '../../../index.ts';
2
2
  import { Message } from '../../../react';
3
+ /**
4
+ * LLM生成返回的数据
5
+ */
6
+ export type ParsedData = {
7
+ /** 是否已完成生成,最后一块数据时为true */
8
+ isFinished: boolean;
9
+ /** LLM生成的delta content */
10
+ deltaContent: string;
11
+ /** LLM生成的累积内容 */
12
+ fullContent: string;
13
+ /** 出错时非空 */
14
+ error?: unknown;
15
+ /** 用户发送消息的ID */
16
+ questionId?: string;
17
+ /** AI返回消息的ID */
18
+ replyId?: string;
19
+ };
20
+ /**
21
+ * 对话补全配置
22
+ */
23
+ export type CompleteOption = {
24
+ /** 给onData传递的数据是否是解析后的,推荐true */
25
+ parseContent?: boolean;
26
+ };
3
27
  /**
4
28
  * 对话补全
5
- * @param {string} message 消息
6
- * @param {Function} onData 数据
7
- * @param {AbortSignal} signal 信号
8
29
  * @returns {Promise<string>} 返回值
9
30
  */
10
31
  export declare const complete: (
11
32
  /** @hidden */
12
- this: MujianSdk, message: string, onData: (data: string) => void, signal?: AbortSignal) => Promise<string>;
33
+ this: MujianSdk,
34
+ /**
35
+ * 消息
36
+ */
37
+ message: string,
38
+ /**
39
+ * 数据生成时的回调
40
+ */
41
+ onData: (data: string | ParsedData) => void,
42
+ /**
43
+ * 停止生成的信号
44
+ */
45
+ signal?: AbortSignal | undefined,
46
+ /**
47
+ * 对话补全配置
48
+ */
49
+ option?: CompleteOption | undefined) => Promise<void>;
13
50
  export declare const applyRegex: (this: MujianSdk, props: {
14
51
  message: Message;
15
52
  index: number;
@@ -1,4 +1,4 @@
1
- export { applyRegex, complete, continueComplete, regenerate } from './chat';
1
+ export { applyRegex, type CompleteOption, complete, continueComplete, type ParsedData, regenerate, } from './chat';
2
2
  export * as message from './message';
3
3
  export * as project from './project';
4
4
  export * as settings from './settings';
@@ -1,5 +1,6 @@
1
1
  import type { MujianSdk } from '../../../../index.ts';
2
2
  import type { Message } from '../../../../react/chat/useChat/message';
3
+ import { Cursor } from '../../../../types';
3
4
  /**
4
5
  * 获取消息列表
5
6
  * @returns 消息当前列表
@@ -41,3 +42,6 @@ this: MujianSdk, messageId: string, swipeId: number) => Promise<unknown>;
41
42
  export declare const getPrompt: (
42
43
  /** @hidden */
43
44
  this: MujianSdk, messageId: string) => Promise<unknown>;
45
+ export declare function getPage(
46
+ /** @hidden */
47
+ this: MujianSdk, fromCursor: Cursor, pageSize: number): Promise<unknown>;
@@ -1,5 +1,6 @@
1
1
  /**
2
2
  * @module ai
3
3
  */
4
- export * as chat from './chat';
5
- export * as text from './text';
4
+ export * as chat from "./chat";
5
+ export * as text from "./text";
6
+ export * as openai from "./openai";
@@ -0,0 +1,25 @@
1
+ import { MujianSdk } from '../../../index';
2
+ import type OpenAI from 'openai';
3
+ /**
4
+ * @namespace openai.chat
5
+ * @description OpenAI 聊天补全
6
+ */
7
+ export declare const chat: {
8
+ /**
9
+ * @namespace openai.chat.completions
10
+ * @description OpenAI 聊天补全
11
+ */
12
+ completions: {
13
+ /**
14
+ * OpenAI 聊天补全
15
+ * @function openai.chat.completions.create
16
+ * @async
17
+ * @param {OpenAI.ChatCompletionCreateParams} params - 聊天补全参数
18
+ * @param {OpenAI.RequestOptions} options - 聊天补全选项
19
+ * @param {Function} onData - 数据生成时的回调
20
+ * @param {AbortSignal} signal - 停止生成的信号
21
+ * @returns {Promise<void>} 聊天补全结果
22
+ */
23
+ create: (this: MujianSdk, params: OpenAI.ChatCompletionCreateParams, options?: OpenAI.RequestOptions, onData?: (data: unknown) => void, signal?: AbortSignal | undefined) => Promise<OpenAI.ChatCompletion>;
24
+ };
25
+ };
@@ -0,0 +1,19 @@
1
+ import { MujianSdk } from '../../../index';
2
+ import type OpenAI from 'openai';
3
+ /**
4
+ * @namespace openai.completions
5
+ * @description OpenAI 文本补全
6
+ */
7
+ export declare const completions: {
8
+ /**
9
+ * OpenAI 文本补全
10
+ * @function openai.completions.create
11
+ * @async
12
+ * @param {OpenAI.CompletionCreateParams} params - 文本补全参数
13
+ * @param {OpenAI.RequestOptions} options - 文本补全选项
14
+ * @param {Function} onData - 数据生成时的回调
15
+ * @param {AbortSignal} signal - 停止生成的信号
16
+ * @returns {Promise<void>} 文本补全结果
17
+ */
18
+ create: (this: MujianSdk, params: OpenAI.CompletionCreateParams, options?: OpenAI.RequestOptions, onData?: (data: unknown) => void, signal?: AbortSignal | undefined) => Promise<OpenAI.Completion>;
19
+ };
@@ -0,0 +1,19 @@
1
+ import { MujianSdk } from '../../../index';
2
+ import type OpenAI from 'openai';
3
+ /**
4
+ * @namespace openai.images
5
+ * @description OpenAI 图像生成
6
+ */
7
+ export declare const images: {
8
+ /**
9
+ * OpenAI 图像生成
10
+ * @function openai.images.generate
11
+ * @async
12
+ * @param {OpenAI.ImageGenerateParams} params - 图像生成参数
13
+ * @param {OpenAI.RequestOptions} options - 图像生成选项
14
+ * @param {Function} onData - 数据生成时的回调
15
+ * @param {AbortSignal} signal - 停止生成的信号
16
+ * @returns {Promise<OpenAI.ImagesResponse>} 图像生成结果
17
+ */
18
+ generate: (this: MujianSdk, params: OpenAI.ImageGenerateParams, options?: OpenAI.RequestOptions, onData?: (data: unknown) => void, signal?: AbortSignal | undefined) => Promise<OpenAI.ImagesResponse>;
19
+ };
@@ -0,0 +1,4 @@
1
+ export * from './chat';
2
+ export * from './completions';
3
+ export * from './responses';
4
+ export * from './images';
@@ -0,0 +1,20 @@
1
+ import { MujianSdk } from '../../../index';
2
+ import type OpenAI from 'openai';
3
+ import type { ResponseCreateParams } from 'openai/resources/responses/responses.mjs';
4
+ /**
5
+ * @namespace openai.responses
6
+ * @description OpenAI 响应创建
7
+ */
8
+ export declare const responses: {
9
+ /**
10
+ * OpenAI 响应创建
11
+ * @function openai.responses.create
12
+ * @async
13
+ * @param {ResponseCreateParams} params - 响应创建参数
14
+ * @param {OpenAI.RequestOptions} options - 响应创建选项
15
+ * @param {Function} onData - 数据生成时的回调
16
+ * @param {AbortSignal} signal - 停止生成的信号
17
+ * @returns {Promise<void>} 响应创建结果
18
+ */
19
+ create: (this: MujianSdk, params: ResponseCreateParams, options?: OpenAI.RequestOptions, onData?: (data: unknown) => void, signal?: AbortSignal | undefined) => Promise<OpenAI.Responses>;
20
+ };