@redocly/replay 0.26.0-next.3 → 0.26.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.
@@ -1,5 +1,5 @@
1
- import { e as h, s as x, r as i } from "./replay-index-DAxvSnTr.js";
2
- import { d as j, a as b, j as d } from "./replay-index-DAxvSnTr.js";
1
+ import { e as h, s as x, r as i } from "./replay-index-BBRlup3F.js";
2
+ import { d as j, a as b, j as d } from "./replay-index-BBRlup3F.js";
3
3
  async function u(n, e) {
4
4
  const t = x(), l = await i(n), c = await i(e), o = l.replace(new RegExp(`^${t}+`), "").split(t).filter(Boolean), r = c.replace(new RegExp(`^${t}+`), "").split(t).filter(Boolean), m = Math.min(o.length, r.length);
5
5
  let s = 0;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./replay-index-B3pzkPbR.js");async function u(r,n){const t=e.sep(),l=await e.resolve(r),c=await e.resolve(n),a=l.replace(new RegExp(`^${t}+`),"").split(t).filter(Boolean),i=c.replace(new RegExp(`^${t}+`),"").split(t).filter(Boolean),m=Math.min(a.length,i.length);let s=0;for(let o=0;o<m&&a[o]===i[o];o++)s++;const p=a.slice(s).map(()=>".."),f=i.slice(s);return[...p,...f].join(t)}async function g(r){const n=await e.extname(r);return n?`.${n}`:""}exports.dirname=e.dirname;exports.isAbsolute=e.isAbsolute;exports.join=e.join;exports.resolve=e.resolve;exports.extname=g;exports.relative=u;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./replay-index-CCclpj9c.js");async function u(r,n){const t=e.sep(),l=await e.resolve(r),c=await e.resolve(n),a=l.replace(new RegExp(`^${t}+`),"").split(t).filter(Boolean),i=c.replace(new RegExp(`^${t}+`),"").split(t).filter(Boolean),m=Math.min(a.length,i.length);let s=0;for(let o=0;o<m&&a[o]===i[o];o++)s++;const p=a.slice(s).map(()=>".."),f=i.slice(s);return[...p,...f].join(t)}async function g(r){const n=await e.extname(r);return n?`.${n}`:""}exports.dirname=e.dirname;exports.isAbsolute=e.isAbsolute;exports.join=e.join;exports.resolve=e.resolve;exports.extname=g;exports.relative=u;
