@melius-ai/cli 0.11.0 → 0.12.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-CHRQZMYE.js";
10
+ } from "../chunk-2PWVQ3PC.js";
11
11
 
12
12
  // bin/mel.ts
13
13
  var program = createProgram();
@@ -8224,6 +8224,18 @@ var CompleteFilesUploadBodySchema = external_exports.object({
8224
8224
  var CompleteFilesUploadResponseSchema = external_exports.object({
8225
8225
  file: FileCardSchema
8226
8226
  });
8227
+ var ImportUploadcareFileBodySchema = external_exports.object({
8228
+ uuid: external_exports.string().uuid(),
8229
+ folderId: external_exports.string().uuid().nullable().optional()
8230
+ });
8231
+ var ImportUploadcareFileResponseSchema = external_exports.object({
8232
+ file: FileCardSchema
8233
+ });
8234
+ var UploadcareUploadSignatureResponseSchema = external_exports.object({
8235
+ signature: external_exports.string(),
8236
+ /** Unix seconds, as a string — the exact bytes that were signed. */
8237
+ expire: external_exports.string()
8238
+ });
8227
8239
  var EmbeddingStorageUsageResponseSchema = external_exports.object({
8228
8240
  usedBytes: external_exports.number(),
8229
8241
  limitBytes: external_exports.number()
@@ -8609,6 +8621,28 @@ var filesContract = c2.router({
8609
8621
  403: ErrorBodySchema
8610
8622
  },
8611
8623
  summary: "Complete a Files upload"
8624
+ },
8625
+ createUploadcareUploadSignature: {
8626
+ method: "POST",
8627
+ path: "/files/import/uploadcare/signature",
8628
+ body: external_exports.object({}),
8629
+ responses: {
8630
+ 200: UploadcareUploadSignatureResponseSchema,
8631
+ 403: ErrorBodySchema
8632
+ },
8633
+ summary: "Mint short-lived credentials for a signed Uploadcare upload"
8634
+ },
8635
+ importUploadcareFile: {
8636
+ method: "POST",
8637
+ path: "/files/import/uploadcare",
8638
+ body: ImportUploadcareFileBodySchema,
8639
+ responses: {
8640
+ 200: ImportUploadcareFileResponseSchema,
8641
+ 400: ErrorBodySchema,
8642
+ 403: ErrorBodySchema,
8643
+ 404: ErrorBodySchema
8644
+ },
8645
+ summary: "Import a file picked from a cloud source through Uploadcare"
8612
8646
  }
8613
8647
  });
8614
8648
 
@@ -9327,6 +9361,29 @@ var audioContract = c5.router({
9327
9361
  }
9328
9362
  });
9329
9363
 
9364
+ // ../api-contract/src/heygen.ts
9365
+ var HeygenAvatarSettingsSchema = external_exports.object({
9366
+ backgroundColor: external_exports.string().regex(/^#[0-9a-f]{6}$/i, "Background color must be a hex color").optional(),
9367
+ removeBackground: external_exports.boolean().optional(),
9368
+ fit: external_exports.enum(["cover", "contain"]).optional(),
9369
+ caption: external_exports.boolean().optional()
9370
+ });
9371
+ var HeygenAvatarVariantSchema = external_exports.object({
9372
+ avatar: external_exports.string().describe(
9373
+ "Raw avatar id. Pass this exact value as modelConfig.heygenAvatar"
9374
+ ),
9375
+ description: external_exports.string().describe("Pose, setting, and framing, e.g. 'Standing office front'")
9376
+ });
9377
+ var HeygenAvatarPersonSchema = external_exports.object({
9378
+ name: external_exports.string().describe("The presenter's first name, e.g. 'Abigail'"),
9379
+ variants: external_exports.array(HeygenAvatarVariantSchema).describe("Every pose available for this presenter")
9380
+ });
9381
+ var HeygenAvatarCatalogSchema = external_exports.object({
9382
+ people: external_exports.array(HeygenAvatarPersonSchema),
9383
+ totalPeople: external_exports.number(),
9384
+ totalAvatars: external_exports.number()
9385
+ });
9386
+
9330
9387
  // ../api-contract/src/auto-model-proxy.ts
9331
9388
  var AUTO_MODEL_REGISTRY = [
9332
9389
  // ── Video ───────────────────────────────────────────────────────────
@@ -9442,6 +9499,12 @@ var AUTO_MODEL_REGISTRY = [
9442
9499
  model: "elevenlabs-sfx",
9443
9500
  variant: "text-to-sfx"
9444
9501
  },
9502
+ {
9503
+ nodeType: "audio",
9504
+ inputPattern: "video-to-sfx",
9505
+ model: "sonilo-video-sfx",
9506
+ variant: "video-to-sfx"
9507
+ },
9445
9508
  {
9446
9509
  nodeType: "audio",
9447
9510
  inputPattern: "text-to-music",
@@ -9684,6 +9747,7 @@ var GENERATION_MODES = [
9684
9747
  "text-to-speech",
9685
9748
  "audio-to-audio",
9686
9749
  "text-to-sfx",
9750
+ "video-to-sfx",
9687
9751
  "text-to-music",
9688
9752
  "speech-to-text",
9689
9753
  "voice-isolator"
@@ -10473,6 +10537,8 @@ var ModelConfigSchema = external_exports.object({
10473
10537
  tier: external_exports.string().nullable().optional(),
10474
10538
  /** HeyGen Avatar V only: the Runware avatar id for this node. */
10475
10539
  heygenAvatar: external_exports.string().optional(),
10540
+ /** HeyGen Avatar V presentation, speech, and output controls. */
10541
+ heygenSettings: HeygenAvatarSettingsSchema.optional(),
10476
10542
  // Magic-resize stores its per-run config here so each version carries the
10477
10543
  // ratios + resolution that produced it.
10478
10544
  ratios: external_exports.array(external_exports.string()).optional(),
@@ -10499,6 +10565,8 @@ var ModelConfigInputSchema = external_exports.object({
10499
10565
  tier: external_exports.string().nullable().optional(),
10500
10566
  /** HeyGen Avatar V only: the Runware avatar id for this node. */
10501
10567
  heygenAvatar: external_exports.string().trim().min(1).optional(),
10568
+ /** HeyGen Avatar V presentation, speech, and output controls. */
10569
+ heygenSettings: HeygenAvatarSettingsSchema.optional(),
10502
10570
  /** better-font-32b only: the font the model renders the requested text in (supplied to the model as a rendered reference image). */
10503
10571
  font: external_exports.object({
10504
10572
  source: external_exports.enum(["custom", "google"]),
@@ -10690,6 +10758,8 @@ var NodeResponseSchema = external_exports.object({
10690
10758
  outputResolution: OutputResolutionSchema.nullable().optional(),
10691
10759
  /** Current seed on the node (from CRDT). */
10692
10760
  seed: external_exports.number().int().nonnegative().max(MAX_SEED).nullable().optional(),
10761
+ /** Current variation count on the node (from CRDT). */
10762
+ numVariations: external_exports.number().int().min(1).max(MAX_VARIATIONS).nullable().optional(),
10693
10763
  /** Current audio toggle on the node (from CRDT). */
10694
10764
  generateAudio: external_exports.boolean().nullable().optional(),
10695
10765
  /** Selected video model supports start/end image inputs (from CRDT). */
@@ -11144,6 +11214,7 @@ var CreateDirectNodeBodyObjectSchema = external_exports.object({
11144
11214
  outputResolution: OutputResolutionSchema.nullable().optional(),
11145
11215
  matchAudioToVideoDuration: external_exports.boolean().nullable().optional(),
11146
11216
  seed: external_exports.number().int().nonnegative().max(MAX_SEED).nullable().optional(),
11217
+ numVariations: external_exports.number().int().min(1).max(MAX_VARIATIONS).nullable().optional(),
11147
11218
  negativePrompt: external_exports.string().nullable().optional(),
11148
11219
  stitchClipOrder: StitchClipOrderSchema.nullable().optional(),
11149
11220
  stitchScaleFit: StitchScaleFitSchema.nullable().optional(),
@@ -11193,6 +11264,7 @@ var UpdateDirectNodeBodySchema = external_exports.object({
11193
11264
  outputResolution: OutputResolutionSchema.nullable().optional(),
11194
11265
  matchAudioToVideoDuration: external_exports.boolean().nullable().optional(),
11195
11266
  seed: external_exports.number().int().nonnegative().max(MAX_SEED).nullable().optional(),
11267
+ numVariations: external_exports.number().int().min(1).max(MAX_VARIATIONS).nullable().optional(),
11196
11268
  negativePrompt: external_exports.string().nullable().optional(),
11197
11269
  stitchClipOrder: StitchClipOrderSchema.nullable().optional(),
11198
11270
  stitchScaleFit: StitchScaleFitSchema.nullable().optional(),
@@ -11227,6 +11299,7 @@ var DirectNodeResponseSchema = external_exports.object({
11227
11299
  outputResolution: OutputResolutionSchema.nullable(),
11228
11300
  matchAudioToVideoDuration: external_exports.boolean().nullable().optional(),
11229
11301
  seed: external_exports.number().int().nonnegative().max(MAX_SEED).nullable(),
11302
+ numVariations: external_exports.number().int().min(1).max(MAX_VARIATIONS).nullable(),
11230
11303
  negativePrompt: external_exports.string().nullable(),
11231
11304
  stitchClipOrder: StitchClipOrderSchema.nullable().optional(),
11232
11305
  stitchScaleFit: StitchScaleFitSchema.nullable().optional(),
@@ -11280,6 +11353,7 @@ var BulkUpdateDirectNodesItemSchema = external_exports.object({
11280
11353
  outputResolution: OutputResolutionSchema.nullable().optional(),
11281
11354
  matchAudioToVideoDuration: external_exports.boolean().nullable().optional(),
11282
11355
  seed: external_exports.number().int().nonnegative().max(MAX_SEED).nullable().optional(),
11356
+ numVariations: external_exports.number().int().min(1).max(MAX_VARIATIONS).nullable().optional(),
11283
11357
  negativePrompt: external_exports.string().nullable().optional(),
11284
11358
  stitchClipOrder: StitchClipOrderSchema.nullable().optional(),
11285
11359
  stitchScaleFit: StitchScaleFitSchema.nullable().optional(),
@@ -11368,6 +11442,16 @@ var PlaygroundCanvasReferenceSchema = external_exports.object({
11368
11442
  projectId: external_exports.string().uuid(),
11369
11443
  canvasId: external_exports.string().uuid()
11370
11444
  });
11445
+ var PlaygroundCanvasDestinationSchema = external_exports.discriminatedUnion("kind", [
11446
+ external_exports.object({
11447
+ kind: external_exports.literal("existing"),
11448
+ projectId: external_exports.string().uuid()
11449
+ }),
11450
+ external_exports.object({
11451
+ kind: external_exports.literal("new"),
11452
+ projectName: external_exports.string().trim().min(1).max(500)
11453
+ })
11454
+ ]);
11371
11455
  var PlaygroundCanvasPageSchema = external_exports.object({
11372
11456
  projectId: external_exports.string().uuid().nullable(),
11373
11457
  data: external_exports.array(external_exports.object({ id: external_exports.string().uuid() })),
@@ -11377,9 +11461,12 @@ var canvasContract = c7.router({
11377
11461
  createPlaygroundCanvas: {
11378
11462
  method: "POST",
11379
11463
  path: "/playground/canvases",
11380
- body: null,
11464
+ body: external_exports.object({
11465
+ destination: PlaygroundCanvasDestinationSchema.optional()
11466
+ }).optional(),
11381
11467
  responses: {
11382
11468
  201: PlaygroundCanvasReferenceSchema,
11469
+ 404: MessageResponseSchema,
11383
11470
  409: MessageResponseSchema
11384
11471
  }
11385
11472
  },
@@ -12507,6 +12594,8 @@ var GenerationRunBodySchema = external_exports.object({
12507
12594
  prompt: external_exports.string().trim().min(1).optional(),
12508
12595
  /** Selected avatar id from Runware's HeyGen Avatar V catalog. */
12509
12596
  heygenAvatar: external_exports.string().trim().min(1).optional(),
12597
+ /** HeyGen Avatar V presentation controls. */
12598
+ heygenSettings: HeygenAvatarSettingsSchema.optional(),
12510
12599
  imageUrls: external_exports.array(external_exports.string().url()).optional(),
12511
12600
  endImageUrls: external_exports.array(external_exports.string().url()).optional(),
12512
12601
  referenceImageUrls: external_exports.array(external_exports.string().url()).optional(),
@@ -12627,6 +12716,9 @@ var AutoModelDefaultsCategorySchema = external_exports.object({
12627
12716
  textToSpeech: AutoModelDefaultEntrySchema,
12628
12717
  audioToAudio: AutoModelDefaultEntrySchema,
12629
12718
  textToSfx: AutoModelDefaultEntrySchema,
12719
+ // Optional so deployed clients validating a response from an
12720
+ // older backend (which omits it) keep working.
12721
+ videoToSfx: AutoModelDefaultEntrySchema.optional(),
12630
12722
  textToMusic: AutoModelDefaultEntrySchema,
12631
12723
  speechToText: AutoModelDefaultEntrySchema
12632
12724
  }).optional()
@@ -12797,6 +12889,9 @@ var GenerationHistoryItemSchema = external_exports.object({
12797
12889
  tier: external_exports.string().nullable().optional(),
12798
12890
  status: GenerationJobStatusSchema,
12799
12891
  creditCost: external_exports.number().nullable(),
12892
+ // Whether the debit was reversed — `creditCost` was charged and given back,
12893
+ // so it did not count towards usage. Optional so older clients ignore it.
12894
+ refunded: external_exports.boolean().optional(),
12800
12895
  createdAt: external_exports.string(),
12801
12896
  user: external_exports.object({
12802
12897
  id: external_exports.string(),
@@ -12807,7 +12902,15 @@ var GenerationHistoryItemSchema = external_exports.object({
12807
12902
  id: external_exports.string(),
12808
12903
  title: external_exports.string(),
12809
12904
  archived: external_exports.boolean()
12810
- }).nullable()
12905
+ }).nullable(),
12906
+ // Set when the generation was produced by running a template: the bulk run
12907
+ // it belonged to plus the template's name. Lets a run's per-model rows be
12908
+ // consolidated into one row (see `consolidateTemplateRuns`). Optional so
12909
+ // older clients ignore it and it is absent for non-template generations.
12910
+ templateRun: external_exports.object({
12911
+ runId: external_exports.string(),
12912
+ title: external_exports.string()
12913
+ }).nullable().optional()
12811
12914
  });
12812
12915
  var ListGenerationHistoryResponseSchema = external_exports.object({
12813
12916
  items: external_exports.array(GenerationHistoryItemSchema),
@@ -13832,10 +13935,17 @@ var ProjectResponseSchema = external_exports.object({
13832
13935
  updatedAt: external_exports.string().datetime(),
13833
13936
  lastEditAt: external_exports.string().datetime()
13834
13937
  });
13938
+ var ProjectOptionSchema = ProjectResponseSchema.pick({
13939
+ id: true,
13940
+ title: true
13941
+ });
13835
13942
  var ProjectIdParamsSchema = external_exports.object({ projectId: external_exports.string().uuid() });
13836
13943
  var PaginationQuerySchema = external_exports.object(
13837
13944
  paginationQuery({ maxLimit: 100, defaultLimit: 50 })
13838
13945
  );
13946
+ var ProjectOptionsQuerySchema = PaginationQuerySchema.extend({
13947
+ search: external_exports.string().max(500).optional()
13948
+ });
13839
13949
  var IncludePreviewAssetsQuerySchema = external_exports.preprocess((value) => {
13840
13950
  if (value === void 0) return void 0;
13841
13951
  if (value === "true" || value === true) return true;
@@ -13859,6 +13969,10 @@ var PaginatedProjectsResponseSchema = external_exports.object({
13859
13969
  data: external_exports.array(ProjectResponseSchema),
13860
13970
  total: external_exports.number().int()
13861
13971
  });
13972
+ var PaginatedProjectOptionsResponseSchema = external_exports.object({
13973
+ data: external_exports.array(ProjectOptionSchema),
13974
+ total: external_exports.number().int()
13975
+ });
13862
13976
  var ProjectListResponseSchema = external_exports.object({
13863
13977
  data: external_exports.array(ProjectResponseSchema)
13864
13978
  });
@@ -13872,8 +13986,15 @@ var ProjectThumbnailResponseSchema = external_exports.object({
13872
13986
  var ProjectThumbnailsResponseSchema = external_exports.object({
13873
13987
  data: external_exports.array(ProjectThumbnailResponseSchema)
13874
13988
  });
13989
+ var MAX_PROJECT_TITLE_LENGTH = 500;
13990
+ var PROJECT_CONFLICT_CODE = {
13991
+ nameTaken: "PROJECT_NAME_TAKEN"
13992
+ };
13993
+ var ProjectConflictResponseSchema = MessageResponseSchema.extend({
13994
+ code: external_exports.nativeEnum(PROJECT_CONFLICT_CODE).optional()
13995
+ });
13875
13996
  var CreateProjectBodySchema = external_exports.object({
13876
- title: external_exports.string().min(1).max(500).optional(),
13997
+ title: external_exports.string().min(1).max(MAX_PROJECT_TITLE_LENGTH).optional(),
13877
13998
  description: external_exports.string().max(5e3).optional(),
13878
13999
  isPublic: external_exports.boolean().optional(),
13879
14000
  // Folder to create the project in. Omit (or `null`) to create at the team
@@ -13881,7 +14002,7 @@ var CreateProjectBodySchema = external_exports.object({
13881
14002
  folderId: external_exports.string().uuid().nullable().optional()
13882
14003
  });
13883
14004
  var UpdateProjectBodySchema = external_exports.object({
13884
- title: external_exports.string().min(1).max(500).optional(),
14005
+ title: external_exports.string().min(1).max(MAX_PROJECT_TITLE_LENGTH).optional(),
13885
14006
  description: external_exports.string().max(5e3).nullable().optional(),
13886
14007
  isPublic: external_exports.boolean().optional()
13887
14008
  });
@@ -13912,7 +14033,7 @@ var projectContract = c14.router({
13912
14033
  body: CreateProjectBodySchema,
13913
14034
  responses: {
13914
14035
  201: ProjectResponseSchema,
13915
- 409: MessageResponseSchema
14036
+ 409: ProjectConflictResponseSchema
13916
14037
  }
13917
14038
  },
13918
14039
  listDeletedProjects: {
@@ -13921,6 +14042,12 @@ var projectContract = c14.router({
13921
14042
  query: PaginationQuerySchema,
13922
14043
  responses: { 200: PaginatedProjectsResponseSchema }
13923
14044
  },
14045
+ listProjectOptions: {
14046
+ method: "GET",
14047
+ path: "/projects/options",
14048
+ query: ProjectOptionsQuerySchema,
14049
+ responses: { 200: PaginatedProjectOptionsResponseSchema }
14050
+ },
13924
14051
  getProject: {
13925
14052
  method: "GET",
13926
14053
  path: "/projects/:projectId",
@@ -13934,7 +14061,7 @@ var projectContract = c14.router({
13934
14061
  body: UpdateProjectBodySchema,
13935
14062
  responses: {
13936
14063
  200: ProjectResponseSchema,
13937
- 409: MessageResponseSchema
14064
+ 409: ProjectConflictResponseSchema
13938
14065
  }
13939
14066
  },
13940
14067
  deleteProject: {
@@ -14579,7 +14706,7 @@ function isMajorUpgrade(current, latest) {
14579
14706
  return l[0] > c17[0];
14580
14707
  }
14581
14708
  function shouldShowUpgradeNotice(ctx = {}) {
14582
- const current = ctx.current ?? "0.11.0";
14709
+ const current = ctx.current ?? "0.12.0";
14583
14710
  const latest = ctx.latest ?? serverLatestVersion;
14584
14711
  const env = ctx.env ?? process.env;
14585
14712
  const isTty = ctx.isTty ?? Boolean(process.stderr.isTTY);
@@ -14600,7 +14727,7 @@ Upgrade: npm install -g @melius-ai/cli@latest (or: brew update && brew upgrade
14600
14727
  function printUpgradeNoticeIfNeeded(ctx = {}) {
14601
14728
  try {
14602
14729
  if (!shouldShowUpgradeNotice(ctx)) return;
14603
- const current = ctx.current ?? "0.11.0";
14730
+ const current = ctx.current ?? "0.12.0";
14604
14731
  const latest = ctx.latest ?? serverLatestVersion;
14605
14732
  process.stderr.write(formatUpgradeNotice(current, latest));
14606
14733
  } catch {
@@ -16799,7 +16926,7 @@ previewSrc, mediaType, generatedText, activeVersionId, voiceId, createdByUserId.
16799
16926
  ID is auto-generated if --id is omitted. Geometry defaults per type (text: 380x200, image: 520x293, audio: 380x280).
16800
16927
  Valid aspect ratios: 21:9, 16:9, 4:3, 3:2, 1:1, 2:3, 3:4, 9:16, 9:21.
16801
16928
  Resolutions vary per model (e.g. 720p, 1080p, 4k for video; 1K, 2K, 4K for images). Use mel model list to check supportedResolutions.
16802
- Audio modes (set via --variant): text-to-speech (TTS, requires --voice-id), text-to-sfx (5/6/8/10/12/15/20/22 second SFX), text-to-music (10/30/60/90/120/180/240/300 second music), speech-to-text (requires an audio input edge), audio-to-audio (requires an audio input edge and --voice-id). Use mel audio voice list to discover voice ids.
16929
+ Audio modes (set via --variant): text-to-speech (TTS, requires --voice-id), text-to-sfx (5/6/8/10/12/15/20/22 second SFX), video-to-sfx (requires a video input edge; length follows the clip), text-to-music (10/30/60/90/120/180/240/300 second music), speech-to-text (requires an audio input edge), audio-to-audio (requires an audio input edge and --voice-id). Use mel audio voice list to discover voice ids.
16803
16930
  For stitch nodes, use --clip-order with connected source node IDs (video or image) in playback order and --scale-fit to control frame adaptation. Images render as 2-second still frames.
16804
16931
 
16805
16932
  Examples:
@@ -17010,7 +17137,7 @@ Valid node types: text, image, video, audio, file, group, custom_text, stitch.
17010
17137
  Stitch nodes also accept clipOrder (source node IDs \u2014 video or image \u2014 in playback order; images render as 2-second stills) and scaleFit (fit or stretch).
17011
17138
  Valid aspect ratios: 21:9, 16:9, 4:3, 3:2, 1:1, 2:3, 3:4, 9:16, 9:21.
17012
17139
  Valid edge types: text, image, video, audio, file.
17013
- Audio modes (set via variant): text-to-speech (TTS, requires voiceId), text-to-sfx (5/6/8/10/12/15/20/22 second SFX), text-to-music (10/30/60/90/120/180/240/300 second music), speech-to-text (requires an audio input edge), audio-to-audio (requires an audio input edge and voiceId).
17140
+ Audio modes (set via variant): text-to-speech (TTS, requires voiceId), text-to-sfx (5/6/8/10/12/15/20/22 second SFX), video-to-sfx (requires a video input edge; length follows the clip), text-to-music (10/30/60/90/120/180/240/300 second music), speech-to-text (requires an audio input edge), audio-to-audio (requires an audio input edge and voiceId).
17014
17141
 
17015
17142
  Use mel canvas plan-layout first to compute positions, then pass x/y/w/h into each node.
17016
17143
  Accepts two JSON formats via stdin (or --json):
@@ -18450,7 +18577,7 @@ function registerModelCommands(program2, getOutputOpts) {
18450
18577
  Returns: Array of models, each with name, displayName, provider, variants[], and supportedInputs[].
18451
18578
  Each variant has: mode, supportedAspectRatios[], supportedDurations[], supportedResolutions[], requiredInputs[].
18452
18579
  For text models, supportedInputs lists accepted media types (e.g. ["image", "video"]) \u2014 use these to determine valid edge handles.
18453
- For audio, variants are text-to-speech, text-to-sfx, text-to-music, speech-to-text, and audio-to-audio \u2014 supportedDurations applies to sfx and music only. For text-to-speech and audio-to-audio, also call mel audio voice list to discover voice ids.
18580
+ For audio, variants are text-to-speech, text-to-sfx, video-to-sfx, text-to-music, speech-to-text, and audio-to-audio \u2014 supportedDurations applies to sfx and music only. For text-to-speech and audio-to-audio, also call mel audio voice list to discover voice ids.
18454
18581
  Use this to discover valid --model and --variant values for mel run start and mel node create.
18455
18582
 
18456
18583
  Examples:
@@ -19737,7 +19864,7 @@ function withDefaultHelp(args) {
19737
19864
  }
19738
19865
  function createProgram() {
19739
19866
  const program2 = new Command();
19740
- program2.name("mel").description("Mel \u2014 Melius agent CLI").version("0.11.0").showSuggestionAfterError(true).option("--json", "Force JSON output (default)").option("--text", "Human-readable output").option(
19867
+ program2.name("mel").description("Mel \u2014 Melius agent CLI").version("0.12.0").showSuggestionAfterError(true).option("--json", "Force JSON output (default)").option("--text", "Human-readable output").option(
19741
19868
  "--fields <fields>",
19742
19869
  "Select specific output fields (comma-separated)"
19743
19870
  ).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-CHRQZMYE.js";
5
+ } from "../chunk-2PWVQ3PC.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.11.0",
3
+ "version": "0.12.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",