@myapihq/cli 1.2.8 → 1.3.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/email/index.js +1 -0
- package/dist/commands/email/mailbox.js +28 -1
- package/dist/commands/email/verify.d.ts +2 -2
- package/dist/commands/email/verify.js +85 -16
- package/dist/commands/git.d.ts +22 -0
- package/dist/commands/git.js +367 -0
- package/dist/commands/pixel.js +6 -3
- package/dist/commands/queue-validation.test.d.ts +1 -0
- package/dist/commands/queue-validation.test.js +38 -0
- package/dist/commands/queue.d.ts +14 -0
- package/dist/commands/queue.js +215 -0
- package/dist/commands/task-validation.test.d.ts +1 -0
- package/dist/commands/task-validation.test.js +37 -0
- package/dist/commands/task.d.ts +18 -0
- package/dist/commands/task.js +288 -0
- package/dist/commands/workflow-validation.test.js +27 -0
- package/dist/commands/workflow.js +17 -1
- package/dist/completion.js +6 -3
- package/dist/exposes.test.js +3 -0
- package/dist/index.js +21 -0
- package/dist/sdk-email-forwarding.test.d.ts +1 -0
- package/dist/sdk-email-forwarding.test.js +48 -0
- package/dist/sdk-email-verify-bulk.test.d.ts +1 -0
- package/dist/sdk-email-verify-bulk.test.js +57 -0
- package/dist/sdk-git.test.d.ts +1 -0
- package/dist/sdk-git.test.js +115 -0
- package/dist/sdk-queue.test.d.ts +1 -0
- package/dist/sdk-queue.test.js +86 -0
- package/dist/sdk-task.test.d.ts +1 -0
- package/dist/sdk-task.test.js +110 -0
- package/dist/skills/my-email-api/README.md +45 -0
- package/dist/skills/my-email-api/SKILL.md +80 -0
- package/dist/skills/my-email-api/claude/.claude-plugin/plugin.json +6 -0
- package/dist/skills/my-email-api/openapi/.gitkeep +0 -0
- package/dist/skills/my-workflow-api/SKILL.md +10 -1
- package/package.json +2 -2
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: my-email-api
|
|
3
|
+
version: 1.0.0
|
|
4
|
+
description: >
|
|
5
|
+
Send transactional and bulk email from your own domain. Create mailboxes, send/receive messages, generate AI templates, run drip campaigns, and manage warmup.
|
|
6
|
+
triggers: [email, mailbox, send email, transactional email, drip campaign, template, warmup, inbox, outbox, ses, sender reputation]
|
|
7
|
+
checksum: sha256-pending
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# MyEmailAPI
|
|
11
|
+
|
|
12
|
+
Account-scoped email infrastructure tied to your registered domains. Mailboxes belong to domains; sending and receiving work without per-org plumbing. Templates and campaigns are org-scoped.
|
|
13
|
+
|
|
14
|
+
## Capabilities
|
|
15
|
+
<!-- llm:start -->
|
|
16
|
+
Email is built around mailboxes. Each mailbox lives on a registered domain (e.g. `hello@yourdomain.com`) and must be activated for sending before transactional sends or campaigns work — newly-created mailboxes can receive but not send.
|
|
17
|
+
|
|
18
|
+
Templates are AI-generated HTML emails (org-scoped). Campaigns combine a template + a contact list + a per-day rate limit, sending to recipients over time. Warmup is a separate flow that gradually ramps a mailbox's send rate to build inbox reputation before high-volume campaigns.
|
|
19
|
+
|
|
20
|
+
A registered domain via **mydomainapi** is the prerequisite — mailboxes need a domain to live on.
|
|
21
|
+
<!-- llm:end -->
|
|
22
|
+
|
|
23
|
+
## Commands
|
|
24
|
+
<!-- generated:start -->
|
|
25
|
+
| Namespace | Subcommands | Purpose |
|
|
26
|
+
|---|---|---|
|
|
27
|
+
| `email mailbox` | `create`, `list`, `activate-sending` | Create and manage mailboxes |
|
|
28
|
+
| `email message` | `send`, `status`, `sent`, `inbox`, `outbox`, `get` | Transactional send + read |
|
|
29
|
+
| `email warmup` | `start`, `stats`, `pause`, `resume`, `stop` | IP/domain warmup for sending reputation |
|
|
30
|
+
| `email template` | `generate`, `list`, `get`, `preview`, `edit`, `send-test`, `delete` | AI-generated HTML templates |
|
|
31
|
+
| `email campaign` | `create`, `list`, `get`, `update`, `upload-contacts`, `upload-contacts-file`, `start`, `pause`, `resume`, `stats` | Drip campaigns |
|
|
32
|
+
<!-- generated:end -->
|
|
33
|
+
|
|
34
|
+
## Examples
|
|
35
|
+
<!-- llm:start -->
|
|
36
|
+
```bash
|
|
37
|
+
# 1. Create a mailbox + activate sending
|
|
38
|
+
myapi email mailbox create hello@yourdomain.com --display-name "Hello"
|
|
39
|
+
myapi email mailbox activate-sending --address hello@yourdomain.com
|
|
40
|
+
|
|
41
|
+
# 2. Send a transactional email
|
|
42
|
+
myapi email message send \
|
|
43
|
+
--from hello@yourdomain.com --to recipient@example.com \
|
|
44
|
+
--subject "Hi" --body "Test message"
|
|
45
|
+
|
|
46
|
+
# 3. Read inbox / outbox
|
|
47
|
+
myapi email message inbox hello@yourdomain.com
|
|
48
|
+
myapi email message outbox hello@yourdomain.com
|
|
49
|
+
|
|
50
|
+
# 4. Generate + use a template
|
|
51
|
+
myapi email template generate welcome-v1 \
|
|
52
|
+
--prompt "A welcome email with our brand colors and a CTA to /onboarding"
|
|
53
|
+
myapi email template list
|
|
54
|
+
myapi email template preview <id> # public preview URL — share with stakeholders
|
|
55
|
+
myapi email template send-test <id> --to me@yourdomain.com
|
|
56
|
+
myapi email template edit <id> --prompt "Make the CTA larger and red"
|
|
57
|
+
|
|
58
|
+
# 5. Drip campaign
|
|
59
|
+
myapi email campaign create "Welcome series" \
|
|
60
|
+
--template-id <id> --from hello@yourdomain.com --per-day 50
|
|
61
|
+
myapi email campaign upload-contacts <campaign_id> --emails "alice@x.com,bob@y.com"
|
|
62
|
+
# (or for big lists)
|
|
63
|
+
myapi email campaign upload-contacts-file <campaign_id> --file ./contacts.csv
|
|
64
|
+
myapi email campaign start <campaign_id>
|
|
65
|
+
myapi email campaign stats <campaign_id>
|
|
66
|
+
|
|
67
|
+
# 6. Warm up before a big send
|
|
68
|
+
myapi email warmup start --address hello@yourdomain.com
|
|
69
|
+
myapi email warmup stats --address hello@yourdomain.com
|
|
70
|
+
```
|
|
71
|
+
<!-- llm:end -->
|
|
72
|
+
|
|
73
|
+
## Notes
|
|
74
|
+
|
|
75
|
+
- A mailbox is uniquely identified by its address (`username@domain`).
|
|
76
|
+
- Sending is opt-in per mailbox. Newly-created mailboxes can receive but not send until `activate-sending` runs.
|
|
77
|
+
- Templates and campaigns are org-scoped. Set a default org once: `myapi config set-org <id>`.
|
|
78
|
+
- An active or paused campaign blocks `domain unassign` with `DOMAIN_IN_USE`.
|
|
79
|
+
|
|
80
|
+
Run `myapi email --help` or `myapi email <namespace> --help` for full flag reference.
|
|
File without changes
|
|
@@ -21,8 +21,10 @@ Step types today:
|
|
|
21
21
|
|---|---|---|
|
|
22
22
|
| `send_email` | `email` | `from`, `to`, `subject`, plus one of `body` / `html` / `template_id` |
|
|
23
23
|
| `slack_message` | `slack` | `webhook_url`, `text` |
|
|
24
|
+
| `http_request` | `http` | `url` (optional: `method`, `body`, `headers`) |
|
|
25
|
+
| `enqueue_job` | `enqueue` | `queue` (optional: `payload`, `dedup_key`, `delay_seconds`) — hands durable work to **my-queue-api** |
|
|
24
26
|
|
|
25
|
-
|
|
27
|
+
All step types support **payload templating** with `{{ payload.fieldname }}`. The webhook payload is the entire POST body; named fields are accessed dotted. Whitespace inside braces is fine — both `{{ payload.email }}` and `{{payload.email}}` work.
|
|
26
28
|
|
|
27
29
|
Unknown step types are rejected at create time, so typos surface immediately rather than after 3 failed retries during execution.
|
|
28
30
|
|
|
@@ -95,4 +97,11 @@ myapi workflow enable <id>
|
|
|
95
97
|
- Disable to stop firing without losing the configuration.
|
|
96
98
|
- Deleting a workflow purges its run history; the webhook endpoint remains.
|
|
97
99
|
|
|
100
|
+
## See also
|
|
101
|
+
|
|
102
|
+
`workflow` is one of three orchestration slots. Use **workflow** to react to
|
|
103
|
+
inbound webhooks; use **my-queue-api** for durable retried machine work; use
|
|
104
|
+
**my-task-api** for work that needs an agent/human decision. Full comparison:
|
|
105
|
+
`docs/orchestration-decision-guide.md`.
|
|
106
|
+
|
|
98
107
|
Run `myapi workflow --help` for full flag reference.
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@myapihq/cli",
|
|
3
3
|
"license": "Apache-2.0",
|
|
4
|
-
"version": "1.
|
|
4
|
+
"version": "1.3.0",
|
|
5
5
|
"description": "MyAPI command-line interface",
|
|
6
6
|
"type": "module",
|
|
7
7
|
"files": [
|
|
@@ -29,7 +29,7 @@
|
|
|
29
29
|
"lint:changelog": "node ../../scripts/lint-changelog.js"
|
|
30
30
|
},
|
|
31
31
|
"dependencies": {
|
|
32
|
-
"@myapihq/sdk": "^1.
|
|
32
|
+
"@myapihq/sdk": "^1.3.0"
|
|
33
33
|
},
|
|
34
34
|
"devDependencies": {
|
|
35
35
|
"@types/node": "^25.6.0",
|