@itznexus/itznexus-cli 0.0.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 (71) hide show
  1. package/dist/commands/auth.d.ts +2 -0
  2. package/dist/commands/auth.js +119 -0
  3. package/dist/commands/auth.js.map +1 -0
  4. package/dist/commands/company.d.ts +2 -0
  5. package/dist/commands/company.js +193 -0
  6. package/dist/commands/company.js.map +1 -0
  7. package/dist/commands/contact.d.ts +2 -0
  8. package/dist/commands/contact.js +142 -0
  9. package/dist/commands/contact.js.map +1 -0
  10. package/dist/commands/conversation.d.ts +2 -0
  11. package/dist/commands/conversation.js +217 -0
  12. package/dist/commands/conversation.js.map +1 -0
  13. package/dist/commands/health.d.ts +2 -0
  14. package/dist/commands/health.js +27 -0
  15. package/dist/commands/health.js.map +1 -0
  16. package/dist/commands/interaction.d.ts +2 -0
  17. package/dist/commands/interaction.js +214 -0
  18. package/dist/commands/interaction.js.map +1 -0
  19. package/dist/commands/lead.d.ts +2 -0
  20. package/dist/commands/lead.js +299 -0
  21. package/dist/commands/lead.js.map +1 -0
  22. package/dist/commands/organization.d.ts +2 -0
  23. package/dist/commands/organization.js +211 -0
  24. package/dist/commands/organization.js.map +1 -0
  25. package/dist/commands/person.d.ts +2 -0
  26. package/dist/commands/person.js +268 -0
  27. package/dist/commands/person.js.map +1 -0
  28. package/dist/commands/pipeline.d.ts +2 -0
  29. package/dist/commands/pipeline.js +33 -0
  30. package/dist/commands/pipeline.js.map +1 -0
  31. package/dist/commands/project.d.ts +2 -0
  32. package/dist/commands/project.js +180 -0
  33. package/dist/commands/project.js.map +1 -0
  34. package/dist/commands/schema.d.ts +23 -0
  35. package/dist/commands/schema.js +48 -0
  36. package/dist/commands/schema.js.map +1 -0
  37. package/dist/commands/sprint.d.ts +2 -0
  38. package/dist/commands/sprint.js +190 -0
  39. package/dist/commands/sprint.js.map +1 -0
  40. package/dist/commands/task.d.ts +2 -0
  41. package/dist/commands/task.js +216 -0
  42. package/dist/commands/task.js.map +1 -0
  43. package/dist/commands/user.d.ts +2 -0
  44. package/dist/commands/user.js +58 -0
  45. package/dist/commands/user.js.map +1 -0
  46. package/dist/index.d.ts +2 -0
  47. package/dist/index.js +40 -0
  48. package/dist/index.js.map +1 -0
  49. package/dist/lib/api.d.ts +10 -0
  50. package/dist/lib/api.js +36 -0
  51. package/dist/lib/api.js.map +1 -0
  52. package/dist/lib/auto-update.d.ts +6 -0
  53. package/dist/lib/auto-update.js +96 -0
  54. package/dist/lib/auto-update.js.map +1 -0
  55. package/dist/lib/config.d.ts +7 -0
  56. package/dist/lib/config.js +28 -0
  57. package/dist/lib/config.js.map +1 -0
  58. package/dist/lib/format.d.ts +23 -0
  59. package/dist/lib/format.js +59 -0
  60. package/dist/lib/format.js.map +1 -0
  61. package/dist/skills/claude-code/itznexus-auth.md +61 -0
  62. package/dist/skills/claude-code/itznexus-company.md +143 -0
  63. package/dist/skills/claude-code/itznexus-contact.md +109 -0
  64. package/dist/skills/claude-code/itznexus-conversation.md +146 -0
  65. package/dist/skills/claude-code/itznexus-lead.md +146 -0
  66. package/dist/skills/claude-code/itznexus-project.md +115 -0
  67. package/dist/skills/claude-code/itznexus-sprint.md +126 -0
  68. package/dist/skills/claude-code/itznexus-task.md +159 -0
  69. package/dist/skills/claude-code/itznexus-user.md +66 -0
  70. package/dist/skills/openclaw-tools.json +1404 -0
  71. package/package.json +50 -0
