simple-ai-sdk 1.0.47 → 1.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/client/manager.d.ts.map +1 -1
- package/dist/client/manager.js +51 -17
- package/dist/shared/error-utils.d.ts +5 -0
- package/dist/shared/error-utils.d.ts.map +1 -1
- package/dist/shared/error-utils.js +8 -0
- package/dist/shared/index.d.ts +1 -0
- package/dist/shared/index.d.ts.map +1 -1
- package/dist/shared/index.js +1 -0
- package/dist/spec.md +7 -0
- package/package.json +3 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../src/client/manager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,WAAW,EACX,oBAAoB,EAEpB,kBAAkB,EAClB,qBAAqB,EACrB,kBAAkB,EACnB,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EAEV,OAAO,EACP,SAAS,EAEV,MAAM,oBAAoB,CAAC;AAK5B,MAAM,WAAW,cAAc;IAC7B,SAAS,CAAC,QAAQ,EAAE,qBAAqB,GAAG,MAAM,IAAI,CAAC;IACvD,WAAW,IAAI,kBAAkB,CAAC;IAClC;;;OAGG;IACH,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS,CAAC;IACvD,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,eAAe,CAAC,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IAClE;;;;OAIG;IACH,kBAAkB,CAChB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,oBAAoB,GAAG,SAAS,GACxC,IAAI,CAAC;IACR;;OAEG;IACH,iBAAiB,CACf,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,CAAC,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC,GAAG,SAAS,GAC5C,IAAI,CAAC;IACR;;OAEG;IACH,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACvC;;OAEG;IACH,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACxC;;;OAGG;IACH,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACtC;;;OAGG;IACH,WAAW,CACT,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,OAAO,EAAE,EACnB,OAAO,CAAC,EAAE,kBAAkB,GAC3B,IAAI,CAAC;IACR,UAAU,CACR,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,OAAO,EAAE,EACnB,OAAO,EAAE;QACP,GAAG,EAAE,MAAM,CAAC;QACZ,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;KAClC,GACA,OAAO,CAAC,IAAI,CAAC,CAAC;IACjB,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC;;OAEG;IACH,cAAc,IAAI,IAAI,CAAC;IACvB;;;OAGG;IACH,OAAO,IAAI,IAAI,CAAC;CACjB;AAED,MAAM,MAAM,oBAAoB,GAAG;IACjC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,cAAM,aAAc,YAAW,cAAc;IAC3C,OAAO,CAAC,KAAK,CAEX;IAEF,OAAO,CAAC,SAAS,CAAoC;IAGrD,OAAO,CAAC,YAAY,CAAS;IAE7B,OAAO,CAAC,iBAAiB,CAAS;IAClC,OAAO,CAAC,KAAK,CAAuB;IACpC,OAAO,CAAC,gBAAgB,CAA8C;IAEtE,OAAO,CAAC,MAAM;IAsBd,OAAO,CAAC,MAAM;IAMd,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,KAAK,CAAU;IACvB,OAAO,CAAC,KAAK,CAAC,CAAS;IACvB,OAAO,CAAC,UAAU,CAA+C;IAEjE,OAAO,CAAC,iBAAiB,CAA6B;IAEtD,OAAO,CAAC,cAAc,CAA2C;IAEjE,OAAO,CAAC,aAAa,CAA6C;IAIlE,OAAO,CAAC,eAAe,CAGnB;IACJ,OAAO,CAAC,cAAc,CAA4B;IAElD,OAAO,CAAC,SAAS,CAA6B;gBAElC,OAAO,GAAE,oBAAyB;IAoB9C,SAAS,CAAC,QAAQ,EAAE,qBAAqB,GAAG,MAAM,IAAI;IAOtD,kBAAkB,CAChB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,oBAAoB,GAAG,SAAS;IAmB3C,iBAAiB,CACf,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,CAAC,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC,GAAG,SAAS;IAqB/C,WAAW,IAAI,kBAAkB;IAMjC,OAAO,CAAC,MAAM;IAsDd,OAAO,CAAC,yBAAyB;IASjC,OAAO,CAAC,aAAa;IAWrB,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS;IAOtD,YAAY,CAAC,SAAS,EAAE,MAAM;IAO9B,OAAO,CAAC,mBAAmB;IAO3B,OAAO,CAAC,mBAAmB;IAO3B,OAAO,CAAC,oBAAoB;IAgC5B,OAAO,CAAC,mBAAmB;IAgB3B,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,eAAe,GAAE,OAAO,EAAO;IAiE9D,aAAa,CAAC,SAAS,EAAE,MAAM;IAS/B,cAAc,CAAC,SAAS,EAAE,MAAM;IAahC;;;;;;OAMG;IACH,OAAO,CAAC,mBAAmB;IA0D3B,OAAO,CAAC,cAAc;IAmBtB;;;;;OAKG;IACH,OAAO,CAAC,aAAa;IA4Bf,UAAU,CACd,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,OAAO,EAAE,EACnB,OAAO,EAAE;QACP,GAAG,EAAE,MAAM,CAAC;QACZ,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;KAClC;
|
|
1
|
+
{"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../src/client/manager.ts"],"names":[],"mappings":"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"}
|
package/dist/client/manager.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { generateMessageId } from "../shared/generate-id.js";
|
|
2
|
-
import { isAbortError } from "../shared/error-utils.js";
|
|
2
|
+
import { isAbortError, ChatError } from "../shared/error-utils.js";
|
|
3
3
|
class StreamManager {
|
|
4
4
|
state = {
|
|
5
5
|
sessions: new Map(),
|
|
@@ -629,15 +629,29 @@ class StreamManager {
|
|
|
629
629
|
let finishedReason = null;
|
|
630
630
|
if (isDonePayload(parsed))
|
|
631
631
|
finishedReason = toChatFinishReason(parsed.finished_reason);
|
|
632
|
-
|
|
633
|
-
|
|
634
|
-
|
|
635
|
-
|
|
636
|
-
|
|
637
|
-
|
|
638
|
-
|
|
639
|
-
|
|
640
|
-
|
|
632
|
+
if (finishedReason === "content_filter") {
|
|
633
|
+
// content_filter は完了ではなく既知エラーとして扱う
|
|
634
|
+
const err = new ChatError("content_filter");
|
|
635
|
+
this.updateSession(sessionId, {
|
|
636
|
+
status: "error",
|
|
637
|
+
error: err,
|
|
638
|
+
abortController: null,
|
|
639
|
+
finishedReason,
|
|
640
|
+
nextAssistantMessageId: null,
|
|
641
|
+
}, true);
|
|
642
|
+
this.deliverOrQueueError(sessionId, err);
|
|
643
|
+
}
|
|
644
|
+
else {
|
|
645
|
+
this.updateSession(sessionId, {
|
|
646
|
+
status: "ready",
|
|
647
|
+
abortController: null,
|
|
648
|
+
finishedReason,
|
|
649
|
+
nextAssistantMessageId: null,
|
|
650
|
+
}, true);
|
|
651
|
+
this.deliverOrQueueFinish(sessionId, {
|
|
652
|
+
finishedReason,
|
|
653
|
+
});
|
|
654
|
+
}
|
|
641
655
|
shouldTerminate = true;
|
|
642
656
|
break;
|
|
643
657
|
}
|
|
@@ -698,13 +712,31 @@ class StreamManager {
|
|
|
698
712
|
// 意図: 正常完了(サーバが done を送らないケース)だけをここで処理。
|
|
699
713
|
// failed=true(error)の場合は既に状態更新済みなので何もしない。
|
|
700
714
|
if (!failed && !shouldTerminate) {
|
|
701
|
-
this.
|
|
702
|
-
|
|
703
|
-
|
|
704
|
-
|
|
705
|
-
|
|
706
|
-
|
|
707
|
-
|
|
715
|
+
const s = this.state.sessions.get(sessionId);
|
|
716
|
+
const lastMsg = s?.messages.at(-1);
|
|
717
|
+
const hasAssistantContent = lastMsg !== undefined &&
|
|
718
|
+
lastMsg.role === "assistant" &&
|
|
719
|
+
lastMsg.content.length > 0;
|
|
720
|
+
if (!hasAssistantContent) {
|
|
721
|
+
const err = new ChatError("no_response");
|
|
722
|
+
this.updateSession(sessionId, {
|
|
723
|
+
status: "error",
|
|
724
|
+
error: err,
|
|
725
|
+
abortController: null,
|
|
726
|
+
finishedReason: null,
|
|
727
|
+
nextAssistantMessageId: null,
|
|
728
|
+
}, true);
|
|
729
|
+
this.deliverOrQueueError(sessionId, err);
|
|
730
|
+
}
|
|
731
|
+
else {
|
|
732
|
+
this.updateSession(sessionId, {
|
|
733
|
+
status: "ready",
|
|
734
|
+
abortController: null,
|
|
735
|
+
finishedReason: null,
|
|
736
|
+
nextAssistantMessageId: null,
|
|
737
|
+
}, true); // Immediate for status change
|
|
738
|
+
this.deliverOrQueueFinish(sessionId, { finishedReason: null }, "completion");
|
|
739
|
+
}
|
|
708
740
|
}
|
|
709
741
|
}
|
|
710
742
|
catch (error) {
|
|
@@ -715,6 +747,7 @@ class StreamManager {
|
|
|
715
747
|
if (s?.status !== "aborted") {
|
|
716
748
|
this.updateSession(sessionId, {
|
|
717
749
|
status: "aborted",
|
|
750
|
+
error: new ChatError("aborted"),
|
|
718
751
|
abortController: null,
|
|
719
752
|
nextAssistantMessageId: null,
|
|
720
753
|
}, true); // Immediate for status change
|
|
@@ -768,6 +801,7 @@ class StreamManager {
|
|
|
768
801
|
// ユーザーによる中断を明示的に示すため status を "aborted" に更新
|
|
769
802
|
this.updateSession(sessionId, {
|
|
770
803
|
status: "aborted",
|
|
804
|
+
error: new ChatError("aborted"),
|
|
771
805
|
abortController: null,
|
|
772
806
|
nextAssistantMessageId: null,
|
|
773
807
|
}, true);
|
|
@@ -1,2 +1,7 @@
|
|
|
1
1
|
export declare function isAbortError(e: unknown): boolean;
|
|
2
|
+
export type ChatErrorCode = "content_filter" | "aborted" | "no_response";
|
|
3
|
+
export declare class ChatError extends Error {
|
|
4
|
+
readonly code: ChatErrorCode;
|
|
5
|
+
constructor(code: ChatErrorCode, message?: string);
|
|
6
|
+
}
|
|
2
7
|
//# sourceMappingURL=error-utils.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"error-utils.d.ts","sourceRoot":"","sources":["../../src/shared/error-utils.ts"],"names":[],"mappings":"AAAA,wBAAgB,YAAY,CAAC,CAAC,EAAE,OAAO,GAAG,OAAO,CAYhD"}
|
|
1
|
+
{"version":3,"file":"error-utils.d.ts","sourceRoot":"","sources":["../../src/shared/error-utils.ts"],"names":[],"mappings":"AAAA,wBAAgB,YAAY,CAAC,CAAC,EAAE,OAAO,GAAG,OAAO,CAYhD;AAED,MAAM,MAAM,aAAa,GAAG,gBAAgB,GAAG,SAAS,GAAG,aAAa,CAAC;AAEzE,qBAAa,SAAU,SAAQ,KAAK;IAClC,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC;gBAEjB,IAAI,EAAE,aAAa,EAAE,OAAO,CAAC,EAAE,MAAM;CAKlD"}
|
package/dist/shared/index.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/shared/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,kBAAkB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/shared/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC;AAC1B,cAAc,kBAAkB,CAAC;AACjC,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,KAAK,aAAa,EAAE,MAAM,kBAAkB,CAAC"}
|
package/dist/shared/index.js
CHANGED
package/dist/spec.md
CHANGED
|
@@ -396,6 +396,10 @@ type UseChatSessionReturn = {
|
|
|
396
396
|
*/
|
|
397
397
|
messagesVersion: number
|
|
398
398
|
status: ChatStatus
|
|
399
|
+
/**
|
|
400
|
+
* 既知ケースでは ChatError が入る(Error のサブクラス)。
|
|
401
|
+
* - code: "content_filter" | "aborted" | "no_response"
|
|
402
|
+
*/
|
|
399
403
|
error: Error | null
|
|
400
404
|
/**
|
|
401
405
|
* API を呼ばずに現在のセッションの messages を即時上書きする。
|
|
@@ -450,6 +454,9 @@ await Promise.all([
|
|
|
450
454
|
- `onFinish` の `details.metadata` は、そのストリーム中に受信したメタデータの最新スナップショットです。
|
|
451
455
|
- 複数購読時の優先: 同一 `sessionId` を複数コンポーネントが使用する場合、最後に登録された `onFinish` が有効です。
|
|
452
456
|
- `onError` は per-call: `sendMessage`/`reload` 呼び出し時に渡されたハンドラが呼ばれます(最新保持は行いません)。
|
|
457
|
+
- `content_filter` は完了ではなくエラー扱い: `status: "error"` になり、`onFinish` ではなく `onError` が呼ばれます(`error.code === "content_filter"`)。
|
|
458
|
+
- ユーザー中断は既知エラー扱い: `stop()` または AbortError 由来の中断時は `status: "aborted"` かつ `error.code === "aborted"` になります。
|
|
459
|
+
- サーバが `done` を送らずに終了し assistant 応答が空の場合は `status: "error"` になり、`onError` が呼ばれます(`error.code === "no_response"`)。
|
|
453
460
|
|
|
454
461
|
### ページ遷移前のセッション事前準備(`usePrefetchChatSession`)
|
|
455
462
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "simple-ai-sdk",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.1.1",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "Simple AI SDK for Hono / React19+ / OpenAI",
|
|
6
6
|
"type": "module",
|
|
@@ -59,7 +59,9 @@
|
|
|
59
59
|
"dev": "tsc --watch",
|
|
60
60
|
"typecheck": "tsc --noEmit",
|
|
61
61
|
"lint": "eslint .",
|
|
62
|
+
"pretest": "pnpm build",
|
|
62
63
|
"test": "node --test test/**/*.test.mjs",
|
|
64
|
+
"test:types": "tsc --project test-types/tsconfig.json --noEmit",
|
|
63
65
|
"publish-sdk": "npm version patch --no-git-tag-version && pnpm build && pnpm publish --no-git-checks --access public"
|
|
64
66
|
}
|
|
65
67
|
}
|