@contenthero/cli 0.2.2 → 0.2.4
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 +79 -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
package/dist/config.js
CHANGED
|
@@ -1,49 +1,21 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* Credential and config WRITES for the CLI (`contenthero login` / `logout`).
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
* - `config.json` : non-secret preferences (e.g. baseUrl).
|
|
9
|
-
*
|
|
10
|
-
* Reads tolerate a missing or malformed file by returning empty, so a fresh
|
|
11
|
-
* machine just falls through the auth ladder to env / flag. Writes create the
|
|
12
|
-
* dir at 0700 first.
|
|
4
|
+
* ⚠️ THE READ HALF MOVED TO `@contenthero/sdk/credentials`. It is shared with the MCP server, which
|
|
5
|
+
* previously could not see a key written here at all and so read only the environment. Two implementations of
|
|
6
|
+
* "where does the key live" agree right up until one of them learns about a new location, so paths, shapes and
|
|
7
|
+
* the resolution order now have exactly one definition and this file re-exports it.
|
|
13
8
|
*/
|
|
14
|
-
import {
|
|
15
|
-
import {
|
|
16
|
-
import
|
|
17
|
-
export
|
|
18
|
-
|
|
19
|
-
}
|
|
20
|
-
export function credentialsPath() {
|
|
21
|
-
return join(configDir(), 'credentials');
|
|
22
|
-
}
|
|
23
|
-
export function configPath() {
|
|
24
|
-
return join(configDir(), 'config.json');
|
|
25
|
-
}
|
|
9
|
+
import { chmodSync, existsSync, mkdirSync, rmSync, writeFileSync } from 'node:fs';
|
|
10
|
+
import { configDir, configPath, credentialsPath, readConfig, readCredential, } from '@contenthero/sdk/credentials';
|
|
11
|
+
// Re-exported so every existing CLI import keeps working and there is still one obvious place to look.
|
|
12
|
+
export { configDir, configPath, credentialsPath, readConfig, readCredential };
|
|
13
|
+
/** The write half needs the directory to exist; reads tolerate its absence. */
|
|
26
14
|
function ensureDir() {
|
|
27
15
|
const dir = configDir();
|
|
28
16
|
if (!existsSync(dir))
|
|
29
17
|
mkdirSync(dir, { recursive: true, mode: 0o700 });
|
|
30
18
|
}
|
|
31
|
-
function readJson(path) {
|
|
32
|
-
try {
|
|
33
|
-
if (!existsSync(path))
|
|
34
|
-
return undefined;
|
|
35
|
-
const raw = readFileSync(path, 'utf8').trim();
|
|
36
|
-
if (!raw)
|
|
37
|
-
return undefined;
|
|
38
|
-
return JSON.parse(raw);
|
|
39
|
-
}
|
|
40
|
-
catch {
|
|
41
|
-
return undefined;
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
export function readCredential() {
|
|
45
|
-
return readJson(credentialsPath());
|
|
46
|
-
}
|
|
47
19
|
export function writeCredential(cred) {
|
|
48
20
|
ensureDir();
|
|
49
21
|
const path = credentialsPath();
|
|
@@ -58,9 +30,6 @@ export function clearCredential() {
|
|
|
58
30
|
rmSync(path);
|
|
59
31
|
return true;
|
|
60
32
|
}
|
|
61
|
-
export function readConfig() {
|
|
62
|
-
return readJson(configPath()) ?? {};
|
|
63
|
-
}
|
|
64
33
|
export function writeConfig(config) {
|
|
65
34
|
ensureDir();
|
|
66
35
|
writeFileSync(configPath(), JSON.stringify(config, null, 2) + '\n', { mode: 0o644 });
|
package/dist/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AACjF,OAAO,EACL,SAAS,EACT,UAAU,EACV,eAAe,EACf,UAAU,EACV,cAAc,GAGf,MAAM,8BAA8B,CAAA;AAErC,uGAAuG;AACvG,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,eAAe,EAAE,UAAU,EAAE,cAAc,EAAE,CAAA;AAG7E,+EAA+E;AAC/E,SAAS,SAAS;IAChB,MAAM,GAAG,GAAG,SAAS,EAAE,CAAA;IACvB,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;QAAE,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAA;AACxE,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,IAAsB;IACpD,SAAS,EAAE,CAAA;IACX,MAAM,IAAI,GAAG,eAAe,EAAE,CAAA;IAC9B,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAA;IAC1E,gFAAgF;IAChF,SAAS,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;AACxB,CAAC;AAED,MAAM,UAAU,eAAe;IAC7B,MAAM,IAAI,GAAG,eAAe,EAAE,CAAA;IAC9B,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;QAAE,OAAO,KAAK,CAAA;IACnC,MAAM,CAAC,IAAI,CAAC,CAAA;IACZ,OAAO,IAAI,CAAA;AACb,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,MAAoB;IAC9C,SAAS,EAAE,CAAA;IACX,aAAa,CAAC,UAAU,EAAE,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAA;AACtF,CAAC"}
|
package/dist/context.d.ts
CHANGED
|
@@ -34,10 +34,9 @@ export interface Context {
|
|
|
34
34
|
export declare function globalsOf(command: Command): GlobalOptions;
|
|
35
35
|
/** Resolve the API key and where it came from, without constructing a client. */
|
|
36
36
|
export declare function resolveContext(command: Command): Context;
|
|
37
|
-
/**
|
|
38
|
-
*
|
|
39
|
-
|
|
40
|
-
*/
|
|
37
|
+
/** Await a presence RELEASE for every client this CLI invocation created (called once before the process exits,
|
|
38
|
+
* so an open editor's "Editing via CLI" badge clears immediately rather than lingering on the TTL). */
|
|
39
|
+
export declare function releaseCliPresence(): Promise<void>;
|
|
41
40
|
export declare function makeClient(command: Command): {
|
|
42
41
|
client: ContentHero;
|
|
43
42
|
ctx: Context;
|
package/dist/context.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAC9C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAIxC,8EAA8E;AAC9E,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG,KAAK,GAAG,MAAM,GAAG,MAAM,CAAA;AAExD,gDAAgD;AAChD,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,OAAO,CAAA;IACb,KAAK,EAAE,OAAO,CAAA;IACd,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAED,uCAAuC;AACvC,MAAM,WAAW,OAAO;IACtB,yDAAyD;IACzD,IAAI,EAAE,OAAO,CAAA;IACb,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,SAAS,EAAE,SAAS,CAAA;IACpB,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAED,kEAAkE;AAClE,wBAAgB,SAAS,CAAC,OAAO,EAAE,OAAO,GAAG,aAAa,CASzD;AAED,iFAAiF;AACjF,wBAAgB,cAAc,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAuBxD;
|
|
1
|
+
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAC9C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAIxC,8EAA8E;AAC9E,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG,KAAK,GAAG,MAAM,GAAG,MAAM,CAAA;AAExD,gDAAgD;AAChD,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,OAAO,CAAA;IACb,KAAK,EAAE,OAAO,CAAA;IACd,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAED,uCAAuC;AACvC,MAAM,WAAW,OAAO;IACtB,yDAAyD;IACzD,IAAI,EAAE,OAAO,CAAA;IACb,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,SAAS,EAAE,SAAS,CAAA;IACpB,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB;AAED,kEAAkE;AAClE,wBAAgB,SAAS,CAAC,OAAO,EAAE,OAAO,GAAG,aAAa,CASzD;AAED,iFAAiF;AACjF,wBAAgB,cAAc,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAuBxD;AASD;wGACwG;AACxG,wBAAsB,kBAAkB,IAAI,OAAO,CAAC,IAAI,CAAC,CAExD;AAED,wBAAgB,UAAU,CAAC,OAAO,EAAE,OAAO,GAAG;IAAE,MAAM,EAAE,WAAW,CAAC;IAAC,GAAG,EAAE,OAAO,CAAA;CAAE,CAwBlF"}
|
package/dist/context.js
CHANGED
|
@@ -52,6 +52,13 @@ export function resolveContext(command) {
|
|
|
52
52
|
* Build an authenticated SDK client for this command, or throw a CliError with
|
|
53
53
|
* the auth exit code when no key is configured anywhere in the ladder.
|
|
54
54
|
*/
|
|
55
|
+
/** Clients created during this CLI invocation, so `releaseCliPresence()` can clear their editor badges on exit. */
|
|
56
|
+
const activeClients = [];
|
|
57
|
+
/** Await a presence RELEASE for every client this CLI invocation created (called once before the process exits,
|
|
58
|
+
* so an open editor's "Editing via CLI" badge clears immediately rather than lingering on the TTL). */
|
|
59
|
+
export async function releaseCliPresence() {
|
|
60
|
+
await Promise.all(activeClients.map((c) => c.flushRelease().catch(() => { })));
|
|
61
|
+
}
|
|
55
62
|
export function makeClient(command) {
|
|
56
63
|
const ctx = resolveContext(command);
|
|
57
64
|
if (!ctx.apiKey) {
|
|
@@ -70,6 +77,7 @@ export function makeClient(command) {
|
|
|
70
77
|
},
|
|
71
78
|
}),
|
|
72
79
|
});
|
|
80
|
+
activeClients.push(client);
|
|
73
81
|
return { client, ctx };
|
|
74
82
|
}
|
|
75
83
|
//# sourceMappingURL=context.js.map
|
package/dist/context.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.js","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAE9C,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AACxD,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,aAAa,CAAA;AAsB5C,kEAAkE;AAClE,MAAM,UAAU,SAAS,CAAC,OAAgB;IACxC,MAAM,CAAC,GAAG,OAAO,CAAC,eAAe,EAA6B,CAAA;IAC9D,OAAO;QACL,mFAAmF;QACnF,IAAI,EAAE,CAAC,CAAC,IAAI,KAAK,IAAI,IAAI,CAAC,CAAC,KAAK,KAAK,IAAI;QACzC,KAAK,EAAE,CAAC,CAAC,KAAK,KAAK,IAAI;QACvB,MAAM,EAAE,OAAO,CAAC,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS;QAC3D,OAAO,EAAE,OAAO,CAAC,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS;KAC/D,CAAA;AACH,CAAC;AAED,iFAAiF;AACjF,MAAM,UAAU,cAAc,CAAC,OAAgB;IAC7C,MAAM,CAAC,GAAG,SAAS,CAAC,OAAO,CAAC,CAAA;IAE5B,IAAI,MAA0B,CAAA;IAC9B,IAAI,SAAS,GAAc,MAAM,CAAA;IACjC,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC;QACb,MAAM,GAAG,CAAC,CAAC,MAAM,CAAA;QACjB,SAAS,GAAG,MAAM,CAAA;IACpB,CAAC;SAAM,IAAI,OAAO,CAAC,GAAG,CAAC,mBAAmB,EAAE,CAAC;QAC3C,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAA;QACxC,SAAS,GAAG,KAAK,CAAA;IACnB,CAAC;SAAM,CAAC;QACN,MAAM,MAAM,GAAG,cAAc,EAAE,CAAA;QAC/B,IAAI,MAAM,EAAE,MAAM,EAAE,CAAC;YACnB,MAAM,GAAG,MAAM,CAAC,MAAM,CAAA;YACtB,SAAS,GAAG,MAAM,CAAA;QACpB,CAAC;IACH,CAAC;IAED,MAAM,OAAO,GACX,CAAC,CAAC,OAAO,IAAI,OAAO,CAAC,GAAG,CAAC,oBAAoB,IAAI,UAAU,EAAE,CAAC,OAAO,IAAI,SAAS,CAAA;IAEpF,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,CAAA;AACrD,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,UAAU,CAAC,OAAgB;IACzC,MAAM,GAAG,GAAG,cAAc,CAAC,OAAO,CAAC,CAAA;IACnC,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC;QAChB,MAAM,IAAI,QAAQ,CAChB,wFAAwF,EACxF,IAAI,CAAC,IAAI,CACV,CAAA;IACH,CAAC;IACD,MAAM,MAAM,GAAG,IAAI,WAAW,CAAC;QAC7B,MAAM,EAAE,GAAG,CAAC,MAAM;QAClB,OAAO,EAAE,GAAG,CAAC,OAAO;QACpB,yEAAyE;QACzE,6EAA6E;QAC7E,KAAK,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,CACrB,KAAK,CAAC,KAAK,EAAE;YACX,GAAG,IAAI;YACP,OAAO,EAAE;gBACP,GAAI,IAAI,EAAE,OAA8C;gBACxD,uBAAuB,EAAE,KAAK;aAC/B;SACF,CAAC;KACL,CAAC,CAAA;IACF,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,CAAA;AACxB,CAAC"}
|
|
1
|
+
{"version":3,"file":"context.js","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":"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"}
|
package/dist/errors.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAUH,eAAO,MAAM,IAAI;;;;;;CAMP,CAAA;AAEV,gFAAgF;AAChF,qBAAa,QAAS,SAAQ,KAAK;IACjC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;gBACb,OAAO,EAAE,MAAM,EAAE,QAAQ,GAAE,MAAqB;CAK7D;AAED,iDAAiD;AACjD,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,CASrD;AAED,qDAAqD;AACrD,wBAAgB,eAAe,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,CAGpD"}
|
package/dist/errors.js
CHANGED
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
* SDK errors are mapped here; `CliError` carries an explicit code for problems
|
|
14
14
|
* the CLI itself raises (e.g. no key configured).
|
|
15
15
|
*/
|
|
16
|
-
import { AuthenticationError, PermissionError, ValidationError, GenerationTimeoutError, } from '@contenthero/sdk';
|
|
16
|
+
import { AuthenticationError, PermissionError, ValidationError, GenerationTimeoutError, GenerationInterruptedError, } from '@contenthero/sdk';
|
|
17
17
|
export const EXIT = {
|
|
18
18
|
OK: 0,
|
|
19
19
|
GENERAL: 1,
|
|
@@ -38,8 +38,12 @@ export function exitCodeForError(err) {
|
|
|
38
38
|
return EXIT.AUTH;
|
|
39
39
|
if (err instanceof ValidationError)
|
|
40
40
|
return EXIT.USAGE;
|
|
41
|
+
// Both mean the same thing to a caller: the job is SUBMITTED and still running, so
|
|
42
|
+
// the correct response is to poll its outputId, never to resubmit.
|
|
41
43
|
if (err instanceof GenerationTimeoutError)
|
|
42
44
|
return EXIT.TIMEOUT;
|
|
45
|
+
if (err instanceof GenerationInterruptedError)
|
|
46
|
+
return EXIT.TIMEOUT;
|
|
43
47
|
return EXIT.GENERAL;
|
|
44
48
|
}
|
|
45
49
|
/** A human-readable message for any thrown value. */
|
package/dist/errors.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EACL,mBAAmB,EACnB,eAAe,EACf,eAAe,EACf,sBAAsB,
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EACL,mBAAmB,EACnB,eAAe,EACf,eAAe,EACf,sBAAsB,EACtB,0BAA0B,GAC3B,MAAM,kBAAkB,CAAA;AAEzB,MAAM,CAAC,MAAM,IAAI,GAAG;IAClB,EAAE,EAAE,CAAC;IACL,OAAO,EAAE,CAAC;IACV,KAAK,EAAE,CAAC;IACR,IAAI,EAAE,CAAC;IACP,OAAO,EAAE,CAAC;CACF,CAAA;AAEV,gFAAgF;AAChF,MAAM,OAAO,QAAS,SAAQ,KAAK;IACxB,QAAQ,CAAQ;IACzB,YAAY,OAAe,EAAE,WAAmB,IAAI,CAAC,OAAO;QAC1D,KAAK,CAAC,OAAO,CAAC,CAAA;QACd,IAAI,CAAC,IAAI,GAAG,UAAU,CAAA;QACtB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAA;IAC1B,CAAC;CACF;AAED,iDAAiD;AACjD,MAAM,UAAU,gBAAgB,CAAC,GAAY;IAC3C,IAAI,GAAG,YAAY,QAAQ;QAAE,OAAO,GAAG,CAAC,QAAQ,CAAA;IAChD,IAAI,GAAG,YAAY,mBAAmB,IAAI,GAAG,YAAY,eAAe;QAAE,OAAO,IAAI,CAAC,IAAI,CAAA;IAC1F,IAAI,GAAG,YAAY,eAAe;QAAE,OAAO,IAAI,CAAC,KAAK,CAAA;IACrD,mFAAmF;IACnF,mEAAmE;IACnE,IAAI,GAAG,YAAY,sBAAsB;QAAE,OAAO,IAAI,CAAC,OAAO,CAAA;IAC9D,IAAI,GAAG,YAAY,0BAA0B;QAAE,OAAO,IAAI,CAAC,OAAO,CAAA;IAClE,OAAO,IAAI,CAAC,OAAO,CAAA;AACrB,CAAC;AAED,qDAAqD;AACrD,MAAM,UAAU,eAAe,CAAC,GAAY;IAC1C,IAAI,GAAG,YAAY,KAAK;QAAE,OAAO,GAAG,CAAC,OAAO,CAAA;IAC5C,OAAO,MAAM,CAAC,GAAG,CAAC,CAAA;AACpB,CAAC"}
|
package/dist/generation.d.ts
CHANGED
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
* poll to a terminal state; on timeout we emit the outputId and set exit 4 so
|
|
9
9
|
* the caller can keep polling and still script around it.
|
|
10
10
|
*/
|
|
11
|
-
import { ContentHero, type GenerateBoardRequest, type GenerateRequest, type Generation } from '@contenthero/sdk';
|
|
11
|
+
import { ContentHero, type EditAudioRequest, type EditAudioResult, type GenerateBoardRequest, type GenerateRequest, type Generation } from '@contenthero/sdk';
|
|
12
12
|
import type { Context } from './context.js';
|
|
13
13
|
/** Drop undefined values so the request payload stays minimal. */
|
|
14
14
|
export declare function compact<T extends object>(obj: T): T;
|
|
@@ -26,8 +26,26 @@ declare function generationHuman(g: Generation): string;
|
|
|
26
26
|
* --wait (poll to terminal, the default), and --no-wait (return the submission).
|
|
27
27
|
*/
|
|
28
28
|
export declare function runGeneration(client: ContentHero, ctx: Context, request: GenerateRequest, opts: RunOptions): Promise<void>;
|
|
29
|
+
/**
|
|
30
|
+
* Same as runGeneration, for the edit_audio pipeline (existing audio -> audio).
|
|
31
|
+
* Isolation returns `completed` inline; --cost previews without running.
|
|
32
|
+
*/
|
|
33
|
+
export declare function runEditAudio(client: ContentHero, ctx: Context, request: EditAudioRequest, opts: RunOptions): Promise<void>;
|
|
29
34
|
/** Same as runGeneration, for the Reference Board pipeline. */
|
|
30
35
|
export declare function runBoard(client: ContentHero, ctx: Context, request: GenerateBoardRequest, opts: RunOptions): Promise<void>;
|
|
36
|
+
/**
|
|
37
|
+
* Render an in-place clip enhancement, which is one job per SOURCE rather than one job.
|
|
38
|
+
*
|
|
39
|
+
* Waits on EVERY outputId, not just the first. Waiting on one would report the whole edit as finished when a
|
|
40
|
+
* single recording had landed, while the others were still running and their clips still untouched.
|
|
41
|
+
*
|
|
42
|
+
* A `noop` is emitted as-is rather than treated as an error: a selection with no audible audio is a real,
|
|
43
|
+
* correct answer, and the server explains which case it was.
|
|
44
|
+
*/
|
|
45
|
+
export declare function renderEnhanceClips(client: ContentHero, ctx: Context, result: EditAudioResult, opts: {
|
|
46
|
+
wait: boolean;
|
|
47
|
+
timeoutSec: number;
|
|
48
|
+
}): Promise<void>;
|
|
31
49
|
/** Block on one outputId to a terminal state and render it; exit 4 on timeout. */
|
|
32
50
|
export declare function waitAndRender(client: ContentHero, ctx: Context, outputId: string, timeoutSec: number): Promise<void>;
|
|
33
51
|
export { generationHuman };
|
package/dist/generation.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generation.d.ts","sourceRoot":"","sources":["../src/generation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EACL,WAAW,EAGX,KAAK,oBAAoB,EACzB,KAAK,eAAe,EAEpB,KAAK,UAAU,EAChB,MAAM,kBAAkB,CAAA;AAGzB,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AAE3C,kEAAkE;AAClE,wBAAgB,OAAO,CAAC,CAAC,SAAS,MAAM,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,CAEnD;AAED,qEAAqE;AACrE,wBAAgB,UAAU,CACxB,KAAK,EAAE,eAAe,CAAC,YAAY,CAAC,GACnC,eAAe,CAAC,YAAY,CAAC,GAAG,SAAS,CAG3C;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,OAAO,CAAA;IACb,IAAI,EAAE,OAAO,CAAA;IACb,+BAA+B;IAC/B,UAAU,EAAE,MAAM,CAAA;CACnB;AAwBD,iBAAS,eAAe,CAAC,CAAC,EAAE,UAAU,GAAG,MAAM,CAa9C;AAeD;;;GAGG;AACH,wBAAsB,aAAa,CACjC,MAAM,EAAE,WAAW,EACnB,GAAG,EAAE,OAAO,EACZ,OAAO,EAAE,eAAe,EACxB,IAAI,EAAE,UAAU,GACf,OAAO,CAAC,IAAI,CAAC,CAIf;AAED,+DAA+D;AAC/D,wBAAsB,QAAQ,CAC5B,MAAM,EAAE,WAAW,EACnB,GAAG,EAAE,OAAO,EACZ,OAAO,EAAE,oBAAoB,EAC7B,IAAI,EAAE,UAAU,GACf,OAAO,CAAC,IAAI,CAAC,CAIf;AAgBD,kFAAkF;AAClF,wBAAsB,aAAa,CACjC,MAAM,EAAE,WAAW,EACnB,GAAG,EAAE,OAAO,EACZ,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"generation.d.ts","sourceRoot":"","sources":["../src/generation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EACL,WAAW,EAGX,KAAK,gBAAgB,EACrB,KAAK,eAAe,EACpB,KAAK,oBAAoB,EACzB,KAAK,eAAe,EAEpB,KAAK,UAAU,EAChB,MAAM,kBAAkB,CAAA;AAGzB,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AAE3C,kEAAkE;AAClE,wBAAgB,OAAO,CAAC,CAAC,SAAS,MAAM,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,CAEnD;AAED,qEAAqE;AACrE,wBAAgB,UAAU,CACxB,KAAK,EAAE,eAAe,CAAC,YAAY,CAAC,GACnC,eAAe,CAAC,YAAY,CAAC,GAAG,SAAS,CAG3C;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,OAAO,CAAA;IACb,IAAI,EAAE,OAAO,CAAA;IACb,+BAA+B;IAC/B,UAAU,EAAE,MAAM,CAAA;CACnB;AAwBD,iBAAS,eAAe,CAAC,CAAC,EAAE,UAAU,GAAG,MAAM,CAa9C;AAeD;;;GAGG;AACH,wBAAsB,aAAa,CACjC,MAAM,EAAE,WAAW,EACnB,GAAG,EAAE,OAAO,EACZ,OAAO,EAAE,eAAe,EACxB,IAAI,EAAE,UAAU,GACf,OAAO,CAAC,IAAI,CAAC,CAIf;AAED;;;GAGG;AACH,wBAAsB,YAAY,CAChC,MAAM,EAAE,WAAW,EACnB,GAAG,EAAE,OAAO,EACZ,OAAO,EAAE,gBAAgB,EACzB,IAAI,EAAE,UAAU,GACf,OAAO,CAAC,IAAI,CAAC,CAQf;AAED,+DAA+D;AAC/D,wBAAsB,QAAQ,CAC5B,MAAM,EAAE,WAAW,EACnB,GAAG,EAAE,OAAO,EACZ,OAAO,EAAE,oBAAoB,EAC7B,IAAI,EAAE,UAAU,GACf,OAAO,CAAC,IAAI,CAAC,CAIf;AAgBD;;;;;;;;GAQG;AACH,wBAAsB,kBAAkB,CACtC,MAAM,EAAE,WAAW,EACnB,GAAG,EAAE,OAAO,EACZ,MAAM,EAAE,eAAe,EACvB,IAAI,EAAE;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,GAC1C,OAAO,CAAC,IAAI,CAAC,CAUf;AAqBD,kFAAkF;AAClF,wBAAsB,aAAa,CACjC,MAAM,EAAE,WAAW,EACnB,GAAG,EAAE,OAAO,EACZ,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,IAAI,CAAC,CAqBf;AAED,OAAO,EAAE,eAAe,EAAE,CAAA"}
|
package/dist/generation.js
CHANGED
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
* poll to a terminal state; on timeout we emit the outputId and set exit 4 so
|
|
9
9
|
* the caller can keep polling and still script around it.
|
|
10
10
|
*/
|
|
11
|
-
import {
|
|
11
|
+
import { GenerationFailedError, } from '@contenthero/sdk';
|
|
12
12
|
import { EXIT } from './errors.js';
|
|
13
13
|
import { emit, keyValues } from './output.js';
|
|
14
14
|
/** Drop undefined values so the request payload stays minimal. */
|
|
@@ -76,6 +76,19 @@ export async function runGeneration(client, ctx, request, opts) {
|
|
|
76
76
|
const submitted = await client.generate(request);
|
|
77
77
|
await renderSubmission(client, ctx, submitted, opts);
|
|
78
78
|
}
|
|
79
|
+
/**
|
|
80
|
+
* Same as runGeneration, for the edit_audio pipeline (existing audio -> audio).
|
|
81
|
+
* Isolation returns `completed` inline; --cost previews without running.
|
|
82
|
+
*/
|
|
83
|
+
export async function runEditAudio(client, ctx, request, opts) {
|
|
84
|
+
if (opts.cost) {
|
|
85
|
+
const est = await client.estimateEditAudioCost(request);
|
|
86
|
+
emit(est, ctx, costHuman);
|
|
87
|
+
return;
|
|
88
|
+
}
|
|
89
|
+
const submitted = await client.editAudio(request);
|
|
90
|
+
await renderSubmission(client, ctx, submitted, opts);
|
|
91
|
+
}
|
|
79
92
|
/** Same as runGeneration, for the Reference Board pipeline. */
|
|
80
93
|
export async function runBoard(client, ctx, request, opts) {
|
|
81
94
|
if (opts.cost)
|
|
@@ -91,6 +104,41 @@ async function renderSubmission(client, ctx, submitted, opts) {
|
|
|
91
104
|
}
|
|
92
105
|
await waitAndRender(client, ctx, submitted.outputId, opts.timeoutSec);
|
|
93
106
|
}
|
|
107
|
+
/**
|
|
108
|
+
* Render an in-place clip enhancement, which is one job per SOURCE rather than one job.
|
|
109
|
+
*
|
|
110
|
+
* Waits on EVERY outputId, not just the first. Waiting on one would report the whole edit as finished when a
|
|
111
|
+
* single recording had landed, while the others were still running and their clips still untouched.
|
|
112
|
+
*
|
|
113
|
+
* A `noop` is emitted as-is rather than treated as an error: a selection with no audible audio is a real,
|
|
114
|
+
* correct answer, and the server explains which case it was.
|
|
115
|
+
*/
|
|
116
|
+
export async function renderEnhanceClips(client, ctx, result, opts) {
|
|
117
|
+
const jobs = result.outputs ?? [];
|
|
118
|
+
if (jobs.length === 0 || !opts.wait) {
|
|
119
|
+
emit(result, ctx, enhanceClipsHuman);
|
|
120
|
+
return;
|
|
121
|
+
}
|
|
122
|
+
emit(result, ctx, enhanceClipsHuman);
|
|
123
|
+
for (const job of jobs) {
|
|
124
|
+
await waitAndRender(client, ctx, job.outputId, opts.timeoutSec);
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
/** Human rendering for an in-place enhancement submission. */
|
|
128
|
+
function enhanceClipsHuman(result) {
|
|
129
|
+
const jobs = result.outputs ?? [];
|
|
130
|
+
if (jobs.length === 0)
|
|
131
|
+
return result.note ?? 'Nothing to enhance: no audible clips in that selection.';
|
|
132
|
+
const lines = jobs.map((j, i) => ` ${i + 1}. ${j.outputId} ${j.clipIds.length} clip${j.clipIds.length === 1 ? '' : 's'}, ` +
|
|
133
|
+
`${j.windows} window${j.windows === 1 ? '' : 's'}`);
|
|
134
|
+
const head = jobs.length === 1
|
|
135
|
+
? 'Enhancing 1 source:'
|
|
136
|
+
: `Enhancing ${jobs.length} sources as separate jobs (a noise profile is estimated per recording):`;
|
|
137
|
+
const tail = result.silencedClipsExcluded
|
|
138
|
+
? `\n${result.silencedClipsExcluded} silenced clip${result.silencedClipsExcluded === 1 ? '' : 's'} skipped.`
|
|
139
|
+
: '';
|
|
140
|
+
return `${head}\n${lines.join('\n')}\nThe enhanced audio is applied to the clips automatically as each job lands.${tail}`;
|
|
141
|
+
}
|
|
94
142
|
/** Block on one outputId to a terminal state and render it; exit 4 on timeout. */
|
|
95
143
|
export async function waitAndRender(client, ctx, outputId, timeoutSec) {
|
|
96
144
|
try {
|
|
@@ -98,13 +146,23 @@ export async function waitAndRender(client, ctx, outputId, timeoutSec) {
|
|
|
98
146
|
emit(gen, ctx, generationHuman);
|
|
99
147
|
}
|
|
100
148
|
catch (err) {
|
|
101
|
-
|
|
149
|
+
// A generation that reached this function was SUBMITTED: it is running and charged.
|
|
150
|
+
// Whether we timed out or a poll hit a transient error, the job is not lost, so emit
|
|
151
|
+
// what we know (with its outputId) and exit TIMEOUT rather than throwing. Throwing
|
|
152
|
+
// would print an error for a live generation and invite the user to run it again,
|
|
153
|
+
// paying twice. A GenerationFailedError is terminal and still propagates.
|
|
154
|
+
if (err instanceof GenerationFailedError)
|
|
155
|
+
throw err;
|
|
156
|
+
try {
|
|
102
157
|
const snapshot = await client.getGeneration(outputId);
|
|
103
158
|
emit(snapshot, ctx, generationHuman);
|
|
104
|
-
process.exitCode = EXIT.TIMEOUT;
|
|
105
|
-
return;
|
|
106
159
|
}
|
|
107
|
-
|
|
160
|
+
catch {
|
|
161
|
+
// Even the snapshot failed. Surface the id itself so the run is still resumable.
|
|
162
|
+
emit({ outputId, status: 'processing' }, ctx, generationHuman);
|
|
163
|
+
}
|
|
164
|
+
process.exitCode = EXIT.TIMEOUT;
|
|
165
|
+
return;
|
|
108
166
|
}
|
|
109
167
|
}
|
|
110
168
|
export { generationHuman };
|
package/dist/generation.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generation.js","sourceRoot":"","sources":["../src/generation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAEL,
|
|
1
|
+
{"version":3,"file":"generation.js","sourceRoot":"","sources":["../src/generation.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -11,6 +11,7 @@ import { CommanderError } from 'commander';
|
|
|
11
11
|
import pc from 'picocolors';
|
|
12
12
|
import { buildProgram } from './program.js';
|
|
13
13
|
import { EXIT, exitCodeForError, messageForError } from './errors.js';
|
|
14
|
+
import { releaseCliPresence } from './context.js';
|
|
14
15
|
async function main() {
|
|
15
16
|
const program = buildProgram();
|
|
16
17
|
// Bare invocation: show help and exit cleanly rather than erroring.
|
|
@@ -18,6 +19,9 @@ async function main() {
|
|
|
18
19
|
program.outputHelp();
|
|
19
20
|
process.exit(EXIT.OK);
|
|
20
21
|
}
|
|
22
|
+
// Compute the exit code, then release editor presence BEFORE exiting (process.exit would skip a finally), so
|
|
23
|
+
// an open editor's "Editing via CLI" badge clears immediately rather than lingering on the sliding TTL.
|
|
24
|
+
let exitCode = EXIT.OK;
|
|
21
25
|
try {
|
|
22
26
|
await program.parseAsync(process.argv);
|
|
23
27
|
}
|
|
@@ -25,18 +29,21 @@ async function main() {
|
|
|
25
29
|
// Help and version display, and parse errors, come through as CommanderError.
|
|
26
30
|
// Commander already wrote the message; we only set the exit code.
|
|
27
31
|
if (err instanceof CommanderError) {
|
|
28
|
-
|
|
29
|
-
}
|
|
30
|
-
const code = exitCodeForError(err);
|
|
31
|
-
const message = messageForError(err);
|
|
32
|
-
if (process.argv.includes('--human')) {
|
|
33
|
-
process.stderr.write(pc.red(`Error: ${message}`) + '\n');
|
|
32
|
+
exitCode = err.exitCode === 0 ? EXIT.OK : EXIT.USAGE;
|
|
34
33
|
}
|
|
35
34
|
else {
|
|
36
|
-
|
|
35
|
+
exitCode = exitCodeForError(err);
|
|
36
|
+
const message = messageForError(err);
|
|
37
|
+
if (process.argv.includes('--human')) {
|
|
38
|
+
process.stderr.write(pc.red(`Error: ${message}`) + '\n');
|
|
39
|
+
}
|
|
40
|
+
else {
|
|
41
|
+
process.stderr.write(JSON.stringify({ error: message, exitCode: exitCode }, null, 2) + '\n');
|
|
42
|
+
}
|
|
37
43
|
}
|
|
38
|
-
process.exit(code);
|
|
39
44
|
}
|
|
45
|
+
await releaseCliPresence().catch(() => { });
|
|
46
|
+
process.exit(exitCode);
|
|
40
47
|
}
|
|
41
48
|
void main();
|
|
42
49
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA;;;;;;;GAOG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAA;AAC1C,OAAO,EAAE,MAAM,YAAY,CAAA;AAC3B,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAC3C,OAAO,EAAE,IAAI,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA;;;;;;;GAOG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,WAAW,CAAA;AAC1C,OAAO,EAAE,MAAM,YAAY,CAAA;AAC3B,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAC3C,OAAO,EAAE,IAAI,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AACrE,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAA;AAEjD,KAAK,UAAU,IAAI;IACjB,MAAM,OAAO,GAAG,YAAY,EAAE,CAAA;IAE9B,oEAAoE;IACpE,IAAI,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvC,OAAO,CAAC,UAAU,EAAE,CAAA;QACpB,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IACvB,CAAC;IAED,6GAA6G;IAC7G,wGAAwG;IACxG,IAAI,QAAQ,GAAW,IAAI,CAAC,EAAE,CAAA;IAC9B,IAAI,CAAC;QACH,MAAM,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;IACxC,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,8EAA8E;QAC9E,kEAAkE;QAClE,IAAI,GAAG,YAAY,cAAc,EAAE,CAAC;YAClC,QAAQ,GAAG,GAAG,CAAC,QAAQ,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAA;QACtD,CAAC;aAAM,CAAC;YACN,QAAQ,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAA;YAChC,MAAM,OAAO,GAAG,eAAe,CAAC,GAAG,CAAC,CAAA;YACpC,IAAI,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;gBACrC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,UAAU,OAAO,EAAE,CAAC,GAAG,IAAI,CAAC,CAAA;YAC1D,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,CAAA;YAC9F,CAAC;QACH,CAAC;IACH,CAAC;IAED,MAAM,kBAAkB,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAA;IAC1C,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;AACxB,CAAC;AAED,KAAK,IAAI,EAAE,CAAA"}
|
package/dist/program.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"program.d.ts","sourceRoot":"","sources":["../src/program.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAKH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;
|
|
1
|
+
{"version":3,"file":"program.d.ts","sourceRoot":"","sources":["../src/program.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAKH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAuCnC,wBAAgB,YAAY,IAAI,OAAO,CA2CtC"}
|
package/dist/program.js
CHANGED
|
@@ -19,9 +19,11 @@ import { registerTag } from './commands/tag.js';
|
|
|
19
19
|
import { registerElement } from './commands/element.js';
|
|
20
20
|
import { registerGenerate } from './commands/generate.js';
|
|
21
21
|
import { registerUpscale } from './commands/upscale.js';
|
|
22
|
+
import { registerAudio } from './commands/audio.js';
|
|
22
23
|
import { registerTranscribe } from './commands/transcribe.js';
|
|
23
24
|
import { registerGeneration } from './commands/generation.js';
|
|
24
25
|
import { registerMedia } from './commands/media.js';
|
|
26
|
+
import { registerFolder } from './commands/folder.js';
|
|
25
27
|
import { registerPost } from './commands/post.js';
|
|
26
28
|
import { registerPipeline } from './commands/pipeline.js';
|
|
27
29
|
import { registerBrandKit } from './commands/brandkit.js';
|
|
@@ -29,6 +31,9 @@ import { registerIdentity } from './commands/identity.js';
|
|
|
29
31
|
import { registerInspiration } from './commands/inspiration.js';
|
|
30
32
|
import { registerBrandAccount, registerConnectedAccount } from './commands/connected.js';
|
|
31
33
|
import { registerSchema } from './commands/schema.js';
|
|
34
|
+
import { registerFavorites } from './commands/favorites.js';
|
|
35
|
+
import { registerProject } from './commands/project.js';
|
|
36
|
+
import { registerContext } from './commands/context.js';
|
|
32
37
|
/** Read our own version from package.json (kept in lockstep with sdk + mcp). */
|
|
33
38
|
function readVersion() {
|
|
34
39
|
try {
|
|
@@ -60,9 +65,11 @@ export function buildProgram() {
|
|
|
60
65
|
registerElement(program);
|
|
61
66
|
registerGenerate(program);
|
|
62
67
|
registerUpscale(program);
|
|
68
|
+
registerAudio(program);
|
|
63
69
|
registerTranscribe(program);
|
|
64
70
|
registerGeneration(program);
|
|
65
71
|
registerMedia(program);
|
|
72
|
+
registerFolder(program);
|
|
66
73
|
registerPost(program);
|
|
67
74
|
registerTag(program);
|
|
68
75
|
registerPipeline(program);
|
|
@@ -72,6 +79,9 @@ export function buildProgram() {
|
|
|
72
79
|
registerBrandAccount(program);
|
|
73
80
|
registerConnectedAccount(program);
|
|
74
81
|
registerSchema(program);
|
|
82
|
+
registerFavorites(program);
|
|
83
|
+
registerProject(program);
|
|
84
|
+
registerContext(program);
|
|
75
85
|
return program;
|
|
76
86
|
}
|
|
77
87
|
//# sourceMappingURL=program.js.map
|
package/dist/program.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"program.js","sourceRoot":"","sources":["../src/program.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AACtC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AACxC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AACzC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACnC,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AACnD,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AACvD,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAA;AAC7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAA;AAC7D,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AACzD,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAA;AAC/D,OAAO,EAAE,oBAAoB,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAA;AACxF,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;
|
|
1
|
+
{"version":3,"file":"program.js","sourceRoot":"","sources":["../src/program.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@contenthero/cli",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.4",
|
|
4
4
|
"description": "Official ContentHero CLI. Generate media, run the content pipeline, and read your brand/research context from the terminal or any agent shell. Rides the @contenthero/sdk kernel.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
@@ -41,7 +41,7 @@
|
|
|
41
41
|
"license": "MIT",
|
|
42
42
|
"private": false,
|
|
43
43
|
"dependencies": {
|
|
44
|
-
"@contenthero/sdk": "^0.3.
|
|
44
|
+
"@contenthero/sdk": "^0.3.4",
|
|
45
45
|
"commander": "^12.1.0",
|
|
46
46
|
"picocolors": "^1.1.1"
|
|
47
47
|
},
|