@contenthero/cli 0.2.2 → 0.2.3
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/README.md +2 -0
- package/dist/commands/audio.d.ts +11 -0
- package/dist/commands/audio.d.ts.map +1 -0
- package/dist/commands/audio.js +88 -0
- package/dist/commands/audio.js.map +1 -0
- package/dist/commands/brandkit.d.ts.map +1 -1
- package/dist/commands/brandkit.js +10 -27
- package/dist/commands/brandkit.js.map +1 -1
- package/dist/commands/context.d.ts +3 -0
- package/dist/commands/context.d.ts.map +1 -0
- package/dist/commands/context.js +143 -0
- package/dist/commands/context.js.map +1 -0
- package/dist/commands/favorites.d.ts +16 -0
- package/dist/commands/favorites.d.ts.map +1 -0
- package/dist/commands/favorites.js +98 -0
- package/dist/commands/favorites.js.map +1 -0
- package/dist/commands/folder.d.ts +12 -0
- package/dist/commands/folder.d.ts.map +1 -0
- package/dist/commands/folder.js +93 -0
- package/dist/commands/folder.js.map +1 -0
- package/dist/commands/generate.d.ts.map +1 -1
- package/dist/commands/generate.js +24 -6
- package/dist/commands/generate.js.map +1 -1
- package/dist/commands/identity.d.ts.map +1 -1
- package/dist/commands/identity.js +3 -2
- package/dist/commands/identity.js.map +1 -1
- package/dist/commands/inspiration.d.ts.map +1 -1
- package/dist/commands/inspiration.js +2 -0
- package/dist/commands/inspiration.js.map +1 -1
- package/dist/commands/media.d.ts +1 -0
- package/dist/commands/media.d.ts.map +1 -1
- package/dist/commands/media.js +169 -12
- package/dist/commands/media.js.map +1 -1
- package/dist/commands/post.d.ts.map +1 -1
- package/dist/commands/post.js +0 -8
- package/dist/commands/post.js.map +1 -1
- package/dist/commands/project.d.ts +3 -0
- package/dist/commands/project.d.ts.map +1 -0
- package/dist/commands/project.js +290 -0
- package/dist/commands/project.js.map +1 -0
- package/dist/commands/transcribe.d.ts +4 -3
- package/dist/commands/transcribe.d.ts.map +1 -1
- package/dist/commands/transcribe.js +5 -3
- package/dist/commands/transcribe.js.map +1 -1
- package/dist/config.d.ts +8 -28
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +10 -41
- package/dist/config.js.map +1 -1
- package/dist/context.d.ts +3 -4
- package/dist/context.d.ts.map +1 -1
- package/dist/context.js +8 -0
- package/dist/context.js.map +1 -1
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js +5 -1
- package/dist/errors.js.map +1 -1
- package/dist/generation.d.ts +19 -1
- package/dist/generation.d.ts.map +1 -1
- package/dist/generation.js +63 -5
- package/dist/generation.js.map +1 -1
- package/dist/index.js +15 -8
- package/dist/index.js.map +1 -1
- package/dist/program.d.ts.map +1 -1
- package/dist/program.js +10 -0
- package/dist/program.js.map +1 -1
- package/package.json +2 -2
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `contenthero folder` - organize the library (Unified Content Library, Phase D). No bytes move.
|
|
3
|
+
* folder list your folders + the built-in derived folders
|
|
4
|
+
* folder get <id> a folder's contents (id or derived key)
|
|
5
|
+
* folder create <name> [--smart --parent] create a manual (or smart) folder
|
|
6
|
+
* folder delete <id> delete a folder (and its subtree)
|
|
7
|
+
* folder add <folderId> <table> <recordId> [--variant] file an item
|
|
8
|
+
* folder remove <folderId> <table> <recordId> [--variant] unfile an item
|
|
9
|
+
*/
|
|
10
|
+
import { makeClient } from '../context.js';
|
|
11
|
+
import { emit, table } from '../output.js';
|
|
12
|
+
import { toInt } from '../args.js';
|
|
13
|
+
function clip(s, n = 50) {
|
|
14
|
+
if (!s)
|
|
15
|
+
return '';
|
|
16
|
+
return s.length > n ? s.slice(0, n - 1) + '…' : s;
|
|
17
|
+
}
|
|
18
|
+
export function registerFolder(program) {
|
|
19
|
+
const folder = program.command('folder').description('Organize the library into manual and smart folders');
|
|
20
|
+
folder
|
|
21
|
+
.command('list')
|
|
22
|
+
.description('List your folders plus the built-in derived folders')
|
|
23
|
+
.action(async (_opts, command) => {
|
|
24
|
+
const { client, ctx } = makeClient(command);
|
|
25
|
+
const data = await client.listFolders();
|
|
26
|
+
emit(data, ctx, (d) => table(['ID', 'NAME', 'TYPE', 'PARENT'], [
|
|
27
|
+
...d.folders.map((f) => [f.id.slice(0, 8), f.name, f.type, f.parentId ? f.parentId.slice(0, 8) : '']),
|
|
28
|
+
...d.derived.map((x) => [x.key, x.name, 'derived', '']),
|
|
29
|
+
]));
|
|
30
|
+
});
|
|
31
|
+
folder
|
|
32
|
+
.command('get')
|
|
33
|
+
.description("A folder's contents (a folder id or a derived key: recents, favorites, edits, canvas, posts)")
|
|
34
|
+
.argument('<id>', 'folder id or derived key')
|
|
35
|
+
.action(async (id, _opts, command) => {
|
|
36
|
+
const { client, ctx } = makeClient(command);
|
|
37
|
+
const { items } = await client.getFolder(id);
|
|
38
|
+
emit(items, ctx, (rows) => table(['KIND', 'REF', 'DETAIL'], rows.map((i) => i.type === 'media'
|
|
39
|
+
? [i.kind ?? 'media', `${i.sourceTable}/${i.sourceRecordId.slice(0, 8)} v${i.variant}`, clip(i.summary)]
|
|
40
|
+
: [i.type, i.id.slice(0, 8), clip(i.name)])));
|
|
41
|
+
});
|
|
42
|
+
folder
|
|
43
|
+
.command('create')
|
|
44
|
+
.description('Create a folder (manual by default; --smart for a saved query with --text)')
|
|
45
|
+
.argument('<name>', 'folder name')
|
|
46
|
+
.option('--smart', 'create a smart (saved-query) folder')
|
|
47
|
+
.option('--text <text>', 'smart-folder semantic query text')
|
|
48
|
+
.option('--parent <id>', 'nest under this parent folder id')
|
|
49
|
+
.action(async (name, opts, command) => {
|
|
50
|
+
const { client, ctx } = makeClient(command);
|
|
51
|
+
const f = await client.createFolder({
|
|
52
|
+
name,
|
|
53
|
+
type: opts.smart ? 'smart' : 'manual',
|
|
54
|
+
query: opts.smart ? { text: opts.text } : undefined,
|
|
55
|
+
parentId: opts.parent ?? null,
|
|
56
|
+
});
|
|
57
|
+
emit(f, ctx, (x) => `Created ${x.type} folder "${x.name}" (${x.id}).`);
|
|
58
|
+
});
|
|
59
|
+
folder
|
|
60
|
+
.command('delete')
|
|
61
|
+
.description('Delete a folder and its subtree (pointers only; assets are never deleted)')
|
|
62
|
+
.argument('<id>', 'folder id')
|
|
63
|
+
.action(async (id, _opts, command) => {
|
|
64
|
+
const { client, ctx } = makeClient(command);
|
|
65
|
+
await client.deleteFolder(id);
|
|
66
|
+
emit({ ok: true }, ctx, () => `Deleted folder ${id}.`);
|
|
67
|
+
});
|
|
68
|
+
folder
|
|
69
|
+
.command('add')
|
|
70
|
+
.description('File an item into a manual folder')
|
|
71
|
+
.argument('<folderId>', 'destination folder id')
|
|
72
|
+
.argument('<sourceTable>', 'item source table')
|
|
73
|
+
.argument('<sourceRecordId>', 'item source record id')
|
|
74
|
+
.option('--variant <n>', 'variation index (default 0)', toInt)
|
|
75
|
+
.action(async (folderId, sourceTable, sourceRecordId, opts, command) => {
|
|
76
|
+
const { client, ctx } = makeClient(command);
|
|
77
|
+
await client.addToFolder(folderId, { sourceTable, sourceRecordId, variant: opts.variant });
|
|
78
|
+
emit({ ok: true }, ctx, () => 'Filed into the folder.');
|
|
79
|
+
});
|
|
80
|
+
folder
|
|
81
|
+
.command('remove')
|
|
82
|
+
.description('Remove an item from a manual folder')
|
|
83
|
+
.argument('<folderId>', 'folder id')
|
|
84
|
+
.argument('<sourceTable>', 'item source table')
|
|
85
|
+
.argument('<sourceRecordId>', 'item source record id')
|
|
86
|
+
.option('--variant <n>', 'variation index (default 0)', toInt)
|
|
87
|
+
.action(async (folderId, sourceTable, sourceRecordId, opts, command) => {
|
|
88
|
+
const { client, ctx } = makeClient(command);
|
|
89
|
+
await client.removeFromFolder(folderId, { sourceTable, sourceRecordId, variant: opts.variant });
|
|
90
|
+
emit({ ok: true }, ctx, () => 'Removed from the folder.');
|
|
91
|
+
});
|
|
92
|
+
}
|
|
93
|
+
//# sourceMappingURL=folder.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"folder.js","sourceRoot":"","sources":["../../src/commands/folder.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generate.d.ts","sourceRoot":"","sources":["../../src/commands/generate.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;
|
|
1
|
+
{"version":3,"file":"generate.d.ts","sourceRoot":"","sources":["../../src/commands/generate.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAuDxC,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAkMvD"}
|
|
@@ -41,12 +41,27 @@ function runOptions(opts) {
|
|
|
41
41
|
timeoutSec: opts.timeout ?? DEFAULT_TIMEOUT_SEC,
|
|
42
42
|
};
|
|
43
43
|
}
|
|
44
|
+
/** Add the optional one-call timeline-placement flags to a generate command. */
|
|
45
|
+
function addPlacementFlags(cmd) {
|
|
46
|
+
return cmd
|
|
47
|
+
.option('--project <id>', 'editor project to place the result on (omit for a standalone library output)')
|
|
48
|
+
.option('--placement <json>', 'placement intent as JSON, e.g. {"mode":"atPlayhead"} (omit to place at the playhead when known, else append)', toJson)
|
|
49
|
+
.option('--playhead <frame>', 'current playhead frame, for playhead-relative placement', toInt);
|
|
50
|
+
}
|
|
51
|
+
/** Build the placement request fields from a command's parsed options. */
|
|
52
|
+
function placementFields(opts) {
|
|
53
|
+
return {
|
|
54
|
+
projectId: opts.project,
|
|
55
|
+
placement: opts.placement,
|
|
56
|
+
playheadFrame: opts.playhead,
|
|
57
|
+
};
|
|
58
|
+
}
|
|
44
59
|
export function registerGenerate(program) {
|
|
45
60
|
const generate = program
|
|
46
61
|
.command('generate')
|
|
47
62
|
.description('Generate media: image, video, audio, board, or lip-sync');
|
|
48
63
|
// -- generate image -------------------------------------------------------
|
|
49
|
-
addRunFlags(generate
|
|
64
|
+
addPlacementFlags(addRunFlags(generate
|
|
50
65
|
.command('image')
|
|
51
66
|
.description('Generate one or more images from a prompt (optionally image-to-image)')
|
|
52
67
|
.argument('[prompt]', 'the image prompt (optional for a few reference-only models)')
|
|
@@ -56,7 +71,7 @@ export function registerGenerate(program) {
|
|
|
56
71
|
.option('--mode <mode>', 'variant mode for models that expose one (e.g. flux-2-pro: pro/flex)')
|
|
57
72
|
.option('-n, --num <count>', 'number of variations (1-4)', toInt)
|
|
58
73
|
.option('--seed <seed>', 'seed for reproducibility', toInt)
|
|
59
|
-
.option('--ref <urlOrId>', 'reference image (URL or output id); repeatable', collect)).action(async (prompt, opts, command) => {
|
|
74
|
+
.option('--ref <urlOrId>', 'reference image (URL or output id); repeatable', collect))).action(async (prompt, opts, command) => {
|
|
60
75
|
const { client, ctx } = makeClient(command);
|
|
61
76
|
const request = compact({
|
|
62
77
|
contentType: 'image',
|
|
@@ -68,11 +83,12 @@ export function registerGenerate(program) {
|
|
|
68
83
|
seed: opts.seed,
|
|
69
84
|
references: references({ images: opts.ref }),
|
|
70
85
|
parameters: opts.mode ? { mode: opts.mode } : undefined,
|
|
86
|
+
...placementFields(opts),
|
|
71
87
|
});
|
|
72
88
|
await runGeneration(client, ctx, request, runOptions(opts));
|
|
73
89
|
});
|
|
74
90
|
// -- generate video -------------------------------------------------------
|
|
75
|
-
addRunFlags(generate
|
|
91
|
+
addPlacementFlags(addRunFlags(generate
|
|
76
92
|
.command('video')
|
|
77
93
|
.description('Generate a video from a prompt (optionally with frames / references)')
|
|
78
94
|
.argument('[prompt]', 'the video prompt')
|
|
@@ -91,7 +107,7 @@ export function registerGenerate(program) {
|
|
|
91
107
|
.option('--ref-audio <urlOrId>', 'reference audio (URL or output id); repeatable', collect)
|
|
92
108
|
.option('--element <id>', 'saved reference element id (Kling 3.0, @name in prompt); repeatable', collect)
|
|
93
109
|
.option('--multi-shot', 'enable multi-shot mode (e.g. WAN 2.6)')
|
|
94
|
-
.option('--shots <json>', 'Kling 3.0 multi-shot: JSON array of { prompt, duration } objects', toJson)).action(async (prompt, opts, command) => {
|
|
110
|
+
.option('--shots <json>', 'Kling 3.0 multi-shot: JSON array of { prompt, duration } objects', toJson))).action(async (prompt, opts, command) => {
|
|
95
111
|
const { client, ctx } = makeClient(command);
|
|
96
112
|
const shots = opts.shots;
|
|
97
113
|
const klingMultiShot = Array.isArray(shots) && shots.length > 0;
|
|
@@ -123,11 +139,12 @@ export function registerGenerate(program) {
|
|
|
123
139
|
audio: opts.refAudio,
|
|
124
140
|
elements: opts.element?.map((elementId) => ({ elementId })),
|
|
125
141
|
}),
|
|
142
|
+
...placementFields(opts),
|
|
126
143
|
});
|
|
127
144
|
await runGeneration(client, ctx, request, runOptions(opts));
|
|
128
145
|
});
|
|
129
146
|
// -- generate audio (synchronous) -----------------------------------------
|
|
130
|
-
generate
|
|
147
|
+
addPlacementFlags(generate
|
|
131
148
|
.command('audio')
|
|
132
149
|
.description('Generate audio with ElevenLabs: speech (TTS), music, or a sound effect')
|
|
133
150
|
.requiredOption('-m, --model <id>', 'audio model id (see `contenthero model list --type audio`)')
|
|
@@ -137,7 +154,7 @@ export function registerGenerate(program) {
|
|
|
137
154
|
.option('--voice-name <name>', 'for TTS: human-readable voice name (display only)')
|
|
138
155
|
.option('--duration <seconds>', 'for music / sfx: length in seconds', toFloat)
|
|
139
156
|
.option('--prompt-influence <0-1>', 'for sfx: how literally to follow the prompt', toFloat)
|
|
140
|
-
.option('--cost', 'estimate the credit cost instead of generating')
|
|
157
|
+
.option('--cost', 'estimate the credit cost instead of generating'))
|
|
141
158
|
.action(async (opts, command) => {
|
|
142
159
|
const { client, ctx } = makeClient(command);
|
|
143
160
|
const request = compact({
|
|
@@ -149,6 +166,7 @@ export function registerGenerate(program) {
|
|
|
149
166
|
voiceName: opts.voiceName,
|
|
150
167
|
durationSeconds: opts.duration,
|
|
151
168
|
promptInfluence: opts.promptInfluence,
|
|
169
|
+
...placementFields(opts),
|
|
152
170
|
});
|
|
153
171
|
// Audio is synchronous: no waiting, so wait is irrelevant.
|
|
154
172
|
await runGeneration(client, ctx, request, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generate.js","sourceRoot":"","sources":["../../src/commands/generate.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAIH,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAC1C,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,OAAO,EAAE,UAAU,EAAmB,MAAM,kBAAkB,CAAA;AAChG,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,cAAc,CAAA;AAC7C,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AAE5D,MAAM,WAAW,GAAgB;IAC/B,WAAW;IACX,MAAM;IACN,QAAQ;IACR,UAAU;IACV,QAAQ;IACR,SAAS;IACT,QAAQ;IACR,UAAU;IACV,MAAM;CACP,CAAA;AAED,MAAM,mBAAmB,GAAG,GAAG,CAAA;AAE/B,iEAAiE;AACjE,SAAS,WAAW,CAAC,GAAY;IAC/B,OAAO,GAAG;SACP,MAAM,CAAC,QAAQ,EAAE,mFAAmF,CAAC;SACrG,MAAM,CAAC,WAAW,EAAE,mEAAmE,CAAC;SACxF,MAAM,CAAC,qBAAqB,EAAE,mDAAmD,EAAE,KAAK,EAAE,mBAAmB,CAAC,CAAA;AACnH,CAAC;AAED,0DAA0D;AAC1D,SAAS,UAAU,CAAC,IAA0D;IAC5E,OAAO;QACL,IAAI,EAAE,IAAI,CAAC,IAAI,KAAK,IAAI;QACxB,IAAI,EAAE,IAAI,CAAC,IAAI,KAAK,KAAK;QACzB,UAAU,EAAE,IAAI,CAAC,OAAO,IAAI,mBAAmB;KAChD,CAAA;AACH,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,OAAgB;IAC/C,MAAM,QAAQ,GAAG,OAAO;SACrB,OAAO,CAAC,UAAU,CAAC;SACnB,WAAW,CAAC,yDAAyD,CAAC,CAAA;IAEzE,4EAA4E;IAC5E,WAAW,
|
|
1
|
+
{"version":3,"file":"generate.js","sourceRoot":"","sources":["../../src/commands/generate.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"identity.d.ts","sourceRoot":"","sources":["../../src/commands/identity.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAKxC,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"identity.d.ts","sourceRoot":"","sources":["../../src/commands/identity.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAKxC,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA6FvD"}
|
|
@@ -56,9 +56,10 @@ export function registerIdentity(program) {
|
|
|
56
56
|
voice
|
|
57
57
|
.command('list')
|
|
58
58
|
.description('List saved voices (favorites first)')
|
|
59
|
-
.
|
|
59
|
+
.option('--favorite', 'only favorited voices')
|
|
60
|
+
.action(async (opts, command) => {
|
|
60
61
|
const { client, ctx } = makeClient(command);
|
|
61
|
-
const voices = await client.listVoices();
|
|
62
|
+
const voices = await client.listVoices({ favorited: opts.favorite ? true : undefined });
|
|
62
63
|
emit(voices, ctx, (rows) => table(['VOICE ID', 'NAME', 'PROVIDER', 'FAV'], rows.map((v) => [v.voiceId, v.name ?? '', v.provider ?? '', v.isFavorited ? 'yes' : ''])));
|
|
63
64
|
});
|
|
64
65
|
voice
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"identity.js","sourceRoot":"","sources":["../../src/commands/identity.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"identity.js","sourceRoot":"","sources":["../../src/commands/identity.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"inspiration.d.ts","sourceRoot":"","sources":["../../src/commands/inspiration.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACxC,OAAO,KAAK,EAGV,OAAO,EAEP,cAAc,EACf,MAAM,kBAAkB,CAAA;AAMzB,oEAAoE;AACpE,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,cAAc,EAAE,GAAG,MAAM,CAWnE;AAED,6CAA6C;AAC7C,wBAAgB,aAAa,CAAC,IAAI,EAAE,OAAO,EAAE,GAAG,MAAM,CAWrD;AAKD,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"inspiration.d.ts","sourceRoot":"","sources":["../../src/commands/inspiration.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACxC,OAAO,KAAK,EAGV,OAAO,EAEP,cAAc,EACf,MAAM,kBAAkB,CAAA;AAMzB,oEAAoE;AACpE,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,cAAc,EAAE,GAAG,MAAM,CAWnE;AAED,6CAA6C;AAC7C,wBAAgB,aAAa,CAAC,IAAI,EAAE,OAAO,EAAE,GAAG,MAAM,CAWrD;AAKD,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAmG1D"}
|
|
@@ -72,6 +72,7 @@ export function registerInspiration(program) {
|
|
|
72
72
|
.option('--search <text>', 'text search across title, creator, handle, description')
|
|
73
73
|
.option('--sort <sort>', `sort order: ${SORTS.join(', ')} (default score)`)
|
|
74
74
|
.option('--brand-kit <id>', 'scope to the inspiration accounts linked to this brand kit')
|
|
75
|
+
.option('--favorite', 'only content the account has favorited')
|
|
75
76
|
.option('--limit <n>', 'how many to return (default 20)', toInt)
|
|
76
77
|
.option('--offset <n>', 'pagination offset', toInt)
|
|
77
78
|
.action(async (opts, command) => {
|
|
@@ -86,6 +87,7 @@ export function registerInspiration(program) {
|
|
|
86
87
|
search: opts.search,
|
|
87
88
|
sortBy: opts.sort,
|
|
88
89
|
brandKitId: opts.brandKit,
|
|
90
|
+
favorited: opts.favorite ? true : undefined,
|
|
89
91
|
limit: opts.limit,
|
|
90
92
|
offset: opts.offset,
|
|
91
93
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"inspiration.js","sourceRoot":"","sources":["../../src/commands/inspiration.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"inspiration.js","sourceRoot":"","sources":["../../src/commands/inspiration.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/media.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* `contenthero media` - the account's studio outputs ("creations").
|
|
3
3
|
* media list [--type --kind --status --limit] recent outputs, newest first
|
|
4
|
+
* media search <query> [--kinds --limit] semantic search of the editable library
|
|
4
5
|
* media get <id> one output, with its variations
|
|
5
6
|
*
|
|
6
7
|
* Spans creations, reference boards, and looks; filter with --kind. An id may be
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"media.d.ts","sourceRoot":"","sources":["../../src/commands/media.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"media.d.ts","sourceRoot":"","sources":["../../src/commands/media.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAIH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAiExC,wBAAgB,aAAa,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA+PpD"}
|
package/dist/commands/media.js
CHANGED
|
@@ -1,19 +1,30 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* `contenthero media` - the account's studio outputs ("creations").
|
|
3
3
|
* media list [--type --kind --status --limit] recent outputs, newest first
|
|
4
|
+
* media search <query> [--kinds --limit] semantic search of the editable library
|
|
4
5
|
* media get <id> one output, with its variations
|
|
5
6
|
*
|
|
6
7
|
* Spans creations, reference boards, and looks; filter with --kind. An id may be
|
|
7
8
|
* the full output id, its first 8 chars, or either with a "-N" variation suffix.
|
|
8
9
|
*/
|
|
9
|
-
import { readFile } from 'node:fs/promises';
|
|
10
|
-
import { basename, extname } from 'node:path';
|
|
10
|
+
import { readFile, writeFile, mkdir } from 'node:fs/promises';
|
|
11
|
+
import { basename, extname, join } from 'node:path';
|
|
11
12
|
import { makeClient } from '../context.js';
|
|
12
13
|
import { emit, keyValues, table } from '../output.js';
|
|
13
14
|
import { CliError, EXIT } from '../errors.js';
|
|
14
15
|
import { toInt } from '../args.js';
|
|
16
|
+
/** Split a `data:<mime>;base64,<data>` URL into a Buffer. Returns null on any non-data-URL. */
|
|
17
|
+
function bufferFromDataUrl(dataUrl) {
|
|
18
|
+
const m = /^data:[^;]+;base64,(.+)$/s.exec(dataUrl);
|
|
19
|
+
const b64 = m?.[1];
|
|
20
|
+
return b64 ? Buffer.from(b64, 'base64') : null;
|
|
21
|
+
}
|
|
15
22
|
const MEDIA_TYPES = ['image', 'video', 'audio', 'transcript'];
|
|
16
23
|
const KINDS = ['creation', 'board', 'look', 'upload'];
|
|
24
|
+
// `list` can read every library (incl. the 'all' union); a single-item `get` needs a specific source.
|
|
25
|
+
const LIST_SOURCES = ['creations', 'uploads', 'stock', 'all'];
|
|
26
|
+
const GET_SOURCES = ['creations', 'uploads', 'stock'];
|
|
27
|
+
const SEARCH_KINDS = ['image', 'video', 'audio'];
|
|
17
28
|
/** Minimal extension -> MIME map for local uploads (defaults to octet-stream). */
|
|
18
29
|
const MIME_BY_EXT = {
|
|
19
30
|
png: 'image/png', jpg: 'image/jpeg', jpeg: 'image/jpeg', webp: 'image/webp',
|
|
@@ -25,6 +36,22 @@ function mimeForFile(path) {
|
|
|
25
36
|
const ext = extname(path).replace('.', '').toLowerCase();
|
|
26
37
|
return MIME_BY_EXT[ext] ?? 'application/octet-stream';
|
|
27
38
|
}
|
|
39
|
+
/** Default file extension per media type, for --save when a URL has none. */
|
|
40
|
+
const EXT_BY_TYPE = {
|
|
41
|
+
image: '.png', video: '.mp4', audio: '.mp3', transcript: '.txt',
|
|
42
|
+
};
|
|
43
|
+
/** Pick a file extension for a downloaded variation (from the URL, else the type). */
|
|
44
|
+
function saveExt(url, type) {
|
|
45
|
+
try {
|
|
46
|
+
const ext = extname(new URL(url).pathname);
|
|
47
|
+
if (ext)
|
|
48
|
+
return ext;
|
|
49
|
+
}
|
|
50
|
+
catch {
|
|
51
|
+
/* fall through to the type default */
|
|
52
|
+
}
|
|
53
|
+
return EXT_BY_TYPE[type] ?? '';
|
|
54
|
+
}
|
|
28
55
|
/** Shorten a prompt for table display. */
|
|
29
56
|
function clip(text, max = 48) {
|
|
30
57
|
if (!text)
|
|
@@ -42,12 +69,18 @@ export function registerMedia(program) {
|
|
|
42
69
|
const media = program.command('media').description("Browse the account's studio outputs");
|
|
43
70
|
media
|
|
44
71
|
.command('list')
|
|
45
|
-
.description(
|
|
72
|
+
.description("List recent media (newest first). --source uploads|stock|all beyond creations.")
|
|
73
|
+
.option('--source <source>', `which library: ${LIST_SOURCES.join(', ')} (default creations)`)
|
|
46
74
|
.option('--type <type>', `filter by media type: ${MEDIA_TYPES.join(', ')}`)
|
|
47
|
-
.option('--kind <kind>', `filter by asset class: ${KINDS.join(', ')}`)
|
|
75
|
+
.option('--kind <kind>', `creations only: filter by asset class: ${KINDS.join(', ')}`)
|
|
48
76
|
.option('--status <status>', "status filter (defaults to 'completed')")
|
|
77
|
+
.option('--favorite', 'creations only: only outputs with a favorited variation')
|
|
78
|
+
.option('--archived', 'creations only: only outputs with an archived variation')
|
|
49
79
|
.option('--limit <n>', 'how many to return (default 20)', toInt)
|
|
50
80
|
.action(async (opts, command) => {
|
|
81
|
+
if (opts.source && !LIST_SOURCES.includes(opts.source)) {
|
|
82
|
+
throw new CliError(`Invalid --source "${opts.source}". Expected one of: ${LIST_SOURCES.join(', ')}.`, EXIT.USAGE);
|
|
83
|
+
}
|
|
51
84
|
if (opts.type && !MEDIA_TYPES.includes(opts.type)) {
|
|
52
85
|
throw new CliError(`Invalid --type "${opts.type}". Expected one of: ${MEDIA_TYPES.join(', ')}.`, EXIT.USAGE);
|
|
53
86
|
}
|
|
@@ -56,27 +89,88 @@ export function registerMedia(program) {
|
|
|
56
89
|
}
|
|
57
90
|
const { client, ctx } = makeClient(command);
|
|
58
91
|
const items = await client.listMedia({
|
|
92
|
+
source: opts.source,
|
|
59
93
|
contentType: opts.type,
|
|
60
94
|
kind: opts.kind,
|
|
61
95
|
status: opts.status,
|
|
96
|
+
favorited: opts.favorite ? true : undefined,
|
|
97
|
+
archived: opts.archived ? true : undefined,
|
|
62
98
|
limit: opts.limit,
|
|
63
99
|
});
|
|
64
|
-
|
|
100
|
+
// One row per variation (the atomic grain): VAR shows which slot when a generation has siblings.
|
|
101
|
+
emit(items, ctx, (rows) => table(['ID', 'VAR', 'TYPE', 'KIND', 'NAME/MODEL', 'STATUS', 'PROMPT'], rows.map((m) => [
|
|
65
102
|
m.id.slice(0, 8),
|
|
103
|
+
m.generationSize > 1 ? `${m.variant + 1}/${m.generationSize}${m.isFavorited ? '★' : ''}` : (m.isFavorited ? '★' : ''),
|
|
66
104
|
m.type,
|
|
67
105
|
m.kind ?? '',
|
|
68
|
-
m.model ?? '',
|
|
106
|
+
m.fileName ?? m.model ?? '',
|
|
69
107
|
m.status,
|
|
70
108
|
clip(m.prompt),
|
|
71
109
|
])));
|
|
72
110
|
});
|
|
111
|
+
media
|
|
112
|
+
.command('search')
|
|
113
|
+
.description('Semantically search your library (creations, uploads, stock, brand) by describing the content')
|
|
114
|
+
.argument('<query>', 'natural-language description of the media to find')
|
|
115
|
+
.option('--kinds <kinds>', `restrict to media kinds (comma-separated): ${SEARCH_KINDS.join(', ')}`)
|
|
116
|
+
.option('--limit <n>', 'max assets to return (default 12, max 50)', toInt)
|
|
117
|
+
.action(async (query, opts, command) => {
|
|
118
|
+
const kinds = typeof opts.kinds === 'string'
|
|
119
|
+
? opts.kinds.split(',').map((k) => k.trim()).filter(Boolean)
|
|
120
|
+
: undefined;
|
|
121
|
+
if (kinds) {
|
|
122
|
+
for (const k of kinds) {
|
|
123
|
+
if (!SEARCH_KINDS.includes(k)) {
|
|
124
|
+
throw new CliError(`Invalid --kinds value "${k}". Expected: ${SEARCH_KINDS.join(', ')}.`, EXIT.USAGE);
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
const { client, ctx } = makeClient(command);
|
|
129
|
+
const results = await client.searchMedia(query, {
|
|
130
|
+
kinds: kinds,
|
|
131
|
+
limit: opts.limit,
|
|
132
|
+
});
|
|
133
|
+
emit(results, ctx, (rows) => table(['ID', 'KIND', 'REL', 'SCENES', 'SUMMARY'], rows.map((r) => [
|
|
134
|
+
r.id.slice(0, 8),
|
|
135
|
+
r.kind ?? '',
|
|
136
|
+
`${Math.round(r.relevance * 100)}%`,
|
|
137
|
+
r.scenes.length
|
|
138
|
+
? r.scenes.map((s) => `${(s.startMs / 1000).toFixed(0)}-${(s.endMs / 1000).toFixed(0)}s`).join(' ')
|
|
139
|
+
: '',
|
|
140
|
+
clip(r.summary),
|
|
141
|
+
])));
|
|
142
|
+
});
|
|
73
143
|
media
|
|
74
144
|
.command('get')
|
|
75
|
-
.description('Get one
|
|
76
|
-
.argument('<id>', '
|
|
77
|
-
.
|
|
145
|
+
.description('Get one media item by id (studio output, or an upload/stock item with --source)')
|
|
146
|
+
.argument('<id>', 'media id (full or first-8); creations also accept a "-N" variation suffix')
|
|
147
|
+
.option('--source <source>', `which library the id belongs to: ${GET_SOURCES.join(', ')} (default creations)`)
|
|
148
|
+
.option('--save <dir>', 'download each variation to <dir> (materialize the bytes for local viewing or re-ingestion)')
|
|
149
|
+
.action(async (id, opts, command) => {
|
|
150
|
+
if (opts.source && !GET_SOURCES.includes(opts.source)) {
|
|
151
|
+
throw new CliError(`Invalid --source "${opts.source}". Expected one of: ${GET_SOURCES.join(', ')}.`, EXIT.USAGE);
|
|
152
|
+
}
|
|
78
153
|
const { client, ctx } = makeClient(command);
|
|
79
|
-
const item = await client.getMedia(id);
|
|
154
|
+
const item = await client.getMedia(id, { source: opts.source });
|
|
155
|
+
// --save materializes bytes to disk: the CLI's vision affordance. A terminal
|
|
156
|
+
// cannot carry a model image block, so we hand back real files any consumer
|
|
157
|
+
// (a human, a script, or an LLM harness re-reading them) can pick up.
|
|
158
|
+
const saved = [];
|
|
159
|
+
if (opts.save) {
|
|
160
|
+
const dir = String(opts.save);
|
|
161
|
+
await mkdir(dir, { recursive: true });
|
|
162
|
+
for (const v of item.variations) {
|
|
163
|
+
if (!v.url)
|
|
164
|
+
continue;
|
|
165
|
+
const res = await fetch(v.url);
|
|
166
|
+
if (!res.ok) {
|
|
167
|
+
throw new CliError(`Failed to download variation ${v.variation}: HTTP ${res.status}`, EXIT.GENERAL);
|
|
168
|
+
}
|
|
169
|
+
const file = join(dir, `${item.id.slice(0, 8)}-v${v.variation}${saveExt(v.url, item.type)}`);
|
|
170
|
+
await writeFile(file, Buffer.from(await res.arrayBuffer()));
|
|
171
|
+
saved.push(file);
|
|
172
|
+
}
|
|
173
|
+
}
|
|
80
174
|
emit(item, ctx, (m) => {
|
|
81
175
|
const head = keyValues([
|
|
82
176
|
['Id', m.id],
|
|
@@ -87,8 +181,71 @@ export function registerMedia(program) {
|
|
|
87
181
|
...(m.prompt ? [['Prompt', clip(m.prompt, 80)]] : []),
|
|
88
182
|
...(m.creditsUsed != null ? [['Credits used', m.creditsUsed]] : []),
|
|
89
183
|
]);
|
|
90
|
-
const variations = table(['VAR', 'STATUS', 'FAV', 'URL'], m.variations.map((v) => [
|
|
91
|
-
|
|
184
|
+
const variations = table(['VAR', 'STATUS', 'FAV', 'ARCH', 'SIZE', 'URL'], m.variations.map((v) => [
|
|
185
|
+
v.variation,
|
|
186
|
+
v.status,
|
|
187
|
+
v.isFavorited ? 'yes' : '',
|
|
188
|
+
v.isArchived ? 'yes' : '',
|
|
189
|
+
// Dimensions, and the ARTWORK's size when it is smaller than the file. A caller placing this
|
|
190
|
+
// asset needs the artwork box to get the aspect right and to align by the visible edge; the
|
|
191
|
+
// MCP reports the same, so neither surface knows more than the other.
|
|
192
|
+
v.geometry
|
|
193
|
+
? v.geometry.content &&
|
|
194
|
+
(v.geometry.content.width < v.geometry.width || v.geometry.content.height < v.geometry.height)
|
|
195
|
+
? `${v.geometry.width}x${v.geometry.height} (art ${v.geometry.content.width}x${v.geometry.content.height} @${v.geometry.content.x},${v.geometry.content.y})`
|
|
196
|
+
: `${v.geometry.width}x${v.geometry.height}`
|
|
197
|
+
: '',
|
|
198
|
+
v.url ?? '',
|
|
199
|
+
]));
|
|
200
|
+
const savedBlock = saved.length
|
|
201
|
+
? `\n\nSaved ${saved.length} file(s):\n${saved.map((s) => ` ${s}`).join('\n')}`
|
|
202
|
+
: '';
|
|
203
|
+
return `${head}\n\n${variations}${savedBlock}`;
|
|
204
|
+
});
|
|
205
|
+
});
|
|
206
|
+
media
|
|
207
|
+
.command('watch')
|
|
208
|
+
.description('Watch a VIDEO as low-res keyframes across a time window (inspect raw footage)')
|
|
209
|
+
.argument('<idOrUrl>', 'a studio output id (first-8 ok) OR a media URL on our storage')
|
|
210
|
+
.option('--from <sec>', 'start of the source-time window (seconds)', (v) => parseFloat(v))
|
|
211
|
+
.option('--to <sec>', 'end of the source-time window (seconds)', (v) => parseFloat(v))
|
|
212
|
+
.option('--frames <n>', 'how many keyframes (default 8)', (v) => parseInt(v, 10))
|
|
213
|
+
.option('--save <dir>', 'write the keyframes to <dir>')
|
|
214
|
+
.action(async (idOrUrl, opts, command) => {
|
|
215
|
+
const { client, ctx } = makeClient(command);
|
|
216
|
+
const base = /^https?:\/\//.test(idOrUrl) ? { url: idOrUrl } : { mediaId: idOrUrl };
|
|
217
|
+
const item = {
|
|
218
|
+
...base,
|
|
219
|
+
fromSec: opts.from,
|
|
220
|
+
toSec: opts.to,
|
|
221
|
+
frames: opts.frames ?? 8,
|
|
222
|
+
};
|
|
223
|
+
const result = await client.getMediaBatch([item]);
|
|
224
|
+
const first = result.items[0];
|
|
225
|
+
const keyframes = first?.keyframes ?? [];
|
|
226
|
+
const saved = [];
|
|
227
|
+
if (opts.save && keyframes.length > 0) {
|
|
228
|
+
const dir = String(opts.save);
|
|
229
|
+
await mkdir(dir, { recursive: true });
|
|
230
|
+
for (let i = 0; i < keyframes.length; i++) {
|
|
231
|
+
const kf = keyframes[i];
|
|
232
|
+
const buf = kf ? bufferFromDataUrl(kf.dataUrl) : null;
|
|
233
|
+
if (!buf)
|
|
234
|
+
continue;
|
|
235
|
+
const file = join(dir, `kf-${String(i + 1).padStart(2, '0')}.jpg`);
|
|
236
|
+
await writeFile(file, buf);
|
|
237
|
+
saved.push(file);
|
|
238
|
+
}
|
|
239
|
+
}
|
|
240
|
+
emit(result, ctx, () => {
|
|
241
|
+
if (!first?.ok)
|
|
242
|
+
return `Could not resolve the media: ${first?.error ?? 'unknown error'}`;
|
|
243
|
+
if (keyframes.length === 0)
|
|
244
|
+
return 'No keyframes returned (is it a video, and is the ffmpeg service configured?).';
|
|
245
|
+
const savedBlock = saved.length
|
|
246
|
+
? `\nSaved ${saved.length} keyframe(s):\n${saved.map((s) => ` ${s}`).join('\n')}`
|
|
247
|
+
: '';
|
|
248
|
+
return `${keyframes.length} keyframe(s) at ${keyframes.map((k) => `${k.atSec}s`).join(', ')}.${savedBlock}`;
|
|
92
249
|
});
|
|
93
250
|
});
|
|
94
251
|
media
|