Comparing version 2.1.7 to 2.1.8
@@ -118,2 +118,6 @@ import { ServerResponse } from 'node:http'; | ||
}; | ||
declare type RequestOptions = { | ||
headers?: Record<string, string> | Headers; | ||
body?: object; | ||
}; | ||
declare type UseChatOptions = { | ||
@@ -226,2 +230,2 @@ /** | ||
export { AIStream, AIStreamCallbacks, AIStreamParser, AnthropicStream, CreateMessage, HuggingFaceStream, LangChainStream, Message, OpenAIStream, StreamingTextResponse, UseChatOptions, UseCompletionOptions, createCallbacksTransformer, createEventStreamTransformer, streamToResponse, trimStartOfStreamHelper }; | ||
export { AIStream, AIStreamCallbacks, AIStreamParser, AnthropicStream, CreateMessage, HuggingFaceStream, LangChainStream, Message, OpenAIStream, RequestOptions, StreamingTextResponse, UseChatOptions, UseCompletionOptions, createCallbacksTransformer, createEventStreamTransformer, streamToResponse, trimStartOfStreamHelper }; |
{ | ||
"name": "ai", | ||
"version": "2.1.7", | ||
"version": "2.1.8", | ||
"license": "Apache-2.0", | ||
@@ -5,0 +5,0 @@ "sideEffects": false, |
@@ -16,2 +16,6 @@ /** | ||
}; | ||
declare type RequestOptions = { | ||
headers?: Record<string, string> | Headers; | ||
body?: object; | ||
}; | ||
declare type UseChatOptions = { | ||
@@ -132,4 +136,6 @@ /** | ||
* the assistant's response. | ||
* @param message The message to append | ||
* @param options Additional options to pass to the API call | ||
*/ | ||
append: (message: Message | CreateMessage) => Promise<string | null | undefined>; | ||
append: (message: Message | CreateMessage, options?: RequestOptions) => Promise<string | null | undefined>; | ||
/** | ||
@@ -140,3 +146,3 @@ * Reload the last AI chat response for the given chat history. If the last | ||
*/ | ||
reload: () => Promise<string | null | undefined>; | ||
reload: (options?: RequestOptions) => Promise<string | null | undefined>; | ||
/** | ||
@@ -171,3 +177,3 @@ * Abort the current request immediately, keep the generated tokens if any. | ||
*/ | ||
complete: (prompt: string) => Promise<string | null | undefined>; | ||
complete: (prompt: string, options?: RequestOptions) => Promise<string | null | undefined>; | ||
/** The error object of the API request */ | ||
@@ -174,0 +180,0 @@ error: undefined | Error; |
@@ -129,4 +129,5 @@ 'use client' | ||
[api, chatId], | ||
(_0, _1) => __async(this, [_0, _1], function* (_, { arg: messagesSnapshot }) { | ||
(_0, _1) => __async(this, [_0, _1], function* (_, { arg }) { | ||
try { | ||
const { messages: messagesSnapshot, options } = arg; | ||
const abortController = new AbortController(); | ||
@@ -138,3 +139,3 @@ abortControllerRef.current = abortController; | ||
method: "POST", | ||
body: JSON.stringify(__spreadValues({ | ||
body: JSON.stringify(__spreadValues(__spreadValues({ | ||
messages: sendExtraMessageFields ? messagesSnapshot : messagesSnapshot.map(({ role, content }) => ({ | ||
@@ -144,4 +145,4 @@ role, | ||
})) | ||
}, extraMetadataRef.current.body)), | ||
headers: extraMetadataRef.current.headers || {}, | ||
}, extraMetadataRef.current.body), options == null ? void 0 : options.body)), | ||
headers: __spreadValues(__spreadValues({}, extraMetadataRef.current.headers), options == null ? void 0 : options.headers), | ||
signal: abortController.signal | ||
@@ -223,19 +224,31 @@ }).catch((err) => { | ||
const append = (0, import_react.useCallback)( | ||
(message) => __async(this, null, function* () { | ||
(message, options) => __async(this, null, function* () { | ||
if (!message.id) { | ||
message.id = nanoid(); | ||
} | ||
return trigger(messagesRef.current.concat(message)); | ||
return trigger({ | ||
messages: messagesRef.current.concat(message), | ||
options | ||
}); | ||
}), | ||
[trigger] | ||
); | ||
const reload = (0, import_react.useCallback)(() => __async(this, null, function* () { | ||
if (messagesRef.current.length === 0) | ||
return null; | ||
const lastMessage = messagesRef.current[messagesRef.current.length - 1]; | ||
if (lastMessage.role === "assistant") { | ||
return trigger(messagesRef.current.slice(0, -1)); | ||
} | ||
return trigger(messagesRef.current); | ||
}), [trigger]); | ||
const reload = (0, import_react.useCallback)( | ||
(options) => __async(this, null, function* () { | ||
if (messagesRef.current.length === 0) | ||
return null; | ||
const lastMessage = messagesRef.current[messagesRef.current.length - 1]; | ||
if (lastMessage.role === "assistant") { | ||
return trigger({ | ||
messages: messagesRef.current.slice(0, -1), | ||
options | ||
}); | ||
} | ||
return trigger({ | ||
messages: messagesRef.current, | ||
options | ||
}); | ||
}), | ||
[trigger] | ||
); | ||
const stop = (0, import_react.useCallback)(() => { | ||
@@ -256,3 +269,6 @@ if (abortControllerRef.current) { | ||
const handleSubmit = (0, import_react.useCallback)( | ||
(e) => { | ||
(e, metadata) => { | ||
if (metadata) { | ||
extraMetadataRef.current = __spreadValues(__spreadValues({}, extraMetadataRef.current), metadata); | ||
} | ||
e.preventDefault(); | ||
@@ -322,4 +338,5 @@ if (!input) | ||
[api, completionId], | ||
(_0, _1) => __async(this, [_0, _1], function* (_, { arg: prompt }) { | ||
(_0, _1) => __async(this, [_0, _1], function* (_, { arg }) { | ||
try { | ||
const { prompt, options } = arg; | ||
const abortController2 = new AbortController(); | ||
@@ -330,6 +347,6 @@ setAbortController(abortController2); | ||
method: "POST", | ||
body: JSON.stringify(__spreadValues({ | ||
body: JSON.stringify(__spreadValues(__spreadValues({ | ||
prompt | ||
}, extraMetadataRef.current.body)), | ||
headers: extraMetadataRef.current.headers || {}, | ||
}, extraMetadataRef.current.body), options == null ? void 0 : options.body)), | ||
headers: __spreadValues(__spreadValues({}, extraMetadataRef.current.headers), options == null ? void 0 : options.headers), | ||
signal: abortController2.signal | ||
@@ -402,2 +419,11 @@ }).catch((err) => { | ||
); | ||
const complete = (0, import_react2.useCallback)( | ||
(prompt, options) => __async(this, null, function* () { | ||
return trigger({ | ||
prompt, | ||
options | ||
}); | ||
}), | ||
[trigger] | ||
); | ||
const [input, setInput] = (0, import_react2.useState)(initialInput); | ||
@@ -409,5 +435,5 @@ const handleSubmit = (0, import_react2.useCallback)( | ||
return; | ||
return trigger(input); | ||
return complete(input); | ||
}, | ||
[input, trigger] | ||
[input, complete] | ||
); | ||
@@ -417,8 +443,2 @@ const handleInputChange = (e) => { | ||
}; | ||
const complete = (0, import_react2.useCallback)( | ||
(prompt) => __async(this, null, function* () { | ||
return trigger(prompt); | ||
}), | ||
[trigger] | ||
); | ||
return { | ||
@@ -425,0 +445,0 @@ completion, |
@@ -18,2 +18,6 @@ import { Readable, Writable } from 'svelte/store'; | ||
}; | ||
declare type RequestOptions = { | ||
headers?: Record<string, string> | Headers; | ||
body?: object; | ||
}; | ||
declare type UseChatOptions = { | ||
@@ -135,3 +139,3 @@ /** | ||
*/ | ||
append: (message: Message | CreateMessage) => Promise<string | null | undefined>; | ||
append: (message: Message | CreateMessage, options?: RequestOptions) => Promise<string | null | undefined>; | ||
/** | ||
@@ -142,3 +146,3 @@ * Reload the last AI chat response for the given chat history. If the last | ||
*/ | ||
reload: () => Promise<string | null | undefined>; | ||
reload: (options?: RequestOptions) => Promise<string | null | undefined>; | ||
/** | ||
@@ -171,3 +175,3 @@ * Abort the current request immediately, keep the generated tokens if any. | ||
*/ | ||
complete: (prompt: string) => Promise<string | null | undefined>; | ||
complete: (prompt: string, options?: RequestOptions) => Promise<string | null | undefined>; | ||
/** | ||
@@ -174,0 +178,0 @@ * Abort the current API request but keep the generated tokens. |
@@ -548,3 +548,3 @@ "use strict"; | ||
let abortController = null; | ||
function triggerRequest(messagesSnapshot) { | ||
function triggerRequest(messagesSnapshot, options) { | ||
return __async(this, null, function* () { | ||
@@ -558,3 +558,3 @@ try { | ||
method: "POST", | ||
body: JSON.stringify(__spreadValues({ | ||
body: JSON.stringify(__spreadValues(__spreadValues({ | ||
messages: sendExtraMessageFields ? messagesSnapshot : messagesSnapshot.map(({ role, content }) => ({ | ||
@@ -564,4 +564,4 @@ role, | ||
})) | ||
}, body)), | ||
headers: headers || {}, | ||
}, body), options == null ? void 0 : options.body)), | ||
headers: __spreadValues(__spreadValues({}, headers), options == null ? void 0 : options.headers), | ||
signal: abortController.signal | ||
@@ -637,9 +637,9 @@ }).catch((err) => { | ||
} | ||
const append = (message) => __async(this, null, function* () { | ||
const append = (message, options) => __async(this, null, function* () { | ||
if (!message.id) { | ||
message.id = nanoid(); | ||
} | ||
return triggerRequest((0, import_store.get)(messages).concat(message)); | ||
return triggerRequest((0, import_store.get)(messages).concat(message), options); | ||
}); | ||
const reload = () => __async(this, null, function* () { | ||
const reload = (options) => __async(this, null, function* () { | ||
const messagesSnapshot = (0, import_store.get)(messages); | ||
@@ -650,5 +650,5 @@ if (messagesSnapshot.length === 0) | ||
if (lastMessage.role === "assistant") { | ||
return triggerRequest(messagesSnapshot.slice(0, -1)); | ||
return triggerRequest(messagesSnapshot.slice(0, -1), options); | ||
} | ||
return triggerRequest(messagesSnapshot); | ||
return triggerRequest(messagesSnapshot, options); | ||
}); | ||
@@ -720,3 +720,3 @@ const stop = () => { | ||
let abortController = null; | ||
function triggerRequest(prompt) { | ||
function triggerRequest(prompt, options) { | ||
return __async(this, null, function* () { | ||
@@ -729,6 +729,6 @@ try { | ||
method: "POST", | ||
body: JSON.stringify(__spreadValues({ | ||
body: JSON.stringify(__spreadValues(__spreadValues({ | ||
prompt | ||
}, body)), | ||
headers: headers || {}, | ||
}, body), options == null ? void 0 : options.body)), | ||
headers: __spreadValues(__spreadValues({}, headers), options == null ? void 0 : options.headers), | ||
signal: abortController.signal | ||
@@ -787,4 +787,4 @@ }).catch((err) => { | ||
} | ||
const complete = (prompt) => __async(this, null, function* () { | ||
return triggerRequest(prompt); | ||
const complete = (prompt, options) => __async(this, null, function* () { | ||
return triggerRequest(prompt, options); | ||
}); | ||
@@ -791,0 +791,0 @@ const stop = () => { |
@@ -18,2 +18,6 @@ import { Ref } from 'vue'; | ||
}; | ||
declare type RequestOptions = { | ||
headers?: Record<string, string> | Headers; | ||
body?: object; | ||
}; | ||
declare type UseChatOptions = { | ||
@@ -135,3 +139,3 @@ /** | ||
*/ | ||
append: (message: Message | CreateMessage) => Promise<string | null | undefined>; | ||
append: (message: Message | CreateMessage, options?: RequestOptions) => Promise<string | null | undefined>; | ||
/** | ||
@@ -142,3 +146,3 @@ * Reload the last AI chat response for the given chat history. If the last | ||
*/ | ||
reload: () => Promise<string | null | undefined>; | ||
reload: (options?: RequestOptions) => Promise<string | null | undefined>; | ||
/** | ||
@@ -171,3 +175,3 @@ * Abort the current request immediately, keep the generated tokens if any. | ||
*/ | ||
complete: (prompt: string) => Promise<string | null | undefined>; | ||
complete: (prompt: string, options?: RequestOptions) => Promise<string | null | undefined>; | ||
/** | ||
@@ -174,0 +178,0 @@ * Abort the current API request but keep the generated tokens. |
@@ -122,3 +122,3 @@ "use strict"; | ||
let abortController = null; | ||
function triggerRequest(messagesSnapshot) { | ||
function triggerRequest(messagesSnapshot, options) { | ||
return __async(this, null, function* () { | ||
@@ -132,3 +132,3 @@ try { | ||
method: "POST", | ||
body: JSON.stringify(__spreadValues({ | ||
body: JSON.stringify(__spreadValues(__spreadValues({ | ||
messages: sendExtraMessageFields ? messagesSnapshot : messagesSnapshot.map(({ role, content }) => ({ | ||
@@ -138,4 +138,4 @@ role, | ||
})) | ||
}, body)), | ||
headers: headers || {}, | ||
}, body), options == null ? void 0 : options.body)), | ||
headers: __spreadValues(__spreadValues({}, headers), options == null ? void 0 : options.headers), | ||
signal: abortController.signal | ||
@@ -211,9 +211,9 @@ }).catch((err) => { | ||
} | ||
const append = (message) => __async(this, null, function* () { | ||
const append = (message, options) => __async(this, null, function* () { | ||
if (!message.id) { | ||
message.id = nanoid(); | ||
} | ||
return triggerRequest(messages.value.concat(message)); | ||
return triggerRequest(messages.value.concat(message), options); | ||
}); | ||
const reload = () => __async(this, null, function* () { | ||
const reload = (options) => __async(this, null, function* () { | ||
const messagesSnapshot = messages.value; | ||
@@ -224,5 +224,5 @@ if (messagesSnapshot.length === 0) | ||
if (lastMessage.role === "assistant") { | ||
return triggerRequest(messagesSnapshot.slice(0, -1)); | ||
return triggerRequest(messagesSnapshot.slice(0, -1), options); | ||
} | ||
return triggerRequest(messagesSnapshot); | ||
return triggerRequest(messagesSnapshot, options); | ||
}); | ||
@@ -295,3 +295,3 @@ const stop = () => { | ||
let abortController = null; | ||
function triggerRequest(prompt) { | ||
function triggerRequest(prompt, options) { | ||
return __async(this, null, function* () { | ||
@@ -304,6 +304,6 @@ try { | ||
method: "POST", | ||
body: JSON.stringify(__spreadValues({ | ||
body: JSON.stringify(__spreadValues(__spreadValues({ | ||
prompt | ||
}, body)), | ||
headers: headers || {}, | ||
}, body), options == null ? void 0 : options.body)), | ||
headers: __spreadValues(__spreadValues({}, headers), options == null ? void 0 : options.headers), | ||
signal: abortController.signal | ||
@@ -362,4 +362,4 @@ }).catch((err) => { | ||
} | ||
const complete = (prompt) => __async(this, null, function* () { | ||
return triggerRequest(prompt); | ||
const complete = (prompt, options) => __async(this, null, function* () { | ||
return triggerRequest(prompt, options); | ||
}); | ||
@@ -366,0 +366,0 @@ const stop = () => { |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
151241
4803