@mailmodo/cli 0.0.54-beta.pr56.91 → 0.0.55-beta.pr57.92

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 (125) hide show
  1. package/dist/commands/billing/index.d.ts +1 -11
  2. package/dist/commands/billing/index.js +28 -184
  3. package/dist/commands/contacts/index.d.ts +1 -19
  4. package/dist/commands/contacts/index.js +21 -114
  5. package/dist/commands/deploy/index.js +4 -4
  6. package/dist/commands/deployments/index.d.ts +1 -4
  7. package/dist/commands/deployments/index.js +11 -52
  8. package/dist/commands/domain/index.d.ts +1 -14
  9. package/dist/commands/domain/index.js +19 -100
  10. package/dist/commands/edit/index.d.ts +2 -20
  11. package/dist/commands/edit/index.js +30 -258
  12. package/dist/commands/emails/index.d.ts +1 -2
  13. package/dist/commands/emails/index.js +26 -91
  14. package/dist/commands/init/index.d.ts +1 -3
  15. package/dist/commands/init/index.js +41 -199
  16. package/dist/commands/login/index.d.ts +2 -0
  17. package/dist/commands/login/index.js +32 -76
  18. package/dist/commands/logs/index.d.ts +1 -8
  19. package/dist/commands/logs/index.js +12 -55
  20. package/dist/commands/preview/index.d.ts +1 -19
  21. package/dist/commands/preview/index.js +30 -212
  22. package/dist/commands/sdk/index.d.ts +1 -3
  23. package/dist/commands/sdk/index.js +14 -46
  24. package/dist/commands/settings/index.d.ts +1 -22
  25. package/dist/commands/settings/index.js +34 -246
  26. package/dist/commands/status/index.d.ts +1 -0
  27. package/dist/commands/status/index.js +13 -39
  28. package/dist/lib/commands/billing/checkout-status.d.ts +3 -0
  29. package/dist/lib/commands/billing/checkout-status.js +63 -0
  30. package/dist/lib/commands/billing/format.d.ts +7 -0
  31. package/dist/lib/commands/billing/format.js +63 -0
  32. package/dist/lib/commands/billing/purchase-cap.d.ts +7 -0
  33. package/dist/lib/commands/billing/purchase-cap.js +57 -0
  34. package/dist/lib/commands/billing/types.d.ts +72 -0
  35. package/dist/lib/commands/contacts/actions.d.ts +3 -0
  36. package/dist/lib/commands/contacts/actions.js +49 -0
  37. package/dist/lib/commands/contacts/export-delete.d.ts +9 -0
  38. package/dist/lib/commands/contacts/export-delete.js +51 -0
  39. package/dist/lib/commands/contacts/types.d.ts +35 -0
  40. package/dist/lib/commands/contacts/types.js +1 -0
  41. package/dist/lib/{deploy → commands/deploy}/domain-setup.d.ts +1 -1
  42. package/dist/lib/{deploy → commands/deploy}/domain-setup.js +2 -2
  43. package/dist/lib/{deploy → commands/deploy}/output.d.ts +1 -1
  44. package/dist/lib/{deploy → commands/deploy}/output.js +2 -2
  45. package/dist/lib/{deploy → commands/deploy}/payload.d.ts +1 -1
  46. package/dist/lib/{deploy → commands/deploy}/payload.js +2 -2
  47. package/dist/lib/{deploy → commands/deploy}/sequence-status.js +2 -2
  48. package/dist/lib/{deploy → commands/deploy}/types.d.ts +4 -4
  49. package/dist/lib/commands/deploy/types.js +1 -0
  50. package/dist/lib/commands/deployments/output.d.ts +2 -0
  51. package/dist/lib/commands/deployments/output.js +68 -0
  52. package/dist/lib/commands/deployments/types.d.ts +24 -0
  53. package/dist/lib/commands/deployments/types.js +1 -0
  54. package/dist/lib/commands/domain/setup.d.ts +8 -0
  55. package/dist/lib/commands/domain/setup.js +53 -0
  56. package/dist/lib/commands/domain/types.d.ts +56 -0
  57. package/dist/lib/commands/domain/types.js +1 -0
  58. package/dist/lib/commands/domain/verify.d.ts +5 -0
  59. package/dist/lib/commands/domain/verify.js +50 -0
  60. package/dist/lib/commands/edit/diff.d.ts +7 -0
  61. package/dist/lib/commands/edit/diff.js +65 -0
  62. package/dist/lib/commands/edit/display.d.ts +5 -0
  63. package/dist/lib/commands/edit/display.js +53 -0
  64. package/dist/lib/commands/edit/flow.d.ts +8 -0
  65. package/dist/lib/commands/edit/flow.js +70 -0
  66. package/dist/lib/commands/edit/persist.d.ts +5 -0
  67. package/dist/lib/commands/edit/persist.js +65 -0
  68. package/dist/lib/commands/edit/types.d.ts +37 -0
  69. package/dist/lib/commands/edit/types.js +1 -0
  70. package/dist/lib/commands/emails/editor.d.ts +2 -0
  71. package/dist/lib/commands/emails/editor.js +43 -0
  72. package/dist/lib/commands/emails/output.d.ts +4 -0
  73. package/dist/lib/commands/emails/output.js +36 -0
  74. package/dist/lib/commands/emails/types.d.ts +3 -0
  75. package/dist/lib/commands/emails/types.js +1 -0
  76. package/dist/lib/commands/init/analysis.d.ts +3 -0
  77. package/dist/lib/commands/init/analysis.js +69 -0
  78. package/dist/lib/commands/init/output.d.ts +12 -0
  79. package/dist/lib/commands/init/output.js +39 -0
  80. package/dist/lib/commands/init/payload.d.ts +8 -0
  81. package/dist/lib/commands/init/payload.js +78 -0
  82. package/dist/lib/commands/init/types.d.ts +57 -0
  83. package/dist/lib/commands/init/types.js +1 -0
  84. package/dist/lib/commands/login/output.d.ts +8 -0
  85. package/dist/lib/commands/login/output.js +53 -0
  86. package/dist/lib/commands/login/types.d.ts +19 -0
  87. package/dist/lib/commands/login/types.js +1 -0
  88. package/dist/lib/commands/logs/output.d.ts +2 -0
  89. package/dist/lib/commands/logs/output.js +52 -0
  90. package/dist/lib/commands/logs/types.d.ts +23 -0
  91. package/dist/lib/commands/logs/types.js +1 -0
  92. package/dist/lib/commands/preview/actions.d.ts +11 -0
  93. package/dist/lib/commands/preview/actions.js +43 -0
  94. package/dist/lib/commands/preview/render.d.ts +3 -0
  95. package/dist/lib/commands/preview/render.js +30 -0
  96. package/dist/lib/commands/preview/server.d.ts +8 -0
  97. package/dist/lib/commands/preview/server.js +63 -0
  98. package/dist/lib/commands/preview/types.d.ts +19 -0
  99. package/dist/lib/commands/preview/types.js +1 -0
  100. package/dist/lib/commands/preview/wrapper-html.d.ts +2 -0
  101. package/dist/lib/commands/preview/wrapper-html.js +35 -0
  102. package/dist/lib/commands/sdk/output.d.ts +2 -0
  103. package/dist/lib/commands/sdk/output.js +42 -0
  104. package/dist/lib/commands/sdk/types.d.ts +21 -0
  105. package/dist/lib/commands/sdk/types.js +1 -0
  106. package/dist/lib/commands/settings/actions.d.ts +10 -0
  107. package/dist/lib/commands/settings/actions.js +56 -0
  108. package/dist/lib/commands/settings/display.d.ts +15 -0
  109. package/dist/lib/commands/settings/display.js +69 -0
  110. package/dist/lib/commands/settings/logo-domain.d.ts +3 -0
  111. package/dist/lib/commands/settings/logo-domain.js +47 -0
  112. package/dist/lib/commands/settings/prompt.d.ts +2 -0
  113. package/dist/lib/commands/settings/prompt.js +82 -0
  114. package/dist/lib/commands/settings/types.d.ts +65 -0
  115. package/dist/lib/commands/settings/types.js +1 -0
  116. package/dist/lib/commands/status/output.d.ts +2 -0
  117. package/dist/lib/commands/status/output.js +49 -0
  118. package/dist/lib/commands/status/types.d.ts +28 -0
  119. package/dist/lib/commands/status/types.js +1 -0
  120. package/dist/lib/templates/missing-templates.d.ts +1 -1
  121. package/dist/lib/templates/missing-templates.js +1 -1
  122. package/oclif.manifest.json +48 -48
  123. package/package.json +1 -1
  124. /package/dist/lib/{deploy → commands/billing}/types.js +0 -0
  125. /package/dist/lib/{deploy → commands/deploy}/sequence-status.d.ts +0 -0
