@mchx/arc 0.1.1 → 0.2.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.
@@ -1 +1 @@
1
- {"version":3,"file":"contacts.d.ts","sourceRoot":"","sources":["../../src/commands/contacts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAInC,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,OAAO,QAkLvD"}
1
+ {"version":3,"file":"contacts.d.ts","sourceRoot":"","sources":["../../src/commands/contacts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAInC,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,OAAO,QA4QvD"}
@@ -10,6 +10,7 @@ export function registerContactCommands(program) {
10
10
  .option('--stage <stage>', 'Filter by stage')
11
11
  .option('--tag <tag>', 'Filter by tag')
12
12
  .option('--source <source>', 'Filter by source')
13
+ .option('--project <id>', 'Filter by project ID')
13
14
  .option('-q, --query <query>', 'Search by name/email/company')
14
15
  .option('--limit <n>', 'Max results', '20')
15
16
  .option('--json', 'Output as JSON')
@@ -22,6 +23,8 @@ export function registerContactCommands(program) {
22
23
  params.tag = opts.tag;
23
24
  if (opts.source)
24
25
  params.source = opts.source;
26
+ if (opts.project)
27
+ params.project_id = opts.project;
25
28
  if (opts.query)
26
29
  params.q = opts.query;
27
30
  const result = await api('GET', '/contacts', undefined, params);
@@ -33,10 +36,11 @@ export function registerContactCommands(program) {
33
36
  console.log('No contacts found.');
34
37
  return;
35
38
  }
36
- printTable(['Name', 'Email', 'Stage', 'Source', 'Created'], result.data.map((c) => [
39
+ printTable(['Name', 'Email', 'Stage', 'Tags', 'Source', 'Created'], result.data.map((c) => [
37
40
  [c.first_name, c.last_name].filter(Boolean).join(' ') || '—',
38
41
  c.email || '—',
39
42
  c.stage || '—',
43
+ c.tags?.length ? c.tags.join(', ') : '—',
40
44
  c.source || '—',
41
45
  c.created_at ? new Date(c.created_at).toLocaleDateString() : '—',
42
46
  ]));
@@ -117,6 +121,7 @@ export function registerContactCommands(program) {
117
121
  console.log(`Phone: ${c.phone || '—'}`);
118
122
  console.log(`Company: ${c.company || '—'}`);
119
123
  console.log(`Stage: ${c.stage}`);
124
+ console.log(`Status: ${c.status || 'active'}`);
120
125
  console.log(`Source: ${c.source || '—'}`);
121
126
  console.log(`Tags: ${c.tags?.length ? c.tags.join(', ') : '—'}`);
122
127
  if (c.notes)
@@ -193,5 +198,89 @@ export function registerContactCommands(program) {
193
198
  printError(e.message);
194
199
  }
195
200
  });
201
+ contacts
202
+ .command('tag')
203
+ .description('Add tags to a contact')
204
+ .argument('<id>', 'Contact ID')
205
+ .argument('<tags...>', 'Tags to add')
206
+ .option('--json', 'Output as JSON')
207
+ .action(async (id, tags, opts) => {
208
+ try {
209
+ // Get current tags
210
+ const current = await api('GET', `/contacts/${id}`);
211
+ const existingTags = current.data.tags || [];
212
+ const merged = [...new Set([...existingTags, ...tags])];
213
+ const result = await api('PATCH', `/contacts/${id}`, { tags: merged });
214
+ if (opts.json) {
215
+ printJson(result.data);
216
+ }
217
+ else {
218
+ printSuccess(`Tags updated: ${merged.join(', ')}`);
219
+ }
220
+ }
221
+ catch (e) {
222
+ printError(e.message);
223
+ }
224
+ });
225
+ contacts
226
+ .command('untag')
227
+ .description('Remove tags from a contact')
228
+ .argument('<id>', 'Contact ID')
229
+ .argument('<tags...>', 'Tags to remove')
230
+ .option('--json', 'Output as JSON')
231
+ .action(async (id, tags, opts) => {
232
+ try {
233
+ const current = await api('GET', `/contacts/${id}`);
234
+ const existingTags = current.data.tags || [];
235
+ const filtered = existingTags.filter((t) => !tags.includes(t));
236
+ const result = await api('PATCH', `/contacts/${id}`, { tags: filtered });
237
+ if (opts.json) {
238
+ printJson(result.data);
239
+ }
240
+ else {
241
+ printSuccess(`Tags updated: ${filtered.length ? filtered.join(', ') : '(none)'}`);
242
+ }
243
+ }
244
+ catch (e) {
245
+ printError(e.message);
246
+ }
247
+ });
248
+ contacts
249
+ .command('move')
250
+ .description('Move a contact to a different stage')
251
+ .argument('<id>', 'Contact ID')
252
+ .option('--stage <stage>', 'Target stage')
253
+ .action(async (id, opts) => {
254
+ try {
255
+ if (!opts.stage) {
256
+ printError('--stage is required');
257
+ return;
258
+ }
259
+ const result = await api('PATCH', `/contacts/${id}`, { stage: opts.stage });
260
+ printSuccess(`Moved to stage: ${result.data.stage}`);
261
+ }
262
+ catch (e) {
263
+ printError(e.message);
264
+ }
265
+ });
266
+ contacts
267
+ .command('unsubscribe')
268
+ .description('Unsubscribe a contact by email')
269
+ .argument('<email>', 'Contact email')
270
+ .option('--json', 'Output as JSON')
271
+ .action(async (email, opts) => {
272
+ try {
273
+ const result = await api('POST', '/contacts/unsubscribe', { email });
274
+ if (opts.json) {
275
+ printJson(result.data);
276
+ }
277
+ else {
278
+ printSuccess(`${email} has been unsubscribed.`);
279
+ }
280
+ }
281
+ catch (e) {
282
+ printError(e.message);
283
+ }
284
+ });
196
285
  }
197
286
  //# sourceMappingURL=contacts.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"contacts.js","sourceRoot":"","sources":["../../src/commands/contacts.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,GAAG,EAAE,MAAM,WAAW,CAAA;AAC/B,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAE9E,MAAM,UAAU,uBAAuB,CAAC,OAAgB;IACtD,MAAM,QAAQ,GAAG,OAAO;SACrB,OAAO,CAAC,UAAU,CAAC;SACnB,WAAW,CAAC,iBAAiB,CAAC,CAAA;IAEjC,QAAQ;SACL,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CAAC,eAAe,CAAC;SAC5B,MAAM,CAAC,iBAAiB,EAAE,iBAAiB,CAAC;SAC5C,MAAM,CAAC,aAAa,EAAE,eAAe,CAAC;SACtC,MAAM,CAAC,mBAAmB,EAAE,kBAAkB,CAAC;SAC/C,MAAM,CAAC,qBAAqB,EAAE,8BAA8B,CAAC;SAC7D,MAAM,CAAC,aAAa,EAAE,aAAa,EAAE,IAAI,CAAC;SAC1C,MAAM,CAAC,QAAQ,EAAE,gBAAgB,CAAC;SAClC,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;QACrB,IAAI,CAAC;YACH,MAAM,MAAM,GAA2B,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAA;YAC5D,IAAI,IAAI,CAAC,KAAK;gBAAE,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;YACzC,IAAI,IAAI,CAAC,GAAG;gBAAE,MAAM,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAA;YACnC,IAAI,IAAI,CAAC,MAAM;gBAAE,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAA;YAC5C,IAAI,IAAI,CAAC,KAAK;gBAAE,MAAM,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAA;YAErC,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,CAAC,CAAA;YAE/D,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;gBACd,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;gBACtB,OAAM;YACR,CAAC;YAED,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC7C,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAA;gBACjC,OAAM;YACR,CAAC;YAED,UAAU,CACR,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,CAAC,EAC/C,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAgC,EAAE,EAAE,CAAC;gBACpD,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG;gBAC5D,CAAC,CAAC,KAAK,IAAI,GAAG;gBACd,CAAC,CAAC,KAAK,IAAI,GAAG;gBACd,CAAC,CAAC,MAAM,IAAI,GAAG;gBACf,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,kBAAkB,EAAE,CAAC,CAAC,CAAC,GAAG;aACjE,CAAC,CACH,CAAA;YACD,OAAO,CAAC,GAAG,CAAC,KAAK,MAAM,CAAC,KAAK,QAAQ,CAAC,CAAA;QACxC,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,UAAU,CAAE,CAAW,CAAC,OAAO,CAAC,CAAA;QAClC,CAAC;IACH,CAAC,CAAC,CAAA;IAEJ,QAAQ;SACL,OAAO,CAAC,KAAK,CAAC;SACd,WAAW,CAAC,eAAe,CAAC;SAC5B,QAAQ,CAAC,QAAQ,EAAE,+BAA+B,CAAC;SACnD,MAAM,CAAC,iBAAiB,CAAC;SACzB,MAAM,CAAC,qBAAqB,CAAC;SAC7B,MAAM,CAAC,oBAAoB,CAAC;SAC5B,MAAM,CAAC,qBAAqB,CAAC;SAC7B,MAAM,CAAC,iBAAiB,CAAC;SACzB,MAAM,CAAC,iBAAiB,CAAC;SACzB,MAAM,CAAC,mBAAmB,CAAC;SAC3B,MAAM,CAAC,eAAe,EAAE,sBAAsB,CAAC;SAC/C,MAAM,CAAC,UAAU,EAAE,wBAAwB,CAAC;SAC5C,MAAM,CAAC,QAAQ,EAAE,gBAAgB,CAAC;SAClC,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE;QAC9B,IAAI,CAAC;YACH,IAAI,IAA6B,CAAA;YAEjC,IAAI,OAAO,EAAE,CAAC;gBACZ,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;YAC5B,CAAC;iBAAM,CAAC;gBACN,IAAI,GAAG,EAAE,CAAA;gBACT,IAAI,IAAI,CAAC,KAAK;oBAAE,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;gBACvC,IAAI,IAAI,CAAC,SAAS;oBAAE,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,SAAS,CAAA;gBACpD,IAAI,IAAI,CAAC,QAAQ;oBAAE,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAA;gBACjD,IAAI,IAAI,CAAC,OAAO;oBAAE,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAA;gBAC7C,IAAI,IAAI,CAAC,KAAK;oBAAE,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;gBACvC,IAAI,IAAI,CAAC,KAAK;oBAAE,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;gBACvC,IAAI,IAAI,CAAC,MAAM;oBAAE,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAA;gBAC1C,IAAI,IAAI,CAAC,IAAI;oBAAE,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAA;gBAC5E,IAAI,IAAI,CAAC,MAAM;oBAAE,IAAI,CAAC,MAAM,GAAG,IAAI,CAAA;YACrC,CAAC;YAED,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,MAAM,EAAE,WAAW,EAAE,IAAI,CAAC,CAAA;YAEnD,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;gBACd,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;YACxB,CAAC;iBAAM,CAAC;gBACN,YAAY,CAAC,oBAAoB,MAAM,CAAC,IAAI,CAAC,KAAK,IAAI,MAAM,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,CAAA;YACzE,CAAC;QACH,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,UAAU,CAAE,CAAW,CAAC,OAAO,CAAC,CAAA;QAClC,CAAC;IACH,CAAC,CAAC,CAAA;IAEJ,QAAQ;SACL,OAAO,CAAC,KAAK,CAAC;SACd,WAAW,CAAC,qBAAqB,CAAC;SAClC,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC;SAC9B,MAAM,CAAC,QAAQ,EAAE,gBAAgB,CAAC;SAClC,MAAM,CAAC,KAAK,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE;QACzB,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,KAAK,EAAE,aAAa,EAAE,EAAE,CAAC,CAAA;YAClD,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;gBACd,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;YACxB,CAAC;iBAAM,CAAC;gBACN,MAAM,CAAC,GAAG,MAAM,CAAC,IAAI,CAAA;gBACrB,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,EAAE,CAAC,CAAA;gBACpF,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,KAAK,IAAI,GAAG,EAAE,CAAC,CAAA;gBACvC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,KAAK,IAAI,GAAG,EAAE,CAAC,CAAA;gBACvC,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,OAAO,IAAI,GAAG,EAAE,CAAC,CAAA;gBAC3C,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,KAAK,EAAE,CAAC,CAAA;gBAChC,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,MAAM,IAAI,GAAG,EAAE,CAAC,CAAA;gBACzC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAA;gBAChE,IAAI,CAAC,CAAC,KAAK;oBAAE,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,KAAK,EAAE,CAAC,CAAA;gBAC7C,IAAI,CAAC,CAAC,UAAU,EAAE,MAAM,EAAE,CAAC;oBACzB,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAA;oBACjC,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAA0B,EAAE,EAAE;wBAClD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,MAAM,IAAI,IAAI,CAAC,CAAC,CAAC,UAAoB,CAAC,CAAC,cAAc,EAAE,EAAE,CAAC,CAAA;oBACnF,CAAC,CAAC,CAAA;gBACJ,CAAC;YACH,CAAC;QACH,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,UAAU,CAAE,CAAW,CAAC,OAAO,CAAC,CAAA;QAClC,CAAC;IACH,CAAC,CAAC,CAAA;IAEJ,QAAQ;SACL,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,kBAAkB,CAAC;SAC/B,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC;SAC9B,MAAM,CAAC,iBAAiB,CAAC;SACzB,MAAM,CAAC,qBAAqB,CAAC;SAC7B,MAAM,CAAC,oBAAoB,CAAC;SAC5B,MAAM,CAAC,qBAAqB,CAAC;SAC7B,MAAM,CAAC,iBAAiB,CAAC;SACzB,MAAM,CAAC,iBAAiB,CAAC;SACzB,MAAM,CAAC,mBAAmB,CAAC;SAC3B,MAAM,CAAC,eAAe,EAAE,sBAAsB,CAAC;SAC/C,MAAM,CAAC,iBAAiB,CAAC;SACzB,MAAM,CAAC,QAAQ,EAAE,gBAAgB,CAAC;SAClC,MAAM,CAAC,KAAK,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE;QACzB,IAAI,CAAC;YACH,MAAM,IAAI,GAA4B,EAAE,CAAA;YACxC,IAAI,IAAI,CAAC,KAAK;gBAAE,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;YACvC,IAAI,IAAI,CAAC,SAAS;gBAAE,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,SAAS,CAAA;YACpD,IAAI,IAAI,CAAC,QAAQ;gBAAE,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAA;YACjD,IAAI,IAAI,CAAC,OAAO;gBAAE,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAA;YAC7C,IAAI,IAAI,CAAC,KAAK;gBAAE,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;YACvC,IAAI,IAAI,CAAC,KAAK;gBAAE,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;YACvC,IAAI,IAAI,CAAC,MAAM;gBAAE,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAA;YAC1C,IAAI,IAAI,CAAC,IAAI;gBAAE,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAA;YAC5E,IAAI,IAAI,CAAC,KAAK;gBAAE,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;YAEvC,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,OAAO,EAAE,aAAa,EAAE,EAAE,EAAE,IAAI,CAAC,CAAA;YAE1D,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;gBACd,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;YACxB,CAAC;iBAAM,CAAC;gBACN,YAAY,CAAC,oBAAoB,MAAM,CAAC,IAAI,CAAC,KAAK,IAAI,MAAM,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,CAAA;YACzE,CAAC;QACH,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,UAAU,CAAE,CAAW,CAAC,OAAO,CAAC,CAAA;QAClC,CAAC;IACH,CAAC,CAAC,CAAA;IAEJ,QAAQ;SACL,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,kBAAkB,CAAC;SAC/B,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC;SAC9B,MAAM,CAAC,KAAK,EAAE,EAAE,EAAE,EAAE;QACnB,IAAI,CAAC;YACH,MAAM,GAAG,CAAC,QAAQ,EAAE,aAAa,EAAE,EAAE,CAAC,CAAA;YACtC,YAAY,CAAC,kBAAkB,CAAC,CAAA;QAClC,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,UAAU,CAAE,CAAW,CAAC,OAAO,CAAC,CAAA;QAClC,CAAC;IACH,CAAC,CAAC,CAAA;AACN,CAAC"}
1
+ {"version":3,"file":"contacts.js","sourceRoot":"","sources":["../../src/commands/contacts.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { Command } from 'commander';
2
+ export declare function registerInitCommand(program: Command): void;
3
+ //# sourceMappingURL=init.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAkGnC,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,QA+InD"}
@@ -0,0 +1,220 @@
1
+ import { config } from '../config.js';
2
+ import { api } from '../api.js';
3
+ import { printSuccess, printError } from '../output.js';
4
+ import { createInterface } from 'readline';
5
+ import { writeFileSync, existsSync, mkdirSync } from 'fs';
6
+ import { join } from 'path';
7
+ import { homedir } from 'os';
8
+ function prompt(question) {
9
+ const rl = createInterface({ input: process.stdin, output: process.stdout });
10
+ return new Promise((resolve) => {
11
+ rl.question(question, (answer) => {
12
+ rl.close();
13
+ resolve(answer.trim());
14
+ });
15
+ });
16
+ }
17
+ function generateClaudeMd(apiUrl, forms, webhooks) {
18
+ const lines = [];
19
+ lines.push('# Arc CRM Integration');
20
+ lines.push('');
21
+ lines.push('Every project in this directory is connected to [Arc](https://goarc.dev) — an API-first CRM.');
22
+ lines.push('Claude inherits these instructions automatically for any project folder below.');
23
+ lines.push('');
24
+ lines.push('## Connection');
25
+ lines.push('');
26
+ lines.push(`- **API URL:** ${apiUrl}`);
27
+ lines.push(`- **CLI:** \`arc\` (installed globally via \`npm i -g @mchx/arc\`)`);
28
+ lines.push(`- **Auth:** Already configured via \`arc login\``);
29
+ lines.push('');
30
+ lines.push('## Quick Reference');
31
+ lines.push('');
32
+ lines.push('```bash');
33
+ lines.push('# Contacts');
34
+ lines.push('arc contacts list # List all contacts');
35
+ lines.push('arc contacts create --email x # Create a contact');
36
+ lines.push('arc contacts move <id> --stage qualified');
37
+ lines.push('');
38
+ lines.push('# Forms');
39
+ lines.push('arc forms list # List form endpoints');
40
+ lines.push('arc forms create --name "..." # Create a new form');
41
+ lines.push('');
42
+ lines.push('# Webhooks');
43
+ lines.push('arc webhooks list # List inbound webhooks');
44
+ lines.push('');
45
+ lines.push('# Email');
46
+ lines.push('arc email send --to x --subject "..." --html "<p>...</p>"');
47
+ lines.push('');
48
+ lines.push('# Projects');
49
+ lines.push('arc projects list # List all projects');
50
+ lines.push('arc projects create --name "My Project" # Create a new project');
51
+ lines.push('```');
52
+ if (forms.length > 0) {
53
+ lines.push('');
54
+ lines.push('## Active Forms');
55
+ lines.push('');
56
+ for (const f of forms) {
57
+ lines.push(`### ${f.name}`);
58
+ lines.push(`- **Form ID:** \`${f.id}\``);
59
+ lines.push(`- **Submit endpoint:** \`${apiUrl}/api/v1/forms/submit\``);
60
+ lines.push(`- **Assigns stage:** ${f.assign_stage || 'lead'}`);
61
+ if (f.assign_tags?.length) {
62
+ lines.push(`- **Auto-tags:** ${f.assign_tags.join(', ')}`);
63
+ }
64
+ lines.push('');
65
+ lines.push('Submit via POST (JSON or form-encoded):');
66
+ lines.push('```json');
67
+ lines.push(`{ "form_id": "${f.id}", "email": "...", "first_name": "..." }`);
68
+ lines.push('```');
69
+ lines.push('');
70
+ }
71
+ }
72
+ if (webhooks.length > 0) {
73
+ lines.push('');
74
+ lines.push('## Active Webhooks');
75
+ lines.push('');
76
+ for (const w of webhooks) {
77
+ lines.push(`- **${w.name}** — \`${apiUrl}/api/v1/webhooks/inbound/${w.id}\` (action: ${w.target_action})`);
78
+ }
79
+ lines.push('');
80
+ }
81
+ lines.push('## Rules');
82
+ lines.push('');
83
+ lines.push('- Use the `arc` CLI for all CRM operations — do not call the API directly');
84
+ lines.push('- Include `form_id` and `_honey` (empty, hidden) fields in all form HTML');
85
+ lines.push('- Never expose the API key client-side — form submissions use the public endpoint');
86
+ lines.push('- To create additional projects: run `arc projects create --name "Project Name"` or ask Claude to do it');
87
+ lines.push('');
88
+ return lines.join('\n');
89
+ }
90
+ export function registerInitCommand(program) {
91
+ program
92
+ .command('init')
93
+ .description('Initialize Arc projects directory — sets up auth, creates first project, and generates CLAUDE.md')
94
+ .option('--key <key>', 'API key (or enter interactively)')
95
+ .option('--url <url>', 'API URL (default: https://goarc.dev)')
96
+ .action(async (opts) => {
97
+ // Step 1: Get API key
98
+ let apiKey = opts.key || config.get('api_key');
99
+ if (!apiKey) {
100
+ console.log('');
101
+ console.log(' You need an API key to connect Arc.');
102
+ console.log(' Create one at: https://goarc.dev/api-keys');
103
+ console.log('');
104
+ apiKey = await prompt('Paste your API key: ');
105
+ }
106
+ if (!apiKey.startsWith('arc_sk_')) {
107
+ printError('Invalid key format. Arc API keys start with arc_sk_');
108
+ process.exit(1);
109
+ }
110
+ // Step 2: Set config
111
+ const apiUrl = opts.url || (config.get('api_url') === 'http://localhost:3000' ? 'https://goarc.dev' : config.get('api_url'));
112
+ config.set('api_key', apiKey);
113
+ config.set('api_url', apiUrl);
114
+ // Step 3: Validate key
115
+ try {
116
+ const res = await fetch(`${apiUrl}/api/v1/contacts?limit=1`, {
117
+ headers: { Authorization: `Bearer ${apiKey}` },
118
+ });
119
+ if (!res.ok) {
120
+ printError('API key is invalid or expired.');
121
+ config.set('api_key', '');
122
+ process.exit(1);
123
+ }
124
+ }
125
+ catch {
126
+ printError(`Cannot reach ${apiUrl}. Check the URL and try again.`);
127
+ config.set('api_key', '');
128
+ process.exit(1);
129
+ }
130
+ printSuccess('Authenticated.');
131
+ // Step 4: Create projects directory in home
132
+ const projectsDir = join(homedir(), 'arc-projects');
133
+ const claudeMdPath = join(projectsDir, 'CLAUDE.md');
134
+ if (!existsSync(projectsDir)) {
135
+ mkdirSync(projectsDir, { recursive: true });
136
+ printSuccess(`Created ${projectsDir}`);
137
+ }
138
+ // Step 5: Create first project folder
139
+ console.log('');
140
+ const projectName = await prompt('First project folder name: ');
141
+ let firstProjectDir = null;
142
+ if (projectName) {
143
+ const projectSlug = projectName.toLowerCase().replace(/[^a-z0-9]+/g, '-').replace(/^-|-$/g, '');
144
+ firstProjectDir = join(projectsDir, projectSlug);
145
+ if (!existsSync(firstProjectDir)) {
146
+ mkdirSync(firstProjectDir, { recursive: true });
147
+ }
148
+ // Create project record in DB
149
+ try {
150
+ const result = await api('POST', '/projects', { name: projectName, slug: projectSlug });
151
+ printSuccess(`Created project in Arc: ${result.data.name} (${result.data.id})`);
152
+ }
153
+ catch (e) {
154
+ const msg = e.message;
155
+ if (msg.includes('already exists')) {
156
+ console.log(` Project "${projectSlug}" already exists in Arc — skipping.`);
157
+ }
158
+ else {
159
+ printError(`Could not create project record: ${msg}`);
160
+ }
161
+ }
162
+ // Create .env.local with placeholder keys
163
+ const envPath = join(firstProjectDir, '.env.local');
164
+ if (!existsSync(envPath)) {
165
+ writeFileSync(envPath, [
166
+ '# Arc project environment variables',
167
+ '# Fill in the values for the services you use.',
168
+ '# This file is gitignored — never commit secrets.',
169
+ '',
170
+ '# Vercel (set via `vercel env` or Vercel dashboard)',
171
+ '# NEXT_PUBLIC_SITE_URL=',
172
+ '',
173
+ '# Resend (get from https://resend.com/api-keys)',
174
+ '# RESEND_API_KEY=',
175
+ '',
176
+ '# Stripe (get from https://dashboard.stripe.com/apikeys)',
177
+ '# STRIPE_SECRET_KEY=',
178
+ '# NEXT_PUBLIC_STRIPE_PUBLISHABLE_KEY=',
179
+ '',
180
+ '# Supabase (if using your own — Arc provides this by default)',
181
+ '# NEXT_PUBLIC_SUPABASE_URL=',
182
+ '# SUPABASE_SERVICE_ROLE_KEY=',
183
+ '',
184
+ ].join('\n'));
185
+ }
186
+ printSuccess(`Created project: ${firstProjectDir}`);
187
+ }
188
+ // Step 6: Pull workspace context
189
+ let forms = [];
190
+ let webhooks = [];
191
+ try {
192
+ const formsResult = await api('GET', '/forms');
193
+ forms = formsResult.data || [];
194
+ }
195
+ catch { /* no forms yet */ }
196
+ try {
197
+ const webhooksResult = await api('GET', '/webhooks');
198
+ webhooks = webhooksResult.data || [];
199
+ }
200
+ catch { /* no webhooks yet */ }
201
+ // Step 7: Write CLAUDE.md
202
+ const arcBlock = generateClaudeMd(apiUrl, forms, webhooks);
203
+ writeFileSync(claudeMdPath, arcBlock + '\n');
204
+ printSuccess('Created CLAUDE.md');
205
+ console.log('');
206
+ console.log(` Projects dir: ${projectsDir}`);
207
+ console.log(` CLAUDE.md: ${claudeMdPath}`);
208
+ if (firstProjectDir) {
209
+ console.log(` .env.local: ${join(firstProjectDir, '.env.local')}`);
210
+ }
211
+ console.log('');
212
+ console.log('Create project folders under this directory — each one');
213
+ console.log('will inherit Arc instructions automatically via Claude.');
214
+ console.log('');
215
+ console.log(` mkdir ${projectsDir}/my-client-site`);
216
+ console.log(` cd ${projectsDir}/my-client-site`);
217
+ console.log(' claude # Arc context is already loaded');
218
+ });
219
+ }
220
+ //# sourceMappingURL=init.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { Command } from 'commander';
2
+ export declare function registerProjectCommands(program: Command): void;
3
+ //# sourceMappingURL=projects.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"projects.d.ts","sourceRoot":"","sources":["../../src/commands/projects.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAInC,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,OAAO,QAqHvD"}
@@ -0,0 +1,114 @@
1
+ import { api } from '../api.js';
2
+ import { printTable, printJson, printError, printSuccess } from '../output.js';
3
+ export function registerProjectCommands(program) {
4
+ const projects = program
5
+ .command('projects')
6
+ .description('Manage projects');
7
+ projects
8
+ .command('list')
9
+ .description('List all projects')
10
+ .option('--json', 'Output as JSON')
11
+ .action(async (opts) => {
12
+ try {
13
+ const result = await api('GET', '/projects');
14
+ if (opts.json) {
15
+ printJson(result.data);
16
+ return;
17
+ }
18
+ if (!result.data || result.data.length === 0) {
19
+ console.log('No projects yet. Create one with: arc projects create --name "My Project"');
20
+ return;
21
+ }
22
+ printTable(['Name', 'Slug', 'ID', 'Created'], result.data.map((p) => [
23
+ p.name,
24
+ p.slug,
25
+ p.id,
26
+ p.created_at ? new Date(p.created_at).toLocaleDateString() : '—',
27
+ ]));
28
+ }
29
+ catch (e) {
30
+ printError(e.message);
31
+ }
32
+ });
33
+ projects
34
+ .command('create')
35
+ .description('Create a new project')
36
+ .option('--name <name>', 'Project name')
37
+ .option('--slug <slug>', 'Project slug (auto-generated from name if omitted)')
38
+ .option('--json', 'Output as JSON')
39
+ .action(async (opts) => {
40
+ try {
41
+ if (!opts.name) {
42
+ printError('--name is required');
43
+ return;
44
+ }
45
+ const slug = opts.slug || opts.name.toLowerCase().replace(/[^a-z0-9]+/g, '-').replace(/^-|-$/g, '');
46
+ const result = await api('POST', '/projects', { name: opts.name, slug });
47
+ if (opts.json) {
48
+ printJson(result.data);
49
+ }
50
+ else {
51
+ printSuccess(`Project created: ${result.data.name} (${result.data.slug})`);
52
+ console.log(`ID: ${result.data.id}`);
53
+ }
54
+ }
55
+ catch (e) {
56
+ printError(e.message);
57
+ }
58
+ });
59
+ projects
60
+ .command('get')
61
+ .description('Get a project by ID')
62
+ .argument('<id>', 'Project ID')
63
+ .option('--json', 'Output as JSON')
64
+ .action(async (id, opts) => {
65
+ try {
66
+ const result = await api('GET', `/projects/${id}`);
67
+ if (opts.json) {
68
+ printJson(result.data);
69
+ }
70
+ else {
71
+ const p = result.data;
72
+ console.log(`Name: ${p.name}`);
73
+ console.log(`Slug: ${p.slug}`);
74
+ console.log(`ID: ${p.id}`);
75
+ console.log(`Created: ${new Date(p.created_at).toLocaleDateString()}`);
76
+ }
77
+ }
78
+ catch (e) {
79
+ printError(e.message);
80
+ }
81
+ });
82
+ projects
83
+ .command('rename')
84
+ .description('Rename a project')
85
+ .argument('<id>', 'Project ID')
86
+ .option('--name <name>', 'New project name')
87
+ .action(async (id, opts) => {
88
+ try {
89
+ if (!opts.name) {
90
+ printError('--name is required');
91
+ return;
92
+ }
93
+ const result = await api('PATCH', `/projects/${id}`, { name: opts.name });
94
+ printSuccess(`Project renamed to: ${result.data.name}`);
95
+ }
96
+ catch (e) {
97
+ printError(e.message);
98
+ }
99
+ });
100
+ projects
101
+ .command('delete')
102
+ .description('Delete a project')
103
+ .argument('<id>', 'Project ID')
104
+ .action(async (id) => {
105
+ try {
106
+ await api('DELETE', `/projects/${id}`);
107
+ printSuccess('Project deleted.');
108
+ }
109
+ catch (e) {
110
+ printError(e.message);
111
+ }
112
+ });
113
+ }
114
+ //# sourceMappingURL=projects.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"projects.js","sourceRoot":"","sources":["../../src/commands/projects.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -5,6 +5,8 @@ import { registerContactCommands } from './commands/contacts.js';
5
5
  import { registerFormCommands } from './commands/forms.js';
6
6
  import { registerWebhookCommands } from './commands/webhooks.js';
7
7
  import { registerEmailCommands } from './commands/email.js';
8
+ import { registerProjectCommands } from './commands/projects.js';
9
+ import { registerInitCommand } from './commands/init.js';
8
10
  const program = new Command();
9
11
  program
10
12
  .name('arc')
@@ -15,5 +17,7 @@ registerContactCommands(program);
15
17
  registerFormCommands(program);
16
18
  registerWebhookCommands(program);
17
19
  registerEmailCommands(program);
20
+ registerProjectCommands(program);
21
+ registerInitCommand(program);
18
22
  program.parse();
19
23
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACnC,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAA;AACzD,OAAO,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAA;AAChE,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAA;AAC1D,OAAO,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAA;AAChE,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAA;AAE3D,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAA;AAE7B,OAAO;KACJ,IAAI,CAAC,KAAK,CAAC;KACX,WAAW,CAAC,iDAAiD,CAAC;KAC9D,OAAO,CAAC,OAAO,CAAC,CAAA;AAEnB,oBAAoB,CAAC,OAAO,CAAC,CAAA;AAC7B,uBAAuB,CAAC,OAAO,CAAC,CAAA;AAChC,oBAAoB,CAAC,OAAO,CAAC,CAAA;AAC7B,uBAAuB,CAAC,OAAO,CAAC,CAAA;AAChC,qBAAqB,CAAC,OAAO,CAAC,CAAA;AAE9B,OAAO,CAAC,KAAK,EAAE,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACnC,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAA;AACzD,OAAO,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAA;AAChE,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAA;AAC1D,OAAO,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAA;AAChE,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAA;AAC3D,OAAO,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAA;AAChE,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAA;AAExD,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAA;AAE7B,OAAO;KACJ,IAAI,CAAC,KAAK,CAAC;KACX,WAAW,CAAC,iDAAiD,CAAC;KAC9D,OAAO,CAAC,OAAO,CAAC,CAAA;AAEnB,oBAAoB,CAAC,OAAO,CAAC,CAAA;AAC7B,uBAAuB,CAAC,OAAO,CAAC,CAAA;AAChC,oBAAoB,CAAC,OAAO,CAAC,CAAA;AAC7B,uBAAuB,CAAC,OAAO,CAAC,CAAA;AAChC,qBAAqB,CAAC,OAAO,CAAC,CAAA;AAC9B,uBAAuB,CAAC,OAAO,CAAC,CAAA;AAChC,mBAAmB,CAAC,OAAO,CAAC,CAAA;AAE5B,OAAO,CAAC,KAAK,EAAE,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mchx/arc",
3
- "version": "0.1.1",
3
+ "version": "0.2.0",
4
4
  "description": "Arc — API-first marketing ops from the terminal",
5
5
  "type": "module",
6
6
  "bin": {