@fonoster/autopilot 0.9.39 → 0.9.42

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.
@@ -3,8 +3,9 @@ declare class Autopilot {
3
3
  private readonly params;
4
4
  private readonly actor;
5
5
  private readonly vadWorker;
6
+ private vadWorkerReady;
6
7
  constructor(params: AutopilotParams);
7
- start(): void;
8
+ start(): Promise<void>;
8
9
  stop(): void;
9
10
  private setupVoiceStream;
10
11
  private handleVoicePayload;
package/dist/Autopilot.js CHANGED
@@ -36,6 +36,18 @@ class Autopilot {
36
36
  this.vadWorker = new worker_threads_1.Worker(vadWorkerPath, {
37
37
  workerData: conversationSettings.vad
38
38
  });
39
+ // Add initialization promise
40
+ this.vadWorkerReady = new Promise((resolve, reject) => {
41
+ console.log("waiting for vad worker to be ready");
42
+ this.vadWorker.once("message", (message) => {
43
+ console.log("vad worker is ready");
44
+ if (message === "VAD_READY") {
45
+ console.log("vad worker is ready resolving promise");
46
+ resolve();
47
+ }
48
+ });
49
+ this.vadWorker.once("error", reject);
50
+ });
39
51
  this.actor = (0, xstate_1.createActor)(machine_1.machine, {
40
52
  input: {
41
53
  conversationSettings,
@@ -44,13 +56,15 @@ class Autopilot {
44
56
  }
45
57
  });
46
58
  }
47
- start() {
59
+ async start() {
60
+ // Wait for VAD worker to be ready before proceeding
61
+ await this.vadWorkerReady;
62
+ await this.setupVoiceStream();
63
+ await this.setupSpeechGathering();
48
64
  this.actor.start();
49
65
  this.actor.subscribe((state) => {
50
66
  logger.verbose("actor's new state is", { state: state.value });
51
67
  });
52
- this.setupVoiceStream();
53
- this.setupSpeechGathering();
54
68
  this.vadWorker.on("error", (err) => {
55
69
  logger.error("vad worker error", err);
56
70
  });
@@ -116,7 +116,7 @@ async function handleVoiceRequest(req, res) {
116
116
  voice: voice,
117
117
  languageModel: languageModel
118
118
  });
119
- autopilot.start();
119
+ await autopilot.start();
120
120
  res.on(common_1.StreamEvent.END, async () => {
121
121
  autopilot.stop();
122
122
  const rawChatHistory = await languageModel.getChatHistoryMessages();
package/dist/vadWorker.js CHANGED
@@ -33,6 +33,8 @@ const vad = envs_1.SILERO_VAD_VERSION === "v4"
33
33
  pathToModel: (0, path_1.join)(__dirname, "..", "silero_vad_v5.onnx")
34
34
  });
35
35
  vad.init().then(() => {
36
+ // Send ready message to parent
37
+ worker_threads_1.parentPort?.postMessage("VAD_READY");
36
38
  worker_threads_1.parentPort?.on("message", (chunk) => {
37
39
  vad.processChunk(chunk, (voiceActivity) => {
38
40
  worker_threads_1.parentPort?.postMessage(voiceActivity);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fonoster/autopilot",
3
- "version": "0.9.39",
3
+ "version": "0.9.42",
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",
@@ -33,11 +33,11 @@
33
33
  },
34
34
  "dependencies": {
35
35
  "@aws-sdk/client-s3": "^3.712.0",
36
- "@fonoster/common": "^0.9.35",
37
- "@fonoster/logger": "^0.9.30",
38
- "@fonoster/sdk": "^0.9.37",
39
- "@fonoster/types": "^0.9.30",
40
- "@fonoster/voice": "^0.9.35",
36
+ "@fonoster/common": "^0.9.42",
37
+ "@fonoster/logger": "^0.9.42",
38
+ "@fonoster/sdk": "^0.9.42",
39
+ "@fonoster/types": "^0.9.42",
40
+ "@fonoster/voice": "^0.9.42",
41
41
  "@langchain/community": "^0.3.32",
42
42
  "@langchain/core": "^0.3.40",
43
43
  "@langchain/groq": "^0.1.3",
@@ -56,5 +56,5 @@
56
56
  "xstate": "^5.17.3",
57
57
  "zod": "^3.23.8"
58
58
  },
59
- "gitHead": "ff9bc63efb101ceb4c6c4e08b7b11f720336454c"
59
+ "gitHead": "1ceb629d4fd0035bf56d24580e5c6c3d21568293"
60
60
  }
package/silero_vad.onnx DELETED
Binary file