@@ -0,0 +1,82 @@
1
+ import { input, select } from '@inquirer/prompts';
2
+ import chalk from 'chalk';
3
+ import { FREE_TIER } from '../../base-command.js';
4
+ import { INFO } from '../../messages.js';
5
+ import { settingKeyToProp } from '../../utils.js';
6
+ import { saveYaml } from '../../yaml-config.js';
7
+ import { applyMonthlyCapChange } from './actions.js';
8
+ import { SETUP_HINTS } from './display.js';
9
+ import { handleDomainChange, handleLogoUpload } from './logo-domain.js';
10
+ async function handleUnknownEditKey(ctx, yamlConfig, editKey) {
11
+ if (editKey === 'logo_file') {
12
+ await handleLogoUpload(ctx, yamlConfig);
13
+ return;
14
+ }
15
+ const editPropKey = settingKeyToProp(editKey);
16
+ const hint = SETUP_HINTS[editPropKey];
17
+ if (hint) {
18
+ ctx.log(`\n ${editKey} is not configured yet. Run ${chalk.cyan(hint)} to set it up.\n`);
19
+ }
20
+ else {
21
+ ctx.log(`\n Unknown setting: ${editKey}\n`);
22
+ }
23
+ }
24
+ async function dispatchEditKey(ctx, yamlConfig, editKey, tier) {
25
+ if (editKey === 'logo_file') {
26
+ await handleLogoUpload(ctx, yamlConfig);
27
+ return;
28
+ }
29
+ if (editKey === 'domain') {
30
+ await handleDomainChange(ctx, yamlConfig);
31
+ return;
32
+ }
33
+ if (editKey === 'monthly_cap') {
34
+ const newValue = await input({ message: 'New monthly cap (blocks):' });
35
+ await applyMonthlyCapChange(ctx, yamlConfig, {
36
+ isJson: false,
37
+ knownTier: tier,
38
+ rawValue: newValue,
39
+ });
40
+ return;
41
+ }
42
+ if (editKey === 'email_style') {
43
+ const style = await select({
44
+ choices: [
45
+ { name: 'plain', value: 'plain' },
46
+ { name: 'branded', value: 'branded' },
47
+ ],
48
+ message: 'Email style:',
49
+ });
50
+ yamlConfig.project.emailStyle = style;
51
+ await saveYaml(yamlConfig);
52
+ await ctx.syncYaml();
53
+ ctx.log(`\n ${chalk.green('✓')} email_style updated to ${chalk.cyan(style)}`);
54
+ ctx.log(` ${INFO.DEPLOY_TO_APPLY}\n`);
55
+ return;
56
+ }
57
+ const editPropKey = settingKeyToProp(editKey);
58
+ const newValue = await input({ message: `New value for ${editKey}:` });
59
+ yamlConfig.project[editPropKey] = newValue;
60
+ await saveYaml(yamlConfig);
61
+ await ctx.syncYaml();
62
+ ctx.log(`\n ${chalk.green('✓')} Updated. ${INFO.DEPLOY_TO_APPLY}\n`);
63
+ }
64
+ export async function promptEditSetting(ctx, yamlConfig, tier) {
65
+ const { project } = yamlConfig;
66
+ const editKey = await input({
67
+ default: 'n',
68
+ message: "Edit a setting? (key or 'n'):",
69
+ });
70
+ if (editKey === 'n')
71
+ return;
72
+ if (editKey === 'monthly_cap' && tier === FREE_TIER) {
73
+ ctx.warnFreeTierCapBlocked(false);
74
+ return;
75
+ }
76
+ const editPropKey = settingKeyToProp(editKey);
77
+ if (!(editPropKey in project)) {
78
+ await handleUnknownEditKey(ctx, yamlConfig, editKey);
79
+ return;
80
+ }
81
+ await dispatchEditKey(ctx, yamlConfig, editKey, tier);
82
+ }
@@ -0,0 +1,65 @@
1
+ import type { ApiResponse } from '../../api-client.js';
2
+ import type { BillingCapUpdateResult } from '../../base-command.js';
3
+ import type { MailmodoYaml } from '../../yaml-config.js';
4
+ export type SettingsYaml = MailmodoYaml;
5
+ export type SettingsCtx = {
6
+ applyBillingCap(opts: {
7
+ cap: number;
8
+ json: boolean;
9
+ }): Promise<BillingCapUpdateResult>;
10
+ collectDomainInputs(yaml: MailmodoYaml, skip: boolean): Promise<{
11
+ address: string;
12
+ domain: string;
13
+ fromEmail: string;
14
+ fromName: string;
15
+ replyTo: string;
16
+ }>;
17
+ ensureAuth(): Promise<void>;
18
+ error(msg: string): never;
19
+ fetchBillingStatus(): Promise<null | {
20
+ cap?: {
21
+ inBlocks: null | number;
22
+ };
23
+ tier?: string;
24
+ }>;
25
+ fetchBillingTier(): Promise<null | string>;
26
+ get<T>(path: string, params?: Record<string, string>): Promise<ApiResponse<T>>;
27
+ log(msg?: string): void;
28
+ onApiError(resp: {
29
+ error?: string;
30
+ status: number;
31
+ }): never;
32
+ postFormData<T>(path: string, formData: FormData): Promise<ApiResponse<T>>;
33
+ registerDomainAndSave(yaml: MailmodoYaml, inputs: {
34
+ address: string;
35
+ domain: string;
36
+ fromEmail: string;
37
+ fromName?: string;
38
+ replyTo?: string;
39
+ }, json: boolean): Promise<{
40
+ dnsGuideUrl?: string;
41
+ dnsRecords: Array<{
42
+ host: string;
43
+ type: string;
44
+ value: string;
45
+ }>;
46
+ }>;
47
+ showDnsRecords(records: Array<{
48
+ host: string;
49
+ type: string;
50
+ value: string;
51
+ }>, guideUrl: string | undefined, json: boolean): void;
52
+ spinner<T>(text: string, json: boolean, work: () => Promise<T>): Promise<T>;
53
+ syncYaml(): Promise<void>;
54
+ warnFreeTierCapBlocked(json: boolean): void;
55
+ };
56
+ export interface LogoUploadResponse {
57
+ url: string;
58
+ }
59
+ export interface DomainStatusResponse {
60
+ bounceRate: number;
61
+ domain: string;
62
+ spamRate: number;
63
+ status: string;
64
+ verified: boolean;
65
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,2 @@
1
+ import type { AnalyticsResponse, StatusCtx } from './types.js';
2
+ export declare function logStatusOutput(ctx: StatusCtx, data: AnalyticsResponse): void;
@@ -0,0 +1,49 @@
1
+ import chalk from 'chalk';
2
+ function logMetricRow(ctx, metric) {
3
+ const id = (metric.emailId || '').padEnd(30);
4
+ const sent = String(metric.sent ?? 0).padEnd(7);
5
+ const openRate = (metric.open || '0%').padEnd(7);
6
+ const clickRate = (metric.click || '0%').padEnd(8);
7
+ const convRate = metric.conv || '0%';
8
+ ctx.log(` ${id}${sent}${openRate}${clickRate}${convRate}`);
9
+ }
10
+ function logEmailsTable(ctx, emails) {
11
+ ctx.log(`\n ${chalk.bold('Last 7 days')}${''.padEnd(20)}Sent Open Click Conv`);
12
+ ctx.log(` ${'─'.repeat(62)}`);
13
+ if (emails?.length) {
14
+ for (const metric of emails) {
15
+ logMetricRow(ctx, metric);
16
+ }
17
+ }
18
+ else {
19
+ ctx.log(` ${chalk.dim('No data yet. Deploy emails first.')}`);
20
+ }
21
+ }
22
+ function logQuota(ctx, quota) {
23
+ if (quota.plan === 'free') {
24
+ ctx.log(` Free tier remaining: ${chalk.cyan(String(quota.freeRemaining))} emails`);
25
+ return;
26
+ }
27
+ if (quota.plan === 'paid') {
28
+ if (quota.currentBlockEmailsRemaining !== null &&
29
+ quota.currentBlockEmailsRemaining !== undefined) {
30
+ const { blockSize } = quota;
31
+ const sent = blockSize - quota.currentBlockEmailsRemaining;
32
+ const remaining = quota.currentBlockEmailsRemaining;
33
+ ctx.log(` Current paid block (${blockSize} emails) : ${chalk.cyan(`${sent} emails sent, ${remaining} emails remaining`)}`);
34
+ }
35
+ ctx.log(` Blocks used: ${quota.blocksUsed}`);
36
+ }
37
+ }
38
+ export function logStatusOutput(ctx, data) {
39
+ const { emails, monthlySent, quota } = data;
40
+ logEmailsTable(ctx, emails);
41
+ ctx.log('');
42
+ if (monthlySent !== null && monthlySent !== undefined) {
43
+ ctx.log(` Emails sent this month: ${chalk.bold(String(monthlySent))}`);
44
+ }
45
+ if (quota) {
46
+ logQuota(ctx, quota);
47
+ }
48
+ ctx.log('');
49
+ }
@@ -0,0 +1,28 @@
1
+ import type { ApiResponse } from '../../api-client.js';
2
+ export interface EmailMetric {
3
+ click: string;
4
+ conv: string;
5
+ emailId: string;
6
+ open: string;
7
+ sent: number;
8
+ }
9
+ export interface AnalyticsResponse {
10
+ emails: EmailMetric[];
11
+ monthlySent: number;
12
+ quota: {
13
+ blockSize: number;
14
+ blocksUsed: number;
15
+ currentBlockEmailsRemaining: number;
16
+ freeRemaining: number;
17
+ plan: string;
18
+ };
19
+ }
20
+ export type StatusCtx = {
21
+ get<T = Record<string, unknown>>(path: string, params?: Record<string, string>): Promise<ApiResponse<T>>;
22
+ log(msg?: string): void;
23
+ onApiError(resp: {
24
+ error?: string;
25
+ status: number;
26
+ }): never;
27
+ spinner<T>(text: string, json: boolean, work: () => Promise<T>): Promise<T>;
28
+ };
@@ -0,0 +1 @@
1
+ export {};
@@ -1,5 +1,5 @@
1
1
  import { type MailmodoYaml } from '../yaml-config.js';
2
- import type { DeployFlags } from '../deploy/types.js';
2
+ import type { DeployFlags } from '../commands/deploy/types.js';
3
3
  import type { RegenCtx } from './types.js';
4
4
  export declare function getMissingTemplateIds(yamlConfig: MailmodoYaml): string[];
5
5
  export declare function handleMissingTemplates(ctx: RegenCtx, yamlConfig: MailmodoYaml, missingIds: string[], flags: DeployFlags): Promise<boolean>;
@@ -5,7 +5,7 @@ import chalk from 'chalk';
5
5
  import { API_ENDPOINTS, TEMPLATES_DIR } from '../constants.js';
6
6
  import { MISSING_TEMPLATES } from '../messages.js';
7
7
  import { getTemplateFilename, saveTemplate, } from '../yaml-config.js';
8
- import { buildRegeneratePayload } from '../deploy/payload.js';
8
+ import { buildRegeneratePayload } from '../commands/deploy/payload.js';
9
9
  export function getMissingTemplateIds(yamlConfig) {
10
10
  return yamlConfig.emails
11
11
  .filter((e) => !existsSync(join(process.cwd(), TEMPLATES_DIR, getTemplateFilename(e.id, e.style, yamlConfig.project?.emailStyle))))
@@ -289,19 +289,13 @@
289
289
  "index.js"
290
290
  ]
291
291
  },
