@tiny-fish/cli 0.30.2-next.257 → 0.30.2-next.258

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.
Files changed (77) hide show
  1. package/dist/commands/auth.d.ts +1 -1
  2. package/dist/commands/auth.js +52 -52
  3. package/dist/commands/batch.d.ts +1 -1
  4. package/dist/commands/batch.js +54 -46
  5. package/dist/commands/browser.d.ts +1 -1
  6. package/dist/commands/browser.js +14 -14
  7. package/dist/commands/config-claude.d.ts +1 -1
  8. package/dist/commands/config-claude.js +22 -22
  9. package/dist/commands/connect.d.ts +3 -3
  10. package/dist/commands/connect.js +150 -150
  11. package/dist/commands/doctor.d.ts +4 -4
  12. package/dist/commands/doctor.js +104 -104
  13. package/dist/commands/fetch.d.ts +1 -1
  14. package/dist/commands/fetch.js +24 -27
  15. package/dist/commands/onboard.d.ts +1 -1
  16. package/dist/commands/onboard.js +50 -50
  17. package/dist/commands/profile.d.ts +3 -3
  18. package/dist/commands/profile.js +45 -45
  19. package/dist/commands/run.d.ts +1 -1
  20. package/dist/commands/run.js +78 -65
  21. package/dist/commands/runs.d.ts +1 -1
  22. package/dist/commands/runs.js +63 -50
  23. package/dist/commands/search.d.ts +1 -1
  24. package/dist/commands/search.js +16 -16
  25. package/dist/commands/upgrade.d.ts +2 -2
  26. package/dist/commands/upgrade.js +36 -36
  27. package/dist/commands/vault.d.ts +1 -1
  28. package/dist/commands/vault.js +48 -45
  29. package/dist/commands/wallet.d.ts +1 -1
  30. package/dist/commands/wallet.js +14 -14
  31. package/dist/index.js +2 -2
  32. package/dist/lib/auth.d.ts +5 -5
  33. package/dist/lib/auth.js +56 -56
  34. package/dist/lib/batch-store.d.ts +1 -1
  35. package/dist/lib/batch-store.js +4 -4
  36. package/dist/lib/chrome-cookies.d.ts +1 -1
  37. package/dist/lib/chrome-cookies.js +24 -24
  38. package/dist/lib/claude-config.js +37 -37
  39. package/dist/lib/cli-install.js +12 -12
  40. package/dist/lib/client.d.ts +2 -2
  41. package/dist/lib/client.js +61 -61
  42. package/dist/lib/connect-all.js +140 -134
  43. package/dist/lib/connect-auth.d.ts +2 -2
  44. package/dist/lib/connect-auth.js +15 -15
  45. package/dist/lib/connect-clients.d.ts +6 -6
  46. package/dist/lib/connect-clients.js +143 -143
  47. package/dist/lib/connect-fallback.d.ts +1 -1
  48. package/dist/lib/connect-fallback.js +38 -38
  49. package/dist/lib/connect-picker.d.ts +4 -4
  50. package/dist/lib/connect-picker.js +28 -28
  51. package/dist/lib/connect-runtime.d.ts +7 -7
  52. package/dist/lib/connect-runtime.js +61 -61
  53. package/dist/lib/constants.js +13 -13
  54. package/dist/lib/cursor-config.d.ts +1 -1
  55. package/dist/lib/cursor-config.js +30 -30
  56. package/dist/lib/doctor-report.d.ts +2 -2
  57. package/dist/lib/doctor-report.js +22 -22
  58. package/dist/lib/harness-detect.js +39 -39
  59. package/dist/lib/harness.js +9 -9
  60. package/dist/lib/hermes-env.js +26 -23
  61. package/dist/lib/install-root.js +12 -12
  62. package/dist/lib/notice.d.ts +1 -1
  63. package/dist/lib/notice.js +12 -12
  64. package/dist/lib/output.js +14 -14
  65. package/dist/lib/registration-detect.d.ts +3 -3
  66. package/dist/lib/registration-detect.js +82 -82
  67. package/dist/lib/setup-telemetry.d.ts +4 -4
  68. package/dist/lib/setup-telemetry.js +34 -34
  69. package/dist/lib/signals.js +1 -1
  70. package/dist/lib/skill-install.d.ts +3 -3
  71. package/dist/lib/skill-install.js +40 -40
  72. package/dist/lib/types.d.ts +8 -8
  73. package/dist/lib/verify.d.ts +1 -1
  74. package/dist/lib/verify.js +28 -28
  75. package/dist/program.d.ts +1 -1
  76. package/dist/program.js +28 -28
  77. package/package.json +1 -1
