@vibexnpm/talkx 3.0.3 → 3.0.4
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 +11 -5
- package/dist/talkflow-sdk.esm.js +1 -1
- package/dist/talkflow-sdk.esm.js.map +1 -1
- package/dist/talkflow-sdk.standalone.js +1 -1
- package/dist/talkflow-sdk.standalone.js.map +1 -1
- package/dist/talkflow-sdk.umd.js +1 -1
- package/dist/talkflow-sdk.umd.js.map +1 -1
- package/package.json +1 -1
- package/src/chat/ChatClient.js +16 -13
- package/types/index.d.ts +11 -5
package/package.json
CHANGED
package/src/chat/ChatClient.js
CHANGED
|
@@ -496,14 +496,16 @@ class ChatClient extends EventEmitter {
|
|
|
496
496
|
* {@code format}/{@code language} 로 내 키인지 확인) | {@code 'NO_CHANGE'}(새 대화 없음 — 알림 발생 안 함).
|
|
497
497
|
* {@code format}/{@code language}=이번 요청이 해소한 키(방 단위 경합 식별용).
|
|
498
498
|
*
|
|
499
|
-
* @fires summaryUpdate -
|
|
499
|
+
* @fires summaryUpdate - { roomId, status: 'READY'|'NO_CHANGE'|'FAILED'|'INVALIDATED', format, languages, updatedAt }.
|
|
500
|
+
* fan-out 으로 여러 언어를 한 번에 생성하므로 {@code languages} 는 배열(§S1). {@code INVALIDATED} 는 refreshSummary 가
|
|
501
|
+
* 아니라 방 원문 삭제/편집으로 발생(요약이 통째로 폐기됨).
|
|
500
502
|
*
|
|
501
503
|
* @example
|
|
502
|
-
* const { status
|
|
503
|
-
* if (status === 'STARTED') showSpinner(); //
|
|
504
|
+
* const { status } = await chat.refreshSummary(roomId, { format: SummarizeFormat.MINUTES, lang: 'ko' });
|
|
505
|
+
* if (status === 'STARTED') showSpinner(); // fan-out 진행 시작 — summaryUpdate 대기
|
|
504
506
|
* else if (status === 'ALREADY_RUNNING') {
|
|
505
|
-
* // 방에서 다른
|
|
506
|
-
* // 그때 다시 refreshSummary 로 내
|
|
507
|
+
* // 방에서 다른 요약이 도는 중일 수 있다. 완료 이벤트 summaryUpdate 의 languages 에 내 언어가 없으면
|
|
508
|
+
* // 그때 다시 refreshSummary 로 내 언어를 요청한다(재요청 금지가 아니라 "내 언어가 없으면 재요청").
|
|
507
509
|
* showSpinner();
|
|
508
510
|
* } else if (status === 'NO_CHANGE') toast('변경 사항이 없습니다');
|
|
509
511
|
*/
|
|
@@ -2365,23 +2367,24 @@ class ChatClient extends EventEmitter {
|
|
|
2365
2367
|
/**
|
|
2366
2368
|
* Rolling 누적 요약 완료 알림(summary 채널) 수신 처리 — status 를 그대로 {@code summaryUpdate} 로 emit.
|
|
2367
2369
|
*
|
|
2368
|
-
* <p>서버 {@code SummaryStreamEvent}: {@code { status: 'READY'|'NO_CHANGE'|'FAILED', roomId, format?,
|
|
2370
|
+
* <p>서버 {@code SummaryStreamEvent}: {@code { status: 'READY'|'NO_CHANGE'|'FAILED'|'INVALIDATED', roomId, format?, languages?, updatedAt? }}.
|
|
2369
2371
|
* assistant-stream 과 달리 단계/토큰 누적이 없어 상태 관리 없이 그대로 통지한다. transient(저장 안 됨)라 UI 는
|
|
2370
2372
|
* 이벤트를 신호로만 쓰고 확정 내용은 {@link #getSummary} 로 읽는다. {@code READY}=요약 갱신됨(→ getSummary),
|
|
2371
|
-
* {@code FAILED}=실패(재시도 가능), {@code NO_CHANGE}=변경 없음(대개 refreshSummary 응답에서 동기로 이미 받음)
|
|
2373
|
+
* {@code FAILED}=실패(재시도 가능), {@code NO_CHANGE}=변경 없음(대개 refreshSummary 응답에서 동기로 이미 받음),
|
|
2374
|
+
* {@code INVALIDATED}=방 원문 삭제/편집으로 요약이 통째로 버려짐(→ 요약 화면을 즉시 비우고, 필요 시 refreshSummary 로 재생성).</p>
|
|
2372
2375
|
*
|
|
2373
|
-
* <p><b>키 식별(format+
|
|
2374
|
-
*
|
|
2375
|
-
* {@code
|
|
2376
|
+
* <p><b>키 식별(format+languages)</b>: 한 refresh 가 방 활성 언어들을 fan-out 으로 한 번에 생성하므로(§S1), 완료
|
|
2377
|
+
* 이벤트의 {@code languages} 에 내 언어가 있으면 {@code getSummary({ format, lang })} 로 읽는다. {@code READY}·
|
|
2378
|
+
* {@code FAILED} 모두 언어 목록을 싣는다({@code NO_CHANGE}·{@code INVALIDATED} 는 없음).</p>
|
|
2376
2379
|
* @private
|
|
2377
2380
|
*/
|
|
2378
2381
|
_handleSummaryEvent(roomId, event) {
|
|
2379
2382
|
if (!event || !event.status) return;
|
|
2380
2383
|
this.emit('summaryUpdate', {
|
|
2381
2384
|
roomId,
|
|
2382
|
-
status: event.status, // 'READY' | 'NO_CHANGE' | 'FAILED'
|
|
2383
|
-
format: event.format || null, // READY/FAILED 포함(NO_CHANGE 는 null)
|
|
2384
|
-
|
|
2385
|
+
status: event.status, // 'READY' | 'NO_CHANGE' | 'FAILED' | 'INVALIDATED'
|
|
2386
|
+
format: event.format || null, // READY/FAILED 포함(NO_CHANGE·INVALIDATED 는 null)
|
|
2387
|
+
languages: event.languages || null, // fan-out 으로 생성/최신화된 언어 목록(READY/FAILED). 그 외 null
|
|
2385
2388
|
updatedAt: event.updatedAt || null
|
|
2386
2389
|
});
|
|
2387
2390
|
}
|
package/types/index.d.ts
CHANGED
|
@@ -395,12 +395,18 @@ export interface RoomSummaryView {
|
|
|
395
395
|
*/
|
|
396
396
|
export interface SummaryUpdateEvent {
|
|
397
397
|
roomId: string;
|
|
398
|
-
/**
|
|
399
|
-
|
|
400
|
-
|
|
398
|
+
/**
|
|
399
|
+
* {@code 'READY'}(갱신됨 → getSummary) | {@code 'FAILED'}(실패 → 재시도 가능) | {@code 'NO_CHANGE'}(변경 없음) |
|
|
400
|
+
* {@code 'INVALIDATED'}(방 원문 삭제/편집으로 요약이 통째로 버려짐 → 화면을 비우고 필요 시 refreshSummary 로 재생성).
|
|
401
|
+
*/
|
|
402
|
+
status: 'READY' | 'NO_CHANGE' | 'FAILED' | 'INVALIDATED';
|
|
403
|
+
/** 완료/실패한 포맷. {@code READY}·{@code FAILED} 포함, {@code NO_CHANGE}·{@code INVALIDATED} 는 null. */
|
|
401
404
|
format: string | null;
|
|
402
|
-
/**
|
|
403
|
-
|
|
405
|
+
/**
|
|
406
|
+
* fan-out 으로 한 번에 생성/최신화된 언어 목록(소문자 BCP-47 / {@code 'OFF'}). {@code READY}·{@code FAILED} 포함,
|
|
407
|
+
* 그 외 null. 각 사용자는 자기 언어가 이 목록에 있으면 {@code getSummary({ format, lang })} 로 읽는다(§S1).
|
|
408
|
+
*/
|
|
409
|
+
languages: string[] | null;
|
|
404
410
|
/** 갱신 시각. {@code READY} 만 포함, 그 외 null. */
|
|
405
411
|
updatedAt: string | null;
|
|
406
412
|
}
|