@fonoster/autopilot 0.7.11 → 0.7.12

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.
@@ -4,6 +4,7 @@ declare class Autopilot {
4
4
  private actor;
5
5
  constructor(params: AutopilotParams);
6
6
  start(): void;
7
+ stop(): void;
7
8
  private setupVoiceStream;
8
9
  private handleVoicePayload;
9
10
  private setupSpeechGathering;
package/dist/Autopilot.js CHANGED
@@ -43,6 +43,10 @@ class Autopilot {
43
43
  this.setupVoiceStream();
44
44
  this.setupSpeechGathering();
45
45
  }
46
+ stop() {
47
+ logger.verbose("stopping autopilot");
48
+ this.actor.stop();
49
+ }
46
50
  async setupVoiceStream() {
47
51
  const { voice, vad } = this.params;
48
52
  const stream = await voice.stream();
@@ -42,6 +42,7 @@ exports.handleVoiceRequest = handleVoiceRequest;
42
42
  * See the License for the specific language governing permissions and
43
43
  * limitations under the License.
44
44
  */
45
+ const common_1 = require("@fonoster/common");
45
46
  const logger_1 = require("@fonoster/logger");
46
47
  const createLanguageModel_1 = require("./createLanguageModel");
47
48
  const loadAssistantConfig_1 = require("./loadAssistantConfig");
@@ -63,4 +64,7 @@ async function handleVoiceRequest(req, res) {
63
64
  languageModel
64
65
  });
65
66
  autopilot.start();
67
+ res.on(common_1.StreamEvent.END, () => {
68
+ autopilot.stop();
69
+ });
66
70
  }
@@ -71,27 +71,35 @@ const machine = (0, xstate_1.setup)({
71
71
  logger.verbose("response from language model", {
72
72
  speechResponseTime
73
73
  });
74
- if (response.type === "say" && !response.content) {
75
- logger.verbose("call might already be hung up");
76
- (0, xstate_1.raise)({ type: "USER_REQUEST_PROCESSED" });
77
- return;
78
- }
79
- else if (response.type === "hangup") {
80
- const message = context.goodbyeMessage;
81
- await context.voice.say(message);
82
- await context.voice.hangup();
83
- return;
74
+ try {
75
+ if (response.type === "say" && !response.content) {
76
+ logger.verbose("call might already be hung up");
77
+ (0, xstate_1.raise)({ type: "USER_REQUEST_PROCESSED" });
78
+ return;
79
+ }
80
+ else if (response.type === "hangup") {
81
+ const message = context.goodbyeMessage;
82
+ await context.voice.say(message);
83
+ await context.voice.hangup();
84
+ return;
85
+ }
86
+ else if (response.type === "transfer") {
87
+ const message = context.transferMessage;
88
+ await context.voice.say(message);
89
+ await context.voice.transfer(context.transferPhoneNumber, {
90
+ record: true,
91
+ timeout: 30
92
+ });
93
+ return;
94
+ }
95
+ await context.voice.say(response.content);
84
96
  }
85
- else if (response.type === "transfer") {
86
- const message = context.transferMessage;
87
- await context.voice.say(message);
88
- await context.voice.transfer(context.transferPhoneNumber, {
89
- record: true,
90
- timeout: 30
97
+ catch (error) {
98
+ logger.error("error processing user request", {
99
+ error
91
100
  });
92
- return;
101
+ await context.voice.say(context.systemErrorMessage);
93
102
  }
94
- await context.voice.say(response.content);
95
103
  (0, xstate_1.raise)({ type: "USER_REQUEST_PROCESSED" });
96
104
  },
97
105
  announceIdleTimeout: async ({ context }) => {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fonoster/autopilot",
3
- "version": "0.7.11",
3
+ "version": "0.7.12",
4
4
  "description": "Voice AI for the Fonoster platform",
5
5
  "author": "Pedro Sanders <psanders@fonoster.com>",
6
6
  "homepage": "https://github.com/fonoster/fonoster#readme",
@@ -37,7 +37,7 @@
37
37
  "dependencies": {
38
38
  "@fonoster/common": "^0.7.11",
39
39
  "@fonoster/logger": "^0.7.10",
40
- "@fonoster/voice": "^0.7.11",
40
+ "@fonoster/voice": "^0.7.12",
41
41
  "@langchain/community": "^0.2.31",
42
42
  "@langchain/core": "^0.2.32",
43
43
  "@langchain/groq": "^0.0.17",
@@ -54,5 +54,5 @@
54
54
  "devDependencies": {
55
55
  "typescript": "^5.5.4"
56
56
  },
57
- "gitHead": "5c7629ecbe633d2d44fca0d9de8a24a38f4a4097"
57
+ "gitHead": "264fb6d971bad1d823554e93ed7c088318307184"
58
58
  }