@mailkite/cli 0.2.0 → 0.4.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/README.md +1 -1
- package/cli.mjs +43 -0
- package/package.json +3 -3
package/README.md
CHANGED
|
@@ -55,7 +55,7 @@ mailkite domains verify "$ID" --json | jq -e '.status=="verified"'
|
|
|
55
55
|
| Group | Commands |
|
|
56
56
|
| --- | --- |
|
|
57
57
|
| Auth | `login`, `signup`, `logout`, `whoami` |
|
|
58
|
-
| Send | `send` |
|
|
58
|
+
| Send | `send`, `agent`, `route` |
|
|
59
59
|
| Domains | `domains list\|add\|get\|verify\|rm`, `dns <id> [--provider]` |
|
|
60
60
|
| Webhooks | `webhook set\|rm\|test\|show`, `secret get\|rotate`, `verify-webhook` |
|
|
61
61
|
| Receiving | `messages list\|get\|tail`, `routes list\|create`, `deliveries retry` |
|
package/cli.mjs
CHANGED
|
@@ -217,6 +217,45 @@ commands.send = async ({ flags }) => {
|
|
|
217
217
|
out(res, flags, (r) => console.log(green("✓ ") + `Sent — id ${bold(r.id)}, status ${r.status}`));
|
|
218
218
|
};
|
|
219
219
|
|
|
220
|
+
// Send a message straight to an inbox agent and print its reply. Defaults to the account's
|
|
221
|
+
// default agent; --route-id / --address pick a specific one, --model overrides the model.
|
|
222
|
+
commands.agent = async ({ _, flags }) => {
|
|
223
|
+
const mk = client(flags);
|
|
224
|
+
const text = await need(_[0] || flags.text, "text", "Message to the agent: ");
|
|
225
|
+
const message = { text };
|
|
226
|
+
if (flags.subject) message.subject = flags.subject;
|
|
227
|
+
if (flags.from) message.from = flags.from;
|
|
228
|
+
if (flags["route-id"]) message.routeId = flags["route-id"];
|
|
229
|
+
if (flags.address) message.address = flags.address;
|
|
230
|
+
if (flags.model) message.model = flags.model;
|
|
231
|
+
let res;
|
|
232
|
+
try { res = await mk.agent(message); }
|
|
233
|
+
catch (e) { return die(e instanceof MailKiteError ? `Agent failed (${e.status}): ${e.message}` : e.message); }
|
|
234
|
+
out(res, flags, (r) => { if (r.ok) console.log(r.text || dim("(no reply)")); else die(r.error || "agent run failed"); });
|
|
235
|
+
};
|
|
236
|
+
|
|
237
|
+
// Route a message to one of your registered routes (by id or address), running its action.
|
|
238
|
+
commands.route = async ({ _, flags }) => {
|
|
239
|
+
const mk = client(flags);
|
|
240
|
+
const from = await need(flags.from, "from", "From: ");
|
|
241
|
+
const message = { from };
|
|
242
|
+
if (flags["route-id"]) message.routeId = flags["route-id"];
|
|
243
|
+
if (flags.address) message.address = flags.address;
|
|
244
|
+
if (!message.routeId && !message.address) {
|
|
245
|
+
const target = await need(_[0] || "", "route", "Route id (rte_…) or address it matches: ");
|
|
246
|
+
if (target.startsWith("rte_")) message.routeId = target; else message.address = target;
|
|
247
|
+
}
|
|
248
|
+
if (flags.subject) message.subject = flags.subject;
|
|
249
|
+
let text = flags.text;
|
|
250
|
+
if (flags.file) text = readFileSync(flags.file, "utf8");
|
|
251
|
+
if (text) message.text = text;
|
|
252
|
+
if (flags.html) message.html = flags.html;
|
|
253
|
+
let res;
|
|
254
|
+
try { res = await mk.route(message); }
|
|
255
|
+
catch (e) { return die(e instanceof MailKiteError ? `Route failed (${e.status}): ${e.message}` : e.message); }
|
|
256
|
+
out(res, flags, (r) => console.log(green("✓ ") + `Routed — id ${bold(r.id)}, action ${r.action}`));
|
|
257
|
+
};
|
|
258
|
+
|
|
220
259
|
commands.domains = async ({ _, flags }) => {
|
|
221
260
|
const sub = _[0] || "list";
|
|
222
261
|
const mk = client(flags);
|
|
@@ -512,6 +551,10 @@ ${bold("AUTH")}
|
|
|
512
551
|
${bold("SEND")}
|
|
513
552
|
send Send a message (--from --to --subject [--html|--text|--file] [--cc --bcc --reply-to --in-reply-to])
|
|
514
553
|
|
|
554
|
+
${bold("AGENTS")}
|
|
555
|
+
agent <text> Message an inbox agent and print its reply ([--route-id|--address] [--model --subject --from])
|
|
556
|
+
route Route a message to a registered route (--route-id <id>|--address <addr> --from [--subject --text|--file --html])
|
|
557
|
+
|
|
515
558
|
${bold("DOMAINS & DNS")}
|
|
516
559
|
domains list List your domains
|
|
517
560
|
domains add <domain> Add a domain you own; prints the DNS records to set
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mailkite/cli",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.4.0",
|
|
4
4
|
"description": "MailKite command-line client — sign in, add domains, set DNS + webhooks, send mail, and tail inbound messages from your terminal. Built on the MailKite Node SDK.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
@@ -30,11 +30,11 @@
|
|
|
30
30
|
"homepage": "https://mailkite.dev/docs/cli",
|
|
31
31
|
"repository": {
|
|
32
32
|
"type": "git",
|
|
33
|
-
"url": "git+https://github.com/
|
|
33
|
+
"url": "git+https://github.com/mailkite/mailkite.git",
|
|
34
34
|
"directory": "sdks/cli"
|
|
35
35
|
},
|
|
36
36
|
"license": "MIT",
|
|
37
37
|
"dependencies": {
|
|
38
|
-
"mailkite": "^0.
|
|
38
|
+
"mailkite": "^0.4.0"
|
|
39
39
|
}
|
|
40
40
|
}
|