@vibexnpm/talkx 2.5.0 → 3.0.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/README.md +3 -4
- package/dist/index.d.ts +123 -9
- 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 +102 -16
- package/src/constants.js +2 -0
- package/src/talkflow/delegates.js +2 -0
- package/src/talkflow/eventForwarding.js +1 -0
- package/types/index.d.ts +123 -9
package/README.md
CHANGED
|
@@ -198,14 +198,13 @@ if (summary.outcome !== 'EMITTED') console.warn(summary.detail); // SKIPPED/FAIL
|
|
|
198
198
|
|
|
199
199
|
// 3) 번역 — 특정 메시지를 목표 언어로 번역
|
|
200
200
|
const translated = await client.translateWithAssistant(roomId, {
|
|
201
|
-
personaId,
|
|
202
201
|
sourceMessageId: message.messageId,
|
|
203
|
-
targetLang: 'en' //
|
|
202
|
+
targetLang: 'en' // 필수
|
|
204
203
|
});
|
|
205
|
-
//
|
|
204
|
+
renderTranslatedText(translated.translatedText); // 요청자 전용 응답, 방 broadcast 없음
|
|
206
205
|
```
|
|
207
206
|
|
|
208
|
-
요약/번역은 동기 호출이라 LLM 처리(수 초) 후
|
|
207
|
+
요약/번역은 동기 호출이라 LLM 처리(수 초) 후 반환됩니다. 요약은 생성된 어시스턴트 메시지가 일반 `chatMessage` 이벤트로도 도착하고, 번역은 요청자 전용 응답으로만 반환됩니다.
|
|
209
208
|
|
|
210
209
|
---
|
|
211
210
|
|
package/dist/index.d.ts
CHANGED
|
@@ -236,7 +236,7 @@ export interface AssistantPersonaResponse {
|
|
|
236
236
|
|
|
237
237
|
/**
|
|
238
238
|
* 어시스턴트 도구 실행 결과 — 서버 {@code AssistantToolResult}.
|
|
239
|
-
* {@link ChatClient.summarizeWithAssistant}
|
|
239
|
+
* {@link ChatClient.summarizeWithAssistant} 반환.
|
|
240
240
|
*/
|
|
241
241
|
export interface AssistantToolResult {
|
|
242
242
|
/**
|
|
@@ -254,6 +254,16 @@ export interface AssistantToolResult {
|
|
|
254
254
|
detail: string | null;
|
|
255
255
|
}
|
|
256
256
|
|
|
257
|
+
/** {@link ChatClient.translateWithAssistant} 반환 — 요청자 전용 온디맨드 번역 응답. */
|
|
258
|
+
export interface OnDemandTranslationResponse {
|
|
259
|
+
/** 번역된 텍스트. */
|
|
260
|
+
translatedText: string;
|
|
261
|
+
/** 번역 대상 원본 메시지의 {@code messageId}. */
|
|
262
|
+
sourceMessageId: string;
|
|
263
|
+
/** 요청한 목표 언어. */
|
|
264
|
+
targetLang: string;
|
|
265
|
+
}
|
|
266
|
+
|
|
257
267
|
/** {@link ChatClient.summarizeWithAssistant} 옵션 — 서버 {@code SummarizeToolRequest}. */
|
|
258
268
|
export interface SummarizeToolRequest {
|
|
259
269
|
/** 요약을 수행할 어시스턴트 ID ({@link AssistantPersonaResponse.id}). 필수. */
|
|
@@ -266,12 +276,104 @@ export interface SummarizeToolRequest {
|
|
|
266
276
|
|
|
267
277
|
/** {@link ChatClient.translateWithAssistant} 옵션 — 서버 {@code TranslateToolRequest}. */
|
|
268
278
|
export interface TranslateToolRequest {
|
|
269
|
-
/** 번역을 수행할 어시스턴트 ID ({@link AssistantPersonaResponse.id}). 필수. */
|
|
270
|
-
personaId: string;
|
|
271
279
|
/** 번역 대상 메시지의 {@code messageId}. 필수. */
|
|
272
280
|
sourceMessageId: string;
|
|
273
|
-
/** 목표 언어 (예: {@code 'en'}).
|
|
274
|
-
targetLang
|
|
281
|
+
/** 목표 언어 (예: {@code 'en'}). 필수. */
|
|
282
|
+
targetLang: string;
|
|
283
|
+
}
|
|
284
|
+
|
|
285
|
+
// ── Rolling 누적 요약 (refreshSummary / getSummary / summaryUpdate) ──
|
|
286
|
+
|
|
287
|
+
/** {@link ChatClient.refreshSummary} 옵션. */
|
|
288
|
+
export interface RefreshSummaryOptions {
|
|
289
|
+
/** 요약 포맷 ({@link SummarizeFormat}). 미지정/알 수 없는 값이면 서버가 {@code SHORT} 적용. */
|
|
290
|
+
format?: SummarizeFormatValue;
|
|
291
|
+
}
|
|
292
|
+
|
|
293
|
+
/**
|
|
294
|
+
* {@link ChatClient.refreshSummary} 반환 — 비동기 접수 결과(서버 {@code SummaryRefreshResult}).
|
|
295
|
+
* 실제 완료는 {@code summaryUpdate} 이벤트 + {@link ChatClient.getSummary} 로 확인한다.
|
|
296
|
+
*/
|
|
297
|
+
export interface RefreshSummaryResult {
|
|
298
|
+
/**
|
|
299
|
+
* <ul>
|
|
300
|
+
* <li>{@code 'STARTED'} — 요약 워커 시작됨({@code summaryUpdate} 대기).</li>
|
|
301
|
+
* <li>{@code 'ALREADY_RUNNING'} — 이미 진행 중(중복 트리거 — 재요청하지 말 것).</li>
|
|
302
|
+
* <li>{@code 'NO_CHANGE'} — 새 대화 없음(알림 발생 안 함; 직전 실패가 있었다면 자동 복구됨).</li>
|
|
303
|
+
* </ul>
|
|
304
|
+
*/
|
|
305
|
+
status: 'STARTED' | 'ALREADY_RUNNING' | 'NO_CHANGE';
|
|
306
|
+
}
|
|
307
|
+
|
|
308
|
+
/** {@link ChatClient.getSummary} 옵션. */
|
|
309
|
+
export interface GetSummaryOptions {
|
|
310
|
+
/** segment 페이지 커서(exclusive). 미지정 시 처음부터. */
|
|
311
|
+
afterSeq?: number;
|
|
312
|
+
/** segment 페이지 크기(서버 상한 50). */
|
|
313
|
+
size?: number;
|
|
314
|
+
}
|
|
315
|
+
|
|
316
|
+
/** Rolling 누적 요약 통합본 — {@link RoomSummaryView.rollup}. */
|
|
317
|
+
export interface RoomSummaryRollup {
|
|
318
|
+
/** 요약 본문 ({@code format} 적용됨). */
|
|
319
|
+
content: string;
|
|
320
|
+
/** 적용된 포맷 ({@link SummarizeFormat} 소문자). */
|
|
321
|
+
format: string;
|
|
322
|
+
/** rollup 이 커버하는 가장 오래된 지점. */
|
|
323
|
+
coverStartAt: string | null;
|
|
324
|
+
/** 마지막으로 요약된 지점. */
|
|
325
|
+
watermarkAt: string | null;
|
|
326
|
+
/** 전체 segment 수(페이지 총량 힌트). */
|
|
327
|
+
segmentCount: number;
|
|
328
|
+
/** 진행 상태. {@code 'IDLE'}(완료/대기) | {@code 'RUNNING'}(요약 중) | {@code 'FAILED'}(실패). */
|
|
329
|
+
status: 'IDLE' | 'RUNNING' | 'FAILED';
|
|
330
|
+
/** 마지막 갱신 시각. */
|
|
331
|
+
updatedAt: string;
|
|
332
|
+
}
|
|
333
|
+
|
|
334
|
+
/** Rolling 누적 요약 구간 부분요약 — {@link RoomSummaryView.segments} 항목. 항상 {@code contentFormat==='neutral'}. */
|
|
335
|
+
export interface RoomSummarySegment {
|
|
336
|
+
/** segment 순번(0부터). 페이지 커서. */
|
|
337
|
+
seq: number;
|
|
338
|
+
/** 구간 부분요약 본문. */
|
|
339
|
+
content: string;
|
|
340
|
+
/** 항상 {@code 'neutral'}(format 미적용). */
|
|
341
|
+
contentFormat: string;
|
|
342
|
+
fromSentAt: string | null;
|
|
343
|
+
fromMessageId: string | null;
|
|
344
|
+
toSentAt: string | null;
|
|
345
|
+
toMessageId: string | null;
|
|
346
|
+
/** 이 구간이 담은 메시지 수. */
|
|
347
|
+
messageCount: number;
|
|
348
|
+
}
|
|
349
|
+
|
|
350
|
+
/**
|
|
351
|
+
* {@link ChatClient.getSummary} 반환 — 서버 {@code RoomSummaryView}.
|
|
352
|
+
* 아직 한 번도 요약되지 않았으면 {@code rollup} 이 {@code null} 이고 {@code segments} 는 빈 배열이다.
|
|
353
|
+
*/
|
|
354
|
+
export interface RoomSummaryView {
|
|
355
|
+
/** 통합 요약본. 최초 요약 전이면 null. */
|
|
356
|
+
rollup: RoomSummaryRollup | null;
|
|
357
|
+
/** 구간 부분요약 페이지. */
|
|
358
|
+
segments: RoomSummarySegment[];
|
|
359
|
+
/** 다음 segment 페이지 존재 여부. */
|
|
360
|
+
hasNext: boolean;
|
|
361
|
+
/** 다음 페이지 커서({@code getSummary} 의 {@code afterSeq} 로 사용). {@code hasNext === false} 면 null. */
|
|
362
|
+
nextSeq: number | null;
|
|
363
|
+
}
|
|
364
|
+
|
|
365
|
+
/**
|
|
366
|
+
* {@code summaryUpdate} 이벤트 payload — Rolling 요약 완료/실패 통지(서버 {@code SummaryStreamEvent}).
|
|
367
|
+
* transient(저장 안 됨) — 확정 내용은 {@link ChatClient.getSummary} 로 읽는다.
|
|
368
|
+
*/
|
|
369
|
+
export interface SummaryUpdateEvent {
|
|
370
|
+
roomId: string;
|
|
371
|
+
/** {@code 'READY'}(갱신됨 → getSummary) | {@code 'FAILED'}(실패 → 재시도 가능) | {@code 'NO_CHANGE'}(변경 없음). */
|
|
372
|
+
status: 'READY' | 'NO_CHANGE' | 'FAILED';
|
|
373
|
+
/** 적용된 포맷. {@code READY} 만 포함, 그 외 null. */
|
|
374
|
+
format: string | null;
|
|
375
|
+
/** 갱신 시각. {@code READY} 만 포함, 그 외 null. */
|
|
376
|
+
updatedAt: string | null;
|
|
275
377
|
}
|
|
276
378
|
|
|
277
379
|
/**
|
|
@@ -1123,6 +1225,8 @@ export interface TalkFlowClientEvents {
|
|
|
1123
1225
|
messageRead: MessageReadEventPayload;
|
|
1124
1226
|
typing: TypingEvent;
|
|
1125
1227
|
assistantProgress: AssistantProgressEvent;
|
|
1228
|
+
/** Rolling 누적 요약 완료/실패 통지 (transient) — refreshSummary 후. */
|
|
1229
|
+
summaryUpdate: SummaryUpdateEvent;
|
|
1126
1230
|
memberJoined: MemberChangePayload;
|
|
1127
1231
|
memberLeft: MemberChangePayload;
|
|
1128
1232
|
roomSubscribed: { roomId: string };
|
|
@@ -1237,6 +1341,8 @@ export interface ChatClientEvents {
|
|
|
1237
1341
|
messageRead: MessageReadEventPayload;
|
|
1238
1342
|
typing: TypingEvent;
|
|
1239
1343
|
assistantProgress: AssistantProgressEvent;
|
|
1344
|
+
/** Rolling 누적 요약 완료/실패 통지 (transient) — refreshSummary 후. */
|
|
1345
|
+
summaryUpdate: SummaryUpdateEvent;
|
|
1240
1346
|
}
|
|
1241
1347
|
|
|
1242
1348
|
/**
|
|
@@ -1300,8 +1406,12 @@ export class ChatClient implements SdkEventEmitter<ChatClientEvents> {
|
|
|
1300
1406
|
rateAssistantMessage(roomId: string, messageId: string, rating: number, comment?: string): Promise<void>;
|
|
1301
1407
|
/** 어시스턴트로 대화 요약 (버튼 진입점, 동기). */
|
|
1302
1408
|
summarizeWithAssistant(roomId: string, options: SummarizeToolRequest): Promise<AssistantToolResult>;
|
|
1303
|
-
/**
|
|
1304
|
-
translateWithAssistant(roomId: string, options: TranslateToolRequest): Promise<
|
|
1409
|
+
/** 특정 메시지 온디맨드 번역 (버튼 진입점, 동기, 요청자 전용 응답). */
|
|
1410
|
+
translateWithAssistant(roomId: string, options: TranslateToolRequest): Promise<OnDemandTranslationResponse>;
|
|
1411
|
+
/** Rolling 누적 요약 갱신 트리거 (비동기). 완료는 {@code summaryUpdate} 이벤트 + {@link getSummary} 로 확인. */
|
|
1412
|
+
refreshSummary(roomId: string, options?: RefreshSummaryOptions): Promise<RefreshSummaryResult>;
|
|
1413
|
+
/** Rolling 누적 요약 조회 — rollup + segment 페이지. 저장된 요약의 단일 진실 소스. */
|
|
1414
|
+
getSummary(roomId: string, options?: GetSummaryOptions): Promise<RoomSummaryView>;
|
|
1305
1415
|
/** 방 PM 프롬프트 레이어 조회 — PM_BACKSTAGE 방 전용, 참여자 전체. 미등록 시 404. */
|
|
1306
1416
|
getRoomPmPrompt(roomId: string): Promise<PmPromptLayerResponse>;
|
|
1307
1417
|
/** 방 PM 프롬프트 레이어 등록/수정 (upsert, 새 버전 자동 기록) — 방 주인(OWNER) 전용. content 1~2,000자. */
|
|
@@ -1641,8 +1751,12 @@ export default class TalkFlowClient implements SdkEventEmitter<TalkFlowClientEve
|
|
|
1641
1751
|
rateAssistantMessage(roomId: string, messageId: string, rating: number, comment?: string): Promise<void>;
|
|
1642
1752
|
/** 어시스턴트로 대화 요약 (버튼 진입점, 동기). */
|
|
1643
1753
|
summarizeWithAssistant(roomId: string, options: SummarizeToolRequest): Promise<AssistantToolResult>;
|
|
1644
|
-
/**
|
|
1645
|
-
translateWithAssistant(roomId: string, options: TranslateToolRequest): Promise<
|
|
1754
|
+
/** 특정 메시지 온디맨드 번역 (버튼 진입점, 동기, 요청자 전용 응답). */
|
|
1755
|
+
translateWithAssistant(roomId: string, options: TranslateToolRequest): Promise<OnDemandTranslationResponse>;
|
|
1756
|
+
/** Rolling 누적 요약 갱신 트리거 (비동기). 완료는 {@code summaryUpdate} 이벤트 + {@link getSummary} 로 확인. */
|
|
1757
|
+
refreshSummary(roomId: string, options?: RefreshSummaryOptions): Promise<RefreshSummaryResult>;
|
|
1758
|
+
/** Rolling 누적 요약 조회 — rollup + segment 페이지. 저장된 요약의 단일 진실 소스. */
|
|
1759
|
+
getSummary(roomId: string, options?: GetSummaryOptions): Promise<RoomSummaryView>;
|
|
1646
1760
|
/** 방 PM 프롬프트 레이어 조회 — PM_BACKSTAGE 방 전용, 참여자 전체. 미등록 시 404. */
|
|
1647
1761
|
getRoomPmPrompt(roomId: string): Promise<PmPromptLayerResponse>;
|
|
1648
1762
|
/** 방 PM 프롬프트 레이어 등록/수정 (upsert, 새 버전 자동 기록) — 방 주인(OWNER) 전용. content 1~2,000자. */
|