@fonoster/autopilot 0.12.1 → 0.12.3

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.
@@ -41,6 +41,7 @@ declare const context: ({ input }: {
41
41
  maxIdleTimeoutCount: number;
42
42
  idleTimeoutCount: number;
43
43
  maxSpeechWaitTimeout: number;
44
+ allowUserBargeIn: boolean;
44
45
  isSpeaking: boolean;
45
46
  sessionStartTime: number;
46
47
  maxSessionDuration: number;
@@ -17,6 +17,7 @@ const context = ({ input }) => ({
17
17
  maxIdleTimeoutCount: input.conversationSettings.idleOptions.maxTimeoutCount,
18
18
  idleTimeoutCount: 0,
19
19
  maxSpeechWaitTimeout: input.conversationSettings.maxSpeechWaitTimeout,
20
+ allowUserBargeIn: input.conversationSettings.allowUserBargeIn,
20
21
  isSpeaking: false,
21
22
  sessionStartTime: Date.now(),
22
23
  maxSessionDuration: input.conversationSettings.maxSessionDuration,
@@ -75,7 +75,7 @@ declare const machine: import("xstate").StateMachine<any, import("./types").Auto
75
75
  languageModel: import("..").LanguageModel;
76
76
  voice: import("..").Voice;
77
77
  }, {}, import("xstate").EventObject, import("xstate").MetaObject, {
78
- /** @xstate-layout N4IgpgJg5mDOIC5QDMB2BBAkgYgB6wBcBDAsAOiOVICcAKAWXQA0B9AZQFE23MB5AORYARAKoAldABU+-AJTY0WANoAGALqJQABwD2sAJYF9O1JpC5EAWgBMAZgCcZWwEYAbAA4A7AFZXAFgd7F08AGhAAT0Rrbz8yFT8PFW8vPxVrV1dbAF8ssMVMMihqMDAjVChsVQ0kEF0DIxMzCwRnd2cnT3tXT1trdxUMttcwyIQg7zJ7Twzo+2drO29PHLyMAv0IABswbDYABQ4OAGEACXZJdDFJKrM6w2NTGub7FU8yd287Tz6-Hu7QiKITzuayTAa2TyeFStTp+awrED5MgbbZ4QgkciUGi0TBCAAyHBY0noHF4Ikk8iRKLANxqdwaj1AzRiKkmyWc9nc9heKlsrm8I0Qzhc7Xmc289msqXi3myuURa2RWx2+GIpAoVDAdFxBKJmBJZIpCkV1KUzmq2j090aT0QDjIHimwL8zjSSUygparUc-k+Cy6IL8fm8CKRBGoRFQ9Qe+nKkh0mGVlXUtytDKadvcsS6vX5WfctgC8U9zldjihwMlpc6nVDis2+kIYFQsag8ZEsC1uwOxzOYi4Ijx1xTdLTDwzCH87nemXsCUCrimfk9fNZ3J8cJ5LtSctWWDIDabLbjOg7XdVGI12J1hOJpPJlPrjdIx7bp871FplujNqZQocsTRCypauK0ELWCWKjuNOKhJNC1hzouoGuHW+4AO5EPc5QAGI6NQbBaCUADGAAWkj6AAtmAOgAK4EN2hynOclzDhatRjr+5hCp4sQ9Euth8pyaT2J63ifGQSxpEGwayrYySoQUGFYVAuH4YRYCkeRVG0fRF7qliWoMMw7A9kxADqWCSHqBoPsa6GYWUKl4QRxFkZR1F0V+7E-oyXEIH4WZOP4879HCQaetE7SfAJmTzK0HzAgpZBaNQOhEXABjlGe1BiGAACONFwPREAmOQsYAG46AA1uQSIpWlGWttluUFUVCAVWlJAPFUXn0uOtpegMcQQrYUELNBBbDICYyuKCkqSgE9i+FMzghvKdWpelsCZVAzX5YVhAMb2zFXL1HG+c0pZcsNXSfKtkp2FNozAu0LyzVKAYSihCKoDoEBwGY+Spj5E42F4ThuF4viLUEzgAqMbixGkAlydECEZJkSVFCUjnA9aF1WN0ZDpFM1i8pKUGDJ6kquGQvydGTO4+HJSXUnj6YDUsoKgW46POEGUK2NT6R05CFNM7Ka17gU4aRj5rbxom2zs-1f5jKyX3xDKCRSm0JautOZPAvynIBd48xJYeL4K++Woq5xzReKybRBEkLiZGJy7Tb47TQbBk1BB87hJUpjmqS5GludpdH2wTLRE6B7izUnaT+P4K7cmQ3wuiTEKut0UsKvuJGRlANFaLHoNkxMs0uHMaQ8d8JYCe0clc2b-KLn4SX1VtO17a1hCVwNq2ykF1ZJ94yNC974N+1BAT8g41jLDkWRAA */
78
+ /** @xstate-layout N4IgpgJg5mDOIC5QDMB2BBAkgYgB6wBcBDAsAOiOVICcAKAWXQA0B9AZQFE23MB5AORYARAKoAldABU+-AJTY0WANoAGALqJQABwD2sAJYF9O1JpC5EAWgBMAZgCcZWwEYAbAA4A7AFZXAFgd7F08AGhAAT0Rrbz8yFT8PFW8vPxVrV1dbAF8ssMVMMihqMDAjVChsVQ0kEF0DIxMzCwRnd2cnT3tXT1trdxUMttcwyIQg7zJ7Twzo+2drO29PHLyMAv0IABswbDYABQ4OAGEACXZJdDFJKrM6w2NTGub7FU8yd287Tz6-Hu7QiKITzuayTAa2TyeFStTp+awrED5MgbbZ4QgkciUGi0TBCAAyHBY0noHF4Ikk8iRKLANxqdwaj1AzRiKkmyWc9nc9heKlsrm8I0Qzhc7Xmc289msqXi3myuURa2RWx2+GIpAoVDAdFxBKJmBJZIpCkV1KUzmq2j090aT0QDjIHimwL8zjSSUygparUc-k+Cy6IL8fm8CKRBGoRFQ9Qe+nKkh0mGVlXUtytDKadvcsS6vX5WfctgC8U9zldjihwMlpc6nVDis2+kIYFQsag8ZEsC1uwOxzOYi4Ijx1xTdLTDwzCH87nemXsCUCrimfk9fNZ3J8cJ5LtSctWWDIDabLbjOg7XdVGI12J1hOJpPJlPrjdIx7bp871FplujNqZQtL06QrYyRSi80Q+CWKggmQniuhKvLeMK3y7gq+4AO5EPc5QAGI6NQbBaCUADGAAWkj6AAtmAOgAK4EN2hynOclzDhatRjr+5hCp4sQ9Euth8pyaT2J63ifGQSxpEGwaysB7h1uhmFlFAuH4YRYCkeRVG0fRF7qliWoMMw7A9kxADqWCSHqBoPsailYSpeEEcRZGUdRdFfuxP6MlxCB+FmTj+PO-RwkGnrRO0nwCZk8ytB8wIKQUWjUDoRFwAY5RntQYhgAAjjRcD0RAJjkLGABuOgANbkEiyWpelrZZTl+WFQg5WpSQDxVJ59LjraLTWAMTh9L4squiokqiXMMGdCBAzWEByzyrVKVpbAGVQE1eUFYQDG9sxVw9RxPnNMKfJkGd7gxUstjxCJgIIJWEluEGrjQtCi5+Dk8qoDoEBwGY+Spt5E42F4ThuF4vgBNywQlv4cR2HyYl+Dy3whstipFCUynA9aJ1WN0ZDpFMg0OINV0eJ6kquGQvydINO4+MBiVKtsePpv1Sygq4pauNYXTOEGUK2NT6R05CkrxLyzMY3uBThpG3mtvGibs6OIP9S8EldNLwYJFKbQlq606DcC-Kcv5iHwpj+6Hi+KvvlqHN9X+CBeKybRBEkLiZCjom8+8-RQYJtgfPJtsFBhDmqc5GmudpdEu5xp1E7zV19G96QJMuD2BDBUrzIuEKut0cuoQUJGRlANFaMnBMIDYSQOnYHKugtvzWCWAntMB3NW-yn2s3Va0bVtLWEPXE7OGJtiBdWV3eGkAmieD7jB1myPk0tORAA */
79
79
  readonly context: ({ input }: {
80
80
  input: {
81
81
  voice: import("..").Voice;
@@ -98,6 +98,7 @@ declare const machine: import("xstate").StateMachine<any, import("./types").Auto
98
98
  maxIdleTimeoutCount: number;
99
99
  idleTimeoutCount: number;
100
100
  maxSpeechWaitTimeout: number;
101
+ allowUserBargeIn: boolean;
101
102
  isSpeaking: boolean;
102
103
  sessionStartTime: number;
103
104
  maxSessionDuration: number;
@@ -186,6 +187,9 @@ declare const machine: import("xstate").StateMachine<any, import("./types").Auto
186
187
  readonly SPEECH_START: {
187
188
  readonly target: "listeningToUser";
188
189
  readonly description: "User started speaking again.";
190
+ readonly guard: ({ context }: import("xstate/dist/declarations/src/guards").GuardArgs<any, {
191
+ type: "SPEECH_START";
192
+ }>) => any;
189
193
  };
190
194
  };
191
195
  readonly after: {
@@ -207,6 +211,9 @@ declare const machine: import("xstate").StateMachine<any, import("./types").Auto
207
211
  readonly actions: readonly [{
208
212
  readonly type: "cleanSpeech";
209
213
  }];
214
+ readonly guard: ({ context }: import("xstate/dist/declarations/src/guards").GuardArgs<any, {
215
+ type: "SPEECH_START";
216
+ }>) => any;
210
217
  };
211
218
  };
212
219
  readonly invoke: {
@@ -220,7 +227,11 @@ declare const machine: import("xstate").StateMachine<any, import("./types").Auto
220
227
  context: any;
221
228
  };
222
229
  readonly onDone: {
223
- readonly target: "idle";
230
+ readonly target: "listeningToUser";
231
+ readonly reenter: true;
232
+ readonly actions: readonly [{
233
+ readonly type: "cleanSpeech";
234
+ }];
224
235
  };
225
236
  };
226
237
  };
@@ -23,7 +23,7 @@ const xstate_1 = require("xstate");
23
23
  const context_1 = require("./context");
24
24
  const setup_1 = require("./setup");
25
25
  const machine = setup_1.machineSetup.createMachine({
26
- /** @xstate-layout N4IgpgJg5mDOIC5QDMB2BBAkgYgB6wBcBDAsAOiOVICcAKAWXQA0B9AZQFE23MB5AORYARAKoAldABU+-AJTY0WANoAGALqJQABwD2sAJYF9O1JpC5EAWgBMAZgCcZWwEYAbAA4A7AFZXAFgd7F08AGhAAT0Rrbz8yFT8PFW8vPxVrV1dbAF8ssMVMMihqMDAjVChsVQ0kEF0DIxMzCwRnd2cnT3tXT1trdxUMttcwyIQg7zJ7Twzo+2drO29PHLyMAv0IABswbDYABQ4OAGEACXZJdDFJKrM6w2NTGub7FU8yd287Tz6-Hu7QiKITzuayTAa2TyeFStTp+awrED5MgbbZ4QgkciUGi0TBCAAyHBY0noHF4Ikk8iRKLANxqdwaj1AzRiKkmyWc9nc9heKlsrm8I0Qzhc7Xmc289msqXi3myuURa2RWx2+GIpAoVDAdFxBKJmBJZIpCkV1KUzmq2j090aT0QDjIHimwL8zjSSUygparUc-k+Cy6IL8fm8CKRBGoRFQ9Qe+nKkh0mGVlXUtytDKadvcsS6vX5WfctgC8U9zldjihwMlpc6nVDis2+kIYFQsag8ZEsC1uwOxzOYi4Ijx1xTdLTDwzCH87nemXsCUCrimfk9fNZ3J8cJ5LtSctWWDIDabLbjOg7XdVGI12J1hOJpPJlPrjdIx7bp871FplujNqZQocsTRCypauK0ELWCWKjuNOKhJNC1hzouoGuHW+4AO5EPc5QAGI6NQbBaCUADGAAWkj6AAtmAOgAK4EN2hynOclzDhatRjr+5hCp4sQ9Euth8pyaT2J63ifGQSxpEGwayrYySoQUGFYVAuH4YRYCkeRVG0fRF7qliWoMMw7A9kxADqWCSHqBoPsa6GYWUKl4QRxFkZR1F0V+7E-oyXEIH4WZOP4879HCQaetE7SfAJmTzK0HzAgpZBaNQOhEXABjlGe1BiGAACONFwPREAmOQsYAG46AA1uQSIpWlGWttluUFUVCAVWlJAPFUXn0uOtpegMcQQrYUELNBBbDICYyuKCkqSgE9i+FMzghvKdWpelsCZVAzX5YVhAMb2zFXL1HG+c0pZcsNXSfKtkp2FNozAu0LyzVKAYSihCKoDoEBwGY+Spj5E42F4ThuF4viLUEzgAqMbixGkAlydECEZJkSVFCUjnA9aF1WN0ZDpFM1i8pKUGDJ6kquGQvydGTO4+HJSXUnj6YDUsoKgW46POEGUK2NT6R05CFNM7Ka17gU4aRj5rbxom2zs-1f5jKyX3xDKCRSm0JautOZPAvynIBd48xJYeL4K++Woq5xzReKybRBEkLiZGJy7Tb47TQbBk1BB87hJUpjmqS5GludpdH2wTLRE6B7izUnaT+P4K7cmQ3wuiTEKut0UsKvuJGRlANFaLHoNkxMs0uHMaQ8d8JYCe0clc2b-KLn4SX1VtO17a1hCVwNq2ykF1ZJ94yNC974N+1BAT8g41jLDkWRAA */
26
+ /** @xstate-layout N4IgpgJg5mDOIC5QDMB2BBAkgYgB6wBcBDAsAOiOVICcAKAWXQA0B9AZQFE23MB5AORYARAKoAldABU+-AJTY0WANoAGALqJQABwD2sAJYF9O1JpC5EAWgBMAZgCcZWwEYAbAA4A7AFZXAFgd7F08AGhAAT0Rrbz8yFT8PFW8vPxVrV1dbAF8ssMVMMihqMDAjVChsVQ0kEF0DIxMzCwRnd2cnT3tXT1trdxUMttcwyIQg7zJ7Twzo+2drO29PHLyMAv0IABswbDYABQ4OAGEACXZJdDFJKrM6w2NTGub7FU8yd287Tz6-Hu7QiKITzuayTAa2TyeFStTp+awrED5MgbbZ4QgkciUGi0TBCAAyHBY0noHF4Ikk8iRKLANxqdwaj1AzRiKkmyWc9nc9heKlsrm8I0Qzhc7Xmc289msqXi3myuURa2RWx2+GIpAoVDAdFxBKJmBJZIpCkV1KUzmq2j090aT0QDjIHimwL8zjSSUygparUc-k+Cy6IL8fm8CKRBGoRFQ9Qe+nKkh0mGVlXUtytDKadvcsS6vX5WfctgC8U9zldjihwMlpc6nVDis2+kIYFQsag8ZEsC1uwOxzOYi4Ijx1xTdLTDwzCH87nemXsCUCrimfk9fNZ3J8cJ5LtSctWWDIDabLbjOg7XdVGI12J1hOJpPJlPrjdIx7bp871FplujNqZQtL06QrYyRSi80Q+CWKggmQniuhKvLeMK3y7gq+4AO5EPc5QAGI6NQbBaCUADGAAWkj6AAtmAOgAK4EN2hynOclzDhatRjr+5hCp4sQ9Euth8pyaT2J63ifGQSxpEGwaysB7h1uhmFlFAuH4YRYCkeRVG0fRF7qliWoMMw7A9kxADqWCSHqBoPsailYSpeEEcRZGUdRdFfuxP6MlxCB+FmTj+PO-RwkGnrRO0nwCZk8ytB8wIKQUWjUDoRFwAY5RntQYhgAAjjRcD0RAJjkLGABuOgANbkEiyWpelrZZTl+WFQg5WpSQDxVJ59LjraLTWAMTh9L4squiokqiXMMGdCBAzWEByzyrVKVpbAGVQE1eUFYQDG9sxVw9RxPnNMKfJkGd7gxUstjxCJgIIJWEluEGrjQtCi5+Dk8qoDoEBwGY+Spt5E42F4ThuF4vgBNywQlv4cR2HyYl+Dy3whstipFCUynA9aJ1WN0ZDpFMg0OINV0eJ6kquGQvydINO4+MBiVKtsePpv1Sygq4pauNYXTOEGUK2NT6R05CkrxLyzMY3uBThpG3mtvGibs6OIP9S8EldNLwYJFKbQlq606DcC-Kcv5iHwpj+6Hi+KvvlqHN9X+CBeKybRBEkLiZCjom8+8-RQYJtgfPJtsFBhDmqc5GmudpdEu5xp1E7zV19G96QJMuD2BDBUrzIuEKut0cuoQUJGRlANFaMnBMIDYSQOnYHKugtvzWCWAntMB3NW-yn2s3Va0bVtLWEPXE7OGJtiBdWV3eGkAmieD7jB1myPk0tORAA */
27
27
  context: context_1.context,
28
28
  id: "fnAI",
29
29
  initial: "greeting",
@@ -102,7 +102,8 @@ const machine = setup_1.machineSetup.createMachine({
102
102
  on: {
103
103
  SPEECH_START: {
104
104
  target: "listeningToUser",
105
- description: "User started speaking again."
105
+ description: "User started speaking again.",
106
+ guard: ({ context }) => context.allowUserBargeIn
106
107
  }
107
108
  },
108
109
  after: {
@@ -121,7 +122,8 @@ const machine = setup_1.machineSetup.createMachine({
121
122
  SPEECH_START: {
122
123
  target: "listeningToUser",
123
124
  description: "Event from VAD or similar system.",
124
- actions: [{ type: "cleanSpeech" }]
125
+ actions: [{ type: "cleanSpeech" }],
126
+ guard: ({ context }) => context.enableUserBargeIn
125
127
  }
126
128
  },
127
129
  invoke: {
@@ -129,7 +131,9 @@ const machine = setup_1.machineSetup.createMachine({
129
131
  description: "Process the user request",
130
132
  input: ({ context }) => ({ context }),
131
133
  onDone: {
132
- target: "idle"
134
+ target: "listeningToUser",
135
+ reenter: true,
136
+ actions: [{ type: "cleanSpeech" }]
133
137
  }
134
138
  }
135
139
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fonoster/autopilot",
3
- "version": "0.12.1",
3
+ "version": "0.12.3",
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",
@@ -34,11 +34,11 @@
34
34
  "dependencies": {
35
35
  "@aws-sdk/client-s3": "^3.712.0",
36
36
  "@dmitryrechkin/json-schema-to-zod": "^1.0.1",
37
- "@fonoster/common": "^0.12.1",
38
- "@fonoster/logger": "^0.12.1",
39
- "@fonoster/sdk": "^0.12.1",
40
- "@fonoster/types": "^0.12.1",
41
- "@fonoster/voice": "^0.12.1",
37
+ "@fonoster/common": "^0.12.2",
38
+ "@fonoster/logger": "^0.12.2",
39
+ "@fonoster/sdk": "^0.12.2",
40
+ "@fonoster/types": "^0.12.2",
41
+ "@fonoster/voice": "^0.12.2",
42
42
  "@langchain/anthropic": "^0.3.15",
43
43
  "@langchain/community": "^0.3.32",
44
44
  "@langchain/core": "^0.3.40",
@@ -59,5 +59,5 @@
59
59
  "xstate": "^5.17.3",
60
60
  "zod": "^3.23.8"
61
61
  },
62
- "gitHead": "4f6bd704be3e57e8f077494013d9fc153ae7ecb7"
62
+ "gitHead": "b0cd248ac79fb63b1febb55031c53eff27714b21"
63
63
  }