@sanity/runtime-cli 15.1.2 → 15.1.3

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 CHANGED
@@ -20,7 +20,7 @@ $ npm install -g @sanity/runtime-cli
20
20
  $ sanity-run COMMAND
21
21
  running command...
22
22
  $ sanity-run (--version)
23
- @sanity/runtime-cli/15.1.2 linux-x64 node-v24.15.0
23
+ @sanity/runtime-cli/15.1.3 linux-x64 node-v24.15.0
24
24
  $ sanity-run --help [COMMAND]
25
25
  USAGE
26
26
  $ sanity-run COMMAND
@@ -103,7 +103,7 @@ EXAMPLES
103
103
  $ sanity-run blueprints add function --name my-function --fn-type document-create --fn-type document-update --lang js
104
104
  ```
105
105
 
106
- _See code: [src/commands/blueprints/add.ts](https://github.com/sanity-io/runtime-cli/blob/v15.1.2/src/commands/blueprints/add.ts)_
106
+ _See code: [src/commands/blueprints/add.ts](https://github.com/sanity-io/runtime-cli/blob/v15.1.3/src/commands/blueprints/add.ts)_
107
107
 
108
108
  ## `sanity-run blueprints config`
109
109
 
@@ -140,7 +140,7 @@ EXAMPLES
140
140
  $ sanity-run blueprints config --edit --project-id <projectId> --stack <name-or-id>
141
141
  ```
142
142
 
