fluncle 0.232.0 → 0.233.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 +137 -2
  2. package/package.json +1 -1
package/bin/fluncle.mjs CHANGED
@@ -622,7 +622,7 @@ function parseVersion(version) {
622
622
  var currentVersion;
623
623
  var init_version = __esm(() => {
624
624
  init_output();
625
- currentVersion = "0.232.0".trim() ? "0.232.0".trim() : "0.1.0";
625
+ currentVersion = "0.233.0".trim() ? "0.233.0".trim() : "0.1.0";
626
626
  });
627
627
 
628
628
  // src/update-notifier.ts
@@ -2335,7 +2335,7 @@ function parseVersion2(version) {
2335
2335
  var currentVersion2, latestReleaseUrl = "https://api.github.com/repos/mauricekleine/fluncle/releases/latest";
2336
2336
  var init_version2 = __esm(() => {
2337
2337
  init_output();
2338
- currentVersion2 = "0.232.0".trim() ? "0.232.0".trim() : "0.1.0";
2338
+ currentVersion2 = "0.233.0".trim() ? "0.233.0".trim() : "0.1.0";
2339
2339
  });
2340
2340
 
2341
2341
  // ../../packages/registry/src/index.ts
@@ -11974,6 +11974,78 @@ var init_admin_projections = __esm(() => {
11974
11974
  };
11975
11975
  });
11976
11976
 
11977
+ // ../../packages/contracts/src/orpc/admin-vectors.ts
11978
+ var VectorServingReasonSchema, ReadinessSchema, VectorServingStatusSchema, VectorServingResponseSchema, getVectorServing, setVectorServing, adminVectorsContract;
11979
+ var init_admin_vectors = __esm(() => {
11980
+ init_dist3();
11981
+ init_zod();
11982
+ VectorServingReasonSchema = _enum([
11983
+ "artifact_contract_mismatch",
11984
+ "checkpoint_mismatch",
11985
+ "consumer_contract_mismatch",
11986
+ "consumer_not_active",
11987
+ "consumer_rebuild_incomplete",
11988
+ "consumer_unavailable",
11989
+ "delta_stale",
11990
+ "empty_index",
11991
+ "pending_ack",
11992
+ "producer_backlog",
11993
+ "replica_stale",
11994
+ "sonar_not_ok",
11995
+ "sonar_unavailable",
11996
+ "build_identity_missing",
11997
+ "validation_failed"
11998
+ ]);
11999
+ ReadinessSchema = object({
12000
+ ready: boolean2(),
12001
+ reasons: array(VectorServingReasonSchema)
12002
+ });
12003
+ VectorServingStatusSchema = object({
12004
+ commissioning: ReadinessSchema,
12005
+ enabled: boolean2(),
12006
+ evidence: object({
12007
+ artifactVersion: string2().nullable(),
12008
+ checkpoint: number2().int().nonnegative().nullable(),
12009
+ checkpointedAt: string2().nullable(),
12010
+ commit: string2().nullable(),
12011
+ consumerAppliedThroughSeq: number2().int().nonnegative().nullable(),
12012
+ consumerHeadSeq: number2().int().nonnegative().nullable(),
12013
+ consumerId: string2().nullable(),
12014
+ consumerState: _enum(["active", "inactive", "rebuilding"]).nullable(),
12015
+ deltaAgeSeconds: number2().int().nonnegative().nullable(),
12016
+ deltaBacklog: number2().int().nonnegative().nullable(),
12017
+ pendingAck: boolean2().nullable(),
12018
+ replicaLagSeconds: number2().int().nullable(),
12019
+ tracks: number2().int().nonnegative().nullable(),
12020
+ validation: _enum(["last_attempt_failed", "valid"]).nullable()
12021
+ }),
12022
+ runtime: ReadinessSchema,
12023
+ target: literal("tracks")
12024
+ });
12025
+ VectorServingResponseSchema = object({
12026
+ ok: literal(true),
12027
+ status: VectorServingStatusSchema
12028
+ });
12029
+ getVectorServing = oc.route({
12030
+ method: "GET",
12031
+ operationId: "getVectorServing",
12032
+ path: "/admin/vectors/tracks/serving",
12033
+ summary: "Read track vector-serving readiness",
12034
+ tags: ["Admin"]
12035
+ }).output(VectorServingResponseSchema);
12036
+ setVectorServing = oc.route({
12037
+ method: "PUT",
12038
+ operationId: "setVectorServing",
12039
+ path: "/admin/vectors/tracks/serving",
12040
+ summary: "Enable or disable track vector serving",
12041
+ tags: ["Admin"]
12042
+ }).input(object({ enabled: boolean2() })).output(VectorServingResponseSchema);
12043
+ adminVectorsContract = {
12044
+ get_vector_serving: getVectorServing,
12045
+ set_vector_serving: setVectorServing
12046
+ };
12047
+ });
12048
+
11977
12049
  // ../../packages/contracts/src/orpc/admin-reach.ts
11978
12050
  var CollectedPlatformSchema, SkippedPlatformSchema, FailedPlatformSchema, recordPlatformStats, adminReachContract;
11979
12051
  var init_admin_reach = __esm(() => {
@@ -15768,6 +15840,7 @@ var init_orpc = __esm(() => {
15768
15840
  init_admin_galaxies();
15769
15841
  init_admin_prompts();
15770
15842
  init_admin_projections();
15843
+ init_admin_vectors();
15771
15844
  init_admin_reach();
15772
15845
  init_albums2();
15773
15846
  init_artists2();
@@ -15827,6 +15900,7 @@ var init_orpc = __esm(() => {
15827
15900
  init_admin_artifacts();
15828
15901
  init_admin_operation_receipts();
15829
15902
  init_admin_projections();
15903
+ init_admin_vectors();
15830
15904
  init_admin_artist_rules();
15831
15905
  init_admin_artists();
15832
15906
  init_admin_attention2();
@@ -15892,6 +15966,7 @@ var init_orpc = __esm(() => {
15892
15966
  ...adminGalaxiesContract,
15893
15967
  ...adminPromptsContract,
15894
15968
  ...adminProjectionsContract,
15969
+ ...adminVectorsContract,
15895
15970
  ...adminReachContract,
15896
15971
  ...albumsContract,
15897
15972
  ...artistsContract,
@@ -16085,6 +16160,39 @@ var init_admin_projections2 = __esm(() => {
16085
16160
  init_api();
16086
16161
  });
16087
16162
 
16163
+ // src/commands/admin-vectors.ts
16164
+ async function getVectorServingCommand(target) {
16165
+ return adminApiGet(`/api/v1/admin/vectors/${target}/serving`);
16166
+ }
16167
+ async function setVectorServingCommand(input) {
16168
+ return adminApiPut(`/api/v1/admin/vectors/${input.target}/serving`, {
16169
+ enabled: input.enabled
16170
+ });
16171
+ }
16172
+ function parseVectorTarget(value) {
16173
+ if (value !== "tracks") {
16174
+ throw new Error("target must be tracks");
16175
+ }
16176
+ return value;
16177
+ }
16178
+ function parseVectorEnabled(value) {
16179
+ if (value !== "true" && value !== "false") {
16180
+ throw new Error("--enabled must be true or false");
16181
+ }
16182
+ return value === "true";
16183
+ }
16184
+ function vectorServingStatusLines(status) {
16185
+ const reasons = (label, values) => values.length === 0 ? `${label}: ready.` : `${label}: ${values.join(", ")}.`;
16186
+ return [
16187
+ `tracks: ${status.enabled ? "enabled" : "disabled"}.`,
16188
+ reasons("commissioning", status.commissioning.reasons),
16189
+ reasons("runtime", status.runtime.reasons)
16190
+ ];
16191
+ }
16192
+ var init_admin_vectors2 = __esm(() => {
16193
+ init_api();
16194
+ });
16195
+
16088
16196
  // src/commands/admin-artifacts.ts
16089
16197
  function consumerPath(consumerId) {
16090
16198
  return `/api/v1/admin/artifacts/consumers/${encodeURIComponent(consumerId)}`;
@@ -20870,6 +20978,33 @@ JSON field reference:
20870
20978
  }
20871
20979
  console.log(`${result.target}: cutover ${result.enabled ? "open" : "dark"}.`);
20872
20980
  });
20981
+ const adminVectors = configureCommand(admin.command("vectors").description("Vector-serving readiness and rollback controls"));
20982
+ adminVectors.action(() => {
20983
+ adminVectors.outputHelp();
20984
+ });
20985
+ adminVectors.command("get").description("Read vector-serving commissioning and runtime readiness").argument("<target>", "tracks").option("--json", "Print the complete machine-readable readiness contract", false).action(async (targetValue, options) => {
20986
+ const vectors = await Promise.resolve().then(() => (init_admin_vectors2(), {}));
20987
+ const result = await getVectorServingCommand(parseVectorTarget(targetValue));
20988
+ if (options.json) {
20989
+ printJson(result);
20990
+ return;
20991
+ }
20992
+ console.log(vectorServingStatusLines(result.status).join(`
20993
+ `));
20994
+ });
20995
+ adminVectors.command("set").description("Enable a commissioned vector target or disable it unconditionally").argument("<target>", "tracks").requiredOption("--enabled <boolean>", "true enables; false disables unconditionally").option("--json", "Print the stored flag and current readiness as JSON", false).action(async (targetValue, options) => {
20996
+ const vectors = await Promise.resolve().then(() => (init_admin_vectors2(), {}));
20997
+ const result = await setVectorServingCommand({
20998
+ enabled: parseVectorEnabled(options.enabled),
20999
+ target: parseVectorTarget(targetValue)
21000
+ });
21001
+ if (options.json) {
21002
+ printJson(result);
21003
+ return;
21004
+ }
21005
+ console.log(vectorServingStatusLines(result.status).join(`
21006
+ `));
21007
+ });
20873
21008
  const adminArtifacts = configureCommand(admin.command("artifacts").description("Versioned derived-artifact change log"));
20874
21009
  adminArtifacts.action(() => {
20875
21010
  adminArtifacts.outputHelp();
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.232.0"
34
+ "version": "0.233.0"
35
35
  }