@raidiant/notifai 2.0.2 → 4.0.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/dist/main.js CHANGED
@@ -215,18 +215,19 @@ const send = program
215
215
  .summary('Send a notification')
216
216
  .description('Send a notification')
217
217
  .optionsGroup(SEND_GROUP.content)
218
- .requiredOption('--title <title>', 'notification title')
219
- .requiredOption('--body <body>', 'notification body')
220
- .option('--subtitle <subtitle>', 'a line between the title and the body')
221
- .option('--detail <markdown>', 'long-form markdown shown only in the app, never on the banner')
222
- .option('--detail-file <path>', 'read --detail from a file (use - for stdin)')
223
- .option('--image <path|url|media_id>', 'upload or attach an image')
218
+ .requiredOption('--title <title>', 'brief title whose substance is immediately understandable')
219
+ .option('--body <markdown>', 'canonical Markdown body')
220
+ .option('--body-file <path>', 'read the canonical Markdown body from a file (use - for stdin)')
221
+ .option('--subtitle <subtitle>', 'a plain-text line between the title and body')
222
+ .option('--image <path|url|media_id>', 'upload or attach an image in collection order (repeatable, maximum 8)', (v, all) => [...all, v], [])
223
+ .option('--image-alt <text>', 'alt text paired with --image occurrences by position (repeatable)', (v, all) => [...all, v], [])
224
224
  .optionsGroup(SEND_GROUP.routing)
225
- .option('--kind <kind>', 'what this is: update (default) | done | question (requires --reply)')
226
- .option('--project <id>', 'project identifier, e.g. my-app (lazily registered)')
225
+ .option('--kind <kind>', 'what this is: update (default) | done | failed | blocked | question (requires --reply)')
226
+ .option('--project <id>', 'project identifier override (otherwise configured or inferred)')
227
227
  .option('--device <id>', 'target a device id (repeatable)', (v, all) => [...all, v], [])
228
228
  .option('--all', 'target all routable devices (overrides configured devices)')
229
- .option('--session <id>', 'session identity (env: NOTIFAI_SESSION); presentation varies by surface')
229
+ .option('--session-id <id>', 'opaque exact-session override (env: NOTIFAI_SESSION_ID)')
230
+ .option('--session-label <text>', 'human session label override (env: NOTIFAI_SESSION_LABEL)')
230
231
  .option('--event <event>', 'agent event name, e.g. tests_passed')
231
232
  .optionsGroup(SEND_GROUP.presentation)
232
233
  .option('--collapse-key <key>', 'replace earlier notifications with the same key')
@@ -243,8 +244,8 @@ const send = program
243
244
  // a message pointing at `ask` instead of "unknown option".
244
245
  .option('--no-block', 'rejected with --reply; use `notifai ask` to ask and end the turn')
245
246
  .optionsGroup(SEND_GROUP.advanced)
246
- .option('--sound <sound>', 'override kind profile / saved config: default | done | attention | alert | none')
247
- .option('--level <level>', 'override kind profile / saved config: passive | active | time_sensitive')
247
+ .option('--sound <sound>', 'override saved sound: default | done | attention | alert | none')
248
+ .option('--level <level>', 'override saved interruption level: passive | active | time_sensitive')
248
249
  .option('--wait <seconds>', 'how long to wait for provider outcomes', (v) => Number(v))
249
250
  .option('--no-wait', 'return immediately after acceptance')
250
251
  .option('--data <key=value>', 'custom data (repeatable)', (v, all) => [...all, v], [])
@@ -257,25 +258,24 @@ const send = program
257
258
  const wait = typeof opts['wait'] === 'number' ? opts['wait'] : undefined;
258
259
  const noBlock = opts['block'] === false;
259
260
  const sendOpts = { ...opts };