292
- "edit": {
292
+ "emails": {
293
293
  "aliases": [],
294
- "args": {
295
- "id": {
296
- "description": "Email template ID to edit",
297
- "name": "id",
298
- "required": true
299
- }
300
- },
301
- "description": "Edit an email using AI-assisted natural language changes",
294
+ "args": {},
295
+ "description": "List and view configured email sequences",
302
296
  "examples": [
303
- "<%= config.bin %> edit welcome",
304
- "<%= config.bin %> edit welcome --change \"make subject more urgent\" --yes"
297
+ "<%= config.bin %> emails",
298
+ "<%= config.bin %> emails --json"
305
299
  ],
306
300
  "flags": {
307
301
  "json": {
@@ -316,18 +310,11 @@
316
310
  "name": "yes",
317
311
  "allowNo": false,
318
312
  "type": "boolean"
319
- },
320
- "change": {
321
- "description": "Natural language description of the change",
322
- "name": "change",
323
- "hasDynamicHelp": false,
324
- "multiple": false,
325
- "type": "option"
326
313
  }
327
314
  },
328
315
  "hasDynamicHelp": false,
329
316
  "hiddenAliases": [],
330
- "id": "edit",
317
+ "id": "emails",
331
318
  "pluginAlias": "@mailmodo/cli",
332
319
  "pluginName": "@mailmodo/cli",
333
320
  "pluginType": "core",
@@ -337,17 +324,23 @@
337
324
  "relativePath": [
338
325
  "dist",
339
326
  "commands",
340
- "edit",
327
+ "emails",
341
328
  "index.js"
342
329
  ]
343
330
  },
344
- "emails": {
331
+ "edit": {
345
332
  "aliases": [],
346
- "args": {},
347
- "description": "List and view configured email sequences",
333
+ "args": {
334
+ "id": {
335
+ "description": "Email template ID to edit",
336
+ "name": "id",
337
+ "required": true
338
+ }
339
+ },
340
+ "description": "Edit an email using AI-assisted natural language changes",
348
341
  "examples": [
349
- "<%= config.bin %> emails",
350
- "<%= config.bin %> emails --json"
342
+ "<%= config.bin %> edit welcome",
343
+ "<%= config.bin %> edit welcome --change \"make subject more urgent\" --yes"
351
344
  ],
352
345
  "flags": {
353
346
  "json": {
@@ -362,11 +355,18 @@
362
355
  "name": "yes",
363
356
  "allowNo": false,
364
357
  "type": "boolean"
358
+ },
359
+ "change": {
360
+ "description": "Natural language description of the change",
361
+ "name": "change",
362
+ "hasDynamicHelp": false,
363
+ "multiple": false,
364
+ "type": "option"
365
365
  }
366
366
  },
367
367
  "hasDynamicHelp": false,
368
368
  "hiddenAliases": [],
369
- "id": "emails",
369
+ "id": "edit",
370
370
  "pluginAlias": "@mailmodo/cli",
371
371
  "pluginName": "@mailmodo/cli",
372
372
  "pluginType": "core",
@@ -376,7 +376,7 @@
376
376
  "relativePath": [
377
377
  "dist",
378
378
  "commands",
379
- "emails",
379
+ "edit",
380
380
  "index.js"
381
381
  ]
382
382
  },
@@ -631,13 +631,14 @@
631
631
  "index.js"
632
632
  ]
633
633
  },
