@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.
@@ -6,21 +6,30 @@ import { join } from 'node:path';
6
6
  import { CLI_VERSION, CliApiError } from '../api.js';
7
7
  import { flagBoolean, flagString } from '../args.js';
8
8
  import { userConfigPath } from '../config.js';
9
+ import { SUPERSEDED_BY_COMPOUND } from '../help.js';
9
10
  import { loadManifest } from '../manifest.js';
10
11
  import { ArgumentError } from '../schema.js';
11
12
  import { requireProject } from './context.js';
12
- /** `martini tools`: the manifest this build carries, and whether the server's differs. */
13
13
  export const tools = {
14
14
  name: 'tools',
15
15
  summary: 'List the tools this build knows (and warn when the server has a newer manifest)',
16
- usage: 'martini tools [--remote] [--fields name,description]',
16
+ usage: 'martini tools [--remote] [--fields tools.name,tools.description]',
17
+ details: 'Result: { hash, serverHash, upToDate, tools: [{ name, description, readOnly, requiresActions, supersededBy? }] }. supersededBy names the compound command to prefer (upload, download). upToDate false means the server has tools or arguments this build does not know: pass such arguments with --json, or update with npx @martini-film/cli@latest.',
18
+ flags: [
19
+ {
20
+ flag: 'remote',
21
+ kind: 'boolean',
22
+ description: "Print the server's manifest (full JSON Schemas) instead of this build's list",
23
+ },
24
+ ],
25
+ examples: ['martini tools --fields upToDate,tools.name'],
17
26
  async run(context) {
18
- const local = loadManifest();
27
+ const local = context.manifest;
19
28
  if (flagBoolean(context.flags, 'remote'))
20
29
  return context.client.listTools();
21
30
  let serverHash = null;
22
31
  try {
23
- serverHash = (await context.client.listTools()).hash;
32
+ serverHash = await context.client.serverManifestHash(local.hash);
24
33
  }
25
34
  catch {
26
35
  serverHash = null;
@@ -34,16 +43,40 @@ export const tools = {
34
43
  description: tool.description,
35
44
  readOnly: tool.annotations.readOnlyHint,
36
45
  requiresActions: tool.requiresActions,
46
+ ...(SUPERSEDED_BY_COMPOUND[tool.name] ? { supersededBy: SUPERSEDED_BY_COMPOUND[tool.name] } : {}),
37
47
  })),
38
48
  };
39
49
  },
40
50
  };
41
51
  const MODELS_CACHE_TTL_MS = 60 * 60 * 1000;
42
- /** `martini models`: get_models with a one-hour local cache — the catalog is ~10 KB and was fetched in 153 of 194 runs. */
43
52
  export const models = {
44
53
  name: 'models',
45
54
  summary: 'The model catalog (cached for an hour; --refresh to refetch; --query/--capability to narrow)',
46
55
  usage: 'martini models [--query <text>] [--capability <name>] [--detail summary|full] [--refresh]',
56
+ details: 'get_models with a one-hour local cache per argument set (the catalog is ~10 KB and rarely changes).',
57
+ flags: [
58
+ {
59
+ flag: 'query',
60
+ kind: 'string',
61
+ value: '<text>',
62
+ description: 'Narrow by a natural-language model or provider name',
63
+ },
64
+ {
65
+ flag: 'capability',
66
+ kind: 'string',
67
+ value: '<name>',
68
+ description: 'Narrow to one capability (generate-video, generate-still, generate-audio, …)',
69
+ },
70
+ {
71
+ flag: 'detail',
72
+ kind: 'string',
73
+ value: 'summary|full',
74
+ enum: ['summary', 'full'],
75
+ description: 'How much of each model to print',
76
+ },
77
+ { flag: 'refresh', kind: 'boolean', description: 'Ignore the cache and refetch' },
78
+ ],
79
+ examples: ['martini models --capability generate-video --fields models.id,models.name'],
47
80
  async run(context) {
48
81
  const args = {};
49
82
  const query = flagString(context.flags, 'query');
@@ -64,7 +97,6 @@ export const models = {
64
97
  return cached.result;
65
98
  }
66
99
  catch {
67
- // A corrupt cache is just a miss.
68
100
  }
69
101
  }
70
102
  const result = await context.client.callTool('get_models', args);
@@ -73,11 +105,16 @@ export const models = {
73
105
  return result;
74
106
  },
75
107
  };
