@guava-ai/guava-sdk 0.16.0 → 0.17.0

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.
@@ -57,8 +57,11 @@ async function run(args) {
57
57
  else if (args.includes("--phone")) {
58
58
  agent.listenPhone(process.env.GUAVA_AGENT_NUMBER);
59
59
  }
60
+ else if (args.includes("--local")) {
61
+ await agent.callLocal();
62
+ }
60
63
  else {
61
- console.error("Usage: guava-example property-insurance --phone | --webrtc");
64
+ console.error("Usage: guava-example property-insurance --phone | --webrtc | --local");
62
65
  process.exit(1);
63
66
  }
64
67
  }
@@ -1 +1 @@
1
- {"version":3,"file":"property-insurance.js","sourceRoot":"","sources":["../../examples/property-insurance.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAoBA,kBASC;AA7BD,2DAA6C;AAC7C,+DAAgE;AAChE,mEAA6E;AAE7E,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,KAAK,CAAC;IAC5B,YAAY,EAAE,kCAAkC;IAChD,OAAO,EAAE,wFAAwF;CAClG,CAAC,CAAC;AAEH,8EAA8E;AAC9E,yCAAyC;AACzC,MAAM,UAAU,GAAG,IAAI,mBAAU,CAAC,kCAAkC,EAAE,wCAAyB,CAAC,CAAC;AAEjG,qGAAqG;AACrG,KAAK,CAAC,UAAU,CAAC,KAAK,EAAE,IAAgB,EAAE,QAAgB,EAAE,EAAE;IAC5D,4EAA4E;IAC5E,2DAA2D;IAC3D,OAAO,MAAM,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;AACxC,CAAC,CAAC,CAAC;AAEI,KAAK,UAAU,GAAG,CAAC,IAAc;IACtC,IAAI,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;QAC9B,MAAM,KAAK,CAAC,YAAY,EAAE,CAAC;IAC7B,CAAC;SAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;QACpC,KAAK,CAAC,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,kBAAmB,CAAC,CAAC;IACrD,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,KAAK,CAAC,4DAA4D,CAAC,CAAC;QAC5E,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"property-insurance.js","sourceRoot":"","sources":["../../examples/property-insurance.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAoBA,kBAWC;AA/BD,2DAA6C;AAC7C,+DAAgE;AAChE,mEAA6E;AAE7E,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,KAAK,CAAC;IAC5B,YAAY,EAAE,kCAAkC;IAChD,OAAO,EAAE,wFAAwF;CAClG,CAAC,CAAC;AAEH,8EAA8E;AAC9E,yCAAyC;AACzC,MAAM,UAAU,GAAG,IAAI,mBAAU,CAAC,kCAAkC,EAAE,wCAAyB,CAAC,CAAC;AAEjG,qGAAqG;AACrG,KAAK,CAAC,UAAU,CAAC,KAAK,EAAE,IAAgB,EAAE,QAAgB,EAAE,EAAE;IAC5D,4EAA4E;IAC5E,2DAA2D;IAC3D,OAAO,MAAM,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;AACxC,CAAC,CAAC,CAAC;AAEI,KAAK,UAAU,GAAG,CAAC,IAAc;IACtC,IAAI,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;QAC9B,MAAM,KAAK,CAAC,YAAY,EAAE,CAAC;IAC7B,CAAC;SAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;QACpC,KAAK,CAAC,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,kBAAmB,CAAC,CAAC;IACrD,CAAC;SAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;QACpC,MAAM,KAAK,CAAC,SAAS,EAAE,CAAC;IAC1B,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,KAAK,CAAC,sEAAsE,CAAC,CAAC;QACtF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC"}
@@ -75,8 +75,11 @@ async function run(args) {
75
75
  else if (args.includes("--phone")) {
76
76
  agent.listenPhone(process.env.GUAVA_AGENT_NUMBER);
77
77
  }
78
+ else if (args.includes("--local")) {
79
+ await agent.callLocal();
80
+ }
78
81
  else {
79
- console.error("Usage: guava-example restaurant-waitlist --phone | --webrtc");
82
+ console.error("Usage: guava-example restaurant-waitlist --phone | --webrtc | --local");
80
83
  process.exit(1);
81
84
  }
82
85
  }
@@ -1 +1 @@
1
- {"version":3,"file":"restaurant-waitlist.js","sourceRoot":"","sources":["../../examples/restaurant-waitlist.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA4CA,kBASC;AArDD,2DAA6C;AAC7C,mDAAuD;AAEvD,MAAM,MAAM,GAAG,IAAA,4BAAgB,GAAE,CAAC;AAElC,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,KAAK,CAAC;IAC5B,IAAI,EAAE,KAAK;IACX,YAAY,EAAE,aAAa;IAC3B,OAAO,EAAE,8CAA8C;CACxD,CAAC,CAAC;AAEH,KAAK,CAAC,cAAc,CAAC,KAAK,EAAE,SAAyB,EAAE,EAAE;IACvD,6FAA6F;IAC7F,8FAA8F;IAC9F,uBAAuB;IACvB,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;AAC9B,CAAC,CAAC,CAAC;AAEH,KAAK,CAAC,WAAW,CAAC,KAAK,EAAE,IAAgB,EAAE,EAAE;IAC3C,MAAM,IAAI,CAAC,OAAO,CAAC;QACjB,MAAM,EAAE,UAAU;QAClB,SAAS,EAAE,2EAA2E;QACtF,SAAS,EAAE;YACT,KAAK,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,uBAAuB,EAAE,CAAC;YAC5F,KAAK,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,YAAY,EAAE,SAAS,EAAE,SAAS,EAAE,WAAW,EAAE,kBAAkB,EAAE,CAAC;YACzF,KAAK,CAAC,KAAK,CAAC;gBACV,GAAG,EAAE,cAAc;gBACnB,SAAS,EAAE,MAAM;gBACjB,WAAW,EAAE,8CAA8C;aAC5D,CAAC;YACF,sDAAsD;SACvD;KACF,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,KAAK,CAAC,cAAc,CAAC,UAAU,EAAE,KAAK,EAAE,IAAgB,EAAE,EAAE;IAC1D,MAAM,CAAC,IAAI,CACT,qCAAqC,EACrC,MAAM,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,EAClC,MAAM,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAClC,CAAC;IACF,MAAM,IAAI,CAAC,MAAM,CAAC,0EAA0E,CAAC,CAAC;AAChG,CAAC,CAAC,CAAC;AAEI,KAAK,UAAU,GAAG,CAAC,IAAc;IACtC,IAAI,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;QAC9B,MAAM,KAAK,CAAC,YAAY,EAAE,CAAC;IAC7B,CAAC;SAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;QACpC,KAAK,CAAC,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,kBAAmB,CAAC,CAAC;IACrD,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,KAAK,CAAC,6DAA6D,CAAC,CAAC;QAC7E,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"restaurant-waitlist.js","sourceRoot":"","sources":["../../examples/restaurant-waitlist.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA4CA,kBAWC;AAvDD,2DAA6C;AAC7C,mDAAuD;AAEvD,MAAM,MAAM,GAAG,IAAA,4BAAgB,GAAE,CAAC;AAElC,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,KAAK,CAAC;IAC5B,IAAI,EAAE,KAAK;IACX,YAAY,EAAE,aAAa;IAC3B,OAAO,EAAE,8CAA8C;CACxD,CAAC,CAAC;AAEH,KAAK,CAAC,cAAc,CAAC,KAAK,EAAE,SAAyB,EAAE,EAAE;IACvD,6FAA6F;IAC7F,8FAA8F;IAC9F,uBAAuB;IACvB,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;AAC9B,CAAC,CAAC,CAAC;AAEH,KAAK,CAAC,WAAW,CAAC,KAAK,EAAE,IAAgB,EAAE,EAAE;IAC3C,MAAM,IAAI,CAAC,OAAO,CAAC;QACjB,MAAM,EAAE,UAAU;QAClB,SAAS,EAAE,2EAA2E;QACtF,SAAS,EAAE;YACT,KAAK,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,uBAAuB,EAAE,CAAC;YAC5F,KAAK,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,YAAY,EAAE,SAAS,EAAE,SAAS,EAAE,WAAW,EAAE,kBAAkB,EAAE,CAAC;YACzF,KAAK,CAAC,KAAK,CAAC;gBACV,GAAG,EAAE,cAAc;gBACnB,SAAS,EAAE,MAAM;gBACjB,WAAW,EAAE,8CAA8C;aAC5D,CAAC;YACF,sDAAsD;SACvD;KACF,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,KAAK,CAAC,cAAc,CAAC,UAAU,EAAE,KAAK,EAAE,IAAgB,EAAE,EAAE;IAC1D,MAAM,CAAC,IAAI,CACT,qCAAqC,EACrC,MAAM,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,EAClC,MAAM,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAClC,CAAC;IACF,MAAM,IAAI,CAAC,MAAM,CAAC,0EAA0E,CAAC,CAAC;AAChG,CAAC,CAAC,CAAC;AAEI,KAAK,UAAU,GAAG,CAAC,IAAc;IACtC,IAAI,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;QAC9B,MAAM,KAAK,CAAC,YAAY,EAAE,CAAC;IAC7B,CAAC;SAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;QACpC,KAAK,CAAC,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,kBAAmB,CAAC,CAAC;IACrD,CAAC;SAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;QACpC,MAAM,KAAK,CAAC,SAAS,EAAE,CAAC;IAC1B,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,KAAK,CAAC,uEAAuE,CAAC,CAAC;QACvF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC"}
@@ -57,6 +57,7 @@ export declare class Agent {
57
57
  onReachPerson(callback: (call: Call, availability: string) => Promise<void>): void;
58
58
  listenPhone(phoneNumber: string): InboundListener;
59
59
  listenWebrtc(webrtcCode?: string): Promise<InboundListener>;
60
+ callLocal(): Promise<void>;
60
61
  private _dispatchEvent;
61
62
  _startCall(variables?: Record<string, any>): Promise<Call>;
62
63
  _listenInbound(conn: InboundConnection): InboundListener;
package/dist/src/agent.js CHANGED
@@ -74,6 +74,8 @@ exports.Agent = void 0;
74
74
  const ws_1 = __importDefault(require("ws"));
75
75
  const index_ts_1 = require("./index.js");
76
76
  const logging_ts_1 = require("./logging.js");
77
+ const utils_ts_1 = require("./utils.js");
78
+ const webrtc_helper_ts_1 = require("./webrtc-helper.js");
77
79
  const z = __importStar(require("zod"));
78
80
  const commands_ts_1 = require("./commands.js");
79
81
  const events_ts_1 = require("./events.js");
@@ -191,6 +193,11 @@ let Agent = (() => {
191
193
  }
192
194
  return this._listenInbound({ webrtc_code: webrtcCode });
193
195
  }
196
+ async callLocal() {
197
+ const webrtcCode = await this._client.createWebrtcAgent(300);
198
+ this._listenInbound({ webrtc_code: webrtcCode });
199
+ await (0, webrtc_helper_ts_1.runWebrtcHelper)(webrtcCode, (0, utils_ts_1.getBaseUrl)());
200
+ }
194
201
  async _dispatchEvent(call, event) {
195
202
  if (event.event_type === "caller-speech") {
196
203
  if (this._onCallerSpeech !== undefined) {
@@ -1 +1 @@
1
- {"version":3,"file":"agent.js","sourceRoot":"","sources":["../../src/agent.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agent.js","sourceRoot":"","sources":["../../src/agent.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
1
  export declare const DEFAULT_BASE_URL = "https://app.goguava.ai/";
2
+ export declare function getPlatformConfigDir(): string;
2
3
  export declare function getBaseUrl(): string;
3
4
  export declare function fetchOrThrow(input: RequestInfo | URL, init?: RequestInit): Promise<Response>;
package/dist/src/utils.js CHANGED
@@ -1,9 +1,59 @@
1
1
  "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
2
35
  Object.defineProperty(exports, "__esModule", { value: true });
3
36
  exports.DEFAULT_BASE_URL = void 0;
37
+ exports.getPlatformConfigDir = getPlatformConfigDir;
4
38
  exports.getBaseUrl = getBaseUrl;
5
39
  exports.fetchOrThrow = fetchOrThrow;
40
+ const os = __importStar(require("node:os"));
41
+ const path = __importStar(require("node:path"));
6
42
  exports.DEFAULT_BASE_URL = "https://app.goguava.ai/";
43
+ function getPlatformConfigDir() {
44
+ if (process.platform === "win32") {
45
+ const appdata = process.env.APPDATA;
46
+ if (!appdata)
47
+ throw new Error("Could not determine config directory: APPDATA is not set");
48
+ return appdata;
49
+ }
50
+ const home = os.homedir();
51
+ if (!home)
52
+ throw new Error("Could not determine config directory: home directory is unknown");
53
+ if (process.platform === "darwin")
54
+ return path.join(home, "Library", "Application Support");
55
+ return process.env.XDG_CONFIG_HOME ?? path.join(home, ".config");
56
+ }
7
57
  function getBaseUrl() {
8
58
  return process.env.GUAVA_BASE_URL ?? exports.DEFAULT_BASE_URL;
9
59
  }
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":";;;AAEA,gCAEC;AAcD,oCAaC;AA/BY,QAAA,gBAAgB,GAAG,yBAAyB,CAAC;AAE1D,SAAgB,UAAU;IACxB,OAAO,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,wBAAgB,CAAC;AACxD,CAAC;AAED,MAAM,eAAgB,SAAQ,KAAK;IAEf;IACA;IACA;IACA;IAJlB,YACkB,MAAc,EACd,UAAkB,EAClB,IAAY,EACZ,QAAkB;QAElC,KAAK,CAAC,QAAQ,MAAM,IAAI,UAAU,GAAG,IAAI,CAAC,CAAC,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QALjD,WAAM,GAAN,MAAM,CAAQ;QACd,eAAU,GAAV,UAAU,CAAQ;QAClB,SAAI,GAAJ,IAAI,CAAQ;QACZ,aAAQ,GAAR,QAAQ,CAAU;QAGlC,IAAI,CAAC,IAAI,GAAG,iBAAiB,CAAC;IAChC,CAAC;CACF;AAEM,KAAK,UAAU,YAAY,CAChC,KAAwB,EACxB,IAAkB;IAElB,kDAAkD;IAClD,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IAErC,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;QACZ,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;QAC9C,MAAM,IAAI,eAAe,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,UAAU,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;IACnE,CAAC;IAED,OAAO,GAAG,CAAC;AACb,CAAC"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAKA,oDAUC;AAED,gCAEC;AAcD,oCAaC;AA9CD,4CAA8B;AAC9B,gDAAkC;AAErB,QAAA,gBAAgB,GAAG,yBAAyB,CAAC;AAE1D,SAAgB,oBAAoB;IAClC,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;QACjC,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC;QACpC,IAAI,CAAC,OAAO;YAAE,MAAM,IAAI,KAAK,CAAC,0DAA0D,CAAC,CAAC;QAC1F,OAAO,OAAO,CAAC;IACjB,CAAC;IACD,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC;IAC1B,IAAI,CAAC,IAAI;QAAE,MAAM,IAAI,KAAK,CAAC,iEAAiE,CAAC,CAAC;IAC9F,IAAI,OAAO,CAAC,QAAQ,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,qBAAqB,CAAC,CAAC;IAC5F,OAAO,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;AACnE,CAAC;AAED,SAAgB,UAAU;IACxB,OAAO,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,wBAAgB,CAAC;AACxD,CAAC;AAED,MAAM,eAAgB,SAAQ,KAAK;IAEf;IACA;IACA;IACA;IAJlB,YACkB,MAAc,EACd,UAAkB,EAClB,IAAY,EACZ,QAAkB;QAElC,KAAK,CAAC,QAAQ,MAAM,IAAI,UAAU,GAAG,IAAI,CAAC,CAAC,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QALjD,WAAM,GAAN,MAAM,CAAQ;QACd,eAAU,GAAV,UAAU,CAAQ;QAClB,SAAI,GAAJ,IAAI,CAAQ;QACZ,aAAQ,GAAR,QAAQ,CAAU;QAGlC,IAAI,CAAC,IAAI,GAAG,iBAAiB,CAAC;IAChC,CAAC;CACF;AAEM,KAAK,UAAU,YAAY,CAChC,KAAwB,EACxB,IAAkB;IAElB,kDAAkD;IAClD,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IAErC,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;QACZ,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;QAC9C,MAAM,IAAI,eAAe,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,UAAU,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;IACnE,CAAC;IAED,OAAO,GAAG,CAAC;AACb,CAAC"}
@@ -1 +1 @@
1
- export declare const SDK_VERSION = "0.16.0";
1
+ export declare const SDK_VERSION = "0.17.0";
@@ -1,5 +1,5 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.SDK_VERSION = void 0;
4
- exports.SDK_VERSION = "0.16.0";
4
+ exports.SDK_VERSION = "0.17.0";
5
5
  //# sourceMappingURL=version.js.map
@@ -0,0 +1 @@
1
+ export declare function runWebrtcHelper(webrtcCode: string, baseUrl: string): Promise<void>;
@@ -0,0 +1,153 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.runWebrtcHelper = runWebrtcHelper;
37
+ const crypto = __importStar(require("node:crypto"));
38
+ const cp = __importStar(require("node:child_process"));
39
+ const fs = __importStar(require("node:fs"));
40
+ const os = __importStar(require("node:os"));
41
+ const path = __importStar(require("node:path"));
42
+ const utils_ts_1 = require("./utils.js");
43
+ const HELPER_VERSION = "0.1.0";
44
+ const MANIFEST = [
45
+ {
46
+ os: "darwin",
47
+ arch: "aarch64",
48
+ url: "https://storage.googleapis.com/gridspace-guava-cli/webrtc/0.1.0/guava-webrtc-darwin-aarch64",
49
+ sha256: "c134efc45820ba50b461fc29918a49a0c4b9d5bf04367be86700a78309211dc5",
50
+ },
51
+ {
52
+ os: "darwin",
53
+ arch: "x86_64",
54
+ url: "https://storage.googleapis.com/gridspace-guava-cli/webrtc/0.1.0/guava-webrtc-darwin-x86_64",
55
+ sha256: "bbe49b90184a863fcb8215ac4e6f09b827d4efa36ea2ffa958b11cc81422d45a",
56
+ },
57
+ {
58
+ os: "linux",
59
+ arch: "aarch64",
60
+ url: "https://storage.googleapis.com/gridspace-guava-cli/webrtc/0.1.0/guava-webrtc-linux-aarch64",
61
+ sha256: "4b0f7cf4161e1b18130cfabe2754866eadd787e865bf2e51843688841ae1acf7",
62
+ },
63
+ {
64
+ os: "linux",
65
+ arch: "x86_64",
66
+ url: "https://storage.googleapis.com/gridspace-guava-cli/webrtc/0.1.0/guava-webrtc-linux-x86_64",
67
+ sha256: "ea2c8a479eacccf6188853bb41f1797c8e4506205ad1a293f392e08d1d11bb86",
68
+ },
69
+ {
70
+ os: "win32",
71
+ arch: "x86_64",
72
+ url: "https://storage.googleapis.com/gridspace-guava-cli/webrtc/0.1.0/guava-webrtc-windows-x86_64.exe",
73
+ sha256: "4957fa123527a16bf4242569dc7c3d3ca2cd2f6583b07d38d76ae467485fb032",
74
+ },
75
+ ];
76
+ function detectArch() {
77
+ const arch = os.arch();
78
+ if (arch === "arm64")
79
+ return "aarch64";
80
+ if (arch === "x64")
81
+ return "x86_64";
82
+ throw new Error(`Unsupported architecture for WebRTC helper: ${arch}`);
83
+ }
84
+ async function downloadAndCheck(url, destination, sha256) {
85
+ fs.mkdirSync(path.dirname(destination), { recursive: true });
86
+ const tmpDir = fs.mkdtempSync(path.join(os.tmpdir(), "guava-webrtc-"));
87
+ const tmpFile = path.join(tmpDir, path.basename(destination));
88
+ try {
89
+ // biome-ignore lint: intentional use of fetch for binary download
90
+ const response = await fetch(url);
91
+ if (!response.ok)
92
+ throw new Error(`HTTP ${response.status} downloading WebRTC helper`);
93
+ if (!response.body)
94
+ throw new Error("No response body");
95
+ const hasher = crypto.createHash("sha256");
96
+ const fileStream = fs.createWriteStream(tmpFile);
97
+ const reader = response.body.getReader();
98
+ while (true) {
99
+ const { done, value } = await reader.read();
100
+ if (done)
101
+ break;
102
+ hasher.update(value);
103
+ await new Promise((resolve, reject) => {
104
+ fileStream.write(value, (err) => (err ? reject(err) : resolve()));
105
+ });
106
+ }
107
+ await new Promise((resolve, reject) => {
108
+ fileStream.end((err) => (err ? reject(err) : resolve()));
109
+ });
110
+ const actual = hasher.digest("hex");
111
+ if (actual !== sha256) {
112
+ throw new Error(`SHA-256 mismatch: expected ${sha256}, got ${actual}`);
113
+ }
114
+ fs.copyFileSync(tmpFile, destination);
115
+ }
116
+ finally {
117
+ fs.rmSync(tmpDir, { recursive: true, force: true });
118
+ }
119
+ }
120
+ async function getOrDownloadBinary() {
121
+ const arch = detectArch();
122
+ const currentOs = process.platform;
123
+ const entry = MANIFEST.find((e) => e.os === currentOs && e.arch === arch);
124
+ if (!entry) {
125
+ throw new Error(`No WebRTC helper binary available for ${currentOs}/${arch}`);
126
+ }
127
+ const exeSuffix = process.platform === "win32" ? ".exe" : "";
128
+ const binaryPath = path.join((0, utils_ts_1.getPlatformConfigDir)(), "guava", "webrtc", `guava-webrtc-${HELPER_VERSION}${exeSuffix}`);
129
+ if (!fs.existsSync(binaryPath)) {
130
+ await downloadAndCheck(entry.url, binaryPath, entry.sha256);
131
+ if (process.platform !== "win32") {
132
+ const mode = fs.statSync(binaryPath).mode;
133
+ fs.chmodSync(binaryPath, mode | 0o111);
134
+ }
135
+ }
136
+ return binaryPath;
137
+ }
138
+ async function runWebrtcHelper(webrtcCode, baseUrl) {
139
+ const binaryPath = await getOrDownloadBinary();
140
+ return new Promise((resolve, reject) => {
141
+ const proc = cp.spawn(binaryPath, [webrtcCode, "--base-url", baseUrl], { stdio: "inherit" });
142
+ proc.on("close", (code) => {
143
+ if (code === 0 || code === null) {
144
+ resolve();
145
+ }
146
+ else {
147
+ reject(new Error(`WebRTC helper exited with code ${code}`));
148
+ }
149
+ });
150
+ proc.on("error", reject);
151
+ });
152
+ }
153
+ //# sourceMappingURL=webrtc-helper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"webrtc-helper.js","sourceRoot":"","sources":["../../src/webrtc-helper.ts"],"names":[],"mappings":"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"}
@@ -23,8 +23,10 @@ export async function run(args: string[]) {
23
23
  await agent.listenWebrtc();
24
24
  } else if (args.includes("--phone")) {
25
25
  agent.listenPhone(process.env.GUAVA_AGENT_NUMBER!);
26
+ } else if (args.includes("--local")) {
27
+ await agent.callLocal();
26
28
  } else {
27
- console.error("Usage: guava-example property-insurance --phone | --webrtc");
29
+ console.error("Usage: guava-example property-insurance --phone | --webrtc | --local");
28
30
  process.exit(1);
29
31
  }
30
32
  }
@@ -47,8 +47,10 @@ export async function run(args: string[]) {
47
47
  await agent.listenWebrtc();
48
48
  } else if (args.includes("--phone")) {
49
49
  agent.listenPhone(process.env.GUAVA_AGENT_NUMBER!);
50
+ } else if (args.includes("--local")) {
51
+ await agent.callLocal();
50
52
  } else {
51
- console.error("Usage: guava-example restaurant-waitlist --phone | --webrtc");
53
+ console.error("Usage: guava-example restaurant-waitlist --phone | --webrtc | --local");
52
54
  process.exit(1);
53
55
  }
54
56
  }
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "@guava-ai/guava-sdk",
3
3
  "description": "The official TypeScript SDK for building Guava voice agents.",
4
4
  "homepage": "https://docs.goguava.ai/typescript-sdk/",
5
- "version": "0.16.0",
5
+ "version": "0.17.0",
6
6
  "type": "commonjs",
7
7
  "main": "dist/src/index.js",
8
8
  "types": "dist/src/index.d.ts",
package/src/agent.ts CHANGED
@@ -1,6 +1,8 @@
1
1
  import WebSocket from "ws";
2
2
  import { Call, Client } from "./index.ts";
3
3
  import { getDefaultLogger, type Logger } from "./logging.ts";
4
+ import { getBaseUrl } from "./utils.ts";
5
+ import { runWebrtcHelper } from "./webrtc-helper.ts";
4
6
  import * as z from "zod";
5
7
  import {
6
8
  ListenInboundCommand,
@@ -172,6 +174,12 @@ export class Agent {
172
174
  return this._listenInbound({ webrtc_code: webrtcCode });
173
175
  }
174
176
 
177
+ async callLocal(): Promise<void> {
178
+ const webrtcCode = await this._client.createWebrtcAgent(300);
179
+ this._listenInbound({ webrtc_code: webrtcCode });
180
+ await runWebrtcHelper(webrtcCode, getBaseUrl());
181
+ }
182
+
175
183
  private async _dispatchEvent(call: Call, event: GuavaEvent) {
176
184
  if (event.event_type === "caller-speech") {
177
185
  if (this._onCallerSpeech !== undefined) {
package/src/utils.ts CHANGED
@@ -1,5 +1,20 @@
1
+ import * as os from "node:os";
2
+ import * as path from "node:path";
3
+
1
4
  export const DEFAULT_BASE_URL = "https://app.goguava.ai/";
2
5
 
6
+ export function getPlatformConfigDir(): string {
7
+ if (process.platform === "win32") {
8
+ const appdata = process.env.APPDATA;
9
+ if (!appdata) throw new Error("Could not determine config directory: APPDATA is not set");
10
+ return appdata;
11
+ }
12
+ const home = os.homedir();
13
+ if (!home) throw new Error("Could not determine config directory: home directory is unknown");
14
+ if (process.platform === "darwin") return path.join(home, "Library", "Application Support");
15
+ return process.env.XDG_CONFIG_HOME ?? path.join(home, ".config");
16
+ }
17
+
3
18
  export function getBaseUrl(): string {
4
19
  return process.env.GUAVA_BASE_URL ?? DEFAULT_BASE_URL;
5
20
  }
package/src/version.ts CHANGED
@@ -1 +1 @@
1
- export const SDK_VERSION = "0.16.0";
1
+ export const SDK_VERSION = "0.17.0";
@@ -0,0 +1,138 @@
1
+ import * as crypto from "node:crypto";
2
+ import * as cp from "node:child_process";
3
+ import * as fs from "node:fs";
4
+ import * as os from "node:os";
5
+ import * as path from "node:path";
6
+ import { getPlatformConfigDir } from "./utils.ts";
7
+
8
+ const HELPER_VERSION = "0.1.0";
9
+
10
+ interface ManifestEntry {
11
+ os: "linux" | "darwin" | "win32";
12
+ arch: "aarch64" | "x86_64";
13
+ url: string;
14
+ sha256: string;
15
+ }
16
+
17
+ const MANIFEST: ManifestEntry[] = [
18
+ {
19
+ os: "darwin",
20
+ arch: "aarch64",
21
+ url: "https://storage.googleapis.com/gridspace-guava-cli/webrtc/0.1.0/guava-webrtc-darwin-aarch64",
22
+ sha256: "c134efc45820ba50b461fc29918a49a0c4b9d5bf04367be86700a78309211dc5",
23
+ },
24
+ {
25
+ os: "darwin",
26
+ arch: "x86_64",
27
+ url: "https://storage.googleapis.com/gridspace-guava-cli/webrtc/0.1.0/guava-webrtc-darwin-x86_64",
28
+ sha256: "bbe49b90184a863fcb8215ac4e6f09b827d4efa36ea2ffa958b11cc81422d45a",
29
+ },
30
+ {
31
+ os: "linux",
32
+ arch: "aarch64",
33
+ url: "https://storage.googleapis.com/gridspace-guava-cli/webrtc/0.1.0/guava-webrtc-linux-aarch64",
34
+ sha256: "4b0f7cf4161e1b18130cfabe2754866eadd787e865bf2e51843688841ae1acf7",
35
+ },
36
+ {
37
+ os: "linux",
38
+ arch: "x86_64",
39
+ url: "https://storage.googleapis.com/gridspace-guava-cli/webrtc/0.1.0/guava-webrtc-linux-x86_64",
40
+ sha256: "ea2c8a479eacccf6188853bb41f1797c8e4506205ad1a293f392e08d1d11bb86",
41
+ },
42
+ {
43
+ os: "win32",
44
+ arch: "x86_64",
45
+ url: "https://storage.googleapis.com/gridspace-guava-cli/webrtc/0.1.0/guava-webrtc-windows-x86_64.exe",
46
+ sha256: "4957fa123527a16bf4242569dc7c3d3ca2cd2f6583b07d38d76ae467485fb032",
47
+ },
48
+ ];
49
+
50
+ function detectArch(): "aarch64" | "x86_64" {
51
+ const arch = os.arch();
52
+ if (arch === "arm64") return "aarch64";
53
+ if (arch === "x64") return "x86_64";
54
+ throw new Error(`Unsupported architecture for WebRTC helper: ${arch}`);
55
+ }
56
+
57
+ async function downloadAndCheck(url: string, destination: string, sha256: string): Promise<void> {
58
+ fs.mkdirSync(path.dirname(destination), { recursive: true });
59
+ const tmpDir = fs.mkdtempSync(path.join(os.tmpdir(), "guava-webrtc-"));
60
+ const tmpFile = path.join(tmpDir, path.basename(destination));
61
+
62
+ try {
63
+ // biome-ignore lint: intentional use of fetch for binary download
64
+ const response = await fetch(url);
65
+ if (!response.ok) throw new Error(`HTTP ${response.status} downloading WebRTC helper`);
66
+ if (!response.body) throw new Error("No response body");
67
+
68
+ const hasher = crypto.createHash("sha256");
69
+ const fileStream = fs.createWriteStream(tmpFile);
70
+ const reader = response.body.getReader();
71
+
72
+ while (true) {
73
+ const { done, value } = await reader.read();
74
+ if (done) break;
75
+ hasher.update(value);
76
+ await new Promise<void>((resolve, reject) => {
77
+ fileStream.write(value, (err) => (err ? reject(err) : resolve()));
78
+ });
79
+ }
80
+
81
+ await new Promise<void>((resolve, reject) => {
82
+ fileStream.end((err: Error | null | undefined) => (err ? reject(err) : resolve()));
83
+ });
84
+
85
+ const actual = hasher.digest("hex");
86
+ if (actual !== sha256) {
87
+ throw new Error(`SHA-256 mismatch: expected ${sha256}, got ${actual}`);
88
+ }
89
+
90
+ fs.copyFileSync(tmpFile, destination);
91
+ } finally {
92
+ fs.rmSync(tmpDir, { recursive: true, force: true });
93
+ }
94
+ }
95
+
96
+ async function getOrDownloadBinary(): Promise<string> {
97
+ const arch = detectArch();
98
+ const currentOs = process.platform as "linux" | "darwin" | "win32";
99
+
100
+ const entry = MANIFEST.find((e) => e.os === currentOs && e.arch === arch);
101
+ if (!entry) {
102
+ throw new Error(`No WebRTC helper binary available for ${currentOs}/${arch}`);
103
+ }
104
+
105
+ const exeSuffix = process.platform === "win32" ? ".exe" : "";
106
+ const binaryPath = path.join(
107
+ getPlatformConfigDir(),
108
+ "guava",
109
+ "webrtc",
110
+ `guava-webrtc-${HELPER_VERSION}${exeSuffix}`,
111
+ );
112
+
113
+ if (!fs.existsSync(binaryPath)) {
114
+ await downloadAndCheck(entry.url, binaryPath, entry.sha256);
115
+ if (process.platform !== "win32") {
116
+ const mode = fs.statSync(binaryPath).mode;
117
+ fs.chmodSync(binaryPath, mode | 0o111);
118
+ }
119
+ }
120
+
121
+ return binaryPath;
122
+ }
123
+
124
+ export async function runWebrtcHelper(webrtcCode: string, baseUrl: string): Promise<void> {
125
+ const binaryPath = await getOrDownloadBinary();
126
+
127
+ return new Promise<void>((resolve, reject) => {
128
+ const proc = cp.spawn(binaryPath, [webrtcCode, "--base-url", baseUrl], { stdio: "inherit" });
129
+ proc.on("close", (code) => {
130
+ if (code === 0 || code === null) {
131
+ resolve();
132
+ } else {
133
+ reject(new Error(`WebRTC helper exited with code ${code}`));
134
+ }
135
+ });
136
+ proc.on("error", reject);
137
+ });
138
+ }