@itznexus/itznexus-cli 1.3.0 → 1.5.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 (98) hide show
  1. package/dist/commands/agents/claude.d.ts +2 -0
  2. package/dist/commands/agents/claude.js +85 -0
  3. package/dist/commands/agents/claude.js.map +1 -0
  4. package/dist/commands/api/audit-logs.d.ts +2 -0
  5. package/dist/commands/api/audit-logs.js +66 -0
  6. package/dist/commands/api/audit-logs.js.map +1 -0
  7. package/dist/commands/{auth.js → api/auth.js} +2 -10
  8. package/dist/commands/api/auth.js.map +1 -0
  9. package/dist/commands/api/claude-events.d.ts +2 -0
  10. package/dist/commands/api/claude-events.js +104 -0
  11. package/dist/commands/api/claude-events.js.map +1 -0
  12. package/dist/commands/api/files.d.ts +2 -0
  13. package/dist/commands/api/files.js +166 -0
  14. package/dist/commands/api/files.js.map +1 -0
  15. package/dist/commands/api/folders.d.ts +2 -0
  16. package/dist/commands/api/folders.js +153 -0
  17. package/dist/commands/api/folders.js.map +1 -0
  18. package/dist/commands/api/github-accounts.d.ts +2 -0
  19. package/dist/commands/api/github-accounts.js +99 -0
  20. package/dist/commands/api/github-accounts.js.map +1 -0
  21. package/dist/commands/api/gmail-accounts.d.ts +2 -0
  22. package/dist/commands/api/gmail-accounts.js +117 -0
  23. package/dist/commands/api/gmail-accounts.js.map +1 -0
  24. package/dist/commands/{health.js → api/health.js} +2 -2
  25. package/dist/commands/api/health.js.map +1 -0
  26. package/dist/commands/{interaction.js → api/interactions.js} +6 -13
  27. package/dist/commands/api/interactions.js.map +1 -0
  28. package/dist/commands/api/jobs.d.ts +2 -0
  29. package/dist/commands/api/jobs.js +90 -0
  30. package/dist/commands/api/jobs.js.map +1 -0
  31. package/dist/commands/{lead.js → api/leads.js} +119 -27
  32. package/dist/commands/api/leads.js.map +1 -0
  33. package/dist/commands/{organization.js → api/organizations.js} +31 -41
  34. package/dist/commands/api/organizations.js.map +1 -0
  35. package/dist/commands/{page.js → api/pages.js} +62 -19
  36. package/dist/commands/api/pages.js.map +1 -0
  37. package/dist/commands/{person.js → api/persons.js} +67 -47
  38. package/dist/commands/api/persons.js.map +1 -0
  39. package/dist/commands/{pipeline.js → api/pipelines.js} +3 -3
  40. package/dist/commands/api/pipelines.js.map +1 -0
  41. package/dist/commands/api/projects.js +357 -0
  42. package/dist/commands/api/projects.js.map +1 -0
  43. package/dist/commands/api/repositories.d.ts +2 -0
  44. package/dist/commands/api/repositories.js +118 -0
  45. package/dist/commands/api/repositories.js.map +1 -0
  46. package/dist/commands/api/settings.d.ts +2 -0
  47. package/dist/commands/api/settings.js +79 -0
  48. package/dist/commands/api/settings.js.map +1 -0
  49. package/dist/commands/{sprint.js → api/sprints.js} +37 -22
  50. package/dist/commands/api/sprints.js.map +1 -0
  51. package/dist/commands/{task.js → api/tasks.js} +78 -19
  52. package/dist/commands/api/tasks.js.map +1 -0
  53. package/dist/commands/api/upwork-job-notifications.d.ts +2 -0
  54. package/dist/commands/api/upwork-job-notifications.js +85 -0
  55. package/dist/commands/api/upwork-job-notifications.js.map +1 -0
  56. package/dist/commands/api/users.js +224 -0
  57. package/dist/commands/api/users.js.map +1 -0
  58. package/dist/commands/api/website-scrapes.d.ts +2 -0
  59. package/dist/commands/api/website-scrapes.js +118 -0
  60. package/dist/commands/api/website-scrapes.js.map +1 -0
  61. package/dist/commands/api/youtube-productions.d.ts +2 -0
  62. package/dist/commands/api/youtube-productions.js +521 -0
  63. package/dist/commands/api/youtube-productions.js.map +1 -0
  64. package/dist/commands/api/youtube-videos.d.ts +2 -0
  65. package/dist/commands/api/youtube-videos.js +111 -0
  66. package/dist/commands/api/youtube-videos.js.map +1 -0
  67. package/dist/index.js +97 -39
  68. package/dist/index.js.map +1 -1
  69. package/dist/lib/claude/normalize-events.d.ts +19 -0
  70. package/dist/lib/claude/normalize-events.js +158 -0
  71. package/dist/lib/claude/normalize-events.js.map +1 -0
  72. package/package.json +1 -1
  73. package/dist/commands/auth.js.map +0 -1
  74. package/dist/commands/health.js.map +0 -1
  75. package/dist/commands/interaction.js.map +0 -1
  76. package/dist/commands/lead.js.map +0 -1
  77. package/dist/commands/organization.js.map +0 -1
  78. package/dist/commands/page.js.map +0 -1
  79. package/dist/commands/person.js.map +0 -1
  80. package/dist/commands/pipeline.js.map +0 -1
  81. package/dist/commands/project.js +0 -151
  82. package/dist/commands/project.js.map +0 -1
  83. package/dist/commands/sprint.js.map +0 -1
  84. package/dist/commands/task.js.map +0 -1
  85. package/dist/commands/user.js +0 -58
  86. package/dist/commands/user.js.map +0 -1
  87. /package/dist/commands/{auth.d.ts → api/auth.d.ts} +0 -0
  88. /package/dist/commands/{health.d.ts → api/health.d.ts} +0 -0
  89. /package/dist/commands/{interaction.d.ts → api/interactions.d.ts} +0 -0
  90. /package/dist/commands/{lead.d.ts → api/leads.d.ts} +0 -0
  91. /package/dist/commands/{organization.d.ts → api/organizations.d.ts} +0 -0
  92. /package/dist/commands/{page.d.ts → api/pages.d.ts} +0 -0
  93. /package/dist/commands/{person.d.ts → api/persons.d.ts} +0 -0
  94. /package/dist/commands/{pipeline.d.ts → api/pipelines.d.ts} +0 -0
  95. /package/dist/commands/{project.d.ts → api/projects.d.ts} +0 -0
  96. /package/dist/commands/{sprint.d.ts → api/sprints.d.ts} +0 -0
  97. /package/dist/commands/{task.d.ts → api/tasks.d.ts} +0 -0
  98. /package/dist/commands/{user.d.ts → api/users.d.ts} +0 -0