260
- // Same empty-collector normalisation as `ask`.
261
- if (Array.isArray(sendOpts['replyChoice']) && sendOpts['replyChoice'].length === 0) {
262
- delete sendOpts['replyChoice'];
261
+ // Commander collectors default to []; an empty list means "not passed".
262
+ for (const key of ['replyChoice', 'image', 'imageAlt']) {
263
+ if (Array.isArray(sendOpts[key]) && sendOpts[key].length === 0)
264
+ delete sendOpts[key];
263
265
  }
264
266
  delete sendOpts['block'];
265
- // Long-form detail is usually a build log or a diff summary, which nobody
266
- // wants to shell-escape onto a command line.
267
- const detailFile = sendOpts['detailFile'];
268
- delete sendOpts['detailFile'];
269
- if (typeof detailFile === 'string') {
270
- if (sendOpts['detail'] !== undefined) {
271
- deps.io.err('Pass either --detail or --detail-file, not both.');
267
+ const bodyFile = sendOpts['bodyFile'];
268
+ delete sendOpts['bodyFile'];
269
+ if (typeof bodyFile === 'string') {
270
+ if (sendOpts['body'] !== undefined) {
271
+ deps.io.err('Pass either --body or --body-file, not both.');
272
272
  process.exit(2);
273
273
  }
274
274
  try {
275
- sendOpts['detail'] = readFileSync(detailFile === '-' ? 0 : detailFile, 'utf8');
275
+ sendOpts['body'] = readFileSync(bodyFile === '-' ? 0 : bodyFile, 'utf8');
276
276
  }
277
277
  catch (err) {
278
- deps.io.err(`Could not read ${detailFile}: ${String(err)}`);
278
+ deps.io.err(`Could not read ${bodyFile}: ${String(err)}`);
279
279
  process.exit(2);
280
280
  }
281
281
  }
@@ -286,7 +286,7 @@ const send = program
286
286
  flags.wait = wait;
287
287
  process.exit(await sendCommand(deps, flags));
288
288
  });
289
- send.addHelpText('after', `\nKind profiles apply automatically. Pass --sound or --level only to override them or saved user config:\n update sound none level passive\n done sound done level passive\n question sound attention level active (--reply)\n`);
289
+ send.addHelpText('after', `\nKind describes status in the Companion Apps; it never chooses banner sound or interruption level.\nWithout --sound/--level or saved preferences, those fields are omitted for the destination to handle.\n`);
290
290
  program
291
291
  .command('replies [request_id]')
292
292
  .helpGroup(GROUP.agent)
@@ -325,22 +325,26 @@ program
325
325
  .description('Register a question for the turn-end hook to route under your presence settings')
326
326
  .option('--choice <label>', 'answers to offer instead of free text; repeat the flag once per answer (2-6)', (v, all) => [...all, v], [])
327
327
  .option('--multi', 'with --choice, several answers may be selected')
328
- .option('--detail <markdown>', 'long-form context shown only in the app, never on the banner')
329
- .option('--detail-file <path>', 'read --detail from a file (use - for stdin)')
328
+ .option('--body <markdown>', 'optional Markdown context appended after the question block')
329
+ .option('--body-file <path>', 'read optional Markdown context from a file (use - for stdin)')
330
330
  .option('--form <path>', 'ask several questions as one form; JSON file (use - for stdin)')
331
- .option('--session <id>', 'session id (default: the session working in this directory, else $NOTIFAI_SESSION)')
332
- .action((question, opts) => {
333
- let detail = opts.detail;
334
- if (typeof opts.detailFile === 'string') {
335
- if (detail !== undefined) {
336
- deps.io.err('Pass either --detail or --detail-file, not both.');
331
+ .option('--image <path|url|media_id>', 'upload or attach an image in collection order (repeatable, maximum 8)', (v, all) => [...all, v], [])
332
+ .option('--image-alt <text>', 'alt text paired with --image occurrences by position (repeatable)', (v, all) => [...all, v], [])
333
+ .option('--project <id>', 'project identifier override (otherwise configured or inferred)')
334
+ .option('--session-id <id>', 'opaque exact-session override (env: NOTIFAI_SESSION_ID)')
335
+ .option('--session-label <text>', 'human session label override (env: NOTIFAI_SESSION_LABEL)')
336
+ .action(async (question, opts) => {
337
+ let body = opts.body;
338
+ if (typeof opts.bodyFile === 'string') {
339
+ if (body !== undefined) {
340
+ deps.io.err('Pass either --body or --body-file, not both.');
337
341
  process.exit(2);
338
342
  }
339
343
  try {
340
- detail = readFileSync(opts.detailFile === '-' ? 0 : opts.detailFile, 'utf8');
344
+ body = readFileSync(opts.bodyFile === '-' ? 0 : opts.bodyFile, 'utf8');
341
345
  }
342
346
  catch (err) {
343
- deps.io.err(`Could not read ${opts.detailFile}: ${String(err)}`);
347
+ deps.io.err(`Could not read ${opts.bodyFile}: ${String(err)}`);
344
348
  process.exit(2);
345
349
  }
346
350
  }
@@ -354,15 +358,19 @@ program
354
358
  process.exit(2);
355
359
  }
356
360
  }
357
- // commander's collector defaults to []; an empty list means "not asked".
361
+ // Commander collectors default to []; an empty list means "not passed".
358
362
  const flags = {
359
- ...(opts.session !== undefined ? { session: opts.session } : {}),
360
363
  ...(opts.choice?.length ? { choice: opts.choice } : {}),
361
364
  ...(opts.multi ? { multi: true } : {}),
362
- ...(detail !== undefined ? { detail } : {}),
365
+ ...(body !== undefined ? { body } : {}),
363
366
  ...(form !== undefined ? { form } : {}),
367
+ ...(opts.image?.length ? { image: opts.image } : {}),
368
+ ...(opts.imageAlt?.length ? { imageAlt: opts.imageAlt } : {}),
369
+ ...(opts.project !== undefined ? { project: opts.project } : {}),
370
+ ...(opts.sessionId !== undefined ? { sessionId: opts.sessionId } : {}),
371
+ ...(opts.sessionLabel !== undefined ? { sessionLabel: opts.sessionLabel } : {}),
364
372
  };
365
- process.exit(askCommand(deps, question, flags));
373
+ process.exit(await askCommand(deps, question, flags));
366
374
  });
367
375
  program
368
376
  .command('close <request_id>')
package/dist/main.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"main.js","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"main.js","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":"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"}
package/dist/send.d.ts CHANGED
@@ -1,16 +1,18 @@
1
- import { type LifecycleT, type NotificationDraftT, type Platform, type QuestionT, type SubmissionReceipt } from '@raidiant/notifai-protocol';
1
+ import { type LifecycleT, type MediaItemT, type NotificationDraftT, type Platform, type QuestionT, type SourceContextT, type SubmissionReceipt } from '@raidiant/notifai-protocol';
2
2
  import type { CliConfig } from './config.js';
3
3
  export interface SendFlags {
4
4
  title: string;
5
+ /** The one canonical Markdown body. */
5
6
  body: string;
6
7
  subtitle?: string;
7
- /** Long-form markdown for the app's detail view; never on the banner. */
8
- detail?: string;
9
8
  event?: string;
10
- /** What this notification is: update (default), done, or question. */
9
+ /** What this notification is; absent means update. */
11
10
  kind?: string;
12
11
  project?: string;
13
- session?: string;
12
+ /** Opaque exact-session override. */
13
+ sessionId?: string;
14
+ /** Human-readable session label override. */
15
+ sessionLabel?: string;
14
16
  device?: string[];
15
17
  all?: boolean;
16
18
  ttl?: number;
@@ -19,7 +21,15 @@ export interface SendFlags {
19
21
  threadId?: string;
20
22
  level?: string;
21
23
  data?: string[];
22
- image?: string;
24
+ /** Ready media ids in author-supplied order. Commands resolve paths and URLs first. */
25
+ image?: string[];
26
+ /** Optional alt text paired with images by position. */
27
+ imageAlt?: string[];
28
+ /**
29
+ * Complete canonical media manifest for internal callers that already froze
30
+ * uploads and alt text. Mutually exclusive with the CLI's parallel inputs.
31
+ */
32
+ media?: MediaItemT[];
23
33
  /** Enable the inline reply action for this Notification Request. */
24
34
  reply?: boolean;
25
35
  /** How long the server accepts a reply after submission. */
@@ -52,8 +62,23 @@ export type DraftBuild = {
52
62
  ok: false;
53
63
  error: string;
54
64
  };
65
+ /** Invocation-derived values beneath explicit and configured author input. */
66
+ export interface DraftInvocation {
67
+ inferredProject?: string | null;
68
+ source?: SourceContextT;
69
+ }
70
+ /** Validate media cardinality and positional alt pairing before any upload starts. */
71
+ export declare function validateMediaInputs(images: readonly string[] | undefined, alts: readonly string[] | undefined): string | null;
72
+ /** Rewrite authorable 1-based media positions to canonical ready media ids. */
73
+ export declare function rewriteMediaReferences(body: string, mediaIds: readonly string[]): {
74
+ ok: true;
75
+ body: string;
76
+ } | {
77
+ ok: false;
78
+ error: string;
79
+ };
55
80
  /** Merge flags over resolved config into a Notification Request draft. */
56
- export declare function buildDraft(config: CliConfig, flags: SendFlags): DraftBuild;
81
+ export declare function buildDraft(config: CliConfig, flags: SendFlags, invocation?: DraftInvocation): DraftBuild;
57
82
  /** Human one-screen receipt summary; agents use --json instead. */
58
83
  export declare function formatReceipt(receipt: SubmissionReceipt): string;
59
84
  /** Stable exit codes: 0 ok/pending, 1 rejected everywhere. */
package/dist/send.js CHANGED
@@ -1,28 +1,84 @@
1
- import { CLI_SOUNDS, COLLAPSE_KEY_MAX_BYTES, INTERRUPTION_LEVELS, NOTIFICATION_SCHEMA_VERSION, QUESTION_TEXT_MAX_LENGTH, NOTIFICATION_KINDS, PLATFORMS, } from '@raidiant/notifai-protocol';
1
+ import { CLI_SOUNDS, COLLAPSE_KEY_MAX_BYTES, INTERRUPTION_LEVELS, MEDIA_MAX_ITEMS, NOTIFICATION_SCHEMA_VERSION, QUESTION_TEXT_MAX_LENGTH, bannerExcerpt, NOTIFICATION_KINDS, PLATFORMS, } from '@raidiant/notifai-protocol';
2
+ const POSITIONAL_MEDIA_REFERENCE = /media:(\d+)(?![A-Za-z0-9_-])/g;
3
+ /** Validate media cardinality and positional alt pairing before any upload starts. */
4
+ export function validateMediaInputs(images, alts) {
5
+ const imageCount = images?.length ?? 0;
6
+ const imageAlts = alts ?? [];
7
+ if (imageCount > MEDIA_MAX_ITEMS)
8
+ return `Attach at most ${MEDIA_MAX_ITEMS} images.`;
9
+ if (imageAlts.length > imageCount) {
10
+ return `Received ${imageAlts.length} --image-alt values for ${imageCount} --image values.`;
11
+ }
12
+ if (imageAlts.some((alt) => alt.length < 1 || alt.length > 256)) {
13
+ return '--image-alt must be 1-256 characters.';
14
+ }
15
+ return null;
16
+ }
17
+ /** Validate a frozen value-object manifest without collapsing sparse alt text. */
18
+ function validateMediaManifest(media) {
19
+ if (media.length > MEDIA_MAX_ITEMS)
20
+ return `Attach at most ${MEDIA_MAX_ITEMS} images.`;
21
+ if (media.some((item) => item.alt !== undefined && (item.alt.length < 1 || item.alt.length > 256))) {
22
+ return 'Media alt text must be 1-256 characters.';
23
+ }
24
+ return null;
25
+ }
26
+ /** Rewrite authorable 1-based media positions to canonical ready media ids. */
27
+ export function rewriteMediaReferences(body, mediaIds) {
28
+ let error;
29
+ const rewritten = body.replace(POSITIONAL_MEDIA_REFERENCE, (reference, digits) => {
30
+ const position = Number(digits);
31
+ if (!Number.isSafeInteger(position) ||
32
+ position < 1 ||
33
+ position > MEDIA_MAX_ITEMS ||
34
+ digits !== String(position) ||
35
+ mediaIds[position - 1] === undefined) {
36
+ error = `Body reference "${reference}" has no matching --image occurrence.`;
37
+ return reference;
38
+ }
39
+ return `media:${mediaIds[position - 1]}`;
40
+ });
41
+ return error === undefined ? { ok: true, body: rewritten } : { ok: false, error };
42
+ }
2
43
  /** Merge flags over resolved config into a Notification Request draft. */
3
- export function buildDraft(config, flags) {
44
+ export function buildDraft(config, flags, invocation = {}) {
4
45
  if (!flags.title || !flags.body)
5
46
  return { ok: false, error: 'Both --title and --body are required.' };
6
47
  const platform = resolvePlatform(flags.platform);
7
48
  if (!platform) {
8
49
  return { ok: false, error: `Unknown platform "${flags.platform}" — use ${PLATFORMS.join(' or ')}.` };
9
50
  }
51
+ if (flags.media !== undefined && (flags.image !== undefined || flags.imageAlt !== undefined)) {
52
+ return { ok: false, error: 'Internal media manifests cannot be combined with --image or --image-alt.' };
53
+ }
54
+ const imageIds = flags.media?.map((item) => item.media_id) ?? flags.image ?? [];
55
+ const imageAlts = flags.imageAlt ?? [];
56
+ const mediaInputError = flags.media === undefined
57
+ ? validateMediaInputs(imageIds, imageAlts)
58
+ : validateMediaManifest(flags.media);
59
+ if (mediaInputError !== null)
60
+ return { ok: false, error: mediaInputError };
61
+ const media = flags.media ??
62
+ imageIds.map((media_id, index) => ({
63
+ media_id,
64
+ ...(imageAlts[index] !== undefined ? { alt: imageAlts[index] } : {}),
65
+ }));
66
+ const body = rewriteMediaReferences(flags.body, imageIds);
67
+ if (!body.ok)
68
+ return body;
10
69
  const deviceIds = flags.all ? null : (flags.device?.length ? flags.device : config.devices.value);
11
70
  const targets = deviceIds && deviceIds.length > 0 ? { mode: 'selected', device_ids: deviceIds } : { mode: 'all' };
12
- const effectiveKind = flags.reply ? 'question' : (flags.kind ?? 'update');
13
- const profile = KIND_PROFILES[effectiveKind];
14
- const configuredSound = config.sound.source === 'default' ? undefined : config.sound.value;
15
- const sound = flags.sound ?? configuredSound ?? profile?.sound;
71
+ // Kind is semantic status metadata for Companion presentation. It never
72
+ // chooses native-banner attention; only an explicit flag or saved preference
73
+ // may add sound or interruption fields to the platform payload.
74
+ const sound = flags.sound ?? config.sound.value;
16
75
  if (sound !== null && sound !== undefined && !CLI_SOUNDS.includes(sound)) {
17
76
  return {
18
77
  ok: false,
19
78
  error: `Unknown sound "${sound}" — supported: ${CLI_SOUNDS.map((value) => `"${value}"`).join(', ')}.`,
20
79
  };
21
80
  }
22
- const configuredLevel = config.interruption_level.source === 'default'
23
- ? undefined
24
- : config.interruption_level.value;
25
- const level = flags.level ?? configuredLevel ?? profile?.level;
81
+ const level = flags.level ?? config.interruption_level.value;
26
82
  if (level !== null &&
27
83
  level !== undefined &&
28
84
  !INTERRUPTION_LEVELS.includes(level)) {
@@ -66,10 +122,7 @@ export function buildDraft(config, flags) {
66
122
  error: `--collapse-key must be at most ${COLLAPSE_KEY_MAX_BYTES} UTF-8 bytes.`,
67
123
  };
68
124
  }
69
- const project = flags.project ?? config.project.value;
70
- // Harnesses can export NOTIFAI_SESSION once instead of passing the flag
71
- // on every send.
72
- const session = flags.session ?? process.env['NOTIFAI_SESSION'];
125
+ const project = flags.project ?? config.project.value ?? invocation.inferredProject;
73
126
  // Ids are derived from labels so an agent writing a one-liner does not have
74
127
  // to invent them, but they stay the stable thing it branches on afterwards.
75
128
  const choices = parseChoices(flags.replyChoice);
@@ -82,16 +135,16 @@ export function buildDraft(config, flags) {
82
135
  if (flags.replyMulti && choices === null && flags.questions === undefined) {
83
136
  return { ok: false, error: '--reply-multi needs answers to select between; add --reply-choice.' };
84
137
  }
85
- // The banner body doubles as the question text on a single-question send, so
86
- // it inherits the question's readable-in-full bound; context beyond that
87
- // belongs in --detail, which never rides the banner.
138
+ // A single reply question is the first readable block of the canonical body.
139
+ // Context may follow after a blank line without changing what the user answers.
140
+ const derivedQuestion = bannerExcerpt(body.body).split('\n', 1)[0].trim();
88
141
  if (flags.reply &&
89
142
  flags.questions === undefined &&
90
- flags.body.length > QUESTION_TEXT_MAX_LENGTH) {
143
+ derivedQuestion.length > QUESTION_TEXT_MAX_LENGTH) {
91
144
  return {
92
145
  ok: false,
93
- error: `A question must be readable where it is answered: keep it within ${QUESTION_TEXT_MAX_LENGTH} ` +
94
- 'characters and put the longer context in --detail.',
146
+ error: `Keep the question within ${QUESTION_TEXT_MAX_LENGTH} characters and put ` +
147
+ 'the longer context after a blank line — the first paragraph is the question.',
95
148
  };
96
149
  }
97
150
  const draft = {
@@ -102,15 +155,12 @@ export function buildDraft(config, flags) {
102
155
  : {}),
103
156
  ...(flags.lifecycle !== undefined ? { lifecycle: flags.lifecycle } : {}),
104
157
  ...(project !== null && project !== undefined ? { project } : {}),
105
- ...(session !== undefined && session !== '' ? { session } : {}),
158
+ ...(invocation.source !== undefined ? { source: invocation.source } : {}),
106
159
  presentation: {
107
160
  title: flags.title,
108
- body: flags.body,
161
+ body: body.body,
109
162
  ...(flags.subtitle !== undefined ? { subtitle: flags.subtitle } : {}),
110
- ...(flags.detail !== undefined && flags.detail.trim() !== ''
111
- ? { detail: flags.detail }
112
- : {}),
113
- ...(flags.image !== undefined ? { image: { media_id: flags.image } } : {}),
163
+ ...(media.length > 0 ? { media } : {}),
114
164
  },
115
165
  targets,
116
166
  delivery: { ttl_seconds: ttl, collapse_key: collapse },
@@ -121,7 +171,7 @@ export function buildDraft(config, flags) {
121
171
  questions: flags.questions ?? [
122
172
  {
123
173
  id: 'q1',
124
- text: flags.body,
174
+ text: derivedQuestion,
125
175
  ...(choices !== null ? { choices } : {}),
126
176
  ...(flags.replyMulti ? { multi: true } : {}),
127
177
  },
@@ -139,11 +189,6 @@ export function buildDraft(config, flags) {
139
189
  };
140
190
  return { ok: true, draft, platform };
141
191
  }
142
- const KIND_PROFILES = {
143
- update: { sound: 'none', level: 'passive' },
144
- done: { sound: 'done', level: 'passive' },
145
- question: { sound: 'attention', level: 'active' },
146
- };
147
192
  function resolvePlatform(value) {
148
193
  if (value === undefined)
149
194
  return 'ios';
package/dist/send.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"send.js","sourceRoot":"","sources":["../src/send.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,EACV,sBAAsB,EACtB,mBAAmB,EACnB,2BAA2B,EAC3B,wBAAwB,EAKxB,kBAAkB,EAClB,SAAS,GAIV,MAAM,4BAA4B,CAAA;AAsDnC,0EAA0E;AAC1E,MAAM,UAAU,UAAU,CAAC,MAAiB,EAAE,KAAgB;IAC5D,IAAI,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,IAAI;QAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,uCAAuC,EAAE,CAAA;IACrG,MAAM,QAAQ,GAAG,eAAe,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAA;IAChD,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,qBAAqB,KAAK,CAAC,QAAQ,WAAW,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,CAAA;IACtG,CAAC;IAED,MAAM,SAAS,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;IACjG,MAAM,OAAO,GACX,SAAS,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAA;IAEnG,MAAM,aAAa,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,IAAI,QAAQ,CAAC,CAAA;IACzE,MAAM,OAAO,GAAG,aAAa,CAAC,aAA2C,CAAC,CAAA;IAC1E,MAAM,eAAe,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAA;IAC1F,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,IAAI,eAAe,IAAI,OAAO,EAAE,KAAK,CAAA;IAC9D,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,KAAiB,CAAC,EAAE,CAAC;QACrF,OAAO;YACL,EAAE,EAAE,KAAK;YACT,KAAK,EAAE,kBAAkB,KAAK,kBAAkB,UAAU,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,KAAK,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG;SACtG,CAAA;IACH,CAAC;IACD,MAAM,eAAe,GACnB,MAAM,CAAC,kBAAkB,CAAC,MAAM,KAAK,SAAS;QAC5C,CAAC,CAAC,SAAS;QACX,CAAC,CAAC,MAAM,CAAC,kBAAkB,CAAC,KAAK,CAAA;IACrC,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,IAAI,eAAe,IAAI,OAAO,EAAE,KAAK,CAAA;IAC9D,IACE,KAAK,KAAK,IAAI;QACd,KAAK,KAAK,SAAS;QACnB,CAAC,mBAAmB,CAAC,QAAQ,CAAC,KAA6C,CAAC,EAC5E,CAAC;QACD,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,+BAA+B,KAAK,IAAI,EAAE,CAAA;IACvE,CAAC;IAED,MAAM,OAAO,GAAgC,EAAE,CAAA;IAC/C,IAAI,KAAK,KAAK,MAAM;QAAE,OAAO,CAAC,KAAK,GAAG,IAAI,CAAA;SACrC,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QAC/C,OAAO,CAAC,KAAK,GAAG,KAAqD,CAAA;IACvE,CAAC;IACD,IAAI,KAAK,CAAC,QAAQ,KAAK,SAAS;QAAE,OAAO,CAAC,SAAS,GAAG,KAAK,CAAC,QAAQ,CAAA;IACpE,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QAC1C,OAAO,CAAC,kBAAkB,GAAG,KAA6C,CAAA;IAC5E,CAAC;IACD,IAAI,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC;QACvB,MAAM,IAAI,GAA2B,EAAE,CAAA;QACvC,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;YAC9B,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;YAC5B,IAAI,EAAE,IAAI,CAAC;gBAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,kCAAkC,IAAI,IAAI,EAAE,CAAA;YACpF,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC,CAAA;QAC9C,CAAC;QACD,OAAO,CAAC,WAAW,GAAG,IAAI,CAAA;IAC5B,CAAC;IAED,IACE,KAAK,CAAC,IAAI,KAAK,SAAS;QACxB,CAAC,kBAAkB,CAAC,QAAQ,CAAC,KAAK,CAAC,IAA2C,CAAC,EAC/E,CAAC;QACD,OAAO;YACL,EAAE,EAAE,KAAK;YACT,KAAK,EAAE,iBAAiB,KAAK,CAAC,IAAI,kBAAkB,kBAAkB,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG;SAChH,CAAA;IACH,CAAC;IAED,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,IAAI,MAAM,CAAC,WAAW,CAAC,KAAK,CAAA;IACjD,MAAM,QAAQ,GAAG,KAAK,CAAC,WAAW,IAAI,MAAM,CAAC,YAAY,CAAC,KAAK,CAAA;IAC/D,IACE,QAAQ,KAAK,IAAI;QACjB,QAAQ,KAAK,SAAS;QACtB,MAAM,CAAC,UAAU,CAAC,QAAQ,EAAE,MAAM,CAAC,GAAG,sBAAsB,EAC5D,CAAC;QACD,OAAO;YACL,EAAE,EAAE,KAAK;YACT,KAAK,EAAE,kCAAkC,sBAAsB,eAAe;SAC/E,CAAA;IACH,CAAC;IAED,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAA;IACrD,wEAAwE;IACxE,iBAAiB;IACjB,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,IAAI,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAA;IAE/D,4EAA4E;IAC5E,4EAA4E;IAC5E,MAAM,OAAO,GAAG,YAAY,CAAC,KAAK,CAAC,WAAW,CAAC,CAAA;IAC/C,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC1B,OAAO;YACL,EAAE,EAAE,KAAK;YACT,KAAK,EAAE,YAAY;SACpB,CAAA;IACH,CAAC;IACD,IAAI,KAAK,CAAC,UAAU,IAAI,OAAO,KAAK,IAAI,IAAI,KAAK,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;QAC1E,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,oEAAoE,EAAE,CAAA;IACnG,CAAC;IACD,6EAA6E;IAC7E,yEAAyE;IACzE,qDAAqD;IACrD,IACE,KAAK,CAAC,KAAK;QACX,KAAK,CAAC,SAAS,KAAK,SAAS;QAC7B,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,wBAAwB,EAC5C,CAAC;QACD,OAAO;YACL,EAAE,EAAE,KAAK;YACT,KAAK,EACH,oEAAoE,wBAAwB,GAAG;gBAC/F,oDAAoD;SACvD,CAAA;IACH,CAAC;IAED,MAAM,KAAK,GAAuB;QAChC,cAAc,EAAE,2BAA2B;QAC3C,GAAG,CAAC,KAAK,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC5D,GAAG,CAAC,KAAK,CAAC,IAAI,KAAK,SAAS;YAC1B,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,IAA2C,EAAE;YAC7D,CAAC,CAAC,EAAE,CAAC;QACP,GAAG,CAAC,KAAK,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACxE,GAAG,CAAC,OAAO,KAAK,IAAI,IAAI,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACjE,GAAG,CAAC,OAAO,KAAK,SAAS,IAAI,OAAO,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/D,YAAY,EAAE;YACZ,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,GAAG,CAAC,KAAK,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACrE,GAAG,CAAC,KAAK,CAAC,MAAM,KAAK,SAAS,IAAI,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE;gBAC1D,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE;gBAC1B,CAAC,CAAC,EAAE,CAAC;YACP,GAAG,CAAC,KAAK,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,QAAQ,EAAE,KAAK,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC3E;QACD,OAAO;QACP,QAAQ,EAAE,EAAE,WAAW,EAAE,GAAG,EAAE,YAAY,EAAE,QAAQ,EAAE;QACtD,GAAG,CAAC,KAAK,CAAC,KAAK;YACb,CAAC,CAAC;gBACE,KAAK,EAAE;oBACL,kBAAkB,EAAE,KAAK,CAAC,WAAW,IAAI,IAAI;oBAC7C,SAAS,EAAE,KAAK,CAAC,SAAS,IAAI;wBAC5B;4BACE,EAAE,EAAE,IAAI;4BACR,IAAI,EAAE,KAAK,CAAC,IAAI;4BAChB,GAAG,CAAC,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;4BACxC,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;yBAC7C;qBACF;iBACF;aACF;YACH,CAAC,CAAC,EAAE,CAAC;QACP,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,GAAG,CAAC;YACjC,CAAC,CAAC,KAAK,CAAC,QAAQ,KAAK,SAAS;gBAC5B,CAAC,CAAC,EAAE,QAAQ,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;gBAChD,CAAC,CAAC,QAAQ,KAAK,KAAK;oBAClB,CAAC,CAAC,EAAE,QAAQ,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE;oBAChC,CAAC,CAAC,EAAE,QAAQ,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;YACtC,CAAC,CAAC,EAAE,CAAC;KACR,CAAA;IACD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAA;AACtC,CAAC;AAED,MAAM,aAAa,GAAG;IACpB,MAAM,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE;IAC3C,IAAI,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE;IACzC,QAAQ,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,QAAQ,EAAE;CACzC,CAAA;AAEV,SAAS,eAAe,CAAC,KAAyB;IAChD,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,KAAK,CAAA;IACrC,OAAQ,SAA+B,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAE,KAAkB,CAAC,CAAC,CAAC,IAAI,CAAA;AACtF,CAAC;AAED,mEAAmE;AACnE,MAAM,UAAU,aAAa,CAAC,OAA0B;IACtD,MAAM,KAAK,GAAa,EAAE,CAAA;IAC1B,MAAM,OAAO,GACX,OAAO,CAAC,OAAO,KAAK,uBAAuB;QACzC,CAAC,CAAC,gDAAgD;QAClD,CAAC,CAAC,OAAO,CAAC,OAAO,KAAK,2BAA2B;YAC/C,CAAC,CAAC,2BAA2B;YAC7B,CAAC,CAAC,OAAO,CAAC,OAAO,KAAK,uBAAuB;gBAC3C,CAAC,CAAC,2BAA2B;gBAC7B,CAAC,CAAC,iBAAiB,CAAA;IAC3B,KAAK,CAAC,IAAI,CAAC,WAAW,OAAO,CAAC,UAAU,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,KAAK,OAAO,EAAE,CAAC,CAAA;IAC/F,KAAK,MAAM,CAAC,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;QACnC,MAAM,MAAM,GAAG,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,eAAe,GAAG,CAAC,CAAC,CAAC,EAAE,CAAA;QACjE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,WAAW,KAAK,CAAC,CAAC,KAAK,GAAG,MAAM,EAAE,CAAC,CAAA;IACvD,CAAC;IACD,KAAK,CAAC,IAAI,CACR,6DAA6D,OAAO,CAAC,UAAU,iCAAiC,CACjH,CAAA;IACD,KAAK,MAAM,CAAC,IAAI,OAAO,CAAC,QAAQ;QAAE,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC,CAAA;IACjF,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AACzB,CAAC;AAED,8DAA8D;AAC9D,MAAM,UAAU,eAAe,CAAC,OAA0B;IACxD,OAAO,OAAO,CAAC,OAAO,KAAK,uBAAuB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;AAC5D,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,YAAY,CAC1B,KAA2B;IAE3B,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAA;IAC1D,MAAM,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;IACjF,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,SAAS,CAAA;IAC5D,MAAM,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,OAAO,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAA;IACtE,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC;QAAE,OAAO,SAAS,CAAA;IAChE,IAAI,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,MAAM;QAAE,OAAO,SAAS,CAAA;IACzF,OAAO,OAAO,CAAA;AAChB,CAAC;AAED,kEAAkE;AAClE,MAAM,CAAC,MAAM,YAAY,GACvB,2EAA2E;IAC3E,kDAAkD,CAAA;AAEpD,MAAM,UAAU,OAAO,CAAC,KAAa;IACnC,OAAO,KAAK;SACT,WAAW,EAAE;SACb,OAAO,CAAC,aAAa,EAAE,GAAG,CAAC;SAC3B,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC;SACvB,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;AACjB,CAAC"}
1
+ {"version":3,"file":"send.js","sourceRoot":"","sources":["../src/send.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@raidiant/notifai",
3
- "version": "2.0.2",
3
+ "version": "4.0.0",
4
4
  "type": "module",
5
5
  "description": "Send native phone notifications from agents and local programs",
6
6
  "bin": {
@@ -21,7 +21,7 @@
21
21
  },
22
22
  "dependencies": {
23
23
  "@clack/prompts": "^1.7.0",
24
- "@raidiant/notifai-protocol": "0.5.0",
24
+ "@raidiant/notifai-protocol": "1.0.0",
25
25
  "commander": "^14.0.0",
26
26
  "picocolors": "^1.1.1",
27
27
  "smol-toml": "^1.4.0"
@@ -133,6 +133,52 @@ describe('a server that never answers', () => {
133
133
  ])
134
134
  })
135
135
 
136
+ it('finalizes provider metadata before treating a storage upload as usable', async () => {
137
+ const seen: { method?: string; url?: string; authorization?: string; bytes: number }[] = []
138
+ const baseUrl = await serving((request, response) => {
139
+ const chunks: Buffer[] = []
140
+ request.on('data', (chunk) => chunks.push(Buffer.from(chunk)))
141
+ request.on('end', () => {
142
+ seen.push({
143
+ method: request.method,
144
+ url: request.url,
145
+ ...(request.headers.authorization
146
+ ? { authorization: request.headers.authorization }
147
+ : {}),
148
+ bytes: Buffer.concat(chunks).byteLength,
149
+ })
150
+ if (request.method === 'POST') {
151
+ response.setHeader('content-type', 'application/json')
152
+ response.end(JSON.stringify({ media_id: 'med_1', size_bytes: 4, status: 'ready' }))
153
+ } else {
154
+ response.statusCode = 200
155
+ response.end()
156
+ }
157
+ })
158
+ })
159
+ const client = createClient(baseUrl, 'Bearer machine')
160
+
161
+ await client.uploadMedia(
162
+ {
163
+ media_id: 'med_1',
164
+ upload_url: `${baseUrl}/signed-upload`,
165
+ upload_headers: { 'content-type': 'image/png' },
166
+ expires_at: '2026-08-14T12:00:00.000Z',
167
+ },
168
+ new Uint8Array([1, 2, 3, 4]),
169
+ )
170
+
171
+ expect(seen).toEqual([
172
+ { method: 'PUT', url: '/signed-upload', bytes: 4 },
173
+ {
174
+ method: 'POST',
175
+ url: '/api/v1/media/med_1/finalize',
176
+ authorization: 'Bearer machine',
177
+ bytes: 0,
178
+ },
179
+ ])
180
+ })
181
+
136
182
  it('treats a truncated body as a transport failure, not a crash', async () => {
137
183
  // A body that stops mid-JSON used to escape as a raw parse error outside
138
184
  // the retry path, so nothing backed off and retried it.
package/src/client.ts CHANGED
@@ -5,6 +5,7 @@ import type {
5
5
  CapabilityDocument,
6
6
  CreateMediaUploadRequestT,
7
7
  CreateMediaUploadResponse,
8
+ FinalizeMediaUploadResponse,
8
9
  EvidenceSnapshot,
9
10
  GetAgentAcknowledgementResponse,
10
11
  ListDevicesResponse,
@@ -84,6 +85,7 @@ export interface ApiClient {
84
85
  options: { waitSeconds: number },
85
86
  ): Promise<GetAgentAcknowledgementResponse>
86
87
  createMediaUpload(body: CreateMediaUploadRequestT): Promise<CreateMediaUploadResponse>
88
+ finalizeMediaUpload(mediaId: string): Promise<FinalizeMediaUploadResponse>
87
89
  uploadMedia(grant: CreateMediaUploadResponse, bytes: Uint8Array): Promise<void>
88
90
  health(): Promise<boolean>
89
91
  }
@@ -248,6 +250,10 @@ export function createClient(
248
250
  waitSeconds,
249
251
  ),
250
252
  createMediaUpload: (body) => call('POST', '/api/v1/media', body),
253
+ // Storage-observed bytes become authoritative before a send can reference
254
+ // the upload; the caller's declared size is only a request.
255
+ finalizeMediaUpload: (mediaId) =>
256
+ call('POST', `/api/v1/media/${encodeURIComponent(mediaId)}/finalize`),
251
257
  uploadMedia: async (grant, bytes) => {
252
258
  let response: Response
253
259
  try {
@@ -265,6 +271,13 @@ export function createClient(
265
271
  if (!response.ok) {
266
272
  throw new NetworkError(`Upload rejected with status ${response.status}`)
267
273
  }
274
+ // A successful storage PUT is not authorization to reference the media.
275
+ // The idempotent finalize call makes the server inspect provider metadata
276
+ // and commit authoritative quota before the command can use media_id.
277
+ await call<FinalizeMediaUploadResponse>(
278
+ 'POST',
279
+ `/api/v1/media/${encodeURIComponent(grant.media_id)}/finalize`,
280
+ )
268
281
  },
269
282
  health: async () => {
270
283
  try {