634
- "status": {
634
+ "sdk": {
635
635
  "aliases": [],
636
636
  "args": {},
637
- "description": "View email performance metrics and quota usage",
637
+ "description": "Show the SDK track() / identify() reference for deployed sequences",
638
638
  "examples": [
639
- "<%= config.bin %> status",
640
- "<%= config.bin %> status --json"
639
+ "<%= config.bin %> sdk",
640
+ "<%= config.bin %> sdk --sequence-id a1b2c3d4",
641
+ "<%= config.bin %> sdk --json"
641
642
  ],
642
643
  "flags": {
643
644
  "json": {
@@ -652,11 +653,18 @@
652
653
  "name": "yes",
653
654
  "allowNo": false,
654
655
  "type": "boolean"
656
+ },
657
+ "sequence-id": {
658
+ "description": "Limit output to a single active sequence by ID (default: all active sequences)",
659
+ "name": "sequence-id",
660
+ "hasDynamicHelp": false,
661
+ "multiple": false,
662
+ "type": "option"
655
663
  }
656
664
  },
657
665
  "hasDynamicHelp": false,
658
666
  "hiddenAliases": [],
659
- "id": "status",
667
+ "id": "sdk",
660
668
  "pluginAlias": "@mailmodo/cli",
661
669
  "pluginName": "@mailmodo/cli",
662
670
  "pluginType": "core",
@@ -666,7 +674,7 @@
666
674
  "relativePath": [
667
675
  "dist",
668
676
  "commands",
669
- "status",
677
+ "sdk",
670
678
  "index.js"
671
679
  ]
672
680
  },
@@ -717,14 +725,13 @@
717
725
  "index.js"
718
726
  ]