@@ -0,0 +1,85 @@
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
+ const listCommand = new Command("list")
6
+ .description("List ingested Upwork job notifications")
7
+ .option("--status <status>", "Filter by status")
8
+ .option("--gmail-account <id>", "Filter by Gmail account")
9
+ .option("--json", "Output as JSON")
10
+ .action(async (opts) => {
11
+ try {
12
+ const params = new URLSearchParams();
13
+ if (opts.status)
14
+ params.set("status", opts.status);
15
+ if (opts.gmailAccount)
16
+ params.set("gmailAccountId", opts.gmailAccount);
17
+ const qs = params.toString();
18
+ const data = await api.get(`/upwork-job-notifications${qs ? `?${qs}` : ""}`);
19
+ printList(data, [
20
+ { key: "id", label: "ID", width: 38 },
21
+ { key: "status", label: "Status", width: 14 },
22
+ { key: "gmailAccountId", label: "Gmail Acct", width: 38 },
23
+ { key: "createdAt", label: "Created", width: 24 },
24
+ ], opts);
25
+ }
26
+ catch (err) {
27
+ handleError(err);
28
+ }
29
+ });
30
+ const getCommand = new Command("get")
31
+ .description("Get an Upwork job notification")
32
+ .argument("<id>", "Notification ID")
33
+ .option("--json", "Output as JSON")
34
+ .action(async (id, opts) => {
35
+ try {
36
+ const data = await api.get(`/upwork-job-notifications/${id}`);
37
+ if (opts.json) {
38
+ console.log(JSON.stringify(data, null, 2));
39
+ return;
40
+ }
41
+ printDetail(data, [
42
+ { key: "id", label: "ID" },
43
+ { key: "status", label: "Status" },
44
+ { key: "errorMessage", label: "Error" },
45
+ { key: "gmailAccountId", label: "Gmail Acct" },
46
+ { key: "gmailMessageId", label: "Message" },
47
+ { key: "createdAt", label: "Created" },
48
+ ], opts);
49
+ if (data.payload) {
50
+ console.log(chalk.dim(`\n Payload: ${JSON.stringify(data.payload)}`));
51
+ }
52
+ }
53
+ catch (err) {
54
+ handleError(err);
55
+ }
56
+ });
57
+ const statusCommand = new Command("status")
58
+ .description("Update the status of a notification")
59
+ .argument("<id>", "Notification ID")
60
+ .argument("<status>", "New status")
61
+ .option("--error <message>", "Error message")
62
+ .option("--json", "Output as JSON")
63
+ .action(async (id, status, opts) => {
64
+ try {
65
+ const payload = { status };
66
+ if (opts.error !== undefined)
67
+ payload.errorMessage = opts.error;
68
+ const data = await api.post(`/upwork-job-notifications/${id}/status`, payload);
69
+ if (opts.json) {
70
+ console.log(JSON.stringify(data, null, 2));
71
+ }
72
+ else {
73
+ console.log(chalk.green("✓"), `Notification status updated to ${chalk.bold(status)}`);
74
+ }
75
+ }
76
+ catch (err) {
77
+ handleError(err);
78
+ }
79
+ });
80
+ export const upworkJobNotificationCommand = new Command("upwork-job-notification")
81
+ .description("Inspect Upwork job notification ingestion")
82
+ .addCommand(listCommand)
83
+ .addCommand(getCommand)
84
+ .addCommand(statusCommand);
85
+ //# sourceMappingURL=upwork-job-notifications.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"upwork-job-notifications.js","sourceRoot":"","sources":["../../../src/commands/api/upwork-job-notifications.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,224 @@
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
+ const listCommand = new Command("list")
6
+ .description("List all users")
7
+ .option("--type <type>", "Filter by type (human, agent)")
8
+ .option("--json", "Output as JSON")
9
+ .action(async (opts) => {
10
+ try {
11
+ const params = new URLSearchParams();
12
+ if (opts.type)
13
+ params.set("type", opts.type);
14
+ const qs = params.toString();
15
+ const data = await api.get(`/users${qs ? `?${qs}` : ""}`);
16
+ printList(data, [
17
+ { key: "name", label: "Name", width: 25 },
18
+ { key: "email", label: "Email", width: 30 },
19
+ { key: "type", label: "Type", width: 8 },
20
+ { key: "lastSeenAt", label: "Last Seen", width: 24 },
21
+ ], opts);
22
+ }
23
+ catch (err) {
24
+ handleError(err);
25
+ }
26
+ });
27
+ const getCommand = new Command("get")
28
+ .description("Get user details")
29
+ .argument("<id>", "User ID")
30
+ .option("--json", "Output as JSON")
31
+ .action(async (id, opts) => {
32
+ try {
33
+ const data = await api.get(`/users/${id}`);
34
+ if (opts.json) {
35
+ console.log(JSON.stringify(data, null, 2));
36
+ return;
37
+ }
38
+ console.log(chalk.bold(data.name ?? data.email));
39
+ printDetail(data, [
40
+ { key: "id", label: "ID" },
41
+ { key: "email", label: "Email" },
42
+ { key: "type", label: "Type" },
43
+ { key: "createdAt", label: "Created" },
44
+ { key: "lastSeenAt", label: "Last Seen" },
45
+ ], opts);
46
+ }
47
+ catch (err) {
48
+ handleError(err);
49
+ }
50
+ });
51
+ const createCommand = new Command("create")
52
+ .description("Create a new user (admin only for humans)")
53
+ .requiredOption("--name <name>", "Display name")
54
+ .requiredOption("--email <email>", "Email address")
55
+ .requiredOption("--type <type>", "User type (human, agent)")
56
+ .option("--password <password>", "Password (humans only, min 8 chars)")
57
+ .option("--json", "Output as JSON")
58
+ .action(async (opts) => {
59
+ try {
60
+ const payload = {
61
+ name: opts.name,
62
+ email: opts.email,
63
+ type: opts.type,
64
+ };
65
+ if (opts.password !== undefined)
66
+ payload.password = opts.password;
67
+ const data = await api.post("/users", payload);
68
+ if (opts.json) {
69
+ console.log(JSON.stringify(data, null, 2));
70
+ }
71
+ else {
72
+ console.log(chalk.green("✓"), `User created: ${chalk.bold(data.name ?? data.email)} (${data.id})`);
73
+ }
74
+ }
75
+ catch (err) {
76
+ handleError(err);
77
+ }
78
+ });
79
+ const updateCommand = new Command("update")
80
+ .description("Update a user")
81
+ .argument("<id>", "User ID")
82
+ .option("--name <name>", "Display name")
83
+ .option("--email <email>", "Email address")
84
+ .option("--json", "Output as JSON")
85
+ .action(async (id, opts) => {
86
+ try {
87
+ const payload = {};
88
+ if (opts.name !== undefined)
89
+ payload.name = opts.name;
90
+ if (opts.email !== undefined)
91
+ payload.email = opts.email;
92
+ const data = await api.post(`/users/${id}`, payload);
93
+ if (opts.json) {
94
+ console.log(JSON.stringify(data, null, 2));
95
+ }
96
+ else {
97
+ console.log(chalk.green("✓"), "User updated");
98
+ }
99
+ }
100
+ catch (err) {
101
+ handleError(err);
102
+ }
103
+ });
104
+ const deleteCommand = new Command("delete")
105
+ .description("Delete a user")
106
+ .argument("<id>", "User ID")
107
+ .option("--json", "Output as JSON")
108
+ .action(async (id, opts) => {
109
+ try {
110
+ await api.delete(`/users/${id}`);
111
+ if (opts.json) {
112
+ console.log(JSON.stringify({ deleted: true, id }));
113
+ }
114
+ else {
115
+ console.log(chalk.green("✓"), "User deleted");
116
+ }
117
+ }
118
+ catch (err) {
119
+ handleError(err);
120
+ }
121
+ });
122
+ // --- api-keys subcommand ---
123
+ const keyListCommand = new Command("list")
124
+ .description("List API keys for a user")
125
+ .argument("<userId>", "User ID")
126
+ .option("--json", "Output as JSON")
127
+ .action(async (userId, opts) => {
128
+ try {
129
+ const data = await api.get(`/users/${userId}/api-keys`);
130
+ printList(data, [
131
+ { key: "name", label: "Name", width: 25 },
132
+ { key: "prefix", label: "Prefix", width: 14 },
133
+ { key: "enabled", label: "Enabled", width: 10 },
134
+ { key: "lastUsedAt", label: "Last Used", width: 24 },
135
+ { key: "expiresAt", label: "Expires", width: 24 },
136
+ ], opts);
137
+ }
138
+ catch (err) {
139
+ handleError(err);
140
+ }
141
+ });
142
+ const keyCreateCommand = new Command("create")
143
+ .description("Create a new API key for a user (returns plaintext once)")
144
+ .argument("<userId>", "User ID")
145
+ .requiredOption("--name <name>", "Key name")
146
+ .option("--expires-in <days>", "Days until expiry", parseInt)
147
+ .option("--json", "Output as JSON")
148
+ .action(async (userId, opts) => {
149
+ try {
150
+ const payload = { name: opts.name };
151
+ if (opts.expiresIn != null)
152
+ payload.expiresInDays = opts.expiresIn;
153
+ const data = await api.post(`/users/${userId}/api-keys`, payload);
154
+ if (opts.json) {
155
+ console.log(JSON.stringify(data, null, 2));
156
+ }
157
+ else {
158
+ console.log(chalk.green("✓"), `API key created: ${chalk.bold(data.name)} (${data.id})`);
159
+ if (data.plaintext) {
160
+ console.log();
161
+ console.log(chalk.yellow("⚠"), "Copy this now — it won't be shown again:");
162
+ console.log(` ${chalk.bold(data.plaintext)}`);
163
+ }
164
+ }
165
+ }
166
+ catch (err) {
167
+ handleError(err);
168
+ }
169
+ });
170
+ const keyEnabledCommand = new Command("enabled")
171
+ .description("Enable or disable an API key")
172
+ .argument("<userId>", "User ID")
173
+ .argument("<keyId>", "API key ID")
174
+ .argument("<enabled>", '"true" or "false"')
175
+ .option("--json", "Output as JSON")
176
+ .action(async (userId, keyId, enabled, opts) => {
177
+ try {
178
+ const value = enabled === "true";
179
+ const data = await api.post(`/users/${userId}/api-keys/${keyId}/enabled`, { enabled: value });
180
+ if (opts.json) {
181
+ console.log(JSON.stringify(data, null, 2));
182
+ }
183
+ else {
184
+ console.log(chalk.green("✓"), `API key ${value ? "enabled" : "disabled"}`);
185
+ }
186
+ }
187
+ catch (err) {
188
+ handleError(err);
189
+ }
190
+ });
191
+ const keyDeleteCommand = new Command("delete")
192
+ .description("Delete an API key")
193
+ .argument("<userId>", "User ID")
194
+ .argument("<keyId>", "API key ID")
195
+ .option("--json", "Output as JSON")
196
+ .action(async (userId, keyId, opts) => {
197
+ try {
198
+ await api.delete(`/users/${userId}/api-keys/${keyId}`);
199
+ if (opts.json) {
200
+ console.log(JSON.stringify({ deleted: true }));
201
+ }
202
+ else {
203
+ console.log(chalk.green("✓"), "API key deleted");
204
+ }
205
+ }
206
+ catch (err) {
207
+ handleError(err);
208
+ }
209
+ });
210
+ const apiKeyCommand = new Command("api-key")
211
+ .description("Manage API keys")
212
+ .addCommand(keyListCommand)
213
+ .addCommand(keyCreateCommand)
214
+ .addCommand(keyEnabledCommand)
215
+ .addCommand(keyDeleteCommand);
216
+ export const userCommand = new Command("user")
217
+ .description("Manage users")
218
+ .addCommand(listCommand)
219
+ .addCommand(getCommand)
220
+ .addCommand(createCommand)
221
+ .addCommand(updateCommand)
222
+ .addCommand(deleteCommand)
223
+ .addCommand(apiKeyCommand);
224
+ //# sourceMappingURL=users.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"users.js","sourceRoot":"","sources":["../../../src/commands/api/users.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAC;AACvC,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAsB1E,MAAM,WAAW,GAAG,IAAI,OAAO,CAAC,MAAM,CAAC;KACpC,WAAW,CAAC,gBAAgB,CAAC;KAC7B,MAAM,CAAC,eAAe,EAAE,+BAA+B,CAAC;KACxD,MAAM,CAAC,QAAQ,EAAE,gBAAgB,CAAC;KAClC,MAAM,CAAC,KAAK,EAAE,IAAuC,EAAE,EAAE;IACxD,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,eAAe,EAAE,CAAC;QACrC,IAAI,IAAI,CAAC,IAAI;YAAE,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QAE7C,MAAM,EAAE,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC;QAC7B,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,GAAG,CAAS,SAAS,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAElE,SAAS,CACP,IAA4C,EAC5C;YACE,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,EAAE;YACzC,EAAE,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE;YAC3C,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE;YACxC,EAAE,GAAG,EAAE,YAAY,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,EAAE,EAAE;SACrD,EACD,IAAI,CACL,CAAC;IACJ,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,WAAW,CAAC,GAAG,CAAC,CAAC;IACnB,CAAC;AACH,CAAC,CAAC,CAAC;AAEL,MAAM,UAAU,GAAG,IAAI,OAAO,CAAC,KAAK,CAAC;KAClC,WAAW,CAAC,kBAAkB,CAAC;KAC/B,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC;KAC3B,MAAM,CAAC,QAAQ,EAAE,gBAAgB,CAAC;KAClC,MAAM,CAAC,KAAK,EAAE,EAAU,EAAE,IAAwB,EAAE,EAAE;IACrD,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,GAAG,CAAO,UAAU,EAAE,EAAE,CAAC,CAAC;QAEjD,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACd,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;YAC3C,OAAO;QACT,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;QACjD,WAAW,CACT,IAA0C,EAC1C;YACE,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE;YAC1B,EAAE,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE;YAChC,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE;YAC9B,EAAE,GAAG,EAAE,WAAW,EAAE,KAAK,EAAE,SAAS,EAAE;YACtC,EAAE,GAAG,EAAE,YAAY,EAAE,KAAK,EAAE,WAAW,EAAE;SAC1C,EACD,IAAI,CACL,CAAC;IACJ,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,WAAW,CAAC,GAAG,CAAC,CAAC;IACnB,CAAC;AACH,CAAC,CAAC,CAAC;AAEL,MAAM,aAAa,GAAG,IAAI,OAAO,CAAC,QAAQ,CAAC;KACxC,WAAW,CAAC,2CAA2C,CAAC;KACxD,cAAc,CAAC,eAAe,EAAE,cAAc,CAAC;KAC/C,cAAc,CAAC,iBAAiB,EAAE,eAAe,CAAC;KAClD,cAAc,CAAC,eAAe,EAAE,0BAA0B,CAAC;KAC3D,MAAM,CAAC,uBAAuB,EAAE,qCAAqC,CAAC;KACtE,MAAM,CAAC,QAAQ,EAAE,gBAAgB,CAAC;KAClC,MAAM,CACL,KAAK,EAAE,IAMN,EAAE,EAAE;IACH,IAAI,CAAC;QACH,MAAM,OAAO,GAA4B;YACvC,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,IAAI,EAAE,IAAI,CAAC,IAAI;SAChB,CAAC;QACF,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS;YAAE,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QAElE,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,CAAO,QAAQ,EAAE,OAAO,CAAC,CAAC;QAErD,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,iBAAiB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC,EAAE,GAAG,CACpE,CAAC;QACJ,CAAC;IACH,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,WAAW,CAAC,GAAG,CAAC,CAAC;IACnB,CAAC;AACH,CAAC,CACF,CAAC;AAEJ,MAAM,aAAa,GAAG,IAAI,OAAO,CAAC,QAAQ,CAAC;KACxC,WAAW,CAAC,eAAe,CAAC;KAC5B,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC;KAC3B,MAAM,CAAC,eAAe,EAAE,cAAc,CAAC;KACvC,MAAM,CAAC,iBAAiB,EAAE,eAAe,CAAC;KAC1C,MAAM,CAAC,QAAQ,EAAE,gBAAgB,CAAC;KAClC,MAAM,CACL,KAAK,EACH,EAAU,EACV,IAAuD,EACvD,EAAE;IACF,IAAI,CAAC;QACH,MAAM,OAAO,GAA4B,EAAE,CAAC;QAC5C,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS;YAAE,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACtD,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS;YAAE,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QAEzD,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,CAAO,UAAU,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC;QAE3D,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,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,cAAc,CAAC,CAAC;QAChD,CAAC;IACH,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,WAAW,CAAC,GAAG,CAAC,CAAC;IACnB,CAAC;AACH,CAAC,CACF,CAAC;AAEJ,MAAM,aAAa,GAAG,IAAI,OAAO,CAAC,QAAQ,CAAC;KACxC,WAAW,CAAC,eAAe,CAAC;KAC5B,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC;KAC3B,MAAM,CAAC,QAAQ,EAAE,gBAAgB,CAAC;KAClC,MAAM,CAAC,KAAK,EAAE,EAAU,EAAE,IAAwB,EAAE,EAAE;IACrD,IAAI,CAAC;QACH,MAAM,GAAG,CAAC,MAAM,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;QAEjC,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACd,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;QACrD,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,cAAc,CAAC,CAAC;QAChD,CAAC;IACH,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,WAAW,CAAC,GAAG,CAAC,CAAC;IACnB,CAAC;AACH,CAAC,CAAC,CAAC;AAEL,8BAA8B;AAE9B,MAAM,cAAc,GAAG,IAAI,OAAO,CAAC,MAAM,CAAC;KACvC,WAAW,CAAC,0BAA0B,CAAC;KACvC,QAAQ,CAAC,UAAU,EAAE,SAAS,CAAC;KAC/B,MAAM,CAAC,QAAQ,EAAE,gBAAgB,CAAC;KAClC,MAAM,CAAC,KAAK,EAAE,MAAc,EAAE,IAAwB,EAAE,EAAE;IACzD,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,GAAG,CAAW,UAAU,MAAM,WAAW,CAAC,CAAC;QAElE,SAAS,CACP,IAA4C,EAC5C;YACE,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,EAAE;YACzC,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,EAAE;YAC7C,EAAE,GAAG,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE,EAAE;YAC/C,EAAE,GAAG,EAAE,YAAY,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,EAAE,EAAE;YACpD,EAAE,GAAG,EAAE,WAAW,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE,EAAE;SAClD,EACD,IAAI,CACL,CAAC;IACJ,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,WAAW,CAAC,GAAG,CAAC,CAAC;IACnB,CAAC;AACH,CAAC,CAAC,CAAC;AAEL,MAAM,gBAAgB,GAAG,IAAI,OAAO,CAAC,QAAQ,CAAC;KAC3C,WAAW,CAAC,0DAA0D,CAAC;KACvE,QAAQ,CAAC,UAAU,EAAE,SAAS,CAAC;KAC/B,cAAc,CAAC,eAAe,EAAE,UAAU,CAAC;KAC3C,MAAM,CAAC,qBAAqB,EAAE,mBAAmB,EAAE,QAAQ,CAAC;KAC5D,MAAM,CAAC,QAAQ,EAAE,gBAAgB,CAAC;KAClC,MAAM,CACL,KAAK,EACH,MAAc,EACd,IAA0D,EAC1D,EAAE;IACF,IAAI,CAAC;QACH,MAAM,OAAO,GAA4B,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC;QAC7D,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI;YAAE,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,SAAS,CAAC;QAEnE,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,CACzB,UAAU,MAAM,WAAW,EAC3B,OAAO,CACR,CAAC;QAEF,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,oBAAoB,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,EAAE,GAAG,CACzD,CAAC;YACF,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;gBACnB,OAAO,CAAC,GAAG,EAAE,CAAC;gBACd,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,EACjB,0CAA0C,CAC3C,CAAC;gBACF,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;YACjD,CAAC;QACH,CAAC;IACH,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,WAAW,CAAC,GAAG,CAAC,CAAC;IACnB,CAAC;AACH,CAAC,CACF,CAAC;AAEJ,MAAM,iBAAiB,GAAG,IAAI,OAAO,CAAC,SAAS,CAAC;KAC7C,WAAW,CAAC,8BAA8B,CAAC;KAC3C,QAAQ,CAAC,UAAU,EAAE,SAAS,CAAC;KAC/B,QAAQ,CAAC,SAAS,EAAE,YAAY,CAAC;KACjC,QAAQ,CAAC,WAAW,EAAE,mBAAmB,CAAC;KAC1C,MAAM,CAAC,QAAQ,EAAE,gBAAgB,CAAC;KAClC,MAAM,CACL,KAAK,EACH,MAAc,EACd,KAAa,EACb,OAAe,EACf,IAAwB,EACxB,EAAE;IACF,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,OAAO,KAAK,MAAM,CAAC;QACjC,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,CACzB,UAAU,MAAM,aAAa,KAAK,UAAU,EAC5C,EAAE,OAAO,EAAE,KAAK,EAAE,CACnB,CAAC;QAEF,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,WAAW,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,EAAE,CAC5C,CAAC;QACJ,CAAC;IACH,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,WAAW,CAAC,GAAG,CAAC,CAAC;IACnB,CAAC;AACH,CAAC,CACF,CAAC;AAEJ,MAAM,gBAAgB,GAAG,IAAI,OAAO,CAAC,QAAQ,CAAC;KAC3C,WAAW,CAAC,mBAAmB,CAAC;KAChC,QAAQ,CAAC,UAAU,EAAE,SAAS,CAAC;KAC/B,QAAQ,CAAC,SAAS,EAAE,YAAY,CAAC;KACjC,MAAM,CAAC,QAAQ,EAAE,gBAAgB,CAAC;KAClC,MAAM,CAAC,KAAK,EAAE,MAAc,EAAE,KAAa,EAAE,IAAwB,EAAE,EAAE;IACxE,IAAI,CAAC;QACH,MAAM,GAAG,CAAC,MAAM,CAAC,UAAU,MAAM,aAAa,KAAK,EAAE,CAAC,CAAC;QAEvD,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACd,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QACjD,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,iBAAiB,CAAC,CAAC;QACnD,CAAC;IACH,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,WAAW,CAAC,GAAG,CAAC,CAAC;IACnB,CAAC;AACH,CAAC,CAAC,CAAC;AAEL,MAAM,aAAa,GAAG,IAAI,OAAO,CAAC,SAAS,CAAC;KACzC,WAAW,CAAC,iBAAiB,CAAC;KAC9B,UAAU,CAAC,cAAc,CAAC;KAC1B,UAAU,CAAC,gBAAgB,CAAC;KAC5B,UAAU,CAAC,iBAAiB,CAAC;KAC7B,UAAU,CAAC,gBAAgB,CAAC,CAAC;AAEhC,MAAM,CAAC,MAAM,WAAW,GAAG,IAAI,OAAO,CAAC,MAAM,CAAC;KAC3C,WAAW,CAAC,cAAc,CAAC;KAC3B,UAAU,CAAC,WAAW,CAAC;KACvB,UAAU,CAAC,UAAU,CAAC;KACtB,UAAU,CAAC,aAAa,CAAC;KACzB,UAAU,CAAC,aAAa,CAAC;KACzB,UAAU,CAAC,aAAa,CAAC;KACzB,UAAU,CAAC,aAAa,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ import { Command } from "commander";
2
+ export declare const websiteScrapeCommand: Command;
@@ -0,0 +1,118 @@
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
+ const listCommand = new Command("list")
6
+ .description("List website scrape jobs")
7
+ .option("--json", "Output as JSON")
8
+ .action(async (opts) => {
9
+ try {
10
+ const data = await api.get("/website-scrapes");
11
+ printList(data, [
12
+ { key: "id", label: "ID", width: 38 },
13
+ { key: "url", label: "URL", width: 40 },
14
+ { key: "status", label: "Status", width: 12 },
15
+ { key: "pagesScraped", label: "Pages", width: 8 },
16
+ { key: "createdAt", label: "Created", width: 24 },
17
+ ], opts);
18
+ }
19
+ catch (err) {
20
+ handleError(err);
21
+ }
22
+ });
23
+ const getCommand = new Command("get")
24
+ .description("Get a website scrape job")
25
+ .argument("<id>", "Scrape ID")
26
+ .option("--json", "Output as JSON")
27
+ .action(async (id, opts) => {
28
+ try {
29
+ const data = await api.get(`/website-scrapes/${id}`);
30
+ if (opts.json) {
31
+ console.log(JSON.stringify(data, null, 2));
32
+ return;
33
+ }
34
+ console.log(chalk.bold(data.url));
35
+ printDetail(data, [
36
+ { key: "id", label: "ID" },
37
+ { key: "status", label: "Status" },
38
+ { key: "maxDepth", label: "Max Depth" },
39
+ { key: "maxPages", label: "Max Pages" },
40
+ { key: "pagesScraped", label: "Pages Scraped" },
41
+ { key: "errorMessage", label: "Error" },
42
+ { key: "createdAt", label: "Created" },
43
+ { key: "updatedAt", label: "Updated" },
44
+ ], opts);
45
+ }
46
+ catch (err) {
47
+ handleError(err);
48
+ }
49
+ });
50
+ const submitCommand = new Command("submit")
51
+ .description("Submit a website to scrape")
52
+ .requiredOption("--url <url>", "Website URL")
53
+ .option("--max-depth <n>", "Max crawl depth (0-5)", parseInt)
54
+ .option("--max-pages <n>", "Max pages to scrape (1-500)", parseInt)
55
+ .option("--json", "Output as JSON")
56
+ .action(async (opts) => {
57
+ try {
58
+ const payload = { url: opts.url };
59
+ if (opts.maxDepth != null)
60
+ payload.maxDepth = opts.maxDepth;
61
+ if (opts.maxPages != null)
62
+ payload.maxPages = opts.maxPages;
63
+ const data = await api.post("/website-scrapes", payload);
64
+ if (opts.json) {
65
+ console.log(JSON.stringify(data, null, 2));
66
+ }
67
+ else {
68
+ console.log(chalk.green("✓"), `Scrape submitted: ${chalk.bold(data.url)} (${data.id})`);
69
+ }
70
+ }
71
+ catch (err) {
72
+ handleError(err);
73
+ }
74
+ });
75
+ const retryCommand = new Command("retry")
76
+ .description("Retry a failed website scrape")
77
+ .argument("<id>", "Scrape ID")
78
+ .option("--json", "Output as JSON")
79
+ .action(async (id, opts) => {
80
+ try {
81
+ const data = await api.post(`/website-scrapes/${id}/retry`, {});
82
+ if (opts.json) {
83
+ console.log(JSON.stringify(data, null, 2));
84
+ }
85
+ else {
86
+ console.log(chalk.green("✓"), "Scrape requeued");
87
+ }
88
+ }
89
+ catch (err) {
90
+ handleError(err);
91
+ }
92
+ });
93
+ const deleteCommand = new Command("delete")
94
+ .description("Delete a website scrape job")
95
+ .argument("<id>", "Scrape ID")
96
+ .option("--json", "Output as JSON")
97
+ .action(async (id, opts) => {
98
+ try {
99
+ await api.delete(`/website-scrapes/${id}`);
100
+ if (opts.json) {
101
+ console.log(JSON.stringify({ deleted: true, id }));
102
+ }
103
+ else {
104
+ console.log(chalk.green("✓"), "Scrape deleted");
105
+ }
106
+ }
107
+ catch (err) {
108
+ handleError(err);
109
+ }
110
+ });
111
+ export const websiteScrapeCommand = new Command("website-scrape")
112
+ .description("Manage website scrape jobs")
113
+ .addCommand(listCommand)
114
+ .addCommand(getCommand)
115
+ .addCommand(submitCommand)
116
+ .addCommand(retryCommand)
117
+ .addCommand(deleteCommand);
118
+ //# sourceMappingURL=website-scrapes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"website-scrapes.js","sourceRoot":"","sources":["../../../src/commands/api/website-scrapes.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import { Command } from "commander";
2
+ export declare const youtubeProductionCommand: Command;