76
- /** Run ffprobe on one local file and reduce its JSON to what a session usually wants. */
77
108
  export function probeFile(path, run = spawnSync) {
78
109
  const probe = run('ffprobe', ['-v', 'quiet', '-print_format', 'json', '-show_format', '-show_streams', path], {
79
110
  encoding: 'utf8',
80
111
  });
112
+ if (probe.error?.code === 'ENOENT') {
113
+ throw new CliApiError('ffprobe is not installed or not on PATH; martini probe needs it.', {
114
+ code: 'FFPROBE_MISSING',
115
+ status: 0,
116
+ });
117
+ }
81
118
  if (probe.error || probe.status !== 0) {
82
119
  throw new CliApiError(`ffprobe failed for ${path}${probe.stderr ? `: ${String(probe.stderr).trim()}` : ''}`, {
83
120
  code: 'PROBE_FAILED',
@@ -109,14 +146,28 @@ export function probeFile(path, run = spawnSync) {
109
146
  sha256: createHash('sha256').update(bytes).digest('hex'),
110
147
  };
111
148
  }
112
- /**
113
- * `martini probe <path|asset-id>…`: the measurement loop (download, ffprobe,
114
- * checksum) in one command, so a session stops re-deriving it in shell steps.
115
- */
116
149
  export const probe = {
117
150
  name: 'probe',
118
151
  summary: 'Measure local files or assets: duration, resolution, fps, codecs, channels, sha256 (needs ffprobe)',
119
152
  usage: 'martini probe <path|asset-id>… [--dir <download-dir>]',
153
+ details: 'Result: { reports: [{ path, assetId?, bytes, durationSec, width, height, fps, videoCodec, audioCodec, audioChannels, sampleRate, sha256 }] }. An argument that is not an existing file is treated as an asset id and downloaded first (needs a project).',
154
+ positionals: [
155
+ {
156
+ name: 'path|asset-id',
157
+ description: 'Local files, or asset ids to download and measure',
158
+ variadic: true,
159
+ required: true,
160
+ },
161
+ ],
162
+ flags: [
163
+ {
164
+ flag: 'dir',
165
+ kind: 'string',
166
+ value: '<download-dir>',
167
+ description: 'Where downloaded assets are kept (default: martini-probe under the temp dir)',
168
+ },
169
+ ],
170
+ examples: ['martini probe ./take.mp4 <asset-id>'],
120
171
  async run(context) {
121
172
  if (context.positionals.length === 0)
122
173
  throw new ArgumentError('Give file paths or asset ids to probe.');
@@ -151,14 +202,23 @@ Martini is available as the \`martini\` command (every MCP tool is a subcommand;
151
202
  - \`martini <generation tool> … --wait\` blocks until the asset is ready; \`martini wait <ids…>\` resumes a wait.
152
203
  - \`martini files pull dir/\` / \`martini files push dir/\` edit project memory files locally with conflict checks.
153
204
  - Any argument can be JSON: \`--json @args.json\`. Results are JSON on stdout; \`--fields a,b\` trims them; \`--out f\` writes them.
205
+ - A wait stops at \`--timeout\` (default 50 s) with exit 4 but still prints the result and the pending ids; resume with \`martini wait <ids…> --timeout N\`, sized to your shell step.
206
+ - Tools that quote first (\`generate_nodes\`, \`upscale_assets\`, \`enhance_draft\`): \`--approve --max-olives N\` takes the quote and approves it under the cap in one command; over the cap nothing starts.
154
207
 
155
208
  Exit codes: 0 ok · 1 tool error · 2 usage · 3 auth · 4 not ready or timed out · 5 insufficient olives.
156
209
  `;
157
- /** `martini init`: the AGENTS.md snippet that teaches a repo's agents to use the CLI. */
158
210
  export const init = {
159
211
  name: 'init',
160
212
  summary: 'Print (or append to AGENTS.md with --write) the snippet that teaches agents to use the CLI',
161
213
  usage: 'martini init [--write [path]]',
214
+ positionals: [{ name: 'path', description: 'With --write: the file to append to (default ./AGENTS.md)' }],
215
+ flags: [
216
+ {
217
+ flag: 'write',
218
+ kind: 'boolean',
219
+ description: 'Append the snippet to the file instead of printing it (skipped when already present)',
220
+ },
221
+ ],
162
222
  async run(context) {
163
223
  if (flagBoolean(context.flags, 'write')) {
164
224
  const target = context.positionals[0] ?? join(context.cwd, 'AGENTS.md');
@@ -175,6 +235,7 @@ export const version = {
175
235
  name: 'version',
176
236
  summary: 'The CLI version, the manifest hash it was built from, and the config file paths',
177
237
  usage: 'martini version',
238
+ details: 'Result: { version, manifestHash, tools, userConfig }. martini --version prints the same.',
178
239
  async run(context) {
179
240
  const manifest = loadManifest();
180
241
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"tools.js","sourceRoot":"","sources":["../../src/commands/tools.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tools.js","sourceRoot":"","sources":["../../src/commands/tools.ts"],"names":[],"mappings":"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"}
package/dist/config.js CHANGED
@@ -1,17 +1,3 @@
1
- /**
2
- * Where the CLI's credential and context come from, most specific first:
3
- *
4
- * 1. flags --api-key, --api-url, --project, --canvas, --run, --profile
5
- * 2. environment MARTINI_API_KEY, MARTINI_API_URL, MARTINI_PROJECT_ID, MARTINI_CANVAS_ID,
6
- * MARTINI_RUN_ID, MARTINI_PROFILE, MARTINI_CONFIG_FILE
7
- * 3. the nearest .martini/config.json above the working directory — what the workflow
8
- * workspace file harness writes into a run's sandbox (a `run` profile)
9
- * 4. the user file ~/.config/martini/config.json — profiles `martini login` saves, one per
10
- * organization, with a default
11
- *
12
- * A run's sandbox therefore needs nothing but its working directory; a laptop
13
- * needs one `martini login`; a script sets two environment variables.
14
- */
15
1
  import { existsSync, mkdirSync, readFileSync, writeFileSync } from 'node:fs';
16
2
  import { homedir } from 'node:os';
17
3
  import { dirname, join, resolve } from 'node:path';
@@ -35,7 +21,6 @@ export function readJsonFile(path) {
35
21
  return null;
36
22
  }
37
23
  }
38
- /** The closest `.martini/config.json` at or above `cwd`. */
39
24
  export function findWorkspaceConfig(cwd) {
40
25
  let dir = resolve(cwd);
41
26
  for (;;) {
@@ -56,9 +41,9 @@ export function resolveConfig(flags, options = {}) {
56
41
  const fromFlags = defined({
57
42
  apiKey: flagString(flags, 'api-key'),
58
43
  apiUrl: flagString(flags, 'api-url'),
59
- projectId: flagString(flags, 'project'),
60
- canvasId: flagString(flags, 'canvas'),
61
- runId: flagString(flags, 'run'),
44
+ projectId: flagString(flags, 'project') ?? flagString(flags, 'project-id'),
45
+ canvasId: flagString(flags, 'canvas') ?? flagString(flags, 'canvas-id'),
46
+ runId: flagString(flags, 'run') ?? flagString(flags, 'run-id'),
62
47
  });
63
48
  const fromEnv = defined({
64
49
  apiKey: env.MARTINI_API_KEY,
@@ -69,6 +54,7 @@ export function resolveConfig(flags, options = {}) {
69
54
  });
70
55
  let source = 'flags/env';
71
56
  let fileProfile = {};
57
+ const warnings = [];
72
58
  const workspace = findWorkspaceConfig(cwd);
73
59
  const requestedProfile = flagString(flags, 'profile') ?? env.MARTINI_PROFILE;
74
60
  if (workspace && !requestedProfile) {
@@ -77,6 +63,9 @@ export function resolveConfig(flags, options = {}) {
77
63
  }
78
64
  else {
79
65
  const user = readJsonFile(userConfigPath(env));
66
+ if (user && typeof user.defaultProfile === 'string' && !user.default) {
67
+ warnings.push(`${userConfigPath(env)} sets "defaultProfile", which the CLI does not read. Rename it to "default" to make that profile the default.`);
68
+ }
80
69
  const name = requestedProfile ?? user?.default;
81
70
  const profile = name && user?.profiles ? user.profiles[name] : undefined;
82
71
  if (profile) {
@@ -94,10 +83,12 @@ export function resolveConfig(flags, options = {}) {
94
83
  projectId: merged.projectId,
95
84
  canvasId: merged.canvasId,
96
85
  runId: merged.runId,
86
+ executionId: merged.executionId,
87
+ workerId: merged.workerId,
97
88
  source,
89
+ warnings,
98
90
  };
99
91
  }
100
- /** Save a profile from `martini login`; the first saved profile becomes the default. */
101
92
  export function saveProfile(name, profile, options = {}) {
102
93
  const path = userConfigPath(options.env ?? process.env);
103
94
  const current = readJsonFile(path) ?? {};
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}