@wave-av/sdk 2.0.0 → 2.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/dist/audience.d.ts +104 -0
- package/dist/audience.d.ts.map +1 -0
- package/dist/camera-control.d.ts +54 -0
- package/dist/camera-control.d.ts.map +1 -0
- package/dist/captions.d.ts +362 -0
- package/dist/captions.d.ts.map +1 -0
- package/dist/chapters.d.ts +315 -0
- package/dist/chapters.d.ts.map +1 -0
- package/dist/client.d.ts +191 -0
- package/dist/client.d.ts.map +1 -0
- package/dist/clips.d.ts +258 -0
- package/dist/clips.d.ts.map +1 -0
- package/dist/cloud-switcher.d.ts +65 -0
- package/dist/cloud-switcher.d.ts.map +1 -0
- package/dist/collab-types.d.ts +204 -0
- package/dist/collab-types.d.ts.map +1 -0
- package/dist/collab.d.ts +226 -0
- package/dist/collab.d.ts.map +1 -0
- package/dist/connect.d.ts +88 -0
- package/dist/connect.d.ts.map +1 -0
- package/dist/creator.d.ts +109 -0
- package/dist/creator.d.ts.map +1 -0
- package/dist/desktop.d.ts +95 -0
- package/dist/desktop.d.ts.map +1 -0
- package/dist/distribution.d.ts +92 -0
- package/dist/distribution.d.ts.map +1 -0
- package/dist/drm.d.ts +87 -0
- package/dist/drm.d.ts.map +1 -0
- package/dist/edge.d.ts +112 -0
- package/dist/edge.d.ts.map +1 -0
- package/dist/editor-types.d.ts +236 -0
- package/dist/editor-types.d.ts.map +1 -0
- package/dist/editor.d.ts +206 -0
- package/dist/editor.d.ts.map +1 -0
- package/dist/fleet.d.ts +207 -0
- package/dist/fleet.d.ts.map +1 -0
- package/dist/ghost.d.ts +213 -0
- package/dist/ghost.d.ts.map +1 -0
- package/dist/index.d.ts +144 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/marketplace.d.ts +90 -0
- package/dist/marketplace.d.ts.map +1 -0
- package/dist/mesh.d.ts +237 -0
- package/dist/mesh.d.ts.map +1 -0
- package/dist/notifications.d.ts +82 -0
- package/dist/notifications.d.ts.map +1 -0
- package/dist/phone.d.ts +369 -0
- package/dist/phone.d.ts.map +1 -0
- package/dist/pipeline.d.ts +409 -0
- package/dist/pipeline.d.ts.map +1 -0
- package/dist/podcast.d.ts +113 -0
- package/dist/podcast.d.ts.map +1 -0
- package/dist/prism.d.ts +132 -0
- package/dist/prism.d.ts.map +1 -0
- package/dist/prompter.d.ts +184 -0
- package/dist/prompter.d.ts.map +1 -0
- package/dist/pulse.d.ts +156 -0
- package/dist/pulse.d.ts.map +1 -0
- package/dist/qr.d.ts +82 -0
- package/dist/qr.d.ts.map +1 -0
- package/dist/replay.d.ts +52 -0
- package/dist/replay.d.ts.map +1 -0
- package/dist/scene-types.d.ts +190 -0
- package/dist/scene-types.d.ts.map +1 -0
- package/dist/scene.d.ts +213 -0
- package/dist/scene.d.ts.map +1 -0
- package/dist/search-types.d.ts +210 -0
- package/dist/search-types.d.ts.map +1 -0
- package/dist/search.d.ts +250 -0
- package/dist/search.d.ts.map +1 -0
- package/dist/sentiment.d.ts +378 -0
- package/dist/sentiment.d.ts.map +1 -0
- package/dist/signage.d.ts +101 -0
- package/dist/signage.d.ts.map +1 -0
- package/dist/slides.d.ts +68 -0
- package/dist/slides.d.ts.map +1 -0
- package/dist/studio-ai-types.d.ts +198 -0
- package/dist/studio-ai-types.d.ts.map +1 -0
- package/dist/studio-ai.d.ts +218 -0
- package/dist/studio-ai.d.ts.map +1 -0
- package/dist/studio-types.d.ts +267 -0
- package/dist/studio-types.d.ts.map +1 -0
- package/dist/studio.d.ts +234 -0
- package/dist/studio.d.ts.map +1 -0
- package/dist/telemetry.d.ts +76 -0
- package/dist/telemetry.d.ts.map +1 -0
- package/dist/transcribe-types.d.ts +153 -0
- package/dist/transcribe-types.d.ts.map +1 -0
- package/dist/transcribe.d.ts +218 -0
- package/dist/transcribe.d.ts.map +1 -0
- package/dist/usb.d.ts +64 -0
- package/dist/usb.d.ts.map +1 -0
- package/dist/vault.d.ts +121 -0
- package/dist/vault.d.ts.map +1 -0
- package/dist/voice.d.ts +307 -0
- package/dist/voice.d.ts.map +1 -0
- package/dist/zoom.d.ts +91 -0
- package/dist/zoom.d.ts.map +1 -0
- package/package.json +1 -1
package/dist/search.d.ts
ADDED
|
@@ -0,0 +1,250 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* WAVE SDK - Search API
|
|
3
|
+
*
|
|
4
|
+
* Search across media content using text, visual, and audio queries.
|
|
5
|
+
*
|
|
6
|
+
* NOTE: This is a client SDK. All authorization checks are performed server-side.
|
|
7
|
+
* The API will return 403 Forbidden if the user lacks required permissions.
|
|
8
|
+
*/
|
|
9
|
+
import type { WaveClient, PaginationParams, PaginatedResponse } from './client';
|
|
10
|
+
export * from './search-types';
|
|
11
|
+
import type { AudioSearchRequest, IndexStatus, SearchFilters, SearchRequest, SearchResponse, SearchResult, SearchResultType, SearchSuggestion, VisualSearchRequest } from './search-types';
|
|
12
|
+
export declare class SearchAPI {
|
|
13
|
+
private readonly client;
|
|
14
|
+
private readonly basePath;
|
|
15
|
+
constructor(client: WaveClient);
|
|
16
|
+
/**
|
|
17
|
+
* Search content
|
|
18
|
+
*
|
|
19
|
+
* Requires: search:query permission
|
|
20
|
+
*/
|
|
21
|
+
search(request: SearchRequest): Promise<SearchResponse>;
|
|
22
|
+
/**
|
|
23
|
+
* Quick search (simplified API)
|
|
24
|
+
*
|
|
25
|
+
* Requires: search:query permission
|
|
26
|
+
*/
|
|
27
|
+
quickSearch(query: string, options?: {
|
|
28
|
+
types?: SearchResultType[];
|
|
29
|
+
limit?: number;
|
|
30
|
+
filters?: SearchFilters;
|
|
31
|
+
}): Promise<SearchResult[]>;
|
|
32
|
+
/**
|
|
33
|
+
* Search within a specific media
|
|
34
|
+
*
|
|
35
|
+
* Requires: search:query permission
|
|
36
|
+
*/
|
|
37
|
+
searchInMedia(mediaId: string, mediaType: 'video' | 'audio' | 'clip' | 'stream', query: string, options?: {
|
|
38
|
+
limit?: number;
|
|
39
|
+
}): Promise<Array<{
|
|
40
|
+
timestamp: number;
|
|
41
|
+
end_timestamp?: number;
|
|
42
|
+
text?: string;
|
|
43
|
+
score: number;
|
|
44
|
+
type: 'speech' | 'visual' | 'chapter';
|
|
45
|
+
}>>;
|
|
46
|
+
/**
|
|
47
|
+
* Visual search (search by image)
|
|
48
|
+
*
|
|
49
|
+
* Requires: search:visual permission
|
|
50
|
+
*/
|
|
51
|
+
visualSearch(request: VisualSearchRequest): Promise<SearchResponse>;
|
|
52
|
+
/**
|
|
53
|
+
* Find similar frames
|
|
54
|
+
*
|
|
55
|
+
* Requires: search:visual permission
|
|
56
|
+
*/
|
|
57
|
+
findSimilarFrames(mediaId: string, timestamp: number, options?: {
|
|
58
|
+
limit?: number;
|
|
59
|
+
min_similarity?: number;
|
|
60
|
+
}): Promise<Array<{
|
|
61
|
+
media_id: string;
|
|
62
|
+
media_type: string;
|
|
63
|
+
timestamp: number;
|
|
64
|
+
thumbnail_url: string;
|
|
65
|
+
similarity: number;
|
|
66
|
+
}>>;
|
|
67
|
+
/**
|
|
68
|
+
* Detect objects in media
|
|
69
|
+
*
|
|
70
|
+
* Requires: search:visual permission
|
|
71
|
+
*/
|
|
72
|
+
detectObjects(mediaId: string, options?: {
|
|
73
|
+
timestamps?: number[];
|
|
74
|
+
confidence_threshold?: number;
|
|
75
|
+
}): Promise<Array<{
|
|
76
|
+
timestamp: number;
|
|
77
|
+
objects: Array<{
|
|
78
|
+
label: string;
|
|
79
|
+
confidence: number;
|
|
80
|
+
bounding_box: {
|
|
81
|
+
x: number;
|
|
82
|
+
y: number;
|
|
83
|
+
width: number;
|
|
84
|
+
height: number;
|
|
85
|
+
};
|
|
86
|
+
}>;
|
|
87
|
+
}>>;
|
|
88
|
+
/**
|
|
89
|
+
* Audio search (search by audio)
|
|
90
|
+
*
|
|
91
|
+
* Requires: search:audio permission
|
|
92
|
+
*/
|
|
93
|
+
audioSearch(request: AudioSearchRequest): Promise<SearchResponse>;
|
|
94
|
+
/**
|
|
95
|
+
* Find similar audio segments
|
|
96
|
+
*
|
|
97
|
+
* Requires: search:audio permission
|
|
98
|
+
*/
|
|
99
|
+
findSimilarAudio(mediaId: string, startTime: number, endTime: number, options?: {
|
|
100
|
+
limit?: number;
|
|
101
|
+
min_similarity?: number;
|
|
102
|
+
}): Promise<Array<{
|
|
103
|
+
media_id: string;
|
|
104
|
+
media_type: string;
|
|
105
|
+
start_time: number;
|
|
106
|
+
end_time: number;
|
|
107
|
+
similarity: number;
|
|
108
|
+
}>>;
|
|
109
|
+
/**
|
|
110
|
+
* Detect music in media
|
|
111
|
+
*
|
|
112
|
+
* Requires: search:audio permission
|
|
113
|
+
*/
|
|
114
|
+
detectMusic(mediaId: string): Promise<Array<{
|
|
115
|
+
start_time: number;
|
|
116
|
+
end_time: number;
|
|
117
|
+
confidence: number;
|
|
118
|
+
music_info?: {
|
|
119
|
+
title?: string;
|
|
120
|
+
artist?: string;
|
|
121
|
+
album?: string;
|
|
122
|
+
isrc?: string;
|
|
123
|
+
};
|
|
124
|
+
}>>;
|
|
125
|
+
/**
|
|
126
|
+
* Get search suggestions
|
|
127
|
+
*
|
|
128
|
+
* Requires: search:query permission
|
|
129
|
+
*/
|
|
130
|
+
getSuggestions(prefix: string, options?: {
|
|
131
|
+
limit?: number;
|
|
132
|
+
types?: SearchResultType[];
|
|
133
|
+
}): Promise<SearchSuggestion[]>;
|
|
134
|
+
/**
|
|
135
|
+
* Get trending searches
|
|
136
|
+
*
|
|
137
|
+
* Requires: search:query permission
|
|
138
|
+
*/
|
|
139
|
+
getTrending(options?: {
|
|
140
|
+
limit?: number;
|
|
141
|
+
timeframe?: 'hour' | 'day' | 'week';
|
|
142
|
+
}): Promise<Array<{
|
|
143
|
+
query: string;
|
|
144
|
+
count: number;
|
|
145
|
+
trend: number;
|
|
146
|
+
}>>;
|
|
147
|
+
/**
|
|
148
|
+
* Index media for search
|
|
149
|
+
*
|
|
150
|
+
* Requires: search:index permission
|
|
151
|
+
*/
|
|
152
|
+
indexMedia(mediaId: string, mediaType: 'video' | 'audio' | 'clip' | 'stream', options?: {
|
|
153
|
+
features?: ('transcript' | 'visual' | 'audio' | 'metadata')[];
|
|
154
|
+
priority?: 'low' | 'normal' | 'high';
|
|
155
|
+
webhook_url?: string;
|
|
156
|
+
}): Promise<IndexStatus>;
|
|
157
|
+
/**
|
|
158
|
+
* Get index status
|
|
159
|
+
*
|
|
160
|
+
* Requires: search:read permission
|
|
161
|
+
*/
|
|
162
|
+
getIndexStatus(mediaId: string): Promise<IndexStatus>;
|
|
163
|
+
/**
|
|
164
|
+
* Reindex media
|
|
165
|
+
*
|
|
166
|
+
* Requires: search:index permission
|
|
167
|
+
*/
|
|
168
|
+
reindexMedia(mediaId: string, options?: {
|
|
169
|
+
features?: ('transcript' | 'visual' | 'audio' | 'metadata')[];
|
|
170
|
+
}): Promise<IndexStatus>;
|
|
171
|
+
/**
|
|
172
|
+
* Remove media from index
|
|
173
|
+
*
|
|
174
|
+
* Requires: search:index permission (server-side RBAC enforced)
|
|
175
|
+
*/
|
|
176
|
+
removeFromIndex(mediaId: string): Promise<void>;
|
|
177
|
+
/**
|
|
178
|
+
* Save a search
|
|
179
|
+
*
|
|
180
|
+
* Requires: search:save permission
|
|
181
|
+
*/
|
|
182
|
+
saveSearch(name: string, request: SearchRequest, options?: {
|
|
183
|
+
notify_on_new?: boolean;
|
|
184
|
+
}): Promise<{
|
|
185
|
+
id: string;
|
|
186
|
+
name: string;
|
|
187
|
+
query: SearchRequest;
|
|
188
|
+
created_at: string;
|
|
189
|
+
}>;
|
|
190
|
+
/**
|
|
191
|
+
* List saved searches
|
|
192
|
+
*
|
|
193
|
+
* Requires: search:read permission
|
|
194
|
+
*/
|
|
195
|
+
listSavedSearches(params?: PaginationParams): Promise<PaginatedResponse<{
|
|
196
|
+
id: string;
|
|
197
|
+
name: string;
|
|
198
|
+
query: SearchRequest;
|
|
199
|
+
last_run?: string;
|
|
200
|
+
new_results?: number;
|
|
201
|
+
}>>;
|
|
202
|
+
/**
|
|
203
|
+
* Run a saved search
|
|
204
|
+
*
|
|
205
|
+
* Requires: search:query permission
|
|
206
|
+
*/
|
|
207
|
+
runSavedSearch(savedSearchId: string): Promise<SearchResponse>;
|
|
208
|
+
/**
|
|
209
|
+
* Remove a saved search
|
|
210
|
+
*
|
|
211
|
+
* Requires: search:save permission (server-side RBAC enforced)
|
|
212
|
+
*/
|
|
213
|
+
removeSavedSearch(savedSearchId: string): Promise<void>;
|
|
214
|
+
/**
|
|
215
|
+
* Get search analytics
|
|
216
|
+
*
|
|
217
|
+
* Requires: search:analytics permission
|
|
218
|
+
*/
|
|
219
|
+
getAnalytics(options?: {
|
|
220
|
+
start_date?: string;
|
|
221
|
+
end_date?: string;
|
|
222
|
+
group_by?: 'day' | 'week' | 'month';
|
|
223
|
+
}): Promise<{
|
|
224
|
+
total_searches: number;
|
|
225
|
+
unique_queries: number;
|
|
226
|
+
zero_results_rate: number;
|
|
227
|
+
average_results: number;
|
|
228
|
+
top_queries: Array<{
|
|
229
|
+
query: string;
|
|
230
|
+
count: number;
|
|
231
|
+
avg_results: number;
|
|
232
|
+
}>;
|
|
233
|
+
top_zero_results: Array<{
|
|
234
|
+
query: string;
|
|
235
|
+
count: number;
|
|
236
|
+
}>;
|
|
237
|
+
}>;
|
|
238
|
+
/**
|
|
239
|
+
* Wait for indexing to complete
|
|
240
|
+
*/
|
|
241
|
+
waitForIndex(mediaId: string, options?: {
|
|
242
|
+
pollInterval?: number;
|
|
243
|
+
timeout?: number;
|
|
244
|
+
onProgress?: (status: IndexStatus) => void;
|
|
245
|
+
}): Promise<IndexStatus>;
|
|
246
|
+
}
|
|
247
|
+
/**
|
|
248
|
+
* Create a Search API instance
|
|
249
|
+
*/
|
|
250
|
+
export declare function createSearchAPI(client: WaveClient): SearchAPI;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"search.d.ts","sourceRoot":"","sources":["../src/search.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,378 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* WAVE SDK - Sentiment API
|
|
3
|
+
*
|
|
4
|
+
* Analyze sentiment and emotions in audio, video, and text content.
|
|
5
|
+
*
|
|
6
|
+
* NOTE: This is a client SDK. All authorization checks are performed server-side.
|
|
7
|
+
* The API will return 403 Forbidden if the user lacks required permissions.
|
|
8
|
+
*/
|
|
9
|
+
import type { WaveClient, PaginationParams, PaginatedResponse, Timestamps, Metadata } from './client';
|
|
10
|
+
/**
|
|
11
|
+
* Analysis status
|
|
12
|
+
*/
|
|
13
|
+
export type AnalysisStatus = 'pending' | 'processing' | 'ready' | 'failed';
|
|
14
|
+
/**
|
|
15
|
+
* Sentiment label
|
|
16
|
+
*/
|
|
17
|
+
export type SentimentLabel = 'very_negative' | 'negative' | 'neutral' | 'positive' | 'very_positive';
|
|
18
|
+
/**
|
|
19
|
+
* Emotion type
|
|
20
|
+
*/
|
|
21
|
+
export type EmotionType = 'joy' | 'sadness' | 'anger' | 'fear' | 'surprise' | 'disgust' | 'contempt' | 'neutral';
|
|
22
|
+
/**
|
|
23
|
+
* Analysis source type
|
|
24
|
+
*/
|
|
25
|
+
export type SourceType = 'video' | 'audio' | 'text' | 'chat' | 'transcript';
|
|
26
|
+
/**
|
|
27
|
+
* Sentiment analysis job
|
|
28
|
+
*/
|
|
29
|
+
export interface SentimentAnalysis extends Timestamps {
|
|
30
|
+
id: string;
|
|
31
|
+
organization_id: string;
|
|
32
|
+
source_type: SourceType;
|
|
33
|
+
source_id?: string;
|
|
34
|
+
source_url?: string;
|
|
35
|
+
status: AnalysisStatus;
|
|
36
|
+
overall_sentiment: SentimentLabel;
|
|
37
|
+
sentiment_score: number;
|
|
38
|
+
confidence: number;
|
|
39
|
+
dominant_emotions: EmotionType[];
|
|
40
|
+
duration?: number;
|
|
41
|
+
segment_count?: number;
|
|
42
|
+
error?: string;
|
|
43
|
+
metadata?: Metadata;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Sentiment segment
|
|
47
|
+
*/
|
|
48
|
+
export interface SentimentSegment {
|
|
49
|
+
id: string;
|
|
50
|
+
start_time: number;
|
|
51
|
+
end_time: number;
|
|
52
|
+
text?: string;
|
|
53
|
+
sentiment: SentimentLabel;
|
|
54
|
+
sentiment_score: number;
|
|
55
|
+
confidence: number;
|
|
56
|
+
emotions: EmotionScore[];
|
|
57
|
+
speaker_id?: number;
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Emotion score
|
|
61
|
+
*/
|
|
62
|
+
export interface EmotionScore {
|
|
63
|
+
emotion: EmotionType;
|
|
64
|
+
score: number;
|
|
65
|
+
confidence: number;
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Sentiment trend point
|
|
69
|
+
*/
|
|
70
|
+
export interface SentimentTrend {
|
|
71
|
+
timestamp: number;
|
|
72
|
+
sentiment_score: number;
|
|
73
|
+
dominant_emotion: EmotionType;
|
|
74
|
+
window_size: number;
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Sentiment summary
|
|
78
|
+
*/
|
|
79
|
+
export interface SentimentSummary {
|
|
80
|
+
overall_sentiment: SentimentLabel;
|
|
81
|
+
sentiment_score: number;
|
|
82
|
+
sentiment_distribution: Record<SentimentLabel, number>;
|
|
83
|
+
emotion_distribution: Record<EmotionType, number>;
|
|
84
|
+
key_moments: KeyMoment[];
|
|
85
|
+
topics_sentiment: TopicSentiment[];
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Key emotional moment
|
|
89
|
+
*/
|
|
90
|
+
export interface KeyMoment {
|
|
91
|
+
timestamp: number;
|
|
92
|
+
end_time?: number;
|
|
93
|
+
type: 'peak_positive' | 'peak_negative' | 'sentiment_shift' | 'high_emotion';
|
|
94
|
+
sentiment_score: number;
|
|
95
|
+
emotion: EmotionType;
|
|
96
|
+
description?: string;
|
|
97
|
+
text?: string;
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* Topic sentiment
|
|
101
|
+
*/
|
|
102
|
+
export interface TopicSentiment {
|
|
103
|
+
topic: string;
|
|
104
|
+
sentiment: SentimentLabel;
|
|
105
|
+
sentiment_score: number;
|
|
106
|
+
mention_count: number;
|
|
107
|
+
examples: string[];
|
|
108
|
+
}
|
|
109
|
+
/**
|
|
110
|
+
* Create analysis request
|
|
111
|
+
*/
|
|
112
|
+
export interface CreateAnalysisRequest {
|
|
113
|
+
source_type: SourceType;
|
|
114
|
+
source_id?: string;
|
|
115
|
+
source_url?: string;
|
|
116
|
+
text?: string;
|
|
117
|
+
/** Analysis options */
|
|
118
|
+
options?: {
|
|
119
|
+
/** Enable emotion detection */
|
|
120
|
+
emotions?: boolean;
|
|
121
|
+
/** Enable topic extraction */
|
|
122
|
+
topics?: boolean;
|
|
123
|
+
/** Enable key moment detection */
|
|
124
|
+
key_moments?: boolean;
|
|
125
|
+
/** Segment granularity in seconds */
|
|
126
|
+
segment_size?: number;
|
|
127
|
+
/** Language (auto-detect if not specified) */
|
|
128
|
+
language?: string;
|
|
129
|
+
/** Enable speaker-level analysis */
|
|
130
|
+
per_speaker?: boolean;
|
|
131
|
+
};
|
|
132
|
+
/** Webhook URL for completion */
|
|
133
|
+
webhook_url?: string;
|
|
134
|
+
metadata?: Metadata;
|
|
135
|
+
}
|
|
136
|
+
/**
|
|
137
|
+
* Batch analysis request
|
|
138
|
+
*/
|
|
139
|
+
export interface BatchAnalysisRequest {
|
|
140
|
+
items: Array<{
|
|
141
|
+
source_type: SourceType;
|
|
142
|
+
source_id?: string;
|
|
143
|
+
source_url?: string;
|
|
144
|
+
text?: string;
|
|
145
|
+
}>;
|
|
146
|
+
options?: CreateAnalysisRequest['options'];
|
|
147
|
+
webhook_url?: string;
|
|
148
|
+
}
|
|
149
|
+
/**
|
|
150
|
+
* List analyses params
|
|
151
|
+
*/
|
|
152
|
+
export interface ListAnalysesParams extends PaginationParams {
|
|
153
|
+
status?: AnalysisStatus;
|
|
154
|
+
source_type?: SourceType;
|
|
155
|
+
sentiment?: SentimentLabel;
|
|
156
|
+
created_after?: string;
|
|
157
|
+
created_before?: string;
|
|
158
|
+
}
|
|
159
|
+
/**
|
|
160
|
+
* Sentiment API client
|
|
161
|
+
*
|
|
162
|
+
* All operations require appropriate permissions. Authorization is enforced
|
|
163
|
+
* server-side - the API returns 403 if the authenticated user lacks access.
|
|
164
|
+
*
|
|
165
|
+
* @example
|
|
166
|
+
* ```typescript
|
|
167
|
+
* import { WaveClient } from '@wave/sdk';
|
|
168
|
+
* import { SentimentAPI } from '@wave/sdk/sentiment';
|
|
169
|
+
*
|
|
170
|
+
* const client = new WaveClient({ apiKey: 'your-api-key' });
|
|
171
|
+
* const sentiment = new SentimentAPI(client);
|
|
172
|
+
*
|
|
173
|
+
* // Analyze sentiment of a video
|
|
174
|
+
* const analysis = await sentiment.analyze({
|
|
175
|
+
* source_type: 'video',
|
|
176
|
+
* source_id: 'video_123',
|
|
177
|
+
* options: {
|
|
178
|
+
* emotions: true,
|
|
179
|
+
* key_moments: true,
|
|
180
|
+
* },
|
|
181
|
+
* });
|
|
182
|
+
*
|
|
183
|
+
* // Wait for results
|
|
184
|
+
* const result = await sentiment.waitForReady(analysis.id);
|
|
185
|
+
* console.log('Overall sentiment:', result.overall_sentiment);
|
|
186
|
+
* ```
|
|
187
|
+
*/
|
|
188
|
+
export declare class SentimentAPI {
|
|
189
|
+
private readonly client;
|
|
190
|
+
private readonly basePath;
|
|
191
|
+
constructor(client: WaveClient);
|
|
192
|
+
/**
|
|
193
|
+
* Create a sentiment analysis job
|
|
194
|
+
*
|
|
195
|
+
* Requires: sentiment:analyze permission
|
|
196
|
+
*/
|
|
197
|
+
analyze(request: CreateAnalysisRequest): Promise<SentimentAnalysis>;
|
|
198
|
+
/**
|
|
199
|
+
* Analyze text directly (synchronous for short text)
|
|
200
|
+
*
|
|
201
|
+
* Requires: sentiment:analyze permission
|
|
202
|
+
*/
|
|
203
|
+
analyzeText(text: string, options?: {
|
|
204
|
+
emotions?: boolean;
|
|
205
|
+
language?: string;
|
|
206
|
+
}): Promise<{
|
|
207
|
+
sentiment: SentimentLabel;
|
|
208
|
+
sentiment_score: number;
|
|
209
|
+
confidence: number;
|
|
210
|
+
emotions?: EmotionScore[];
|
|
211
|
+
}>;
|
|
212
|
+
/**
|
|
213
|
+
* Batch analyze multiple items
|
|
214
|
+
*
|
|
215
|
+
* Requires: sentiment:analyze permission
|
|
216
|
+
*/
|
|
217
|
+
batchAnalyze(request: BatchAnalysisRequest): Promise<{
|
|
218
|
+
batch_id: string;
|
|
219
|
+
jobs: SentimentAnalysis[];
|
|
220
|
+
}>;
|
|
221
|
+
/**
|
|
222
|
+
* Get an analysis by ID
|
|
223
|
+
*
|
|
224
|
+
* Requires: sentiment:read permission
|
|
225
|
+
*/
|
|
226
|
+
get(analysisId: string): Promise<SentimentAnalysis>;
|
|
227
|
+
/**
|
|
228
|
+
* Remove an analysis
|
|
229
|
+
*
|
|
230
|
+
* Requires: sentiment:remove permission (server-side RBAC enforced)
|
|
231
|
+
*/
|
|
232
|
+
remove(analysisId: string): Promise<void>;
|
|
233
|
+
/**
|
|
234
|
+
* List analyses
|
|
235
|
+
*
|
|
236
|
+
* Requires: sentiment:read permission
|
|
237
|
+
*/
|
|
238
|
+
list(params?: ListAnalysesParams): Promise<PaginatedResponse<SentimentAnalysis>>;
|
|
239
|
+
/**
|
|
240
|
+
* Get sentiment segments
|
|
241
|
+
*
|
|
242
|
+
* Requires: sentiment:read permission
|
|
243
|
+
*/
|
|
244
|
+
getSegments(analysisId: string, params?: PaginationParams & {
|
|
245
|
+
start_time?: number;
|
|
246
|
+
end_time?: number;
|
|
247
|
+
sentiment?: SentimentLabel;
|
|
248
|
+
min_score?: number;
|
|
249
|
+
}): Promise<PaginatedResponse<SentimentSegment>>;
|
|
250
|
+
/**
|
|
251
|
+
* Get sentiment summary
|
|
252
|
+
*
|
|
253
|
+
* Requires: sentiment:read permission
|
|
254
|
+
*/
|
|
255
|
+
getSummary(analysisId: string): Promise<SentimentSummary>;
|
|
256
|
+
/**
|
|
257
|
+
* Get sentiment trend over time
|
|
258
|
+
*
|
|
259
|
+
* Requires: sentiment:read permission
|
|
260
|
+
*/
|
|
261
|
+
getTrend(analysisId: string, options?: {
|
|
262
|
+
window_size?: number;
|
|
263
|
+
resolution?: number;
|
|
264
|
+
}): Promise<SentimentTrend[]>;
|
|
265
|
+
/**
|
|
266
|
+
* Get key emotional moments
|
|
267
|
+
*
|
|
268
|
+
* Requires: sentiment:read permission
|
|
269
|
+
*/
|
|
270
|
+
getKeyMoments(analysisId: string, options?: {
|
|
271
|
+
type?: KeyMoment['type'];
|
|
272
|
+
limit?: number;
|
|
273
|
+
}): Promise<KeyMoment[]>;
|
|
274
|
+
/**
|
|
275
|
+
* Get topic sentiments
|
|
276
|
+
*
|
|
277
|
+
* Requires: sentiment:read permission
|
|
278
|
+
*/
|
|
279
|
+
getTopicSentiments(analysisId: string, options?: {
|
|
280
|
+
min_mentions?: number;
|
|
281
|
+
}): Promise<TopicSentiment[]>;
|
|
282
|
+
/**
|
|
283
|
+
* Get sentiment by speaker
|
|
284
|
+
*
|
|
285
|
+
* Requires: sentiment:read permission
|
|
286
|
+
*/
|
|
287
|
+
getSpeakerSentiment(analysisId: string): Promise<Array<{
|
|
288
|
+
speaker_id: number;
|
|
289
|
+
speaker_label?: string;
|
|
290
|
+
sentiment: SentimentLabel;
|
|
291
|
+
sentiment_score: number;
|
|
292
|
+
dominant_emotions: EmotionType[];
|
|
293
|
+
segment_count: number;
|
|
294
|
+
total_duration: number;
|
|
295
|
+
}>>;
|
|
296
|
+
/**
|
|
297
|
+
* Start real-time sentiment analysis
|
|
298
|
+
*
|
|
299
|
+
* Requires: sentiment:realtime permission
|
|
300
|
+
*/
|
|
301
|
+
startRealtime(streamId: string, options?: {
|
|
302
|
+
emotions?: boolean;
|
|
303
|
+
segment_size?: number;
|
|
304
|
+
language?: string;
|
|
305
|
+
}): Promise<{
|
|
306
|
+
session_id: string;
|
|
307
|
+
websocket_url: string;
|
|
308
|
+
expires_at: string;
|
|
309
|
+
}>;
|
|
310
|
+
/**
|
|
311
|
+
* Stop real-time analysis
|
|
312
|
+
*
|
|
313
|
+
* Requires: sentiment:realtime permission
|
|
314
|
+
*/
|
|
315
|
+
stopRealtime(sessionId: string): Promise<SentimentAnalysis>;
|
|
316
|
+
/**
|
|
317
|
+
* Get real-time session status
|
|
318
|
+
*
|
|
319
|
+
* Requires: sentiment:read permission
|
|
320
|
+
*/
|
|
321
|
+
getRealtimeStatus(sessionId: string): Promise<{
|
|
322
|
+
status: 'active' | 'paused' | 'stopped';
|
|
323
|
+
duration: number;
|
|
324
|
+
current_sentiment: SentimentLabel;
|
|
325
|
+
current_score: number;
|
|
326
|
+
segments_processed: number;
|
|
327
|
+
}>;
|
|
328
|
+
/**
|
|
329
|
+
* Compare sentiment between analyses
|
|
330
|
+
*
|
|
331
|
+
* Requires: sentiment:read permission
|
|
332
|
+
*/
|
|
333
|
+
compare(analysisIds: string[]): Promise<{
|
|
334
|
+
analyses: Array<{
|
|
335
|
+
id: string;
|
|
336
|
+
sentiment: SentimentLabel;
|
|
337
|
+
sentiment_score: number;
|
|
338
|
+
dominant_emotions: EmotionType[];
|
|
339
|
+
}>;
|
|
340
|
+
comparison: {
|
|
341
|
+
most_positive: string;
|
|
342
|
+
most_negative: string;
|
|
343
|
+
score_range: number;
|
|
344
|
+
common_emotions: EmotionType[];
|
|
345
|
+
};
|
|
346
|
+
}>;
|
|
347
|
+
/**
|
|
348
|
+
* Export analysis results
|
|
349
|
+
*
|
|
350
|
+
* Requires: sentiment:read permission
|
|
351
|
+
*/
|
|
352
|
+
exportAnalysis(analysisId: string, format: 'json' | 'csv' | 'pdf'): Promise<{
|
|
353
|
+
url: string;
|
|
354
|
+
expires_at: string;
|
|
355
|
+
}>;
|
|
356
|
+
/**
|
|
357
|
+
* Wait for analysis to complete
|
|
358
|
+
*/
|
|
359
|
+
waitForReady(analysisId: string, options?: {
|
|
360
|
+
pollInterval?: number;
|
|
361
|
+
timeout?: number;
|
|
362
|
+
onProgress?: (analysis: SentimentAnalysis) => void;
|
|
363
|
+
}): Promise<SentimentAnalysis>;
|
|
364
|
+
/**
|
|
365
|
+
* Get supported languages
|
|
366
|
+
*
|
|
367
|
+
* Requires: sentiment:read permission
|
|
368
|
+
*/
|
|
369
|
+
getSupportedLanguages(): Promise<Array<{
|
|
370
|
+
code: string;
|
|
371
|
+
name: string;
|
|
372
|
+
emotion_detection: boolean;
|
|
373
|
+
}>>;
|
|
374
|
+
}
|
|
375
|
+
/**
|
|
376
|
+
* Create a Sentiment API instance
|
|
377
|
+
*/
|
|
378
|
+
export declare function createSentimentAPI(client: WaveClient): SentimentAPI;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sentiment.d.ts","sourceRoot":"","sources":["../src/sentiment.ts"],"names":[],"mappings":"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"}
|