stow-cli 2.2.0 → 2.2.1

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.
package/dist/cli.js CHANGED
@@ -11,12 +11,14 @@ import {
11
11
  setForceHuman,
12
12
  setGlobalFields,
13
13
  setGlobalNdjson
14
- } from "./chunk-P2BKGBQE.js";
14
+ } from "./chunk-5IX3ASXH.js";
15
15
 
16
16
  // src/cli.ts
17
+ import { createRequire } from "module";
17
18
  import { StowError } from "@howells/stow-server";
18
19
  import { Command } from "commander";
19
- var VERSION = "1.0.0";
20
+ var require2 = createRequire(import.meta.url);
21
+ var { version: VERSION } = require2("../package.json");
20
22
  function handleError(err) {
21
23
  if (err instanceof StowError) {
22
24
  outputError(err.message, err.code, { status: err.status });
@@ -65,7 +67,7 @@ program.command("upload").description(CLI_DOCS.upload.description).argument("<fi
65
67
  );
66
68
  var bucketsCmd = program.command("buckets").description(CLI_DOCS.buckets.description).addHelpText("after", renderCommandHelp("buckets")).action(async () => {
67
69
  try {
68
- const { listBuckets } = await import("./buckets-ZHP3LBLC.js");
70
+ const { listBuckets } = await import("./buckets-AFNX7FV3.js");
69
71
  await listBuckets();
70
72
  } catch (err) {
71
73
  handleError(err);
@@ -74,7 +76,7 @@ var bucketsCmd = program.command("buckets").description(CLI_DOCS.buckets.descrip
74
76
  bucketsCmd.command("create").description(CLI_DOCS.bucketsCreate.description).argument("<name>", "Bucket name").option("-d, --description <text>", "Bucket description").option("--public", "Make bucket public").option("--dry-run", "Preview without creating").option("--input-json <json>", "Raw JSON payload").addHelpText("after", renderCommandHelp("bucketsCreate")).action(
75
77
  async (name, options) => {
76
78
  try {
77
- const { createBucket } = await import("./buckets-ZHP3LBLC.js");
79
+ const { createBucket } = await import("./buckets-AFNX7FV3.js");
78
80
  await createBucket(name, options);
79
81
  } catch (err) {
80
82
  handleError(err);
@@ -84,7 +86,7 @@ bucketsCmd.command("create").description(CLI_DOCS.bucketsCreate.description).arg
84
86
  bucketsCmd.command("rename").description(CLI_DOCS.bucketsRename.description).argument("<name>", "Current bucket name").argument("<new-name>", "New bucket name").option("-y, --yes", "Skip confirmation warning").option("--dry-run", "Preview without renaming").option("--input-json <json>", "Raw JSON payload").addHelpText("after", renderCommandHelp("bucketsRename")).action(
85
87
  async (name, newName, options) => {
86
88
  try {
87
- const { renameBucket } = await import("./buckets-ZHP3LBLC.js");
89
+ const { renameBucket } = await import("./buckets-AFNX7FV3.js");
88
90
  await renameBucket(name, newName, options);
89
91
  } catch (err) {
90
92
  handleError(err);
@@ -93,7 +95,7 @@ bucketsCmd.command("rename").description(CLI_DOCS.bucketsRename.description).arg
93
95
  );
94
96
  bucketsCmd.command("delete").description(CLI_DOCS.bucketsDelete.description).argument("<id>", "Bucket ID").option("--dry-run", "Preview without deleting").addHelpText("after", renderCommandHelp("bucketsDelete")).action(async (id, options) => {
95
97
  try {
96
- const { deleteBucket } = await import("./buckets-ZHP3LBLC.js");
98
+ const { deleteBucket } = await import("./buckets-AFNX7FV3.js");
97
99
  await deleteBucket(id, options);
98
100
  } catch (err) {
99
101
  handleError(err);
@@ -106,7 +108,7 @@ var filesCmd = program.command("files").description(CLI_DOCS.files.description).
106
108
  return;
107
109
  }
108
110
  try {
109
- const { listFiles } = await import("./files-UQODXWNT.js");
111
+ const { listFiles } = await import("./files-XU6MDPP4.js");
110
112
  await listFiles(bucket, options);
111
113
  } catch (err) {
112
114
  handleError(err);
@@ -115,7 +117,7 @@ var filesCmd = program.command("files").description(CLI_DOCS.files.description).
115
117
  );
116
118
  filesCmd.command("get").description(CLI_DOCS.filesGet.description).argument("<bucket>", "Bucket name").argument("<key>", "File key").option("--json", "Output as JSON").addHelpText("after", renderCommandHelp("filesGet")).action(async (bucket, key, options) => {
117
119
  try {
118
- const { getFile } = await import("./files-UQODXWNT.js");
120
+ const { getFile } = await import("./files-XU6MDPP4.js");
119
121
  await getFile(bucket, key, options);
120
122
  } catch (err) {
121
123
  handleError(err);
@@ -124,7 +126,7 @@ filesCmd.command("get").description(CLI_DOCS.filesGet.description).argument("<bu
124
126
  filesCmd.command("update").description(CLI_DOCS.filesUpdate.description).argument("<bucket>", "Bucket name").argument("<key>", "File key").option("-m, --metadata <kv...>", "Metadata key=value pairs").option("--json", "Output as JSON").option("--dry-run", "Preview without updating").option("--input-json <json>", "Raw JSON payload").addHelpText("after", renderCommandHelp("filesUpdate")).action(
125
127
  async (bucket, key, options) => {
126
128
  try {
127
- const { updateFile } = await import("./files-UQODXWNT.js");
129
+ const { updateFile } = await import("./files-XU6MDPP4.js");
128
130
  await updateFile(bucket, key, options);
129
131
  } catch (err) {
130
132
  handleError(err);
@@ -133,7 +135,7 @@ filesCmd.command("update").description(CLI_DOCS.filesUpdate.description).argumen
133
135
  );
134
136
  filesCmd.command("enrich").description(CLI_DOCS.filesEnrich.description).argument("<bucket>", "Bucket name").argument("<key>", "File key").addHelpText("after", renderCommandHelp("filesEnrich")).action(async (bucket, key) => {
135
137
  try {
136
- const { enrichFile } = await import("./files-UQODXWNT.js");
138
+ const { enrichFile } = await import("./files-XU6MDPP4.js");
137
139
  await enrichFile(bucket, key);
138
140
  } catch (err) {
139
141
  handleError(err);
@@ -142,7 +144,7 @@ filesCmd.command("enrich").description(CLI_DOCS.filesEnrich.description).argumen
142
144
  filesCmd.command("missing").description(CLI_DOCS.filesMissing.description).argument("<bucket>", "Bucket name").argument("<type>", "dimensions | embeddings | colors").option("-l, --limit <count>", "Max files to return").option("--json", "Output as JSON").addHelpText("after", renderCommandHelp("filesMissing")).action(
143
145
  async (bucket, type, options) => {
144
146
  try {
145
- const { listMissing } = await import("./files-UQODXWNT.js");
147
+ const { listMissing } = await import("./files-XU6MDPP4.js");
146
148
  await listMissing(bucket, type, options);
147
149
  } catch (err) {
148
150
  handleError(err);
@@ -169,7 +171,7 @@ var searchCmd = program.command("search").description(CLI_DOCS.search.descriptio
169
171
  searchCmd.command("text").description(CLI_DOCS.searchText.description).argument("<query>", "Search query").option("-b, --bucket <name>", "Bucket name").option("-l, --limit <count>", "Max results").option("--json", "Output as JSON").addHelpText("after", renderCommandHelp("searchText")).action(
170
172
  async (query, options) => {
171
173
  try {
172
- const { textSearch } = await import("./search-TRTPX2SQ.js");
174
+ const { textSearch } = await import("./search-ETC2EXKM.js");
173
175
  await textSearch(query, options);
174
176
  } catch (err) {
175
177
  handleError(err);
@@ -179,7 +181,7 @@ searchCmd.command("text").description(CLI_DOCS.searchText.description).argument(
179
181
  searchCmd.command("similar").description(CLI_DOCS.searchSimilar.description).requiredOption("--file <key>", "File key to search from").option("-b, --bucket <name>", "Bucket name").option("-l, --limit <count>", "Max results").option("--json", "Output as JSON").addHelpText("after", renderCommandHelp("searchSimilar")).action(
180
182
  async (options) => {
181
183
  try {
182
- const { similarSearch } = await import("./search-TRTPX2SQ.js");
184
+ const { similarSearch } = await import("./search-ETC2EXKM.js");
183
185
  await similarSearch(options);
184
186
  } catch (err) {
185
187
  handleError(err);
@@ -189,7 +191,7 @@ searchCmd.command("similar").description(CLI_DOCS.searchSimilar.description).req
189
191
  searchCmd.command("color").description(CLI_DOCS.searchColor.description).requiredOption("--hex <color>", "Hex color code").option("-b, --bucket <name>", "Bucket name").option("-l, --limit <count>", "Max results").option("--json", "Output as JSON").addHelpText("after", renderCommandHelp("searchColor")).action(
190
192
  async (options) => {
191
193
  try {
192
- const { colorSearch } = await import("./search-TRTPX2SQ.js");
194
+ const { colorSearch } = await import("./search-ETC2EXKM.js");
193
195
  await colorSearch(options);
194
196
  } catch (err) {
195
197
  handleError(err);
@@ -199,7 +201,7 @@ searchCmd.command("color").description(CLI_DOCS.searchColor.description).require
199
201
  searchCmd.command("diverse").description(CLI_DOCS.searchDiverse.description).option("-b, --bucket <name>", "Bucket name").option("-l, --limit <count>", "Max results").option("--json", "Output as JSON").addHelpText("after", renderCommandHelp("searchDiverse")).action(
200
202
  async (options) => {
201
203
  try {
202
- const { diverseSearch } = await import("./search-TRTPX2SQ.js");
204
+ const { diverseSearch } = await import("./search-ETC2EXKM.js");
203
205
  await diverseSearch(options);
204
206
  } catch (err) {
205
207
  handleError(err);
@@ -208,7 +210,7 @@ searchCmd.command("diverse").description(CLI_DOCS.searchDiverse.description).opt
208
210
  );
209
211
  var tagsCmd = program.command("tags").description(CLI_DOCS.tags.description).option("--json", "Output as JSON").addHelpText("after", renderCommandHelp("tags")).action(async (options) => {
210
212
  try {
211
- const { listTags } = await import("./tags-VH44BGQL.js");
213
+ const { listTags } = await import("./tags-TBFPDHIQ.js");
212
214
  await listTags(options);
213
215
  } catch (err) {
214
216
  handleError(err);
@@ -217,7 +219,7 @@ var tagsCmd = program.command("tags").description(CLI_DOCS.tags.description).opt
217
219
  tagsCmd.command("create").description(CLI_DOCS.tagsCreate.description).argument("<name>", "Tag name").option("--color <hex>", "Tag color (hex)").option("--json", "Output as JSON").option("--dry-run", "Preview without creating").option("--input-json <json>", "Raw JSON payload").addHelpText("after", renderCommandHelp("tagsCreate")).action(
218
220
  async (name, options) => {
219
221
  try {
220
- const { createTag } = await import("./tags-VH44BGQL.js");
222
+ const { createTag } = await import("./tags-TBFPDHIQ.js");
221
223
  await createTag(name, options);
222
224
  } catch (err) {
223
225
  handleError(err);
@@ -226,7 +228,7 @@ tagsCmd.command("create").description(CLI_DOCS.tagsCreate.description).argument(
226
228
  );
227
229
  tagsCmd.command("delete").description(CLI_DOCS.tagsDelete.description).argument("<id>", "Tag ID").option("--dry-run", "Preview without deleting").addHelpText("after", renderCommandHelp("tagsDelete")).action(async (id, options) => {
228
230
  try {
229
- const { deleteTag } = await import("./tags-VH44BGQL.js");
231
+ const { deleteTag } = await import("./tags-TBFPDHIQ.js");
230
232
  await deleteTag(id, options);
231
233
  } catch (err) {
232
234
  handleError(err);
@@ -236,7 +238,7 @@ var profilesCmd = program.command("profiles").description(CLI_DOCS.profiles.desc
236
238
  profilesCmd.command("create").description(CLI_DOCS.profilesCreate.description).requiredOption("--name <name>", "Profile name").option("-b, --bucket <id>", "Bucket ID").option("--json", "Output as JSON").addHelpText("after", renderCommandHelp("profilesCreate")).action(
237
239
  async (options) => {
238
240
  try {
239
- const { createProfile } = await import("./profiles-CHBGKQOE.js");
241
+ const { createProfile } = await import("./profiles-MB3TZQE4.js");
240
242
  await createProfile(options);
241
243
  } catch (err) {
242
244
  handleError(err);
@@ -245,7 +247,7 @@ profilesCmd.command("create").description(CLI_DOCS.profilesCreate.description).r
245
247
  );
246
248
  profilesCmd.command("get").description(CLI_DOCS.profilesGet.description).argument("<id>", "Profile ID").option("--json", "Output as JSON").addHelpText("after", renderCommandHelp("profilesGet")).action(async (id, options) => {
247
249
  try {
248
- const { getProfile } = await import("./profiles-CHBGKQOE.js");
250
+ const { getProfile } = await import("./profiles-MB3TZQE4.js");
249
251
  await getProfile(id, options);
250
252
  } catch (err) {
251
253
  handleError(err);
@@ -253,7 +255,7 @@ profilesCmd.command("get").description(CLI_DOCS.profilesGet.description).argumen
253
255
  });
254
256
  profilesCmd.command("delete").description(CLI_DOCS.profilesDelete.description).argument("<id>", "Profile ID").addHelpText("after", renderCommandHelp("profilesDelete")).action(async (id) => {
255
257
  try {
256
- const { deleteProfile } = await import("./profiles-CHBGKQOE.js");
258
+ const { deleteProfile } = await import("./profiles-MB3TZQE4.js");
257
259
  await deleteProfile(id);
258
260
  } catch (err) {
259
261
  handleError(err);
@@ -262,7 +264,7 @@ profilesCmd.command("delete").description(CLI_DOCS.profilesDelete.description).a
262
264
  var jobsCmd = program.command("jobs").description(CLI_DOCS.jobs.description).requiredOption("-b, --bucket <id>", "Bucket ID (required)").option("-s, --status <status>", "Filter by status").option("-q, --queue <name>", "Filter by queue name").option("-l, --limit <count>", "Max jobs to return").option("--json", "Output as JSON").addHelpText("after", renderCommandHelp("jobs")).action(
263
265
  async (options) => {
264
266
  try {
265
- const { listJobs } = await import("./jobs-PTV2W5PJ.js");
267
+ const { listJobs } = await import("./jobs-TND5AHCL.js");
266
268
  await listJobs(options.bucket, options);
267
269
  } catch (err) {
268
270
  handleError(err);
@@ -271,7 +273,7 @@ var jobsCmd = program.command("jobs").description(CLI_DOCS.jobs.description).req
271
273
  );
272
274
  jobsCmd.command("retry").description(CLI_DOCS.jobsRetry.description).argument("<id>", "Job ID").requiredOption("-q, --queue <name>", "Queue name").requiredOption("-b, --bucket <id>", "Bucket ID").addHelpText("after", renderCommandHelp("jobsRetry")).action(async (id, options) => {
273
275
  try {
274
- const { retryJob } = await import("./jobs-PTV2W5PJ.js");
276
+ const { retryJob } = await import("./jobs-TND5AHCL.js");
275
277
  await retryJob(id, options);
276
278
  } catch (err) {
277
279
  handleError(err);
@@ -279,7 +281,7 @@ jobsCmd.command("retry").description(CLI_DOCS.jobsRetry.description).argument("<
279
281
  });
280
282
  jobsCmd.command("delete").description(CLI_DOCS.jobsDelete.description).argument("<id>", "Job ID").requiredOption("-q, --queue <name>", "Queue name").requiredOption("-b, --bucket <id>", "Bucket ID").addHelpText("after", renderCommandHelp("jobsDelete")).action(async (id, options) => {
281
283
  try {
282
- const { deleteJob } = await import("./jobs-PTV2W5PJ.js");
284
+ const { deleteJob } = await import("./jobs-TND5AHCL.js");
283
285
  await deleteJob(id, options);
284
286
  } catch (err) {
285
287
  handleError(err);
@@ -288,7 +290,7 @@ jobsCmd.command("delete").description(CLI_DOCS.jobsDelete.description).argument(
288
290
  var adminCmd = program.command("admin").description(CLI_DOCS.admin.description).addHelpText("after", renderCommandHelp("admin"));
289
291
  adminCmd.command("health").description(CLI_DOCS.adminHealth.description).option("--json", "Output as JSON").addHelpText("after", renderCommandHelp("adminHealth")).action(async (options) => {
290
292
  try {
291
- const { health } = await import("./health-RICGWQGN.js");
293
+ const { health } = await import("./health-SH6T6DZS.js");
292
294
  await health(options);
293
295
  } catch (err) {
294
296
  handleError(err);
@@ -298,7 +300,7 @@ var backfillCmd = adminCmd.command("backfill").description(CLI_DOCS.adminBackfil
298
300
  backfillCmd.command("dimensions").description("Backfill image dimensions").option("--bucket <id>", "Bucket ID").option("-l, --limit <count>", "Max files to enqueue").option("--dry-run", "Preview without enqueuing").option("--json", "Output as JSON").action(
299
301
  async (options) => {
300
302
  try {
301
- const { backfillDimensions } = await import("./backfill-EVZT7RH6.js");
303
+ const { backfillDimensions } = await import("./backfill-VAORMLMY.js");
302
304
  await backfillDimensions(options);
303
305
  } catch (err) {
304
306
  handleError(err);
@@ -308,7 +310,7 @@ backfillCmd.command("dimensions").description("Backfill image dimensions").optio
308
310
  backfillCmd.command("colors").description("Backfill color extraction").option("--bucket <id>", "Bucket ID").option("-l, --limit <count>", "Max files to enqueue").option("--dry-run", "Preview without enqueuing").option("--json", "Output as JSON").action(
309
311
  async (options) => {
310
312
  try {
311
- const { backfillColors } = await import("./backfill-EVZT7RH6.js");
313
+ const { backfillColors } = await import("./backfill-VAORMLMY.js");
312
314
  await backfillColors(options);
313
315
  } catch (err) {
314
316
  handleError(err);
@@ -318,7 +320,7 @@ backfillCmd.command("colors").description("Backfill color extraction").option("-
318
320
  backfillCmd.command("embeddings").description("Backfill embedding generation").option("--bucket <id>", "Bucket ID").option("-l, --limit <count>", "Max files to enqueue").option("--dry-run", "Preview without enqueuing").option("--json", "Output as JSON").action(
319
321
  async (options) => {
320
322
  try {
321
- const { backfillEmbeddings } = await import("./backfill-EVZT7RH6.js");
323
+ const { backfillEmbeddings } = await import("./backfill-VAORMLMY.js");
322
324
  await backfillEmbeddings(options);
323
325
  } catch (err) {
324
326
  handleError(err);
@@ -328,7 +330,7 @@ backfillCmd.command("embeddings").description("Backfill embedding generation").o
328
330
  adminCmd.command("cleanup-drops").description(CLI_DOCS.adminCleanupDrops.description).option("--max-age-hours <hours>", "Max age in hours").option("--dry-run", "Preview without deleting").option("--json", "Output as JSON").addHelpText("after", renderCommandHelp("adminCleanupDrops")).action(
329
331
  async (options) => {
330
332
  try {
331
- const { cleanupDrops } = await import("./maintenance-ZJW2ES4L.js");
333
+ const { cleanupDrops } = await import("./maintenance-V2TXPXQE.js");
332
334
  await cleanupDrops(options);
333
335
  } catch (err) {
334
336
  handleError(err);
@@ -337,7 +339,7 @@ adminCmd.command("cleanup-drops").description(CLI_DOCS.adminCleanupDrops.descrip
337
339
  );
338
340
  adminCmd.command("purge-events").description(CLI_DOCS.adminPurgeEvents.description).option("--dry-run", "Preview without deleting").option("--json", "Output as JSON").addHelpText("after", renderCommandHelp("adminPurgeEvents")).action(async (options) => {
339
341
  try {
340
- const { purgeEvents } = await import("./maintenance-ZJW2ES4L.js");
342
+ const { purgeEvents } = await import("./maintenance-V2TXPXQE.js");
341
343
  await purgeEvents(options);
342
344
  } catch (err) {
343
345
  handleError(err);
@@ -346,7 +348,7 @@ adminCmd.command("purge-events").description(CLI_DOCS.adminPurgeEvents.descripti
346
348
  adminCmd.command("reconcile-files").description(CLI_DOCS.adminReconcileFiles.description).requiredOption("--bucket <id>", "Bucket ID").option("--dry-run", "Preview without reconciling").option("--json", "Output as JSON").addHelpText("after", renderCommandHelp("adminReconcileFiles")).action(
347
349
  async (options) => {
348
350
  try {
349
- const { reconcileFiles } = await import("./maintenance-ZJW2ES4L.js");
351
+ const { reconcileFiles } = await import("./maintenance-V2TXPXQE.js");
350
352
  await reconcileFiles(options);
351
353
  } catch (err) {
352
354
  handleError(err);
@@ -355,7 +357,7 @@ adminCmd.command("reconcile-files").description(CLI_DOCS.adminReconcileFiles.des
355
357
  );
356
358
  adminCmd.command("retry-sync-failures").description(CLI_DOCS.adminRetrySyncFailures.description).option("--json", "Output as JSON").addHelpText("after", renderCommandHelp("adminRetrySyncFailures")).action(async (options) => {
357
359
  try {
358
- const { retrySyncFailures } = await import("./maintenance-ZJW2ES4L.js");
360
+ const { retrySyncFailures } = await import("./maintenance-V2TXPXQE.js");
359
361
  await retrySyncFailures(options);
360
362
  } catch (err) {
361
363
  handleError(err);
@@ -364,7 +366,7 @@ adminCmd.command("retry-sync-failures").description(CLI_DOCS.adminRetrySyncFailu
364
366
  var adminJobsCmd = adminCmd.command("jobs").description(CLI_DOCS.adminJobs.description).option("--org <id>", "Filter by org ID").option("--bucket <id>", "Filter by bucket ID").option("-s, --status <status>", "Filter by status").option("-q, --queue <name>", "Filter by queue name").option("-l, --limit <count>", "Max jobs to return").option("--json", "Output as JSON").addHelpText("after", renderCommandHelp("adminJobs")).action(
365
367
  async (options) => {
366
368
  try {
367
- const { listAdminJobs } = await import("./jobs-ZWSEXNFA.js");
369
+ const { listAdminJobs } = await import("./jobs-ROJFRPMR.js");
368
370
  await listAdminJobs(options);
369
371
  } catch (err) {
370
372
  handleError(err);
@@ -373,7 +375,7 @@ var adminJobsCmd = adminCmd.command("jobs").description(CLI_DOCS.adminJobs.descr
373
375
  );
374
376
  adminJobsCmd.command("retry").description(CLI_DOCS.adminJobsRetry.description).argument("<id>", "Job ID").requiredOption("-q, --queue <name>", "Queue name").addHelpText("after", renderCommandHelp("adminJobsRetry")).action(async (id, options) => {
375
377
  try {
376
- const { retryAdminJob } = await import("./jobs-ZWSEXNFA.js");
378
+ const { retryAdminJob } = await import("./jobs-ROJFRPMR.js");
377
379
  await retryAdminJob(id, options);
378
380
  } catch (err) {
379
381
  handleError(err);
@@ -381,7 +383,7 @@ adminJobsCmd.command("retry").description(CLI_DOCS.adminJobsRetry.description).a
381
383
  });
382
384
  adminJobsCmd.command("delete").description(CLI_DOCS.adminJobsDelete.description).argument("<id>", "Job ID").requiredOption("-q, --queue <name>", "Queue name").addHelpText("after", renderCommandHelp("adminJobsDelete")).action(async (id, options) => {
383
385
  try {
384
- const { deleteAdminJob } = await import("./jobs-ZWSEXNFA.js");
386
+ const { deleteAdminJob } = await import("./jobs-ROJFRPMR.js");
385
387
  await deleteAdminJob(id, options);
386
388
  } catch (err) {
387
389
  handleError(err);
@@ -389,7 +391,7 @@ adminJobsCmd.command("delete").description(CLI_DOCS.adminJobsDelete.description)
389
391
  });
390
392
  var adminQueuesCmd = adminCmd.command("queues").description(CLI_DOCS.adminQueues.description).option("--json", "Output as JSON").addHelpText("after", renderCommandHelp("adminQueues")).action(async (options) => {
391
393
  try {
392
- const { listQueues } = await import("./queues-EZ2VZGXQ.js");
394
+ const { listQueues } = await import("./queues-NR25TGT7.js");
393
395
  await listQueues(options);
394
396
  } catch (err) {
395
397
  handleError(err);
@@ -398,7 +400,7 @@ var adminQueuesCmd = adminCmd.command("queues").description(CLI_DOCS.adminQueues
398
400
  adminQueuesCmd.command("clean").description(CLI_DOCS.adminQueuesClean.description).argument("<name>", "Queue name").option("--failed", "Clean failed jobs").option("--completed", "Clean completed jobs").option("--grace <seconds>", "Grace period in seconds").addHelpText("after", renderCommandHelp("adminQueuesClean")).action(
399
401
  async (name, options) => {
400
402
  try {
401
- const { cleanQueue } = await import("./queues-EZ2VZGXQ.js");
403
+ const { cleanQueue } = await import("./queues-NR25TGT7.js");
402
404
  await cleanQueue(name, options);
403
405
  } catch (err) {
404
406
  handleError(err);
@@ -433,7 +435,7 @@ program.command("open").description(CLI_DOCS.open.description).argument("<bucket
433
435
  });
434
436
  program.command("describe").argument("[command]", "Command path (dot notation, e.g. search.text)").description("Show command schema for AI agents").action(async (command) => {
435
437
  try {
436
- const { describeCommand } = await import("./describe-J4ZMUXK7.js");
438
+ const { describeCommand } = await import("./describe-HSEHMJVD.js");
437
439
  describeCommand(command ?? "");
438
440
  } catch (err) {
439
441
  handleError(err);
@@ -0,0 +1,79 @@
1
+ import {
2
+ CLI_DOCS
3
+ } from "./chunk-XJDK2CBE.js";
4
+ import {
5
+ output
6
+ } from "./chunk-5BVMPHKH.js";
7
+
8
+ // src/commands/describe.ts
9
+ var COMMAND_MAP = {
10
+ upload: "upload",
11
+ drop: "drop",
12
+ delete: "delete",
13
+ whoami: "whoami",
14
+ open: "open",
15
+ buckets: "buckets",
16
+ "buckets.create": "bucketsCreate",
17
+ "buckets.rename": "bucketsRename",
18
+ "buckets.delete": "bucketsDelete",
19
+ files: "files",
20
+ "files.get": "filesGet",
21
+ "files.update": "filesUpdate",
22
+ "files.enrich": "filesEnrich",
23
+ "files.missing": "filesMissing",
24
+ search: "search",
25
+ "search.text": "searchText",
26
+ "search.similar": "searchSimilar",
27
+ "search.color": "searchColor",
28
+ "search.diverse": "searchDiverse",
29
+ tags: "tags",
30
+ "tags.create": "tagsCreate",
31
+ "tags.delete": "tagsDelete",
32
+ drops: "drops",
33
+ "drops.delete": "dropsDelete",
34
+ profiles: "profiles",
35
+ "profiles.create": "profilesCreate",
36
+ "profiles.get": "profilesGet",
37
+ "profiles.delete": "profilesDelete",
38
+ jobs: "jobs",
39
+ "jobs.retry": "jobsRetry",
40
+ "jobs.delete": "jobsDelete",
41
+ admin: "admin",
42
+ "admin.health": "adminHealth",
43
+ "admin.backfill": "adminBackfill",
44
+ "admin.cleanup-drops": "adminCleanupDrops",
45
+ "admin.purge-events": "adminPurgeEvents",
46
+ "admin.reconcile-files": "adminReconcileFiles",
47
+ "admin.retry-sync-failures": "adminRetrySyncFailures",
48
+ "admin.jobs": "adminJobs",
49
+ "admin.jobs.retry": "adminJobsRetry",
50
+ "admin.jobs.delete": "adminJobsDelete",
51
+ "admin.queues": "adminQueues",
52
+ "admin.queues.clean": "adminQueuesClean"
53
+ };
54
+ function describeCommand(commandPath) {
55
+ if (!commandPath) {
56
+ output({
57
+ commands: Object.keys(COMMAND_MAP).sort()
58
+ });
59
+ return;
60
+ }
61
+ const docKey = COMMAND_MAP[commandPath];
62
+ if (!(docKey && CLI_DOCS[docKey])) {
63
+ console.error(`Unknown command: ${commandPath}`);
64
+ console.error(`Available: ${Object.keys(COMMAND_MAP).sort().join(", ")}`);
65
+ process.exit(1);
66
+ return;
67
+ }
68
+ const doc = CLI_DOCS[docKey];
69
+ output({
70
+ command: commandPath,
71
+ description: doc.description,
72
+ usage: doc.usage,
73
+ examples: doc.examples,
74
+ notes: doc.notes ?? []
75
+ });
76
+ }
77
+ export {
78
+ describeCommand
79
+ };
@@ -0,0 +1,79 @@
1
+ import {
2
+ CLI_DOCS
3
+ } from "./chunk-XJDK2CBE.js";
4
+ import {
5
+ output
6
+ } from "./chunk-5IX3ASXH.js";
7
+
8
+ // src/commands/describe.ts
9
+ var COMMAND_MAP = {
10
+ upload: "upload",
11
+ drop: "drop",
12
+ delete: "delete",
13
+ whoami: "whoami",
14
+ open: "open",
15
+ buckets: "buckets",
16
+ "buckets.create": "bucketsCreate",
17
+ "buckets.rename": "bucketsRename",
18
+ "buckets.delete": "bucketsDelete",
19
+ files: "files",
20
+ "files.get": "filesGet",
21
+ "files.update": "filesUpdate",
22
+ "files.enrich": "filesEnrich",
23
+ "files.missing": "filesMissing",
24
+ search: "search",
25
+ "search.text": "searchText",
26
+ "search.similar": "searchSimilar",
27
+ "search.color": "searchColor",
28
+ "search.diverse": "searchDiverse",
29
+ tags: "tags",
30
+ "tags.create": "tagsCreate",
31
+ "tags.delete": "tagsDelete",
32
+ drops: "drops",
33
+ "drops.delete": "dropsDelete",
34
+ profiles: "profiles",
35
+ "profiles.create": "profilesCreate",
36
+ "profiles.get": "profilesGet",
37
+ "profiles.delete": "profilesDelete",
38
+ jobs: "jobs",
39
+ "jobs.retry": "jobsRetry",
40
+ "jobs.delete": "jobsDelete",
41
+ admin: "admin",
42
+ "admin.health": "adminHealth",
43
+ "admin.backfill": "adminBackfill",
44
+ "admin.cleanup-drops": "adminCleanupDrops",
45
+ "admin.purge-events": "adminPurgeEvents",
46
+ "admin.reconcile-files": "adminReconcileFiles",
47
+ "admin.retry-sync-failures": "adminRetrySyncFailures",
48
+ "admin.jobs": "adminJobs",
49
+ "admin.jobs.retry": "adminJobsRetry",
50
+ "admin.jobs.delete": "adminJobsDelete",
51
+ "admin.queues": "adminQueues",
52
+ "admin.queues.clean": "adminQueuesClean"
53
+ };
54
+ function describeCommand(commandPath) {
55
+ if (!commandPath) {
56
+ output({
57
+ commands: Object.keys(COMMAND_MAP).sort()
58
+ });
59
+ return;
60
+ }
61
+ const docKey = COMMAND_MAP[commandPath];
62
+ if (!(docKey && CLI_DOCS[docKey])) {
63
+ console.error(`Unknown command: ${commandPath}`);
64
+ console.error(`Available: ${Object.keys(COMMAND_MAP).sort().join(", ")}`);
65
+ process.exit(1);
66
+ return;
67
+ }
68
+ const doc = CLI_DOCS[docKey];
69
+ output({
70
+ command: commandPath,
71
+ description: doc.description,
72
+ usage: doc.usage,
73
+ examples: doc.examples,
74
+ notes: doc.notes ?? []
75
+ });
76
+ }
77
+ export {
78
+ describeCommand
79
+ };