fluncle 0.155.0 → 0.156.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.
- package/bin/fluncle.mjs +52 -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.
|
|
564
|
+
currentVersion = "0.156.0".trim() ? "0.156.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.
|
|
2192
|
+
currentVersion2 = "0.156.0".trim() ? "0.156.0".trim() : "0.1.0";
|
|
2193
2193
|
});
|
|
2194
2194
|
|
|
2195
2195
|
// ../../packages/registry/src/index.ts
|
|
@@ -3025,6 +3025,28 @@ var init_src = __esm(() => {
|
|
|
3025
3025
|
probeConfig: { cadenceMs: 10 * MINUTE_MS, cronName: "fluncle-note", kind: "cron" },
|
|
3026
3026
|
weights: { status: "hidden" }
|
|
3027
3027
|
},
|
|
3028
|
+
{
|
|
3029
|
+
command: "fluncle admin artists describe --queue",
|
|
3030
|
+
exposedContent: [
|
|
3031
|
+
"auto-author the /artist/<slug> voiced bio, fill-empty-only (hybrid: one claude -p call)"
|
|
3032
|
+
],
|
|
3033
|
+
kind: "cron",
|
|
3034
|
+
name: "cron.artist-bio",
|
|
3035
|
+
operatorNotes: "every 30m. Hybrid --no-agent; one claude -p authors the paragraph off best-effort Firecrawl facts + identity. Never clobbers an operator bio. Box activation operator-gated. Source: docs/agents/hermes/scripts/{entity-bio-sweep.ts,artist-bio-sweep.sh}.",
|
|
3036
|
+
probeConfig: { cadenceMs: 30 * MINUTE_MS, cronName: "fluncle-artist-bio", kind: "cron" },
|
|
3037
|
+
weights: { status: "hidden" }
|
|
3038
|
+
},
|
|
3039
|
+
{
|
|
3040
|
+
command: "fluncle admin labels describe --queue",
|
|
3041
|
+
exposedContent: [
|
|
3042
|
+
"auto-author the /label/<slug> voiced bio, fill-empty-only (hybrid: one claude -p call)"
|
|
3043
|
+
],
|
|
3044
|
+
kind: "cron",
|
|
3045
|
+
name: "cron.label-bio",
|
|
3046
|
+
operatorNotes: "every 30m. Hybrid --no-agent; one claude -p authors the paragraph off best-effort Firecrawl facts + identity. Never clobbers an operator bio. Box activation operator-gated. Source: docs/agents/hermes/scripts/{entity-bio-sweep.ts,label-bio-sweep.sh}.",
|
|
3047
|
+
probeConfig: { cadenceMs: 30 * MINUTE_MS, cronName: "fluncle-label-bio", kind: "cron" },
|
|
3048
|
+
weights: { status: "hidden" }
|
|
3049
|
+
},
|
|
3028
3050
|
{
|
|
3029
3051
|
command: "fluncle admin submissions triage",
|
|
3030
3052
|
exposedContent: [
|
|
@@ -5896,6 +5918,7 @@ var exports_admin_artists = {};
|
|
|
5896
5918
|
__export(exports_admin_artists, {
|
|
5897
5919
|
resolveArtistCommand: () => resolveArtistCommand,
|
|
5898
5920
|
listArtistsCommand: () => listArtistsCommand,
|
|
5921
|
+
draftArtistBioCommand: () => draftArtistBioCommand,
|
|
5899
5922
|
describeArtistCommand: () => describeArtistCommand,
|
|
5900
5923
|
buildBioBody: () => buildBioBody,
|
|
5901
5924
|
backfillArtistsCommand: () => backfillArtistsCommand,
|
|
@@ -5915,6 +5938,9 @@ function buildBioBody(options) {
|
|
|
5915
5938
|
async function describeArtistCommand(slug, options) {
|
|
5916
5939
|
return adminApiPost(`/api/admin/artists/${encodeURIComponent(slug)}/bio`, buildBioBody(options));
|
|
5917
5940
|
}
|
|
5941
|
+
async function draftArtistBioCommand(slug) {
|
|
5942
|
+
return adminApiGet(`/api/admin/artists/${encodeURIComponent(slug)}/bio-draft`);
|
|
5943
|
+
}
|
|
5918
5944
|
async function artistsBioQueueCommand(limit) {
|
|
5919
5945
|
const response = await adminApiGet(`/api/admin/artists/bio-queue?limit=${limit}`);
|
|
5920
5946
|
return response.artists;
|
|
@@ -5966,12 +5992,16 @@ var init_admin_artists2 = __esm(() => {
|
|
|
5966
5992
|
var exports_admin_labels = {};
|
|
5967
5993
|
__export(exports_admin_labels, {
|
|
5968
5994
|
labelsBioQueueCommand: () => labelsBioQueueCommand,
|
|
5995
|
+
draftLabelBioCommand: () => draftLabelBioCommand,
|
|
5969
5996
|
describeLabelCommand: () => describeLabelCommand,
|
|
5970
5997
|
backfillLabelImagesCommand: () => backfillLabelImagesCommand
|
|
5971
5998
|
});
|
|
5972
5999
|
async function describeLabelCommand(slug, options) {
|
|
5973
6000
|
return adminApiPost(`/api/admin/labels/${encodeURIComponent(slug)}/bio`, buildBioBody2(options));
|
|
5974
6001
|
}
|
|
6002
|
+
async function draftLabelBioCommand(slug) {
|
|
6003
|
+
return adminApiGet(`/api/admin/labels/${encodeURIComponent(slug)}/bio-draft`);
|
|
6004
|
+
}
|
|
5975
6005
|
async function labelsBioQueueCommand(limit) {
|
|
5976
6006
|
const response = await adminApiGet(`/api/admin/labels/bio-queue?limit=${limit}`);
|
|
5977
6007
|
return response.labels;
|
|
@@ -9175,6 +9205,10 @@ function addAdminCommands(program2) {
|
|
|
9175
9205
|
const { describeArtistCommand: describeArtistCommand2 } = await Promise.resolve().then(() => (init_admin_artists(), exports_admin_artists));
|
|
9176
9206
|
await runEntityDescribe("artist", slug, options, describeArtistCommand2);
|
|
9177
9207
|
});
|
|
9208
|
+
artists.command("draft-bio").description("Assemble the Worker-grounded bio prompt for an artist (the sweep's trigger)").argument("<slug>").option("--json", "Print JSON", false).allowExcessArguments().action(async (slug, options) => {
|
|
9209
|
+
const { draftArtistBioCommand: draftArtistBioCommand2 } = await Promise.resolve().then(() => (init_admin_artists(), exports_admin_artists));
|
|
9210
|
+
await runEntityBioDraft("artist", slug, options, draftArtistBioCommand2);
|
|
9211
|
+
});
|
|
9178
9212
|
const labels = configureCommand(admin.command("labels").description("Label entity commands (the voiced bio)"));
|
|
9179
9213
|
labels.action(() => {
|
|
9180
9214
|
labels.outputHelp();
|
|
@@ -9188,6 +9222,10 @@ function addAdminCommands(program2) {
|
|
|
9188
9222
|
const { describeLabelCommand: describeLabelCommand2 } = await Promise.resolve().then(() => (init_admin_labels(), exports_admin_labels));
|
|
9189
9223
|
await runEntityDescribe("label", slug, options, describeLabelCommand2);
|
|
9190
9224
|
});
|
|
9225
|
+
labels.command("draft-bio").description("Assemble the Worker-grounded bio prompt for a label (the sweep's trigger)").argument("<slug>").option("--json", "Print JSON", false).allowExcessArguments().action(async (slug, options) => {
|
|
9226
|
+
const { draftLabelBioCommand: draftLabelBioCommand2 } = await Promise.resolve().then(() => (init_admin_labels(), exports_admin_labels));
|
|
9227
|
+
await runEntityBioDraft("label", slug, options, draftLabelBioCommand2);
|
|
9228
|
+
});
|
|
9191
9229
|
const migrations = configureCommand(admin.command("migrations").description("One-off operator data migrations"));
|
|
9192
9230
|
migrations.action(() => {
|
|
9193
9231
|
migrations.outputHelp();
|
|
@@ -9352,6 +9390,18 @@ async function runEntityBioQueue(kind, options, queueCommand2) {
|
|
|
9352
9390
|
console.log(` ${item.slug} ${item.name}`);
|
|
9353
9391
|
}
|
|
9354
9392
|
}
|
|
9393
|
+
async function runEntityBioDraft(kind, slug, options, draftCommand) {
|
|
9394
|
+
const draft = await draftCommand(slug);
|
|
9395
|
+
if (options.json) {
|
|
9396
|
+
printJson(draft);
|
|
9397
|
+
return;
|
|
9398
|
+
}
|
|
9399
|
+
if (!draft.found) {
|
|
9400
|
+
console.log(`No ${kind} with slug ${slug}.`);
|
|
9401
|
+
return;
|
|
9402
|
+
}
|
|
9403
|
+
console.log(`Drafted a bio prompt for ${draft.name} (${draft.findingCount} finding(s), facts: ${draft.hasFacts ? "yes" : "none"}, prompt v${draft.promptVersion}).`);
|
|
9404
|
+
}
|
|
9355
9405
|
async function runTrackSimilar(idOrLogId, options, trackSimilarCommand2) {
|
|
9356
9406
|
if (!idOrLogId) {
|
|
9357
9407
|
throw new Error("Missing id. Usage: fluncle tracks similar <track_id|log_id> [--limit <n>] [--json]");
|
package/package.json
CHANGED