@redocly/replay 0.31.0-next.3 → 0.31.0-next.5

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 (70) hide show
  1. package/dist/{replay-AiChatProvider-Cuo8x0ff.js → replay-AiChatProvider-DF95dPI4.js} +6 -6
  2. package/dist/{replay-AiChatSqliteDBStorage-Cj4xkdFz.js → replay-AiChatSqliteDBStorage-DFai0iTB.js} +1 -1
  3. package/dist/{replay-AiPanel-Dm_sNNeL.js → replay-AiPanel-DWJrryHB.js} +26 -31
  4. package/dist/{replay-FileWatcher-0Bmib4dK.js → replay-FileWatcher-DhpdT_VS.js} +2 -2
  5. package/dist/{replay-SemanticSearchService-D4YjQR5-.js → replay-SemanticSearchService-C9AkUyVE.js} +1 -1
  6. package/dist/{replay-SqliteDBStorage-snMqhV35.js → replay-SqliteDBStorage-DT9_LMLs.js} +1 -1
  7. package/dist/{replay-TauriFileSystemAdapter-bAK0DIvp.js → replay-TauriFileSystemAdapter-C16TSOZg.js} +1 -1
  8. package/dist/{replay-TauriRootStorage-DAYZ414x.js → replay-TauriRootStorage-BNacv6Qu.js} +2 -2
  9. package/dist/{replay-agent-loop-qyzKV3mo.js → replay-agent-loop-Om_DXb5S.js} +3 -3
  10. package/dist/{replay-ai-chat-mappers-BAe0oFmS.js → replay-ai-chat-mappers-T6Rn74yZ.js} +1 -1
  11. package/dist/{replay-create-model-BEoVz7Ji.js → replay-create-model-CWTiZi7t.js} +16108 -17055
  12. package/dist/{replay-db-DMKqL3h6.js → replay-db-DGrxiWzT.js} +1 -1
  13. package/dist/{replay-external-resolver-DCN1lkbA.js → replay-external-resolver-1QWjOOVR.js} +2 -2
  14. package/dist/{replay-index-BvZDjF45.js → replay-index-BZZ4OP90.js} +1 -1
  15. package/dist/replay-index-CEqxKoBH.js +4 -0
  16. package/dist/{replay-index-Bo3TEqX0.js → replay-index-CTTaOYRK.js} +1 -1
  17. package/dist/{replay-index-BHjBRyB3.js → replay-index-CiOV_Ucc.js} +23399 -22851
  18. package/dist/{replay-index-DZ1tkFgq.js → replay-index-DF2XA7Wl.js} +1 -1
  19. package/dist/replay-index-DVf85Dg1.js +917 -0
  20. package/dist/{replay-lint-T24IsDM8.js → replay-lint-B6TsU9Uq.js} +7560 -6763
  21. package/dist/{replay-lint-graphql-CZtMsHz-.js → replay-lint-graphql-CmPzfY7b.js} +2 -2
  22. package/dist/{replay-periodic-revalidation-BHLdYOFw.js → replay-periodic-revalidation-B77h_-F6.js} +1 -1
  23. package/dist/{replay-resolve-DIE-MBAc.js → replay-resolve-9K6-oXdr.js} +886 -866
  24. package/dist/{replay-respect-run-50PYi6j2.js → replay-respect-run-Cpt4Fgtq.js} +1844 -1790
  25. package/dist/{replay-tauri-path-CKxG25k9.js → replay-tauri-path-wnkmhbG_.js} +2 -2
  26. package/dist/{replay-useAiChatQueries-mMfaDZ5s.js → replay-useAiChatQueries-CTLNVgPv.js} +83 -81
  27. package/dist/{replay-validate-key-taJ0a7Z_.js → replay-validate-key-C5YTZaNy.js} +2 -2
  28. package/dist/replay.js +1 -1
  29. package/package.json +8 -9
  30. package/dist/oauth2-redirect.cjs +0 -1
  31. package/dist/replay-AiChatProvider-iPTdlp7T.js +0 -6
  32. package/dist/replay-AiChatSqliteDBStorage-BAUsAhPY.js +0 -1
  33. package/dist/replay-AiPanel-Bn2z_RC-.js +0 -741
  34. package/dist/replay-FileWatcher-CSNd_juo.js +0 -1
  35. package/dist/replay-HistorySqliteDBStorage-BrILW8Fu.js +0 -1
  36. package/dist/replay-Observable-bjJ6wkRB.js +0 -1
  37. package/dist/replay-SemanticSearchService-DdDe4QRB.js +0 -1
  38. package/dist/replay-SqliteDBStorage-C81Ns5uk.js +0 -14
  39. package/dist/replay-StepContextSqliteDBStorage-BSepLyBI.js +0 -1
  40. package/dist/replay-TauriFileSystemAdapter-IgI3iLBq.js +0 -1
  41. package/dist/replay-TauriRootStorage-Ck5_FUc2.js +0 -1
  42. package/dist/replay-agent-loop-MetNOO5W.js +0 -1
  43. package/dist/replay-ai-chat-mappers-BZ4yaQTm.js +0 -1
  44. package/dist/replay-ai-message-parts.schema-BBdjwldJ.js +0 -1
  45. package/dist/replay-create-model-Bv2837Bc.js +0 -104
  46. package/dist/replay-db-C5FJ_vSh.js +0 -64
  47. package/dist/replay-defaults-DVvOnvnR.js +0 -27
  48. package/dist/replay-external-resolver-BdagmP7Q.js +0 -2
  49. package/dist/replay-history.schema-miM3Etuf.js +0 -1
  50. package/dist/replay-index-0Yt7t6Z2.js +0 -577
  51. package/dist/replay-index-B5BMRDgs.js +0 -1
  52. package/dist/replay-index-BUx40Nkf.js +0 -1
  53. package/dist/replay-index-C5rpe6OU.js +0 -4
  54. package/dist/replay-index-D8rrXWx9.js +0 -1
  55. package/dist/replay-index-DBkr5-ap.js +0 -7438
  56. package/dist/replay-index-Qup2K90F.js +0 -1
  57. package/dist/replay-index-Y0OU8J0E.js +0 -1
  58. package/dist/replay-indexes-Dqjl8m6C.js +0 -1
  59. package/dist/replay-lint-B3RgfCeS.js +0 -130
  60. package/dist/replay-lint-graphql-DekIfP8E.js +0 -1
  61. package/dist/replay-oauth2-redirect-handler-BfZRvm6l.js +0 -4
  62. package/dist/replay-periodic-revalidation-D3-joAo0.js +0 -1
  63. package/dist/replay-promise-map-limit-DDfN3Ygo.js +0 -1
  64. package/dist/replay-resolve-o5oxpXCI.js +0 -53
  65. package/dist/replay-respect-run-CYC3kgFU.js +0 -73
  66. package/dist/replay-step-context.schema-BuuXkAck.js +0 -1
  67. package/dist/replay-tauri-path-CXjp0Fsn.js +0 -1
  68. package/dist/replay-useAiChatQueries-BavVwZlq.js +0 -215
  69. package/dist/replay-validate-key-Bk5lGsX4.js +0 -1
  70. package/dist/replay.cjs +0 -1
