@guava-ai/guava-sdk 0.27.0 → 0.28.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.
Files changed (58) hide show
  1. package/README.md +1 -1
  2. package/bin/example-runner.ts +67 -26
  3. package/dist/bin/example-runner.d.ts +1 -25
  4. package/dist/bin/example-runner.js +64 -24
  5. package/dist/bin/example-runner.js.map +1 -1
  6. package/dist/examples/help-desk.d.ts +1 -1
  7. package/dist/examples/help-desk.js +40 -29
  8. package/dist/examples/help-desk.js.map +1 -1
  9. package/dist/examples/multiple-agents.d.ts +1 -1
  10. package/dist/examples/multiple-agents.js +1 -1
  11. package/dist/examples/multiple-agents.js.map +1 -1
  12. package/dist/examples/polling-campaign.d.ts +1 -1
  13. package/dist/examples/polling-campaign.js +9 -7
  14. package/dist/examples/polling-campaign.js.map +1 -1
  15. package/dist/examples/property-insurance.d.ts +1 -1
  16. package/dist/examples/property-insurance.js +34 -23
  17. package/dist/examples/property-insurance.js.map +1 -1
  18. package/dist/examples/restaurant-waitlist.d.ts +1 -1
  19. package/dist/examples/restaurant-waitlist.js +34 -23
  20. package/dist/examples/restaurant-waitlist.js.map +1 -1
  21. package/dist/examples/scheduling-outbound.d.ts +1 -1
  22. package/dist/examples/scheduling-outbound.js +24 -14
  23. package/dist/examples/scheduling-outbound.js.map +1 -1
  24. package/dist/src/action-item.d.ts +8 -4
  25. package/dist/src/action-item.js +22 -3
  26. package/dist/src/action-item.js.map +1 -1
  27. package/dist/src/agent.d.ts +2 -2
  28. package/dist/src/agent.js +5 -9
  29. package/dist/src/agent.js.map +1 -1
  30. package/dist/src/call.d.ts +2 -0
  31. package/dist/src/call.js +7 -0
  32. package/dist/src/call.js.map +1 -1
  33. package/dist/src/campaigns.d.ts +79 -0
  34. package/dist/src/campaigns.js +195 -0
  35. package/dist/src/campaigns.js.map +1 -0
  36. package/dist/src/client.d.ts +10 -0
  37. package/dist/src/client.js +28 -0
  38. package/dist/src/client.js.map +1 -1
  39. package/dist/src/commands.d.ts +6 -3
  40. package/dist/src/index.d.ts +2 -0
  41. package/dist/src/index.js +3 -1
  42. package/dist/src/index.js.map +1 -1
  43. package/dist/src/version.d.ts +1 -1
  44. package/dist/src/version.js +1 -1
  45. package/examples/help-desk.ts +51 -26
  46. package/examples/multiple-agents.ts +1 -1
  47. package/examples/polling-campaign.ts +12 -7
  48. package/examples/property-insurance.ts +42 -22
  49. package/examples/restaurant-waitlist.ts +42 -22
  50. package/examples/scheduling-outbound.ts +26 -15
  51. package/package.json +2 -1
  52. package/src/action-item.ts +28 -5
  53. package/src/agent.ts +17 -13
  54. package/src/call.ts +9 -0
  55. package/src/campaigns.ts +156 -0
  56. package/src/client.ts +35 -0
  57. package/src/index.ts +8 -0
  58. package/src/version.ts +1 -1
package/README.md CHANGED
@@ -27,7 +27,7 @@ $ export GUAVA_AGENT_NUMBER="..." # A phone number for your agent to use.
27
27
  Run an outbound phone call example using `npx`. Replace the phone number with your own and your agent will call you.
28
28
 
29
29
  ```bash
30
- $ npx @guava-ai/guava-sdk@latest scheduling-outbound +15556667777 # Your agent will call this number.
30
+ $ npx @guava-ai/guava-sdk@latest scheduling-outbound phone +15556667777 # Your agent will call this number.
31
31
  ```
32
32
 
33
33
  ## Installation
@@ -1,5 +1,8 @@
1
1
  #!/usr/bin/env node
2
2
 
3
+ import * as path from "node:path";
4
+ import { Command } from "commander";
5
+
3
6
  const USE_COLOR = process.stdout.isTTY === true && !process.env.NO_COLOR;