@@ -1,5 +1,5 @@
1
- import { type AgentRunAsyncResponse, type AgentRunResponse, type AgentRunWithStreamingResponse, type FetchGetContentsParams, type FetchResponse, type BrowserSession, type Run, type RunListParams, type RunListResponse, type SearchQueryParams, type SearchQueryResponse, type WalletResponse } from "@tiny-fish/sdk";
2
- import type { BatchCancelResponse, BatchGetResponse, BatchRunRequest, BatchRunResponse, CancelRunResponse, CliAgentRunParams, CliBrowserSessionCreateParams, CookieRecord, ProfileCreateResponse, ProfileUploadResponse, RunStepsResponse, VaultConnectRequest, VaultConnectResponse, VaultConnectionsListResponse, VaultDisconnectResponse, VaultItemsListResponse, VaultItemsSyncResponse } from "./types.js";
1
+ import { type AgentRunAsyncResponse, type AgentRunResponse, type AgentRunWithStreamingResponse, type FetchGetContentsParams, type FetchResponse, type BrowserSession, type Run, type RunListParams, type RunListResponse, type SearchQueryParams, type SearchQueryResponse, type WalletResponse } from '@tiny-fish/sdk';
2
+ import type { BatchCancelResponse, BatchGetResponse, BatchRunRequest, BatchRunResponse, CancelRunResponse, CliAgentRunParams, CliBrowserSessionCreateParams, CookieRecord, ProfileCreateResponse, ProfileUploadResponse, RunStepsResponse, VaultConnectRequest, VaultConnectResponse, VaultConnectionsListResponse, VaultDisconnectResponse, VaultItemsListResponse, VaultItemsSyncResponse } from './types.js';
3
3
  type ConnectMap = Record<string, {
4
4
  attempt_id: string;
5
5
  }> | undefined;
@@ -1,10 +1,10 @@
1
- import { APIStatusError, agentRunAsyncResponseSchema, agentRunResponseSchema, agentRunWithStreamingResponseSchema, fetchResponseSchema, browserSessionSchema, searchQueryResponseSchema, TinyFish, runSchema, runStatusSchema, } from "@tiny-fish/sdk";
2
- import { CONNECT_SOURCE, loadConfig } from "./auth.js";
3
- import { API_URL_OVERRIDE, CLI_AGENT_IDENTITY, CLI_VERSION } from "./constants.js";
4
- import { detectHarness, detectHumanInitiated } from "./harness.js";
5
- import { captureNotice } from "./notice.js";
6
- import { ApiError } from "./output.js";
7
- import { z } from "zod";
1
+ import { APIStatusError, agentRunAsyncResponseSchema, agentRunResponseSchema, agentRunWithStreamingResponseSchema, fetchResponseSchema, browserSessionSchema, searchQueryResponseSchema, TinyFish, runSchema, runStatusSchema, } from '@tiny-fish/sdk';
2
+ import { CONNECT_SOURCE, loadConfig } from './auth.js';
3
+ import { API_URL_OVERRIDE, CLI_AGENT_IDENTITY, CLI_VERSION } from './constants.js';
4
+ import { detectHarness, detectHumanInitiated } from './harness.js';
5
+ import { captureNotice } from './notice.js';
6
+ import { ApiError } from './output.js';
7
+ import { z } from 'zod';
8
8
  // Install-level connect context (PF-3169). A known caller is credited only to its own
9
9
  // install; under an unknown caller we credit a lone install, else send source only.
10
10
  // Never guess a client. Request-level harness truth is client_name (PF-3168).
@@ -20,13 +20,13 @@ export function buildConnectHeaders(connect, caller) {
20
20
  }
21
21
  if (clients.length === 1)
22
22
  return connectHeadersFor(clients[0], connect[clients[0]].attempt_id);
23
- return { "X-TF-Connect-Source": CONNECT_SOURCE };
23
+ return { 'X-TF-Connect-Source': CONNECT_SOURCE };
24
24
  }
