@recombine-ai/bosun 0.13.0 → 0.14.0

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 (145) hide show
  1. package/build/client/_app/immutable/assets/0.C52H_1gD.css +1 -0
  2. package/build/client/_app/immutable/assets/0.C52H_1gD.css.br +0 -0
  3. package/build/client/_app/immutable/assets/0.C52H_1gD.css.gz +0 -0
  4. package/build/client/_app/immutable/chunks/{BOuo-4gP.js → DT-Nc4X8.js} +1 -1
  5. package/build/client/_app/immutable/chunks/DT-Nc4X8.js.br +0 -0
  6. package/build/client/_app/immutable/chunks/DT-Nc4X8.js.gz +0 -0
  7. package/build/client/_app/immutable/chunks/{De8YgKS3.js → DpK9GbNl.js} +1 -1
  8. package/build/client/_app/immutable/chunks/DpK9GbNl.js.br +0 -0
  9. package/build/client/_app/immutable/chunks/DpK9GbNl.js.gz +0 -0
  10. package/build/client/_app/immutable/chunks/{DSDSeO7L.js → DpnRcXcI.js} +1 -1
  11. package/build/client/_app/immutable/chunks/DpnRcXcI.js.br +0 -0
  12. package/build/client/_app/immutable/chunks/DpnRcXcI.js.gz +0 -0
  13. package/build/client/_app/immutable/chunks/WU4sY4ua.js +3 -0
  14. package/build/client/_app/immutable/chunks/WU4sY4ua.js.br +0 -0
  15. package/build/client/_app/immutable/chunks/WU4sY4ua.js.gz +0 -0
  16. package/build/client/_app/immutable/entry/{app.DK_wVDeR.js → app.Dsozg03K.js} +2 -2
  17. package/build/client/_app/immutable/entry/app.Dsozg03K.js.br +0 -0
  18. package/build/client/_app/immutable/entry/app.Dsozg03K.js.gz +0 -0
  19. package/build/client/_app/immutable/entry/start.u3sAF1g1.js +1 -0
  20. package/build/client/_app/immutable/entry/start.u3sAF1g1.js.br +2 -0
  21. package/build/client/_app/immutable/entry/start.u3sAF1g1.js.gz +0 -0
  22. package/build/client/_app/immutable/nodes/{0.5fEbn14Q.js → 0.PqjhF1QL.js} +1 -1
  23. package/build/client/_app/immutable/nodes/0.PqjhF1QL.js.br +0 -0
  24. package/build/client/_app/immutable/nodes/0.PqjhF1QL.js.gz +0 -0
  25. package/build/client/_app/immutable/nodes/{1.CJrSN8zL.js → 1.CeaYEPDC.js} +1 -1
  26. package/build/client/_app/immutable/nodes/1.CeaYEPDC.js.br +0 -0
  27. package/build/client/_app/immutable/nodes/1.CeaYEPDC.js.gz +0 -0
  28. package/build/client/_app/immutable/nodes/{10.SZwTlOEA.js → 10.DDmx2fJe.js} +1 -1
  29. package/build/client/_app/immutable/nodes/10.DDmx2fJe.js.br +0 -0
  30. package/build/client/_app/immutable/nodes/10.DDmx2fJe.js.gz +0 -0
  31. package/build/client/_app/immutable/nodes/{17.D-KFl7Vk.js → 17.DSVuCWoY.js} +1 -1
  32. package/build/client/_app/immutable/nodes/17.DSVuCWoY.js.br +0 -0
  33. package/build/client/_app/immutable/nodes/17.DSVuCWoY.js.gz +0 -0
  34. package/build/client/_app/immutable/nodes/{18.DqRdJY9A.js → 18.D5HhWZR8.js} +6 -6
  35. package/build/client/_app/immutable/nodes/18.D5HhWZR8.js.br +0 -0
  36. package/build/client/_app/immutable/nodes/18.D5HhWZR8.js.gz +0 -0
  37. package/build/client/_app/immutable/nodes/{2.B3Uuk25v.js → 2.D6Bd4az6.js} +1 -1
  38. package/build/client/_app/immutable/nodes/2.D6Bd4az6.js.br +0 -0
  39. package/build/client/_app/immutable/nodes/2.D6Bd4az6.js.gz +0 -0
  40. package/build/client/_app/immutable/nodes/{3.B1RGTOJ8.js → 3.LaYKamuf.js} +1 -1
  41. package/build/client/_app/immutable/nodes/3.LaYKamuf.js.br +0 -0
  42. package/build/client/_app/immutable/nodes/3.LaYKamuf.js.gz +0 -0
  43. package/build/client/_app/immutable/nodes/{4.D2jcIUpD.js → 4.DvSSPHp6.js} +1 -1
  44. package/build/client/_app/immutable/nodes/4.DvSSPHp6.js.br +0 -0
  45. package/build/client/_app/immutable/nodes/4.DvSSPHp6.js.gz +0 -0
  46. package/build/client/_app/immutable/nodes/{5.CUyCIyRd.js → 5.D0AE4cAT.js} +1 -1
  47. package/build/client/_app/immutable/nodes/5.D0AE4cAT.js.br +0 -0
  48. package/build/client/_app/immutable/nodes/5.D0AE4cAT.js.gz +0 -0
  49. package/build/client/_app/immutable/nodes/{6.B8HsGA2V.js → 6.l_w8FITo.js} +1 -1
  50. package/build/client/_app/immutable/nodes/6.l_w8FITo.js.br +0 -0
  51. package/build/client/_app/immutable/nodes/6.l_w8FITo.js.gz +0 -0
  52. package/build/client/_app/immutable/nodes/{8.jY56-_OU.js → 8.D51f7wuE.js} +1 -1
  53. package/build/client/_app/immutable/nodes/8.D51f7wuE.js.br +0 -0
  54. package/build/client/_app/immutable/nodes/8.D51f7wuE.js.gz +0 -0
  55. package/build/client/_app/immutable/nodes/{9.v5dX6L9n.js → 9.6UjiO-jB.js} +2 -2
  56. package/build/client/_app/immutable/nodes/9.6UjiO-jB.js.br +0 -0
  57. package/build/client/_app/immutable/nodes/9.6UjiO-jB.js.gz +0 -0
  58. package/build/client/_app/version.json +1 -1
  59. package/build/client/_app/version.json.br +0 -0
  60. package/build/client/_app/version.json.gz +0 -0
  61. package/build/server/chunks/{0-4QCErf9j.js → 0-C8GM7KhM.js} +3 -3
  62. package/build/server/chunks/{0-4QCErf9j.js.map → 0-C8GM7KhM.js.map} +1 -1
  63. package/build/server/chunks/{1-Dsjy8Hzc.js → 1-D6beYunF.js} +2 -2
  64. package/build/server/chunks/{1-Dsjy8Hzc.js.map → 1-D6beYunF.js.map} +1 -1
  65. package/build/server/chunks/{10-8061c8ui.js → 10-DUm1sxLB.js} +2 -2
  66. package/build/server/chunks/{10-8061c8ui.js.map → 10-DUm1sxLB.js.map} +1 -1
  67. package/build/server/chunks/{17-3_5wsIEX.js → 17-DmTinIOr.js} +2 -2
  68. package/build/server/chunks/{17-3_5wsIEX.js.map → 17-DmTinIOr.js.map} +1 -1
  69. package/build/server/chunks/{18-D73Mw140.js → 18-WwHhv16m.js} +3 -3
  70. package/build/server/chunks/{18-D73Mw140.js.map → 18-WwHhv16m.js.map} +1 -1
  71. package/build/server/chunks/{2-DM0VjzFi.js → 2-OnF-oKQM.js} +2 -2
  72. package/build/server/chunks/{2-DM0VjzFi.js.map → 2-OnF-oKQM.js.map} +1 -1
  73. package/build/server/chunks/{3-B3zlFGkL.js → 3-Dd-gL5uB.js} +2 -2
  74. package/build/server/chunks/{3-B3zlFGkL.js.map → 3-Dd-gL5uB.js.map} +1 -1
  75. package/build/server/chunks/{4-tESdMZpI.js → 4-C3x6cmyv.js} +2 -2
  76. package/build/server/chunks/{4-tESdMZpI.js.map → 4-C3x6cmyv.js.map} +1 -1
  77. package/build/server/chunks/{5-BJMTlq4U.js → 5-CiuoFl6L.js} +2 -2
  78. package/build/server/chunks/{5-BJMTlq4U.js.map → 5-CiuoFl6L.js.map} +1 -1
  79. package/build/server/chunks/{6-CDK2Aia6.js → 6-D_KHM930.js} +2 -2
  80. package/build/server/chunks/{6-CDK2Aia6.js.map → 6-D_KHM930.js.map} +1 -1
  81. package/build/server/chunks/{8-BJbDytoU.js → 8-WnGdxpYD.js} +2 -2
  82. package/build/server/chunks/{8-BJbDytoU.js.map → 8-WnGdxpYD.js.map} +1 -1
  83. package/build/server/chunks/{9-BNfIeSqk.js → 9-CwinUUou.js} +3 -3
  84. package/build/server/chunks/{9-BNfIeSqk.js.map → 9-CwinUUou.js.map} +1 -1
  85. package/build/server/chunks/{ChatStepTrace-DQL3qlna.js → ChatStepTrace-DirlvCw9.js} +16 -4
  86. package/build/server/chunks/ChatStepTrace-DirlvCw9.js.map +1 -0
  87. package/build/server/chunks/{_page.svelte-D6bSXGHX.js → _page.svelte-B81e653N.js} +6 -4
  88. package/build/server/chunks/_page.svelte-B81e653N.js.map +1 -0
  89. package/build/server/chunks/{_page.svelte-ZWNBigwS.js → _page.svelte-BkmclXmx.js} +4 -2
  90. package/build/server/chunks/_page.svelte-BkmclXmx.js.map +1 -0
  91. package/build/server/index.js +1 -1
  92. package/build/server/index.js.map +1 -1
  93. package/build/server/manifest.js +13 -13
  94. package/build/server/manifest.js.map +1 -1
  95. package/package.json +1 -1
  96. package/src/backend/tests/emulate-agents.ts +13 -21
  97. package/src/backend/tests/pii-sanitized-test-drafts.spec.ts +162 -0
  98. package/src/backend/tests/pii-sanitized-test-drafts.ts +106 -0
  99. package/src/backend/tests/pii-sanitizer.spec.ts +145 -0
  100. package/src/backend/tests/pii-sanitizer.ts +171 -0
  101. package/src/backend/tests/router.ts +37 -0
  102. package/build/client/_app/immutable/assets/0.B-Br6U4N.css +0 -1
  103. package/build/client/_app/immutable/assets/0.B-Br6U4N.css.br +0 -0
  104. package/build/client/_app/immutable/assets/0.B-Br6U4N.css.gz +0 -0
  105. package/build/client/_app/immutable/chunks/BOuo-4gP.js.br +0 -0
  106. package/build/client/_app/immutable/chunks/BOuo-4gP.js.gz +0 -0
  107. package/build/client/_app/immutable/chunks/Cyj62X2W.js +0 -2
  108. package/build/client/_app/immutable/chunks/Cyj62X2W.js.br +0 -0
  109. package/build/client/_app/immutable/chunks/Cyj62X2W.js.gz +0 -0
  110. package/build/client/_app/immutable/chunks/DSDSeO7L.js.br +0 -0
  111. package/build/client/_app/immutable/chunks/DSDSeO7L.js.gz +0 -0
  112. package/build/client/_app/immutable/chunks/De8YgKS3.js.br +0 -1
  113. package/build/client/_app/immutable/chunks/De8YgKS3.js.gz +0 -0
  114. package/build/client/_app/immutable/entry/app.DK_wVDeR.js.br +0 -0
  115. package/build/client/_app/immutable/entry/app.DK_wVDeR.js.gz +0 -0
  116. package/build/client/_app/immutable/entry/start.xQy-2aGo.js +0 -1
  117. package/build/client/_app/immutable/entry/start.xQy-2aGo.js.br +0 -2
  118. package/build/client/_app/immutable/entry/start.xQy-2aGo.js.gz +0 -0
  119. package/build/client/_app/immutable/nodes/0.5fEbn14Q.js.br +0 -0
  120. package/build/client/_app/immutable/nodes/0.5fEbn14Q.js.gz +0 -0
  121. package/build/client/_app/immutable/nodes/1.CJrSN8zL.js.br +0 -0
  122. package/build/client/_app/immutable/nodes/1.CJrSN8zL.js.gz +0 -0
  123. package/build/client/_app/immutable/nodes/10.SZwTlOEA.js.br +0 -0
  124. package/build/client/_app/immutable/nodes/10.SZwTlOEA.js.gz +0 -0
  125. package/build/client/_app/immutable/nodes/17.D-KFl7Vk.js.br +0 -0
  126. package/build/client/_app/immutable/nodes/17.D-KFl7Vk.js.gz +0 -0
  127. package/build/client/_app/immutable/nodes/18.DqRdJY9A.js.br +0 -0
  128. package/build/client/_app/immutable/nodes/18.DqRdJY9A.js.gz +0 -0
  129. package/build/client/_app/immutable/nodes/2.B3Uuk25v.js.br +0 -0
  130. package/build/client/_app/immutable/nodes/2.B3Uuk25v.js.gz +0 -0
  131. package/build/client/_app/immutable/nodes/3.B1RGTOJ8.js.br +0 -0
  132. package/build/client/_app/immutable/nodes/3.B1RGTOJ8.js.gz +0 -0
  133. package/build/client/_app/immutable/nodes/4.D2jcIUpD.js.br +0 -0
  134. package/build/client/_app/immutable/nodes/4.D2jcIUpD.js.gz +0 -0
  135. package/build/client/_app/immutable/nodes/5.CUyCIyRd.js.br +0 -0
  136. package/build/client/_app/immutable/nodes/5.CUyCIyRd.js.gz +0 -0
  137. package/build/client/_app/immutable/nodes/6.B8HsGA2V.js.br +0 -0
  138. package/build/client/_app/immutable/nodes/6.B8HsGA2V.js.gz +0 -0
  139. package/build/client/_app/immutable/nodes/8.jY56-_OU.js.br +0 -0
  140. package/build/client/_app/immutable/nodes/8.jY56-_OU.js.gz +0 -0
  141. package/build/client/_app/immutable/nodes/9.v5dX6L9n.js.br +0 -0
  142. package/build/client/_app/immutable/nodes/9.v5dX6L9n.js.gz +0 -0
  143. package/build/server/chunks/ChatStepTrace-DQL3qlna.js.map +0 -1
  144. package/build/server/chunks/_page.svelte-D6bSXGHX.js.map +0 -1
  145. package/build/server/chunks/_page.svelte-ZWNBigwS.js.map +0 -1