719
727
  },
720
- "sdk": {
728
+ "status": {
721
729
  "aliases": [],
722
730
  "args": {},
723
- "description": "Show the SDK track() / identify() reference for deployed sequences",
731
+ "description": "View email performance metrics and quota usage",
724
732
  "examples": [
725
- "<%= config.bin %> sdk",
726
- "<%= config.bin %> sdk --sequence-id a1b2c3d4",
727
- "<%= config.bin %> sdk --json"
733
+ "<%= config.bin %> status",
734
+ "<%= config.bin %> status --json"
728
735
  ],
729
736
  "flags": {
730
737
  "json": {
@@ -739,18 +746,11 @@
739
746
  "name": "yes",
740
747
  "allowNo": false,
741
748
  "type": "boolean"
742
- },
743
- "sequence-id": {
744
- "description": "Limit output to a single active sequence by ID (default: all active sequences)",
745
- "name": "sequence-id",
746
- "hasDynamicHelp": false,
747
- "multiple": false,
748
- "type": "option"
749
749
  }
750
750
  },
751
751
  "hasDynamicHelp": false,
752
752
  "hiddenAliases": [],
753
- "id": "sdk",
753
+ "id": "status",
754
754
  "pluginAlias": "@mailmodo/cli",
755
755
  "pluginName": "@mailmodo/cli",
756
756
  "pluginType": "core",
@@ -760,10 +760,10 @@
760
760
  "relativePath": [
761
761
  "dist",
762
762
  "commands",
763
- "sdk",
763
+ "status",
764
764
  "index.js"
765
765
  ]
766
766
  }
767
767
  },
768
- "version": "0.0.54-beta.pr56.91"
768
+ "version": "0.0.55-beta.pr57.92"
769
769
  }
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@mailmodo/cli",
3
3
  "description": "Email lifecycle automation for the AI-native builder generation.",
4
- "version": "0.0.54-beta.pr56.91",
4
+ "version": "0.0.55-beta.pr57.92",
5
5
  "author": "provishalk",
6
6
  "bin": {
7
7
  "mailmodo": "bin/run.js"
File without changes