@d-id/client-sdk 1.0.6 → 1.0.8
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.
|
@@ -1,26 +1,25 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { StreamTextToSpeechProviders } from '../../tts';
|
|
2
|
+
import { Knowledge } from './knowledge';
|
|
2
3
|
import { LLM } from './llm';
|
|
3
4
|
import { Presenter } from './presenter';
|
|
4
5
|
export interface Agent {
|
|
5
6
|
id: string;
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
use_case?: string;
|
|
9
|
-
created_at: string;
|
|
10
|
-
modified_at: string;
|
|
11
|
-
knowledge_id: string;
|
|
12
|
-
voice_provider: ExtendedTextToSpeechProviders;
|
|
7
|
+
username?: string;
|
|
8
|
+
presenter: Presenter;
|
|
13
9
|
llm?: LLM;
|
|
14
|
-
|
|
10
|
+
knowledge?: Knowledge;
|
|
11
|
+
use_case?: string;
|
|
12
|
+
tags?: string[];
|
|
15
13
|
access?: 'private' | 'pending-public' | 'unlisted' | 'rejected' | 'public';
|
|
14
|
+
preview_name?: string;
|
|
16
15
|
preview_description?: string;
|
|
17
16
|
preview_thumbnail?: string;
|
|
18
|
-
preview_name: string;
|
|
19
17
|
}
|
|
20
18
|
export type AgentPayload = Omit<Agent, 'type' | 'created_at' | 'modified_at' | 'id' | 'owner_id' | 'idle_video_url'>;
|
|
21
19
|
export interface IChatPayload {
|
|
22
20
|
voice: StreamTextToSpeechProviders;
|
|
21
|
+
message: string;
|
|
23
22
|
streamId: string;
|
|
24
23
|
sessionId: string;
|
|
25
|
-
|
|
24
|
+
knowledgeId: string;
|
|
26
25
|
}
|
package/dist/index.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
function k(r) {
|
|
2
2
|
return r.type === "bearer" ? "Bearer " + r.token : r.type === "basic" ? "Basic " + btoa(`${r.username}:${r.password}`) : "Client-Key " + r.clientKey;
|
|
3
3
|
}
|
|
4
|
-
function m(r,
|
|
4
|
+
function m(r, a = "https://api.d-id.com") {
|
|
5
5
|
const n = async (e, t) => {
|
|
6
|
-
const
|
|
6
|
+
const i = await fetch(a + (e != null && e.startsWith("/") ? e : `/${e}`), {
|
|
7
7
|
...t,
|
|
8
8
|
headers: {
|
|
9
9
|
...t == null ? void 0 : t.headers,
|
|
@@ -11,15 +11,15 @@ function m(r, o = "https://api.d-id.com") {
|
|
|
11
11
|
"Content-Type": "application/json"
|
|
12
12
|
}
|
|
13
13
|
});
|
|
14
|
-
if (!
|
|
15
|
-
let c = await
|
|
14
|
+
if (!i.ok) {
|
|
15
|
+
let c = await i.text().catch(() => "Failed to fetch");
|
|
16
16
|
try {
|
|
17
|
-
c = JSON.parse(c), c.description && (c = c.description);
|
|
17
|
+
c = JSON.parse(c), c.description && (c = c.description, typeof c.description == "object" && (c = JSON.stringify(c.description)));
|
|
18
18
|
} catch {
|
|
19
19
|
}
|
|
20
20
|
throw new Error(c);
|
|
21
21
|
}
|
|
22
|
-
return
|
|
22
|
+
return i.json();
|
|
23
23
|
};
|
|
24
24
|
return {
|
|
25
25
|
get(e, t) {
|
|
@@ -28,31 +28,31 @@ function m(r, o = "https://api.d-id.com") {
|
|
|
28
28
|
method: "GET"
|
|
29
29
|
});
|
|
30
30
|
},
|
|
31
|
-
post(e, t,
|
|
31
|
+
post(e, t, i) {
|
|
32
32
|
return n(e, {
|
|
33
|
-
...
|
|
33
|
+
...i,
|
|
34
34
|
body: JSON.stringify(t),
|
|
35
35
|
method: "POST"
|
|
36
36
|
});
|
|
37
37
|
},
|
|
38
|
-
delete(e, t,
|
|
38
|
+
delete(e, t, i) {
|
|
39
39
|
return n(e, {
|
|
40
|
-
...
|
|
40
|
+
...i,
|
|
41
41
|
body: JSON.stringify(t),
|
|
42
42
|
method: "DELETE"
|
|
43
43
|
});
|
|
44
44
|
},
|
|
45
|
-
patch(e, t,
|
|
45
|
+
patch(e, t, i) {
|
|
46
46
|
return n(e, {
|
|
47
|
-
...
|
|
47
|
+
...i,
|
|
48
48
|
body: JSON.stringify(t),
|
|
49
49
|
method: "PATCH"
|
|
50
50
|
});
|
|
51
51
|
}
|
|
52
52
|
};
|
|
53
53
|
}
|
|
54
|
-
function
|
|
55
|
-
const n = m(r, `${
|
|
54
|
+
function D(r, a = "https://api.d-id.com") {
|
|
55
|
+
const n = m(r, `${a}/knowledge`);
|
|
56
56
|
return {
|
|
57
57
|
createKnowledge(e) {
|
|
58
58
|
return n.post("/", e);
|
|
@@ -88,8 +88,8 @@ function K(r, o = "https://api.d-id.com") {
|
|
|
88
88
|
}
|
|
89
89
|
};
|
|
90
90
|
}
|
|
91
|
-
function
|
|
92
|
-
const n = m(r, `${
|
|
91
|
+
function K(r, a = "https://api.d-id.com") {
|
|
92
|
+
const n = m(r, `${a}/agents`);
|
|
93
93
|
return {
|
|
94
94
|
create(e) {
|
|
95
95
|
return n.post("/", e);
|
|
@@ -111,8 +111,8 @@ function O(r, o = "https://api.d-id.com") {
|
|
|
111
111
|
}
|
|
112
112
|
};
|
|
113
113
|
}
|
|
114
|
-
function A(r,
|
|
115
|
-
const n = m(r,
|
|
114
|
+
function A(r, a) {
|
|
115
|
+
const n = m(r, a);
|
|
116
116
|
return {
|
|
117
117
|
createStream(e) {
|
|
118
118
|
return n.post("/clips/streams", {
|
|
@@ -121,22 +121,22 @@ function A(r, o) {
|
|
|
121
121
|
compatibility_mode: e.compatibility_mode
|
|
122
122
|
});
|
|
123
123
|
},
|
|
124
|
-
startConnection(e, t,
|
|
124
|
+
startConnection(e, t, i) {
|
|
125
125
|
return n.post(`/clips/streams/${e}/sdp`, {
|
|
126
|
-
session_id:
|
|
126
|
+
session_id: i,
|
|
127
127
|
answer: t
|
|
128
128
|
});
|
|
129
129
|
},
|
|
130
|
-
addIceCandidate(e, t,
|
|
130
|
+
addIceCandidate(e, t, i) {
|
|
131
131
|
return n.post(`/clips/streams/${e}/ice`, {
|
|
132
|
-
session_id:
|
|
132
|
+
session_id: i,
|
|
133
133
|
...t
|
|
134
134
|
});
|
|
135
135
|
},
|
|
136
|
-
sendStreamRequest(e, t,
|
|
136
|
+
sendStreamRequest(e, t, i) {
|
|
137
137
|
return n.post(`/clips/streams/${e}`, {
|
|
138
138
|
session_id: t,
|
|
139
|
-
...
|
|
139
|
+
...i
|
|
140
140
|
});
|
|
141
141
|
},
|
|
142
142
|
close(e, t) {
|
|
@@ -146,8 +146,8 @@ function A(r, o) {
|
|
|
146
146
|
}
|
|
147
147
|
};
|
|
148
148
|
}
|
|
149
|
-
function
|
|
150
|
-
const n = m(r,
|
|
149
|
+
function O(r, a) {
|
|
150
|
+
const n = m(r, a);
|
|
151
151
|
return {
|
|
152
152
|
createStream(e) {
|
|
153
153
|
return n.post("/talks/streams", {
|
|
@@ -157,22 +157,22 @@ function T(r, o) {
|
|
|
157
157
|
config: e.config
|
|
158
158
|
});
|
|
159
159
|
},
|
|
160
|
-
startConnection(e, t,
|
|
160
|
+
startConnection(e, t, i) {
|
|
161
161
|
return n.post(`/talks/streams/${e}/sdp`, {
|
|
162
|
-
session_id:
|
|
162
|
+
session_id: i,
|
|
163
163
|
answer: t
|
|
164
164
|
});
|
|
165
165
|
},
|
|
166
|
-
addIceCandidate(e, t,
|
|
166
|
+
addIceCandidate(e, t, i) {
|
|
167
167
|
return n.post(`/talks/streams/${e}/ice`, {
|
|
168
|
-
session_id:
|
|
168
|
+
session_id: i,
|
|
169
169
|
...t
|
|
170
170
|
});
|
|
171
171
|
},
|
|
172
|
-
sendStreamRequest(e, t,
|
|
172
|
+
sendStreamRequest(e, t, i) {
|
|
173
173
|
return n.post(`/talks/streams/${e}`, {
|
|
174
174
|
session_id: t,
|
|
175
|
-
...
|
|
175
|
+
...i
|
|
176
176
|
});
|
|
177
177
|
},
|
|
178
178
|
close(e, t) {
|
|
@@ -182,61 +182,61 @@ function T(r, o) {
|
|
|
182
182
|
}
|
|
183
183
|
};
|
|
184
184
|
}
|
|
185
|
-
var p = /* @__PURE__ */ ((r) => (r.Idle = "IDLE", r.Streaming = "STREAMING", r))(p || {}),
|
|
185
|
+
var p = /* @__PURE__ */ ((r) => (r.Idle = "IDLE", r.Streaming = "STREAMING", r))(p || {}), w = /* @__PURE__ */ ((r) => (r.Clip = "clip", r.Talk = "talk", r))(w || {});
|
|
186
186
|
let $ = !1;
|
|
187
|
-
const d = (r,
|
|
187
|
+
const d = (r, a) => $ && console.log(r, a), T = (window.RTCPeerConnection || window.webkitRTCPeerConnection || window.mozRTCPeerConnection).bind(window);
|
|
188
188
|
async function R(r, {
|
|
189
|
-
debug:
|
|
189
|
+
debug: a = !1,
|
|
190
190
|
callbacks: n,
|
|
191
191
|
auth: e,
|
|
192
192
|
baseURL: t = "https://api.d-id.com"
|
|
193
193
|
}) {
|
|
194
|
-
$ =
|
|
195
|
-
let
|
|
194
|
+
$ = a;
|
|
195
|
+
let i = null;
|
|
196
196
|
const {
|
|
197
197
|
startConnection: c,
|
|
198
198
|
sendStreamRequest: g,
|
|
199
199
|
close: h,
|
|
200
200
|
createStream: S,
|
|
201
|
-
addIceCandidate:
|
|
202
|
-
} = r.videoType ===
|
|
201
|
+
addIceCandidate: y
|
|
202
|
+
} = r.videoType === w.Clip ? A(e, t) : O(e, t), {
|
|
203
203
|
id: u,
|
|
204
|
-
offer:
|
|
204
|
+
offer: _,
|
|
205
205
|
ice_servers: I,
|
|
206
206
|
session_id: l
|
|
207
|
-
} = await S(r),
|
|
207
|
+
} = await S(r), o = new T({
|
|
208
208
|
iceServers: I
|
|
209
|
-
}), C =
|
|
209
|
+
}), C = o.createDataChannel("JanusDataChannel");
|
|
210
210
|
if (!l)
|
|
211
211
|
throw new Error("Could not create session_id");
|
|
212
|
-
|
|
213
|
-
d("peerConnection.onicecandidate",
|
|
214
|
-
candidate:
|
|
215
|
-
sdpMid:
|
|
216
|
-
sdpMLineIndex:
|
|
212
|
+
o.onicecandidate = (s) => {
|
|
213
|
+
d("peerConnection.onicecandidate", s), s.candidate && s.candidate.sdpMid && s.candidate.sdpMLineIndex !== null && y(u, {
|
|
214
|
+
candidate: s.candidate.candidate,
|
|
215
|
+
sdpMid: s.candidate.sdpMid,
|
|
216
|
+
sdpMLineIndex: s.candidate.sdpMLineIndex
|
|
217
217
|
}, l);
|
|
218
|
-
},
|
|
219
|
-
d("peerConnection.oniceconnectionstatechange => " +
|
|
220
|
-
},
|
|
221
|
-
d("peerConnection.ontrack",
|
|
222
|
-
}, C.onmessage = (
|
|
223
|
-
C.readyState === "open" && n.onStreamingStateChange(
|
|
224
|
-
}, await
|
|
225
|
-
const
|
|
226
|
-
return d("create answer OK"), await
|
|
227
|
-
speak(
|
|
228
|
-
return g(u, l,
|
|
218
|
+
}, o.oniceconnectionstatechange = () => {
|
|
219
|
+
d("peerConnection.oniceconnectionstatechange => " + o.iceConnectionState), n.onConnectionStateChange(o.iceConnectionState);
|
|
220
|
+
}, o.ontrack = (s) => {
|
|
221
|
+
d("peerConnection.ontrack", s), i = s.streams[0], n.onSrcObjectReady(i);
|
|
222
|
+
}, C.onmessage = (s) => {
|
|
223
|
+
C.readyState === "open" && n.onStreamingStateChange(s.data === "stream/done" ? p.Idle : p.Streaming);
|
|
224
|
+
}, await o.setRemoteDescription(_), d("set remote description OK");
|
|
225
|
+
const f = await o.createAnswer();
|
|
226
|
+
return d("create answer OK"), await o.setLocalDescription(f), d("set local description OK"), await c(u, f, l), d("start connection OK"), {
|
|
227
|
+
speak(s) {
|
|
228
|
+
return g(u, l, s);
|
|
229
229
|
},
|
|
230
230
|
async terminate() {
|
|
231
|
-
u && (
|
|
231
|
+
u && (i && (i.getTracks().forEach((s) => s.stop()), i = null), o && (o.close(), o.oniceconnectionstatechange = null, o.onnegotiationneeded = null, o.onicecandidate = null, o.ontrack = null), await h(u, l), n.onConnectionStateChange("closed"), n.onStreamingStateChange(p.Idle));
|
|
232
232
|
},
|
|
233
233
|
sessionId: l,
|
|
234
234
|
streamId: u
|
|
235
235
|
};
|
|
236
236
|
}
|
|
237
237
|
export {
|
|
238
|
-
|
|
238
|
+
K as createAgentsApi,
|
|
239
239
|
m as createClient,
|
|
240
|
-
|
|
240
|
+
D as createKnowledgeApi,
|
|
241
241
|
R as createStreamingManager
|
|
242
242
|
};
|
package/dist/index.umd.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(
|
|
1
|
+
(function(d,m){typeof exports=="object"&&typeof module<"u"?m(exports):typeof define=="function"&&define.amd?define(["exports"],m):(d=typeof globalThis<"u"?globalThis:d||self,m(d.index={}))})(this,function(d){"use strict";function m(r){return r.type==="bearer"?"Bearer "+r.token:r.type==="basic"?"Basic "+btoa(`${r.username}:${r.password}`):"Client-Key "+r.clientKey}function g(r,a="https://api.d-id.com"){const n=async(e,t)=>{const i=await fetch(a+(e!=null&&e.startsWith("/")?e:`/${e}`),{...t,headers:{...t==null?void 0:t.headers,Authorization:m(r),"Content-Type":"application/json"}});if(!i.ok){let c=await i.text().catch(()=>"Failed to fetch");try{c=JSON.parse(c),c.description&&(c=c.description,typeof c.description=="object"&&(c=JSON.stringify(c.description)))}catch{}throw new Error(c)}return i.json()};return{get(e,t){return n(e,{...t,method:"GET"})},post(e,t,i){return n(e,{...i,body:JSON.stringify(t),method:"POST"})},delete(e,t,i){return n(e,{...i,body:JSON.stringify(t),method:"DELETE"})},patch(e,t,i){return n(e,{...i,body:JSON.stringify(t),method:"PATCH"})}}}function y(r,a="https://api.d-id.com"){const n=g(r,`${a}/knowledge`);return{createKnowledge(e){return n.post("/",e)},getKnowledgeBase(){return n.get("/")},getKnowledge(e){return n.get(`/${e}`)},deleteKnowledge(e){return n.delete(`/${e}`)},createDocument(e,t){return n.post(`/${e}/documents`,t)},deleteDocument(e,t){return n.delete(`/${e}/documents/${t}`)},getDocuments(e){return n.get(`/${e}/documents`)},getDocument(e,t){return n.get(`/${e}/documents/${t}`)},getRecords(e,t){return n.get(`/${e}/documents/${t}/records`)},query(e,t){return n.post(`/${e}/query`,{query:t})}}}function _(r,a="https://api.d-id.com"){const n=g(r,`${a}/agents`);return{create(e){return n.post("/",e)},getAgents(e){return n.get(`/${e?`?tag=${e}`:""}`)},getById(e){return n.get(`/${e}`)},delete(e){return n.delete(`/${e}`)},update(e,t){return n.patch(`/${e}`,t)},chat(e,t){return n.post(`/${e}/chat`,t)}}}function A(r,a){const n=g(r,a);return{createStream(e){return n.post("/clips/streams",{driver_id:e.driver_id,presenter_id:e.presenter_id,compatibility_mode:e.compatibility_mode})},startConnection(e,t,i){return n.post(`/clips/streams/${e}/sdp`,{session_id:i,answer:t})},addIceCandidate(e,t,i){return n.post(`/clips/streams/${e}/ice`,{session_id:i,...t})},sendStreamRequest(e,t,i){return n.post(`/clips/streams/${e}`,{session_id:t,...i})},close(e,t){return n.delete(`/clips/streams/${e}`,{session_id:t})}}}function I(r,a){const n=g(r,a);return{createStream(e){return n.post("/talks/streams",{source_url:e.source_url,driver_url:e.driver_url,face:e.face,config:e.config})},startConnection(e,t,i){return n.post(`/talks/streams/${e}/sdp`,{session_id:i,answer:t})},addIceCandidate(e,t,i){return n.post(`/talks/streams/${e}/ice`,{session_id:i,...t})},sendStreamRequest(e,t,i){return n.post(`/talks/streams/${e}`,{session_id:t,...i})},close(e,t){return n.delete(`/talks/streams/${e}`,{session_id:t})}}}var f=(r=>(r.Idle="IDLE",r.Streaming="STREAMING",r))(f||{}),C=(r=>(r.Clip="clip",r.Talk="talk",r))(C||{});let w=!1;const u=(r,a)=>w&&console.log(r,a),T=(window.RTCPeerConnection||window.webkitRTCPeerConnection||window.mozRTCPeerConnection).bind(window);async function O(r,{debug:a=!1,callbacks:n,auth:e,baseURL:t="https://api.d-id.com"}){w=a;let i=null;const{startConnection:c,sendStreamRequest:h,close:b,createStream:k,addIceCandidate:K}=r.videoType===C.Clip?A(e,t):I(e,t),{id:l,offer:D,ice_servers:M,session_id:p}=await k(r),o=new T({iceServers:M}),$=o.createDataChannel("JanusDataChannel");if(!p)throw new Error("Could not create session_id");o.onicecandidate=s=>{u("peerConnection.onicecandidate",s),s.candidate&&s.candidate.sdpMid&&s.candidate.sdpMLineIndex!==null&&K(l,{candidate:s.candidate.candidate,sdpMid:s.candidate.sdpMid,sdpMLineIndex:s.candidate.sdpMLineIndex},p)},o.oniceconnectionstatechange=()=>{u("peerConnection.oniceconnectionstatechange => "+o.iceConnectionState),n.onConnectionStateChange(o.iceConnectionState)},o.ontrack=s=>{u("peerConnection.ontrack",s),i=s.streams[0],n.onSrcObjectReady(i)},$.onmessage=s=>{$.readyState==="open"&&n.onStreamingStateChange(s.data==="stream/done"?f.Idle:f.Streaming)},await o.setRemoteDescription(D),u("set remote description OK");const S=await o.createAnswer();return u("create answer OK"),await o.setLocalDescription(S),u("set local description OK"),await c(l,S,p),u("start connection OK"),{speak(s){return h(l,p,s)},async terminate(){l&&(i&&(i.getTracks().forEach(s=>s.stop()),i=null),o&&(o.close(),o.oniceconnectionstatechange=null,o.onnegotiationneeded=null,o.onicecandidate=null,o.ontrack=null),await b(l,p),n.onConnectionStateChange("closed"),n.onStreamingStateChange(f.Idle))},sessionId:p,streamId:l}}d.createAgentsApi=_,d.createClient=g,d.createKnowledgeApi=y,d.createStreamingManager=O,Object.defineProperty(d,Symbol.toStringTag,{value:"Module"})});
|