ethos-cli 0.7.21 → 0.7.22

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.
@@ -1,7 +1,18 @@
1
1
  import { collect, compactObject, jsonRequest, pathId, withClient } from "../lib/command-helpers.js";
2
2
  import { printResult } from "../lib/output.js";
3
3
  import { resolveSelectedRowIds } from "../lib/table-row-selection.js";
4
- import { parseCustomVariableColumns, resolveLinkedinColumn, } from "../lib/table-import.js";
4
+ import { parseCustomVariableColumns, resolveColumnName, resolveLinkedinColumn, } from "../lib/table-import.js";
5
+ const campaignStandardFields = new Set([
6
+ "first_name",
7
+ "last_name",
8
+ "full_name",
9
+ "title",
10
+ "company",
11
+ "company_domain",
12
+ "email",
13
+ "phone",
14
+ "location",
15
+ ]);
5
16
  export function registerCampaigns(program) {
6
17
  const campaigns = program.command("campaigns").alias("campaign").description("Manage Ethos campaigns");
7
18
  const listCommand = campaigns.command("list").description("List campaigns");
@@ -10,6 +21,43 @@ export function registerCampaigns(program) {
10
21
  printResult(config, await client.request("/v1/campaigns"));
11
22
  });
12
23
  });
24
+ const createCommand = campaigns
25
+ .command("create")
26
+ .description("Create a LinkedIn campaign through /v1/campaigns from an existing flow")
27
+ .option("--name <name>", "required campaign name")
28
+ .option("--flow-id <id>", "required LinkedIn flow id sent as flow_id")
29
+ .option("--list-id <id>", "optional contact list id to attach at creation")
30
+ .option("--connected-account-id <id>", "optional LinkedIn connected account id")
31
+ .option("--description <description>", "optional campaign description")
32
+ .option("--status <status>", "optional initial status: draft, scheduled, running, paused, completed, or archived")
33
+ .option("--scheduled-at <iso>", "optional ISO timestamp for scheduled campaign start")
34
+ .option("--metadata-json <json>", "optional JSON object stored on the campaign")
35
+ .addHelpText("after", `
36
+ Notes:
37
+ Creates LinkedIn campaigns only. Do not pass a campaign type; gifting campaigns use 'ethos gifting campaigns create'.
38
+ Required fields: --name and --flow-id.
39
+ `);
40
+ createCommand.action(async () => {
41
+ await withClient(createCommand, async (client, config) => {
42
+ const options = createCommand.opts();
43
+ if (!options.name?.trim())
44
+ throw new Error("--name is required.");
45
+ if (!options.flowId?.trim())
46
+ throw new Error("--flow-id is required.");
47
+ const campaign = await client.request("/v1/campaigns", jsonRequest("POST", compactObject({
48
+ name: options.name.trim(),
49
+ flow_id: options.flowId.trim(),
50
+ campaign_type: "linkedin",
51
+ list_id: optionalText(options.listId),
52
+ connected_account_id: optionalText(options.connectedAccountId),
53
+ description: optionalText(options.description),
54
+ status: optionalText(options.status),
55
+ scheduled_at: optionalText(options.scheduledAt),
56
+ metadata: parseJsonObjectOption(options.metadataJson, "--metadata-json"),
57
+ })));
58
+ printResult(config, createCampaignCommandResult(campaign));
59
+ });
60
+ });
13
61
  const attachListCommand = campaigns
14
62
  .command("attach-list <campaign-id> <list-id>")
15
63
  .description("Attach a contact list to a draft campaign");
@@ -21,32 +69,72 @@ export function registerCampaigns(program) {
21
69
  });
22
70
  const addLeadsCommand = campaigns
23
71
  .command("add-leads <campaign-id>")
