@epam/statgpt-dial-toolkit 0.8.0 → 0.8.2
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/index.cjs +2 -2
- package/index.mjs +7 -12
- package/package.json +2 -2
package/index.cjs
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});let e=require("@epam/statgpt-shared-toolkit");var t=`v1`,n=`/${t}/ops/resource/share`,r={VERSION:`/${t}`,BUCKET:`/${t}/bucket`,CONVERSATIONS:`/${t}/metadata/conversations`,CONVERSATION_BY_ID:e=>`/${t}/metadata/conversations/${e}`,CHAT:e=>`/openai/deployments/${e}/chat/completions`,MODELS:`/openai/models`,CONFIGURATION:e=>`/${t}/deployments/${e}/configuration`,DATASETS_METADATA:e=>`/v1/deployments/${e}/route/metadata/datasets`,PYTHON_ATTACHMENT:e=>`/v1/deployments/${e}/route/python-attachment`,SHARE_CONVERSATION:`${n}/create`,SHARE_CONVERSATION_ACCEPT:e=>`/${t}/invitations/${e}?accept=true`,SHARE_CONVERSATION_DETAILS:e=>`/${t}/invitations/${e}`,SHARE_CONVERSATION_LIST:`${n}/list`,SHARE_CONVERSATION_DISCARD:`${n}/discard`,SHARE_CONVERSATION_REVOKE:`${n}/revoke`,RATE:e=>`/${t}/${e}/rate`,RENAME:`/${t}/ops/resource/move`},i={LENGTH:`length`,STOP:`stop`},a={MINUTE:`minute`,DAILY:`daily`,WEEKLY:`weekly`,MONTHLY:`monthly`},o={CONTENT_FILTER:`content_filter`,500:`500`},s={RUNTIME_ERROR:`runtime_error`,RATE_LIMIT_EXCEEDED:`rate_limit_exceeded`},c=[a.MINUTE,a.DAILY,a.WEEKLY,a.MONTHLY],l=`statgpt`,u={RATE_LIMIT:`rate_limit`,UNKNOWN:`unknown`},d=function(e){return e.CONVERSATION=`CONVERSATION`,e}({}),f=function(e){return e.ME=`me`,e.OTHERS=`others`,e}({}),p=function(e){return e.CSV=`text/csv`,e.TABLE=`application/dial-ttyd-table`,e.PLOTLY=`application/vnd.plotly.v1+json`,e.MARKDOWN=`text/markdown`,e.JSON=`application/json`,e.JPEG=`image/jpeg`,e.PNG=`image/png`,e.CROSS_DATASET_GRID=`cross_dataset_grid`,e.CUSTOM_DATA_GRID=`custom_data_grid`,e.CUSTOM_CHART=`custom_chart`,e.CUSTOM_CODE_SAMPLE=`custom_code_sample`,e}({}),m=function(e){return e.LINK=`link`,e}({}),h=e=>e.content?(console.info(`Using direct content format: ${e.content}`),e.content):e.choices?.[0]?.delta?.content?(console.info(`Using OpenAI delta format: ${e.choices[0].delta.content}`),e.choices[0].delta.content):e.choices?.[0]?.message?.content?(console.info(`Using complete message format: ${e.choices[0].message.content}`),e.choices[0].message.content):(console.info(`Unknown SSE data format:`,e),null),g=(e,t,n)=>{if(t?.(e),n){let t=h(e);t&&n(t)}},_=(e,t)=>e.error||e.message||`${t.status} ${t.statusText}`,v=(e,t)=>{let n=e?.reduce((e,t)=>(e[t.index]=t,e),{});return t.forEach(e=>{n[e.index]?(e.attachments&&(n[e.index].attachments=(n[e.index].attachments||[]).concat(e.attachments)),e.content&&(n[e.index].content=(n[e.index].content||``)+e.content),e.name&&(n[e.index].name=(n[e.index].name||``)+e.name),e.status&&(n[e.index].status=e.status)):n[e.index]=e}),Object.values(n)},y=(e,t)=>{let n=structuredClone(e);return t.forEach(e=>{e.errorMessage&&(n.errorMessage=e.errorMessage),e.role&&(n.role=e.role),e.responseId&&(n.responseId=e.responseId),e.content&&b(n,e),e.custom_content&&(n.custom_content||={},e.custom_content.attachments&&(n.custom_content.attachments||(n.custom_content.attachments=[]),n.custom_content.attachments=n.custom_content.attachments.concat(e.custom_content.attachments)),e.custom_content.stages&&(n.custom_content.stages||(n.custom_content.stages=[]),n.custom_content.stages=v(n.custom_content.stages,e.custom_content.stages)),e.custom_content.state&&(n.custom_content.state=e.custom_content.state),e.custom_content.form_schema&&(n.custom_content.form_schema=e.custom_content.form_schema),e.custom_content.form_value&&(n.custom_content.form_value=e.custom_content.form_value))}),n};function b(e,t){if(t.content){let n=x(t.content);n==null
|
|
2
|
-
`);n=o.pop()||``;for(let e of o)this.parseSSEDataLine(e,t)}}finally{e.releaseLock()}}handleStreamError(e,t){let n=e instanceof Error?e:Error(String(e));throw t?.(n),n}parseSSEDataLine(e,t){let n=e.trim();if(
|
|
1
|
+
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});let e=require("@epam/statgpt-shared-toolkit");var t=`v1`,n=`/${t}/ops/resource/share`,r={VERSION:`/${t}`,BUCKET:`/${t}/bucket`,CONVERSATIONS:`/${t}/metadata/conversations`,CONVERSATION_BY_ID:e=>`/${t}/metadata/conversations/${e}`,CHAT:e=>`/openai/deployments/${e}/chat/completions`,MODELS:`/openai/models`,CONFIGURATION:e=>`/${t}/deployments/${e}/configuration`,DATASETS_METADATA:e=>`/v1/deployments/${e}/route/metadata/datasets`,PYTHON_ATTACHMENT:e=>`/v1/deployments/${e}/route/python-attachment`,SHARE_CONVERSATION:`${n}/create`,SHARE_CONVERSATION_ACCEPT:e=>`/${t}/invitations/${e}?accept=true`,SHARE_CONVERSATION_DETAILS:e=>`/${t}/invitations/${e}`,SHARE_CONVERSATION_LIST:`${n}/list`,SHARE_CONVERSATION_DISCARD:`${n}/discard`,SHARE_CONVERSATION_REVOKE:`${n}/revoke`,RATE:e=>`/${t}/${e}/rate`,RENAME:`/${t}/ops/resource/move`},i={LENGTH:`length`,STOP:`stop`},a={MINUTE:`minute`,DAILY:`daily`,WEEKLY:`weekly`,MONTHLY:`monthly`},o={CONTENT_FILTER:`content_filter`,500:`500`},s={RUNTIME_ERROR:`runtime_error`,RATE_LIMIT_EXCEEDED:`rate_limit_exceeded`},c=[a.MINUTE,a.DAILY,a.WEEKLY,a.MONTHLY],l=`statgpt`,u={RATE_LIMIT:`rate_limit`,UNKNOWN:`unknown`},d=function(e){return e.CONVERSATION=`CONVERSATION`,e}({}),f=function(e){return e.ME=`me`,e.OTHERS=`others`,e}({}),p=function(e){return e.CSV=`text/csv`,e.TABLE=`application/dial-ttyd-table`,e.PLOTLY=`application/vnd.plotly.v1+json`,e.MARKDOWN=`text/markdown`,e.JSON=`application/json`,e.JPEG=`image/jpeg`,e.PNG=`image/png`,e.CROSS_DATASET_GRID=`cross_dataset_grid`,e.CUSTOM_DATA_GRID=`custom_data_grid`,e.CUSTOM_CHART=`custom_chart`,e.CUSTOM_CODE_SAMPLE=`custom_code_sample`,e}({}),m=function(e){return e.LINK=`link`,e}({}),h=e=>e.content?(console.info(`Using direct content format: ${e.content}`),e.content):e.choices?.[0]?.delta?.content?(console.info(`Using OpenAI delta format: ${e.choices[0].delta.content}`),e.choices[0].delta.content):e.choices?.[0]?.message?.content?(console.info(`Using complete message format: ${e.choices[0].message.content}`),e.choices[0].message.content):(console.info(`Unknown SSE data format:`,e),null),g=(e,t,n)=>{if(t?.(e),n){let t=h(e);t&&n(t)}},_=(e,t)=>e.error||e.message||`${t.status} ${t.statusText}`,v=(e,t)=>{let n=e?.reduce((e,t)=>(e[t.index]=t,e),{});return t.forEach(e=>{n[e.index]?(e.attachments&&(n[e.index].attachments=(n[e.index].attachments||[]).concat(e.attachments)),e.content&&(n[e.index].content=(n[e.index].content||``)+e.content),e.name&&(n[e.index].name=(n[e.index].name||``)+e.name),e.status&&(n[e.index].status=e.status)):n[e.index]=e}),Object.values(n)},y=(e,t)=>{let n=structuredClone(e);return t.forEach(e=>{e.errorMessage&&(n.errorMessage=e.errorMessage),e.role&&(n.role=e.role),e.responseId&&(n.responseId=e.responseId),e.content&&b(n,e),e.custom_content&&(n.custom_content||={},e.custom_content.attachments&&(n.custom_content.attachments||(n.custom_content.attachments=[]),n.custom_content.attachments=n.custom_content.attachments.concat(e.custom_content.attachments)),e.custom_content.stages&&(n.custom_content.stages||(n.custom_content.stages=[]),n.custom_content.stages=v(n.custom_content.stages,e.custom_content.stages)),e.custom_content.state&&(n.custom_content.state=e.custom_content.state),e.custom_content.form_schema&&(n.custom_content.form_schema=e.custom_content.form_schema),e.custom_content.form_value&&(n.custom_content.form_value=e.custom_content.form_value))}),n};function b(e,t){if(t.content){let n=x(t.content);e.content=n==null?`${e.content||``}${t.content}`:e.content.slice(0,-n)}}function x(e){let t=e.match(/delete_chars\((\d+)\)/);return t==null?null:parseInt(t[1],10)}var S=e=>{let t=e.name?.split(`__`)||[],n=t.length>1?t.slice(1).join(`__`):e.name;return{modelId:t[0],conversationName:n}},C=t=>{let n=Date.now(),r=(0,e.getClearedConversationName)(t.name);return`${t.folderId}/${r}-${n}`},w=e=>({resourceTypes:[d.CONVERSATION],with:e}),T=async(e,t,n)=>{let r=n?.body===void 0?void 0:n?.isFormData?n.body:JSON.stringify(n.body);return await fetch(e,{method:n.method||`GET`,headers:t,body:r,signal:n?.signal})};function E(e){return e.split(`/`).map(e=>encodeURIComponent(e)).join(`/`)}function D(e){return e.split(`/`).map(e=>decodeURIComponent(e)).join(`/`)}function O(e){if(e?.kind!==u.RATE_LIMIT||typeof e.retryAfterSeconds!=`number`)return null;let t=new Date(e.occurredAt).getTime();return Number.isNaN(t)?null:new Date(t+e.retryAfterSeconds*1e3)}function k(e,t=Date.now()){let n=O(e);return n?n.getTime()>t:!1}function A(e,t=`en-GB`){return{date:e.toLocaleDateString(t),time:e.toLocaleTimeString(t,{hour:`2-digit`,minute:`2-digit`})}}var j=class{constructor(){this.decoder=new TextDecoder}async streamChat(e,t,n={},r){let{onMessage:i,onError:a,onComplete:o,signal:s}=n;try{let n=await this.initializeStreamRequest(e,t,s,r);await this.processStreamData(n,i),o?.()}catch(e){this.handleStreamError(e,a)}}async initializeStreamRequest(t,n,r,i){let a=await T(t,{Accept:`text/event-stream`,...(0,e.getHeaders)(void 0,{jwt:i})},{method:`POST`,body:n,signal:r});if(!a.ok){let t=await a.text(),n={};try{n=JSON.parse(t)}catch{n.error=`Failed to parse error body`}throw new e.HttpError({status:a.status,message:n.error??`No response body`})}if(!a.body)throw new e.HttpError({message:`No response body`,status:a.status});return a.body.getReader()}async processStreamData(e,t){let n=``;try{for(;;){let{done:r,value:i}=await e.read();if(r){n.trim()&&this.parseSSEDataLine(n,t);break}let a=this.decoder.decode(i,{stream:!0});n+=a;let o=n.split(`
|
|
2
|
+
`);n=o.pop()||``;for(let e of o)this.parseSSEDataLine(e,t)}}finally{e.releaseLock()}}handleStreamError(e,t){let n=e instanceof Error?e:Error(String(e));throw t?.(n),n}parseSSEDataLine(e,t){let n=e.trim();if(n&&!n.startsWith(`:`)&&n.startsWith(`data: `)){let e=n.slice(6);if(e===`[DONE]`){console.info(`SSE: Stream completed`);return}let r;try{r=JSON.parse(e)}catch(t){console.error(`Failed to parse SSE data: ${e} ${t}`)}t?.(r)}}},M=new j,N=async(t,n,r,i,a)=>{let{onMessage:o,onToken:s,onComplete:c,onError:l,model:u,signal:d}=r,f={conversationId:t,messages:n,model:u,custom_fields:a};await M.streamChat(e.API_ROUTES.CHAT,f,{onMessage:e=>g(e,o,s),onComplete:c,onError:l,signal:d},i)},P=e=>e instanceof Error&&e.message.includes(`404`),F=e=>`/v1/conversations/${E(e)}`;function I(e){console.warn(`[ConversationApi] suppressed error, returning empty result`,e)}var L=class{constructor(e){this.client=e}async getConversations(e,t,n){let i=`${t?n?`${t}/${n}`:`${t}`:``}`,a=`${r.CONVERSATIONS}/${i}`;try{return(await this.client.getRequest(a+`/?limit=1000&recursive=false`,e).then(e=>e.items||[])).map(e=>{let{conversationName:t,modelId:n}=S(e);return{id:e.url?.replace(`conversations/`,``)||e.name,name:t,folderId:i,createdAt:e.createdAt,updatedAt:e.updatedAt,model:{id:n,name:n}}})}catch(e){if(P(e))return I({endpoint:a,error:e}),[];throw e}}async getConversation(e,t){try{return await this.client.getRequest(F(e),t)}catch(t){if(P(t))return I({endpoint:F(e),error:t}),null;throw t}}async getFile(e,t){try{let n=`${r.VERSION}/${E(e)}`;return await this.client.getRequest(n,t)}catch(t){if(P(t))return I({filePath:e,error:t}),null;throw t}}async putOnboardingFile(t,n,i,a){try{let o=`${r.VERSION}/${E(n)}`,s=`----NodeMultipartBoundary`,c=[`--${s}`,`Content-Disposition: form-data; name="file"; filename="${t}"`,`Content-Type: application/json`,``,JSON.stringify(i),`--${s}--`,``].join(`\r
|
|
3
3
|
`);return await this.client.request(o,a,{method:`PUT`,body:c,headers:(0,e.getMultipartHeaders)(s),isFormData:!0})}catch(e){if(P(e))return I({filePath:n,error:e}),null;throw e}}async getOnboardingFile(e,t){try{let n=`${r.VERSION}/${E(e)}`;return await this.client.getRequest(n,t)}catch(t){if(P(t))return I({filePath:e,error:t}),null;throw t}}async getFileBlob(e,t){try{let n=`${r.VERSION}/${E(e)}`;return await this.client.requestBlob(n,t,{method:`GET`})}catch(t){if(P(t))return I({filePath:e,error:t}),null;throw t}}async deleteFile(e,t){try{let n=`${r.VERSION}/${E(e)}`;await this.client.request(n,t,{method:`DELETE`})}catch(t){if(P(t)){I({filePath:e,error:t});return}throw t}}async putFile(e,t,n){try{let i=`${r.VERSION}/${E(e)}`,a=new FormData,o=decodeURIComponent(e.split(`/`).at(-1)??`file`);a.append(`attachment`,t,o),await this.client.request(i,n,{method:`PUT`,body:a,isFormData:!0})}catch(t){if(P(t)){I({filePath:e,error:t});return}throw t}}async createConversation(e,t){let n=e?.id||C(e),{name:r,folderId:i,model:a,messages:o,custom_fields:s}=e,c={id:n,name:r,folderId:i,model:a,messages:o||[],selectedAddons:e.selectedAddons||[],prompt:e.prompt||``,temperature:e.temperature||.7,createdAt:Date.now(),updatedAt:Date.now(),custom_fields:s};return await this.client.request(F(n),t,{method:`PUT`,body:c}),{id:n,name:r,folderId:i,model:a,createdAt:c.createdAt,updatedAt:c.updatedAt}}async generateConversationLink(e,t){return await this.client.postRequest(r.SHARE_CONVERSATION,e,{body:t})}async getSharedConversations(e,t){return await this.client.postRequest(r.SHARE_CONVERSATION_LIST,e,{body:t})}async revokeSharedConversations(e,t){await this.client.postRequest(r.SHARE_CONVERSATION_REVOKE,e,{body:t})}async updateConversation(e,t,n){let r=await this.getConversation(e,n);if(!r)throw Error(`Conversation with id ${e} not found`);let i={...r,...t,updatedAt:Date.now()};return await this.client.request(F(e),n,{method:`PUT`,body:i})}async deleteConversation(e,t,n){t?.isShared?await this.client.postRequest(r.SHARE_CONVERSATION_DISCARD,n,{body:{resources:[{url:t?.url}]}}):await this.client.request(F(decodeURI(e)),n,{method:`DELETE`})}async streamChat(e,t){let n=e.model.id,i=encodeURIComponent(n),a=`${r.CHAT(i)}?api-version=${this.client.config.version}`,o={messages:e.messages,stream:!0,temperature:.7,max_tokens:4096,custom_fields:e.custom_fields};return await this.client.stream(a,t,{method:`POST`,body:o,chatReference:e.conversationId})}async rateResponse(e,t,n,i){return await this.client.postRequest(r.RATE(e),i,{body:{responseId:t,rate:n}})}async renameConversation(e,t,n){return await this.client.postRequest(r.RENAME,n,{body:{sourceUrl:e,destinationUrl:t,overwrite:!0}})}},R=class{constructor(e){this.config=e,console.info(`DialApiClient initialized`,{host:e.host||`NOT SET`,hasApiKey:!!e.apiKey,version:e.version})}async getRequest(e,t,n){return this.request(e,t,{...n,method:`GET`})}async postRequest(e,t,n){return this.request(e,t,{...n,method:`POST`})}async requestBlob(t,n,r){let i=`${this.config.host}${t}`,a={...(0,e.getHeaders)(this.config.apiKey,{jwt:n,chatReference:r.chatReference,contentType:r.isFormData?null:void 0}),...r.headers};try{return(await T(i,a,r)).blob()}catch(e){throw console.error(`API Request Exception`,{method:r.method,url:i,error:e instanceof Error?e.message:String(e)}),e}}async request(t,n,r){let i=Date.now(),a=`${this.config.host}${t}`,o={...(0,e.getHeaders)(this.config.apiKey,{jwt:n,chatReference:r.chatReference,contentType:r.isFormData?null:void 0}),...r.headers};this.addInfoRequestLog(`API Request`,a,r,o);try{let e=await T(a,o,r),t=Date.now()-i,n,s=await e.text();try{n=s?JSON.parse(s):{}}catch{if(this.addErrorRequestParsing(a,r,e,t,s),!e.ok)throw Error(`API request failed: ${e.status} ${e.statusText} - ${s.substring(0,100)}`);n={data:s}}if(!e.ok){this.addErrorRequestLog(a,r,e,t,n);let i=_(n,e);throw Error(`API request failed: ${i}`)}return n}catch(e){let t=Date.now()-i;throw console.error(`API Request Exception`,{method:r.method,url:a,duration:`${t}ms`,error:e instanceof Error?e.message:String(e)}),e}}async stream(t,n,r){let i=`${this.config.host}${t}`,a=(0,e.getHeaders)(this.config.apiKey,{jwt:n,chatReference:r.chatReference,contentType:r.isFormData?null:void 0},r.headers);this.addInfoRequestLog(`Stream Request`,i,r,a);let o=await T(i,a,r);if(!o.ok)throw console.error(`Stream Request Failed`,{method:r.method||`POST`,url:i,status:o.status,statusText:o.statusText}),Error(`Stream request failed: ${o.status} ${o.statusText}`);if(!o.body)throw Error(`No response body for stream`);return o.body}addInfoRequestLog(t,n,r,i){let a={method:r.method||`GET`,url:n,headers:(0,e.sanitizeHeaders)(i)};r.body&&(a.body=r.body),console.info(t,a)}addErrorRequestLog(e,t,n,r,i){console.error(`API Request Failed`,{method:t.method,url:e,status:n.status,statusText:n.statusText,duration:`${r}ms`,response:i})}addErrorRequestParsing(e,t,n,r,i){console.error(`API Response Parse Error`,{method:t.method,url:e,status:n.status,statusText:n.statusText,duration:`${r}ms`,responseText:i.substring(0,200),error:`Response is not valid JSON`})}};exports.AttachmentType=p,exports.COMPLETION_FINISH_REASON=i,exports.CUSTOM_VIEW_STATE_KEY=l,exports.ChatStreamSSEClient=j,exports.ConversationApi=L,exports.DIAL_API_ROUTES=r,exports.DIAL_ERROR_CODES=o,exports.DIAL_ERROR_TYPES=s,exports.DialApiClient=R,exports.ERROR_CONTEXT_KIND=u,exports.EXCEEDED_LIMIT=a,exports.EXCEEDED_LIMIT_ORDER=c,exports.InvitationType=m,exports.ResourceTypes=d,exports.ShareTarget=f,exports.chatStreamSSEClient=M,exports.decodeApiUrl=D,exports.encodeApiUrl=E,exports.formatDateTime=A,exports.generateConversationId=C,exports.getErrorMessage=_,exports.getRateLimitRestoreDate=O,exports.getSharedConversationsRequest=w,exports.handleStreamMessage=g,exports.isRateLimitStillActive=k,exports.mergeMessages=y,exports.parseConversationName=S,exports.sendRequest=T,exports.streamChatResponse=N;
|
package/index.mjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { API_ROUTES as e, HttpError as t, getClearedConversationName as n, getHeaders as r, getMultipartHeaders as i, sanitizeHeaders as a } from "@epam/statgpt-shared-toolkit";
|
|
2
|
-
|
|
2
|
+
// libs/dial-toolkit/src/constants/api-urls.ts
|
|
3
3
|
var o = "v1", s = `/${o}/ops/resource/share`, c = {
|
|
4
4
|
VERSION: `/${o}`,
|
|
5
5
|
BUCKET: `/${o}/bucket`,
|
|
@@ -67,15 +67,14 @@ var o = "v1", s = `/${o}/ops/resource/share`, c = {
|
|
|
67
67
|
function T(e, t) {
|
|
68
68
|
if (t.content) {
|
|
69
69
|
let n = E(t.content);
|
|
70
|
-
n == null ?
|
|
70
|
+
e.content = n == null ? `${e.content || ""}${t.content}` : e.content.slice(0, -n);
|
|
71
71
|
}
|
|
72
72
|
}
|
|
73
73
|
function E(e) {
|
|
74
74
|
let t = e.match(/delete_chars\((\d+)\)/);
|
|
75
75
|
return t == null ? null : parseInt(t[1], 10);
|
|
76
76
|
}
|
|
77
|
-
|
|
78
|
-
//#region libs/dial-toolkit/src/utils/parse-conversation-name.ts
|
|
77
|
+
// libs/dial-toolkit/src/utils/parse-conversation-name.ts
|
|
79
78
|
var D = (e) => {
|
|
80
79
|
let t = e.name?.split("__") || [], n = t.length > 1 ? t.slice(1).join("__") : e.name;
|
|
81
80
|
return {
|
|
@@ -97,16 +96,14 @@ var D = (e) => {
|
|
|
97
96
|
signal: n?.signal
|
|
98
97
|
});
|
|
99
98
|
};
|
|
100
|
-
|
|
101
|
-
//#region libs/dial-toolkit/src/utils/url.ts
|
|
99
|
+
// libs/dial-toolkit/src/utils/url.ts
|
|
102
100
|
function j(e) {
|
|
103
101
|
return e.split("/").map((e) => encodeURIComponent(e)).join("/");
|
|
104
102
|
}
|
|
105
103
|
function M(e) {
|
|
106
104
|
return e.split("/").map((e) => decodeURIComponent(e)).join("/");
|
|
107
105
|
}
|
|
108
|
-
|
|
109
|
-
//#region libs/dial-toolkit/src/utils/rate-limits.ts
|
|
106
|
+
// libs/dial-toolkit/src/utils/rate-limits.ts
|
|
110
107
|
function N(e) {
|
|
111
108
|
if (e?.kind !== h.RATE_LIMIT || typeof e.retryAfterSeconds != "number") return null;
|
|
112
109
|
let t = new Date(e.occurredAt).getTime();
|
|
@@ -125,8 +122,7 @@ function F(e, t = "en-GB") {
|
|
|
125
122
|
})
|
|
126
123
|
};
|
|
127
124
|
}
|
|
128
|
-
|
|
129
|
-
//#region libs/dial-toolkit/src/api/chat-streaming-api.ts
|
|
125
|
+
// libs/dial-toolkit/src/api/chat-streaming-api.ts
|
|
130
126
|
var I = class {
|
|
131
127
|
constructor() {
|
|
132
128
|
this.decoder = new TextDecoder();
|
|
@@ -192,7 +188,7 @@ var I = class {
|
|
|
192
188
|
}
|
|
193
189
|
parseSSEDataLine(e, t) {
|
|
194
190
|
let n = e.trim();
|
|
195
|
-
if (
|
|
191
|
+
if (n && !n.startsWith(":") && n.startsWith("data: ")) {
|
|
196
192
|
let e = n.slice(6);
|
|
197
193
|
if (e === "[DONE]") {
|
|
198
194
|
console.info("SSE: Stream completed");
|
|
@@ -557,5 +553,4 @@ var H = class {
|
|
|
557
553
|
});
|
|
558
554
|
}
|
|
559
555
|
};
|
|
560
|
-
//#endregion
|
|
561
556
|
export { v as AttachmentType, l as COMPLETION_FINISH_REASON, m as CUSTOM_VIEW_STATE_KEY, I as ChatStreamSSEClient, H as ConversationApi, c as DIAL_API_ROUTES, d as DIAL_ERROR_CODES, f as DIAL_ERROR_TYPES, U as DialApiClient, h as ERROR_CONTEXT_KIND, u as EXCEEDED_LIMIT, p as EXCEEDED_LIMIT_ORDER, y as InvitationType, g as ResourceTypes, _ as ShareTarget, L as chatStreamSSEClient, M as decodeApiUrl, j as encodeApiUrl, F as formatDateTime, O as generateConversationId, S as getErrorMessage, N as getRateLimitRestoreDate, k as getSharedConversationsRequest, x as handleStreamMessage, P as isRateLimitStillActive, w as mergeMessages, D as parseConversationName, A as sendRequest, R as streamChatResponse };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@epam/statgpt-dial-toolkit",
|
|
3
|
-
"version": "0.8.
|
|
3
|
+
"version": "0.8.2",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
"module": "./index.mjs",
|
|
20
20
|
"types": "./index.d.ts",
|
|
21
21
|
"dependencies": {
|
|
22
|
-
"@epam/statgpt-shared-toolkit": "0.8.
|
|
22
|
+
"@epam/statgpt-shared-toolkit": "0.8.2"
|
|
23
23
|
},
|
|
24
24
|
"peerDependencies": {
|
|
25
25
|
"@epam/ai-dial-shared": "^0.43.3"
|