@recombine-ai/bosun 0.20.3 → 0.20.4
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/build/_app/immutable/chunks/{BFUe72xu.js → 3WccBUkK.js} +1 -1
- package/build/_app/immutable/chunks/3WccBUkK.js.br +0 -0
- package/build/_app/immutable/chunks/3WccBUkK.js.gz +0 -0
- package/build/_app/immutable/chunks/{Bmkwccsg.js → B5p_twg4.js} +1 -1
- package/build/_app/immutable/chunks/B5p_twg4.js.br +0 -0
- package/build/_app/immutable/chunks/B5p_twg4.js.gz +0 -0
- package/build/_app/immutable/chunks/BMZ3nmcQ.js +1 -0
- package/build/_app/immutable/chunks/BMZ3nmcQ.js.br +2 -0
- package/build/_app/immutable/chunks/BMZ3nmcQ.js.gz +0 -0
- package/build/_app/immutable/chunks/{DdNCOsWe.js → C9p6yGAG.js} +1 -1
- package/build/_app/immutable/chunks/C9p6yGAG.js.br +0 -0
- package/build/_app/immutable/chunks/{DdNCOsWe.js.gz → C9p6yGAG.js.gz} +0 -0
- package/build/_app/immutable/entry/{app.L5djN6KO.js → app.BTQrdm9G.js} +2 -2
- package/build/_app/immutable/entry/app.BTQrdm9G.js.br +0 -0
- package/build/_app/immutable/entry/app.BTQrdm9G.js.gz +0 -0
- package/build/_app/immutable/entry/start.Ls0_A8q0.js +1 -0
- package/build/_app/immutable/entry/start.Ls0_A8q0.js.br +0 -0
- package/build/_app/immutable/entry/start.Ls0_A8q0.js.gz +0 -0
- package/build/_app/immutable/nodes/{0.DxT2ZCBH.js → 0.8n1R6Sfx.js} +1 -1
- package/build/_app/immutable/nodes/0.8n1R6Sfx.js.br +0 -0
- package/build/_app/immutable/nodes/0.8n1R6Sfx.js.gz +0 -0
- package/build/_app/immutable/nodes/{1.CuGmyB-B.js → 1.VY0dUXdC.js} +1 -1
- package/build/_app/immutable/nodes/1.VY0dUXdC.js.br +3 -0
- package/build/_app/immutable/nodes/1.VY0dUXdC.js.gz +0 -0
- package/build/_app/immutable/nodes/{16.RilBjs7p.js → 16.DbzAOHBQ.js} +1 -1
- package/build/_app/immutable/nodes/16.DbzAOHBQ.js.br +0 -0
- package/build/_app/immutable/nodes/16.DbzAOHBQ.js.gz +0 -0
- package/build/_app/immutable/nodes/{17.lZCHazN-.js → 17.DueeZkqc.js} +3 -3
- package/build/_app/immutable/nodes/17.DueeZkqc.js.br +0 -0
- package/build/_app/immutable/nodes/17.DueeZkqc.js.gz +0 -0
- package/build/_app/immutable/nodes/{2.47DRuv-7.js → 2.hazKP8jr.js} +2 -2
- package/build/_app/immutable/nodes/2.hazKP8jr.js.br +0 -0
- package/build/_app/immutable/nodes/2.hazKP8jr.js.gz +0 -0
- package/build/_app/immutable/nodes/{3.BTFj2TcK.js → 3.DUnb-wiO.js} +1 -1
- package/build/_app/immutable/nodes/3.DUnb-wiO.js.br +0 -0
- package/build/_app/immutable/nodes/3.DUnb-wiO.js.gz +0 -0
- package/build/_app/immutable/nodes/{4.D7rKFBIq.js → 4.D8bBp4vF.js} +1 -1
- package/build/_app/immutable/nodes/4.D8bBp4vF.js.br +0 -0
- package/build/_app/immutable/nodes/4.D8bBp4vF.js.gz +0 -0
- package/build/_app/immutable/nodes/{6.C7VHMxJG.js → 6.DYttyFcS.js} +1 -1
- package/build/_app/immutable/nodes/6.DYttyFcS.js.br +0 -0
- package/build/_app/immutable/nodes/6.DYttyFcS.js.gz +0 -0
- package/build/_app/immutable/nodes/8.BESB58-w.js +2 -0
- package/build/_app/immutable/nodes/8.BESB58-w.js.br +0 -0
- package/build/_app/immutable/nodes/8.BESB58-w.js.gz +0 -0
- package/build/_app/immutable/nodes/{9.DGHLzn6-.js → 9.DGMSOk75.js} +1 -1
- package/build/_app/immutable/nodes/9.DGMSOk75.js.br +0 -0
- package/build/_app/immutable/nodes/{9.DGHLzn6-.js.gz → 9.DGMSOk75.js.gz} +0 -0
- package/build/_app/version.json +1 -1
- package/build/_app/version.json.br +0 -0
- package/build/_app/version.json.gz +0 -0
- package/build/index.html +9 -9
- package/build/index.html.br +0 -0
- package/build/index.html.gz +0 -0
- package/dist/index.js +25 -6
- package/dist/index.js.map +2 -2
- package/dist/types/backend/roleplay/conversation-store.d.ts +3 -2
- package/dist/types/backend/roleplay/router.d.ts +1 -1
- package/dist/types/backend/roleplay/variants.d.ts +1 -1
- package/dist/types/backend/server.d.ts +5 -5
- package/dist/types/backend/tests/router.d.ts +4 -4
- package/dist/types/lib/conversation.d.ts +3 -1
- package/dist/types/lib/tests/pii-sanitized-test-draft.d.ts +1 -1
- package/package.json +1 -1
- package/build/_app/immutable/chunks/BFUe72xu.js.br +0 -0
- package/build/_app/immutable/chunks/BFUe72xu.js.gz +0 -0
- package/build/_app/immutable/chunks/Bmkwccsg.js.br +0 -0
- package/build/_app/immutable/chunks/Bmkwccsg.js.gz +0 -0
- package/build/_app/immutable/chunks/CZcJNBdK.js +0 -1
- package/build/_app/immutable/chunks/CZcJNBdK.js.br +0 -2
- package/build/_app/immutable/chunks/CZcJNBdK.js.gz +0 -0
- package/build/_app/immutable/chunks/DdNCOsWe.js.br +0 -0
- package/build/_app/immutable/entry/app.L5djN6KO.js.br +0 -0
- package/build/_app/immutable/entry/app.L5djN6KO.js.gz +0 -0
- package/build/_app/immutable/entry/start.CGCxa4r9.js +0 -1
- package/build/_app/immutable/entry/start.CGCxa4r9.js.br +0 -0
- package/build/_app/immutable/entry/start.CGCxa4r9.js.gz +0 -0
- package/build/_app/immutable/nodes/0.DxT2ZCBH.js.br +0 -0
- package/build/_app/immutable/nodes/0.DxT2ZCBH.js.gz +0 -0
- package/build/_app/immutable/nodes/1.CuGmyB-B.js.br +0 -2
- package/build/_app/immutable/nodes/1.CuGmyB-B.js.gz +0 -0
- package/build/_app/immutable/nodes/16.RilBjs7p.js.br +0 -0
- package/build/_app/immutable/nodes/16.RilBjs7p.js.gz +0 -0
- package/build/_app/immutable/nodes/17.lZCHazN-.js.br +0 -0
- package/build/_app/immutable/nodes/17.lZCHazN-.js.gz +0 -0
- package/build/_app/immutable/nodes/2.47DRuv-7.js.br +0 -0
- package/build/_app/immutable/nodes/2.47DRuv-7.js.gz +0 -0
- package/build/_app/immutable/nodes/3.BTFj2TcK.js.br +0 -0
- package/build/_app/immutable/nodes/3.BTFj2TcK.js.gz +0 -0
- package/build/_app/immutable/nodes/4.D7rKFBIq.js.br +0 -0
- package/build/_app/immutable/nodes/4.D7rKFBIq.js.gz +0 -0
- package/build/_app/immutable/nodes/6.C7VHMxJG.js.br +0 -0
- package/build/_app/immutable/nodes/6.C7VHMxJG.js.gz +0 -0
- package/build/_app/immutable/nodes/8.B-2mfKlr.js +0 -2
- package/build/_app/immutable/nodes/8.B-2mfKlr.js.br +0 -0
- package/build/_app/immutable/nodes/8.B-2mfKlr.js.gz +0 -0
- package/build/_app/immutable/nodes/9.DGHLzn6-.js.br +0 -0
|
@@ -12,8 +12,9 @@ export declare function saveConversation(ctx: BosunContext, conversation: Conver
|
|
|
12
12
|
export declare function deleteConversation(ctx: BosunContext, conversationId: string): Promise<void>;
|
|
13
13
|
export declare function listConversations(ctx: BosunContext, agentId: string): Promise<ConversationHeader[]>;
|
|
14
14
|
/**
|
|
15
|
-
* Drops `fromTurn` and everything after it,
|
|
16
|
-
* so the caller can replay it. This is how
|
|
15
|
+
* Drops `fromTurn` and everything after it, rewinds the context to the state that turn started from,
|
|
16
|
+
* and returns the inbound message that started it so the caller can replay it. This is how
|
|
17
|
+
* "regenerate" works now that conversations never branch.
|
|
17
18
|
*/
|
|
18
19
|
export declare function truncateConversation(ctx: BosunContext, conversationId: string, fromTurn: number): Promise<{
|
|
19
20
|
conversation: Conversation;
|
|
@@ -164,7 +164,6 @@ export declare function createRolePlayRouter(t: TRPCRootObject<TrpcContext, any,
|
|
|
164
164
|
generateVariants: import("@trpc/server").TRPCMutationProcedure<{
|
|
165
165
|
input: {
|
|
166
166
|
conversationId: string;
|
|
167
|
-
context?: Record<string, unknown> | null | undefined;
|
|
168
167
|
promptOverrides?: Record<string, string> | undefined;
|
|
169
168
|
count?: number | undefined;
|
|
170
169
|
};
|
|
@@ -175,6 +174,7 @@ export declare function createRolePlayRouter(t: TRPCRootObject<TrpcContext, any,
|
|
|
175
174
|
input: {
|
|
176
175
|
conversationId: string;
|
|
177
176
|
entries: any[];
|
|
177
|
+
context: Record<string, unknown>;
|
|
178
178
|
};
|
|
179
179
|
output: {
|
|
180
180
|
ok: boolean;
|
|
@@ -5,6 +5,7 @@ export interface GeneratedVariant {
|
|
|
5
5
|
id: string;
|
|
6
6
|
text: string;
|
|
7
7
|
entries: ConversationEntry[];
|
|
8
|
+
context: Record<string, unknown>;
|
|
8
9
|
}
|
|
9
10
|
/**
|
|
10
11
|
* Re-runs the conversation's last turn `count` times without touching the stored conversation.
|
|
@@ -13,6 +14,5 @@ export interface GeneratedVariant {
|
|
|
13
14
|
export declare function generateReplyVariants(ctx: BosunContext, props: {
|
|
14
15
|
conversation: Conversation;
|
|
15
16
|
count: number;
|
|
16
|
-
context?: Record<string, unknown>;
|
|
17
17
|
promptOverrides?: PromptOverrides;
|
|
18
18
|
}): Promise<GeneratedVariant[]>;
|
|
@@ -170,7 +170,6 @@ declare const appRouter: import("@trpc/server").TRPCBuiltRouter<{
|
|
|
170
170
|
generateVariants: import("@trpc/server").TRPCMutationProcedure<{
|
|
171
171
|
input: {
|
|
172
172
|
conversationId: string;
|
|
173
|
-
context?: Record<string, unknown> | null | undefined;
|
|
174
173
|
promptOverrides?: Record<string, string> | undefined;
|
|
175
174
|
count?: number | undefined;
|
|
176
175
|
};
|
|
@@ -181,6 +180,7 @@ declare const appRouter: import("@trpc/server").TRPCBuiltRouter<{
|
|
|
181
180
|
input: {
|
|
182
181
|
conversationId: string;
|
|
183
182
|
entries: any[];
|
|
183
|
+
context: Record<string, unknown>;
|
|
184
184
|
};
|
|
185
185
|
output: {
|
|
186
186
|
ok: boolean;
|
|
@@ -375,6 +375,7 @@ declare const appRouter: import("@trpc/server").TRPCBuiltRouter<{
|
|
|
375
375
|
input: {
|
|
376
376
|
agent: string;
|
|
377
377
|
seed: {
|
|
378
|
+
context?: Record<string, unknown> | undefined;
|
|
378
379
|
conversation?: string | undefined;
|
|
379
380
|
pinned?: "TRUE" | "FALSE" | undefined;
|
|
380
381
|
scenario?: string | undefined;
|
|
@@ -389,7 +390,6 @@ declare const appRouter: import("@trpc/server").TRPCBuiltRouter<{
|
|
|
389
390
|
context_mode?: "replace" | "merge" | undefined;
|
|
390
391
|
timeout?: string | undefined;
|
|
391
392
|
similarity_threshold?: string | undefined;
|
|
392
|
-
context?: Record<string, unknown> | undefined;
|
|
393
393
|
mocks?: Record<string, unknown> | undefined;
|
|
394
394
|
};
|
|
395
395
|
beforeTestId?: string | undefined;
|
|
@@ -471,9 +471,9 @@ declare const appRouter: import("@trpc/server").TRPCBuiltRouter<{
|
|
|
471
471
|
agent: string;
|
|
472
472
|
draftId: string;
|
|
473
473
|
reviewed: {
|
|
474
|
+
context: Record<string, unknown>;
|
|
474
475
|
conversation: string;
|
|
475
476
|
expected_output: string;
|
|
476
|
-
context: Record<string, unknown>;
|
|
477
477
|
mocks?: Record<string, unknown> | undefined;
|
|
478
478
|
};
|
|
479
479
|
};
|
|
@@ -488,6 +488,7 @@ declare const appRouter: import("@trpc/server").TRPCBuiltRouter<{
|
|
|
488
488
|
agent: string;
|
|
489
489
|
id: string;
|
|
490
490
|
patch: {
|
|
491
|
+
context?: Record<string, unknown> | undefined;
|
|
491
492
|
conversation?: string | undefined;
|
|
492
493
|
pinned?: "TRUE" | "FALSE" | undefined;
|
|
493
494
|
scenario?: string | undefined;
|
|
@@ -502,7 +503,6 @@ declare const appRouter: import("@trpc/server").TRPCBuiltRouter<{
|
|
|
502
503
|
context_mode?: "replace" | "merge" | undefined;
|
|
503
504
|
timeout?: string | undefined;
|
|
504
505
|
similarity_threshold?: string | undefined;
|
|
505
|
-
context?: Record<string, unknown> | undefined;
|
|
506
506
|
mocks?: Record<string, unknown> | undefined;
|
|
507
507
|
};
|
|
508
508
|
};
|
|
@@ -572,6 +572,7 @@ declare const appRouter: import("@trpc/server").TRPCBuiltRouter<{
|
|
|
572
572
|
updates: {
|
|
573
573
|
id: string;
|
|
574
574
|
patch: {
|
|
575
|
+
context?: Record<string, unknown> | undefined;
|
|
575
576
|
conversation?: string | undefined;
|
|
576
577
|
pinned?: "TRUE" | "FALSE" | undefined;
|
|
577
578
|
scenario?: string | undefined;
|
|
@@ -586,7 +587,6 @@ declare const appRouter: import("@trpc/server").TRPCBuiltRouter<{
|
|
|
586
587
|
context_mode?: "replace" | "merge" | undefined;
|
|
587
588
|
timeout?: string | undefined;
|
|
588
589
|
similarity_threshold?: string | undefined;
|
|
589
|
-
context?: Record<string, unknown> | undefined;
|
|
590
590
|
mocks?: Record<string, unknown> | undefined;
|
|
591
591
|
};
|
|
592
592
|
}[];
|
|
@@ -123,6 +123,7 @@ export declare function createTestsRouter(t: TRPCRootObject<TrpcContext, any, an
|
|
|
123
123
|
input: {
|
|
124
124
|
agent: string;
|
|
125
125
|
seed: {
|
|
126
|
+
context?: Record<string, unknown> | undefined;
|
|
126
127
|
conversation?: string | undefined;
|
|
127
128
|
pinned?: "TRUE" | "FALSE" | undefined;
|
|
128
129
|
scenario?: string | undefined;
|
|
@@ -137,7 +138,6 @@ export declare function createTestsRouter(t: TRPCRootObject<TrpcContext, any, an
|
|
|
137
138
|
context_mode?: "replace" | "merge" | undefined;
|
|
138
139
|
timeout?: string | undefined;
|
|
139
140
|
similarity_threshold?: string | undefined;
|
|
140
|
-
context?: Record<string, unknown> | undefined;
|
|
141
141
|
mocks?: Record<string, unknown> | undefined;
|
|
142
142
|
};
|
|
143
143
|
beforeTestId?: string | undefined;
|
|
@@ -219,9 +219,9 @@ export declare function createTestsRouter(t: TRPCRootObject<TrpcContext, any, an
|
|
|
219
219
|
agent: string;
|
|
220
220
|
draftId: string;
|
|
221
221
|
reviewed: {
|
|
222
|
+
context: Record<string, unknown>;
|
|
222
223
|
conversation: string;
|
|
223
224
|
expected_output: string;
|
|
224
|
-
context: Record<string, unknown>;
|
|
225
225
|
mocks?: Record<string, unknown> | undefined;
|
|
226
226
|
};
|
|
227
227
|
};
|
|
@@ -236,6 +236,7 @@ export declare function createTestsRouter(t: TRPCRootObject<TrpcContext, any, an
|
|
|
236
236
|
agent: string;
|
|
237
237
|
id: string;
|
|
238
238
|
patch: {
|
|
239
|
+
context?: Record<string, unknown> | undefined;
|
|
239
240
|
conversation?: string | undefined;
|
|
240
241
|
pinned?: "TRUE" | "FALSE" | undefined;
|
|
241
242
|
scenario?: string | undefined;
|
|
@@ -250,7 +251,6 @@ export declare function createTestsRouter(t: TRPCRootObject<TrpcContext, any, an
|
|
|
250
251
|
context_mode?: "replace" | "merge" | undefined;
|
|
251
252
|
timeout?: string | undefined;
|
|
252
253
|
similarity_threshold?: string | undefined;
|
|
253
|
-
context?: Record<string, unknown> | undefined;
|
|
254
254
|
mocks?: Record<string, unknown> | undefined;
|
|
255
255
|
};
|
|
256
256
|
};
|
|
@@ -320,6 +320,7 @@ export declare function createTestsRouter(t: TRPCRootObject<TrpcContext, any, an
|
|
|
320
320
|
updates: {
|
|
321
321
|
id: string;
|
|
322
322
|
patch: {
|
|
323
|
+
context?: Record<string, unknown> | undefined;
|
|
323
324
|
conversation?: string | undefined;
|
|
324
325
|
pinned?: "TRUE" | "FALSE" | undefined;
|
|
325
326
|
scenario?: string | undefined;
|
|
@@ -334,7 +335,6 @@ export declare function createTestsRouter(t: TRPCRootObject<TrpcContext, any, an
|
|
|
334
335
|
context_mode?: "replace" | "merge" | undefined;
|
|
335
336
|
timeout?: string | undefined;
|
|
336
337
|
similarity_threshold?: string | undefined;
|
|
337
|
-
context?: Record<string, unknown> | undefined;
|
|
338
338
|
mocks?: Record<string, unknown> | undefined;
|
|
339
339
|
};
|
|
340
340
|
}[];
|
|
@@ -9,7 +9,7 @@ interface Entry<Kind extends string, Payload> {
|
|
|
9
9
|
createdAt: number;
|
|
10
10
|
payload: Payload;
|
|
11
11
|
}
|
|
12
|
-
export type ConversationEntry = Entry<'message', Message> | Entry<'conversational-trace', ConversationalTrace> | Entry<'step-trace', StepTrace> | Entry<'api-call-trace', ApiCallTrace> | Entry<'log', LogEntry
|
|
12
|
+
export type ConversationEntry = Entry<'message', Message> | Entry<'conversational-trace', ConversationalTrace> | Entry<'step-trace', StepTrace> | Entry<'api-call-trace', ApiCallTrace> | Entry<'log', LogEntry> | Entry<'context', Record<string, unknown>>;
|
|
13
13
|
export type ConversationEntryKind = ConversationEntry['kind'];
|
|
14
14
|
export interface Conversation {
|
|
15
15
|
conversationId: string;
|
|
@@ -28,6 +28,8 @@ export interface ConversationHeader {
|
|
|
28
28
|
}
|
|
29
29
|
export declare function messageSummary(message: Message): string;
|
|
30
30
|
export declare function lastTurn(conversation: Conversation): number;
|
|
31
|
+
/** The runtime context the agent had when `turn` began, as recorded by `runTurn`. */
|
|
32
|
+
export declare function turnStartContext(entries: ConversationEntry[], turn: number): Record<string, unknown> | null;
|
|
31
33
|
export declare function conversationMessages(conversation: Conversation): Message[];
|
|
32
34
|
export declare function conversationHeader(conversation: Conversation): ConversationHeader;
|
|
33
35
|
export {};
|
|
@@ -18,9 +18,9 @@ export declare const TraceTestSeedSchema: z.ZodObject<{
|
|
|
18
18
|
}, z.core.$strict>;
|
|
19
19
|
export type TraceTestSeed = z.infer<typeof TraceTestSeedSchema>;
|
|
20
20
|
export declare const TraceTestReviewContentSchema: z.ZodObject<{
|
|
21
|
+
context: z.ZodRecord<z.ZodString, z.ZodUnknown>;
|
|
21
22
|
conversation: z.ZodString;
|
|
22
23
|
expected_output: z.ZodString;
|
|
23
|
-
context: z.ZodRecord<z.ZodString, z.ZodUnknown>;
|
|
24
24
|
mocks: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
25
25
|
}, z.core.$strict>;
|
|
26
26
|
export type TraceTestReviewContent = z.infer<typeof TraceTestReviewContentSchema>;
|
package/package.json
CHANGED
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import"./Bmkwccsg.js";
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{r as e,s as t}from"../chunks/Bmkwccsg.js";export{t as load_css,e as start};
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{B as e,Dt as t,E as n,F as r,G as i,H as a,I as o,L as s,N as c,Nt as l,O as u,Ot as d,Pt as f,S as p,V as m,a as h,at as g,b as _,dt as v,et as y,gt as b,it as x,j as S,k as C,l as w,m as ee,ot as T,pt as E,r as D,st as O,tt as k,x as te,z as A}from"../chunks/CPCsWwEy.js";import"../chunks/xihTtKlq.js";import{r as j,t as M}from"../chunks/oarl--hZ.js";import{t as N}from"../chunks/6OCsQ6r7.js";import{t as P}from"../chunks/Cf3l6QEG.js";import{t as F}from"../chunks/DWoqp3ac.js";import{t as ne}from"../chunks/B9YnyJ2j.js";import{c as re,i as I,o as ie,s as L}from"../chunks/By9tvIIw.js";import{r as ae}from"../chunks/BOHUKGg_.js";import{t as oe}from"../chunks/D3fLfD-Y.js";import{a as se,i as ce,n as le,o as ue,r as de,s as R,t as fe}from"../chunks/DdNCOsWe.js";var pe=s(`<span class="min-w-0 flex-1 truncate text-left"> </span> <!>`,1),z=s(`<div class="flex items-start gap-2"><div class="min-w-0"><div class="truncate p-1 text-sm text-rc-gray-300 group-hover:text-rc-gray-200"> </div> <div> </div></div></div>`),B=s(`<div class="mt-1 max-h-96 w-max min-w-full max-w-[min(26rem,90vw)] overflow-y-auto overflow-x-hidden rounded-lg border border-rc-gray-110 bg-rc-gray-930 backdrop-blur-2xl" role="listbox"></div>`),V=s(`<div><!> <!></div>`);function H(e,n){d(n,!0);let a=h(n,`class`,3,``),o=E(!1),s=E(null),l=[`Jan`,`Feb`,`Mar`,`Apr`,`May`,`Jun`,`Jul`,`Aug`,`Sep`,`Oct`,`Nov`,`Dec`];function p(){v(o,!i(o))}function m(e){n.onSelect(e),v(o,!1)}function _(e){return(e.lastMessage??``).trim()||`No messages`}function S(e,t=50,n=`…`){if(!e)return``;if(e.length<=t)return e;let r=e.slice(0,t+1),i=Math.max(r.lastIndexOf(` `),r.lastIndexOf(`\xA0`),r.lastIndexOf(` `),r.lastIndexOf(`
|
|
2
|
-
`),r.lastIndexOf(`\r`));return(i>0?r.slice(0,i):e.slice(0,t)).trimEnd()+n}function w(e){e.key===`ArrowDown`&&!i(o)?(v(o,!0),e.preventDefault()):e.key===`ArrowUp`&&i(o)&&(v(o,!1),e.preventDefault())}function ee(e){let t=e.getDate(),n=l[e.getMonth()],r=e.getHours(),i=r>=12?`PM`:`AM`;r%=12,r===0&&(r=12);let a=String(e.getMinutes()).padStart(2,`0`),o=new Date,s=e.getFullYear();return`${t} ${n}${s===o.getFullYear()?``:` ${s}`}, ${r}:${a} ${i}`}function D(e){return ee(new Date(e.createdAt))}let O=b(()=>n.conversations.find(e=>e.conversationId===n.currentConversationId)??null),k=b(()=>i(O)?D(i(O)):`History`);var A=V(),j=x(A);N(j,{variant:`ghost`,get"aria-expanded"(){return i(o)},"aria-haspopup":`listbox`,"aria-controls":`history-dropdown`,onclick:p,onkeydown:w,class:`inline-flex w-40 items-center rounded-lg border border-transparent !bg-rc-gray-700 !px-3 !pb-1 !pt-[5px] text-rc-gray-200 hover:border hover:border-rc-gray-500 focus:outline-none focus:ring-0`,get el(){return i(s)},set el(e){v(s,e,!0)},children:(e,t)=>{var n=pe(),a=g(n),s=x(a,!0);f(a);var l=T(a,2);{let e=b(()=>`size-7 shrink-0 text-rc-gray-500 transition-transform duration-200 `+(i(o)?`rotate-180`:``));P(l,{name:`chevron-down`,get class(){return i(e)}})}y(()=>c(s,i(k))),r(e,n)},$$slots:{default:!0}});var M=T(j,2);R(M,{id:`history-dropdown`,get open(){return i(o)},onClose:()=>v(o,!1),get anchorEl(){return i(s)},placement:`bottom-start`,offset:[0,1],children:e=>{var t=B();u(t,21,()=>n.conversations,C,(e,t)=>{{let a=b(()=>i(t).conversationId===n.currentConversationId);N(e,{variant:`ghost`,size:`small`,role:`option`,get"aria-selected"(){return i(a)},onclick:()=>m(i(t).conversationId),class:`group w-full rounded-none border-b border-rc-gray-110 py-2 pr-3 text-left backdrop-blur-2xl last:border-b-0 hover:bg-rc-gray-700 focus:bg-rc-gray-400`,children:(e,a)=>{var o=z(),s=x(o),l=x(s),u=x(l,!0);f(l);var d=T(l,2),p=x(d,!0);f(d),f(s),f(o),y((e,r)=>{c(u,e),te(d,1,`truncate p-1 text-base font-semibold `+(i(t).conversationId===n.currentConversationId?`text-rc-green-200`:`text-rc-gray-100`)),c(p,r)},[()=>D(i(t)),()=>S(_(i(t)))]),r(e,o)},$$slots:{default:!0}})}}),f(t),r(e,t)},$$slots:{default:!0}}),f(A),y(()=>te(A,1,`relative ${a()}`)),r(e,A),t()}var U=s(`<dialog class="dialog m-auto bg-transparent p-0 text-rc-gray-100 shadow-md svelte-jby388"><!> <!></dialog>`);function me(e,i){d(i,!0);let a,o=h(i,`showCloseButton`,3,!1),s=h(i,`onClose`,3,()=>{}),c=h(i,`onOpen`,3,()=>{}),u=h(i,`isOpen`,3,!1);k(()=>{u()?(console.log(`show`),a?.showModal(),c()()):a?.open&&(console.log(`close`),a.close())});function p(){s()()}D(()=>(a.addEventListener(`close`,p),()=>{a.removeEventListener(`close`,p)}));function g(e){e.target===a&&a.close()}var _=U(),v=x(_);n(v,()=>i.children);var y=T(v,2),b=e=>{N(e,{variant:`ghost`,onclick:()=>a.close(),class:`absolute right-2 top-2`,children:(e,t)=>{l();var n=A(`✕`);r(e,n)},$$slots:{default:!0}})};S(y,e=>{o()&&e(b)}),f(_),w(_,e=>a=e,()=>a),m(`mousedown`,_,g),r(e,_),t()}e([`mousedown`]);function he(e){if(!Array.isArray(e))return[];let t=[];for(let n of e){if(!n||typeof n!=`object`)continue;let e=n.text,r=n.lastSeen,i=n.uses;if(typeof e!=`string`||typeof r!=`number`||!Number.isFinite(r)||typeof i!=`number`||!Number.isFinite(i))continue;let a=e.trim();a&&t.push({text:a,lastSeen:r,uses:i})}return t.sort((e,t)=>t.lastSeen-e.lastSeen),t}function ge(e,t,n=2e3){let r=t.trim();if(!r)return e;let i=(e[0]?.lastSeen??0)+1,a=e.findIndex(e=>e.text===r),o;if(a!==-1){let t=e[a];o=[{text:t.text,lastSeen:i,uses:(t.uses??0)+1},...e.slice(0,a),...e.slice(a+1)]}else o=[{text:r,lastSeen:i,uses:1},...e];return o.length>n?o.slice(0,n):o}function _e(e,t,n=2e3){if(!t.length)return e;if(!e.length)return t;let r=e[0]?.lastSeen??0,i=(t[0]?.lastSeen??0)>r?t:t.map((e,n)=>({...e,lastSeen:r+(t.length-n)})),a=new Map;for(let t of e)a.set(t.text,t);for(let e of i){let t=a.get(e.text);if(!t){a.set(e.text,e);continue}a.set(e.text,{text:e.text,lastSeen:Math.max(t.lastSeen,e.lastSeen),uses:t.uses+e.uses})}return Array.from(a.values()).sort((e,t)=>t.lastSeen-e.lastSeen).slice(0,n)}function ve(e,t,n=5){if(!t.length)return[];let r=e.trim().toLowerCase(),i=W(e,!1).text,a=/\s$/u.test(e);if(!W(e,!0).text)return[];let o=[];for(let e of t){let t=W(e.text);if(!t.text||e.text.trim().toLowerCase()===r)continue;let n=ye(t,e.text,i,a);n&&o.push({item:e,match:n})}return o.sort((e,t)=>e.match.kindRank===t.match.kindRank?e.match.span===t.match.span?e.match.start===t.match.start?e.item.lastSeen===t.item.lastSeen?e.item.uses===t.item.uses?e.item.text.length-t.item.text.length:t.item.uses-e.item.uses:t.item.lastSeen-e.item.lastSeen:e.match.start-t.match.start:e.match.span-t.match.span:e.match.kindRank-t.match.kindRank),o.slice(0,n).map(e=>({text:e.item.text,prefixEndIndex:e.match.prefixEndIndex,segments:xe(e.item.text,e.match.ranges)}))}function W(e,t=!0){let n=[],r=[];for(let t=0;t<e.length;t++){let i=G(e[t]);if(i===` `){if(!n.length)continue;let e=n.length-1;if(n[e]===` `){r[e][1]=t+1;continue}}n.push(i),r.push([t,t+1])}return t&&n[n.length-1]===` `&&(n.pop(),r.pop()),{text:n.join(``),ranges:r}}function G(e){if(/\s/u.test(e))return` `;try{return/[\p{P}\p{S}]/u.test(e)?` `:e.toLowerCase()}catch{return/[^a-z0-9\s]/i.test(e)?` `:e.toLowerCase()}}function ye(e,t,n,r){if(!e.text)return null;if(e.text.startsWith(n)){let e=be(t,n,r)??t.length,i=Math.max(0,Math.min(t.length,e));return{kindRank:0,start:0,span:n.length,ranges:[[0,i]],prefixEndIndex:i}}let i=e.text.indexOf(n);return i===-1?null:{kindRank:J(e.text,i,n.length),start:i,span:n.length,ranges:Y(e,i,i+n.length),prefixEndIndex:t.length}}function K(e,t){return t<=0||e[t-1]===` `}function q(e,t){return t>=e.length||e[t]===` `}function J(e,t,n){let r=K(e,t),i=q(e,t+n);return r&&i?1:r?2:3}function Y(e,t,n){let r=Math.max(0,Math.min(e.ranges.length,t)),i=Math.max(r,Math.min(e.ranges.length,n));return X(e.ranges.slice(r,i))}function be(e,t,n){if(!t)return null;let r=``,i=!0;for(let a=0;a<e.length;a++){let o=e[a],s;if(/\s/u.test(o))s=` `;else try{s=/[\p{P}\p{S}]/u.test(o)?` `:o.toLowerCase()}catch{s=/[^a-z0-9\s]/i.test(o)?` `:o.toLowerCase()}if(s===` `){if(i)continue;r+=` `,i=!0}else r+=s,i=!1;if(r.length===t.length){if(r!==t)return null;let i=a+1;if(n&&t.endsWith(` `)){let t=i;for(;t<e.length;){let n=e[t];if(/\s/u.test(n)){t+=1;continue}try{if(/[\p{P}\p{S}]/u.test(n)){t+=1;continue}}catch{if(/[^a-z0-9\s]/i.test(n)){t+=1;continue}}break}i=t}return i}if(r.length>t.length)return null}return null}function xe(e,t){let n=X(t);if(!n.length)return[{text:e,matched:!1}];let r=[],i=0;for(let[t,a]of n)t>i&&r.push({text:e.slice(i,t),matched:!1}),r.push({text:e.slice(t,a),matched:!0}),i=a;return i<e.length&&r.push({text:e.slice(i),matched:!1}),r.filter(e=>e.text.length>0)}function X(e){if(!e.length)return[];let t=e.map(([e,t])=>[Math.max(0,e),Math.max(0,t)]).filter(([e,t])=>t>e).sort((e,t)=>e[0]-t[0]||e[1]-t[1]);if(!t.length)return[];let n=[[t[0][0],t[0][1]]];for(let e=1;e<t.length;e++){let[r,i]=t[e],a=n[n.length-1];if(r<=a[1]){a[1]=Math.max(a[1],i);continue}n.push([r,i])}return n}var Se=s(`<form><h2 class="text-l mb-4 text-gray-300">Image URL</h2> <!> <!></form>`),Ce=s(`<div class="my-2 flex w-full justify-center"><div class="rounded-full border border-rc-gray-650 bg-rc-gray-800/40 px-3 py-1 text-xs text-rc-gray-200"> </div></div>`),we=s(`<div class="rounded-lg border border-rc-green-450 bg-transparent px-3 py-2 text-sm text-rc-gray-300">Generating 9 more variants…</div>`),Te=s(`<div class="rounded-lg border border-red-500/70 bg-red-950/20 px-3 py-2 text-sm text-red-200"> </div>`),Ee=s(`<button type="button"><div class="whitespace-pre-line break-words"> </div></button>`),De=s(`<div class="ml-7 mt-2 flex flex-col gap-2"><!> <!> <!></div>`),Oe=s(`<!> <div class="log-element"><div><!></div> <!></div>`,1),ke=s(`<div class="absolute bottom-2 left-2 right-2 z-10 flex items-center gap-3 rounded-lg border border-rc-green-450 bg-rc-gray-930/90 px-3 py-3 font-semibold text-rc-gray-100 shadow-inner-white-soft backdrop-blur-3xl"><span>Choose a variant above to continue</span> <button type="button" class="rounded border-0 bg-transparent px-1 py-0.5 text-rc-gray-300 transition-colors hover:bg-rc-gray-900 hover:text-rc-gray-100 focus:outline-none focus-visible:outline-none disabled:cursor-wait disabled:opacity-50">Regenerate</button> <button type="button" class="rounded border-0 bg-transparent px-1 py-0.5 text-rc-gray-300 transition-colors hover:bg-rc-gray-900 hover:text-rc-gray-100 focus:outline-none focus-visible:outline-none">Cancel</button></div>`),Ae=s(`<div class="absolute bottom-16 left-2 right-2 z-20 rounded-lg border border-red-500/60 bg-red-950/90 px-3 py-2 text-sm text-red-100 shadow-lg" role="alert"> </div>`),je=s(`<span> </span>`),Me=s(`<button type="button" role="option" tabindex="-1"></button>`),Ne=s(`<div class="absolute bottom-full left-0 right-0 mb-1 max-h-60 overflow-y-auto rounded-lg border border-rc-gray-110 bg-rc-gray-930 shadow-inner-white-soft backdrop-blur-2xl" role="listbox"></div>`),Pe=s(`<div class="pointer-events-none absolute inset-0 z-10 overflow-hidden rounded-lg" aria-hidden="true"><div class="whitespace-pre text-rc-gray-400/70"><span class="invisible"> </span><span> </span></div></div>`),Fe=s(`<!> <form><fieldset class="absolute bottom-2 left-2 right-2 z-10 flex gap-2 disabled:opacity-35"><div class="relative flex-1"><!> <!> <button type="button" class="absolute bottom-0 left-3 top-0 z-20 inline-flex items-center border-r border-rc-gray-500/70 bg-transparent pr-2 text-base font-semibold leading-6 text-rc-gray-300 transition-colors duration-75 hover:text-rc-gray-300 focus:outline-none focus-visible:outline-none disabled:cursor-not-allowed disabled:opacity-50"> </button> <!></div> <!> <!></fieldset></form>`,1),Ie=s(`<div class="rc-scroll min-h-0 flex-1 overflow-y-auto pr-1"></div> <!>`,1),Le=s(`<!> <!>`,1);function Z(e,n){d(n,!0);let s=h(n,`promptEditProposalId`,3,null),D=h(n,`analyzeDisabled`,3,!1),M=h(n,`variantSourceTrace`,3,null),ae=h(n,`variantChoices`,19,()=>[]),se=h(n,`variantLoading`,3,!1),R=h(n,`variantApplyingId`,3,null),pe=h(n,`variantError`,3,null),z=O(new Set),B=E(``),V=E(``),H=E(``),U,W=E(!1),G=E(null),ye=E(``),K=E(!1),q=E(`user`),J=E(null),Y=E(O([])),be=E(null),xe=E(!1),X=E(!1),Z=E(null),Q=b(()=>ve(i(B),i(Y))),Re=b(()=>i(Z)==null?null:i(Q)[i(Z)]??null),ze=b(()=>i(Re)?i(Re).text.slice(i(Re).prefixEndIndex):``),Be=b(()=>!M()&&!i(H)&&i(B).trim().length===0);k(()=>{if(typeof window>`u`)return;if(!i(G)){v(ye,``);return}let e=window.getComputedStyle(i(G)),t=`calc(${e.paddingTop} + ${e.borderTopWidth})`,n=`calc(${e.paddingRight} + ${e.borderRightWidth})`,r=`calc(${e.paddingBottom} + ${e.borderBottomWidth})`,a=`calc(${e.paddingLeft} + ${e.borderLeftWidth})`;v(ye,[`padding:${t} ${n} ${r} ${a}`,`font:${e.font}`,`letter-spacing:${e.letterSpacing}`,`line-height:${e.lineHeight}`,`text-indent:${e.textIndent}`,`text-transform:${e.textTransform}`,`text-align:${e.textAlign}`,`box-sizing:${e.boxSizing}`].join(`;`),!0)}),k(()=>{i(Z)!=null&&i(Z)>=i(Q).length&&v(Z,null)});let Ve=b(()=>M()||!i(xe)||i(X)?!1:i(Q).length>0);function He(e){v(B,e.text,!0),v(Z,null),v(X,!0)}function Ue(){v(xe,!0),v(X,!1)}function We(){v(xe,!1),v(Z,null),v(X,!1)}function Ge(){v(Z,null),v(X,!1)}function Ke(e){if(e.key===`Escape`){i(Ve)&&e.preventDefault(),v(X,!0),v(Z,null);return}if(e.key===`ArrowUp`||e.key===`ArrowDown`){if(!i(Q).length)return;i(X)&&v(X,!1),e.preventDefault();let t=i(Q).length-1;if(i(Z)===null)v(Z,e.key===`ArrowUp`?t:0,!0);else{let n=e.key===`ArrowUp`?-1:1;v(Z,Math.max(0,Math.min(t,i(Z)+n)),!0)}return}if(e.key===`Enter`||e.key===`Tab`&&!e.shiftKey){if(i(Z)===null)return;let t=i(Q)[i(Z)];if(!t)return;e.preventDefault(),He(t);return}}let qe=null,Je=!1,Ye=0;function Xe(){typeof window>`u`||U&&(!Je&&z.has(U)||(qe??=requestAnimationFrame(()=>{if(qe=null,!U||!Je&&z.has(U))return;let e=U.scrollHeight-(U.scrollTop+U.clientHeight),t=Je||e>U.clientHeight?`auto`:`smooth`;U.scrollTo({top:U.scrollHeight,behavior:t}),Je=!1})))}k(()=>{let e=I.length;e===0&&Ye>0&&(Je=!0,U&&z.delete(U)),Ye=e,e>0&&Xe()});function Ze(e){e.scrollTop+e.clientHeight+200>e.scrollHeight?z.delete(e):z.add(e)}function Qe(e){i(K)||(i(B).trim().length>0||i(H))&&(v(Y,ge(i(Y),i(B)),!0),n.onmessage({sender:e,text:i(B),imageUrl:i(H)}),v(H,``),v(B,``),v(q,`user`),v(X,!1),v(Z,null))}function $e(e){e.preventDefault(),Qe(i(q))}function et(){v(q,i(q)===`system`?`user`:`system`,!0),requestAnimationFrame(()=>i(G)?.focus())}function tt(e){e.preventDefault(),v(H,i(V),!0),v(V,``),v(W,!1)}function nt(e){return e&&typeof e.renderedPrompt==`string`?e.renderedPrompt:null}function rt(e,t){for(let n=t-1;n>=0;n--){let t=e[n];if(re(t)&&ne(t.name)&&nt(t))return t}for(let n=t-1;n>=0;n--){let t=e[n];if(re(t)&&t.name===`prewarm`&&nt(t))return t}return null}function it(e){return(e.eventName===`received-message`||e.eventName===`llm-handler-stream-requested`)&&!String(e.content??``).trim()?!1:e.eventName===`received-message`||e.eventName===`llm-handler-stream-requested`||e.eventName===`finished-main-streaming-step`||e.eventName===`sent-message`||e.eventName===`transfer-requested`||e.eventName===`hangup-requested`}function at(e){return!!(n.agentId&&n.agentId.trim())&&e.eventName!==`transfer-requested`&&(e.eventName===`finished-main-streaming-step`||e.eventName===`sent-message`)}function ot(e){return e.role===`user`||e.eventName===`received-message`||e.eventName===`llm-handler-stream-requested`}function st(e){let t=String(e??``).trim();return!t||/^\[image\]\s+/.test(t)?``:t}function ct(e){let t=e?.bosunInputMessageSender;return t===`system`?`system`:t===`user`?`user`:e.role===`system`?`system`:`user`}function lt(e){if(!n.onRevertToState)return;let t=e?.bosunPrevStateId,r=typeof t==`string`&&t.trim().length>0?t:null;n.onRevertToState(r);let a=typeof e?.bosunUserMessage==`string`?e.bosunUserMessage:e.content;v(B,st(a),!0),v(q,ct(e),!0),v(X,!1),v(Z,null),requestAnimationFrame(()=>{try{i(G)?.focus(),i(G)?.select()}catch{}})}function ut(){n.agentType===`text`?v(W,!0):n.agentType===`voice`&&n.onHangup?.()}let dt=[`Jan`,`Feb`,`Mar`,`Apr`,`May`,`Jun`,`Jul`,`Aug`,`Sep`,`Oct`,`Nov`,`Dec`];function ft(e){if(typeof e!=`number`||!Number.isFinite(e))return null;let t=new Date(e);return Number.isNaN(t.getTime())?null:`${t.getFullYear()}-${String(t.getMonth()+1).padStart(2,`0`)}-${String(t.getDate()).padStart(2,`0`)}`}function pt(e){if(typeof e!=`number`||!Number.isFinite(e))return null;let t=new Date(e);return Number.isNaN(t.getTime())?null:`${t.getDate()} ${dt[t.getMonth()]} ${t.getFullYear()}`}let $=b(()=>I.filter(e=>ie(e)||re(e)?!0:L(e)?it(e):!1)),mt=b(()=>I.findLast(e=>L(e))?.eventName===`hangup-requested`),ht=b(()=>{let e=i($).map((e,t)=>({entry:e,index:t})).reverse().find(({entry:e,index:t})=>!L(e)||!at(e)?!1:i($).slice(0,t).some(e=>L(e)&&ot(e)));return e&&L(e.entry)?e.entry:null}),gt=b(()=>{let e=i(ht);if(!e)return null;try{let t=_t(e);return{model:t.model,stringifiedConversation:t.stringifiedConversation,response:t.response}}catch{return null}});function _t(e){if(!(n.agentId??``).trim())throw Error(`Agent id is not available; cannot analyze`);let t=I.indexOf(e);if(t===-1)throw Error(`Could not locate trace in chat history`);let r=de(I,t,{requireRenderedPrompt:!0});if(!r)throw Error(`Could not find main step trace for this message`);let i=typeof r.renderedPrompt==`string`?r.renderedPrompt:``;if(!i.trim())throw Error(`Main step rendered prompt is missing`);let a=typeof r.stringifiedConversation==`string`&&r.stringifiedConversation.trim()?r.stringifiedConversation:ce(I,t)??``,o=String(e?.content??``);if(!o.trim())throw Error(`Message content is missing`);let s=typeof r?.model==`string`?String(r.model):void 0,c=e?.createdAt;return{trace:e,stepTrace:r,renderedPrompt:i,stringifiedConversation:a,response:o,model:s,createdAt:typeof c==`number`&&Number.isFinite(c)?c:void 0}}function vt(e){if(n.onAnalyzeTrace)try{v(J,null),n.onAnalyzeTrace(_t(e))}catch(e){console.error(e),v(J,e instanceof Error?e.message:String(e),!0)}}function yt(e){if(n.onRegenerateTrace)try{v(J,null),n.onRegenerateTrace(e)}catch(e){console.error(e),v(J,e instanceof Error?e.message:String(e),!0)}}async function bt(){if(i(K))return;let e=i(gt);if(e){v(X,!0),v(Z,null),v(K,!0);try{let t=await F.agents.generateUserResponse.mutate(e);v(B,t.text,!0),v(X,!0),v(Z,null),requestAnimationFrame(()=>{try{i(G)?.focus(),i(G)?.setSelectionRange(t.text.length,t.text.length)}catch{}})}catch(e){console.error(`Failed to generate suggested user response`,e)}finally{v(K,!1)}}}k(()=>{if(typeof window>`u`)return;let e=(n.agentId??``).trim();if(!e||e===i(be))return;v(be,e,!0),v(Y,[],!0);let t=e,r=e;F.agents.userMessageHistory.query({agentId:t}).then(e=>{if(i(be)!==r)return;let t=he(e);v(Y,_e(t,i(Y)),!0),v(Z,null)}).catch(e=>{console.error(`Failed to load user message history`,e),i(be)===r&&(v(Y,[],!0),v(Z,null))})}),k(()=>{let e=M(),t=ae().length,n=se(),r=pe(),i=R();!e&&!t&&!n&&!r&&!i||Xe()});var xt=Le(),St=g(xt);me(St,{get isOpen(){return i(W)},onClose:()=>v(W,!1),showCloseButton:!0,children:(e,t)=>{j(e,{class:`p-4`,children:(e,t)=>{var n=Se(),o=T(x(n),2);oe(o,{class:`mb-2 w-80`,get value(){return i(V)},set value(e){v(V,e,!0)}});var s=T(o,2);N(s,{variant:`secondary`,type:`submit`,class:`ml-2 p-2`,children:(e,t)=>{l();var n=A(`Attach`);r(e,n)},$$slots:{default:!0}}),f(n),a(`submit`,n,tt),r(e,n)},$$slots:{default:!0}})},$$slots:{default:!0}});var Ct=T(St,2);j(Ct,{get class(){return`relative flex min-h-0 flex-col p-2 pb-16 ${n.class??``}`},children:(e,t)=>{var l=Ie(),d=g(l);u(d,21,()=>i($),C,(e,t,a)=>{let o=b(()=>ft(i(t).createdAt)),l=b(()=>a>0?ft(i($)[a-1].createdAt):null),d=b(()=>pt(i(t).createdAt));var p=Oe(),h=g(p),_=e=>{var t=Ce(),n=x(t),a=x(n,!0);f(n),f(t),y(()=>c(a,i(d))),r(e,t)};S(h,e=>{i(o)&&i(d)&&i(o)!==i(l)&&e(_)});var v=T(h,2),C=x(v),w=x(C),ee=e=>{ue(e,{get trace(){return i(t)}})},E=b(()=>ie(i(t))),O=e=>{{let r=b(()=>de(i($),a)),o=b(()=>n.onAnalyzeTrace?vt:void 0),c=b(()=>n.onRegenerateTrace?yt:void 0),l=b(()=>n.onRevertToState?lt:void 0),u=b(()=>!!n.onSeeVariants&&!M()&&i(t)===i(ht)),d=b(()=>M()&&i(t)===M()?`source`:`none`),f=b(()=>R()===null&&M()&&i(t)===M()?n.onChooseOriginalVariant:void 0),p=b(()=>!!M()&&i(t)===M());le(e,{testCreationMode:`direct`,get trace(){return i(t)},get context(){return n.context},get agentId(){return n.agentId},get promptEditProposalId(){return s()},get testSourceStep(){return i(r)},get testEntries(){return i($)},get analyzeDisabled(){return D()},get onAnalyze(){return i(o)},get onRegenerate(){return i(c)},get onRevert(){return i(l)},get showSeeVariants(){return i(u)},get onSeeVariants(){return n.onSeeVariants},get variantSelectionState(){return i(d)},get onSelectInVariantMode(){return i(f)},get suppressActionRow(){return i(p)}})}},k=b(()=>L(i(t))),A=e=>{{let r=b(()=>ce(i($),a)),o=b(()=>ne(i(t).name)?rt(i($),a):null);fe(e,{testCreationMode:`direct`,get trace(){return i(t)},get agentId(){return n.agentId},get promptEditProposalId(){return s()},get fallbackConversation(){return i(r)},get runtimeContext(){return n.context},get compareTrace(){return i(o)}})}},j=b(()=>re(i(t)));S(w,e=>{i(E)?e(ee):i(k)?e(O,1):i(j)&&e(A,2)}),f(C);var N=T(C,2),P=e=>{var t=De(),a=x(t),o=e=>{var t=we();r(e,t)};S(a,e=>{se()&&e(o)});var s=T(a,2),l=e=>{var t=Te(),n=x(t,!0);f(t),y(()=>c(n,pe())),r(e,t)};S(s,e=>{pe()&&e(l)});var d=T(s,2);u(d,17,ae,e=>e.id,(e,t)=>{var a=Ee(),o=x(a),s=x(o,!0);f(o),f(a),y(()=>{a.disabled=R()!==null,te(a,1,`w-full max-w-[83%] cursor-pointer rounded-lg border border-rc-green-450 bg-transparent p-2 pt-1 text-left text-rc-gray-100 backdrop-blur-md transition-colors hover:bg-rc-green-700 focus:outline-none focus-visible:outline-none disabled:cursor-wait disabled:opacity-70 ${R()===i(t).id?`bg-rc-green-700`:``}`),c(s,i(t).text)}),m(`click`,a,()=>n.onChooseVariant?.(i(t).id)),r(e,a)}),f(t),r(e,t)};S(N,e=>{M()&&i(t)===M()&&e(P)}),f(v),r(e,p)}),f(d),w(d,e=>U=e,()=>U);var h=T(d,2),E=e=>{var t=ke(),i=T(x(t),2),a=T(i,2);f(t),y(()=>i.disabled=!n.onRegenerateVariants||se()||R()!==null),m(`click`,i,()=>n.onRegenerateVariants?.()),m(`click`,a,()=>n.onCancelVariants?.()),r(e,t)},O=e=>{var t=Fe(),s=g(t),l=e=>{var t=Ae(),n=x(t,!0);f(t),y(()=>c(n,i(J))),r(e,t)};S(s,e=>{i(J)&&e(l)});var d=T(s,2),h=x(d),w=x(h),E=x(w),D=e=>{var t=Ne();u(t,23,()=>i(Q),e=>e.text,(e,t,n)=>{var a=Me();u(a,21,()=>i(t).segments,C,(e,t)=>{var n=je(),a=x(n,!0);f(n),y(()=>{te(n,1,p(i(t).matched?`text-rc-green-200`:``)),c(a,i(t).text)}),r(e,n)}),f(a),y(()=>{ee(a,`aria-selected`,i(Z)===i(n)),te(a,1,`w-full select-none border-b border-rc-gray-110 px-3 py-2 text-left font-semibold text-rc-gray-100 last:border-b-0 hover:bg-rc-gray-700/70 ${i(Z)===i(n)?`bg-rc-gray-700/70`:``}`)}),m(`mousedown`,a,e=>{e.preventDefault(),He(i(t))}),r(e,a)}),f(t),r(e,t)};S(E,e=>{i(Ve)&&e(D)});var O=T(E,2);{let e=b(()=>i(q)===`system`?`!border-emerald-500 !pl-[5.5rem] hover:!border-emerald-500 focus:!border-emerald-500`:`!pl-[4.25rem]`),t=b(()=>i(K)?`Generating`:`Enter message...`);oe(O,{variant:`chat`,get class(){return`!text-base !leading-6 !duration-75 ${i(e)??``}`},get placeholder(){return i(t)},autocomplete:`off`,get readonly(){return i(K)},onfocus:Ue,onblur:We,oninput:Ge,onkeydown:Ke,get value(){return i(B)},set value(e){v(B,e,!0)},get el(){return i(G)},set el(e){v(G,e,!0)}})}var k=T(O,2),A=x(k,!0);f(k);var j=T(k,2),M=e=>{var t=Pe(),n=x(t),a=x(n),o=x(a,!0);f(a);var s=T(a),l=x(s,!0);f(s),f(n),f(t),y(()=>{_(n,i(ye)),c(o,i(B)),c(l,i(ze))}),r(e,t)};S(j,e=>{i(Z)!==null&&i(ze)&&e(M)}),f(w);var F=T(w,2);{let e=b(()=>i(K)||!n.agentType);N(F,{size:`small`,variant:`secondary`,get disabled(){return i(e)},onclick:ut,children:(e,t)=>{var i=o(),a=g(i),s=e=>{P(e,{name:`paperclip`})},c=e=>{P(e,{name:`hangup`})};S(a,e=>{n.agentType===`text`?e(s):n.agentType===`voice`&&e(c,1)}),r(e,i)},$$slots:{default:!0}})}var ne=T(F,2),re=e=>{{let t=b(()=>i(K)||!i(gt));N(e,{size:`small`,type:`button`,title:`Generate response`,"aria-label":`Generate response`,get disabled(){return i(t)},class:`inline-flex !w-[59px] items-center justify-center !px-0`,onclick:e=>{e.preventDefault(),bt()},children:(e,t)=>{P(e,{name:`sparkles`})},$$slots:{default:!0}})}},I=e=>{{let t=b(()=>i(q)===`system`?`Send as system`:`Send as user`),n=b(()=>i(q)===`system`?`Send as system`:`Send as user`);N(e,{size:`small`,type:`submit`,get title(){return i(t)},get"aria-label"(){return i(n)},get disabled(){return i(K)},class:`inline-flex !w-[59px] items-center justify-center !px-0`,children:(e,t)=>{P(e,{name:`send`})},$$slots:{default:!0}})}};S(ne,e=>{i(Be)?e(re):e(I,-1)}),f(h),f(d),y(()=>{h.disabled=i(mt),ee(k,`title`,i(q)===`system`?`Switch to user`:`Switch to system`),ee(k,`aria-label`,i(q)===`system`?`Switch to user`:`Switch to system`),k.disabled=i(K),c(A,i(q)===`system`?`System`:`User`)}),a(`submit`,d,$e),m(`click`,k,e=>{e.preventDefault(),e.stopPropagation(),et()}),r(e,t)};S(h,e=>{M()?e(E):e(O,-1)}),a(`scroll`,d,e=>Ze(e.target)),r(e,l)},$$slots:{default:!0}}),r(e,xt),t()}e([`click`,`mousedown`]);var Q=s(`<div class="mt-1 w-max overflow-hidden rounded-lg border border-rc-gray-110 bg-rc-gray-930 shadow-inner-white-soft backdrop-blur-2xl" role="listbox"><!> <!> <!></div>`),Re=s(`<div class="flex h-full items-center justify-center text-sm text-rc-gray-300">Connecting…</div>`),ze=s(`<div class="flex h-full items-center justify-center text-sm text-rc-gray-300">Select an agent to start chatting</div>`),Be=s(`<div class="h-full min-h-0 p-2"><!></div>`),Ve=s(`<div class="relative flex h-full min-h-0 flex-col"><div class="flex flex-none flex-nowrap items-center gap-2 p-2"><!> <div class="ml-auto flex flex-none flex-nowrap items-center gap-2"><!> <!> <!> <!></div></div> <div class="min-h-0 flex-1"><!></div></div>`);function He(e,n){d(n,!0);let{state:a,actions:s}=M(),c=E(!1),u=E(null),p=b(()=>{let e=a.currentStep?.name;return e?Object.values(a.promptEdits).find(t=>t.agentId===a.agentId&&t.step===e)?.id??null:null}),m=E(null),h=null,_=E(!1),y=E(null);b(()=>I.reduce((e,t)=>Math.max(e,ne(t)??0),0)),k(()=>{!I.length&&!ae.length&&i(_)&&v(_,!1)});function C(e){let t=(e||``).trim();return t?t.split(`/`).at(-1)??t:`Agent`}function w(e){if(typeof e!=`number`||!Number.isFinite(e))return null;let t=new Date(e);return Number.isNaN(t.getTime())?null:`${String(t.getHours()).padStart(2,`0`)}:${String(t.getMinutes()).padStart(2,`0`)}:${String(t.getSeconds()).padStart(2,`0`)}`}async function ee(e){if(i(c))return;v(c,!0);let t=s.openPopover(`analyze`),n=w(e.createdAt),r=n?` • ${n}`:``,o=`Analysis — ${C(a.agentId)}${r}`;try{let n=await F.agents.analyzeTrace.mutate({agentId:a.agentId,traceId:e.trace?.traceId,eventName:e.trace.eventName,createdAt:e.createdAt,model:e.model,renderedPrompt:e.renderedPrompt,stringifiedConversation:e.stringifiedConversation,response:e.response,stepTrace:e.stepTrace});if(a.edit.popover?.requestId!==t)return;s.setHighlightQuotes(n.quotes);let r=null;try{r=JSON.stringify(n.raw,null,2)}catch{r=null}s.setPopoverReady(t,{title:o,quotes:n.quotes,rationales:n.rationales,parallelCalls:n.parallelCalls,raw:r})}catch(e){console.error(e);let n=typeof e?.message==`string`?e.message:(()=>{try{return JSON.stringify(e)}catch{return String(e)}})();s.setPopoverError(t,n||`Failed to analyze this response`,{raw:n})}finally{v(c,!1)}}function D(e){return e?I:I.map(e=>{if(!re(e))return e;let{receivedPrompt:t,renderedPrompt:n,...r}=e;return r})}function O(e){v(m,e,!0),h&&clearTimeout(h),h=window.setTimeout(()=>{v(m,null),h=null},2e3)}async function te(){try{await navigator.clipboard.writeText(JSON.stringify(ae,null,2)),O(`logs`)}catch(e){console.error(`Failed to copy logs`,e)}}async function j(e){try{await navigator.clipboard.writeText(JSON.stringify(D(e),null,2)),O(e?`with-prompts`:`without-prompts`)}catch(e){console.error(`Failed to copy traces`,e)}}function P(){L(),s.closePopover(),s.newConversation()}function ne(e){let t=e?.bosunTurn;return typeof t==`number`&&t>0?t:null}function ie(e){L();let t=ne(e);if(!t){console.warn(`Cannot regenerate: this response has no turn metadata`);return}s.regenerateFromTurn(t)}function L(){v(u,null)}function oe(e){let t=I.indexOf(e),n=t===-1?null:de(I,t);return n&&n.receivedContext!==void 0?se(n.receivedContext):{}}function ce(e){return oe(e)}async function le(e){let t=a.conversationId;if(!t)return;let n=s.getPromptOverrides();await s.flushPromptSave(),v(u,{sourceTrace:e,choices:[],loading:!0,applyingId:null,error:null},!0);try{let r=await F.agents.generateVariants.mutate({conversationId:t,context:ce(e),promptOverrides:n,count:9});if(!i(u)||i(u).sourceTrace!==e)return;v(u,{...i(u),choices:r,loading:!1,error:null},!0)}catch(t){if(console.error(`Failed to generate variants`,t),!i(u)||i(u).sourceTrace!==e)return;v(u,{...i(u),choices:[],loading:!1,error:typeof t?.message==`string`?t.message:`Failed to generate variants`},!0)}}function ue(e){le(e)}function fe(){s.hangup()}function pe(){let e=i(u)?.sourceTrace;e&&le(e)}async function z(e){let t=a.conversationId;if(!i(u)||!t)return;let n=i(u).choices.find(t=>t.id===e);if(n){v(u,{...i(u),applyingId:e,error:null},!0);try{await F.agents.commitVariant.mutate({conversationId:t,entries:n.entries}),L(),s.selectConversation(t)}catch(e){if(console.error(`Failed to apply variant`,e),!i(u))return;v(u,{...i(u),applyingId:null,error:typeof e?.message==`string`?e.message:`Failed to apply variant`},!0)}}}function B(){L()}k(()=>{let e=i(u),t=a.agentId,n=e?.sourceTrace;!e||!n||(!t||!I.includes(n))&&v(u,null)});var V=Ve(),U=x(V),me=x(U),he=e=>{H(e,{get conversations(){return a.conversations},get currentConversationId(){return a.conversationId},class:`ml-9`,onSelect:e=>s.selectConversation(e)})};S(me,e=>{a.conversations.length>0&&e(he)});var ge=T(me,2),_e=x(ge);{let e=b(()=>!a.context);N(_e,{variant:`secondary`,size:`small`,get disabled(){return i(e)},get"aria-expanded"(){return a.contextPopoverOpen},"aria-haspopup":`dialog`,get onclick(){return s.toggleContextPopover},children:(e,t)=>{l();var n=A(`Show context`);r(e,n)},$$slots:{default:!0}})}var ve=T(_e,2);{let e=b(()=>!I.length&&!ae.length);N(ve,{variant:`secondary`,size:`small`,get disabled(){return i(e)},get"aria-expanded"(){return i(_)},"aria-haspopup":`listbox`,"aria-controls":`roleplay-copy-dropdown`,onclick:e=>{e.stopPropagation(),v(_,!i(_))},get el(){return i(y)},set el(e){v(y,e,!0)},children:(e,t)=>{var n=o(),a=g(n),s=e=>{var t=A(`Copied logs`);r(e,t)},c=e=>{var t=A(`Copied traces (with prompts)`);r(e,t)},l=e=>{var t=A(`Copied traces (without prompts)`);r(e,t)},u=e=>{var t=A(`Copy...`);r(e,t)};S(a,e=>{i(m)===`logs`?e(s):i(m)===`with-prompts`?e(c,1):i(m)===`without-prompts`?e(l,2):e(u,-1)}),r(e,n)},$$slots:{default:!0}})}var W=T(ve,2);R(W,{id:`roleplay-copy-dropdown`,get open(){return i(_)},onClose:()=>v(_,!1),get anchorEl(){return i(y)},placement:`bottom-end`,offset:[0,1],children:e=>{var t=Q(),n=x(t);{let e=b(()=>!ae.length);N(n,{variant:`ghost`,size:`small`,role:`option`,get disabled(){return i(e)},onclick:e=>{e.stopPropagation(),v(_,!1),te()},class:`block rounded-none border-b border-rc-gray-110 py-2 pr-3 text-left backdrop-blur-2xl hover:bg-rc-gray-700 focus:bg-rc-gray-400`,children:(e,t)=>{l();var n=A(`Copy logs`);r(e,n)},$$slots:{default:!0}})}var a=T(n,2);{let e=b(()=>!I.length);N(a,{variant:`ghost`,size:`small`,role:`option`,get disabled(){return i(e)},onclick:e=>{e.stopPropagation(),v(_,!1),j(!0)},class:`block rounded-none border-b border-rc-gray-110 py-2 pr-3 text-left backdrop-blur-2xl hover:bg-rc-gray-700 focus:bg-rc-gray-400`,children:(e,t)=>{l();var n=A(`Copy traces with prompts`);r(e,n)},$$slots:{default:!0}})}var o=T(a,2);{let e=b(()=>!I.length);N(o,{variant:`ghost`,size:`small`,role:`option`,get disabled(){return i(e)},onclick:e=>{e.stopPropagation(),v(_,!1),j(!1)},class:`block rounded-none py-2 pr-3 text-left backdrop-blur-2xl hover:bg-rc-gray-700 focus:bg-rc-gray-400`,children:(e,t)=>{l();var n=A(`Copy traces without prompts`);r(e,n)},$$slots:{default:!0}})}f(t),r(e,t)},$$slots:{default:!0}});var G=T(W,2);N(G,{size:`small`,onclick:P,children:(e,t)=>{l();var n=A(`New chat`);r(e,n)},$$slots:{default:!0}}),f(ge),f(U);var ye=T(U,2),K=x(ye),q=e=>{var t=Re();r(e,t)},J=e=>{var t=ze();r(e,t)},Y=e=>{var t=Be(),n=x(t);{let e=b(()=>i(u)?.sourceTrace??null),t=b(()=>i(u)?.choices??[]),r=b(()=>i(u)?.loading??!1),o=b(()=>i(u)?.applyingId??null),l=b(()=>i(u)?.error??null);Z(n,{class:`h-full min-w-0`,context:null,get agentId(){return a.agentId},get promptEditProposalId(){return i(p)},get agentType(){return a.agentType},onmessage:e=>s.sendChatMessage(e),get analyzeDisabled(){return i(c)},onAnalyzeTrace:ee,onRegenerateTrace:ie,onSeeVariants:ue,onHangup:fe,get variantSourceTrace(){return i(e)},get variantChoices(){return i(t)},get variantLoading(){return i(r)},get variantApplyingId(){return i(o)},get variantError(){return i(l)},onCancelVariants:L,onRegenerateVariants:pe,onChooseOriginalVariant:B,onChooseVariant:z})}f(t),r(e,t)};S(K,e=>{!a.wsLoaded||!a.chatReady?e(q):a.agentId?e(Y,-1):e(J,1)}),f(ye),f(V),r(e,V),t()}export{He as component};
|
|
Binary file
|
|
Binary file
|
|
Binary file
|