@martini-film/cli 0.1.0 → 0.3.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/README.md +49 -28
- package/dist/api.js +38 -14
- package/dist/api.js.map +1 -1
- package/dist/approve.js +83 -0
- package/dist/approve.js.map +1 -0
- package/dist/args.js +33 -12
- package/dist/args.js.map +1 -1
- package/dist/cli.js +202 -64
- package/dist/cli.js.map +1 -1
- package/dist/commands/assets.js +255 -46
- package/dist/commands/assets.js.map +1 -1
- package/dist/commands/context.js +42 -8
- package/dist/commands/context.js.map +1 -1
- package/dist/commands/files.js +135 -95
- package/dist/commands/files.js.map +1 -1
- package/dist/commands/login.js +171 -30
- package/dist/commands/login.js.map +1 -1
- package/dist/commands/tools.js +73 -12
- package/dist/commands/tools.js.map +1 -1
- package/dist/config.js +10 -19
- package/dist/config.js.map +1 -1
- package/dist/generated/manifest.json +18393 -5431
- package/dist/help.js +203 -18
- package/dist/help.js.map +1 -1
- package/dist/host.js +0 -6
- package/dist/host.js.map +1 -1
- package/dist/manifest.js +9 -10
- package/dist/manifest.js.map +1 -1
- package/dist/output.js +149 -20
- package/dist/output.js.map +1 -1
- package/dist/schema.js +103 -30
- package/dist/schema.js.map +1 -1
- package/dist/wait.js +211 -29
- package/dist/wait.js.map +1 -1
- package/package.json +1 -1
package/dist/cli.js
CHANGED
|
@@ -1,22 +1,19 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
* (docs/plans/agent-cli.md, decision 18).
|
|
6
|
-
*/
|
|
7
|
-
import { createApiClient } from './api.js';
|
|
1
|
+
import { mkdirSync, writeFileSync } from 'node:fs';
|
|
2
|
+
import { resolve, join } from 'node:path';
|
|
3
|
+
import { CliApiError, createApiClient } from './api.js';
|
|
4
|
+
import { approvalSupport, runWithApproval } from './approve.js';
|
|
8
5
|
import { flagBoolean, flagString, parseArgs } from './args.js';
|
|
9
6
|
import { download, upload, wait } from './commands/assets.js';
|
|
10
|
-
import { selectedFields, timeoutMs, wantsWait } from './commands/context.js';
|
|
7
|
+
import { assertKnownFlags, compoundBooleanFlags, CONTEXT_FLAG_ALIASES, needsLocalProjection, selectedFields, timeoutMs, wantsWait, } from './commands/context.js';
|
|
11
8
|
import { files } from './commands/files.js';
|
|
12
9
|
import { login, logout, whoami } from './commands/login.js';
|
|
13
10
|
import { init, models, probe, tools, version } from './commands/tools.js';
|
|
14
11
|
import { resolveConfig } from './config.js';
|
|
15
|
-
import { renderHelp, renderToolHelp } from './help.js';
|
|
12
|
+
import { renderCompoundHelp, renderHelp, renderToolHelp } from './help.js';
|
|
16
13
|
import { findTool, loadManifest } from './manifest.js';
|
|
17
|
-
import { EXIT, printBytes, printError, printResult } from './output.js';
|
|
18
|
-
import { ArgumentError, buildArguments } from './schema.js';
|
|
19
|
-
import { producedAssetIds, waitForAssets, waitForDelivery } from './wait.js';
|
|
14
|
+
import { EXIT, assertRawDestination, printBytes, printError, printResult, printWarning, selectFields, warnNoFieldsMatched, } from './output.js';
|
|
15
|
+
import { ArgumentError, buildArguments, flagSpecs, GLOBAL_FLAG_NAMES } from './schema.js';
|
|
16
|
+
import { assetsOutcome, handleOutcome, producedAssetIds, waitForAssets, waitForDelivery, waitForJob, waitForRun, WaitTimeoutError, } from './wait.js';
|
|
20
17
|
export const COMPOUND_COMMANDS = [
|
|
21
18
|
login,
|
|
22
19
|
logout,
|
|
@@ -31,24 +28,12 @@ export const COMPOUND_COMMANDS = [
|
|
|
31
28
|
init,
|
|
32
29
|
version,
|
|
33
30
|
];
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
'out',
|
|
40
|
-
'wait',
|
|
41
|
-
'timeout',
|
|
42
|
-
'quiet',
|
|
43
|
-
'raw',
|
|
44
|
-
'project',
|
|
45
|
-
'canvas',
|
|
46
|
-
'run',
|
|
47
|
-
'api-key',
|
|
48
|
-
'api-url',
|
|
49
|
-
'profile',
|
|
31
|
+
export { GLOBAL_FLAG_NAMES };
|
|
32
|
+
const TOOL_ONLY_GLOBAL_FLAGS = new Set(['approve', 'max-olives', 'out-dir']);
|
|
33
|
+
const GLOBAL_FLAGS_FOR_COMPOUNDS = new Set([
|
|
34
|
+
...[...GLOBAL_FLAG_NAMES].filter(flag => !TOOL_ONLY_GLOBAL_FLAGS.has(flag)),
|
|
35
|
+
...CONTEXT_FLAG_ALIASES,
|
|
50
36
|
]);
|
|
51
|
-
/** Single-item generation and rendering block by default; batches fan out and `martini wait` later (decision 5). */
|
|
52
37
|
const WAIT_BY_DEFAULT = new Set([
|
|
53
38
|
'create_node_and_generate',
|
|
54
39
|
'generate',
|
|
@@ -57,7 +42,7 @@ const WAIT_BY_DEFAULT = new Set([
|
|
|
57
42
|
'upscale_assets',
|
|
58
43
|
'render_blender_take',
|
|
59
44
|
]);
|
|
60
|
-
const
|
|
45
|
+
const BOOLEAN_GLOBAL_FLAGS = new Set(['help', 'version', 'wait', 'quiet', 'raw', 'context', 'approve']);
|
|
61
46
|
export async function main(options) {
|
|
62
47
|
const env = options.env ?? process.env;
|
|
63
48
|
const cwd = options.cwd ?? process.cwd();
|
|
@@ -66,36 +51,59 @@ export async function main(options) {
|
|
|
66
51
|
...(options.stderr ? { stderr: options.stderr } : {}),
|
|
67
52
|
...(options.isTTY !== undefined ? { isTTY: options.isTTY } : {}),
|
|
68
53
|
};
|
|
69
|
-
const parsed = parseArgs(options.argv);
|
|
70
54
|
const manifest = options.manifest ?? loadManifest();
|
|
55
|
+
const toolFor = (command) => command && !COMPOUND_COMMANDS.some(candidate => candidate.name === command)
|
|
56
|
+
? findTool(command, manifest)
|
|
57
|
+
: undefined;
|
|
58
|
+
const parsed = parseArgs(options.argv, (flag, command) => {
|
|
59
|
+
if (BOOLEAN_GLOBAL_FLAGS.has(flag))
|
|
60
|
+
return true;
|
|
61
|
+
const compound = COMPOUND_COMMANDS.find(candidate => candidate.name === command);
|
|
62
|
+
if (compound)
|
|
63
|
+
return compoundBooleanFlags(compound).includes(flag);
|
|
64
|
+
const tool = toolFor(command);
|
|
65
|
+
return tool ? flagSpecs(tool).some(spec => spec.flag === flag && spec.kind === 'boolean') : false;
|
|
66
|
+
}, (flag, command) => {
|
|
67
|
+
if (GLOBAL_FLAG_NAMES.has(flag))
|
|
68
|
+
return false;
|
|
69
|
+
const tool = toolFor(command);
|
|
70
|
+
return tool ? flagSpecs(tool).some(spec => spec.flag === flag && spec.kind === 'array') : false;
|
|
71
|
+
});
|
|
71
72
|
try {
|
|
73
|
+
if (flagBoolean(parsed.flags, 'version') && parsed.command === undefined)
|
|
74
|
+
parsed.command = 'version';
|
|
72
75
|
if (parsed.command === undefined ||
|
|
73
76
|
parsed.command === 'help' ||
|
|
74
77
|
(flagBoolean(parsed.flags, 'help') && !parsed.command)) {
|
|
75
78
|
printResult(renderHelp(manifest, COMPOUND_COMMANDS), output);
|
|
76
79
|
return EXIT.ok;
|
|
77
80
|
}
|
|
78
|
-
if (parsed.command === '--version' || (flagBoolean(parsed.flags, 'version') && parsed.command === undefined)) {
|
|
79
|
-
parsed.command = 'version';
|
|
80
|
-
}
|
|
81
81
|
const compound = COMPOUND_COMMANDS.find(command => command.name === parsed.command);
|
|
82
82
|
const tool = compound ? undefined : findTool(parsed.command, manifest);
|
|
83
83
|
if (!compound && !tool) {
|
|
84
84
|
throw new ArgumentError(`Unknown command "${parsed.command}". Run martini --help for the list.`);
|
|
85
85
|
}
|
|
86
86
|
if (flagBoolean(parsed.flags, 'help')) {
|
|
87
|
-
printResult(tool ? renderToolHelp(tool) :
|
|
87
|
+
printResult(tool ? renderToolHelp(tool) : renderCompoundHelp(compound), output);
|
|
88
88
|
return EXIT.ok;
|
|
89
89
|
}
|
|
90
|
+
if (compound)
|
|
91
|
+
assertKnownFlags(compound, parsed.flags, GLOBAL_FLAGS_FOR_COMPOUNDS);
|
|
92
|
+
else if (parsed.positionals.length > 0)
|
|
93
|
+
throw strayPositionalError(tool, parsed.positionals);
|
|
90
94
|
const config = resolveConfig(parsed.flags, { env, cwd });
|
|
91
|
-
const
|
|
92
|
-
(
|
|
95
|
+
for (const warning of config.warnings)
|
|
96
|
+
printWarning('CONFIG_WARNING', warning, output);
|
|
97
|
+
const clientFor = options.createClient ??
|
|
98
|
+
(resolved => createApiClient(resolved, { ...(options.fetch ? { fetch: options.fetch } : {}), env }));
|
|
93
99
|
const out = flagString(parsed.flags, 'out');
|
|
94
100
|
if (out)
|
|
95
101
|
output.out = out;
|
|
102
|
+
output.inRun = Boolean(config.runId);
|
|
96
103
|
output.quiet = flagBoolean(parsed.flags, 'quiet') ?? false;
|
|
97
104
|
const context = {
|
|
98
|
-
client,
|
|
105
|
+
client: clientFor(config),
|
|
106
|
+
clientFor,
|
|
99
107
|
config,
|
|
100
108
|
manifest,
|
|
101
109
|
flags: parsed.flags,
|
|
@@ -106,58 +114,188 @@ export async function main(options) {
|
|
|
106
114
|
now: options.now ?? Date.now,
|
|
107
115
|
sleep: options.sleep ?? (ms => new Promise(resolve => setTimeout(resolve, ms))),
|
|
108
116
|
};
|
|
117
|
+
const select = selectedFields(context);
|
|
118
|
+
timeoutMs(context);
|
|
109
119
|
if (compound) {
|
|
110
120
|
const result = await compound.run(context);
|
|
111
|
-
|
|
121
|
+
const projected = select.length && result && typeof result === 'object' ? selectFields(result, select) : result;
|
|
122
|
+
warnNoFieldsMatched(projected, select, output);
|
|
123
|
+
printResult(projected, output);
|
|
112
124
|
return EXIT.ok;
|
|
113
125
|
}
|
|
114
|
-
|
|
126
|
+
const result = await runTool(tool, context, parsed.flags);
|
|
127
|
+
warnNoFieldsMatched(result, select, output, knownResultFields(tool));
|
|
128
|
+
printResult(result, output);
|
|
115
129
|
return EXIT.ok;
|
|
116
130
|
}
|
|
117
131
|
catch (error) {
|
|
132
|
+
if (error instanceof CliApiError && error.result !== undefined)
|
|
133
|
+
printResult(error.result, output);
|
|
118
134
|
return printError(error, output);
|
|
119
135
|
}
|
|
120
136
|
}
|
|
121
137
|
async function runTool(tool, context, flags) {
|
|
138
|
+
const properties = tool.inputSchema.properties ?? {};
|
|
139
|
+
const ignore = new Set(GLOBAL_FLAG_NAMES);
|
|
140
|
+
for (const alias of CONTEXT_FLAG_ALIASES) {
|
|
141
|
+
if (!(alias.replace(/-id$/, 'Id') in properties))
|
|
142
|
+
ignore.add(alias);
|
|
143
|
+
}
|
|
144
|
+
const useContext = flagBoolean(flags, 'context') !== false;
|
|
122
145
|
const args = buildArguments(tool, flags, {
|
|
123
|
-
ignore
|
|
124
|
-
context:
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
146
|
+
ignore,
|
|
147
|
+
context: useContext
|
|
148
|
+
? {
|
|
149
|
+
...(context.config.projectId ? { projectId: context.config.projectId } : {}),
|
|
150
|
+
...(context.config.canvasId ? { canvasId: context.config.canvasId } : {}),
|
|
151
|
+
...(context.config.runId ? { runId: context.config.runId } : {}),
|
|
152
|
+
}
|
|
153
|
+
: {},
|
|
129
154
|
});
|
|
155
|
+
const outDir = flagString(flags, 'out-dir');
|
|
156
|
+
if (outDir) {
|
|
157
|
+
if (flagString(flags, 'out'))
|
|
158
|
+
throw new ArgumentError('Use either --out or --out-dir.');
|
|
159
|
+
if (tool.annotations.readOnlyHint !== true) {
|
|
160
|
+
throw new ArgumentError('--out-dir requires a read-only tool. Run this command without --out-dir.');
|
|
161
|
+
}
|
|
162
|
+
const result = await context.client.callTool(tool.name, args);
|
|
163
|
+
const media = result.media ?? [];
|
|
164
|
+
if (media.length === 0)
|
|
165
|
+
return result;
|
|
166
|
+
const headers = [...(result.text ?? '').matchAll(/^Asset ([A-Za-z0-9_-]+) \((\d+)\/\d+\)/gm)];
|
|
167
|
+
const directory = resolve(context.cwd, outDir);
|
|
168
|
+
const files = media.map((block, index) => {
|
|
169
|
+
const header = headers[index];
|
|
170
|
+
const assetId = header?.[1] ?? (media.length === 1 ? result.assetId : undefined);
|
|
171
|
+
if (!assetId) {
|
|
172
|
+
throw new CliApiError(`Media block ${index}: missing Asset header or single-media result.assetId.`, {
|
|
173
|
+
code: 'INVALID_RESPONSE',
|
|
174
|
+
status: 0,
|
|
175
|
+
tool: tool.name,
|
|
176
|
+
});
|
|
177
|
+
}
|
|
178
|
+
const extensions = {
|
|
179
|
+
'image/jpeg': 'jpg',
|
|
180
|
+
'image/png': 'png',
|
|
181
|
+
'image/webp': 'webp',
|
|
182
|
+
'audio/mpeg': 'mp3',
|
|
183
|
+
'audio/wav': 'wav',
|
|
184
|
+
};
|
|
185
|
+
if (!block.mimeType || !Object.hasOwn(extensions, block.mimeType)) {
|
|
186
|
+
throw new CliApiError(`Media block ${index}: missing or unknown mimeType (${block.mimeType ?? 'missing'}).`, {
|
|
187
|
+
code: 'INVALID_RESPONSE',
|
|
188
|
+
status: 0,
|
|
189
|
+
tool: tool.name,
|
|
190
|
+
});
|
|
191
|
+
}
|
|
192
|
+
const ext = extensions[block.mimeType];
|
|
193
|
+
const name = `${header ? `${header[2]}-` : ''}${assetId.replace(/[^A-Za-z0-9_-]/g, '_')}.${ext}`;
|
|
194
|
+
return { path: join(directory, name), bytes: Buffer.from(block.data, 'base64') };
|
|
195
|
+
});
|
|
196
|
+
mkdirSync(directory, { recursive: true });
|
|
197
|
+
files.forEach(({ path, bytes }) => {
|
|
198
|
+
writeFileSync(path, bytes);
|
|
199
|
+
if (!context.output.quiet) {
|
|
200
|
+
;
|
|
201
|
+
(context.output.stdout ?? (text => process.stdout.write(text)))(`${path}\n`);
|
|
202
|
+
}
|
|
203
|
+
});
|
|
204
|
+
context.output.quiet = true;
|
|
205
|
+
return undefined;
|
|
206
|
+
}
|
|
130
207
|
if (flagBoolean(flags, 'raw')) {
|
|
131
|
-
|
|
208
|
+
assertRawDestination(context.output);
|
|
209
|
+
let raw;
|
|
210
|
+
try {
|
|
211
|
+
raw = await context.client.callToolRaw(tool.name, args);
|
|
212
|
+
}
|
|
213
|
+
catch (error) {
|
|
214
|
+
if (error instanceof CliApiError && error.code === 'NOT_RAW_ELIGIBLE') {
|
|
215
|
+
throw new ArgumentError('This result cannot use --raw --out. Use --out-dir <dir> to write multiple media files.');
|
|
216
|
+
}
|
|
217
|
+
throw error;
|
|
218
|
+
}
|
|
132
219
|
printBytes(raw.bytes, { ...context.output, contentType: raw.contentType });
|
|
133
|
-
// The bytes are the result; nothing else goes to the file or stdout.
|
|
134
220
|
delete context.output.out;
|
|
135
221
|
context.output.quiet = true;
|
|
136
222
|
return raw.meta;
|
|
137
223
|
}
|
|
138
224
|
const select = selectedFields(context);
|
|
139
|
-
const
|
|
140
|
-
|
|
141
|
-
|
|
225
|
+
const shouldWait = wantsWait(context, WAIT_BY_DEFAULT.has(tool.name));
|
|
226
|
+
const approve = approvalFlags(tool, flags);
|
|
227
|
+
const local = shouldWait || approve !== null || needsLocalProjection(select);
|
|
228
|
+
const result = approve
|
|
229
|
+
? await runWithApproval(tool, context.client, args, approve.support, approve.maxOlives === undefined ? {} : { maxOlives: approve.maxOlives })
|
|
230
|
+
: await context.client.callTool(tool.name, args, !local && select.length ? { select } : {});
|
|
231
|
+
if (!shouldWait)
|
|
232
|
+
return local ? selectFields(result, select) : result;
|
|
142
233
|
const projectId = typeof args.projectId === 'string' ? args.projectId : context.config.projectId;
|
|
143
|
-
|
|
144
|
-
return result;
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
const
|
|
150
|
-
|
|
234
|
+
try {
|
|
235
|
+
return selectFields(await waitForToolResult(result, context, projectId), select);
|
|
236
|
+
}
|
|
237
|
+
catch (error) {
|
|
238
|
+
if (error instanceof CliApiError) {
|
|
239
|
+
const kept = selectFields(result, select);
|
|
240
|
+
const base = kept && typeof kept === 'object' && !Array.isArray(kept) ? kept : { result: kept };
|
|
241
|
+
error.result =
|
|
242
|
+
error instanceof WaitTimeoutError
|
|
243
|
+
? { ...base, pending: error.pending, ...(error.settled.length ? { settled: error.settled } : {}) }
|
|
244
|
+
: { ...base, waitError: error.code };
|
|
151
245
|
}
|
|
246
|
+
throw error;
|
|
247
|
+
}
|
|
248
|
+
}
|
|
249
|
+
async function waitForToolResult(result, context, projectId) {
|
|
250
|
+
if (!result || typeof result !== 'object')
|
|
251
|
+
return result;
|
|
252
|
+
const record = result;
|
|
253
|
+
if (record.approvalNeeded === true || record.generated === false)
|
|
152
254
|
return result;
|
|
255
|
+
const waitOptions = { timeoutMs: timeoutMs(context), now: context.now, sleep: context.sleep };
|
|
256
|
+
if (typeof record.runId === 'string') {
|
|
257
|
+
return { ...record, waited: handleOutcome('run', await waitForRun(context.client, record.runId, waitOptions)) };
|
|
258
|
+
}
|
|
259
|
+
if (typeof record.renderId === 'string' || typeof record.exportId === 'string') {
|
|
260
|
+
const ids = {
|
|
261
|
+
...(typeof record.renderId === 'string' ? { renderId: record.renderId } : {}),
|
|
262
|
+
...(typeof record.exportId === 'string' ? { exportId: record.exportId } : {}),
|
|
263
|
+
};
|
|
264
|
+
return { ...record, waited: handleOutcome('render', await waitForDelivery(context.client, ids, waitOptions)) };
|
|
265
|
+
}
|
|
266
|
+
if (typeof record.jobId === 'string') {
|
|
267
|
+
return { ...record, waited: handleOutcome('job', await waitForJob(context.client, record.jobId, waitOptions)) };
|
|
153
268
|
}
|
|
269
|
+
if (!projectId)
|
|
270
|
+
return result;
|
|
154
271
|
const ids = producedAssetIds(result);
|
|
155
272
|
if (ids.length === 0)
|
|
156
273
|
return result;
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
};
|
|
274
|
+
return { ...record, waited: assetsOutcome(await waitForAssets(context.client, projectId, ids, waitOptions)) };
|
|
275
|
+
}
|
|
276
|
+
function strayPositionalError(tool, tokens) {
|
|
277
|
+
const list = flagSpecs(tool).find(spec => spec.kind === 'array');
|
|
278
|
+
return new ArgumentError(`Unexpected argument${tokens.length > 1 ? 's' : ''} ${tokens.map(token => JSON.stringify(token)).join(' ')} for ${tool.name}: a tool takes only --flags. Quote a value that contains spaces${list ? `; an array flag takes its values right after it (--${list.flag} a b)` : ''}. Run martini ${tool.name} --help.`);
|
|
279
|
+
}
|
|
280
|
+
function approvalFlags(tool, flags) {
|
|
281
|
+
const approve = flagBoolean(flags, 'approve') === true;
|
|
282
|
+
const rawMax = flagString(flags, 'max-olives');
|
|
283
|
+
if (!approve && rawMax === undefined)
|
|
284
|
+
return null;
|
|
285
|
+
const support = approvalSupport(tool);
|
|
286
|
+
if (!support) {
|
|
287
|
+
throw new ArgumentError(`${tool.name} takes no approval; --approve and --max-olives apply to generate_nodes, upscale_assets, enhance_draft, and the tools with an approval argument (see --help).`);
|
|
288
|
+
}
|
|
289
|
+
if (!approve)
|
|
290
|
+
throw new ArgumentError('--max-olives only applies together with --approve.');
|
|
291
|
+
if (rawMax === undefined)
|
|
292
|
+
return { support };
|
|
293
|
+
const maxOlives = Number(rawMax);
|
|
294
|
+
if (!Number.isFinite(maxOlives) || maxOlives < 0)
|
|
295
|
+
throw new ArgumentError('--max-olives must be a number of olives.');
|
|
296
|
+
return { support, maxOlives };
|
|
297
|
+
}
|
|
298
|
+
function knownResultFields(tool) {
|
|
299
|
+
return Object.keys(tool.outputSchema?.properties ?? {});
|
|
162
300
|
}
|
|
163
301
|
//# sourceMappingURL=cli.js.map
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|