@@ -1,5 +1,5 @@
1
- import { k as h, s as x, l as i } from "./replay-index-BHjBRyB3.js";
2
- import { n as j, o as b, j as k } from "./replay-index-BHjBRyB3.js";
1
+ import { k as h, s as x, l as i } from "./replay-index-CiOV_Ucc.js";
2
+ import { n as j, o as b, j as k } from "./replay-index-CiOV_Ucc.js";
3
3
  async function u(a, e) {
4
4
  const t = x(), l = await i(a), c = await i(e), o = l.replace(new RegExp(`^${t}+`), "").split(t).filter(Boolean), s = c.replace(new RegExp(`^${t}+`), "").split(t).filter(Boolean), m = Math.min(o.length, s.length);
5
5
  let r = 0;
@@ -1,8 +1,8 @@
1
1
  import { useContext as zt, createContext as Ht } from "react";
2
- import { R as Gt, A as be, aR as se, aS as Vt, aT as Kt, aU as Jt, ac as x, a as ue, aH as Y, aV as pt, aW as Oe, aG as Ae, aX as ft, aY as pe, aZ as ee, c as b, a_ as Qt, an as G, al as V, a$ as mt, b0 as fe, am as Ee, b1 as Xt, b2 as Zt, b3 as eo, b4 as to, b5 as oo, b6 as no, b7 as ro, af as K, b8 as so, ag as te, aa as ao, b9 as io, ba as co, bb as ht, bc as wt, bd as lo, be as It, bf as yt, bg as uo, ai as J, bh as po, ab as vt, bi as $e, aB as gt, bj as fo, bk as mo, bl as Me, F as k, bm as Fe, bn as ho, bo as Be, bp as wo, bq as Io, br as yo, a9 as bt, a8 as kt } from "./replay-index-BHjBRyB3.js";
3
- import { b as C, f as St, a as Tt, c as Ct, d as me, e as Ot, i as je, h as xe, R as z, j as vo, k as go, p as bo, s as Ye, l as ko } from "./replay-db-DMKqL3h6.js";
4
- import { b as So, o as To, d as Co, e as p, u as he, f as c, h as R, j as E, n as A, k as j, m as w, q as T, r as _e, t as oe, v as we, Z as H, w as Oo, x as ze, c as Ao, s as Eo, y as $o } from "./replay-create-model-BEoVz7Ji.js";
5
- import { g as xo, e as He, a as _o, b as Ro, c as Ge, d as Po, f as qo } from "./replay-SemanticSearchService-D4YjQR5-.js";
2
+ import { R as Gt, A as be, aR as se, aS as Vt, aT as Kt, aU as Jt, ac as x, a as ue, aH as Y, aV as pt, aW as Oe, aG as Ae, aX as ft, aY as pe, aZ as ee, c as b, a_ as Qt, an as G, al as V, a$ as mt, b0 as fe, am as Ee, b1 as Xt, b2 as Zt, b3 as eo, b4 as to, b5 as oo, b6 as no, b7 as ro, af as K, b8 as so, ag as te, aa as ao, b9 as io, ba as co, bb as ht, bc as wt, bd as lo, be as It, bf as yt, bg as uo, ai as J, bh as po, ab as vt, bi as $e, aB as gt, bj as fo, bk as mo, bl as Me, F as k, bm as Fe, bn as ho, bo as Be, bp as wo, bq as Io, br as yo, a9 as bt, a8 as kt } from "./replay-index-CiOV_Ucc.js";
3
+ import { b as T, f as St, a as Ct, c as Tt, d as me, e as Ot, i as je, h as xe, R as z, j as vo, k as go, p as bo, s as Ye, l as ko } from "./replay-db-DGrxiWzT.js";
4
+ import { b as So, o as Co, d as To, e as p, u as he, f as c, h as R, _ as E, n as A, j, k as w, m as C, q as _e, r as oe, t as we, v as Oo, w as ze, c as Ao, s as Eo, x as $o } from "./replay-create-model-CWTiZi7t.js";
5
+ import { g as xo, e as He, a as _o, b as Ro, c as Ge, d as Po, f as qo } from "./replay-SemanticSearchService-C9AkUyVE.js";
6
6
  import { useInfiniteQuery as No, useQuery as Uo } from "@tanstack/react-query";
7
7
  const ae = {
8
8
  path: "pathParameters",
@@ -40,18 +40,20 @@ const ae = {
40
40
  }, uc = {
41
41
  CHAT: "chat",
42
42
  HISTORY: "history"
43
- }, Do = "report_status", Wo = "run_workflow", ne = {
43
+ }, Do = "report_status", Wo = "run_workflow", H = {
44
+ custom: "custom"
45
+ }, ne = {
44
46
  WEB_SEARCH: "web_search"
45
47
  };
46
48
  function Lo(e) {
47
49
  switch (e.provider) {
48
50
  case be.GEMINI:
49
51
  return {
50
- [ne.WEB_SEARCH]: Co.tools.googleSearch({})
52
+ [ne.WEB_SEARCH]: To.tools.googleSearch({})
51
53
  };
52
54
  case be.OPENAI:
53
55
  return {
54
- [ne.WEB_SEARCH]: To.tools.webSearch({})
56
+ [ne.WEB_SEARCH]: Co.tools.webSearch({})
55
57
  };
56
58
  case be.ANTHROPIC:
57
59
  return {
@@ -73,7 +75,7 @@ function Lo(e) {
73
75
  const Mo = ["info", "workflows", "sourceDescriptions"];
74
76
  function Fo(e) {
75
77
  const t = [];
76
- return e.collectionId && t.push(`Collection ID: ${e.collectionId}`), e.collection?.info?.title && t.push(`Title: ${e.collection.info.title}`), e.collection?.info?.summary && t.push(`Summary: ${e.collection.info.summary}`), e.collection?.info?.description && t.push(`Description: ${e.collection.info.description}`), C(t, `
78
+ return e.collectionId && t.push(`Collection ID: ${e.collectionId}`), e.collection?.info?.title && t.push(`Title: ${e.collection.info.title}`), e.collection?.info?.summary && t.push(`Summary: ${e.collection.info.summary}`), e.collection?.info?.description && t.push(`Description: ${e.collection.info.description}`), T(t, `
77
79
  `);
78
80
  }
79
81
  function Bo(e) {
@@ -83,7 +85,7 @@ function Bo(e) {
83
85
  for (const o of e.collection.workflows)
84
86
  t.push(` workflowId=${o.workflowId} ${o.summary ?? ""}`);
85
87
  }
86
- return C(t, `
88
+ return T(t, `
87
89
  `);
88
90
  }
89
91
  function jo(e) {
@@ -93,7 +95,7 @@ function jo(e) {
93
95
  for (const o of e.collection.sourceDescriptions)
94
96
  t.push(` name=${o.name} url=${o.url}`);
95
97
  }
96
- return C(t, `
98
+ return T(t, `
97
99
  `);
98
100
  }
99
101
  function Yo(e, t) {
@@ -110,12 +112,12 @@ function Yo(e, t) {
110
112
  o.push(jo(e));
111
113
  break;
112
114
  }
113
- return C(o, `
115
+ return T(o, `
114
116
 
115
117
  `);
116
118
  }
117
119
  function zo(e, t) {
118
- return C(
120
+ return T(
119
121
  [
120
122
  e.collectionId ? `Collection ID: ${e.collectionId}` : null,
121
123
  t.includes("title") && e.title ? `Title: ${e.title}` : null,
@@ -126,7 +128,7 @@ function zo(e, t) {
126
128
  );
127
129
  }
128
130
  function Ho(e, t) {
129
- return C(
131
+ return T(
130
132
  [
131
133
  t.includes("title") ? e.title : null,
132
134
  e.apiId ? `API ID: ${e.apiId}` : null,
@@ -136,9 +138,9 @@ function Ho(e, t) {
136
138
  t.includes("operationId") && e.operationId ? `Operation ID: ${e.operationId}` : null,
137
139
  t.includes("requestBody") && e.requestBodySchema ? `Request body schema: ${e.requestBodySchema}` : null,
138
140
  t.includes("parameters") && e.parameterDetails ? `Parameter details: ${St(e.parameterDetails)}` : null,
139
- t.includes("security") && e.relatedSecuritySchemes ? `Security schemes: ${Tt(e.relatedSecuritySchemes)}` : null,
141
+ t.includes("security") && e.relatedSecuritySchemes ? `Security schemes: ${Ct(e.relatedSecuritySchemes)}` : null,
140
142
  t.includes("tags") && e.tags ? `Tags: ${e.tags.join("; ")}` : null,
141
- t.includes("responses") && e.responseSchemas ? `Responses: ${Ct(e.responseSchemas)}` : null
143
+ t.includes("responses") && e.responseSchemas ? `Responses: ${Tt(e.responseSchemas)}` : null
142
144
  ],
143
145
  `
144
146
  `
@@ -203,7 +205,7 @@ function Xo(e, t) {
203
205
  }
204
206
  function Zo(e) {
205
207
  const t = [];
206
- return e.collectionId && t.push(`Collection ID: ${e.collectionId}`), e.workflowId && t.push(`Workflow ID: ${e.workflowId}`), e.workflow?.summary && t.push(`Summary: ${e.workflow.summary}`), e.workflow?.description && t.push(`Description: ${e.workflow.description}`), C(t, `
208
+ return e.collectionId && t.push(`Collection ID: ${e.collectionId}`), e.workflowId && t.push(`Workflow ID: ${e.workflowId}`), e.workflow?.summary && t.push(`Summary: ${e.workflow.summary}`), e.workflow?.description && t.push(`Description: ${e.workflow.description}`), T(t, `
207
209
  `);
208
210
  }
209
211
  function en(e, t) {
@@ -218,12 +220,12 @@ function en(e, t) {
218
220
  const s = Xo(n, r);
219
221
  s && o.push(s);
220
222
  }
221
- return C(o, `
223
+ return T(o, `
222
224
 
223
225
  `);
224
226
  }
225
227
  function tn(e, t) {
226
- return C(
228
+ return T(
227
229
  [
228
230
  e.collectionId ? `Collection ID: ${e.collectionId}` : null,
229
231
  e.workflowId ? `Workflow ID: ${e.workflowId}` : null,
@@ -250,11 +252,11 @@ function nn(e) {
250
252
  `path: ${e.path}`,
251
253
  e.operationId ? `operationId: ${e.operationId}` : null
252
254
  ];
253
- return `Step is connected to API (${C(t, ", ")})`;
255
+ return `Step is connected to API (${T(t, ", ")})`;
254
256
  }
255
257
  function rn(e) {
256
258
  const t = [`method: ${e.method}`, `url: ${e.url}`];
257
- return `Step is not connected to API (${C(t, ", ")})`;
259
+ return `Step is not connected to API (${T(t, ", ")})`;
258
260
  }
259
261
  function sn(e) {
260
262
  return e.description?.trim() ? `Description:
@@ -291,7 +293,7 @@ function cn(e) {
291
293
  }
292
294
  return e.response && t.push(
293
295
  `Last response: status=${e.response.status} durationMs=${e.response.duration} size=${e.response.size}`
294
- ), e.requestError && t.push(`Request error: ${e.requestError}`), C(t, `
296
+ ), e.requestError && t.push(`Request error: ${e.requestError}`), T(t, `
295
297
  `);
296
298
  }
297
299
  function ln(e) {
@@ -308,11 +310,11 @@ ${t.body.length > z ? `${t.body.slice(0, z)}…` : t.body}`);
308
310
  `durationMs: ${t.duration}`,
309
311
  `size: ${t.size}`,
310
312
  o.length > 0 ? `Headers:
311
- ${C(o, `
313
+ ${T(o, `
312
314
  `)}` : null,
313
315
  n || null
314
316
  ];
315
- return C(r, `
317
+ return T(r, `
316
318
  `);
317
319
  }
318
320
  function Ve(e, t) {
@@ -326,7 +328,7 @@ function Ve(e, t) {
326
328
  }
327
329
  function dn(e, t) {
328
330
  const o = ["Current tab (step)"];
329
- return t.length === 0 ? null : (t.includes("info") && o.push(cn(e)), e.draftStep ? o.push(Ve(e.draftStep, t)) : e.step && o.push(Ve(e.step, t)), t.includes("response") && o.push(ln(e)), C(o, `
331
+ return t.length === 0 ? null : (t.includes("info") && o.push(cn(e)), e.draftStep ? o.push(Ve(e.draftStep, t)) : e.step && o.push(Ve(e.step, t)), t.includes("response") && o.push(ln(e)), T(o, `
330
332
 
331
333
  `));
332
334
  }
@@ -342,19 +344,19 @@ function pn(e, t) {
342
344
  t.includes("path") ? `path: ${e.path}` : null,
343
345
  t.includes("operationId") && e.operationId ? `operationId: ${e.operationId}` : null
344
346
  ];
345
- return `Step is connected to API (${C(o, ", ")})`;
347
+ return `Step is connected to API (${T(o, ", ")})`;
346
348
  }
347
349
  if (e.path || e.method) {
348
350
  const o = [
349
351
  t.includes("method") && e.method ? `method: ${e.method}` : null,
350
352
  t.includes("path") && e.path ? `url: ${e.path}` : null
351
353
  ];
352
- return `Step is not connected to API (${C(o, ", ")})`;
354
+ return `Step is not connected to API (${T(o, ", ")})`;
353
355
  }
354
356
  return null;
355
357
  }
356
358
  function fn(e, t) {
357
- return C(
359
+ return T(
358
360
  [
359
361
  e.collectionId ? `Collection ID: ${e.collectionId}` : null,
360
362
  e.workflowId ? `Workflow ID: ${e.workflowId}` : null,
@@ -365,8 +367,8 @@ function fn(e, t) {
365
367
  t.includes("parameters") && e.parameterDetails ? `Parameter details: ${St(e.parameterDetails)}` : null,
366
368
  t.includes("successCriteria") && e.successCriteria?.length ? `Success criteria: ${e.successCriteria.join("; ")}` : null,
367
369
  t.includes("tags") && e.tags ? `Tags: ${e.tags.join("; ")}` : null,
368
- t.includes("security") && e.relatedSecuritySchemes ? `Security schemes: ${Tt(e.relatedSecuritySchemes)}` : null,
369
- t.includes("responses") && e.responseSchemas ? `Responses: ${Ct(e.responseSchemas)}` : null
370
+ t.includes("security") && e.relatedSecuritySchemes ? `Security schemes: ${Ct(e.relatedSecuritySchemes)}` : null,
371
+ t.includes("responses") && e.responseSchemas ? `Responses: ${Tt(e.responseSchemas)}` : null
370
372
  ],
371
373
  `
372
374
  `
@@ -381,7 +383,7 @@ function hn(e, t) {
381
383
  const wn = ["info", "result", "severity"], In = 500, yn = z * 2;
382
384
  function vn(e) {
383
385
  const t = [];
384
- return e.collectionId && t.push(`Collection ID: ${e.collectionId}`), e.workflowId && t.push(`Workflow ID: ${e.workflowId}`), e.workflow?.summary && t.push(`Summary: ${e.workflow.summary}`), e.workflow?.description && t.push(`Description: ${e.workflow.description}`), e.runDate && t.push(`Run date: ${new Date(e.runDate).toISOString()}`), C(t, `
386
+ return e.collectionId && t.push(`Collection ID: ${e.collectionId}`), e.workflowId && t.push(`Workflow ID: ${e.workflowId}`), e.workflow?.summary && t.push(`Summary: ${e.workflow.summary}`), e.workflow?.description && t.push(`Description: ${e.workflow.description}`), e.runDate && t.push(`Run date: ${new Date(e.runDate).toISOString()}`), T(t, `
385
387
  `);
386
388
  }
387
389
  function gn(e) {
@@ -442,10 +444,10 @@ ${Ke(
442
444
  )}` : `Full response body for step ${u}: step not found in this run.`
443
445
  );
444
446
  }
445
- return C(d, `
447
+ return T(d, `
446
448
  `);
447
449
  }
448
- function Tn(e, t) {
450
+ function Cn(e, t) {
449
451
  const o = e.secretValues ? [...e.secretValues] : void 0;
450
452
  if (e.runStatus === "running")
451
453
  return "Run status: RUNNING - the workflow is still executing; re-read this section to get the outcome, which will be reported as SUCCEEDED or FAILED once the run finishes.";
@@ -459,7 +461,7 @@ function Tn(e, t) {
459
461
  }
460
462
  return e.result ? Sn(e.result, o, t?.stepIds) : "Run status: NOT STARTED - no run has executed on this tab yet.";
461
463
  }
462
- function Cn(e, t, o) {
464
+ function Tn(e, t, o) {
463
465
  const n = ["Current tab (workflow run)"];
464
466
  for (const r of t)
465
467
  switch (r) {
@@ -470,10 +472,10 @@ function Cn(e, t, o) {
470
472
  n.push(gn(e));
471
473
  break;
472
474
  case "result":
473
- n.push(Tn(e, o));
475
+ n.push(Cn(e, o));
474
476
  break;
475
477
  }
476
- return C(n, `
478
+ return T(n, `
477
479
 
478
480
  `);
479
481
  }
@@ -488,7 +490,7 @@ function On(e, t = ["info"], o) {
488
490
  case x.Collection:
489
491
  return Yo(e, t);
490
492
  case x.WorkflowRun:
491
- return Cn(e, t, o);
493
+ return Tn(e, t, o);
492
494
  }
493
495
  }
494
496
  function An(e) {
@@ -657,7 +659,7 @@ const Mn = p({
657
659
  }), Fn = p({
658
660
  totalChanges: A().int().min(0),
659
661
  approvedChanges: A().int().min(0),
660
- applied: T(Mn),
662
+ applied: C(Mn),
661
663
  resultingState: c().optional().describe("Resulting state of the mutated fields after all changes were applied.")
662
664
  }), xt = q(Fn), Bn = "Read structured state from the **active** Replay tab.\n\n**What it does**\n- Returns structured data for the active tab.\n- Read-only: does not open/switch tabs and does not mutate saved or unsaved content.\n- Returns UI-facing tab data (editable fields, configured values, responses/results), not a full OpenAPI schema dump.\n\n**Use when**\n- You need to verify UI state in the active tab after an action (edit, save, execute, rerun, tab switch).\n- You need to inspect request/response/result content as rendered in Replay UI.\n\n**Never use when**\n- You are gathering **initial schema/context** for a request from project assets (OpenAPI/Arazzo); use project-asset lookup with exact ids/coordinates.\n- You need IDs or operation/workflow coordinates from project assets; resolve them via project-asset lookup, not active-tab UI reads.\n- You need a different tab; this tool never changes focus.\n- You need to run a request or change any saved/unsaved tab content; this tool is strictly read-only.\n\n**Input guidance**\n- Treat IDs from `info` as canonical for follow-up actions.\n- Request only needed sections and combine them in one call.\n- Prefer including `info` unless you need only one slice.\n- Sections by tab type:\n - Collection tab: `info`, `workflows`, `sourceDescriptions`.\n - Workflow tab: `info`, `inputs`, `parameters`, `security`, `outputs`, `steps`, `wiring` (every step's security bindings + outputs in one call - inspect or verify multi-step wiring without opening step tabs).\n - Step tab: `info`, `parameters`, `requestBody`, `security`, `outputs`, `successCriteria`, `response`.\n - Workflow run tab: `info`, `result` (status, per-step outcomes, masked bodies; `stepIds` fetches full ones), `severity`.\n- Invalid sections are skipped; if none apply, response falls back to `info`.\n\n**Loop/budget guidance**\n- Read each needed section once per turn.\n- Re-read only after mutation/save, or when you need to inspect new output.\n- If `result` is RUNNING, re-read until the run finishes.", jn = E([
663
665
  "info",
@@ -675,10 +677,10 @@ const Mn = p({
675
677
  "result",
676
678
  "severity"
677
679
  ]), Yn = oe({
678
- sections: T(jn).min(1).describe(
680
+ sections: C(jn).min(1).describe(
679
681
  "Content blocks to include in the response. Use tab-type-specific sections from the tool description; invalid sections for the current tab are ignored."
680
682
  ),
681
- stepIds: T(c()).min(1).optional().describe(
683
+ stepIds: C(c()).min(1).optional().describe(
682
684
  "Workflow run tabs only, together with the `result` section: executed step ids to return the full (secret-masked) response body for. Use after the per-step preview proves insufficient."
683
685
  )
684
686
  }), zn = p({
@@ -755,8 +757,8 @@ const Jn = {
755
757
  name: c(),
756
758
  hint: c()
757
759
  }), tr = p({
758
- available: T(Zn),
759
- blocked: T(er)
760
+ available: C(Zn),
761
+ blocked: C(er)
760
762
  }), or = p({
761
763
  field: c(),
762
764
  value: he(),
@@ -962,11 +964,11 @@ const Ir = {
962
964
  Y.Text,
963
965
  Y.JSON,
964
966
  Y.XML
965
- ], Tr = p({
967
+ ], Cr = p({
966
968
  name: c().min(1),
967
969
  in: E(["path", "query", "header", "cookie"]),
968
970
  value: c()
969
- }).strict(), Cr = p({
971
+ }).strict(), Tr = p({
970
972
  name: c().min(1).describe("Output name."),
971
973
  expression: c().min(1).describe("Output expression.")
972
974
  }).strict(), Or = p({
@@ -981,13 +983,13 @@ const Ir = {
981
983
  'Label used verbatim as the stepId, so pass a single camelCase token such as "updateUser", reusing the source operationId when there is one. Put prose in `description` instead (default: "New Step").'
982
984
  ),
983
985
  description: c().min(1).optional().describe("Step description text (overrides default derived from stepName)."),
984
- parameters: T(Tr).optional().describe("Initial request parameters (path, query, header, cookie)."),
986
+ parameters: C(Cr).optional().describe("Initial request parameters (path, query, header, cookie)."),
985
987
  body: p({
986
988
  content: c().describe("Request body content as string."),
987
989
  contentType: E(Sr).optional().describe("Request body content type.")
988
990
  }).strict().optional().describe("Initial request body."),
989
- outputs: T(Cr).optional().describe("Initial step outputs (mappings for later steps)."),
990
- successCriteria: T(Or).optional().describe("Initial success criteria rows."),
991
+ outputs: C(Tr).optional().describe("Initial step outputs (mappings for later steps)."),
992
+ successCriteria: C(Or).optional().describe("Initial success criteria rows."),
991
993
  operation: p({
992
994
  apiId: c().min(1).describe("API id."),
993
995
  path: c().min(1).describe("Request path."),
@@ -1489,7 +1491,7 @@ const Gr = {
1489
1491
  environment: L,
1490
1492
  apiId: c().min(1),
1491
1493
  value: c(),
1492
- variables: T(Pe).optional()
1494
+ variables: C(Pe).optional()
1493
1495
  }).strict(), ns = p({
1494
1496
  name: c().min(1),
1495
1497
  value: c(),
@@ -1497,12 +1499,12 @@ const Gr = {
1497
1499
  }).strict(), rs = p({
1498
1500
  apiId: c().min(1),
1499
1501
  value: c(),
1500
- variables: T(Pe).optional()
1502
+ variables: C(Pe).optional()
1501
1503
  }).strict(), ss = p({
1502
1504
  action: w("add_environment"),
1503
1505
  environment: c().min(1).describe("Name of a new environment to create."),
1504
- inputs: T(ns).optional().describe("Optional initial inputs for the new environment."),
1505
- servers: T(rs).optional().describe("Optional initial server mappings for the new environment."),
1506
+ inputs: C(ns).optional().describe("Optional initial inputs for the new environment."),
1507
+ servers: C(rs).optional().describe("Optional initial server mappings for the new environment."),
1506
1508
  setActive: R().optional().describe("When true, also set the new environment as active.")
1507
1509
  }).strict(), as = p({
1508
1510
  action: w("remove_server"),
@@ -1527,19 +1529,19 @@ const Gr = {
1527
1529
  ])
1528
1530
  }), ls = p({
1529
1531
  summary: c(),
1530
- environmentNames: T(c()).optional(),
1531
- inputs: T(
1532
+ environmentNames: C(c()).optional(),
1533
+ inputs: C(
1532
1534
  p({
1533
1535
  name: c(),
1534
1536
  isSecret: R(),
1535
1537
  value: c()
1536
1538
  })
1537
1539
  ).optional(),
1538
- servers: T(
1540
+ servers: C(
1539
1541
  p({
1540
1542
  apiId: c(),
1541
1543
  value: c(),
1542
- variables: T(Pe)
1544
+ variables: C(Pe)
1543
1545
  })
1544
1546
  ).optional(),
1545
1547
  input: p({
@@ -1646,7 +1648,7 @@ function ws(e, t) {
1646
1648
  const o = M(e, t.environment);
1647
1649
  if (!o.ok)
1648
1650
  return o.result;
1649
- const { name: n, env: r } = o, s = Cs(r);
1651
+ const { name: n, env: r } = o, s = Ts(r);
1650
1652
  return {
1651
1653
  isError: !1,
1652
1654
  data: {
@@ -1793,11 +1795,11 @@ function Ss(e, t) {
1793
1795
  }
1794
1796
  }) : h("Environment not found.", { environment: t.environment });
1795
1797
  }
1796
- function Ts(e, t) {
1798
+ function Cs(e, t) {
1797
1799
  return t ?? e.get(K);
1798
1800
  }
1799
1801
  function M(e, t) {
1800
- const o = Ts(e, t), n = ye(e, o);
1802
+ const o = Cs(e, t), n = ye(e, o);
1801
1803
  return n ? { ok: !0, name: o, env: n } : {
1802
1804
  ok: !1,
1803
1805
  result: h(
@@ -1815,7 +1817,7 @@ function ve(e, t, o) {
1815
1817
  (n) => n.map((r) => r.name === t ? o(r) : r)
1816
1818
  );
1817
1819
  }
1818
- function Cs(e) {
1820
+ function Ts(e) {
1819
1821
  return e.inputs.map((t) => ({
1820
1822
  name: t.name,
1821
1823
  isSecret: t.isSecret,
@@ -2388,8 +2390,8 @@ const aa = [
2388
2390
  });
2389
2391
  }), da = p({
2390
2392
  status: A().optional().describe("HTTP status code."),
2391
- headers: T(ze([c(), c()])).optional().describe("Response headers as key-value pairs."),
2392
- cookies: T(ze([c(), c()])).optional().describe("Response cookies as key-value pairs."),
2393
+ headers: C(ze([c(), c()])).optional().describe("Response headers as key-value pairs."),
2394
+ cookies: C(ze([c(), c()])).optional().describe("Response cookies as key-value pairs."),
2393
2395
  body: c().optional().describe("Response body, truncated if too large."),
2394
2396
  url: c().optional().describe("Final response URL."),
2395
2397
  duration: A().optional().describe("Request duration in milliseconds."),
@@ -2544,7 +2546,7 @@ const wa = {
2544
2546
  durationMs: A().describe("Total run time in milliseconds."),
2545
2547
  totalSteps: A().int().nonnegative(),
2546
2548
  passedSteps: A().int().nonnegative(),
2547
- steps: T(va).describe(
2549
+ steps: C(va).describe(
2548
2550
  "Per-step outcome, in execution order: stepId, HTTP statusCode, and pass/fail only — no check name or failure message."
2549
2551
  )
2550
2552
  }), ba = q(ga), ka = {
@@ -2596,17 +2598,17 @@ function Sa(e, t) {
2596
2598
  }
2597
2599
  };
2598
2600
  }
2599
- const Ta = {
2601
+ const Ca = {
2600
2602
  name: "run_workflow",
2601
2603
  definition: ka,
2602
2604
  createExecutor: (e) => Sa(e.store, e.runWorkflow)
2603
- }, Ca = 25, Oa = 'RAG semantic search over OpenAPI specs and Arazzo assets in the current Replay project.\n\n**What it does**\n- Finds OpenAPI and Arazzo entities via natural-language query (scoped by `type`), returning up to `count` matches with detail via `include`.\n\n**Use when**\n- You need **initial schema/context** or request schema details from project assets.\n- You need canonical IDs/coordinates for an API, collection, workflow, or step.\n- You need to find operations/workflows/steps by natural language when IDs are unknown.\n\n**Never use when**\n- You are only verifying post-action UI changes in the active tab.\n- You already have exact IDs and only need active-tab state.\n- You are about to repeat an identical no-result query.\n\n**Input guidance**\n- Rewording the same query rarely helps; change `type`, `query`, or intent instead.\n- "Collection" is ambiguous (Arazzo entity vs API requests by tags/path/criteria). For request lists, use `type: api_operation` with query/filters—not Arazzo `collection`.\n- Pass all known filters (`apiId`, `path`, `method`, `operationId`, `collectionId`, `workflowId`, `stepId`); `query + filters` is most precise.\n- If semantic search returns no matches, ID filters enable direct lookup (see pairing on each filter field).\n- Phrase `query` like indexed text: titles/descriptions for collections/workflows; `step: …`; `operationId: …`; path/method/tags for endpoints.\n- If results are empty and lookup needs missing IDs, the tool may ask for them.\n', Aa = p({
2605
+ }, Ta = 25, Oa = 'RAG semantic search over OpenAPI specs and Arazzo assets in the current Replay project.\n\n**What it does**\n- Finds OpenAPI and Arazzo entities via natural-language query (scoped by `type`), returning up to `count` matches with detail via `include`.\n\n**Use when**\n- You need **initial schema/context** or request schema details from project assets.\n- You need canonical IDs/coordinates for an API, collection, workflow, or step.\n- You need to find operations/workflows/steps by natural language when IDs are unknown.\n\n**Never use when**\n- You are only verifying post-action UI changes in the active tab.\n- You already have exact IDs and only need active-tab state.\n- You are about to repeat an identical no-result query.\n\n**Input guidance**\n- Rewording the same query rarely helps; change `type`, `query`, or intent instead.\n- "Collection" is ambiguous (Arazzo entity vs API requests by tags/path/criteria). For request lists, use `type: api_operation` with query/filters—not Arazzo `collection`.\n- Pass all known filters (`apiId`, `path`, `method`, `operationId`, `collectionId`, `workflowId`, `stepId`); `query + filters` is most precise.\n- If semantic search returns no matches, ID filters enable direct lookup (see pairing on each filter field).\n- Phrase `query` like indexed text: titles/descriptions for collections/workflows; `step: …`; `operationId: …`; path/method/tags for endpoints.\n- If results are empty and lookup needs missing IDs, the tool may ask for them.\n', Aa = p({
2604
2606
  query: c().optional().describe("Natural language search query."),
2605
- count: A().positive().max(Ca).optional().default(10),
2607
+ count: A().positive().max(Ta).optional().default(10),
2606
2608
  type: E(["api_operation", "api", "collection", "workflow", "step"]).describe(
2607
2609
  "Scope results to this item type. api = OpenAPI spec; api_operation = API endpoint; collection = Arazzo collection; workflow = Arazzo workflow; step = Arazzo workflow step."
2608
2610
  ),
2609
- include: T(
2611
+ include: C(
2610
2612
  E([
2611
2613
  "description",
2612
2614
  "path",
@@ -2919,7 +2921,7 @@ const Ya = [
2919
2921
  stepId: c().describe(
2920
2922
  "Saved step: step id (default target for changes without their own stepId; may be empty when every change sets one). Unsaved draft tab: empty string (with empty collectionId and workflowId)."
2921
2923
  ),
2922
- changes: T(oi).min(1).describe("List of security changes to apply.")
2924
+ changes: C(oi).min(1).describe("List of security changes to apply.")
2923
2925
  }).strict().superRefine((e, t) => {
2924
2926
  const o = e.collectionId.trim(), n = e.workflowId.trim(), r = e.stepId.trim(), s = e.changes.map((u) => u.stepId?.trim()), a = s.every(Boolean), i = s.some(Boolean);
2925
2927
  !(o && n && (r || a)) && !(!o && !n && !r && !i) && t.addIssue({
@@ -3193,10 +3195,10 @@ const hi = {
3193
3195
  }).strict(), Si = W.extend({
3194
3196
  field: w("method"),
3195
3197
  data: E(Ii).describe("New HTTP method for x-operation step.")
3196
- }).strict(), Ti = W.extend({
3198
+ }).strict(), Ci = W.extend({
3197
3199
  field: w("parameters"),
3198
3200
  data: vi.optional().describe("Parameter data. Required for add/update actions.")
3199
- }).strict(), Ci = W.extend({
3201
+ }).strict(), Ti = W.extend({
3200
3202
  field: w("outputs"),
3201
3203
  data: p({
3202
3204
  name: c().min(1).describe("Output name."),
@@ -3219,8 +3221,8 @@ const hi = {
3219
3221
  bi,
3220
3222
  ki,
3221
3223
  Si,
3222
- Ti,
3223
3224
  Ci,
3225
+ Ti,
3224
3226
  Oi,
3225
3227
  Ai
3226
3228
  ]), $i = p({
@@ -3233,7 +3235,7 @@ const hi = {
3233
3235
  stepId: c().describe(
3234
3236
  "Saved step: step id. Unsaved draft tab: empty string (with empty collectionId and workflowId)."
3235
3237
  ),
3236
- changes: T(Ei).min(1).describe("List of individual changes to apply to the step.")
3238
+ changes: C(Ei).min(1).describe("List of individual changes to apply to the step.")
3237
3239
  }).strict().superRefine((e, t) => {
3238
3240
  const o = e.collectionId.trim(), n = e.workflowId.trim(), r = e.stepId.trim();
3239
3241
  !(o && n && r) && !(!o && !n && !r) && t.addIssue({
@@ -3253,13 +3255,13 @@ function Ri(e) {
3253
3255
  function Se(e) {
3254
3256
  return ae[e];
3255
3257
  }
3256
- function Te(e, t) {
3258
+ function Ce(e, t) {
3257
3259
  return e.id === t;
3258
3260
  }
3259
3261
  function lt(e, t) {
3260
3262
  return e.condition === t;
3261
3263
  }
3262
- function Ce(e, t) {
3264
+ function Te(e, t) {
3263
3265
  return Ae(e) && e.id === t;
3264
3266
  }
3265
3267
  function dt(e, t, o) {
@@ -3302,7 +3304,7 @@ function Pi(e, { readStep: t, updateParameters: o }) {
3302
3304
  return y("failed", "Failed parameter update because data is missing.");
3303
3305
  const { in: n, name: r, value: s } = e.data, a = Se(n);
3304
3306
  return de(o(a), e.id, {
3305
- find: Ce,
3307
+ find: Te,
3306
3308
  produce: (l) => Ae(l) ? {
3307
3309
  ...dt(n, r, s),
3308
3310
  id: l.id,
@@ -3316,8 +3318,8 @@ function Pi(e, { readStep: t, updateParameters: o }) {
3316
3318
  const n = e.id, r = e.data?.in, s = r ? [Se(r)] : Object.values(ae);
3317
3319
  let a = !1;
3318
3320
  for (const i of s)
3319
- if (t().parameters[i].some((d) => Ce(d, n))) {
3320
- a = De(o(i), n, Ce);
3321
+ if (t().parameters[i].some((d) => Te(d, n))) {
3322
+ a = De(o(i), n, Te);
3321
3323
  break;
3322
3324
  }
3323
3325
  return a ? y("applied") : y("failed", `Parameter with id '${n}' not found.`);
@@ -3332,7 +3334,7 @@ function qi(e, { readStep: t, updateOutputs: o }) {
3332
3334
  const { name: n, expression: r } = e.data, s = t().outputs.find((i) => i.key === n);
3333
3335
  if (s)
3334
3336
  return de(o, s.id, {
3335
- find: Te,
3337
+ find: Ce,
3336
3338
  produce: (i) => ({ ...i, key: n, value: r, active: !0 })
3337
3339
  }), y(
3338
3340
  "applied",
@@ -3348,12 +3350,12 @@ function qi(e, { readStep: t, updateOutputs: o }) {
3348
3350
  return y("failed", "Failed output update because data is missing.");
3349
3351
  const { name: n, expression: r } = e.data;
3350
3352
  return de(o, e.id, {
3351
- find: Te,
3353
+ find: Ce,
3352
3354
  produce: (a) => ({ ...a, key: n, value: r, active: !0 })
3353
3355
  }) ? y("applied") : y("failed", `Output with id '${e.id}' not found.`);
3354
3356
  }
3355
3357
  case _.REMOVE:
3356
- return e.id ? De(o, e.id, Te) ? y("applied") : y("failed", `Output with id '${e.id}' not found.`) : y("failed", "Failed output remove because id is missing.");
3358
+ return e.id ? De(o, e.id, Ce) ? y("applied") : y("failed", `Output with id '${e.id}' not found.`) : y("failed", "Failed output remove because id is missing.");
3357
3359
  }
3358
3360
  }
3359
3361
  function Ni(e, { updateSuccessCriteria: t }) {
@@ -3584,7 +3586,7 @@ function Hi(e) {
3584
3586
  };
3585
3587
  }
3586
3588
  function Gi(e) {
3587
- return C([
3589
+ return T([
3588
3590
  //
3589
3591
  "[URL]",
3590
3592
  e.url,
@@ -3601,7 +3603,7 @@ const Vi = {
3601
3603
  Js,
3602
3604
  ia,
3603
3605
  wa,
3604
- Ta,
3606
+ Ca,
3605
3607
  za,
3606
3608
  hi,
3607
3609
  Di,
@@ -3770,7 +3772,7 @@ export {
3770
3772
  Jn as a,
3771
3773
  Gr as b,
3772
3774
  hi as c,
3773
- Ta as d,
3775
+ Ca as d,
3774
3776
  wa as e,
3775
3777
  ia as f,
3776
3778
  Ir as g,
@@ -1,5 +1,5 @@
1
- import { c as i, g as n } from "./replay-create-model-BEoVz7Ji.js";
2
- import { M as s } from "./replay-index-BHjBRyB3.js";
1
+ import { c as i, g as n } from "./replay-create-model-CWTiZi7t.js";
2
+ import { M as s } from "./replay-index-CiOV_Ucc.js";
3
3
  import { V as l } from "./replay-defaults-CzR6jw9a.js";
4
4
  async function g(a, e, t, o) {
5
5
  try {
package/dist/replay.js CHANGED
@@ -1,4 +1,4 @@
1
- import { A as s, ax as r, bQ as t, bR as l, R as o, bS as b, bT as R, N as d, bU as m, bV as p, O as n, bW as y, bX as A, bY as T, bZ as i, aw as u, av as O, b_ as h, b$ as E } from "./replay-index-BHjBRyB3.js";
1
+ import { A as s, ax as r, bQ as t, bR as l, R as o, bS as b, bT as R, N as d, bU as m, bV as p, O as n, bW as y, bX as A, bY as T, bZ as i, aw as u, av as O, b_ as h, b$ as E } from "./replay-index-CiOV_Ucc.js";
2
2
  import { O as C, h as I } from "./replay-oauth2-redirect-handler-Bq6bpZMm.js";
3
3
  export {
4
4
  s as AI_PROVIDERS,
package/package.json CHANGED
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "name": "@redocly/replay",
3
- "version": "0.31.0-next.3",
3
+ "version": "0.31.0-next.5",
4
4
  "type": "module",
5
- "main": "./dist/replay.cjs",
5
+ "main": "./dist/replay.js",
6
6
  "module": "./dist/replay.js",
7
7
  "types": "./dist/replay.d.ts",
8
8
  "files": [
@@ -11,12 +11,11 @@
11
11
  "exports": {
12
12
  ".": {
13
13
  "types": "./dist/replay.d.ts",
14
- "import": "./dist/replay.js",
15
- "require": "./dist/replay.cjs"
14
+ "default": "./dist/replay.js"
16
15
  }
17
16
  },
18
17
  "peerDependencies": {
19
- "@redocly/theme": "0.72.0-next.2",
18
+ "@redocly/theme": "0.72.0-next.4",
20
19
  "@tanstack/react-query": "5.62.3",
21
20
  "react": "^19.2.7",
22
21
  "react-dom": "^19.2.7",
@@ -51,10 +50,10 @@
51
50
  "@lezer/highlight": "^1.1.6",
52
51
  "@noble/hashes": "^1.8.0",
53
52
  "@opentelemetry/api": "1.9.1",
54
- "@redocly/openapi-core": "2.66.0",
53
+ "@redocly/openapi-core": "2.72.1",
55
54
  "@redocly/replay-asyncapi-sdk": "0.0.1",
56
- "@redocly/respect-core": "2.66.0",
57
- "@redocly/vscode-json-languageservice": "^3.4.9",
55
+ "@redocly/respect-core": "2.72.1",
56
+ "@redocly/vscode-json-languageservice": "^3.4.10",
58
57
  "@redocly/tooling-test-utils": "0.0.0",
59
58
  "@tauri-apps/api": "2.4.1",
60
59
  "@tauri-apps/plugin-deep-link": "^2.4.5",
@@ -102,7 +101,7 @@
102
101
  "vite-tsconfig-paths": "4.3.2",
103
102
  "vitest": "4.1.11",
104
103
  "yaml": "^2.0.0",
105
- "zod": "^3.25.76"
104
+ "zod": "^4.6.6"
106
105
  },
107
106
  "nx": {
108
107
  "targets": {
@@ -1 +0,0 @@
1
- "use strict";const o=require("./replay-oauth2-redirect-handler-BfZRvm6l.js");function t(){const e=window.opener?.redirectOAuth2;try{o.handleOAuth2Redirect(e)}catch(r){e?.errorCallback(r)}window.close()}window.onload=t;