@@ -10,27 +10,27 @@ 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.xQy-2aGo.js",app:"_app/immutable/entry/app.DK_wVDeR.js",imports:["_app/immutable/entry/start.xQy-2aGo.js","_app/immutable/chunks/DSDSeO7L.js","_app/immutable/chunks/CxLomzuE.js","_app/immutable/chunks/uLGP0py1.js","_app/immutable/chunks/OA8UcISh.js","_app/immutable/chunks/C39ai1md.js","_app/immutable/entry/app.DK_wVDeR.js","_app/immutable/chunks/C1FmrZbK.js","_app/immutable/chunks/CxLomzuE.js","_app/immutable/chunks/DJriQKD9.js","_app/immutable/chunks/Ca197UDq.js","_app/immutable/chunks/xC2C8d09.js","_app/immutable/chunks/C39ai1md.js","_app/immutable/chunks/Buo-57fF.js","_app/immutable/chunks/CJYOmGlC.js","_app/immutable/chunks/Cyai3SOj.js","_app/immutable/chunks/BLu86SbA.js","_app/immutable/chunks/CPXdAKdv.js","_app/immutable/chunks/uLGP0py1.js"],stylesheets:[],fonts:[],uses_env_dynamic_public:true},
13
+ client: {start:"_app/immutable/entry/start.u3sAF1g1.js",app:"_app/immutable/entry/app.Dsozg03K.js",imports:["_app/immutable/entry/start.u3sAF1g1.js","_app/immutable/chunks/DpnRcXcI.js","_app/immutable/chunks/CxLomzuE.js","_app/immutable/chunks/uLGP0py1.js","_app/immutable/chunks/OA8UcISh.js","_app/immutable/chunks/C39ai1md.js","_app/immutable/entry/app.Dsozg03K.js","_app/immutable/chunks/C1FmrZbK.js","_app/immutable/chunks/CxLomzuE.js","_app/immutable/chunks/DJriQKD9.js","_app/immutable/chunks/Ca197UDq.js","_app/immutable/chunks/xC2C8d09.js","_app/immutable/chunks/C39ai1md.js","_app/immutable/chunks/Buo-57fF.js","_app/immutable/chunks/CJYOmGlC.js","_app/immutable/chunks/Cyai3SOj.js","_app/immutable/chunks/BLu86SbA.js","_app/immutable/chunks/CPXdAKdv.js","_app/immutable/chunks/uLGP0py1.js"],stylesheets:[],fonts:[],uses_env_dynamic_public:true},
14
14
  nodes: [
15
- __memo(() => import('./chunks/0-4QCErf9j.js')),
16
- __memo(() => import('./chunks/1-Dsjy8Hzc.js')),
17
- __memo(() => import('./chunks/2-DM0VjzFi.js')),
18
- __memo(() => import('./chunks/3-B3zlFGkL.js')),
19
- __memo(() => import('./chunks/4-tESdMZpI.js')),
20
- __memo(() => import('./chunks/5-BJMTlq4U.js')),
21
- __memo(() => import('./chunks/6-CDK2Aia6.js')),
15
+ __memo(() => import('./chunks/0-C8GM7KhM.js')),
16
+ __memo(() => import('./chunks/1-D6beYunF.js')),
17
+ __memo(() => import('./chunks/2-OnF-oKQM.js')),
18
+ __memo(() => import('./chunks/3-Dd-gL5uB.js')),
19
+ __memo(() => import('./chunks/4-C3x6cmyv.js')),
20
+ __memo(() => import('./chunks/5-CiuoFl6L.js')),
21
+ __memo(() => import('./chunks/6-D_KHM930.js')),
22
22
  __memo(() => import('./chunks/7-olXOjo4r.js')),
23
- __memo(() => import('./chunks/8-BJbDytoU.js')),
24
- __memo(() => import('./chunks/9-BNfIeSqk.js')),
25
- __memo(() => import('./chunks/10-8061c8ui.js')),
23
+ __memo(() => import('./chunks/8-WnGdxpYD.js')),
24
+ __memo(() => import('./chunks/9-CwinUUou.js')),
25
+ __memo(() => import('./chunks/10-DUm1sxLB.js')),
26
26
  __memo(() => import('./chunks/11-CB5q84io.js')),
27
27
  __memo(() => import('./chunks/12-CfqC_Y1R.js')),
28
28
  __memo(() => import('./chunks/13-ByddfU7G.js')),
29
29
  __memo(() => import('./chunks/14-Dk7DCwHC.js')),
30
30
  __memo(() => import('./chunks/15-BRw8wtLp.js')),
31
31
  __memo(() => import('./chunks/16-Y9KLA9UF.js')),
32
- __memo(() => import('./chunks/17-3_5wsIEX.js')),
33
- __memo(() => import('./chunks/18-D73Mw140.js'))
32
+ __memo(() => import('./chunks/17-DmTinIOr.js')),
33
+ __memo(() => import('./chunks/18-WwHhv16m.js'))
34
34
  ],