4
7
  const c = {
5
8
  reset: USE_COLOR ? "\x1b[0m" : "",
@@ -15,7 +18,7 @@ type Registered = { suite: string; name: string; fn: TestFn };
15
18
 
16
19
  // This is a minimal in-process implementation of a Jest-like test runnner to allow the agent testing example
17
20
  // to be run from example runner.
18
- async function runAgentTesting(_args: string[]): Promise<void> {
21
+ async function runAgentTesting(_prog: string, _args: string[]): Promise<void> {
19
22
  const registered: Registered[] = [];
20
23
  let currentSuite = "";
21
24
 
@@ -89,9 +92,27 @@ async function runAgentTesting(_args: string[]): Promise<void> {
89
92
 
90
93
  type ExampleEntry = {
91
94
  description: string;
92
- load: () => Promise<{ run: (args: string[]) => Promise<void> }>;
95
+ load: () => Promise<{ run: (prog: string, args: string[]) => Promise<void> }>;
93
96
  };
94
97
 
98
+ // Reconstruct how this program was launched so usage/help text matches the
99
+ // command the user actually typed.
100
+ function launcher(): string {
101
+ const script = process.argv[1] ?? "";
102
+ if (script.endsWith(".ts")) {
103
+ // Developer workflow, e.g. `npx tsx ./bin/example-runner.ts <example>`.
104
+ const rel = path.relative(process.cwd(), script) || path.basename(script);
105
+ return `npx tsx ${rel}`;
106
+ }
107
+ // Installed package: exposed as the `guava-example` bin (also how
108
+ // `npx @guava-ai/guava-sdk@latest ...` resolves).
109
+ return "guava-example";
110
+ }
111
+
112
+ function invocationPrefix(exampleName: string): string {
113
+ return `${launcher()} ${exampleName}`;
114
+ }
115
+
95
116
  const EXAMPLES: Record<string, ExampleEntry> = {
96
117
  "scheduling-outbound": {
97
118
  description: "Outbound scheduling agent",
@@ -123,31 +144,51 @@ const EXAMPLES: Record<string, ExampleEntry> = {
123
144
  },
124
145
  };
125
146
 
126
- function printUsage(message?: string): void {
127
- const colWidth = Math.max(...Object.keys(EXAMPLES).map((k) => k.length)) + 3;
128
- if (message) {
129
- console.error(`${c.red}${message}${c.reset}\n`);
130
- }
131
- console.error(`${c.bold}Usage:${c.reset} guava-example <example-name> [args...]\n`);
132
- console.error(`${c.bold}Examples:${c.reset}`);
133
- for (const [name, { description }] of Object.entries(EXAMPLES)) {
134
- const padded = name.padEnd(colWidth);
135
- console.error(` ${c.cyan}${padded}${c.reset}${c.dim}${description}${c.reset}`);
136
- }
137
- }
147
+ // Help styling. We always emit ANSI here; commander strips it per output stream
148
+ // when the destination doesn't support color (NO_COLOR, non-TTY, etc.).
149
+ const ansi = {
150
+ bold: (s: string) => `\x1b[1m${s}\x1b[0m`,
151
+ green: (s: string) => `\x1b[32m${s}\x1b[0m`,
152
+ cyan: (s: string) => `\x1b[36m${s}\x1b[0m`,
153
+ dim: (s: string) => `\x1b[2m${s}\x1b[0m`,
154
+ };
138
155
 
139
- const exampleName = process.argv[2];
140
- if (!exampleName) {
141
- printUsage();
142
- process.exit(1);
143
- }
156
+ // Each example owns its own commander program (its channel subcommands live in
157
+ // its `run`). This top-level program just selects an example and forwards the
158
+ // remaining args verbatim, so only the chosen example's module is imported.
159
+ const program = new Command()
160
+ .name(launcher())
161
+ .description("Runnable examples for the Guava TypeScript SDK.")
162
+ .showHelpAfterError()
163
+ .helpCommand(false)
164
+ .configureHelp({
165
+ styleTitle: ansi.bold,
166
+ styleCommandText: ansi.green,
167
+ styleSubcommandTerm: ansi.green,
168
+ styleOptionTerm: ansi.cyan,
169
+ styleArgumentTerm: ansi.cyan,
170
+ styleSubcommandDescription: ansi.dim,
171
+ styleOptionDescription: ansi.dim,
172
+ styleArgumentDescription: ansi.dim,
173
+ });
144
174
 
145
- if (!(exampleName in EXAMPLES)) {
146
- printUsage(`Unknown example "${exampleName}".`);
147
- process.exit(1);
175
+ for (const [name, entry] of Object.entries(EXAMPLES)) {
176
+ program
177
+ .command(name)
178
+ .description(entry.description)
179
+ .argument("[args...]", "arguments forwarded to the example")
180
+ // The example has no options of its own here, so everything after its name
181
+ // (including flags like `--phone` and `--help`) is forwarded into `args`
182
+ // for the example's own commander to parse.
183
+ .allowUnknownOption()
184
+ .helpOption(false)
185
+ .action(async (args: string[]) => {
186
+ const mod = await entry.load();
187
+ await mod.run(invocationPrefix(name), args);
188
+ });
148
189
  }
149
190
 
150
- (async () => {
151
- const mod = await EXAMPLES[exampleName].load();
152
- await mod.run(process.argv.slice(3));
153
- })();
191
+ program.parseAsync().catch((err) => {
192
+ console.error(err);
193
+ process.exit(1);
194
+ });
@@ -1,26 +1,2 @@
1
1
  #!/usr/bin/env node
2
- declare const USE_COLOR: boolean;
3
- declare const c: {
4
- reset: string;
5
- dim: string;
6
- green: string;
7
- red: string;
8
- bold: string;
9
- cyan: string;
10
- };
11
- type TestFn = () => Promise<void> | void;
12
- type Registered = {
13
- suite: string;
14
- name: string;
15
- fn: TestFn;
16
- };
17
- declare function runAgentTesting(_args: string[]): Promise<void>;
18
- type ExampleEntry = {
19
- description: string;
20
- load: () => Promise<{
21
- run: (args: string[]) => Promise<void>;
22
- }>;
23
- };
24
- declare const EXAMPLES: Record<string, ExampleEntry>;
25
- declare function printUsage(message?: string): void;
26
- declare const exampleName: string;
2
+ export {};
@@ -1,4 +1,5 @@
1
1
  #!/usr/bin/env node
2
+ "use strict";
2
3
  var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
4
  if (k2 === undefined) k2 = k;
4
5
  var desc = Object.getOwnPropertyDescriptor(m, k);
@@ -32,6 +33,9 @@ var __importStar = (this && this.__importStar) || (function () {
32
33
  return result;
33
34
  };
34
35
  })();
36
+ Object.defineProperty(exports, "__esModule", { value: true });
37
+ const path = __importStar(require("node:path"));
38
+ const commander_1 = require("commander");
35
39
  const USE_COLOR = process.stdout.isTTY === true && !process.env.NO_COLOR;
36
40
  const c = {
37
41
  reset: USE_COLOR ? "\x1b[0m" : "",
@@ -43,7 +47,7 @@ const c = {
43
47
  };
44
48
  // This is a minimal in-process implementation of a Jest-like test runnner to allow the agent testing example
45
49
  // to be run from example runner.
46
- async function runAgentTesting(_args) {
50
+ async function runAgentTesting(_prog, _args) {
47
51
  const registered = [];
48
52
  let currentSuite = "";
49
53
  global.describe = (name, fn) => {
@@ -101,6 +105,22 @@ async function runAgentTesting(_args) {
101
105
  if (failed > 0)
102
106
  process.exit(1);
103
107
  }
108
+ // Reconstruct how this program was launched so usage/help text matches the
109
+ // command the user actually typed.
110
+ function launcher() {
111
+ const script = process.argv[1] ?? "";
112
+ if (script.endsWith(".ts")) {
113
+ // Developer workflow, e.g. `npx tsx ./bin/example-runner.ts <example>`.
114
+ const rel = path.relative(process.cwd(), script) || path.basename(script);
115
+ return `npx tsx ${rel}`;
116
+ }
117
+ // Installed package: exposed as the `guava-example` bin (also how
118
+ // `npx @guava-ai/guava-sdk@latest ...` resolves).
119
+ return "guava-example";
120
+ }
121
+ function invocationPrefix(exampleName) {
122
+ return `${launcher()} ${exampleName}`;
123
+ }
104
124
  const EXAMPLES = {
105
125
  "scheduling-outbound": {
106
126
  description: "Outbound scheduling agent",
@@ -131,29 +151,49 @@ const EXAMPLES = {
131
151
  load: async () => ({ run: runAgentTesting }),
132
152
  },
133
153
  };
134
- function printUsage(message) {
135
- const colWidth = Math.max(...Object.keys(EXAMPLES).map((k) => k.length)) + 3;
136
- if (message) {
137
- console.error(`${c.red}${message}${c.reset}\n`);
138
- }
139
- console.error(`${c.bold}Usage:${c.reset} guava-example <example-name> [args...]\n`);
140
- console.error(`${c.bold}Examples:${c.reset}`);
141
- for (const [name, { description }] of Object.entries(EXAMPLES)) {
142
- const padded = name.padEnd(colWidth);
143
- console.error(` ${c.cyan}${padded}${c.reset}${c.dim}${description}${c.reset}`);
144
- }
145
- }
146
- const exampleName = process.argv[2];
147
- if (!exampleName) {
148
- printUsage();
149
- process.exit(1);
154
+ // Help styling. We always emit ANSI here; commander strips it per output stream
155
+ // when the destination doesn't support color (NO_COLOR, non-TTY, etc.).
156
+ const ansi = {
157
+ bold: (s) => `\x1b[1m${s}\x1b[0m`,
158
+ green: (s) => `\x1b[32m${s}\x1b[0m`,
159
+ cyan: (s) => `\x1b[36m${s}\x1b[0m`,
160
+ dim: (s) => `\x1b[2m${s}\x1b[0m`,
161
+ };
162
+ // Each example owns its own commander program (its channel subcommands live in
163
+ // its `run`). This top-level program just selects an example and forwards the
164
+ // remaining args verbatim, so only the chosen example's module is imported.
165
+ const program = new commander_1.Command()
166
+ .name(launcher())
167
+ .description("Runnable examples for the Guava TypeScript SDK.")
168
+ .showHelpAfterError()
169
+ .helpCommand(false)
170
+ .configureHelp({
171
+ styleTitle: ansi.bold,
172
+ styleCommandText: ansi.green,
173
+ styleSubcommandTerm: ansi.green,
174
+ styleOptionTerm: ansi.cyan,
175
+ styleArgumentTerm: ansi.cyan,
176
+ styleSubcommandDescription: ansi.dim,
177
+ styleOptionDescription: ansi.dim,
178
+ styleArgumentDescription: ansi.dim,
179
+ });
180
+ for (const [name, entry] of Object.entries(EXAMPLES)) {
181
+ program
182
+ .command(name)
183
+ .description(entry.description)
184
+ .argument("[args...]", "arguments forwarded to the example")
185
+ // The example has no options of its own here, so everything after its name
186
+ // (including flags like `--phone` and `--help`) is forwarded into `args`
187
+ // for the example's own commander to parse.
188
+ .allowUnknownOption()
189
+ .helpOption(false)
190
+ .action(async (args) => {
191
+ const mod = await entry.load();
192
+ await mod.run(invocationPrefix(name), args);
193
+ });
150
194
  }
151
- if (!(exampleName in EXAMPLES)) {
152
- printUsage(`Unknown example "${exampleName}".`);
195
+ program.parseAsync().catch((err) => {
196
+ console.error(err);
153
197
  process.exit(1);
154
- }
155
- (async () => {
156
- const mod = await EXAMPLES[exampleName].load();
157
- await mod.run(process.argv.slice(3));
158
- })();
198
+ });
159
199
  //# sourceMappingURL=example-runner.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"example-runner.js","sourceRoot":"","sources":["../../bin/example-runner.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,MAAM,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,KAAK,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC;AACzE,MAAM,CAAC,GAAG;IACR,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE;IACjC,GAAG,EAAE,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE;IAC/B,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE;IAClC,GAAG,EAAE,SAAS,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE;IACtC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE;IAChC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE;CAClC,CAAC;AAKF,6GAA6G;AAC7G,iCAAiC;AACjC,KAAK,UAAU,eAAe,CAAC,KAAe;IAC5C,MAAM,UAAU,GAAiB,EAAE,CAAC;IACpC,IAAI,YAAY,GAAG,EAAE,CAAC;IAErB,MAAc,CAAC,QAAQ,GAAG,CAAC,IAAY,EAAE,EAAc,EAAE,EAAE;QAC1D,YAAY,GAAG,IAAI,CAAC;QACpB,EAAE,EAAE,CAAC;QACL,YAAY,GAAG,EAAE,CAAC;IACpB,CAAC,CAAC;IAED,MAAc,CAAC,IAAI,GAAG,CAAC,IAAY,EAAE,EAAU,EAAE,EAAE;QAClD,UAAU,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,YAAY,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;IACrD,CAAC,CAAC;IAED,MAAc,CAAC,MAAM,GAAG,CAAC,QAAiB,EAAE,EAAE,CAAC,CAAC;QAC/C,IAAI,CAAC,QAAiB;YACpB,IAAI,QAAQ,KAAK,QAAQ;gBACvB,MAAM,IAAI,KAAK,CAAC,YAAY,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,UAAU,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QAC9F,CAAC;QACD,SAAS,CAAC,QAAiB;YACzB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC;gBAC1D,MAAM,IAAI,KAAK,CAAC,6BAA6B,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QAC7E,CAAC;QACD,cAAc,CAAC,QAAiB;YAC9B,IACE,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC;gBACxB,CAAC,QAAQ,CAAC,IAAI,CACZ,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAC5D;gBAED,MAAM,IAAI,KAAK,CAAC,sCAAsC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QACtF,CAAC;QACD,cAAc,CAAC,GAAW,EAAE,QAAkB;YAC5C,MAAM,GAAG,GAAG,QAAmC,CAAC;YAChD,IAAI,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC;gBACf,MAAM,IAAI,KAAK,CAAC,qCAAqC,GAAG,GAAG,CAAC,CAAC;YAC/D,IAAI,QAAQ,KAAK,SAAS,IAAI,GAAG,CAAC,GAAG,CAAC,KAAK,QAAQ;gBACjD,MAAM,IAAI,KAAK,CACb,sBAAsB,GAAG,WAAW,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,CAChG,CAAC;QACN,CAAC;KACF,CAAC,CAAC;IAEH,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC;IAC3C,OAAO,CAAC,GAAG,CAAC,SAAS,GAAG,KAAK,CAAC;IAC9B,wDAAa,gCAAgC,GAAC,CAAC;IAE/C,IAAI,MAAM,GAAG,CAAC,EACZ,MAAM,GAAG,CAAC,CAAC;IACb,KAAK,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,UAAU,EAAE,CAAC;QAC7C,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,KAAK,MAAM,IAAI,GAAG,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC;QAC9D,IAAI,CAAC;YACH,MAAM,EAAE,EAAE,CAAC;YACX,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,WAAW,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC;YACvD,MAAM,EAAE,CAAC;QACX,CAAC;QAAC,OAAO,CAAM,EAAE,CAAC;YAChB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC;YACrD,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;YAClD,MAAM,EAAE,CAAC;QACX,CAAC;IACH,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,SAAS,GAAG,YAAY,IAAI,EAAE,CAAC;IAE3C,MAAM,OAAO,GACX,MAAM,GAAG,CAAC;QACR,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,KAAK,GAAG,MAAM,UAAU,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,GAAG,MAAM,UAAU,CAAC,CAAC,KAAK,EAAE;QAC9F,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,KAAK,GAAG,MAAM,UAAU,CAAC,CAAC,KAAK,EAAE,CAAC;IACtD,OAAO,CAAC,GAAG,CAAC,KAAK,OAAO,EAAE,CAAC,CAAC;IAC5B,IAAI,MAAM,GAAG,CAAC;QAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClC,CAAC;AAOD,MAAM,QAAQ,GAAiC;IAC7C,qBAAqB,EAAE;QACrB,WAAW,EAAE,2BAA2B;QACxC,IAAI,EAAE,GAAG,EAAE,mDAAQ,iCAAiC,GAAC;KACtD;IACD,oBAAoB,EAAE;QACpB,WAAW,EAAE,sCAAsC;QACnD,IAAI,EAAE,GAAG,EAAE,mDAAQ,gCAAgC,GAAC;KACrD;IACD,qBAAqB,EAAE;QACrB,WAAW,EAAE,mCAAmC;QAChD,IAAI,EAAE,GAAG,EAAE,mDAAQ,iCAAiC,GAAC;KACtD;IACD,WAAW,EAAE;QACX,WAAW,EAAE,gDAAgD;QAC7D,IAAI,EAAE,GAAG,EAAE,mDAAQ,uBAAuB,GAAC;KAC5C;IACD,kBAAkB,EAAE;QAClB,WAAW,EAAE,4CAA4C;QACzD,IAAI,EAAE,GAAG,EAAE,mDAAQ,8BAA8B,GAAC;KACnD;IACD,iBAAiB,EAAE;QACjB,WAAW,EAAE,4CAA4C;QACzD,IAAI,EAAE,GAAG,EAAE,mDAAQ,6BAA6B,GAAC;KAClD;IACD,eAAe,EAAE;QACf,WAAW,EAAE,mDAAmD;QAChE,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,eAAe,EAAE,CAAC;KAC7C;CACF,CAAC;AAEF,SAAS,UAAU,CAAC,OAAgB;IAClC,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC;IAC7E,IAAI,OAAO,EAAE,CAAC;QACZ,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,OAAO,GAAG,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC;IAClD,CAAC;IACD,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,SAAS,CAAC,CAAC,KAAK,2CAA2C,CAAC,CAAC;IACpF,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,YAAY,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;IAC9C,KAAK,MAAM,CAAC,IAAI,EAAE,EAAE,WAAW,EAAE,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC/D,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QACrC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,GAAG,MAAM,GAAG,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,GAAG,WAAW,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;IAClF,CAAC;AACH,CAAC;AAED,MAAM,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACpC,IAAI,CAAC,WAAW,EAAE,CAAC;IACjB,UAAU,EAAE,CAAC;IACb,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AAED,IAAI,CAAC,CAAC,WAAW,IAAI,QAAQ,CAAC,EAAE,CAAC;IAC/B,UAAU,CAAC,oBAAoB,WAAW,IAAI,CAAC,CAAC;IAChD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AAED,CAAC,KAAK,IAAI,EAAE;IACV,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAC,WAAW,CAAC,CAAC,IAAI,EAAE,CAAC;IAC/C,MAAM,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AACvC,CAAC,CAAC,EAAE,CAAC"}
1
+ {"version":3,"file":"example-runner.js","sourceRoot":"","sources":["../../bin/example-runner.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,3 @@
1
1
  import * as guava from "@guava-ai/guava-sdk";
2
2
  export declare const agent: guava.Agent;
3
- export declare function run(args: string[]): Promise<void>;
3
+ export declare function run(prog: string, args: string[]): Promise<void>;
@@ -35,10 +35,12 @@ var __importStar = (this && this.__importStar) || (function () {
35
35
  Object.defineProperty(exports, "__esModule", { value: true });
36
36
  exports.agent = void 0;
37
37
  exports.run = run;
38
+ const commander_1 = require("commander");
38
39
  const guava = __importStar(require("@guava-ai/guava-sdk"));
39
40
  const helpers_1 = require("@guava-ai/guava-sdk/helpers");
40
41
  const helpers_2 = require("@guava-ai/guava-sdk/helpers");
41
42
  const example_data_1 = require("@guava-ai/guava-sdk/example-data");
43
+ const example_utils_1 = require("@guava-ai/guava-sdk/example-utils");
42
44
  exports.agent = new guava.Agent({
43
45
  name: "Nova",
44
46
  organization: "Clearfield Home & Living",
@@ -48,12 +50,12 @@ const documentQA = new helpers_1.DocumentQA({
48
50
  documents: example_data_1.FURNITURE_RETAILER_QA,
49
51
  namespace: "clearfield-home-living-qa",
50
52
  });
51
- const intentRecognizer = new helpers_2.IntentRecognizer([
52
- "sales",
53
- "delivery-and-returns",
54
- "account-management",
55
- "other",
56
- ]);
53
+ const intentRecognizer = new helpers_2.IntentRecognizer({
54
+ sales: "New purchases, product availability, pricing, promotions, price matching, store hours, order status, order changes and cancellations",
55
+ "delivery-and-returns": "Delivery scheduling and rescheduling, installation, assembly, damaged-on-arrival items, returns, exchanges, refund status, warranty claims and repairs",
56
+ "account-management": "Charges, invoices, payment plans, financing, billing disputes, rewards points, membership accounts, bulk and business orders",
57
+ other: "Anything else not listed under another category.",
58
+ });
57
59
  exports.agent.onQuestion(async (_call, question) => {
58
60
  return await documentQA.ask(question);
59
61
  });
@@ -72,30 +74,39 @@ exports.agent.onAction("account-management", async (call) => {
72
74
  exports.agent.onAction("other", async (call) => {
73
75
  call.transfer("+15555555555", "Notify the caller that you will be connecting them with a service representative.");
74
76
  });
75
- async function run(args) {
76
- if (args.includes("--webrtc")) {
77
- await exports.agent.listenWebrtc();
78
- }
79
- else if (args.includes("--phone")) {
80
- exports.agent.listenPhone(process.env.GUAVA_AGENT_NUMBER);
81
- }
82
- else if (args.includes("--sip")) {
83
- const sipCode = args[args.indexOf("--sip") + 1];
84
- if (!sipCode) {
85
- console.error("Error: --sip requires a SIP code argument.");
86
- process.exit(1);
87
- }
88
- await exports.agent.listenSip(sipCode);
89
- }
90
- else if (args.includes("--local")) {
77
+ async function run(prog, args) {
78
+ const program = new commander_1.Command().name(prog).showHelpAfterError();
79
+ // Every Agent can be attached to one of many different channels.
80
+ program
81
+ .command("phone [number]")
82
+ .description("Listen for phone calls.")
83
+ .action(async (number) => {
84
+ await exports.agent.listenPhone(number ?? (await (0, example_utils_1.getAgentNumber)()));
85
+ });
86
+ program
87
+ .command("webrtc [code]")
88
+ .description("Listen on a WebRTC code.")
89
+ .action(async (code) => {
90
+ await exports.agent.listenWebrtc(code);
91
+ });
92
+ program
93
+ .command("sip <code>")
94
+ .description("Listen on a SIP code 'guavasip-...'.")
95
+ .action(async (code) => {
96
+ await exports.agent.listenSip(code);
97
+ });
98
+ program
99
+ .command("local")
100
+ .description("Start a local call.")
101
+ .action(async () => {
91
102
  await exports.agent.callLocal();
92
- }
93
- else if (args.includes("--chat")) {
103
+ });
104
+ program
105
+ .command("chat")
106
+ .description("Start a local chat session (for testing).")
107
+ .action(async () => {
94
108
  await exports.agent.chat();
95
- }
96
- else {
97
- console.error("Usage: guava-example help-desk --phone | --webrtc | --sip | --local | --chat");
98
- process.exit(1);
99
- }
109
+ });
110
+ await program.parseAsync(args, { from: "user" });
100
111
  }
101
112
  //# sourceMappingURL=help-desk.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"help-desk.js","sourceRoot":"","sources":["../../examples/help-desk.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"help-desk.js","sourceRoot":"","sources":["../../examples/help-desk.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- export declare function run(_args: string[]): Promise<void>;
1
+ export declare function run(_prog: string, _args: string[]): Promise<void>;
@@ -43,7 +43,7 @@ const agentB = new guava.Agent({
43
43
  name: "Jordan",
44
44
  purpose: "You are a helpful voice agent.",
45
45
  });
46
- async function run(_args) {
46
+ async function run(_prog, _args) {
47
47
  const runner = new guava.Runner();
48
48
  runner.listenPhone(agentA, process.env.GUAVA_AGENT_NUMBER);
49
49
  runner.listenWebrtc(agentB);
@@ -1 +1 @@
1
- {"version":3,"file":"multiple-agents.js","sourceRoot":"","sources":["../../examples/multiple-agents.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAYA,kBAKC;AAjBD,2DAA6C;AAE7C,MAAM,MAAM,GAAG,IAAI,KAAK,CAAC,KAAK,CAAC;IAC7B,IAAI,EAAE,OAAO;IACb,OAAO,EAAE,gCAAgC;CAC1C,CAAC,CAAC;AAEH,MAAM,MAAM,GAAG,IAAI,KAAK,CAAC,KAAK,CAAC;IAC7B,IAAI,EAAE,QAAQ;IACd,OAAO,EAAE,gCAAgC;CAC1C,CAAC,CAAC;AAEI,KAAK,UAAU,GAAG,CAAC,KAAe;IACvC,MAAM,MAAM,GAAG,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;IAClC,MAAM,CAAC,WAAW,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,kBAAmB,CAAC,CAAC;IAC5D,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;IAC5B,MAAM,MAAM,CAAC,GAAG,EAAE,CAAC;AACrB,CAAC"}
1
+ {"version":3,"file":"multiple-agents.js","sourceRoot":"","sources":["../../examples/multiple-agents.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAYA,kBAKC;AAjBD,2DAA6C;AAE7C,MAAM,MAAM,GAAG,IAAI,KAAK,CAAC,KAAK,CAAC;IAC7B,IAAI,EAAE,OAAO;IACb,OAAO,EAAE,gCAAgC;CAC1C,CAAC,CAAC;AAEH,MAAM,MAAM,GAAG,IAAI,KAAK,CAAC,KAAK,CAAC;IAC7B,IAAI,EAAE,QAAQ;IACd,OAAO,EAAE,gCAAgC;CAC1C,CAAC,CAAC;AAEI,KAAK,UAAU,GAAG,CAAC,KAAa,EAAE,KAAe;IACtD,MAAM,MAAM,GAAG,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;IAClC,MAAM,CAAC,WAAW,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,kBAAmB,CAAC,CAAC;IAC5D,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;IAC5B,MAAM,MAAM,CAAC,GAAG,EAAE,CAAC;AACrB,CAAC"}
@@ -1 +1 @@
1
- export declare function run(args: string[]): Promise<void>;
1
+ export declare function run(prog: string, args: string[]): Promise<void>;
@@ -43,6 +43,7 @@ exports.run = run;
43
43
  *
44
44
  * Usage: guava-example polling-campaign <campaign-code>
45
45
  */
46
+ const commander_1 = require("commander");
46
47
  const guava = __importStar(require("@guava-ai/guava-sdk"));
47
48
  const agent = new guava.Agent({
48
49
  name: "Jordan",
@@ -95,12 +96,13 @@ agent.onTaskComplete("political_poll", async (call) => {
95
96
  // Here is where you would read the poll results using call.getField(...)
96
97
  await call.hangup("Thank them for participating and let them know the results will be published next month.");
97
98
  });
98
- async function run(args) {
99
- const [campaignCode] = args;
100
- if (!campaignCode) {
101
- console.error("Usage: guava-example polling-campaign <campaign-code>");
102
- process.exit(1);
103
- }
104
- await agent.attachCampaign(campaignCode);
99
+ async function run(prog, args) {
100
+ const program = new commander_1.Command().name(prog).showHelpAfterError();
101
+ program
102
+ .argument("<campaign_code>", "The campaign code to attach to (e.g. gcp-...). Use the CLI or dashboard to create a campaign.")
103
+ .action(async (campaignCode) => {
104
+ await agent.attachCampaign(campaignCode);
105
+ });
106
+ await program.parseAsync(args, { from: "user" });
105
107
  }
106
108
  //# sourceMappingURL=polling-campaign.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"polling-campaign.js","sourceRoot":"","sources":["../../examples/polling-campaign.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAqEA,kBASC;AA9ED;;;;;;;;GAQG;AACH,2DAA6C;AAE7C,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,KAAK,CAAC;IAC5B,IAAI,EAAE,QAAQ;IACd,YAAY,EAAE,+BAA+B;IAC7C,OAAO,EAAE,+CAA+C;CACzD,CAAC,CAAC;AAEH,KAAK,CAAC,WAAW,CAAC,KAAK,EAAE,IAAgB,EAAE,EAAE;IAC3C,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;IACvD,MAAM,IAAI,CAAC,WAAW,CAAC,SAAS,EAAE;QAChC,QAAQ,EACN,eAAe,SAAS,wDAAwD;YAChF,gFAAgF;KACnF,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,KAAK,CAAC,aAAa,CAAC,KAAK,EAAE,IAAgB,EAAE,OAAe,EAAE,EAAE;IAC9D,IAAI,OAAO,KAAK,WAAW,EAAE,CAAC;QAC5B,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;QACvD,MAAM,IAAI,CAAC,OAAO,CAAC;YACjB,MAAM,EAAE,gBAAgB;YACxB,SAAS,EACP,+CAA+C,SAAS,IAAI;gBAC5D,kDAAkD;YACpD,SAAS,EAAE;gBACT,KAAK,CAAC,KAAK,CAAC;oBACV,GAAG,EAAE,WAAW;oBAChB,WAAW,EAAE,sDAAsD;oBACnE,SAAS,EAAE,MAAM;oBACjB,QAAQ,EAAE,6EAA6E;iBACxF,CAAC;gBACF,KAAK,CAAC,KAAK,CAAC;oBACV,GAAG,EAAE,mBAAmB;oBACxB,WAAW,EAAE,yCAAyC;oBACtD,SAAS,EAAE,iBAAiB;oBAC5B,QAAQ,EAAE,wEAAwE;oBAClF,OAAO,EAAE,CAAC,SAAS,EAAE,YAAY,EAAE,YAAY,CAAC;iBACjD,CAAC;gBACF,KAAK,CAAC,KAAK,CAAC;oBACV,GAAG,EAAE,gBAAgB;oBACrB,WAAW,EAAE,2DAA2D;oBACxE,SAAS,EAAE,iBAAiB;oBAC5B,QAAQ,EAAE,sDAAsD;oBAChE,OAAO,EAAE,CAAC,aAAa,EAAE,QAAQ,EAAE,UAAU,EAAE,eAAe,CAAC;iBAChE,CAAC;aACH;SACF,CAAC,CAAC;IACL,CAAC;SAAM,CAAC;QACN,MAAM,IAAI,CAAC,MAAM,CAAC,6BAA6B,CAAC,CAAC;IACnD,CAAC;AACH,CAAC,CAAC,CAAC;AAEH,KAAK,CAAC,cAAc,CAAC,gBAAgB,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;IACpD,yEAAyE;IACzE,MAAM,IAAI,CAAC,MAAM,CACf,0FAA0F,CAC3F,CAAC;AACJ,CAAC,CAAC,CAAC;AAEI,KAAK,UAAU,GAAG,CAAC,IAAc;IACtC,MAAM,CAAC,YAAY,CAAC,GAAG,IAAI,CAAC;IAE5B,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,OAAO,CAAC,KAAK,CAAC,uDAAuD,CAAC,CAAC;QACvE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,KAAK,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC;AAC3C,CAAC"}
1
+ {"version":3,"file":"polling-campaign.js","sourceRoot":"","sources":["../../examples/polling-campaign.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAsEA,kBAaC;AAnFD;;;;;;;;GAQG;AACH,yCAAoC;AACpC,2DAA6C;AAE7C,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,KAAK,CAAC;IAC5B,IAAI,EAAE,QAAQ;IACd,YAAY,EAAE,+BAA+B;IAC7C,OAAO,EAAE,+CAA+C;CACzD,CAAC,CAAC;AAEH,KAAK,CAAC,WAAW,CAAC,KAAK,EAAE,IAAgB,EAAE,EAAE;IAC3C,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;IACvD,MAAM,IAAI,CAAC,WAAW,CAAC,SAAS,EAAE;QAChC,QAAQ,EACN,eAAe,SAAS,wDAAwD;YAChF,gFAAgF;KACnF,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,KAAK,CAAC,aAAa,CAAC,KAAK,EAAE,IAAgB,EAAE,OAAe,EAAE,EAAE;IAC9D,IAAI,OAAO,KAAK,WAAW,EAAE,CAAC;QAC5B,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;QACvD,MAAM,IAAI,CAAC,OAAO,CAAC;YACjB,MAAM,EAAE,gBAAgB;YACxB,SAAS,EACP,+CAA+C,SAAS,IAAI;gBAC5D,kDAAkD;YACpD,SAAS,EAAE;gBACT,KAAK,CAAC,KAAK,CAAC;oBACV,GAAG,EAAE,WAAW;oBAChB,WAAW,EAAE,sDAAsD;oBACnE,SAAS,EAAE,MAAM;oBACjB,QAAQ,EAAE,6EAA6E;iBACxF,CAAC;gBACF,KAAK,CAAC,KAAK,CAAC;oBACV,GAAG,EAAE,mBAAmB;oBACxB,WAAW,EAAE,yCAAyC;oBACtD,SAAS,EAAE,iBAAiB;oBAC5B,QAAQ,EAAE,wEAAwE;oBAClF,OAAO,EAAE,CAAC,SAAS,EAAE,YAAY,EAAE,YAAY,CAAC;iBACjD,CAAC;gBACF,KAAK,CAAC,KAAK,CAAC;oBACV,GAAG,EAAE,gBAAgB;oBACrB,WAAW,EAAE,2DAA2D;oBACxE,SAAS,EAAE,iBAAiB;oBAC5B,QAAQ,EAAE,sDAAsD;oBAChE,OAAO,EAAE,CAAC,aAAa,EAAE,QAAQ,EAAE,UAAU,EAAE,eAAe,CAAC;iBAChE,CAAC;aACH;SACF,CAAC,CAAC;IACL,CAAC;SAAM,CAAC;QACN,MAAM,IAAI,CAAC,MAAM,CAAC,6BAA6B,CAAC,CAAC;IACnD,CAAC;AACH,CAAC,CAAC,CAAC;AAEH,KAAK,CAAC,cAAc,CAAC,gBAAgB,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;IACpD,yEAAyE;IACzE,MAAM,IAAI,CAAC,MAAM,CACf,0FAA0F,CAC3F,CAAC;AACJ,CAAC,CAAC,CAAC;AAEI,KAAK,UAAU,GAAG,CAAC,IAAY,EAAE,IAAc;IACpD,MAAM,OAAO,GAAG,IAAI,mBAAO,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,kBAAkB,EAAE,CAAC;IAE9D,OAAO;SACJ,QAAQ,CACP,iBAAiB,EACjB,+FAA+F,CAChG;SACA,MAAM,CAAC,KAAK,EAAE,YAAoB,EAAE,EAAE;QACrC,MAAM,KAAK,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC;IAC3C,CAAC,CAAC,CAAC;IAEL,MAAM,OAAO,CAAC,UAAU,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;AACnD,CAAC"}
@@ -1 +1 @@
1
- export declare function run(args: string[]): Promise<void>;
1
+ export declare function run(prog: string, args: string[]): Promise<void>;
@@ -34,9 +34,11 @@ var __importStar = (this && this.__importStar) || (function () {
34
34
  })();
35
35
  Object.defineProperty(exports, "__esModule", { value: true });
36
36
  exports.run = run;
37
+ const commander_1 = require("commander");
37
38
  const guava = __importStar(require("@guava-ai/guava-sdk"));
38
39
  const helpers_1 = require("@guava-ai/guava-sdk/helpers");
39
40
  const example_data_1 = require("@guava-ai/guava-sdk/example-data");
41
+ const example_utils_1 = require("@guava-ai/guava-sdk/example-utils");
40
42
  const agent = new guava.Agent({
41
43
  organization: "Harper Valley Property Insurance",
42
44
  purpose: "Answer questions regarding property insurance policy until there are no more questions",
@@ -53,30 +55,39 @@ agent.onQuestion(async (call, question) => {
53
55
  // You can plug in any knowledge base system you want here.
54
56
  return await documentQA.ask(question);
55
57
  });
56
- async function run(args) {
57
- if (args.includes("--webrtc")) {
58
- await agent.listenWebrtc();
59
- }
60
- else if (args.includes("--phone")) {
61
- agent.listenPhone(process.env.GUAVA_AGENT_NUMBER);
62
- }
63
- else if (args.includes("--sip")) {
64
- const sipCode = args[args.indexOf("--sip") + 1];
65
- if (!sipCode) {
66
- console.error("Error: --sip requires a SIP code argument.");
67
- process.exit(1);
68
- }
69
- await agent.listenSip(sipCode);
70
- }
71
- else if (args.includes("--local")) {
58
+ async function run(prog, args) {
59
+ const program = new commander_1.Command().name(prog).showHelpAfterError();
60
+ // Every Agent can be attached to one of many different channels.
61
+ program
62
+ .command("phone [number]")
63
+ .description("Listen for phone calls.")
64
+ .action(async (number) => {
65
+ await agent.listenPhone(number ?? (await (0, example_utils_1.getAgentNumber)()));
66
+ });
67
+ program
68
+ .command("webrtc [code]")
69
+ .description("Listen on a WebRTC code.")
70
+ .action(async (code) => {
71
+ await agent.listenWebrtc(code);
72
+ });
73
+ program
74
+ .command("sip <code>")
75
+ .description("Listen on a SIP code 'guavasip-...'.")
76
+ .action(async (code) => {
77
+ await agent.listenSip(code);
78
+ });
79
+ program
80
+ .command("local")
81
+ .description("Start a local call.")
82
+ .action(async () => {
72
83
  await agent.callLocal();
73
- }
74
- else if (args.includes("--chat")) {
84
+ });
85
+ program
86
+ .command("chat")
87
+ .description("Start an interactive terminal chat.")
88
+ .action(async () => {
75
89
  await agent.chat();
76
- }
77
- else {
78
- console.error("Usage: guava-example property-insurance --phone | --webrtc | --sip | --local | --chat");
79
- process.exit(1);
80
- }
90
+ });
91
+ await program.parseAsync(args, { from: "user" });
81
92
  }
82
93
  //# sourceMappingURL=property-insurance.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"property-insurance.js","sourceRoot":"","sources":["../../examples/property-insurance.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAuBA,kBAsBC;AA7CD,2DAA6C;AAC7C,yDAAyD;AACzD,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,oBAAU,CAAC;IAChC,SAAS,EAAE,wCAAyB;IACpC,SAAS,EAAE,kCAAkC;CAC9C,CAAC,CAAC;AAEH,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,OAAO,CAAC,EAAE,CAAC;QAClC,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;QAChD,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CAAC,4CAA4C,CAAC,CAAC;YAC5D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QACD,MAAM,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;IACjC,CAAC;SAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;QACpC,MAAM,KAAK,CAAC,SAAS,EAAE,CAAC;IAC1B,CAAC;SAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;QACnC,MAAM,KAAK,CAAC,IAAI,EAAE,CAAC;IACrB,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,KAAK,CACX,uFAAuF,CACxF,CAAC;QACF,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":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAyBA,kBAwCC;AAjED,yCAAoC;AACpC,2DAA6C;AAC7C,yDAAyD;AACzD,mEAA6E;AAC7E,qEAAmE;AAEnE,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,oBAAU,CAAC;IAChC,SAAS,EAAE,wCAAyB;IACpC,SAAS,EAAE,kCAAkC;CAC9C,CAAC,CAAC;AAEH,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,IAAY,EAAE,IAAc;IACpD,MAAM,OAAO,GAAG,IAAI,mBAAO,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,kBAAkB,EAAE,CAAC;IAE9D,iEAAiE;IACjE,OAAO;SACJ,OAAO,CAAC,gBAAgB,CAAC;SACzB,WAAW,CAAC,yBAAyB,CAAC;SACtC,MAAM,CAAC,KAAK,EAAE,MAAe,EAAE,EAAE;QAChC,MAAM,KAAK,CAAC,WAAW,CAAC,MAAM,IAAI,CAAC,MAAM,IAAA,8BAAc,GAAE,CAAC,CAAC,CAAC;IAC9D,CAAC,CAAC,CAAC;IAEL,OAAO;SACJ,OAAO,CAAC,eAAe,CAAC;SACxB,WAAW,CAAC,0BAA0B,CAAC;SACvC,MAAM,CAAC,KAAK,EAAE,IAAa,EAAE,EAAE;QAC9B,MAAM,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;IACjC,CAAC,CAAC,CAAC;IAEL,OAAO;SACJ,OAAO,CAAC,YAAY,CAAC;SACrB,WAAW,CAAC,sCAAsC,CAAC;SACnD,MAAM,CAAC,KAAK,EAAE,IAAY,EAAE,EAAE;QAC7B,MAAM,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IAC9B,CAAC,CAAC,CAAC;IAEL,OAAO;SACJ,OAAO,CAAC,OAAO,CAAC;SAChB,WAAW,CAAC,qBAAqB,CAAC;SAClC,MAAM,CAAC,KAAK,IAAI,EAAE;QACjB,MAAM,KAAK,CAAC,SAAS,EAAE,CAAC;IAC1B,CAAC,CAAC,CAAC;IAEL,OAAO;SACJ,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CAAC,qCAAqC,CAAC;SAClD,MAAM,CAAC,KAAK,IAAI,EAAE;QACjB,MAAM,KAAK,CAAC,IAAI,EAAE,CAAC;IACrB,CAAC,CAAC,CAAC;IAEL,MAAM,OAAO,CAAC,UAAU,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;AACnD,CAAC"}
@@ -1 +1 @@
1
- export declare function run(args: string[]): Promise<void>;
1
+ export declare function run(prog: string, args: string[]): Promise<void>;