@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.
Files changed (36) hide show
  1. package/dist/commands/email/index.js +1 -0
  2. package/dist/commands/email/mailbox.js +28 -1
  3. package/dist/commands/email/verify.d.ts +2 -2
  4. package/dist/commands/email/verify.js +85 -16
  5. package/dist/commands/git.d.ts +22 -0
  6. package/dist/commands/git.js +367 -0
  7. package/dist/commands/pixel.js +6 -3
  8. package/dist/commands/queue-validation.test.d.ts +1 -0
  9. package/dist/commands/queue-validation.test.js +38 -0
  10. package/dist/commands/queue.d.ts +14 -0
  11. package/dist/commands/queue.js +215 -0
  12. package/dist/commands/task-validation.test.d.ts +1 -0
  13. package/dist/commands/task-validation.test.js +37 -0
  14. package/dist/commands/task.d.ts +18 -0
  15. package/dist/commands/task.js +288 -0
  16. package/dist/commands/workflow-validation.test.js +27 -0
  17. package/dist/commands/workflow.js +17 -1
  18. package/dist/completion.js +6 -3
  19. package/dist/exposes.test.js +3 -0
  20. package/dist/index.js +21 -0
  21. package/dist/sdk-email-forwarding.test.d.ts +1 -0
  22. package/dist/sdk-email-forwarding.test.js +48 -0
  23. package/dist/sdk-email-verify-bulk.test.d.ts +1 -0
  24. package/dist/sdk-email-verify-bulk.test.js +57 -0
  25. package/dist/sdk-git.test.d.ts +1 -0
  26. package/dist/sdk-git.test.js +115 -0
  27. package/dist/sdk-queue.test.d.ts +1 -0
  28. package/dist/sdk-queue.test.js +86 -0
  29. package/dist/sdk-task.test.d.ts +1 -0
  30. package/dist/sdk-task.test.js +110 -0
  31. package/dist/skills/my-email-api/README.md +45 -0
  32. package/dist/skills/my-email-api/SKILL.md +80 -0
  33. package/dist/skills/my-email-api/claude/.claude-plugin/plugin.json +6 -0
  34. package/dist/skills/my-email-api/openapi/.gitkeep +0 -0
  35. package/dist/skills/my-workflow-api/SKILL.md +10 -1
  36. 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.
@@ -0,0 +1,6 @@
1
+ {
2
+ "name": "my-email-api",
3
+ "description": "Send transactional and bulk email from your own domain. Mailboxes, AI templates, drip campaigns, and warmup.",
4
+ "version": "1.0.0",
5
+ "published": true
6
+ }
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
- Both 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.
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.2.8",
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.2.8"
32
+ "@myapihq/sdk": "^1.3.0"
33
33
  },
34
34
  "devDependencies": {
35
35
  "@types/node": "^25.6.0",