24
- .description("Append and optionally enroll leads into an existing campaign")
25
- .requiredOption("--from-table <table-id>", "people table to import from")
26
- .option("--row-id <id>", "specific table row id to import; repeatable", collect, [])
27
- .option("--row-ids <ids>", "comma-separated table row ids to import")
28
- .option("--row-range <start-end>", "inclusive row_index range to import; repeatable", collect, [])
29
- .option("--linkedin-column <column>", "table column containing LinkedIn person profile URLs or identifiers")
30
- .option("--custom-variable <column-or-column=key>", "table column to import as a campaign custom variable; repeatable", collect, []);
72
+ .description("Add campaign leads from exactly one source: --from-table or --contact-id/--contact-ids")
73
+ .option("--from-table <table-id>", "table source mode: import campaign leads from this people table")
74
+ .option("--contact-id <id>", "contact source mode: existing contact id to add; repeatable", collect, [])
75
+ .option("--contact-ids <ids>", "contact source mode: comma-separated existing contact ids to add")
76
+ .option("--row-id <id>", "table mode only: specific table row id to import; repeatable", collect, [])
77
+ .option("--row-ids <ids>", "table mode only: comma-separated table row ids to import")
78
+ .option("--row-range <start-end>", "table mode only: inclusive row_index range to import; repeatable", collect, [])
79
+ .option("--linkedin-column <column>", "table mode only: column containing LinkedIn person profile URLs or identifiers")
80
+ .option("--custom-variable <column-or-column=key>", "table mode only: import a table column as a campaign custom variable; repeatable", collect, [])
81
+ .option("--standard-field <field=column>", "table mode only: map first_name, last_name, full_name, title, company, company_domain, email, phone, or location to a table column; repeatable", collect, [])
82
+ .option("--metadata-json <json>", "optional JSON object attached to the lead import in either source mode")
83
+ .addHelpText("after", `
84
+ Source modes:
85
+ Table source: use --from-table <table-id>. Table-only flags are --row-id, --row-ids, --row-range, --linkedin-column, --custom-variable, and --standard-field.
86
+ Contact source: use --contact-id <id> one or more times and/or --contact-ids <id,id>. Contact source mode sends existing contacts only.
87
+ Pass exactly one source mode. Table-only options are rejected in contact source mode.
88
+
89
+ Examples:
90
+ ethos campaigns add-leads cmp_123 --from-table tbl_123 --linkedin-column "LinkedIn URL" --standard-field first_name="First Name"
91
+ ethos campaigns add-leads cmp_123 --contact-id con_123 --contact-ids con_456,con_789
92
+ `);
31
93
  addLeadsCommand.action(async (campaignId) => {
32
94
  await withClient(addLeadsCommand, async (client, config) => {
33
95
  const options = addLeadsCommand.opts();
34
- if (!options.fromTable)
35
- throw new Error("--from-table is required.");
36
- const selectedRowIds = await resolveSelectedRowIds(client, options.fromTable, options);
37
- const source = await client.request("/v1/lists/table-import-source", jsonRequest("POST", compactObject({ table_id: options.fromTable, selected_row_ids: selectedRowIds })));
38
- const payload = {
39
- source: "table",
40
- table_id: options.fromTable,
41
- selected_row_ids: selectedRowIds,
42
- linkedin_column: resolveLinkedinColumn(options.linkedinColumn, source),
43
- custom_variable_columns: parseCustomVariableColumns(options.customVariable, source.headers),
44
- };
96
+ const metadata = parseJsonObjectOption(options.metadataJson, "--metadata-json");
97
+ const addLeadsSource = parseAddLeadsSource(options);
98
+ let payload;
99
+ if (addLeadsSource.mode === "table") {
100
+ const standardFieldEntries = parseStandardFieldEntries(options.standardField);
101
+ const selectedRowIds = await resolveSelectedRowIds(client, addLeadsSource.tableId, options);
102
+ const source = await client.request("/v1/lists/table-import-source", jsonRequest("POST", compactObject({ table_id: addLeadsSource.tableId, selected_row_ids: selectedRowIds })));
103
+ payload = compactObject({
104
+ source: "table",
105
+ table_id: addLeadsSource.tableId,
106
+ selected_row_ids: selectedRowIds,
107
+ linkedin_column: resolveLinkedinColumn(options.linkedinColumn, source),
108
+ custom_variable_columns: parseCustomVariableColumns(options.customVariable, source.headers),
109
+ standard_field_columns: resolveStandardFieldColumns(standardFieldEntries, source.headers),
110
+ metadata,
111
+ });
112
+ }
113
+ else {
114
+ payload = compactObject({
115
+ source: "contacts",
116
+ contacts: addLeadsSource.contactIds.map((contactId) => ({ contact_id: contactId })),
117
+ metadata,
118
+ });
119
+ }
45
120
  const result = await client.request(`/v1/campaigns/${pathId(campaignId)}/add-leads`, jsonRequest("POST", payload));
46
121
  printResult(config, addLeadsCommandResult(result));
47
122
  });
48
123
  });
49
124
  }
