@bland-ai/cli 0.1.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.
- package/dist/commands/agent.d.ts +3 -0
- package/dist/commands/agent.d.ts.map +1 -0
- package/dist/commands/agent.js +143 -0
- package/dist/commands/agent.js.map +1 -0
- package/dist/commands/alarm.d.ts +3 -0
- package/dist/commands/alarm.d.ts.map +1 -0
- package/dist/commands/alarm.js +92 -0
- package/dist/commands/alarm.js.map +1 -0
- package/dist/commands/audio.d.ts +3 -0
- package/dist/commands/audio.d.ts.map +1 -0
- package/dist/commands/audio.js +77 -0
- package/dist/commands/audio.js.map +1 -0
- package/dist/commands/auth.d.ts +3 -0
- package/dist/commands/auth.d.ts.map +1 -0
- package/dist/commands/auth.js +199 -0
- package/dist/commands/auth.js.map +1 -0
- package/dist/commands/batch.d.ts +3 -0
- package/dist/commands/batch.d.ts.map +1 -0
- package/dist/commands/batch.js +108 -0
- package/dist/commands/batch.js.map +1 -0
- package/dist/commands/call.d.ts +3 -0
- package/dist/commands/call.d.ts.map +1 -0
- package/dist/commands/call.js +348 -0
- package/dist/commands/call.js.map +1 -0
- package/dist/commands/eval.d.ts +3 -0
- package/dist/commands/eval.d.ts.map +1 -0
- package/dist/commands/eval.js +66 -0
- package/dist/commands/eval.js.map +1 -0
- package/dist/commands/guard.d.ts +3 -0
- package/dist/commands/guard.d.ts.map +1 -0
- package/dist/commands/guard.js +100 -0
- package/dist/commands/guard.js.map +1 -0
- package/dist/commands/knowledge.d.ts +3 -0
- package/dist/commands/knowledge.d.ts.map +1 -0
- package/dist/commands/knowledge.js +136 -0
- package/dist/commands/knowledge.js.map +1 -0
- package/dist/commands/listen.d.ts +3 -0
- package/dist/commands/listen.d.ts.map +1 -0
- package/dist/commands/listen.js +98 -0
- package/dist/commands/listen.js.map +1 -0
- package/dist/commands/mcp.d.ts +3 -0
- package/dist/commands/mcp.d.ts.map +1 -0
- package/dist/commands/mcp.js +22 -0
- package/dist/commands/mcp.js.map +1 -0
- package/dist/commands/number.d.ts +3 -0
- package/dist/commands/number.d.ts.map +1 -0
- package/dist/commands/number.js +225 -0
- package/dist/commands/number.js.map +1 -0
- package/dist/commands/pathway.d.ts +3 -0
- package/dist/commands/pathway.d.ts.map +1 -0
- package/dist/commands/pathway.js +977 -0
- package/dist/commands/pathway.js.map +1 -0
- package/dist/commands/persona.d.ts +3 -0
- package/dist/commands/persona.d.ts.map +1 -0
- package/dist/commands/persona.js +234 -0
- package/dist/commands/persona.js.map +1 -0
- package/dist/commands/release.d.ts +3 -0
- package/dist/commands/release.d.ts.map +1 -0
- package/dist/commands/release.js +67 -0
- package/dist/commands/release.js.map +1 -0
- package/dist/commands/secret.d.ts +3 -0
- package/dist/commands/secret.d.ts.map +1 -0
- package/dist/commands/secret.js +57 -0
- package/dist/commands/secret.js.map +1 -0
- package/dist/commands/sip.d.ts +3 -0
- package/dist/commands/sip.d.ts.map +1 -0
- package/dist/commands/sip.js +45 -0
- package/dist/commands/sip.js.map +1 -0
- package/dist/commands/sms.d.ts +3 -0
- package/dist/commands/sms.d.ts.map +1 -0
- package/dist/commands/sms.js +83 -0
- package/dist/commands/sms.js.map +1 -0
- package/dist/commands/tool.d.ts +3 -0
- package/dist/commands/tool.d.ts.map +1 -0
- package/dist/commands/tool.js +200 -0
- package/dist/commands/tool.js.map +1 -0
- package/dist/commands/voice.d.ts +3 -0
- package/dist/commands/voice.d.ts.map +1 -0
- package/dist/commands/voice.js +95 -0
- package/dist/commands/voice.js.map +1 -0
- package/dist/commands/widget.d.ts +3 -0
- package/dist/commands/widget.d.ts.map +1 -0
- package/dist/commands/widget.js +77 -0
- package/dist/commands/widget.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +52 -0
- package/dist/index.js.map +1 -0
- package/dist/lib/api.d.ts +17 -0
- package/dist/lib/api.d.ts.map +1 -0
- package/dist/lib/api.js +89 -0
- package/dist/lib/api.js.map +1 -0
- package/dist/lib/config.d.ts +16 -0
- package/dist/lib/config.d.ts.map +1 -0
- package/dist/lib/config.js +117 -0
- package/dist/lib/config.js.map +1 -0
- package/dist/lib/errors.d.ts +15 -0
- package/dist/lib/errors.d.ts.map +1 -0
- package/dist/lib/errors.js +43 -0
- package/dist/lib/errors.js.map +1 -0
- package/dist/lib/output.d.ts +30 -0
- package/dist/lib/output.d.ts.map +1 -0
- package/dist/lib/output.js +131 -0
- package/dist/lib/output.js.map +1 -0
- package/dist/lib/pathway-file.d.ts +31 -0
- package/dist/lib/pathway-file.d.ts.map +1 -0
- package/dist/lib/pathway-file.js +236 -0
- package/dist/lib/pathway-file.js.map +1 -0
- package/dist/mcp/server.d.ts +2 -0
- package/dist/mcp/server.d.ts.map +1 -0
- package/dist/mcp/server.js +375 -0
- package/dist/mcp/server.js.map +1 -0
- package/dist/types/api.d.ts +302 -0
- package/dist/types/api.d.ts.map +1 -0
- package/dist/types/api.js +2 -0
- package/dist/types/api.js.map +1 -0
- package/dist/types/config.d.ts +14 -0
- package/dist/types/config.d.ts.map +1 -0
- package/dist/types/config.js +2 -0
- package/dist/types/config.js.map +1 -0
- package/dist/types/pathway.d.ts +55 -0
- package/dist/types/pathway.d.ts.map +1 -0
- package/dist/types/pathway.js +2 -0
- package/dist/types/pathway.js.map +1 -0
- package/package.json +51 -0
- package/templates/pathway.yaml +30 -0
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
import chalk from "chalk";
|
|
2
|
+
import ora from "ora";
|
|
3
|
+
import { api } from "../lib/api.js";
|
|
4
|
+
import * as output from "../lib/output.js";
|
|
5
|
+
import { handleError } from "../lib/errors.js";
|
|
6
|
+
export function registerSmsCommand(program) {
|
|
7
|
+
const sms = program
|
|
8
|
+
.command("sms")
|
|
9
|
+
.description("Send and manage SMS conversations");
|
|
10
|
+
sms.command("send")
|
|
11
|
+
.description("Send an SMS message")
|
|
12
|
+
.argument("<number>", "Recipient phone number")
|
|
13
|
+
.option("--from <number>", "From number")
|
|
14
|
+
.option("--message <text>", "Message text")
|
|
15
|
+
.option("--pathway <id>", "Pathway for conversation")
|
|
16
|
+
.option("--json", "Output as JSON")
|
|
17
|
+
.action(async (number, opts) => {
|
|
18
|
+
try {
|
|
19
|
+
const body = {
|
|
20
|
+
phone_number: number,
|
|
21
|
+
};
|
|
22
|
+
if (opts.from)
|
|
23
|
+
body.from = opts.from;
|
|
24
|
+
if (opts.message)
|
|
25
|
+
body.message = opts.message;
|
|
26
|
+
if (opts.pathway)
|
|
27
|
+
body.pathway_id = opts.pathway;
|
|
28
|
+
const spinner = ora(`Sending SMS to ${output.formatPhone(number)}...`).start();
|
|
29
|
+
const result = await api.post("/v1/sms/send", body);
|
|
30
|
+
spinner.succeed(`SMS sent ${chalk.dim(`(${result.conversation_id})`)}`);
|
|
31
|
+
if (opts.json)
|
|
32
|
+
output.json(result);
|
|
33
|
+
}
|
|
34
|
+
catch (err) {
|
|
35
|
+
handleError(err);
|
|
36
|
+
}
|
|
37
|
+
});
|
|
38
|
+
sms.command("conversations")
|
|
39
|
+
.alias("list")
|
|
40
|
+
.description("List SMS conversations")
|
|
41
|
+
.option("--json", "Output as JSON")
|
|
42
|
+
.action(async (opts) => {
|
|
43
|
+
try {
|
|
44
|
+
const spinner = ora("Fetching conversations...").start();
|
|
45
|
+
const result = await api.get("/v1/sms/conversations");
|
|
46
|
+
spinner.stop();
|
|
47
|
+
if (opts.json) {
|
|
48
|
+
output.json(result);
|
|
49
|
+
return;
|
|
50
|
+
}
|
|
51
|
+
output.json(result);
|
|
52
|
+
}
|
|
53
|
+
catch (err) {
|
|
54
|
+
handleError(err);
|
|
55
|
+
}
|
|
56
|
+
});
|
|
57
|
+
sms.command("get")
|
|
58
|
+
.description("Get conversation thread")
|
|
59
|
+
.argument("<conversation_id>", "Conversation ID")
|
|
60
|
+
.option("--json", "Output as JSON")
|
|
61
|
+
.action(async (convId, opts) => {
|
|
62
|
+
try {
|
|
63
|
+
const spinner = ora("Fetching conversation...").start();
|
|
64
|
+
const result = await api.get(`/v1/sms/conversations/${convId}`);
|
|
65
|
+
spinner.stop();
|
|
66
|
+
if (opts.json) {
|
|
67
|
+
output.json(result);
|
|
68
|
+
return;
|
|
69
|
+
}
|
|
70
|
+
if (result.messages) {
|
|
71
|
+
for (const msg of result.messages) {
|
|
72
|
+
const speaker = msg.sender === "AGENT" ? chalk.cyan("Agent") : chalk.green("User");
|
|
73
|
+
const ts = chalk.dim(output.formatDate(msg.created_at));
|
|
74
|
+
console.log(` ${ts} ${speaker}: ${msg.text}`);
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
catch (err) {
|
|
79
|
+
handleError(err);
|
|
80
|
+
}
|
|
81
|
+
});
|
|
82
|
+
}
|
|
83
|
+
//# sourceMappingURL=sms.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sms.js","sourceRoot":"","sources":["../../src/commands/sms.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tool.d.ts","sourceRoot":"","sources":["../../src/commands/tool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AASpC,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAgL1D"}
|
|
@@ -0,0 +1,200 @@
|
|
|
1
|
+
import { input } from "@inquirer/prompts";
|
|
2
|
+
import chalk from "chalk";
|
|
3
|
+
import ora from "ora";
|
|
4
|
+
import { api } from "../lib/api.js";
|
|
5
|
+
import * as output from "../lib/output.js";
|
|
6
|
+
import { handleError } from "../lib/errors.js";
|
|
7
|
+
export function registerToolCommand(program) {
|
|
8
|
+
const tool = program
|
|
9
|
+
.command("tool")
|
|
10
|
+
.description("Manage custom tools");
|
|
11
|
+
tool
|
|
12
|
+
.command("list")
|
|
13
|
+
.description("List all tools")
|
|
14
|
+
.option("--json", "Output as JSON")
|
|
15
|
+
.action(async (opts) => {
|
|
16
|
+
try {
|
|
17
|
+
const spinner = ora("Fetching tools...").start();
|
|
18
|
+
const tools = await api.get("/v1/tools");
|
|
19
|
+
spinner.stop();
|
|
20
|
+
if (opts.json) {
|
|
21
|
+
output.json(tools);
|
|
22
|
+
return;
|
|
23
|
+
}
|
|
24
|
+
if (!tools || tools.length === 0) {
|
|
25
|
+
console.log(chalk.dim(" No tools found."));
|
|
26
|
+
return;
|
|
27
|
+
}
|
|
28
|
+
output.table(tools.map((t) => ({
|
|
29
|
+
...t,
|
|
30
|
+
method_url: t.method && t.url
|
|
31
|
+
? `${t.method} ${output.truncate(t.url, 40)}`
|
|
32
|
+
: chalk.dim("—"),
|
|
33
|
+
})), [
|
|
34
|
+
{ key: "tool_id", header: "ID", width: 38 },
|
|
35
|
+
{ key: "name", header: "Name", width: 20 },
|
|
36
|
+
{ key: "type", header: "Type", width: 12 },
|
|
37
|
+
{ key: "method_url", header: "Endpoint", width: 45 },
|
|
38
|
+
]);
|
|
39
|
+
}
|
|
40
|
+
catch (err) {
|
|
41
|
+
handleError(err);
|
|
42
|
+
}
|
|
43
|
+
});
|
|
44
|
+
tool
|
|
45
|
+
.command("get")
|
|
46
|
+
.description("Get tool details")
|
|
47
|
+
.argument("<id>", "Tool ID")
|
|
48
|
+
.option("--json", "Output as JSON")
|
|
49
|
+
.action(async (id, opts) => {
|
|
50
|
+
try {
|
|
51
|
+
const spinner = ora("Fetching tool...").start();
|
|
52
|
+
const t = await api.get(`/v1/tools/${id}`);
|
|
53
|
+
spinner.stop();
|
|
54
|
+
if (opts.json) {
|
|
55
|
+
output.json(t);
|
|
56
|
+
return;
|
|
57
|
+
}
|
|
58
|
+
console.log();
|
|
59
|
+
output.detail([
|
|
60
|
+
["ID", t.tool_id],
|
|
61
|
+
["Name", t.name],
|
|
62
|
+
["Type", t.type],
|
|
63
|
+
["Description", t.description],
|
|
64
|
+
["Method", t.method || "—"],
|
|
65
|
+
["URL", t.url || "—"],
|
|
66
|
+
]);
|
|
67
|
+
if (t.input_schema) {
|
|
68
|
+
output.header("Input Schema");
|
|
69
|
+
console.log(JSON.stringify(t.input_schema, null, 2));
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
catch (err) {
|
|
73
|
+
handleError(err);
|
|
74
|
+
}
|
|
75
|
+
});
|
|
76
|
+
tool
|
|
77
|
+
.command("create")
|
|
78
|
+
.description("Create a new tool")
|
|
79
|
+
.option("--name <name>", "Tool name")
|
|
80
|
+
.option("--description <desc>", "Tool description")
|
|
81
|
+
.option("--url <url>", "Webhook URL")
|
|
82
|
+
.option("--method <method>", "HTTP method", "POST")
|
|
83
|
+
.option("--json", "Output as JSON")
|
|
84
|
+
.action(async (opts) => {
|
|
85
|
+
try {
|
|
86
|
+
let name = opts.name;
|
|
87
|
+
if (!name) {
|
|
88
|
+
name = await input({ message: "Tool name:", validate: (v) => v.trim().length > 0 || "Required" });
|
|
89
|
+
}
|
|
90
|
+
let description = opts.description;
|
|
91
|
+
if (!description) {
|
|
92
|
+
description = await input({ message: "Description:" });
|
|
93
|
+
}
|
|
94
|
+
let url = opts.url;
|
|
95
|
+
if (!url) {
|
|
96
|
+
url = await input({ message: "Webhook URL:" });
|
|
97
|
+
}
|
|
98
|
+
const spinner = ora("Creating tool...").start();
|
|
99
|
+
const result = await api.post("/v1/tools", {
|
|
100
|
+
name,
|
|
101
|
+
description,
|
|
102
|
+
url,
|
|
103
|
+
method: opts.method,
|
|
104
|
+
});
|
|
105
|
+
spinner.succeed(`Tool "${name}" created ${chalk.dim(`(${result.tool_id})`)}`);
|
|
106
|
+
if (opts.json)
|
|
107
|
+
output.json(result);
|
|
108
|
+
}
|
|
109
|
+
catch (err) {
|
|
110
|
+
handleError(err);
|
|
111
|
+
}
|
|
112
|
+
});
|
|
113
|
+
tool
|
|
114
|
+
.command("update")
|
|
115
|
+
.description("Update a tool")
|
|
116
|
+
.argument("<id>", "Tool ID")
|
|
117
|
+
.option("--name <name>", "New name")
|
|
118
|
+
.option("--description <desc>", "New description")
|
|
119
|
+
.option("--url <url>", "New URL")
|
|
120
|
+
.option("--method <method>", "New HTTP method")
|
|
121
|
+
.option("--json", "Output as JSON")
|
|
122
|
+
.action(async (id, opts) => {
|
|
123
|
+
try {
|
|
124
|
+
const body = {};
|
|
125
|
+
if (opts.name)
|
|
126
|
+
body.name = opts.name;
|
|
127
|
+
if (opts.description)
|
|
128
|
+
body.description = opts.description;
|
|
129
|
+
if (opts.url)
|
|
130
|
+
body.url = opts.url;
|
|
131
|
+
if (opts.method)
|
|
132
|
+
body.method = opts.method;
|
|
133
|
+
const spinner = ora("Updating tool...").start();
|
|
134
|
+
const result = await api.post(`/v1/tools/${id}`, body);
|
|
135
|
+
spinner.succeed("Tool updated.");
|
|
136
|
+
if (opts.json)
|
|
137
|
+
output.json(result);
|
|
138
|
+
}
|
|
139
|
+
catch (err) {
|
|
140
|
+
handleError(err);
|
|
141
|
+
}
|
|
142
|
+
});
|
|
143
|
+
tool
|
|
144
|
+
.command("delete")
|
|
145
|
+
.description("Delete a tool")
|
|
146
|
+
.argument("<id>", "Tool ID")
|
|
147
|
+
.action(async (id) => {
|
|
148
|
+
try {
|
|
149
|
+
const spinner = ora("Deleting tool...").start();
|
|
150
|
+
await api.delete(`/v1/tools/${id}`);
|
|
151
|
+
spinner.succeed("Tool deleted.");
|
|
152
|
+
}
|
|
153
|
+
catch (err) {
|
|
154
|
+
handleError(err);
|
|
155
|
+
}
|
|
156
|
+
});
|
|
157
|
+
tool
|
|
158
|
+
.command("test")
|
|
159
|
+
.description("Test a tool with sample input")
|
|
160
|
+
.argument("<id>", "Tool ID")
|
|
161
|
+
.option("--input <json>", "Test input data (JSON)")
|
|
162
|
+
.option("--verbose", "Show full request/response")
|
|
163
|
+
.option("--json", "Output as JSON")
|
|
164
|
+
.action(async (id, opts) => {
|
|
165
|
+
try {
|
|
166
|
+
let testInput = {};
|
|
167
|
+
if (opts.input) {
|
|
168
|
+
try {
|
|
169
|
+
testInput = JSON.parse(opts.input);
|
|
170
|
+
}
|
|
171
|
+
catch {
|
|
172
|
+
console.error(chalk.red("--input must be valid JSON"));
|
|
173
|
+
process.exit(1);
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
else {
|
|
177
|
+
const raw = await input({ message: "Test input (JSON):", default: "{}" });
|
|
178
|
+
testInput = JSON.parse(raw);
|
|
179
|
+
}
|
|
180
|
+
const spinner = ora("Testing tool...").start();
|
|
181
|
+
const start = Date.now();
|
|
182
|
+
const result = await api.post(`/v1/tools/${id}/test`, { input: testInput });
|
|
183
|
+
const duration = Date.now() - start;
|
|
184
|
+
spinner.stop();
|
|
185
|
+
if (opts.json) {
|
|
186
|
+
output.json({ ...result, duration_ms: duration });
|
|
187
|
+
return;
|
|
188
|
+
}
|
|
189
|
+
output.header("Response");
|
|
190
|
+
console.log(JSON.stringify(result.response, null, 2));
|
|
191
|
+
console.log();
|
|
192
|
+
console.log(chalk.dim(` Completed in ${duration}ms`));
|
|
193
|
+
output.success("Tool test passed.");
|
|
194
|
+
}
|
|
195
|
+
catch (err) {
|
|
196
|
+
handleError(err);
|
|
197
|
+
}
|
|
198
|
+
});
|
|
199
|
+
}
|
|
200
|
+
//# sourceMappingURL=tool.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tool.js","sourceRoot":"","sources":["../../src/commands/tool.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAU,MAAM,mBAAmB,CAAC;AAClD,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,GAAG,MAAM,KAAK,CAAC;AACtB,OAAO,EAAE,GAAG,EAAE,MAAM,eAAe,CAAC;AACpC,OAAO,KAAK,MAAM,MAAM,kBAAkB,CAAC;AAC3C,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAG/C,MAAM,UAAU,mBAAmB,CAAC,OAAgB;IAClD,MAAM,IAAI,GAAG,OAAO;SACjB,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CAAC,qBAAqB,CAAC,CAAC;IAEtC,IAAI;SACD,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CAAC,gBAAgB,CAAC;SAC7B,MAAM,CAAC,QAAQ,EAAE,gBAAgB,CAAC;SAClC,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;QACrB,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,GAAG,CAAC,mBAAmB,CAAC,CAAC,KAAK,EAAE,CAAC;YACjD,MAAM,KAAK,GAAG,MAAM,GAAG,CAAC,GAAG,CAAS,WAAW,CAAC,CAAC;YACjD,OAAO,CAAC,IAAI,EAAE,CAAC;YAEf,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;gBAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBAAC,OAAO;YAAC,CAAC;YAE9C,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACjC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC,CAAC;gBAC5C,OAAO;YACT,CAAC;YAED,MAAM,CAAC,KAAK,CACV,KAAK,CAAC,GAAG,CAAC,CAAC,CAAO,EAAE,EAAE,CAAC,CAAC;gBACtB,GAAG,CAAC;gBACJ,UAAU,EAAE,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,GAAG;oBAC3B,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE;oBAC7C,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC;aACnB,CAAC,CAAC,EACH;gBACE,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE;gBAC3C,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,EAAE;gBAC1C,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,EAAE;gBAC1C,EAAE,GAAG,EAAE,YAAY,EAAE,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,EAAE,EAAE;aACrD,CACF,CAAC;QACJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QAAC,CAAC;IACrC,CAAC,CAAC,CAAC;IAEL,IAAI;SACD,OAAO,CAAC,KAAK,CAAC;SACd,WAAW,CAAC,kBAAkB,CAAC;SAC/B,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC;SAC3B,MAAM,CAAC,QAAQ,EAAE,gBAAgB,CAAC;SAClC,MAAM,CAAC,KAAK,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE;QACzB,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,GAAG,CAAC,kBAAkB,CAAC,CAAC,KAAK,EAAE,CAAC;YAChD,MAAM,CAAC,GAAG,MAAM,GAAG,CAAC,GAAG,CAAO,aAAa,EAAE,EAAE,CAAC,CAAC;YACjD,OAAO,CAAC,IAAI,EAAE,CAAC;YAEf,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;gBAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBAAC,OAAO;YAAC,CAAC;YAE1C,OAAO,CAAC,GAAG,EAAE,CAAC;YACd,MAAM,CAAC,MAAM,CAAC;gBACZ,CAAC,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC;gBACjB,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC;gBAChB,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC;gBAChB,CAAC,aAAa,EAAE,CAAC,CAAC,WAAW,CAAC;gBAC9B,CAAC,QAAQ,EAAE,CAAC,CAAC,MAAM,IAAI,GAAG,CAAC;gBAC3B,CAAC,KAAK,EAAE,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC;aACtB,CAAC,CAAC;YAEH,IAAI,CAAC,CAAC,YAAY,EAAE,CAAC;gBACnB,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;gBAC9B,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;YACvD,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QAAC,CAAC;IACrC,CAAC,CAAC,CAAC;IAEL,IAAI;SACD,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,mBAAmB,CAAC;SAChC,MAAM,CAAC,eAAe,EAAE,WAAW,CAAC;SACpC,MAAM,CAAC,sBAAsB,EAAE,kBAAkB,CAAC;SAClD,MAAM,CAAC,aAAa,EAAE,aAAa,CAAC;SACpC,MAAM,CAAC,mBAAmB,EAAE,aAAa,EAAE,MAAM,CAAC;SAClD,MAAM,CAAC,QAAQ,EAAE,gBAAgB,CAAC;SAClC,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;QACrB,IAAI,CAAC;YACH,IAAI,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;YACrB,IAAI,CAAC,IAAI,EAAE,CAAC;gBACV,IAAI,GAAG,MAAM,KAAK,CAAC,EAAE,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,IAAI,UAAU,EAAE,CAAC,CAAC;YACpG,CAAC;YACD,IAAI,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;YACnC,IAAI,CAAC,WAAW,EAAE,CAAC;gBACjB,WAAW,GAAG,MAAM,KAAK,CAAC,EAAE,OAAO,EAAE,cAAc,EAAE,CAAC,CAAC;YACzD,CAAC;YACD,IAAI,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC;YACnB,IAAI,CAAC,GAAG,EAAE,CAAC;gBACT,GAAG,GAAG,MAAM,KAAK,CAAC,EAAE,OAAO,EAAE,cAAc,EAAE,CAAC,CAAC;YACjD,CAAC;YAED,MAAM,OAAO,GAAG,GAAG,CAAC,kBAAkB,CAAC,CAAC,KAAK,EAAE,CAAC;YAChD,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,IAAI,CAAO,WAAW,EAAE;gBAC/C,IAAI;gBACJ,WAAW;gBACX,GAAG;gBACH,MAAM,EAAE,IAAI,CAAC,MAAM;aACpB,CAAC,CAAC;YACH,OAAO,CAAC,OAAO,CAAC,SAAS,IAAI,aAAa,KAAK,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,GAAG,CAAC,EAAE,CAAC,CAAC;YAC9E,IAAI,IAAI,CAAC,IAAI;gBAAE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACrC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QAAC,CAAC;IACrC,CAAC,CAAC,CAAC;IAEL,IAAI;SACD,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,eAAe,CAAC;SAC5B,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC;SAC3B,MAAM,CAAC,eAAe,EAAE,UAAU,CAAC;SACnC,MAAM,CAAC,sBAAsB,EAAE,iBAAiB,CAAC;SACjD,MAAM,CAAC,aAAa,EAAE,SAAS,CAAC;SAChC,MAAM,CAAC,mBAAmB,EAAE,iBAAiB,CAAC;SAC9C,MAAM,CAAC,QAAQ,EAAE,gBAAgB,CAAC;SAClC,MAAM,CAAC,KAAK,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE;QACzB,IAAI,CAAC;YACH,MAAM,IAAI,GAA4B,EAAE,CAAC;YACzC,IAAI,IAAI,CAAC,IAAI;gBAAE,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;YACrC,IAAI,IAAI,CAAC,WAAW;gBAAE,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;YAC1D,IAAI,IAAI,CAAC,GAAG;gBAAE,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC;YAClC,IAAI,IAAI,CAAC,MAAM;gBAAE,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;YAE3C,MAAM,OAAO,GAAG,GAAG,CAAC,kBAAkB,CAAC,CAAC,KAAK,EAAE,CAAC;YAChD,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,IAAI,CAAO,aAAa,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;YAC7D,OAAO,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;YACjC,IAAI,IAAI,CAAC,IAAI;gBAAE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACrC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QAAC,CAAC;IACrC,CAAC,CAAC,CAAC;IAEL,IAAI;SACD,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,eAAe,CAAC;SAC5B,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC;SAC3B,MAAM,CAAC,KAAK,EAAE,EAAE,EAAE,EAAE;QACnB,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,GAAG,CAAC,kBAAkB,CAAC,CAAC,KAAK,EAAE,CAAC;YAChD,MAAM,GAAG,CAAC,MAAM,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC;YACpC,OAAO,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;QACnC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QAAC,CAAC;IACrC,CAAC,CAAC,CAAC;IAEL,IAAI;SACD,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CAAC,+BAA+B,CAAC;SAC5C,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC;SAC3B,MAAM,CAAC,gBAAgB,EAAE,wBAAwB,CAAC;SAClD,MAAM,CAAC,WAAW,EAAE,4BAA4B,CAAC;SACjD,MAAM,CAAC,QAAQ,EAAE,gBAAgB,CAAC;SAClC,MAAM,CAAC,KAAK,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE;QACzB,IAAI,CAAC;YACH,IAAI,SAAS,GAA4B,EAAE,CAAC;YAC5C,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;gBACf,IAAI,CAAC;oBAAC,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBAAC,CAAC;gBAC3C,MAAM,CAAC;oBAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC,CAAC;oBAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBAAC,CAAC;YACpF,CAAC;iBAAM,CAAC;gBACN,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,EAAE,OAAO,EAAE,oBAAoB,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;gBAC1E,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAC9B,CAAC;YAED,MAAM,OAAO,GAAG,GAAG,CAAC,iBAAiB,CAAC,CAAC,KAAK,EAAE,CAAC;YAC/C,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YACzB,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,IAAI,CAC3B,aAAa,EAAE,OAAO,EACtB,EAAE,KAAK,EAAE,SAAS,EAAE,CACrB,CAAC;YACF,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC;YACpC,OAAO,CAAC,IAAI,EAAE,CAAC;YAEf,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;gBAAC,MAAM,CAAC,IAAI,CAAC,EAAE,GAAG,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,CAAC,CAAC;gBAAC,OAAO;YAAC,CAAC;YAE7E,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;YAC1B,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;YACtD,OAAO,CAAC,GAAG,EAAE,CAAC;YACd,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,kBAAkB,QAAQ,IAAI,CAAC,CAAC,CAAC;YACvD,MAAM,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC;QACtC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QAAC,CAAC;IACrC,CAAC,CAAC,CAAC;AACP,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"voice.d.ts","sourceRoot":"","sources":["../../src/commands/voice.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AASpC,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAgG3D"}
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
import chalk from "chalk";
|
|
2
|
+
import ora from "ora";
|
|
3
|
+
import * as fs from "fs";
|
|
4
|
+
import { api, request } from "../lib/api.js";
|
|
5
|
+
import * as output from "../lib/output.js";
|
|
6
|
+
import { handleError } from "../lib/errors.js";
|
|
7
|
+
export function registerVoiceCommand(program) {
|
|
8
|
+
const voice = program
|
|
9
|
+
.command("voice")
|
|
10
|
+
.description("Manage and preview voices");
|
|
11
|
+
voice
|
|
12
|
+
.command("list")
|
|
13
|
+
.description("List available voices")
|
|
14
|
+
.option("--language <code>", "Filter by language")
|
|
15
|
+
.option("--custom", "Show only custom voices")
|
|
16
|
+
.option("--json", "Output as JSON")
|
|
17
|
+
.action(async (opts) => {
|
|
18
|
+
try {
|
|
19
|
+
const spinner = ora("Fetching voices...").start();
|
|
20
|
+
const result = await api.get("/v1/voices");
|
|
21
|
+
spinner.stop();
|
|
22
|
+
let filtered = Array.isArray(result)
|
|
23
|
+
? result
|
|
24
|
+
: result.voices || [];
|
|
25
|
+
if (opts.language) {
|
|
26
|
+
filtered = filtered.filter((v) => v.language?.toLowerCase() === opts.language.toLowerCase());
|
|
27
|
+
}
|
|
28
|
+
if (opts.custom) {
|
|
29
|
+
filtered = filtered.filter((v) => v.is_custom);
|
|
30
|
+
}
|
|
31
|
+
if (opts.json) {
|
|
32
|
+
output.json(filtered);
|
|
33
|
+
return;
|
|
34
|
+
}
|
|
35
|
+
output.table(filtered.map((v) => ({
|
|
36
|
+
...v,
|
|
37
|
+
custom: v.is_custom ? chalk.cyan("custom") : v.public ? "" : chalk.cyan("custom"),
|
|
38
|
+
lang: v.language || v.tags?.find((t) => t.match(/^[a-z]{2}$/)) || "en",
|
|
39
|
+
})), [
|
|
40
|
+
{ key: "name", header: "Name", width: 24 },
|
|
41
|
+
{ key: "description", header: "Description", width: 40 },
|
|
42
|
+
{ key: "lang", header: "Language", width: 10 },
|
|
43
|
+
{ key: "custom", header: "", width: 8 },
|
|
44
|
+
]);
|
|
45
|
+
}
|
|
46
|
+
catch (err) {
|
|
47
|
+
handleError(err);
|
|
48
|
+
}
|
|
49
|
+
});
|
|
50
|
+
voice
|
|
51
|
+
.command("speak")
|
|
52
|
+
.alias("sample")
|
|
53
|
+
.description("Generate TTS audio from text")
|
|
54
|
+
.argument("<text>", "Text to speak")
|
|
55
|
+
.option("--voice <voice>", "Voice to use", "nat")
|
|
56
|
+
.option("-o, --output <file>", "Save to file")
|
|
57
|
+
.option("--json", "Output as JSON")
|
|
58
|
+
.action(async (text, opts) => {
|
|
59
|
+
try {
|
|
60
|
+
const spinner = ora("Generating audio...").start();
|
|
61
|
+
const result = await request("/v1/speak", {
|
|
62
|
+
method: "POST",
|
|
63
|
+
body: {
|
|
64
|
+
text,
|
|
65
|
+
voice: opts.voice,
|
|
66
|
+
},
|
|
67
|
+
});
|
|
68
|
+
spinner.stop();
|
|
69
|
+
const audioUrl = result.url || result.audio_url;
|
|
70
|
+
if (opts.json) {
|
|
71
|
+
output.json(result);
|
|
72
|
+
return;
|
|
73
|
+
}
|
|
74
|
+
if (opts.output && audioUrl) {
|
|
75
|
+
const response = await fetch(audioUrl);
|
|
76
|
+
const buffer = Buffer.from(await response.arrayBuffer());
|
|
77
|
+
fs.writeFileSync(opts.output, buffer);
|
|
78
|
+
output.success(`Audio saved to ${opts.output}`);
|
|
79
|
+
}
|
|
80
|
+
else if (audioUrl) {
|
|
81
|
+
console.log();
|
|
82
|
+
console.log(` ${chalk.bold("Audio URL:")}`);
|
|
83
|
+
console.log(` ${audioUrl}`);
|
|
84
|
+
}
|
|
85
|
+
else {
|
|
86
|
+
output.success("Audio generated.");
|
|
87
|
+
output.json(result);
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
catch (err) {
|
|
91
|
+
handleError(err);
|
|
92
|
+
}
|
|
93
|
+
});
|
|
94
|
+
}
|
|
95
|
+
//# sourceMappingURL=voice.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"voice.js","sourceRoot":"","sources":["../../src/commands/voice.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"widget.d.ts","sourceRoot":"","sources":["../../src/commands/widget.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AASpC,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA2D5D"}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
import { confirm } from "@inquirer/prompts";
|
|
2
|
+
import chalk from "chalk";
|
|
3
|
+
import ora from "ora";
|
|
4
|
+
import { api } from "../lib/api.js";
|
|
5
|
+
import * as output from "../lib/output.js";
|
|
6
|
+
import { handleError } from "../lib/errors.js";
|
|
7
|
+
export function registerWidgetCommand(program) {
|
|
8
|
+
const widget = program.command("widget").description("Manage embeddable widgets");
|
|
9
|
+
widget.command("list").description("List widgets")
|
|
10
|
+
.option("--json", "Output as JSON")
|
|
11
|
+
.action(async (opts) => {
|
|
12
|
+
try {
|
|
13
|
+
const spinner = ora("Fetching...").start();
|
|
14
|
+
const widgets = await api.get("/v1/widget");
|
|
15
|
+
spinner.stop();
|
|
16
|
+
if (opts.json) {
|
|
17
|
+
output.json(widgets);
|
|
18
|
+
return;
|
|
19
|
+
}
|
|
20
|
+
output.table((widgets || []).map((w) => ({
|
|
21
|
+
...w,
|
|
22
|
+
domains: w.allowed_domains?.join(", ") || chalk.dim("—"),
|
|
23
|
+
})), [
|
|
24
|
+
{ key: "id", header: "ID", width: 38 },
|
|
25
|
+
{ key: "domains", header: "Domains", width: 40 },
|
|
26
|
+
{ key: "messages_per_minute", header: "Rate Limit", width: 12 },
|
|
27
|
+
]);
|
|
28
|
+
}
|
|
29
|
+
catch (err) {
|
|
30
|
+
handleError(err);
|
|
31
|
+
}
|
|
32
|
+
});
|
|
33
|
+
widget.command("create").description("Create a widget")
|
|
34
|
+
.option("--pathway <id>", "Pathway ID")
|
|
35
|
+
.option("--prompt <text>", "Agent prompt (if no pathway)")
|
|
36
|
+
.option("--domains <domains>", "Allowed domains (comma-separated)")
|
|
37
|
+
.option("--rate-limit <n>", "Messages per minute", "60")
|
|
38
|
+
.option("--json", "Output as JSON")
|
|
39
|
+
.action(async (opts) => {
|
|
40
|
+
try {
|
|
41
|
+
const body = {
|
|
42
|
+
messages_per_minute: parseInt(opts.rateLimit, 10),
|
|
43
|
+
config: {},
|
|
44
|
+
};
|
|
45
|
+
if (opts.pathway)
|
|
46
|
+
body.pathway_id = opts.pathway;
|
|
47
|
+
if (opts.prompt)
|
|
48
|
+
body.agent_prompt = opts.prompt;
|
|
49
|
+
if (opts.domains)
|
|
50
|
+
body.allowed_domains = opts.domains.split(",").map((d) => d.trim());
|
|
51
|
+
const spinner = ora("Creating widget...").start();
|
|
52
|
+
const result = await api.post("/v1/widget", body);
|
|
53
|
+
spinner.succeed(`Widget created ${chalk.dim(`(${result.id})`)}`);
|
|
54
|
+
if (opts.json)
|
|
55
|
+
output.json(result);
|
|
56
|
+
}
|
|
57
|
+
catch (err) {
|
|
58
|
+
handleError(err);
|
|
59
|
+
}
|
|
60
|
+
});
|
|
61
|
+
widget.command("delete").description("Delete a widget")
|
|
62
|
+
.argument("<id>", "Widget ID")
|
|
63
|
+
.action(async (id) => {
|
|
64
|
+
try {
|
|
65
|
+
const proceed = await confirm({ message: `Delete widget ${id}?` });
|
|
66
|
+
if (!proceed)
|
|
67
|
+
return;
|
|
68
|
+
const spinner = ora("Deleting...").start();
|
|
69
|
+
await api.delete(`/v1/widget/${id}`);
|
|
70
|
+
spinner.succeed("Widget deleted.");
|
|
71
|
+
}
|
|
72
|
+
catch (err) {
|
|
73
|
+
handleError(err);
|
|
74
|
+
}
|
|
75
|
+
});
|
|
76
|
+
}
|
|
77
|
+
//# sourceMappingURL=widget.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"widget.js","sourceRoot":"","sources":["../../src/commands/widget.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":""}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import { Command } from "commander";
|
|
3
|
+
import { registerAuthCommand } from "./commands/auth.js";
|
|
4
|
+
import { registerCallCommand } from "./commands/call.js";
|
|
5
|
+
import { registerNumberCommand } from "./commands/number.js";
|
|
6
|
+
import { registerPathwayCommand } from "./commands/pathway.js";
|
|
7
|
+
import { registerPersonaCommand } from "./commands/persona.js";
|
|
8
|
+
import { registerVoiceCommand } from "./commands/voice.js";
|
|
9
|
+
import { registerToolCommand } from "./commands/tool.js";
|
|
10
|
+
import { registerKnowledgeCommand } from "./commands/knowledge.js";
|
|
11
|
+
import { registerBatchCommand } from "./commands/batch.js";
|
|
12
|
+
import { registerSmsCommand } from "./commands/sms.js";
|
|
13
|
+
import { registerAgentCommand } from "./commands/agent.js";
|
|
14
|
+
import { registerGuardCommand } from "./commands/guard.js";
|
|
15
|
+
import { registerAlarmCommand } from "./commands/alarm.js";
|
|
16
|
+
import { registerSecretCommand } from "./commands/secret.js";
|
|
17
|
+
import { registerReleaseCommand } from "./commands/release.js";
|
|
18
|
+
import { registerWidgetCommand } from "./commands/widget.js";
|
|
19
|
+
import { registerSipCommand } from "./commands/sip.js";
|
|
20
|
+
import { registerEvalCommand } from "./commands/eval.js";
|
|
21
|
+
import { registerAudioCommand } from "./commands/audio.js";
|
|
22
|
+
import { registerListenCommand } from "./commands/listen.js";
|
|
23
|
+
import { registerMcpCommand } from "./commands/mcp.js";
|
|
24
|
+
const program = new Command();
|
|
25
|
+
program
|
|
26
|
+
.name("bland")
|
|
27
|
+
.description("The official Bland AI command-line interface")
|
|
28
|
+
.version("0.1.0");
|
|
29
|
+
// Register all command groups
|
|
30
|
+
registerAuthCommand(program);
|
|
31
|
+
registerCallCommand(program);
|
|
32
|
+
registerPathwayCommand(program);
|
|
33
|
+
registerPersonaCommand(program);
|
|
34
|
+
registerNumberCommand(program);
|
|
35
|
+
registerVoiceCommand(program);
|
|
36
|
+
registerToolCommand(program);
|
|
37
|
+
registerKnowledgeCommand(program);
|
|
38
|
+
registerBatchCommand(program);
|
|
39
|
+
registerSmsCommand(program);
|
|
40
|
+
registerAgentCommand(program);
|
|
41
|
+
registerGuardCommand(program);
|
|
42
|
+
registerAlarmCommand(program);
|
|
43
|
+
registerSecretCommand(program);
|
|
44
|
+
registerReleaseCommand(program);
|
|
45
|
+
registerWidgetCommand(program);
|
|
46
|
+
registerSipCommand(program);
|
|
47
|
+
registerEvalCommand(program);
|
|
48
|
+
registerAudioCommand(program);
|
|
49
|
+
registerListenCommand(program);
|
|
50
|
+
registerMcpCommand(program);
|
|
51
|
+
program.parse();
|
|
52
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAC;AACnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAEvD,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,OAAO,CAAC;KACb,WAAW,CAAC,8CAA8C,CAAC;KAC3D,OAAO,CAAC,OAAO,CAAC,CAAC;AAEpB,8BAA8B;AAC9B,mBAAmB,CAAC,OAAO,CAAC,CAAC;AAC7B,mBAAmB,CAAC,OAAO,CAAC,CAAC;AAC7B,sBAAsB,CAAC,OAAO,CAAC,CAAC;AAChC,sBAAsB,CAAC,OAAO,CAAC,CAAC;AAChC,qBAAqB,CAAC,OAAO,CAAC,CAAC;AAC/B,oBAAoB,CAAC,OAAO,CAAC,CAAC;AAC9B,mBAAmB,CAAC,OAAO,CAAC,CAAC;AAC7B,wBAAwB,CAAC,OAAO,CAAC,CAAC;AAClC,oBAAoB,CAAC,OAAO,CAAC,CAAC;AAC9B,kBAAkB,CAAC,OAAO,CAAC,CAAC;AAC5B,oBAAoB,CAAC,OAAO,CAAC,CAAC;AAC9B,oBAAoB,CAAC,OAAO,CAAC,CAAC;AAC9B,oBAAoB,CAAC,OAAO,CAAC,CAAC;AAC9B,qBAAqB,CAAC,OAAO,CAAC,CAAC;AAC/B,sBAAsB,CAAC,OAAO,CAAC,CAAC;AAChC,qBAAqB,CAAC,OAAO,CAAC,CAAC;AAC/B,kBAAkB,CAAC,OAAO,CAAC,CAAC;AAC5B,mBAAmB,CAAC,OAAO,CAAC,CAAC;AAC7B,oBAAoB,CAAC,OAAO,CAAC,CAAC;AAC9B,qBAAqB,CAAC,OAAO,CAAC,CAAC;AAC/B,kBAAkB,CAAC,OAAO,CAAC,CAAC;AAE5B,OAAO,CAAC,KAAK,EAAE,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
interface RequestOptions {
|
|
2
|
+
method?: "GET" | "POST" | "PUT" | "PATCH" | "DELETE";
|
|
3
|
+
body?: Record<string, unknown> | FormData;
|
|
4
|
+
query?: Record<string, string | number | boolean | undefined>;
|
|
5
|
+
headers?: Record<string, string>;
|
|
6
|
+
rawResponse?: boolean;
|
|
7
|
+
}
|
|
8
|
+
export declare function request<T = unknown>(path: string, options?: RequestOptions): Promise<T>;
|
|
9
|
+
export declare const api: {
|
|
10
|
+
get: <T = unknown>(path: string, query?: Record<string, string | number | boolean | undefined>) => Promise<T>;
|
|
11
|
+
post: <T = unknown>(path: string, body?: Record<string, unknown>) => Promise<T>;
|
|
12
|
+
put: <T = unknown>(path: string, body?: Record<string, unknown>) => Promise<T>;
|
|
13
|
+
patch: <T = unknown>(path: string, body?: Record<string, unknown>) => Promise<T>;
|
|
14
|
+
delete: <T = unknown>(path: string) => Promise<T>;
|
|
15
|
+
};
|
|
16
|
+
export {};
|
|
17
|
+
//# sourceMappingURL=api.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../src/lib/api.ts"],"names":[],"mappings":"AAIA,UAAU,cAAc;IACtB,MAAM,CAAC,EAAE,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,OAAO,GAAG,QAAQ,CAAC;IACrD,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAC;IAC1C,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC,CAAC;IAC9D,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAqBD,wBAAsB,OAAO,CAAC,CAAC,GAAG,OAAO,EACvC,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE,cAAmB,GAC3B,OAAO,CAAC,CAAC,CAAC,CA6EZ;AAGD,eAAO,MAAM,GAAG;UACR,CAAC,kBACC,MAAM,UACJ,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC;WAGxD,CAAC,kBAAkB,MAAM,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;UAG1D,CAAC,kBAAkB,MAAM,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;YAGvD,CAAC,kBAAkB,MAAM,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;aAGxD,CAAC,kBAAkB,MAAM;CAEnC,CAAC"}
|