@guava-ai/guava-sdk 0.26.0 → 0.27.1
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.
- package/README.md +1 -1
- package/bin/example-runner.ts +67 -26
- package/dist/bin/example-runner.d.ts +1 -25
- package/dist/bin/example-runner.js +64 -24
- package/dist/bin/example-runner.js.map +1 -1
- package/dist/examples/help-desk.d.ts +1 -1
- package/dist/examples/help-desk.js +34 -23
- package/dist/examples/help-desk.js.map +1 -1
- package/dist/examples/multiple-agents.d.ts +1 -1
- package/dist/examples/multiple-agents.js +1 -1
- package/dist/examples/multiple-agents.js.map +1 -1
- package/dist/examples/polling-campaign.d.ts +1 -1
- package/dist/examples/polling-campaign.js +9 -7
- package/dist/examples/polling-campaign.js.map +1 -1
- package/dist/examples/property-insurance.d.ts +1 -1
- package/dist/examples/property-insurance.js +34 -23
- package/dist/examples/property-insurance.js.map +1 -1
- package/dist/examples/restaurant-waitlist.d.ts +1 -1
- package/dist/examples/restaurant-waitlist.js +34 -23
- package/dist/examples/restaurant-waitlist.js.map +1 -1
- package/dist/examples/scheduling-outbound.d.ts +1 -1
- package/dist/examples/scheduling-outbound.js +24 -14
- package/dist/examples/scheduling-outbound.js.map +1 -1
- package/dist/src/agent.d.ts +2 -2
- package/dist/src/agent.js +4 -4
- package/dist/src/agent.js.map +1 -1
- package/dist/src/call.d.ts +2 -0
- package/dist/src/call.js +18 -0
- package/dist/src/call.js.map +1 -1
- package/dist/src/client.d.ts +0 -22
- package/dist/src/client.js +0 -155
- package/dist/src/client.js.map +1 -1
- package/dist/src/commands.d.ts +62 -0
- package/dist/src/commands.js +7 -1
- package/dist/src/commands.js.map +1 -1
- package/dist/src/events.d.ts +2 -1
- package/dist/src/events.js +20 -2
- package/dist/src/events.js.map +1 -1
- package/dist/src/index.d.ts +0 -1
- package/dist/src/index.js +1 -3
- package/dist/src/index.js.map +1 -1
- package/dist/src/socket/client.js +10 -0
- package/dist/src/socket/client.js.map +1 -1
- package/dist/src/telemetry.js +1 -1
- package/dist/src/telemetry.js.map +1 -1
- package/dist/src/version.d.ts +1 -1
- package/dist/src/version.js +1 -1
- package/examples/help-desk.ts +42 -20
- package/examples/multiple-agents.ts +1 -1
- package/examples/polling-campaign.ts +12 -7
- package/examples/property-insurance.ts +42 -22
- package/examples/restaurant-waitlist.ts +42 -22
- package/examples/scheduling-outbound.ts +26 -15
- package/package.json +2 -1
- package/src/agent.ts +16 -8
- package/src/call.ts +25 -0
- package/src/client.ts +0 -197
- package/src/commands.ts +8 -0
- package/src/events.ts +20 -18
- package/src/index.ts +0 -1
- package/src/socket/client.ts +22 -0
- package/src/telemetry.ts +1 -1
- package/src/version.ts +1 -1
- package/dist/src/call-controller.d.ts +0 -137
- package/dist/src/call-controller.js +0 -436
- package/dist/src/call-controller.js.map +0 -1
- package/src/call-controller.ts +0 -451
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
|
package/bin/example-runner.ts
CHANGED
|
@@ -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
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
}
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
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
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
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
|
-
|
|
146
|
-
|
|
147
|
-
|
|
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
|
-
(
|
|
151
|
-
|
|
152
|
-
|
|
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
|
-
|
|
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
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
}
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
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
|
-
|
|
152
|
-
|
|
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":"
|
|
1
|
+
{"version":3,"file":"example-runner.js","sourceRoot":"","sources":["../../bin/example-runner.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,gDAAkC;AAClC,yCAAoC;AAEpC,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,KAAa,EAAE,KAAe;IAC3D,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,2EAA2E;AAC3E,mCAAmC;AACnC,SAAS,QAAQ;IACf,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IACrC,IAAI,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QAC3B,wEAAwE;QACxE,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,MAAM,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QAC1E,OAAO,WAAW,GAAG,EAAE,CAAC;IAC1B,CAAC;IACD,kEAAkE;IAClE,kDAAkD;IAClD,OAAO,eAAe,CAAC;AACzB,CAAC;AAED,SAAS,gBAAgB,CAAC,WAAmB;IAC3C,OAAO,GAAG,QAAQ,EAAE,IAAI,WAAW,EAAE,CAAC;AACxC,CAAC;AAED,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,gFAAgF;AAChF,wEAAwE;AACxE,MAAM,IAAI,GAAG;IACX,IAAI,EAAE,CAAC,CAAS,EAAE,EAAE,CAAC,UAAU,CAAC,SAAS;IACzC,KAAK,EAAE,CAAC,CAAS,EAAE,EAAE,CAAC,WAAW,CAAC,SAAS;IAC3C,IAAI,EAAE,CAAC,CAAS,EAAE,EAAE,CAAC,WAAW,CAAC,SAAS;IAC1C,GAAG,EAAE,CAAC,CAAS,EAAE,EAAE,CAAC,UAAU,CAAC,SAAS;CACzC,CAAC;AAEF,+EAA+E;AAC/E,8EAA8E;AAC9E,4EAA4E;AAC5E,MAAM,OAAO,GAAG,IAAI,mBAAO,EAAE;KAC1B,IAAI,CAAC,QAAQ,EAAE,CAAC;KAChB,WAAW,CAAC,iDAAiD,CAAC;KAC9D,kBAAkB,EAAE;KACpB,WAAW,CAAC,KAAK,CAAC;KAClB,aAAa,CAAC;IACb,UAAU,EAAE,IAAI,CAAC,IAAI;IACrB,gBAAgB,EAAE,IAAI,CAAC,KAAK;IAC5B,mBAAmB,EAAE,IAAI,CAAC,KAAK;IAC/B,eAAe,EAAE,IAAI,CAAC,IAAI;IAC1B,iBAAiB,EAAE,IAAI,CAAC,IAAI;IAC5B,0BAA0B,EAAE,IAAI,CAAC,GAAG;IACpC,sBAAsB,EAAE,IAAI,CAAC,GAAG;IAChC,wBAAwB,EAAE,IAAI,CAAC,GAAG;CACnC,CAAC,CAAC;AAEL,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;IACrD,OAAO;SACJ,OAAO,CAAC,IAAI,CAAC;SACb,WAAW,CAAC,KAAK,CAAC,WAAW,CAAC;SAC9B,QAAQ,CAAC,WAAW,EAAE,oCAAoC,CAAC;QAC5D,2EAA2E;QAC3E,yEAAyE;QACzE,4CAA4C;SAC3C,kBAAkB,EAAE;SACpB,UAAU,CAAC,KAAK,CAAC;SACjB,MAAM,CAAC,KAAK,EAAE,IAAc,EAAE,EAAE;QAC/B,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,IAAI,EAAE,CAAC;QAC/B,MAAM,GAAG,CAAC,GAAG,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC;IAC9C,CAAC,CAAC,CAAC;AACP,CAAC;AAED,OAAO,CAAC,UAAU,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;IACjC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACnB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
|
|
@@ -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",
|
|
@@ -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
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
await exports.agent.
|
|
89
|
-
}
|
|
90
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
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;
|
|
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
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
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":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
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
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
await agent.
|
|
70
|
-
}
|
|
71
|
-
|
|
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
|
-
|
|
84
|
+
});
|
|
85
|
+
program
|
|
86
|
+
.command("chat")
|
|
87
|
+
.description("Start an interactive terminal chat.")
|
|
88
|
+
.action(async () => {
|
|
75
89
|
await agent.chat();
|
|
76
|
-
}
|
|
77
|
-
|
|
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":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
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>;
|