125
+ function createCampaignCommandResult(campaign) {
126
+ return {
127
+ label: `Created campaign ${campaign.name}`,
128
+ data: {
129
+ ...campaign,
130
+ campaign_id: campaign.id,
131
+ flow_id: campaign.flow_id,
132
+ list_id: campaign.list_id,
133
+ connected_account_id: campaign.connected_account_id ?? null,
134
+ status: campaign.status,
135
+ },
136
+ };
137
+ }
50
138
  function attachListCommandResult(campaign) {
51
139
  return {
52
140
  label: `Attached list ${campaign.list_id} to campaign ${campaign.id}`,
@@ -82,4 +170,101 @@ function addLeadsCommandResult(result) {
82
170
  },
83
171
  };
84
172
  }
173
+ function optionalText(value) {
174
+ const trimmed = value?.trim();
175
+ return trimmed || undefined;
176
+ }
177
+ function parseJsonObjectOption(value, option) {
178
+ const trimmed = optionalText(value);
179
+ if (!trimmed)
180
+ return undefined;
181
+ let parsed;
182
+ try {
183
+ parsed = JSON.parse(trimmed);
184
+ }
185
+ catch {
186
+ throw new Error(`${option} must be a valid JSON object.`);
187
+ }
188
+ if (!parsed || typeof parsed !== "object" || Array.isArray(parsed)) {
189
+ throw new Error(`${option} must be a valid JSON object.`);
190
+ }
191
+ return parsed;
192
+ }
193
+ function uniqueNonEmptyValues(values) {
194
+ const result = [];
195
+ const seen = new Set();
196
+ for (const value of values) {
197
+ const trimmed = value.trim();
198
+ if (!trimmed || seen.has(trimmed))
199
+ continue;
200
+ result.push(trimmed);
201
+ seen.add(trimmed);
202
+ }
203
+ return result;
204
+ }
205
+ function parseAddLeadsSource(options) {
206
+ const contactSourceProvided = (options.contactId?.length ?? 0) > 0 || options.contactIds !== undefined;
207
+ const contactIds = uniqueNonEmptyValues([...(options.contactId ?? []), ...(options.contactIds?.split(",") ?? [])]);
208
+ if (options.fromTable && contactSourceProvided) {
209
+ throw new Error("Pass either --from-table or --contact-id/--contact-ids, not both.");
210
+ }
211
+ if (contactSourceProvided) {
212
+ if (!contactIds.length) {
213
+ throw new Error("Pass at least one non-empty contact id with --contact-id or --contact-ids.");
214
+ }
215
+ const tableOnlyOptions = [];
216
+ if ((options.rowId?.length ?? 0) > 0)
217
+ tableOnlyOptions.push("--row-id");
218
+ if (options.rowIds !== undefined)
219
+ tableOnlyOptions.push("--row-ids");
220
+ if ((options.rowRange?.length ?? 0) > 0)
221
+ tableOnlyOptions.push("--row-range");
222
+ if (options.linkedinColumn !== undefined)
223
+ tableOnlyOptions.push("--linkedin-column");
224
+ if ((options.customVariable?.length ?? 0) > 0)
225
+ tableOnlyOptions.push("--custom-variable");
226
+ if ((options.standardField?.length ?? 0) > 0)
227
+ tableOnlyOptions.push("--standard-field");
228
+ if (tableOnlyOptions.length) {
229
+ throw new Error(`${tableOnlyOptions.join(", ")} can only be used with --from-table, not with --contact-id/--contact-ids.`);
230
+ }
231
+ return { mode: "contacts", contactIds };
232
+ }
233
+ const tableId = options.fromTable?.trim();
234
+ if (!tableId) {
235
+ throw new Error("Pass exactly one source mode: --from-table or --contact-id/--contact-ids.");
236
+ }
237
+ return { mode: "table", tableId };
238
+ }
239
+ function parseStandardFieldEntries(values) {
240
+ const entries = [];
241
+ const seen = new Set();
242
+ for (const value of values ?? []) {
243
+ const separatorIndex = value.indexOf("=");
244
+ if (separatorIndex === -1) {
245
+ throw new Error("--standard-field entries must be '<field>=<column>'.");
246
+ }
247
+ const field = value.slice(0, separatorIndex).trim();
248
+ const sourceColumn = value.slice(separatorIndex + 1).trim();
249
+ if (!campaignStandardFields.has(field)) {
250
+ throw new Error(`Unsupported standard field "${field}". Supported fields: ${[...campaignStandardFields].join(", ")}.`);
251
+ }
252
+ if (!sourceColumn) {
253
+ throw new Error("--standard-field entries must be '<field>=<column>'.");
254
+ }
255
+ if (seen.has(field)) {
256
+ throw new Error(`Duplicate standard field "${field}".`);
257
+ }
258
+ seen.add(field);
259
+ entries.push({ field: field, sourceColumn });
260
+ }
261
+ return entries;
262
+ }
263
+ function resolveStandardFieldColumns(entries, headers) {
264
+ const resolvedEntries = entries.map(({ field, sourceColumn }) => [
265
+ field,
266
+ resolveColumnName(sourceColumn, headers, "--standard-field"),
267
+ ]);
268
+ return resolvedEntries.length ? Object.fromEntries(resolvedEntries) : undefined;
269
+ }
85
270
  //# sourceMappingURL=campaigns.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"campaigns.js","sourceRoot":"","sources":["../../src/commands/campaigns.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"campaigns.js","sourceRoot":"","sources":["../../src/commands/campaigns.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AACpG,OAAO,EAAE,WAAW,EAAsB,MAAM,kBAAkB,CAAC;AACnE,OAAO,EAAE,qBAAqB,EAAiC,MAAM,+BAA+B,CAAC;AACrG,OAAO,EACL,0BAA0B,EAC1B,iBAAiB,EACjB,qBAAqB,GAGtB,MAAM,wBAAwB,CAAC;AA0HhC,MAAM,sBAAsB,GAAG,IAAI,GAAG,CAAS;IAC7C,YAAY;IACZ,WAAW;IACX,WAAW;IACX,OAAO;IACP,SAAS;IACT,gBAAgB;IAChB,OAAO;IACP,OAAO;IACP,UAAU;CACX,CAAC,CAAC;AAEH,MAAM,UAAU,iBAAiB,CAAC,OAAgB;IAChD,MAAM,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,WAAW,CAAC,wBAAwB,CAAC,CAAC;IAEvG,MAAM,WAAW,GAAG,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,WAAW,CAAC,gBAAgB,CAAC,CAAC;IAC5E,WAAW,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE;QAC5B,MAAM,UAAU,CAAC,WAAW,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE;YACrD,WAAW,CAAC,MAAM,EAAE,MAAM,MAAM,CAAC,OAAO,CAAa,eAAe,CAAC,CAAC,CAAC;QACzE,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,MAAM,aAAa,GAAG,SAAS;SAC5B,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,wEAAwE,CAAC;SACrF,MAAM,CAAC,eAAe,EAAE,wBAAwB,CAAC;SACjD,MAAM,CAAC,gBAAgB,EAAE,2CAA2C,CAAC;SACrE,MAAM,CAAC,gBAAgB,EAAE,gDAAgD,CAAC;SAC1E,MAAM,CAAC,6BAA6B,EAAE,wCAAwC,CAAC;SAC/E,MAAM,CAAC,6BAA6B,EAAE,+BAA+B,CAAC;SACtE,MAAM,CAAC,mBAAmB,EAAE,oFAAoF,CAAC;SACjH,MAAM,CAAC,sBAAsB,EAAE,qDAAqD,CAAC;SACrF,MAAM,CAAC,wBAAwB,EAAE,6CAA6C,CAAC;SAC/E,WAAW,CACV,OAAO,EACP;;;;CAIL,CACI,CAAC;IACJ,aAAa,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE;QAC9B,MAAM,UAAU,CAAC,aAAa,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE;YACvD,MAAM,OAAO,GAAG,aAAa,CAAC,IAAI,EAAyB,CAAC;YAC5D,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE;gBAAE,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC;YAClE,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,EAAE;gBAAE,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;YAEvE,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,OAAO,CACnC,eAAe,EACf,WAAW,CACT,MAAM,EACN,aAAa,CAAC;gBACZ,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE;gBACzB,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE;gBAC9B,aAAa,EAAE,UAAU;gBACzB,OAAO,EAAE,YAAY,CAAC,OAAO,CAAC,MAAM,CAAC;gBACrC,oBAAoB,EAAE,YAAY,CAAC,OAAO,CAAC,kBAAkB,CAAC;gBAC9D,WAAW,EAAE,YAAY,CAAC,OAAO,CAAC,WAAW,CAAC;gBAC9C,MAAM,EAAE,YAAY,CAAC,OAAO,CAAC,MAAM,CAAC;gBACpC,YAAY,EAAE,YAAY,CAAC,OAAO,CAAC,WAAW,CAAC;gBAC/C,QAAQ,EAAE,qBAAqB,CAAC,OAAO,CAAC,YAAY,EAAE,iBAAiB,CAAC;aACzC,CAAC,CACnC,CACF,CAAC;YACF,WAAW,CAAC,MAAM,EAAE,2BAA2B,CAAC,QAAQ,CAAC,CAAC,CAAC;QAC7D,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,MAAM,iBAAiB,GAAG,SAAS;SAChC,OAAO,CAAC,qCAAqC,CAAC;SAC9C,WAAW,CAAC,2CAA2C,CAAC,CAAC;IAC5D,iBAAiB,CAAC,MAAM,CAAC,KAAK,EAAE,UAAkB,EAAE,MAAc,EAAE,EAAE;QACpE,MAAM,UAAU,CAAC,iBAAiB,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE;YAC3D,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,OAAO,CACnC,iBAAiB,MAAM,CAAC,UAAU,CAAC,EAAE,EACrC,WAAW,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAC1C,CAAC;YACF,WAAW,CAAC,MAAM,EAAE,uBAAuB,CAAC,QAAQ,CAAC,CAAC,CAAC;QACzD,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,MAAM,eAAe,GAAG,SAAS;SAC9B,OAAO,CAAC,yBAAyB,CAAC;SAClC,WAAW,CAAC,wFAAwF,CAAC;SACrG,MAAM,CAAC,yBAAyB,EAAE,iEAAiE,CAAC;SACpG,MAAM,CAAC,mBAAmB,EAAE,6DAA6D,EAAE,OAAO,EAAE,EAAE,CAAC;SACvG,MAAM,CAAC,qBAAqB,EAAE,kEAAkE,CAAC;SACjG,MAAM,CAAC,eAAe,EAAE,8DAA8D,EAAE,OAAO,EAAE,EAAE,CAAC;SACpG,MAAM,CAAC,iBAAiB,EAAE,0DAA0D,CAAC;SACrF,MAAM,CAAC,yBAAyB,EAAE,kEAAkE,EAAE,OAAO,EAAE,EAAE,CAAC;SAClH,MAAM,CAAC,4BAA4B,EAAE,gFAAgF,CAAC;SACtH,MAAM,CACL,0CAA0C,EAC1C,kFAAkF,EAClF,OAAO,EACP,EAAE,CACH;SACA,MAAM,CACL,iCAAiC,EACjC,gJAAgJ,EAChJ,OAAO,EACP,EAAE,CACH;SACA,MAAM,CAAC,wBAAwB,EAAE,wEAAwE,CAAC;SAC1G,WAAW,CACV,OAAO,EACP;;;;;;;;;CASL,CACI,CAAC;IACJ,eAAe,CAAC,MAAM,CAAC,KAAK,EAAE,UAAkB,EAAE,EAAE;QAClD,MAAM,UAAU,CAAC,eAAe,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE;YACzD,MAAM,OAAO,GAAG,eAAe,CAAC,IAAI,EAAmB,CAAC;YACxD,MAAM,QAAQ,GAAG,qBAAqB,CAAC,OAAO,CAAC,YAAY,EAAE,iBAAiB,CAAC,CAAC;YAChF,MAAM,cAAc,GAAG,mBAAmB,CAAC,OAAO,CAAC,CAAC;YAEpD,IAAI,OAAgC,CAAC;YACrC,IAAI,cAAc,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;gBACpC,MAAM,oBAAoB,GAAG,yBAAyB,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;gBAC9E,MAAM,cAAc,GAAG,MAAM,qBAAqB,CAAC,MAAM,EAAE,cAAc,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;gBAC5F,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,OAAO,CACjC,+BAA+B,EAC/B,WAAW,CAAC,MAAM,EAAE,aAAa,CAAC,EAAE,QAAQ,EAAE,cAAc,CAAC,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,CAAC,CAAC,CAC3G,CAAC;gBACF,OAAO,GAAG,aAAa,CAAC;oBACtB,MAAM,EAAE,OAAO;oBACf,QAAQ,EAAE,cAAc,CAAC,OAAO;oBAChC,gBAAgB,EAAE,cAAc;oBAChC,eAAe,EAAE,qBAAqB,CAAC,OAAO,CAAC,cAAc,EAAE,MAAM,CAAC;oBACtE,uBAAuB,EAAE,0BAA0B,CAAC,OAAO,CAAC,cAAc,EAAE,MAAM,CAAC,OAAO,CAAC;oBAC3F,sBAAsB,EAAE,2BAA2B,CAAC,oBAAoB,EAAE,MAAM,CAAC,OAAO,CAAC;oBACzF,QAAQ;iBAC8B,CAAiC,CAAC;YAC5E,CAAC;iBAAM,CAAC;gBACN,OAAO,GAAG,aAAa,CAAC;oBACtB,MAAM,EAAE,UAAU;oBAClB,QAAQ,EAAE,cAAc,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC,CAAC;oBACnF,QAAQ;iBACiC,CAAoC,CAAC;YAClF,CAAC;YAED,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,OAAO,CACjC,iBAAiB,MAAM,CAAC,UAAU,CAAC,YAAY,EAC/C,WAAW,CAAC,MAAM,EAAE,OAAO,CAAC,CAC7B,CAAC;YACF,WAAW,CAAC,MAAM,EAAE,qBAAqB,CAAC,MAAM,CAAC,CAAC,CAAC;QACrD,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,2BAA2B,CAAC,QAAkB;IACrD,OAAO;QACL,KAAK,EAAE,oBAAoB,QAAQ,CAAC,IAAI,EAAE;QAC1C,IAAI,EAAE;YACJ,GAAG,QAAQ;YACX,WAAW,EAAE,QAAQ,CAAC,EAAE;YACxB,OAAO,EAAE,QAAQ,CAAC,OAAO;YACzB,OAAO,EAAE,QAAQ,CAAC,OAAO;YACzB,oBAAoB,EAAE,QAAQ,CAAC,oBAAoB,IAAI,IAAI;YAC3D,MAAM,EAAE,QAAQ,CAAC,MAAM;SACxB;KACF,CAAC;AACJ,CAAC;AAED,SAAS,uBAAuB,CAAC,QAAkB;IACjD,OAAO;QACL,KAAK,EAAE,iBAAiB,QAAQ,CAAC,OAAO,gBAAgB,QAAQ,CAAC,EAAE,EAAE;QACrE,IAAI,EAAE;YACJ,GAAG,QAAQ;YACX,WAAW,EAAE,QAAQ,CAAC,EAAE;YACxB,OAAO,EAAE,QAAQ,CAAC,OAAO;SAC1B;KACF,CAAC;AACJ,CAAC;AAED,SAAS,qBAAqB,CAAC,MAA8B;IAC3D,MAAM,UAAU,GAAG,MAAM,CAAC,WAAW,CAAC;IACtC,OAAO;QACL,KAAK,EACH,2BAA2B,UAAU,CAAC,WAAW,IAAI;YACrD,GAAG,UAAU,CAAC,cAAc,cAAc,UAAU,CAAC,cAAc,aAAa;YAChF,GAAG,UAAU,CAAC,+BAA+B,sCAAsC;QACrF,IAAI,EAAE;YACJ,GAAG,MAAM;YACT,WAAW,EAAE,UAAU,CAAC,WAAW;YACnC,cAAc,EAAE,UAAU,CAAC,EAAE;YAC7B,OAAO,EAAE,UAAU,CAAC,OAAO;YAC3B,eAAe,EAAE,UAAU,CAAC,eAAe;YAC3C,eAAe,EAAE,UAAU,CAAC,eAAe;YAC3C,cAAc,EAAE,UAAU,CAAC,cAAc;YACzC,cAAc,EAAE,UAAU,CAAC,cAAc;YACzC,+BAA+B,EAAE,UAAU,CAAC,+BAA+B;YAC3E,2BAA2B,EAAE,UAAU,CAAC,2BAA2B;YACnE,uBAAuB,EAAE,UAAU,CAAC,uBAAuB;YAC3D,qBAAqB,EAAE,UAAU,CAAC,qBAAqB;YACvD,qBAAqB,EAAE,UAAU,CAAC,qBAAqB;YACvD,YAAY,EAAE,UAAU,CAAC,YAAY;YACrC,iBAAiB,EAAE,UAAU,CAAC,iBAAiB;SAChD;KACF,CAAC;AACJ,CAAC;AAED,SAAS,YAAY,CAAC,KAAyB;IAC7C,MAAM,OAAO,GAAG,KAAK,EAAE,IAAI,EAAE,CAAC;IAC9B,OAAO,OAAO,IAAI,SAAS,CAAC;AAC9B,CAAC;AAED,SAAS,qBAAqB,CAAC,KAAyB,EAAE,MAAc;IACtE,MAAM,OAAO,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;IACpC,IAAI,CAAC,OAAO;QAAE,OAAO,SAAS,CAAC;IAC/B,IAAI,MAAe,CAAC;IACpB,IAAI,CAAC;QACH,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAC/B,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,KAAK,CAAC,GAAG,MAAM,+BAA+B,CAAC,CAAC;IAC5D,CAAC;IACD,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QACnE,MAAM,IAAI,KAAK,CAAC,GAAG,MAAM,+BAA+B,CAAC,CAAC;IAC5D,CAAC;IACD,OAAO,MAAiC,CAAC;AAC3C,CAAC;AAED,SAAS,oBAAoB,CAAC,MAAgB;IAC5C,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;QAC7B,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC;YAAE,SAAS;QAC5C,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACrB,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IACpB,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,mBAAmB,CAAC,OAAwB;IACnD,MAAM,qBAAqB,GAAG,CAAC,OAAO,CAAC,SAAS,EAAE,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,UAAU,KAAK,SAAS,CAAC;IACvG,MAAM,UAAU,GAAG,oBAAoB,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,SAAS,IAAI,EAAE,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC,UAAU,EAAE,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IAEnH,IAAI,OAAO,CAAC,SAAS,IAAI,qBAAqB,EAAE,CAAC;QAC/C,MAAM,IAAI,KAAK,CAAC,mEAAmE,CAAC,CAAC;IACvF,CAAC;IAED,IAAI,qBAAqB,EAAE,CAAC;QAC1B,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;YACvB,MAAM,IAAI,KAAK,CAAC,4EAA4E,CAAC,CAAC;QAChG,CAAC;QAED,MAAM,gBAAgB,GAAa,EAAE,CAAC;QACtC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC;YAAE,gBAAgB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACxE,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS;YAAE,gBAAgB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACrE,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC;YAAE,gBAAgB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAC9E,IAAI,OAAO,CAAC,cAAc,KAAK,SAAS;YAAE,gBAAgB,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;QACrF,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC;YAAE,gBAAgB,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;QAC1F,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC;YAAE,gBAAgB,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;QACxF,IAAI,gBAAgB,CAAC,MAAM,EAAE,CAAC;YAC5B,MAAM,IAAI,KAAK,CAAC,GAAG,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,2EAA2E,CAAC,CAAC;QAC7H,CAAC;QAED,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,UAAU,EAAE,CAAC;IAC1C,CAAC;IAED,MAAM,OAAO,GAAG,OAAO,CAAC,SAAS,EAAE,IAAI,EAAE,CAAC;IAC1C,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CAAC,2EAA2E,CAAC,CAAC;IAC/F,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC;AACpC,CAAC;AAED,SAAS,yBAAyB,CAAC,MAA4B;IAC7D,MAAM,OAAO,GAAiC,EAAE,CAAC;IACjD,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,KAAK,MAAM,KAAK,IAAI,MAAM,IAAI,EAAE,EAAE,CAAC;QACjC,MAAM,cAAc,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAC1C,IAAI,cAAc,KAAK,CAAC,CAAC,EAAE,CAAC;YAC1B,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAC;QAC1E,CAAC;QACD,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,cAAc,CAAC,CAAC,IAAI,EAAE,CAAC;QACpD,MAAM,YAAY,GAAG,KAAK,CAAC,KAAK,CAAC,cAAc,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAC5D,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;YACvC,MAAM,IAAI,KAAK,CAAC,+BAA+B,KAAK,wBAAwB,CAAC,GAAG,sBAAsB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACzH,CAAC;QACD,IAAI,CAAC,YAAY,EAAE,CAAC;YAClB,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAC;QAC1E,CAAC;QACD,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CAAC,6BAA6B,KAAK,IAAI,CAAC,CAAC;QAC1D,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAChB,OAAO,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,KAA8B,EAAE,YAAY,EAAE,CAAC,CAAC;IACxE,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,2BAA2B,CAClC,OAAqC,EACrC,OAAiB;IAEjB,MAAM,eAAe,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,YAAY,EAAE,EAAE,EAAE,CAAC;QAC/D,KAAK;QACL,iBAAiB,CAAC,YAAY,EAAE,OAAO,EAAE,kBAAkB,CAAC;KAC7D,CAAC,CAAC;IACH,OAAO,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,eAAe,CAAmD,CAAC,CAAC,CAAC,SAAS,CAAC;AACpI,CAAC"}