35
35
  remotes: {
36
36
 
@@ -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.xQy-2aGo.js\",app:\"_app/immutable/entry/app.DK_wVDeR.js\",imports:[\"_app/immutable/entry/start.xQy-2aGo.js\",\"_app/immutable/chunks/DSDSeO7L.js\",\"_app/immutable/chunks/CxLomzuE.js\",\"_app/immutable/chunks/uLGP0py1.js\",\"_app/immutable/chunks/OA8UcISh.js\",\"_app/immutable/chunks/C39ai1md.js\",\"_app/immutable/entry/app.DK_wVDeR.js\",\"_app/immutable/chunks/C1FmrZbK.js\",\"_app/immutable/chunks/CxLomzuE.js\",\"_app/immutable/chunks/DJriQKD9.js\",\"_app/immutable/chunks/Ca197UDq.js\",\"_app/immutable/chunks/xC2C8d09.js\",\"_app/immutable/chunks/C39ai1md.js\",\"_app/immutable/chunks/Buo-57fF.js\",\"_app/immutable/chunks/CJYOmGlC.js\",\"_app/immutable/chunks/Cyai3SOj.js\",\"_app/immutable/chunks/BLu86SbA.js\",\"_app/immutable/chunks/CPXdAKdv.js\",\"_app/immutable/chunks/uLGP0py1.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\t__memo(() => import('./nodes/16.js')),\n\t\t\t__memo(() => import('./nodes/17.js')),\n\t\t\t__memo(() => import('./nodes/18.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: 5 },\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: 6 },\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: 7 },\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: 8 },\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: 9 },\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: 10 },\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: 11 },\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: 12 },\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: 13 },\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: 14 },\n\t\t\t\tendpoint: null\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/traces/api/latency/[conversationId]\",\n\t\t\t\tpattern: /^\\/traces\\/api\\/latency\\/([^/]+?)\\/?$/,\n\t\t\t\tparams: [{\"name\":\"conversationId\",\"optional\":false,\"rest\":false,\"chained\":false}],\n\t\t\t\tpage: null,\n\t\t\t\tendpoint: __memo(() => import('./entries/endpoints/traces/api/latency/_conversationId_/_server.ts.js'))\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/traces/api/latency/[conversationId]/audio\",\n\t\t\t\tpattern: /^\\/traces\\/api\\/latency\\/([^/]+?)\\/audio\\/?$/,\n\t\t\t\tparams: [{\"name\":\"conversationId\",\"optional\":false,\"rest\":false,\"chained\":false}],\n\t\t\t\tpage: null,\n\t\t\t\tendpoint: __memo(() => import('./entries/endpoints/traces/api/latency/_conversationId_/audio/_server.ts.js'))\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: 15 },\n\t\t\t\tendpoint: null\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/traces/conversations/[conversationId]\",\n\t\t\t\tpattern: /^\\/traces\\/conversations\\/([^/]+?)\\/?$/,\n\t\t\t\tparams: [{\"name\":\"conversationId\",\"optional\":false,\"rest\":false,\"chained\":false}],\n\t\t\t\tpage: { layouts: [0,3,4,], errors: [1,,,], leaf: 16 },\n\t\t\t\tendpoint: null\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/traces/conversations/[conversationId]/latency\",\n\t\t\t\tpattern: /^\\/traces\\/conversations\\/([^/]+?)\\/latency\\/?$/,\n\t\t\t\tparams: [{\"name\":\"conversationId\",\"optional\":false,\"rest\":false,\"chained\":false}],\n\t\t\t\tpage: { layouts: [0,3,4,], errors: [1,,,], leaf: 17 },\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,4,], errors: [1,,,], leaf: 18 },\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.u3sAF1g1.js\",app:\"_app/immutable/entry/app.Dsozg03K.js\",imports:[\"_app/immutable/entry/start.u3sAF1g1.js\",\"_app/immutable/chunks/DpnRcXcI.js\",\"_app/immutable/chunks/CxLomzuE.js\",\"_app/immutable/chunks/uLGP0py1.js\",\"_app/immutable/chunks/OA8UcISh.js\",\"_app/immutable/chunks/C39ai1md.js\",\"_app/immutable/entry/app.Dsozg03K.js\",\"_app/immutable/chunks/C1FmrZbK.js\",\"_app/immutable/chunks/CxLomzuE.js\",\"_app/immutable/chunks/DJriQKD9.js\",\"_app/immutable/chunks/Ca197UDq.js\",\"_app/immutable/chunks/xC2C8d09.js\",\"_app/immutable/chunks/C39ai1md.js\",\"_app/immutable/chunks/Buo-57fF.js\",\"_app/immutable/chunks/CJYOmGlC.js\",\"_app/immutable/chunks/Cyai3SOj.js\",\"_app/immutable/chunks/BLu86SbA.js\",\"_app/immutable/chunks/CPXdAKdv.js\",\"_app/immutable/chunks/uLGP0py1.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\t__memo(() => import('./nodes/16.js')),\n\t\t\t__memo(() => import('./nodes/17.js')),\n\t\t\t__memo(() => import('./nodes/18.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: 5 },\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: 6 },\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: 7 },\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: 8 },\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: 9 },\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: 10 },\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: 11 },\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: 12 },\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: 13 },\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: 14 },\n\t\t\t\tendpoint: null\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/traces/api/latency/[conversationId]\",\n\t\t\t\tpattern: /^\\/traces\\/api\\/latency\\/([^/]+?)\\/?$/,\n\t\t\t\tparams: [{\"name\":\"conversationId\",\"optional\":false,\"rest\":false,\"chained\":false}],\n\t\t\t\tpage: null,\n\t\t\t\tendpoint: __memo(() => import('./entries/endpoints/traces/api/latency/_conversationId_/_server.ts.js'))\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/traces/api/latency/[conversationId]/audio\",\n\t\t\t\tpattern: /^\\/traces\\/api\\/latency\\/([^/]+?)\\/audio\\/?$/,\n\t\t\t\tparams: [{\"name\":\"conversationId\",\"optional\":false,\"rest\":false,\"chained\":false}],\n\t\t\t\tpage: null,\n\t\t\t\tendpoint: __memo(() => import('./entries/endpoints/traces/api/latency/_conversationId_/audio/_server.ts.js'))\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: 15 },\n\t\t\t\tendpoint: null\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/traces/conversations/[conversationId]\",\n\t\t\t\tpattern: /^\\/traces\\/conversations\\/([^/]+?)\\/?$/,\n\t\t\t\tparams: [{\"name\":\"conversationId\",\"optional\":false,\"rest\":false,\"chained\":false}],\n\t\t\t\tpage: { layouts: [0,3,4,], errors: [1,,,], leaf: 16 },\n\t\t\t\tendpoint: null\n\t\t\t},\n\t\t\t{\n\t\t\t\tid: \"/traces/conversations/[conversationId]/latency\",\n\t\t\t\tpattern: /^\\/traces\\/conversations\\/([^/]+?)\\/latency\\/?$/,\n\t\t\t\tparams: [{\"name\":\"conversationId\",\"optional\":false,\"rest\":false,\"chained\":false}],\n\t\t\t\tpage: { layouts: [0,3,4,], errors: [1,,,], leaf: 17 },\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,4,], errors: [1,,,], leaf: 18 },\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.13.0",
4
+ "version": "0.14.0",
5
5
  "license": "EULA",
6
6
  "bin": {
7
7
  "bosun": "./bin/bosun.js"
@@ -69,18 +69,23 @@ export async function loadAgents(props: {
69
69
  }
70
70
  }
71
71
 
72
- const ctx = createContext({})
72
+ const hasSplitContext =
73
+ typeof mocks !== 'undefined' &&
74
+ mocks !== null &&
75
+ typeof mocks === 'object' &&
76
+ !Array.isArray(mocks)
77
+ const providedContext = context && typeof context === 'object' ? context : {}
78
+ const runtimeContext = region
79
+ ? {
80
+ ...providedContext,
81
+ recombineRegion: providedContext.recombineRegion ?? region
82
+ }
83
+ : providedContext
84
+ const ctx = createContext(hasSplitContext ? { context: runtimeContext, mocks } : runtimeContext)
73
85
 
74
86
  // Maintain in-run history so sendMessage appends to it, mirroring backend behavior
75
87
  let history: Message[] = []
76
88
 
77
- if (region) {
78
- // The UI-selected region is stored in Bosun's runtime ctx and consumed by the project's workflows.
79
- // Setting it before calling the factory ensures region-scoped config/strings are used for this run.
80
- const current = (ctx.get() as Record<string, unknown> | null | undefined) || {}
81
- ctx.set({ ...current, recombineRegion: region })
82
- }
83
-
84
89
  const agent = await withTestPromptCacheBust(() =>
85
90
  factory({
86
91
  stepTracer: stepTracer,
@@ -107,19 +112,6 @@ export async function loadAgents(props: {
107
112
  })
108
113
  )
109
114
 
110
- const hasSplitContext =
111
- typeof mocks !== 'undefined' &&
112
- mocks !== null &&
113
- typeof mocks === 'object' &&
114
- !Array.isArray(mocks)
115
-
116
- if (hasSplitContext) {
117
- ctx.swap({ context: context || {}, mocks })
118
- } else if (context && typeof context === 'object') {
119
- // Apply provided context before agent lifecycle
120
- ctx.swap(context)
121
- }
122
-
123
115
  const withAbort = wrapAbort(abortSignal)
124
116
 
125
117
  try {
@@ -0,0 +1,162 @@
1
+ import { describe, expect, it, vi } from 'vitest'
2
+
3
+ import type { TraceTestSeed } from '../../lib/tests/pii-sanitized-test-draft'
4
+ import {
5
+ createPIISanitizedTestDraft,
6
+ createTestFromPIISanitizedTestDraft
7
+ } from './pii-sanitized-test-drafts'
8
+ import type { PIISanitizationResult } from './pii-sanitizer'
9
+ import type { TestRow } from './suite'
10
+
11
+ function seed(overrides: Partial<TraceTestSeed> = {}): TraceTestSeed {
12
+ return {
13
+ pinned: 'TRUE',
14
+ step: 'main',
15
+ evaluation_mode: 'assertion',
16
+ context_mode: 'replace',
17
+ assertion_type: 'llm-rubric',
18
+ assertion_value: '',
19
+ conversation: 'User: I am Sarah Khan.',
20
+ expected_output: 'Hello Sarah.',
21
+ similarity_threshold: '60',
22
+ timeout: '0',
23
+ context: { customer: { name: 'Sarah Khan' } },
24
+ ...overrides
25
+ }
26
+ }
27
+
28
+ function sanitized(input: TraceTestSeed, replacement = 'Maya Turner'): PIISanitizationResult {
29
+ return {
30
+ seed: {
31
+ ...input,
32
+ conversation: input.conversation.replace('Sarah Khan', replacement),
33
+ expected_output: input.expected_output.replace('Sarah', replacement.split(' ')[0]),
34
+ context: { customer: { name: replacement } }
35
+ },
36
+ findings: [{ category: 'person', paths: ['$.conversation', '$.context.customer.name'] }],
37
+ model: 'test-model'
38
+ }
39
+ }
40
+
41
+ function testRow(input: TraceTestSeed): TestRow {
42
+ return {
43
+ id: 'created-test',
44
+ scenario: '',
45
+ author: '',
46
+ category: '',
47
+ ...input
48
+ }
49
+ }
50
+
51
+ describe('PII-sanitised test drafts', () => {
52
+ it('persists an unchanged server-created draft exactly once', async () => {
53
+ const sanitize = vi.fn(async (input: TraceTestSeed) => sanitized(input))
54
+ const persist = vi.fn(async (_suiteKey, _mergeContexts, input: TraceTestSeed) => testRow(input))
55
+ const draft = await createPIISanitizedTestDraft(
56
+ { suiteKey: 'agent.en-gb', seed: seed() },
57
+ { sanitize, now: () => 1_000 }
58
+ )
59
+
60
+ const result = await createTestFromPIISanitizedTestDraft(
61
+ {
62
+ suiteKey: 'agent.en-gb',
63
+ draftId: draft.draftId,
64
+ reviewed: {
65
+ conversation: draft.seed.conversation,
66
+ expected_output: draft.seed.expected_output,
67
+ context: draft.seed.context
68
+ }
69
+ },
70
+ { persist, now: () => 2_000 }
71
+ )
72
+
73
+ expect(result.status).toBe('created')
74
+ expect(sanitize).toHaveBeenCalledTimes(1)
75
+ expect(persist).toHaveBeenCalledOnce()
76
+ expect(JSON.stringify(persist.mock.calls[0][2])).not.toContain('Sarah')
77
+ })
78
+
79
+ it('persists reviewed edits immediately without sanitizing them again', async () => {
80
+ const sanitize = vi.fn(async (input: TraceTestSeed) => sanitized(input))
81
+ const persist = vi.fn(async (_suiteKey, _mergeContexts, input: TraceTestSeed) => testRow(input))
82
+ const draft = await createPIISanitizedTestDraft(
83
+ { suiteKey: 'agent', seed: seed() },
84
+ { sanitize, now: () => 1_000 }
85
+ )
86
+
87
+ const result = await createTestFromPIISanitizedTestDraft(
88
+ {
89
+ suiteKey: 'agent',
90
+ draftId: draft.draftId,
91
+ reviewed: {
92
+ conversation: 'User: I am Sarah Khan.',
93
+ expected_output: draft.seed.expected_output,
94
+ context: draft.seed.context
95
+ }
96
+ },
97
+ { persist, now: () => 2_000 }
98
+ )
99
+
100
+ expect(result.status).toBe('created')
101
+ expect(sanitize).toHaveBeenCalledOnce()
102
+ expect(persist).toHaveBeenCalledOnce()
103
+ expect(persist.mock.calls[0][2].conversation).toBe('User: I am Sarah Khan.')
104
+ })
105
+
106
+ it('rejects a draft used for a different suite', async () => {
107
+ const draft = await createPIISanitizedTestDraft(
108
+ { suiteKey: 'agent.en-gb', seed: seed() },
109
+ { sanitize: async (input) => sanitized(input), now: () => 1_000 }
110
+ )
111
+
112
+ await expect(
113
+ createTestFromPIISanitizedTestDraft(
114
+ {
115
+ suiteKey: 'other-agent',
116
+ draftId: draft.draftId,
117
+ reviewed: {
118
+ conversation: draft.seed.conversation,
119
+ expected_output: draft.seed.expected_output,
120
+ context: draft.seed.context
121
+ }
122
+ },
123
+ { now: () => 2_000 }
124
+ )
125
+ ).rejects.toThrow('does not match this suite')
126
+ })
127
+
128
+ it('allows only one create operation to consume a draft', async () => {
129
+ let finishPersist!: (row: TestRow) => void
130
+ const persist = vi.fn(
131
+ async (_suiteKey, _mergeContexts, _input: TraceTestSeed) =>
132
+ new Promise<TestRow>((resolve) => {
133
+ finishPersist = resolve
134
+ })
135
+ )
136
+ const draft = await createPIISanitizedTestDraft(
137
+ { suiteKey: 'agent', seed: seed() },
138
+ { sanitize: async (input) => sanitized(input), now: () => 1_000 }
139
+ )
140
+ const input = {
141
+ suiteKey: 'agent',
142
+ draftId: draft.draftId,
143
+ reviewed: {
144
+ conversation: draft.seed.conversation,
145
+ expected_output: draft.seed.expected_output,
146
+ context: draft.seed.context
147
+ }
148
+ }
149
+
150
+ const first = createTestFromPIISanitizedTestDraft(input, {
151
+ persist,
152
+ now: () => 2_000
153
+ })
154
+ await expect(
155
+ createTestFromPIISanitizedTestDraft(input, { persist, now: () => 2_000 })
156
+ ).rejects.toThrow('already being created')
157
+
158
+ finishPersist(testRow(draft.seed))
159
+ await expect(first).resolves.toMatchObject({ status: 'created' })
160
+ expect(persist).toHaveBeenCalledOnce()
161
+ })
162
+ })
@@ -0,0 +1,106 @@
1
+ import { randomUUID } from 'node:crypto'
2
+
3
+ import {
4
+ TraceTestReviewContentSchema,
5
+ TraceTestSeedSchema,
6
+ type TraceTestReviewContent,
7
+ type TraceTestSeed
8
+ } from '../../lib/tests/pii-sanitized-test-draft'
9
+ import { addTest } from './data'
10
+ import {
11
+ assertSameDataShape,
12
+ sanitizeTraceTestSeed,
13
+ type PIISanitizationResult
14
+ } from './pii-sanitizer'
15
+ import type { TestRow } from './suite'
16
+
17
+ const DRAFT_TTL_MS = 30 * 60 * 1000
18
+
19
+ type StoredDraft = {
20
+ suiteKey: string
21
+ seed: TraceTestSeed
22
+ expiresAt: number
23
+ consuming: boolean
24
+ }
25
+
26
+ const drafts = new Map<string, StoredDraft>()
27
+
28
+ type Sanitize = (seed: TraceTestSeed) => Promise<PIISanitizationResult>
29
+ type Persist = (suiteKey: string, mergeContexts: boolean, seed: TraceTestSeed) => Promise<TestRow>
30
+
31
+ export async function createPIISanitizedTestDraft(
32
+ input: { suiteKey: string; seed: TraceTestSeed },
33
+ dependencies: { sanitize?: Sanitize; now?: () => number } = {}
34
+ ) {
35
+ pruneExpiredDrafts(dependencies.now?.() ?? Date.now())
36
+ const seed = TraceTestSeedSchema.parse(input.seed)
37
+ const sanitized = await (dependencies.sanitize ?? sanitizeTraceTestSeed)(seed)
38
+ const draftId = randomUUID()
39
+ const expiresAt = (dependencies.now?.() ?? Date.now()) + DRAFT_TTL_MS
40
+
41
+ drafts.set(draftId, {
42
+ suiteKey: input.suiteKey,
43
+ seed: sanitized.seed,
44
+ expiresAt,
45
+ consuming: false
46
+ })
47
+
48
+ return {
49
+ draftId,
50
+ seed: sanitized.seed,
51
+ findings: sanitized.findings,
52
+ expiresAt,
53
+ model: sanitized.model
54
+ }
55
+ }
56
+
57
+ export async function createTestFromPIISanitizedTestDraft(
58
+ input: { suiteKey: string; draftId: string; reviewed: TraceTestReviewContent },
59
+ dependencies: { persist?: Persist; now?: () => number } = {}
60
+ ): Promise<{ status: 'created'; test: TestRow }> {
61
+ const now = dependencies.now?.() ?? Date.now()
62
+ pruneExpiredDrafts(now)
63
+ const stored = drafts.get(input.draftId)
64
+ if (!stored || stored.expiresAt <= now) throw new Error('PII-sanitised test draft has expired')
65
+ if (stored.suiteKey !== input.suiteKey)
66
+ throw new Error('PII-sanitised test draft does not match this suite')
67
+ if (stored.consuming) throw new Error('PII-sanitised test draft is already being created')
68
+ stored.consuming = true
69
+
70
+ try {
71
+ const reviewed = TraceTestReviewContentSchema.parse(input.reviewed)
72
+ assertReviewShape(stored.seed, reviewed)
73
+ const reviewedSeed = TraceTestSeedSchema.parse({
74
+ ...stored.seed,
75
+ ...reviewed
76
+ })
77
+
78
+ const persist = dependencies.persist ?? addTest
79
+ const test = await persist(stored.suiteKey, false, reviewedSeed)
80
+ drafts.delete(input.draftId)
81
+ return { status: 'created', test }
82
+ } catch (error) {
83
+ const current = drafts.get(input.draftId)
84
+ if (current === stored) current.consuming = false
85
+ throw error
86
+ }
87
+ }
88
+
89
+ function assertReviewShape(seed: TraceTestSeed, reviewed: TraceTestReviewContent) {
90
+ assertSameDataShape(seed.context, reviewed.context, '$.context')
91
+ if (typeof seed.mocks === 'undefined' && typeof reviewed.mocks !== 'undefined') {
92
+ throw new Error('Reviewed test draft added mocks that were not present')
93
+ }
94
+ if (typeof seed.mocks !== 'undefined' && typeof reviewed.mocks === 'undefined') {
95
+ throw new Error('Reviewed test draft removed mocks')
96
+ }
97
+ if (typeof seed.mocks !== 'undefined') {
98
+ assertSameDataShape(seed.mocks, reviewed.mocks, '$.mocks')
99
+ }
100
+ }
101
+
102
+ function pruneExpiredDrafts(now: number) {
103
+ for (const [draftId, draft] of drafts) {
104
+ if (draft.expiresAt <= now) drafts.delete(draftId)
105
+ }
106
+ }
@@ -0,0 +1,145 @@
1
+ import { describe, expect, it } from 'vitest'
2
+
3
+ import type { TraceTestSeed } from '../../lib/tests/pii-sanitized-test-draft'
4
+ import { PII_SANITIZER_INSTRUCTIONS, sanitizeTraceTestSeed } from './pii-sanitizer'
5
+
6
+ function seed(overrides: Partial<TraceTestSeed> = {}): TraceTestSeed {
7
+ return {
8
+ pinned: 'TRUE',
9
+ step: 'main',
10
+ evaluation_mode: 'assertion',
11
+ context_mode: 'replace',
12
+ assertion_type: 'llm-rubric',
13
+ assertion_value: '',
14
+ conversation: 'User: I am Sarah Khan and my policy is GB-93482.',
15
+ expected_output: 'Thanks Sarah. I found policy GB-93482.',
16
+ similarity_threshold: '60',
17
+ timeout: '0',
18
+ context: {
19
+ customer: { name: 'Sarah Khan', policyId: 'GB-93482' }
20
+ },
21
+ mocks: {
22
+ policies: { 'GB-93482': { holder: 'Sarah Khan' } }
23
+ },
24
+ ...overrides
25
+ }
26
+ }
27
+
28
+ describe('sanitizeTraceTestSeed', () => {
29
+ it('replaces PII consistently without changing the test data shape', async () => {
30
+ const result = await sanitizeTraceTestSeed(seed(), {
31
+ model: 'test-model',
32
+ generate: async () =>
33
+ JSON.stringify({
34
+ conversation: 'User: I am Maya Turner and my policy is GB-58147.',
35
+ expected_output: 'Thanks Maya. I found policy GB-58147.',
36
+ context: {
37
+ customer: { name: 'Maya Turner', policyId: 'GB-58147' }
38
+ },
39
+ mocks: {
40
+ policies: { 'GB-58147': { holder: 'Maya Turner' } }
41
+ },
42
+ findings: [
43
+ { category: 'person', paths: ['$.conversation', '$.context.customer.name'] },
44
+ {
45
+ category: 'account_identifier',
46
+ paths: ['$.conversation', '$.context.customer.policyId']
47
+ }
48
+ ]
49
+ })
50
+ })
51
+
52
+ expect(result.model).toBe('test-model')
53
+ expect(result.seed).toMatchObject({
54
+ conversation: 'User: I am Maya Turner and my policy is GB-58147.',
55
+ expected_output: 'Thanks Maya. I found policy GB-58147.',
56
+ context: { customer: { name: 'Maya Turner', policyId: 'GB-58147' } },
57
+ mocks: { policies: { 'GB-58147': { holder: 'Maya Turner' } } }
58
+ })
59
+ expect(result.findings).toHaveLength(2)
60
+ })
61
+
62
+ it('asks for realistic replacements across every supported kind of personal data', () => {
63
+ expect(PII_SANITIZER_INSTRUCTIONS).toContain('realistic but fictional data')
64
+ expect(PII_SANITIZER_INSTRUCTIONS).toContain('plausible for its data type, locale')
65
+ expect(PII_SANITIZER_INSTRUCTIONS).toContain(
66
+ 'names, personal email addresses, phone numbers, full addresses, dates of birth'
67
+ )
68
+ expect(PII_SANITIZER_INSTRUCTIONS).toContain(
69
+ 'customer/account/booking/policy identifiers, vehicle registrations, financial identifiers'
70
+ )
71
+ expect(PII_SANITIZER_INSTRUCTIONS).toContain('Replace complete personal email addresses')
72
+ expect(PII_SANITIZER_INSTRUCTIONS).toContain(
73
+ 'downstream model must not be able to infer from a replacement'
74
+ )
75
+ expect(PII_SANITIZER_INSTRUCTIONS).toContain('last four card digits are needed, 4242')
76
+ expect(PII_SANITIZER_INSTRUCTIONS).not.toContain('[PHONE_1]')
77
+ expect(PII_SANITIZER_INSTRUCTIONS).not.toContain('policy_test_1')
78
+ })
79
+
80
+ it('rejects model output that removes context fields', async () => {
81
+ await expect(
82
+ sanitizeTraceTestSeed(seed(), {
83
+ generate: async () =>
84
+ JSON.stringify({
85
+ conversation: 'User: I am Maya Turner.',
86
+ expected_output: 'Thanks Maya.',
87
+ context: { customer: { name: 'Maya Turner' } },
88
+ mocks: {
89
+ policies: { 'GB-58147': { holder: 'Maya Turner' } }
90
+ },
91
+ findings: []
92
+ })
93
+ })
94
+ ).rejects.toThrow('changed the structure')
95
+ })
96
+
97
+ it('requires absent mocks to remain absent', async () => {
98
+ await expect(
99
+ sanitizeTraceTestSeed(seed({ mocks: undefined }), {
100
+ generate: async () =>
101
+ JSON.stringify({
102
+ conversation: 'User: I am Maya Turner.',
103
+ expected_output: 'Thanks Maya.',
104
+ context: {
105
+ customer: { name: 'Maya Turner', policyId: 'GB-58147' }
106
+ },
107
+ mocks: { unexpected: true },
108
+ findings: []
109
+ })
110
+ })
111
+ ).rejects.toThrow('added mocks')
112
+ })
113
+
114
+ it('accepts null mocks when the source has no mocks', async () => {
115
+ const result = await sanitizeTraceTestSeed(seed({ mocks: undefined }), {
116
+ generate: async () =>
117
+ JSON.stringify({
118
+ conversation: 'User: I am Maya Turner.',
119
+ expected_output: 'Thanks Maya.',
120
+ context: {
121
+ customer: { name: 'Maya Turner', policyId: 'GB-58147' }
122
+ },
123
+ mocks: null,
124
+ findings: [{ category: 'person', paths: ['$.conversation'] }]
125
+ })
126
+ })
127
+
128
+ expect(result.seed.mocks).toBeUndefined()
129
+ })
130
+
131
+ it('rejects the old encoded context and mocks string contract', async () => {
132
+ await expect(
133
+ sanitizeTraceTestSeed(seed(), {
134
+ generate: async () =>
135
+ JSON.stringify({
136
+ conversation: 'User: I am Maya Turner.',
137
+ expected_output: 'Thanks Maya.',
138
+ context: JSON.stringify({ customer: { name: 'Maya Turner' } }),
139
+ mocks: JSON.stringify({ policies: {} }),
140
+ findings: []
141
+ })
142
+ })
143
+ ).rejects.toThrow()
144
+ })
145
+ })