25
25
  function connectHeadersFor(client, attemptId) {
26
26
  return {
27
- "X-TF-Connect-Source": CONNECT_SOURCE,
28
- "X-TF-Connect-Client": client,
29
- "X-TF-Connect-Attempt-Id": attemptId,
27
+ 'X-TF-Connect-Source': CONNECT_SOURCE,
28
+ 'X-TF-Connect-Client': client,
29
+ 'X-TF-Connect-Attempt-Id': attemptId,
30
30
  };
31
31
  }
32
32
  class TinyFishCliClient extends TinyFish {
@@ -34,28 +34,28 @@ class TinyFishCliClient extends TinyFish {
34
34
  const base = super._buildHeaders();
35
35
  const headers = {
36
36
  ...base,
37
- "X-TF-Request-Origin": CLI_AGENT_IDENTITY,
38
- "User-Agent": `${base["User-Agent"] ?? ""} @tiny-fish/cli/${CLI_VERSION}`.trim(),
37
+ 'X-TF-Request-Origin': CLI_AGENT_IDENTITY,
38
+ 'User-Agent': `${base['User-Agent'] ?? ''} @tiny-fish/cli/${CLI_VERSION}`.trim(),
39
39
  };
40
40
  // Forwarded explicitly: the pinned published SDK may predate TF_CLIENT_* support.
41
41
  // Non-printable chars make fetch throw; 128 is the server cap (client_name varchar(128)).
42
- const sanitize = (value) => (value ?? "")
43
- .replace(/[^\x20-\x7E]/g, "")
42
+ const sanitize = (value) => (value ?? '')
43
+ .replace(/[^\x20-\x7E]/g, '')
44
44
  .trim()
45
45
  .slice(0, 128);
46
46
  // An explicit TF_CLIENT_NAME always wins over auto-detection, preserving the
47
47
  // env-var forwarding contract added in PR #3781; otherwise fingerprint the
48
48
  // calling harness so cli usage can be split by client (PF-3168).
49
- const clientName = sanitize(process.env["TF_CLIENT_NAME"]) || sanitize(detectHarness() ?? undefined);
50
- const clientVersion = sanitize(process.env["TF_CLIENT_VERSION"]);
49
+ const clientName = sanitize(process.env['TF_CLIENT_NAME']) || sanitize(detectHarness() ?? undefined);
50
+ const clientVersion = sanitize(process.env['TF_CLIENT_VERSION']);
51
51
  if (clientName)
52
- headers["X-TF-Client-Name"] = clientName;
52
+ headers['X-TF-Client-Name'] = clientName;
53
53
  if (clientVersion)
54
- headers["X-TF-Client-Version"] = clientVersion;
54
+ headers['X-TF-Client-Version'] = clientVersion;
55
55
  // Agent-vs-human signal, independent of harness detection or skill install.
56
- headers["X-TF-Human-Initiated"] = detectHumanInitiated() ? "true" : "false";
57
- if (process.env["TF_SETUP_VERIFICATION"] === "1") {
58
- headers["X-TF-Setup-Verification"] = "true";
56
+ headers['X-TF-Human-Initiated'] = detectHumanInitiated() ? 'true' : 'false';
57
+ if (process.env['TF_SETUP_VERIFICATION'] === '1') {
58
+ headers['X-TF-Setup-Verification'] = 'true';
59
59
  }
60
60
  // Reuse the already-resolved client_name so connect_client can never diverge from it
61
61
  // (same sanitize + precedence, not a second raw read of TF_CLIENT_NAME).
@@ -73,7 +73,7 @@ class TinyFishCliClient extends TinyFish {
73
73
  // routes appear.
74
74
  async del(path) {
75
75
  const response = await fetch(`${this.baseURL}${path}`, {
76
- method: "DELETE",
76
+ method: 'DELETE',
77
77
  headers: this._buildHeaders(),
78
78
  });
79
79
  captureNotice(response.headers);
@@ -166,27 +166,27 @@ function parseWithSchema(schema, value, message) {
166
166
  return result.data;
167
167
  }
168
168
  function normalizeStreamEvent(event) {
169
- if (typeof event !== "object" ||
169
+ if (typeof event !== 'object' ||
170
170
  event === null ||
171
- event.type !== "COMPLETE") {
171
+ event.type !== 'COMPLETE') {
172
172
  return event;
173
173
  }
174
174
  const data = event;
175
175
  return {
176
176
  ...data,
177
- result: typeof data["result"] === "object" && data["result"] !== null ? data["result"] : null,
178
- error: typeof data["error"] === "object" && data["error"] !== null ? data["error"] : null,
177
+ result: typeof data['result'] === 'object' && data['result'] !== null ? data['result'] : null,
178
+ error: typeof data['error'] === 'object' && data['error'] !== null ? data['error'] : null,
179
179
  };
180
180
  }
181
181
  async function* parseSseStream(stream) {
182
182
  const reader = stream.getReader();
183
- let buffer = "";
183
+ let buffer = '';
184
184
  const parseLine = (rawLine) => {
185
185
  const line = rawLine.trim();
186
- if (!line || line.startsWith(":") || !line.startsWith("data:"))
186
+ if (!line || line.startsWith(':') || !line.startsWith('data:'))
187
187
  return undefined;
188
188
  try {
189
- return JSON.parse(line.slice("data:".length).trim());
189
+ return JSON.parse(line.slice('data:'.length).trim());
190
190
  }
191
191
  catch {
192
192
  return undefined;
@@ -198,8 +198,8 @@ async function* parseSseStream(stream) {
198
198
  if (done)
199
199
  break;
200
200
  buffer += value;
201
- const lines = buffer.split("\n");
202
- buffer = lines.pop() ?? "";
201
+ const lines = buffer.split('\n');
202
+ buffer = lines.pop() ?? '';
203
203
  for (const rawLine of lines) {
204
204
  const event = parseLine(rawLine);
205
205
  if (event !== undefined)
@@ -216,10 +216,10 @@ async function* parseSseStream(stream) {
216
216
  }
217
217
  export async function runSync(req, apiKey) {
218
218
  try {
219
- const response = await createSdkClient(apiKey).post("/v1/automation/run", {
219
+ const response = await createSdkClient(apiKey).post('/v1/automation/run', {
220
220
  json: req,
221
221
  });
222
- return parseWithSchema(agentRunResponseSchema, response, "Invalid agent run response");
222
+ return parseWithSchema(agentRunResponseSchema, response, 'Invalid agent run response');
223
223
  }
224
224
  catch (error) {
225
225
  rethrowSdkError(error);
@@ -227,10 +227,10 @@ export async function runSync(req, apiKey) {
227
227
  }
228
228
  export async function runAsync(req, apiKey) {
229
229
  try {
230
- const response = await createSdkClient(apiKey).post("/v1/automation/run-async", {
230
+ const response = await createSdkClient(apiKey).post('/v1/automation/run-async', {
231
231
  json: req,
232
232
  });
233
- return parseWithSchema(agentRunAsyncResponseSchema, response, "Invalid async run response");
233
+ return parseWithSchema(agentRunAsyncResponseSchema, response, 'Invalid async run response');
234
234
  }
235
235
  catch (error) {
236
236
  rethrowSdkError(error);
@@ -239,7 +239,7 @@ export async function runAsync(req, apiKey) {
239
239
  export async function* runStream(req, apiKey, signal) {
240
240
  let stream = null;
241
241
  try {
242
- stream = await createSdkClient(apiKey).postStream("/v1/automation/run-sse", {
242
+ stream = await createSdkClient(apiKey).postStream('/v1/automation/run-sse', {
243
243
  json: req,
244
244
  signal,
245
245
  });
@@ -283,8 +283,8 @@ export async function getRunSteps(runId, apiKey) {
283
283
  try {
284
284
  // The public GET /v1/runs/:id route returns the base run payload plus `steps`;
285
285
  // the installed SDK runSchema only models the base run, so steps need this local schema.
286
- const response = await createSdkClient(apiKey).get(`/v1/runs/${encodeURIComponent(runId)}`, { params: { screenshots: "none" } });
287
- return parseWithSchema(runStepsResponseSchema, response, "Invalid run steps response");
286
+ const response = await createSdkClient(apiKey).get(`/v1/runs/${encodeURIComponent(runId)}`, { params: { screenshots: 'none' } });
287
+ return parseWithSchema(runStepsResponseSchema, response, 'Invalid run steps response');
288
288
  }
289
289
  catch (error) {
290
290
  rethrowSdkError(error);
@@ -310,7 +310,7 @@ export async function fetchContentGet(params, apiKey) {
310
310
  }
311
311
  export async function browserSessionCreate(params, apiKey) {
312
312
  try {
313
- const response = await createSdkClient(apiKey).post("/v1/browser", { json: params });
313
+ const response = await createSdkClient(apiKey).post('/v1/browser', { json: params });
314
314
  return browserSessionSchema.parse(response);
315
315
  }
316
316
  catch (error) {
@@ -320,7 +320,7 @@ export async function browserSessionCreate(params, apiKey) {
320
320
  export async function cancelRun(runId, apiKey) {
321
321
  try {
322
322
  const response = await createSdkClient(apiKey).post(`/v1/runs/${encodeURIComponent(runId)}/cancel`, { json: {} });
323
- return parseWithSchema(cancelRunResponseSchema, response, "Invalid cancel run response");
323
+ return parseWithSchema(cancelRunResponseSchema, response, 'Invalid cancel run response');
324
324
  }
325
325
  catch (error) {
326
326
  rethrowSdkError(error);
@@ -337,10 +337,10 @@ export async function getWallet(apiKey) {
337
337
  }
338
338
  export async function submitBatch(req, apiKey) {
339
339
  try {
340
- const response = await createSdkClient(apiKey).post("/v1/automation/run-batch", {
340
+ const response = await createSdkClient(apiKey).post('/v1/automation/run-batch', {
341
341
  json: req,
342
342
  });
343
- return parseWithSchema(batchRunResponseSchema, response, "Invalid batch run response");
343
+ return parseWithSchema(batchRunResponseSchema, response, 'Invalid batch run response');
344
344
  }
345
345
  catch (error) {
346
346
  rethrowSdkError(error);
@@ -348,10 +348,10 @@ export async function submitBatch(req, apiKey) {
348
348
  }
349
349
  export async function getBatchRuns(runIds, apiKey) {
350
350
  try {
351
- const response = await createSdkClient(apiKey).post("/v1/runs/batch", {
351
+ const response = await createSdkClient(apiKey).post('/v1/runs/batch', {
352
352
  json: { run_ids: runIds },
353
353
  });
354
- return parseWithSchema(batchGetResponseSchema, response, "Invalid batch get response");
354
+ return parseWithSchema(batchGetResponseSchema, response, 'Invalid batch get response');
355
355
  }
356
356
  catch (error) {
357
357
  rethrowSdkError(error);
@@ -359,10 +359,10 @@ export async function getBatchRuns(runIds, apiKey) {
359
359
  }
360
360
  export async function cancelBatchRuns(runIds, apiKey) {
361
361
  try {
362
- const response = await createSdkClient(apiKey).post("/v1/runs/batch/cancel", {
362
+ const response = await createSdkClient(apiKey).post('/v1/runs/batch/cancel', {
363
363
  json: { run_ids: runIds },
364
364
  });
365
- return parseWithSchema(batchCancelResponseSchema, response, "Invalid batch cancel response");
365
+ return parseWithSchema(batchCancelResponseSchema, response, 'Invalid batch cancel response');
366
366
  }
367
367
  catch (error) {
368
368
  rethrowSdkError(error);
@@ -381,10 +381,10 @@ const profileUploadResponseSchema = z.object({
381
381
  });
382
382
  export async function profileCreate(name, apiKey) {
383
383
  try {
384
- const response = await createSdkClient(apiKey).post("/v1/profiles", {
384
+ const response = await createSdkClient(apiKey).post('/v1/profiles', {
385
385
  json: { name },
386
386
  });
387
- return parseWithSchema(profileCreateResponseSchema, response, "Invalid profile create response");
387
+ return parseWithSchema(profileCreateResponseSchema, response, 'Invalid profile create response');
388
388
  }
389
389
  catch (error) {
390
390
  rethrowSdkError(error);
@@ -393,7 +393,7 @@ export async function profileCreate(name, apiKey) {
393
393
  export async function profileUpload(profileId, cookies, apiKey) {
394
394
  try {
395
395
  const response = await createSdkClient(apiKey).post(`/v1/profiles/${encodeURIComponent(profileId)}/upload`, { json: { cookies } });
396
- return parseWithSchema(profileUploadResponseSchema, response, "Invalid profile upload response");
396
+ return parseWithSchema(profileUploadResponseSchema, response, 'Invalid profile upload response');
397
397
  }
398
398
  catch (error) {
399
399
  rethrowSdkError(error);
@@ -401,11 +401,11 @@ export async function profileUpload(profileId, cookies, apiKey) {
401
401
  }
402
402
  // ── Vault ───────────────────────────────────────────────────────────────────
403
403
  // /v1/vault/* returns camelCase fields (unlike the snake_case rest of the API).
404
- const vaultProviderSchema = z.enum(["1password", "bitwarden"]);
404
+ const vaultProviderSchema = z.enum(['1password', 'bitwarden']);
405
405
  const vaultFieldMetadataSchema = z.object({
406
406
  fieldId: z.string(),
407
407
  label: z.string(),
408
- type: z.enum(["STRING", "CONCEALED", "OTP"]),
408
+ type: z.enum(['STRING', 'CONCEALED', 'OTP']),
409
409
  });
410
410
  const vaultItemSchema = z.object({
411
411
  itemId: z.string(),
@@ -448,8 +448,8 @@ const vaultItemsSyncResponseSchema = z.object({
448
448
  });
449
449
  export async function vaultConnections(apiKey) {
450
450
  try {
451
- const response = await createSdkClient(apiKey).get("/v1/vault/connections");
452
- return parseWithSchema(vaultConnectionsListResponseSchema, response, "Invalid vault connections response");
451
+ const response = await createSdkClient(apiKey).get('/v1/vault/connections');
452
+ return parseWithSchema(vaultConnectionsListResponseSchema, response, 'Invalid vault connections response');
453
453
  }
454
454
  catch (error) {
455
455
  rethrowSdkError(error);
@@ -457,10 +457,10 @@ export async function vaultConnections(apiKey) {
457
457
  }
458
458
  export async function vaultConnect(req, apiKey) {
459
459
  try {
460
- const response = await createSdkClient(apiKey).post("/v1/vault/connections", {
460
+ const response = await createSdkClient(apiKey).post('/v1/vault/connections', {
461
461
  json: req,
462
462
  });
463
- return parseWithSchema(vaultConnectResponseSchema, response, "Invalid vault connect response");
463
+ return parseWithSchema(vaultConnectResponseSchema, response, 'Invalid vault connect response');
464
464
  }
465
465
  catch (error) {
466
466
  rethrowSdkError(error);
@@ -469,7 +469,7 @@ export async function vaultConnect(req, apiKey) {
469
469
  export async function vaultDisconnect(connectionId, apiKey) {
470
470
  try {
471
471
  const response = await createSdkClient(apiKey).del(`/v1/vault/connections/${encodeURIComponent(connectionId)}`);
472
- return parseWithSchema(vaultDisconnectResponseSchema, response, "Invalid vault disconnect response");
472
+ return parseWithSchema(vaultDisconnectResponseSchema, response, 'Invalid vault disconnect response');
473
473
  }
474
474
  catch (error) {
475
475
  rethrowSdkError(error);
@@ -477,8 +477,8 @@ export async function vaultDisconnect(connectionId, apiKey) {
477
477
  }
478
478
  export async function vaultItems(apiKey) {
479
479
  try {
480
- const response = await createSdkClient(apiKey).get("/v1/vault/items");
481
- return parseWithSchema(vaultItemsListResponseSchema, response, "Invalid vault items response");
480
+ const response = await createSdkClient(apiKey).get('/v1/vault/items');
481
+ return parseWithSchema(vaultItemsListResponseSchema, response, 'Invalid vault items response');
482
482
  }
483
483
  catch (error) {
484
484
  rethrowSdkError(error);
@@ -486,10 +486,10 @@ export async function vaultItems(apiKey) {
486
486
  }
487
487
  export async function vaultSync(apiKey) {
488
488
  try {
489
- const response = await createSdkClient(apiKey).post("/v1/vault/items/sync", {
489
+ const response = await createSdkClient(apiKey).post('/v1/vault/items/sync', {
490
490
  json: {},
491
491
  });
492
- return parseWithSchema(vaultItemsSyncResponseSchema, response, "Invalid vault sync response");
492
+ return parseWithSchema(vaultItemsSyncResponseSchema, response, 'Invalid vault sync response');
493
493
  }
494
494
  catch (error) {
495
495
  rethrowSdkError(error);