@absolutejs/voice 0.0.22-beta.6 → 0.0.22-beta.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.
Files changed (2) hide show
  1. package/dist/index.js +25 -11
  2. package/package.json +1 -1
package/dist/index.js CHANGED
@@ -7152,7 +7152,7 @@ var OUTPUT_SCHEMA = {
7152
7152
  },
7153
7153
  type: "object"
7154
7154
  };
7155
- var ROUTE_RESULT_INSTRUCTION = "Return a JSON object with assistantText, complete, transfer, escalate, voicemail, noAnswer, and result when you are not calling tools.";
7155
+ var ROUTE_RESULT_INSTRUCTION = "Return only a JSON object with assistantText, complete, transfer, escalate, voicemail, noAnswer, and result when you are not calling tools. Only set transfer, escalate, voicemail, or noAnswer when the user explicitly asks for that lifecycle outcome or a tool result says that exact outcome. Do not infer voicemail from generic words like voice, voice app, or voice integration.";
7156
7156
  var parseJSON = (value) => {
7157
7157
  try {
7158
7158
  const parsed = JSON.parse(value);
@@ -7230,17 +7230,31 @@ var createJSONVoiceAssistantModel = (options) => ({
7230
7230
  });
7231
7231
  var messageToOpenAIInput = (message) => {
7232
7232
  if (message.role === "tool") {
7233
- return {
7234
- call_id: message.toolCallId ?? message.name ?? crypto.randomUUID(),
7235
- output: message.content,
7236
- type: "function_call_output"
7237
- };
7233
+ return [
7234
+ {
7235
+ call_id: message.toolCallId ?? message.name ?? crypto.randomUUID(),
7236
+ output: message.content,
7237
+ type: "function_call_output"
7238
+ }
7239
+ ];
7238
7240
  }
7239
- return {
7240
- content: message.content,
7241
- role: message.role === "system" ? "developer" : message.role
7242
- };
7241
+ const toolCalls = getMessageToolCalls(message);
7242
+ if (message.role === "assistant" && toolCalls.length) {
7243
+ return toolCalls.map((toolCall) => ({
7244
+ arguments: JSON.stringify(toolCall.args),
7245
+ call_id: toolCall.id ?? crypto.randomUUID(),
7246
+ name: toolCall.name,
7247
+ type: "function_call"
7248
+ }));
7249
+ }
7250
+ return [
7251
+ {
7252
+ content: message.content,
7253
+ role: message.role === "system" ? "developer" : message.role
7254
+ }
7255
+ ];
7243
7256
  };
7257
+ var messagesToOpenAIInput = (messages) => messages.flatMap(messageToOpenAIInput);
7244
7258
  var messageToAnthropicMessage = (message) => {
7245
7259
  if (message.role === "system") {
7246
7260
  return;
@@ -7410,7 +7424,7 @@ var createOpenAIVoiceAssistantModel = (options) => {
7410
7424
  generate: async (input) => {
7411
7425
  const response = await fetchImpl(`${baseUrl.replace(/\/$/, "")}/responses`, {
7412
7426
  body: JSON.stringify({
7413
- input: input.messages.map(messageToOpenAIInput),
7427
+ input: messagesToOpenAIInput(input.messages),
7414
7428
  instructions: [
7415
7429
  input.system,
7416
7430
  "Return a JSON object with assistantText, complete, transfer, escalate, voicemail, noAnswer, and result when you are not calling tools."
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@absolutejs/voice",
3
- "version": "0.0.22-beta.6",
3
+ "version": "0.0.22-beta.8",
4
4
  "description": "Voice primitives and Elysia plugin for AbsoluteJS",
5
5
  "repository": {
6
6
  "type": "git",