@@ -11,3 +11,4 @@ export type TableImportSource = {
11
11
  };
12
12
  export declare function resolveLinkedinColumn(value: string | undefined, source: TableImportSource): string;
13
13
  export declare function parseCustomVariableColumns(values: string[] | undefined, headers: string[]): ListImportCustomVariableColumnInput[];
14
+ export declare function resolveColumnName(reference: string, headers: string[], option: string): string;
@@ -41,7 +41,7 @@ function parseCustomVariableOption(value) {
41
41
  }
42
42
  return { sourceColumn, variableKey };
43
43
  }
44
- function resolveColumnName(reference, headers, option) {
44
+ export function resolveColumnName(reference, headers, option) {
45
45
  const trimmed = reference.trim();
46
46
  if (!trimmed)
47
47
  throw new Error(`${option} cannot be empty.`);
@@ -1 +1 @@
1
- {"version":3,"file":"table-import.js","sourceRoot":"","sources":["../../src/lib/table-import.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"table-import.js","sourceRoot":"","sources":["../../src/lib/table-import.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ethos-cli",
3
- "version": "0.7.21",
3
+ "version": "0.7.22",
4
4
  "description": "Commander-based CLI for Ethos table operations",
5
5
  "homepage": "https://github.com/cluster-software/ethos#readme",
6
6
  "repository": {
@@ -1,6 +1,9 @@
1
1
  ---
2
2
  name: create-enrichment-agent
3
3
  description: Create an Ethos agent through the CLI - company enrichment, person enrichment, or people sourcing - and wire it to a table. Use when the user wants an agent that researches companies, enriches people/contacts, qualifies rows, scores leads, or adds an agent-powered column to an Ethos table.
4
+ catalog_title: Create enrichment agent
5
+ catalog_category: Enrichment
6
+ catalog_description: Create company, person, or people-sourcing agents and wire them into table columns with structured outputs.
4
7
  ---
5
8
 
6
9
  # create-enrichment-agent
@@ -1,6 +1,9 @@
1
1
  ---
2
2
  name: enrich-contact-info
3
3
  description: Add work emails and mobile phone numbers to a people table with the Ethos contact info enrichment column. Use when the user wants emails, phone numbers, or contact details for people in an Ethos table, or asks to "enrich contacts", "find emails", or "get phone numbers" for sourced people.
4
+ catalog_title: Enrich contact info
5
+ catalog_category: Enrichment
6
+ catalog_description: Add work emails and optional phone numbers to a people table using Ethos contact data enrichment and org-level credit checks.
4
7
  ---
5
8
 
6
9
  # enrich-contact-info
@@ -1,6 +1,9 @@
1
1
  ---
2
2
  name: find-people-at-companies
3
3
  description: Open Ethos in a browser for company CSV upload, return to the active agent client, collect ICP and buying-signal criteria, create a people_sourcing agent, and run it on the uploaded table. Use when the user wants to find contacts, buyers, founders, or role-specific people at companies from a CSV or uploaded company list.
4
+ catalog_title: Find people at companies
5
+ catalog_category: Prospecting
6
+ catalog_description: Upload or reuse a company list, define the target personas and buying signals, then source the right contacts at each account.
4
7
  ---
5
8
 
6
9
  # find-people-at-companies
@@ -1,6 +1,9 @@
1
1
  ---
2
2
  name: find-people
3
3
  description: Find relevant prospects in one shot from a natural-language ICP by using Ethos prospect search to parse company and person criteria, create linked company and people tables in the background, poll for completion, open the resulting people table, and refine or interrupt searches. Use when the user wants to find prospects, buyers, founders, leaders, contacts, or people matching an ICP without starting from an existing company CSV.
4
+ catalog_title: Find people
5
+ catalog_category: Prospecting
6
+ catalog_description: Find relevant prospects from scratch with a natural-language ICP. Ethos creates linked company and people tables in the background.
4
7
  ---
5
8
 
6
9
  # find-people
@@ -1,6 +1,9 @@
1
1
  ---
2
2
  name: launch-gifting-campaign
3
3
  description: Open Ethos in a browser for recipient CSV upload, collect gift preference, search stored gift catalog options, create a structured gifting agent column, and guide creation of a gifting campaign.
4
+ catalog_title: Launch gifting campaign
5
+ catalog_category: Campaigns
6
+ catalog_description: Upload a recipient CSV, choose gift preferences, match catalog items, and prepare a structured gifting campaign.
4
7
  ---
5
8
 
6
9
  # launch-gifting-campaign