143
- _See code: [src/commands/blueprints/config.ts](https://github.com/sanity-io/runtime-cli/blob/v15.1.2/src/commands/blueprints/config.ts)_
143
+ _See code: [src/commands/blueprints/config.ts](https://github.com/sanity-io/runtime-cli/blob/v15.1.3/src/commands/blueprints/config.ts)_
144
144
 
145
145
  ## `sanity-run blueprints deploy`
146
146
 
@@ -191,7 +191,7 @@ EXAMPLES
191
191
  $ sanity-run blueprints deploy --new-stack-name <new-name>
192
192
  ```
193
193
 
194
- _See code: [src/commands/blueprints/deploy.ts](https://github.com/sanity-io/runtime-cli/blob/v15.1.2/src/commands/blueprints/deploy.ts)_
194
+ _See code: [src/commands/blueprints/deploy.ts](https://github.com/sanity-io/runtime-cli/blob/v15.1.3/src/commands/blueprints/deploy.ts)_
195
195
 
196
196
  ## `sanity-run blueprints destroy`
197
197
 
@@ -226,7 +226,7 @@ EXAMPLES
226
226
  $ sanity-run blueprints destroy --stack <name-or-id> --project-id <projectId> --force --no-wait
227
227
  ```
228
228
 
229
- _See code: [src/commands/blueprints/destroy.ts](https://github.com/sanity-io/runtime-cli/blob/v15.1.2/src/commands/blueprints/destroy.ts)_
229
+ _See code: [src/commands/blueprints/destroy.ts](https://github.com/sanity-io/runtime-cli/blob/v15.1.3/src/commands/blueprints/destroy.ts)_
230
230
 
231
231
  ## `sanity-run blueprints doctor`
232
232
 
@@ -257,7 +257,7 @@ EXAMPLES
257
257
  $ sanity-run blueprints doctor --fix
258
258
  ```
259
259
 
260
- _See code: [src/commands/blueprints/doctor.ts](https://github.com/sanity-io/runtime-cli/blob/v15.1.2/src/commands/blueprints/doctor.ts)_
260
+ _See code: [src/commands/blueprints/doctor.ts](https://github.com/sanity-io/runtime-cli/blob/v15.1.3/src/commands/blueprints/doctor.ts)_
261
261
 
262
262
  ## `sanity-run blueprints info`
263
263
 
@@ -294,7 +294,7 @@ EXAMPLES
294
294
  $ sanity-run blueprints info --organization-id <orgId> --stack <name-or-id>
295
295
  ```
296
296
 
297
- _See code: [src/commands/blueprints/info.ts](https://github.com/sanity-io/runtime-cli/blob/v15.1.2/src/commands/blueprints/info.ts)_
297
+ _See code: [src/commands/blueprints/info.ts](https://github.com/sanity-io/runtime-cli/blob/v15.1.3/src/commands/blueprints/info.ts)_
298
298
 
299
299
  ## `sanity-run blueprints init [DIR]`
300
300
 
@@ -353,7 +353,7 @@ EXAMPLES
353
353
  $ sanity-run blueprints init old-stack --type <json|js|ts> --project-id <projectId> --stack-id <existingStackId>
354
354
  ```
355
355
 
356
- _See code: [src/commands/blueprints/init.ts](https://github.com/sanity-io/runtime-cli/blob/v15.1.2/src/commands/blueprints/init.ts)_
356
+ _See code: [src/commands/blueprints/init.ts](https://github.com/sanity-io/runtime-cli/blob/v15.1.3/src/commands/blueprints/init.ts)_
357
357
 
358
358
  ## `sanity-run blueprints logs`
359
359
 
@@ -399,7 +399,7 @@ EXAMPLES
399
399
  $ sanity-run blueprints logs --before 2026-05-01T00:00:00Z
400
400
  ```
401
401
 
402
- _See code: [src/commands/blueprints/logs.ts](https://github.com/sanity-io/runtime-cli/blob/v15.1.2/src/commands/blueprints/logs.ts)_
402
+ _See code: [src/commands/blueprints/logs.ts](https://github.com/sanity-io/runtime-cli/blob/v15.1.3/src/commands/blueprints/logs.ts)_
403
403
 
404
404
  ## `sanity-run blueprints mint-deploy-token`
405
405
 
@@ -444,7 +444,7 @@ EXAMPLES
444
444
  $ sanity-run blueprints mint-deploy-token --organization-id <orgId>
445
445
  ```
446
446
 
447
- _See code: [src/commands/blueprints/mint-deploy-token.ts](https://github.com/sanity-io/runtime-cli/blob/v15.1.2/src/commands/blueprints/mint-deploy-token.ts)_
447
+ _See code: [src/commands/blueprints/mint-deploy-token.ts](https://github.com/sanity-io/runtime-cli/blob/v15.1.3/src/commands/blueprints/mint-deploy-token.ts)_
448
448
 
449
449
  ## `sanity-run blueprints plan`
450
450
 
@@ -477,7 +477,7 @@ EXAMPLES
477
477
  $ sanity-run blueprints plan --organization-id <orgId> --stack <name-or-id>
478
478
  ```
479
479
 
480
- _See code: [src/commands/blueprints/plan.ts](https://github.com/sanity-io/runtime-cli/blob/v15.1.2/src/commands/blueprints/plan.ts)_
480
+ _See code: [src/commands/blueprints/plan.ts](https://github.com/sanity-io/runtime-cli/blob/v15.1.3/src/commands/blueprints/plan.ts)_
481
481
 
482
482
  ## `sanity-run blueprints promote`
483
483
 
@@ -513,7 +513,7 @@ EXAMPLES
513
513
  $ sanity-run blueprints promote --new-stack-name <new-name>
514
514
  ```
515
515
 
516
- _See code: [src/commands/blueprints/promote.ts](https://github.com/sanity-io/runtime-cli/blob/v15.1.2/src/commands/blueprints/promote.ts)_
516
+ _See code: [src/commands/blueprints/promote.ts](https://github.com/sanity-io/runtime-cli/blob/v15.1.3/src/commands/blueprints/promote.ts)_
517
517
 
518
518
  ## `sanity-run blueprints stacks`
519
519
 
@@ -549,7 +549,7 @@ EXAMPLES
549
549
  $ sanity-run blueprints stacks --organization-id <organizationId> --include-projects
550
550
  ```
551
551
 
552
- _See code: [src/commands/blueprints/stacks.ts](https://github.com/sanity-io/runtime-cli/blob/v15.1.2/src/commands/blueprints/stacks.ts)_
552
+ _See code: [src/commands/blueprints/stacks.ts](https://github.com/sanity-io/runtime-cli/blob/v15.1.3/src/commands/blueprints/stacks.ts)_
553
553
 
554
554
  ## `sanity-run functions add`
555
555
 
@@ -601,7 +601,7 @@ EXAMPLES
601
601
  $ sanity-run functions add --name my-function --type document-create --type document-update --lang js
602
602
  ```
603
603
 
604
- _See code: [src/commands/functions/add.ts](https://github.com/sanity-io/runtime-cli/blob/v15.1.2/src/commands/functions/add.ts)_
604
+ _See code: [src/commands/functions/add.ts](https://github.com/sanity-io/runtime-cli/blob/v15.1.3/src/commands/functions/add.ts)_
605
605
 
606
606
  ## `sanity-run functions dev`
607
607
 
@@ -636,7 +636,7 @@ EXAMPLES
636
636
  $ sanity-run functions dev --timeout 60
637
637
  ```
638
638
 
639
- _See code: [src/commands/functions/dev.ts](https://github.com/sanity-io/runtime-cli/blob/v15.1.2/src/commands/functions/dev.ts)_
639
+ _See code: [src/commands/functions/dev.ts](https://github.com/sanity-io/runtime-cli/blob/v15.1.3/src/commands/functions/dev.ts)_
640
640
 
641
641
  ## `sanity-run functions env add NAME KEY VALUE`
642
642
 
@@ -666,7 +666,7 @@ EXAMPLES
666
666
  $ sanity-run functions env add MyFunction API_URL https://api.example.com/
667
667
  ```
668
668
 
669
- _See code: [src/commands/functions/env/add.ts](https://github.com/sanity-io/runtime-cli/blob/v15.1.2/src/commands/functions/env/add.ts)_
669
+ _See code: [src/commands/functions/env/add.ts](https://github.com/sanity-io/runtime-cli/blob/v15.1.3/src/commands/functions/env/add.ts)_
670
670
 
671
671
  ## `sanity-run functions env list NAME`
672
672
 
@@ -693,7 +693,7 @@ EXAMPLES
693
693
  $ sanity-run functions env list MyFunction
694
694
  ```
695
695
 
696
- _See code: [src/commands/functions/env/list.ts](https://github.com/sanity-io/runtime-cli/blob/v15.1.2/src/commands/functions/env/list.ts)_
696
+ _See code: [src/commands/functions/env/list.ts](https://github.com/sanity-io/runtime-cli/blob/v15.1.3/src/commands/functions/env/list.ts)_
697
697
 
698
698
  ## `sanity-run functions env remove NAME KEY`
699
699
 
@@ -722,7 +722,7 @@ EXAMPLES
722
722
  $ sanity-run functions env remove MyFunction API_URL
723
723
  ```
724
724
 
725
- _See code: [src/commands/functions/env/remove.ts](https://github.com/sanity-io/runtime-cli/blob/v15.1.2/src/commands/functions/env/remove.ts)_
725
+ _See code: [src/commands/functions/env/remove.ts](https://github.com/sanity-io/runtime-cli/blob/v15.1.3/src/commands/functions/env/remove.ts)_
726
726
 
727
727
  ## `sanity-run functions logs [NAME]`
728
728
 
@@ -762,7 +762,7 @@ EXAMPLES
762
762
  $ sanity-run functions logs <name> --delete
763
763
  ```
764
764
 
765
- _See code: [src/commands/functions/logs.ts](https://github.com/sanity-io/runtime-cli/blob/v15.1.2/src/commands/functions/logs.ts)_
765
+ _See code: [src/commands/functions/logs.ts](https://github.com/sanity-io/runtime-cli/blob/v15.1.3/src/commands/functions/logs.ts)_
766
766
 
767
767
  ## `sanity-run functions test [NAME]`
768
768
 
@@ -819,7 +819,7 @@ EXAMPLES
819
819
  $ sanity-run functions test <name> --event update --data-before '{ "title": "before" }' --data-after '{ "title": "after" }'
820
820
  ```
821
821
 
822
- _See code: [src/commands/functions/test.ts](https://github.com/sanity-io/runtime-cli/blob/v15.1.2/src/commands/functions/test.ts)_
822
+ _See code: [src/commands/functions/test.ts](https://github.com/sanity-io/runtime-cli/blob/v15.1.3/src/commands/functions/test.ts)_
823
823
 
824
824
  ## `sanity-run help [COMMAND]`
825
825
 
@@ -35,4 +35,15 @@ export declare function createRobotToken({ auth, resourceType, resourceId, body,
35
35
  body: CreateRobotInput;
36
36
  logger: Logger;
37
37
  }): Promise<CreateRobotResponse>;
38
+ export interface CheckUserPermissionResponse extends ActionResponse {
39
+ hasPermission: boolean;
40
+ }
41
+ /** Check whether the token's user holds a specific permission on a project or organization. */
42
+ export declare function checkUserPermission({ auth, resourceType, resourceId, permission, logger, }: {
43
+ auth: AuthParams;
44
+ resourceType: ScopeType;
45
+ resourceId: string;
46
+ permission: string;
47
+ logger: Logger;
48
+ }): Promise<CheckUserPermissionResponse>;
38
49
  export {};
@@ -1,4 +1,4 @@
1
- import config from '../../config.js';
1
+ import config, { RUNTIME_CLI_USER_AGENT } from '../../config.js';
2
2
  import getHeaders from '../../utils/get-headers.js';
3
3
  import { createTracedFetch } from '../../utils/traced-fetch.js';
4
4
  const { apiUrl } = config;
@@ -21,3 +21,27 @@ export async function createRobotToken({ auth, resourceType, resourceId, body, l
21
21
  }
22
22
  return { ok: true, error: null, robot: raw };
23
23
  }
24
+ /** Check whether the token's user holds a specific permission on a project or organization. */
25
+ export async function checkUserPermission({ auth, resourceType, resourceId, permission, logger, }) {
26
+ const fetchFn = createTracedFetch(logger);
27
+ const url = `${accessApiPath}/${resourceType}/${encodeURIComponent(resourceId)}/user-permissions/me/check?permissions=${encodeURIComponent(permission)}`;
28
+ const response = await fetchFn(url, {
29
+ method: 'GET',
30
+ headers: {
31
+ Accept: 'application/json',
32
+ Authorization: `Bearer ${auth.token}`,
33
+ 'User-Agent': RUNTIME_CLI_USER_AGENT,
34
+ },
35
+ });
36
+ const raw = await response.json().catch(() => null);
37
+ const body = (raw && typeof raw === 'object' ? raw : {});
38
+ if (!response.ok) {
39
+ const errMessage = body.message || body.error?.message || response.statusText;
40
+ return { ok: false, error: errMessage, hasPermission: false };
41
+ }
42
+ return {
43
+ ok: true,
44
+ error: null,
45
+ hasPermission: body.data?.[permission] === true,
46
+ };
47
+ }
@@ -61,6 +61,8 @@ Set SANITY_ASSET_TIMEOUT (seconds) to override the 60-second timeout for process
61
61
  });
62
62
  if (!result.success)
63
63
  this.coreError(result);
64
+ if (result.warnings)
65
+ this.renderWarnings(result.warnings);
64
66
  return result.json;
65
67
  }
66
68
  }
package/dist/config.d.ts CHANGED
@@ -1,7 +1,9 @@
1
1
  export declare const BLUEPRINT_CONFIG_VERSION = "v2025-05-08";
2
2
  export declare const BLUEPRINT_CONFIG_DIR = ".sanity";
3
3
  export declare const BLUEPRINT_CONFIG_FILE = "blueprint.config.json";
4
+ export declare const RUNTIME_CLI_NAME = "@sanity/runtime-cli";
4
5
  export declare let RUNTIME_CLI_VERSION: string | undefined;
6
+ export declare const RUNTIME_CLI_USER_AGENT: string;
5
7
  declare const _default: {
6
8
  isTest: boolean;
7
9
  isLive: boolean;
package/dist/config.js CHANGED
@@ -6,17 +6,21 @@ import getToken from './utils/get-token.js';
6
6
  export const BLUEPRINT_CONFIG_VERSION = 'v2025-05-08';
7
7
  export const BLUEPRINT_CONFIG_DIR = '.sanity';
8
8
  export const BLUEPRINT_CONFIG_FILE = 'blueprint.config.json';
9
+ export const RUNTIME_CLI_NAME = '@sanity/runtime-cli';
9
10
  export let RUNTIME_CLI_VERSION;
10
11
  try {
11
12
  const packageJsonPath = pkg.up({ cwd: fileURLToPath(new URL('.', import.meta.url)) });
12
13
  if (packageJsonPath) {
13
14
  const packageJson = JSON.parse(readFileSync(packageJsonPath, 'utf8'));
14
- if (packageJson.name === '@sanity/runtime-cli') {
15
+ if (packageJson.name === RUNTIME_CLI_NAME) {
15
16
  RUNTIME_CLI_VERSION = packageJson.version;
16
17
  }
17
18
  }
18
19
  }
19
20
  catch { }
21
+ export const RUNTIME_CLI_USER_AGENT = RUNTIME_CLI_VERSION
22
+ ? `${RUNTIME_CLI_NAME}@${RUNTIME_CLI_VERSION}`
23
+ : RUNTIME_CLI_NAME;
20
24
  const nodeEnv = env.NODE_ENV?.toLowerCase() ?? 'production';
21
25
  const isTest = nodeEnv === 'test';
22
26
  const sanityEnv = env.SANITY_INTERNAL_ENV?.toLowerCase() ?? 'production';
@@ -2,6 +2,7 @@ import { setTimeout as sleep } from 'node:timers/promises';
2
2
  import { stashAsset } from '../../actions/blueprints/assets.js';
3
3
  import { setupLogPolling } from '../../actions/blueprints/logs-polling.js';
4
4
  import { getStack, updateStack } from '../../actions/blueprints/stacks.js';
5
+ import { checkUserPermission } from '../../actions/sanity/access.js';
5
6
  import { createHintCollector } from '../../utils/blueprints/hints.js';
6
7
  import { niceId } from '../../utils/display/presenters.js';
7
8
  import { styleText } from '../../utils/style-text.js';
@@ -76,13 +77,23 @@ export async function blueprintDeployCore(options) {
76
77
  };
77
78
  }
78
79
  spinner.stop().clear();
80
+ const legacyPermissionsNoticePromise = CHECK_LEGACY_DEPLOY_PERMISSION
81
+ ? checkLegacyDeployPermission({
82
+ auth,
83
+ scopeType,
84
+ scopeId,
85
+ log,
86
+ })
87
+ : Promise.resolve(null);
79
88
  if (noWait) {
80
89
  log(styleText(['bold', 'green'], 'Stack deployment started!'));
81
90
  log(`Use \`npx ${bin} blueprints info\` to check status`);
91
+ const legacyWarning = await legacyPermissionsNoticePromise;
82
92
  return {
83
93
  success: true,
84
94
  json: { stackId: stack.id, resources },
85
95
  data: { resources },
96
+ warnings: legacyWarning ? [legacyWarning] : undefined,
86
97
  };
87
98
  }
88
99
  log(styleText('dim', 'Stack deployment progress:'));
@@ -143,10 +154,12 @@ export async function blueprintDeployCore(options) {
143
154
  logStreamCleanup();
144
155
  log('');
145
156
  log(styleText(['bold', 'green'], 'Stack deployment completed!'));
157
+ const legacyWarning = await legacyPermissionsNoticePromise;
146
158
  return {
147
159
  success: true,
148
160
  json: { stackId: stack.id, resources },
149
161
  data: { resources },
162
+ warnings: legacyWarning ? [legacyWarning] : undefined,
150
163
  };
151
164
  }
152
165
  if (!idleMessageShown && Date.now() - lastLogAt > 60_000) {
@@ -215,3 +228,36 @@ async function preDeploy(resource, options) {
215
228
  fnSpinner.fail(errorMsg);
216
229
  return { success: false, error: result.error || 'Failed to process asset' };
217
230
  }
231
+ const CHECK_LEGACY_DEPLOY_PERMISSION = false;
232
+ const BLUEPRINTS_PERMISSION_ENFORCEMENT_DATE = 'July 1, 2026';
233
+ async function checkLegacyDeployPermission({ auth, scopeType, scopeId, log, }) {
234
+ const requiredPermission = scopeType === 'organization' ? 'sanity.blueprints.deploy' : 'sanity.project.blueprints.deploy';
235
+ try {
236
+ const result = await checkUserPermission({
237
+ auth,
238
+ resourceType: scopeType,
239
+ resourceId: scopeId,
240
+ permission: requiredPermission,
241
+ logger: log,
242
+ });
243
+ if (!result.ok) {
244
+ log.verbose(`Failed to check ${requiredPermission}: ${result.error ?? 'unknown error'}`);
245
+ return null;
246
+ }
247
+ if (result.hasPermission)
248
+ return null;
249
+ return {
250
+ label: 'Legacy deploy permission',
251
+ suggestions: [
252
+ `This deploy used a legacy permission. Starting ${BLUEPRINTS_PERMISSION_ENFORCEMENT_DATE}, deploys will require the "${requiredPermission}" permission.`,
253
+ scopeType === 'project'
254
+ ? 'Ask a project administrator to add you to a role with Blueprint deploy access: Administrator, Developer, or Blueprints Deployer. For CI, use a Blueprints Deployer API token.'
255
+ : 'Ask an organization administrator to grant you the Administrator role. For CI, use a Blueprints Deployer API token created by someone with access to this organization.',
256
+ ],
257
+ };
258
+ }
259
+ catch (err) {
260
+ log.verbose(`Failed to check ${requiredPermission}: ${err instanceof Error ? err.message : String(err)}`);
261
+ return null;
262
+ }
263
+ }
@@ -8,11 +8,15 @@ const GUTTER_LEVEL_WIDTH = 6;
8
8
  function isNewOperation(log, previousLog) {
9
9
  return !!previousLog && log.operationId !== previousLog.operationId;
10
10
  }
11
- function logGutter(log, verbose, previousLog) {
11
+ function isErrorLevel(log) {
12
+ const level = log.level?.toUpperCase();
13
+ return level === 'ERROR' || level === 'FATAL';
14
+ }
15
+ function logGutter(log, useLevel, previousLog) {
12
16
  const operationIsNew = isNewOperation(log, previousLog);
13
17
  const level = log.level.toUpperCase();
14
- const isError = level === 'ERROR' || level === 'FATAL';
15
- if (verbose) {
18
+ const isError = isErrorLevel(log);
19
+ if (useLevel) {
16
20
  const color = isError ? errorStyle : operationIsNew ? newOperationStyle : 'dim';
17
21
  return styleText(color, level.padEnd(GUTTER_LEVEL_WIDTH));
18
22
  }
@@ -49,12 +53,23 @@ export function formatLogEntry(log, verbose = false, previousLog) {
49
53
  const date = new Date(log.timestamp);
50
54
  const time = formatTime(date);
51
55
  const day = formatDate(date);
52
- const gutter = logGutter(log, verbose, previousLog);
56
+ const errorLog = isErrorLevel(log);
57
+ // error/fatal auto-expand details; verbose expands everything
58
+ const showDetails = verbose || errorLog;
59
+ // only verbose swaps the compact gutter for a level label
60
+ const useLevelGutter = verbose;
61
+ const gutter = logGutter(log, useLevelGutter, previousLog);
53
62
  let line = `${day} ${time} ${gutter}${singleLine(log.message)}`;
54
- if (verbose) {
63
+ if (showDetails) {
55
64
  const timestampWidth = `${day} ${time} `.length;
56
- const pad = ' '.repeat(timestampWidth + (verbose ? GUTTER_LEVEL_WIDTH : GUTTER_SYMBOL_WIDTH));
57
- for (const metaLine of formatMetadataLines(log)) {
65
+ const gutterWidth = useLevelGutter ? GUTTER_LEVEL_WIDTH : GUTTER_SYMBOL_WIDTH;
66
+ const pad = ' '.repeat(timestampWidth + gutterWidth);
67
+ const detailLines = formatMetadataLines(log);
68
+ // auto-expanded error/fatal: show the level above the metadata since the gutter is just a symbol
69
+ if (errorLog && !verbose) {
70
+ detailLines.unshift(`${styleText('dim', 'level:')} ${styleText(errorStyle, log.level.toUpperCase())}`);
71
+ }
72
+ for (const metaLine of detailLines) {
58
73
  line += `\n${pad}${metaLine}`;
59
74
  }
60
75
  }
@@ -1,5 +1,4 @@
1
- import pkg from '../../package.json' with { type: 'json' };
2
- const userAgent = `${pkg.name}@${pkg.version}`;
1
+ import { RUNTIME_CLI_USER_AGENT } from '../config.js';
3
2
  export default function getHeaders({ token, scopeId, scopeType }) {
4
3
  return {
5
4
  Accept: 'application/json',
@@ -7,6 +6,6 @@ export default function getHeaders({ token, scopeId, scopeType }) {
7
6
  Authorization: `Bearer ${token}`,
8
7
  'X-Sanity-Scope-Type': scopeType,
9
8
  'X-Sanity-Scope-Id': scopeId,
10
- 'User-Agent': userAgent,
9
+ 'User-Agent': RUNTIME_CLI_USER_AGENT,
11
10
  };
12
11
  }
@@ -2998,5 +2998,5 @@
2998
2998
  ]
2999
2999
  }
3000
3000
  },
3001
- "version": "15.1.2"
3001
+ "version": "15.1.3"
3002
3002
  }
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@sanity/runtime-cli",
3
3
  "description": "Sanity's Runtime CLI for Blueprints and Functions",
4
- "version": "15.1.2",
4
+ "version": "15.1.3",
5
5
  "author": "Sanity Runtime Team",
6
6
  "type": "module",
7
7
  "license": "MIT",