package/dist/replay.cjs CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./replay-index-B3pzkPbR.js"),t=require("./replay-oauth2-redirect-handler-Bqw5UUvl.js");exports.AgentLoop=e.AgentLoop;exports.AiPanelContext=e.AiPanelContext;exports.EmbeddedReplay=e.EmbeddedReplay;exports.Modal=e.Modal;exports.Replay=e.Replay;exports.ReplayOverlay=e.ReplayOverlay;Object.defineProperty(exports,"SpanStatusCode",{enumerable:!0,get:()=>e.SpanStatusCode});exports.TelemetryClient=e.TelemetryClient;exports.applyThemeToDOM=e.applyThemeToDOM;exports.createResource=e.createResource;exports.getCurrentTheme=e.getCurrentTheme;exports.resolveTheme=e.resolveTheme;exports.useAiPanel=e.useAiPanel;exports.useTelemetry=e.useTelemetry;exports.useTelemetryClient=e.useTelemetryClient;exports.validateApiKey=e.validateApiKey;exports.OAuth2Error=t.OAuth2Error;exports.handleOAuth2Redirect=t.handleOAuth2Redirect;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./replay-index-CCclpj9c.js"),t=require("./replay-oauth2-redirect-handler-Bqw5UUvl.js");exports.AI_PROVIDERS=e.AI_PROVIDERS;exports.AgentLoop=e.AgentLoop;exports.AiPanelContext=e.AiPanelContext;exports.EmbeddedReplay=e.EmbeddedReplay;exports.Modal=e.Modal;exports.REUNITE_AI_PROVIDER=e.REUNITE_AI_PROVIDER;exports.Replay=e.Replay;exports.ReplayOverlay=e.ReplayOverlay;Object.defineProperty(exports,"SpanStatusCode",{enumerable:!0,get:()=>e.SpanStatusCode});exports.TelemetryClient=e.TelemetryClient;exports.applyThemeToDOM=e.applyThemeToDOM;exports.createResource=e.createResource;exports.getCurrentTheme=e.getCurrentTheme;exports.makeProviderRecord=e.makeProviderRecord;exports.resolveTheme=e.resolveTheme;exports.useAiPanel=e.useAiPanel;exports.useTelemetry=e.useTelemetry;exports.useTelemetryClient=e.useTelemetryClient;exports.validateApiKey=e.validateApiKey;exports.OAuth2Error=t.OAuth2Error;exports.handleOAuth2Redirect=t.handleOAuth2Redirect;
package/dist/replay.d.ts CHANGED
@@ -22,6 +22,7 @@ export declare class AgentLoop {
22
22
  private readonly maxSteps;
23
23
  private readonly context;
24
24
  private readonly systemInstructions;
25
+ private readonly getActiveStateMessage;
25
26
  constructor(config: AgentRuntimeConfig);
26
27
  private createModel;
27
28
  setModel(model: Model): void;
@@ -29,6 +30,7 @@ export declare class AgentLoop {
29
30
  addContext(context: SystemModelMessage[]): void;
30
31
  registerTools(tools: ToolSet): void;
31
32
  generateTitle(prompt: string, abortSignal?: AbortSignal): Promise<string>;
33
+ private buildActiveStateMessage;
32
34
  private prepareMessages;
33
35
  private preparePrompt;
34
36
  }
@@ -39,6 +41,7 @@ declare type AgentRuntimeConfig = {
39
41
  tools: ToolSet;
40
42
  sendEvent: AiChatTelemetrySendEvent;
41
43
  parentCtx?: TelemetryContext;
44
+ getActiveStateMessage?: () => string | null;
42
45
  maxSteps?: number;
43
46
  maxOutputTokens?: ToolLoopAgentConfig['maxOutputTokens'];
44
47
  maxRetries?: ToolLoopAgentConfig['maxRetries'];
@@ -46,6 +49,12 @@ declare type AgentRuntimeConfig = {
46
49
  onFinish?: ToolLoopAgentOnFinishCallback<ToolSet>;
47
50
  };
48
51
 
52
+ export declare const AI_PROVIDERS: {
53
+ readonly OPENAI: "openai";
54
+ readonly ANTHROPIC: "anthropic";
55
+ readonly GEMINI: "gemini";
56
+ };
57
+
49
58
  declare type AiChatTelemetrySendEvent = TelemetryMethods['sendEvent'];
50
59
 
51
60
  export declare const AiPanelContext: Context<AiPanelContextValue>;
@@ -56,11 +65,18 @@ export declare type AiPanelContextValue = {
56
65
  closePanel: () => void;
57
66
  };
58
67
 
59
- declare type AiProviderSettings = {
68
+ export declare type AiProviderConfig = {
60
69
  enabled: boolean;
61
- apiKey?: string;
70
+ apiKey: string;
71
+ validationStatus: ValidationStatus;
72
+ models: Array<{
73
+ id: string;
74
+ label: string;
75
+ }>;
62
76
  };
63
77
 
78
+ export declare type AiProviderName = (typeof AI_PROVIDERS)[keyof typeof AI_PROVIDERS];
79
+
64
80
  declare type ApiPath = {
65
81
  path: string;
66
82
  method: string;
@@ -129,13 +145,11 @@ export declare function createResource<O extends string = string>(object: O, id:
129
145
  export declare function EmbeddedReplay(props: ReplayAppProps): JSX.Element;
130
146
 
131
147
  declare type EndpointModel = {
132
- provider: EndpointProvider;
148
+ provider: 'reunite';
133
149
  baseUrl: string;
134
150
  accessToken: string;
135
151
  };
136
152
 
137
- declare type EndpointProvider = 'reunite';
138
-
139
153
  export declare function getCurrentTheme(): ResolvedTheme;
140
154
 
141
155
  declare type GetOperationURLFunction = (operationId?: string) => string | undefined;
@@ -143,7 +157,7 @@ declare type GetOperationURLFunction = (operationId?: string) => string | undefi
143
157
  export declare function handleOAuth2Redirect(redirectOAuth2Data?: OAuth2RedirectData, urlString?: string): void;
144
158
 
145
159
  declare type HostedAiModel = {
146
- provider: 'openai' | 'anthropic' | 'gemini';
160
+ provider: AiProviderName;
147
161
  modelId: string;
148
162
  apiKey: string;
149
163
  };
@@ -175,9 +189,11 @@ declare type InputSettings = {
175
189
  hideOtherSecuritySchemes?: boolean;
176
190
  layout?: ReplayLayout;
177
191
  aiEnabled?: boolean;
178
- aiProviders?: Partial<Record<HostedAiModel['provider'], AiProviderSettings>>;
192
+ aiProviders?: Partial<Record<AiProviderName, AiProviderConfig>>;
179
193
  };
180
194
 
195
+ export declare function makeProviderRecord<T>(factory: (name: AiProviderName) => T): Record<AiProviderName, T>;
196
+
181
197
  declare type MediaType = {
182
198
  name: string;
183
199
  examples?: {
@@ -780,6 +796,8 @@ declare type ResponseDownload = {
780
796
  totalBytes?: number;
781
797
  };
782
798
 
799
+ export declare const REUNITE_AI_PROVIDER = "reunite";
800
+
783
801
  declare type ReuniteAuthGetter = () => Promise<{
784
802
  accessToken: string;
785
803
  baseUrl: string;
@@ -862,7 +880,7 @@ export declare const useTelemetryClient: ({ awaitInit }?: {
862
880
  awaitInit?: boolean;
863
881
  }) => TelemetryClient | undefined;
864
882
 
865
- export declare function validateApiKey(provider: HostedAiModel['provider'], apiKey: HostedAiModel['apiKey'], options?: ValidateApiKeyOptions): Promise<ValidationResult>;
883
+ export declare function validateApiKey(provider: AiProviderName, apiKey: AiProviderConfig['apiKey'], modelId: AiProviderConfig['models'][number]['id'], options?: ValidateApiKeyOptions): Promise<ValidationResult>;
866
884
 
867
885
  declare type ValidateApiKeyOptions = {
868
886
  abortSignal?: AbortSignal;
@@ -875,6 +893,8 @@ declare type ValidationResult = {
875
893
  error: string;
876
894
  };
877
895
 
896
+ export declare type ValidationStatus = 'idle' | 'checking' | 'valid' | 'invalid';
897
+
878
898
  declare interface XLogo {
879
899
  url?: string;
880
900
  backgroundColor?: string;
package/dist/replay.js CHANGED
@@ -1,22 +1,25 @@
1
- import { w as s, x as t, E as r, M as l, R as o, y as p, S as y, T as m, z as n, C as d, D as u, F as T, G as h, H as i, I as A, K as C } from "./replay-index-DAxvSnTr.js";
2
- import { O, h as x } from "./replay-oauth2-redirect-handler-CqKZB3aV.js";
1
+ import { w as s, x as r, y as t, E as l, M as o, R, z as d, C as m, S as p, T as y, D as n, F as T, G as i, H as u, I as A, K as O, L as h, N as E, O as C } from "./replay-index-BBRlup3F.js";
2
+ import { O as P, h as c } from "./replay-oauth2-redirect-handler-CqKZB3aV.js";
3
3
  export {
4
- s as AgentLoop,
4
+ s as AI_PROVIDERS,
5
+ r as AgentLoop,
5
6
  t as AiPanelContext,
6
- r as EmbeddedReplay,
7
- l as Modal,
8
- O as OAuth2Error,
9
- o as Replay,
10
- p as ReplayOverlay,
11
- y as SpanStatusCode,
12
- m as TelemetryClient,
7
+ l as EmbeddedReplay,
8
+ o as Modal,
9
+ P as OAuth2Error,
10
+ R as REUNITE_AI_PROVIDER,
11
+ d as Replay,
12
+ m as ReplayOverlay,
13
+ p as SpanStatusCode,
14
+ y as TelemetryClient,
13
15
  n as applyThemeToDOM,
14
- d as createResource,
15
- u as getCurrentTheme,
16
- x as handleOAuth2Redirect,
17
- T as resolveTheme,
18
- h as useAiPanel,
19
- i as useTelemetry,
20
- A as useTelemetryClient,
16
+ T as createResource,
17
+ i as getCurrentTheme,
18
+ c as handleOAuth2Redirect,
19
+ u as makeProviderRecord,
20
+ A as resolveTheme,
21
+ O as useAiPanel,
22
+ h as useTelemetry,
23
+ E as useTelemetryClient,
21
24
  C as validateApiKey
22
25
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@redocly/replay",
3
- "version": "0.26.0-next.3",
3
+ "version": "0.26.0-next.5",
4
4
  "type": "module",
5
5
  "main": "./dist/replay.cjs",
6
6
  "module": "./dist/replay.js",
@@ -21,7 +21,7 @@
21
21
  "react-dom": "^19.2.4",
22
22
  "react-router-dom": "^6.30.3",
23
23
  "styled-components": "^6.4.2",
24
- "@redocly/theme": "0.67.0-next.2"
24
+ "@redocly/theme": "0.67.0-next.4"
25
25
  },
26
26
  "dependencies": {
27
27
  "@ai-sdk/anthropic": "3.0.1",
@@ -52,8 +52,8 @@
52
52
  "@opentelemetry/api": "1.9.0",
53
53
  "@redocly/hookstate-core": "^4.2.4",
54
54
  "@redocly/hookstate-devtools": "^4.2.1",
55
- "@redocly/openapi-core": "2.32.1",
56
- "@redocly/respect-core": "2.32.1",
55
+ "@redocly/openapi-core": "2.34.0",
56
+ "@redocly/respect-core": "2.34.0",
57
57
  "@redocly/vscode-json-languageservice": "^3.4.9",
58
58
  "@tauri-apps/api": "2.4.1",
59
59
  "@tauri-apps/plugin-dialog": "2.0.0-rc.1",