@@ -0,0 +1,217 @@
1
+ import { Command } from "commander";
2
+ import chalk from "chalk";
3
+ import { api } from "../lib/api.js";
4
+ import { printList, printDetail, handleError } from "../lib/format.js";
5
+ // --- list ---
6
+ const listCommand = new Command("list")
7
+ .description("List conversations")
8
+ .option("--contact <contactId>", "Filter by contact")
9
+ .option("--lead <leadId>", "Filter by lead")
10
+ .option("--project <projectId>", "Filter by project")
11
+ .option("--channel <channel>", "Filter by channel (upwork, whatsapp, email, slack)")
12
+ .option("--status <status>", "Filter by status (active, archived)")
13
+ .option("--search <query>", "Search by subject")
14
+ .option("--json", "Output as JSON")
15
+ .action(async (opts) => {
16
+ try {
17
+ const params = new URLSearchParams();
18
+ if (opts.contact)
19
+ params.set("contactId", opts.contact);
20
+ if (opts.lead)
21
+ params.set("leadId", opts.lead);
22
+ if (opts.project)
23
+ params.set("projectId", opts.project);
24
+ if (opts.channel)
25
+ params.set("channel", opts.channel);
26
+ if (opts.status)
27
+ params.set("status", opts.status);
28
+ if (opts.search)
29
+ params.set("search", opts.search);
30
+ const qs = params.toString();
31
+ const data = await api.get(`/conversations${qs ? `?${qs}` : ""}`);
32
+ printList(data, [
33
+ { key: "contactName", label: "Contact", width: 20 },
34
+ { key: "channel", label: "Channel", width: 12 },
35
+ { key: "subject", label: "Subject", width: 25 },
36
+ { key: "messageCount", label: "Msgs", width: 6 },
37
+ { key: "status", label: "Status", width: 10 },
38
+ { key: "updatedAt", label: "Last Activity", width: 24 },
39
+ ], opts);
40
+ }
41
+ catch (err) {
42
+ handleError(err);
43
+ }
44
+ });
45
+ // --- get ---
46
+ const getCommand = new Command("get")
47
+ .description("Get conversation details with messages")
48
+ .argument("<id>", "Conversation ID")
49
+ .option("--json", "Output as JSON")
50
+ .action(async (id, opts) => {
51
+ try {
52
+ const data = await api.get(`/conversations/${id}`);
53
+ if (opts.json) {
54
+ console.log(JSON.stringify(data, null, 2));
55
+ return;
56
+ }
57
+ console.log(chalk.bold(data.contactName), chalk.dim(`[${data.channel}]`));
58
+ if (data.subject) {
59
+ console.log(chalk.dim(data.subject));
60
+ }
61
+ printDetail(data, [
62
+ { key: "id", label: "ID" },
63
+ { key: "status", label: "Status" },
64
+ { key: "createdAt", label: "Created" },
65
+ { key: "updatedAt", label: "Updated" },
66
+ ], opts);
67
+ if (data.messages.length > 0) {
68
+ console.log(chalk.dim(`\n Messages (${data.messages.length}):`));
69
+ for (const msg of data.messages) {
70
+ const arrow = msg.direction === "outbound"
71
+ ? chalk.blue("→")
72
+ : chalk.yellow("←");
73
+ const sender = msg.direction === "outbound"
74
+ ? (msg.authorName ?? "You")
75
+ : (msg.senderName ?? "Unknown");
76
+ const date = new Date(msg.createdAt).toLocaleString();
77
+ console.log(`\n ${arrow} ${chalk.bold(sender)} ${chalk.dim(date)}`);
78
+ console.log(` ${msg.body}`);
79
+ if (msg.attachments.length > 0) {
80
+ for (const att of msg.attachments) {
81
+ console.log(chalk.dim(` 📎 ${att.fileName} (${formatSize(att.fileSize)})`));
82
+ }
83
+ }
84
+ }
85
+ }
86
+ }
87
+ catch (err) {
88
+ handleError(err);
89
+ }
90
+ });
91
+ // --- create ---
92
+ const createCommand = new Command("create")
93
+ .description("Create a new conversation")
94
+ .requiredOption("--contact <contactId>", "Contact ID")
95
+ .requiredOption("--channel <channel>", "Channel (upwork, whatsapp, email, slack)")
96
+ .option("--subject <text>", "Subject")
97
+ .option("--lead <leadId>", "Lead ID")
98
+ .option("--project <projectId>", "Project ID")
99
+ .option("--json", "Output as JSON")
100
+ .action(async (opts) => {
101
+ try {
102
+ const data = await api.post("/conversations", {
103
+ contactId: opts.contact,
104
+ channel: opts.channel,
105
+ subject: opts.subject,
106
+ leadId: opts.lead,
107
+ projectId: opts.project,
108
+ });
109
+ if (opts.json) {
110
+ console.log(JSON.stringify(data, null, 2));
111
+ }
112
+ else {
113
+ console.log(chalk.green("✓"), `Conversation created (${data.id})`);
114
+ }
115
+ }
116
+ catch (err) {
117
+ handleError(err);
118
+ }
119
+ });
120
+ // --- update ---
121
+ const updateCommand = new Command("update")
122
+ .description("Update a conversation")
123
+ .argument("<id>", "Conversation ID")
124
+ .option("--subject <text>", "Subject")
125
+ .option("--status <status>", "Status (active, archived)")
126
+ .option("--channel <channel>", "Channel")
127
+ .option("--lead <leadId>", "Lead ID")
128
+ .option("--project <projectId>", "Project ID")
129
+ .option("--json", "Output as JSON")
130
+ .action(async (id, opts) => {
131
+ try {
132
+ const payload = {};
133
+ if (opts.subject !== undefined)
134
+ payload.subject = opts.subject;
135
+ if (opts.status !== undefined)
136
+ payload.status = opts.status;
137
+ if (opts.channel !== undefined)
138
+ payload.channel = opts.channel;
139
+ if (opts.lead !== undefined)
140
+ payload.leadId = opts.lead;
141
+ if (opts.project !== undefined)
142
+ payload.projectId = opts.project;
143
+ const data = await api.post(`/conversations/${id}`, payload);
144
+ if (opts.json) {
145
+ console.log(JSON.stringify(data, null, 2));
146
+ }
147
+ else {
148
+ console.log(chalk.green("✓"), "Conversation updated");
149
+ }
150
+ }
151
+ catch (err) {
152
+ handleError(err);
153
+ }
154
+ });
155
+ // --- message ---
156
+ const messageCommand = new Command("message")
157
+ .description("Add a message to a conversation")
158
+ .argument("<conversationId>", "Conversation ID")
159
+ .requiredOption("--body <text>", "Message body")
160
+ .option("--direction <dir>", "Direction (inbound, outbound)", "outbound")
161
+ .option("--sender <name>", "Sender name (for inbound)")
162
+ .option("--json", "Output as JSON")
163
+ .action(async (conversationId, opts) => {
164
+ try {
165
+ const data = await api.post(`/conversations/${conversationId}/messages`, {
166
+ body: opts.body,
167
+ direction: opts.direction,
168
+ senderName: opts.sender,
169
+ });
170
+ if (opts.json) {
171
+ console.log(JSON.stringify(data, null, 2));
172
+ }
173
+ else {
174
+ console.log(chalk.green("✓"), "Message added");
175
+ }
176
+ }
177
+ catch (err) {
178
+ handleError(err);
179
+ }
180
+ });
181
+ // --- delete ---
182
+ const deleteCommand = new Command("delete")
183
+ .description("Delete a conversation")
184
+ .argument("<id>", "Conversation ID")
185
+ .option("--json", "Output as JSON")
186
+ .action(async (id, opts) => {
187
+ try {
188
+ await api.delete(`/conversations/${id}`);
189
+ if (opts.json) {
190
+ console.log(JSON.stringify({ deleted: true, id }));
191
+ }
192
+ else {
193
+ console.log(chalk.green("✓"), "Conversation deleted");
194
+ }
195
+ }
196
+ catch (err) {
197
+ handleError(err);
198
+ }
199
+ });
200
+ // --- parent ---
201
+ export const conversationCommand = new Command("conversation")
202
+ .description("Manage conversations")
203
+ .addCommand(listCommand)
204
+ .addCommand(getCommand)
205
+ .addCommand(createCommand)
206
+ .addCommand(updateCommand)
207
+ .addCommand(messageCommand)
208
+ .addCommand(deleteCommand);
209
+ // --- helpers ---
210
+ function formatSize(bytes) {
211
+ if (bytes < 1024)
212
+ return `${bytes} B`;
213
+ if (bytes < 1024 * 1024)
214
+ return `${(bytes / 1024).toFixed(1)} KB`;
215
+ return `${(bytes / (1024 * 1024)).toFixed(1)} MB`;
216
+ }
217
+ //# sourceMappingURL=conversation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"conversation.js","sourceRoot":"","sources":["../../src/commands/conversation.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import { Command } from "commander";
2
+ export declare const healthCommand: Command;
@@ -0,0 +1,27 @@
1
+ import { Command } from "commander";
2
+ import chalk from "chalk";
3
+ import { api, ApiError } from "../lib/api.js";
4
+ export const healthCommand = new Command("health")
5
+ .description("Check API health")
6
+ .option("--json", "Output as JSON")
7
+ .action(async (opts) => {
8
+ try {
9
+ const data = await api.get("/health");
10
+ if (opts.json) {
11
+ console.log(JSON.stringify(data, null, 2));
12
+ }
13
+ else {
14
+ console.log(chalk.green("✓"), `API is ${chalk.bold(data.status)} —`, chalk.dim(data.timestamp));
15
+ }
16
+ }
17
+ catch (err) {
18
+ if (err instanceof ApiError) {
19
+ console.error(chalk.red("✗"), `API error: ${err.message}`);
20
+ }
21
+ else {
22
+ console.error(chalk.red("✗"), "Cannot reach API. Is it running?");
23
+ }
24
+ process.exit(1);
25
+ }
26
+ });
27
+ //# sourceMappingURL=health.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"health.js","sourceRoot":"","sources":["../../src/commands/health.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAO9C,MAAM,CAAC,MAAM,aAAa,GAAG,IAAI,OAAO,CAAC,QAAQ,CAAC;KAC/C,WAAW,CAAC,kBAAkB,CAAC;KAC/B,MAAM,CAAC,QAAQ,EAAE,gBAAgB,CAAC;KAClC,MAAM,CAAC,KAAK,EAAE,IAAwB,EAAE,EAAE;IACzC,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,GAAG,CAAiB,SAAS,CAAC,CAAC;QAEtD,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACd,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QAC7C,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,EAChB,UAAU,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EACrC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAC1B,CAAC;QACJ,CAAC;IACH,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAI,GAAG,YAAY,QAAQ,EAAE,CAAC;YAC5B,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,cAAc,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;QAC7D,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,kCAAkC,CAAC,CAAC;QACpE,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ import { Command } from "commander";
2
+ export declare const interactionCommand: Command;
@@ -0,0 +1,214 @@
1
+ import { Command } from "commander";
2
+ import chalk from "chalk";
3
+ import { api } from "../lib/api.js";
4
+ import { printList, printDetail, handleError } from "../lib/format.js";
5
+ // --- list ---
6
+ const listCommand = new Command("list")
7
+ .description("List interactions")
8
+ .option("--person <personId>", "Filter by person")
9
+ .option("--lead <leadId>", "Filter by lead")
10
+ .option("--project <projectId>", "Filter by project")
11
+ .option("--type <type>", "Filter by type (note, message, call, meeting, email)")
12
+ .option("--channel <channel>", "Filter by channel (upwork, whatsapp, email, slack, phone)")
13
+ .option("--search <query>", "Search by subject or body")
14
+ .option("--json", "Output as JSON")
15
+ .action(async (opts) => {
16
+ try {
17
+ const params = new URLSearchParams();
18
+ if (opts.person)
19
+ params.set("personId", opts.person);
20
+ if (opts.lead)
21
+ params.set("leadId", opts.lead);
22
+ if (opts.project)
23
+ params.set("projectId", opts.project);
24
+ if (opts.type)
25
+ params.set("type", opts.type);
26
+ if (opts.channel)
27
+ params.set("channel", opts.channel);
28
+ if (opts.search)
29
+ params.set("search", opts.search);
30
+ const qs = params.toString();
31
+ const data = await api.get(`/interactions${qs ? `?${qs}` : ""}`);
32
+ printList(data, [
33
+ { key: "personName", label: "Person", width: 20 },
34
+ { key: "type", label: "Type", width: 10 },
35
+ { key: "direction", label: "Dir", width: 10 },
36
+ { key: "channel", label: "Channel", width: 10 },
37
+ { key: "subject", label: "Subject", width: 25 },
38
+ { key: "happenedAt", label: "Date", width: 24 },
39
+ ], opts);
40
+ }
41
+ catch (err) {
42
+ handleError(err);
43
+ }
44
+ });
45
+ // --- get ---
46
+ const getCommand = new Command("get")
47
+ .description("Get interaction details")
48
+ .argument("<id>", "Interaction ID")
49
+ .option("--json", "Output as JSON")
50
+ .action(async (id, opts) => {
51
+ try {
52
+ const data = await api.get(`/interactions/${id}`);
53
+ if (opts.json) {
54
+ console.log(JSON.stringify(data, null, 2));
55
+ return;
56
+ }
57
+ const title = data.personName ?? data.subject ?? data.type;
58
+ console.log(chalk.bold(title), chalk.dim(`[${data.type}]`), data.direction ? chalk.dim(data.direction) : "");
59
+ if (data.channel) {
60
+ console.log(chalk.dim(`Channel: ${data.channel}`));
61
+ }
62
+ printDetail(data, [
63
+ { key: "id", label: "ID" },
64
+ { key: "type", label: "Type" },
65
+ { key: "direction", label: "Direction" },
66
+ { key: "channel", label: "Channel" },
67
+ { key: "personName", label: "Person" },
68
+ { key: "subject", label: "Subject" },
69
+ { key: "happenedAt", label: "Date" },
70
+ { key: "createdAt", label: "Created" },
71
+ ], opts);
72
+ console.log(chalk.dim("\n Details:"));
73
+ console.log(` ${data.body}`);
74
+ if (data.files.length > 0) {
75
+ console.log(chalk.dim(`\n Files (${data.files.length}):`));
76
+ for (const file of data.files) {
77
+ console.log(chalk.dim(` \u{1F4CE} ${file.name} (${formatSize(file.size)})`));
78
+ }
79
+ }
80
+ }
81
+ catch (err) {
82
+ handleError(err);
83
+ }
84
+ });
85
+ // --- create ---
86
+ const createCommand = new Command("create")
87
+ .description("Log a new interaction")
88
+ .requiredOption("--type <type>", "Type (note, message, call, meeting, email)")
89
+ .requiredOption("--body <text>", "Interaction details")
90
+ .option("--direction <dir>", "Direction (inbound, outbound)")
91
+ .option("--channel <channel>", "Channel (upwork, whatsapp, email, slack, phone)")
92
+ .option("--person <personId>", "Person ID")
93
+ .option("--lead <leadId>", "Lead ID")
94
+ .option("--project <projectId>", "Project ID")
95
+ .option("--subject <text>", "Subject")
96
+ .option("--happened-at <iso>", "When it happened (ISO date, defaults to now)")
97
+ .option("--file-ids <ids>", "File IDs (comma-separated)")
98
+ .option("--json", "Output as JSON")
99
+ .action(async (opts) => {
100
+ try {
101
+ const payload = {
102
+ type: opts.type,
103
+ body: opts.body,
104
+ happenedAt: opts.happenedAt ?? new Date().toISOString(),
105
+ };
106
+ if (opts.direction)
107
+ payload.direction = opts.direction;
108
+ if (opts.channel)
109
+ payload.channel = opts.channel;
110
+ if (opts.person)
111
+ payload.personId = opts.person;
112
+ if (opts.lead)
113
+ payload.leadId = opts.lead;
114
+ if (opts.project)
115
+ payload.projectId = opts.project;
116
+ if (opts.subject)
117
+ payload.subject = opts.subject;
118
+ if (opts.fileIds)
119
+ payload.fileIds = opts.fileIds.split(",").map((id) => id.trim());
120
+ const data = await api.post("/interactions", payload);
121
+ if (opts.json) {
122
+ console.log(JSON.stringify(data, null, 2));
123
+ }
124
+ else {
125
+ console.log(chalk.green("\u2713"), `Interaction logged (${data.id})`);
126
+ }
127
+ }
128
+ catch (err) {
129
+ handleError(err);
130
+ }
131
+ });
132
+ // --- update ---
133
+ const updateCommand = new Command("update")
134
+ .description("Update an interaction")
135
+ .argument("<id>", "Interaction ID")
136
+ .option("--type <type>", "Type")
137
+ .option("--direction <dir>", "Direction")
138
+ .option("--channel <channel>", "Channel")
139
+ .option("--person <personId>", "Person ID")
140
+ .option("--lead <leadId>", "Lead ID")
141
+ .option("--project <projectId>", "Project ID")
142
+ .option("--subject <text>", "Subject")
143
+ .option("--body <text>", "Details")
144
+ .option("--happened-at <iso>", "When it happened (ISO date)")
145
+ .option("--json", "Output as JSON")
146
+ .action(async (id, opts) => {
147
+ try {
148
+ const payload = {};
149
+ if (opts.type !== undefined)
150
+ payload.type = opts.type;
151
+ if (opts.direction !== undefined)
152
+ payload.direction = opts.direction;
153
+ if (opts.channel !== undefined)
154
+ payload.channel = opts.channel;
155
+ if (opts.person !== undefined)
156
+ payload.personId = opts.person;
157
+ if (opts.lead !== undefined)
158
+ payload.leadId = opts.lead;
159
+ if (opts.project !== undefined)
160
+ payload.projectId = opts.project;
161
+ if (opts.subject !== undefined)
162
+ payload.subject = opts.subject;
163
+ if (opts.body !== undefined)
164
+ payload.body = opts.body;
165
+ if (opts.happenedAt !== undefined)
166
+ payload.happenedAt = opts.happenedAt;
167
+ const data = await api.post(`/interactions/${id}`, payload);
168
+ if (opts.json) {
169
+ console.log(JSON.stringify(data, null, 2));
170
+ }
171
+ else {
172
+ console.log(chalk.green("\u2713"), "Interaction updated");
173
+ }
174
+ }
175
+ catch (err) {
176
+ handleError(err);
177
+ }
178
+ });
179
+ // --- delete ---
180
+ const deleteCommand = new Command("delete")
181
+ .description("Delete an interaction")
182
+ .argument("<id>", "Interaction ID")
183
+ .option("--json", "Output as JSON")
184
+ .action(async (id, opts) => {
185
+ try {
186
+ await api.delete(`/interactions/${id}`);
187
+ if (opts.json) {
188
+ console.log(JSON.stringify({ deleted: true, id }));
189
+ }
190
+ else {
191
+ console.log(chalk.green("\u2713"), "Interaction deleted");
192
+ }
193
+ }
194
+ catch (err) {
195
+ handleError(err);
196
+ }
197
+ });
198
+ // --- parent ---
199
+ export const interactionCommand = new Command("interaction")
200
+ .description("Log and manage interactions")
201
+ .addCommand(listCommand)
202
+ .addCommand(getCommand)
203
+ .addCommand(createCommand)
204
+ .addCommand(updateCommand)
205
+ .addCommand(deleteCommand);
206
+ // --- helpers ---
207
+ function formatSize(bytes) {
208
+ if (bytes < 1024)
209
+ return `${bytes} B`;
210
+ if (bytes < 1024 * 1024)
211
+ return `${(bytes / 1024).toFixed(1)} KB`;
212
+ return `${(bytes / (1024 * 1024)).toFixed(1)} MB`;
213
+ }
214
+ //# sourceMappingURL=interaction.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interaction.js","sourceRoot":"","sources":["../../src/commands/interaction.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import { Command } from "commander";
2
+ export declare const leadCommand: Command;