@recombine-ai/bosun 0.4.0 → 0.4.1

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 (92) hide show
  1. package/build/client/_app/immutable/chunks/{B3ux6SZZ.js → CNPsxMFi.js} +1 -1
  2. package/build/client/_app/immutable/chunks/CNPsxMFi.js.br +1 -0
  3. package/build/client/_app/immutable/chunks/CNPsxMFi.js.gz +0 -0
  4. package/build/client/_app/immutable/chunks/{C5HWpeo9.js → CqcOmWJt.js} +1 -1
  5. package/build/client/_app/immutable/chunks/CqcOmWJt.js.br +0 -0
  6. package/build/client/_app/immutable/chunks/CqcOmWJt.js.gz +0 -0
  7. package/build/client/_app/immutable/chunks/{WMLo4l1V.js → DptDdzMi.js} +1 -1
  8. package/build/client/_app/immutable/chunks/DptDdzMi.js.br +0 -0
  9. package/build/client/_app/immutable/chunks/DptDdzMi.js.gz +0 -0
  10. package/build/client/_app/immutable/entry/{app.DQ_2_Lfy.js → app.DfqDSpBG.js} +2 -2
  11. package/build/client/_app/immutable/entry/app.DfqDSpBG.js.br +0 -0
  12. package/build/client/_app/immutable/entry/app.DfqDSpBG.js.gz +0 -0
  13. package/build/client/_app/immutable/entry/start.Duif51BE.js +1 -0
  14. package/build/client/_app/immutable/entry/start.Duif51BE.js.br +2 -0
  15. package/build/client/_app/immutable/entry/start.Duif51BE.js.gz +0 -0
  16. package/build/client/_app/immutable/nodes/{0.CgivU_tm.js → 0.Dub0qZPU.js} +1 -1
  17. package/build/client/_app/immutable/nodes/0.Dub0qZPU.js.br +0 -0
  18. package/build/client/_app/immutable/nodes/0.Dub0qZPU.js.gz +0 -0
  19. package/build/client/_app/immutable/nodes/{1.DP8kLfpI.js → 1.DsLuferm.js} +1 -1
  20. package/build/client/_app/immutable/nodes/1.DsLuferm.js.br +0 -0
  21. package/build/client/_app/immutable/nodes/1.DsLuferm.js.gz +0 -0
  22. package/build/client/_app/immutable/nodes/{15.B2GzYnI3.js → 15.D2YLTl3S.js} +1 -1
  23. package/build/client/_app/immutable/nodes/15.D2YLTl3S.js.br +0 -0
  24. package/build/client/_app/immutable/nodes/15.D2YLTl3S.js.gz +0 -0
  25. package/build/client/_app/immutable/nodes/{2.Bhgshf0y.js → 2.BbzjrdMu.js} +1 -1
  26. package/build/client/_app/immutable/nodes/2.BbzjrdMu.js.br +0 -0
  27. package/build/client/_app/immutable/nodes/2.BbzjrdMu.js.gz +0 -0
  28. package/build/client/_app/immutable/nodes/{3.0QEF0Tq5.js → 3.CS8k_54b.js} +1 -1
  29. package/build/client/_app/immutable/nodes/3.CS8k_54b.js.br +0 -0
  30. package/build/client/_app/immutable/nodes/3.CS8k_54b.js.gz +0 -0
  31. package/build/client/_app/immutable/nodes/{5.CZiuS-IZ.js → 5.BpnPdti2.js} +1 -1
  32. package/build/client/_app/immutable/nodes/5.BpnPdti2.js.br +0 -0
  33. package/build/client/_app/immutable/nodes/5.BpnPdti2.js.gz +0 -0
  34. package/build/client/_app/immutable/nodes/{8.BAhMFXe7.js → 8.ARGsrw2j.js} +1 -1
  35. package/build/client/_app/immutable/nodes/8.ARGsrw2j.js.br +0 -0
  36. package/build/client/_app/immutable/nodes/8.ARGsrw2j.js.gz +0 -0
  37. package/build/client/_app/immutable/nodes/9.C3E_sxSn.js +5 -0
  38. package/build/client/_app/immutable/nodes/9.C3E_sxSn.js.br +0 -0
  39. package/build/client/_app/immutable/nodes/9.C3E_sxSn.js.gz +0 -0
  40. package/build/client/_app/version.json +1 -1
  41. package/build/client/_app/version.json.br +0 -0
  42. package/build/client/_app/version.json.gz +0 -0
  43. package/build/server/chunks/{0-bATz_nPm.js → 0-CbLBIQC7.js} +2 -2
  44. package/build/server/chunks/{0-bATz_nPm.js.map → 0-CbLBIQC7.js.map} +1 -1
  45. package/build/server/chunks/{1-B8t1doqY.js → 1-gh5xP1Bp.js} +2 -2
  46. package/build/server/chunks/{1-B8t1doqY.js.map → 1-gh5xP1Bp.js.map} +1 -1
  47. package/build/server/chunks/{15-BrQMoggr.js → 15-kvHsGxjF.js} +2 -2
  48. package/build/server/chunks/{15-BrQMoggr.js.map → 15-kvHsGxjF.js.map} +1 -1
  49. package/build/server/chunks/{2-B0R4hYal.js → 2-C5u7WpBH.js} +2 -2
  50. package/build/server/chunks/{2-B0R4hYal.js.map → 2-C5u7WpBH.js.map} +1 -1
  51. package/build/server/chunks/{3-DV-OHzXy.js → 3-BrobxxI7.js} +2 -2
  52. package/build/server/chunks/{3-DV-OHzXy.js.map → 3-BrobxxI7.js.map} +1 -1
  53. package/build/server/chunks/{5-BznYQ30T.js → 5-ox8PkWxC.js} +2 -2
  54. package/build/server/chunks/{5-BznYQ30T.js.map → 5-ox8PkWxC.js.map} +1 -1
  55. package/build/server/chunks/{8-NaJ61xSe.js → 8-CgCeoIqV.js} +2 -2
  56. package/build/server/chunks/{8-NaJ61xSe.js.map → 8-CgCeoIqV.js.map} +1 -1
  57. package/build/server/chunks/{9-oaBsE2zR.js → 9-CWM_WQXH.js} +2 -2
  58. package/build/server/chunks/{9-oaBsE2zR.js.map → 9-CWM_WQXH.js.map} +1 -1
  59. package/build/server/index.js +1 -1
  60. package/build/server/index.js.map +1 -1
  61. package/build/server/manifest.js +9 -9
  62. package/build/server/manifest.js.map +1 -1
  63. package/package.json +1 -1
  64. package/src/backend/tests/academy.ts +69 -49
  65. package/build/client/_app/immutable/chunks/B3ux6SZZ.js.br +0 -0
  66. package/build/client/_app/immutable/chunks/B3ux6SZZ.js.gz +0 -0
  67. package/build/client/_app/immutable/chunks/C5HWpeo9.js.br +0 -0
  68. package/build/client/_app/immutable/chunks/C5HWpeo9.js.gz +0 -0
  69. package/build/client/_app/immutable/chunks/WMLo4l1V.js.br +0 -0
  70. package/build/client/_app/immutable/chunks/WMLo4l1V.js.gz +0 -0
  71. package/build/client/_app/immutable/entry/app.DQ_2_Lfy.js.br +0 -0
  72. package/build/client/_app/immutable/entry/app.DQ_2_Lfy.js.gz +0 -0
  73. package/build/client/_app/immutable/entry/start.DvKwzZNe.js +0 -1
  74. package/build/client/_app/immutable/entry/start.DvKwzZNe.js.br +0 -2
  75. package/build/client/_app/immutable/entry/start.DvKwzZNe.js.gz +0 -0
  76. package/build/client/_app/immutable/nodes/0.CgivU_tm.js.br +0 -0
  77. package/build/client/_app/immutable/nodes/0.CgivU_tm.js.gz +0 -0
  78. package/build/client/_app/immutable/nodes/1.DP8kLfpI.js.br +0 -0
  79. package/build/client/_app/immutable/nodes/1.DP8kLfpI.js.gz +0 -0
  80. package/build/client/_app/immutable/nodes/15.B2GzYnI3.js.br +0 -0
  81. package/build/client/_app/immutable/nodes/15.B2GzYnI3.js.gz +0 -0
  82. package/build/client/_app/immutable/nodes/2.Bhgshf0y.js.br +0 -0
  83. package/build/client/_app/immutable/nodes/2.Bhgshf0y.js.gz +0 -0
  84. package/build/client/_app/immutable/nodes/3.0QEF0Tq5.js.br +0 -0
  85. package/build/client/_app/immutable/nodes/3.0QEF0Tq5.js.gz +0 -0
  86. package/build/client/_app/immutable/nodes/5.CZiuS-IZ.js.br +0 -0
  87. package/build/client/_app/immutable/nodes/5.CZiuS-IZ.js.gz +0 -0
  88. package/build/client/_app/immutable/nodes/8.BAhMFXe7.js.br +0 -0
  89. package/build/client/_app/immutable/nodes/8.BAhMFXe7.js.gz +0 -0
  90. package/build/client/_app/immutable/nodes/9.D7VQfn4o.js +0 -6
  91. package/build/client/_app/immutable/nodes/9.D7VQfn4o.js.br +0 -0
  92. package/build/client/_app/immutable/nodes/9.D7VQfn4o.js.gz +0 -0
