@melius-ai/cli 0.13.0 → 0.14.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/dist/bin/mel.js CHANGED
@@ -7,7 +7,7 @@ import {
7
7
  printUpgradeNoticeIfNeeded,
8
8
  withDefaultHelp,
9
9
  writeError
10
- } from "../chunk-5APS3BGT.js";
10
+ } from "../chunk-RTPRU2JD.js";
11
11
 
12
12
  // bin/mel.ts
13
13
  var program = createProgram();
@@ -7740,6 +7740,13 @@ var MAX_VARIATIONS = 10;
7740
7740
 
7741
7741
  // ../api-contract/src/common.ts
7742
7742
  var MessageResponseSchema = external_exports.object({ message: external_exports.string() });
7743
+ var ApiErrorResponseSchema = external_exports.object({
7744
+ statusCode: external_exports.number().int(),
7745
+ message: external_exports.string(),
7746
+ error: external_exports.string(),
7747
+ code: external_exports.string().optional(),
7748
+ retryAfterSeconds: external_exports.number().int().optional()
7749
+ });
7743
7750
  var ShareVisibilitySchema = external_exports.enum(["team", "anyone"]);
7744
7751
  var CompletedPartSchema = external_exports.object({
7745
7752
  partNumber: external_exports.number().int().positive(),
@@ -7903,6 +7910,13 @@ var customContextContract = c.router({
7903
7910
  }
7904
7911
  });
7905
7912
 
7913
+ // ../api-contract/src/rgb-color.ts
7914
+ var RgbColorSchema = external_exports.object({
7915
+ r: external_exports.number().int().min(0).max(255),
7916
+ g: external_exports.number().int().min(0).max(255),
7917
+ b: external_exports.number().int().min(0).max(255)
7918
+ });
7919
+
7906
7920
  // ../api-contract/src/files.ts
7907
7921
  var c2 = initContract();
7908
7922
  var FileSourceSchema = external_exports.enum(["upload", "generated"]);
@@ -7929,12 +7943,25 @@ var MAX_ASSET_TAG_NAME_LENGTH = 100;
7929
7943
  var FileTagSchema = external_exports.object({
7930
7944
  id: external_exports.string().uuid(),
7931
7945
  name: external_exports.string(),
7932
- color: external_exports.string()
7946
+ color: external_exports.string(),
7947
+ /**
7948
+ * Which subsystem-written tag this is, or null for a team-authored one.
7949
+ * Same open string as {@link AssetTagResponseSchema}: a chip only ever
7950
+ * needs the *fact* for the shared rules (rename freely, never delete, never
7951
+ * apply by hand), and a second system tag must not need a contract change.
7952
+ * {@link AssetSystemTag} names the one case that reads the value — the
7953
+ * sign-off projection, which a node-scoped surface has to be able to tell
7954
+ * apart from an ordinary tag.
7955
+ */
7956
+ systemTag: external_exports.string().nullable()
7933
7957
  });
7934
7958
  var FileCanvasBacklinkSchema = external_exports.object({
7935
7959
  canvasId: external_exports.string().uuid(),
7936
7960
  projectId: external_exports.string().uuid(),
7937
7961
  canvasTitle: external_exports.string(),
7962
+ // The owning project, so the picker can qualify canvases that share a
7963
+ // title. Optional: responses from a core build that predates it omit it.
7964
+ projectTitle: external_exports.string().optional(),
7938
7965
  // A node on this canvas whose active version holds the asset, so opening
7939
7966
  // the canvas can center on it. Null when no such node survives (e.g. it was
7940
7967
  // deleted but the asset is still referenced elsewhere on the canvas).
@@ -7987,7 +8014,11 @@ var FileGenerationSchema = external_exports.object({
7987
8014
  *
7988
8015
  * Optional so a client that ships ahead of the server keeps validating —
7989
8016
  * absent reads the same as "not a tool run". */
7990
- sourceToolName: external_exports.string().nullable().optional()
8017
+ sourceToolName: external_exports.string().nullable().optional(),
8018
+ /** Recraft palette persisted with the version that created this asset. */
8019
+ colors: external_exports.array(RgbColorSchema).optional(),
8020
+ /** Recraft background color persisted with the version that created this asset. */
8021
+ backgroundColor: RgbColorSchema.optional()
7991
8022
  });
7992
8023
  var FileDetailSchema = FileCardSchema.extend({
7993
8024
  width: external_exports.number().int().nullable(),
@@ -8098,6 +8129,12 @@ var ListFilesQuerySchema = external_exports.object({
8098
8129
  // active one — so a generation a member starred survives later regens and
8099
8130
  // stays findable here. Same query-string coercion as `hidden`.
8100
8131
  favorited: external_exports.union([external_exports.boolean(), external_exports.literal("true"), external_exports.literal("false")]).optional().transform((value) => value === true || value === "true"),
8132
+ // The "Archived" view: generations whose every canvas home is archived (a
8133
+ // deleted project) or trashed (a deleted canvas), so they are exactly the
8134
+ // assets the normal grid drops. Uploads never appear here — they survive
8135
+ // archiving and stay in the main listing. Same query-string coercion as
8136
+ // `hidden`.
8137
+ archived: external_exports.union([external_exports.boolean(), external_exports.literal("true"), external_exports.literal("false")]).optional().transform((value) => value === true || value === "true"),
8101
8138
  // Whether to compute the exact `total`. Defaults to `true`. The Files
8102
8139
  // visibility predicate is an EXISTS over the team's whole node graph, so an
8103
8140
  // exact `count(*)` scans every asset (seconds on large teams) and runs in
@@ -8132,7 +8169,11 @@ var FileTabCountsResponseSchema = external_exports.object({
8132
8169
  all: external_exports.number().int(),
8133
8170
  uploads: external_exports.number().int(),
8134
8171
  generations: external_exports.number().int(),
8135
- favorites: external_exports.number().int()
8172
+ favorites: external_exports.number().int(),
8173
+ // Optional so a web bundle that ships before core still parses the older
8174
+ // response; callers treat a missing count as 0. Can be made required once
8175
+ // this has fully rolled out.
8176
+ archived: external_exports.number().int().optional()
8136
8177
  });
8137
8178
  var AGENT_ASSET_SEARCH_PAGE_SIZE = 20;
8138
8179
  var AgentAssetSearchQuerySchema = external_exports.object({
@@ -8249,6 +8290,14 @@ var AssetTagResponseSchema = external_exports.object({
8249
8290
  createdByName: external_exports.string().nullable(),
8250
8291
  createdAt: external_exports.string().datetime(),
8251
8292
  updatedAt: external_exports.string().datetime(),
8293
+ /**
8294
+ * Names which subsystem-written tag this is, or null for a tag a person
8295
+ * authored. Opaque to the client on purpose: it needs the *fact*, not the
8296
+ * value, because the rule is the same for every one of them — a non-null
8297
+ * tag may be renamed but never deleted, applied or removed by hand — and a
8298
+ * second system tag should not need a contract change to be handled right.
8299
+ */
8300
+ systemTag: external_exports.string().nullable(),
8252
8301
  // How many of the team's assets carry this tag. Present in listAssetTags;
8253
8302
  // omitted on single-tag create/update responses (which don't recount).
8254
8303
  assetCount: external_exports.number().int().nonnegative().optional()
@@ -9361,12 +9410,29 @@ var audioContract = c5.router({
9361
9410
  }
9362
9411
  });
9363
9412
 
9413
+ // ../canvas-yjs/src/group-color.ts
9414
+ var GROUP_COLOR_KEYS = [
9415
+ "default",
9416
+ "amber",
9417
+ "blue",
9418
+ "purple",
9419
+ "olive"
9420
+ ];
9421
+
9364
9422
  // ../api-contract/src/heygen.ts
9365
9423
  var HeygenAvatarSettingsSchema = external_exports.object({
9366
9424
  backgroundColor: external_exports.string().regex(/^#[0-9a-f]{6}$/i, "Background color must be a hex color").optional(),
9367
9425
  removeBackground: external_exports.boolean().optional(),
9368
9426
  fit: external_exports.enum(["cover", "contain"]).optional(),
9369
- caption: external_exports.boolean().optional()
9427
+ caption: external_exports.boolean().optional(),
9428
+ /**
9429
+ * Runware TTS voice id for the text-driven path (e.g.
9430
+ * "chill_brian_male_english"), chosen from the provider's voice catalog.
9431
+ * Only used when a script is typed with no connected audio; the
9432
+ * audio-driven (mirror-voice) path ignores it. When absent the backend
9433
+ * falls back to its default voice.
9434
+ */
9435
+ voice: external_exports.string().trim().min(1).optional()
9370
9436
  });
9371
9437
  var HeygenAvatarVariantSchema = external_exports.object({
9372
9438
  avatar: external_exports.string().describe(
@@ -10144,6 +10210,8 @@ var ElevenLabsVoiceSettingsSchema = external_exports.object({
10144
10210
  removeBackgroundNoise: external_exports.boolean().optional(),
10145
10211
  outputFormat: ElevenLabsOutputFormatSchema.optional()
10146
10212
  });
10213
+ var AUDIO_TAG_BODY = /\[[^\]\n]*[A-Za-z][^\]\n]*\]/;
10214
+ var AUDIO_TAG_BODY_GLOBAL = new RegExp(AUDIO_TAG_BODY.source, "g");
10147
10215
 
10148
10216
  // ../api-contract/src/generation-failure-reason.ts
10149
10217
  var GENERATION_FAILURE_REASONS = [
@@ -10395,6 +10463,10 @@ var TemplatePortTargetSchema = external_exports.object({
10395
10463
  nodeKey: external_exports.string(),
10396
10464
  internalHandle: external_exports.string().nullable()
10397
10465
  });
10466
+ var TemplatePortSourcePositionSchema = external_exports.object({
10467
+ x: external_exports.number(),
10468
+ y: external_exports.number()
10469
+ });
10398
10470
  var TemplatePortSchema = external_exports.discriminatedUnion("direction", [
10399
10471
  external_exports.object({
10400
10472
  direction: external_exports.literal("input"),
@@ -10424,6 +10496,8 @@ var TemplatePortSchema = external_exports.discriminatedUnion("direction", [
10424
10496
  * single `nodeKey`/`internalHandle` binding (pre-fan-out templates).
10425
10497
  */
10426
10498
  internalTargets: external_exports.array(TemplatePortTargetSchema).optional(),
10499
+ /** Authored position of this input's source. See the schema's doc. */
10500
+ sourcePosition: TemplatePortSourcePositionSchema.optional(),
10427
10501
  ...TemplatePortBaseFields
10428
10502
  }),
10429
10503
  external_exports.object({
@@ -10479,6 +10553,12 @@ var InstancePortBindingSchema = external_exports.discriminatedUnion("direction",
10479
10553
  * the next connect, so a stale id never strands a slot.
10480
10554
  */
10481
10555
  connectedSourceIds: external_exports.array(external_exports.string()).optional(),
10556
+ /**
10557
+ * `TemplatePort.sourcePosition` baked onto this canvas — apply adds the
10558
+ * same offset it gives the hidden children, so this is absolute here and
10559
+ * expand can treat it exactly like a child position.
10560
+ */
10561
+ sourcePosition: TemplatePortSourcePositionSchema.optional(),
10482
10562
  ...InstancePortBindingBaseFields
10483
10563
  }),
10484
10564
  external_exports.object({
@@ -10531,6 +10611,7 @@ var EdgeTypeSchema = external_exports.enum([
10531
10611
  "file"
10532
10612
  ]);
10533
10613
  var GroupTypeSchema = external_exports.enum(["default", "unified", "template"]);
10614
+ var GroupColorSchema = external_exports.enum(GROUP_COLOR_KEYS);
10534
10615
  var ModelConfigSchema = external_exports.object({
10535
10616
  model: external_exports.string(),
10536
10617
  variant: external_exports.string(),
@@ -10557,7 +10638,11 @@ var ModelConfigSchema = external_exports.object({
10557
10638
  /** SDXL only: sampler steps used for this version. */
10558
10639
  steps: external_exports.number().optional(),
10559
10640
  /** SDXL only: classifier-free guidance scale used for this version. */
10560
- guidanceScale: external_exports.number().optional()
10641
+ guidanceScale: external_exports.number().optional(),
10642
+ /** Recraft only: RGB palette used for this version's generation. */
10643
+ colors: external_exports.array(RgbColorSchema).optional(),
10644
+ /** Recraft only: RGB background used for this version's generation. */
10645
+ backgroundColor: RgbColorSchema.optional()
10561
10646
  });
10562
10647
  var ModelConfigInputSchema = external_exports.object({
10563
10648
  model: external_exports.string(),
@@ -10788,6 +10873,7 @@ var NodeResponseSchema = external_exports.object({
10788
10873
  /** Per-clip trim windows for stitch nodes (keyed by source node id, from CRDT). */
10789
10874
  stitchClipTrims: StitchClipTrimsSchema.nullable().optional(),
10790
10875
  groupType: GroupTypeSchema.nullable().optional(),
10876
+ groupColor: GroupColorSchema.nullable().optional(),
10791
10877
  /** Resolved input/output port bindings on a template-instance group (from CRDT). */
10792
10878
  templatePorts: external_exports.array(InstancePortBindingSchema).nullable().optional(),
10793
10879
  /** The source template id on a template-instance group (from CRDT). */
@@ -10918,7 +11004,7 @@ var NodeRunStatusSchema = external_exports.enum([
10918
11004
  var CreateNodeRunResponseSchema = external_exports.object({
10919
11005
  id: external_exports.string().uuid()
10920
11006
  });
10921
- var RunOriginSchema = external_exports.enum(["canvas", "playground"]);
11007
+ var RunOriginSchema = external_exports.enum(["canvas", "playground", "cast"]);
10922
11008
  var RunNodeBodySchema = external_exports.object({
10923
11009
  canvasId: external_exports.string().uuid().optional(),
10924
11010
  /** Product surface this run originated on. Defaults to `canvas` server-side. */
@@ -10965,6 +11051,10 @@ var RunNodeBodySchema = external_exports.object({
10965
11051
  * own default still applies.
10966
11052
  */
10967
11053
  negativePrompt: external_exports.string().optional(),
11054
+ /** Recraft's preferred RGB palette. Ignored by other models. */
11055
+ colors: external_exports.array(RgbColorSchema).optional(),
11056
+ /** Recraft's RGB background colour. Ignored by other models. */
11057
+ backgroundColor: RgbColorSchema.optional(),
10968
11058
  /** Explicit image URLs to include as inputs (merged with edge-resolved images). */
10969
11059
  imageUrls: external_exports.array(external_exports.string().url()).max(MAX_INPUT_IMAGES).optional(),
10970
11060
  /**
@@ -11071,6 +11161,11 @@ var RunVideoToolBodySchema = external_exports.object({
11071
11161
  toolName: external_exports.string().trim().min(1),
11072
11162
  toolConfig: external_exports.record(external_exports.unknown()).optional()
11073
11163
  });
11164
+ var ExtractVideoFrameBodySchema = external_exports.object({
11165
+ canvasId: external_exports.string().uuid(),
11166
+ targetNodeId: external_exports.string().uuid(),
11167
+ timeMs: external_exports.number().int().min(0)
11168
+ });
11074
11169
  var NodeRunResponseSchema = external_exports.object({
11075
11170
  id: external_exports.string().uuid(),
11076
11171
  nodeId: external_exports.string().uuid(),
@@ -12005,6 +12100,17 @@ var canvasContract = c7.router({
12005
12100
  404: NodeRunErrorResponseSchema
12006
12101
  }
12007
12102
  },
12103
+ extractVideoFrame: {
12104
+ method: "POST",
12105
+ path: "/nodes/:nodeId/frame-extractions",
12106
+ pathParams: external_exports.object({ nodeId: external_exports.string().uuid() }),
12107
+ body: ExtractVideoFrameBodySchema,
12108
+ responses: {
12109
+ 201: CreateNodeRunResponseSchema,
12110
+ 400: NodeRunErrorResponseSchema,
12111
+ 404: NodeRunErrorResponseSchema
12112
+ }
12113
+ },
12008
12114
  getNodeRun: {
12009
12115
  method: "GET",
12010
12116
  path: "/node-runs/:nodeRunId",
@@ -12077,6 +12183,17 @@ var canvasContract = c7.router({
12077
12183
  method: "GET",
12078
12184
  path: "/canvases/:canvasId/node-runs/latest",
12079
12185
  pathParams: external_exports.object({ canvasId: external_exports.string().uuid() }),
12186
+ query: external_exports.object({
12187
+ /**
12188
+ * Return every pending/running run per node instead of only the
12189
+ * single latest run. A node can have several runs in flight at
12190
+ * once, and the default one-per-node shape drops all but the
12191
+ * newest — so a reload loses the others. Opt-in: clients that
12192
+ * key run state by node id must not receive multiple rows for
12193
+ * one node.
12194
+ */
12195
+ includeAllActiveRuns: external_exports.coerce.boolean().optional()
12196
+ }),
12080
12197
  responses: {
12081
12198
  200: external_exports.object({
12082
12199
  data: external_exports.array(LatestNodeRunResponseSchema)
@@ -12647,6 +12764,10 @@ var GenerationRunBodySchema = external_exports.object({
12647
12764
  * "blur, distort, and low quality") still applies.
12648
12765
  */
12649
12766
  negativePrompt: external_exports.string().optional(),
12767
+ /** Recraft's preferred RGB palette. Ignored by models without `falColorsField`. */
12768
+ colors: external_exports.array(RgbColorSchema).optional(),
12769
+ /** Recraft's RGB background colour. Ignored by models without `falBackgroundColorField`. */
12770
+ backgroundColor: RgbColorSchema.optional(),
12650
12771
  /**
12651
12772
  * The font the better-font-32b model should use as its typography
12652
12773
  * reference. Only honored when `model === "better-font-32b"`; ignored
@@ -12698,6 +12819,9 @@ var AutoModelDefaultCapabilitiesSchema = external_exports.object({
12698
12819
  supportedDurationsByResolution: external_exports.record(external_exports.string(), external_exports.array(external_exports.number())).nullable().optional(),
12699
12820
  supportedResolutions: external_exports.array(OutputResolutionSchema).nullable().optional(),
12700
12821
  supportsCustomResolution: external_exports.boolean().optional(),
12822
+ maxCustomResolutionArea: external_exports.number().nullable().optional(),
12823
+ minCustomResolutionArea: external_exports.number().nullable().optional(),
12824
+ maxCustomResolutionAspectRatio: external_exports.number().nullable().optional(),
12701
12825
  resolutionPricingMultipliers: external_exports.record(external_exports.string(), external_exports.number()).nullable().optional(),
12702
12826
  audioOffCreditMultiplier: external_exports.number().nullable().optional(),
12703
12827
  audioOffCreditMultipliersByResolution: external_exports.record(external_exports.string(), external_exports.number()).nullable().optional(),
@@ -12706,6 +12830,8 @@ var AutoModelDefaultCapabilitiesSchema = external_exports.object({
12706
12830
  maxReferenceImagesWithEndImage: external_exports.number().nullable().optional(),
12707
12831
  maxVideoInputs: external_exports.number().nullable().optional(),
12708
12832
  maxAudioInputs: external_exports.number().nullable().optional(),
12833
+ /** Maximum combined reference image, video, and audio inputs. */
12834
+ maxCombinedReferenceInputs: external_exports.number().nullable().optional(),
12709
12835
  maxNativeOutputs: external_exports.number().nullable().optional(),
12710
12836
  maxInputArea: external_exports.number().nullable().optional(),
12711
12837
  minInputVideoArea: external_exports.number().nullable().optional(),
@@ -12818,6 +12944,8 @@ var ModelVariantResponseSchema = external_exports.object({
12818
12944
  supportsNegativePrompt: external_exports.boolean().optional(),
12819
12945
  supportedAspectRatios: external_exports.array(OutputAspectRatioSchema),
12820
12946
  supportedDurations: external_exports.array(external_exports.number()).nullable(),
12947
+ /** Provider default used when a duration is not selected. */
12948
+ defaultDuration: external_exports.number().nullable().optional(),
12821
12949
  /**
12822
12950
  * For a per-second model whose output length is NOT user-selected: how the
12823
12951
  * billed length is derived. `"input-media"` → longest connected input
@@ -12828,6 +12956,9 @@ var ModelVariantResponseSchema = external_exports.object({
12828
12956
  supportedDurationsByResolution: external_exports.record(external_exports.string(), external_exports.array(external_exports.number())).nullable().optional(),
12829
12957
  supportedResolutions: external_exports.array(OutputResolutionSchema).nullable(),
12830
12958
  supportsCustomResolution: external_exports.boolean().optional(),
12959
+ maxCustomResolutionArea: external_exports.number().nullable().optional(),
12960
+ minCustomResolutionArea: external_exports.number().nullable().optional(),
12961
+ maxCustomResolutionAspectRatio: external_exports.number().nullable().optional(),
12831
12962
  resolutionPricingMultipliers: external_exports.record(external_exports.string(), external_exports.number()).nullable(),
12832
12963
  /** Multiplier applied to creditCost when audio is toggled off. */
12833
12964
  audioOffCreditMultiplier: external_exports.number().nullable().optional(),
@@ -12838,6 +12969,7 @@ var ModelVariantResponseSchema = external_exports.object({
12838
12969
  maxReferenceImagesWithEndImage: external_exports.number().nullable().optional(),
12839
12970
  maxVideoInputs: external_exports.number().nullable().optional(),
12840
12971
  maxAudioInputs: external_exports.number().nullable().optional(),
12972
+ maxCombinedReferenceInputs: external_exports.number().nullable().optional(),
12841
12973
  /**
12842
12974
  * For variants accepting both video and audio: whether the connected
12843
12975
  * durations must line up. `false` for lipsync models (e.g. Kling Lipsync)
@@ -12988,10 +13120,21 @@ var generationContract = c9.router({
12988
13120
  listHeygenAvatarVAvatars: {
12989
13121
  method: "GET",
12990
13122
  path: "/generation/heygen-avatar-v-avatars",
13123
+ // Each HeyGen avatar model has its own provider roster, so the caller
13124
+ // names the model it is picking for. Omitted means Avatar V, which is
13125
+ // what every client sent before Avatar IV existed.
13126
+ query: external_exports.object({ model: external_exports.string().optional() }).optional(),
12991
13127
  responses: {
12992
13128
  200: external_exports.object({ avatars: external_exports.array(external_exports.string()) })
12993
13129
  }
12994
13130
  },
13131
+ listHeygenAvatarVVoices: {
13132
+ method: "GET",
13133
+ path: "/generation/heygen-avatar-v-voices",
13134
+ responses: {
13135
+ 200: external_exports.object({ voices: external_exports.array(external_exports.string()) })
13136
+ }
13137
+ },
12995
13138
  getAutoModelDefaults: {
12996
13139
  method: "GET",
12997
13140
  path: "/generation/auto-model-defaults",
@@ -13835,6 +13978,12 @@ var teamContract = c13.router({
13835
13978
  body: null,
13836
13979
  responses: { 204: c13.noBody() }
13837
13980
  },
13981
+ leaveTeam: {
13982
+ method: "POST",
13983
+ path: "/teams/current/leave",
13984
+ body: null,
13985
+ responses: { 204: c13.noBody() }
13986
+ },
13838
13987
  listMembers: {
13839
13988
  method: "GET",
13840
13989
  path: "/teams/current/members",
@@ -14734,7 +14883,7 @@ function isMajorUpgrade(current, latest) {
14734
14883
  return l[0] > c17[0];
14735
14884
  }
14736
14885
  function shouldShowUpgradeNotice(ctx = {}) {
14737
- const current = ctx.current ?? "0.13.0";
14886
+ const current = ctx.current ?? "0.14.0";
14738
14887
  const latest = ctx.latest ?? serverLatestVersion;
14739
14888
  const env = ctx.env ?? process.env;
14740
14889
  const isTty = ctx.isTty ?? Boolean(process.stderr.isTTY);
@@ -14755,7 +14904,7 @@ Upgrade: npm install -g @melius-ai/cli@latest (or: brew update && brew upgrade
14755
14904
  function printUpgradeNoticeIfNeeded(ctx = {}) {
14756
14905
  try {
14757
14906
  if (!shouldShowUpgradeNotice(ctx)) return;
14758
- const current = ctx.current ?? "0.13.0";
14907
+ const current = ctx.current ?? "0.14.0";
14759
14908
  const latest = ctx.latest ?? serverLatestVersion;
14760
14909
  process.stderr.write(formatUpgradeNotice(current, latest));
14761
14910
  } catch {
@@ -19951,7 +20100,7 @@ function withDefaultHelp(args) {
19951
20100
  }
19952
20101
  function createProgram() {
19953
20102
  const program2 = new Command();
19954
- program2.name("mel").description("Mel \u2014 Melius agent CLI").version("0.13.0").showSuggestionAfterError(true).option("--json", "Force JSON output (default)").option("--text", "Human-readable output").option(
20103
+ program2.name("mel").description("Mel \u2014 Melius agent CLI").version("0.14.0").showSuggestionAfterError(true).option("--json", "Force JSON output (default)").option("--text", "Human-readable output").option(
19955
20104
  "--fields <fields>",
19956
20105
  "Select specific output fields (comma-separated)"
19957
20106
  ).option("--quiet", "Suppress output, exit code only").option("--verbose", "Log request/response metadata to stderr").addHelpText(
package/dist/src/index.js CHANGED
@@ -2,7 +2,7 @@ import { createRequire } from 'node:module'; const require = createRequire(impor
2
2
  import {
3
3
  createProgram,
4
4
  withDefaultHelp
5
- } from "../chunk-5APS3BGT.js";
5
+ } from "../chunk-RTPRU2JD.js";
6
6
  export {
7
7
  createProgram,
8
8
  withDefaultHelp
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@melius-ai/cli",
3
- "version": "0.13.0",
3
+ "version": "0.14.0",
4
4
  "description": "The Melius command-line interface — create canvases and run AI image/video generations from your terminal",
5
5
  "keywords": [
6
6
  "ai",