simple-ai-sdk 1.0.24 → 1.0.26
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/client/chat-session-utils.d.ts.map +1 -1
- package/dist/client/chat-session-utils.js +2 -2
- package/dist/client/manager.js +2 -2
- package/dist/client/types.d.ts +9 -3
- package/dist/client/types.d.ts.map +1 -1
- package/dist/client/useChatSession.d.ts.map +1 -1
- package/dist/client/useChatSession.js +12 -4
- package/dist/shared/generate-id.d.ts +1 -0
- package/dist/shared/generate-id.d.ts.map +1 -1
- package/dist/shared/generate-id.js +3 -0
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chat-session-utils.d.ts","sourceRoot":"","sources":["../../src/client/chat-session-utils.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,SAAS,
|
|
1
|
+
{"version":3,"file":"chat-session-utils.d.ts","sourceRoot":"","sources":["../../src/client/chat-session-utils.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,SAAS,EAAqB,MAAM,oBAAoB,CAAC;AAGvE,MAAM,MAAM,0BAA0B,GAAG;IACvC,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IACjC;;OAEG;IACH,oBAAoB,CAAC,EAAE,MAAM,CAAC;CAC/B,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,sBAAsB,gBAItB,MAAM,WAAW,0BAA0B,UAoC1D"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { useCallback } from "react";
|
|
2
|
-
import {
|
|
2
|
+
import { generateMessageId } from "../shared/index.js";
|
|
3
3
|
import { useAIStreamManager } from "./context.js";
|
|
4
4
|
/**
|
|
5
5
|
* ページ遷移前にセッションを事前に初期化し、オプションでストリーミングを開始するフック
|
|
@@ -18,7 +18,7 @@ export function usePrefetchChatSession() {
|
|
|
18
18
|
manager
|
|
19
19
|
.streamChat(sessionId, [
|
|
20
20
|
{
|
|
21
|
-
id:
|
|
21
|
+
id: generateMessageId(),
|
|
22
22
|
role: "user",
|
|
23
23
|
content: options.streamMessageContent,
|
|
24
24
|
},
|
package/dist/client/manager.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { generateMessageId } from "../shared/generate-id.js";
|
|
2
2
|
import { isAbortError } from "../shared/error-utils.js";
|
|
3
3
|
class StreamManager {
|
|
4
4
|
state = {
|
|
@@ -519,7 +519,7 @@ class StreamManager {
|
|
|
519
519
|
let eventName = null;
|
|
520
520
|
let dataLines = [];
|
|
521
521
|
const assistantMessage = {
|
|
522
|
-
id:
|
|
522
|
+
id: generateMessageId(),
|
|
523
523
|
role: "assistant",
|
|
524
524
|
content: "",
|
|
525
525
|
};
|
package/dist/client/types.d.ts
CHANGED
|
@@ -50,6 +50,14 @@ export type UseChatSessionOptions = {
|
|
|
50
50
|
onFinish?: OnChatFinishCallback;
|
|
51
51
|
};
|
|
52
52
|
export type SendMessageReqBody = Record<string, JSONValue>;
|
|
53
|
+
export type SendMessageOptions = {
|
|
54
|
+
body?: SendMessageReqBody;
|
|
55
|
+
/**
|
|
56
|
+
* 指定した id の message 以降(その id を含む)を破棄してから
|
|
57
|
+
* 新しい user メッセージを追加して送信する。
|
|
58
|
+
*/
|
|
59
|
+
dropFromMessageId?: string;
|
|
60
|
+
};
|
|
53
61
|
export type ReloadMessage = (params?: {
|
|
54
62
|
body?: SendMessageReqBody;
|
|
55
63
|
}) => Promise<void>;
|
|
@@ -75,9 +83,7 @@ export type UseChatSessionReturn = {
|
|
|
75
83
|
* - 内部的に messagesVersion がインクリメントされる。
|
|
76
84
|
*/
|
|
77
85
|
setMessages: (messages: Message[]) => void;
|
|
78
|
-
sendMessage: (content: string, params?:
|
|
79
|
-
body?: SendMessageReqBody;
|
|
80
|
-
}) => Promise<void>;
|
|
86
|
+
sendMessage: (content: string, params?: SendMessageOptions) => Promise<void>;
|
|
81
87
|
reload: ReloadMessage;
|
|
82
88
|
stop: () => void;
|
|
83
89
|
stopAll: () => void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/client/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAE7D,MAAM,MAAM,UAAU,GAClB,OAAO,GACP,WAAW,GACX,WAAW,GACX,OAAO,GACP,SAAS,CAAC;AAEd,MAAM,MAAM,WAAW,GAAG;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB;;;OAGG;IACH,QAAQ,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC;IAC3C;;OAEG;IACH,cAAc,EAAE,gBAAgB,GAAG,IAAI,CAAC;IACxC;;;;;OAKG;IACH,eAAe,EAAE,MAAM,CAAC;IACxB,MAAM,EAAE,UAAU,CAAC;IACnB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IACpB,eAAe,EAAE,eAAe,GAAG,IAAI,CAAC;IACxC,YAAY,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;AAEzD,MAAM,MAAM,mBAAmB,GAAG;IAChC,cAAc,EAAE,gBAAgB,CAAC;CAClC,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG,CACjC,QAAQ,EAAE,OAAO,EAAE,EACnB,OAAO,EAAE,mBAAmB,KACzB,IAAI,CAAC;AAEV,MAAM,MAAM,qBAAqB,GAAG;IAClC,GAAG,EAAE,MAAM,CAAC;IACZ,eAAe,CAAC,EAAE,OAAO,EAAE,CAAC;IAC5B;;;;;OAKG;IACH,OAAO,CAAC,EAAE,mBAAmB,CAAC;IAC9B;;;;;;OAMG;IACH,QAAQ,CAAC,EAAE,oBAAoB,CAAC;CACjC,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;AAE3D,MAAM,MAAM,aAAa,GAAG,CAAC,MAAM,CAAC,EAAE;IACpC,IAAI,CAAC,EAAE,kBAAkB,CAAC;CAC3B,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;AAEpB,MAAM,MAAM,oBAAoB,GAAG;IACjC,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB;;OAEG;IACH,QAAQ,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC;IAC3C;;OAEG;IACH,cAAc,EAAE,gBAAgB,CAAC;IACjC;;;OAGG;IACH,eAAe,EAAE,MAAM,CAAC;IACxB,MAAM,EAAE,UAAU,CAAC;IACnB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IACpB;;;OAGG;IACH,WAAW,EAAE,CAAC,QAAQ,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC;IAC3C,WAAW,EAAE,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/client/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAE7D,MAAM,MAAM,UAAU,GAClB,OAAO,GACP,WAAW,GACX,WAAW,GACX,OAAO,GACP,SAAS,CAAC;AAEd,MAAM,MAAM,WAAW,GAAG;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB;;;OAGG;IACH,QAAQ,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC;IAC3C;;OAEG;IACH,cAAc,EAAE,gBAAgB,GAAG,IAAI,CAAC;IACxC;;;;;OAKG;IACH,eAAe,EAAE,MAAM,CAAC;IACxB,MAAM,EAAE,UAAU,CAAC;IACnB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IACpB,eAAe,EAAE,eAAe,GAAG,IAAI,CAAC;IACxC,YAAY,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;AAEzD,MAAM,MAAM,mBAAmB,GAAG;IAChC,cAAc,EAAE,gBAAgB,CAAC;CAClC,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG,CACjC,QAAQ,EAAE,OAAO,EAAE,EACnB,OAAO,EAAE,mBAAmB,KACzB,IAAI,CAAC;AAEV,MAAM,MAAM,qBAAqB,GAAG;IAClC,GAAG,EAAE,MAAM,CAAC;IACZ,eAAe,CAAC,EAAE,OAAO,EAAE,CAAC;IAC5B;;;;;OAKG;IACH,OAAO,CAAC,EAAE,mBAAmB,CAAC;IAC9B;;;;;;OAMG;IACH,QAAQ,CAAC,EAAE,oBAAoB,CAAC;CACjC,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;AAE3D,MAAM,MAAM,kBAAkB,GAAG;IAC/B,IAAI,CAAC,EAAE,kBAAkB,CAAC;IAC1B;;;OAGG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG,CAAC,MAAM,CAAC,EAAE;IACpC,IAAI,CAAC,EAAE,kBAAkB,CAAC;CAC3B,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;AAEpB,MAAM,MAAM,oBAAoB,GAAG;IACjC,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB;;OAEG;IACH,QAAQ,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC;IAC3C;;OAEG;IACH,cAAc,EAAE,gBAAgB,CAAC;IACjC;;;OAGG;IACH,eAAe,EAAE,MAAM,CAAC;IACxB,MAAM,EAAE,UAAU,CAAC;IACnB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IACpB;;;OAGG;IACH,WAAW,EAAE,CAAC,QAAQ,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC;IAC3C,WAAW,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,kBAAkB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7E,MAAM,EAAE,aAAa,CAAC;IACtB,IAAI,EAAE,MAAM,IAAI,CAAC;IACjB,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG,MAAM,IAAI,CAAC;AAE/C,MAAM,MAAM,kBAAkB,GAAG;IAC/B,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;CACpC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useChatSession.d.ts","sourceRoot":"","sources":["../../src/client/useChatSession.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,qBAAqB,EACrB,oBAAoB,
|
|
1
|
+
{"version":3,"file":"useChatSession.d.ts","sourceRoot":"","sources":["../../src/client/useChatSession.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,qBAAqB,EACrB,oBAAoB,EAGrB,MAAM,YAAY,CAAC;AAKpB,wBAAgB,cAAc,CAC5B,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,qBAAqB,GAC7B,oBAAoB,CA+JtB"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { useEffect, useSyncExternalStore, useCallback, useRef } from "react";
|
|
2
2
|
import { useAIStreamManager } from "./context.js";
|
|
3
|
-
import {
|
|
3
|
+
import { generateMessageId } from "../shared/generate-id.js";
|
|
4
4
|
export function useChatSession(sessionId, options) {
|
|
5
5
|
const { api, initialMessages = [], onError, onFinish } = options;
|
|
6
6
|
const manager = useAIStreamManager();
|
|
@@ -65,11 +65,19 @@ export function useChatSession(sessionId, options) {
|
|
|
65
65
|
}, [sessionId, session.status, session.messages.length]);
|
|
66
66
|
const sendMessage = useCallback(async (content, params) => {
|
|
67
67
|
const userMessage = {
|
|
68
|
-
id:
|
|
68
|
+
id: generateMessageId(),
|
|
69
69
|
role: "user",
|
|
70
70
|
content,
|
|
71
71
|
};
|
|
72
|
-
const
|
|
72
|
+
const baseMessages = !params?.dropFromMessageId
|
|
73
|
+
? session.messages
|
|
74
|
+
: (() => {
|
|
75
|
+
const dropIndex = session.messages.findIndex((message) => message.id === params.dropFromMessageId);
|
|
76
|
+
if (dropIndex === -1)
|
|
77
|
+
return session.messages;
|
|
78
|
+
return session.messages.slice(0, dropIndex);
|
|
79
|
+
})();
|
|
80
|
+
const updatedMessages = [...baseMessages, userMessage];
|
|
73
81
|
await manager.streamChat(sessionId, updatedMessages, {
|
|
74
82
|
api,
|
|
75
83
|
body: params?.body,
|
|
@@ -83,7 +91,7 @@ export function useChatSession(sessionId, options) {
|
|
|
83
91
|
// キャッシュなどを防ぐため、最後のmessageのidを変える
|
|
84
92
|
messagesUntilLastUser[messagesUntilLastUser.length - 1] = {
|
|
85
93
|
...messagesUntilLastUser[lastUserIndex],
|
|
86
|
-
id:
|
|
94
|
+
id: generateMessageId(),
|
|
87
95
|
};
|
|
88
96
|
await manager.streamChat(sessionId, messagesUntilLastUser, {
|
|
89
97
|
api,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generate-id.d.ts","sourceRoot":"","sources":["../../src/shared/generate-id.ts"],"names":[],"mappings":"AAAA,wBAAgB,UAAU,CAAC,EACzB,MAAM,EACN,MAAW,EACX,QAA2E,GAC5E,GAAE;IACD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACd,UAOL"}
|
|
1
|
+
{"version":3,"file":"generate-id.d.ts","sourceRoot":"","sources":["../../src/shared/generate-id.ts"],"names":[],"mappings":"AAAA,wBAAgB,UAAU,CAAC,EACzB,MAAM,EACN,MAAW,EACX,QAA2E,GAC5E,GAAE;IACD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACd,UAOL;AAED,wBAAgB,iBAAiB,WAEhC"}
|