@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.
@@ -1 +1 @@
1
- {"version":3,"file":"output.js","sourceRoot":"","sources":["../src/output.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"output.js","sourceRoot":"","sources":["../src/output.ts"],"names":[],"mappings":"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"}
package/dist/schema.js CHANGED
@@ -1,11 +1,25 @@
1
- /**
2
- * From a tool's JSON Schema to command flags, and from parsed flags back to the
3
- * arguments object the tool expects. Scalars become `--kebab-case` flags,
4
- * arrays repeat the flag (or take a JSON list), objects take JSON. `--json
5
- * '{...}'` and `--json @file.json` merge a whole arguments object, so a plan a
6
- * script computed is submitted without retyping it flag by flag.
7
- */
8
1
  import { readFileSync } from 'node:fs';
2
+ export const GLOBAL_FLAG_NAMES = new Set([
3
+ 'help',
4
+ 'version',
5
+ 'fields',
6
+ 'out',
7
+ 'out-dir',
8
+ 'wait',
9
+ 'timeout',
10
+ 'quiet',
11
+ 'raw',
12
+ 'project',
13
+ 'canvas',
14
+ 'run',
15
+ 'api-key',
16
+ 'api-url',
17
+ 'profile',
18
+ 'context',
19
+ 'approve',
20
+ 'max-olives',
21
+ ]);
22
+ const RESERVED_FLAGS = new Set([...GLOBAL_FLAG_NAMES, 'args']);
9
23
  export class ArgumentError extends Error {
10
24
  constructor(message) {
11
25
  super(message);
@@ -18,6 +32,20 @@ export function kebab(property) {
18
32
  .replace(/_/g, '-')
19
33
  .toLowerCase();
20
34
  }
35
+ function withoutNull(schema) {
36
+ const variants = schema.anyOf ?? schema.oneOf;
37
+ if (!variants) {
38
+ const nullable = Array.isArray(schema.type) && schema.type.includes('null');
39
+ return { schema, nullable };
40
+ }
41
+ const nonNull = variants.filter(variant => variant.type !== 'null' && variant.const !== null);
42
+ const nullable = nonNull.length < variants.length;
43
+ if (nullable && nonNull.length === 1) {
44
+ const { anyOf: _anyOf, oneOf: _oneOf, ...rest } = schema;
45
+ return { schema: { ...rest, ...nonNull[0] }, nullable };
46
+ }
47
+ return { schema, nullable };
48
+ }
21
49
  function schemaKind(schema) {
22
50
  if (!schema)
23
51
  return 'json';
@@ -51,22 +79,45 @@ function schemaKind(schema) {
51
79
  export function flagSpecs(tool) {
52
80
  const properties = tool.inputSchema.properties ?? {};
53
81
  const required = new Set(tool.inputSchema.required ?? []);
54
- return Object.entries(properties).map(([property, schema]) => {
82
+ const taken = new Set([...RESERVED_FLAGS, ...Object.keys(properties).map(kebab)]);
83
+ return Object.entries(properties).map(([property, raw]) => {
84
+ const { schema, nullable } = withoutNull(raw);
55
85
  const kind = schemaKind(schema);
86
+ const name = kebab(property);
87
+ let flag = name;
88
+ if (RESERVED_FLAGS.has(name)) {
89
+ flag = `tool-${name}`;
90
+ while (taken.has(flag))
91
+ flag = `tool-${flag}`;
92
+ taken.add(flag);
93
+ }
56
94
  const spec = {
57
95
  property,
58
- flag: kebab(property),
96
+ flag,
59
97
  kind,
60
98
  required: required.has(property),
61
- description: schema.description ?? '',
99
+ description: raw.description ?? schema.description ?? '',
62
100
  };
63
101
  if (schema.enum)
64
102
  spec.enum = schema.enum;
65
- if (kind === 'array')
103
+ if (kind === 'array') {
66
104
  spec.items = schemaKind(schema.items);
105
+ if (schema.items?.enum)
106
+ spec.itemEnum = schema.items.enum;
107
+ }
108
+ if (nullable)
109
+ spec.nullable = true;
110
+ if (kind === 'json' && admitsString(schema))
111
+ spec.acceptsString = true;
112
+ if (flag !== name)
113
+ spec.shadows = name;
67
114
  return spec;
68
115
  });
69
116
  }
117
+ function admitsString(schema) {
118
+ const variants = schema.anyOf ?? schema.oneOf ?? [];
119
+ return variants.some(variant => variant.type === 'string' || typeof variant.const === 'string');
120
+ }
70
121
  function readJsonArgument(raw, what) {
71
122
  const text = raw.startsWith('@') ? readFileSync(raw === '@-' ? 0 : raw.slice(1), 'utf8') : raw;
72
123
  try {
@@ -104,27 +155,34 @@ function coerceScalar(raw, kind, what) {
104
155
  return readJsonArgument(raw, what);
105
156
  }
106
157
  }
107
- /** Build the tool arguments from flags (plus `--json`); unknown flags are an error so typos never silently drop an argument. */
158
+ const CONTEXT_HINTS = {
159
+ projectId: '--project <id> or MARTINI_PROJECT_ID',
160
+ canvasId: '--canvas <id> or MARTINI_CANVAS_ID',
161
+ runId: '--run <id> or MARTINI_RUN_ID',
162
+ };
108
163
  export function buildArguments(tool, flags, options = {}) {
109
164
  const specs = flagSpecs(tool);
110
165
  const byFlag = new Map(specs.map(spec => [spec.flag, spec]));
111
166
  const args = {};
112
- const json = flags.get('json');
113
- if (json !== undefined && json !== true) {
114
- const raw = Array.isArray(json) ? json[json.length - 1] : json;
115
- const merged = readJsonArgument(raw, '--json');
167
+ const mergeFlags = byFlag.has('json') ? ['args'] : ['args', 'json'];
168
+ for (const mergeFlag of mergeFlags) {
169
+ const value = flags.get(mergeFlag);
170
+ if (value === undefined || value === true)
171
+ continue;
172
+ const raw = Array.isArray(value) ? value[value.length - 1] : value;
173
+ const merged = readJsonArgument(raw, `--${mergeFlag}`);
116
174
  if (!merged || typeof merged !== 'object' || Array.isArray(merged)) {
117
- throw new ArgumentError('--json must be an object of tool arguments.');
175
+ throw new ArgumentError(`--${mergeFlag} must be an object of tool arguments.`);
118
176
  }
119
177
  Object.assign(args, merged);
120
178
  }
121
179
  for (const [flag, value] of flags) {
122
- if (flag === 'json' || options.ignore?.has(flag))
180
+ if (mergeFlags.includes(flag) || options.ignore?.has(flag))
123
181
  continue;
124
182
  const spec = byFlag.get(flag);
125
183
  if (!spec) {
126
184
  const known = specs.map(s => `--${s.flag}`).join(', ');
127
- throw new ArgumentError(`Unknown flag --${flag} for ${tool.name}. Flags: ${known || '(none)'}.`);
185
+ throw new ArgumentError(`Unknown flag --${flag} for ${tool.name}. Flags: ${known || '(none)'}. If the server's tool surface is newer than this build (martini tools says), pass the argument with --json '{"…": …}' or update: npx @martini-film/cli@latest.`);
128
186
  }
129
187
  const what = `--${spec.flag}`;
130
188
  if (value === true) {
@@ -142,28 +200,43 @@ export function buildArguments(tool, flags, options = {}) {
142
200
  : values.map(raw => coerceScalar(raw, spec.items === 'json' ? 'string' : (spec.items ?? 'string'), what));
143
201
  continue;
144
202
  }
145
- args[spec.property] = coerceScalar(values[values.length - 1], spec.kind, what);
203
+ const last = values[values.length - 1];
204
+ if (spec.nullable && last === 'null') {
205
+ args[spec.property] = null;
206
+ }
207
+ else if (spec.acceptsString && !last.startsWith('@') && !/^[[{"]/.test(last.trim())) {
208
+ args[spec.property] = last;
209
+ }
210
+ else {
211
+ args[spec.property] = coerceScalar(last, spec.kind, what);
212
+ }
146
213
  }
147
- // Context (the run's project, the configured canvas) fills what the caller
148
- // left out, before required-ness is judged — a sandbox never types --project-id.
149
214
  const filled = options.context ? applyContextDefaults(tool, args, options.context) : args;
150
215
  for (const spec of specs) {
151
216
  if (spec.required && filled[spec.property] === undefined) {
152
- throw new ArgumentError(`--${spec.flag} is required for ${tool.name}.`);
217
+ const context = CONTEXT_HINTS[spec.property];
218
+ throw new ArgumentError(context
219
+ ? `--${spec.flag} is required for ${tool.name}. Set it once instead: ${context}, or a .martini/config.json (a Martini workflow run provides one).`
220
+ : `--${spec.flag} is required for ${tool.name}.`);
153
221
  }
154
222
  }
155
223
  return filled;
156
224
  }
157
- /** Fill `projectId` / `canvasId` / `runId` from the configured context when the tool takes them and the caller did not say. */
225
+ const CONTEXT_ALTERNATIVES = [
226
+ { tool: 'get_board_overview', context: 'projectId', typed: ['projectQuery', 'exactProjectName'] },
227
+ { tool: 'run_workflow', context: 'canvasId', typed: ['workflowId'] },
228
+ ];
158
229
  export function applyContextDefaults(tool, args, context) {
159
230
  const properties = tool.inputSchema.properties ?? {};
160
231
  const filled = { ...args };
161
- if ('projectId' in properties && filled.projectId === undefined && context.projectId)
162
- filled.projectId = context.projectId;
163
- if ('canvasId' in properties && filled.canvasId === undefined && context.canvasId)
164
- filled.canvasId = context.canvasId;
165
- if ('runId' in properties && filled.runId === undefined && context.runId)
166
- filled.runId = context.runId;
232
+ for (const key of ['projectId', 'canvasId', 'runId']) {
233
+ if (!(key in properties) || filled[key] !== undefined || !context[key])
234
+ continue;
235
+ const replaced = CONTEXT_ALTERNATIVES.some(rule => rule.tool === tool.name && rule.context === key && rule.typed.some(typed => filled[typed] !== undefined));
236
+ if (replaced)
237
+ continue;
238
+ filled[key] = context[key];
239
+ }
167
240
  return filled;
168
241
  }
169
242
  //# sourceMappingURL=schema.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"schema.js","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"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"}
package/dist/wait.js CHANGED
@@ -1,92 +1,273 @@
1
- /**
2
- * Blocking on asynchronous work so the model spends one step, not a polling
3
- * loop (docs/plans/agent-cli.md, decision 5). Assets and jobs poll with a
4
- * jittered backoff; runs use get_run's server-side waitSeconds. On timeout the
5
- * caller gets the ids still pending, so `martini wait` can resume.
6
- */
7
1
  import { CliApiError } from './api.js';
8
2
  export const DEFAULT_WAIT_TIMEOUT_MS = 50_000;
9
3
  const TERMINAL_ASSET_STATUSES = new Set(['completed', 'failed', 'cancelled']);
10
4
  const TERMINAL_RUN_STATUSES = new Set(['completed', 'failed', 'cancelled', 'needs_revision']);
5
+ const JOB_HOLD_MAX_SECONDS = 45;
6
+ const JOB_HOLD_MAX_IDS = 25;
7
+ const ASSET_READ_CONCURRENCY = 6;
8
+ export function assetsOutcome(assets) {
9
+ const statuses = assets.map(asset => asset.status);
10
+ const status = statuses.includes('failed') ? 'failed' : statuses.includes('cancelled') ? 'cancelled' : 'completed';
11
+ return { kind: 'asset', status, assets };
12
+ }
13
+ function handleRecord(kind, record) {
14
+ const value = record && typeof record === 'object' && !Array.isArray(record) ? record : {};
15
+ const wrapped = kind === 'render' ? undefined : value[kind];
16
+ return wrapped && typeof wrapped === 'object' && !Array.isArray(wrapped)
17
+ ? wrapped
18
+ : value;
19
+ }
20
+ export function handleOutcome(kind, record) {
21
+ const value = handleRecord(kind, record);
22
+ const status = statusOf(value) ?? 'unknown';
23
+ switch (kind) {
24
+ case 'job':
25
+ return { kind, status, job: value };
26
+ case 'run':
27
+ return { kind, status, run: value };
28
+ case 'render':
29
+ return { kind, status, delivery: value };
30
+ }
31
+ }
11
32
  export class WaitTimeoutError extends CliApiError {
33
+ kind;
12
34
  pending;
13
- constructor(kind, pending) {
35
+ settled;
36
+ constructor(kind, pending, options = {}) {
14
37
  super(`Timed out waiting for ${pending.length} ${kind}${pending.length === 1 ? '' : 's'}: ${pending.join(', ')}`, {
15
38
  code: 'TIMEOUT',
16
39
  status: 0,
17
40
  });
41
+ this.kind = kind;
18
42
  this.pending = pending;
43
+ this.settled = options.settled ?? [];
44
+ }
45
+ resumeCommand() {
46
+ switch (this.kind) {
47
+ case 'asset':
48
+ return `martini wait ${this.pending.join(' ')} --timeout <seconds>`;
49
+ case 'job':
50
+ return `martini wait --job ${this.pending[0]} --timeout <seconds>`;
51
+ case 'run':
52
+ return `martini wait --run ${this.pending[0]} --timeout <seconds>`;
53
+ case 'render':
54
+ return `martini wait --render ${this.pending[0]} --timeout <seconds>`;
55
+ }
19
56
  }
20
57
  }
21
58
  function backoff(attempt) {
22
59
  const base = Math.min(1000 * 1.5 ** attempt, 8000);
23
60
  return Math.round(base * (0.8 + Math.random() * 0.4));
24
61
  }
62
+ function pause(attempt, started, timeoutMs, now) {
63
+ return Math.max(0, Math.min(backoff(attempt), timeoutMs - (now() - started)));
64
+ }
25
65
  const defaultSleep = (ms) => new Promise(resolve => setTimeout(resolve, ms));
26
- /** Poll get_asset for each id until every one is terminal. Returns the final asset records. */
66
+ async function holdJobs(client, jobIds, seconds, projectId) {
67
+ const batches = [];
68
+ for (let index = 0; index < jobIds.length; index += JOB_HOLD_MAX_IDS) {
69
+ batches.push(jobIds.slice(index, index + JOB_HOLD_MAX_IDS));
70
+ }
71
+ let answers;
72
+ try {
73
+ answers = await Promise.all(batches.map(batch => client.callTool('wait_for_jobs', {
74
+ jobIds: batch,
75
+ timeoutSeconds: seconds,
76
+ ...(projectId ? { projectId } : {}),
77
+ })));
78
+ }
79
+ catch (error) {
80
+ if (error instanceof CliApiError)
81
+ return null;
82
+ throw error;
83
+ }
84
+ const finished = new Set();
85
+ let atCapacity = false;
86
+ for (const answer of answers) {
87
+ for (const id of answer.notFound ?? [])
88
+ if (typeof id === 'string')
89
+ finished.add(id);
90
+ for (const job of answer.jobs ?? []) {
91
+ if (typeof job.id === 'string' && typeof job.status === 'string' && TERMINAL_ASSET_STATUSES.has(job.status)) {
92
+ finished.add(job.id);
93
+ }
94
+ }
95
+ if (answer.wokeOn === 'capacity')
96
+ atCapacity = true;
97
+ }
98
+ return { finished, atCapacity };
99
+ }
100
+ function holdCameBackEarly(hold, seconds, heldMs) {
101
+ return hold.finished.size === 0 && (hold.atCapacity || heldMs < seconds * 500);
102
+ }
103
+ async function mapConcurrent(items, limit, task) {
104
+ const results = new Array(items.length);
105
+ let next = 0;
106
+ let failed = false;
107
+ const worker = async () => {
108
+ while (!failed && next < items.length) {
109
+ const index = next++;
110
+ try {
111
+ results[index] = await task(items[index]);
112
+ }
113
+ catch (error) {
114
+ failed = true;
115
+ throw error;
116
+ }
117
+ }
118
+ };
119
+ await Promise.all(Array.from({ length: Math.min(limit, items.length) }, worker));
120
+ return results;
121
+ }
122
+ function readAsset(client, projectId, assetId) {
123
+ return client.callTool('get_asset', { projectId, assetId }, {
124
+ select: [
125
+ 'asset.id',
126
+ 'asset.status',
127
+ 'asset.imageUrl',
128
+ 'asset.uri',
129
+ 'asset.error',
130
+ 'asset.displayName',
131
+ 'asset.originalFilename',
132
+ 'generation.jobId',
133
+ 'generation.status',
134
+ ],
135
+ });
136
+ }
27
137
  export async function waitForAssets(client, projectId, assetIds, options = {}) {
28
138
  const timeoutMs = options.timeoutMs ?? DEFAULT_WAIT_TIMEOUT_MS;
29
139
  const now = options.now ?? Date.now;
30
140
  const sleep = options.sleep ?? defaultSleep;
31
141
  const started = now();
32
142
  const settled = new Map();
143
+ const jobOf = new Map();
144
+ const spentJobs = new Set();
145
+ let holdAvailable = true;
33
146
  let pending = [...new Set(assetIds)];
147
+ let toRead = pending;
34
148
  let attempt = 0;
35
149
  for (;;) {
36
- for (const assetId of pending) {
37
- const result = await client.callTool('get_asset', { projectId, assetId }, { select: ['asset.id', 'asset.status', 'asset.imageUrl', 'asset.uri', 'asset.error'] });
38
- const asset = result.asset;
150
+ const reads = await mapConcurrent(toRead, ASSET_READ_CONCURRENCY, assetId => readAsset(client, projectId, assetId));
151
+ toRead.forEach((assetId, index) => {
152
+ const { asset, generation } = reads[index];
39
153
  if (asset?.status && TERMINAL_ASSET_STATUSES.has(asset.status)) {
40
154
  settled.set(assetId, { ...asset, id: asset.id ?? assetId, status: asset.status });
155
+ return;
41
156
  }
42
- }
157
+ const jobId = typeof generation?.jobId === 'string' ? generation.jobId : undefined;
158
+ const jobRunning = typeof generation?.status === 'string' && !TERMINAL_ASSET_STATUSES.has(generation.status);
159
+ if (jobId && jobRunning && !spentJobs.has(jobId))
160
+ jobOf.set(assetId, jobId);
161
+ else
162
+ jobOf.delete(assetId);
163
+ });
43
164
  pending = pending.filter(id => !settled.has(id));
44
165
  if (pending.length === 0)
45
166
  return assetIds.map(id => settled.get(id));
46
- if (now() - started >= timeoutMs)
47
- throw new WaitTimeoutError('asset', pending);
48
- await sleep(backoff(attempt));
167
+ const elapsed = now() - started;
168
+ if (elapsed >= timeoutMs)
169
+ throw new WaitTimeoutError('asset', pending, { settled: [...settled.values()] });
170
+ const held = holdAvailable ? pending.filter(id => jobOf.has(id)) : [];
171
+ const polled = pending.filter(id => !jobOf.has(id) || !holdAvailable);
172
+ const remainingSeconds = Math.floor((timeoutMs - elapsed) / 1000);
173
+ if (held.length > 0 && remainingSeconds >= 1) {
174
+ const seconds = Math.min(JOB_HOLD_MAX_SECONDS, remainingSeconds, polled.length > 0 ? Math.max(1, Math.round(backoff(attempt) / 1000)) : JOB_HOLD_MAX_SECONDS);
175
+ const holdStarted = now();
176
+ const hold = await holdJobs(client, [...new Set(held.map(id => jobOf.get(id)))], seconds, projectId);
177
+ if (hold === null) {
178
+ holdAvailable = false;
179
+ toRead = pending;
180
+ await sleep(pause(attempt, started, timeoutMs, now));
181
+ }
182
+ else {
183
+ for (const jobId of hold.finished)
184
+ spentJobs.add(jobId);
185
+ toRead = pending.filter(id => !jobOf.has(id) || hold.finished.has(jobOf.get(id)));
186
+ if (holdCameBackEarly(hold, seconds, now() - holdStarted))
187
+ await sleep(pause(attempt, started, timeoutMs, now));
188
+ }
189
+ attempt += 1;
190
+ continue;
191
+ }
192
+ toRead = pending;
193
+ await sleep(pause(attempt, started, timeoutMs, now));
49
194
  attempt += 1;
50
195
  }
51
196
  }
52
- /** Poll get_jobs for one job until it is terminal. */
53
197
  export async function waitForJob(client, jobId, options = {}) {
54
198
  const timeoutMs = options.timeoutMs ?? DEFAULT_WAIT_TIMEOUT_MS;
55
199
  const now = options.now ?? Date.now;
56
200
  const sleep = options.sleep ?? defaultSleep;
57
201
  const started = now();
202
+ let holdAvailable = true;
58
203
  let attempt = 0;
59
204
  for (;;) {
205
+ const remainingSeconds = Math.floor((timeoutMs - (now() - started)) / 1000);
206
+ if (holdAvailable && remainingSeconds >= 1) {
207
+ const seconds = Math.min(JOB_HOLD_MAX_SECONDS, remainingSeconds);
208
+ const holdStarted = now();
209
+ const hold = await holdJobs(client, [jobId], seconds);
210
+ if (hold === null || hold.finished.has(jobId)) {
211
+ holdAvailable = false;
212
+ }
213
+ else {
214
+ if (now() - started >= timeoutMs)
215
+ throw new WaitTimeoutError('job', [jobId]);
216
+ if (holdCameBackEarly(hold, seconds, now() - holdStarted))
217
+ await sleep(pause(attempt, started, timeoutMs, now));
218
+ attempt += 1;
219
+ continue;
220
+ }
221
+ }
60
222
  const result = await client.callTool('get_jobs', { jobId });
61
223
  const status = statusOf(result);
62
224
  if (status && TERMINAL_ASSET_STATUSES.has(status))
63
225
  return result;
64
226
  if (now() - started >= timeoutMs)
65
227
  throw new WaitTimeoutError('job', [jobId]);
66
- await sleep(backoff(attempt));
228
+ await sleep(pause(attempt, started, timeoutMs, now));
67
229
  attempt += 1;
68
230
  }
69
231
  }
70
- /** get_run long-polls on the server (waitSeconds); loop until terminal or the client timeout. */
71
232
  export async function waitForRun(client, runId, options = {}) {
72
233
  const timeoutMs = options.timeoutMs ?? DEFAULT_WAIT_TIMEOUT_MS;
73
234
  const now = options.now ?? Date.now;
235
+ const sleep = options.sleep ?? defaultSleep;
74
236
  const started = now();
237
+ let wakeOnTerminal = true;
238
+ let attempt = 0;
75
239
  for (;;) {
76
240
  const remaining = timeoutMs - (now() - started);
77
241
  if (remaining <= 0)
78
242
  throw new WaitTimeoutError('run', [runId]);
79
- const waitSeconds = Math.max(1, Math.min(30, Math.floor(remaining / 1000)));
80
- const result = await client.callTool('get_run', { runId, view: 'status', waitSeconds });
243
+ const waitSeconds = Math.min(30, Math.floor(remaining / 1000));
244
+ const filtered = wakeOnTerminal && waitSeconds > 0;
245
+ let result;
246
+ try {
247
+ result = await client.callTool('get_run', {
248
+ runId,
249
+ view: 'status',
250
+ waitSeconds,
251
+ ...(filtered ? { wakeOn: ['terminal'] } : {}),
252
+ });
253
+ }
254
+ catch (error) {
255
+ if (!filtered || !(error instanceof CliApiError) || error.code !== 'INVALID_ARGUMENTS')
256
+ throw error;
257
+ wakeOnTerminal = false;
258
+ continue;
259
+ }
81
260
  const status = statusOf(result);
82
261
  if (status && TERMINAL_RUN_STATUSES.has(status))
83
262
  return result;
84
- if (options.sleep && now() - started < timeoutMs)
263
+ if (waitSeconds === 0 || result.wokeOn === 'capacity')
264
+ await sleep(pause(attempt, started, timeoutMs, now));
265
+ else if (options.sleep && now() - started < timeoutMs)
85
266
  await options.sleep(0);
267
+ attempt += 1;
86
268
  }
87
269
  }
88
- /** Poll get_timeline_delivery_status until the render or export settles. */
89
- export async function waitForDelivery(client, projectId, ids, options = {}) {
270
+ export async function waitForDelivery(client, ids, options = {}) {
90
271
  const timeoutMs = options.timeoutMs ?? DEFAULT_WAIT_TIMEOUT_MS;
91
272
  const now = options.now ?? Date.now;
92
273
  const sleep = options.sleep ?? defaultSleep;
@@ -94,17 +275,16 @@ export async function waitForDelivery(client, projectId, ids, options = {}) {
94
275
  let attempt = 0;
95
276
  const label = ids.renderId ?? ids.exportId ?? 'delivery';
96
277
  for (;;) {
97
- const result = await client.callTool('get_timeline_delivery_status', { projectId, ...ids });
278
+ const result = await client.callTool('get_timeline_delivery_status', { jobId: label });
98
279
  const status = statusOf(result);
99
280
  if (status && TERMINAL_ASSET_STATUSES.has(status))
100
281
  return result;
101
282
  if (now() - started >= timeoutMs)
102
283
  throw new WaitTimeoutError('render', [label]);
103
- await sleep(backoff(attempt));
284
+ await sleep(pause(attempt, started, timeoutMs, now));
104
285
  attempt += 1;
105
286
  }
106
287
  }
107
- /** The status of a tool result, wherever the tool put it: top level, or under job / run / render / asset. */
108
288
  export function statusOf(result) {
109
289
  if (!result)
110
290
  return null;
@@ -118,15 +298,17 @@ export function statusOf(result) {
118
298
  }
119
299
  return null;
120
300
  }
121
- /** Asset ids a generation tool's result names, so --wait knows what to wait for. */
122
301
  export function producedAssetIds(result) {
123
302
  if (!result || typeof result !== 'object')
124
303
  return [];
125
304
  const record = result;
126
305
  const ids = [];
127
306
  const pushId = (value) => {
128
- if (typeof value === 'string' && value.length > 0)
129
- ids.push(value);
307
+ if (typeof value !== 'string' || value.length === 0)
308
+ return;
309
+ if (/^(bin|annotation)-/.test(value))
310
+ return;
311
+ ids.push(value.replace(/^asset-/, ''));
130
312
  };
131
313
  pushId(record.assetId);
132
314
  pushId(record.nodeId);