@@ -10,24 +10,24 @@ return {
10
10
  assets: new Set(["favicon.png","fonts/DarkerGrotesque-Black.ttf","fonts/DarkerGrotesque-Bold.ttf","fonts/DarkerGrotesque-Light.ttf","fonts/DarkerGrotesque-Medium.ttf","fonts/DarkerGrotesque-Regular.ttf","fonts/DarkerGrotesque-SemiBold.ttf","fonts.css","recombine.svg","telescope-icon.svg","ui/arrow_tests.svg","ui/paperclip.svg","ui/send.svg"]),
11
11
  mimeTypes: {".png":"image/png",".ttf":"font/ttf",".css":"text/css",".svg":"image/svg+xml"},
12
12
  _: {
13
- client: {start:"_app/immutable/entry/start.DvKwzZNe.js",app:"_app/immutable/entry/app.DQ_2_Lfy.js",imports:["_app/immutable/entry/start.DvKwzZNe.js","_app/immutable/chunks/C5HWpeo9.js","_app/immutable/chunks/DQA6NP5y.js","_app/immutable/chunks/CfbYRn5k.js","_app/immutable/chunks/BUApaBEI.js","_app/immutable/chunks/C-xhOnoy.js","_app/immutable/entry/app.DQ_2_Lfy.js","_app/immutable/chunks/C1FmrZbK.js","_app/immutable/chunks/CfbYRn5k.js","_app/immutable/chunks/DQA6NP5y.js","_app/immutable/chunks/CWj6FrbW.js","_app/immutable/chunks/Dl6q6wVH.js","_app/immutable/chunks/DaR1ExPh.js","_app/immutable/chunks/Bx2X1niE.js","_app/immutable/chunks/wDFujNbC.js","_app/immutable/chunks/C-xhOnoy.js"],stylesheets:[],fonts:[],uses_env_dynamic_public:true},
13
+ client: {start:"_app/immutable/entry/start.Duif51BE.js",app:"_app/immutable/entry/app.DfqDSpBG.js",imports:["_app/immutable/entry/start.Duif51BE.js","_app/immutable/chunks/CqcOmWJt.js","_app/immutable/chunks/DQA6NP5y.js","_app/immutable/chunks/CfbYRn5k.js","_app/immutable/chunks/BUApaBEI.js","_app/immutable/chunks/C-xhOnoy.js","_app/immutable/entry/app.DfqDSpBG.js","_app/immutable/chunks/C1FmrZbK.js","_app/immutable/chunks/CfbYRn5k.js","_app/immutable/chunks/DQA6NP5y.js","_app/immutable/chunks/CWj6FrbW.js","_app/immutable/chunks/Dl6q6wVH.js","_app/immutable/chunks/DaR1ExPh.js","_app/immutable/chunks/Bx2X1niE.js","_app/immutable/chunks/wDFujNbC.js","_app/immutable/chunks/C-xhOnoy.js"],stylesheets:[],fonts:[],uses_env_dynamic_public:true},
14
14
  nodes: [
15
- __memo(() => import('./chunks/0-bATz_nPm.js')),
16
- __memo(() => import('./chunks/1-B8t1doqY.js')),
17
- __memo(() => import('./chunks/2-B0R4hYal.js')),
18
- __memo(() => import('./chunks/3-DV-OHzXy.js')),
15
+ __memo(() => import('./chunks/0-CbLBIQC7.js')),
16
+ __memo(() => import('./chunks/1-gh5xP1Bp.js')),
17
+ __memo(() => import('./chunks/2-C5u7WpBH.js')),
18
+ __memo(() => import('./chunks/3-BrobxxI7.js')),
19
19
  __memo(() => import('./chunks/4-ClIdwABM.js')),
20
- __memo(() => import('./chunks/5-BznYQ30T.js')),
20
+ __memo(() => import('./chunks/5-ox8PkWxC.js')),
21
21
  __memo(() => import('./chunks/6-B6C38HXu.js')),
22
22
  __memo(() => import('./chunks/7-BgYWIBj-.js')),
23
- __memo(() => import('./chunks/8-NaJ61xSe.js')),
24
- __memo(() => import('./chunks/9-oaBsE2zR.js')),
23
+ __memo(() => import('./chunks/8-CgCeoIqV.js')),
24
+ __memo(() => import('./chunks/9-CWM_WQXH.js')),
25
25
  __memo(() => import('./chunks/10-DZjMDIvS.js')),
26
26
  __memo(() => import('./chunks/11-D6F4I8KX.js')),
27
27
  __memo(() => import('./chunks/12-2vbUmx0n.js')),
28
28
  __memo(() => import('./chunks/13-11CHqz2G.js')),
29
29
  __memo(() => import('./chunks/14-C4iOZL2L.js')),
30
- __memo(() => import('./chunks/15-BrQMoggr.js'))
30
+ __memo(() => import('./chunks/15-kvHsGxjF.js'))
31
31
  ],
32
32
  remotes: {
33
33
 
@@ -1 +1 @@
1
- {"version":3,"file":"manifest.js","sources":["../../.svelte-kit/adapter-node/manifest.js"],"sourcesContent":["export const manifest = (() => {\nfunction __memo(fn) {\n\tlet value;\n\treturn () => value ??= (value = fn());\n}\n\nreturn {\n\tappDir: \"_app\",\n\tappPath: \"_app\",\n\tassets: new Set([\"favicon.png\",\"fonts/DarkerGrotesque-Black.ttf\",\"fonts/DarkerGrotesque-Bold.ttf\",\"fonts/DarkerGrotesque-Light.ttf\",\"fonts/DarkerGrotesque-Medium.ttf\",\"fonts/DarkerGrotesque-Regular.ttf\",\"fonts/DarkerGrotesque-SemiBold.ttf\",\"fonts.css\",\"recombine.svg\",\"telescope-icon.svg\",\"ui/arrow_tests.svg\",\"ui/paperclip.svg\",\"ui/send.svg\"]),\n\tmimeTypes: {\".png\":\"image/png\",\".ttf\":\"font/ttf\",\".css\":\"text/css\",\".svg\":\"image/svg+xml\"},\n\t_: {\n\t\tclient: {start:\"_app/immutable/entry/start.DvKwzZNe.js\",app:\"_app/immutable/entry/app.DQ_2_Lfy.js\",imports:[\"_app/immutable/entry/start.DvKwzZNe.js\",\"_app/immutable/chunks/C5HWpeo9.js\",\"_app/immutable/chunks/DQA6NP5y.js\",\"_app/immutable/chunks/CfbYRn5k.js\",\"_app/immutable/chunks/BUApaBEI.js\",\"_app/immutable/chunks/C-xhOnoy.js\",\"_app/immutable/entry/app.DQ_2_Lfy.js\",\"_app/immutable/chunks/C1FmrZbK.js\",\"_app/immutable/chunks/CfbYRn5k.js\",\"_app/immutable/chunks/DQA6NP5y.js\",\"_app/immutable/chunks/CWj6FrbW.js\",\"_app/immutable/chunks/Dl6q6wVH.js\",\"_app/immutable/chunks/DaR1ExPh.js\",\"_app/immutable/chunks/Bx2X1niE.js\",\"_app/immutable/chunks/wDFujNbC.js\",\"_app/immutable/chunks/C-xhOnoy.js\"],stylesheets:[],fonts:[],uses_env_dynamic_public:true},\n\t\tnodes: [\n\t\t\t__memo(() => import('./nodes/0.js')),\n\t\t\t__memo(() => import('./nodes/1.js')),\n\t\t\t__memo(() => import('./nodes/2.js')),\n\t\t\t__memo(() => import('./nodes/3.js')),\n\t\t\t__memo(() => import('./nodes/4.js')),\n\t\t\t__memo(() => import('./nodes/5.js')),\n\t\t\t__memo(() => import('./nodes/6.js')),\n\t\t\t__memo(() => import('./nodes/7.js')),\n\t\t\t__memo(() => import('./nodes/8.js')),\n\t\t\t__memo(() => import('./nodes/9.js')),\n\t\t\t__memo(() => import('./nodes/10.js')),\n\t\t\t__memo(() => import('./nodes/11.js')),\n\t\t\t__memo(() => import('./nodes/12.js')),\n\t\t\t__memo(() => import('./nodes/13.js')),\n\t\t\t__memo(() => import('./nodes/14.js')),\n\t\t\t__memo(() => import('./nodes/15.js'))\n\t\t],\n\t\tremotes: {\n\t\t\t\n\t\t},\n\t\troutes: [\n\t\t\t{\n\t\t\t\tid: \"/\",\n\t\t\t\tpattern: /^\\/$/,\n\t\t\t\tparams: [],\n\t\t\t\tpage: { layouts: [0,], errors: [1,], leaf: 4 },\n\t\t\t\tendpoint: null\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/edit\",\n\t\t\t\tpattern: /^\\/edit\\/?$/,\n\t\t\t\tparams: [],\n\t\t\t\tpage: { layouts: [0,], errors: [1,], leaf: 5 },\n\t\t\t\tendpoint: null\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/edit/[agent]\",\n\t\t\t\tpattern: /^\\/edit\\/([^/]+?)\\/?$/,\n\t\t\t\tparams: [{\"name\":\"agent\",\"optional\":false,\"rest\":false,\"chained\":false}],\n\t\t\t\tpage: { layouts: [0,2,], errors: [1,,], leaf: 6 },\n\t\t\t\tendpoint: null\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/edit/[agent]/configure\",\n\t\t\t\tpattern: /^\\/edit\\/([^/]+?)\\/configure\\/?$/,\n\t\t\t\tparams: [{\"name\":\"agent\",\"optional\":false,\"rest\":false,\"chained\":false}],\n\t\t\t\tpage: { layouts: [0,2,], errors: [1,,], leaf: 7 },\n\t\t\t\tendpoint: null\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/edit/[agent]/roleplay\",\n\t\t\t\tpattern: /^\\/edit\\/([^/]+?)\\/roleplay\\/?$/,\n\t\t\t\tparams: [{\"name\":\"agent\",\"optional\":false,\"rest\":false,\"chained\":false}],\n\t\t\t\tpage: { layouts: [0,2,], errors: [1,,], leaf: 8 },\n\t\t\t\tendpoint: null\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/edit/[agent]/tests\",\n\t\t\t\tpattern: /^\\/edit\\/([^/]+?)\\/tests\\/?$/,\n\t\t\t\tparams: [{\"name\":\"agent\",\"optional\":false,\"rest\":false,\"chained\":false}],\n\t\t\t\tpage: { layouts: [0,2,], errors: [1,,], leaf: 9 },\n\t\t\t\tendpoint: null\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/roleplay\",\n\t\t\t\tpattern: /^\\/roleplay\\/?$/,\n\t\t\t\tparams: [],\n\t\t\t\tpage: { layouts: [0,], errors: [1,], leaf: 10 },\n\t\t\t\tendpoint: null\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/tests\",\n\t\t\t\tpattern: /^\\/tests\\/?$/,\n\t\t\t\tparams: [],\n\t\t\t\tpage: { layouts: [0,], errors: [1,], leaf: 11 },\n\t\t\t\tendpoint: null\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/tests/[agent]\",\n\t\t\t\tpattern: /^\\/tests\\/([^/]+?)\\/?$/,\n\t\t\t\tparams: [{\"name\":\"agent\",\"optional\":false,\"rest\":false,\"chained\":false}],\n\t\t\t\tpage: { layouts: [0,], errors: [1,], leaf: 12 },\n\t\t\t\tendpoint: null\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/traces\",\n\t\t\t\tpattern: /^\\/traces\\/?$/,\n\t\t\t\tparams: [],\n\t\t\t\tpage: { layouts: [0,], errors: [1,], leaf: 13 },\n\t\t\t\tendpoint: null\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/traces/api/proxy/[...path]\",\n\t\t\t\tpattern: /^\\/traces\\/api\\/proxy(?:\\/([^]*))?\\/?$/,\n\t\t\t\tparams: [{\"name\":\"path\",\"optional\":false,\"rest\":true,\"chained\":true}],\n\t\t\t\tpage: null,\n\t\t\t\tendpoint: __memo(() => import('./entries/endpoints/traces/api/proxy/_...path_/_server.ts.js'))\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/traces/api/sources\",\n\t\t\t\tpattern: /^\\/traces\\/api\\/sources\\/?$/,\n\t\t\t\tparams: [],\n\t\t\t\tpage: null,\n\t\t\t\tendpoint: __memo(() => import('./entries/endpoints/traces/api/sources/_server.ts.js'))\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/traces/conversations\",\n\t\t\t\tpattern: /^\\/traces\\/conversations\\/?$/,\n\t\t\t\tparams: [],\n\t\t\t\tpage: { layouts: [0,3,], errors: [1,,], leaf: 14 },\n\t\t\t\tendpoint: null\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/traces/conversations/[conversationId]/traces\",\n\t\t\t\tpattern: /^\\/traces\\/conversations\\/([^/]+?)\\/traces\\/?$/,\n\t\t\t\tparams: [{\"name\":\"conversationId\",\"optional\":false,\"rest\":false,\"chained\":false}],\n\t\t\t\tpage: { layouts: [0,3,], errors: [1,,], leaf: 15 },\n\t\t\t\tendpoint: null\n\t\t\t}\n\t\t],\n\t\tprerendered_routes: new Set([]),\n\t\tmatchers: async () => {\n\t\t\t\n\t\t\treturn { };\n\t\t},\n\t\tserver_assets: {}\n\t}\n}\n})();\n\nexport const prerendered = new Set([]);\n\nexport const base = \"\";"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"manifest.js","sources":["../../.svelte-kit/adapter-node/manifest.js"],"sourcesContent":["export const manifest = (() => {\nfunction __memo(fn) {\n\tlet value;\n\treturn () => value ??= (value = fn());\n}\n\nreturn {\n\tappDir: \"_app\",\n\tappPath: \"_app\",\n\tassets: new Set([\"favicon.png\",\"fonts/DarkerGrotesque-Black.ttf\",\"fonts/DarkerGrotesque-Bold.ttf\",\"fonts/DarkerGrotesque-Light.ttf\",\"fonts/DarkerGrotesque-Medium.ttf\",\"fonts/DarkerGrotesque-Regular.ttf\",\"fonts/DarkerGrotesque-SemiBold.ttf\",\"fonts.css\",\"recombine.svg\",\"telescope-icon.svg\",\"ui/arrow_tests.svg\",\"ui/paperclip.svg\",\"ui/send.svg\"]),\n\tmimeTypes: {\".png\":\"image/png\",\".ttf\":\"font/ttf\",\".css\":\"text/css\",\".svg\":\"image/svg+xml\"},\n\t_: {\n\t\tclient: {start:\"_app/immutable/entry/start.Duif51BE.js\",app:\"_app/immutable/entry/app.DfqDSpBG.js\",imports:[\"_app/immutable/entry/start.Duif51BE.js\",\"_app/immutable/chunks/CqcOmWJt.js\",\"_app/immutable/chunks/DQA6NP5y.js\",\"_app/immutable/chunks/CfbYRn5k.js\",\"_app/immutable/chunks/BUApaBEI.js\",\"_app/immutable/chunks/C-xhOnoy.js\",\"_app/immutable/entry/app.DfqDSpBG.js\",\"_app/immutable/chunks/C1FmrZbK.js\",\"_app/immutable/chunks/CfbYRn5k.js\",\"_app/immutable/chunks/DQA6NP5y.js\",\"_app/immutable/chunks/CWj6FrbW.js\",\"_app/immutable/chunks/Dl6q6wVH.js\",\"_app/immutable/chunks/DaR1ExPh.js\",\"_app/immutable/chunks/Bx2X1niE.js\",\"_app/immutable/chunks/wDFujNbC.js\",\"_app/immutable/chunks/C-xhOnoy.js\"],stylesheets:[],fonts:[],uses_env_dynamic_public:true},\n\t\tnodes: [\n\t\t\t__memo(() => import('./nodes/0.js')),\n\t\t\t__memo(() => import('./nodes/1.js')),\n\t\t\t__memo(() => import('./nodes/2.js')),\n\t\t\t__memo(() => import('./nodes/3.js')),\n\t\t\t__memo(() => import('./nodes/4.js')),\n\t\t\t__memo(() => import('./nodes/5.js')),\n\t\t\t__memo(() => import('./nodes/6.js')),\n\t\t\t__memo(() => import('./nodes/7.js')),\n\t\t\t__memo(() => import('./nodes/8.js')),\n\t\t\t__memo(() => import('./nodes/9.js')),\n\t\t\t__memo(() => import('./nodes/10.js')),\n\t\t\t__memo(() => import('./nodes/11.js')),\n\t\t\t__memo(() => import('./nodes/12.js')),\n\t\t\t__memo(() => import('./nodes/13.js')),\n\t\t\t__memo(() => import('./nodes/14.js')),\n\t\t\t__memo(() => import('./nodes/15.js'))\n\t\t],\n\t\tremotes: {\n\t\t\t\n\t\t},\n\t\troutes: [\n\t\t\t{\n\t\t\t\tid: \"/\",\n\t\t\t\tpattern: /^\\/$/,\n\t\t\t\tparams: [],\n\t\t\t\tpage: { layouts: [0,], errors: [1,], leaf: 4 },\n\t\t\t\tendpoint: null\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/edit\",\n\t\t\t\tpattern: /^\\/edit\\/?$/,\n\t\t\t\tparams: [],\n\t\t\t\tpage: { layouts: [0,], errors: [1,], leaf: 5 },\n\t\t\t\tendpoint: null\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/edit/[agent]\",\n\t\t\t\tpattern: /^\\/edit\\/([^/]+?)\\/?$/,\n\t\t\t\tparams: [{\"name\":\"agent\",\"optional\":false,\"rest\":false,\"chained\":false}],\n\t\t\t\tpage: { layouts: [0,2,], errors: [1,,], leaf: 6 },\n\t\t\t\tendpoint: null\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/edit/[agent]/configure\",\n\t\t\t\tpattern: /^\\/edit\\/([^/]+?)\\/configure\\/?$/,\n\t\t\t\tparams: [{\"name\":\"agent\",\"optional\":false,\"rest\":false,\"chained\":false}],\n\t\t\t\tpage: { layouts: [0,2,], errors: [1,,], leaf: 7 },\n\t\t\t\tendpoint: null\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/edit/[agent]/roleplay\",\n\t\t\t\tpattern: /^\\/edit\\/([^/]+?)\\/roleplay\\/?$/,\n\t\t\t\tparams: [{\"name\":\"agent\",\"optional\":false,\"rest\":false,\"chained\":false}],\n\t\t\t\tpage: { layouts: [0,2,], errors: [1,,], leaf: 8 },\n\t\t\t\tendpoint: null\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/edit/[agent]/tests\",\n\t\t\t\tpattern: /^\\/edit\\/([^/]+?)\\/tests\\/?$/,\n\t\t\t\tparams: [{\"name\":\"agent\",\"optional\":false,\"rest\":false,\"chained\":false}],\n\t\t\t\tpage: { layouts: [0,2,], errors: [1,,], leaf: 9 },\n\t\t\t\tendpoint: null\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/roleplay\",\n\t\t\t\tpattern: /^\\/roleplay\\/?$/,\n\t\t\t\tparams: [],\n\t\t\t\tpage: { layouts: [0,], errors: [1,], leaf: 10 },\n\t\t\t\tendpoint: null\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/tests\",\n\t\t\t\tpattern: /^\\/tests\\/?$/,\n\t\t\t\tparams: [],\n\t\t\t\tpage: { layouts: [0,], errors: [1,], leaf: 11 },\n\t\t\t\tendpoint: null\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/tests/[agent]\",\n\t\t\t\tpattern: /^\\/tests\\/([^/]+?)\\/?$/,\n\t\t\t\tparams: [{\"name\":\"agent\",\"optional\":false,\"rest\":false,\"chained\":false}],\n\t\t\t\tpage: { layouts: [0,], errors: [1,], leaf: 12 },\n\t\t\t\tendpoint: null\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/traces\",\n\t\t\t\tpattern: /^\\/traces\\/?$/,\n\t\t\t\tparams: [],\n\t\t\t\tpage: { layouts: [0,], errors: [1,], leaf: 13 },\n\t\t\t\tendpoint: null\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/traces/api/proxy/[...path]\",\n\t\t\t\tpattern: /^\\/traces\\/api\\/proxy(?:\\/([^]*))?\\/?$/,\n\t\t\t\tparams: [{\"name\":\"path\",\"optional\":false,\"rest\":true,\"chained\":true}],\n\t\t\t\tpage: null,\n\t\t\t\tendpoint: __memo(() => import('./entries/endpoints/traces/api/proxy/_...path_/_server.ts.js'))\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/traces/api/sources\",\n\t\t\t\tpattern: /^\\/traces\\/api\\/sources\\/?$/,\n\t\t\t\tparams: [],\n\t\t\t\tpage: null,\n\t\t\t\tendpoint: __memo(() => import('./entries/endpoints/traces/api/sources/_server.ts.js'))\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/traces/conversations\",\n\t\t\t\tpattern: /^\\/traces\\/conversations\\/?$/,\n\t\t\t\tparams: [],\n\t\t\t\tpage: { layouts: [0,3,], errors: [1,,], leaf: 14 },\n\t\t\t\tendpoint: null\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/traces/conversations/[conversationId]/traces\",\n\t\t\t\tpattern: /^\\/traces\\/conversations\\/([^/]+?)\\/traces\\/?$/,\n\t\t\t\tparams: [{\"name\":\"conversationId\",\"optional\":false,\"rest\":false,\"chained\":false}],\n\t\t\t\tpage: { layouts: [0,3,], errors: [1,,], leaf: 15 },\n\t\t\t\tendpoint: null\n\t\t\t}\n\t\t],\n\t\tprerendered_routes: new Set([]),\n\t\tmatchers: async () => {\n\t\t\t\n\t\t\treturn { };\n\t\t},\n\t\tserver_assets: {}\n\t}\n}\n})();\n\nexport const prerendered = new Set([]);\n\nexport const base = \"\";"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@recombine-ai/bosun",
3
3
  "author": "recombine.ai",
4
- "version": "0.4.0",
4
+ "version": "0.4.1",
5
5
  "license": "EULA",
6
6
  "bin": {
7
7
  "bosun": "./bin/bosun.js"
@@ -143,7 +143,8 @@ function parseConversationFromSheet(conversation: string | undefined | null): Co
143
143
  }
144
144
  }
145
145
 
146
- for (const line of lines) {
146
+ for (let i = 0; i < lines.length; i++) {
147
+ const line = lines[i] ?? ''
147
148
  const m = roleMatch(line)
148
149
  if (m) {
149
150
  // Starting a new role block; flush previous
@@ -155,8 +156,16 @@ function parseConversationFromSheet(conversation: string | undefined | null): Co
155
156
  // Continuation of the current role block (allow blank lines)
156
157
  buffer.push(line)
157
158
  } else {
158
- // Ignore lines until we encounter the first role marker
159
- continue
159
+ // No current role block yet.
160
+ // Previously we silently ignored preamble lines; that's almost always a test authoring mistake
161
+ // (e.g. a malformed "User:"/"Agent:" prefix like "?Agent:").
162
+ if (line.trim()) {
163
+ const snippet = line.length > 200 ? `${line.slice(0, 200)}…` : line
164
+ throw new Error(
165
+ `Unparsed conversation content before the first role block at line ${i + 1}: ${snippet}\n` +
166
+ `Start each block with "User:", "Agent:" (or "Assistant:"), or "System:".`
167
+ )
168
+ }
160
169
  }
161
170
  }
162
171
 
@@ -179,43 +188,55 @@ function toTestInputs(
179
188
  if ('testId' in selection) return String(r.id ?? '') === String(selection.testId)
180
189
  return selection.scope === 'all' ? true : r.pinned === 'TRUE'
181
190
  })
182
- .map((row) => ({
183
- id: row.id,
184
- scenario: row.scenario,
185
- conversation: parseConversationFromSheet(row.conversation),
186
- assertions: [
187
- {
188
- type: row.assertion_type as PFAssertion['type'],
189
- value: row.assertion_value
190
- },
191
- {
192
- type: 'similar' as 'similar',
193
- value: String(row.expected_output),
194
- threshold: Number(row.similarity_threshold) / 100
195
- }
196
- ],
197
- context: (() => {
198
- const testCtx = makeContext(row.context)
199
- return defaultContext ? mergeContexts(defaultContext, testCtx) : testCtx
200
- })(),
201
- timeoutSeconds: (() => {
202
- const rawValue = row.timeout
203
- if (rawValue === undefined || rawValue === null || String(rawValue).trim() === '') {
204
- throw new Error('Timeout value is required')
205
- }
206
- const raw = Number(rawValue)
207
- if (isNaN(raw)) {
208
- throw new Error(`Invalid timeout value: ${rawValue}`)
209
- }
210
- if (raw > 1000) {
211
- throw new Error(`Timeout value exceeds maximum of 1000: ${raw}`)
212
- }
213
- if (raw < 0) {
214
- throw new Error(`Timeout value must be non-negative: ${raw}`)
215
- }
216
- return raw
217
- })()
218
- }))
191
+ .map((row) => {
192
+ let conversation: Conversation = []
193
+ let conversationParseError: string | undefined
194
+ try {
195
+ conversation = parseConversationFromSheet(row.conversation)
196
+ } catch (err) {
197
+ conversation = []
198
+ conversationParseError = err instanceof Error ? err.message : String(err)
199
+ }
200
+
201
+ return {
202
+ id: row.id,
203
+ scenario: row.scenario,
204
+ conversation,
205
+ conversationParseError,
206
+ assertions: [
207
+ {
208
+ type: row.assertion_type as PFAssertion['type'],
209
+ value: row.assertion_value
210
+ },
211
+ {
212
+ type: 'similar' as 'similar',
213
+ value: String(row.expected_output),
214
+ threshold: Number(row.similarity_threshold) / 100
215
+ }
216
+ ],
217
+ context: (() => {
218
+ const testCtx = makeContext(row.context)
219
+ return defaultContext ? mergeContexts(defaultContext, testCtx) : testCtx
220
+ })(),
221
+ timeoutSeconds: (() => {
222
+ const rawValue = row.timeout
223
+ if (rawValue === undefined || rawValue === null || String(rawValue).trim() === '') {
224
+ throw new Error('Timeout value is required')
225
+ }
226
+ const raw = Number(rawValue)
227
+ if (isNaN(raw)) {
228
+ throw new Error(`Invalid timeout value: ${rawValue}`)
229
+ }
230
+ if (raw > 1000) {
231
+ throw new Error(`Timeout value exceeds maximum of 1000: ${raw}`)
232
+ }
233
+ if (raw < 0) {
234
+ throw new Error(`Timeout value must be non-negative: ${raw}`)
235
+ }
236
+ return raw
237
+ })()
238
+ }
239
+ })
219
240
  }
220
241
 
221
242
  export class RecombineAgentProvider implements ApiProvider {
@@ -242,10 +263,15 @@ export class RecombineAgentProvider implements ApiProvider {
242
263
  agentId: string
243
264
  region?: string
244
265
  conversation: Conversation
266
+ conversationParseError?: string
245
267
  context: Context
246
268
  timeoutSeconds?: number
247
269
  }
248
270
 
271
+ if (typeof vars.conversationParseError === 'string' && vars.conversationParseError.trim()) {
272
+ return { output: '', error: vars.conversationParseError }
273
+ }
274
+
249
275
  let captured: string = ''
250
276
  const capturedLogs: string[] = []
251
277
  const capturedStepTraces: StepTrace[] = []
@@ -259,15 +285,6 @@ export class RecombineAgentProvider implements ApiProvider {
259
285
  const conv: Conversation = Array.isArray(vars.conversation)
260
286
  ? (vars.conversation as Conversation).map((m) => ({ ...m }))
261
287
  : []
262
- const lastUserIndex = (() => {
263
- for (let i = conv.length - 1; i >= 0; i--) {
264
- if (conv[i]?.sender === 'user') return i
265
- }
266
- return -1
267
- })()
268
- if (lastUserIndex < 0) {
269
- return { output: '', error: 'No user message found in conversation' }
270
- }
271
288
 
272
289
  // Prepare a streaming log writer so logs are written as they occur
273
290
  {
@@ -581,6 +598,9 @@ export async function runPromptTests(
581
598
  ...(suite.region ? { region: suite.region } : {}),
582
599
  context: test.context,
583
600
  conversation: test.conversation,
601
+ ...(test.conversationParseError
602
+ ? { conversationParseError: test.conversationParseError }
603
+ : {}),
584
604
  timeoutSeconds: (test as any).timeoutSeconds
585
605
  }
586
606
  }
@@ -1 +0,0 @@
1
- import{l as o,a as r}from"../chunks/C5HWpeo9.js";export{o as load_css,r as start};
@@ -1,2 +0,0 @@
1
- )�import{l as o,a as r}from"../chunks/C5HWpeo9.js";export{o as load_css,r as start};
2
- 
@@ -1,6 +0,0 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["../chunks/DLQqXQ6R.js","../chunks/C1FmrZbK.js","../assets/editor.BMIWPGx3.css"])))=>i.map(i=>d[i]);
2
- import"../chunks/CWj6FrbW.js";import{o as Un,a as Zt,s as ce}from"../chunks/DQA6NP5y.js";import{p as Yt,i as d,e as z,o as bt,a as ke,h as t,l as B,b as L,c as en,af as Or,ag as $r,d as w,r as b,f as U,u as ht,t as re,B as Dr,g as gt,j as zr,s as k,n as de,k as we}from"../chunks/CfbYRn5k.js";import{i as Y}from"../chunks/Dl6q6wVH.js";import{M as In,k as qr}from"../chunks/CsYbWoTD.js";import{a as Pn,h as Ur,c as Vn,e as Vt,r as Xe,i as Vr,s as Bt,b as Br,I as Ht}from"../chunks/BCG4zvjp.js";import{s as je}from"../chunks/C_ZSt1CI.js";import{b as Ze}from"../chunks/DGa-EyU2.js";import{g as Hr,P as Jr}from"../chunks/BA8mqPb-.js";import{B as he}from"../chunks/wtOMB7ao.js";import{C as Tn,P as Qr}from"../chunks/BmadykGs.js";import{I as En}from"../chunks/BdZ7JhAm.js";import{r as Wr,p as Ln}from"../chunks/wDFujNbC.js";import{_ as Mn}from"../chunks/C1FmrZbK.js";import{b as Gr}from"../chunks/Bx2X1niE.js";import{e as Kr,a as Xr}from"../chunks/CxPv-oiS.js";import{t as Z}from"../chunks/BEJ5fU19.js";const Bn=/^[a-z0-9]+(-[a-z0-9]+)*$/,yt=(e,n,r,i="")=>{const s=e.split(":");if(e.slice(0,1)==="@"){if(s.length<2||s.length>3)return null;i=s.shift().slice(1)}if(s.length>3||!s.length)return null;if(s.length>1){const u=s.pop(),f=s.pop(),m={provider:s.length>0?s[0]:i,prefix:f,name:u};return n&&!mt(m)?null:m}const o=s[0],l=o.split("-");if(l.length>1){const u={provider:i,prefix:l.shift(),name:l.join("-")};return n&&!mt(u)?null:u}if(r&&i===""){const u={provider:i,prefix:"",name:o};return n&&!mt(u,r)?null:u}return null},mt=(e,n)=>e?!!((n&&e.prefix===""||e.prefix)&&e.name):!1;function Zr(e,n){const r=e.icons,i=e.aliases||Object.create(null),s=Object.create(null);function o(l){if(r[l])return s[l]=[];if(!(l in s)){s[l]=null;const u=i[l]&&i[l].parent,f=u&&o(u);f&&(s[l]=[u].concat(f))}return s[l]}return Object.keys(r).concat(Object.keys(i)).forEach(o),s}const Hn=Object.freeze({left:0,top:0,width:16,height:16}),xt=Object.freeze({rotate:0,vFlip:!1,hFlip:!1}),wt=Object.freeze({...Hn,...xt}),Wt=Object.freeze({...wt,body:"",hidden:!1});function Yr(e,n){const r={};!e.hFlip!=!n.hFlip&&(r.hFlip=!0),!e.vFlip!=!n.vFlip&&(r.vFlip=!0);const i=((e.rotate||0)+(n.rotate||0))%4;return i&&(r.rotate=i),r}function Rn(e,n){const r=Yr(e,n);for(const i in Wt)i in xt?i in e&&!(i in r)&&(r[i]=xt[i]):i in n?r[i]=n[i]:i in e&&(r[i]=e[i]);return r}function es(e,n,r){const i=e.icons,s=e.aliases||Object.create(null);let o={};function l(u){o=Rn(i[u]||s[u],o)}return l(n),r.forEach(l),Rn(e,o)}function Jn(e,n){const r=[];if(typeof e!="object"||typeof e.icons!="object")return r;e.not_found instanceof Array&&e.not_found.forEach(s=>{n(s,null),r.push(s)});const i=Zr(e);for(const s in i){const o=i[s];o&&(n(s,es(e,s,o)),r.push(s))}return r}const ts={provider:"",aliases:{},not_found:{},...Hn};function Jt(e,n){for(const r in n)if(r in e&&typeof e[r]!=typeof n[r])return!1;return!0}function Qn(e){if(typeof e!="object"||e===null)return null;const n=e;if(typeof n.prefix!="string"||!e.icons||typeof e.icons!="object"||!Jt(e,ts))return null;const r=n.icons;for(const s in r){const o=r[s];if(!s||typeof o.body!="string"||!Jt(o,Wt))return null}const i=n.aliases||Object.create(null);for(const s in i){const o=i[s],l=o.parent;if(!s||typeof l!="string"||!r[l]&&!i[l]||!Jt(o,Wt))return null}return n}const An=Object.create(null);function ns(e,n){return{provider:e,prefix:n,icons:Object.create(null),missing:new Set}}function Oe(e,n){const r=An[e]||(An[e]=Object.create(null));return r[n]||(r[n]=ns(e,n))}function Wn(e,n){return Qn(n)?Jn(n,(r,i)=>{i?e.icons[r]=i:e.missing.add(r)}):[]}function rs(e,n,r){try{if(typeof r.body=="string")return e.icons[n]={...r},!0}catch{}return!1}let nt=!1;function Gn(e){return typeof e=="boolean"&&(nt=e),nt}function ss(e){const n=typeof e=="string"?yt(e,!0,nt):e;if(n){const r=Oe(n.provider,n.prefix),i=n.name;return r.icons[i]||(r.missing.has(i)?null:void 0)}}function is(e,n){const r=yt(e,!0,nt);if(!r)return!1;const i=Oe(r.provider,r.prefix);return n?rs(i,r.name,n):(i.missing.add(r.name),!0)}function os(e,n){if(typeof e!="object")return!1;if(typeof n!="string"&&(n=e.provider||""),nt&&!n&&!e.prefix){let s=!1;return Qn(e)&&(e.prefix="",Jn(e,(o,l)=>{is(o,l)&&(s=!0)})),s}const r=e.prefix;if(!mt({prefix:r,name:"a"}))return!1;const i=Oe(n,r);return!!Wn(i,e)}const Kn=Object.freeze({width:null,height:null}),Xn=Object.freeze({...Kn,...xt}),as=/(-?[0-9.]*[0-9]+[0-9.]*)/g,ls=/^-?[0-9.]*[0-9]+[0-9.]*$/g;function Nn(e,n,r){if(n===1)return e;if(r=r||100,typeof e=="number")return Math.ceil(e*n*r)/r;if(typeof e!="string")return e;const i=e.split(as);if(i===null||!i.length)return e;const s=[];let o=i.shift(),l=ls.test(o);for(;;){if(l){const u=parseFloat(o);isNaN(u)?s.push(o):s.push(Math.ceil(u*n*r)/r)}else s.push(o);if(o=i.shift(),o===void 0)return s.join("");l=!l}}function cs(e,n="defs"){let r="";const i=e.indexOf("<"+n);for(;i>=0;){const s=e.indexOf(">",i),o=e.indexOf("</"+n);if(s===-1||o===-1)break;const l=e.indexOf(">",o);if(l===-1)break;r+=e.slice(s+1,o).trim(),e=e.slice(0,i).trim()+e.slice(l+1)}return{defs:r,content:e}}function us(e,n){return e?"<defs>"+e+"</defs>"+n:n}function ds(e,n,r){const i=cs(e);return us(i.defs,n+i.content+r)}const fs=e=>e==="unset"||e==="undefined"||e==="none";function ps(e,n){const r={...wt,...e},i={...Xn,...n},s={left:r.left,top:r.top,width:r.width,height:r.height};let o=r.body;[r,i].forEach($=>{const C=[],F=$.hFlip,h=$.vFlip;let O=$.rotate;F?h?O+=2:(C.push("translate("+(s.width+s.left).toString()+" "+(0-s.top).toString()+")"),C.push("scale(-1 1)"),s.top=s.left=0):h&&(C.push("translate("+(0-s.left).toString()+" "+(s.height+s.top).toString()+")"),C.push("scale(1 -1)"),s.top=s.left=0);let D;switch(O<0&&(O-=Math.floor(O/4)*4),O=O%4,O){case 1:D=s.height/2+s.top,C.unshift("rotate(90 "+D.toString()+" "+D.toString()+")");break;case 2:C.unshift("rotate(180 "+(s.width/2+s.left).toString()+" "+(s.height/2+s.top).toString()+")");break;case 3:D=s.width/2+s.left,C.unshift("rotate(-90 "+D.toString()+" "+D.toString()+")");break}O%2===1&&(s.left!==s.top&&(D=s.left,s.left=s.top,s.top=D),s.width!==s.height&&(D=s.width,s.width=s.height,s.height=D)),C.length&&(o=ds(o,'<g transform="'+C.join(" ")+'">',"</g>"))});const l=i.width,u=i.height,f=s.width,m=s.height;let _,I;l===null?(I=u===null?"1em":u==="auto"?m:u,_=Nn(I,f/m)):(_=l==="auto"?f:l,I=u===null?Nn(_,m/f):u==="auto"?m:u);const A={},N=($,C)=>{fs(C)||(A[$]=C.toString())};N("width",_),N("height",I);const M=[s.left,s.top,f,m];return A.viewBox=M.join(" "),{attributes:A,viewBox:M,body:o}}const vs=/\sid="(\S+)"/g,gs="IconifyId"+Date.now().toString(16)+(Math.random()*16777216|0).toString(16);let hs=0;function ms(e,n=gs){const r=[];let i;for(;i=vs.exec(e);)r.push(i[1]);if(!r.length)return e;const s="suffix"+(Math.random()*16777216|Date.now()).toString(16);return r.forEach(o=>{const l=typeof n=="function"?n(o):n+(hs++).toString(),u=o.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");e=e.replace(new RegExp('([#;"])('+u+')([")]|\\.[a-z])',"g"),"$1"+l+s+"$3")}),e=e.replace(new RegExp(s,"g"),""),e}const Gt=Object.create(null);function _s(e,n){Gt[e]=n}function Kt(e){return Gt[e]||Gt[""]}function tn(e){let n;if(typeof e.resources=="string")n=[e.resources];else if(n=e.resources,!(n instanceof Array)||!n.length)return null;return{resources:n,path:e.path||"/",maxURL:e.maxURL||500,rotate:e.rotate||750,timeout:e.timeout||5e3,random:e.random===!0,index:e.index||0,dataAfterTimeout:e.dataAfterTimeout!==!1}}const nn=Object.create(null),Ye=["https://api.simplesvg.com","https://api.unisvg.com"],_t=[];for(;Ye.length>0;)Ye.length===1||Math.random()>.5?_t.push(Ye.shift()):_t.push(Ye.pop());nn[""]=tn({resources:["https://api.iconify.design"].concat(_t)});function bs(e,n){const r=tn(n);return r===null?!1:(nn[e]=r,!0)}function rn(e){return nn[e]}const xs=()=>{let e;try{if(e=fetch,typeof e=="function")return e}catch{}};let Fn=xs();function ys(e,n){const r=rn(e);if(!r)return 0;let i;if(!r.maxURL)i=0;else{let s=0;r.resources.forEach(l=>{s=Math.max(s,l.length)});const o=n+".json?icons=";i=r.maxURL-s-r.path.length-o.length}return i}function ws(e){return e===404}const ks=(e,n,r)=>{const i=[],s=ys(e,n),o="icons";let l={type:o,provider:e,prefix:n,icons:[]},u=0;return r.forEach((f,m)=>{u+=f.length+1,u>=s&&m>0&&(i.push(l),l={type:o,provider:e,prefix:n,icons:[]},u=f.length),l.icons.push(f)}),i.push(l),i};function Cs(e){if(typeof e=="string"){const n=rn(e);if(n)return n.path}return"/"}const Ss=(e,n,r)=>{if(!Fn){r("abort",424);return}let i=Cs(n.provider);switch(n.type){case"icons":{const o=n.prefix,u=n.icons.join(","),f=new URLSearchParams({icons:u});i+=o+".json?"+f.toString();break}case"custom":{const o=n.uri;i+=o.slice(0,1)==="/"?o.slice(1):o;break}default:r("abort",400);return}let s=503;Fn(e+i).then(o=>{const l=o.status;if(l!==200){setTimeout(()=>{r(ws(l)?"abort":"next",l)});return}return s=501,o.json()}).then(o=>{if(typeof o!="object"||o===null){setTimeout(()=>{o===404?r("abort",o):r("next",s)});return}setTimeout(()=>{r("success",o)})}).catch(()=>{r("next",s)})},Is={prepare:ks,send:Ss};function Zn(e,n){e.forEach(r=>{const i=r.loaderCallbacks;i&&(r.loaderCallbacks=i.filter(s=>s.id!==n))})}function Ps(e){e.pendingCallbacksFlag||(e.pendingCallbacksFlag=!0,setTimeout(()=>{e.pendingCallbacksFlag=!1;const n=e.loaderCallbacks?e.loaderCallbacks.slice(0):[];if(!n.length)return;let r=!1;const i=e.provider,s=e.prefix;n.forEach(o=>{const l=o.icons,u=l.pending.length;l.pending=l.pending.filter(f=>{if(f.prefix!==s)return!0;const m=f.name;if(e.icons[m])l.loaded.push({provider:i,prefix:s,name:m});else if(e.missing.has(m))l.missing.push({provider:i,prefix:s,name:m});else return r=!0,!0;return!1}),l.pending.length!==u&&(r||Zn([e],o.id),o.callback(l.loaded.slice(0),l.missing.slice(0),l.pending.slice(0),o.abort))})}))}let Ts=0;function Es(e,n,r){const i=Ts++,s=Zn.bind(null,r,i);if(!n.pending.length)return s;const o={id:i,icons:n,callback:e,abort:s};return r.forEach(l=>{(l.loaderCallbacks||(l.loaderCallbacks=[])).push(o)}),s}function Ls(e){const n={loaded:[],missing:[],pending:[]},r=Object.create(null);e.sort((s,o)=>s.provider!==o.provider?s.provider.localeCompare(o.provider):s.prefix!==o.prefix?s.prefix.localeCompare(o.prefix):s.name.localeCompare(o.name));let i={provider:"",prefix:"",name:""};return e.forEach(s=>{if(i.name===s.name&&i.prefix===s.prefix&&i.provider===s.provider)return;i=s;const o=s.provider,l=s.prefix,u=s.name,f=r[o]||(r[o]=Object.create(null)),m=f[l]||(f[l]=Oe(o,l));let _;u in m.icons?_=n.loaded:l===""||m.missing.has(u)?_=n.missing:_=n.pending;const I={provider:o,prefix:l,name:u};_.push(I)}),n}function Ms(e,n=!0,r=!1){const i=[];return e.forEach(s=>{const o=typeof s=="string"?yt(s,n,r):s;o&&i.push(o)}),i}const Rs={resources:[],index:0,timeout:2e3,rotate:750,random:!1,dataAfterTimeout:!1};function As(e,n,r,i){const s=e.resources.length,o=e.random?Math.floor(Math.random()*s):e.index;let l;if(e.random){let T=e.resources.slice(0);for(l=[];T.length>1;){const K=Math.floor(Math.random()*T.length);l.push(T[K]),T=T.slice(0,K).concat(T.slice(K+1))}l=l.concat(T)}else l=e.resources.slice(o).concat(e.resources.slice(0,o));const u=Date.now();let f="pending",m=0,_,I=null,A=[],N=[];typeof i=="function"&&N.push(i);function M(){I&&(clearTimeout(I),I=null)}function $(){f==="pending"&&(f="aborted"),M(),A.forEach(T=>{T.status==="pending"&&(T.status="aborted")}),A=[]}function C(T,K){K&&(N=[]),typeof T=="function"&&N.push(T)}function F(){return{startTime:u,payload:n,status:f,queriesSent:m,queriesPending:A.length,subscribe:C,abort:$}}function h(){f="failed",N.forEach(T=>{T(void 0,_)})}function O(){A.forEach(T=>{T.status==="pending"&&(T.status="aborted")}),A=[]}function D(T,K,fe){const E=K!=="success";switch(A=A.filter(q=>q!==T),f){case"pending":break;case"failed":if(E||!e.dataAfterTimeout)return;break;default:return}if(K==="abort"){_=fe,h();return}if(E){_=fe,A.length||(l.length?J():h());return}if(M(),O(),!e.random){const q=e.resources.indexOf(T.resource);q!==-1&&q!==e.index&&(e.index=q)}f="completed",N.forEach(q=>{q(fe)})}function J(){if(f!=="pending")return;M();const T=l.shift();if(T===void 0){if(A.length){I=setTimeout(()=>{M(),f==="pending"&&(O(),h())},e.timeout);return}h();return}const K={status:"pending",resource:T,callback:(fe,E)=>{D(K,fe,E)}};A.push(K),m++,I=setTimeout(J,e.rotate),r(T,n,K.callback)}return setTimeout(J),F}function Yn(e){const n={...Rs,...e};let r=[];function i(){r=r.filter(u=>u().status==="pending")}function s(u,f,m){const _=As(n,u,f,(I,A)=>{i(),m&&m(I,A)});return r.push(_),_}function o(u){return r.find(f=>u(f))||null}return{query:s,find:o,setIndex:u=>{n.index=u},getIndex:()=>n.index,cleanup:i}}function jn(){}const Qt=Object.create(null);function Ns(e){if(!Qt[e]){const n=rn(e);if(!n)return;const r=Yn(n),i={config:n,redundancy:r};Qt[e]=i}return Qt[e]}function Fs(e,n,r){let i,s;if(typeof e=="string"){const o=Kt(e);if(!o)return r(void 0,424),jn;s=o.send;const l=Ns(e);l&&(i=l.redundancy)}else{const o=tn(e);if(o){i=Yn(o);const l=e.resources?e.resources[0]:"",u=Kt(l);u&&(s=u.send)}}return!i||!s?(r(void 0,424),jn):i.query(n,s,r)().abort}function On(){}function js(e){e.iconsLoaderFlag||(e.iconsLoaderFlag=!0,setTimeout(()=>{e.iconsLoaderFlag=!1,Ps(e)}))}function Os(e){const n=[],r=[];return e.forEach(i=>{(i.match(Bn)?n:r).push(i)}),{valid:n,invalid:r}}function et(e,n,r){function i(){const s=e.pendingIcons;n.forEach(o=>{s&&s.delete(o),e.icons[o]||e.missing.add(o)})}if(r&&typeof r=="object")try{if(!Wn(e,r).length){i();return}}catch(s){console.error(s)}i(),js(e)}function $n(e,n){e instanceof Promise?e.then(r=>{n(r)}).catch(()=>{n(null)}):n(e)}function $s(e,n){e.iconsToLoad?e.iconsToLoad=e.iconsToLoad.concat(n).sort():e.iconsToLoad=n,e.iconsQueueFlag||(e.iconsQueueFlag=!0,setTimeout(()=>{e.iconsQueueFlag=!1;const{provider:r,prefix:i}=e,s=e.iconsToLoad;if(delete e.iconsToLoad,!s||!s.length)return;const o=e.loadIcon;if(e.loadIcons&&(s.length>1||!o)){$n(e.loadIcons(s,i,r),_=>{et(e,s,_)});return}if(o){s.forEach(_=>{const I=o(_,i,r);$n(I,A=>{const N=A?{prefix:i,icons:{[_]:A}}:null;et(e,[_],N)})});return}const{valid:l,invalid:u}=Os(s);if(u.length&&et(e,u,null),!l.length)return;const f=i.match(Bn)?Kt(r):null;if(!f){et(e,l,null);return}f.prepare(r,i,l).forEach(_=>{Fs(r,_,I=>{et(e,_.icons,I)})})}))}const Ds=(e,n)=>{const r=Ms(e,!0,Gn()),i=Ls(r);if(!i.pending.length){let f=!0;return n&&setTimeout(()=>{f&&n(i.loaded,i.missing,i.pending,On)}),()=>{f=!1}}const s=Object.create(null),o=[];let l,u;return i.pending.forEach(f=>{const{provider:m,prefix:_}=f;if(_===u&&m===l)return;l=m,u=_,o.push(Oe(m,_));const I=s[m]||(s[m]=Object.create(null));I[_]||(I[_]=[])}),i.pending.forEach(f=>{const{provider:m,prefix:_,name:I}=f,A=Oe(m,_),N=A.pendingIcons||(A.pendingIcons=new Set);N.has(I)||(N.add(I),s[m][_].push(I))}),o.forEach(f=>{const m=s[f.provider][f.prefix];m.length&&$s(f,m)}),n?Es(n,i,o):On};function zs(e,n){const r={...e};for(const i in n){const s=n[i],o=typeof s;i in Kn?(s===null||s&&(o==="string"||o==="number"))&&(r[i]=s):o===typeof r[i]&&(r[i]=i==="rotate"?s%4:s)}return r}const qs=/[\s,]+/;function Us(e,n){n.split(qs).forEach(r=>{switch(r.trim()){case"horizontal":e.hFlip=!0;break;case"vertical":e.vFlip=!0;break}})}function Vs(e,n=0){const r=e.replace(/^-?[0-9.]*/,"");function i(s){for(;s<0;)s+=4;return s%4}if(r===""){const s=parseInt(e);return isNaN(s)?0:i(s)}else if(r!==e){let s=0;switch(r){case"%":s=25;break;case"deg":s=90}if(s){let o=parseFloat(e.slice(0,e.length-r.length));return isNaN(o)?0:(o=o/s,o%1===0?i(o):0)}}return n}function Bs(e,n){let r=e.indexOf("xlink:")===-1?"":' xmlns:xlink="http://www.w3.org/1999/xlink"';for(const i in n)r+=" "+i+'="'+n[i]+'"';return'<svg xmlns="http://www.w3.org/2000/svg"'+r+">"+e+"</svg>"}function Hs(e){return e.replace(/"/g,"'").replace(/%/g,"%25").replace(/#/g,"%23").replace(/</g,"%3C").replace(/>/g,"%3E").replace(/\s+/g," ")}function Js(e){return"data:image/svg+xml,"+Hs(e)}function Qs(e){return'url("'+Js(e)+'")'}const Dn={...Xn,inline:!1},Ws={xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink","aria-hidden":!0,role:"img"},Gs={display:"inline-block"},Xt={"background-color":"currentColor"},er={"background-color":"transparent"},zn={image:"var(--svg)",repeat:"no-repeat",size:"100% 100%"},qn={"-webkit-mask":Xt,mask:Xt,background:er};for(const e in qn){const n=qn[e];for(const r in zn)n[e+"-"+r]=zn[r]}function Ks(e){return e+(e.match(/^[-0-9.]+$/)?"px":"")}function Xs(e,n){const r=zs(Dn,n),i=n.mode||"svg",s=i==="svg"?{...Ws}:{};e.body.indexOf("xlink:")===-1&&delete s["xmlns:xlink"];let o=typeof n.style=="string"?n.style:"";for(let F in n){const h=n[F];if(h!==void 0)switch(F){case"icon":case"style":case"onLoad":case"mode":case"ssr":break;case"inline":case"hFlip":case"vFlip":r[F]=h===!0||h==="true"||h===1;break;case"flip":typeof h=="string"&&Us(r,h);break;case"color":o=o+(o.length>0&&o.trim().slice(-1)!==";"?";":"")+"color: "+h+"; ";break;case"rotate":typeof h=="string"?r[F]=Vs(h):typeof h=="number"&&(r[F]=h);break;case"ariaHidden":case"aria-hidden":h!==!0&&h!=="true"&&delete s["aria-hidden"];break;default:if(F.slice(0,3)==="on:")break;Dn[F]===void 0&&(s[F]=h)}}const l=ps(e,r),u=l.attributes;if(r.inline&&(o="vertical-align: -0.125em; "+o),i==="svg"){Object.assign(s,u),o!==""&&(s.style=o);let F=0,h=n.id;return typeof h=="string"&&(h=h.replace(/-/g,"_")),{svg:!0,attributes:s,body:ms(l.body,h?()=>h+"ID"+F++:"iconifySvelte")}}const{body:f,width:m,height:_}=e,I=i==="mask"||(i==="bg"?!1:f.indexOf("currentColor")!==-1),A=Bs(f,{...u,width:m+"",height:_+""}),M={"--svg":Qs(A)},$=F=>{const h=u[F];h&&(M[F]=Ks(h))};$("width"),$("height"),Object.assign(M,Gs,I?Xt:er);let C="";for(const F in M)C+=F+": "+M[F]+";";return s.style=C+o,{svg:!1,attributes:s}}Gn(!0);_s("",Is);if(typeof document<"u"&&typeof window<"u"){const e=window;if(e.IconifyPreload!==void 0){const n=e.IconifyPreload,r="Invalid IconifyPreload syntax.";typeof n=="object"&&n!==null&&(n instanceof Array?n:[n]).forEach(i=>{try{(typeof i!="object"||i===null||i instanceof Array||typeof i.icons!="object"||typeof i.prefix!="string"||!os(i))&&console.error(r)}catch{console.error(r)}})}if(e.IconifyProviders!==void 0){const n=e.IconifyProviders;if(typeof n=="object"&&n!==null)for(let r in n){const i="IconifyProviders["+r+"] is invalid.";try{const s=n[r];if(typeof s!="object"||!s||s.resources===void 0)continue;bs(r,s)||console.error(i)}catch{console.error(i)}}}}function Zs(e,n,r,i,s){function o(){n.loading&&(n.loading.abort(),n.loading=null)}if(typeof e=="object"&&e!==null&&typeof e.body=="string")return n.name="",o(),{data:{...wt,...e}};let l;if(typeof e!="string"||(l=yt(e,!1,!0))===null)return o(),null;const u=ss(l);if(!u)return r&&(!n.loading||n.loading.name!==e)&&(o(),n.name="",n.loading={name:e,abort:Ds([l],i)}),null;o(),n.name!==e&&(n.name=e,s&&!n.destroyed&&setTimeout(()=>{s(e)}));const f=["iconify"];return l.prefix!==""&&f.push("iconify--"+l.prefix),l.provider!==""&&f.push("iconify--"+l.provider),{data:u,classes:f}}function Ys(e,n){return e?Xs({...wt,...e},n):null}var ei=$r("<svg><!></svg>"),ti=U("<span></span>");function tt(e,n){Yt(n,!0);const r={name:"",loading:null,destroyed:!1},i=Wr(n,["$$slots","$$events","$$legacy"]);let s=z(!1),o=z(0),l=B(()=>!!n.ssr||t(s)),u=B(()=>(t(o),Zs(n.icon,r,t(l),m,n.onload))),f=B(()=>{const N=t(u)?Ys(t(u).data,i):null;return N&&t(u).classes&&(N.attributes.class=(typeof i.class=="string"?i.class+" ":"")+t(u).classes.join(" ")),N});function m(){Or(o)}Un(()=>{d(s,!0)}),Zt(()=>{r.destroyed=!0,r.loading&&(r.loading.abort(),r.loading=null)});var _=bt(),I=ke(_);{var A=N=>{var M=bt(),$=ke(M);{var C=h=>{var O=ei();Pn(O,()=>({...t(f).attributes}));var D=w(O);Ur(D,()=>t(f).body,!0),b(O),L(h,O)},F=h=>{var O=ti();Pn(O,()=>({...t(f).attributes})),L(h,O)};Y($,h=>{t(f).svg?h(C):h(F,!1)})}L(N,M)};Y(I,N=>{t(f)&&N(A)})}L(e,_),en()}var ni=U('<div class="w-full"></div>');function ri(e,n){Yt(n,!0);let r=z(null),i=null,s=[],o=null,l=!1,u,f=Ln(n,"language",3,"plaintext"),m=Ln(n,"height",3,120),_=[],I=z(!1);function A(M){t(I)||M.stopPropagation()}Un(async()=>{var O,D;if(!u)return;u.addEventListener("wheel",A,{capture:!0,passive:!0}),Kr();const M=await Mn(()=>import("../chunks/DLQqXQ6R.js").then(J=>J.e),__vite__mapDeps([0,1,2]),import.meta.url);if(l)return;o=M,Xr(M);const $=f()==="json"?"json":f()==="markdown"?"markdown":"plaintext";d(r,M.editor.create(u,{value:n.value??"",language:$,theme:"bosun-dark",lineNumbers:"off",fontSize:14,fontFamily:'ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"',automaticLayout:!0,minimap:{enabled:!1},wordBasedSuggestions:"off",wordWrap:"bounded",wordWrapColumn:75,wrappingStrategy:"advanced",scrollbar:{vertical:"hidden",horizontal:"hidden"},overviewRulerLanes:0,renderLineHighlight:"none",folding:!1,renderWhitespace:"none",padding:{top:4,bottom:4},matchBrackets:"never",bracketPairColorization:{enabled:!1},guides:{highlightActiveBracketPair:!1,bracketPairs:!1,bracketPairsHorizontal:!1},occurrencesHighlight:"off",selectionHighlight:!1,unicodeHighlight:{ambiguousCharacters:!1,nonBasicASCII:!1,invisibleCharacters:!1,includeStrings:!1,includeComments:!1},autoClosingQuotes:"never"}),!0);const C=t(r);if(!C)return;i=C.getModel(),s.push(C.onDidFocusEditorText(()=>{d(I,!0)})),s.push(C.onDidChangeModelContent(()=>{var J;try{const T=C.getValue();if(T===n.value)return;(J=n.onChange)==null||J.call(n,T)}catch(T){console.error("MiniEditor change error",T)}})),s.push(C.onDidBlurEditorText(()=>{var J;d(I,!1);try{(J=n.onBlur)==null||J.call(n,C.getValue())}catch{}}));const F=(O=C.onDidFocusEditorWidget)==null?void 0:O.call(C,()=>{d(I,!0)});F&&s.push(F);const h=(D=C.onDidBlurEditorWidget)==null?void 0:D.call(C,()=>{var J;d(I,!1);try{(J=n.onBlur)==null||J.call(n,C.getValue())}catch{}});h&&s.push(h)}),Zt(()=>{l=!0;try{u.removeEventListener("wheel",A,{capture:!0})}catch{}for(const $ of s)try{$.dispose()}catch{}s=[];const M=i;i=null;try{if(t(r)){try{t(r).setModel(null)}catch{}t(r).dispose()}}finally{d(r,null)}try{M==null||M.dispose()}catch{}o=null}),ht(()=>{if(!t(r))return;const M=f()==="json"?"json":f()==="markdown"?"markdown":"plaintext",$=t(r).getModel();if(!$||$.getLanguageId()===M)return;let C=!1;return(o?Promise.resolve(o):Mn(()=>import("../chunks/DLQqXQ6R.js").then(h=>h.e),__vite__mapDeps([0,1,2]),import.meta.url)).then(h=>{if(!C)try{h.editor.setModelLanguage($,M)}catch{}}),()=>{C=!0}}),ht(()=>{t(r)&&n.value!==t(r).getValue()&&t(r).setValue(n.value??"")}),ht(()=>{const M=n.highlights;if(!t(r)||!i||!o)return;const $=o,C=i.getLineCount(),F=[];for(const h of M??[]){const O=Math.max(1,Math.min(C,Number(h.startLine)||1)),D=Math.max(O,Math.min(C,Number(h.endLine)||O)),J=i.getLineMaxColumn(D);if(F.push({range:new $.Range(O,1,D,J),options:{inlineClassName:h.className}}),h.className==="test-expected-output")for(let T=O;T<=D;T++){const K=i.getLineContent(T),fe=/<\/?[A-Za-z][^>]*?>/g;let E;for(;E=fe.exec(K);){const q=(E.index??0)+1,me=Math.min(i.getLineMaxColumn(T),q+String(E[0]??"").length);me<=q||F.push({range:new $.Range(T,q,T,me),options:{inlineClassName:"test-expected-output-tag"}})}}}_=t(r).deltaDecorations(_,F)});var N=ni();Gr(N,M=>u=M,()=>u),re(()=>Vn(N,`height:${m()}px`)),L(e,N),en()}var si=U('<link rel="preload" href="/ui/arrow_tests.svg" as="image"/>'),ii=U("<!> <!>",1),oi=U('<div class="p-2 text-gray-300">Loading…</div>'),ai=U('<div class="p-2 text-red-400"> </div>'),li=U('<pre class="whitespace-pre-wrap font-mono text-gray-200"> </pre>'),ci=U('<div class="mr-3 flex items-center gap-3"><span class="animate-pulse rounded bg-rc-green-200 px-3 py-1 text-white"> </span> <!></div>'),ui=U("<!> New test",1),di=U('<div class="pointer-events-none absolute -left-28 top-full mt-4 inline-flex -translate-x-1/2 flex-col items-center"><div class="relative w-50vw max-w-2xl"><img src="/ui/arrow_tests.svg" alt="Arrow" class="block h-auto w-full object-contain"/> <span class="absolute inset-0 mt-48 flex items-center justify-center text-center text-4xl font-extrabold text-rc-gray-200">No tests yet.<br/>Add the first one</span></div></div>'),fi=async(e,n,r)=>{await n(!t(r))},pi=U('<div class="p-3 text-gray-400">—</div>'),vi=async(e,n,r,i,s)=>{const o=!t(n).pinned;d(r,t(r).map(l=>l.id===t(n).id?{...l,pinned:o}:l),!0),await i(s(t(n).id,{pinned:o?"TRUE":"FALSE"}))},gi=(e,n,r)=>n(t(r).id),hi=(e,n,r)=>n(t(r).id,{scenario:t(r).scenario}),mi=U(`<div class="rounded bg-rc-gray-930 px-2 py-2 text-sm text-rc-red-600">Invalid test: expected must be the last block (“Agent: …”), with a
3
- prompt “User: …” block right above it</div>`),_i=(e,n,r)=>n(t(r).id,{author:t(r).author||""}),bi=(e,n,r)=>n(t(r).id,{assertion_type:t(r).assertion_type}),xi=U("<option> </option>"),yi=(e,n,r)=>n(t(r).id,{assertion_value:t(r).assertion_value}),wi=(e,n,r,i)=>{t(n).timeout=r(+t(n).timeout||0,0,999),i(t(n).id,{timeout:String(t(n).timeout)})},ki=(e,n,r,i)=>{t(n).similarity_threshold=r(+t(n).similarity_threshold||0,0,100),i(t(n).id,{similarity_threshold:String(t(n).similarity_threshold)})},Ci=U('<span class="ml-2 text-rc-gray-400"> </span>'),Si=U('<span><!><span class="ml-1">significant</span></span>'),Ii=U('<span class="text-rc-gray-400">(old)</span>'),Pi=U('<div class="text-lg font-extrabold"><span class="text-rc-gray-200"> </span> <!> <!> <!></div>'),Ti=(e,n,r)=>n("Rendered Prompt",t(r).links.renderedPrompt),Ei=(e,n,r)=>n("Received Prompt",t(r).links.receivedPrompt),Li=(e,n,r)=>n("Conversation",t(r).links.conversation),Mi=(e,n,r)=>n("Context",t(r).links.context),Ri=(e,n,r)=>n("Logs",t(r).links.logs),Ai=(e,n,r)=>n("Traces",t(r).links.traces),Ni=(e,n,r,i)=>n(t(r).scenario||"Test",t(i).index,t(i).links.renderedPrompt),Fi=U('<div class="flex flex-col gap-2"><div> </div> <div><div class="flex items-center gap-0"><!> <span> </span></div> <div class="mt-1 flex flex-wrap items-center gap-x-4"><button type="button" class="pseudolink svelte-rdft55">Rendered prompt</button> <button type="button" class="pseudolink svelte-rdft55">Received prompt</button> <button type="button" class="pseudolink svelte-rdft55">Conversation</button> <button type="button" class="pseudolink svelte-rdft55">Context</button> <button type="button" class="pseudolink svelte-rdft55">Logs</button> <button type="button" class="pseudolink svelte-rdft55">Traces</button> <button type="button" class="pseudolink svelte-rdft55">Analyze</button></div></div></div>'),ji=U('<div class="mt-3 flex flex-col gap-4"></div>'),Oi=U('<div class="border-b border-rc-gray-700 p-2"><div class="grid grid-cols-[2.25rem,1fr] gap-2"><div class="flex flex-col items-center gap-1"><button><!></button> <button title="Duplicate" class="icon-btn text-gray-300 hover:text-gray-100 disabled:cursor-not-allowed disabled:opacity-50 svelte-rdft55"><!></button> <button title="Delete" class="icon-btn text-gray-300 hover:text-gray-100 disabled:cursor-not-allowed disabled:opacity-50 svelte-rdft55"><!></button></div> <div class="min-w-0"><div><div class="left-details-bg sticky top-0 z-10 rounded-t border-b border-rc-gray-700 px-2 pb-1 pt-2 svelte-rdft55"><input class="card-input-title svelte-rdft55" type="text" placeholder="Scenario"/></div> <div class="flex flex-col gap-2 p-2"><!> <input class="card-input-subtle svelte-rdft55" type="text" placeholder="Author"/> <div class="flex items-center gap-2"><select class="rc-scroll rc-input w-36 svelte-rdft55" aria-label="Assertion Type"></select> <input class="rc-input min-w-0 flex-1 svelte-rdft55" type="text" placeholder="Assertion value"/></div> <div class="flex flex-wrap items-center gap-3"><div class="flex items-center gap-2"><span class="text-rc-gray-300">Timeout (s)</span> <input class="rc-input no-spin w-16 svelte-rdft55" type="number" min="0" max="999" placeholder="Timeout"/></div> <div class="flex items-center gap-2"><span class="text-rc-gray-300">Similarity (%)</span> <input class="rc-input no-spin w-16 svelte-rdft55" type="number" min="0" max="100" placeholder="Similarity (%)"/></div> <!></div> <!></div> <div class="rounded-b border-t border-rc-gray-700 bg-rc-gray-980 p-2"><div class="flex flex-wrap items-center gap-3"><!> <!></div> <!></div></div></div></div></div>'),$i=U('<div class="flex flex-col space-y-5"></div>'),Di=U('<div class="min-h-0 flex-1 overflow-hidden p-3"><!></div>'),zi=U('<div class="rc-scroll min-h-0 flex-1 overflow-auto"><div class="grid grid-cols-[2.25rem,1fr] items-center gap-2 border-b border-rc-gray-700 p-2"><button aria-label="Pin/unpin all" title="Pin/unpin all"><!></button> <span class="text-left text-rc-gray-300"> </span></div> <!></div> <!>',1),qi=U('<div class="flex h-full min-h-0 flex-col"><div class="flex flex-none items-center justify-between gap-3 p-2"><div class="flex flex-wrap items-center gap-3 pl-11"><div class="flex items-center gap-2"><label class="text-rc-gray-300">Repeats</label> <!></div> <div class="flex items-center gap-2"><label class="text-rc-gray-300">Concurrency</label> <!></div></div> <div class="flex flex-wrap items-center gap-3"><!> <!> <div class="relative inline-flex items-center"><!> <!></div> <!></div></div> <div class="min-h-0 flex-1 overflow-hidden"><!></div></div>'),Ui=U("<!> <!> <!>",1);function oo(e,n){Yt(n,!0);const{state:r,actions:i}=Hr(),s=B(()=>r.agentId),o=B(()=>r.region);function l(a){try{return structuredClone(a)}catch{try{return JSON.parse(JSON.stringify(a))}catch{return a}}}function u(a,p,c){return Math.max(p,Math.min(c,a))}let f=z(1),m=z(1),_=z(gt({})),I=z(gt({})),A=z(!1),N=z(null),M=z(gt({})),$=z(!1),C=z(""),F=z(null),h=z(!1),O=z(null);async function D(a,p){d(C,a,!0),d(F,null),d(O,null),d(h,!0),d($,!0);try{const c=await Z.tests.resultEntry.query({agent:p.agent,region:t(o),testId:p.id,resultKey:p.key,timestamp:p.timestamp,index:p.run});let g=c;try{const v=JSON.parse(c);g=JSON.stringify(v,null,2)}catch{}d(F,g,!0)}catch(c){console.error(c),d(O,"Failed to load content")}finally{d(h,!1)}}let J=z(!1);async function T(a,p,c){var S;if(t(J))return;d(J,!0);const g=i.openPopover("analyze"),v=`Analysis — ${a} (run ${p})`;try{const y=await Z.tests.analyzeRun.mutate({agent:c.agent,region:t(o),testId:c.id,index:c.run,timestamp:c.timestamp});if(((S=r.edit.popover)==null?void 0:S.requestId)!==g)return;i.setHighlightQuotes(y.quotes);let P=null;try{P=JSON.stringify(y.raw,null,2)}catch{P=null}i.setPopoverReady(g,{title:v,quotes:y.quotes,raw:P})}catch(y){console.error(y);const P=typeof(y==null?void 0:y.message)=="string"?y.message:(()=>{try{return JSON.stringify(y)}catch{return String(y)}})();i.setPopoverError(g,P||"Failed to analyze this response",{raw:P})}finally{d(J,!1)}}const K=[{value:"llm-rubric",label:"LLM"},{value:"answer-relevance",label:"Answer Relevance (LLM)"},{value:"context-faithfulness",label:"Context Faithfulness (LLM)"},{value:"context-recall",label:"Context Recall (LLM)"},{value:"context-relevance",label:"Context Relevance (LLM)"},{value:"model-graded-closedqa",label:"Model-Graded Closed QA"},{value:"model-graded-factuality",label:"Model-Graded Factuality"},{value:"moderation",label:"Moderation"},{value:"classifier",label:"Classifier"},{value:"g-eval",label:"G-Eval"},{value:"factuality",label:"Factuality"},{value:"conversation-relevance",label:"Conversation Relevance"},{value:"equals",label:"Equals"},{value:"contains",label:"Contains"},{value:"icontains",label:"Contains (case-insensitive)"},{value:"contains-all",label:"Contains All"},{value:"contains-any",label:"Contains Any"},{value:"icontains-all",label:"Contains All (iCase)"},{value:"icontains-any",label:"Contains Any (iCase)"},{value:"starts-with",label:"Starts With"},{value:"regex",label:"Regex"},{value:"levenshtein",label:"Levenshtein Distance"},{value:"is-refusal",label:"Is Refusal"},{value:"is-html",label:"Is HTML"},{value:"contains-html",label:"Contains HTML"},{value:"is-json",label:"Is JSON"},{value:"contains-json",label:"Contains JSON"},{value:"is-xml",label:"Is XML"},{value:"contains-xml",label:"Contains XML"},{value:"is-sql",label:"Is SQL"},{value:"contains-sql",label:"Contains SQL"},{value:"similar",label:"Semantic Similarity"},{value:"rouge-n",label:"ROUGE-N"},{value:"bleu",label:"BLEU"},{value:"gleu",label:"GLEU"},{value:"meteor",label:"METEOR"},{value:"perplexity",label:"Perplexity"},{value:"perplexity-score",label:"Perplexity Score"},{value:"latency",label:"Latency"},{value:"cost",label:"Cost"},{value:"finish-reason",label:"Finish Reason"},{value:"trace-error-spans",label:"Trace Error Spans"},{value:"trace-span-count",label:"Trace Span Count"},{value:"trace-span-duration",label:"Trace Span Duration"},{value:"is-valid-function-call",label:"Is Valid Function Call"},{value:"is-valid-openai-function-call",label:"Is Valid OpenAI Function Call"},{value:"is-valid-openai-tools-call",label:"Is Valid OpenAI Tools Call"},{value:"guardrails",label:"Guardrails"},{value:"javascript",label:"JavaScript (custom)"},{value:"python",label:"Python (custom)"},{value:"webhook",label:"Webhook (custom)"},{value:"pi",label:"Pi Scorer"}],fe=[...K,...K.map(a=>({value:`not-${a.value}`,label:`Not ${a.label}`}))];let E=z(gt([])),q=z(!1),me=z(!1),Re=z(!1),$e=z(null),rt=z(null),st=z(0),kt=z(0),it=z(1),Ct=!1,ee=null,De=0;const ot=new Set;let ze=z(0);const pe=B(()=>t(ze)>0);let qe=z(!1);function Ce(a){return ot.add(a),d(ze,t(ze)+1),a.finally(()=>{ot.delete(a),d(ze,t(ze)-1)}),a}function sn(a,p,c){const g=Array.isArray(c.results)?c.results:[],v=g.reduce((S,y)=>S+(y!=null&&y.success?1:0),0);return{success_rate:c.success_rate,successes:v,total_runs:g.length,isOld:!!c.is_old,previous:c.previous&&typeof c.previous=="object"?{success_count:Number(c.previous.success_count??0),total_runs:Number(c.previous.total_runs??0),report_timestamp:String(c.previous.report_timestamp??"")}:void 0,runs:g.map((S,y)=>{const P=c.report_timestamp,R={agent:a,id:p,timestamp:P,run:y};return{index:y+1,success:!!S.success,text:String(S.result||""),evaluation:String(S.evaluation||""),links:{renderedPrompt:{...R,key:"rendered_prompt"},receivedPrompt:{...R,key:"received_prompt"},conversation:{...R,key:"stringified_conversation"},context:{...R,key:"received_context"},logs:{...R,key:"logs"},traces:{...R,key:"traces"}}}}).reverse()}}async function Ae(){const a=(t(s)??"").trim();if(a)try{const[{rows:p},c,g]=await Promise.all([Z.tests.list.query({agent:a,region:t(o)}),Z.tests.config.query({agent:a,region:t(o)}),Z.tests.latestResult.query({agent:a,region:t(o)})]);if((t(s)??"").trim()!==a)return;d(f,c.repeats??1,!0),d(m,c.concurrency??1,!0),d(_,c.defaultContext??{},!0),d(E,p.map(v=>{const S=v.id,y=g[S];return{id:S,pinned:String(v.pinned).toUpperCase()==="TRUE",scenario:v.scenario||"",step:String(v.step??""),author:v.author||"",assertion_type:v.assertion_type||"llm-rubric",assertion_value:v.assertion_value||"",conversation:v.conversation||"",expected_output:v.expected_output||"",conversation_ui:ln(v.conversation||"",v.expected_output||""),timeout:Number(v.timeout??0),similarity_threshold:Number(v.similarity_threshold??60),context:JSON.stringify(v.context),result:y?sn(a,S,y):void 0}}),!0)}catch(p){if(console.error(p),(t(s)??"").trim()!==a)return;d(E,[],!0),d(f,1),d(m,1),d(_,{},!0)}finally{(t(s)??"").trim()===a&&d(qe,!0)}}async function at(a){const p=(t(s)??"").trim();if(p&&!Ct){Ct=!0;try{const c=await Z.tests.latestResult.query({agent:p,region:t(o)});if(a!==De)return;const g=t(E).map(P=>{const R=c[P.id];return{...P,result:R?sn(p,P.id,R):void 0}});d(E,g,!0);const v=t($e),S=Math.max(1,Number(t(it))||1),y=g.reduce((P,R)=>v==="single"&&R.id!==t(rt)||v==="pinned"&&!R.pinned?P:R.result&&!R.result.isOld&&R.result.total_runs>=S?P+1:P,0);d(st,y,!0)}catch(c){console.error(c)}finally{Ct=!1}}}async function tr(a){d(q,!0),d(Re,!1),d($e,a,!0),d(rt,null),d(kt,a==="all"?t(E).length:t(E).filter(c=>c.pinned).length,!0),d(st,0),d(it,Math.max(1,Number(t(f))||1),!0),De+=1;const p=De;await Promise.all([...ot]),ee&&clearInterval(ee),ee=setInterval(()=>at(p),800),at(p);try{await Z.tests.runTests.mutate({agent:t(s),region:t(o),scope:a})}finally{ee&&clearInterval(ee),ee=null;try{await Ae()}finally{d(q,!1),d($e,null)}}}async function nr(a){if(!t(s))return;d(q,!0),d(Re,!1),d($e,"single"),d(rt,a,!0),d(kt,1),d(st,0),d(it,Math.max(1,Number(t(f))||1),!0),De+=1;const p=De;await Promise.all([...ot]),ee&&clearInterval(ee),ee=setInterval(()=>at(p),800),at(p);try{await Z.tests.runTests.mutate({agent:t(s),region:t(o),testId:a})}finally{ee&&clearInterval(ee),ee=null;try{await Ae()}finally{d(q,!1),d($e,null),d(rt,null)}}}async function rr(){if(!(!t(q)||t(me)||t(Re))){d(me,!0);try{await Z.tests.cancelRun.mutate({agent:t(s),region:t(o)})&&d(Re,!0)}catch(a){console.error(a)}finally{d(me,!1)}}}async function sr(a){const p=a?"TRUE":"FALSE",c=t(E).filter(v=>v.pinned!==a).map(v=>v.id);if(c.length===0)return;const g=new Set(c);d(E,t(E).map(v=>g.has(v.id)?{...v,pinned:a}:v),!0);try{await Ce(Z.tests.patchTestsBatch.mutate({agent:t(s),region:t(o),updates:c.map(v=>({id:v,patch:{pinned:p}}))}))}catch(v){console.error(v),await Ae()}}let St=null;ht(()=>{const a=(t(s)??"").trim(),p=(t(o)??"").trim(),c=r.availableRegions,g=Array.isArray(c)&&c.length>0;if(!a){St=null,d(E,[],!0),d(qe,!1);return}if(g&&!p)return;const v=`${a}::${p}`;St!==v&&(St=v,d(E,[],!0),d(qe,!1)),Ae()});const lt=B(()=>t(E).filter(a=>a.pinned).length),Ue=B(()=>t(lt)>0),ir=B(()=>t(E).length>0&&t(lt)===t(E).length);async function or(){const a=await Z.tests.addTest.mutate({agent:t(s),region:t(o),seed:{},mergeContexts:!0});d(E,[on(a),...t(E)],!0)}function on(a){return{...a,step:String(a.step??""),pinned:a.pinned==="TRUE",timeout:Number(a.timeout),similarity_threshold:Number(a.similarity_threshold),context:JSON.stringify(a.context),conversation_ui:ln(a.conversation||"",a.expected_output||"")}}function ar(a){const{conversation_ui:p,...c}=a;return{...c,pinned:a.pinned?"TRUE":"FALSE",timeout:String(a.timeout??0),similarity_threshold:String(a.similarity_threshold??60),context:JSON.parse(a.context)}}async function lr(a,p){const c=ar(a);c.id=crypto.randomUUID();const g=await Z.tests.addTest.mutate({agent:t(s),region:t(o),seed:c,mergeContexts:!0}),v=on(g),S=t(E).slice();S.splice(p,0,v),d(E,S,!0),await Z.tests.reorder.mutate({agent:t(s),region:t(o),order:t(E).map(y=>y.id)})}function cr(a){if(!a)return"";try{return a.replace(/^\s*\d+\s*[:.)-]?\s*(?:[❌✖️✔✅✗xX])?\s*/u,"")}catch{return a}}function ur(a){try{return a&&a.trim()?JSON.parse(a):{}}catch{return{}}}const an=a=>a.match(/^\s*(agent|assistant|user|system)\s*:\s*(.*)$/i);function dr(a){const p=String(a??"").trimEnd();return p?/^\s*(agent|assistant)\s*:/i.test(p)?p:`Agent: ${p}`:""}function ln(a,p){const c=String(a??"").trimEnd(),g=dr(p);return g?c?`${c}
4
- ${g}`:g:c}function cn(a){const p=String(a??""),c=p.split(/\r?\n/),g=[];let v=null;for(let Pe=0;Pe<c.length;Pe++){const ct=an(c[Pe]);if(!ct)continue;v&&g.push({...v,endLine:Pe});const Ve=String(ct[1]??"").toLowerCase();v={role:Ve==="assistant"?"agent":Ve,startLine:Pe+1}}v&&g.push({...v,endLine:c.length});const S=g.at(-1),y=g.length>=2?g.at(-2):null,P=(S==null?void 0:S.role)==="agent",R=P&&(y==null?void 0:y.role)==="user";if(!P||!S)return{valid:!1,expected:"",conversation:p.trimEnd()};const X=c.slice(S.startLine-1,S.endLine),ue=X[0]??"",Se=an(ue),se=[Se?Se[2]??"":"",...X.slice(1)].join(`
5
- `).trimEnd(),Ie=c.slice(0,S.startLine-1).join(`
6
- `).trimEnd();return{valid:R,expected:se,conversation:Ie,highlight:{startLine:S.startLine,endLine:S.endLine}}}function fr(a){const p=a<0?-1:1,c=Math.abs(a),g=.254829592,v=-.284496736,S=1.421413741,y=-1.453152027,P=1.061405429,X=1/(1+.3275911*c),ue=1-((((P*X+y)*X+S)*X+v)*X+g)*X*Math.exp(-c*c);return p*ue}function pr(a){return .5*(1+fr(a/Math.SQRT2))}function vr(a,p,c,g){if(!Number.isFinite(a)||!Number.isFinite(p)||!Number.isFinite(c)||!Number.isFinite(g)||p<=0||g<=0)return null;const v=a/p,S=c/g,y=(a+c)/(p+g),P=Math.sqrt(y*(1-y)*(1/p+1/g));if(!Number.isFinite(P)||P<=0)return null;const R=(S-v)/P,X=2*(1-pr(Math.abs(R)));return Math.max(0,Math.min(1,X))}function gr(a,p){if(!a||a.isOld)return null;const c=a.total_runs;if(c<=0)return null;const g=a.previous,v=g&&g.total_runs>0?g.success_count/g.total_runs:null,S=a.successes/c,y=v===null||S>=v?"higher":"lower",P=(()=>{if(c<=5||!g||g.total_runs<=0)return!1;const ue=vr(g.success_count,g.total_runs,a.successes,c);return ue!==null&&ue<.05})(),R=Number.isFinite(p)&&p>0&&c<p;if(!R&&!P)return null;const X=R?Math.round(a.successes/c*p):void 0;return{showExpected:R,expectedSuccesses:X,expectedRuns:p,significant:P,direction:y}}async function ve(a,p){await Z.tests.patchTest.mutate({agent:t(s),region:t(o),id:a,patch:p})}async function hr(a){await Z.tests.deleteTest.mutate({agent:t(s),region:t(o),id:a}),await Ae()}function mr(a){t(s)&&(d(N,a.id,!0),d(M,l(ur(a.context)),!0))}async function _r(){const a=t(N);if(!a||!t(s)){d(N,null);return}const p=l(t(M));d(N,null),d(E,t(E).map(c=>c.id===a?{...c,context:JSON.stringify(p)}:c),!0);try{await Ce(ve(a,{context:p}))}catch(c){console.error(c),await Ae()}}async function It(a){await Z.tests.updateConfig.mutate({agent:t(s),region:t(o),cfg:a})}Zt(()=>{ee&&clearInterval(ee)});var un=Ui();zr(a=>{var p=si();L(a,p)});var dn=ke(un);In(dn,{title:"Default Context",get open(){return t(A)},set open(c){d(A,c,!0)},children:c=>{Tn(c,{class:"h-[70vh]",get context(){return t(I)},onContextChanged:g=>d(I,g,!0),suppressErrors:!0,defaultFormat:"json",hideHeader:!0})},footer:c=>{var g=ii(),v=ke(g);he(v,{variant:"outlined",size:"small",onclick:()=>d(A,!1),children:(y,P)=>{de();var R=we("Cancel");L(y,R)},$$slots:{default:!0}});var S=k(v,2);he(S,{size:"small",onclick:async()=>{d(_,t(I),!0),await Ce(It({defaultContext:t(_)})),d(A,!1)},children:(y,P)=>{de();var R=we("Save");L(y,R)},$$slots:{default:!0}}),L(c,g)},$$slots:{default:!0,footer:!0}});var fn=k(dn,2);In(fn,{get title(){return t(C)},class:"!w-[80vw] !max-w-5xl",get open(){return t($)},set open(c){d($,c,!0)},children:c=>{var g=bt(),v=ke(g);{var S=P=>{var R=oi();L(P,R)},y=P=>{var R=bt(),X=ke(R);{var ue=ae=>{var se=ai(),Ie=w(se,!0);b(se),re(()=>ce(Ie,t(O))),L(ae,se)},Se=ae=>{var se=li(),Ie=w(se,!0);b(se),re(()=>ce(Ie,t(F)||"—")),L(ae,se)};Y(X,ae=>{t(O)?ae(ue):ae(Se,!1)},!0)}L(P,R)};Y(v,P=>{t(h)?P(S):P(y,!1)})}L(c,g)},footer:c=>{he(c,{variant:"outlined",size:"small",onclick:()=>d($,!1),children:(g,v)=>{de();var S=we("Close");L(g,S)},$$slots:{default:!0}})},$$slots:{default:!0,footer:!0}});var br=k(fn,2);{var xr=a=>{var p=qi(),c=w(p),g=w(c),v=w(g),S=k(w(v),2);En(S,{type:"number",min:"0",max:"500",class:"w-16",onchange:()=>{d(f,u(+t(f)||0,0,500),!0),Ce(It({repeats:t(f)}))},get value(){return t(f)},set value(Q){d(f,Q,!0)}}),b(v);var y=k(v,2),P=k(w(y),2);En(P,{type:"number",min:"0",max:"20",class:"w-16",onchange:()=>{d(m,u(+t(m)||0,0,20),!0),Ce(It({concurrency:t(m)}))},get value(){return t(m)},set value(Q){d(m,Q,!0)}}),b(y),b(g);var R=k(g,2),X=w(R);{var ue=Q=>{var ie=ci(),ge=w(ie),ne=w(ge);b(ge);var Te=k(ge,2);{let _e=B(()=>t(me)||t(Re));he(Te,{variant:"secondary",get disabled(){return t(_e)},onclick:rr,children:(Pt,Tt)=>{de();var ut=we();re(()=>ce(ut,t(Re)?"Cancel requested…":t(me)?"Canceling…":"Cancel")),L(Pt,ut)},$$slots:{default:!0}})}b(ie),re(()=>ce(ne,`Running… ${t(st)??""}/${t(kt)??""}`)),L(Q,ie)};Y(X,Q=>{t(q)&&Q(ue)})}var Se=k(X,2);{let Q=B(()=>t(q)||t(pe)||!t(s));he(Se,{variant:"secondary",get disabled(){return t(Q)},onclick:()=>{d(I,l(t(_)),!0),d(A,!0)},children:(ie,ge)=>{de();var ne=we("Edit context");L(ie,ne)},$$slots:{default:!0}})}var ae=k(Se,2),se=w(ae);{let Q=B(()=>t(pe)||t(q)||!t(s));he(se,{variant:"secondary",onclick:or,get disabled(){return t(Q)},class:"inline-flex items-center gap-1",children:(ie,ge)=>{var ne=ui(),Te=ke(ne);tt(Te,{icon:"mdi:plus-thick",width:18,height:18}),de(),L(ie,ne)},$$slots:{default:!0}})}var Ie=k(se,2);{var Pe=Q=>{var ie=di();L(Q,ie)};Y(Ie,Q=>{t(qe)&&t(E).length===0&&Q(Pe)})}b(ae);var ct=k(ae,2);{let Q=B(()=>t(q)||t(pe)||t(E).length===0||t(Ue)&&t(lt)===0);he(ct,{class:"disabled:cursor-not-allowed disabled:opacity-50",get disabled(){return t(Q)},onclick:()=>tr(t(Ue)?"pinned":"all"),children:(ie,ge)=>{de();var ne=we();re(()=>ce(ne,`▶ ${t(Ue)?"Run pinned":"Run all"}`)),L(ie,ne)},$$slots:{default:!0}})}b(R),b(c);var Ve=k(c,2),pn=w(Ve);Jr(pn,{class:"relative flex h-full min-w-0 flex-col overflow-hidden !rounded-none p-0",children:(Q,ie)=>{var ge=zi(),ne=ke(ge),Te=w(ne),_e=w(Te);_e.__click=[fi,sr,ir];var Pt=w(_e);{let oe=B(()=>t(Ue)?"mdi:pin":"mdi:pin-outline");tt(Pt,{class:"block",get icon(){return t(oe)},width:18,height:18})}b(_e);var Tt=k(_e,2),ut=w(Tt);b(Tt),b(Te);var yr=k(Te,2);{var wr=oe=>{var Ee=pi();L(oe,Ee)},kr=oe=>{var Ee=$i();Vt(Ee,23,()=>t(E),Le=>Le.id,(Le,x,Ne)=>{const le=B(()=>cn(t(x).conversation_ui));var Fe=Oi(),dt=w(Fe),Be=w(dt),be=w(Be);be.__click=[vi,x,E,Ce,ve];var Ir=w(be);{let j=B(()=>t(x).pinned?"mdi:pin":"mdi:pin-outline");tt(Ir,{class:"block",get icon(){return t(j)},width:18,height:18})}b(be);var He=k(be,2);He.__click=()=>lr(t(x),t(Ne));var Pr=w(He);tt(Pr,{icon:"mdi:content-copy",width:18,height:18}),b(He);var ft=k(He,2);ft.__click=[gi,hr,x];var Tr=w(ft);tt(Tr,{icon:"mdi:trash-can-outline",width:18,height:18}),b(ft),b(Be);var vn=k(Be,2),Et=w(vn),Lt=w(Et),Mt=w(Lt);Xe(Mt),Mt.__change=[hi,ve,x],b(Lt);var Rt=k(Lt,2),gn=w(Rt);{var Er=j=>{var V=mi();L(j,V)};Y(gn,j=>{t(le).valid||j(Er)})}var pt=k(gn,2);Xe(pt),pt.__change=[_i,ve,x];var At=k(pt,2),Je=w(At);Je.__change=[bi,ve,x],Vt(Je,21,()=>fe,Vr,(j,V)=>{var W=xi(),H=w(W,!0);b(W);var Me={};re(()=>{ce(H,t(V).label),Me!==(Me=t(V).value)&&(W.value=(W.__value=t(V).value)??"")}),L(j,W)}),b(Je);var Nt=k(Je,2);Xe(Nt),Nt.__change=[yi,ve,x],b(At);var Ft=k(At,2),jt=w(Ft),Ot=k(w(jt),2);Xe(Ot),Ot.__change=[wi,x,u,ve],b(jt);var $t=k(jt,2),Dt=k(w($t),2);Xe(Dt),Dt.__change=[ki,x,u,ve],b($t);var Lr=k($t,2);{let j=B(()=>t(q)||t(pe));he(Lr,{variant:"secondary",size:"small",get disabled(){return t(j)},onclick:()=>mr(t(x)),children:(V,W)=>{de();var H=we("Edit context");L(V,H)},$$slots:{default:!0}})}b(Ft);var Mr=k(Ft,2);{let j=B(()=>t(le).highlight?[{startLine:t(le).highlight.startLine,endLine:t(le).highlight.endLine,className:"test-expected-output"}]:void 0);ri(Mr,{get value(){return t(x).conversation_ui},onChange:V=>t(x).conversation_ui=V,onBlur:async V=>{if(!t(s))return;const W=cn(V);t(x).conversation=W.conversation,t(x).expected_output=W.expected,await Ce(ve(t(x).id,{conversation:t(x).conversation,expected_output:t(x).expected_output}))},get highlights(){return t(j)},language:"markdown",height:220})}b(Rt);var hn=k(Rt,2),zt=w(hn),mn=w(zt);{let j=B(()=>t(q)||t(pe)||!t(le).valid),V=B(()=>t(le).valid?"Run":"Expected must be the last block (“Agent: …”) and there must be a prompt “User: …” block right above it");he(mn,{size:"small",get disabled(){return t(j)},get title(){return t(V)},onclick:()=>nr(t(x).id),children:(W,H)=>{de();var Me=we("▶ Run");L(W,Me)},$$slots:{default:!0}})}var Rr=k(mn,2);{var Ar=j=>{const V=B(()=>gr(t(x).result,t(it)));var W=Pi(),H=w(W),Me=w(H);b(H);var qt=k(H,2);{var Qe=te=>{var G=Ci(),Ke=w(G);b(G),re(()=>ce(Ke,`(${t(V).expectedSuccesses??""}/${t(V).expectedRuns??""} expected)`)),L(te,G)};Y(qt,te=>{var G;(G=t(V))!=null&&G.showExpected&&te(Qe)})}var xe=k(qt,2);{var Ut=te=>{var G=Si(),Ke=w(G);{let vt=B(()=>t(V).direction==="higher"?"chevron-up":"chevron-down");Ht(Ke,{get name(){return t(vt)},width:18,height:18,class:"inline-block align-text-bottom"})}de(),b(G),re(()=>je(G,1,`ml-2 whitespace-nowrap font-semibold ${t(V).direction==="higher"?"text-rc-green-200":"text-rc-red-600"}`,"svelte-rdft55")),L(te,G)};Y(xe,te=>{var G;(G=t(V))!=null&&G.significant&&te(Ut)})}var We=k(xe,2);{var Ge=te=>{var G=Ii();L(te,G)};Y(We,te=>{t(x).result.isOld&&te(Ge)})}b(W),re(()=>ce(Me,`${t(x).result.successes??""}/${t(x).result.total_runs??""}`)),L(j,W)};Y(Rr,j=>{t(x).result&&j(Ar)})}b(zt);var Nr=k(zt,2);{var Fr=j=>{var V=ji();Vt(V,21,()=>t(x).result.runs,W=>W.index,(W,H,Me,qt)=>{var Qe=Fi(),xe=w(Qe),Ut=w(xe,!0);b(xe);var We=k(xe,2),Ge=w(We),te=w(Ge);{var G=ye=>{Ht(ye,{name:"checkmark",width:20,height:20,class:"shrink-0 self-end"})},Ke=ye=>{Ht(ye,{name:"close",width:18,height:18,class:"shrink-0 scale-110 self-start"})};Y(te,ye=>{t(H).success?ye(G):ye(Ke,!1)})}var vt=k(te,2),jr=w(vt,!0);b(vt),b(Ge);var _n=k(Ge,2),bn=w(_n);bn.__click=[Ti,D,H];var xn=k(bn,2);xn.__click=[Ei,D,H];var yn=k(xn,2);yn.__click=[Li,D,H];var wn=k(yn,2);wn.__click=[Mi,D,H];var kn=k(wn,2);kn.__click=[Ri,D,H];var Cn=k(kn,2);Cn.__click=[Ai,D,H];var Sn=k(Cn,2);Sn.__click=[Ni,T,x,H],b(_n),b(We),b(Qe),re(ye=>{je(xe,1,`w-full whitespace-pre-wrap break-words rounded-lg px-3 py-2 text-rc-gray-100 ${t(H).success?"bg-rc-green-700 backdrop-blur-md":""}`,"svelte-rdft55"),Vn(xe,t(H).success?"":"background-color: rgb(156 80 80)"),ce(Ut,t(H).text||"—"),je(We,1,`flex w-full flex-col gap-x-4 whitespace-pre-wrap break-words ${t(H).success?"text-rc-green-200":"text-rc-red-800"}`,"svelte-rdft55"),ce(jr,ye),Sn.disabled=t(J)},[()=>t(H).success?"Pass":cr(t(H).evaluation)||"Fail"]),L(W,Qe)}),b(V),L(j,V)};Y(Nr,j=>{t(x).result&&j(Fr)})}b(hn),b(Et),b(vn),b(dt),b(Fe),re(()=>{Bt(Fe,"data-id",t(x).id),je(be,1,`icon-btn ${t(x).pinned?"text-rc-green-350 hover:text-rc-green-250":"text-gray-300 hover:text-gray-100"}`,"svelte-rdft55"),Bt(be,"aria-label",t(x).pinned?"Unpin":"Pin"),Bt(be,"title",t(x).pinned?"Unpin":"Pin"),be.disabled=t(q)||t(pe),He.disabled=t(q)||t(pe),ft.disabled=t(q)||t(pe),je(Et,1,`left-details-bg flex flex-col rounded border ${t(le).valid?"border-rc-gray-700":"border-rc-red-600"}`,"svelte-rdft55")}),Ze(Mt,()=>t(x).scenario,j=>t(x).scenario=j),Ze(pt,()=>t(x).author,j=>t(x).author=j),Br(Je,()=>t(x).assertion_type,j=>t(x).assertion_type=j),Ze(Nt,()=>t(x).assertion_value,j=>t(x).assertion_value=j),Ze(Ot,()=>t(x).timeout,j=>t(x).timeout=j),Ze(Dt,()=>t(x).similarity_threshold,j=>t(x).similarity_threshold=j),L(Le,Fe)}),b(Ee),L(oe,Ee)};Y(yr,oe=>{t(E).length===0?oe(wr):oe(kr,!1)})}b(ne);var Cr=k(ne,2);{var Sr=oe=>{const Ee=B(()=>t(E).find(Le=>Le.id===t(N)));{const Le=Ne=>{var le=Di(),Fe=w(le);qr(Fe,()=>t(N),dt=>{Tn(dt,{class:"h-full min-h-0 border-thin border-rc-gray-650 shadow-inner-white-soft backdrop-blur-3xl",get context(){return t(M)},suppressErrors:!0,defaultFormat:"yaml",hideHeader:!0,onContextChanged:Be=>d(M,Be,!0)})}),b(le),L(Ne,le)};let x=B(()=>{var Ne;return`Test context — ${((Ne=t(Ee))==null?void 0:Ne.scenario)||"Test"}`});Qr(oe,{get title(){return t(x)},onClose:()=>void _r(),children:Le})}};Y(Cr,oe=>{t(N)&&oe(Sr)})}re(()=>{je(_e,1,`icon-btn justify-self-center ${t(Ue)?"text-rc-green-350 hover:text-rc-green-250":"text-gray-300 hover:text-gray-100"}`,"svelte-rdft55"),_e.disabled=t(q)||t(pe)||t(E).length===0,ce(ut,`Pinned: ${t(lt)??""}/${t(E).length??""}`)}),L(Q,ge)}}),b(Ve),b(p),L(a,p)};Y(br,a=>{t(qe)&&a(xr)})}L(e,un),en()}Dr(["click","change"]);export{oo as component};