fluncle 0.145.0 → 0.147.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 (2) hide show
  1. package/bin/fluncle.mjs +19 -3
  2. package/package.json +1 -1
package/bin/fluncle.mjs CHANGED
@@ -561,7 +561,7 @@ function parseVersion(version) {
561
561
  var currentVersion;
562
562
  var init_version = __esm(() => {
563
563
  init_output();
564
- currentVersion = "0.145.0".trim() ? "0.145.0".trim() : "0.1.0";
564
+ currentVersion = "0.147.0".trim() ? "0.147.0".trim() : "0.1.0";
565
565
  });
566
566
 
567
567
  // src/update-notifier.ts
@@ -2189,7 +2189,7 @@ function parseVersion2(version) {
2189
2189
  var currentVersion2, latestReleaseUrl = "https://api.github.com/repos/mauricekleine/fluncle/releases/latest";
2190
2190
  var init_version2 = __esm(() => {
2191
2191
  init_output();
2192
- currentVersion2 = "0.145.0".trim() ? "0.145.0".trim() : "0.1.0";
2192
+ currentVersion2 = "0.147.0".trim() ? "0.147.0".trim() : "0.1.0";
2193
2193
  });
2194
2194
 
2195
2195
  // ../../packages/registry/src/index.ts
@@ -5730,6 +5730,7 @@ __export(exports_admin_catalogue, {
5730
5730
  verifyCaptureCommand: () => verifyCaptureCommand,
5731
5731
  setTrackDismissedCommand: () => setTrackDismissedCommand,
5732
5732
  listUnverifiedCapturesCommand: () => listUnverifiedCapturesCommand,
5733
+ forceCaptureCommand: () => forceCaptureCommand,
5733
5734
  flagWrongAudioCommand: () => flagWrongAudioCommand,
5734
5735
  crawlStatusCommand: () => crawlStatusCommand,
5735
5736
  crawlCatalogueCommand: () => crawlCatalogueCommand,
@@ -5756,6 +5757,11 @@ async function clearWrongAudioCommand(trackId) {
5756
5757
  trackId
5757
5758
  });
5758
5759
  }
5760
+ async function forceCaptureCommand(trackId) {
5761
+ return adminApiPost("/api/admin/catalogue/force-capture", {
5762
+ trackId
5763
+ });
5764
+ }
5759
5765
  async function flagWrongAudioCommand(trackId) {
5760
5766
  return adminApiPost("/api/admin/catalogue/wrong-audio/flag", {
5761
5767
  trackId
@@ -8870,6 +8876,15 @@ function addAdminCommands(program2) {
8870
8876
  }
8871
8877
  console.log(flagged ? `Flagged ${trackId}. Its vector is out of the ranking and a fresh capture is queued (the bad bytes are hash-rejected).` : `${trackId} is not a captured finding \u2014 nothing to flag.`);
8872
8878
  });
8879
+ catalogue.command("force-capture").description("Overrule the duplicate veto on one catalogue row so it can be captured (operator)").argument("<trackId>", "The catalogue track id to capture anyway").option("--json", "Print JSON", false).action(async (trackId, options) => {
8880
+ const { forceCaptureCommand: forceCaptureCommand2 } = await Promise.resolve().then(() => (init_admin_catalogue(), exports_admin_catalogue));
8881
+ const { forced } = await forceCaptureCommand2(trackId);
8882
+ if (options.json) {
8883
+ printJson({ forced, ok: true });
8884
+ return;
8885
+ }
8886
+ console.log(forced ? `Forced ${trackId}. The duplicate veto is lifted; it re-ranks onto the capture ladder and the next open-budget tick buys it.` : `${trackId} was not vetoed as a duplicate \u2014 nothing to force.`);
8887
+ });
8873
8888
  catalogue.command("verify").description("Capture verification: the unverified worklist (--queue), or record one verdict").argument("[trackId]", "The track whose capture verdict to record (omit with --queue)").option("--queue", "List captured rows not yet verified against their preview", false).option("--verdict <verdict>", "The fingerprint verdict: match | mismatch | no-preview").option("--limit <limit>", "Worklist rows (default 50, max 200)").option("--json", "Print JSON", false).action(async (trackId, options) => {
8874
8889
  const { listUnverifiedCapturesCommand: listUnverifiedCapturesCommand2, verifyCaptureCommand: verifyCaptureCommand2 } = await Promise.resolve().then(() => (init_admin_catalogue(), exports_admin_catalogue));
8875
8890
  if (options.queue) {
@@ -10581,7 +10596,8 @@ async function runCatalogueRank(options, catalogueRankCommand2) {
10581
10596
  return;
10582
10597
  }
10583
10598
  const quarantine = summary.quarantined > 0 ? ` Quarantined ${summary.quarantined} as wrong audio.` : "";
10584
- console.log(`Ranked ${summary.scored} against ${summary.embeddedFindings} embedded findings; prioritized ${summary.prioritized} for capture.${quarantine} ${summary.remaining} still stale.`);
10599
+ const deduped = summary.catalogueDuplicates > 0 ? ` Marked ${summary.catalogueDuplicates} as catalogue duplicates.` : "";
10600
+ console.log(`Ranked ${summary.scored} against ${summary.embeddedFindings} embedded findings; prioritized ${summary.prioritized} for capture.${quarantine}${deduped} ${summary.remaining} still stale.`);
10585
10601
  }
10586
10602
  async function runCatalogueList(options, catalogueListCommand2) {
10587
10603
  const { summary, tracks } = await catalogueListCommand2({
package/package.json CHANGED
@@ -31,5 +31,5 @@
31
31
  "url": "git+https://github.com/mauricekleine/fluncle.git"
32
32
  },
33
33
  "type": "module",
34
- "version": "0.145.0"
34
+ "version": "0.147.0"
35
35
  }